1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-08 07:07:05 +02:00

* Don't crash when removing page in history.

This commit is contained in:
Christian Muehlhaeuser
2012-07-01 02:20:09 +02:00
parent 7f5c78ec9f
commit faadb41054

View File

@@ -571,7 +571,7 @@ ViewManager::historyBack()
return; return;
ViewPage* page = m_pageHistoryBack.takeLast(); ViewPage* page = m_pageHistoryBack.takeLast();
if ( m_currentPage ) if ( m_currentPage )
{ {
m_pageHistoryFwd << m_currentPage; m_pageHistoryFwd << m_currentPage;
@@ -590,7 +590,7 @@ ViewManager::historyForward()
return; return;
ViewPage* page = m_pageHistoryFwd.takeLast(); ViewPage* page = m_pageHistoryFwd.takeLast();
if ( m_currentPage ) if ( m_currentPage )
{ {
m_pageHistoryBack << m_currentPage; m_pageHistoryBack << m_currentPage;
@@ -616,14 +616,7 @@ ViewManager::destroyPage( ViewPage* page )
return; return;
tDebug() << Q_FUNC_INFO << "Deleting page:" << page->title(); tDebug() << Q_FUNC_INFO << "Deleting page:" << page->title();
if ( m_currentPage == page ) if ( historyPages().contains( page ) )
{
delete page;
m_currentPage = 0;
historyBack();
}
else if ( historyPages().contains( page ) )
{ {
m_pageHistoryBack.removeAll( page ); m_pageHistoryBack.removeAll( page );
m_pageHistoryFwd.removeAll( page ); m_pageHistoryFwd.removeAll( page );
@@ -633,6 +626,13 @@ ViewManager::destroyPage( ViewPage* page )
delete 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_dynamicWidgets.remove( dynamicPlaylistForInterface( page->playlistInterface() ) );
} }
m_pageHistoryBack.removeAll( page ); m_pageHistoryBack.removeAll( page );
m_pageHistoryFwd.removeAll( page ); m_pageHistoryFwd.removeAll( page );
} }