]> git.sesse.net Git - vlc/commitdiff
Qt: ooops, fix deleting playlist items by key press
authorJakob Leben <jleben@videolan.org>
Fri, 12 Feb 2010 20:35:18 +0000 (21:35 +0100)
committerJakob Leben <jleben@videolan.org>
Fri, 12 Feb 2010 20:35:18 +0000 (21:35 +0100)
modules/gui/qt4/components/playlist/standardpanel.cpp
modules/gui/qt4/components/playlist/standardpanel.hpp

index 010b520ac708b3f3cbcf4837d4ad4904eb66538d..b2a664c1c08eee7497f84f443f5b1befc3e61127 100644 (file)
@@ -288,17 +288,25 @@ void StandardPLPanel::browseInto( )
                 QModelIndex() );
 }
 
-/* Delete and Suppr key remove the selection
-   FilterKey function and code function */
-void StandardPLPanel::keyPressEvent( QKeyEvent *e )
+void StandardPLPanel::wheelEvent( QWheelEvent *e )
 {
-    switch( e->key() )
+    // Accept this event in order to prevent unwanted volume up/down changes
+    e->accept();
+}
+
+bool StandardPLPanel::eventFilter ( QObject * watched, QEvent * event )
+{
+    if (event->type() == QEvent::KeyPress)
     {
-    case Qt::Key_Back:
-    case Qt::Key_Delete:
-        deleteSelection();
-        break;
+        QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+        if( keyEvent->key() == Qt::Key_Delete ||
+            keyEvent->key() == Qt::Key_Back )
+        {
+            deleteSelection();
+            return true;
+        }
     }
+    return false;
 }
 
 void StandardPLPanel::deleteSelection()
@@ -316,7 +324,7 @@ void StandardPLPanel::createIconView()
              this, popupPlView( const QPoint & ) );
     CONNECT( iconView, activated( const QModelIndex & ),
              this, activate( const QModelIndex & ) );
-
+    iconView->installEventFilter( this );
     layout->addWidget( iconView, 1, 0, 1, -1 );
 }
 
@@ -328,7 +336,7 @@ void StandardPLPanel::createListView()
              this, popupPlView( const QPoint & ) );
     CONNECT( listView, activated( const QModelIndex & ),
              this, activate( const QModelIndex & ) );
-
+    listView->installEventFilter( this );
     layout->addWidget( listView, 1, 0, 1, -1 );
 }
 
@@ -380,6 +388,7 @@ void StandardPLPanel::createTreeView()
              this, popupSelectColumn( QPoint ) );
     CONNECT( treeView, customContextMenuRequested( const QPoint & ),
              this, popupPlView( const QPoint & ) );
+    treeView->installEventFilter( this );
 
     /* SignalMapper for columns */
     selectColumnsSigMapper = new QSignalMapper( this );
@@ -447,12 +456,6 @@ void StandardPLPanel::cycleViews()
         assert( 0 );
 }
 
-void StandardPLPanel::wheelEvent( QWheelEvent *e )
-{
-    // Accept this event in order to prevent unwanted volume up/down changes
-    e->accept();
-}
-
 void StandardPLPanel::activate( const QModelIndex &index )
 {
     if( model->hasChildren( index ) )
index d2341305d45f8b1cb2754ac15c4f9763ecc23473..1983d60c2afecdf425da20a833163cd6858df501 100644 (file)
@@ -60,9 +60,6 @@ public:
 protected:
     friend class PlaylistWidget;
 
-    virtual void keyPressEvent( QKeyEvent *e );
-    virtual void wheelEvent( QWheelEvent *e );
-
     PLModel *model;
 private:
     enum {
@@ -99,6 +96,8 @@ private:
     void createTreeView();
     void createIconView();
     void createListView();
+    void wheelEvent( QWheelEvent *e );
+    bool eventFilter ( QObject * watched, QEvent * event );
 
 public slots:
     void setRoot( playlist_item_t * );