20 #include "unitymenumodelcache.h"
21 #include <unitymenumodel.h>
23 UnityMenuModelCache::UnityMenuModelCache(QObject* parent)
28 UnityMenuModelCache::~UnityMenuModelCache()
32 UnityMenuModel* UnityMenuModelCache::model(
const QByteArray& bus,
33 const QByteArray& path,
34 const QVariantMap& actions)
36 if (m_registry.contains(path))
37 return m_registry[path];
39 UnityMenuModel* menuModel =
new UnityMenuModel;
40 connect(menuModel, &QObject::destroyed,
this, [menuModel,
this](QObject*) {
41 QList<QByteArray> keys = m_registry.keys(menuModel);
42 Q_FOREACH(
const QByteArray& key, keys) {
43 m_registry.remove(key);
46 m_registry[path] = menuModel;
48 menuModel->setBusName(bus);
49 menuModel->setMenuObjectPath(path);
50 menuModel->setActions(actions);
54 bool UnityMenuModelCache::contains(
const QByteArray& path)
56 return m_registry.contains(path);