]> git.sesse.net Git - kdenlive/commitdiff
Delete selected effect instead of clip when effect stack has focus:
authorTill Theato <root@ttill.de>
Sat, 22 May 2010 07:45:27 +0000 (07:45 +0000)
committerTill Theato <root@ttill.de>
Sat, 22 May 2010 07:45:27 +0000 (07:45 +0000)
http://kdenlive.org/mantis/view.php?id=1496

svn path=/trunk/kdenlive/; revision=4468

src/mainwindow.cpp

index 036e98fcb190e57d39436c4cdba4172cff9b2832..e9a896760c55ab966d5b53ee2cf17cada2e0922a 100644 (file)
@@ -2229,17 +2229,19 @@ void MainWindow::slotDeleteItem()
             && QApplication::focusWidget()->parentWidget()->parentWidget() == m_projectListDock) {
         m_projectList->slotRemoveClip();
 
-    } else if (QApplication::focusWidget()
-               && QApplication::focusWidget()->parentWidget()
-               && QApplication::focusWidget()->parentWidget()->parentWidget()
-               && QApplication::focusWidget()->parentWidget()->parentWidget()->parentWidget()
-               && QApplication::focusWidget()->parentWidget()->parentWidget()->parentWidget()->parentWidget()
-               && QApplication::focusWidget()->parentWidget()->parentWidget()->parentWidget()->parentWidget() == m_effectStackDock) {
-        // TODO: also delete effect when an effect widget (slider, geomtryval, ...) has focus
-        m_effectStack->slotItemDel();
-
-    } else if (m_activeTimeline) {
-        m_activeTimeline->projectView()->deleteSelectedClips();
+    } else {
+        QWidget *widget = QApplication::focusWidget();
+        while (widget) {
+            if (widget == m_effectStackDock) {
+                m_effectStack->slotItemDel();
+                return;
+            }
+            widget = widget->parentWidget();
+        }
+
+        // effect stack has no focus
+        if (m_activeTimeline)
+            m_activeTimeline->projectView()->deleteSelectedClips();
     }
 }