summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2014-08-15 16:23:32 +0200
committerEike Ziller <eike.ziller@digia.com>2014-08-18 15:36:01 +0200
commit8a31388f4094d1d15e156475dcfa7ddf506f3228 (patch)
tree95a11f336048fb3e314dffec718444140a207719 /src/plugins
parent5a0a61bfac1708a4e4a17282502c44d8be866d51 (diff)
downloadqt-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.cpp2
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp7
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.h1
-rw-r--r--src/plugins/cpptools/cppmodelmanager_test.cpp4
-rw-r--r--src/plugins/debugger/memoryagent.cpp6
-rw-r--r--src/plugins/debugger/qml/qmlengine.cpp6
-rw-r--r--src/plugins/debugger/sourceagent.cpp3
-rw-r--r--src/plugins/texteditor/basetexteditor_test.cpp8
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