summaryrefslogtreecommitdiffstats
path: root/opensuse/core/qt3/qtrc-path.diff
blob: 41830d988c1190a793d80693e163aec033934633 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--- src/tools/qsettings.cpp
+++ src/tools/qsettings.cpp
@@ -36,6 +36,7 @@
 **********************************************************************/
 
 #include "qplatformdefs.h"
+#include <stdlib.h>
 
 // POSIX Large File Support redefines open -> open64
 static inline int qt_open( const char *pathname, int flags, mode_t mode )
@@ -465,8 +466,18 @@
     Q_UNUSED( format );
 #endif
 
-    QString appSettings(QDir::homeDirPath() + "/.qt/");
-    QString defPath;
+    QString home;
+    home = getenv("QT_HOME_DIR");
+    if ( !home.isEmpty() ){
+       home += "/";
+       QFileInfo i( home + "qtrc" );
+       if ( !i.isReadable() )
+         home = QDir::homeDirPath() + "/.qt/";
+    }else
+       home = QDir::homeDirPath() + "/.qt/";
+    QString appSettings(home);
+
+    QString defPath("/etc/X11/");
 #ifdef Q_WS_WIN
 #ifdef Q_OS_TEMP
 	TCHAR path[MAX_PATH];
@@ -514,6 +525,15 @@
 
     if ( !!defPath )
 	searchPaths.append(defPath);
+
+    QString system;
+    system = getenv("QT_SYSTEM_DIR");
+    if ( !system.isEmpty() && system[0] == '/') {
+       QFileInfo i( system + "/qtrc" );
+       if ( i.isReadable() )
+           searchPaths.append(system);
+    }
+
     searchPaths.append(dir.path());
 }