diff --git a/kcmkwin/kwindesktop/CMakeLists.txt b/kcmkwin/kwindesktop/CMakeLists.txt --- a/kcmkwin/kwindesktop/CMakeLists.txt +++ b/kcmkwin/kwindesktop/CMakeLists.txt @@ -13,6 +13,8 @@ virtualdesktops.cpp ) +kconfig_add_kcfg_files(kcm_kwin_virtualdesktops_PART_SRCS virtualdesktopssettings.kcfgc GENERATE_MOC) + add_library(kcm_kwin_virtualdesktops MODULE ${kcm_kwin_virtualdesktops_PART_SRCS}) target_link_libraries(kcm_kwin_virtualdesktops @@ -30,6 +32,7 @@ ########### install files ############### +install(FILES virtualdesktopssettings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) install(TARGETS kcm_kwin_virtualdesktops DESTINATION ${KDE_INSTALL_PLUGINDIR}/kcms) install(FILES kcm_kwin_virtualdesktops.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) kpackage_install_package(package kcm_kwin_virtualdesktops kcms) diff --git a/kcmkwin/kwindesktop/virtualdesktops.h b/kcmkwin/kwindesktop/virtualdesktops.h --- a/kcmkwin/kwindesktop/virtualdesktops.h +++ b/kcmkwin/kwindesktop/virtualdesktops.h @@ -22,6 +22,8 @@ #include #include +class VirtualDesktopsSettings; + namespace KWin { @@ -77,7 +79,7 @@ void updateNeedsSave(); private: - KSharedConfigPtr m_kwinConfig; + VirtualDesktopsSettings *m_settings; DesktopsModel *m_desktopsModel; bool m_navWraps; bool m_osdEnabled; diff --git a/kcmkwin/kwindesktop/virtualdesktops.cpp b/kcmkwin/kwindesktop/virtualdesktops.cpp --- a/kcmkwin/kwindesktop/virtualdesktops.cpp +++ b/kcmkwin/kwindesktop/virtualdesktops.cpp @@ -19,6 +19,7 @@ #include "virtualdesktops.h" #include "animationsmodel.h" #include "desktopsmodel.h" +#include "virtualdesktopssettings.h" #include #include @@ -32,7 +33,7 @@ VirtualDesktops::VirtualDesktops(QObject *parent, const QVariantList &args) : KQuickAddons::ConfigModule(parent, args) - , m_kwinConfig(KSharedConfig::openConfig("kwinrc")) + , m_settings(new VirtualDesktopsSettings(this)) , m_desktopsModel(new KWin::DesktopsModel(this)) , m_navWraps(true) , m_osdEnabled(false) @@ -135,15 +136,12 @@ void VirtualDesktops::load() { - KConfigGroup navConfig(m_kwinConfig, "Windows"); - setNavWraps(navConfig.readEntry("RollOverDesktops", true)); + setNavWraps(m_settings->rollOverDesktop()); - KConfigGroup osdConfig(m_kwinConfig, "Plugins"); - setOsdEnabled(osdConfig.readEntry("desktopchangeosdEnabled", false)); + setOsdEnabled(m_settings->desktopChangeOsdEnabled()); - KConfigGroup osdSettings(m_kwinConfig, "Script-desktopchangeosd"); - setOsdDuration(osdSettings.readEntry("PopupHideDelay", 1000)); - setOsdTextOnly(osdSettings.readEntry("TextOnly", false)); + setOsdDuration(m_settings->popupHideDelay()); + setOsdTextOnly(m_settings->textOnly()); m_animationsModel->load(); } @@ -153,17 +151,12 @@ m_desktopsModel->syncWithServer(); m_animationsModel->save(); - KConfigGroup navConfig(m_kwinConfig, "Windows"); - navConfig.writeEntry("RollOverDesktops", m_navWraps); + m_settings->setRollOverDesktop(m_navWraps); + m_settings->setDesktopChangeOsdEnabled(m_osdEnabled); + m_settings->setPopupHideDelay(m_osdDuration); + m_settings->setTextOnly(m_osdTextOnly); - KConfigGroup osdConfig(m_kwinConfig, "Plugins"); - osdConfig.writeEntry("desktopchangeosdEnabled", m_osdEnabled); - - KConfigGroup osdSettings(m_kwinConfig, "Script-desktopchangeosd"); - osdSettings.writeEntry("PopupHideDelay", m_osdDuration); - osdSettings.writeEntry("TextOnly", m_osdTextOnly); - - m_kwinConfig->sync(); + m_settings->save(); QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KWin"), QStringLiteral("org.kde.KWin"), QStringLiteral("reloadConfig")); @@ -254,25 +247,19 @@ needsSave = true; } - KConfigGroup navConfig(m_kwinConfig, "Windows"); - - if (m_navWraps != navConfig.readEntry("RollOverDesktops", true)) { + if (m_navWraps != m_settings->rollOverDesktop()) { needsSave = true; } - KConfigGroup osdConfig(m_kwinConfig, "Plugins"); - - if (m_osdEnabled != osdConfig.readEntry("desktopchangeosdEnabled", false)) { + if (m_osdEnabled != m_settings->desktopChangeOsdEnabled()) { needsSave = true; } - KConfigGroup osdSettings(m_kwinConfig, "Script-desktopchangeosd"); - - if (m_osdDuration != osdSettings.readEntry("PopupHideDelay", 1000)) { + if (m_osdDuration != m_settings->popupHideDelay()) { needsSave = true; } - if (m_osdTextOnly != osdSettings.readEntry("TextOnly", false)) { + if (m_osdTextOnly != m_settings->textOnly()) { needsSave = true; } diff --git a/kcmkwin/kwindesktop/virtualdesktopssettings.kcfg b/kcmkwin/kwindesktop/virtualdesktopssettings.kcfg new file mode 100644 --- /dev/null +++ b/kcmkwin/kwindesktop/virtualdesktopssettings.kcfg @@ -0,0 +1,29 @@ + + + + + + + true + + + + + + false + + + + + + 1000 + + + + false + + + diff --git a/kcmkwin/kwindesktop/virtualdesktopssettings.kcfgc b/kcmkwin/kwindesktop/virtualdesktopssettings.kcfgc new file mode 100644 --- /dev/null +++ b/kcmkwin/kwindesktop/virtualdesktopssettings.kcfgc @@ -0,0 +1,6 @@ +File=virtualdesktopssettings.kcfg +ClassName=VirtualDesktopsSettings +Mutators=true +DefaultValueGetters=true +GenerateProperties=true +ParentInConstructor=true