From 9d05af288172d0f3664d36888b03a3428ea3d895 Mon Sep 17 00:00:00 2001 From: Maarten ter Huurne Date: Wed, 28 Jul 2010 00:54:00 +0200 Subject: [PATCH] Removed duplicate code between MenuSettingFile and its MenuSettingImage subclass. Also performed some cosmetic fixes. --- src/menusettingfile.cpp | 22 ++++++++++------------ src/menusettingfile.h | 8 +++++--- src/menusettingimage.cpp | 30 +++++++++++++----------------- src/menusettingimage.h | 13 ++++++++----- 4 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/menusettingfile.cpp b/src/menusettingfile.cpp index afabd76..1574f83 100644 --- a/src/menusettingfile.cpp +++ b/src/menusettingfile.cpp @@ -24,15 +24,14 @@ using namespace std; using namespace fastdelegate; -MenuSettingFile::MenuSettingFile(GMenu2X *gmenu2x, const string &name, const string &description, string *value, const string &filter) - : MenuSetting(gmenu2x,name,description) +MenuSettingFile::MenuSettingFile(GMenu2X *gmenu2x, const string &name, const string &description, string *value, const string &filter_) + : MenuSetting(gmenu2x, name, description) + , originalValue(*value) + , _value(value) + , filter(filter_) { IconButton *btn; - this->filter = filter; - _value = value; - originalValue = *value; - btn = new IconButton(gmenu2x, "skin:imgs/buttons/x.png", gmenu2x->tr["Clear"]); btn->setAction(MakeDelegate(this, &MenuSettingFile::clear)); buttonBox.add(btn); @@ -50,10 +49,8 @@ void MenuSettingFile::draw(int y) void MenuSettingFile::manageInput() { - if (gmenu2x->input[ACTION_X]) - setValue(""); - if (gmenu2x->input[ACTION_B]) - select(); + if (gmenu2x->input[ACTION_X]) clear(); + if (gmenu2x->input[ACTION_B]) select(); } void MenuSettingFile::clear() @@ -64,8 +61,9 @@ void MenuSettingFile::clear() void MenuSettingFile::select() { FileDialog fd(gmenu2x, description, filter, value()); - if (fd.exec()) - setValue(fd.getPath()+"/"+fd.getFile()); + if (fd.exec()) { + setValue(fd.getPath() + "/" + fd.getFile()); + } } void MenuSettingFile::setValue(const string &value) diff --git a/src/menusettingfile.h b/src/menusettingfile.h index 2fa260d..6398836 100644 --- a/src/menusettingfile.h +++ b/src/menusettingfile.h @@ -31,12 +31,14 @@ protected: string *_value; string filter; - void select(); + virtual void select(); void clear(); public: - MenuSettingFile(GMenu2X *gmenu2x, const string &name, const string &description, string *value, const string &filter=""); - virtual ~MenuSettingFile() {}; + MenuSettingFile(GMenu2X *gmenu2x, const string &name, + const string &description, string *value, + const string &filter = ""); + virtual ~MenuSettingFile() {} virtual void draw(int y); virtual void manageInput(); diff --git a/src/menusettingimage.cpp b/src/menusettingimage.cpp index a397f3a..67d7387 100644 --- a/src/menusettingimage.cpp +++ b/src/menusettingimage.cpp @@ -24,34 +24,30 @@ using namespace std; MenuSettingImage::MenuSettingImage(GMenu2X *gmenu2x, const string &name, const string &description, string *value, const string &filter) - : MenuSettingFile(gmenu2x,name,description,value,filter) { - this->filter = filter; - _value = value; - originalValue = *value; + : MenuSettingFile(gmenu2x, name, description, value, filter) +{ } -void MenuSettingImage::manageInput() { - if ( gmenu2x->input[ACTION_X] ) setValue(""); - if ( gmenu2x->input[ACTION_B] ) { - ImageDialog id(gmenu2x, description, filter, value()); - if (id.exec()) setValue( id.getPath()+"/"+id.getFile() ); - } +void MenuSettingImage::select() { + ImageDialog id(gmenu2x, description, filter, value()); + if (id.exec()) setValue(id.getPath() + "/" + id.getFile()); } void MenuSettingImage::setValue(const string &value) { - string skinpath = gmenu2x->getExePath()+"skins/"+gmenu2x->confStr["skin"]; - bool inSkinDir = value.substr(0,skinpath.length()) == skinpath; + string skinpath(gmenu2x->getExePath() + "skins/" + gmenu2x->confStr["skin"]); + bool inSkinDir = value.substr(0, skinpath.length()) == skinpath; if (!inSkinDir && gmenu2x->confStr["skin"] != "Default") { - skinpath = gmenu2x->getExePath()+"skins/Default"; - inSkinDir = value.substr(0,skinpath.length()) == skinpath; + skinpath = gmenu2x->getExePath() + "skins/Default"; + inSkinDir = value.substr(0, skinpath.length()) == skinpath; } if (inSkinDir) { string tempIcon = value.substr(skinpath.length(), value.length()); string::size_type pos = tempIcon.find("/"); - if (pos != string::npos) - *_value = "skin:"+tempIcon.substr(pos+1,value.length()); - else + if (pos != string::npos) { + *_value = "skin:" + tempIcon.substr(pos + 1, value.length()); + } else { *_value = value; + } } else { *_value = value; } diff --git a/src/menusettingimage.h b/src/menusettingimage.h index d5ebeb3..e2153b8 100644 --- a/src/menusettingimage.h +++ b/src/menusettingimage.h @@ -20,17 +20,20 @@ #ifndef MENUSETTINGIMAGE_H #define MENUSETTINGIMAGE_H -#include "gmenu2x.h" #include "menusettingfile.h" using std::string; class MenuSettingImage : public MenuSettingFile { -public: - MenuSettingImage(GMenu2X *gmenu2x, const string &name, const string &description, string *value, const string &filter=""); - virtual ~MenuSettingImage() {}; +protected: + virtual void select(); + +public: + MenuSettingImage(GMenu2X *gmenu2x, const string &name, + const string &description, string *value, + const string &filter = ""); + virtual ~MenuSettingImage() {} - virtual void manageInput(); virtual void setValue(const string &value); };