[vlc-commits] Playlist simplification in leaf-to-parent management
Jean-Baptiste Kempf
git at videolan.org
Fri May 20 18:41:10 CEST 2011
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | 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 )
More information about the vlc-commits
mailing list