Write animation speed to kdeglobals

When the animation slider moved to look and feel a UI was kept within
the compositing KCM that was only visible for non Plasma users so they
still had a way to access this.

This non-plasma version still wrote to kwinrc. In theory this was fine
unless you used both. We also hit an issue where a stray
m_settings->save() call in `reenableGl` would sync the settings to the
wrong place.

This patch moves everything to write to kdeglobals and cleans up any old
entries here.

BUG: 431259
This commit is contained in:
David Edmundson 2022-06-29 14:34:26 +01:00 committed by Nate Graham
parent e04d9e1978
commit 0bb3eb2baf

View file

@ -69,6 +69,10 @@ KWinCompositingKCM::KWinCompositingKCM(QWidget *parent, const QVariantList &args
, m_settings(new KWinCompositingSetting(this))
{
m_form.setupUi(this);
// AnimationDurationFactor should be written to the same place as the lnf to avoid conflicts
m_settings->findItem("AnimationDurationFactor")->setWriteFlags(KConfigBase::Global | KConfigBase::Notify);
addConfig(m_settings, this);
m_form.glCrashedWarning->setIcon(QIcon::fromTheme(QStringLiteral("dialog-warning")));
@ -211,6 +215,9 @@ void KWinCompositingKCM::save()
KCModule::save();
// This clears up old entries that are now migrated to kdeglobals
KConfig("kwinrc", KConfig::NoGlobals).group("KDE").revertToDefault("AnimationDurationFactor");
// Send signal to all kwin instances
QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/Compositor"),
QStringLiteral("org.kde.kwin.Compositing"),