← Back to team overview

linuxdcpp-team team mailing list archive

[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2931: better default setting comparison

 

------------------------------------------------------------
revno: 2931
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Sun 2012-05-27 18:38:33 +0200
message:
  better default setting comparison
modified:
  dcpp/SettingsManager.h
  win32/PropPage.cpp
  win32/PropPage.h


--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk

Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/SettingsManager.h'
--- dcpp/SettingsManager.h	2012-05-15 23:26:22 +0000
+++ dcpp/SettingsManager.h	2012-05-27 16:38:33 +0000
@@ -229,7 +229,9 @@
 		floatDefaults[key - FLOAT_FIRST] = value;
 	}
 
-	bool isDefault(size_t key) { return !isSet[key]; }
+	template<typename KeyT> bool isDefault(KeyT key) {
+		return !isSet[key] || get(key, false) == getDefault(key);
+	}
 
 	void unset(size_t key) { isSet[key] = false; }
 

=== modified file 'win32/PropPage.cpp'
--- win32/PropPage.cpp	2012-03-03 19:33:45 +0000
+++ win32/PropPage.cpp	2012-05-27 16:38:33 +0000
@@ -61,23 +61,33 @@
 	for(auto& i: items) {
 		switch(i.type) {
 		case T_STR:
-			if(!settings->isDefault(i.setting)) {
-				static_cast<TextBoxPtr>(i.widget)->setText(Text::toT(settings->get((SettingsManager::StrSetting)i.setting)));
+			{
+				auto setting = static_cast<SettingsManager::StrSetting>(i.setting);
+				if(!settings->isDefault(setting)) {
+					static_cast<TextBoxPtr>(i.widget)->setText(Text::toT(settings->get(setting)));
+				}
+				break;
 			}
-			break;
 		case T_INT:
-			if(!settings->isDefault(i.setting)) {
-				static_cast<TextBoxPtr>(i.widget)->setText(Text::toT(Util::toString(settings->get((SettingsManager::IntSetting)i.setting))));
+			{
+				auto setting = static_cast<SettingsManager::IntSetting>(i.setting);
+				if(!settings->isDefault(setting)) {
+					static_cast<TextBoxPtr>(i.widget)->setText(Text::toT(Util::toString(settings->get(setting))));
+				}
+				break;
 			}
-			break;
 		case T_INT_WITH_SPIN:
-			static_cast<TextBoxPtr>(i.widget)->setText(Text::toT(Util::toString(settings->get((SettingsManager::IntSetting)i.setting))));
-			break;
+			{
+				auto setting = static_cast<SettingsManager::IntSetting>(i.setting);
+				static_cast<TextBoxPtr>(i.widget)->setText(Text::toT(Util::toString(settings->get(setting))));
+				break;
+			}
 		case T_BOOL:
-			static_cast<CheckBoxPtr>(i.widget)->setChecked(settings->getBool((SettingsManager::IntSetting)i.setting));
-			break;
-		case T_END:
-			dcassert(false); break;
+			{
+				auto setting = static_cast<SettingsManager::IntSetting>(i.setting);
+				static_cast<CheckBoxPtr>(i.widget)->setChecked(settings->getBool(setting));
+				break;
+			}
 		}
 	}
 }
@@ -106,17 +116,24 @@
 	for(auto& i: items) {
 		switch(i.type) {
 		case T_STR:
-				settings->set((SettingsManager::StrSetting)i.setting, Text::fromT(static_cast<TextBoxPtr>(i.widget)->getText()));
+			{
+				auto setting = static_cast<SettingsManager::StrSetting>(i.setting);
+				settings->set(setting, Text::fromT(static_cast<TextBoxPtr>(i.widget)->getText()));
 				break;
+			}
 		case T_INT:
 		case T_INT_WITH_SPIN:
-			settings->set((SettingsManager::IntSetting)i.setting, Text::fromT(static_cast<TextBoxPtr>(i.widget)->getText()));
-			break;
+			{
+				auto setting = static_cast<SettingsManager::IntSetting>(i.setting);
+				settings->set(setting, Text::fromT(static_cast<TextBoxPtr>(i.widget)->getText()));
+				break;
+			}
 		case T_BOOL:
-			settings->set((SettingsManager::IntSetting)i.setting, static_cast<CheckBoxPtr>(i.widget)->getChecked());
-			break;
-		case T_END:
-			dcassert(false); break;
+			{
+				auto setting = static_cast<SettingsManager::IntSetting>(i.setting);
+				settings->set(setting, static_cast<CheckBoxPtr>(i.widget)->getChecked());
+				break;
+			}
 		}
 	}
 }

=== modified file 'win32/PropPage.h'
--- win32/PropPage.h	2012-01-13 20:55:20 +0000
+++ win32/PropPage.h	2012-05-27 16:38:33 +0000
@@ -40,8 +40,7 @@
 		T_STR,
 		T_INT,
 		T_INT_WITH_SPIN, // fill even when the current value is the same as the default value (for controls with a spin buddy)
-		T_BOOL,
-		T_END
+		T_BOOL
 	};
 
 	struct Item {