OSDN Git Service

use constructor function to register types
authorIvailo Monev <xakepa10@gmail.com>
Sat, 24 Apr 2021 16:16:32 +0000 (19:16 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Sat, 24 Apr 2021 16:16:32 +0000 (19:16 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/dbusmenuexporterdbus_p.cpp
src/dbusmenuimporter.cpp
src/dbusmenutypes_p.cpp
src/dbusmenutypes_p.h

index b9417f6..dbfe81c 100644 (file)
@@ -40,7 +40,6 @@ DBusMenuExporterDBus::DBusMenuExporterDBus(DBusMenuExporter *exporter)
 , m_exporter(exporter)
 , m_status("normal")
 {
-    DBusMenuTypes_register();
     new DbusmenuAdaptor(this);
 }
 
index ce6ef18..9f5acbd 100644 (file)
@@ -329,8 +329,6 @@ DBusMenuImporter::DBusMenuImporter(const QString &service, const QString &path,
 : QObject(parent)
 , d(new DBusMenuImporterPrivate)
 {
-    DBusMenuTypes_register();
-
     d->q = this;
     d->m_interface = new QDBusInterface(service, path, DBUSMENU_INTERFACE, QDBusConnection::sessionBus(), this);
     d->m_menu = 0;
index 73e68a0..c04249f 100644 (file)
@@ -95,12 +95,8 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuLayoutIte
     return argument;
 }
 
-void DBusMenuTypes_register()
+int DBusMenuTypes_register()
 {
-    static bool registered = false;
-    if (registered) {
-        return;
-    }
     qDBusRegisterMetaType<DBusMenuItem>();
     qDBusRegisterMetaType<DBusMenuItemList>();
     qDBusRegisterMetaType<DBusMenuItemKeys>();
@@ -108,5 +104,7 @@ void DBusMenuTypes_register()
     qDBusRegisterMetaType<DBusMenuLayoutItem>();
     qDBusRegisterMetaType<DBusMenuLayoutItemList>();
     qDBusRegisterMetaType<DBusMenuShortcut>();
-    registered = true;
+    return 0;
 }
+
+Q_CONSTRUCTOR_FUNCTION(DBusMenuTypes_register)
index b381af9..9b901ae 100644 (file)
@@ -90,6 +90,4 @@ DBUSMENU_EXPORT const QDBusArgument &operator>>(const QDBusArgument &argument, D
 typedef QList<DBusMenuLayoutItem> DBusMenuLayoutItemList;
 
 Q_DECLARE_METATYPE(DBusMenuLayoutItemList)
-
-void DBusMenuTypes_register();
 #endif /* DBUSMENUTYPES_P_H */