From f720daed919aa05245f2e9800d255c04ce9372e0 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 23 Nov 2016 15:37:31 +0100 Subject: [PATCH] Clear the uniqueId of diff editor when saving Saving diff editor transforms it to patch-file read only editor. Clearing the uniqueId ensures we don't use it anymore for showing e.g. current file's modifications. Change-Id: I2010161697bbad254ce1ebe5d0bb6a1f38ae323c Reviewed-by: Orgad Shaneh --- src/plugins/coreplugin/editormanager/editormanager.cpp | 5 +++++ src/plugins/coreplugin/editormanager/editormanager.h | 1 + src/plugins/diffeditor/diffeditordocument.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 134dc1cc2bc..573ce3774bd 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -2798,6 +2798,11 @@ bool EditorManager::skipOpeningBigTextFile(const QString &filePath) return EditorManagerPrivate::skipOpeningBigTextFile(filePath); } +void EditorManager::clearUniqueId(IDocument *document) +{ + document->setProperty(scratchBufferKey, QVariant()); +} + bool EditorManager::saveDocument(IDocument *document) { return EditorManagerPrivate::saveDocument(document); diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h index 25c89c7711b..cbefff451f8 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.h +++ b/src/plugins/coreplugin/editormanager/editormanager.h @@ -119,6 +119,7 @@ public: const QString &uniqueId = QString(), OpenEditorFlags flags = NoFlags); static bool skipOpeningBigTextFile(const QString &filePath); + static void clearUniqueId(IDocument *document); static bool openExternalEditor(const QString &fileName, Id editorId); static void addCloseEditorListener(const std::function &listener); diff --git a/src/plugins/diffeditor/diffeditordocument.cpp b/src/plugins/diffeditor/diffeditordocument.cpp index 5a4d575d9c2..33c24475a4b 100644 --- a/src/plugins/diffeditor/diffeditordocument.cpp +++ b/src/plugins/diffeditor/diffeditordocument.cpp @@ -215,6 +215,7 @@ bool DiffEditorDocument::save(QString *errorString, const QString &fileName, boo setController(0); setDescription(QString()); + Core::EditorManager::clearUniqueId(this); const QFileInfo fi(fileName); setTemporary(false);