#include <Config_Keywords.h>
#include <Config_Common.h>
#include <Config_PropManager.h>
+#include <Config_ModuleReader.h>
#include <Events_Loop.h>
-#include <Events_Error.h>
+#include <Events_InfoMessage.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <iostream>
#endif
+#ifdef WIN32
+ static const char FSEP = '\\';
+#else
+ static const char FSEP = '/';
+#endif
+
Config_XMLReader::Config_XMLReader(const std::string& theXmlFileName)
: myXmlDoc(NULL)
{
- std::string prefix = "";
+ std::string prefix = "";
Config_Prop* aProp = Config_PropManager::findProp("Plugins", "default_path");
if (aProp)
prefix = aProp->value();
if (prefix.empty())
prefix = pluginConfigFile();
-#ifdef WIN32
- prefix += "\\";
-#else
- prefix += "/";
-#endif
- myDocumentPath = prefix + theXmlFileName;
+ myDocumentPath = prefix + FSEP + theXmlFileName;
std::ifstream aTestFile(myDocumentPath);
- if (!aTestFile) Events_Error::send("Unable to open " + myDocumentPath);
+ if (!aTestFile)
+ Events_InfoMessage("Config_XMLReader", "Unable to open %1").arg(myDocumentPath).send();
aTestFile.close();
}
std::string Config_XMLReader::pluginConfigFile()
{
std::string aValue;
- char* anEnv = getenv("PLUGINS_CONFIG_FILE");
+ char* anEnv = getenv("SHAPER_ROOT_DIR");
if (anEnv) {
- aValue = std::string(anEnv);
+ aValue = std::string(anEnv) +
+ FSEP + "share" + FSEP + "salome" + FSEP + "resources" + FSEP + "shaper";
+ } else {
+ anEnv = getenv("OPENPARTS_ROOT_DIR");
+ if (anEnv) {
+ aValue = std::string(anEnv) + FSEP + "plugins";
+ }
}
return aValue;
}
void Config_XMLReader::readAll()
{
+ // to load external modules dependencies (like GEOm for Connector Feature
+ Config_ModuleReader::loadScript("salome.shaper.initConfig", false);
+
xmlNodePtr aRoot = findRoot();
readRecursively(aRoot);
}
}
return result;
}
+
+const char* Config_XMLReader::encoding() const
+{
+ return (const char*) myXmlDoc->encoding;
+}
\ No newline at end of file