vlc | branch: master | Jean-Baptiste Kempf <[email protected]> | Fri May 20 18:21:21 2011 +0200| [874efde6d6888434ce369c833830ba09c01a0daf] | committer: Jean-Baptiste Kempf
Playlist simplification in leaf-to-parent management > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=874efde6d6888434ce369c833830ba09c01a0daf --- include/vlc_playlist.h | 5 ++--- .../gui/qt4/components/playlist/standardpanel.cpp | 19 +++++-------------- .../gui/qt4/components/playlist/standardpanel.hpp | 2 +- modules/gui/qt4/input_manager.cpp | 8 ++++---- modules/gui/qt4/input_manager.hpp | 10 +++++++--- src/playlist/item.c | 2 +- 6 files changed, 20 insertions(+), 26 deletions(-) diff --git a/include/vlc_playlist.h b/include/vlc_playlist.h index de907db..96b9e63 100644 --- a/include/vlc_playlist.h +++ b/include/vlc_playlist.h @@ -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 diff --git a/modules/gui/qt4/components/playlist/standardpanel.cpp b/modules/gui/qt4/components/playlist/standardpanel.cpp index 1e52992..8f9e6db 100644 --- a/modules/gui/qt4/components/playlist/standardpanel.cpp +++ b/modules/gui/qt4/components/playlist/standardpanel.cpp @@ -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 ) diff --git a/modules/gui/qt4/components/playlist/standardpanel.hpp b/modules/gui/qt4/components/playlist/standardpanel.hpp index 14c0791..6b936a0 100644 --- a/modules/gui/qt4/components/playlist/standardpanel.hpp +++ b/modules/gui/qt4/components/playlist/standardpanel.hpp @@ -111,7 +111,7 @@ private slots: void activate( const QModelIndex & ); void browseInto(); - void browseInto( input_item_t * ); + void browseInto( int ); void gotoPlayingItem(); diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp index f541992..5a2b8d0 100644 --- a/modules/gui/qt4/input_manager.cpp +++ b/modules/gui/qt4/input_manager.cpp @@ -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; } diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp index db9db7e..f7533d9 100644 --- a/modules/gui/qt4/input_manager.hpp +++ b/modules/gui/qt4/input_manager.hpp @@ -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 diff --git a/src/playlist/item.c b/src/playlist/item.c index 0de77a5..faf3191 100644 --- a/src/playlist/item.c +++ b/src/playlist/item.c @@ -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 ) _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
