Commit 906e7c0b authored by Ilkka Ollakka's avatar Ilkka Ollakka

qt4: selector take2 to fix service discoveries

should fix #3112 again ;) . Playlist still has issue to crash if current item is
destroyed, but thats different issue
parent 2e50c820
...@@ -82,21 +82,23 @@ void PLSelector::setSource( QTreeWidgetItem *item ) ...@@ -82,21 +82,23 @@ void PLSelector::setSource( QTreeWidgetItem *item )
if( !playlist_IsServicesDiscoveryLoaded( THEPL, qtu( qs ) ) ) if( !playlist_IsServicesDiscoveryLoaded( THEPL, qtu( qs ) ) )
{ {
playlist_ServicesDiscoveryAdd( THEPL, qtu( qs ) ); playlist_ServicesDiscoveryAdd( THEPL, qtu( qs ) );
#warning FIXME
playlist_item_t *pl_item =
THEPL->p_root_category->pp_children[THEPL->p_root_category->i_children-1];
item->setData( 0, PPL_ITEM_ROLE, QVariant::fromValue( pl_item ) );
emit activated( pl_item );
return;
} }
} }
if( i_type == SD_TYPE ) if( i_type == SD_TYPE )
msg_Dbg( p_intf, "SD already loaded, reloading" ); msg_Dbg( p_intf, "SD already loaded, reloading" );
playlist_item_t *pl_item = playlist_Lock( THEPL );
item->data( 0, PPL_ITEM_ROLE ).value<playlist_item_t *>(); playlist_item_t *pl_item = NULL;
if( i_type == SD_TYPE )
pl_item = playlist_ChildSearchName( THEPL->p_root_category, qtu( item->data(0, LONGNAME_ROLE ).toString() ) );
else if ( i_type == PL_TYPE )
pl_item = THEPL->p_local_category;
else if ( i_type == ML_TYPE )
pl_item = THEPL->p_ml_category;
playlist_Unlock( THEPL );
if( pl_item ) if( pl_item )
emit activated( pl_item ); emit activated( pl_item );
} }
...@@ -135,6 +137,7 @@ void PLSelector::createItems() ...@@ -135,6 +137,7 @@ void PLSelector::createItems()
sd_item = new QTreeWidgetItem( QStringList( qfu(*ppsz_longname) ) ); sd_item = new QTreeWidgetItem( QStringList( qfu(*ppsz_longname) ) );
sd_item->setData( 0, TYPE_ROLE, SD_TYPE ); sd_item->setData( 0, TYPE_ROLE, SD_TYPE );
sd_item->setData( 0, NAME_ROLE, qfu( *ppsz_name ) ); sd_item->setData( 0, NAME_ROLE, qfu( *ppsz_name ) );
sd_item->setData( 0, LONGNAME_ROLE, qfu( *ppsz_longname ) );
sd_item->setFlags( sd_item->flags() & ~Qt::ItemIsDropEnabled ); sd_item->setFlags( sd_item->flags() & ~Qt::ItemIsDropEnabled );
sds->addChild( sd_item ); sds->addChild( sd_item );
free( *ppsz_name ); free( *ppsz_name );
......
...@@ -48,6 +48,7 @@ enum { ...@@ -48,6 +48,7 @@ enum {
TYPE_ROLE = Qt::UserRole, TYPE_ROLE = Qt::UserRole,
PPL_ITEM_ROLE, PPL_ITEM_ROLE,
NAME_ROLE, NAME_ROLE,
LONGNAME_ROLE,
}; };
Q_DECLARE_METATYPE( playlist_item_t *); Q_DECLARE_METATYPE( playlist_item_t *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment