void PLModel::processItemRemoval( int i_id )
{
if( i_id <= 0 ) return;
- if( i_id == i_cached_id ) i_cached_id = -1;
- i_cached_input_id = -1;
-
removeItem( i_id );
}
{
if( !item ) return;
+ if( item->i_id == i_cached_id ) i_cached_id = -1;
+ i_cached_input_id = -1;
+
if( currentItem == item )
{
currentItem = NULL;
emit currentChanged( QModelIndex() );
}
- if( item->parentItem ) item->parentItem->removeChild( item );
+ if( item->parentItem ) {
+ int i = item->parentItem->children.indexOf( item );
+ beginRemoveRows( index( item->parentItem, 0), i, i );
+ item->parentItem->children.removeAt(i);
+ delete item;
+ endRemoveRows();
+ }
else delete item;
if(item == rootItem)
else
playlist_NodeDelete( p_playlist, p_item, true, false );
PL_UNLOCK;
+
/* And finally, remove it from the tree */
- int itemIndex = item->parentItem->children.indexOf( item );
- beginRemoveRows( index( item->parentItem, 0), itemIndex, itemIndex );
removeItem( item );
- endRemoveRows();
}
/******* Volume III: Sorting and searching ********/
void recurseDelete( QList<PLItem*> children, QModelIndexList *fullList );
void doDeleteItem( PLItem *item, QModelIndexList *fullList );
void updateTreeItem( PLItem * );
+ void removeItem ( PLItem * );
void takeItem( PLItem * ); //will not delete item
void insertChildren( PLItem *node, QList<PLItem*>& items, int i_pos );
void dropAppendCopy( QByteArray& data, PLItem *target );
void dropMove( QByteArray& data, PLItem *target, int new_pos );
/* The following actions will not signal the view! */
- void removeItem ( PLItem * );
void updateChildren( PLItem * );
void updateChildren( playlist_item_t *, PLItem * );