https://bugs.kde.org/show_bug.cgi?id=481741

--- Comment #2 from Oded Arbel <o...@geek.co.il> ---
(In reply to Fushan Wen from comment #1)
> KConfigPropertyMapPrivate::writeConfigValue doesn't sync the config
> immediately

Can it? Should it? I understand performance reasons because disk IO sth sth,
but:
1. Will it ever sync to the files? Is there an external (DBUS) API to request
the sync? I failed to find one and failed to wait long enough for the sync to
occur spontaneously, including when plasmashell is closing.
2. What about the data in the DBUS `org.kde.PlasmaShell.wallpaper response? it
shouldn't be a performance issue to have that data available in memory for a
DBUS request.

I tried to do this horrible thing:

diff --git a/wallpapers/image/plugin/imagebackend.cpp
b/wallpapers/image/plugin/imagebackend.cpp
index e8d51ba2bf..2ab21e1f54 100644
--- a/wallpapers/image/plugin/imagebackend.cpp
+++ b/wallpapers/image/plugin/imagebackend.cpp
@@ -23,6 +23,7 @@
 #include <QStandardPaths>

 #include <KLocalizedString>
+#include <KConfigPropertyMap>

 #include "model/imageproxymodel.h"
 #include "slidefiltermodel.h"
@@ -189,6 +190,7 @@ void ImageBackend::saveCurrentWallpaper()
     }

     QMetaObject::invokeMethod(this, "writeImageConfig", Qt::QueuedConnection,
Q_ARG(QString, m_image.toString()));
+    static_cast<KConfigPropertyMap*>(m_configMap.data())->writeConfig();
 }

 QAbstractItemModel *ImageBackend::slideFilterModel() const

And now it updates the configuration - but with the previous wallpaper image?!?
(i.e. if showing a.jpeg, then saveCurrentWallpaper() is called to save
"b.jpeg", after that the configuration DBUS and file will show "a.jpeg")

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to