From 66f568342a9ccb6a975ce39364471d334936fb58 Mon Sep 17 00:00:00 2001 From: "Lilian A. Moraru" Date: Fri, 14 Sep 2012 15:34:40 +0300 Subject: [PATCH] Use KConfigXT in DesktopGrid effect REVIEW: 106398 --- effects/desktopgrid/CMakeLists.txt | 4 + effects/desktopgrid/desktopgrid.cpp | 22 ++-- effects/desktopgrid/desktopgrid.kcfg | 28 +++++ effects/desktopgrid/desktopgrid_config.cpp | 113 ++++++-------------- effects/desktopgrid/desktopgrid_config.h | 1 - effects/desktopgrid/desktopgrid_config.ui | 26 ++--- effects/desktopgrid/desktopgridconfig.kcfgc | 5 + 7 files changed, 90 insertions(+), 109 deletions(-) create mode 100644 effects/desktopgrid/desktopgrid.kcfg create mode 100644 effects/desktopgrid/desktopgridconfig.kcfgc diff --git a/effects/desktopgrid/CMakeLists.txt b/effects/desktopgrid/CMakeLists.txt index e12f523498..12618f36bd 100644 --- a/effects/desktopgrid/CMakeLists.txt +++ b/effects/desktopgrid/CMakeLists.txt @@ -6,6 +6,8 @@ set( kwin4_effect_builtins_sources ${kwin4_effect_builtins_sources} desktopgrid/desktopgrid.cpp ) +kde4_add_kcfg_files(kwin4_effect_builtins_sources desktopgrid/desktopgridconfig.kcfgc) + # .desktop files install( FILES desktopgrid/desktopgrid.desktop @@ -20,6 +22,8 @@ set( kwin4_effect_builtins_config_sources ${kwin4_effect_builtins_config_sources desktopgrid/desktopgrid_config.ui ) +kde4_add_kcfg_files(kwin4_effect_builtins_config_sources desktopgrid/desktopgridconfig.kcfgc) + # .desktop files install( FILES desktopgrid/desktopgrid_config.desktop diff --git a/effects/desktopgrid/desktopgrid.cpp b/effects/desktopgrid/desktopgrid.cpp index a5ce348b64..4cdf5d8a81 100644 --- a/effects/desktopgrid/desktopgrid.cpp +++ b/effects/desktopgrid/desktopgrid.cpp @@ -21,6 +21,8 @@ along with this program. If not, see . *********************************************************************/ #include "desktopgrid.h" +// KConfigSkeleton +#include "desktopgridconfig.h" #include "../presentwindows/presentwindows_proxy.h" @@ -30,7 +32,6 @@ along with this program. If not, see . #include #include #include -#include #include #include #include @@ -100,29 +101,26 @@ DesktopGridEffect::~DesktopGridEffect() void DesktopGridEffect::reconfigure(ReconfigureFlags) { - KConfigGroup conf = effects->effectConfig("DesktopGrid"); + DesktopGridConfig::self()->readConfig(); foreach (ElectricBorder border, borderActivate) { effects->unreserveElectricBorder(border); } borderActivate.clear(); - QList borderList = QList(); - borderList.append(int(ElectricNone)); - borderList = conf.readEntry("BorderActivate", borderList); - foreach (int i, borderList) { + foreach (int i, DesktopGridConfig::borderActivate()) { borderActivate.append(ElectricBorder(i)); effects->reserveElectricBorder(ElectricBorder(i)); } - zoomDuration = animationTime(conf, "ZoomDuration", 300); + zoomDuration = animationTime(DesktopGridConfig::zoomDuration() != 0 ? DesktopGridConfig::zoomDuration() : 300); timeline.setCurveShape(QTimeLine::EaseInOutCurve); timeline.setDuration(zoomDuration); - border = conf.readEntry("BorderWidth", 10); - desktopNameAlignment = Qt::Alignment(conf.readEntry("DesktopNameAlignment", 0)); - layoutMode = conf.readEntry("LayoutMode", int(LayoutPager)); - customLayoutRows = conf.readEntry("CustomLayoutRows", 2); - m_usePresentWindows = conf.readEntry("PresentWindows", true); + border = DesktopGridConfig::borderWidth(); + desktopNameAlignment = Qt::Alignment(DesktopGridConfig::desktopNameAlignment()); + layoutMode = DesktopGridConfig::layoutMode(); + customLayoutRows = DesktopGridConfig::customLayoutRows(); + m_usePresentWindows = DesktopGridConfig::presentWindows(); } //----------------------------------------------------------------------------- diff --git a/effects/desktopgrid/desktopgrid.kcfg b/effects/desktopgrid/desktopgrid.kcfg new file mode 100644 index 0000000000..452be24c7c --- /dev/null +++ b/effects/desktopgrid/desktopgrid.kcfg @@ -0,0 +1,28 @@ + + + + + + + 0 + + + 10 + + + 0 + + + 0 + + + 2 + + + true + + + diff --git a/effects/desktopgrid/desktopgrid_config.cpp b/effects/desktopgrid/desktopgrid_config.cpp index a58bfab5af..573c7c054c 100644 --- a/effects/desktopgrid/desktopgrid_config.cpp +++ b/effects/desktopgrid/desktopgrid_config.cpp @@ -20,6 +20,9 @@ along with this program. If not, see . *********************************************************************/ #include "desktopgrid_config.h" +// KConfigSkeleton +#include "desktopgridconfig.h" + #include #include @@ -60,37 +63,23 @@ DesktopGridEffectConfig::DesktopGridEffectConfig(QWidget* parent, const QVariant m_ui->shortcutEditor->addCollection(m_actionCollection); - m_alignmentItems.append(Qt::Alignment(0)); - m_ui->desktopNameAlignmentCombo->addItem(i18nc("Desktop name alignment:", "Disabled")); - m_alignmentItems.append(Qt::AlignHCenter | Qt::AlignTop); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Top")); - m_alignmentItems.append(Qt::AlignRight | Qt::AlignTop); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Top-Right")); - m_alignmentItems.append(Qt::AlignRight | Qt::AlignVCenter); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Right")); - m_alignmentItems.append(Qt::AlignRight | Qt::AlignBottom); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Bottom-Right")); - m_alignmentItems.append(Qt::AlignHCenter | Qt::AlignBottom); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Bottom")); - m_alignmentItems.append(Qt::AlignLeft | Qt::AlignBottom); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Bottom-Left")); - m_alignmentItems.append(Qt::AlignLeft | Qt::AlignVCenter); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Left")); - m_alignmentItems.append(Qt::AlignLeft | Qt::AlignTop); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Top-Left")); - m_alignmentItems.append(Qt::AlignCenter); - m_ui->desktopNameAlignmentCombo->addItem(i18n("Center")); + m_ui->desktopNameAlignmentCombo->addItem(i18nc("Desktop name alignment:", "Disabled"), QVariant(Qt::Alignment(0))); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Top"), QVariant(Qt::AlignHCenter | Qt::AlignTop)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Top-Right"), QVariant(Qt::AlignRight | Qt::AlignTop)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Right"), QVariant(Qt::AlignRight | Qt::AlignVCenter)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Bottom-Right"), QVariant(Qt::AlignRight | Qt::AlignBottom)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Bottom"), QVariant(Qt::AlignHCenter | Qt::AlignBottom)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Bottom-Left"), QVariant(Qt::AlignLeft | Qt::AlignBottom)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Left"), QVariant(Qt::AlignLeft | Qt::AlignVCenter)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Top-Left"), QVariant(Qt::AlignLeft | Qt::AlignTop)); + m_ui->desktopNameAlignmentCombo->addItem(i18n("Center"), QVariant(Qt::AlignCenter)); - connect(m_ui->zoomDurationSpin, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->borderWidthSpin, SIGNAL(valueChanged(int)), this, SLOT(changed())); + addConfig(DesktopGridConfig::self(), m_ui); + connect(m_ui->kcfg_LayoutMode, SIGNAL(currentIndexChanged(int)), this, SLOT(layoutSelectionChanged())); connect(m_ui->desktopNameAlignmentCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(changed())); - connect(m_ui->layoutCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(changed())); - connect(m_ui->layoutCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(layoutSelectionChanged())); - connect(m_ui->layoutRowsSpin, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->shortcutEditor, SIGNAL(keyChange()), this, SLOT(changed())); - connect(m_ui->presentWindowsCheckBox, SIGNAL(stateChanged(int)), this, SLOT(changed())); load(); + layoutSelectionChanged(); } DesktopGridEffectConfig::~DesktopGridEffectConfig() @@ -99,83 +88,41 @@ DesktopGridEffectConfig::~DesktopGridEffectConfig() m_ui->shortcutEditor->undoChanges(); } -void DesktopGridEffectConfig::load() -{ - KCModule::load(); - - KConfigGroup conf = EffectsHandler::effectConfig("DesktopGrid"); - - m_ui->zoomDurationSpin->setValue(conf.readEntry("ZoomDuration", 0)); - m_ui->zoomDurationSpin->setSuffix(ki18np(" millisecond", " milliseconds")); - m_ui->borderWidthSpin->setValue(conf.readEntry("BorderWidth", 10)); - m_ui->borderWidthSpin->setSuffix(ki18np(" pixel", " pixels")); - - Qt::Alignment alignment = Qt::Alignment(conf.readEntry("DesktopNameAlignment", 0)); - m_ui->desktopNameAlignmentCombo->setCurrentIndex(m_alignmentItems.indexOf(alignment)); - - int layoutMode = conf.readEntry("LayoutMode", int(DesktopGridEffect::LayoutPager)); - m_ui->layoutCombo->setCurrentIndex(layoutMode); - layoutSelectionChanged(); - - m_ui->layoutRowsSpin->setValue(conf.readEntry("CustomLayoutRows", 2)); - m_ui->layoutRowsSpin->setSuffix(ki18np(" row", " rows")); - - m_ui->presentWindowsCheckBox->setChecked(conf.readEntry("PresentWindows", true)); - - emit changed(false); -} - void DesktopGridEffectConfig::save() { + DesktopGridConfig::setDesktopNameAlignment(m_ui->desktopNameAlignmentCombo->itemData(m_ui->desktopNameAlignmentCombo->currentIndex()).toInt()); KCModule::save(); KConfigGroup conf = EffectsHandler::effectConfig("DesktopGrid"); - - conf.writeEntry("ZoomDuration", m_ui->zoomDurationSpin->value()); - conf.writeEntry("BorderWidth", m_ui->borderWidthSpin->value()); - - int alignment = m_ui->desktopNameAlignmentCombo->currentIndex(); - alignment = int(m_alignmentItems[alignment]); - conf.writeEntry("DesktopNameAlignment", alignment); - - int layoutMode = m_ui->layoutCombo->currentIndex(); - conf.writeEntry("LayoutMode", layoutMode); - - conf.writeEntry("CustomLayoutRows", m_ui->layoutRowsSpin->value()); - - conf.writeEntry("PresentWindows", m_ui->presentWindowsCheckBox->isChecked()); - - m_ui->shortcutEditor->save(); - + conf.writeEntry("DesktopNameAlignment", DesktopGridConfig::desktopNameAlignment()); conf.sync(); - emit changed(false); EffectsHandler::sendReloadMessage("desktopgrid"); } -void DesktopGridEffectConfig::defaults() +void DesktopGridEffectConfig::load() { - m_ui->zoomDurationSpin->setValue(0); - m_ui->borderWidthSpin->setValue(10); - m_ui->desktopNameAlignmentCombo->setCurrentIndex(0); - m_ui->layoutCombo->setCurrentIndex(int(DesktopGridEffect::LayoutPager)); - m_ui->layoutRowsSpin->setValue(2); - m_ui->shortcutEditor->allDefault(); - m_ui->presentWindowsCheckBox->setChecked(true); - emit changed(true); + KCModule::load(); + m_ui->desktopNameAlignmentCombo->setCurrentIndex(m_ui->desktopNameAlignmentCombo->findData(QVariant(DesktopGridConfig::desktopNameAlignment()))); } void DesktopGridEffectConfig::layoutSelectionChanged() { - if (m_ui->layoutCombo->currentIndex() == DesktopGridEffect::LayoutCustom) { + if (m_ui->kcfg_LayoutMode->currentIndex() == DesktopGridEffect::LayoutCustom) { m_ui->layoutRowsLabel->setEnabled(true); - m_ui->layoutRowsSpin->setEnabled(true); + m_ui->kcfg_CustomLayoutRows->setEnabled(true); } else { m_ui->layoutRowsLabel->setEnabled(false); - m_ui->layoutRowsSpin->setEnabled(false); + m_ui->kcfg_CustomLayoutRows->setEnabled(false); } } +void DesktopGridEffectConfig::defaults() +{ + KCModule::defaults(); + m_ui->desktopNameAlignmentCombo->setCurrentIndex(0); +} + } // namespace #include "desktopgrid_config.moc" diff --git a/effects/desktopgrid/desktopgrid_config.h b/effects/desktopgrid/desktopgrid_config.h index 3a65c5d060..631ab88b07 100644 --- a/effects/desktopgrid/desktopgrid_config.h +++ b/effects/desktopgrid/desktopgrid_config.h @@ -55,7 +55,6 @@ private slots: private: DesktopGridEffectConfigForm* m_ui; KActionCollection* m_actionCollection; - QList m_alignmentItems; }; } // namespace diff --git a/effects/desktopgrid/desktopgrid_config.ui b/effects/desktopgrid/desktopgrid_config.ui index d0e87bf979..58d1222967 100644 --- a/effects/desktopgrid/desktopgrid_config.ui +++ b/effects/desktopgrid/desktopgrid_config.ui @@ -26,12 +26,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - zoomDurationSpin + kcfg_ZoomDuration - + 0 @@ -58,12 +58,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - borderWidthSpin + kcfg_BorderWidth - + 0 @@ -110,12 +110,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - layoutCombo + kcfg_LayoutMode - + 0 @@ -148,12 +148,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - layoutRowsSpin + kcfg_CustomLayoutRows - + 0 @@ -185,7 +185,7 @@ - + Use Present Windows effect to layout the windows @@ -234,11 +234,11 @@ - zoomDurationSpin - borderWidthSpin + kcfg_ZoomDuration + kcfg_BorderWidth desktopNameAlignmentCombo - layoutCombo - layoutRowsSpin + kcfg_LayoutMode + kcfg_CustomLayoutRows diff --git a/effects/desktopgrid/desktopgridconfig.kcfgc b/effects/desktopgrid/desktopgridconfig.kcfgc new file mode 100644 index 0000000000..70a3ed5c0a --- /dev/null +++ b/effects/desktopgrid/desktopgridconfig.kcfgc @@ -0,0 +1,5 @@ +File=desktopgrid.kcfg +ClassName=DesktopGridConfig +NameSpace=KWin +Singleton=true +Mutators=true