KWin
Loading...
Searching...
No Matches
kcmrules.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2020 Ismael Asensio <isma.af@gmail.com>
3
4 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5*/
6
7#pragma once
8
9#include "rulebookmodel.h"
10#include "rulesmodel.h"
11
12#include <KQuickConfigModule>
13
14namespace KWin
15{
16class RuleSettings;
17
18class KCMKWinRules : public KQuickConfigModule
19{
20 Q_OBJECT
21
22 Q_PROPERTY(RuleBookModel *ruleBookModel MEMBER m_ruleBookModel CONSTANT)
23 Q_PROPERTY(RulesModel *rulesModel MEMBER m_rulesModel CONSTANT)
24 Q_PROPERTY(int editIndex READ editIndex NOTIFY editIndexChanged)
25
26public:
27 explicit KCMKWinRules(QObject *parent, const KPluginMetaData &metaData, const QVariantList &arguments);
28
29 Q_INVOKABLE void setRuleDescription(int index, const QString &description);
30 Q_INVOKABLE void editRule(int index);
31
32 Q_INVOKABLE void createRule();
33 Q_INVOKABLE void removeRule(int index);
34 Q_INVOKABLE void moveRule(int sourceIndex, int destIndex);
35 Q_INVOKABLE void duplicateRule(int index);
36
37 Q_INVOKABLE void exportToFile(const QUrl &path, const QList<int> &indexes);
38 Q_INVOKABLE void importFromFile(const QUrl &path);
39
40public Q_SLOTS:
41 void load() override;
42 void save() override;
43
44Q_SIGNALS:
46
47private Q_SLOTS:
48 void updateNeedsSave();
49
51 int editIndex() const;
52 void parseArguments(const QStringList &args);
53 void createRuleFromProperties();
54
55 QModelIndex findRuleWithProperties(const QVariantMap &info, bool wholeApp) const;
56 void fillSettingsFromProperties(RuleSettings *settings, const QVariantMap &info, bool wholeApp) const;
57
59 RuleBookModel *m_ruleBookModel;
60 RulesModel *m_rulesModel;
61
62 QPersistentModelIndex m_editIndex;
63
64 bool m_alreadyLoaded = false;
65 QVariantMap m_winProperties;
66 bool m_wholeApp = false;
67};
68
69} // namespace
Q_INVOKABLE void setRuleDescription(int index, const QString &description)
Definition kcmrules.cpp:154
void save() override
Definition kcmrules.cpp:111
RulesModel * rulesModel
Definition kcmrules.h:23
Q_INVOKABLE void moveRule(int sourceIndex, int destIndex)
Definition kcmrules.cpp:206
void load() override
Definition kcmrules.cpp:95
Q_INVOKABLE void importFromFile(const QUrl &path)
Definition kcmrules.cpp:262
RuleBookModel * ruleBookModel
Definition kcmrules.h:22
Q_INVOKABLE void createRule()
Definition kcmrules.cpp:184
Q_INVOKABLE void removeRule(int index)
Definition kcmrules.cpp:194
Q_INVOKABLE void exportToFile(const QUrl &path, const QList< int > &indexes)
Definition kcmrules.cpp:237
Q_INVOKABLE void duplicateRule(int index)
Definition kcmrules.cpp:221
Q_INVOKABLE void editRule(int index)
Definition kcmrules.cpp:169
#define private
#define explicit