diff options
author | Johannes Schickel | 2013-08-12 14:30:22 -0700 |
---|---|---|
committer | Johannes Schickel | 2013-08-12 14:30:22 -0700 |
commit | 818d3981e32b83e2531f63bb603b4c48cba9b412 (patch) | |
tree | 47847bbcecae06595327e8c3aec891607d9d9104 | |
parent | bb7e95f1ad7f432fd2daa90200f750b37c5c6c2e (diff) | |
parent | f7d3b0671124dba28541c56fb74edd535fdad386 (diff) | |
download | scummvm-rg350-818d3981e32b83e2531f63bb603b4c48cba9b412.tar.gz scummvm-rg350-818d3981e32b83e2531f63bb603b4c48cba9b412.tar.bz2 scummvm-rg350-818d3981e32b83e2531f63bb603b4c48cba9b412.zip |
Merge pull request #377 from lordhoto/config-manager-cleanup
Config Manager Cleanup
-rw-r--r-- | base/commandLine.cpp | 5 | ||||
-rw-r--r-- | common/config-manager.h | 24 | ||||
-rw-r--r-- | gui/EventRecorder.cpp | 8 | ||||
-rw-r--r-- | gui/EventRecorder.h | 2 |
4 files changed, 29 insertions, 10 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp index a39c748adc..a032f37a25 100644 --- a/base/commandLine.cpp +++ b/base/commandLine.cpp @@ -827,9 +827,8 @@ void upgradeTargets() { printf("Upgrading all your existing targets\n"); - Common::ConfigManager::DomainMap &domains = ConfMan.getGameDomains(); - Common::ConfigManager::DomainMap::iterator iter = domains.begin(); - for (iter = domains.begin(); iter != domains.end(); ++iter) { + Common::ConfigManager::DomainMap::iterator iter = ConfMan.beginGameDomains(); + for (; iter != ConfMan.endGameDomains(); ++iter) { Common::ConfigManager::Domain &dom = iter->_value; Common::String name(iter->_key); Common::String gameid(dom.getVal("gameid")); diff --git a/common/config-manager.h b/common/config-manager.h index 6295a93ba5..a7c949902c 100644 --- a/common/config-manager.h +++ b/common/config-manager.h @@ -46,12 +46,31 @@ class ConfigManager : public Singleton<ConfigManager> { public: - class Domain : public StringMap { + class Domain { private: + StringMap _entries; StringMap _keyValueComments; String _domainComment; public: + typedef StringMap::const_iterator const_iterator; + const_iterator begin() const { return _entries.begin(); } + const_iterator end() const { return _entries.end(); } + + bool empty() const { return _entries.empty(); } + + bool contains(const String &key) const { return _entries.contains(key); } + + String &operator[](const String &key) { return _entries[key]; } + const String &operator[](const String &key) const { return _entries[key]; } + + String &getVal(const String &key) { return _entries.getVal(key); } + const String &getVal(const String &key) const { return _entries.getVal(key); } + + void clear() { _entries.clear(); } + + void erase(const String &key) { _entries.erase(key); } + void setDomainComment(const String &comment); const String &getDomainComment() const; @@ -142,7 +161,8 @@ public: bool hasMiscDomain(const String &domName) const; const DomainMap & getGameDomains() const { return _gameDomains; } - DomainMap & getGameDomains() { return _gameDomains; } + DomainMap::iterator beginGameDomains() { return _gameDomains.begin(); } + DomainMap::iterator endGameDomains() { return _gameDomains.end(); } static void defragment(); // move in memory to reduce fragmentation void copyFrom(ConfigManager &source); diff --git a/gui/EventRecorder.cpp b/gui/EventRecorder.cpp index 4bf5832864..21152dd079 100644 --- a/gui/EventRecorder.cpp +++ b/gui/EventRecorder.cpp @@ -372,8 +372,8 @@ SdlMixerManager *EventRecorder::getMixerManager() { } } -void EventRecorder::getConfigFromDomain(Common::ConfigManager::Domain *domain) { - for (Common::ConfigManager::Domain::iterator entry = domain->begin(); entry!= domain->end(); ++entry) { +void EventRecorder::getConfigFromDomain(const Common::ConfigManager::Domain *domain) { + for (Common::ConfigManager::Domain::const_iterator entry = domain->begin(); entry!= domain->end(); ++entry) { _playbackFile->getHeader().settingsRecords[entry->_key] = entry->_value; } } @@ -386,7 +386,7 @@ void EventRecorder::getConfig() { void EventRecorder::applyPlaybackSettings() { - for (Common::StringMap::iterator i = _playbackFile->getHeader().settingsRecords.begin(); i != _playbackFile->getHeader().settingsRecords.end(); ++i) { + for (Common::StringMap::const_iterator i = _playbackFile->getHeader().settingsRecords.begin(); i != _playbackFile->getHeader().settingsRecords.end(); ++i) { Common::String currentValue = ConfMan.get(i->_key); if (currentValue != i->_value) { ConfMan.set(i->_key, i->_value, ConfMan.kTransientDomain); @@ -400,7 +400,7 @@ void EventRecorder::applyPlaybackSettings() { } void EventRecorder::removeDifferentEntriesInDomain(Common::ConfigManager::Domain *domain) { - for (Common::ConfigManager::Domain::iterator entry = domain->begin(); entry!= domain->end(); ++entry) { + for (Common::ConfigManager::Domain::const_iterator entry = domain->begin(); entry!= domain->end(); ++entry) { if (_playbackFile->getHeader().settingsRecords.find(entry->_key) == _playbackFile->getHeader().settingsRecords.end()) { debugC(1, kDebugLevelEventRec, "playback:action=\"Apply settings\" checksettings:key=%s storedvalue=%s currentvalue="" result=different", entry->_key.c_str(), entry->_value.c_str()); domain->erase(entry->_key); diff --git a/gui/EventRecorder.h b/gui/EventRecorder.h index 68ffe16fbc..b2a549ece8 100644 --- a/gui/EventRecorder.h +++ b/gui/EventRecorder.h @@ -199,7 +199,7 @@ private: void setFileHeader(); void setGameMd5(const ADGameDescription *gameDesc); void getConfig(); - void getConfigFromDomain(Common::ConfigManager::Domain *domain); + void getConfigFromDomain(const Common::ConfigManager::Domain *domain); void removeDifferentEntriesInDomain(Common::ConfigManager::Domain *domain); void applyPlaybackSettings(); |