diff options
-rw-r--r-- | src/tools/qsettings.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/tools/qsettings.cpp b/src/tools/qsettings.cpp index 4dd056d0e..9c70bf02d 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 @@ TQSettingsPrivate::TQSettingsPrivate( TQSettings::Format format ) Q_UNUSED( format ); #endif - TQString appSettings(TQDir::homeDirPath() + "/.qt/"); + TQString home; + home = getenv("TQT_HOME_DIR"); + if ( !home.isEmpty() ) { + home += "/"; + TQFileInfo i( home + "qtrc" ); + if ( !i.isReadable() ) { + home = TQDir::homeDirPath() + "/.qt/"; + } + } else { + home = TQDir::homeDirPath() + "/.qt/"; + } + TQString appSettings(home); + TQString defPath; #ifdef Q_WS_WIN #ifdef Q_OS_TEMP @@ -517,6 +530,16 @@ TQSettingsPrivate::TQSettingsPrivate( TQSettings::Format format ) if ( !!defPath ) searchPaths.append(defPath); + + TQString system; + system = getenv("TQT_SYSTEM_DIR"); + if ( !system.isEmpty() && system[0] == '/') { + TQFileInfo i( system + "/qtrc" ); + if ( i.isReadable() ) { + searchPaths.append(system); + } + } + searchPaths.append(dir.path()); } |