[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:29:50 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=83a56c4

The following commit has been merged in the master branch:
commit 83a56c47e9bdd36bfb6ecb0e11e86cdef4e67b1f
Author: Aleix Pol <aleixpol at kde.org>
Date:   Wed Jun 24 20:04:33 2015 +0200

    Drop NetworkPackage QObject heritage
    
    It was only used for introspection and we can use Q_GADGET for that.
    Make the NetworkPackage objects much lighter.
    
    REVIEW: 124166
---
 core/networkpackage.cpp | 20 +++++++++++---------
 core/networkpackage.h   |  5 ++---
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/core/networkpackage.cpp b/core/networkpackage.cpp
index e572a89..570c2d2 100644
--- a/core/networkpackage.cpp
+++ b/core/networkpackage.cpp
@@ -73,13 +73,14 @@ void NetworkPackage::createIdentityPackage(NetworkPackage* np)
     //qCDebug(KDECONNECT_CORE) << "createIdentityPackage" << np->serialize();
 }
 
-QVariantMap qobject2qvariant(const QObject* object)
+template<class T>
+QVariantMap qobject2qvariant(const T* object)
 {
     QVariantMap map;
-    auto metaObject = object->metaObject();
-    for(int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i) {
-        const char *name = metaObject->property(i).name();
-        map.insert(QString::fromLatin1(name), object->property(name));
+    auto metaObject = T::staticMetaObject;
+    for(int i = metaObject.propertyOffset(); i < metaObject.propertyCount(); ++i) {
+        QMetaProperty prop = metaObject.property(i);
+        map.insert(QString::fromLatin1(prop.name()), prop.readOnGadget(object));
     }
 
     return map;
@@ -115,18 +116,19 @@ QByteArray NetworkPackage::serialize() const
     return json;
 }
 
-void qvariant2qobject(const QVariantMap& variant, QObject* object)
+template <class T>
+void qvariant2qobject(const QVariantMap& variant, T* object)
 {
     for ( QVariantMap::const_iterator iter = variant.begin(); iter != variant.end(); ++iter )
     {
-        const int propertyIndex = object->metaObject()->indexOfProperty(iter.key().toLatin1());
+        const int propertyIndex = T::staticMetaObject.indexOfProperty(iter.key().toLatin1());
         if (propertyIndex < 0) {
             qCWarning(KDECONNECT_CORE) << "missing property" << object << iter.key();
             continue;
         }
 
-        QMetaProperty property = object->metaObject()->property(propertyIndex);
-        bool ret = property.write(object, *iter);
+        QMetaProperty property = T::staticMetaObject.property(propertyIndex);
+        bool ret = property.writeOnGadget(object, *iter);
         if (!ret) {
             qCWarning(KDECONNECT_CORE) << "couldn't set" << object << "->" << property.name() << '=' << *iter;
         }
diff --git a/core/networkpackage.h b/core/networkpackage.h
index e848163..b1bf107 100644
--- a/core/networkpackage.h
+++ b/core/networkpackage.h
@@ -35,10 +35,9 @@
 
 class FileTransferJob;
 
-// TODO: investigate if we can turn into Q_GADGET, drop QObject
-class KDECONNECTCORE_EXPORT NetworkPackage : public QObject
+class KDECONNECTCORE_EXPORT NetworkPackage
 {
-    Q_OBJECT
+    Q_GADGET
     Q_PROPERTY( QString id READ id WRITE setId )
     Q_PROPERTY( QString type READ type WRITE setType )
     Q_PROPERTY( QVariantMap body READ body WRITE setBody )

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list