27 #include "../../common/OSSettingsDir.h"
28 #include "../../common/SystemApplicationSettings.h"
29 #include "../../common/Translator.h"
34 #include <boost/filesystem.hpp>
41 if(plugins_conf_file_name.empty())
45 boost::filesystem::path plugins_conf_file = boost::filesystem::current_path();
49 plugins_conf_file /= plugins_conf_file_name;
51 if(boost::filesystem::is_regular_file(plugins_conf_file))
53 load(plugins_conf_file.string());
60 if(!system_settings_path.empty())
62 plugins_conf_file = system_settings_path;
66 plugins_conf_file /= plugins_conf_file_name;
68 if(boost::filesystem::is_regular_file(plugins_conf_file))
70 load(plugins_conf_file.string());
78 if(!user_settings_path.empty())
80 plugins_conf_file = user_settings_path;
84 plugins_conf_file /= plugins_conf_file_name;
86 if(boost::filesystem::is_regular_file(plugins_conf_file))
88 load(plugins_conf_file.string());
98 plugins_conf_file = mgis_dir;
102 plugins_conf_file /= plugins_conf_file_name;
104 if(boost::filesystem::is_regular_file(plugins_conf_file))
106 load(plugins_conf_file.string());
111 throw Exception(
TR_QT_AF(
"Can not find application plugins config file!"));
116 ApplicationSettings::load(fileName);
121 return m_plugins_files;
126 if(m_plugins_files.find(pluginName) == m_plugins_files.end())
127 m_plugins_files[pluginName] = pluginFileName;
132 std::map<std::string, std::string>::iterator it = m_plugins_files.find(pluginName);
134 if(it != m_plugins_files.end())
135 m_plugins_files.erase(it);
145 std::map<std::string, std::string>::const_iterator it;
147 for(it=plgs.begin(); it!=plgs.end(); ++it)
148 addPlugin(it->first, it->second);
153 std::vector<std::string>::const_iterator it;
155 for(it=plgs.begin(); it!=plgs.end(); ++it)
#define TERRALIB_CONFIG_DIR
Folder location with application config files.
const std::map< std::string, std::string > & getPluginsFiles() const
const std::string & getUserSettingsPath() const
It returns the folder location to store per user data.
An exception class for the TerraLib Application Framework.
void addPlugin(const std::string &pluginName, const std::string &pluginFileName)
#define TERRALIB_DIR
The folder name on the system where terralib data is stored (on windows: app/terralib).
#define TERRALIB_DIR_ENVVAR
Environment variable name with the TerraLib install path.
void addPlugins(const std::map< std::string, std::string > &plgs)
#define TERRALIB_APPLICATION_PLUGINS_FILE
The file that contains the application plugins.
A singleton for managing the application plugins.
void removePlugin(const std::string &pluginName)
ApplicationPlugins()
It initializes the singleton.
void removePlugins(const std::vector< std::string > &plgs)
#define TR_QT_AF(message)
It marks a string in order to get translated. This is a special mark used in the DataAccess module of...
static T & getInstance()
It returns a reference to the singleton instance.
const std::string & getSystemSettingsPath() const
It returns the folder location to store application data applied to all users.
~ApplicationPlugins()
Destructor.
const std::string & getFileName() const