summaryrefslogtreecommitdiff
path: root/src/plugins/git/gitsubmiteditor.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2016-01-05 23:58:49 +0200
committerOrgad Shaneh <orgads@gmail.com>2016-01-06 10:06:22 +0000
commit1dc90bcf441a7f32b06ecccbfd224074639b5d64 (patch)
treef92534188dba77e7ea0dd599dfbb0f46afa21bde /src/plugins/git/gitsubmiteditor.cpp
parent7de7eb6bcada805eff176634e8131c4914e1213d (diff)
downloadqt-creator-1dc90bcf441a7f32b06ecccbfd224074639b5d64.tar.gz
Git: Force update file model when mergetool is done
Flow: * Open a commit editor with unmerged files * Double-click an unmerged file * Resolve the conflicts with the mergetool, save and close it * The window is activated and the file model is refreshed immediately, before the mergetool process has exited. When the mergetool exits, repositoryChanged is emitted. Use it to refresh the file model again. Task-number: QTCREATORBUG-15569 Change-Id: Ibce7301bc46fe3a5a378a4c15b882e1bb6bbf3c3 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/git/gitsubmiteditor.cpp')
-rw-r--r--src/plugins/git/gitsubmiteditor.cpp13
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();