on xenial help sign in
Getting a count and a visible marker in the per item object
commit4b25f39096d6de184e607a2aa4d7cecef631bc21 authorTed Gould <ted@gould.cx> dateMon 7 Apr 2014, 17:04 (13 years ago) parentc54b124
1 file changed+24−3
plugins/Unity/Launcher/backend/launcherbackend.cpp+24−3
plugins/Unity/Launcher/backend/launcherbackend.cpp+24−3
@@ -34,6 +34,8 @@ public:
3434 QString desktopFile;
3535 QString displayName;
3636 QString icon;
37+ int count;
38+ bool countVisible;
3739};
3840
3941LauncherBackend::LauncherBackend(QObject *parent):
@@ -153,10 +155,25 @@ int LauncherBackend::progress(const QString &appId) const
153155
154156int LauncherBackend::count(const QString &appId) const
155157{
156− // TODO: Return value for count emblem.
157158 // TODO: emit countChanged() when this value changes.
158− Q_UNUSED(appId)
159− return 0;
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+
176+ return count;
160177}
161178
162179void LauncherBackend::setUser(const QString &username)
@@ -295,6 +312,8 @@ void LauncherBackend::loadFromVariant(const QVariantMap &details)
295312 item->desktopFile = details.value("desktopFile").toString();
296313 item->displayName = details.value("name").toString();
297314 item->icon = details.value("icon").toString();
315+ item->count = details.value("count").toInt();
316+ item->countVisible = details.value("countVisible").toBool();
298317
299318 m_itemCache.insert(appId, item);
300319 m_storedApps.append(appId);
@@ -308,6 +327,8 @@ QVariantMap LauncherBackend::itemToVariant(const QString &appId) const
308327 details.insert("name", item->displayName);
309328 details.insert("icon", item->icon);
310329 details.insert("desktopFile", item->desktopFile);
330+ details.insert("count", item->count);
331+ details.insert("countVisible", item->countVisible);
311332 return details;
312333}
313334