#include <Config_PropManager.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)
{
* the problem: application may be launched using python executable,
* to use environment variable (at least for the current moment)
*/
- if (prefix.empty()) {
- char* anEnv = getenv("SHAPER_CONFIG_FILE");
- if (anEnv) {
- prefix = std::string(anEnv);
- }
- }
-#ifdef WIN32
- prefix += "\\";
-#else
- prefix += "/";
-#endif
- myDocumentPath = prefix + theXmlFileName;
+ if (prefix.empty())
+ prefix = pluginConfigFile();
+
+ 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();
}
xmlFreeDoc(myXmlDoc);
}
+std::string Config_XMLReader::pluginConfigFile()
+{
+ std::string aValue;
+ char* anEnv = getenv("SHAPER_ROOT_DIR");
+ if (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()
{
xmlNodePtr aRoot = findRoot();
}
return result;
}
+
+const char* Config_XMLReader::encoding() const
+{
+ return (const char*) myXmlDoc->encoding;
+}
\ No newline at end of file