KWin
Loading...
Searching...
No Matches
windowvieweffectkcm.cpp
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3 SPDX-FileCopyrightText: 2022 ivan tkachenko <me@ratijas.tk>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6*/
8
9#include <config-kwin.h>
10
11#include "windowviewconfig.h"
12
13#include <kwineffects_interface.h>
14
15#include <KActionCollection>
16#include <KGlobalAccel>
17#include <KLocalizedString>
18#include <KPluginFactory>
19
20#include <QAction>
21
22K_PLUGIN_CLASS(KWin::WindowViewEffectConfig)
23
24namespace KWin
25{
26
27WindowViewEffectConfig::WindowViewEffectConfig(QObject *parent, const KPluginMetaData &data)
28 : KCModule(parent, data)
29{
30 ui.setupUi(widget());
31 WindowViewConfig::instance(KWIN_CONFIG);
32 addConfig(WindowViewConfig::self(), widget());
33
34 auto actionCollection = new KActionCollection(widget(), QStringLiteral("kwin"));
35
36 actionCollection->setComponentDisplayName(i18n("KWin"));
37 actionCollection->setConfigGroup(QStringLiteral("windowview"));
38 actionCollection->setConfigGlobal(true);
39
40 const QKeySequence defaultToggleShortcut = Qt::CTRL | Qt::Key_F9;
41 QAction *toggleAction = actionCollection->addAction(QStringLiteral("Expose"));
42 toggleAction->setText(i18n("Toggle Present Windows (Current desktop)"));
43 toggleAction->setProperty("isConfigurationAction", true);
44 KGlobalAccel::self()->setDefaultShortcut(toggleAction, {defaultToggleShortcut});
45 KGlobalAccel::self()->setShortcut(toggleAction, {defaultToggleShortcut});
46
47 const QKeySequence defaultToggleShortcutAll = Qt::CTRL | Qt::Key_F10;
48 toggleAction = actionCollection->addAction(QStringLiteral("ExposeAll"));
49 toggleAction->setText(i18n("Toggle Present Windows (All desktops)"));
50 toggleAction->setProperty("isConfigurationAction", true);
51 KGlobalAccel::self()->setDefaultShortcut(toggleAction, {defaultToggleShortcutAll});
52 KGlobalAccel::self()->setShortcut(toggleAction, {defaultToggleShortcutAll});
53
54 const QKeySequence defaultToggleShortcutClass = Qt::CTRL | Qt::Key_F7;
55 toggleAction = actionCollection->addAction(QStringLiteral("ExposeClass"));
56 toggleAction->setText(i18n("Toggle Present Windows (Window class)"));
57 toggleAction->setProperty("isConfigurationAction", true);
58 KGlobalAccel::self()->setDefaultShortcut(toggleAction, {defaultToggleShortcutClass});
59 KGlobalAccel::self()->setShortcut(toggleAction, {defaultToggleShortcutClass});
60
61 toggleAction = actionCollection->addAction(QStringLiteral("ExposeClassCurrentDesktop"));
62 toggleAction->setText(i18n("Toggle Present Windows (Window class on current desktop)"));
63 toggleAction->setProperty("isConfigurationAction", true);
64 KGlobalAccel::self()->setDefaultShortcut(toggleAction, QList<QKeySequence>()); // no default shortcut
65 KGlobalAccel::self()->setShortcut(toggleAction, QList<QKeySequence>());
66
67 ui.shortcutsEditor->addCollection(actionCollection);
68 connect(ui.shortcutsEditor, &KShortcutsEditor::keyChange, this, &KCModule::markAsChanged);
69}
70
72{
73 KCModule::save();
74 ui.shortcutsEditor->save();
75
76 OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"),
77 QStringLiteral("/Effects"),
78 QDBusConnection::sessionBus());
79 interface.reconfigureEffect(QStringLiteral("windowview"));
80}
81
83{
84 ui.shortcutsEditor->allDefault();
85 KCModule::defaults();
86}
87
88} // namespace KWin
89
90#include "windowvieweffectkcm.moc"
91
92#include "moc_windowvieweffectkcm.cpp"
WindowViewEffectConfig(QObject *parent, const KPluginMetaData &data)