forked from qt-creator/qt-creator
Utils: Make FileName::canonicalPath a member
Change-Id: I8d7450dec5c4c14ae3e007d1d66f1a9c3c98f807 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -234,17 +234,17 @@ FileName FileUtils::resolveSymlinks(const FileName &path)
|
||||
}
|
||||
|
||||
/*!
|
||||
Recursively resolves possibly present symlinks in \a filePath.
|
||||
Recursively resolves possibly present symlinks in this file name.
|
||||
Unlike QFileInfo::canonicalFilePath(), this function will not return an empty
|
||||
string if path doesn't exist.
|
||||
|
||||
Returns the canonical path.
|
||||
*/
|
||||
FileName FileUtils::canonicalPath(const FileName &path)
|
||||
FileName FileName::canonicalPath() const
|
||||
{
|
||||
const QString result = path.toFileInfo().canonicalFilePath();
|
||||
const QString result = toFileInfo().canonicalFilePath();
|
||||
if (result.isEmpty())
|
||||
return path;
|
||||
return *this;
|
||||
return FileName::fromString(result);
|
||||
}
|
||||
|
||||
@@ -356,7 +356,7 @@ FileName FileUtils::commonPath(const FileName &oldCommonPath, const FileName &fi
|
||||
FileName newCommonPath = oldCommonPath;
|
||||
while (!newCommonPath.isEmpty() && !fileName.isChildOf(newCommonPath))
|
||||
newCommonPath = newCommonPath.parentDir();
|
||||
return canonicalPath(newCommonPath);
|
||||
return newCommonPath.canonicalPath();
|
||||
}
|
||||
|
||||
// Copied from qfilesystemengine_win.cpp
|
||||
|
@@ -102,6 +102,8 @@ public:
|
||||
FileName pathAppended(const QString &str) const;
|
||||
FileName stringAppended(const QString &str) const;
|
||||
|
||||
FileName canonicalPath() const;
|
||||
|
||||
void clear() { m_data.clear(); }
|
||||
bool isEmpty() const { return m_data.isEmpty(); }
|
||||
|
||||
@@ -129,7 +131,6 @@ public:
|
||||
const std::function<bool (QFileInfo, QFileInfo, QString *)> ©Helper = nullptr);
|
||||
static bool isFileNewerThan(const FileName &filePath, const QDateTime &timeStamp);
|
||||
static FileName resolveSymlinks(const FileName &path);
|
||||
static FileName canonicalPath(const FileName &path);
|
||||
static QString shortNativePath(const FileName &path);
|
||||
static QString fileSystemFriendlyName(const QString &name);
|
||||
static int indexOfQmakeUnfriendly(const QString &name, int startpos = 0);
|
||||
|
@@ -248,7 +248,7 @@ QList<void *> CMakeProjectImporter::examineDirectory(const Utils::FileName &impo
|
||||
}
|
||||
const auto homeDir
|
||||
= Utils::FileName::fromUserInput(QString::fromUtf8(CMakeConfigItem::valueOf("CMAKE_HOME_DIRECTORY", config)));
|
||||
const Utils::FileName canonicalProjectDirectory = Utils::FileUtils::canonicalPath(projectDirectory());
|
||||
const Utils::FileName canonicalProjectDirectory = projectDirectory().canonicalPath();
|
||||
if (homeDir != canonicalProjectDirectory) {
|
||||
qCDebug(cmInputLog()) << "Wrong source directory:" << homeDir.toUserOutput()
|
||||
<< "expected:" << canonicalProjectDirectory.toUserOutput();
|
||||
|
@@ -250,8 +250,8 @@ CMakeConfig TeaLeafReader::takeParsedConfiguration()
|
||||
|
||||
const FileName sourceOfBuildDir
|
||||
= FileName::fromUtf8(CMakeConfigItem::valueOf("CMAKE_HOME_DIRECTORY", result));
|
||||
const FileName canonicalSourceOfBuildDir = FileUtils::canonicalPath(sourceOfBuildDir);
|
||||
const FileName canonicalSourceDirectory = FileUtils::canonicalPath(m_parameters.sourceDirectory);
|
||||
const FileName canonicalSourceOfBuildDir = sourceOfBuildDir.canonicalPath();
|
||||
const FileName canonicalSourceDirectory = m_parameters.sourceDirectory.canonicalPath();
|
||||
if (canonicalSourceOfBuildDir != canonicalSourceDirectory) { // Uses case-insensitive compare where appropriate
|
||||
emit errorOccured(tr("The build directory is not for %1 but for %2")
|
||||
.arg(canonicalSourceOfBuildDir.toUserOutput(),
|
||||
|
@@ -181,10 +181,8 @@ Utils::FileName jsonObjectFilename(const QJsonObject &object)
|
||||
const QString workingDir = QDir::fromNativeSeparators(object["directory"].toString());
|
||||
Utils::FileName fileName = Utils::FileName::fromString(
|
||||
QDir::fromNativeSeparators(object["file"].toString()));
|
||||
if (fileName.toFileInfo().isRelative()) {
|
||||
fileName = Utils::FileUtils::canonicalPath(
|
||||
Utils::FileName::fromString(workingDir + "/" + fileName.toString()));
|
||||
}
|
||||
if (fileName.toFileInfo().isRelative())
|
||||
fileName = Utils::FileName::fromString(workingDir + "/" + fileName.toString()).canonicalPath();
|
||||
return fileName;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user