@@ -31,22 +31,7 @@ LauncherBackend::LauncherBackend(QObject *parent):
3131 QObject(parent)
3232{
3333 m_accounts = new AccountsService(this);
34− syncFromAccounts();
35−
36− // TODO: load default pinned ones from default config, instead of hardcoding here...
37− if (m_storedApps.isEmpty()) {
38− setStoredApplications(QStringList() <<
39− "phone-app.desktop" <<
40− "camera-app.desktop" <<
41− "gallery-app.desktop" <<
42− "facebook-webapp.desktop" <<
43− "webbrowser-app.desktop" <<
44− "twitter-webapp.desktop" <<
45− "gmail-webapp.desktop" <<
46− "ubuntu-weather-app.desktop" <<
47− "notes-app.desktop" <<
48− "calendar-app.desktop");
49− }
34+ setUser(qgetenv("USER"));
5035}
5136
5237LauncherBackend::~LauncherBackend()
@@ -165,6 +150,12 @@ int LauncherBackend::count(const QString &appId) const
165150 return 0;
166151}
167152
153+void LauncherBackend::setUser(const QString &username)
154+{
155+ m_user = username;
156+ syncFromAccounts();
157+}
158+
168159void LauncherBackend::triggerQuickListAction(const QString &appId, const QString &quickListId)
169160{
170161 // TODO: execute the given quicklist action
@@ -174,11 +165,28 @@ void LauncherBackend::triggerQuickListAction(const QString &appId, const QString
174165
175166void LauncherBackend::syncFromAccounts()
176167{
177− auto username = qgetenv("USER");
178− if (username != "") {
179− auto itemsVariant = m_accounts->getUserProperty(username, "launcher-items");
180− setStoredApplications(itemsVariant.toStringList());
168+ auto appIds = QStringList();
169+
170+ if (m_user != "") {
171+ appIds = m_accounts->getUserProperty(m_user, "launcher-items").toStringList();
181172 }
173+
174+ // TODO: load default pinned ones from default config, instead of hardcoding here...
175+ if (appIds.isEmpty()) {
176+ appIds <<
177+ "phone-app.desktop" <<
178+ "camera-app.desktop" <<
179+ "gallery-app.desktop" <<
180+ "facebook-webapp.desktop" <<
181+ "webbrowser-app.desktop" <<
182+ "twitter-webapp.desktop" <<
183+ "gmail-webapp.desktop" <<
184+ "ubuntu-weather-app.desktop" <<
185+ "notes-app.desktop" <<
186+ "calendar-app.desktop";
187+ }
188+
189+ setStoredApplications(appIds);
182190}
183191
184192void LauncherBackend::syncToAccounts()
@@ -190,9 +198,8 @@ void LauncherBackend::syncToAccounts()
190198 }
191199 }
192200
193− auto username = qgetenv("USER");
194− if (username != "") {
195− m_accounts->setUserProperty(username, "launcher-items", QVariant(pinnedItems));
201+ if (m_user != "") {
202+ m_accounts->setUserProperty(m_user, "launcher-items", QVariant(pinnedItems));
196203 }
197204}
198205