From 509daa60a1eda8a22c7362733ba098d9d6971684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Sun, 2 Sep 2012 08:46:32 +0200 Subject: [PATCH] Use KConfigXT in Translucency Effect Port the KCM to use KConfigXT which means that the complete custom code for loading, saving and setting to defaults can be dropped. Also in the effect in brings some advantages as we basically get compile time checks whether the accessed config is named correctly. The saved values for translucency are now UInts in [0,100] instead of doubles in [0.0,1.0], so an update script is needed. REVIEW: 106310 --- effects/translucency/CMakeLists.txt | 3 + effects/translucency/translucency.cpp | 24 +++---- effects/translucency/translucency.kcfg | 39 ++++++++++++ effects/translucency/translucency_config.cpp | 63 +------------------ effects/translucency/translucency_config.h | 2 - effects/translucency/translucency_config.ui | 62 +++++++++--------- effects/translucency/translucencyconfig.kcfgc | 5 ++ 7 files changed, 94 insertions(+), 104 deletions(-) create mode 100644 effects/translucency/translucency.kcfg create mode 100644 effects/translucency/translucencyconfig.kcfgc diff --git a/effects/translucency/CMakeLists.txt b/effects/translucency/CMakeLists.txt index ca65a0e01b..7bc51cdf75 100644 --- a/effects/translucency/CMakeLists.txt +++ b/effects/translucency/CMakeLists.txt @@ -6,6 +6,8 @@ set( kwin4_effect_builtins_sources ${kwin4_effect_builtins_sources} translucency/translucency.cpp ) +kde4_add_kcfg_files(kwin4_effect_builtins_sources translucency/translucencyconfig.kcfgc) + # .desktop files install( FILES translucency/translucency.desktop @@ -19,6 +21,7 @@ set( kwin4_effect_builtins_config_sources ${kwin4_effect_builtins_config_sources translucency/translucency_config.cpp translucency/translucency_config.ui ) +kde4_add_kcfg_files(kwin4_effect_builtins_config_sources translucency/translucencyconfig.kcfgc) # .desktop files install( FILES diff --git a/effects/translucency/translucency.cpp b/effects/translucency/translucency.cpp index 61d569e6fc..e78603d773 100644 --- a/effects/translucency/translucency.cpp +++ b/effects/translucency/translucency.cpp @@ -19,6 +19,8 @@ along with this program. If not, see . *********************************************************************/ #include "translucency.h" +// KConfigSkeleton +#include "translucencyconfig.h" #include @@ -47,18 +49,18 @@ TranslucencyEffect::TranslucencyEffect() void TranslucencyEffect::reconfigure(ReconfigureFlags) { - KConfigGroup conf = effects->effectConfig("Translucency"); - decoration = conf.readEntry("Decoration", 1.0); - moveresize = conf.readEntry("MoveResize", 0.8); - dialogs = conf.readEntry("Dialogs", 1.0); - inactive = conf.readEntry("Inactive", 1.0); - comboboxpopups = conf.readEntry("ComboboxPopups", 1.0); - menus = conf.readEntry("Menus", 1.0); - individualmenuconfig = conf.readEntry("IndividualMenuConfig", false); + TranslucencyConfig::self()->readConfig(); + decoration = TranslucencyConfig::decoration()/100.0; + moveresize = TranslucencyConfig::moveResize()/100.0; + dialogs = TranslucencyConfig::dialogs()/100.0; + inactive = TranslucencyConfig::inactive()/100.0; + comboboxpopups = TranslucencyConfig::comboboxPopups()/100.0; + menus = TranslucencyConfig::menus()/100.0; + individualmenuconfig = TranslucencyConfig::individualMenuConfig(); if (individualmenuconfig) { - dropdownmenus = conf.readEntry("DropdownMenus", 1.0); - popupmenus = conf.readEntry("PopupMenus", 1.0); - tornoffmenus = conf.readEntry("TornOffMenus", 1.0); + dropdownmenus = TranslucencyConfig::dropdownMenus()/100.0; + popupmenus = TranslucencyConfig::popupMenus()/100.0; + tornoffmenus = TranslucencyConfig::tornOffMenus()/100.0; } else { dropdownmenus = menus; popupmenus = menus; diff --git a/effects/translucency/translucency.kcfg b/effects/translucency/translucency.kcfg new file mode 100644 index 0000000000..4425df78f6 --- /dev/null +++ b/effects/translucency/translucency.kcfg @@ -0,0 +1,39 @@ + + + + + + 100 + + + 80 + + + 100 + + + 100 + + + 100 + + + 100 + + + false + + + 100 + + + 100 + + + 100 + + + diff --git a/effects/translucency/translucency_config.cpp b/effects/translucency/translucency_config.cpp index 378146097b..db9f17bf10 100644 --- a/effects/translucency/translucency_config.cpp +++ b/effects/translucency/translucency_config.cpp @@ -19,6 +19,8 @@ along with this program. If not, see . *********************************************************************/ #include "translucency_config.h" +// KConfigSkeleton +#include "translucencyconfig.h" #include @@ -46,76 +48,17 @@ TranslucencyEffectConfig::TranslucencyEffectConfig(QWidget* parent, const QVaria QVBoxLayout* layout = new QVBoxLayout(this); layout->addWidget(m_ui); - connect(m_ui->decorations, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->inactive, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->moveresize, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->dialogs, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->comboboxpopup, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->menus, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->individualmenuconfig, SIGNAL(toggled(bool)), this, SLOT(changed())); - connect(m_ui->dropdownmenus, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->popupmenus, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->tornoffmenus, SIGNAL(valueChanged(int)), this, SLOT(changed())); + addConfig(TranslucencyConfig::self(), m_ui); load(); } -void TranslucencyEffectConfig::load() -{ - KCModule::load(); - - KConfigGroup conf = EffectsHandler::effectConfig("Translucency"); - m_ui->decorations->setValue((int)(conf.readEntry("Decoration", 1.0) * 100)); - m_ui->moveresize->setValue((int)(conf.readEntry("MoveResize", 0.8) * 100)); - m_ui->dialogs->setValue((int)(conf.readEntry("Dialogs", 1.0) * 100)); - m_ui->inactive->setValue((int)(conf.readEntry("Inactive", 1.0) * 100)); - m_ui->comboboxpopup->setValue((int)(conf.readEntry("ComboboxPopups", 1.0) * 100)); - m_ui->menus->setValue((int)(conf.readEntry("Menus", 1.0) * 100)); - m_ui->individualmenuconfig->setChecked((conf.readEntry("IndividualMenuConfig", false))); - m_ui->dropdownmenus->setValue((int)(conf.readEntry("DropdownMenus", 1.0) * 100)); - m_ui->popupmenus->setValue((int)(conf.readEntry("PopupMenus", 1.0) * 100)); - m_ui->tornoffmenus->setValue((int)(conf.readEntry("TornOffMenus", 1.0) * 100)); - - emit changed(false); -} - void TranslucencyEffectConfig::save() { KCModule::save(); - - KConfigGroup conf = EffectsHandler::effectConfig("Translucency"); - conf.writeEntry("Decoration", m_ui->decorations->value() / 100.0); - conf.writeEntry("MoveResize", m_ui->moveresize->value() / 100.0); - conf.writeEntry("Dialogs", m_ui->dialogs->value() / 100.0); - conf.writeEntry("Inactive", m_ui->inactive->value() / 100.0); - conf.writeEntry("ComboboxPopups", m_ui->comboboxpopup->value() / 100.0); - conf.writeEntry("Menus", m_ui->menus->value() / 100.0); - conf.writeEntry("IndividualMenuConfig", m_ui->individualmenuconfig->isChecked()); - conf.writeEntry("DropdownMenus", m_ui->dropdownmenus->value() / 100.0); - conf.writeEntry("PopupMenus", m_ui->popupmenus->value() / 100.0); - conf.writeEntry("TornOffMenus", m_ui->tornoffmenus->value() / 100.0); - conf.sync(); - - emit changed(false); EffectsHandler::sendReloadMessage("translucency"); } -void TranslucencyEffectConfig::defaults() -{ - m_ui->decorations->setValue(100); - m_ui->moveresize->setValue(80); - m_ui->dialogs->setValue(100); - m_ui->inactive->setValue(100); - m_ui->comboboxpopup->setValue(100); - m_ui->menus->setValue(100); - m_ui->individualmenuconfig->setChecked(false); - m_ui->dropdownmenus->setValue(100); - m_ui->popupmenus->setValue(100); - m_ui->tornoffmenus->setValue(100); - emit changed(true); -} - - } // namespace #include "translucency_config.moc" diff --git a/effects/translucency/translucency_config.h b/effects/translucency/translucency_config.h index a43d3e7ed1..24dd090917 100644 --- a/effects/translucency/translucency_config.h +++ b/effects/translucency/translucency_config.h @@ -42,8 +42,6 @@ public: explicit TranslucencyEffectConfig(QWidget* parent = 0, const QVariantList& args = QVariantList()); virtual void save(); - virtual void load(); - virtual void defaults(); private: TranslucencyEffectConfigForm* m_ui; diff --git a/effects/translucency/translucency_config.ui b/effects/translucency/translucency_config.ui index 3c64fba9bd..56734b9793 100644 --- a/effects/translucency/translucency_config.ui +++ b/effects/translucency/translucency_config.ui @@ -21,7 +21,7 @@ - + 10 @@ -54,7 +54,7 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - dialogs + kcfg_Dialogs @@ -73,12 +73,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - decorations + kcfg_Decoration - + 10 @@ -97,7 +97,7 @@ - + 10 @@ -130,7 +130,7 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - inactive + kcfg_Inactive @@ -149,7 +149,7 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - moveresize + kcfg_MoveResize @@ -168,12 +168,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - comboboxpopup + kcfg_ComboboxPopups - + 10 @@ -205,7 +205,7 @@ - + 170 @@ -230,7 +230,7 @@ - + 10 @@ -292,7 +292,7 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - menus + kcfg_Menus @@ -300,7 +300,7 @@ - + Set menu translucency independently @@ -326,12 +326,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - dropdownmenus + kcfg_DropdownMenus - + 170 @@ -370,12 +370,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - popupmenus + kcfg_PopupMenus - + 10 @@ -408,12 +408,12 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - tornoffmenus + kcfg_TornOffMenus - + 10 @@ -479,23 +479,23 @@ - decorations - inactive - moveresize - dialogs - comboboxpopup - menus - individualmenuconfig - dropdownmenus - popupmenus - tornoffmenus + kcfg_Decoration + kcfg_Inactive + kcfg_MoveResize + kcfg_Dialogs + kcfg_ComboboxPopups + kcfg_Menus + kcfg_IndividualMenuConfig + kcfg_DropdownMenus + kcfg_PopupMenus + kcfg_TornOffMenus - individualmenuconfig + kcfg_IndividualMenuConfig toggled(bool) - menus + kcfg_Menus setDisabled(bool) diff --git a/effects/translucency/translucencyconfig.kcfgc b/effects/translucency/translucencyconfig.kcfgc new file mode 100644 index 0000000000..5ac11fc19a --- /dev/null +++ b/effects/translucency/translucencyconfig.kcfgc @@ -0,0 +1,5 @@ +File=translucency.kcfg +ClassName=TranslucencyConfig +NameSpace=KWin +Singleton=true +Mutators=true