File indexing completed on 2024-05-05 17:43:52

0001 /*
0002     SPDX-FileCopyrightText: 2018 Kai Uwe Broulik <kde@privat.broulik.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 
0007 #include "gdbusmenutypes_p.h"
0008 
0009 #include <QDBusArgument>
0010 #include <QDBusMetaType>
0011 
0012 // GMenuItem
0013 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuItem &item)
0014 {
0015     argument.beginStructure();
0016     argument << item.id << item.section << item.items;
0017     argument.endStructure();
0018     return argument;
0019 }
0020 
0021 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuItem &item)
0022 {
0023     argument.beginStructure();
0024     argument >> item.id >> item.section >> item.items;
0025     argument.endStructure();
0026     return argument;
0027 }
0028 
0029 // GMenuSection
0030 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuSection &item)
0031 {
0032     argument.beginStructure();
0033     argument << item.subscription << item.menu;
0034     argument.endStructure();
0035     return argument;
0036 }
0037 
0038 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuSection &item)
0039 {
0040     argument.beginStructure();
0041     argument >> item.subscription >> item.menu;
0042     argument.endStructure();
0043     return argument;
0044 }
0045 
0046 // GMenuChange
0047 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuChange &item)
0048 {
0049     argument.beginStructure();
0050     argument << item.subscription << item.menu << item.changePosition << item.itemsToRemoveCount << item.itemsToInsert;
0051     argument.endStructure();
0052     return argument;
0053 }
0054 
0055 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuChange &item)
0056 {
0057     argument.beginStructure();
0058     argument >> item.subscription >> item.menu >> item.changePosition >> item.itemsToRemoveCount >> item.itemsToInsert;
0059     argument.endStructure();
0060     return argument;
0061 }
0062 
0063 // GMenuActionProperty
0064 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuAction &item)
0065 {
0066     argument.beginStructure();
0067     argument << item.enabled << item.signature << item.state;
0068     argument.endStructure();
0069     return argument;
0070 }
0071 
0072 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuAction &item)
0073 {
0074     argument.beginStructure();
0075     argument >> item.enabled >> item.signature >> item.state;
0076     argument.endStructure();
0077     return argument;
0078 }
0079 
0080 // GMenuActionsChange
0081 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuActionsChange &item)
0082 {
0083     argument.beginStructure();
0084     argument << item.removed << item.enabledChanged << item.stateChanged << item.added;
0085     argument.endStructure();
0086     return argument;
0087 }
0088 
0089 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuActionsChange &item)
0090 {
0091     argument.beginStructure();
0092     argument >> item.removed >> item.enabledChanged >> item.stateChanged >> item.added;
0093     argument.endStructure();
0094     return argument;
0095 }
0096 
0097 void GDBusMenuTypes_register()
0098 {
0099     static bool registered = false;
0100     if (registered) {
0101         return;
0102     }
0103 
0104     qDBusRegisterMetaType<GMenuItem>();
0105     qDBusRegisterMetaType<GMenuItemList>();
0106 
0107     qDBusRegisterMetaType<GMenuSection>();
0108 
0109     qDBusRegisterMetaType<GMenuChange>();
0110     qDBusRegisterMetaType<GMenuChangeList>();
0111 
0112     qDBusRegisterMetaType<GMenuAction>();
0113     qDBusRegisterMetaType<GMenuActionMap>();
0114 
0115     qDBusRegisterMetaType<GMenuActionsChange>();
0116     qDBusRegisterMetaType<StringBoolMap>();
0117 
0118     registered = true;
0119 }