[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