X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.cpp;h=166990f43d1800f24ed9f65835884050cce9308b;hb=b8684fb22577d9e5b19944d814840187690b51c2;hp=eeeba309a5b50eb217499f9244fc6fd4157e2aac;hpb=50e2d39f24a5a78a0e076757c841dca7bc236fb5;p=kdenlive diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index eeeba309..166990f4 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -405,13 +405,21 @@ void CustomTrackView::slotCheckPositionScrolling() } } +void CustomTrackView::slotAlignPlayheadToMousePos() +{ + /* get curser point ref in screen coord */ + QPoint ps = QCursor::pos(); + /* get xPos in scene coord */ + int mappedXPos = qMax((int)(mapToScene(mapFromGlobal(ps)).x() + 0.5), 0); + /* move playhead to new xPos*/ + seekCursorPos(mappedXPos); +} // virtual void CustomTrackView::mouseMoveEvent(QMouseEvent * event) { int pos = event->x(); int mappedXPos = qMax((int)(mapToScene(event->pos()).x() + 0.5), 0); - double snappedPos = getSnapPointForPos(mappedXPos); emit mousePosition(mappedXPos); @@ -598,11 +606,8 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) if (m_tool == RAZORTOOL) { setCursor(m_razorCursor); - //QGraphicsView::mouseMoveEvent(event); - //return; } else if (m_tool == SPACERTOOL) { setCursor(m_spacerCursor); - return; } QList itemList = items(event->pos()); @@ -611,12 +616,18 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) if (itemList.count() == 1 && itemList.at(0)->type() == GUIDEITEM) { opMode = MOVEGUIDE; + setCursor(Qt::SplitHCursor); } else for (int i = 0; i < itemList.count(); i++) { - if (itemList.at(i)->type() == AVWIDGET || itemList.at(i)->type() == TRANSITIONWIDGET) { - item = (QGraphicsRectItem*) itemList.at(i); - break; - } - } + if (itemList.at(i)->type() == AVWIDGET || itemList.at(i)->type() == TRANSITIONWIDGET) { + item = (QGraphicsRectItem*) itemList.at(i); + break; + } + } + + if (m_tool == SPACERTOOL) { + event->accept(); + return; + } if (item && event->buttons() == Qt::NoButton) { AbstractClipItem *clip = static_cast (item); @@ -712,7 +723,6 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) return; } else if (opMode == MOVEGUIDE) { m_moveOpMode = opMode; - setCursor(Qt::SplitHCursor); } else { removeTipAnimation(); setCursor(Qt::ArrowCursor); @@ -884,7 +894,6 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) // No item under click if (m_dragItem == NULL || m_tool == SPACERTOOL) { resetSelectionGroup(false); - setCursor(Qt::ArrowCursor); m_scene->clearSelection(); //event->accept(); updateClipTypeActions(NULL); @@ -957,6 +966,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) } m_operationMode = SPACER; } else { + setCursor(Qt::ArrowCursor); seekCursorPos((int)(mapToScene(event->x(), 0).x())); } QGraphicsView::mousePressEvent(event); @@ -1023,7 +1033,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) if (selected == false) { m_dragItem = NULL; } - groupSelectedItems(); + groupSelectedItems(QList (), false, false, true); if (m_dragItem) { ClipItem *clip = static_cast (m_dragItem); updateClipTypeActions(dragGroup == NULL ? clip : NULL); @@ -3502,8 +3512,8 @@ void CustomTrackView::checkScrolling() void CustomTrackView::mouseReleaseEvent(QMouseEvent * event) { if (m_moveOpMode == SEEK) m_moveOpMode = NONE; - if (m_moveOpMode == SCROLLTIMELINE) { - m_moveOpMode = NONE; + if (m_operationMode == SCROLLTIMELINE) { + m_operationMode = NONE; setDragMode(QGraphicsView::NoDrag); QGraphicsView::mouseReleaseEvent(event); return; @@ -4421,7 +4431,7 @@ void CustomTrackView::doGroupClips(QList clipInfos, QList //clip->setSelected(true); } } - groupSelectedItems(list, false, true); + groupSelectedItems(list, false, true, true); setDocumentModified(); } @@ -5695,6 +5705,16 @@ void CustomTrackView::slotDeleteAllGuides() void CustomTrackView::setTool(PROJECTTOOL tool) { m_tool = tool; + switch (m_tool) { + case RAZORTOOL: + setCursor(m_razorCursor); + break; + case SPACERTOOL: + setCursor(m_spacerCursor); + break; + default: + unsetCursor(); + } } void CustomTrackView::setScale(double scaleFactor, double verticalScale) @@ -7070,6 +7090,7 @@ void CustomTrackView::slotSelectTrack(int ix) void CustomTrackView::slotSelectClipsInTrack() { QRectF rect(0, m_selectedTrack * m_tracksHeight + m_tracksHeight / 2, sceneRect().width(), m_tracksHeight / 2 - 1); + resetSelectionGroup(); QList selection = m_scene->items(rect); m_scene->clearSelection(); QList list; @@ -7078,22 +7099,14 @@ void CustomTrackView::slotSelectClipsInTrack() list.append(selection.at(i)); } } - resetSelectionGroup(); - groupSelectedItems(list); + groupSelectedItems(list, false, false, true); } void CustomTrackView::slotSelectAllClips() { m_scene->clearSelection(); resetSelectionGroup(); - QList 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(); + groupSelectedItems(m_scene->items(), false, false, true); } void CustomTrackView::selectClip(bool add, bool group, int track, int pos) @@ -7646,7 +7659,7 @@ void CustomTrackView::slotImportClipKeyframes(GRAPHICSRECTITEM type) result.append(';'); } } - emit importKeyframes(type, result); + emit importKeyframes(type, result, ui.limit_keyframes->isChecked() ? ui.max_keyframes->value() : -1); delete d; }