]> git.sesse.net Git - vlc/commitdiff
qt4: selector: switch source on single click
authorJakob Leben <jleben@videolan.org>
Sun, 6 Sep 2009 23:39:42 +0000 (01:39 +0200)
committerJakob Leben <jleben@videolan.org>
Sun, 6 Sep 2009 23:39:42 +0000 (01:39 +0200)
modules/gui/qt4/components/playlist/selector.cpp

index 9f8097aa95c121ff1858c733f7e17755205d6ecb..a89c1cd20e81a54c5ab251a4da5f9a0418051364 100644 (file)
@@ -54,12 +54,15 @@ PLSelector::PLSelector( QWidget *p, intf_thread_t *_p_intf )
 //    view->setDropIndicatorShown(true);
 
     createItems();
-    CONNECT( view, itemActivated( QTreeWidgetItem *, int ),
-             this, setSource( QTreeWidgetItem *) );
-    /* I believe this is unnecessary, seeing
-       QStyle::SH_ItemView_ActivateItemOnSingleClick
-        CONNECT( view, itemClicked( QTreeWidgetItem *, int ),
+    /* CONNECT( view, itemActivated( QTreeWidgetItem *, int ),
              this, setSource( QTreeWidgetItem *) ); */
+    /* I believe this is unnecessary, seeing
+       QStyle::SH_ItemView_ActivateItemOnSingleClick */
+    /* <jleben> No, you can only make custom styles by creating whole new
+       or subclassing an existing QStyle.
+       Connecting itemClicked signal is easier, of course */
+    CONNECT( view, itemClicked( QTreeWidgetItem *, int ),
+          this, setSource( QTreeWidgetItem *) );
 
     QVBoxLayout *layout = new QVBoxLayout;
     layout->setSpacing( 0 ); layout->setMargin( 0 );
@@ -75,7 +78,10 @@ void PLSelector::setSource( QTreeWidgetItem *item )
     if( !item )
         return;
 
-    int i_type = item->data( 0, TYPE_ROLE ).toInt();
+    QVariant type = item->data( 0, TYPE_ROLE );
+    if( type == QVariant() ) return;
+
+    int i_type = type.toInt();
 
     assert( ( i_type == PL_TYPE || i_type == ML_TYPE || i_type == SD_TYPE ) );
     if( i_type == SD_TYPE )