Exemple #1
0
void
ViewManager::onWidgetDestroyed( QWidget* widget )
{
    qDebug() << "Destroyed child:" << widget << widget->metaObject()->className();

    bool resetWidget = ( m_stack->currentWidget() == widget );

    for ( int i = 0; i < m_pageHistory.count(); i++ )
    {
        ViewPage* page = m_pageHistory.at( i );
        if ( page->widget() != widget )
            continue;

        if ( !playlistForInterface( page->playlistInterface() ).isNull() )
        {
            m_playlistViews.remove( playlistForInterface( page->playlistInterface() ) );
        }
        if ( !dynamicPlaylistForInterface( page->playlistInterface() ).isNull() )
        {
            m_dynamicWidgets.remove( dynamicPlaylistForInterface( page->playlistInterface() ) );
        }

        if ( page->widget() == widget && !resetWidget )
        {
            m_pageHistory.removeAt( i );
        }
    }

    m_stack->removeWidget( widget );

    if ( resetWidget )
    {
        historyBack();
    }
}
Exemple #2
0
void
ViewManager::historyBack()
{
    if ( m_pageHistory.count() < 2 )
        return;

    ViewPage* oldPage = m_pageHistory.takeFirst();
    ViewPage* newPage = m_pageHistory.first();

    tDebug() << "Deleting page in history:" << oldPage->widget()->metaObject()->className();
    tDebug() << "Showing page after moving backwards in history:" << newPage->widget()->metaObject()->className();
    setPage( newPage, false );

//    delete oldPage;
}
Exemple #3
0
void
ViewManager::onWidgetDestroyed( QWidget* widget )
{
    tDebug() << "Destroyed child:" << widget << widget->metaObject()->className();

    bool resetWidget = ( m_stack->currentWidget() == widget );

    QList< Tomahawk::ViewPage* > p = historyPages();
    for ( int i = 0; i < p.count(); i++ )
    {
        ViewPage* page = p.at( i );
        if ( page->widget() != widget )
            continue;

        if ( !playlistForInterface( page->playlistInterface() ).isNull() )
        {
            m_playlistViews.remove( playlistForInterface( page->playlistInterface() ) );
        }
        if ( !dynamicPlaylistForInterface( page->playlistInterface() ).isNull() )
        {
            m_dynamicWidgets.remove( dynamicPlaylistForInterface( page->playlistInterface() ) );
        }
        
        m_pageHistoryBack.removeAll( page );
        m_pageHistoryFwd.removeAll( page );
    }

    m_stack->removeWidget( widget );

    if ( resetWidget )
    {
        m_currentPage = 0;
        historyBack();
    }
}
Exemple #4
0
void
ViewManager::historyBack()
{
    ViewPage* oldPage = m_pageHistory.takeFirst();

    ViewPage* newPage = m_pageHistory.first();
    qDebug() << "Showing page after moving backwards in history:" << newPage->widget()->metaObject()->className();
    setPage( newPage, false );

    delete oldPage;
}
Exemple #5
0
void
ViewManager::showHistory( int historyPosition )
{
    if ( historyPosition < 0 || historyPosition >= m_pageHistory.count() )
    {
        qDebug() << "History position out of bounds!" << historyPosition << m_pageHistory.count();
        Q_ASSERT( false );
        return;
    }

    setHistoryPosition( historyPosition );
    ViewPage* page = m_pageHistory.at( historyPosition );
    qDebug() << "Showing page after a deleting:" << page->widget()->metaObject()->className();
    setPage( page, false );
}
Exemple #6
0
void
ViewManager::historyForward()
{
    if ( !m_pageHistoryFwd.count() )
        return;

    ViewPage* page = m_pageHistoryFwd.takeLast();

    if ( m_currentPage )
    {
        m_pageHistoryBack << m_currentPage;
        tDebug() << "Moved to backward history:" << m_currentPage->widget()->metaObject()->className();
    }

    tDebug() << "Showing page after moving forwards in history:" << page->widget()->metaObject()->className();
    setPage( page, false );
}