From 0aa3cc45b5220c6567b82778411e20df4bc55f0b Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 27 Sep 2021 13:53:21 +0200 Subject: [PATCH] Core: Use FilePath for ExternalTool working directory Change-Id: Ifd295c3bd07b79f146b84fc27c117f42ba9b793f Reviewed-by: Eike Ziller --- src/plugins/coreplugin/dialogs/externaltoolconfig.cpp | 4 ++-- src/plugins/coreplugin/externaltool.cpp | 8 ++++---- src/plugins/coreplugin/externaltool.h | 8 ++++---- tests/auto/externaltool/tst_externaltooltest.cpp | 7 ++++--- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp index 3387564b12f..111fcb13a14 100644 --- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp +++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp @@ -582,7 +582,7 @@ void ExternalToolConfig::updateItem(const QModelIndex &index) executables << m_ui.executable->rawPath(); tool->setExecutables(executables); tool->setArguments(m_ui.arguments->text()); - tool->setWorkingDirectory(m_ui.workingDirectory->rawPath()); + tool->setWorkingDirectory(m_ui.workingDirectory->rawFilePath()); tool->setBaseEnvironmentProviderId(Id::fromSetting(m_ui.baseEnvironment->currentData())); tool->setEnvironmentUserChanges(m_environment); tool->setOutputHandling(ExternalTool::OutputHandling(m_ui.outputBehavior->currentIndex())); @@ -610,7 +610,7 @@ void ExternalToolConfig::showInfoForItem(const QModelIndex &index) m_ui.executable->setPath(tool->executables().isEmpty() ? QString() : tool->executables().constFirst()); m_ui.arguments->setText(tool->arguments()); - m_ui.workingDirectory->setPath(tool->workingDirectory()); + m_ui.workingDirectory->setFilePath(tool->workingDirectory()); m_ui.outputBehavior->setCurrentIndex(int(tool->outputHandling())); m_ui.errorOutputBehavior->setCurrentIndex(int(tool->errorHandling())); m_ui.modifiesDocumentCheckbox->setChecked(tool->modifiesCurrentDocument()); diff --git a/src/plugins/coreplugin/externaltool.cpp b/src/plugins/coreplugin/externaltool.cpp index 0b9067c3da6..33368c47971 100644 --- a/src/plugins/coreplugin/externaltool.cpp +++ b/src/plugins/coreplugin/externaltool.cpp @@ -169,7 +169,7 @@ QString ExternalTool::input() const return m_input; } -QString ExternalTool::workingDirectory() const +FilePath ExternalTool::workingDirectory() const { return m_workingDirectory; } @@ -287,7 +287,7 @@ void ExternalTool::setInput(const QString &input) } -void ExternalTool::setWorkingDirectory(const QString &workingDirectory) +void ExternalTool::setWorkingDirectory(const FilePath &workingDirectory) { m_workingDirectory = workingDirectory; } @@ -435,7 +435,7 @@ ExternalTool * ExternalTool::createFromXml(const QByteArray &xml, QString *error reader.raiseError("only one element allowed"); break; } - tool->m_workingDirectory = reader.readElementText(); + tool->m_workingDirectory = FilePath::fromString(reader.readElementText()); } else if (reader.name() == QLatin1String(kBaseEnvironmentId)) { if (tool->m_baseEnvironmentProviderId.isValid()) { reader.raiseError("only one element allowed"); @@ -526,7 +526,7 @@ bool ExternalTool::save(QString *errorMessage) const if (!m_input.isEmpty()) out.writeTextElement(kInput, m_input); if (!m_workingDirectory.isEmpty()) - out.writeTextElement(kWorkingDirectory, m_workingDirectory); + out.writeTextElement(kWorkingDirectory, m_workingDirectory.toString()); if (m_baseEnvironmentProviderId.isValid()) out.writeTextElement(kBaseEnvironmentId, m_baseEnvironmentProviderId.toString()); if (!m_environment.isEmpty()) { diff --git a/src/plugins/coreplugin/externaltool.h b/src/plugins/coreplugin/externaltool.h index 1b6d1557fdc..36e4a22d813 100644 --- a/src/plugins/coreplugin/externaltool.h +++ b/src/plugins/coreplugin/externaltool.h @@ -67,7 +67,7 @@ public: QStringList executables() const; QString arguments() const; QString input() const; - QString workingDirectory() const; + Utils::FilePath workingDirectory() const; Utils::Id baseEnvironmentProviderId() const; Utils::Environment baseEnvironment() const; Utils::EnvironmentItems environmentUserChanges() const; @@ -98,7 +98,7 @@ public: void setExecutables(const QStringList &executables); void setArguments(const QString &arguments); void setInput(const QString &input); - void setWorkingDirectory(const QString &workingDirectory); + void setWorkingDirectory(const Utils::FilePath &workingDirectory); void setBaseEnvironmentProviderId(Utils::Id id); void setEnvironmentUserChanges(const Utils::EnvironmentItems &items); @@ -111,7 +111,7 @@ private: QStringList m_executables; QString m_arguments; QString m_input; - QString m_workingDirectory; + Utils::FilePath m_workingDirectory; Utils::Id m_baseEnvironmentProviderId; Utils::EnvironmentItems m_environment; OutputHandling m_outputHandling = ShowInPane; @@ -146,7 +146,7 @@ private: Utils::FilePath m_resolvedExecutable; QString m_resolvedArguments; QString m_resolvedInput; - QString m_resolvedWorkingDirectory; + Utils::FilePath m_resolvedWorkingDirectory; Utils::Environment m_resolvedEnvironment; Utils::QtcProcess *m_process; QTextCodec *m_outputCodec; diff --git a/tests/auto/externaltool/tst_externaltooltest.cpp b/tests/auto/externaltool/tst_externaltooltest.cpp index 563ff67b408..d47c50465be 100644 --- a/tests/auto/externaltool/tst_externaltooltest.cpp +++ b/tests/auto/externaltool/tst_externaltooltest.cpp @@ -29,6 +29,7 @@ #include using namespace Core::Internal; +using namespace Utils; static const char TEST_XML1[] = "" @@ -124,7 +125,7 @@ void ExternaltoolTest::testRead1() QCOMPARE(tool->executables().at(1), QString::fromLatin1("lupdate")); QCOMPARE(tool->arguments(), QString::fromLatin1("%{CurrentProjectFilePath}")); QCOMPARE(tool->input(), QString()); - QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentProjectPath}")); + QCOMPARE(tool->workingDirectory(), FilePath::fromString("%{CurrentProjectPath}")); QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->errorHandling(), ExternalTool::Ignore); delete tool; @@ -145,7 +146,7 @@ void ExternaltoolTest::testRead2() QCOMPARE(tool->executables().at(0), QString::fromLatin1("sort")); QCOMPARE(tool->arguments(), QString()); QCOMPARE(tool->input(), QString::fromLatin1("%{CurrentSelection}")); - QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentPath}")); + QCOMPARE(tool->workingDirectory(), FilePath::fromString("%{CurrentPath}")); QCOMPARE(tool->outputHandling(), ExternalTool::ReplaceSelection); QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane); delete tool; @@ -166,7 +167,7 @@ void ExternaltoolTest::testRead3() QCOMPARE(tool->executables().at(0), QString::fromLatin1("xterm")); QVERIFY(tool->arguments().startsWith(QLatin1String("-geom %{"))); QCOMPARE(tool->input(), QString()); - QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentPath}")); + QCOMPARE(tool->workingDirectory(), FilePath::fromString("%{CurrentPath}")); QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->modifiesCurrentDocument(), true); QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane);