From 711daa3803442e73a62eac58442934e24a53fb5c Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 18 Dec 2019 18:55:27 +0100 Subject: [PATCH] Utils: Introduce a FilePath::absolutePath() function ... and start using it. Change-Id: I44c74005a4deee72d0332106a4ce3582e0b66191 Reviewed-by: Eike Ziller --- src/libs/utils/fileutils.cpp | 7 +++++++ src/libs/utils/fileutils.h | 1 + src/plugins/projectexplorer/desktoprunconfiguration.cpp | 8 +++----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index 6c399810857..c0b2f150932 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -800,6 +800,13 @@ FilePath FilePath::parentDir() const return FilePath::fromString(parent); } +FilePath FilePath::absolutePath() const +{ + FilePath result = *this; + result.m_data = QFileInfo(m_data).absolutePath(); + return result; +} + /// Constructs a FilePath from \a filename /// \a filename is not checked for validity. FilePath FilePath::fromString(const QString &filename) diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h index 95ff5c904bb..b2df79b0d8b 100644 --- a/src/libs/utils/fileutils.h +++ b/src/libs/utils/fileutils.h @@ -86,6 +86,7 @@ public: bool isWritablePath() const; FilePath parentDir() const; + FilePath absolutePath() const; bool operator==(const FilePath &other) const; bool operator!=(const FilePath &other) const; diff --git a/src/plugins/projectexplorer/desktoprunconfiguration.cpp b/src/plugins/projectexplorer/desktoprunconfiguration.cpp index 8d589d538a8..78f9b3f6939 100644 --- a/src/plugins/projectexplorer/desktoprunconfiguration.cpp +++ b/src/plugins/projectexplorer/desktoprunconfiguration.cpp @@ -119,11 +119,9 @@ void DesktopRunConfiguration::updateTargetInformation() aspect()->setExecutable(executable); if (!executable.isEmpty()) { - QString defaultWorkingDir = QFileInfo(executable.toString()).absolutePath(); - if (!defaultWorkingDir.isEmpty()) { - auto wdAspect = aspect(); - wdAspect->setDefaultWorkingDirectory(FilePath::fromString(defaultWorkingDir)); - } + const FilePath defaultWorkingDir = executable.absolutePath(); + if (!defaultWorkingDir.isEmpty()) + aspect()->setDefaultWorkingDirectory(defaultWorkingDir); } emit enabledChanged();