mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-16 16:02:54 +02:00
Playlist simplification in leaf-to-parent management
This commit is contained in:
parent
65d1e78489
commit
874efde6d6
@ -109,9 +109,8 @@ TYPEDEF_ARRAY(playlist_item_t*, playlist_item_array_t)
|
||||
* - "playlist-item-deleted": It will contain the playlist_item_t->i_id of a
|
||||
* deleted playlist_item_t.
|
||||
*
|
||||
* - "leaf-to-parent": Set when an item gets subitems and is transformed to a
|
||||
* node. It will contain a pointer to the input_item_t bound to the transformed
|
||||
* playlist item.
|
||||
* - "leaf-to-parent": It will contain the playlist_item_t->i_id of an item that is transformed
|
||||
* into a node.
|
||||
*
|
||||
* The playlist contains rate-variable which is propagated to current input if available
|
||||
* also rate-slower/rate-faster is in use
|
||||
|
@ -79,8 +79,8 @@ StandardPLPanel::StandardPLPanel( PlaylistWidget *_parent,
|
||||
int i_savedViewMode = getSettings()->value( "Playlist/view-mode", TREE_VIEW ).toInt();
|
||||
showView( i_savedViewMode );
|
||||
|
||||
DCONNECT( THEMIM, leafBecameParent( input_item_t *),
|
||||
this, browseInto( input_item_t * ) );
|
||||
DCONNECT( THEMIM, leafBecameParent( int ),
|
||||
this, browseInto( int ) );
|
||||
|
||||
CONNECT( model, currentChanged( const QModelIndex& ),
|
||||
this, handleExpansion( const QModelIndex& ) );
|
||||
@ -451,20 +451,11 @@ void StandardPLPanel::activate( const QModelIndex &index )
|
||||
}
|
||||
}
|
||||
|
||||
void StandardPLPanel::browseInto( input_item_t *p_input )
|
||||
void StandardPLPanel::browseInto( int i_id )
|
||||
{
|
||||
if( p_input->i_id != lastActivatedId ) return;
|
||||
if( i_id != lastActivatedId ) return;
|
||||
|
||||
playlist_Lock( THEPL );
|
||||
|
||||
playlist_item_t *p_item = playlist_ItemGetByInput( THEPL, p_input );
|
||||
if( !p_item )
|
||||
{
|
||||
playlist_Unlock( THEPL );
|
||||
return;
|
||||
}
|
||||
|
||||
QModelIndex index = model->index( p_item->i_id, 0 );
|
||||
QModelIndex index = model->index( i_id, 0 );
|
||||
playlist_Unlock( THEPL );
|
||||
|
||||
if( currentView == treeView )
|
||||
|
@ -111,7 +111,7 @@ private slots:
|
||||
void activate( const QModelIndex & );
|
||||
|
||||
void browseInto();
|
||||
void browseInto( input_item_t * );
|
||||
void browseInto( int );
|
||||
|
||||
void gotoPlayingItem();
|
||||
|
||||
|
@ -1027,8 +1027,8 @@ void MainInputManager::customEvent( QEvent *event )
|
||||
notifyRepeatLoop();
|
||||
return;
|
||||
case LeafToParent_Type:
|
||||
imEv = static_cast<IMEvent*>( event );
|
||||
emit leafBecameParent( imEv->p_item );
|
||||
plEv = static_cast<PLEvent*>( event );
|
||||
emit leafBecameParent( plEv->i_item );
|
||||
return;
|
||||
default:
|
||||
if( type != ItemChanged_Type ) return;
|
||||
@ -1186,8 +1186,8 @@ static int LeafToParent( vlc_object_t *p_this, const char *psz_var,
|
||||
VLC_UNUSED( p_this ); VLC_UNUSED( psz_var ); VLC_UNUSED( oldval );
|
||||
MainInputManager *mim = (MainInputManager*)param;
|
||||
|
||||
IMEvent *event = new IMEvent( LeafToParent_Type,
|
||||
static_cast<input_item_t*>( newval.p_address ) );
|
||||
PLEvent *event = new PLEvent( LeafToParent_Type, newval.i_int );
|
||||
|
||||
QApplication::postEvent( mim, event );
|
||||
return VLC_SUCCESS;
|
||||
}
|
||||
|
@ -107,9 +107,13 @@ enum PLEventTypes
|
||||
class PLEvent : public QEvent
|
||||
{
|
||||
public:
|
||||
PLEvent( PLEventTypes t, int i, int p )
|
||||
: QEvent( (QEvent::Type)t ), i_item(i), i_parent(p) {}
|
||||
PLEvent( int t, int i, int p = 0 )
|
||||
: QEvent( (QEvent::Type)(t) ), i_item(i), i_parent(p) {}
|
||||
|
||||
/* Needed for "playlist-item*" and "leaf-to-parent" callbacks
|
||||
* !! Can be a input_item_t->i_id or a playlist_item_t->i_id */
|
||||
int i_item;
|
||||
// Needed for "playlist-item-append" callback, notably
|
||||
int i_parent;
|
||||
};
|
||||
|
||||
@ -290,7 +294,7 @@ signals:
|
||||
void playlistItemRemoved( int itemId );
|
||||
void randomChanged( bool );
|
||||
void repeatLoopChanged( int );
|
||||
void leafBecameParent( input_item_t * );
|
||||
void leafBecameParent( int );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -126,7 +126,7 @@ static void input_item_add_subitem_tree ( const vlc_event_t * p_event,
|
||||
pos,
|
||||
b_flat );
|
||||
|
||||
if( !b_flat ) var_SetAddress( p_playlist, "leaf-to-parent", p_input );
|
||||
if( !b_flat ) var_SetAddress( p_playlist, "leaf-to-parent", p_item->i_id );
|
||||
|
||||
//control playback only if it was the current playing item that got subitems
|
||||
if( b_current )
|
||||
|
Loading…
Reference in New Issue
Block a user