diff options
Diffstat (limited to 'src/plugins/git/gitsubmiteditor.cpp')
-rw-r--r-- | src/plugins/git/gitsubmiteditor.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp index b39fdeec33..faf16c783f 100644 --- a/src/plugins/git/gitsubmiteditor.cpp +++ b/src/plugins/git/gitsubmiteditor.cpp @@ -35,6 +35,7 @@ #include "gitsubmiteditorwidget.h" #include <coreplugin/editormanager/editormanager.h> +#include <coreplugin/iversioncontrol.h> #include <coreplugin/progressmanager/progressmanager.h> #include <utils/qtcassert.h> #include <vcsbase/submitfilemodel.h> @@ -43,6 +44,7 @@ #include <QDebug> #include <QStringList> #include <QTextCodec> +#include <QTimer> #include <QtConcurrentRun> 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(); |