]> git.sesse.net Git - vlc/commitdiff
Qt4: don't cache current
authorIlkka Ollakka <ileoo@videolan.org>
Thu, 24 Jun 2010 15:12:51 +0000 (18:12 +0300)
committerIlkka Ollakka <ileoo@videolan.org>
Thu, 24 Jun 2010 19:56:17 +0000 (22:56 +0300)
reverts 0455f985986b54085f3651d1cfcdc7d53efda9c7 and 7cdb0761b23277f508cefeb5dca4098c9ec4120d

modules/gui/qt4/components/playlist/playlist_model.cpp
modules/gui/qt4/components/playlist/playlist_model.hpp

index a1f1412e0a90183f302e51ee2b7fd109dea28067..38688672ae30639009c8e9dde4c21fe0cd6da45c 100644 (file)
@@ -73,7 +73,6 @@ PLModel::PLModel( playlist_t *_p_playlist,  /* THEPL */
     i_cached_input_id = -1;
     i_popup_item      = i_popup_parent = -1;
     sortingMenu       = NULL;
-    current_index     = QModelIndex();
 
     rootItem          = NULL; /* PLItem rootItem, will be set in rebuild( ) */
 
@@ -99,8 +98,6 @@ PLModel::PLModel( playlist_t *_p_playlist,  /* THEPL */
              this, processItemAppend( int, int ) );
     CONNECT( THEMIM, playlistItemRemoved( int ),
              this, processItemRemoval( int ) );
-    CONNECT( this, currentChanged( const QModelIndex &) ,
-             this, cacheCurrent( const QModelIndex &) );
 }
 
 PLModel::~PLModel()
@@ -380,7 +377,7 @@ QVariant PLModel::data( const QModelIndex &index, int role ) const
     }
     else if( role == IsCurrentsParentNodeRole )
     {
-        return QVariant( isParent( index, current_index ) );
+        return QVariant( isParent( index, currentIndex() ) );
     }
     return QVariant();
 }
@@ -402,7 +399,7 @@ bool PLModel::isParent( const QModelIndex &index, const QModelIndex &current ) c
 
 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
@@ -451,14 +448,12 @@ QModelIndex PLModel::index( PLItem *item, int column ) const
     return QModelIndex();
 }
 
-void PLModel::cacheCurrent( const QModelIndex &current )
+QModelIndex PLModel::currentIndex() const
 {
-    current_index = current;
-}
-
-QModelIndex PLModel::currentIndex()
-{
-    return current_index;
+    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 );
+    return index( item, 0 );
 }
 
 QModelIndex PLModel::parent( const QModelIndex &index ) const
@@ -703,7 +698,6 @@ void PLModel::rebuild( playlist_item_t *p_root )
 
     /* Invalidate cache */
     i_cached_id = i_cached_input_id = -1;
-    current_index = QModelIndex();
 
     if( rootItem ) rootItem->removeChildren();
 
@@ -756,7 +750,6 @@ void PLModel::removeItem( PLItem *item )
 
     i_cached_id = -1;
     i_cached_input_id = -1;
-    current_index = QModelIndex();
 
     if( item->parentItem ) {
         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;
-    current_index = QModelIndex();
 
     if( count )
     {
index 90dcf1716548b53ce2fd674d13937b75ee87612a..f6343dfebae8adca8b79c2cc1c161926f3a287c3 100644 (file)
@@ -163,7 +163,6 @@ private:
     PLItem *p_cached_item_bi;
     int i_cached_id;
     int i_cached_input_id;
-    QModelIndex current_index;
 
 private slots:
     void popupPlay();
@@ -178,7 +177,6 @@ private slots:
     void processInputItemUpdate( input_thread_t* p_input );
     void processItemRemoval( int i_id );
     void processItemAppend( int item, int parent );
-    void cacheCurrent( const QModelIndex & );
 };
 
 class PlMimeData : public QMimeData