1
mirror of https://code.videolan.org/videolan/vlc synced 2024-07-25 09:41:30 +02:00

Qt4: don't cache current

reverts 0455f98598 and 7cdb0761b2
This commit is contained in:
Ilkka Ollakka 2010-06-24 18:12:51 +03:00
parent f9fe9f2944
commit eb2da50b47
2 changed files with 7 additions and 17 deletions

View File

@ -73,7 +73,6 @@ PLModel::PLModel( playlist_t *_p_playlist, /* THEPL */
i_cached_input_id = -1; i_cached_input_id = -1;
i_popup_item = i_popup_parent = -1; i_popup_item = i_popup_parent = -1;
sortingMenu = NULL; sortingMenu = NULL;
current_index = QModelIndex();
rootItem = NULL; /* PLItem rootItem, will be set in rebuild( ) */ rootItem = NULL; /* PLItem rootItem, will be set in rebuild( ) */
@ -99,8 +98,6 @@ PLModel::PLModel( playlist_t *_p_playlist, /* THEPL */
this, processItemAppend( int, int ) ); this, processItemAppend( int, int ) );
CONNECT( THEMIM, playlistItemRemoved( int ), CONNECT( THEMIM, playlistItemRemoved( int ),
this, processItemRemoval( int ) ); this, processItemRemoval( int ) );
CONNECT( this, currentChanged( const QModelIndex &) ,
this, cacheCurrent( const QModelIndex &) );
} }
PLModel::~PLModel() PLModel::~PLModel()
@ -380,7 +377,7 @@ QVariant PLModel::data( const QModelIndex &index, int role ) const
} }
else if( role == IsCurrentsParentNodeRole ) else if( role == IsCurrentsParentNodeRole )
{ {
return QVariant( isParent( index, current_index ) ); return QVariant( isParent( index, currentIndex() ) );
} }
return QVariant(); return QVariant();
} }
@ -402,7 +399,7 @@ bool PLModel::isParent( const QModelIndex &index, const QModelIndex &current ) c
bool PLModel::isCurrent( const QModelIndex &index ) const bool PLModel::isCurrent( const QModelIndex &index ) const
{ {
return index == current_index; return getItem( index )->p_input == THEMIM->currentInputItem();
} }
int PLModel::itemId( const QModelIndex &index ) const int PLModel::itemId( const QModelIndex &index ) const
@ -451,14 +448,12 @@ QModelIndex PLModel::index( PLItem *item, int column ) const
return QModelIndex(); return QModelIndex();
} }
void PLModel::cacheCurrent( const QModelIndex &current ) QModelIndex PLModel::currentIndex() const
{ {
current_index = current; input_thread_t *p_input_thread = THEMIM->getInput();
} if( !p_input_thread ) return QModelIndex();
PLItem *item = findByInput( rootItem, input_GetItem( p_input_thread )->i_id );
QModelIndex PLModel::currentIndex() return index( item, 0 );
{
return current_index;
} }
QModelIndex PLModel::parent( const QModelIndex &index ) const QModelIndex PLModel::parent( const QModelIndex &index ) const
@ -703,7 +698,6 @@ void PLModel::rebuild( playlist_item_t *p_root )
/* Invalidate cache */ /* Invalidate cache */
i_cached_id = i_cached_input_id = -1; i_cached_id = i_cached_input_id = -1;
current_index = QModelIndex();
if( rootItem ) rootItem->removeChildren(); if( rootItem ) rootItem->removeChildren();
@ -756,7 +750,6 @@ void PLModel::removeItem( PLItem *item )
i_cached_id = -1; i_cached_id = -1;
i_cached_input_id = -1; i_cached_input_id = -1;
current_index = QModelIndex();
if( item->parentItem ) { if( item->parentItem ) {
int i = item->parentItem->children.indexOf( item ); int i = item->parentItem->children.indexOf( item );
@ -879,7 +872,6 @@ void PLModel::sort( int i_root_id, int column, Qt::SortOrder order )
} }
i_cached_id = i_cached_input_id = -1; i_cached_id = i_cached_input_id = -1;
current_index = QModelIndex();
if( count ) if( count )
{ {

View File

@ -163,7 +163,6 @@ private:
PLItem *p_cached_item_bi; PLItem *p_cached_item_bi;
int i_cached_id; int i_cached_id;
int i_cached_input_id; int i_cached_input_id;
QModelIndex current_index;
private slots: private slots:
void popupPlay(); void popupPlay();
@ -178,7 +177,6 @@ private slots:
void processInputItemUpdate( input_thread_t* p_input ); void processInputItemUpdate( input_thread_t* p_input );
void processItemRemoval( int i_id ); void processItemRemoval( int i_id );
void processItemAppend( int item, int parent ); void processItemAppend( int item, int parent );
void cacheCurrent( const QModelIndex & );
}; };
class PlMimeData : public QMimeData class PlMimeData : public QMimeData