24GSettings::GSettings(QObject *parent):
27 m_gSettings =
new QGSettings(
"com.lomiri.Shell.Launcher",
"/com/lomiri/shell/launcher/",
this);
28 connect(m_gSettings, &QGSettings::changed,
this, &GSettings::onSettingsChanged);
31QStringList GSettings::storedApplications()
const
33 QStringList storedApps;
35 const QString items = QStringLiteral(
"items");
36 Q_FOREACH(
const QString &entry, m_gSettings->get(items).toStringList()) {
37 if (entry.startsWith(QLatin1String(
"application:///"))) {
39 QString appId = entry;
41 appId.remove(QRegExp(QStringLiteral(
"^application:///")));
42 appId.remove(QRegExp(QStringLiteral(
".desktop$")));
44 }
else if (entry.startsWith(QLatin1String(
"appid://"))) {
45 QString appId = entry;
46 appId.remove(QStringLiteral(
"appid://"));
47 const QStringList splittedAppId = appId.split(
'/');
48 if (splittedAppId.count() == 3) {
50 appId = splittedAppId.first() +
"_" + splittedAppId.at(1);
58void GSettings::setStoredApplications(
const QStringList &storedApplications)
60 QStringList gSettingsList;
61 gSettingsList.reserve(storedApplications.count());
62 Q_FOREACH(
const QString &entry, storedApplications) {
63 gSettingsList << QStringLiteral(
"appid://%1").arg(entry);
67 m_cachedItems = gSettingsList;
68 m_gSettings->set(QStringLiteral(
"items"), gSettingsList);
71void GSettings::onSettingsChanged(
const QString &key)
73 if (key == QLatin1String(
"items")) {
74 const QStringList cachedItems = m_gSettings->get(QStringLiteral(
"items")).toStringList();
75 if (m_cachedItems != cachedItems) {
76 m_cachedItems = cachedItems;