on xenial help sign in
implement missing bits of the "running" interfaces
commitc276a835c097736b9255db23beb6d63cb674ea08 authorLukáš Tinkl <lukas.tinkl@canonical.com> dateTue 7 Jul 2015, 15:18 (11 years ago) parent32ba487
8 files changed+30−6
plugins/Greeter/Unity/Launcher/launchermodelas.cpp+5−1 plugins/Unity/Launcher/asadapter.cpp+1 plugins/Unity/Launcher/asadapter.h−3 plugins/Unity/Launcher/dbusinterface.cpp+9 plugins/Unity/Launcher/dbusinterface.h+1 plugins/Unity/Launcher/gsettings.cpp+1−1 plugins/Unity/Launcher/launchermodel.cpp+12−1 plugins/Unity/Launcher/launchermodel.h+1
plugins/Greeter/Unity/Launcher/launchermodelas.cpp+5−1
@@ -67,6 +67,8 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
6767 return item->progress();
6868 case RoleFocused:
6969 return item->focused();
70+ case RoleRunning:
71+ return item->running();
7072 }
7173
7274 return QVariant();
@@ -208,8 +210,9 @@ void LauncherModel::refresh()
208210 item->setIcon(asItem.toMap().value("icon").toString());
209211 item->setCount(asItem.toMap().value("count").toInt());
210212 item->setCountVisible(asItem.toMap().value("countVisible").toBool());
213+ item->setRunning(asItem.toMap().value("running").toBool());
211214 int idx = m_list.indexOf(item);
212− Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleName << RoleIcon);
215+ Q_EMIT dataChanged(index(idx), index(idx), {RoleName, RoleIcon, RoleCount, RoleCountVisible, RoleRunning});
213216 }
214217 break;
215218 }
@@ -255,6 +258,7 @@ void LauncherModel::refresh()
255258 item->setPinned(true);
256259 item->setCount(entry.toMap().value("count").toInt());
257260 item->setCountVisible(entry.toMap().value("countVisible").toBool());
261+ item->setRunning(entry.toMap().value("running").toBool());
258262 beginInsertRows(QModelIndex(), newPosition, newPosition);
259263 m_list.insert(newPosition, item);
260264 endInsertRows();
plugins/Unity/Launcher/asadapter.cpp+1
@@ -56,5 +56,6 @@ QVariantMap ASAdapter::itemToVariant(LauncherItem *item) const
5656 details.insert("count", item->count());
5757 details.insert("countVisible", item->countVisible());
5858 details.insert("pinned", item->pinned());
59+ details.insert("running", item->running());
5960 return details;
6061}
plugins/Unity/Launcher/asadapter.h−3
@@ -21,7 +21,6 @@
2121
2222class LauncherItem;
2323class AccountsServiceDBusAdaptor;
24−class QDBusInterface;
2524
2625class ASAdapter
2726{
@@ -38,8 +37,6 @@ private:
3837 AccountsServiceDBusAdaptor *m_accounts;
3938 QString m_user;
4039
41− QDBusInterface *m_userInterface;
42−
4340 friend class LauncherModelTest;
4441};
4542
plugins/Unity/Launcher/dbusinterface.cpp+9
@@ -168,6 +168,8 @@ bool DBusInterface::handleMessage(const QDBusMessage& message, const QDBusConnec
168168 retval.append(QVariant::fromValue(QDBusVariant(item->count())));
169169 } else if (message.arguments()[1].toString() == "countVisible") {
170170 retval.append(QVariant::fromValue(QDBusVariant(item->countVisible())));
171+ } else if (message.arguments()[1].toString() == "running") {
172+ retval.append(QVariant::fromValue(QDBusVariant(item->running())));
171173 }
172174 } else if (message.member() == "Set") {
173175 if (message.arguments()[1].toString() == "count") {
@@ -182,12 +184,19 @@ bool DBusInterface::handleMessage(const QDBusMessage& message, const QDBusConnec
182184 Q_EMIT countVisibleChanged(appid, newVisible);
183185 notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "countVisible", newVisible);
184186 }
187+ } else if (message.arguments()[1].toString() == "running") {
188+ bool newRunning = message.arguments()[2].value<QDBusVariant>().variant().toBool();
189+ if (!item || newRunning != item->running()) {
190+ Q_EMIT runningChanged(appid, newRunning);
191+ notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "running", newRunning);
192+ }
185193 }
186194 } else if (message.member() == "GetAll") {
187195 if (item) {
188196 QVariantMap all;
189197 all.insert("count", item->count());
190198 all.insert("countVisible", item->countVisible());
199+ all.insert("running", item->running());
191200 retval.append(all);
192201 }
193202 } else {
plugins/Unity/Launcher/dbusinterface.h+1
@@ -36,6 +36,7 @@ public:
3636Q_SIGNALS:
3737 void countChanged(const QString &appId, int count);
3838 void countVisibleChanged(const QString &appId, bool countVisible);
39+ void runningChanged(const QString &appId, bool running);
3940 void refreshCalled();
4041
4142private:
plugins/Unity/Launcher/gsettings.cpp+1−1
@@ -68,7 +68,7 @@ void GSettings::setStoredApplications(const QStringList &storedApplications)
6868void GSettings::onSettingsChanged(const QString &key)
6969{
7070 if (key == "items") {
71− QStringList cachedItems = m_gSettings->get("items").toStringList();
71+ const QStringList cachedItems = m_gSettings->get("items").toStringList();
7272 if (m_cachedItems != cachedItems) {
7373 m_cachedItems = cachedItems;
7474 Q_EMIT changed();
plugins/Unity/Launcher/launchermodel.cpp+12−1
@@ -36,10 +36,11 @@ LauncherModel::LauncherModel(QObject *parent):
3636 m_settings(new GSettings(this)),
3737 m_dbusIface(new DBusInterface(this)),
3838 m_asAdapter(new ASAdapter()),
39− m_appManager(0)
39+ m_appManager(nullptr)
4040{
4141 connect(m_dbusIface, &DBusInterface::countChanged, this, &LauncherModel::countChanged);
4242 connect(m_dbusIface, &DBusInterface::countVisibleChanged, this, &LauncherModel::countVisibleChanged);
43+ connect(m_dbusIface, &DBusInterface::runningChanged, this, &LauncherModel::runningChanged);
4344 connect(m_dbusIface, &DBusInterface::refreshCalled, this, &LauncherModel::refresh);
4445
4546 connect(m_settings, &GSettings::changed, this, &LauncherModel::refresh);
@@ -334,6 +335,16 @@ void LauncherModel::progressChanged(const QString &appId, int progress)
334335 }
335336}
336337
338+void LauncherModel::runningChanged(const QString &appId, bool running)
339+{
340+ const int idx = findApplication(appId);
341+ if (idx >= 0) {
342+ LauncherItem *item = m_list.at(idx);
343+ item->setRunning(running);
344+ Q_EMIT dataChanged(index(idx), index(idx), {RoleRunning});
345+ }
346+}
347+
337348void LauncherModel::countChanged(const QString &appId, int count)
338349{
339350 const int idx = findApplication(appId);
plugins/Unity/Launcher/launchermodel.h+1
@@ -73,6 +73,7 @@ private Q_SLOTS:
7373 void countChanged(const QString &appId, int count);
7474 void countVisibleChanged(const QString &appId, int count);
7575 void progressChanged(const QString &appId, int progress);
76+ void runningChanged(const QString &appId, bool running);
7677
7778 void applicationAdded(const QModelIndex &parent, int row);
7879 void applicationRemoved(const QModelIndex &parent, int row);