]> git.siccegge.de Git - frida/frida.git/blobdiff - src/core/Settings.cxx
Add settings Class
[frida/frida.git] / src / core / Settings.cxx
diff --git a/src/core/Settings.cxx b/src/core/Settings.cxx
new file mode 100644 (file)
index 0000000..eee4ff3
--- /dev/null
@@ -0,0 +1,24 @@
+#include "Settings.hxx"
+
+Settings* Settings::instance = NULL;
+
+Settings::Settings()
+       : QSettings("frida")
+       , logger(log4cxx::Logger::getLogger("core.Settings")) {
+       setIniCodec("UTF-8");
+       instance = this;
+
+       QStringList runtimePaths = QStandardPaths::standardLocations(QStandardPaths::RuntimeLocation);
+       if (! runtimePaths.empty() && (*runtimePaths.begin()) != "") {
+               LOG4CXX_DEBUG(logger, "Using runtime Path \"" << runtimePaths.begin()->toStdString() << "\" from list of length " << runtimePaths.length());
+               runtimeDirectory = new QDir(*runtimePaths.begin());
+       } else {
+               QTemporaryDir* dir = new QTemporaryDir();
+               if (dir->isValid()) {
+                       runtimeDirectory = new QDir(dir->path());
+                       LOG4CXX_INFO(logger, "Using custom runtime Path " << dir->path().toStdString());
+               } else {
+                       LOG4CXX_ERROR(logger, "Could not create Runtime directory!");
+               }
+       }
+}