diff options
Diffstat (limited to 'src/plugins/git/mergetool.cpp')
-rw-r--r-- | src/plugins/git/mergetool.cpp | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/src/plugins/git/mergetool.cpp b/src/plugins/git/mergetool.cpp index 97259483be..ceaf634b00 100644 --- a/src/plugins/git/mergetool.cpp +++ b/src/plugins/git/mergetool.cpp @@ -52,7 +52,7 @@ MergeTool::~MergeTool() delete m_process; } -bool MergeTool::start(const FilePath &workingDirectory, const QStringList &files) +void MergeTool::start(const FilePath &workingDirectory, const QStringList &files) { QStringList arguments; arguments << "mergetool" << "-y" << files; @@ -60,6 +60,8 @@ bool MergeTool::start(const FilePath &workingDirectory, const QStringList &files env.set("LANG", "C"); env.set("LANGUAGE", "C"); m_process = new QtcProcess; + connect(m_process, &QtcProcess::done, this, &MergeTool::done); + connect(m_process, &QtcProcess::readyReadStandardOutput, this, &MergeTool::readData); m_process->setProcessMode(ProcessMode::Writer); m_process->setWorkingDirectory(workingDirectory); m_process->setEnvironment(env); @@ -69,15 +71,6 @@ bool MergeTool::start(const FilePath &workingDirectory, const QStringList &files VcsOutputWindow::appendCommand(workingDirectory, cmd); m_process->setCommand(cmd); m_process->start(); - if (m_process->waitForStarted()) { - connect(m_process, &QtcProcess::finished, this, &MergeTool::done); - connect(m_process, &QtcProcess::readyReadStandardOutput, this, &MergeTool::readData); - } else { - delete m_process; - m_process = nullptr; - return false; - } - return true; } MergeTool::FileState MergeTool::parseStatus(const QString &line, QString &extraInfo) @@ -254,15 +247,14 @@ void MergeTool::readLine(const QString &line) void MergeTool::done() { + const bool success = m_process->result() == ProcessResult::FinishedWithSuccess; + if (success) + VcsOutputWindow::appendMessage(m_process->exitMessage()); + else + VcsOutputWindow::appendError(m_process->exitMessage()); + const FilePath workingDirectory = m_process->workingDirectory(); - int exitCode = m_process->exitCode(); - if (!exitCode) { - VcsOutputWindow::appendMessage(tr("Merge tool process finished successfully.")); - } else { - VcsOutputWindow::appendError(tr("Merge tool process terminated with exit code %1") - .arg(exitCode)); - } - GitClient::instance()->continueCommandIfNeeded(workingDirectory, exitCode == 0); + GitClient::instance()->continueCommandIfNeeded(workingDirectory, success); GitPlugin::emitRepositoryChanged(workingDirectory); deleteLater(); } |