on xenial help sign in
distinguish between appId and desktopFile
1a63151Michael Zanetti
Launcher/LauncherPanel.qml+1−1
@@ -140,7 +140,7 @@ Item {
140 maxAngle: 60
140 maxAngle: 60
141
141
142 onClicked: {
142 onClicked: {
143− root.applicationSelected("/usr/share/applications/" + LauncherModel.get(index).desktopFile);
143+ root.applicationSelected(LauncherModel.get(index).desktopFile);
144 }
144 }
145 }
145 }
146
146
plugins/Unity/Launcher/backend/launcherbackend.cpp+6
@@ -56,6 +56,12 @@ void LauncherBackend::setStoredApplications(const QStringList &appIds)
56 // TODO: Cleanup pinned state from settings for apps not in list any more.
56 // TODO: Cleanup pinned state from settings for apps not in list any more.
57}
57}
58
58
59+QString LauncherBackend::desktopFile(const QString &appId) const
60+{
61+ // TODO: return real path instead of this hardcoded one
62+ return QLatin1String("/usr/share/applications/") + appId;
63+}
64+
59QString LauncherBackend::displayName(const QString &appId) const
65QString LauncherBackend::displayName(const QString &appId) const
60{
66{
61 // TODO: get stuff from desktop files instead this hardcoded map
67 // TODO: get stuff from desktop files instead this hardcoded map
plugins/Unity/Launcher/backend/launcherbackend.h+6
@@ -54,6 +54,12 @@ public:
54 */
54 */
55 void setStoredApplications(const QStringList &appIds);
55 void setStoredApplications(const QStringList &appIds);
56
56
57+ /**
58+ * @brief Get the full path to the .desktop file.
59+ * @returns The full path to the .dekstop file.
60+ */
61+ QString desktopFile(const QString &appId) const;
62+
57 /**
63 /**
58 * @brief Get the user friendly name of an application.
64 * @brief Get the user friendly name of an application.
59 * @param appId The ID of the application.
65 * @param appId The ID of the application.
plugins/Unity/Launcher/launcheritem.cpp+7−1
@@ -19,8 +19,9 @@
19
19
20#include "launcheritem.h"
20#include "launcheritem.h"
21
21
22−LauncherItem::LauncherItem(const QString &desktopFile, const QString &name, const QString &icon, QObject *parent) :
22+LauncherItem::LauncherItem(const QString &appId, const QString &desktopFile, const QString &name, const QString &icon, QObject *parent) :
23 LauncherItemInterface(parent),
23 LauncherItemInterface(parent),
24+ m_appId(appId),
24 m_desktopFile(desktopFile),
25 m_desktopFile(desktopFile),
25 m_name(name),
26 m_name(name),
26 m_icon(icon),
27 m_icon(icon),
@@ -33,6 +34,11 @@ LauncherItem::LauncherItem(const QString &desktopFile, const QString &name, cons
33
34
34}
35}
35
36
37+QString LauncherItem::appId()
38+{
39+ return m_appId;
40+}
41+
36QString LauncherItem::desktopFile() const
42QString LauncherItem::desktopFile() const
37{
43{
38 return m_desktopFile;
44 return m_desktopFile;
plugins/Unity/Launcher/launcheritem.h+4−1
@@ -28,7 +28,9 @@ class LauncherItem: public LauncherItemInterface
28{
28{
29 Q_OBJECT
29 Q_OBJECT
30public:
30public:
31− LauncherItem(const QString &desktopFile, const QString &name, const QString &icon, QObject *parent = 0);
31+ LauncherItem(const QString &appId, const QString &desktopFile, const QString &name, const QString &icon, QObject *parent = 0);
32+
33+ QString appId();
32
34
33 QString desktopFile() const;
35 QString desktopFile() const;
34
36
@@ -55,6 +57,7 @@ Q_SIGNALS:
55 void runningChanged(bool running);
57 void runningChanged(bool running);
56
58
57private:
59private:
60+ QString m_appId;
58 QString m_desktopFile;
61 QString m_desktopFile;
59 QString m_name;
62 QString m_name;
60 QString m_icon;
63 QString m_icon;
plugins/Unity/Launcher/launchermodel.cpp+7−3
@@ -29,7 +29,11 @@ LauncherModel::LauncherModel(QObject *parent):
29{
29{
30 Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
30 Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
31 qDebug() << "adding app" << entry;
31 qDebug() << "adding app" << entry;
32− LauncherItem *item = new LauncherItem(entry, m_backend->displayName(entry), m_backend->icon(entry), this);
32+ LauncherItem *item = new LauncherItem(entry,
33+ m_backend->desktopFile(entry),
34+ m_backend->displayName(entry),
35+ m_backend->icon(entry),
36+ this);
33 if (m_backend->isPinned(entry)) {
37 if (m_backend->isPinned(entry)) {
34 item->setFavorite(true);
38 item->setFavorite(true);
35 } else {
39 } else {
@@ -97,7 +101,7 @@ void LauncherModel::pin(int index)
97 item->setFavorite(true);
101 item->setFavorite(true);
98 item->setRecent(false);
102 item->setRecent(false);
99
103
100− m_backend->setPinned(item->desktopFile(), true);
104+ m_backend->setPinned(item->appId(), true);
101
105
102 QModelIndex modelIndex = this->index(index);
106 QModelIndex modelIndex = this->index(index);
103 Q_EMIT dataChanged(modelIndex, modelIndex);
107 Q_EMIT dataChanged(modelIndex, modelIndex);
@@ -122,7 +126,7 @@ void LauncherModel::storeAppList()
122 QStringList appIds;
126 QStringList appIds;
123 Q_FOREACH(LauncherItem *item, m_list) {
127 Q_FOREACH(LauncherItem *item, m_list) {
124 if (item->favorite() || item->recent()) {
128 if (item->favorite() || item->recent()) {
125− appIds << item->desktopFile();
129+ appIds << item->appId();
126 }
130 }
127 }
131 }
128 m_backend->setStoredApplications(appIds);
132 m_backend->setStoredApplications(appIds);