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();
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());

View File

@@ -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 <workingdirectory> 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 <baseEnvironmentId> 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()) {

View File

@@ -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;