KWin
Loading...
Searching...
No Matches
trackmouse_config.cpp
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2007 Rivo Laks <rivolaks@hot.ee>
6 SPDX-FileCopyrightText: 2010 Jorge Mata <matamax123@gmail.com>
7
8 SPDX-License-Identifier: GPL-2.0-or-later
9*/
10#include "trackmouse_config.h"
11
12#include <config-kwin.h>
13
14// KConfigSkeleton
15#include "trackmouseconfig.h"
16
17#include <kwineffects_interface.h>
18
19#include <KActionCollection>
20#include <KGlobalAccel>
21#include <KLocalizedString>
22#include <KPluginFactory>
23
24#include <QAction>
25#include <QLabel>
26#include <QVBoxLayout>
27
28K_PLUGIN_CLASS(KWin::TrackMouseEffectConfig)
29
30namespace KWin
31{
32
33static const QString s_toggleTrackMouseActionName = QStringLiteral("TrackMouse");
34
35TrackMouseEffectConfig::TrackMouseEffectConfig(QObject *parent, const KPluginMetaData &data)
36 : KCModule(parent, data)
37{
38 TrackMouseConfig::instance(KWIN_CONFIG);
39 m_ui.setupUi(widget());
40
41 addConfig(TrackMouseConfig::self(), widget());
42
43 m_actionCollection = new KActionCollection(this, QStringLiteral("kwin"));
44 m_actionCollection->setComponentDisplayName(i18n("KWin"));
45 m_actionCollection->setConfigGroup(QStringLiteral("TrackMouse"));
46 m_actionCollection->setConfigGlobal(true);
47
48 QAction *a = m_actionCollection->addAction(s_toggleTrackMouseActionName);
49 a->setText(i18n("Track mouse"));
50 a->setProperty("isConfigurationAction", true);
51
52 KGlobalAccel::self()->setDefaultShortcut(a, QList<QKeySequence>());
53 KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>());
54
55 connect(m_ui.shortcut, &KKeySequenceWidget::keySequenceChanged,
56 this, &TrackMouseEffectConfig::shortcutChanged);
57}
58
62
64{
65 KCModule::load();
66
67 if (QAction *a = m_actionCollection->action(s_toggleTrackMouseActionName)) {
68 auto shortcuts = KGlobalAccel::self()->shortcut(a);
69 if (!shortcuts.isEmpty()) {
70 m_ui.shortcut->setKeySequence(shortcuts.first());
71 }
72 }
73}
74
76{
77 KCModule::save();
78 m_actionCollection->writeSettings();
79 OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"),
80 QStringLiteral("/Effects"),
81 QDBusConnection::sessionBus());
82 interface.reconfigureEffect(QStringLiteral("trackmouse"));
83}
84
86{
87 KCModule::defaults();
88 m_ui.shortcut->clearKeySequence();
89}
90
91void TrackMouseEffectConfig::shortcutChanged(const QKeySequence &seq)
92{
93 if (QAction *a = m_actionCollection->action(QStringLiteral("TrackMouse"))) {
94 KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>() << seq, KGlobalAccel::NoAutoloading);
95 }
96 setNeedsSave(true);
97}
98
99} // namespace
100
101#include "trackmouse_config.moc"
102
103#include "moc_trackmouse_config.cpp"
TrackMouseEffectConfig(QObject *parent, const KPluginMetaData &data)