Core: Use FilePath for ExternalTool working directory

Change-Id: Ifd295c3bd07b79f146b84fc27c117f42ba9b793f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2021-09-27 13:53:21 +02:00
parent 3f7f867da5
commit 0aa3cc45b5
4 changed files with 14 additions and 13 deletions

View File

@@ -582,7 +582,7 @@ void ExternalToolConfig::updateItem(const QModelIndex &index)
executables << m_ui.executable->rawPath(); executables << m_ui.executable->rawPath();
tool->setExecutables(executables); tool->setExecutables(executables);
tool->setArguments(m_ui.arguments->text()); 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->setBaseEnvironmentProviderId(Id::fromSetting(m_ui.baseEnvironment->currentData()));
tool->setEnvironmentUserChanges(m_environment); tool->setEnvironmentUserChanges(m_environment);
tool->setOutputHandling(ExternalTool::OutputHandling(m_ui.outputBehavior->currentIndex())); 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() m_ui.executable->setPath(tool->executables().isEmpty() ? QString()
: tool->executables().constFirst()); : tool->executables().constFirst());
m_ui.arguments->setText(tool->arguments()); 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.outputBehavior->setCurrentIndex(int(tool->outputHandling()));
m_ui.errorOutputBehavior->setCurrentIndex(int(tool->errorHandling())); m_ui.errorOutputBehavior->setCurrentIndex(int(tool->errorHandling()));
m_ui.modifiesDocumentCheckbox->setChecked(tool->modifiesCurrentDocument()); m_ui.modifiesDocumentCheckbox->setChecked(tool->modifiesCurrentDocument());

View File

@@ -169,7 +169,7 @@ QString ExternalTool::input() const
return m_input; return m_input;
} }
QString ExternalTool::workingDirectory() const FilePath ExternalTool::workingDirectory() const
{ {
return m_workingDirectory; 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; m_workingDirectory = workingDirectory;
} }
@@ -435,7 +435,7 @@ ExternalTool * ExternalTool::createFromXml(const QByteArray &xml, QString *error
reader.raiseError("only one <workingdirectory> element allowed"); reader.raiseError("only one <workingdirectory> element allowed");
break; break;
} }
tool->m_workingDirectory = reader.readElementText(); tool->m_workingDirectory = FilePath::fromString(reader.readElementText());
} else if (reader.name() == QLatin1String(kBaseEnvironmentId)) { } else if (reader.name() == QLatin1String(kBaseEnvironmentId)) {
if (tool->m_baseEnvironmentProviderId.isValid()) { if (tool->m_baseEnvironmentProviderId.isValid()) {
reader.raiseError("only one <baseEnvironmentId> element allowed"); reader.raiseError("only one <baseEnvironmentId> element allowed");
@@ -526,7 +526,7 @@ bool ExternalTool::save(QString *errorMessage) const
if (!m_input.isEmpty()) if (!m_input.isEmpty())
out.writeTextElement(kInput, m_input); out.writeTextElement(kInput, m_input);
if (!m_workingDirectory.isEmpty()) if (!m_workingDirectory.isEmpty())
out.writeTextElement(kWorkingDirectory, m_workingDirectory); out.writeTextElement(kWorkingDirectory, m_workingDirectory.toString());
if (m_baseEnvironmentProviderId.isValid()) if (m_baseEnvironmentProviderId.isValid())
out.writeTextElement(kBaseEnvironmentId, m_baseEnvironmentProviderId.toString()); out.writeTextElement(kBaseEnvironmentId, m_baseEnvironmentProviderId.toString());
if (!m_environment.isEmpty()) { if (!m_environment.isEmpty()) {

View File

@@ -67,7 +67,7 @@ public:
QStringList executables() const; QStringList executables() const;
QString arguments() const; QString arguments() const;
QString input() const; QString input() const;
QString workingDirectory() const; Utils::FilePath workingDirectory() const;
Utils::Id baseEnvironmentProviderId() const; Utils::Id baseEnvironmentProviderId() const;
Utils::Environment baseEnvironment() const; Utils::Environment baseEnvironment() const;
Utils::EnvironmentItems environmentUserChanges() const; Utils::EnvironmentItems environmentUserChanges() const;
@@ -98,7 +98,7 @@ public:
void setExecutables(const QStringList &executables); void setExecutables(const QStringList &executables);
void setArguments(const QString &arguments); void setArguments(const QString &arguments);
void setInput(const QString &input); void setInput(const QString &input);
void setWorkingDirectory(const QString &workingDirectory); void setWorkingDirectory(const Utils::FilePath &workingDirectory);
void setBaseEnvironmentProviderId(Utils::Id id); void setBaseEnvironmentProviderId(Utils::Id id);
void setEnvironmentUserChanges(const Utils::EnvironmentItems &items); void setEnvironmentUserChanges(const Utils::EnvironmentItems &items);
@@ -111,7 +111,7 @@ private:
QStringList m_executables; QStringList m_executables;
QString m_arguments; QString m_arguments;
QString m_input; QString m_input;
QString m_workingDirectory; Utils::FilePath m_workingDirectory;
Utils::Id m_baseEnvironmentProviderId; Utils::Id m_baseEnvironmentProviderId;
Utils::EnvironmentItems m_environment; Utils::EnvironmentItems m_environment;
OutputHandling m_outputHandling = ShowInPane; OutputHandling m_outputHandling = ShowInPane;
@@ -146,7 +146,7 @@ private:
Utils::FilePath m_resolvedExecutable; Utils::FilePath m_resolvedExecutable;
QString m_resolvedArguments; QString m_resolvedArguments;
QString m_resolvedInput; QString m_resolvedInput;
QString m_resolvedWorkingDirectory; Utils::FilePath m_resolvedWorkingDirectory;
Utils::Environment m_resolvedEnvironment; Utils::Environment m_resolvedEnvironment;
Utils::QtcProcess *m_process; Utils::QtcProcess *m_process;
QTextCodec *m_outputCodec; QTextCodec *m_outputCodec;

View File

@@ -29,6 +29,7 @@
#include <coreplugin/externaltool.h> #include <coreplugin/externaltool.h>
using namespace Core::Internal; using namespace Core::Internal;
using namespace Utils;
static const char TEST_XML1[] = static const char TEST_XML1[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
@@ -124,7 +125,7 @@ void ExternaltoolTest::testRead1()
QCOMPARE(tool->executables().at(1), QString::fromLatin1("lupdate")); QCOMPARE(tool->executables().at(1), QString::fromLatin1("lupdate"));
QCOMPARE(tool->arguments(), QString::fromLatin1("%{CurrentProjectFilePath}")); QCOMPARE(tool->arguments(), QString::fromLatin1("%{CurrentProjectFilePath}"));
QCOMPARE(tool->input(), QString()); QCOMPARE(tool->input(), QString());
QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentProjectPath}")); QCOMPARE(tool->workingDirectory(), FilePath::fromString("%{CurrentProjectPath}"));
QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane);
QCOMPARE(tool->errorHandling(), ExternalTool::Ignore); QCOMPARE(tool->errorHandling(), ExternalTool::Ignore);
delete tool; delete tool;
@@ -145,7 +146,7 @@ void ExternaltoolTest::testRead2()
QCOMPARE(tool->executables().at(0), QString::fromLatin1("sort")); QCOMPARE(tool->executables().at(0), QString::fromLatin1("sort"));
QCOMPARE(tool->arguments(), QString()); QCOMPARE(tool->arguments(), QString());
QCOMPARE(tool->input(), QString::fromLatin1("%{CurrentSelection}")); 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->outputHandling(), ExternalTool::ReplaceSelection);
QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane);
delete tool; delete tool;
@@ -166,7 +167,7 @@ void ExternaltoolTest::testRead3()
QCOMPARE(tool->executables().at(0), QString::fromLatin1("xterm")); QCOMPARE(tool->executables().at(0), QString::fromLatin1("xterm"));
QVERIFY(tool->arguments().startsWith(QLatin1String("-geom %{"))); QVERIFY(tool->arguments().startsWith(QLatin1String("-geom %{")));
QCOMPARE(tool->input(), QString()); QCOMPARE(tool->input(), QString());
QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentPath}")); QCOMPARE(tool->workingDirectory(), FilePath::fromString("%{CurrentPath}"));
QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane);
QCOMPARE(tool->modifiesCurrentDocument(), true); QCOMPARE(tool->modifiesCurrentDocument(), true);
QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane);