on xenial help sign in
fix issues from review
commitbc6b8f224b1e47a3ef57cc4034e160dc53faab1b authorMichael Zanetti <michael.zanetti@canonical.com> dateMon 2 Sep 2013, 17:18 (13 years ago) parentab2455f
1 file changed+21−24
plugins/Unity/Launcher/backend/launcherbackend.cpp+21−24
plugins/Unity/Launcher/backend/launcherbackend.cpp+21−24
@@ -29,6 +29,8 @@
2929class LauncherBackendItem
3030{
3131public:
32+ LauncherBackendItem(): pinned(false) {}
33+
3234 QString desktopFile;
3335 QString displayName;
3436 QString icon;
@@ -71,19 +73,14 @@ void LauncherBackend::setStoredApplications(const QStringList &appIds)
7173 }
7274 }
7375 m_storedApps = appIds;
74− Q_FOREACH(const QString &appId, m_storedApps) {
75− if (!m_itemCache.contains(appId)) {
76− LauncherBackendItem *item = new LauncherBackendItem();
77− m_itemCache.insert(appId, item);
78− }
79− }
8076 syncToAccounts();
8177}
8278
8379QString LauncherBackend::desktopFile(const QString &appId) const
8480{
85− if (m_itemCache.contains(appId)) {
86− return m_itemCache.value(appId)->desktopFile;
81+ LauncherBackendItem *item = m_itemCache.value(appId);
82+ if (item) {
83+ return item->desktopFile;
8784 }
8885
8986 return findDesktopFile(appId);
@@ -91,8 +88,9 @@ QString LauncherBackend::desktopFile(const QString &appId) const
9188
9289QString LauncherBackend::displayName(const QString &appId) const
9390{
94− if (m_itemCache.contains(appId)) {
95− return m_itemCache.value(appId)->displayName;
91+ LauncherBackendItem *item = m_itemCache.value(appId);
92+ if (item) {
93+ return item->displayName;
9694 }
9795
9896 QString df = findDesktopFile(appId);
@@ -108,8 +106,9 @@ QString LauncherBackend::displayName(const QString &appId) const
108106QString LauncherBackend::icon(const QString &appId) const
109107{
110108 QString iconName;
111− if (m_itemCache.contains(appId)) {
112− iconName = m_itemCache.value(appId)->icon;
109+ LauncherBackendItem *item = m_itemCache.value(appId);
110+ if (item) {
111+ iconName = item->icon;
113112 } else {
114113 QString df = findDesktopFile(appId);
115114 if (!df.isEmpty()) {
@@ -128,17 +127,10 @@ QString LauncherBackend::icon(const QString &appId) const
128127
129128bool LauncherBackend::isPinned(const QString &appId) const
130129{
131− if (m_itemCache.contains(appId)) {
132− return m_itemCache.value(appId)->pinned;
133− }
134−
135− QString df = findDesktopFile(appId);
136− if (!df.isEmpty()) {
137− LauncherBackendItem *item = parseDesktopFile(df);
138− m_itemCache.insert(appId, item);
130+ LauncherBackendItem *item = m_itemCache.value(appId);
131+ if (item) {
139132 return item->pinned;
140133 }
141−
142134 return false;
143135}
144136
@@ -149,6 +141,10 @@ void LauncherBackend::setPinned(const QString &appId, bool pinned)
149141 }
150142
151143 LauncherBackendItem *item = m_itemCache.value(appId);
144+ if (!item) {
145+ item = new LauncherBackendItem();
146+ m_itemCache.insert(appId, item);
147+ }
152148 if (item->pinned != pinned) {
153149 item->pinned = pinned;
154150 syncToAccounts();
@@ -288,11 +284,12 @@ void LauncherBackend::loadFromVariant(const QVariantMap &details)
288284 }
289285 QString appId = details.value("id").toString();
290286
291− if (m_itemCache.contains(appId)) {
292− delete m_itemCache.value(appId);
287+ LauncherBackendItem *item = m_itemCache.value(appId);
288+ if (item) {
289+ delete item;
293290 }
294291
295− LauncherBackendItem *item = new LauncherBackendItem();
292+ item = new LauncherBackendItem();
296293
297294 item->desktopFile = details.value("desktopFile").toString();
298295 item->displayName = details.value("name").toString();