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)) {
QString baseDir;
if (loc == PrefixPath) {
// we make the prefix path absolute to the executable's directory
#ifdef BOOTSTRAPPING
return QDir(QFileInfo(qmake_libraryInfoFile()).absolutePath()).absoluteFilePath(ret);
baseDir = QFileInfo(qmake_libraryInfoFile()).absolutePath();
#else
if (QCoreApplication::instance()) {
#ifdef Q_OS_MAC
@ -466,15 +467,16 @@ QLibraryInfo::location(LibraryLocation loc)
}
}
#endif
return QDir(QCoreApplication::applicationDirPath()).absoluteFilePath(ret);
baseDir = QCoreApplication::applicationDirPath();
} else {
return QDir::current().absoluteFilePath(ret);
baseDir = QDir::currentPath();
}
#endif
} else {
// 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;
}