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)
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;
}*/
// 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) );