]> git.sesse.net Git - kdenlive/commitdiff
Merge branch 'master' into feature/pkey
authorEd Rogalsky <ed.rogalsky@googlemail.com>
Sat, 3 Nov 2012 17:53:21 +0000 (18:53 +0100)
committerEd Rogalsky <ed.rogalsky@googlemail.com>
Sat, 3 Nov 2012 17:53:21 +0000 (18:53 +0100)
src/customtrackview.cpp
src/customtrackview.h
src/mainwindow.cpp
src/mainwindow.h

index a259b787ae6200ec905e0d7abf107a48d5937475..166990f43d1800f24ed9f65835884050cce9308b 100644 (file)
@@ -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)
index 344a01a25565a91df13512c9eb0a641fc19978b9..f4e729611b8fc470a3a05055a3990f7306e77977 100644 (file)
@@ -307,6 +307,8 @@ public slots:
 
     /** @brief Get effect parameters ready for MLT*/
     static void adjustEffectParameters(EffectsParameterList &parameters, 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);
index 2936b538703ba00cc22e593364ddfd8481e86d51..e8126e0755542159d5baa820280f351033d13f91 100644 (file)
@@ -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"
 
index 141c7e246621c8ab7819631d95086a3e4f17cba0..acba2873dcc8e3dfa3ed21188db0b26c82b2eb36 100644 (file)
@@ -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);