aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/utils/fileutils.cpp10
-rw-r--r--src/libs/utils/fileutils.h3
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/tealeafreader.cpp4
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp6
5 files changed, 12 insertions, 13 deletions
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 9c7481b8fa..ec407832fb 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -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
diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h
index 0991d4ae68..e765270b49 100644
--- a/src/libs/utils/fileutils.h
+++ b/src/libs/utils/fileutils.h
@@ -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 *)> &copyHelper = 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);
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
index f42d308518..7593057b66 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
@@ -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();
diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.cpp b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
index 3e3a51d3e2..73d7ea00f3 100644
--- a/src/plugins/cmakeprojectmanager/tealeafreader.cpp
+++ b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
@@ -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(),
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
index d10ec35d79..7f3b77a942 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
@@ -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;
}