X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=sigview.cpp;h=4097ae5c25fe1f316b4cd9359dbe44b79bd8a8cf;hb=131e801229c3cc899dd8a478d4491e384e57238e;hp=53fbdeaac148859251c7792ab726c40d6d174c4c;hpb=3b18c57d8f224791481e0b768065bd4d11a3d79e;p=pulseview.git diff --git a/sigview.cpp b/sigview.cpp index 53fbdea..4097ae5 100644 --- a/sigview.cpp +++ b/sigview.cpp @@ -23,6 +23,8 @@ #include "sigsession.h" #include "signal.h" +#include + #include using namespace boost; @@ -33,7 +35,7 @@ const int SigView::SignalHeight = 50; SigView::SigView(SigSession &session, QWidget *parent) : QGLWidget(parent), _session(session), - _scale(1000000000ULL), + _scale(1e-6), _offset(0) { connect(&_session, SIGNAL(dataUpdated()), @@ -82,3 +84,35 @@ void SigView::dataUpdated() update(); } +void SigView::mouseMoveEvent(QMouseEvent *event) +{ + assert(event); +} + +void SigView::mousePressEvent(QMouseEvent *event) +{ + assert(event); +} + +void SigView::mouseReleaseEvent(QMouseEvent *event) +{ + assert(event); + + const double cursor_offset = _offset + _scale * (double)event->x(); + + switch(event->button()) + { + case Qt::LeftButton: + _scale *= 2.0 / 3.0; + break; + + case Qt::RightButton: + _scale *= 3.0 / 2.0; + break; + } + + _offset = cursor_offset - _scale * (double)event->x(); + + updateGL(); +} +