From a6ab97172e2ead7433566a5000201a1837ea5fbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Fri, 26 Oct 2012 09:32:08 +0200 Subject: [PATCH] Use KConfigXT in MouseClick Effect --- effects/mouseclick/CMakeLists.txt | 3 + effects/mouseclick/mouseclick.cpp | 23 +++--- effects/mouseclick/mouseclick.kcfg | 34 +++++++++ effects/mouseclick/mouseclick_config.cpp | 90 ++--------------------- effects/mouseclick/mouseclick_config.h | 2 - effects/mouseclick/mouseclick_config.ui | 45 +++++++----- effects/mouseclick/mouseclickconfig.kcfgc | 5 ++ 7 files changed, 86 insertions(+), 116 deletions(-) create mode 100644 effects/mouseclick/mouseclick.kcfg create mode 100644 effects/mouseclick/mouseclickconfig.kcfgc diff --git a/effects/mouseclick/CMakeLists.txt b/effects/mouseclick/CMakeLists.txt index b4cace88bc..2c59bc6e1a 100644 --- a/effects/mouseclick/CMakeLists.txt +++ b/effects/mouseclick/CMakeLists.txt @@ -6,6 +6,7 @@ set( kwin4_effect_builtins_sources ${kwin4_effect_builtins_sources} mouseclick/mouseclick.cpp ) +kde4_add_kcfg_files(kwin4_effect_builtins_sources mouseclick/mouseclickconfig.kcfgc) # .desktop files install( FILES @@ -22,6 +23,8 @@ set( kwin4_effect_builtins_config_sources ${kwin4_effect_builtins_config_sources mouseclick/mouseclick_config.ui ) +kde4_add_kcfg_files(kwin4_effect_builtins_config_sources mouseclick/mouseclickconfig.kcfgc) + install( FILES mouseclick/mouseclick_config.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kwin ) diff --git a/effects/mouseclick/mouseclick.cpp b/effects/mouseclick/mouseclick.cpp index 3739d464d4..5eb5e59aac 100644 --- a/effects/mouseclick/mouseclick.cpp +++ b/effects/mouseclick/mouseclick.cpp @@ -19,8 +19,9 @@ along with this program. If not, see . *********************************************************************/ #include "mouseclick.h" +// KConfigSkeleton +#include "mouseclickconfig.h" -#include #include #include @@ -72,16 +73,16 @@ bool MouseClickEffect::supported() void MouseClickEffect::reconfigure(ReconfigureFlags) { - KConfigGroup conf = EffectsHandler::effectConfig("MouseClick"); - m_colors[0] = conf.readEntry("Color1", QColor(Qt::red)); - m_colors[1] = conf.readEntry("Color2", QColor(Qt::green)); - m_colors[2] = conf.readEntry("Color3", QColor(Qt::blue)); - m_lineWidth = conf.readEntry("LineWidth", 1.f); - m_ringLife = conf.readEntry("RingLife", 300); - m_ringMaxSize = conf.readEntry("RingSize", 20); - m_ringCount = conf.readEntry("RingCount", 2); - m_showText = conf.readEntry("ShowText", true); - m_font = conf.readEntry("Font", QFont()); + MouseClickConfig::self()->readConfig(); + m_colors[0] = MouseClickConfig::color1(); + m_colors[1] = MouseClickConfig::color2(); + m_colors[2] = MouseClickConfig::color3(); + m_lineWidth = MouseClickConfig::lineWidth(); + m_ringLife = MouseClickConfig::ringLife(); + m_ringMaxSize = MouseClickConfig::ringSize(); + m_ringCount = MouseClickConfig::ringCount(); + m_showText = MouseClickConfig::showText(); + m_font = MouseClickConfig::font(); } void MouseClickEffect::prePaintScreen(ScreenPrePaintData& data, int time) diff --git a/effects/mouseclick/mouseclick.kcfg b/effects/mouseclick/mouseclick.kcfg new file mode 100644 index 0000000000..b34f072472 --- /dev/null +++ b/effects/mouseclick/mouseclick.kcfg @@ -0,0 +1,34 @@ + + + + + + QColor(Qt::red) + + + QColor(Qt::green) + + + QColor(Qt::blue) + + + 1.0 + + + 300 + + + 20 + + + 2 + + + true + + + + diff --git a/effects/mouseclick/mouseclick_config.cpp b/effects/mouseclick/mouseclick_config.cpp index b8d8eeb2e0..b92228f05b 100644 --- a/effects/mouseclick/mouseclick_config.cpp +++ b/effects/mouseclick/mouseclick_config.cpp @@ -19,12 +19,13 @@ along with this program. If not, see . *********************************************************************/ #include "mouseclick_config.h" +// KConfigSkeleton +#include "mouseclickconfig.h" #include #include #include -#include #include #include @@ -48,15 +49,6 @@ MouseClickEffectConfig::MouseClickEffectConfig(QWidget* parent, const QVariantLi layout->addWidget(m_ui); connect(m_ui->editor, SIGNAL(keyChange()), this, SLOT(changed())); - connect(m_ui->button1_color_input, SIGNAL(currentIndexChanged(int)), this, SLOT(changed())); - connect(m_ui->button2_color_input, SIGNAL(currentIndexChanged(int)), this, SLOT(changed())); - connect(m_ui->button3_color_input, SIGNAL(currentIndexChanged(int)), this, SLOT(changed())); - connect(m_ui->ring_line_width_input, SIGNAL(valueChanged(double)), this, SLOT(changed())); - connect(m_ui->ring_duration_input, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->ring_radius_input, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->ring_count_input, SIGNAL(valueChanged(int)), this, SLOT(changed())); - connect(m_ui->showtext_input, SIGNAL(toggled(bool)), this, SLOT(changed())); - connect(m_ui->font_input, SIGNAL(fontSelected(QFont)), this, SLOT(changed())); // Shortcut config. The shortcut belongs to the component "kwin"! m_actionCollection = new KActionCollection(this, KComponentData("kwin")); @@ -67,6 +59,8 @@ MouseClickEffectConfig::MouseClickEffectConfig(QWidget* parent, const QVariantLi a->setGlobalShortcut(KShortcut(Qt::META + Qt::Key_Asterisk)); m_ui->editor->addCollection(m_actionCollection); + + addConfig(MouseClickConfig::self(), m_ui); load(); } @@ -76,87 +70,13 @@ MouseClickEffectConfig::~MouseClickEffectConfig() m_ui->editor->undoChanges(); } -void MouseClickEffectConfig::load() -{ - KCModule::load(); - - KConfigGroup conf = EffectsHandler::effectConfig("MouseClick"); - - QColor color1 = conf.readEntry("Color1", QColor(Qt::red)); - QColor color2 = conf.readEntry("Color2", QColor(Qt::green)); - QColor color3 = conf.readEntry("Color3", QColor(Qt::blue)); - - float lineWidth = conf.readEntry("LineWidth", 1.f); - float ringLife = conf.readEntry("RingLife", 300); - float ringSize = conf.readEntry("RingSize", 20); - - bool showText = conf.readEntry("ShowText", true); - int ringCount = conf.readEntry("RingCount", 2); - QFont font = conf.readEntry("Font", QFont()); - - m_ui->button1_color_input->setColor(color1); - m_ui->button2_color_input->setColor(color2); - m_ui->button3_color_input->setColor(color3); - m_ui->ring_line_width_input->setValue(lineWidth); - m_ui->ring_duration_input->setValue(ringLife); - m_ui->ring_radius_input->setValue(ringSize); - m_ui->ring_count_input->setValue(ringCount); - - m_ui->showtext_input->setChecked(showText); - m_ui->font_input->setFont(font); - - m_ui->ring_line_width_input->setSuffix(i18n(" pixels")); - m_ui->ring_duration_input->setSuffix(ki18np(" millisecond", " milliseconds")); - m_ui->ring_radius_input->setSuffix(ki18np(" pixel", " pixels")); - - emit changed(false); -} - void MouseClickEffectConfig::save() { - //KCModule::save(); - - KConfigGroup conf = EffectsHandler::effectConfig("MouseClick"); - - conf.writeEntry("Color1", m_ui->button1_color_input->color()); - conf.writeEntry("Color2", m_ui->button2_color_input->color()); - conf.writeEntry("Color3", m_ui->button3_color_input->color()); - - conf.writeEntry("LineWidth", m_ui->ring_line_width_input->value()); - conf.writeEntry("RingLife", m_ui->ring_duration_input->value()); - conf.writeEntry("RingSize", m_ui->ring_radius_input->value()); - conf.writeEntry("RingCount", m_ui->ring_count_input->value()); - - conf.writeEntry("ShowText", m_ui->showtext_input->isChecked()); - conf.writeEntry("Font", m_ui->font_input->font()); - - m_actionCollection->writeSettings(); + KCModule::save(); m_ui->editor->save(); // undo() will restore to this state from now on - - conf.sync(); - - emit changed(false); EffectsHandler::sendReloadMessage("mouseclick"); } -void MouseClickEffectConfig::defaults() -{ - m_ui->button1_color_input->setColor(Qt::red); - m_ui->button2_color_input->setColor(Qt::green); - m_ui->button3_color_input->setColor(Qt::blue); - - m_ui->ring_line_width_input->setValue(1.f); - m_ui->ring_duration_input->setValue(300); - m_ui->ring_radius_input->setValue(20); - m_ui->ring_count_input->setValue(2); - - m_ui->showtext_input->setChecked(true); - m_ui->font_input->setFont(QFont()); - - emit changed(true); -} - - } // namespace #include "mouseclick_config.moc" diff --git a/effects/mouseclick/mouseclick_config.h b/effects/mouseclick/mouseclick_config.h index af02c2b1c1..028662c6ec 100644 --- a/effects/mouseclick/mouseclick_config.h +++ b/effects/mouseclick/mouseclick_config.h @@ -45,8 +45,6 @@ public: virtual ~MouseClickEffectConfig(); virtual void save(); - virtual void load(); - virtual void defaults(); private: MouseClickEffectConfigForm* m_ui; diff --git a/effects/mouseclick/mouseclick_config.ui b/effects/mouseclick/mouseclick_config.ui index 4c5aed7036..7e55ca1c44 100644 --- a/effects/mouseclick/mouseclick_config.ui +++ b/effects/mouseclick/mouseclick_config.ui @@ -6,7 +6,7 @@ 0 0 - 292 + 335 378 @@ -22,7 +22,7 @@ - + 0 @@ -40,7 +40,7 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - button1_color_input + kcfg_Color1 @@ -50,12 +50,12 @@ Middle Mouse Button Color: - button2_color_input + kcfg_Color2 - + 0 @@ -70,12 +70,12 @@ Right Mouse Button Color: - button3_color_input + kcfg_Color3 - + 0 @@ -103,28 +103,34 @@ Line Width: - ring_line_width_input + kcfg_LineWidth - + 0 0 + + pixel + - + 0 0 + + msec + 50 @@ -139,7 +145,7 @@ Ring Duration: - ring_duration_input + kcfg_RingLife @@ -149,18 +155,21 @@ Ring Radius: - ring_radius_input + kcfg_RingSize - + 0 0 + + pixel + 1 @@ -175,12 +184,12 @@ Ring Count: - ring_count_input + kcfg_RingCount - + 0 @@ -209,10 +218,10 @@ - + - + @@ -224,7 +233,7 @@ Show Text: - showtext_input + kcfg_ShowText diff --git a/effects/mouseclick/mouseclickconfig.kcfgc b/effects/mouseclick/mouseclickconfig.kcfgc new file mode 100644 index 0000000000..cdfae15782 --- /dev/null +++ b/effects/mouseclick/mouseclickconfig.kcfgc @@ -0,0 +1,5 @@ +File=mouseclick.kcfg +ClassName=MouseClickConfig +NameSpace=KWin +Singleton=true +Mutators=true