added code to detect data directory
authorkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sun, 9 Mar 2008 13:32:14 +0000 (13:32 +0000)
committerkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sun, 9 Mar 2008 13:32:14 +0000 (13:32 +0000)
git-svn-id: https://silmor.de/svn/softmagic/smoke/trunk@106 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33

src/main.cpp
src/main.h

index 3cb590e..3ecbb54 100644 (file)
@@ -53,6 +53,28 @@ QString choseLanguage(bool warn)
        return lang;
 }
 
+QString dataDir;
+
+#include <stdlib.h>
+
+void initDataDir()
+{
+       QSettings set;
+       if(set.contains("datadir"))
+               dataDir=set.value("datadir").toString();
+       else{
+#ifdef Q_OS_WIN32
+               dataDir=getenv("APPDATA");
+#else
+               dataDir=getenv("HOME");
+#endif
+               if(dataDir=="")
+                       qFatal("Cannot determine application data directory.");
+               dataDir+="/.magicSmoke";
+               set.setValue("datadir",dataDir);
+       }
+}
+
 int main(int argc,char**argv)
 {
        //create global app
@@ -82,6 +104,9 @@ int main(int argc,char**argv)
        mstrans.load("smoke_"+lang);
        app.installTranslator(&mstrans);
        
+       //try to find data dir
+       initDataDir();
+       
        //check/generate host settings
        if(!QSettings().contains("hostkey")){
                MKeyGen mkg;
index 2bdb629..de76588 100644 (file)
 //
 //
 
+#ifndef MAGICSMOKE_MAIN_H
+#define MAGICSMOKE_MAIN_H
+
 QString choseLanguage(bool warn=true);
 
+extern QString dataDir;
+
+#endif