KWin
Loading...
Searching...
No Matches
kwintabboxconfigform.h
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: 2009 Martin Gräßlin <mgraesslin@kde.org>
6 SPDX-FileCopyrightText: 2020 Cyril Rossi <cyril.rossi@enioka.com>
7 SPDX-FileCopyrightText: 2023 Ismael Asensio <isma.af@gmail.com>
8
9 SPDX-License-Identifier: GPL-2.0-or-later
10*/
11
12#pragma once
13
14#include <QStandardItemModel>
15#include <QWidget>
16
17#include "tabbox/tabboxconfig.h"
18
19namespace Ui
20{
21class KWinTabBoxConfigForm;
22}
23
24namespace KWin
25{
26
27namespace TabBox
28{
29class TabBoxSettings;
31}
32
33class KWinTabBoxConfigForm : public QWidget
34{
35 Q_OBJECT
36
37public:
38 enum class TabboxType {
39 Main,
41 };
42
44 LayoutPath = Qt::UserRole + 1,
45 AddonEffect, // i.e not builtin effects
46 };
47
48 explicit KWinTabBoxConfigForm(TabboxType type, TabBox::TabBoxSettings *config, TabBox::ShortcutSettings *shortcutsConfig, QWidget *parent = nullptr);
49 ~KWinTabBoxConfigForm() override;
50
51 TabBox::TabBoxSettings *config() const;
52 bool highlightWindows() const;
53
54 void updateUiFromConfig();
55 void setDefaultIndicatorVisible(bool visible);
56
57 // EffectCombo Data Model
58 void setEffectComboModel(QStandardItemModel *model);
59 QVariant effectComboCurrentData(int role = Qt::UserRole) const;
60
61Q_SIGNALS:
64
65private Q_SLOTS:
66 void tabBoxToggled(bool on);
67 void onFilterScreen();
68 void onFilterDesktop();
69 void onFilterActivites();
70 void onFilterMinimization();
71 void onApplicationMode();
72 void onOrderMinimizedMode();
73 void onShowDesktopMode();
74 void onSwitchingMode();
75 void onEffectCombo();
76 void onShortcutChanged(const QKeySequence &seq);
77 void updateDefaultIndicators();
78
79private:
80 void setEnabledUi();
81 void applyDefaultIndicator(QList<QWidget *> widgets, bool visible);
82
83 // UI property getters
84 bool showTabBox() const;
85 int filterScreen() const;
86 int filterDesktop() const;
87 int filterActivities() const;
88 int filterMinimization() const;
89 int applicationMode() const;
90 int orderMinimizedMode() const;
91 int showDesktopMode() const;
92 int switchingMode() const;
93 QString layoutName() const;
94
95 // UI property setters
96 void setFilterScreen(TabBox::TabBoxConfig::ClientMultiScreenMode mode);
97 void setFilterDesktop(TabBox::TabBoxConfig::ClientDesktopMode mode);
98 void setFilterActivities(TabBox::TabBoxConfig::ClientActivitiesMode mode);
99 void setFilterMinimization(TabBox::TabBoxConfig::ClientMinimizedMode mode);
100 void setApplicationMode(TabBox::TabBoxConfig::ClientApplicationsMode mode);
101 void setOrderMinimizedMode(TabBox::TabBoxConfig::OrderMinimizedMode mode);
102 void setShowDesktopMode(TabBox::TabBoxConfig::ShowDesktopMode mode);
103 void setSwitchingModeChanged(TabBox::TabBoxConfig::ClientSwitchingMode mode);
104 void setLayoutName(const QString &layoutName);
105
106private:
107 TabBox::TabBoxSettings *m_config = nullptr;
108 TabBox::ShortcutSettings *m_shortcuts = nullptr;
109 bool m_showDefaultIndicator = false;
110
111 bool m_isHighlightWindowsEnabled = true;
112 Ui::KWinTabBoxConfigForm *ui;
113};
114
115} // namespace
void setDefaultIndicatorVisible(bool visible)
QVariant effectComboCurrentData(int role=Qt::UserRole) const
void setEffectComboModel(QStandardItemModel *model)
TabBox::TabBoxSettings * config() const
KWinTabBoxConfigForm(TabboxType type, TabBox::TabBoxSettings *config, TabBox::ShortcutSettings *shortcutsConfig, QWidget *parent=nullptr)
Session::Type type
Definition session.cpp:17