diff --git a/kcms/activities/CMakeLists.txt b/kcms/activities/CMakeLists.txt --- a/kcms/activities/CMakeLists.txt +++ b/kcms/activities/CMakeLists.txt @@ -51,6 +51,9 @@ features_interface ) +kconfig_add_kcfg_files(KAMD_KCM_SRCS kactivitymanagerd_settings.kcfgc GENERATE_MOC) +kconfig_add_kcfg_files(KAMD_KCM_SRCS kactivitymanagerd_plugins_settings.kcfgc GENERATE_MOC) + add_library (kcm_activities MODULE ${KAMD_KCM_SRCS}) target_link_libraries (kcm_activities @@ -87,3 +90,5 @@ DESTINATION ${KAMD_KCM_DATADIR}/qml ) +install(FILES kactivitymanagerd_settings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) +install(FILES kactivitymanagerd_plugins_settings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) diff --git a/kcms/activities/ExtraActivitiesInterface.cpp b/kcms/activities/ExtraActivitiesInterface.cpp --- a/kcms/activities/ExtraActivitiesInterface.cpp +++ b/kcms/activities/ExtraActivitiesInterface.cpp @@ -31,7 +31,6 @@ #include "utils/dbusfuture_p.h" #include "features_interface.h" -#include "definitions.h" #include "common/dbus/common.h" #define ENABLE_QJSVALUE_CONTINUATION diff --git a/kcms/activities/PrivacyTab.cpp b/kcms/activities/PrivacyTab.cpp --- a/kcms/activities/PrivacyTab.cpp +++ b/kcms/activities/PrivacyTab.cpp @@ -19,6 +19,8 @@ */ #include "PrivacyTab.h" +#include "kactivitymanagerd_settings.h" +#include "kactivitymanagerd_plugins_settings.h" #include #include @@ -34,7 +36,6 @@ #include "ui_PrivacyTabBase.h" #include "BlacklistedApplicationsModel.h" -#include "definitions.h" #include @@ -46,29 +47,34 @@ class PrivacyTab::Private : public Ui::PrivacyTabBase { public: - KSharedConfig::Ptr mainConfig; - KSharedConfig::Ptr pluginConfig; + KActivityManagerdSettings *mainConfig; + KActivityManagerdPluginsSettings *pluginConfig; BlacklistedApplicationsModel *blacklistedApplicationsModel; QObject *viewBlacklistedApplicationsRoot; std::unique_ptr viewBlacklistedApplications; - Private() - : viewBlacklistedApplicationsRoot(nullptr) + Private(QObject *parent) + : mainConfig(new KActivityManagerdSettings(parent)) + , pluginConfig(new KActivityManagerdPluginsSettings(parent)) + , viewBlacklistedApplicationsRoot(nullptr) , viewBlacklistedApplications(nullptr) { } + + ~Private() + { + mainConfig->deleteLater(); + pluginConfig->deleteLater(); + } }; PrivacyTab::PrivacyTab(QWidget *parent) : QWidget(parent) - , d() + , d(this) { d->setupUi(this); - d->mainConfig = KSharedConfig::openConfig(QStringLiteral("kactivitymanagerdrc")); - d->pluginConfig = KSharedConfig::openConfig(QStringLiteral("kactivitymanagerd-pluginsrc")); - // Keep history initialization d->spinKeepHistory->setRange(0, INT_MAX); @@ -122,6 +128,8 @@ connect(d->radioRememberSpecificApplications, &QAbstractButton::toggled, d->checkBlacklistAllNotOnList, &QWidget::setEnabled); + connect(d->checkBlacklistAllNotOnList, &QAbstractButton::toggled, this, &PrivacyTab::changed); + defaults(); d->checkBlacklistAllNotOnList->setEnabled(false); @@ -137,54 +145,44 @@ void PrivacyTab::defaults() { - d->radioRememberAllApplications->click(); - d->spinKeepHistory->setValue(0); d->blacklistedApplicationsModel->defaults(); + + d->radioRememberAllApplications->click(); + d->spinKeepHistory->setValue(d->pluginConfig->defaultKeepHistoryForValue()); + d->checkBlacklistAllNotOnList->setChecked(d->pluginConfig->defaultBlockedByDefaultValue()); } void PrivacyTab::load() { d->blacklistedApplicationsModel->load(); - const auto statisticsConfig - = d->pluginConfig->group(SQLITE_PLUGIN_CONFIG_KEY); - - const auto whatToRemember = static_cast(statisticsConfig.readEntry( - "what-to-remember", static_cast(AllApplications))); + const auto whatToRemember = static_cast(d->pluginConfig->whatToRemember()); d->radioRememberAllApplications->setChecked(whatToRemember == AllApplications); d->radioRememberSpecificApplications->setChecked(whatToRemember == SpecificApplications); d->radioDontRememberApplications->setChecked(whatToRemember == NoApplications); - d->spinKeepHistory->setValue( - statisticsConfig.readEntry("keep-history-for", 0)); - d->checkBlacklistAllNotOnList->setChecked( - statisticsConfig.readEntry("blocked-by-default", false)); + d->spinKeepHistory->setValue(d->pluginConfig->keepHistoryFor()); + d->checkBlacklistAllNotOnList->setChecked(d->pluginConfig->blockedByDefault()); } void PrivacyTab::save() { d->blacklistedApplicationsModel->save(); - auto statisticsConfig = d->pluginConfig->group(SQLITE_PLUGIN_CONFIG_KEY); - const auto whatToRemember = d->radioRememberSpecificApplications->isChecked() ? SpecificApplications : d->radioDontRememberApplications->isChecked() ? NoApplications : /* otherwise */ AllApplications; - statisticsConfig.writeEntry("what-to-remember", static_cast(whatToRemember)); - statisticsConfig.writeEntry("keep-history-for", d->spinKeepHistory->value()); - statisticsConfig.writeEntry("blocked-by-default", d->checkBlacklistAllNotOnList->isChecked()); - - statisticsConfig.sync(); - - auto pluginListConfig = d->mainConfig->group("Plugins"); + d->pluginConfig->setWhatToRemember(static_cast(whatToRemember)); + d->pluginConfig->setKeepHistoryFor(d->spinKeepHistory->value()); + d->pluginConfig->setBlockedByDefault(d->checkBlacklistAllNotOnList->isChecked()); - pluginListConfig.writeEntry("org.kde.ActivityManager.ResourceScoringEnabled", - whatToRemember != NoApplications); + d->pluginConfig->save(); - pluginListConfig.sync(); + d->mainConfig->setResourceScoringEnabled(whatToRemember != NoApplications); + d->mainConfig->save(); } void PrivacyTab::forget(int count, const QString &what) diff --git a/kcms/activities/SwitchingTab.cpp b/kcms/activities/SwitchingTab.cpp --- a/kcms/activities/SwitchingTab.cpp +++ b/kcms/activities/SwitchingTab.cpp @@ -19,6 +19,7 @@ */ #include "SwitchingTab.h" +#include "kactivitymanagerd_settings.h" #include #include @@ -32,7 +33,7 @@ class SwitchingTab::Private : public Ui::SwitchingTabBase { public: - KSharedConfig::Ptr mainConfig; + KActivityManagerdSettings mainConfig; KActionCollection *mainActionCollection; KActivities::Consumer activities; @@ -58,8 +59,6 @@ { d->setupUi(this); - d->mainConfig = KSharedConfig::openConfig(QStringLiteral("kactivitymanagerdrc")); - // Shortcut config. The shortcut belongs to the component "plasmashell"! d->mainActionCollection = new KActionCollection(this, QStringLiteral("plasmashell")); d->mainActionCollection->setComponentDisplayName(i18n("Activity switching")); @@ -111,19 +110,12 @@ void SwitchingTab::load() { - auto pluginListConfig = d->mainConfig->group("Plugins"); - d->checkRememberVirtualDesktop->setChecked(pluginListConfig.readEntry( - "org.kde.ActivityManager.VirtualDesktopSwitchEnabled", false)); + d->checkRememberVirtualDesktop->setChecked(d->mainConfig.virtualDesktopSwitchEnabled()); } void SwitchingTab::save() { - auto pluginListConfig = d->mainConfig->group("Plugins"); - - pluginListConfig.writeEntry( - "org.kde.ActivityManager.VirtualDesktopSwitchEnabled", - d->checkRememberVirtualDesktop->isChecked()); - - pluginListConfig.sync(); + d->mainConfig.setVirtualDesktopSwitchEnabled(d->checkRememberVirtualDesktop->isChecked()); + d->mainConfig.save(); } diff --git a/kcms/activities/kactivitymanagerd_plugins_settings.kcfg b/kcms/activities/kactivitymanagerd_plugins_settings.kcfg new file mode 100644 --- /dev/null +++ b/kcms/activities/kactivitymanagerd_plugins_settings.kcfg @@ -0,0 +1,21 @@ + + + + + + + + 0 + + + false + + + + 0 + + + diff --git a/kcms/activities/kactivitymanagerd_plugins_settings.kcfgc b/kcms/activities/kactivitymanagerd_plugins_settings.kcfgc new file mode 100644 --- /dev/null +++ b/kcms/activities/kactivitymanagerd_plugins_settings.kcfgc @@ -0,0 +1,6 @@ +File=kactivitymanagerd_plugins_settings.kcfg +ClassName=KActivityManagerdPluginsSettings +Mutators=true +DefaultValueGetters=true +ParentInConstructor=true +GlobalEnums=true diff --git a/kcms/activities/kactivitymanagerd_settings.kcfg b/kcms/activities/kactivitymanagerd_settings.kcfg new file mode 100644 --- /dev/null +++ b/kcms/activities/kactivitymanagerd_settings.kcfg @@ -0,0 +1,16 @@ + + + + + + + false + + + false + + + diff --git a/kcms/activities/kactivitymanagerd_settings.kcfgc b/kcms/activities/kactivitymanagerd_settings.kcfgc new file mode 100644 --- /dev/null +++ b/kcms/activities/kactivitymanagerd_settings.kcfgc @@ -0,0 +1,5 @@ +File=kactivitymanagerd_settings.kcfg +ClassName=KActivityManagerdSettings +Mutators=true +DefaultValueGetters=true +ParentInConstructor=true