99bed106bf
For the following KCM : * KWin Options * KWin Screen Edges * KWin Tabbox KCModule introduce an indicator to show which settings have changed from default value. Unfortunately some KCM have settings' states which are not managed automatically by the KCModule thus we have to handle it manually. see https://invent.kde.org/frameworks/kconfigwidgets/-/merge_requests/9
69 lines
1.5 KiB
C++
69 lines
1.5 KiB
C++
/*
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
SPDX-FileCopyrightText: 2009 Lucas Murray <lmurray@undefinedfire.com>
|
|
SPDX-FileCopyrightText: 2020 Cyril Rossi <cyril.rossi@enioka.com>
|
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#ifndef __KWINSCREENEDGECONFIGFORM_H__
|
|
#define __KWINSCREENEDGECONFIGFORM_H__
|
|
|
|
#include "kwinscreenedge.h"
|
|
|
|
namespace Ui
|
|
{
|
|
class KWinScreenEdgesConfigUI;
|
|
}
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
class KWinScreenEdgesConfigForm : public KWinScreenEdge
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
KWinScreenEdgesConfigForm(QWidget *parent = nullptr);
|
|
~KWinScreenEdgesConfigForm() override;
|
|
|
|
// value is between 0. and 1.
|
|
void setElectricBorderCornerRatio(double value);
|
|
void setDefaultElectricBorderCornerRatio(double value);
|
|
|
|
// return value between 0. and 1.
|
|
double electricBorderCornerRatio() const;
|
|
|
|
void setElectricBorderCornerRatioEnabled(bool enable);
|
|
|
|
void reload() override;
|
|
void setDefaults() override;
|
|
|
|
public Q_SLOTS:
|
|
void setDefaultsIndicatorsVisible(bool visible);
|
|
|
|
protected:
|
|
Monitor *monitor() const override;
|
|
bool isSaveNeeded() const override;
|
|
bool isDefault() const override;
|
|
|
|
private Q_SLOTS:
|
|
void sanitizeCooldown();
|
|
void groupChanged();
|
|
void updateDefaultIndicators();
|
|
|
|
private:
|
|
// electricBorderCornerRatio value between 0. and 1.
|
|
double m_referenceCornerRatio = 0.;
|
|
double m_defaultCornerRatio = 0.;
|
|
|
|
bool m_defaultIndicatorVisible = false;
|
|
|
|
Ui::KWinScreenEdgesConfigUI *ui;
|
|
};
|
|
|
|
} // namespace
|
|
|
|
#endif
|