forked from qt-creator/qt-creator
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>
This commit is contained in:
committed by
Orgad Shaneh
parent
7de7eb6bca
commit
1dc90bcf44
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user