From faadb41054951e51e2a7634631c62869f7d51ad2 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Sun, 1 Jul 2012 02:20:09 +0200 Subject: [PATCH] * Don't crash when removing page in history. --- src/libtomahawk/ViewManager.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/libtomahawk/ViewManager.cpp b/src/libtomahawk/ViewManager.cpp index 81601a5fe..a010b16fb 100644 --- a/src/libtomahawk/ViewManager.cpp +++ b/src/libtomahawk/ViewManager.cpp @@ -571,7 +571,7 @@ ViewManager::historyBack() return; ViewPage* page = m_pageHistoryBack.takeLast(); - + if ( m_currentPage ) { m_pageHistoryFwd << m_currentPage; @@ -590,7 +590,7 @@ ViewManager::historyForward() return; ViewPage* page = m_pageHistoryFwd.takeLast(); - + if ( m_currentPage ) { m_pageHistoryBack << m_currentPage; @@ -616,14 +616,7 @@ ViewManager::destroyPage( ViewPage* page ) return; tDebug() << Q_FUNC_INFO << "Deleting page:" << page->title(); - if ( m_currentPage == page ) - { - delete page; - m_currentPage = 0; - - historyBack(); - } - else if ( historyPages().contains( page ) ) + if ( historyPages().contains( page ) ) { m_pageHistoryBack.removeAll( page ); m_pageHistoryFwd.removeAll( page ); @@ -633,6 +626,13 @@ ViewManager::destroyPage( ViewPage* page ) delete page; } + + if ( m_currentPage == page ) + { + m_currentPage = 0; + + historyBack(); + } } @@ -868,7 +868,7 @@ ViewManager::onWidgetDestroyed( QWidget* widget ) { m_dynamicWidgets.remove( dynamicPlaylistForInterface( page->playlistInterface() ) ); } - + m_pageHistoryBack.removeAll( page ); m_pageHistoryFwd.removeAll( page ); }