Commit 25100efb authored by Jakob Leben's avatar Jakob Leben

Qt: refactor and (again) emit currentChanged when processing new items

parent d46336c6
...@@ -350,9 +350,7 @@ QVariant PLModel::data( const QModelIndex &index, int role ) const ...@@ -350,9 +350,7 @@ QVariant PLModel::data( const QModelIndex &index, int role ) const
bool PLModel::isCurrent( const QModelIndex &index ) const bool PLModel::isCurrent( const QModelIndex &index ) const
{ {
input_thread_t *p_input_thread = THEMIM->getInput(); return getItem( index )->p_input == THEMIM->currentInputItem();
if( !p_input_thread ) return false;
return getItem( index )->p_input == input_GetItem( p_input_thread );
} }
int PLModel::itemId( const QModelIndex &index ) const int PLModel::itemId( const QModelIndex &index ) const
...@@ -621,7 +619,10 @@ void PLModel::processItemAppend( int i_item, int i_parent ) ...@@ -621,7 +619,10 @@ void PLModel::processItemAppend( int i_item, int i_parent )
PL_LOCK; PL_LOCK;
p_item = playlist_ItemGetById( p_playlist, i_item ); p_item = playlist_ItemGetById( p_playlist, i_item );
if( !p_item || p_item->i_flags & PLAYLIST_DBL_FLAG ) goto end; if( !p_item || p_item->i_flags & PLAYLIST_DBL_FLAG )
{
PL_UNLOCK; return;
}
for( pos = 0; pos < p_item->p_parent->i_children; pos++ ) for( pos = 0; pos < p_item->p_parent->i_children; pos++ )
if( p_item->p_parent->pp_children[pos] == p_item ) break; if( p_item->p_parent->pp_children[pos] == p_item ) break;
...@@ -633,10 +634,8 @@ void PLModel::processItemAppend( int i_item, int i_parent ) ...@@ -633,10 +634,8 @@ void PLModel::processItemAppend( int i_item, int i_parent )
nodeItem->insertChild( newItem, pos ); nodeItem->insertChild( newItem, pos );
endInsertRows(); endInsertRows();
return; if( newItem->p_input == THEMIM->currentInputItem() )
end: emit currentChanged( index( newItem, 0 ) );
PL_UNLOCK;
return;
} }
......
...@@ -253,6 +253,10 @@ public: ...@@ -253,6 +253,10 @@ public:
input_thread_t *getInput() { return p_input; } input_thread_t *getInput() { return p_input; }
InputManager *getIM() { return im; } InputManager *getIM() { return im; }
inline input_item_t *currentInputItem()
{
return ( p_input ? input_GetItem( p_input ) : NULL );
}
vout_thread_t* getVout(); vout_thread_t* getVout();
aout_instance_t *getAout(); aout_instance_t *getAout();
......
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