diff --git a/kcms/componentchooser/CMakeLists.txt b/kcms/componentchooser/CMakeLists.txt --- a/kcms/componentchooser/CMakeLists.txt +++ b/kcms/componentchooser/CMakeLists.txt @@ -16,6 +16,7 @@ kcm_componentchooser.cpp ) kconfig_add_kcfg_files(kcm_componentchooser_SRCS browser_settings.kcfgc GENERATE_MOC) +kconfig_add_kcfg_files(kcm_componentchooser_SRCS terminal_settings.kcfgc GENERATE_MOC) ki18n_wrap_ui(kcm_componentchooser_SRCS browserconfig_ui.ui @@ -48,4 +49,5 @@ install( FILES componentchooser.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) install(FILES browser_settings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) +install(FILES terminal_settings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) diff --git a/kcms/componentchooser/componentchooserterminal.cpp b/kcms/componentchooser/componentchooserterminal.cpp --- a/kcms/componentchooser/componentchooserterminal.cpp +++ b/kcms/componentchooser/componentchooserterminal.cpp @@ -14,6 +14,7 @@ ***************************************************************************/ #include "componentchooserterminal.h" +#include "terminal_settings.h" #include #include @@ -55,17 +56,19 @@ void CfgTerminalEmulator::defaults() { load(nullptr); + terminalCB->setChecked(true); } bool CfgTerminalEmulator::isDefaults() const { - return false; + return terminalCB->isChecked(); } -void CfgTerminalEmulator::load(KConfig *) { - KConfigGroup config(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), "General"); - QString terminal = config.readPathEntry("TerminalApplication",QStringLiteral("konsole")); +void CfgTerminalEmulator::load(KConfig *) +{ + TerminalSettings settings; + QString terminal = settings.terminalApplication(); if (terminal == QLatin1String("konsole")) { terminalLE->setText(QStringLiteral("xterm")); @@ -82,19 +85,15 @@ void CfgTerminalEmulator::save(KConfig *) { - KSharedConfig::Ptr profile = KSharedConfig::openConfig(QStringLiteral("kdeglobals")); - KConfigGroup config(profile, QStringLiteral("General")); - const QString terminal = terminalCB->isChecked() ? QStringLiteral("konsole") : terminalLE->text(); - config.writePathEntry("TerminalApplication", terminal); // KConfig::Normal|KConfig::Global); - - config.sync(); - Kdelibs4SharedConfig::syncConfigGroup(QLatin1String("General"), "kdeglobals"); - - QDBusMessage message = QDBusMessage::createMethodCall(QStringLiteral("org.kde.klauncher5"), - QStringLiteral("/KLauncher"), - QStringLiteral("org.kde.KLauncher"), - QStringLiteral("reparseConfiguration")); - QDBusConnection::sessionBus().send(message); + TerminalSettings settings; + settings.setTerminalApplication(terminalCB->isChecked() ? settings.defaultTerminalApplicationValue() : terminalLE->text()); + settings.save(); + + QDBusMessage message = QDBusMessage::createMethodCall(QStringLiteral("org.kde.klauncher5"), + QStringLiteral("/KLauncher"), + QStringLiteral("org.kde.KLauncher"), + QStringLiteral("reparseConfiguration")); + QDBusConnection::sessionBus().send(message); emit changed(false); } diff --git a/kcms/componentchooser/terminal_settings.kcfg b/kcms/componentchooser/terminal_settings.kcfg new file mode 100644 --- /dev/null +++ b/kcms/componentchooser/terminal_settings.kcfg @@ -0,0 +1,13 @@ + + + + + + + konsole + + + diff --git a/kcms/componentchooser/terminal_settings.kcfgc b/kcms/componentchooser/terminal_settings.kcfgc new file mode 100644 --- /dev/null +++ b/kcms/componentchooser/terminal_settings.kcfgc @@ -0,0 +1,5 @@ +File=terminal_settings.kcfg +ClassName=TerminalSettings +Mutators=true +DefaultValueGetters=true +ParentInConstructor=true