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 }