aboutsummaryrefslogtreecommitdiff
path: root/common/config-manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/config-manager.cpp')
-rw-r--r--common/config-manager.cpp38
1 files changed, 27 insertions, 11 deletions
diff --git a/common/config-manager.cpp b/common/config-manager.cpp
index 554a99ea95..0141b22483 100644
--- a/common/config-manager.cpp
+++ b/common/config-manager.cpp
@@ -29,7 +29,7 @@
#include "common/util.h"
#include "common/system.h"
-DECLARE_SINGLETON(Common::ConfigManager)
+DECLARE_SINGLETON(Common::ConfigManager);
static bool isValidDomainName(const Common::String &domName) {
const char *p = domName.c_str();
@@ -53,6 +53,27 @@ const char *ConfigManager::kKeymapperDomain = "keymapper";
ConfigManager::ConfigManager() : _activeDomain(0) {
}
+void ConfigManager::defragment() {
+ ConfigManager *newInstance = new ConfigManager();
+ newInstance->copyFrom(*_singleton);
+ delete _singleton;
+ _singleton = newInstance;
+}
+
+void ConfigManager::copyFrom(ConfigManager &source) {
+ _transientDomain = source._transientDomain;
+ _gameDomains = source._gameDomains;
+ _appDomain = source._appDomain;
+ _defaultsDomain = source._defaultsDomain;
+#ifdef ENABLE_KEYMAPPER
+ _keymapperDomain = source._keymapperDomain;
+#endif
+ _domainSaveOrder = source._domainSaveOrder;
+ _activeDomainName = source._activeDomainName;
+ _activeDomain = &_gameDomains[_activeDomainName];
+ _filename = source._filename;
+}
+
void ConfigManager::loadDefaultConfigFile() {
// Open the default config file
@@ -69,7 +90,7 @@ void ConfigManager::loadDefaultConfigFile() {
} else {
// No config file -> create new one!
- printf("Default configuration file missing, creating a new one\n");
+ debug("Default configuration file missing, creating a new one");
flushToDisk();
}
@@ -81,9 +102,9 @@ void ConfigManager::loadConfigFile(const String &filename) {
FSNode node(filename);
File cfg_file;
if (!cfg_file.open(node)) {
- printf("Creating configuration file: %s\n", filename.c_str());
+ debug("Creating configuration file: %s\n", filename.c_str());
} else {
- printf("Using configuration file: %s\n", _filename.c_str());
+ debug("Using configuration file: %s\n", _filename.c_str());
loadFromStream(cfg_file);
}
}
@@ -508,9 +529,7 @@ void ConfigManager::set(const String &key, const String &value, const String &do
}
void ConfigManager::setInt(const String &key, int value, const String &domName) {
- char tmp[128];
- snprintf(tmp, sizeof(tmp), "%i", value);
- set(key, String(tmp), domName);
+ set(key, String::format("%i", value), domName);
}
void ConfigManager::setBool(const String &key, bool value, const String &domName) {
@@ -530,9 +549,7 @@ void ConfigManager::registerDefault(const String &key, const char *value) {
}
void ConfigManager::registerDefault(const String &key, int value) {
- char tmp[128];
- snprintf(tmp, sizeof(tmp), "%i", value);
- registerDefault(key, tmp);
+ registerDefault(key, String::format("%i", value));
}
void ConfigManager::registerDefault(const String &key, bool value) {
@@ -600,7 +617,6 @@ bool ConfigManager::hasGameDomain(const String &domName) const {
#pragma mark -
-
void ConfigManager::Domain::setDomainComment(const String &comment) {
_domainComment = comment;
}