058a5da2dd
Needs to implement a dummy switcher item. As the root item of the switchers are no longer QQuickItem derived it cannot use a QQuickView. Instead a component gets created and the switcher is just shown on the primary screen. It's a more appropriate preview now which is not put into a dialog window. To make it more realistic (and to be able to dismiss it) the preview grabs keyboard and mouse and closes itself if escape, return, enter or space is pressed. As well clicking outside the preview window closes the preview.
95 lines
2.6 KiB
C++
95 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
|
|
{
|
|
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 QString& effect, const KConfigGroup& cfg) const;
|
|
};
|
|
|
|
} // namespace
|
|
|
|
#endif
|