From f2b34f383b9b54d4ce9004bb4e0b1c6fc2142e16 Mon Sep 17 00:00:00 2001 From: Ayla Date: Tue, 12 Apr 2011 10:18:10 +0200 Subject: [PATCH] The wallpapers will now be loaded from the system and the user-specific skin directories. --- src/wallpaperdialog.cpp | 53 ++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/src/wallpaperdialog.cpp b/src/wallpaperdialog.cpp index 91d73ea..b8b0d77 100644 --- a/src/wallpaperdialog.cpp +++ b/src/wallpaperdialog.cpp @@ -35,19 +35,37 @@ bool WallpaperDialog::exec() { bool close = false, result = true; - FileLister fl("skins/"+gmenu2x->confStr["skin"]+"/wallpapers"); + FileLister fl; fl.setFilter(".png,.jpg,.jpeg,.bmp"); - vector wallpapers; - if (fileExists("skins/"+gmenu2x->confStr["skin"]+"/wallpapers")) { - fl.browse(); - wallpapers = fl.getFiles(); + + string filepath = GMENU2X_SYSTEM_DIR "/skins/" + + gmenu2x->confStr["skin"] + "/wallpapers"; + if (fileExists(filepath)) + fl.setPath(filepath, true); + + filepath = GMenu2X::getHome() + "/skins/" + + gmenu2x->confStr["skin"] + "/wallpapers"; + if (fileExists(filepath)) { + fl.setPath(filepath, false); + fl.browse(false); } + if (gmenu2x->confStr["skin"] != "Default") { - fl.setPath("skins/Default/wallpapers",true); - for (uint i=0; i wallpapers = fl.getFiles(); + DEBUG("Wallpapers: %i\n", wallpapers.size()); uint i, selected = 0, firstElement = 0, iY; @@ -57,10 +75,7 @@ bool WallpaperDialog::exec() if (selectedsc["skins/"+gmenu2x->confStr["skin"]+"/wallpapers/"+wallpapers[selected]]->blit(gmenu2x->s,0,0); - else - gmenu2x->sc["skins/Default/wallpapers/"+wallpapers[selected]]->blit(gmenu2x->s,0,0); + gmenu2x->sc[((string)"skin:wallpapers/" + wallpapers[selected]).c_str()]->blit(gmenu2x->s, 0, 0); gmenu2x->drawTopBar(gmenu2x->s); gmenu2x->drawBottomBar(gmenu2x->s); @@ -111,22 +126,16 @@ bool WallpaperDialog::exec() break; case ACCEPT: close = true; - if (wallpapers.size() > 0) { - if (selected < wallpapers.size() - fl.getFiles().size()) - wallpaper = "skins/" + gmenu2x->confStr["skin"] + "/wallpapers/" + wallpapers[selected]; - else - wallpaper = "skins/Default/wallpapers/" + wallpapers[selected]; - } else result = false; + if (wallpapers.size() > 0) + wallpaper = gmenu2x->sc.getSkinFilePath("wallpapers/" + wallpapers[selected]); + else result = false; default: break; } } for (uint i=0; isc.del("skins/"+gmenu2x->confStr["skin"]+"/wallpapers/"+wallpapers[i]); - else - gmenu2x->sc.del("skins/Default/wallpapers/"+wallpapers[i]); + gmenu2x->sc.del("skin:wallpapers/" + wallpapers[i]); return result; }