summaryrefslogtreecommitdiffstats
path: root/src/Common/ConfigManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/ConfigManager.cpp')
-rw-r--r--src/Common/ConfigManager.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/Common/ConfigManager.cpp b/src/Common/ConfigManager.cpp
index c119cf7..6727cc3 100644
--- a/src/Common/ConfigManager.cpp
+++ b/src/Common/ConfigManager.cpp
@@ -52,7 +52,10 @@ void ConfigManager::handleConfigEntry(const ConfigEntry &entry) {
Logger::logf(Logger::WARNING, "Invalid config option '%s'.", entry[entry.getSize()-1].getKey().c_str());
}
-bool ConfigManager::loadFile(const std::string &filename, bool finish) {
+bool ConfigManager::loadFile(const std::string &filename) {
+ if(finished)
+ return false;
+
std::ifstream file(filename.c_str());
ConfigEntry entry;
std::string line, input;
@@ -112,13 +115,18 @@ bool ConfigManager::loadFile(const std::string &filename, bool finish) {
// TODO Depth check
- if(finish) {
- for(std::set<Configurable*>::iterator c = configurables.begin(); c != configurables.end(); ++c)
- (*c)->configFinished();
- }
-
return true;
}
+void ConfigManager::finish() {
+ if(finished)
+ return;
+
+ for(std::set<Configurable*>::iterator c = configurables.begin(); c != configurables.end(); ++c)
+ (*c)->configFinished();
+
+ finished = true;
+}
+
}
}