]> git.sesse.net Git - kdenlive/commitdiff
Fix setting zone when working with slow codecs
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 30 Oct 2011 22:59:32 +0000 (22:59 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 30 Oct 2011 22:59:32 +0000 (22:59 +0000)
svn path=/trunk/kdenlive/; revision=6008

src/monitor.cpp
src/smallruler.cpp
src/smallruler.h

index 6e64e829e2b8bbfeb99a2f55c5712a65c7d6715d..50727b9cd579ca6e3a50af877829ea59bbf87993 100644 (file)
@@ -428,7 +428,7 @@ void Monitor::slotZoneMoved(int start, int end)
 
 void Monitor::slotSetZoneStart()
 {
-    m_ruler->setZone(render->seekFramePosition(), -1);
+    m_ruler->setZone(m_ruler->position(), -1);
     emit zoneUpdated(m_ruler->zone());
     checkOverlay();
     setClipZone(m_ruler->zone());
@@ -436,7 +436,7 @@ void Monitor::slotSetZoneStart()
 
 void Monitor::slotSetZoneEnd()
 {
-    m_ruler->setZone(-1, render->seekFramePosition());
+    m_ruler->setZone(-1, m_ruler->position());
     emit zoneUpdated(m_ruler->zone());
     checkOverlay();
     setClipZone(m_ruler->zone());
@@ -549,7 +549,7 @@ void Monitor::slotMouseSeek(int eventDelta, bool fast)
     if (fast) {
         int delta = m_monitorManager->timecode().fps();
         if (eventDelta > 0) delta = 0 - delta;
-        slotSeek(render->seekFramePosition() - delta);
+        slotSeek(m_ruler->position() - delta);
     } else {
         if (eventDelta >= 0) slotForwardOneFrame();
         else slotRewindOneFrame();
@@ -620,7 +620,7 @@ void Monitor::slotSeek(int pos)
 void Monitor::checkOverlay()
 {
     if (m_overlay == NULL) return;
-    int pos = render->seekFramePosition();
+    int pos = m_ruler->position();
     QPoint zone = m_ruler->zone();
     if (pos == zone.x())
         m_overlay->setOverlayText(i18n("In Point"));
index c9dbf48f0a6e76b590da707388dc821d0d5149a8..bcf1893445ff004addb42ee7ba3855328e496a25 100644 (file)
@@ -140,6 +140,11 @@ bool SmallRuler::slotNewValue(int value)
     return true;
 }
 
+int SmallRuler::position() const
+{
+    return m_cursorFramePosition;
+}
+
 //virtual
 void SmallRuler::resizeEvent(QResizeEvent *)
 {
index ea506bc1046bccb634dadb89c16a0e86e31ce055..621ce75120ec013b8aabd5f808f46ed8c009e1bd 100644 (file)
@@ -37,6 +37,7 @@ public:
     void setZone(int start, int end);
     QPoint zone();
     void setMarkers(QList < int > list);
+    int position() const;
 
 protected:
     virtual void paintEvent(QPaintEvent *e);