Add config module for DesktopGrid.
You can configure slide animation and activations shortcut svn path=/trunk/KDE/kdebase/workspace/; revision=716951
This commit is contained in:
parent
f05d91085a
commit
bb6a65b424
5 changed files with 159 additions and 3 deletions
|
@ -99,10 +99,15 @@ if(OPENGL_FOUND)
|
|||
DESTINATION ${DATA_INSTALL_DIR}/kwin )
|
||||
|
||||
# config modules
|
||||
KWIN4_ADD_EFFECT_CONFIG( builtins presentwindows_config.cpp shadow_config.cpp configs_builtins.cpp)
|
||||
KWIN4_ADD_EFFECT_CONFIG( builtins
|
||||
presentwindows_config.cpp
|
||||
shadow_config.cpp
|
||||
desktopgrid_config.cpp
|
||||
configs_builtins.cpp)
|
||||
install( FILES
|
||||
presentwindows_config.desktop
|
||||
shadow_config.desktop
|
||||
desktopgrid_config.desktop
|
||||
DESTINATION ${SERVICES_INSTALL_DIR}/kwin )
|
||||
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ License. See the file "COPYING" for the exact licensing terms.
|
|||
|
||||
#include "shadow_config.h"
|
||||
#include "presentwindows_config.h"
|
||||
#include "desktopgrid_config.h"
|
||||
|
||||
#include <kwineffects.h>
|
||||
|
||||
|
@ -17,6 +18,8 @@ License. See the file "COPYING" for the exact licensing terms.
|
|||
|
||||
KWIN_EFFECT_CONFIG_FACTORY
|
||||
K_PLUGIN_FACTORY_DEFINITION(EffectFactory, registerPlugin<KWin::ShadowEffectConfig>("shadow");
|
||||
registerPlugin<KWin::PresentWindowsEffectConfig>("presentwindows");)
|
||||
K_EXPORT_PLUGIN(EffectFactory("kcm_kwineffect"))
|
||||
registerPlugin<KWin::PresentWindowsEffectConfig>("presentwindows");
|
||||
registerPlugin<KWin::DesktopGridEffectConfig>("desktopgrid");
|
||||
)
|
||||
K_EXPORT_PLUGIN(EffectFactory("kwin"))
|
||||
|
||||
|
|
97
effects/desktopgrid_config.cpp
Normal file
97
effects/desktopgrid_config.cpp
Normal file
|
@ -0,0 +1,97 @@
|
|||
/*****************************************************************
|
||||
KWin - the KDE window manager
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2007 Rivo Laks <rivolaks@hot.ee>
|
||||
|
||||
You can Freely distribute this program under the GNU General Public
|
||||
License. See the file "COPYING" for the exact licensing terms.
|
||||
******************************************************************/
|
||||
|
||||
#include "desktopgrid_config.h"
|
||||
|
||||
#include <kwineffects.h>
|
||||
|
||||
#include <klocale.h>
|
||||
#include <kdebug.h>
|
||||
#include <KActionCollection>
|
||||
#include <kaction.h>
|
||||
#include <KShortcutsEditor>
|
||||
#include <KGlobalAccel>
|
||||
|
||||
#include <QVBoxLayout>
|
||||
#include <QCheckBox>
|
||||
|
||||
KWIN_EFFECT_CONFIG_FACTORY
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
||||
DesktopGridEffectConfig::DesktopGridEffectConfig(QWidget* parent, const QVariantList& args) :
|
||||
KCModule(EffectFactory::componentData(), parent, args)
|
||||
{
|
||||
kDebug() ;
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
mSlide = new QCheckBox(i18n("Animate desktop changes"), this);
|
||||
connect(mSlide, SIGNAL(toggled(bool)), this, SLOT(changed()));
|
||||
layout->addWidget(mSlide);
|
||||
|
||||
KGlobalAccel::self()->overrideMainComponentData(componentData());
|
||||
KActionCollection* actionCollection = new KActionCollection( this, KComponentData("kwin") );
|
||||
KAction* show = static_cast<KAction*>(actionCollection->addAction( "ShowDesktopGrid" ));
|
||||
show->setText( i18n("Show Desktop Grid" ));
|
||||
show->setGlobalShortcut( KShortcut( Qt::CTRL + Qt::Key_F8 ));
|
||||
|
||||
KShortcutsEditor* shortcutEditor = new KShortcutsEditor(actionCollection, this,
|
||||
KShortcutsEditor::GlobalAction, KShortcutsEditor::LetterShortcutsDisallowed);
|
||||
connect(shortcutEditor, SIGNAL(keyChange()), this, SLOT(changed()));
|
||||
layout->addWidget(shortcutEditor);
|
||||
|
||||
layout->addStretch();
|
||||
|
||||
load();
|
||||
}
|
||||
|
||||
DesktopGridEffectConfig::~DesktopGridEffectConfig()
|
||||
{
|
||||
kDebug() ;
|
||||
}
|
||||
|
||||
void DesktopGridEffectConfig::load()
|
||||
{
|
||||
kDebug() ;
|
||||
KCModule::load();
|
||||
|
||||
KConfigGroup conf = EffectsHandler::effectConfig("DesktopGrid");
|
||||
mSlide->setChecked(conf.readEntry("Slide", true));
|
||||
|
||||
emit changed(false);
|
||||
}
|
||||
|
||||
void DesktopGridEffectConfig::save()
|
||||
{
|
||||
kDebug() ;
|
||||
KCModule::save();
|
||||
|
||||
KConfigGroup conf = EffectsHandler::effectConfig("DesktopGrid");
|
||||
conf.writeEntry("Slide", mSlide->isChecked());
|
||||
|
||||
conf.sync();
|
||||
|
||||
emit changed(false);
|
||||
EffectsHandler::sendReloadMessage( "desktopgrid" );
|
||||
}
|
||||
|
||||
void DesktopGridEffectConfig::defaults()
|
||||
{
|
||||
kDebug() ;
|
||||
mSlide->setChecked(true);
|
||||
emit changed(true);
|
||||
}
|
||||
|
||||
|
||||
} // namespace
|
||||
|
||||
#include "desktopgrid_config.moc"
|
10
effects/desktopgrid_config.desktop
Normal file
10
effects/desktopgrid_config.desktop
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Service
|
||||
ServiceTypes=KCModule
|
||||
|
||||
X-KDE-Library=kcm_kwin4_effect_builtins
|
||||
X-KDE-ParentComponents=kwin4_effect_desktopgrid
|
||||
X-KDE-PluginKeyword=desktopgrid
|
||||
|
||||
Name=Desktop Grid
|
41
effects/desktopgrid_config.h
Normal file
41
effects/desktopgrid_config.h
Normal file
|
@ -0,0 +1,41 @@
|
|||
/*****************************************************************
|
||||
KWin - the KDE window manager
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2007 Rivo Laks <rivolaks@hot.ee>
|
||||
|
||||
You can Freely distribute this program under the GNU General Public
|
||||
License. See the file "COPYING" for the exact licensing terms.
|
||||
******************************************************************/
|
||||
|
||||
#ifndef KWIN_DESKTOPGRID_CONFIG_H
|
||||
#define KWIN_DESKTOPGRID_CONFIG_H
|
||||
|
||||
#define KDE3_SUPPORT
|
||||
#include <kcmodule.h>
|
||||
#undef KDE3_SUPPORT
|
||||
|
||||
class QCheckBox;
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
||||
class DesktopGridEffectConfig : public KCModule
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DesktopGridEffectConfig(QWidget* parent = 0, const QVariantList& args = QVariantList());
|
||||
~DesktopGridEffectConfig();
|
||||
|
||||
public slots:
|
||||
virtual void save();
|
||||
virtual void load();
|
||||
virtual void defaults();
|
||||
|
||||
private:
|
||||
QCheckBox* mSlide;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue