telepathy-qt: Tools/qt-types-gen: Added QDBusArgument stream operators for lists.

Alexandr Akulich kaffeine at kemper.freedesktop.org
Sun Jun 12 11:22:29 UTC 2016


Module: telepathy-qt
Branch: master
Commit: 8864249479ea2adbb5c88378aa082fa18d55f6b0
URL:    http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=8864249479ea2adbb5c88378aa082fa18d55f6b0

Author: Alexandr Akulich <akulichalexander at gmail.com>
Date:   Fri Jun 10 20:49:56 2016 +0500

Tools/qt-types-gen: Added QDBusArgument stream operators for lists.

Previously we used operators are now deprecated and will be removed in Qt-5.8.

---

 tools/qt-types-gen.py | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/tools/qt-types-gen.py b/tools/qt-types-gen.py
index b87c365..9a234da 100644
--- a/tools/qt-types-gen.py
+++ b/tools/qt-types-gen.py
@@ -302,6 +302,40 @@ TP_QT_NO_EXPORT void _registerTypes()
             self.decl(self.faketype(val, real))
             self.to_declare.append(self.namespace + '::' + val)
 
+            self.both('%s QDBusArgument& operator<<(QDBusArgument& arg, const %s &list)' %
+                    (self.visibility, val))
+            self.decl(';\n')
+            self.impl("""
+{
+    int id = qMetaTypeId<%s>();
+    arg.beginArray(id);
+    for (int i = 0; i < list.count(); ++i) {
+        arg << list.at(i);
+    }
+    arg.endArray();
+    return arg;
+}
+
+""" % (array_of))
+
+            self.both('%s const QDBusArgument& operator>>(const QDBusArgument& arg, %s &list)' %
+                    (self.visibility, val))
+            self.decl(';\n\n')
+            self.impl("""
+{
+    arg.beginArray();
+    list.clear();
+    while (!arg.atEnd()) {
+        %s item;
+        arg >> item;
+        list.append(item);
+    }
+    arg.endArray();
+    return arg;
+}
+
+""" % (array_of))
+
         structs = self.spec.getElementsByTagNameNS(NS_TP, 'struct')
         mappings = self.spec.getElementsByTagNameNS(NS_TP, 'mapping')
         exts = self.spec.getElementsByTagNameNS(NS_TP, 'external-type')



More information about the telepathy-commits mailing list