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