]> git.sesse.net Git - kdenlive/blobdiff - src/timecodedisplay.cpp
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / timecodedisplay.cpp
index 93cf6d84ea2cdbe779957dcf5d8dc3c611872217..a98659ed9b832de832a8cd74608cd9db9e42ea22 100644 (file)
@@ -31,7 +31,7 @@
 #include <KColorScheme>
 #include <KRestrictedLine>
 
-TimecodeDisplay::TimecodeDisplay(Timecode t, QWidget *parent)
+TimecodeDisplay::TimecodeDisplay(const Timecode& t, QWidget *parent)
         : QAbstractSpinBox(parent),
         m_timecode(t),
         m_frametimecode(false),
@@ -72,7 +72,6 @@ void TimecodeDisplay::stepBy(int steps)
 {
     int val = m_value + steps;
     setValue(val);
-    emit editingFinished();
 }
 
 void TimecodeDisplay::setTimeCodeFormat(bool frametimecode, bool init)
@@ -97,7 +96,7 @@ void TimecodeDisplay::slotUpdateTimeCodeFormat()
     setTimeCodeFormat(KdenliveSettings::frametimecode());
 }
 
-void TimecodeDisplay::updateTimeCode(Timecode t)
+void TimecodeDisplay::updateTimeCode(const Timecode &t)
 {
     m_timecode = t;
     setTimeCodeFormat(KdenliveSettings::frametimecode());
@@ -121,14 +120,12 @@ void TimecodeDisplay::mouseReleaseEvent(QMouseEvent *e)
     }
 }
 
-/*
+
 void TimecodeDisplay::wheelEvent(QWheelEvent *e)
 {
-    if (e->delta() > 0)
-        slotValueUp();
-    else
-        slotValueDown();
-}*/
+    QAbstractSpinBox::wheelEvent(e);
+    clearFocus();
+}
 
 
 int TimecodeDisplay::maximum() const
@@ -173,18 +170,21 @@ void TimecodeDisplay::setValue(int value)
         value = m_minimum;
     if (m_maximum > m_minimum && value > m_maximum)
         value = m_maximum;
-    if (value == m_value && !lineEdit()->text().isEmpty()) return;
-    m_value = value;
 
-    if (m_frametimecode)
+    if (m_frametimecode) {
+       if (value == m_value && !lineEdit()->text().isEmpty()) return;
+       m_value = value;
         lineEdit()->setText(QString::number(value));
+    }
     else {
+       if (value == m_value && lineEdit()->text() != ":::") return;
+       m_value = value;
         QString v = m_timecode.getTimecodeFromFrames(value);
         lineEdit()->setText(v);
     }
 }
 
-void TimecodeDisplay::setValue(GenTime value)
+void TimecodeDisplay::setValue(const GenTime &value)
 {
     setValue((int) value.frames(m_timecode.fps()));
 }
@@ -195,7 +195,7 @@ void TimecodeDisplay::slotEditingFinished()
     lineEdit()->deselect();
     if (m_frametimecode) setValue(lineEdit()->text().toInt());
     else setValue(lineEdit()->text());
-    emit editingFinished();
+    emit timeCodeEditingFinished();
 }
 
 #include <timecodedisplay.moc>