20#include "lomirimenumodelpaths.h"
21#include <QDBusArgument>
23static QVariant parseVariantData(
const QVariant& var);
25const QDBusArgument &operator>>(
const QDBusArgument &arg, QVariantMap &map)
29 while (!arg.atEnd()) {
35 map.insertMulti(key, parseVariantData(value));
43static QVariant parseVariantData(
const QVariant& var) {
44 if ((
int)var.type() == QMetaType::User && var.userType() == qMetaTypeId<QDBusArgument>()) {
45 QDBusArgument arg(var.value<QDBusArgument>());
46 if (arg.currentType() == QDBusArgument::MapType) {
51 return arg.asVariant();
57LomiriMenuModelPaths::LomiriMenuModelPaths(QObject *parent)
62QVariant LomiriMenuModelPaths::source()
const
67void LomiriMenuModelPaths::setSource(
const QVariant& data)
69 if (m_sourceData != data) {
71 Q_EMIT sourceChanged();
77void LomiriMenuModelPaths::updateData()
79 QVariantMap dataMap = parseVariantData(m_sourceData).toMap();
81 if (!m_busNameHint.isEmpty() && dataMap.contains(m_busNameHint)) {
82 setBusName(dataMap[m_busNameHint].toByteArray());
87 if (!m_menuObjectPathHint.isEmpty() && dataMap.contains(m_menuObjectPathHint)) {
88 setMenuObjectPath(dataMap[m_menuObjectPathHint].toByteArray());
90 setMenuObjectPath(
"");
93 if (!m_actionsHint.isEmpty() && dataMap.contains(m_actionsHint)) {
94 setActions(dataMap[m_actionsHint].toMap());
96 setActions(QVariantMap());
100QByteArray LomiriMenuModelPaths::busName()
const
105void LomiriMenuModelPaths::setBusName(
const QByteArray &name)
107 if (m_busName != name) {
109 Q_EMIT busNameChanged();
113QVariantMap LomiriMenuModelPaths::actions()
const
118void LomiriMenuModelPaths::setActions(
const QVariantMap &actions)
120 if (m_actions != actions) {
122 Q_EMIT actionsChanged();
126QByteArray LomiriMenuModelPaths::menuObjectPath()
const
128 return m_menuObjectPath;
131void LomiriMenuModelPaths::setMenuObjectPath(
const QByteArray &path)
133 if (m_menuObjectPath != path) {
134 m_menuObjectPath = path;
135 Q_EMIT menuObjectPathChanged();
139QByteArray LomiriMenuModelPaths::busNameHint()
const
141 return m_busNameHint;
144void LomiriMenuModelPaths::setBusNameHint(
const QByteArray &nameHint)
146 if (m_busNameHint != nameHint) {
147 m_busNameHint = nameHint;
148 Q_EMIT busNameHintChanged();
154QByteArray LomiriMenuModelPaths::actionsHint()
const
156 return m_actionsHint;
159void LomiriMenuModelPaths::setActionsHint(
const QByteArray &actionsHint)
161 if (m_actionsHint != actionsHint) {
162 m_actionsHint = actionsHint;
163 Q_EMIT actionsHintChanged();
169QByteArray LomiriMenuModelPaths::menuObjectPathHint()
const
171 return m_menuObjectPathHint;
174void LomiriMenuModelPaths::setMenuObjectPathHint(
const QByteArray &pathHint)
176 if (m_menuObjectPathHint != pathHint) {
177 m_menuObjectPathHint = pathHint;
178 Q_EMIT menuObjectPathHintChanged();