1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-21 08:19:42 +01:00

update the playlistview when a playlist is renamed, fixes TWK-168

This commit is contained in:
Leo Franchi 2011-05-19 17:29:58 -04:00
parent b37127858f
commit e9b991e4c0
5 changed files with 26 additions and 5 deletions

View File

@ -138,6 +138,7 @@ DynamicWidget::loadDynamicPlaylist( const Tomahawk::dynplaylist_ptr& playlist )
disconnect( m_playlist.data(), SIGNAL( dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision) ), this, SLOT(onRevisionLoaded( Tomahawk::DynamicPlaylistRevision) ) );
disconnect( m_playlist->generator().data(), SIGNAL( error( QString, QString ) ), this, SLOT( generatorError( QString, QString ) ) );
disconnect( m_playlist.data(), SIGNAL( deleted( Tomahawk::dynplaylist_ptr ) ), this, SLOT( onDeleted() ) );
disconnect( m_playlist.data(), SIGNAL( changed() ), this, SLOT( onChanged() ) );
}
@ -165,6 +166,7 @@ DynamicWidget::loadDynamicPlaylist( const Tomahawk::dynplaylist_ptr& playlist )
connect( m_playlist.data(), SIGNAL( dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision ) ), this, SLOT( onRevisionLoaded( Tomahawk::DynamicPlaylistRevision ) ) );
connect( m_playlist->generator().data(), SIGNAL( error( QString, QString ) ), this, SLOT( generatorError( QString, QString ) ) );
connect( m_playlist.data(), SIGNAL( deleted( Tomahawk::dynplaylist_ptr ) ), this, SLOT( onDeleted() ) );
connect( m_playlist.data(), SIGNAL( changed() ), this, SLOT( onChanged() ) );
}
@ -418,3 +420,10 @@ DynamicWidget::onDeleted()
emit destroyed( widget() );
deleteLater();
}
void
DynamicWidget::onChanged()
{
if( !m_playlist.isNull() )
emit nameChanged( m_playlist->title() );
}

View File

@ -95,6 +95,7 @@ public slots:
void tracksAdded();
signals:
void nameChanged( const QString& name );
void descriptionChanged( const QString& caption );
void destroyed( QWidget* widget );
@ -109,6 +110,7 @@ private slots:
void layoutFloatingWidgets();
void onDeleted();
void onChanged();
private:
dynplaylist_ptr m_playlist;

View File

@ -74,6 +74,7 @@ PlaylistView::setPlaylistModel( PlaylistModel* model )
connect( m_model, SIGNAL( trackCountChanged( unsigned int ) ), SLOT( onTrackCountChanged( unsigned int ) ) );
connect( m_model, SIGNAL( playlistDeleted() ), SLOT( onDeleted() ) );
connect( m_model->playlist().data(), SIGNAL( changed() ), SLOT( onChanged() ) );
}
@ -181,3 +182,10 @@ PlaylistView::onDeleted()
emit destroyed( widget() );
deleteLater();
}
void
PlaylistView::onChanged()
{
if ( m_model && !m_model->playlist().isNull() )
emit nameChanged( m_model->playlist()->title() );
}

View File

@ -54,6 +54,7 @@ public:
virtual bool jumpToCurrentTrack();
signals:
void nameChanged( const QString& title );
void destroyed( QWidget* widget );
protected:
@ -67,6 +68,7 @@ private slots:
void deleteItems();
void onDeleted();
void onChanged();
private:
void setupMenus();

View File

@ -158,10 +158,10 @@ ViewManager::createPageForPlaylist( const playlist_ptr& pl )
PlaylistView* view = new PlaylistView();
PlaylistModel* model = new PlaylistModel();
model->loadPlaylist( pl );
view->setPlaylistModel( model );
view->setFrameShape( QFrame::NoFrame );
view->setAttribute( Qt::WA_MacShowFocusRect, 0 );
model->loadPlaylist( pl );
pl->resolve();
m_playlistViews.insert( pl, view );
@ -626,10 +626,10 @@ ViewManager::setPage( ViewPage* page, bool trackHistory )
// if the signal exists (just to hide the qobject runtime warning...)
if( obj->metaObject()->indexOfSignal( "descriptionChanged(QString)" ) > -1 )
connect( obj, SIGNAL( descriptionChanged( QString ) ), m_infobar, SLOT( setDescription( QString ) ), Qt::UniqueConnection );
}
if ( QObject* obj = dynamic_cast< QObject* >( currentPage() ) )
{
// if the signal exists (just to hide the qobject runtime warning...)
if( obj->metaObject()->indexOfSignal( "nameChanged(QString)" ) > -1 )
connect( obj, SIGNAL( nameChanged( QString ) ), m_infobar, SLOT( setCaption( QString ) ), Qt::UniqueConnection );
if( obj->metaObject()->indexOfSignal( "destroyed(QWidget*)" ) > -1 )
connect( obj, SIGNAL( destroyed( QWidget* ) ), SLOT( onWidgetDestroyed( QWidget* ) ), Qt::UniqueConnection );
}