┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/global.cpp
diff options
context:
space:
mode:
authorFelix Ernst <[email protected]>2021-01-02 17:48:52 +0000
committerElvis Angelaccio <[email protected]>2021-01-02 17:48:52 +0000
commitf01a61b76c8588a4df2054ab70e9a746a74f7817 (patch)
tree1bc359df5c5f2e203652f1e59e1c08544383488e /src/global.cpp
parentd3c5bb6e9b99c6ff43bd8160df58d35a725a0894 (diff)
Animate split view mode toggling
Have the secondary ViewContainer slide into/out of view when split view mode is switched on or off by the user. This should help users understand what split view mode is about. Without the animation it might seem like the only thing the button does is creating a weird vertical line in the middle of the view or something. With the animation it should be clear that the second view is a separate entity that was added. The closing animation will help users understand which of the ViewContainers was just closed.
Diffstat (limited to 'src/global.cpp')
-rw-r--r--src/global.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/global.cpp b/src/global.cpp
index 1018c7d4c..3d17a733b 100644
--- a/src/global.cpp
+++ b/src/global.cpp
@@ -10,6 +10,7 @@
#include "dolphindebug.h"
#include "dolphinmainwindowinterface.h"
+#include <KConfigWatcher>
#include <KDialogJobUiDelegate>
#include <KIO/ApplicationLauncherJob>
#include <KService>
@@ -138,3 +139,29 @@ QVector<QPair<QSharedPointer<OrgKdeDolphinMainWindowInterface>, QStringList>> Do
return dolphinInterfaces;
}
+
+double GlobalConfig::animationDurationFactor()
+{
+ if (s_animationDurationFactor >= 0.0) {
+ return s_animationDurationFactor;
+ }
+ // This is the first time this method is called.
+ auto kdeGlobalsConfig = KConfigGroup(KSharedConfig::openConfig(), QStringLiteral("KDE"));
+ updateAnimationDurationFactor(kdeGlobalsConfig, {"AnimationDurationFactor"});
+
+ KConfigWatcher::Ptr configWatcher = KConfigWatcher::create(KSharedConfig::openConfig());
+ connect(configWatcher.data(), &KConfigWatcher::configChanged,
+ &GlobalConfig::updateAnimationDurationFactor);
+ return s_animationDurationFactor;
+}
+
+void GlobalConfig::updateAnimationDurationFactor(const KConfigGroup &group, const QByteArrayList &names)
+{
+ if (group.name() == QLatin1String("KDE") &&
+ names.contains(QByteArrayLiteral("AnimationDurationFactor"))) {
+ s_animationDurationFactor = std::max(0.0,
+ group.readEntry("AnimationDurationFactor", 1.0));
+ }
+}
+
+double GlobalConfig::s_animationDurationFactor = -1.0;