diff options
| author | Eike Ziller <eike.ziller@digia.com> | 2014-08-15 16:23:32 +0200 |
|---|---|---|
| committer | Eike Ziller <eike.ziller@digia.com> | 2014-08-18 15:36:01 +0200 |
| commit | 8a31388f4094d1d15e156475dcfa7ddf506f3228 (patch) | |
| tree | 95a11f336048fb3e314dffec718444140a207719 /src/plugins | |
| parent | 5a0a61bfac1708a4e4a17282502c44d8be866d51 (diff) | |
| download | qt-creator-8a31388f4094d1d15e156475dcfa7ddf506f3228.tar.gz | |
EditorManager: Close documents instead of editors where appropriate
This is the first step in actually making "closeEditor(s)" close editors
instead of documents.
Change-Id: I02761e0cef950b8fc093f65a90df04a9a7550681
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/clearcase/clearcaseplugin.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/coreplugin/editormanager/editormanager.cpp | 7 | ||||
| -rw-r--r-- | src/plugins/coreplugin/editormanager/editormanager.h | 1 | ||||
| -rw-r--r-- | src/plugins/cpptools/cppmodelmanager_test.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/debugger/memoryagent.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/debugger/qml/qmlengine.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/debugger/sourceagent.cpp | 3 | ||||
| -rw-r--r-- | src/plugins/texteditor/basetexteditor_test.cpp | 8 |
8 files changed, 22 insertions, 15 deletions
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 496c53f964..66ad105bc3 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -2364,7 +2364,7 @@ public: ~TestCase() { - Core::EditorManager::closeEditor(m_editor, false); + Core::EditorManager::closeDocument(m_editor->document(), false); QCoreApplication::processEvents(); // process any pending events QFile file(m_fileName); diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index ef12101f45..52d9a2eabf 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1576,7 +1576,7 @@ void EditorManagerPrivate::closeEditorFromContextMenu() { IDocument *document = d->m_contextMenuEntry ? d->m_contextMenuEntry->document : 0; if (document) - EditorManager::closeEditors(DocumentModel::editorsForDocument(document)); + EditorManager::closeDocument(document); } void EditorManagerPrivate::closeOtherDocumentsFromContextMenu() @@ -2327,6 +2327,11 @@ QList<IEditor*> EditorManager::visibleEditors() return editors; } +bool EditorManager::closeDocument(IDocument *document, bool askAboutModifiedEditors) +{ + return closeDocuments(QList<IDocument *>() << document, askAboutModifiedEditors); +} + bool EditorManager::closeDocuments(const QList<IDocument *> &document, bool askAboutModifiedEditors) { return m_instance->closeEditors(DocumentModel::editorsForDocuments(document), askAboutModifiedEditors); diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h index fa374d6724..829f8c21be 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.h +++ b/src/plugins/coreplugin/editormanager/editormanager.h @@ -132,6 +132,7 @@ public: static void activateEditorForEntry(DocumentModel::Entry *entry, OpenEditorFlags flags = 0); static IEditor *activateEditorForDocument(IDocument *document, OpenEditorFlags flags = 0); + static bool closeDocument(IDocument *document, bool askAboutModifiedEditors = true); static bool closeDocuments(const QList<IDocument *> &documents, bool askAboutModifiedEditors = true); static void closeDocument(DocumentModel::Entry *entry); static void closeOtherDocuments(IDocument *document); diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp index 6f7a6f1fa0..0366a57b39 100644 --- a/src/plugins/cpptools/cppmodelmanager_test.cpp +++ b/src/plugins/cpptools/cppmodelmanager_test.cpp @@ -730,7 +730,7 @@ void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed() helper.waitForRefreshedSourceFiles(); // Close file/editor - Core::EditorManager::closeEditor(editor, /*askAboutModifiedEditors=*/ false); + Core::EditorManager::closeDocument(editor->document(), /*askAboutModifiedEditors=*/ false); helper.waitForFinishedGc(); // Check: File is removed from the snapshpt @@ -769,7 +769,7 @@ void CppToolsPlugin::test_modelmanager_dont_gc_opened_files() QVERIFY(mm->snapshot().contains(file)); // Close editor - Core::EditorManager::closeEditor(editor); + Core::EditorManager::closeDocument(editor->document()); helper.waitForFinishedGc(); QVERIFY(mm->snapshot().isEmpty()); } diff --git a/src/plugins/debugger/memoryagent.cpp b/src/plugins/debugger/memoryagent.cpp index 4dc53de825..4c28ee8998 100644 --- a/src/plugins/debugger/memoryagent.cpp +++ b/src/plugins/debugger/memoryagent.cpp @@ -104,11 +104,11 @@ void MemoryAgent::closeEditors() if (m_editors.isEmpty()) return; - QList<IEditor *> editors; + QSet<IDocument *> documents; foreach (QPointer<IEditor> editor, m_editors) if (editor) - editors.append(editor.data()); - EditorManager::closeEditors(editors); + documents.insert(editor->document()); + EditorManager::closeDocuments(documents.toList()); m_editors.clear(); } diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 73b10d98af..714b731bdb 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -340,15 +340,15 @@ QmlEngine::QmlEngine(const DebuggerStartParameters &startParameters, DebuggerEng QmlEngine::~QmlEngine() { - QList<Core::IEditor *> editorsToClose; + QSet<Core::IDocument *> documentsToClose; QHash<QString, QWeakPointer<TextEditor::BaseTextEditor> >::iterator iter; for (iter = m_sourceEditors.begin(); iter != m_sourceEditors.end(); ++iter) { QWeakPointer<TextEditor::BaseTextEditor> textEditPtr = iter.value(); if (textEditPtr) - editorsToClose << textEditPtr.data(); + documentsToClose << textEditPtr.data()->document(); } - Core::EditorManager::closeEditors(editorsToClose); + Core::EditorManager::closeDocuments(documentsToClose.toList()); } void QmlEngine::notifyInferiorSetupOk() diff --git a/src/plugins/debugger/sourceagent.cpp b/src/plugins/debugger/sourceagent.cpp index 957ffd1a4a..9d3a86bb77 100644 --- a/src/plugins/debugger/sourceagent.cpp +++ b/src/plugins/debugger/sourceagent.cpp @@ -77,7 +77,8 @@ SourceAgentPrivate::SourceAgentPrivate() SourceAgentPrivate::~SourceAgentPrivate() { - EditorManager::closeEditor(editor); + if (editor) + EditorManager::closeDocument(editor->document()); editor = 0; delete locationMark; } diff --git a/src/plugins/texteditor/basetexteditor_test.cpp b/src/plugins/texteditor/basetexteditor_test.cpp index bfb0fc2b73..6f3616cd50 100644 --- a/src/plugins/texteditor/basetexteditor_test.cpp +++ b/src/plugins/texteditor/basetexteditor_test.cpp @@ -149,7 +149,7 @@ void Internal::TextEditorPlugin::testBlockSelectionTransformation() } QCOMPARE(textEditor->textDocument()->plainText(), transformedText); } - Core::EditorManager::closeEditor(editor, false); + Core::EditorManager::closeDocument(editor->document(), false); } static const char text[] = @@ -364,7 +364,7 @@ void Internal::TextEditorPlugin::testBlockSelectionInsert() QCOMPARE(textEditor->textDocument()->plainText(), transformedText); } - Core::EditorManager::closeEditor(editor, false); + Core::EditorManager::closeDocument(editor->document(), false); } @@ -442,7 +442,7 @@ void Internal::TextEditorPlugin::testBlockSelectionRemove() QCOMPARE(textEditor->textDocument()->plainText(), transformedText); } - Core::EditorManager::closeEditor(editor, false); + Core::EditorManager::closeDocument(editor->document(), false); } void Internal::TextEditorPlugin::testBlockSelectionCopy_data() @@ -497,7 +497,7 @@ void Internal::TextEditorPlugin::testBlockSelectionCopy() QCOMPARE(qApp->clipboard()->text(), copiedText); } - Core::EditorManager::closeEditor(editor, false); + Core::EditorManager::closeDocument(editor->document(), false); } #endif // ifdef WITH_TESTS |
