[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kde-workspace] kwin/effects/login: Use KConfigXT in Login Effect
From:       Martin_Gräßlin <mgraesslin () kde ! org>
Date:       2012-09-19 8:32:25
Message-ID: 20120919083225.5427EA6094 () git ! kde ! org
[Download RAW message or body]

Git commit 5fcd7006278acf90967d73bbdbe6206fd880af9c by Martin Gräßlin.
Committed on 19/09/2012 at 09:01.
Pushed by graesslin into branch 'master'.

Use KConfigXT in Login Effect

Thanks to Andrea Scarpino for providing the patch.

REVIEW: 106387

M  +4    -0    kwin/effects/login/CMakeLists.txt
M  +5    -2    kwin/effects/login/login.cpp
A  +12   -0    kwin/effects/login/login.kcfg
M  +6    -23   kwin/effects/login/login_config.cpp
M  +0    -2    kwin/effects/login/login_config.h
M  +1    -1    kwin/effects/login/login_config.ui
A  +5    -0    kwin/effects/login/loginconfig.kcfgc

http://commits.kde.org/kde-workspace/5fcd7006278acf90967d73bbdbe6206fd880af9c

diff --git a/kwin/effects/login/CMakeLists.txt b/kwin/effects/login/CMakeLists.txt
index 3ba7ed6..0e1f6ef 100644
--- a/kwin/effects/login/CMakeLists.txt
+++ b/kwin/effects/login/CMakeLists.txt
@@ -6,6 +6,8 @@ set( kwin4_effect_builtins_sources ${kwin4_effect_builtins_sources}
     login/login.cpp
     )
 
+kde4_add_kcfg_files(kwin4_effect_builtins_sources login/loginconfig.kcfgc)
+
 # .desktop files
 install( FILES
     login/login.desktop
@@ -20,6 +22,8 @@ set( kwin4_effect_builtins_config_sources ${kwin4_effect_builtins_config_sources
     login/login_config.ui
     )
 
+kde4_add_kcfg_files(kwin4_effect_builtins_config_sources login/loginconfig.kcfgc)
+
 # .desktop files
 install( FILES
     login/login_config.desktop
diff --git a/kwin/effects/login/login.cpp b/kwin/effects/login/login.cpp
index b54d400..698b03d 100644
--- a/kwin/effects/login/login.cpp
+++ b/kwin/effects/login/login.cpp
@@ -20,6 +20,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "login.h"
 
+// KConfigSkeleton
+#include "loginconfig.h"
+
 #include <kdebug.h>
 
 #include <KDE/KConfigGroup>
@@ -89,8 +92,8 @@ void LoginEffect::postPaintScreen()
 
 void LoginEffect::reconfigure(ReconfigureFlags)
 {
-    KConfigGroup conf = effects->effectConfig("Login");
-    m_fadeToBlack = (conf.readEntry("FadeToBlack", false));
+    LoginConfig::self()->readConfig();
+    m_fadeToBlack = LoginConfig::fadeToBlack();
 }
 
 void LoginEffect::slotWindowClosed(EffectWindow* w)
diff --git a/kwin/effects/login/login.kcfg b/kwin/effects/login/login.kcfg
new file mode 100644
index 0000000..adefe10
--- /dev/null
+++ b/kwin/effects/login/login.kcfg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+                          http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
+    <kcfgfile name="kwinrc"/>
+    <group name="Effect-Login">
+        <entry name="FadeToBlack" type="Bool">
+            <default>false</default>
+        </entry>
+    </group>
+</kcfg>
diff --git a/kwin/effects/login/login_config.cpp b/kwin/effects/login/login_config.cpp
index 5a4b57a..b6d8da4 100644
--- a/kwin/effects/login/login_config.cpp
+++ b/kwin/effects/login/login_config.cpp
@@ -19,6 +19,10 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *********************************************************************/
 #include "login_config.h"
+
+// KConfigSkeleton
+#include "loginconfig.h"
+
 #include <kwineffects.h>
 
 #include <kconfiggroup.h>
@@ -44,38 +48,17 @@ LoginEffectConfig::LoginEffectConfig(QWidget* parent, const QVariantList& args)
 
     layout->addWidget(m_ui);
 
-    connect(m_ui->fadetoblackBox, SIGNAL(stateChanged(int)), this, SLOT(changed()));
+    addConfig(LoginConfig::self(), m_ui);
 
     load();
 }
 
-void LoginEffectConfig::load()
-{
-    KCModule::load();
-
-    KConfigGroup conf = EffectsHandler::effectConfig("Login");
-    m_ui->fadetoblackBox->setChecked(conf.readEntry<bool>("FadeToBlack", false));
-
-    emit changed(false);
-}
-
 void LoginEffectConfig::save()
 {
-    KConfigGroup conf = EffectsHandler::effectConfig("Login");
-    conf.writeEntry("FadeToBlack", m_ui->fadetoblackBox->isChecked());
-
-    conf.sync();
-
-    emit changed(false);
+    KCModule::save();
     EffectsHandler::sendReloadMessage("login");
 }
 
-void LoginEffectConfig::defaults()
-{
-    m_ui->fadetoblackBox->setChecked(true);
-    emit changed(true);
-}
-
 } // namespace
 
 #include "login_config.moc"
diff --git a/kwin/effects/login/login_config.h b/kwin/effects/login/login_config.h
index 4de44fc..7226263 100644
--- a/kwin/effects/login/login_config.h
+++ b/kwin/effects/login/login_config.h
@@ -45,8 +45,6 @@ public:
 
 public slots:
     virtual void save();
-    virtual void load();
-    virtual void defaults();
 
 private:
     LoginEffectConfigForm* m_ui;
diff --git a/kwin/effects/login/login_config.ui b/kwin/effects/login/login_config.ui
index b4b1f30..07cb5f1 100644
--- a/kwin/effects/login/login_config.ui
+++ b/kwin/effects/login/login_config.ui
@@ -12,7 +12,7 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="QCheckBox" name="fadetoblackBox">
+    <widget class="QCheckBox" name="kcfg_FadeToBlack">
      <property name="text">
       <string>Fade to black (fullscreen splash screens only)</string>
      </property>
diff --git a/kwin/effects/login/loginconfig.kcfgc b/kwin/effects/login/loginconfig.kcfgc
new file mode 100644
index 0000000..6bfbba2
--- /dev/null
+++ b/kwin/effects/login/loginconfig.kcfgc
@@ -0,0 +1,5 @@
+File=login.kcfg
+ClassName=LoginConfig
+NameSpace=KWin
+Singleton=true
+Mutators=true

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic