Reuse existing controller when requesting existing diff editor

Change-Id: I01d54f0bd131b8ae7daee74533375920fa544adf
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2016-11-22 11:11:51 +01:00
parent 27d155636a
commit c1b6685d50

View File

@@ -722,13 +722,16 @@ void GitClient::requestReload(const QString &documentId, const QString &source,
IDocument *document = DiffEditorController::findOrCreateDocument(documentId, title);
QTC_ASSERT(document, return);
DiffEditorController *controller = factory(document);
QTC_ASSERT(controller, return);
DiffEditorController *controller = DiffEditorController::controller(document);
if (!controller) {
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, sourceCopy);
EditorManager::activateEditorForDocument(document);