diff --git a/kate/katecolorschemechooser.h b/kate/katecolorschemechooser.h --- a/kate/katecolorschemechooser.h +++ b/kate/katecolorschemechooser.h @@ -46,9 +46,11 @@ void slotSchemeChanged(QAction* triggeredAction); private: + KColorSchemeManager *manager = nullptr; QString loadCurrentScheme() const; void saveCurrentScheme(const QString &name); QString currentDesktopDefaultScheme() const; + void resetColorScheme(); }; #endif // COLORSCHEMECHOOSER_H diff --git a/kate/katecolorschemechooser.cpp b/kate/katecolorschemechooser.cpp --- a/kate/katecolorschemechooser.cpp +++ b/kate/katecolorschemechooser.cpp @@ -45,7 +45,7 @@ KateColorSchemeChooser::KateColorSchemeChooser(QObject* parent) : QAction(parent) { - auto manager = new KColorSchemeManager(parent); + manager = new KColorSchemeManager(parent); const auto scheme(currentSchemeName()); qCDebug(LOG_KATE) << "Color scheme : " << scheme; @@ -60,6 +60,11 @@ setMenu(selectionMenu->menu()); menu()->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-color"))); menu()->setTitle(i18n("&Color Theme")); + + menu()->addSeparator(); + menu()->addAction(QIcon::fromTheme((QStringLiteral("edit-undo"))), + i18n("Default KDE Color Scheme"), this, + &KateColorSchemeChooser::resetColorScheme); } QString KateColorSchemeChooser::loadCurrentScheme() const @@ -84,6 +89,22 @@ return group.readEntry("ColorScheme", QStringLiteral("Breeze")); } +void KateColorSchemeChooser::resetColorScheme() +{ + KSharedConfigPtr config = KSharedConfig::openConfig(); + KConfigGroup cg(config, "UiSettings"); + cg.deleteEntry("ColorScheme"); + cg.sync(); + + manager->activateScheme(manager->indexForScheme(currentDesktopDefaultScheme())); + + for (QAction *action : menu()->actions()) { + if (KLocalizedString::removeAcceleratorMarker(action->text()) == currentDesktopDefaultScheme()) { + action->setChecked(true); + } + } +} + QString KateColorSchemeChooser::currentSchemeName() const { if(!menu()) return loadCurrentScheme();