1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-11-26 03:06:15 +02:00

Remove unnecessary file existence check in GMenu2X::setSkin(2)

The existence of modifications to the skin configuration in the home
directory is now checked with ifstream::is_open, and the system's skin
configuration is used if that returns false.
This commit is contained in:
Nebuleon Fumika 2014-08-10 23:11:13 +00:00 committed by Maarten ter Huurne
parent ebb34f3e00
commit d6b2643610
2 changed files with 39 additions and 34 deletions

View File

@ -783,12 +783,35 @@ void GMenu2X::setSkin(const string &skin, bool setWallpaper) {
/* Load skin settings from user directory if present, /* Load skin settings from user directory if present,
* or from the system directory. */ * or from the system directory. */
string skinconfname = getHome() + "/skins/" + skin + "/skin.conf"; if (!readSkinConfig(getHome() + "/skins/" + skin + "/skin.conf")) {
if (!fileExists(skinconfname)) readSkinConfig(GMENU2X_SYSTEM_DIR "/skins/" + skin + "/skin.conf");
skinconfname = GMENU2X_SYSTEM_DIR "/skins/" + skin + "/skin.conf"; }
if (fileExists(skinconfname)) { if (setWallpaper && !skinConfStr["wallpaper"].empty()) {
ifstream skinconf(skinconfname.c_str(), ios_base::in); string fp = sc.getSkinFilePath("wallpapers/" + skinConfStr["wallpaper"]);
if (!fp.empty())
confStr["wallpaper"] = fp;
else
WARNING("Unable to find wallpaper defined on skin %s\n", skin.c_str());
}
evalIntConf(skinConfInt, "topBarHeight", 50, 32, 120);
evalIntConf(skinConfInt, "bottomBarHeight", 20, 20, 120);
evalIntConf(skinConfInt, "linkHeight", 50, 32, 120);
evalIntConf(skinConfInt, "linkWidth", 80, 32, 120);
if (menu != NULL) menu->skinUpdated();
//Selection png
useSelectionPng = sc.addSkinRes("imgs/selection.png", false) != NULL;
//font
initFont();
}
bool GMenu2X::readSkinConfig(const string& conffile)
{
ifstream skinconf(conffile.c_str(), ios_base::in);
if (skinconf.is_open()) { if (skinconf.is_open()) {
string line; string line;
while (getline(skinconf, line, '\n')) { while (getline(skinconf, line, '\n')) {
@ -809,29 +832,10 @@ void GMenu2X::setSkin(const string &skin, bool setWallpaper) {
} }
} }
skinconf.close(); skinconf.close();
return true;
if (setWallpaper && !skinConfStr["wallpaper"].empty()) { } else {
string fp = sc.getSkinFilePath("wallpapers/" + skinConfStr["wallpaper"]); return false;
if (!fp.empty())
confStr["wallpaper"] = fp;
else
WARNING("Unable to find wallpaper defined on skin %s\n", skin.c_str());
} }
}
}
evalIntConf(skinConfInt, "topBarHeight", 50, 32, 120);
evalIntConf(skinConfInt, "bottomBarHeight", 20, 20, 120);
evalIntConf(skinConfInt, "linkHeight", 50, 32, 120);
evalIntConf(skinConfInt, "linkWidth", 80, 32, 120);
if (menu != NULL) menu->skinUpdated();
//Selection png
useSelectionPng = sc.addSkinRes("imgs/selection.png", false) != NULL;
//font
initFont();
} }
void GMenu2X::showManual() { void GMenu2X::showManual() {

View File

@ -154,6 +154,7 @@ public:
//Configuration settings //Configuration settings
bool useSelectionPng; bool useSelectionPng;
void setSkin(const std::string &skin, bool setWallpaper = true); void setSkin(const std::string &skin, bool setWallpaper = true);
bool readSkinConfig(const std::string& conffile);
SurfaceCollection sc; SurfaceCollection sc;
Translator tr; Translator tr;