File 0004-Remove-duplicated-code-from-DBusMenu-importer.patch of Package plasma5-workspace

From aaa66e47d98bbf16f5a474cf6510daf6b35356e2 Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Thu, 5 Jan 2017 16:33:48 +0000
Subject: [PATCH 04/44] Remove duplicated code from DBusMenu importer

---
 appmenu/menuimporter.cpp   | 34 +---------------------------------
 appmenu/menuimporter.h     | 12 ------------
 dataengines/CMakeLists.txt |  4 +---
 3 files changed, 2 insertions(+), 48 deletions(-)

diff --git a/appmenu/menuimporter.cpp b/appmenu/menuimporter.cpp
index 319c8f0b..edae0918 100644
--- a/appmenu/menuimporter.cpp
+++ b/appmenu/menuimporter.cpp
@@ -26,6 +26,7 @@
 
 #include "menuimporter.h"
 #include "menuimporteradaptor.h"
+#include "dbusmenutypes_p.h"
 
 #include <QDBusMessage>
 #include <QDBusObjectPath>
@@ -37,39 +38,6 @@
 static const char* DBUS_SERVICE = "com.canonical.AppMenu.Registrar";
 static const char* DBUS_OBJECT_PATH = "/com/canonical/AppMenu/Registrar";
 
-// Marshalling code for DBusMenuLayoutItem
-QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuLayoutItem &obj)
-{
-    argument.beginStructure();
-    argument << obj.id << obj.properties;
-    argument.beginArray(qMetaTypeId<QDBusVariant>());
-    Q_FOREACH(const DBusMenuLayoutItem& child, obj.children) {
-        argument << QDBusVariant(QVariant::fromValue<DBusMenuLayoutItem>(child));
-    }
-    argument.endArray();
-    argument.endStructure();
-    return argument;
-}
-
-const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuLayoutItem &obj)
-{
-    argument.beginStructure();
-    argument >> obj.id >> obj.properties;
-    argument.beginArray();
-    while (!argument.atEnd()) {
-        QDBusVariant dbusVariant;
-        argument >> dbusVariant;
-        QDBusArgument childArgument = dbusVariant.variant().value<QDBusArgument>();
-
-        DBusMenuLayoutItem child;
-        childArgument >> child;
-        obj.children.append(child);
-    }
-    argument.endArray();
-    argument.endStructure();
-    return argument;
-}
-
 MenuImporter::MenuImporter(QObject* parent)
 : QObject(parent)
 , m_serviceWatcher(new QDBusServiceWatcher(this))
diff --git a/appmenu/menuimporter.h b/appmenu/menuimporter.h
index d8d104e6..d0ec1e82 100644
--- a/appmenu/menuimporter.h
+++ b/appmenu/menuimporter.h
@@ -39,18 +39,6 @@ class QDBusPendingCallWatcher;
 class QDBusServiceWatcher;
 class QMenu;
 
-/**
- * Represents an item with its children. GetLayout() returns a
- * DBusMenuLayoutItemList.
- */
-struct DBusMenuLayoutItem
-{
-    int id;
-    QVariantMap properties;
-    QList<DBusMenuLayoutItem> children;
-};
-Q_DECLARE_METATYPE(DBusMenuLayoutItem)
-
 class MenuImporter : public QObject, protected QDBusContext
 {
     Q_OBJECT
diff --git a/dataengines/CMakeLists.txt b/dataengines/CMakeLists.txt
index a0b14dd3..9fcdb57a 100644
--- a/dataengines/CMakeLists.txt
+++ b/dataengines/CMakeLists.txt
@@ -24,9 +24,7 @@ add_subdirectory(soliddevice)
 
 add_subdirectory(time)
 add_subdirectory(weather)
-if (TARGET dbusmenu-qt5)
-  add_subdirectory(statusnotifieritem)
-endif ()
+add_subdirectory(statusnotifieritem)
 add_subdirectory(share)
 
 if(Boost_FOUND AND KdepimLibs_FOUND)
-- 
2.12.0

openSUSE Build Service is sponsored by