]> git.sesse.net Git - kdenlive/commitdiff
Fix select all in timeline and scrolling with ctrl+click:http://kdenlive.org/mantis...
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 30 Oct 2012 09:36:45 +0000 (10:36 +0100)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 30 Oct 2012 09:36:45 +0000 (10:36 +0100)
src/customtrackview.cpp
src/definitions.h

index 84952f9bc9d3aeb10347f8103c766f77a425bead..eeeba309a5b50eb217499f9244fc6fd4157e2aac 100644 (file)
@@ -415,6 +415,11 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
     double snappedPos = getSnapPointForPos(mappedXPos);
     emit mousePosition(mappedXPos);
 
+    if (m_operationMode == SCROLLTIMELINE) {
+       QGraphicsView::mouseMoveEvent(event);
+       return;
+    }
+
     if (event->buttons() & Qt::MidButton) return;
     if (dragMode() == QGraphicsView::RubberBandDrag || (event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL && m_operationMode != RESIZESTART && m_operationMode != RESIZEEND)) {
         event->setAccepted(true);
@@ -770,9 +775,9 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event)
     if (event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL && collisionList.count() == 0) {
         // Pressing Ctrl + left mouse button in an empty area scrolls the timeline
         setDragMode(QGraphicsView::ScrollHandDrag);
-        QGraphicsView::mousePressEvent(event);
         m_blockRefresh = false;
-        m_operationMode = NONE;
+        m_operationMode = SCROLLTIMELINE;
+       QGraphicsView::mousePressEvent(event);
         return;
     }
 
@@ -3497,8 +3502,15 @@ void CustomTrackView::checkScrolling()
 void CustomTrackView::mouseReleaseEvent(QMouseEvent * event)
 {
     if (m_moveOpMode == SEEK) m_moveOpMode = NONE;
+    if (m_moveOpMode == SCROLLTIMELINE) {
+       m_moveOpMode = NONE;
+       setDragMode(QGraphicsView::NoDrag);
+       QGraphicsView::mouseReleaseEvent(event);
+       return;
+    }
     if (!m_controlModifier && m_operationMode != RUBBERSELECTION) {
        //event->accept();
+       setDragMode(QGraphicsView::NoDrag);
        if (m_clipDrag) QGraphicsView::mouseReleaseEvent(event);
     }
     m_clipDrag = false;
@@ -7072,10 +7084,16 @@ void CustomTrackView::slotSelectClipsInTrack()
 
 void CustomTrackView::slotSelectAllClips()
 {
-    QList<QGraphicsItem *> selection = m_scene->items();
     m_scene->clearSelection();
     resetSelectionGroup();
-    groupSelectedItems(selection);
+    QList<QGraphicsItem *> selection = m_scene->items();
+    for (int i = 0; i < selection.count(); i++) {
+       int type = selection.at(i)->type();
+       if (type == AVWIDGET || type == TRANSITIONWIDGET || type == GROUPWIDGET) {
+           selection.at(i)->setSelected(true);
+       }
+    }
+    groupSelectedItems();
 }
 
 void CustomTrackView::selectClip(bool add, bool group, int track, int pos)
index 74e79bc7172581beabbb5215f950342cfd788c8a..b525a77fe2cea48d4859c1c7c96717e6118b160a 100644 (file)
@@ -40,7 +40,7 @@ namespace Kdenlive {
   const QString stopmotionMonitor("stopmotionMonitor");*/
 }
 
-enum OPERATIONTYPE { NONE = 0, MOVE = 1, RESIZESTART = 2, RESIZEEND = 3, FADEIN = 4, FADEOUT = 5, TRANSITIONSTART = 6, TRANSITIONEND = 7, MOVEGUIDE = 8, KEYFRAME = 9, SEEK = 10, SPACER = 11, RUBBERSELECTION = 12};
+enum OPERATIONTYPE { NONE = 0, MOVE = 1, RESIZESTART = 2, RESIZEEND = 3, FADEIN = 4, FADEOUT = 5, TRANSITIONSTART = 6, TRANSITIONEND = 7, MOVEGUIDE = 8, KEYFRAME = 9, SEEK = 10, SPACER = 11, RUBBERSELECTION = 12, SCROLLTIMELINE = 13};
 enum CLIPTYPE { UNKNOWN = 0, AUDIO = 1, VIDEO = 2, AV = 3, COLOR = 4, IMAGE = 5, TEXT = 6, SLIDESHOW = 7, VIRTUAL = 8, PLAYLIST = 9 };
 
 enum PROJECTITEMTYPE { PROJECTCLIPTYPE = QTreeWidgetItem::UserType, PROJECTFOLDERTYPE, PROJECTSUBCLIPTYPE };