diff -ur kdelibs-4.1.85/plasma/theme.cpp kdelibs-4.1.85-plasma-default-wallpaper/plasma/theme.cpp --- kdelibs-4.1.85/plasma/theme.cpp 2008-12-10 17:12:25.000000000 +0100 +++ kdelibs-4.1.85-plasma-default-wallpaper/plasma/theme.cpp 2008-12-19 02:26:06.000000000 +0100 @@ -111,6 +111,7 @@ KColorScheme buttonColorScheme; KConfigGroup cfg; QFont generalFont; + QString globalDefaultWallpaper; QString defaultWallpaperTheme; QString defaultWallpaperSuffix; int defaultWallpaperWidth; @@ -293,6 +294,10 @@ //kDebug() << "we're going for..." << colorsFile << "*******************"; // load the wallpaper settings, if any + KSharedConfigPtr config = KSharedConfig::openConfig("plasmarc"); + KConfigGroup group = KConfigGroup(config, "Defaults"); + d->globalDefaultWallpaper = group.readEntry("wallpaper", (const char *) 0); + QString metadataPath(KStandardDirs::locate("data", "desktoptheme/" + theme + "/metadata.desktop")); KConfig metadata(metadataPath); KConfigGroup cg; @@ -306,8 +311,8 @@ cg = d->config(); } - d->defaultWallpaperTheme = cg.readEntry("defaultWallpaperTheme", DEFAULT_WALLPAPER_THEME); - d->defaultWallpaperSuffix = cg.readEntry("defaultFileSuffix", DEFAULT_WALLPAPER_SUFFIX); + d->defaultWallpaperTheme = cg.readEntry("defaultWallpaperTheme", d->globalDefaultWallpaper.isEmpty() ? DEFAULT_WALLPAPER_THEME : (const char *) 0); + d->defaultWallpaperSuffix = cg.readEntry("defaultFileSuffix", d->globalDefaultWallpaper.isEmpty() ? DEFAULT_WALLPAPER_SUFFIX : (const char *) 0); d->defaultWallpaperWidth = cg.readEntry("defaultWidth", DEFAULT_WALLPAPER_WIDTH); d->defaultWallpaperHeight = cg.readEntry("defaultHeight", DEFAULT_WALLPAPER_HEIGHT); @@ -399,7 +404,10 @@ QString fullPath; QString image = d->defaultWallpaperTheme; - image.append("/contents/images/%1x%2").append(d->defaultWallpaperSuffix); + if (image.isEmpty() && !d->globalDefaultWallpaper.isEmpty()) + image = d->globalDefaultWallpaper; + else + image.append("/contents/images/%1x%2").append(d->defaultWallpaperSuffix); QString defaultImage = image.arg(d->defaultWallpaperWidth).arg(d->defaultWallpaperHeight); if (size.isValid()) {