Revert "EditorManager: Fix crash when closing an editor upon activation"

Deleting an editor while currentEditorChanged is apparently not a good
idea.
Use a queued connection instead.

This reverts commits 243a625961,
447c4ed37f,
d9602ca550 and
3103487038.

Change-Id: Iccbee25fb77714963faa6f7184d1f5f53ed348a6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Orgad Shaneh
2013-10-08 13:02:52 +03:00
committed by Orgad Shaneh
parent 171fd691c3
commit f47c101b8b
16 changed files with 46 additions and 69 deletions

View File

@@ -31,7 +31,6 @@
#include "cppcompletionassist.h"
#include "cppmodelmanager.h"
#include <coreplugin/plugintestutils.h>
#include <texteditor/plaintexteditor.h>
#include <texteditor/codeassist/iassistproposal.h>
#include <texteditor/convenience.h>
@@ -92,7 +91,7 @@ public:
~CompletionTestCase()
{
Core::Tests::closeAndDeleteEditor(editor);
EditorManager::closeEditor(editor, /*askAboutModifiedEditors=*/ false);
cmm->GC();
QVERIFY(cmm->snapshot().isEmpty());
}

View File

@@ -30,7 +30,7 @@
#include "cpptoolsplugin.h"
#include "cpptoolsreuse.h"
#include <coreplugin/plugintestutils.h>
#include <coreplugin/testdatadir.h>
#include <QDir>
#include <QtTest>
@@ -46,7 +46,7 @@ void CppToolsPlugin::test_headersource()
QFETCH(QString, headerFileName);
bool wasHeader;
Core::Tests::TestDataDir dataDir(
Core::Internal::Tests::TestDataDir dataDir(
_(SRCDIR "/../../../tests/cppheadersource/") + _(QTest::currentDataTag()));
const QString sourcePath = dataDir.file(sourceFileName);

View File

@@ -36,7 +36,7 @@
#include "cppmodelmanager.h"
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/plugintestutils.h>
#include <coreplugin/testdatadir.h>
#include <extensionsystem/pluginmanager.h>
#include <locator/locatorfiltertest.h>
#include <utils/fileutils.h>
@@ -46,6 +46,7 @@
#include <QtTest>
using namespace Core;
using namespace Core::Internal::Tests;
using namespace CppTools::Internal;
using namespace ExtensionSystem;
using namespace Locator;
@@ -57,7 +58,7 @@ Q_DECLARE_METATYPE(ILocatorFilter *)
namespace {
class MyTestDataDir : public Core::Tests::TestDataDir
class MyTestDataDir : public Core::Internal::Tests::TestDataDir
{
public:
MyTestDataDir(const QString &testDataDirectory)
@@ -124,7 +125,8 @@ private:
virtual void doAfterLocatorRun()
{
Core::Tests::closeAndDeleteEditor(m_editor);
EditorManager::closeEditor(m_editor, /*askAboutModifiedEditors=*/ false);
QCoreApplication::processEvents();
QVERIFY(EditorManager::documentModel()->openedDocuments().isEmpty());
m_modelManager->GC();
QVERIFY(m_modelManager->snapshot().isEmpty());

View File

@@ -33,7 +33,7 @@
#include "modelmanagertesthelper.h"
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/plugintestutils.h>
#include <coreplugin/testdatadir.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/session.h>
#include <utils/hostosinfo.h>
@@ -62,7 +62,7 @@ namespace {
inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); }
class MyTestDataDir : public Core::Tests::TestDataDir
class MyTestDataDir : public Core::Internal::Tests::TestDataDir
{
public:
MyTestDataDir(const QString &dir)
@@ -723,7 +723,7 @@ void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed()
helper.waitForRefreshedSourceFiles();
// Close file/editor
Core::Tests::closeAndDeleteEditor(editor);
Core::EditorManager::closeEditor(editor, /*askAboutModifiedEditors=*/ false);
helper.waitForFinishedGc();
// Check: File is removed from the snapshpt
@@ -760,7 +760,7 @@ void CppToolsPlugin::test_modelmanager_dont_gc_opened_files()
QVERIFY(mm->snapshot().contains(file));
// Close editor
Core::Tests::closeAndDeleteEditor(editor);
Core::EditorManager::closeEditor(editor);
helper.waitForFinishedGc();
QVERIFY(mm->snapshot().isEmpty());
}
@@ -772,7 +772,7 @@ struct EditorCloser {
~EditorCloser()
{
if (editor)
Core::Tests::closeAndDeleteEditor(editor);
Core::EditorManager::closeEditor(editor);
}
};

View File

@@ -33,7 +33,7 @@
#include "cppmodelmanager.h"
#include "searchsymbols.h"
#include <coreplugin/plugintestutils.h>
#include <coreplugin/testdatadir.h>
#include <utils/runextensions.h>
#include <QtTest>
@@ -43,7 +43,7 @@ using namespace CppTools::Internal;
namespace {
class MyTestDataDir : public Core::Tests::TestDataDir
class MyTestDataDir : public Core::Internal::Tests::TestDataDir
{
public:
MyTestDataDir(const QString &testDataDirectory)