kwin/kcmkwin/kwintabbox/main.h
Martin Gräßlin 4da220adef [kcmkwin/tabbox] Use BuiltInEffects to find CoverSwitch and FlipSwitch
Instead of using the KServiceTypeTrader we use the BuiltInEffects to get
the name of CoverSwitch and FlipSwitch.

Showing the configuration dialog is migrated to KPluginTrader which fixes
the showing of the dialog.
2014-04-28 13:51:30 +02:00

96 lines
2.6 KiB
C++

/********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.
Copyright (C) 2009 Martin Gräßlin <mgraesslin@kde.org>
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 __MAIN_H__
#define __MAIN_H__
#include <kcmodule.h>
#include <ksharedconfig.h>
#include "tabboxconfig.h"
#include "ui_main.h"
class KShortcutsEditor;
class KActionCollection;
namespace KWin
{
enum class BuiltInEffect;
namespace TabBox
{
}
class KWinTabBoxConfigForm : public QWidget, public Ui::KWinTabBoxConfigForm
{
Q_OBJECT
public:
explicit KWinTabBoxConfigForm(QWidget* parent);
};
class KWinTabBoxConfig : public KCModule
{
Q_OBJECT
public:
explicit KWinTabBoxConfig(QWidget* parent, const QVariantList& args);
~KWinTabBoxConfig();
public Q_SLOTS:
virtual void save();
virtual void load();
virtual void defaults();
private Q_SLOTS:
void effectSelectionChanged(int index);
void configureEffectClicked();
void tabBoxToggled(bool on);
void shortcutChanged(const QKeySequence &seq);
void slotGHNS();
private:
void updateUiFromConfig(KWinTabBoxConfigForm* ui, const TabBox::TabBoxConfig& config);
void updateConfigFromUi(const KWinTabBoxConfigForm* ui, TabBox::TabBoxConfig& config);
void loadConfig(const KConfigGroup& config, KWin::TabBox::TabBoxConfig& tabBoxConfig);
void saveConfig(KConfigGroup& config, const KWin::TabBox::TabBoxConfig& tabBoxConfig);
void initLayoutLists();
private:
enum Mode {
CoverSwitch = 0,
FlipSwitch = 1,
Layout = 2
};
KWinTabBoxConfigForm* m_primaryTabBoxUi;
KWinTabBoxConfigForm* m_alternativeTabBoxUi;
KSharedConfigPtr m_config;
KActionCollection* m_actionCollection;
KShortcutsEditor* m_editor;
TabBox::TabBoxConfig m_tabBoxConfig;
TabBox::TabBoxConfig m_tabBoxAlternativeConfig;
bool effectEnabled(const BuiltInEffect& effect, const KConfigGroup& cfg) const;
};
} // namespace
#endif