summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Andriot <albator78@libertysurf.fr>2014-10-06 00:03:13 -0500
committerSlávek Banko <slavek.banko@axis.cz>2015-12-15 19:54:02 +0100
commitb4bff05ee3260a25b5125deb835ccab9d747ed8f (patch)
treeb74b78361f592354e44fd039b8f8e42d79d8f020
parent83b1aa2e88f313c7d306a5421624b9b8be9f659d (diff)
downloadqt3-b4bff05ee3260a25b5125deb835ccab9d747ed8f.tar.gz
qt3-b4bff05ee3260a25b5125deb835ccab9d747ed8f.zip
Add support for the environment variables TQT_HOME_DIR and TQT_SYSTEM_DIR
(cherry picked from commit f0cc3689b3b210e9e27e0367112790fd45565ee7)
-rw-r--r--src/tools/qsettings.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/tools/qsettings.cpp b/src/tools/qsettings.cpp
index 1ce2675..81ad25f 100644
--- a/src/tools/qsettings.cpp
+++ b/src/tools/qsettings.cpp
@@ -39,6 +39,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 )
@@ -468,7 +469,19 @@ QSettingsPrivate::QSettingsPrivate( QSettings::Format format )
Q_UNUSED( format );
#endif
- QString appSettings(QDir::homeDirPath() + "/.qt/");
+ 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;
#ifdef Q_WS_WIN
#ifdef Q_OS_TEMP
@@ -517,6 +530,16 @@ QSettingsPrivate::QSettingsPrivate( QSettings::Format format )
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());
}