Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > media > main-testing-src > by-pkgid > 6a6037a72fe4fe07e6ae3cf1acaf9d61 > files > 19

kdelibs4-4.4.5-0.1mdv2010.1.src.rpm

Index: plasma/containment.cpp
===================================================================
--- plasma/containment.cpp
+++ plasma/containment.cpp	2010-01-29 11:13:08.000000000 +0100
@@ -56,6 +56,7 @@
 #include "extenderitem.h"
 #include "svg.h"
 #include "wallpaper.h"
+#include "theme.h"
 
 #include "remote/accessappletjob.h"
 #include "remote/accessmanager.h"
@@ -1823,9 +1824,26 @@
 {
     d->drawWallpaper = drawWallpaper;
     if (drawWallpaper) {
-        KConfigGroup cfg = config();
-        const QString wallpaper = cfg.readEntry("wallpaperplugin", defaultWallpaper);
-        const QString mode = cfg.readEntry("wallpaperpluginmode", defaultWallpaperMode);
+
+        Plasma::Theme theme;
+        QString UsedTheme = theme.themeName() ;
+        QString wallpaper = defaultWallpaper;
+        QString mode = defaultWallpaperMode;
+
+        const QString metadataPath(KStandardDirs::locate("data", "desktoptheme/" + UsedTheme + "/metadata.desktop"));
+        KConfig metadata(metadataPath);
+        KConfigGroup cfg ;
+        
+        if (metadata.hasGroup("Wallpaper")) {
+            cfg = KConfigGroup(&metadata, "Wallpaper");
+            wallpaper = cfg.readEntry("wallpaperplugin", wallpaper);
+            mode = cfg.readEntry("wallpaperpluginmode", mode);
+        }
+
+        cfg = config();
+        wallpaper = cfg.readEntry("wallpaperplugin", defaultWallpaper);
+        mode = cfg.readEntry("wallpaperpluginmode", defaultWallpaperMode);
+        
         setWallpaper(wallpaper, mode);
     } else {
         delete d->wallpaper;