]> git.sesse.net Git - kdenlive/commitdiff
Go to one second forward / backword:
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 16 Dec 2008 20:26:27 +0000 (20:26 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 16 Dec 2008 20:26:27 +0000 (20:26 +0000)
http://www.kdenlive.org:80/mantis/view.php?id=479

svn path=/branches/KDE4/; revision=2798

src/customtrackview.cpp
src/kdenliveui.rc
src/mainwindow.cpp
src/monitor.cpp
src/monitor.h
src/monitormanager.cpp
src/monitormanager.h

index 43d75e2db4a6b33b199ebada7478e0d743a5126c..f698c04601a50e11a72c670e6ab1915845d59511 100644 (file)
@@ -3035,7 +3035,7 @@ void CustomTrackView::slotInsertTrack(int ix) {
     d.setWindowTitle(i18n("Insert Track"));
 
     if (d.exec() == QDialog::Accepted) {
-       ix = view.track_nb->value();
+        ix = view.track_nb->value();
         if (view.before_select->currentIndex() == 1) {
             ix++;
         }
index 6cf97392b135b75222d5fee9f8efcc09f9b954c4..1a83d98bfec558de4f9fe2541e2b9fa787078ef7 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<gui name="kdenlive" version="27">
+<gui name="kdenlive" version="28">
   <ToolBar name="extraToolBar" >
     <text>Extra Toolbar</text>
        <Action name="project_render" />
@@ -83,6 +83,8 @@
       </Menu>
       <Action name="monitor_seek_backward" />
       <Action name="monitor_seek_backward-one-frame" />
+      <Action name="monitor_seek_backward-one-second" />
+      <Action name="monitor_seek_forward-one-second" />
       <Action name="monitor_seek_forward-one-frame" />
       <Action name="monitor_seek_forward" />
       <Separator />      
index 8dd85e535f2c427f60358526e80ee088dfbcceea..8ddcad83d3e7cee53818a723d02af49448af8046 100644 (file)
@@ -734,6 +734,11 @@ void MainWindow::setupActions() {
     collection->addAction("monitor_seek_backward-one-frame", monitorSeekBackwardOneFrame);
     connect(monitorSeekBackwardOneFrame, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotRewindOneFrame()));
 
+    KAction* monitorSeekBackwardOneSecond = new KAction(KIcon("media-skip-backward"), i18n("Rewind 1 Second"), this);
+    monitorSeekBackwardOneSecond->setShortcut(Qt::SHIFT + Qt::Key_Left);
+    collection->addAction("monitor_seek_backward-one-second", monitorSeekBackwardOneSecond);
+    connect(monitorSeekBackwardOneSecond, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotRewindOneSecond()));
+
     KAction* monitorSeekSnapBackward = new KAction(KIcon("media-seek-backward"), i18n("Go to Previous Snap Point"), this);
     monitorSeekSnapBackward->setShortcut(Qt::ALT + Qt::Key_Left);
     collection->addAction("monitor_seek_snap_backward", monitorSeekSnapBackward);
@@ -769,6 +774,11 @@ void MainWindow::setupActions() {
     collection->addAction("monitor_seek_forward-one-frame", monitorSeekForwardOneFrame);
     connect(monitorSeekForwardOneFrame, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotForwardOneFrame()));
 
+    KAction* monitorSeekForwardOneSecond = new KAction(KIcon("media-skip-forward"), i18n("Forward 1 Second"), this);
+    monitorSeekForwardOneSecond->setShortcut(Qt::SHIFT + Qt::Key_Right);
+    collection->addAction("monitor_seek_forward-one-second", monitorSeekForwardOneSecond);
+    connect(monitorSeekForwardOneSecond, SIGNAL(triggered(bool)), m_monitorManager, SLOT(slotForwardOneSecond()));
+
     KAction* monitorSeekSnapForward = new KAction(KIcon("media-seek-forward"), i18n("Go to Next Snap Point"), this);
     monitorSeekSnapForward->setShortcut(Qt::ALT + Qt::Key_Right);
     collection->addAction("monitor_seek_snap_forward", monitorSeekSnapForward);
index 74360835022eee1ca19e37c21ba9f6720a905504..4de7d7dfc9120f136b9ea3f52a41d839b0f72666 100644 (file)
@@ -482,22 +482,24 @@ void Monitor::slotForward(double speed) {
     m_playAction->setIcon(m_pauseIcon);
 }
 
-void Monitor::slotRewindOneFrame() {
+void Monitor::slotRewindOneFrame(int diff) {
     activateMonitor();
     render->play(0);
     if (m_position < 1) return;
-    m_position--;
+    m_position -= diff;
+    m_position = qMax(m_position, 0);
     checkOverlay();
     render->seekToFrame(m_position);
     emit renderPosition(m_position);
     m_timePos->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position));
 }
 
-void Monitor::slotForwardOneFrame() {
+void Monitor::slotForwardOneFrame(int diff) {
     activateMonitor();
     render->play(0);
     if (m_position >= m_length) return;
-    m_position++;
+    m_position += diff;
+    m_position = qMin(m_position, m_length);
     checkOverlay();
     render->seekToFrame(m_position);
     emit renderPosition(m_position);
index 516c7679f3f76cc1ca3466e49123754aef32ba84..3d3054ba453c92e2a6a459c35590acc6f619ae95 100644 (file)
@@ -136,8 +136,8 @@ public slots:
     void slotLoopZone();
     void slotForward(double speed = 0);
     void slotRewind(double speed = 0);
-    void slotRewindOneFrame();
-    void slotForwardOneFrame();
+    void slotRewindOneFrame(int diff = 1);
+    void slotForwardOneFrame(int diff = 1);
     void saveSceneList(QString path, QDomElement info = QDomElement());
     void slotStart();
     void slotEnd();
index 36459bd0e8f5da95ba3efe60f8c20dbccbabce38..a0ed893a012e1d6f92433d3b9cfd993f8221c37b 100644 (file)
@@ -97,6 +97,16 @@ void MonitorManager::slotForwardOneFrame() {
     else m_projectMonitor->slotForwardOneFrame();
 }
 
+void MonitorManager::slotRewindOneSecond() {
+    if (m_clipMonitor->isActive()) m_clipMonitor->slotRewindOneFrame(m_timecode.fps());
+    else m_projectMonitor->slotRewindOneFrame(m_timecode.fps());
+}
+
+void MonitorManager::slotForwardOneSecond() {
+    if (m_clipMonitor->isActive()) m_clipMonitor->slotForwardOneFrame(m_timecode.fps());
+    else m_projectMonitor->slotForwardOneFrame(m_timecode.fps());
+}
+
 void MonitorManager::slotStart() {
     if (m_clipMonitor->isActive()) m_clipMonitor->slotStart();
     else m_projectMonitor->slotStart();
index 4eea714128f409deedc4135b2f7a2a25984e5963..4dfcd4d8ff1a5a9e36457fcfe8f046018ca08ba3 100644 (file)
@@ -44,6 +44,8 @@ public slots:
     void slotForward(double speed = 0);
     void slotRewindOneFrame();
     void slotForwardOneFrame();
+    void slotRewindOneSecond();
+    void slotForwardOneSecond();
     void slotStart();
     void slotEnd();
     void slotResetProfiles();