From d55f2b1fb9c910bc118f75967a0e6273f8aa98d1 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 14 May 2016 07:09:33 +0200 Subject: Revert "QDBusArgument: remove useless op<< overloads" This reverts commit 5f542f3cca13f2da58b82aee2efbaffefeee00a7, since it breaks streaming of types derived from QList and the docs state that this should be possible without providing custom op<> for such types. Task-number: QTBUG-53376 Change-Id: I2bde714ac384f2aed67ad30decea702fb79aef1b Reviewed-by: Alex Blasche Reviewed-by: Thiago Macieira --- src/dbus/qdbusargument.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/dbus/qdbusargument.h') diff --git a/src/dbus/qdbusargument.h b/src/dbus/qdbusargument.h index b4e46eb1c6..85469fbc3d 100644 --- a/src/dbus/qdbusargument.h +++ b/src/dbus/qdbusargument.h @@ -261,6 +261,35 @@ inline const QDBusArgument &operator>>(const QDBusArgument &arg, Container &l return arg; } +// QList specializations +template +inline QDBusArgument &operator<<(QDBusArgument &arg, const QList &list) +{ + int id = qMetaTypeId(); + arg.beginArray(id); + typename QList::ConstIterator it = list.constBegin(); + typename QList::ConstIterator end = list.constEnd(); + for ( ; it != end; ++it) + arg << *it; + arg.endArray(); + return arg; +} + +template +inline const QDBusArgument &operator>>(const QDBusArgument &arg, QList &list) +{ + arg.beginArray(); + list.clear(); + while (!arg.atEnd()) { + T item; + arg >> item; + list.push_back(item); + } + arg.endArray(); + + return arg; +} + inline QDBusArgument &operator<<(QDBusArgument &arg, const QVariantList &list) { int id = qMetaTypeId(); @@ -273,6 +302,7 @@ inline QDBusArgument &operator<<(QDBusArgument &arg, const QVariantList &list) return arg; } +// QMap specializations template inline QDBusArgument &operator<<(QDBusArgument &arg, const QMap &map) { @@ -321,6 +351,7 @@ inline QDBusArgument &operator<<(QDBusArgument &arg, const QVariantMap &map) return arg; } +// QHash specializations template inline QDBusArgument &operator<<(QDBusArgument &arg, const QHash &map) { -- cgit v1.2.3