From 1d23de641f5933553c636253a938eb17c308688d Mon Sep 17 00:00:00 2001 From: Nikita Baryshnikov Date: Thu, 9 Apr 2015 11:36:32 +0300 Subject: [PATCH] GitClient: fix diff when committing When a commit has several files, opening diff for the first file works, but trying to open another diff without closing the previous one doesn't refresh the diff editor. Change-Id: Ia973cb70f2355a89b70787dd97042ef9f751d9d6 Reviewed-by: Orgad Shaneh Reviewed-by: Nikita Baryshnikov --- src/plugins/diffeditor/diffeditorcontroller.cpp | 1 - src/plugins/git/gitclient.cpp | 16 ++++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/plugins/diffeditor/diffeditorcontroller.cpp b/src/plugins/diffeditor/diffeditorcontroller.cpp index 6380dee25b2..5f4cfef23e2 100644 --- a/src/plugins/diffeditor/diffeditorcontroller.cpp +++ b/src/plugins/diffeditor/diffeditorcontroller.cpp @@ -48,7 +48,6 @@ DiffEditorController::DiffEditorController(Core::IDocument *document) : m_chunkIndex(-1) { QTC_ASSERT(m_document, return); - QTC_CHECK(!m_document->controller()); m_document->setController(this); } diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index ff068d46fd7..44d1837411e 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -792,19 +792,15 @@ void GitClient::requestReload(const QString &documentId, const QString &source, const QString &title, std::function factory) const { - DiffEditorController *controller = 0; IDocument *document = DiffEditorManager::findOrCreate(documentId, title); QTC_ASSERT(document, return); - controller = DiffEditorManager::controller(document); - if (!controller) { - controller = factory(document); - QTC_ASSERT(controller, return); + DiffEditorController *controller = factory(document); + QTC_ASSERT(controller, return); - connect(controller, &DiffEditorController::chunkActionsRequested, - this, &GitClient::slotChunkActionsRequested, Qt::DirectConnection); - connect(controller, &DiffEditorController::requestInformationForCommit, - this, &GitClient::branchesForCommit); - } + connect(controller, &DiffEditorController::chunkActionsRequested, + this, &GitClient::slotChunkActionsRequested, Qt::DirectConnection); + connect(controller, &DiffEditorController::requestInformationForCommit, + this, &GitClient::branchesForCommit); VcsBasePlugin::setSource(document, source); EditorManager::activateEditorForDocument(document);