[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/generic/wallpapers/image
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2011-01-27 19:29:23
Message-ID: 20110127192923.435FBAC8BA () svn ! kde ! org
[Download RAW message or body]

SVN commit 1217532 by aseigo:

resort to defaults if the image set no longer exists


 M  +23 -8     image.cpp  
 M  +1 -0      image.h  


--- trunk/KDE/kdebase/workspace/plasma/generic/wallpapers/image/image.cpp #1217531:1217532
@@ -78,12 +78,8 @@
     m_resizeMethod = (ResizeMethod)config.readEntry("wallpaperposition", (int)ScaledResize);
     m_wallpaper = config.readEntry("wallpaper", QString());
     if (m_wallpaper.isEmpty()) {
-        m_wallpaper = Plasma::Theme::defaultTheme()->wallpaperPath();
-        int index = m_wallpaper.indexOf("/contents/images/");
-        if (index > -1) { // We have file from package -> get path to package
-            m_wallpaper = m_wallpaper.left(index);
+        useSingleImageDefaults();
         }
-    }
 
     m_color = config.readEntry("wallpapercolor", QColor(Qt::black));
     m_usersWallpapers = config.readEntry("userswallpapers", QStringList());
@@ -118,6 +114,15 @@
     m_animation->setProperty("endValue", 1.0);
 }
 
+void Image::useSingleImageDefaults()
+{
+    m_wallpaper = Plasma::Theme::defaultTheme()->wallpaperPath();
+    int index = m_wallpaper.indexOf("/contents/images/");
+    if (index > -1) { // We have file from package -> get path to package
+        m_wallpaper = m_wallpaper.left(index);
+    }
+}
+
 void Image::save(KConfigGroup &config)
 {
     config.writeEntry("slideTimer", m_delay);
@@ -404,7 +409,7 @@
 void Image::setSingleImage()
 {
     if (m_wallpaper.isEmpty()) {
-        return;
+        useSingleImageDefaults();
     }
 
     QString img;
@@ -412,9 +417,9 @@
     if (QDir::isAbsolutePath(m_wallpaper)) {
         Plasma::Package b(m_wallpaper, packageStructure(this));
         img = b.filePath("preferred");
-        kDebug() << img << m_wallpaper;
+        //kDebug() << img << m_wallpaper;
 
-        if (img.isEmpty()) {
+        if (img.isEmpty() && QFile::exists(m_wallpaper)) {
             img = m_wallpaper;
         }
     } else {
@@ -430,6 +435,16 @@
         }
     }
 
+    if (img.isEmpty()) {
+        // ok, so the package we have failed to work out; let's try the default
+        // if we have already
+        const QString wallpaper = m_wallpaper;
+        useSingleImageDefaults();
+        if (wallpaper != m_wallpaper) {
+            setSingleImage();
+        }
+    }
+
     if (!m_size.isEmpty()) {
         renderWallpaper(img);
     }
--- trunk/KDE/kdebase/workspace/plasma/generic/wallpapers/image/image.h #1217531:1217532
@@ -93,6 +93,7 @@
         void calculateGeometry();
         void setSingleImage();
         void updateWallpaperActions();
+        void useSingleImageDefaults();
 
     private:
         static bool s_startupResumed;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic