diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp index b39fdeec336..faf16c783f5 100644 --- a/src/plugins/git/gitsubmiteditor.cpp +++ b/src/plugins/git/gitsubmiteditor.cpp @@ -35,6 +35,7 @@ #include "gitsubmiteditorwidget.h" #include +#include #include #include #include @@ -43,6 +44,7 @@ #include #include #include +#include #include static const char TASK_UPDATE_COMMIT[] = "Git.UpdateCommit"; @@ -134,6 +136,8 @@ GitSubmitEditor::GitSubmitEditor(const VcsBaseSubmitEditorParameters *parameters { connect(this, &VcsBaseSubmitEditor::diffSelectedRows, this, &GitSubmitEditor::slotDiffSelected); connect(submitEditorWidget(), &GitSubmitEditorWidget::show, this, &GitSubmitEditor::showCommit); + connect(GitPlugin::instance()->versionControl(), &Core::IVersionControl::repositoryChanged, + this, &GitSubmitEditor::forceUpdateFileModel); } GitSubmitEditor::~GitSubmitEditor() @@ -270,6 +274,15 @@ void GitSubmitEditor::updateFileModel() GitPlugin::instance()->client()->addFuture(future); } +void GitSubmitEditor::forceUpdateFileModel() +{ + GitSubmitEditorWidget *w = submitEditorWidget(); + if (w->updateInProgress()) + QTimer::singleShot(10, &GitSubmitEditor::forceUpdateFileModel); + else + updateFileModel(); +} + void GitSubmitEditor::commitDataRetrieved(bool success) { GitSubmitEditorWidget *w = submitEditorWidget(); diff --git a/src/plugins/git/gitsubmiteditor.h b/src/plugins/git/gitsubmiteditor.h index 4a8910d01bf..24d85035d5b 100644 --- a/src/plugins/git/gitsubmiteditor.h +++ b/src/plugins/git/gitsubmiteditor.h @@ -67,6 +67,7 @@ signals: protected: QByteArray fileContents() const override; void updateFileModel() override; + void forceUpdateFileModel(); private: void slotDiffSelected(const QList &rows);