--- src/tools/qsettings.cpp +++ src/tools/qsettings.cpp @@ -39,6 +39,7 @@ **********************************************************************/ #include "qplatformdefs.h" +#include // POSIX Large File Support redefines open -> open64 static inline int qt_open( const char *pathname, int flags, mode_t mode ) @@ -468,8 +469,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]; @@ -517,6 +528,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()); }