Branch: master

4abbb950 2015-06-29 13:13:07 Timothy Pearson
Attempt to scale background image if a background image with native resolution is not available
M src/thememoodin.cpp
diff --git a/src/thememoodin.cpp b/src/thememoodin.cpp
index d1711fa..2ad557c 100644
--- a/src/thememoodin.cpp
+++ b/src/thememoodin.cpp
@@ -161,6 +161,7 @@
     return;
 
   TQString bgImage;
+  bool scaleBgImage;
 
   if (mUsersBackground)
   {
@@ -170,18 +171,29 @@
 
     kdesktoprc.setGroup(TQString("Desktop%1").arg(num));
     bgImage = kdesktoprc.readPathEntry("Wallpaper", TQString());
+    if (kdesktoprc.readPathEntry("WallpaperMode", TQString()) == "Scaled") {
+      scaleBgImage = true;
+    }
+    else {
+      scaleBgImage = false;
+    }
   }
   else
   {
     if (!mBackgroundImage.isEmpty())
       bgImage = mTheme->locateThemeData(mBackgroundImage);
+      scaleBgImage = false;
   }
 
-  if (bgImage.isEmpty())
+  if (bgImage.isEmpty()) {
     bgImage = mTheme->locateThemeData(TQString("Background-%1x%2.jpg").arg(width()).arg(height()));
+    scaleBgImage = false;
+  }
 
-  if (bgImage.isEmpty())
+  if (bgImage.isEmpty()) {
     bgImage = mTheme->locateThemeData("Background.jpg");
+    scaleBgImage = true;
+  }
 
   if (bgImage.isEmpty())
   {
@@ -190,7 +202,12 @@
   }
 
   TQImage* bg = mCache->cacheFile(bgImage);
-  p->drawImage(0, 0, *bg);
+  if (scaleBgImage) {
+    p->drawImage(0, 0, (*bg).scale(width(), height()));
+  }
+  else {
+    p->drawImage(0, 0, *bg);
+  }
   delete bg;
 
   if (mKubuntuStyle) {