X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a24327cd50ef17b953ecb908d260b73460158107..8f9bf0fe36546d152b860f0c5fd8d00c23dcb648:/src/global.cpp 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 #include #include #include @@ -138,3 +139,29 @@ QVector, 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;