forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -2364,7 +2364,7 @@ public:
|
|||||||
|
|
||||||
~TestCase()
|
~TestCase()
|
||||||
{
|
{
|
||||||
Core::EditorManager::closeEditor(m_editor, false);
|
Core::EditorManager::closeDocument(m_editor->document(), false);
|
||||||
QCoreApplication::processEvents(); // process any pending events
|
QCoreApplication::processEvents(); // process any pending events
|
||||||
|
|
||||||
QFile file(m_fileName);
|
QFile file(m_fileName);
|
||||||
|
|||||||
@@ -1576,7 +1576,7 @@ void EditorManagerPrivate::closeEditorFromContextMenu()
|
|||||||
{
|
{
|
||||||
IDocument *document = d->m_contextMenuEntry ? d->m_contextMenuEntry->document : 0;
|
IDocument *document = d->m_contextMenuEntry ? d->m_contextMenuEntry->document : 0;
|
||||||
if (document)
|
if (document)
|
||||||
EditorManager::closeEditors(DocumentModel::editorsForDocument(document));
|
EditorManager::closeDocument(document);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorManagerPrivate::closeOtherDocumentsFromContextMenu()
|
void EditorManagerPrivate::closeOtherDocumentsFromContextMenu()
|
||||||
@@ -2327,6 +2327,11 @@ QList<IEditor*> EditorManager::visibleEditors()
|
|||||||
return editors;
|
return editors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool EditorManager::closeDocument(IDocument *document, bool askAboutModifiedEditors)
|
||||||
|
{
|
||||||
|
return closeDocuments(QList<IDocument *>() << document, askAboutModifiedEditors);
|
||||||
|
}
|
||||||
|
|
||||||
bool EditorManager::closeDocuments(const QList<IDocument *> &document, bool askAboutModifiedEditors)
|
bool EditorManager::closeDocuments(const QList<IDocument *> &document, bool askAboutModifiedEditors)
|
||||||
{
|
{
|
||||||
return m_instance->closeEditors(DocumentModel::editorsForDocuments(document), askAboutModifiedEditors);
|
return m_instance->closeEditors(DocumentModel::editorsForDocuments(document), askAboutModifiedEditors);
|
||||||
|
|||||||
@@ -132,6 +132,7 @@ public:
|
|||||||
static void activateEditorForEntry(DocumentModel::Entry *entry, OpenEditorFlags flags = 0);
|
static void activateEditorForEntry(DocumentModel::Entry *entry, OpenEditorFlags flags = 0);
|
||||||
static IEditor *activateEditorForDocument(IDocument *document, 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 bool closeDocuments(const QList<IDocument *> &documents, bool askAboutModifiedEditors = true);
|
||||||
static void closeDocument(DocumentModel::Entry *entry);
|
static void closeDocument(DocumentModel::Entry *entry);
|
||||||
static void closeOtherDocuments(IDocument *document);
|
static void closeOtherDocuments(IDocument *document);
|
||||||
|
|||||||
@@ -730,7 +730,7 @@ void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed()
|
|||||||
helper.waitForRefreshedSourceFiles();
|
helper.waitForRefreshedSourceFiles();
|
||||||
|
|
||||||
// Close file/editor
|
// Close file/editor
|
||||||
Core::EditorManager::closeEditor(editor, /*askAboutModifiedEditors=*/ false);
|
Core::EditorManager::closeDocument(editor->document(), /*askAboutModifiedEditors=*/ false);
|
||||||
helper.waitForFinishedGc();
|
helper.waitForFinishedGc();
|
||||||
|
|
||||||
// Check: File is removed from the snapshpt
|
// Check: File is removed from the snapshpt
|
||||||
@@ -769,7 +769,7 @@ void CppToolsPlugin::test_modelmanager_dont_gc_opened_files()
|
|||||||
QVERIFY(mm->snapshot().contains(file));
|
QVERIFY(mm->snapshot().contains(file));
|
||||||
|
|
||||||
// Close editor
|
// Close editor
|
||||||
Core::EditorManager::closeEditor(editor);
|
Core::EditorManager::closeDocument(editor->document());
|
||||||
helper.waitForFinishedGc();
|
helper.waitForFinishedGc();
|
||||||
QVERIFY(mm->snapshot().isEmpty());
|
QVERIFY(mm->snapshot().isEmpty());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,11 +104,11 @@ void MemoryAgent::closeEditors()
|
|||||||
if (m_editors.isEmpty())
|
if (m_editors.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QList<IEditor *> editors;
|
QSet<IDocument *> documents;
|
||||||
foreach (QPointer<IEditor> editor, m_editors)
|
foreach (QPointer<IEditor> editor, m_editors)
|
||||||
if (editor)
|
if (editor)
|
||||||
editors.append(editor.data());
|
documents.insert(editor->document());
|
||||||
EditorManager::closeEditors(editors);
|
EditorManager::closeDocuments(documents.toList());
|
||||||
m_editors.clear();
|
m_editors.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -340,15 +340,15 @@ QmlEngine::QmlEngine(const DebuggerStartParameters &startParameters, DebuggerEng
|
|||||||
|
|
||||||
QmlEngine::~QmlEngine()
|
QmlEngine::~QmlEngine()
|
||||||
{
|
{
|
||||||
QList<Core::IEditor *> editorsToClose;
|
QSet<Core::IDocument *> documentsToClose;
|
||||||
|
|
||||||
QHash<QString, QWeakPointer<TextEditor::BaseTextEditor> >::iterator iter;
|
QHash<QString, QWeakPointer<TextEditor::BaseTextEditor> >::iterator iter;
|
||||||
for (iter = m_sourceEditors.begin(); iter != m_sourceEditors.end(); ++iter) {
|
for (iter = m_sourceEditors.begin(); iter != m_sourceEditors.end(); ++iter) {
|
||||||
QWeakPointer<TextEditor::BaseTextEditor> textEditPtr = iter.value();
|
QWeakPointer<TextEditor::BaseTextEditor> textEditPtr = iter.value();
|
||||||
if (textEditPtr)
|
if (textEditPtr)
|
||||||
editorsToClose << textEditPtr.data();
|
documentsToClose << textEditPtr.data()->document();
|
||||||
}
|
}
|
||||||
Core::EditorManager::closeEditors(editorsToClose);
|
Core::EditorManager::closeDocuments(documentsToClose.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlEngine::notifyInferiorSetupOk()
|
void QmlEngine::notifyInferiorSetupOk()
|
||||||
|
|||||||
@@ -77,7 +77,8 @@ SourceAgentPrivate::SourceAgentPrivate()
|
|||||||
|
|
||||||
SourceAgentPrivate::~SourceAgentPrivate()
|
SourceAgentPrivate::~SourceAgentPrivate()
|
||||||
{
|
{
|
||||||
EditorManager::closeEditor(editor);
|
if (editor)
|
||||||
|
EditorManager::closeDocument(editor->document());
|
||||||
editor = 0;
|
editor = 0;
|
||||||
delete locationMark;
|
delete locationMark;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ void Internal::TextEditorPlugin::testBlockSelectionTransformation()
|
|||||||
}
|
}
|
||||||
QCOMPARE(textEditor->textDocument()->plainText(), transformedText);
|
QCOMPARE(textEditor->textDocument()->plainText(), transformedText);
|
||||||
}
|
}
|
||||||
Core::EditorManager::closeEditor(editor, false);
|
Core::EditorManager::closeDocument(editor->document(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char text[] =
|
static const char text[] =
|
||||||
@@ -364,7 +364,7 @@ void Internal::TextEditorPlugin::testBlockSelectionInsert()
|
|||||||
|
|
||||||
QCOMPARE(textEditor->textDocument()->plainText(), transformedText);
|
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);
|
QCOMPARE(textEditor->textDocument()->plainText(), transformedText);
|
||||||
}
|
}
|
||||||
Core::EditorManager::closeEditor(editor, false);
|
Core::EditorManager::closeDocument(editor->document(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Internal::TextEditorPlugin::testBlockSelectionCopy_data()
|
void Internal::TextEditorPlugin::testBlockSelectionCopy_data()
|
||||||
@@ -497,7 +497,7 @@ void Internal::TextEditorPlugin::testBlockSelectionCopy()
|
|||||||
|
|
||||||
QCOMPARE(qApp->clipboard()->text(), copiedText);
|
QCOMPARE(qApp->clipboard()->text(), copiedText);
|
||||||
}
|
}
|
||||||
Core::EditorManager::closeEditor(editor, false);
|
Core::EditorManager::closeDocument(editor->document(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // ifdef WITH_TESTS
|
#endif // ifdef WITH_TESTS
|
||||||
|
|||||||
Reference in New Issue
Block a user