KWin
Loading...
Searching...
No Matches
kwinscreenedgeconfigform.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: 2009 Lucas Murray <lmurray@undefinedfire.com>
6 SPDX-FileCopyrightText: 2020 Cyril Rossi <cyril.rossi@enioka.com>
7
8 SPDX-License-Identifier: GPL-2.0-or-later
9*/
10
12#include "ui_main.h"
13
14namespace KWin
15{
16
18 : KWinScreenEdge(parent)
19 , ui(std::make_unique<Ui::KWinScreenEdgesConfigUI>())
20{
21 ui->setupUi(this);
22
23 connect(ui->kcfg_ElectricBorderDelay, qOverload<int>(&QSpinBox::valueChanged), this, &KWinScreenEdgesConfigForm::sanitizeCooldown);
24
25 // Visual feedback of action group conflicts
26 connect(ui->kcfg_ElectricBorders, qOverload<int>(&QComboBox::currentIndexChanged), this, &KWinScreenEdgesConfigForm::groupChanged);
27 connect(ui->kcfg_ElectricBorderMaximize, &QCheckBox::stateChanged, this, &KWinScreenEdgesConfigForm::groupChanged);
28 connect(ui->kcfg_ElectricBorderTiling, &QCheckBox::stateChanged, this, &KWinScreenEdgesConfigForm::groupChanged);
29
30 connect(ui->remainActiveOnFullscreen, &QCheckBox::stateChanged, this, &KWinScreenEdgesConfigForm::onChanged);
31 connect(ui->electricBorderCornerRatioSpin, qOverload<int>(&QSpinBox::valueChanged), this, &KWinScreenEdgesConfigForm::onChanged);
32 connect(ui->electricBorderCornerRatioSpin, qOverload<int>(&QSpinBox::valueChanged), this, &KWinScreenEdgesConfigForm::updateDefaultIndicators);
33}
34
36
38{
39 m_referenceCornerRatio = value;
40 ui->electricBorderCornerRatioSpin->setValue(m_referenceCornerRatio * 100.);
41}
42
44{
45 m_defaultCornerRatio = value;
46 updateDefaultIndicators();
47}
48
50{
51 m_remainActiveOnFullscreen = remainActive;
52 ui->remainActiveOnFullscreen->setChecked(remainActive);
53 updateDefaultIndicators();
54}
55
57{
58 return ui->electricBorderCornerRatioSpin->value() / 100.;
59}
60
62{
63 ui->electricBorderCornerRatioSpin->setEnabled(enable);
64}
65
67{
68 ui->electricBorderCornerRatioSpin->setValue(m_referenceCornerRatio * 100.);
70}
71
73{
74 ui->electricBorderCornerRatioSpin->setValue(m_defaultCornerRatio * 100.);
75 ui->remainActiveOnFullscreen->setChecked(false);
77}
78
80{
81 if (m_defaultIndicatorVisible != visible) {
82 m_defaultIndicatorVisible = visible;
83 updateDefaultIndicators();
84 }
85}
86
88{
89 return ui->remainActiveOnFullscreen->isChecked();
90}
91
93{
94 return ui->monitor;
95}
96
98{
99 return m_referenceCornerRatio != electricBorderCornerRatio() || m_remainActiveOnFullscreen != remainActiveOnFullscreen();
100}
101
103{
104 return m_defaultCornerRatio == electricBorderCornerRatio() && m_remainActiveOnFullscreen == false;
105}
106
107void KWinScreenEdgesConfigForm::sanitizeCooldown()
108{
109 ui->kcfg_ElectricBorderCooldown->setMinimum(ui->kcfg_ElectricBorderDelay->value() + 50);
110}
111
112void KWinScreenEdgesConfigForm::groupChanged()
113{
114 // Monitor conflicts
115 bool hide = false;
116 if (ui->kcfg_ElectricBorders->currentIndex() == 2) {
117 hide = true;
118 }
123}
124
125void KWinScreenEdgesConfigForm::updateDefaultIndicators()
126{
127 ui->electricBorderCornerRatioSpin->setProperty("_kde_highlight_neutral", m_defaultIndicatorVisible && (electricBorderCornerRatio() != m_defaultCornerRatio));
128 ui->electricBorderCornerRatioSpin->update();
129 ui->remainActiveOnFullscreen->setProperty("_kde_highlight_neutral", m_defaultIndicatorVisible && remainActiveOnFullscreen() == true);
130 ui->remainActiveOnFullscreen->update();
131}
132
133} // namespace
134
135#include "moc_kwinscreenedgeconfigform.cpp"
virtual void setDefaults()
void monitorHideEdge(ElectricBorder border, bool hidden)
void setRemainActiveOnFullscreen(bool remainActive)
KWinScreenEdgesConfigForm(QWidget *parent=nullptr)
@ ElectricBottom
Definition globals.h:65
@ ElectricTop
Definition globals.h:61
@ ElectricRight
Definition globals.h:63
@ ElectricLeft
Definition globals.h:67