From ead9706ffda0b0cd01603dd3fab23f8279657644 Mon Sep 17 00:00:00 2001 From: Ayla Date: Tue, 29 Mar 2011 12:37:53 +0200 Subject: [PATCH] The skin.conf file will now be loaded/written from/to the user-specific directory. It will also be loaded from the system dir if missing on the user-specific directory (For instance, when using a default theme of gmenu2x). --- src/gmenu2x.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gmenu2x.cpp b/src/gmenu2x.cpp index d5308a2..03945eb 100644 --- a/src/gmenu2x.cpp +++ b/src/gmenu2x.cpp @@ -673,7 +673,8 @@ void GMenu2X::writeConfigOpen2x() { void GMenu2X::writeSkinConfig() { ledOn(); - string conffile = path+"skins/"+confStr["skin"]+"/skin.conf"; + + string conffile = getHome() + "/skins/" + confStr["skin"] + "/skin.conf"; ofstream inf(conffile.c_str()); if (inf.is_open()) { ConfStrHash::iterator endS = skinConfStr.end(); @@ -1242,8 +1243,12 @@ void GMenu2X::setSkin(const string &skin, bool setWallpaper) { skinConfColors[COLOR_MESSAGE_BOX_BORDER] = (RGBAColor){80,80,80,255}; skinConfColors[COLOR_MESSAGE_BOX_SELECTION] = (RGBAColor){160,160,160,255}; - //load skin settings - string skinconfname = "skins/"+skin+"/skin.conf"; + /* Load skin settings from user directory if present, + * or from the system directory. */ + string skinconfname = getHome() + "/skins/" + skin + "/skin.conf"; + if (!fileExists(skinconfname)) + skinconfname = GMENU2X_SYSTEM_DIR "/skins/" + skin + "/skin.conf"; + if (fileExists(skinconfname)) { ifstream skinconf(skinconfname.c_str(), ios_base::in); if (skinconf.is_open()) {