KWin
Loading...
Searching...
No Matches
mousemark_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 Christian Nitschkowski <christian.nitschkowski@kdemail.net>
6 SPDX-FileCopyrightText: 2023 Andrew Shark <ashark at linuxcomp.ru>
7
8 SPDX-License-Identifier: GPL-2.0-or-later
9*/
10#include "mousemark_config.h"
11
12#include <config-kwin.h>
13
14// KConfigSkeleton
15#include "mousemarkconfig.h"
16#include <kwineffects_interface.h>
17
18#include <QAction>
19
20#include <KActionCollection>
21#include <KGlobalAccel>
22#include <KLocalizedString>
23#include <KPluginFactory>
24
25#include <QDebug>
26#include <QWidget>
27
28K_PLUGIN_CLASS(KWin::MouseMarkEffectConfig)
29
30namespace KWin
31{
32
33MouseMarkEffectConfig::MouseMarkEffectConfig(QObject *parent, const KPluginMetaData &data)
34 : KCModule(parent, data)
35{
36 m_ui.setupUi(widget());
37
38 MouseMarkConfig::instance(KWIN_CONFIG);
39 addConfig(MouseMarkConfig::self(), widget());
40
41 // Shortcut config. The shortcut belongs to the component "kwin"!
42 m_actionCollection = new KActionCollection(this, QStringLiteral("kwin"));
43 m_actionCollection->setComponentDisplayName(i18n("KWin"));
44
45 QAction *a = m_actionCollection->addAction(QStringLiteral("ClearMouseMarks"));
46 a->setText(i18n("Clear Mouse Marks"));
47 a->setProperty("isConfigurationAction", true);
48 KGlobalAccel::self()->setDefaultShortcut(a, QList<QKeySequence>() << (Qt::SHIFT | Qt::META | Qt::Key_F11));
49 KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>() << (Qt::SHIFT | Qt::META | Qt::Key_F11));
50
51 a = m_actionCollection->addAction(QStringLiteral("ClearLastMouseMark"));
52 a->setText(i18n("Clear Last Mouse Mark"));
53 a->setProperty("isConfigurationAction", true);
54 KGlobalAccel::self()->setDefaultShortcut(a, QList<QKeySequence>() << (Qt::SHIFT | Qt::META | Qt::Key_F12));
55 KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>() << (Qt::SHIFT | Qt::META | Qt::Key_F12));
56
57 m_ui.editor->addCollection(m_actionCollection);
58
59 connect(m_ui.kcfg_LineWidth, qOverload<int>(&QSpinBox::valueChanged), this, [this]() {
60 updateSpinBoxSuffix();
61 });
62}
63
65{
66 KCModule::load();
67
68 updateSpinBoxSuffix();
69}
70
72{
73 qDebug() << "Saving config of MouseMark";
74 KCModule::save();
75
76 m_actionCollection->writeSettings();
77 m_ui.editor->save(); // undo() will restore to this state from now on
78
79 OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"),
80 QStringLiteral("/Effects"),
81 QDBusConnection::sessionBus());
82 interface.reconfigureEffect(QStringLiteral("mousemark"));
83}
84
85void MouseMarkEffectConfig::updateSpinBoxSuffix()
86{
87 m_ui.kcfg_LineWidth->setSuffix(i18ncp("Suffix", " pixel", " pixels", m_ui.kcfg_LineWidth->value()));
88}
89
90} // namespace
91
92#include "mousemark_config.moc"
93
94#include "moc_mousemark_config.cpp"
MouseMarkEffectConfig(QObject *parent, const KPluginMetaData &data)