on xenial help sign in
Getting a count and a visible marker in the per item object
4b25f39Ted Gould
plugins/Unity/Launcher/backend/launcherbackend.cpp+24−3
@@ -34,6 +34,8 @@ public:
34 QString desktopFile;
34 QString desktopFile;
35 QString displayName;
35 QString displayName;
36 QString icon;
36 QString icon;
37+ int count;
38+ bool countVisible;
37};
39};
38
40
39LauncherBackend::LauncherBackend(QObject *parent):
41LauncherBackend::LauncherBackend(QObject *parent):
@@ -153,10 +155,25 @@ int LauncherBackend::progress(const QString &appId) const
153
155
154int LauncherBackend::count(const QString &appId) const
156int LauncherBackend::count(const QString &appId) const
155{
157{
156− // TODO: Return value for count emblem.
157 // TODO: emit countChanged() when this value changes.
158 // TODO: emit countChanged() when this value changes.
158− Q_UNUSED(appId)
159+
160+ int count = 0;
161+ LauncherBackendItem *item = m_itemCache.value(appId);
162+ if (!item) {
163+ QString df = findDesktopFile(appId);
164+ if (!df.isEmpty()) {
165+ item = parseDesktopFile(df);
166+ m_itemCache.insert(appId, item);
167+ }
168+ }
169+
170+ if (!item) {
171+ if (item->countVisible) {
172+ count = item->count;
173+ }
174+ }
175+
159− return 0;
176+ return count;
160}
177}
161
178
162void LauncherBackend::setUser(const QString &username)
179void LauncherBackend::setUser(const QString &username)
@@ -295,6 +312,8 @@ void LauncherBackend::loadFromVariant(const QVariantMap &details)
295 item->desktopFile = details.value("desktopFile").toString();
312 item->desktopFile = details.value("desktopFile").toString();
296 item->displayName = details.value("name").toString();
313 item->displayName = details.value("name").toString();
297 item->icon = details.value("icon").toString();
314 item->icon = details.value("icon").toString();
315+ item->count = details.value("count").toInt();
316+ item->countVisible = details.value("countVisible").toBool();
298
317
299 m_itemCache.insert(appId, item);
318 m_itemCache.insert(appId, item);
300 m_storedApps.append(appId);
319 m_storedApps.append(appId);
@@ -308,6 +327,8 @@ QVariantMap LauncherBackend::itemToVariant(const QString &appId) const
308 details.insert("name", item->displayName);
327 details.insert("name", item->displayName);
309 details.insert("icon", item->icon);
328 details.insert("icon", item->icon);
310 details.insert("desktopFile", item->desktopFile);
329 details.insert("desktopFile", item->desktopFile);
330+ details.insert("count", item->count);
331+ details.insert("countVisible", item->countVisible);
311 return details;
332 return details;
312}
333}
313
334