make QLibraryInfo return clean paths

as a side effect, don't use QDir for path resolution - it doesn't buy us
anything.

Task-number: QTBUG-1371
Reviewed-by: joerg
(cherry picked from commit 9cd62e4f7b23894a672297f6eebda64cdbd53cb0)
This commit is contained in:
Oswald Buddenhagen 2011-04-20 16:28:58 +02:00 committed by Olivier Goffart
parent 86a6ffbc3e
commit 23db871a44

View File

@ -450,10 +450,11 @@ QLibraryInfo::location(LibraryLocation loc)
} }
if (QDir::isRelativePath(ret)) { if (QDir::isRelativePath(ret)) {
QString baseDir;
if (loc == PrefixPath) { if (loc == PrefixPath) {
// we make the prefix path absolute to the executable's directory // we make the prefix path absolute to the executable's directory
#ifdef BOOTSTRAPPING #ifdef BOOTSTRAPPING
return QDir(QFileInfo(qmake_libraryInfoFile()).absolutePath()).absoluteFilePath(ret); baseDir = QFileInfo(qmake_libraryInfoFile()).absolutePath();
#else #else
if (QCoreApplication::instance()) { if (QCoreApplication::instance()) {
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
@ -466,15 +467,16 @@ QLibraryInfo::location(LibraryLocation loc)
} }
} }
#endif #endif
return QDir(QCoreApplication::applicationDirPath()).absoluteFilePath(ret); baseDir = QCoreApplication::applicationDirPath();
} else { } else {
return QDir::current().absoluteFilePath(ret); baseDir = QDir::currentPath();
} }
#endif #endif
} else { } else {
// we make any other path absolute to the prefix directory // we make any other path absolute to the prefix directory
return QDir(location(PrefixPath)).absoluteFilePath(ret); baseDir = location(PrefixPath);
} }
ret = QDir::cleanPath(baseDir + QLatin1Char('/') + ret);
} }
return ret; return ret;
} }