diff --git a/src/dbus/qdbusargument.h b/src/dbus/qdbusargument.h
index 42b2667..a6bc396 100644
--- a/src/dbus/qdbusargument.h
+++ b/src/dbus/qdbusargument.h
@@ -70,9 +70,15 @@ public:
 
     QDBusArgument();
     QDBusArgument(const QDBusArgument &other);
+#ifdef Q_COMPILER_RVALUE_REFS
+    QDBusArgument(QDBusArgument &&other) Q_DECL_NOTHROW : d(other.d) { other.d = Q_NULLPTR; }
+    QDBusArgument &operator=(QDBusArgument &&other) Q_DECL_NOTHROW { swap(other); return *this; }
+#endif
     QDBusArgument &operator=(const QDBusArgument &other);
     ~QDBusArgument();
 
+    void swap(QDBusArgument &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
+
     // used for marshalling (Qt -> D-BUS)
     QDBusArgument &operator<<(uchar arg);
     QDBusArgument &operator<<(bool arg);
@@ -140,6 +146,7 @@ protected:
     friend class QDBusArgumentPrivate;
     mutable QDBusArgumentPrivate *d;
 };
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusArgument)
 
 QT_END_NAMESPACE
 Q_DECLARE_METATYPE(QDBusArgument)
@@ -147,7 +154,7 @@ QT_BEGIN_NAMESPACE
 
 template<typename T> inline T qdbus_cast(const QDBusArgument &arg
 #ifndef Q_QDOC
-, T * = 0
+, T * = Q_NULLPTR
 #endif
     )
 {
@@ -158,7 +165,7 @@ template<typename T> inline T qdbus_cast(const QDBusArgument &arg
 
 template<typename T> inline T qdbus_cast(const QVariant &v
 #ifndef Q_QDOC
-, T * = 0
+, T * = Q_NULLPTR
 #endif
     )
 {
diff --git a/src/dbus/qdbusconnection.h b/src/dbus/qdbusconnection.h
index 10598c0..8b2e923 100644
--- a/src/dbus/qdbusconnection.h
+++ b/src/dbus/qdbusconnection.h
@@ -99,11 +99,12 @@ public:
         ExportChildObjects = 0x1000
         // Reserved = 0xff000000
     };
+    Q_DECLARE_FLAGS(RegisterOptions, RegisterOption)
+
     enum UnregisterMode {
         UnregisterNode,
         UnregisterTree
     };
-    Q_DECLARE_FLAGS(RegisterOptions, RegisterOption)
 
     enum VirtualObjectRegisterOption {
         SingleNode = 0x0,
@@ -121,9 +122,14 @@ public:
 
     explicit QDBusConnection(const QString &name);
     QDBusConnection(const QDBusConnection &other);
+#ifdef Q_COMPILER_RVALUE_REFS
+    QDBusConnection(QDBusConnection &&other) Q_DECL_NOTHROW : d(other.d) { other.d = Q_NULLPTR; }
+    QDBusConnection &operator=(QDBusConnection &&other) Q_DECL_NOTHROW { swap(other); return *this; }
+#endif
+    QDBusConnection &operator=(const QDBusConnection &other);
     ~QDBusConnection();
 
-    QDBusConnection &operator=(const QDBusConnection &other);
+    void swap(QDBusConnection &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
 
     bool isConnected() const;
     QString baseService() const;
@@ -199,9 +205,11 @@ private:
     friend class QDBusConnectionPrivate;
     QDBusConnectionPrivate *d;
 };
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusConnection)
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(QDBusConnection::RegisterOptions)
 Q_DECLARE_OPERATORS_FOR_FLAGS(QDBusConnection::VirtualObjectRegisterOptions)
+Q_DECLARE_OPERATORS_FOR_FLAGS(QDBusConnection::ConnectionCapabilities)
 
 QT_END_NAMESPACE
 
diff --git a/src/dbus/qdbuserror.h b/src/dbus/qdbuserror.h
index c2c0ff8..ce5275d 100644
--- a/src/dbus/qdbuserror.h
+++ b/src/dbus/qdbuserror.h
@@ -92,11 +92,25 @@ public:
 #endif
     QDBusError(ErrorType error, const QString &message);
     QDBusError(const QDBusError &other);
+#ifdef Q_COMPILER_RVALUE_REFS
+    QDBusError(QDBusError &&other) Q_DECL_NOTHROW
+        : code(other.code), msg(std::move(other.msg)), nm(std::move(other.nm)), unused(other.unused)
+    { other.unused = Q_NULLPTR; }
+    QDBusError &operator=(QDBusError &&other) Q_DECL_NOTHROW { swap(other); return *this; }
+#endif
     QDBusError &operator=(const QDBusError &other);
 #ifndef QT_BOOTSTRAPPED
     QDBusError &operator=(const QDBusMessage &msg);
 #endif
 
+    void swap(QDBusError &other) Q_DECL_NOTHROW
+    {
+        qSwap(code,   other.code);
+        qSwap(msg,    other.msg);
+        qSwap(nm,     other.nm);
+        qSwap(unused, other.unused);
+    }
+
     ErrorType type() const;
     QString name() const;
     QString message() const;
@@ -110,6 +124,7 @@ private:
     QString nm;
     void *unused;
 };
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusError)
 
 #ifndef QT_NO_DEBUG_STREAM
 Q_DBUS_EXPORT QDebug operator<<(QDebug, const QDBusError &);
diff --git a/src/dbus/qdbusextratypes.h b/src/dbus/qdbusextratypes.h
index 390ff6c..8495b3a 100644
--- a/src/dbus/qdbusextratypes.h
+++ b/src/dbus/qdbusextratypes.h
@@ -39,7 +39,10 @@
 #include <QtCore/qvariant.h>
 #include <QtCore/qstring.h>
 #include <QtDBus/qdbusmacros.h>
+#if QT_DEPRECATED_SINCE(5, 5)
 #include <QtCore/qhash.h>
+#endif
+#include <QtCore/qhashfunctions.h>
 
 #ifndef QT_NO_DBUS
 
@@ -50,11 +53,18 @@ class Q_DBUS_EXPORT QDBusObjectPath
 {
     QString m_path;
 public:
-    inline QDBusObjectPath() { }
+    QDBusObjectPath() Q_DECL_NOTHROW : m_path() {}
+    // compiler-generated copy/move constructor/assignment operators are ok!
+    // compiler-generated destructor is ok!
 
     inline explicit QDBusObjectPath(const char *path);
     inline explicit QDBusObjectPath(QLatin1String path);
     inline explicit QDBusObjectPath(const QString &path);
+#ifdef Q_COMPILER_RVALUE_REFS
+    explicit QDBusObjectPath(QString &&p) : m_path(std::move(p)) { doCheck(); }
+#endif
+
+    void swap(QDBusObjectPath &other) Q_DECL_NOTHROW { qSwap(m_path, other.m_path); }
 
     inline void setPath(const QString &path);
 
@@ -64,6 +74,7 @@ public:
 private:
     void doCheck();
 };
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusObjectPath)
 
 inline QDBusObjectPath::QDBusObjectPath(const char *objectPath)
     : m_path(QString::fromLatin1(objectPath))
@@ -89,7 +100,7 @@ inline bool operator!=(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs)
 inline bool operator<(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs)
 { return lhs.path() < rhs.path(); }
 
-inline uint qHash(const QDBusObjectPath &objectPath, uint seed)
+inline uint qHash(const QDBusObjectPath &objectPath, uint seed = 0)
 { return qHash(objectPath.path(), seed); }
 
 
@@ -97,11 +108,18 @@ class Q_DBUS_EXPORT QDBusSignature
 {
     QString m_signature;
 public:
-    inline QDBusSignature() { }
+    QDBusSignature() Q_DECL_NOTHROW : m_signature() {}
+    // compiler-generated copy/move constructor/assignment operators are ok!
+    // compiler-generated destructor is ok!
 
     inline explicit QDBusSignature(const char *signature);
     inline explicit QDBusSignature(QLatin1String signature);
     inline explicit QDBusSignature(const QString &signature);
+#ifdef Q_COMPILER_RVALUE_REFS
+    explicit QDBusSignature(QString &&sig) : m_signature(std::move(sig)) { doCheck(); }
+#endif
+
+    void swap(QDBusSignature &other) Q_DECL_NOTHROW { qSwap(m_signature, other.m_signature); }
 
     inline void setSignature(const QString &signature);
 
@@ -111,6 +129,7 @@ public:
 private:
     void doCheck();
 };
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusSignature)
 
 inline QDBusSignature::QDBusSignature(const char *dBusSignature)
     : m_signature(QString::fromLatin1(dBusSignature))
@@ -136,21 +155,30 @@ inline bool operator!=(const QDBusSignature &lhs, const QDBusSignature &rhs)
 inline bool operator<(const QDBusSignature &lhs, const QDBusSignature &rhs)
 { return lhs.signature() < rhs.signature(); }
 
-inline uint qHash(const QDBusSignature &signature, uint seed)
+inline uint qHash(const QDBusSignature &signature, uint seed = 0)
 { return qHash(signature.signature(), seed); }
 
 class QDBusVariant
 {
     QVariant m_variant;
 public:
-    inline QDBusVariant() { }
+    QDBusVariant() Q_DECL_NOTHROW : m_variant() {}
+    // compiler-generated copy/move constructor/assignment operators are ok!
+    // compiler-generated destructor is ok!
+
     inline explicit QDBusVariant(const QVariant &variant);
+#ifdef Q_COMPILER_RVALUE_REFS
+    explicit QDBusVariant(QVariant &&v) Q_DECL_NOTHROW : m_variant(std::move(v)) {}
+#endif
+
+    void swap(QDBusVariant &other) Q_DECL_NOTHROW { qSwap(m_variant, other.m_variant); }
 
     inline void setVariant(const QVariant &variant);
 
     inline QVariant variant() const
     { return m_variant; }
 };
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusVariant)
 
 inline  QDBusVariant::QDBusVariant(const QVariant &dBusVariant)
     : m_variant(dBusVariant) { }
diff --git a/src/dbus/qdbusinterface.h b/src/dbus/qdbusinterface.h
index b63df10..b48a206 100644
--- a/src/dbus/qdbusinterface.h
+++ b/src/dbus/qdbusinterface.h
@@ -52,7 +52,7 @@ private:
 public:
     QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(),
                    const QDBusConnection &connection = QDBusConnection::sessionBus(),
-                   QObject *parent = 0);
+                   QObject *parent = Q_NULLPTR);
     ~QDBusInterface();
 
     virtual const QMetaObject *metaObject() const Q_DECL_OVERRIDE;
diff --git a/src/dbus/qdbusmacros.h b/src/dbus/qdbusmacros.h
index 1f774b0..2a1d0a2 100644
--- a/src/dbus/qdbusmacros.h
+++ b/src/dbus/qdbusmacros.h
@@ -45,7 +45,9 @@
 #ifdef Q_CC_MSVC
 #include <QtCore/qlist.h>
 #include <QtCore/qset.h>
+#if QT_DEPRECATED_SINCE(5, 5)
 #include <QtCore/qhash.h>
+#endif
 #include <QtCore/qvector.h>
 #endif
 
diff --git a/src/dbus/qdbusmessage.h b/src/dbus/qdbusmessage.h
index 77f34ec..e85d600 100644
--- a/src/dbus/qdbusmessage.h
+++ b/src/dbus/qdbusmessage.h
@@ -62,11 +62,18 @@ public:
 
     QDBusMessage();
     QDBusMessage(const QDBusMessage &other);
+#ifdef Q_COMPILER_RVALUE_REFS
+    QDBusMessage &operator=(QDBusMessage &&other) Q_DECL_NOTHROW { swap(other); return *this; }
+#endif
     QDBusMessage &operator=(const QDBusMessage &other);
     ~QDBusMessage();
 
+    void swap(QDBusMessage &other) Q_DECL_NOTHROW { qSwap(d_ptr, other.d_ptr); }
+
     static QDBusMessage createSignal(const QString &path, const QString &interface,
                                      const QString &name);
+    static QDBusMessage createTargetedSignal(const QString &service, const QString &path,
+                                             const QString &interface, const QString &name);
     static QDBusMessage createMethodCall(const QString &destination, const QString &path,
                                          const QString &interface, const QString &method);
     static QDBusMessage createError(const QString &name, const QString &msg);
@@ -115,6 +122,7 @@ private:
     friend class QDBusMessagePrivate;
     QDBusMessagePrivate *d_ptr;
 };
+Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusMessage)
 
 #ifndef QT_NO_DEBUG_STREAM
 Q_DBUS_EXPORT QDebug operator<<(QDebug, const QDBusMessage &);
diff --git a/src/dbus/qdbuspendingcall.h b/src/dbus/qdbuspendingcall.h
index 99d261d..3bcacff 100644
--- a/src/dbus/qdbuspendingcall.h
+++ b/src/dbus/qdbuspendingcall.h
@@ -56,9 +56,12 @@ class Q_DBUS_EXPORT QDBusPendingCall
 public:
     QDBusPendingCall(const QDBusPendingCall &other);
     ~QDBusPendingCall();
+#ifdef Q_COMPILER_RVALUE_REFS
+    QDBusPendingCall &operator=(QDBusPendingCall &&other) Q_DECL_NOTHROW { swap(other); return *this; }
+#endif
     QDBusPendingCall &operator=(const QDBusPendingCall &other);
 
-    void swap(QDBusPendingCall &other) { qSwap(d, other.d); }
+    void swap(QDBusPendingCall &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
 
 #ifndef Q_QDOC
     // pretend that they aren't here
@@ -93,7 +96,7 @@ class Q_DBUS_EXPORT QDBusPendingCallWatcher: public QObject, public QDBusPending
 {
     Q_OBJECT
 public:
-    explicit QDBusPendingCallWatcher(const QDBusPendingCall &call, QObject *parent = 0);
+    explicit QDBusPendingCallWatcher(const QDBusPendingCall &call, QObject *parent = Q_NULLPTR);
     ~QDBusPendingCallWatcher();
 
 #ifdef Q_QDOC
diff --git a/src/dbus/qdbusreply.h b/src/dbus/qdbusreply.h
index 56830f6..4cfe8db 100644
--- a/src/dbus/qdbusreply.h
+++ b/src/dbus/qdbusreply.h
@@ -125,7 +125,7 @@ private:
 template<> inline QDBusReply<QVariant>&
 QDBusReply<QVariant>::operator=(const QDBusMessage &reply)
 {
-    void *null = 0;
+    void *null = Q_NULLPTR;
     QVariant data(qMetaTypeId<QDBusVariant>(), null);
     qDBusReplyFill(reply, m_error, data);
     m_data = qvariant_cast<QDBusVariant>(data).variant();
diff --git a/src/dbus/qdbusserver.h b/src/dbus/qdbusserver.h
index cdd5318..3cb2ec8 100644
--- a/src/dbus/qdbusserver.h
+++ b/src/dbus/qdbusserver.h
@@ -50,8 +51,8 @@ class Q_DBUS_EXPORT QDBusServer: public QObject
 {
     Q_OBJECT
 public:
-    explicit QDBusServer(const QString &address, QObject *parent = 0);
-    explicit QDBusServer(QObject *parent = 0);
+    explicit QDBusServer(const QString &address, QObject *parent = Q_NULLPTR);
+    explicit QDBusServer(QObject *parent = Q_NULLPTR);
     virtual ~QDBusServer();
 
     bool isConnected() const;
@@ -66,7 +67,9 @@ Q_SIGNALS:
 
 private:
     Q_DISABLE_COPY(QDBusServer)
+    Q_PRIVATE_SLOT(d, void _q_newConnection(QDBusConnectionPrivate*))
     QDBusConnectionPrivate *d;
+    friend class QDBusConnectionPrivate;
 };
 
 QT_END_NAMESPACE
diff --git a/src/dbus/qdbusservicewatcher.h b/src/dbus/qdbusservicewatcher.h
index 020ce13..71c0f0a 100644
--- a/src/dbus/qdbusservicewatcher.h
+++ b/src/dbus/qdbusservicewatcher.h
@@ -37,7 +37,7 @@
 #include <QtCore/qobject.h>
 #include <QtDBus/qdbusmacros.h>
 
-#ifndef QT_NO_DBUS
+#if !defined(QT_NO_DBUS) && !defined(QT_NO_QOBJECT)
 
 QT_BEGIN_NAMESPACE
 
@@ -58,9 +58,9 @@ public:
     };
     Q_DECLARE_FLAGS(WatchMode, WatchModeFlag)
 
-    explicit QDBusServiceWatcher(QObject *parent = 0);
+    explicit QDBusServiceWatcher(QObject *parent = Q_NULLPTR);
     QDBusServiceWatcher(const QString &service, const QDBusConnection &connection,
-                        WatchMode watchMode = WatchForOwnerChange, QObject *parent = 0);
+                        WatchMode watchMode = WatchForOwnerChange, QObject *parent = Q_NULLPTR);
     ~QDBusServiceWatcher();
 
     QStringList watchedServices() const;
@@ -89,5 +89,5 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QDBusServiceWatcher::WatchMode)
 
 QT_END_NAMESPACE
 
-#endif // QT_NO_DBUS
+#endif // QT_NO_DBUS || QT_NO_QOBJECT
 #endif // QDBUSSERVICEWATCHER_H
diff --git a/src/dbus/qdbusunixfiledescriptor.h b/src/dbus/qdbusunixfiledescriptor.h
index 35e9d87..9fb6eb4 100644
--- a/src/dbus/qdbusunixfiledescriptor.h
+++ b/src/dbus/qdbusunixfiledescriptor.h
@@ -55,10 +55,13 @@ public:
     QDBusUnixFileDescriptor();
     explicit QDBusUnixFileDescriptor(int fileDescriptor);
     QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other);
+#if defined(Q_COMPILER_RVALUE_REFS)
+    QDBusUnixFileDescriptor &operator=(QDBusUnixFileDescriptor &&other) Q_DECL_NOTHROW { swap(other); return *this; }
+#endif
     QDBusUnixFileDescriptor &operator=(const QDBusUnixFileDescriptor &other);
     ~QDBusUnixFileDescriptor();
 
-    void swap(QDBusUnixFileDescriptor &other)
+    void swap(QDBusUnixFileDescriptor &other) Q_DECL_NOTHROW
     { qSwap(d, other.d); }
 
     bool isValid() const;
@@ -71,11 +74,6 @@ public:
 
     static bool isSupported();
 
-#if defined(Q_COMPILER_RVALUE_REFS)
-    inline QDBusUnixFileDescriptor &operator=(QDBusUnixFileDescriptor &&other)
-    { d.swap(other.d); return *this; }
-#endif
-
 protected:
     typedef QExplicitlySharedDataPointer<QDBusUnixFileDescriptorPrivate>  Data;
     Data d;
diff --git a/src/dbus/qdbusvirtualobject.h b/src/dbus/qdbusvirtualobject.h
index 469c41f..740c5f7 100644
--- a/src/dbus/qdbusvirtualobject.h
+++ b/src/dbus/qdbusvirtualobject.h
@@ -51,7 +51,7 @@ class Q_DBUS_EXPORT QDBusVirtualObject : public QObject
 {
     Q_OBJECT
 public:
-    explicit QDBusVirtualObject(QObject *parent = 0);
+    explicit QDBusVirtualObject(QObject *parent = Q_NULLPTR);
     virtual ~QDBusVirtualObject();
 
     virtual QString introspect(const QString &path) const = 0;
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to