[Orxonox-commit 5820] r10480 - code/branches/core7/src/libraries/core
landauf at orxonox.net
landauf at orxonox.net
Mon May 25 21:01:33 CEST 2015
Author: landauf
Date: 2015-05-25 21:01:33 +0200 (Mon, 25 May 2015)
New Revision: 10480
Modified:
code/branches/core7/src/libraries/core/Core.cc
code/branches/core7/src/libraries/core/CoreConfig.cc
code/branches/core7/src/libraries/core/CoreConfig.h
code/branches/core7/src/libraries/core/Language.cc
code/branches/core7/src/libraries/core/Language.h
Log:
removed dependency of Language on CoreConfig.
Modified: code/branches/core7/src/libraries/core/Core.cc
===================================================================
--- code/branches/core7/src/libraries/core/Core.cc 2015-05-25 17:20:21 UTC (rev 10479)
+++ code/branches/core7/src/libraries/core/Core.cc 2015-05-25 19:01:33 UTC (rev 10480)
@@ -181,7 +181,6 @@
// possibility to configure everything below here
orxout(internal_info) << "configuring Core" << endl;
this->config_ = new CoreConfig();
- this->config_->setConfigValues(); // TODO: move this into CoreConfig constructor (but resolve dependency to Language)
// Set the correct log path and rewrite the log file with the correct log levels
OutputManager::getInstance().getLogWriter()->setLogDirectory(PathConfig::getLogPathString());
Modified: code/branches/core7/src/libraries/core/CoreConfig.cc
===================================================================
--- code/branches/core7/src/libraries/core/CoreConfig.cc 2015-05-25 17:20:21 UTC (rev 10479)
+++ code/branches/core7/src/libraries/core/CoreConfig.cc 2015-05-25 19:01:33 UTC (rev 10480)
@@ -46,6 +46,7 @@
, ogreConfigTimestamp_(0)
{
RegisterObject(CoreConfig);
+ this->setConfigValues();
}
//! Function to collect the SetConfigValue-macro calls.
@@ -113,7 +114,13 @@
void CoreConfig::languageChanged()
{
// Read the translation file after the language was configured
- Language::getInstance().readTranslatedLanguageFile();
+ bool success = Language::getInstance().readTranslatedLanguageFile(this->language_);
+ if (!success)
+ {
+ // Set the language in the config-file back to the default.
+ ResetConfigValue(language_);
+ orxout(internal_info, context::language) << "Reset language to " << this->language_ << '.' << endl;
+ }
}
void CoreConfig::initRandomNumberGenerator()
@@ -127,12 +134,6 @@
}
}
- //! Sets the language in the config-file back to the default.
- void CoreConfig::resetLanguage()
- {
- ResetConfigValue(language_);
- }
-
void CoreConfig::updateLastLevelTimestamp()
{
ModifyConfigValue(lastLevelTimestamp_, set, static_cast<long long>(time(NULL)));
Modified: code/branches/core7/src/libraries/core/CoreConfig.h
===================================================================
--- code/branches/core7/src/libraries/core/CoreConfig.h 2015-05-25 17:20:21 UTC (rev 10479)
+++ code/branches/core7/src/libraries/core/CoreConfig.h 2015-05-25 19:01:33 UTC (rev 10480)
@@ -46,11 +46,6 @@
inline bool inDevMode(void) const
{ return this->bDevMode_; }
- //! Returns the configured language.
- const std::string& getLanguage()
- { return this->language_; }
- void resetLanguage();
-
inline bool getStartIOConsole() const
{ return this->bStartIOConsole_; }
Modified: code/branches/core7/src/libraries/core/Language.cc
===================================================================
--- code/branches/core7/src/libraries/core/Language.cc 2015-05-25 17:20:21 UTC (rev 10479)
+++ code/branches/core7/src/libraries/core/Language.cc 2015-05-25 19:01:33 UTC (rev 10480)
@@ -36,7 +36,6 @@
#include <fstream>
#include "util/Output.h"
#include "util/StringUtils.h"
-#include "Core.h"
#include "PathConfig.h"
namespace orxonox
@@ -246,12 +245,13 @@
/**
@brief Reads the language file of the configured language and assigns the localisation to the corresponding LanguageEntry object.
+ @return Returns false if the language file couldn't be found.
*/
- void Language::readTranslatedLanguageFile()
+ bool Language::readTranslatedLanguageFile(const std::string& language)
{
- orxout(internal_info, context::language) << "Read translated language file (" << Core::getInstance().getConfig()->getLanguage() << ")." << endl;
+ orxout(internal_info, context::language) << "Read translated language file (" << language << ")." << endl;
- const std::string& filepath = PathConfig::getConfigPathString() + getFilename(Core::getInstance().getConfig()->getLanguage());
+ const std::string& filepath = PathConfig::getConfigPathString() + getFilename(language);
// Open the file
std::ifstream file;
@@ -260,10 +260,8 @@
if (!file.is_open())
{
orxout(internal_error, context::language) << "An error occurred in Language.cc:" << endl;
- orxout(internal_error, context::language) << "Couldn't open file " << getFilename(Core::getInstance().getConfig()->getLanguage()) << " to read the translated language entries!" << endl;
- Core::getInstance().getConfig()->resetLanguage();
- orxout(internal_info, context::language) << "Reset language to " << this->defaultLanguage_ << '.' << endl;
- return;
+ orxout(internal_error, context::language) << "Couldn't open file " << getFilename(language) << " to read the translated language entries!" << endl;
+ return false;
}
// Iterate through the file and create the LanguageEntries
@@ -290,12 +288,13 @@
}
else
{
- orxout(internal_warning, context::language) << "Invalid language entry \"" << lineString << "\" in " << getFilename(Core::getInstance().getConfig()->getLanguage()) << endl;
+ orxout(internal_warning, context::language) << "Invalid language entry \"" << lineString << "\" in " << getFilename(language) << endl;
}
}
}
file.close();
+ return true;
}
/**
Modified: code/branches/core7/src/libraries/core/Language.h
===================================================================
--- code/branches/core7/src/libraries/core/Language.h 2015-05-25 17:20:21 UTC (rev 10479)
+++ code/branches/core7/src/libraries/core/Language.h 2015-05-25 19:01:33 UTC (rev 10480)
@@ -173,7 +173,7 @@
Language(const Language&);
void readDefaultLanguageFile();
- void readTranslatedLanguageFile();
+ bool readTranslatedLanguageFile(const std::string& language);
void writeDefaultLanguageFile() const;
static std::string getFilename(const std::string& language);
LanguageEntry* createEntry(const LanguageEntryLabel& label, const std::string& entry);
More information about the Orxonox-commit
mailing list