From: Ed Rogalsky Date: Tue, 6 Nov 2012 16:20:28 +0000 (+0100) Subject: Merge branch 'master' into feature/pkey X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=6c819d9cd57a199efc99ec3f6a4a54eae9a232c0;hp=c2c5d4c68bb8196d1d8e1cf2a0a102f7b58c7830;p=kdenlive Merge branch 'master' into feature/pkey --- diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 57869bb2..9a53b995 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -405,6 +405,15 @@ 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) diff --git a/src/customtrackview.h b/src/customtrackview.h index 344a01a2..f4e72961 100644 --- a/src/customtrackview.h +++ b/src/customtrackview.h @@ -307,6 +307,8 @@ public slots: /** @brief Get effect parameters ready for MLT*/ static void adjustEffectParameters(EffectsParameterList ¶meters, QDomNodeList params, MltVideoProfile profile, const QString &prefix = QString()); + /** @brief Move playhead to mouse curser position if defined key is pressed */ + void slotAlignPlayheadToMousePos(); protected: virtual void drawBackground(QPainter * painter, const QRectF & rect); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 2936b538..e8126e07 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1402,6 +1402,11 @@ void MainWindow::setupActions() collection.addAction("delete_timeline_clip", deleteItem); connect(deleteItem, SIGNAL(triggered(bool)), this, SLOT(slotDeleteItem())); + KAction* alignPlayhead = new KAction(i18n("Align Playhead to Mouse Position"), this); + alignPlayhead->setShortcut(Qt::Key_P); + collection.addAction("align_playhead", alignPlayhead); + connect(alignPlayhead, SIGNAL(triggered(bool)), this, SLOT(slotAlignPlayheadToMousePos())); + /*KAction* editTimelineClipSpeed = new KAction(i18n("Change Clip Speed"), this); collection.addAction("change_clip_speed", editTimelineClipSpeed); editTimelineClipSpeed->setData("change_speed"); @@ -4581,6 +4586,10 @@ void MainWindow::slotProcessImportKeyframes(GRAPHICSRECTITEM type, const QString } } +void MainWindow::slotAlignPlayheadToMousePos() +{ + m_activeTimeline->projectView()->slotAlignPlayheadToMousePos(); +} #include "mainwindow.moc" diff --git a/src/mainwindow.h b/src/mainwindow.h index 141c7e24..acba2873 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -568,6 +568,8 @@ private slots: void slotSaveTimelineClip(); /** @brief Process keyframe data sent from a clip to effect / transition stack. */ void slotProcessImportKeyframes(GRAPHICSRECTITEM type, const QString& data, int maximum); + /** @brief Move playhead to mouse curser position if defined key is pressed */ + void slotAlignPlayheadToMousePos(); signals: Q_SCRIPTABLE void abortRenderJob(const QString &url);