]> git.sesse.net Git - kdenlive/blobdiff - src/customruler.cpp
Resetting an effect should not loose the filter id
[kdenlive] / src / customruler.cpp
index 57c2920841802f811de5d69ab022bb9300e94754..901622bb0bbb562eefa858cf4ef64e45f7a79fa3 100644 (file)
@@ -91,23 +91,36 @@ CustomRuler::CustomRuler(Timecode tc, QWidget *parent)
 void CustomRuler::mousePressEvent ( QMouseEvent * event )
 {
   int pos = event->x();
-  slotNewValue( pos, true );
-  kDebug()<<pos;
+  slotMoveCursor( pos, true );
 }
 
 // virtual
 void CustomRuler::mouseMoveEvent ( QMouseEvent * event )
 {
   int pos = event->x();
-  slotNewValue( pos, true );
-  kDebug()<<pos;
+  slotMoveCursor( pos, true );
 }
 
+void CustomRuler::slotMoveRuler(int newPos)
+{
+  int diff = offset() - newPos;
+  KRuler::slotNewOffset(newPos);
+  KRuler::slotNewValue(value() + diff);
+}
+
+void CustomRuler::slotMoveCursor( int _value, bool emitSignal )
+{
+  KRuler::slotNewValue(_value );
+  m_cursorPosition= (_value + offset()) / pixelPerMark();
+  if (emitSignal) emit cursorMoved(m_cursorPosition / FRAME_SIZE);
+}
+
+
 void CustomRuler::slotNewValue ( int _value, bool emitSignal )
 {
-  m_cursorPosition = _value / pixelPerMark();
+  m_cursorPosition= _value / pixelPerMark();
   if (emitSignal) emit cursorMoved(m_cursorPosition / FRAME_SIZE);
-  KRuler::slotNewValue(_value);
+  KRuler::slotNewValue(_value * pixelPerMark() - offset());
 }
 
 void CustomRuler::setPixelPerMark (double rate)
@@ -126,10 +139,9 @@ void CustomRuler::paintEvent(QPaintEvent * /*e*/)
    QStylePainter p(this);
 
  
-   int value  = this->value(),
-     minval = minimum(),
-     maxval;
-     maxval = maximum() + offset() - endOffset();
+   int value  = this->value();
+   int minval = minimum();
+   int maxval = maximum() + offset() - endOffset();
 
      //ioffsetval = value-offset;
      //    pixelpm = (int)ppm;
@@ -219,7 +231,7 @@ void CustomRuler::paintEvent(QPaintEvent * /*e*/)
    }*/
  
    // draw pointer
-   if (showPointer()) {
+   if (showPointer() && value > 0) {
      QPolygon pa(4);
        pa.setPoints(3, value-6, 9, value+6, 9, value/*+0*/, 16);
      p.setBrush( QBrush(Qt::yellow) );