20 #include "gsettings.h"
24 GSettings::GSettings(QObject *parent):
27 m_gSettings =
new QGSettings(
"com.canonical.Unity.Launcher",
"/com/canonical/unity/launcher/",
this);
28 connect(m_gSettings, &QGSettings::changed,
this, &GSettings::onSettingsChanged);
31 QStringList GSettings::storedApplications()
const
33 QStringList storedApps;
35 Q_FOREACH(
const QString &entry, m_gSettings->get(
"items").toStringList()) {
36 if (entry.startsWith(
"application:///")) {
38 QString appId = entry;
40 appId.remove(QRegExp(
"^application:///"));
41 appId.remove(QRegExp(
".desktop$"));
43 }
else if (entry.startsWith(
"appid://")) {
44 QString appId = entry;
45 appId.remove(
"appid://");
46 if (appId.split(
'/').count() == 3) {
48 appId = appId.split(
'/').first() +
"_" + appId.split(
'/').at(1);
56 void GSettings::setStoredApplications(
const QStringList &storedApplications)
58 QStringList gSettingsList;
59 Q_FOREACH(
const QString &entry, storedApplications) {
60 gSettingsList << QString(
"appid://%1").arg(entry);
64 m_cachedItems = gSettingsList;
65 m_gSettings->set(
"items", gSettingsList);
68 void GSettings::onSettingsChanged(
const QString &key)
71 QStringList cachedItems = m_gSettings->get(
"items").toStringList();
72 if (m_cachedItems != cachedItems) {
73 m_cachedItems = cachedItems;