Config interface for resize effect
Better late than never... svn path=/trunk/KDE/kdebase/workspace/; revision=1195693
This commit is contained in:
parent
267ce1942b
commit
24a0e94397
6 changed files with 210 additions and 0 deletions
|
@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "magiclamp/magiclamp_config.h"
|
||||
#include "translucency/translucency_config.h"
|
||||
#include "presentwindows/presentwindows_config.h"
|
||||
#include "resize/resize_config.h"
|
||||
#include "shadow/shadow_config.h"
|
||||
#include "showfps/showfps_config.h"
|
||||
#include "thumbnailaside/thumbnailaside_config.h"
|
||||
|
@ -66,6 +67,7 @@ KWIN_EFFECT_CONFIG_MULTIPLE( builtins,
|
|||
KWIN_EFFECT_CONFIG_SINGLE( magiclamp, MagicLampEffectConfig )
|
||||
KWIN_EFFECT_CONFIG_SINGLE( translucency, TranslucencyEffectConfig )
|
||||
KWIN_EFFECT_CONFIG_SINGLE( presentwindows, PresentWindowsEffectConfig )
|
||||
KWIN_EFFECT_CONFIG_SINGLE( resize, ResizeEffectConfig )
|
||||
KWIN_EFFECT_CONFIG_SINGLE( shadow, ShadowEffectConfig )
|
||||
KWIN_EFFECT_CONFIG_SINGLE( showfps, ShowFpsEffectConfig )
|
||||
KWIN_EFFECT_CONFIG_SINGLE( thumbnailaside, ThumbnailAsideEffectConfig )
|
||||
|
|
|
@ -13,3 +13,14 @@ install( FILES
|
|||
|
||||
#######################################
|
||||
# Config
|
||||
|
||||
# Source files
|
||||
set( kwin4_effect_builtins_config_sources ${kwin4_effect_builtins_config_sources}
|
||||
resize/resize_config.cpp
|
||||
resize/resize_config.ui
|
||||
)
|
||||
|
||||
# .desktop files
|
||||
install( FILES
|
||||
resize/resize_config.desktop
|
||||
DESTINATION ${SERVICES_INSTALL_DIR}/kwin )
|
||||
|
|
84
effects/resize/resize_config.cpp
Normal file
84
effects/resize/resize_config.cpp
Normal file
|
@ -0,0 +1,84 @@
|
|||
/********************************************************************
|
||||
KWin - the KDE window manager
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2010 Martin Gräßlin <kde@martin-graesslin.com>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
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 "resize_config.h"
|
||||
#include <kwineffects.h>
|
||||
|
||||
#include <kconfiggroup.h>
|
||||
|
||||
#include <QVBoxLayout>
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
||||
KWIN_EFFECT_CONFIG_FACTORY
|
||||
|
||||
ResizeEffectConfigForm::ResizeEffectConfigForm(QWidget* parent) : QWidget(parent)
|
||||
{
|
||||
setupUi( this );
|
||||
}
|
||||
|
||||
ResizeEffectConfig::ResizeEffectConfig(QWidget* parent, const QVariantList& args) :
|
||||
KCModule(EffectFactory::componentData(), parent, args)
|
||||
{
|
||||
m_ui = new ResizeEffectConfigForm( this );
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout( this );
|
||||
|
||||
layout->addWidget(m_ui);
|
||||
|
||||
connect(m_ui->scaleBox, SIGNAL(stateChanged(int)), this, SLOT(changed()));
|
||||
connect(m_ui->outlineBox, SIGNAL(stateChanged(int)), this, SLOT(changed()));
|
||||
|
||||
load();
|
||||
}
|
||||
|
||||
void ResizeEffectConfig::load()
|
||||
{
|
||||
KCModule::load();
|
||||
|
||||
KConfigGroup conf = EffectsHandler::effectConfig( "Resize" );
|
||||
m_ui->scaleBox->setChecked(conf.readEntry<bool>( "TextureScale", true ));
|
||||
m_ui->outlineBox->setChecked(conf.readEntry<bool>( "Outline" , false ));
|
||||
|
||||
emit changed( false );
|
||||
}
|
||||
|
||||
void ResizeEffectConfig::save()
|
||||
{
|
||||
KConfigGroup conf = EffectsHandler::effectConfig( "Resize" );
|
||||
conf.writeEntry( "TextureScale", m_ui->scaleBox->isChecked() );
|
||||
conf.writeEntry( "Outline", m_ui->outlineBox->isChecked() );
|
||||
|
||||
conf.sync();
|
||||
|
||||
emit changed( false );
|
||||
EffectsHandler::sendReloadMessage( "resize" );
|
||||
}
|
||||
|
||||
void ResizeEffectConfig::defaults()
|
||||
{
|
||||
m_ui->scaleBox->setChecked( true );
|
||||
m_ui->outlineBox->setChecked( false );
|
||||
emit changed( true );
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
#include "resize_config.moc"
|
9
effects/resize/resize_config.desktop
Normal file
9
effects/resize/resize_config.desktop
Normal file
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
|
||||
X-KDE-Library=kcm_kwin4_effect_builtins
|
||||
X-KDE-ParentComponents=kwin4_effect_resize
|
||||
X-KDE-PluginKeyword=resize
|
||||
|
||||
Name=Resize Window
|
56
effects/resize/resize_config.h
Normal file
56
effects/resize/resize_config.h
Normal file
|
@ -0,0 +1,56 @@
|
|||
/********************************************************************
|
||||
KWin - the KDE window manager
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2010 Martin Gräßlin <kde@martin-graesslin.com>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*********************************************************************/
|
||||
|
||||
#ifndef KWIN_RESIZE_CONFIG_H
|
||||
#define KWIN_RESIZE_CONFIG_H
|
||||
|
||||
#include <kcmodule.h>
|
||||
|
||||
#include "ui_resize_config.h"
|
||||
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
||||
class ResizeEffectConfigForm : public QWidget, public Ui::ResizeEffectConfigForm
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ResizeEffectConfigForm(QWidget* parent = 0);
|
||||
};
|
||||
|
||||
class ResizeEffectConfig : public KCModule
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ResizeEffectConfig(QWidget* parent = 0, const QVariantList& args = QVariantList());
|
||||
|
||||
public slots:
|
||||
virtual void save();
|
||||
virtual void load();
|
||||
virtual void defaults();
|
||||
|
||||
private:
|
||||
ResizeEffectConfigForm* m_ui;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
48
effects/resize/resize_config.ui
Normal file
48
effects/resize/resize_config.ui
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>KWin::ResizeEffectConfigForm</class>
|
||||
<widget class="QWidget" name="KWin::ResizeEffectConfigForm">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="scaleBox">
|
||||
<property name="text">
|
||||
<string>Scale window</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="outlineBox">
|
||||
<property name="text">
|
||||
<string>Show outline</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
Reference in a new issue