diff options
author | Piotr Dziwinski <piotrdz@gmail.com> | 2014-10-07 22:15:40 +0200 |
---|---|---|
committer | Piotr Dziwinski <piotrdz@gmail.com> | 2014-10-07 22:15:40 +0200 |
commit | 5274acd624c3a5ad60592cee2ebc869b10a96fda (patch) | |
tree | 04836157b8c3aa9553d5e67e8ed248220ff1661a /src/common | |
parent | 3ef2f976df56817d2a23d4fe88a1917798beaacd (diff) | |
parent | 2770ee8927cb91419b1918f46228435026790cf6 (diff) | |
download | colobot-5274acd624c3a5ad60592cee2ebc869b10a96fda.tar.gz colobot-5274acd624c3a5ad60592cee2ebc869b10a96fda.tar.bz2 colobot-5274acd624c3a5ad60592cee2ebc869b10a96fda.zip |
Merge with dev
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/iman.cpp | 4 | ||||
-rw-r--r-- | src/common/profile.cpp | 39 | ||||
-rw-r--r-- | src/common/profile.h | 124 | ||||
-rw-r--r-- | src/common/singleton.h | 5 |
4 files changed, 88 insertions, 84 deletions
diff --git a/src/common/iman.cpp b/src/common/iman.cpp index 88fbb9b..edfa9c7 100644 --- a/src/common/iman.cpp +++ b/src/common/iman.cpp @@ -42,9 +42,7 @@ void CInstanceManager::Flush() { for (int i = 0; i < CLASS_MAX; i++) { - if (m_table[i].instances != nullptr) - delete[] m_table[i].instances; - + delete[] m_table[i].instances; m_table[i].instances = nullptr; } } diff --git a/src/common/profile.cpp b/src/common/profile.cpp index 9947769..5ecb804 100644 --- a/src/common/profile.cpp +++ b/src/common/profile.cpp @@ -17,12 +17,12 @@ #include "common/profile.h" -#include "common/logger.h" #include "common/resources/inputstream.h" #include "common/resources/outputstream.h" - #include "app/system.h" +#include "common/logger.h" + #include <utility> #include <cstring> #include <boost/property_tree/ini_parser.hpp> @@ -33,19 +33,24 @@ template<> CProfile* CSingleton<CProfile>::m_instance = nullptr; namespace bp = boost::property_tree; -CProfile::CProfile() : - m_profileNeedSave(false) +CProfile::CProfile() + : m_profileNeedSave(false) + , m_useCurrentDirectory(false) { } CProfile::~CProfile() { - SaveCurrentDirectory(); + Save(); } +void CProfile::SetUseCurrentDirectory(bool useCurrentDirectory) +{ + m_useCurrentDirectory = useCurrentDirectory; +} -bool CProfile::InitCurrentDirectory() +bool CProfile::Init() { try { @@ -67,7 +72,7 @@ bool CProfile::InitCurrentDirectory() return true; } -bool CProfile::SaveCurrentDirectory() +bool CProfile::Save() { if (m_profileNeedSave) { @@ -92,7 +97,7 @@ bool CProfile::SaveCurrentDirectory() return true; } -bool CProfile::SetLocalProfileString(std::string section, std::string key, std::string value) +bool CProfile::SetStringProperty(std::string section, std::string key, std::string value) { try { @@ -108,7 +113,7 @@ bool CProfile::SetLocalProfileString(std::string section, std::string key, std:: } -bool CProfile::GetLocalProfileString(std::string section, std::string key, std::string &buffer) +bool CProfile::GetStringProperty(std::string section, std::string key, std::string &buffer) { try { @@ -123,7 +128,7 @@ bool CProfile::GetLocalProfileString(std::string section, std::string key, std:: } -bool CProfile::SetLocalProfileInt(std::string section, std::string key, int value) +bool CProfile::SetIntProperty(std::string section, std::string key, int value) { try { @@ -139,7 +144,7 @@ bool CProfile::SetLocalProfileInt(std::string section, std::string key, int valu } -bool CProfile::GetLocalProfileInt(std::string section, std::string key, int &value) +bool CProfile::GetIntProperty(std::string section, std::string key, int &value) { try { @@ -154,7 +159,7 @@ bool CProfile::GetLocalProfileInt(std::string section, std::string key, int &val } -bool CProfile::SetLocalProfileFloat(std::string section, std::string key, float value) +bool CProfile::SetFloatProperty(std::string section, std::string key, float value) { try { @@ -170,7 +175,7 @@ bool CProfile::SetLocalProfileFloat(std::string section, std::string key, float } -bool CProfile::GetLocalProfileFloat(std::string section, std::string key, float &value) +bool CProfile::GetFloatProperty(std::string section, std::string key, float &value) { try { @@ -185,7 +190,7 @@ bool CProfile::GetLocalProfileFloat(std::string section, std::string key, float } -std::vector< std::string > CProfile::GetLocalProfileSection(std::string section, std::string key) +std::vector< std::string > CProfile::GetSection(std::string section, std::string key) { std::vector< std::string > ret_list; boost::regex re(key + "[0-9]*"); //we want to match all key followed by any number @@ -215,13 +220,13 @@ void CProfile::SetUserDir(std::string dir) } -std::string CProfile::GetUserBasedPath(std::string dir, std::string default_dir) +std::string CProfile::GetUserBasedPath(std::string dir, std::string defaultDir) { std::string path = dir; boost::replace_all(path, "\\", "/"); if (dir.find("/") == std::string::npos) { - path = default_dir + "/" + dir; + path = defaultDir + "/" + dir; } if (m_userDirectory.length() > 0) @@ -230,7 +235,7 @@ std::string CProfile::GetUserBasedPath(std::string dir, std::string default_dir) } else { - boost::replace_all(path, "%user%", default_dir); + boost::replace_all(path, "%user%", defaultDir); } return fs::path(path).make_preferred().string(); diff --git a/src/common/profile.h b/src/common/profile.h index f084ece..ee17591 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -45,94 +45,98 @@ public: CProfile(); virtual ~CProfile(); + /** Set flag to force using ini file from current directory */ + void SetUseCurrentDirectory(bool useCurrentDirectory); + /** Loads colobot.ini from current directory - * \return return true on success - */ - bool InitCurrentDirectory(); + * \return return true on success + */ + bool Init(); /** Saves colobot.ini to current directory - * \return return true on success - */ - bool SaveCurrentDirectory(); + * \return return true on success + */ + bool Save(); /** Sets string value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool SetLocalProfileString(std::string section, std::string key, std::string value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool SetStringProperty(std::string section, std::string key, std::string value); /** Gets string value in section under specified key - * \param section - * \param key - * \param buffer - * \return return true on success - */ - bool GetLocalProfileString(std::string section, std::string key, std::string& buffer); + * \param section + * \param key + * \param buffer + * \return return true on success + */ + bool GetStringProperty(std::string section, std::string key, std::string& buffer); /** Sets int value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool SetLocalProfileInt(std::string section, std::string key, int value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool SetIntProperty(std::string section, std::string key, int value); /** Gets int value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool GetLocalProfileInt(std::string section, std::string key, int &value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool GetIntProperty(std::string section, std::string key, int &value); /** Sets float value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool SetLocalProfileFloat(std::string section, std::string key, float value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool SetFloatProperty(std::string section, std::string key, float value); /** Gets float value in section under specified key - * \param section - * \param key - * \param value - * \return return true on success - */ - bool GetLocalProfileFloat(std::string section, std::string key, float &value); + * \param section + * \param key + * \param value + * \return return true on success + */ + bool GetFloatProperty(std::string section, std::string key, float &value); /** Gets all values in section under specified key - * \param section - * \param key - * \return vector of values - */ - std::vector< std::string > GetLocalProfileSection(std::string section, std::string key); + * \param section + * \param key + * \return vector of values + */ + std::vector< std::string > GetSection(std::string section, std::string key); /** Sets current user directory - * \param dir - */ + * \param dir + */ void SetUserDir(std::string dir); /** Returns path based on current user. Replaces %user% in path with current user dir or - * uses default_dir param if no user dir is specified - * \param dir - * \param default_dir - * \return path - */ - std::string GetUserBasedPath(std::string dir, std::string default_dir); - - /** opy a file into the temporary folder. - * \param filename - * \return true on success - */ + * uses default_dir param if no user dir is specified + * \param dir + * \param default_dir + * \return path + */ + std::string GetUserBasedPath(std::string dir, std::string defaultDir); + + /** Copy a file into the temporary folder. + * \param filename + * \return true on success + */ bool CopyFileToTemp(std::string filename); private: boost::property_tree::ptree m_propertyTree; bool m_profileNeedSave; std::string m_userDirectory; + bool m_useCurrentDirectory; }; //! Global function to get profile instance diff --git a/src/common/singleton.h b/src/common/singleton.h index 841759d..bf5bc9d 100644 --- a/src/common/singleton.h +++ b/src/common/singleton.h @@ -62,10 +62,7 @@ public: static void ReplaceInstance(T* newInstance) { assert(newInstance != nullptr); - - if (m_instance != nullptr) - delete m_instance; - + delete m_instance; m_instance = newInstance; } #endif |