KWin
Loading...
Searching...
No Matches
ruleitem.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 "optionsmodel.h"
10
11#include <QFlag>
12#include <QIcon>
13
14namespace KWin
15{
16
17class RuleItem : public QObject
18{
19 Q_OBJECT
20
21public:
35 Q_ENUM(Type)
36
37 enum Flags {
39 AlwaysEnabled = 1u << 0,
40 StartEnabled = 1u << 1,
41 AffectsWarning = 1u << 2,
43 SuggestionOnly = 1u << 4,
44 AllFlags = 0b11111
45 };
46
47public:
49 RuleItem(const QString &key,
51 const Type type,
52 const QString &name,
53 const QString &section,
54 const QIcon &icon = QIcon::fromTheme("window"),
55 const QString &description = QString(""));
56
57 QString key() const;
58 QString name() const;
59 QString section() const;
60 QIcon icon() const;
61 QString iconName() const;
62 QString description() const;
63
64 bool isEnabled() const;
65 void setEnabled(bool enabled);
66
67 bool hasFlag(RuleItem::Flags flag) const;
68 void setFlag(RuleItem::Flags flag, bool active = true);
69
70 Type type() const;
71 QVariant value() const;
72 void setValue(QVariant value);
73 QVariant suggestedValue() const;
74 void setSuggestedValue(QVariant value);
75
76 QVariant options() const;
77 void setOptionsData(const QList<OptionsModel::Data> &data);
78
80 int policy() const; // int belongs to anonymous enum in Rules::
81 void setPolicy(int policy); // int belongs to anonymous enum in Rules::
82 QVariant policyModel() const;
83 QString policyKey() const;
84
85 void reset();
86
87private:
88 QVariant typedValue(const QVariant &value) const;
89
90private:
91 QString m_key;
92 RuleItem::Type m_type;
93 QString m_name;
94 QString m_section;
95 QIcon m_icon;
96 QString m_description;
97 QFlags<Flags> m_flags;
98
99 bool m_enabled;
100
101 QVariant m_value;
102 QVariant m_suggestedValue;
103
104 std::unique_ptr<RulePolicy> m_policy;
105 std::unique_ptr<OptionsModel> m_options;
106};
107
108} // namespace
RulePolicy::Type policyType() const
Definition ruleitem.cpp:154
QString description() const
Definition ruleitem.cpp:68
QIcon icon() const
Definition ruleitem.cpp:63
QVariant suggestedValue() const
Definition ruleitem.cpp:114
void setOptionsData(const QList< OptionsModel::Data > &data)
Definition ruleitem.cpp:132
void setEnabled(bool enabled)
Definition ruleitem.cpp:78
void setPolicy(int policy)
Definition ruleitem.cpp:149
QString name() const
Definition ruleitem.cpp:48
bool hasFlag(RuleItem::Flags flag) const
Definition ruleitem.cpp:83
void setValue(QVariant value)
Definition ruleitem.cpp:106
QString key() const
Definition ruleitem.cpp:43
bool isEnabled() const
Definition ruleitem.cpp:73
QVariant policyModel() const
Definition ruleitem.cpp:159
int policy() const
Definition ruleitem.cpp:144
QString iconName() const
Definition ruleitem.cpp:58
QString section() const
Definition ruleitem.cpp:53
QString policyKey() const
Definition ruleitem.cpp:164
QVariant options() const
Definition ruleitem.cpp:124
Type type() const
Definition ruleitem.cpp:93
void setFlag(RuleItem::Flags flag, bool active=true)
Definition ruleitem.cpp:88
void setSuggestedValue(QVariant value)
Definition ruleitem.cpp:119
QVariant value() const
Definition ruleitem.cpp:98