diff --git a/kcms/activities/MainConfigurationWidget.h b/kcms/activities/MainConfigurationWidget.h --- a/kcms/activities/MainConfigurationWidget.h +++ b/kcms/activities/MainConfigurationWidget.h @@ -42,6 +42,12 @@ void load() override; void save() override; +private Q_SLOTS: + void onChanged(); + +private: + void checkDefault(); + private: D_PTR; }; diff --git a/kcms/activities/MainConfigurationWidget.cpp b/kcms/activities/MainConfigurationWidget.cpp --- a/kcms/activities/MainConfigurationWidget.cpp +++ b/kcms/activities/MainConfigurationWidget.cpp @@ -47,15 +47,26 @@ d->tabs->insertTab(1, d->tabSwitching = new SwitchingTab(d->tabs), i18n("Switching")); d->tabs->insertTab(2, d->tabPrivacy = new PrivacyTab(d->tabs), i18n("Privacy")); - connect(d->tabActivities, SIGNAL(changed()), this, SLOT(changed())); - connect(d->tabSwitching, SIGNAL(changed()), this, SLOT(changed())); - connect(d->tabPrivacy, SIGNAL(changed()), this, SLOT(changed())); + connect(d->tabActivities, &ActivitiesTab::changed, this, &MainConfigurationWidget::onChanged); + connect(d->tabSwitching, &SwitchingTab::changed, this, &MainConfigurationWidget::onChanged); + connect(d->tabPrivacy, &PrivacyTab::changed, this, &MainConfigurationWidget::onChanged); } MainConfigurationWidget::~MainConfigurationWidget() { } +void MainConfigurationWidget::checkDefault() +{ + defaulted(d->tabSwitching->isDefault() && d->tabPrivacy->isDefault()); +} + +void MainConfigurationWidget::onChanged() +{ + checkDefault(); + markAsChanged(); +} + void MainConfigurationWidget::defaults() { d->tabActivities->defaults(); @@ -68,6 +79,8 @@ d->tabActivities->load(); d->tabPrivacy->load(); d->tabSwitching->load(); + + checkDefault(); } void MainConfigurationWidget::save() diff --git a/kcms/activities/PrivacyTab.h b/kcms/activities/PrivacyTab.h --- a/kcms/activities/PrivacyTab.h +++ b/kcms/activities/PrivacyTab.h @@ -34,6 +34,8 @@ explicit PrivacyTab(QWidget *parent); ~PrivacyTab() override; + bool isDefault(); + public Q_SLOTS: void defaults(); void load(); diff --git a/kcms/activities/PrivacyTab.cpp b/kcms/activities/PrivacyTab.cpp --- a/kcms/activities/PrivacyTab.cpp +++ b/kcms/activities/PrivacyTab.cpp @@ -116,12 +116,6 @@ connect(d->radioRememberSpecificApplications, &QAbstractButton::toggled, d->blacklistedApplicationsModel, &BlacklistedApplicationsModel::setEnabled); - connect(d->radioRememberSpecificApplications, &QAbstractButton::toggled, - d->viewBlacklistedApplicationsContainer, &QWidget::setEnabled); - - connect(d->radioRememberSpecificApplications, &QAbstractButton::toggled, - d->checkBlacklistAllNotOnList, &QWidget::setEnabled); - connect(d->checkBlacklistAllNotOnList, &QAbstractButton::toggled, this, &PrivacyTab::changed); defaults(); @@ -137,6 +131,13 @@ { } +bool PrivacyTab::isDefault() +{ + return d->radioRememberAllApplications->isChecked() && + d->spinKeepHistory->value() == d->pluginConfig->defaultKeepHistoryForValue() && + d->checkBlacklistAllNotOnList->isChecked() == d->pluginConfig->defaultBlockedByDefaultValue(); +} + void PrivacyTab::defaults() { d->blacklistedApplicationsModel->defaults(); diff --git a/kcms/activities/SwitchingTab.h b/kcms/activities/SwitchingTab.h --- a/kcms/activities/SwitchingTab.h +++ b/kcms/activities/SwitchingTab.h @@ -36,6 +36,8 @@ explicit SwitchingTab(QWidget *parent); ~SwitchingTab() override; + bool isDefault(); + public Q_SLOTS: void defaults(); void load(); diff --git a/kcms/activities/SwitchingTab.cpp b/kcms/activities/SwitchingTab.cpp --- a/kcms/activities/SwitchingTab.cpp +++ b/kcms/activities/SwitchingTab.cpp @@ -39,12 +39,13 @@ KActivities::Consumer activities; void createAction(const QString &actionName, const QString &actionText, - const QList &sequence) + const QList &defaultSequence) { auto action = mainActionCollection->addAction(actionName); action->setProperty("isConfigurationAction", true); action->setText(actionText); - KGlobalAccel::self()->setShortcut(action, sequence); + KGlobalAccel::self()->setShortcut(action, defaultSequence); + KGlobalAccel::self()->setDefaultShortcut(action, defaultSequence); } Private() @@ -86,6 +87,11 @@ { } +bool SwitchingTab::isDefault() +{ + return !d->checkRememberVirtualDesktop->isChecked(); +} + void SwitchingTab::shortcutChanged(const QKeySequence &sequence) { QString actionName = sender() diff --git a/kcms/activities/ui/PrivacyTabBase.ui b/kcms/activities/ui/PrivacyTabBase.ui --- a/kcms/activities/ui/PrivacyTabBase.ui +++ b/kcms/activities/ui/PrivacyTabBase.ui @@ -122,5 +122,38 @@ - + + + radioRememberSpecificApplications + toggled(bool) + viewBlacklistedApplicationsContainer + setEnabled(bool) + + + 352 + 167 + + + 249 + 363 + + + + + radioRememberSpecificApplications + toggled(bool) + checkBlacklistAllNotOnList + setEnabled(bool) + + + 352 + 167 + + + 252 + 481 + + + +