diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp index d7844723b39..703ef82795e 100644 --- a/src/plugins/git/gitsubmiteditor.cpp +++ b/src/plugins/git/gitsubmiteditor.cpp @@ -229,9 +229,10 @@ void GitSubmitEditor::updateFileModel() m_firstUpdate = false; return; } - if (m_workingDirectory.isEmpty()) + GitSubmitEditorWidget *w = submitEditorWidget(); + if (w->updateInProgress() || m_workingDirectory.isEmpty()) return; - submitEditorWidget()->setUpdateInProgress(true); + w->setUpdateInProgress(true); resetCommitDataFetcher(); m_commitDataFetcher = new CommitDataFetcher(m_commitType, m_workingDirectory); connect(m_commitDataFetcher, SIGNAL(finished(bool)), this, SLOT(commitDataRetrieved(bool))); @@ -244,10 +245,9 @@ void GitSubmitEditor::updateFileModel() void GitSubmitEditor::commitDataRetrieved(bool success) { GitSubmitEditorWidget *w = submitEditorWidget(); - w->setUpdateInProgress(false); if (success) { setCommitData(m_commitDataFetcher->commitData()); - submitEditorWidget()->refreshLog(m_workingDirectory); + w->refreshLog(m_workingDirectory); w->setEnabled(true); } else { // Nothing to commit left! @@ -257,6 +257,7 @@ void GitSubmitEditor::commitDataRetrieved(bool success) } m_commitDataFetcher->deleteLater(); m_commitDataFetcher = 0; + w->setUpdateInProgress(false); } GitSubmitEditorPanelData GitSubmitEditor::panelData() const diff --git a/src/plugins/vcsbase/submiteditorwidget.cpp b/src/plugins/vcsbase/submiteditorwidget.cpp index efbc5d40c04..2568c4f532b 100644 --- a/src/plugins/vcsbase/submiteditorwidget.cpp +++ b/src/plugins/vcsbase/submiteditorwidget.cpp @@ -583,6 +583,11 @@ void SubmitEditorWidget::setUpdateInProgress(bool value) updateSubmitAction(); } +bool SubmitEditorWidget::updateInProgress() const +{ + return d->m_updateInProgress; +} + QString SubmitEditorWidget::commitName() const { return tr("&Commit"); diff --git a/src/plugins/vcsbase/submiteditorwidget.h b/src/plugins/vcsbase/submiteditorwidget.h index 6d841977356..06a5a54a500 100644 --- a/src/plugins/vcsbase/submiteditorwidget.h +++ b/src/plugins/vcsbase/submiteditorwidget.h @@ -105,6 +105,7 @@ public: virtual bool canSubmit() const; void setUpdateInProgress(bool value); + bool updateInProgress() const; signals: void diffSelected(const QList &);