The new QThread documentation now really discourage to reimplement
QThread. But in fact, there are many cases where it is perfectly fine.
And the example given is even a case where using worker object is wrong.
The examle even contains a leak since the thread will never stop and
will even leak.
This changes put back some sentences from before commit
d4ad9dbbf9.
The sample code has been re-writen. Notice how reimpementing run takes
less lines of code, less runtime overhead, no leaks, and also is more
complete than the previous example.
Change-Id: I6cb80826e917dd5ce442ccad2572ec692ccb25ab
Reviewed-by: Andre Somers <andre@familiesomers.nl>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
Reviewed-by: Debao Zhang <hello@debao.me>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Since isSignalConnected is meant to be used in performance critical
code, and that QMetaMethod::fromSignal is relatively slow, it is better
to have it a a static variable in the code sample, as a good
recommendation on how to use it.
Since QMetaMethod::fromSignal should not change during the life of the
program, it should be safe. Also, if different threads run at the same
time, both should lead to the same result.
Change-Id: Ib6113d11ca93f216bc3a92aea4eaa4da6a4151ca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This was part of Qt 4.8, but Qt 5.0 was branched before that, so
the commit was lost.
Change-Id: I2a2ab3c75a0943ac734d588ebd74bc158dd6aaaf
Reviewed-by: Nils Jeisecke <jeisecke@saltation.de>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
-copied snippet and input files from Qt Widgets.
-adapted new paths in the resource-system.qdoc file.
-removed the old path entry in qdocconf.
Task-number: QTBUG-29101
Change-Id: Ieeb118106756a1a39890ab219294de18f437c56c
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
Fix 19 counts of "Can't link to 'default-constructed value'"
warnings.
There was only one link to "default-constructed values", so the
cleanest solution was to change the keyword.
Also included a related typo fix.
Change-Id: I84b47743ecb72a1b2731ef65080fa1e630d478a4
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This associates properties with member variables and
avoids writing getter and setter methods manually.
The metaCall() method directly accesses the member variable,
so additional method calls can be avoided.
The metaCall() setter code also supports NOTIFY signals,
which means the according signal is emitted when the property
gets written.
Task-number: QTBUG-16852
Change-Id: I88a1f237ea53a1e9cf65fc9ef2e207718eb8b6c3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This is necessary for initializing things in a library, which require
a QCoreApplication instance (unlike Q_CONSTRUCTOR_FUNCTION, which runs
before that). Example use cases: KCrash (segv handler), and KCheckAccelerators
(debugging tool triggered by magic key combination).
Change-Id: I5f4c4699dd4d21aea72b007989ba57467e86ed10
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QMessageAuthenticationCode is HMAC implementation based on
QCryptographicHash abilities. HMAC is often used in OAuth and similar
authentication protocols.
Change-Id: Ifc73947ad06c36a1b770315b7e89ba5c01c5e79e
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It's currently not obvious that two digit years will always be in the
20th century (1900's).
Task-number: QTBUG-28797
Change-Id: I7dee9a46e0cb803a8f097debc5443d1789c2f16c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
- The qdoc pages were related to qtcore and they were
referring to snippets inside the qtcore module boundary.
- Fixed the exampledirs for QtCore to include the examples
that are referred by the \snippet instances in the
moved qdoc pages work.
Change-Id: Ibb6dbb131920ea8692a203f6145863e5012e4602
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Since all gui applications already need some QPA plugin added,
we might as well add the default plugin and generate the code
to import the plugins automatically.
User can opt out from the automation by removing relevant
items from CONFIG variable: link_qpa_plugin or import_plugins.
Task-number: QTBUG-28131
Change-Id: Ic171c363464c099143374d3e39bcc28f6edf73d2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Configure will now generate QT_DEFAULT_QPA_PLUGIN qmake variable
to specify the default QPA plugin.
"CONFIG += qpa_default_plugin" statement in application .pro file
will add the default QPA plugin into QTPLUGINS.
"CONFIG += qpa_minimal_plugin" statement in application .pro file
will add the minimal QPA plugin into QTPLUGINS.
Task-number: QTBUG-28131
Change-Id: I12a241005f30b37467d783b50f0369b47e605e68
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The link to widget examples in QtCore was added
in 4519d810d1, which made
widget examples pop up twice in generated lists
(once for qtcore and once for qtwidgets documentation).
I'm not sure why it was originally added to that module, but
the snippets in the fridgemagnets example (which was the
example fixed in the commit) has been verified to still work.
Change-Id: I1b349f08349b5499929315d426224ba8638adc8e
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Because the linguist examples are moved to qttools module, a link
to the hellotr example broke.
Change-Id: I2aeefc143578618396f5be38ed1d52afdd1f7436
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
The examples have been put under examples/widgets which is probably
not correct, since they don't even have gui. The correct fix would
probably be to move them into threads/, but that would risk a lot of
breakage, so the conservative work-around is just to use the correct
relative paths instead.
Change-Id: I36c3aa45056c8825d1991f345ad7d7799e2fa5fc
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>