Commit Graph

348 Commits (2473f4fac31fae8b40be0975fbf41b115333bda8)

Author SHA1 Message Date
Timur Pocheptsov 5bfac9d653 Merge "Merge remote-tracking branch 'origin/5.5' into dev" into refs/staging/dev 2015-08-09 07:06:52 +00:00
Frederik Gladhorn 77da617dc8 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	doc/global/qt-cpp-defines.qdocconf
	src/3rdparty/forkfd/forkfd.c
	src/corelib/codecs/qtextcodec.cpp
	src/corelib/kernel/qmetatype.cpp
	src/corelib/tools/qset.qdoc
	src/gui/accessible/qaccessible.cpp
	src/gui/image/qpixmapcache.cpp
	src/opengl/qgl.cpp
	src/tools/qdoc/generator.cpp
	src/widgets/kernel/qwidget.cpp
	tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp

Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
2015-08-06 10:54:01 +02:00
Thiago Macieira fd57ec5c5f QDBusError: Disable function that isn't used in bootstrapped builds
Change-Id: Id3d5c7bf4d4c45069621ffff13f7b73144537d81
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-08-06 07:34:20 +00:00
Nico Vertriest e6ddae07e1 Doc:added doc to undocumented functions
Task-number: QTBUG-36985
Change-Id: Ic358682b276d67ef804f727bcf14191718613469
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-07-22 13:47:23 +00:00
Marc Mutz 49f7281d36 Mark QDBus{ObjectPath,Signature,Variant} shared-come-qt6
The compiler-generated move operations are ok.

Change-Id: Ida994b52e3ee6ce75afd50133e61488b94464eee
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-19 18:13:37 +00:00
Marc Mutz a1ef018d9c QDBusVariant: add ctor taking QVariant&&
Change-Id: Ia25c4bd6294955b0e8ea5ecc0c62719423542e84
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-19 10:33:43 +00:00
Marc Mutz 94c24fad59 QDBusConnection: declare as shared-come-Qt6
Requires adding member-swap and (at least in my copy) move operations.

Change-Id: I1b638a81e4a41f467e69e352806524039e7b9f27
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-19 10:33:23 +00:00
Marc Mutz f79dee6844 Add missing Q_DECLARE_OPERATORS_FOR_FLAGS(QDBusConnection::ConnectionCapabilities)
Change-Id: I659ccc00129d20bbae08b277a291d81c6ede80be
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-19 10:33:18 +00:00
Marc Mutz 15a5035671 QDBusMessage: declare as shared-come-Qt6
Requires adding member-swap and (at least in my copy) move assignment.

Since the type does not contain a d == nullptr state,
a move constructor isn't yet possible.

Change-Id: Iad6939fa30f214591eab1fdf30a2cf1423ffb32a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 13:33:04 +00:00
Marc Mutz 84769bbbce QDBusError: declare as shared-come-Qt6
Requires adding member-swap and (at least in my copy) move operations.

Change-Id: I4284484b1f520eb2d9036b993a5b5b70aaea0af9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 13:32:59 +00:00
Marc Mutz 188a8a7f1d QDBusArgument: declare as shared-come-Qt6
Requires adding member-swap and (at least in my copy) move operations.

Change-Id: I0b32c387809c972203c94677616fe0a52143ec3b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 13:32:53 +00:00
Marc Mutz d660c4c8bf QDBusObjectPath: add ctor taking QString&&
The new constructor cannot be marked nothrow, because it calls
non-nothrow doCheck();

Change-Id: I4e5b33c58125091644573ed84e715c7fa946ae09
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:10 +00:00
Marc Mutz 1251273232 QDBusSignature: add ctor taking QString&&
The new constructor cannot be marked nothrow, because it calls
non-nothrow doCheck();

Change-Id: I732fac7a07d46a3ff3be0e4e56de72dd19090737
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:05 +00:00
Marc Mutz 98eef668e6 Mark QDBusSlotCache{,::Data} shared
The compiler-generated move operations are ok.

Change-Id: Iec0fed49d52ace5ca7dae2c7ee53d717a283f15a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:19:54 +00:00
Marc Mutz e4fa9a1fcd QDBusObjectPath / QDBusSignature: add missing =0 on qHash seed argument
Change-Id: I68396e319d9204f7e1e9ef8562ffefa7db565057
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-07-10 17:31:33 +00:00
Marc Mutz 32a5026f36 QtDBus: replace some inefficient QLists with QVector
QDBusIntrospection::Argument and the QPair are larger than a void*, so holding
them in QLists is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references to elements
therein never are invalidated.

Fix by marking the types movable, if not already done, and holding them in
QVector instead.

Change-Id: I1cf88287cc3a1d87e1fcd5061ed8d6d19d2f0722
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-10 12:21:02 +00:00
Marc Mutz f7544e8478 QtDBus: mark QDBusAdaptorConnector::AdaptorData as primitive
It is held in QVector.

Change-Id: I56e95f9a3a64d3e79914098873a382d233754fa3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-08 12:30:55 +00:00
Marc Mutz 641de5ab50 QDBusConnection: fix misleading placement of Q_DECLARE_FLAGS
Was placed under an unrelated enum. Move it to the
correct one.

Change-Id: I0cf1ffc678c4cffae16660acde95183d5ebcad03
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-07-08 11:22:28 +00:00
Ulf Hermann 2839e8d010 dbus: allow dbus_shutdown() on QT_NO_LIBRARY && QT_LINKED_LIBDBUS
If you statically link in a dbus library you'll have dbus_shutdown()
available.

Change-Id: Ieeded63838423a14a5530a4edb0ea46dc9b58d18
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-07-06 14:15:53 +00:00
Marc Mutz 3e2953e05a QtDBus: mark some types as movable come Qt 6
Marking them movable now would make QLists of these types BiC.

Change-Id: I7ae06aec596b349ee05e48f24a077af743450669
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-06 11:32:51 +00:00
Marc Mutz f9bcaeb808 QtDBus: Use Q_NULLPTR instead of 0 in all public headers
This is in preparation of adding -Wzero-as-null-pointer-constant (or similar)
to the headers check.

Task-number: QTBUG-45291
Change-Id: If258b503c5ce335ecc22a5176d3e2b21aa7a278a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-04 06:03:29 +00:00
Liang Qi 0aa2d318b1 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/global/qglobal.cpp
	src/corelib/global/qglobal.h
	src/corelib/global/qsysinfo.h
	src/corelib/global/qsystemdetection.h
	src/corelib/kernel/qobjectdefs.h
	src/plugins/plugins.pro
	tests/auto/widgets/itemviews/qlistview/qlistview.pro

Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
2015-07-01 11:05:26 +02:00
Marc Mutz bc1804fa72 QtDBus: make all Q_DECLARE_SHARED types nothrow move-assignable
Change-Id: I5b04fb44b632a0bbb290199fc092b3ffd8289650
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-06-30 10:57:27 +00:00
Thiago Macieira 3de7a966f1 Fix warning with MSVC 2013
warning C4100: 'name' : unreferenced formal parameter

This is despite the new Q_ASSERT "using" its expression even in release
mode.

Change-Id: Ieebfc4ab72a6493eaa68ffff13ead0574dd78627
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-06-26 06:49:38 +00:00
Sérgio Martins a4d3af9614 dbus: Use QList::reserve(), reduces reallocations.
Change-Id: I5d60220c4d3014067a45a3d3553f0523c9fc7c74
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-06-23 12:46:36 +00:00
Marc Mutz 9f1646b0d9 qDBusRealAddTimeout(): don't create a QList just to check it's empty
Instead of QHash::keys(value).isEmpty(), use QHash::key(value, 0) == 0
(0 is used a failure indicator three lines down, so it should not be
a key in the hash table).

Change-Id: I75cc4f7f7540dc5c51a7b8e3add09a0ec6a75e05
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-06-17 07:09:52 +00:00
Ulf Hermann d7e2e943a2 Fix conditions for disabling dbus dynamic symbol lookup
We cannot do this if no library support is present. Incidentally that's
the case when bootstrapping, but you can also set the flag manually.

Change-Id: I51e167176d0839af5858122630ef623a1c69a106
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-06-16 06:31:42 +00:00
Oswald Buddenhagen d32f47b703 fix usage of wince scope
Fix style issues along the way.

Change-Id: Ic6a6de28e198eb0b14c198b802e78845703909b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-06-05 10:29:10 +00:00
Simon Hausmann e2f66f9215 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/global/qnamespace.qdoc
	src/corelib/io/qwindowspipereader.cpp
	src/corelib/io/qwindowspipereader_p.h
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/plugins/platforms/xcb/qxcbconnection.h
	tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
	tests/auto/tools/qmake/tst_qmake.cpp
	tests/manual/touch/main.cpp

Change-Id: I917d694890e79ee3da7d65134b5b085e23e0dd62
2015-06-03 10:23:56 +02:00
Thiago Macieira bd1f5b268a Make sure we don't call dbus_connection_can_send_type on too old libdbus
This function was introduced alongside the support for Unix file
descriptors, so it's a good indicator of whether Unix FDs are
supported. Ever since dbus_minimal_p.h, however, DBUS_TYPE_UNIX_FD may
be defined even if the system libs don't support it.

In order to fix this issue, I had to fix what was apparently a merge
conflict resolution mistake and remove the #ifdef around the test. Doing
the latter is a good idea due to moc being unable to find <dbus/dbus.h>.

This was tested with both linked and dynamically-loaded libdbus-1.

Task-number: QTBUG-46199
Change-Id: I66a35ce5f88941f29aa6ffff13dfb4b5438613a3
Reviewed-by: Jani Vähäkangas <jani.vahakangas@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-05-26 07:20:35 +00:00
Nico Vertriest a4848142b4 Doc: added doc for non-documented functions
Task-number: QTBUG-36985
Change-Id: I85f58c2877d83b98bf3427cbb0f567575803524f
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-05-18 08:01:37 +00:00
Liang Qi aed5a71683 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/gui/painting/qdrawhelper.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbwindow.cpp
	src/plugins/platforms/xcb/qxcbwindow.h
	src/testlib/qtestblacklist.cpp
	src/tools/qdoc/node.cpp
	src/tools/qdoc/node.h
	tests/auto/gui/painting/qcolor/tst_qcolor.cpp

Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
2015-04-22 09:25:54 +02:00
Marc Mutz 1b5f29e28a Remove <qhash.h> where it's not used
To avoid source-incompatibilites, wrap in QT_DEPRECATED_SINCE(5, 5)
in public headers.

Change-Id: I6117e8a6b11200d2f1a0a94a0e87d5c27538218e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-20 07:41:34 +00:00
Marc Mutz 103086e379 Replace <qhash.h> with <qhashfunctions.h> where applicable
To avoid source-incompatibilites, wrap in QT_DEPRECATED_SINCE(5, 5)
in public headers.

Change-Id: Ic3398f4f330e15a3b55065858add26b90fd70e6c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-20 07:41:27 +00:00
Thiago Macieira d370878aa0 Fix undefined behavior: accessing an object after destruction
QDBusConnectionPrivate keeps a pointer to a QDBusConnectionInterface,
which in turn holds a reference back to that QDBusConnectionPrivate.
During the interface object's destruction, the QDBusAbstractInterface's
destructor checks if the interface is still valid. That access is
undefined behavior, but has so far been benign in all our uses since
the memory had not yet been freed (just destroyed) and the reference
count went from 0 to -1.

To be on the safe side, we destroy now the QDBusConnectionInterface
object while the Private is still valid. It will bring the reference
count down from 0 to a negative number, but won't cause any other
effects.

Change-Id: I9a75ad8521ae4e5cbbe5ffff13d1b80057e13809
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-04-15 00:21:57 +00:00
Thiago Macieira 2bcbe227bd Fix crashes on shutdown when the D-Bus spy list has been destroyed
The QDBusConnection spy hook is most often created after the
QDBusConnectionManager global, which means it will get destroyed before.
That means we'll almost surely going to get a null pointer dereference
if we handle the socket close to shutdown.

Change-Id: I27eaacb532114dd188c4ffff13d4c9dc865b8c02
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-04-15 00:07:05 +00:00
Liang Qi 0e6ee136c9 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/testlib/qtestblacklist.cpp
	src/widgets/accessible/qaccessiblewidgets.cpp

Change-Id: If032adb9296428f62384ed835dbf41ee7a0b886c
2015-04-01 09:10:26 +02:00
Thiago Macieira 26edd5a3b1 Use QStringLiteral where applicable in QtDBus
Move to qdbusutil_p.h the string constants that are used often and in
multiple places; use QStringLiteral in qdbusintegrator.cpp for the
strings that are used often.

Change-Id: I8e1325b9ba015bda91bf01c42175d8032ea32f62
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-03-31 06:50:42 +00:00
Friedemann Kleint 3203ac3f4e Use QDebugStateSaver to restore space setting in stream operators.
Returning dbg.space() breaks formatting on streams that already
have nospace() set.

Change-Id: I55e38b018679a67eb40be6b4664505483a3a7d8e
Reviewed-by: David Faure <david.faure@kdab.com>
2015-03-30 12:59:58 +00:00
Robert Griebl c885efb3cd Skip non-exported slots early when creating a XML interface description.
This will prevent unnecessary warnings about unknown types for signals
or slots that are not even exported to the D-Bus.

Change-Id: Iecda5beca5ebe6665a193245fe1c2578156f6abe
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-25 10:11:51 +00:00
Robert Griebl 91feefd7d9 Export the symbols of libdbus-1 when loading it at runtime.
This allows applications that need additional symbols from the library to
easily obtain them without needing to replicate the library open logic
from qdbus_symbols.cpp.

Change-Id: Ic65ef6684637fbcd1c9f4fe1dc7a57f0624b61a8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-25 10:11:43 +00:00
Simon Hausmann 198606f6db Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.h

Change-Id: I31b38ba439b9341d51a01c0fd54bea33f7410076
2015-03-16 10:31:07 +01:00
Alberto Mardegan 748abf9347 Add QDBusMessage::createTargetedSignal()
The QDBusMessage::createSignal() static method doesn't take a parameter
for specifying the destination service of the signal. While this is not
a widely used feature, it can be useful to avoid waking up all connected
clients when the service knows what are the clients which are interested
in the signal.

This commit adds a QDBusMessage::createTargetedSignal() method which
also takes the destination service as its first parameter.

Change-Id: I9fdca53673a6944c39c93c1efd69a9d02859684e
Task-number: QTBUG-44704
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-14 19:01:49 +00:00
Thiago Macieira ff807df6c9 QtDBus: Fix const correctness in old style casts
Found with GCC's -Wcast-qual.

Change-Id: Ia0aac2f09e9245339951ffff13c9468642b2db83
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-11 01:50:21 +00:00
Friedemann Kleint 691198eaf2 Fix various qdoc-warnings.
qtbase/src/corelib/doc/src/containers.qdoc:28: warning: Can't link to 'QList:end()'
qtbase/src/corelib/kernel/qmetaobject.cpp:2680: warning: Cannot find 'fromType(...)' in '\fn' QMetaEnum QMetaEnum::fromType() const
qtbase/src/corelib/kernel/qmetatype.cpp:1117: warning: Cannot find 'qMetaTypeTypeImpl(...)' in '\fn' int qMetaTypeTypeImpl(const char *typeName)
qtbase/src/corelib/plugin/qplugin.qdoc:48: warning: Cannot find file to quote from: 'plugins/interfaces.h'

Change-Id: Ie613253211e16ec616ccb70c24c625a9d5352d1b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-25 11:36:51 +00:00
Friedemann Kleint f5846130de Remove documentation of QDBusIntrospection::Object::introspection.
qtbase/src/dbus/qdbusintrospection.cpp:269: warning: Cannot find 'QDBusIntrospection::Object::introspection' specified with '\variable' in any header file

Change-Id: I7c5d207842235752ebe38f45b7eee7f8fc00127d
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-25 11:36:38 +00:00
Jani Heikkinen 2b75c156b6 Updated BSD licensed file headers
Change-Id: I6441ff931dbd33b698d762e6f6784898f3f60fe7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-15 07:41:17 +00:00
Kevron Rees 0eec8c86b6 QDBusConnection::registorObject with interface
Currently QDBus relies on a key in QMetaClassInfo to understand the DBus interface name.
This patch allows QDBus to also use a specified interface name in the registerObject call
instead of relying on QMetaClassInfo that might not be there (if the QObject was created
in QML or Javascript for example).

Change-Id: Ie02b2c67e7deb07f43e35eb166c11833fcbf38f3
Task-number: QTBUG-44074
Reviewed-by: Kevron Rees <kevron.m.rees@intel.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-15 02:17:53 +00:00
Konstantin Ritt 651329adb5 Pass params of shareable type by const-ref rather than by value
Instead of leaving a note for Qt6 and then forget to do
the actual change once again, change APIs now inside
QT_VERSION >= QT_VERSION_CHECK(6,0,0) blocks.

Change-Id: Ifa769904e304358a9c2accfd6c9f86eeb342f9dc
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-13 16:29:25 +00:00
Jani Heikkinen 83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00