18#include "sharedlomirimenumodel.h"
19#include "lomirimenumodelcache.h"
21#include <ayatanamenumodel.h>
23SharedLomiriMenuModel::SharedLomiriMenuModel(QObject* parent)
28QByteArray SharedLomiriMenuModel::busName()
const
33void SharedLomiriMenuModel::setBusName(
const QByteArray& busName)
35 if (m_busName != busName) {
37 Q_EMIT busNameChanged();
42QByteArray SharedLomiriMenuModel::menuObjectPath()
const
44 return m_menuObjectPath;
47void SharedLomiriMenuModel::setMenuObjectPath(
const QByteArray& menuObjectPath)
49 if (m_menuObjectPath != menuObjectPath) {
50 m_menuObjectPath = menuObjectPath;
51 Q_EMIT menuObjectPathChanged();
56QVariantMap SharedLomiriMenuModel::actions()
const
61void SharedLomiriMenuModel::setActions(
const QVariantMap& actions)
63 if (m_actions != actions) {
65 Q_EMIT actionsChanged();
70AyatanaMenuModel* SharedLomiriMenuModel::model()
const
72 return m_model ? m_model.data() :
nullptr;
75void SharedLomiriMenuModel::initialize()
77 if (m_busName.isEmpty() || m_menuObjectPath.isEmpty() || m_actions.isEmpty()) {
78 if (!m_model.isNull()) {
80 Q_EMIT modelChanged();
83 QSharedPointer<AyatanaMenuModel> model = LomiriMenuModelCache::singleton()->model(m_menuObjectPath);
85 if (model != m_model) {
86 if (model->busName() != m_busName) model->setBusName(m_busName);
87 if (model->actions() != m_actions) model->setActions(m_actions);
90 Q_EMIT modelChanged();
92 if (m_model->busName() != m_busName) m_model->setBusName(m_busName);
93 if (m_model->actions() != m_actions) m_model->setActions(m_actions);