From: Jean-Baptiste Mardelle Date: Tue, 16 Dec 2008 20:26:27 +0000 (+0000) Subject: Go to one second forward / backword: X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=1930a8bde87b38dd699e1cf8ce7761df85d9e0e1;p=kdenlive Go to one second forward / backword: http://www.kdenlive.org:80/mantis/view.php?id=479 svn path=/branches/KDE4/; revision=2798 --- diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 43d75e2d..f698c046 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -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++; } diff --git a/src/kdenliveui.rc b/src/kdenliveui.rc index 6cf97392..1a83d98b 100644 --- a/src/kdenliveui.rc +++ b/src/kdenliveui.rc @@ -1,6 +1,6 @@ - + Extra Toolbar @@ -83,6 +83,8 @@ + + diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8dd85e53..8ddcad83 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -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); diff --git a/src/monitor.cpp b/src/monitor.cpp index 74360835..4de7d7df 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -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); diff --git a/src/monitor.h b/src/monitor.h index 516c7679..3d3054ba 100644 --- a/src/monitor.h +++ b/src/monitor.h @@ -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(); diff --git a/src/monitormanager.cpp b/src/monitormanager.cpp index 36459bd0..a0ed893a 100644 --- a/src/monitormanager.cpp +++ b/src/monitormanager.cpp @@ -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(); diff --git a/src/monitormanager.h b/src/monitormanager.h index 4eea7141..4dfcd4d8 100644 --- a/src/monitormanager.h +++ b/src/monitormanager.h @@ -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();