From b26034cc21bb4e7c62737a62d76a3bd483390427 Mon Sep 17 00:00:00 2001 From: reionwong Date: Mon, 13 Sep 2021 15:23:46 +0800 Subject: [PATCH] Add minimium animation option --- src/appearance.cpp | 28 ++++++++++++++++++++++++++-- src/appearance.h | 6 ++++++ src/qml/Appearance/Main.qml | 24 ++++++++++++++++++++++++ translations/en_US.ts | 33 ++++++++++++++++++++++++--------- translations/zh_CN.ts | 17 ++++++++++++++++- 5 files changed, 96 insertions(+), 12 deletions(-) diff --git a/src/appearance.cpp b/src/appearance.cpp index bc83ea5..926cc22 100644 --- a/src/appearance.cpp +++ b/src/appearance.cpp @@ -43,13 +43,16 @@ Appearance::Appearance(QObject *parent) , m_fontPointSize(11) , m_systemEffects(false) { - m_kwinSettings->beginGroup("Compositing"); - m_dockIconSize = m_dockSettings->value("IconSize").toInt(); m_dockDirection = m_dockSettings->value("Direction").toInt(); m_dockVisibility = m_dockSettings->value("Visibility").toInt(); m_dockRoundedWindow = m_dockSettings->value("RoundedWindow").toBool(); + m_kwinSettings->beginGroup("Compositing"); m_systemEffects = !m_kwinSettings->value("OpenGLIsUnsafe", false).toBool(); + m_kwinSettings->endGroup(); + m_kwinSettings->beginGroup("Plugins"); + m_minimiumAnimation = m_kwinSettings->value("magiclampEnabled").toBool() ? 1 : 0; + m_kwinSettings->endGroup(); // Init if (m_interface.isValid()) { @@ -236,9 +239,30 @@ void Appearance::setSystemEffects(bool systemEffects) { if (m_systemEffects != systemEffects) { m_systemEffects = systemEffects; + m_kwinSettings->beginGroup("Compositing"); m_kwinSettings->setValue("OpenGLIsUnsafe", !systemEffects); + m_kwinSettings->endGroup(); m_kwinSettings->sync(); QDBusInterface("org.kde.KWin", "/KWin").call("reconfigure"); emit systemEffectsChanged(); } } + +int Appearance::minimiumAnimation() const +{ + return m_minimiumAnimation; +} + +void Appearance::setMinimiumAnimation(int minimiumAnimation) +{ + if (m_minimiumAnimation != minimiumAnimation) { + m_minimiumAnimation = minimiumAnimation; + m_kwinSettings->beginGroup("Plugins"); + m_kwinSettings->setValue("magiclampEnabled", m_minimiumAnimation == 1); + m_kwinSettings->setValue("cutefish_squashEnabled", m_minimiumAnimation == 0); + m_kwinSettings->endGroup(); + m_kwinSettings->sync(); + QDBusInterface("org.kde.KWin", "/KWin").call("reconfigure"); + emit minimiumAnimationChanged(); + } +} diff --git a/src/appearance.h b/src/appearance.h index b218bc7..68b64c2 100644 --- a/src/appearance.h +++ b/src/appearance.h @@ -35,6 +35,7 @@ class Appearance : public QObject Q_PROPERTY(double devicePixelRatio READ devicePixelRatio WRITE setDevicePixelRatio NOTIFY devicePixelRatioChanged) Q_PROPERTY(bool dockRoundedWindow READ dockRoundedWindow WRITE setDockRoundedWindow NOTIFY dockRoundedWindowChanged) Q_PROPERTY(bool systemEffects READ systemEffects WRITE setSystemEffects NOTIFY systemEffectsChanged) + Q_PROPERTY(int minimiumAnimation READ minimiumAnimation WRITE setMinimiumAnimation NOTIFY minimiumAnimationChanged) public: explicit Appearance(QObject *parent = nullptr); @@ -70,6 +71,9 @@ public: bool systemEffects() const; void setSystemEffects(bool systemEffects); + int minimiumAnimation() const; + void setMinimiumAnimation(int minimiumAnimation); + signals: void dockIconSizeChanged(); void dockDirectionChanged(); @@ -79,6 +83,7 @@ signals: void devicePixelRatioChanged(); void dockRoundedWindowChanged(); void systemEffectsChanged(); + void minimiumAnimationChanged(); private: QDBusInterface m_interface; @@ -92,6 +97,7 @@ private: int m_fontPointSize; bool m_systemEffects; + int m_minimiumAnimation; }; #endif // APPEARANCE_H diff --git a/src/qml/Appearance/Main.qml b/src/qml/Appearance/Main.qml index 3d6575c..34b249d 100644 --- a/src/qml/Appearance/Main.qml +++ b/src/qml/Appearance/Main.qml @@ -113,6 +113,30 @@ ItemPage { } } + RoundedItem { + RowLayout { + spacing: FishUI.Units.largeSpacing * 2 + + Label { + text: qsTr("Minimize animation") + } + + TabBar { + Layout.fillWidth: true + currentIndex: appearance.minimiumAnimation + onCurrentIndexChanged: appearance.minimiumAnimation = currentIndex + + TabButton { + text: qsTr("Default") + } + + TabButton { + text: qsTr("Magic Lamp") + } + } + } + } + RoundedItem { Label { text: qsTr("Accent color") diff --git a/translations/en_US.ts b/translations/en_US.ts index cb1eb7a..2d07ded 100644 --- a/translations/en_US.ts +++ b/translations/en_US.ts @@ -142,7 +142,22 @@ - + + Minimize animation + + + + + Default + + + + + Magic Lamp + + + + Accent color @@ -444,7 +459,7 @@ Bluetooth - + Bluetooth @@ -501,7 +516,7 @@ Password - + Password @@ -612,7 +627,7 @@ Appearance - + Appearance @@ -653,7 +668,7 @@ Language - + Language @@ -668,7 +683,7 @@ About - + About @@ -676,7 +691,7 @@ Cancel - + Cancel @@ -707,7 +722,7 @@ Password - + Password @@ -717,7 +732,7 @@ Cancel - + Cancel diff --git a/translations/zh_CN.ts b/translations/zh_CN.ts index a1c7788..cf6fb49 100644 --- a/translations/zh_CN.ts +++ b/translations/zh_CN.ts @@ -142,7 +142,22 @@ 系统特效 - + + Minimize animation + 最小化动画 + + + + Default + 默认 + + + + Magic Lamp + 神灯 + + + Accent color 强调色