From abe58a77ccedeb74d4d6617c536508a82829b0cc Mon Sep 17 00:00:00 2001 From: mae <qt-info@nokia.com> Date: Fri, 5 Jun 2009 15:41:57 +0200 Subject: [PATCH] clear navigation history when switching sessions --- .../coreplugin/editormanager/editormanager.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index c3933ad1098..b8ddd1bc134 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -165,6 +165,10 @@ struct EditorManagerPrivate { QList<IEditor *> m_editorHistory; QList<EditLocation *> m_navigationHistory; + void clearNavigationHistory() { + qDeleteAll(m_navigationHistory); + m_navigationHistory.clear(); + } int currentNavigationHistoryPosition; Internal::OpenEditorsWindow *m_windowPopup; Core::BaseView *m_openEditorsView; @@ -205,8 +209,7 @@ EditorManagerPrivate::EditorManagerPrivate(ICore *core, QWidget *parent) : EditorManagerPrivate::~EditorManagerPrivate() { - qDeleteAll(m_navigationHistory); - m_navigationHistory.clear(); + clearNavigationHistory(); } EditorManager *EditorManager::m_instance = 0; @@ -654,7 +657,11 @@ QList<IFile *> EditorManager::filesForEditors(QList<IEditor *> editors) const bool EditorManager::closeAllEditors(bool askAboutModifiedEditors) { m_d->m_editorModel->removeAllRestoredEditors(); - return closeEditors(openedEditors(), askAboutModifiedEditors); + if (closeEditors(openedEditors(), askAboutModifiedEditors)) { + m_d->clearNavigationHistory(); + return true; + } + return false; } void EditorManager::closeOtherEditors() -- GitLab