From 83d6e81d94e7c2b00ddde6dfd4a03246c03f4de3 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@digia.com> Date: Wed, 13 Feb 2013 11:22:51 +0100 Subject: [PATCH] Vcs: Remove "waiting for data" when process fails Task-number: QTCREATORBUG-7946 Change-Id: Ic3c3ceddd3b4bf115a1da78a5b5e5b640dbbd1f1 Reviewed-by: Orgad Shaneh <orgads@gmail.com> --- src/plugins/git/giteditor.cpp | 3 ++- src/plugins/vcsbase/vcsbaseclient.cpp | 4 +++- src/plugins/vcsbase/vcsbaseeditor.cpp | 9 +++++++++ src/plugins/vcsbase/vcsbaseeditor.h | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp index c6a02e7224a..fe2871ad89e 100644 --- a/src/plugins/git/giteditor.cpp +++ b/src/plugins/git/giteditor.cpp @@ -211,8 +211,9 @@ void GitEditor::setPlainTextDataFiltered(const QByteArray &a) setPlainTextData(array); } -void GitEditor::commandFinishedGotoLine(bool ok, int /* exitCode */, const QVariant &v) +void GitEditor::commandFinishedGotoLine(bool ok, int exitCode, const QVariant &v) { + reportCommandFinished(ok, exitCode, v); if (ok && v.type() == QVariant::Int) { const int line = v.toInt(); if (line >= 0) diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index 6d9b6c02ac8..930d7e37d3b 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -153,7 +153,9 @@ void VcsBaseClientPrivate::commandFinishedGotoLine(QObject *editorObject) VcsBase::VcsBaseEditorWidget *editor = qobject_cast<VcsBase::VcsBaseEditorWidget *>(editorObject); Command *cmd = qobject_cast<Command *>(m_cmdFinishedMapper->mapping(editor)); if (editor && cmd) { - if (cmd->lastExecutionSuccess() && cmd->cookie().type() == QVariant::Int) { + if (!cmd->lastExecutionSuccess()) { + editor->reportCommandFinished(false, cmd->lastExecutionExitCode(), cmd->cookie()); + } else if (cmd->cookie().type() == QVariant::Int) { const int line = cmd->cookie().toInt(); if (line >= 0) editor->gotoLine(line); diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index 45f60c410f1..b5fd6f87997 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -1177,6 +1177,15 @@ void VcsBaseEditorWidget::setPlainTextData(const QByteArray &data) setPlainText(codec()->toUnicode(data)); } +void VcsBaseEditorWidget::reportCommandFinished(bool ok, int exitCode, const QVariant &data) +{ + Q_UNUSED(exitCode); + Q_UNUSED(data); + + if (!ok) + setPlainText(tr("Failed to retrieve data.")); +} + void VcsBaseEditorWidget::setFontSettings(const TextEditor::FontSettings &fs) { TextEditor::BaseTextEditorWidget::setFontSettings(fs); diff --git a/src/plugins/vcsbase/vcsbaseeditor.h b/src/plugins/vcsbase/vcsbaseeditor.h index 24885d2475f..839ed91fc12 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.h +++ b/src/plugins/vcsbase/vcsbaseeditor.h @@ -206,6 +206,7 @@ public slots: // Convenience slot to set data read from stdout, will use the // documents' codec to decode void setPlainTextData(const QByteArray &data); + void reportCommandFinished(bool ok, int exitCode, const QVariant &data); protected: virtual TextEditor::BaseTextEditor *createEditor(); -- GitLab