From 0ba172cf7a0cecee952ed195cf80585bfb01f831 Mon Sep 17 00:00:00 2001 From: Joel Holdsworth Date: Thu, 18 Apr 2013 22:49:50 +0100 Subject: [PATCH] Moved viewport cursor draw functions into CursorsPair --- pv/view/cursorpair.cpp | 25 +++++++++++++++++++++++++ pv/view/cursorpair.h | 7 +++++++ pv/view/viewport.cpp | 34 ++++------------------------------ pv/view/viewport.h | 5 ----- 4 files changed, 36 insertions(+), 35 deletions(-) diff --git a/pv/view/cursorpair.cpp b/pv/view/cursorpair.cpp index 7fe90c7b..a677c503 100644 --- a/pv/view/cursorpair.cpp +++ b/pv/view/cursorpair.cpp @@ -22,6 +22,10 @@ #include "view.h" +#include + +using namespace std; + namespace pv { namespace view { @@ -52,5 +56,26 @@ Cursor& CursorPair::second() return _second; } +void CursorPair::draw_viewport_background(QPainter &p, + const QRect &rect) +{ + p.setPen(Qt::NoPen); + p.setBrush(QBrush(View::CursorAreaColour)); + + const float x1 = (_first.time() - _view.offset()) / _view.scale(); + const float x2 = (_second.time() - _view.offset()) / _view.scale(); + const int l = (int)max(min(x1, x2), 0.0f); + const int r = (int)min(max(x1, x2), (float)rect.width()); + + p.drawRect(l, 0, r - l, rect.height()); +} + +void CursorPair::draw_viewport_foreground(QPainter &p, + const QRect &rect) +{ + _first.paint(p, rect); + _second.paint(p, rect); +} + } // namespace view } // namespace pv diff --git a/pv/view/cursorpair.h b/pv/view/cursorpair.h index 8c721bb6..2bf85d83 100644 --- a/pv/view/cursorpair.h +++ b/pv/view/cursorpair.h @@ -23,6 +23,8 @@ #include "cursor.h" +#include + class QPainter; namespace pv { @@ -57,6 +59,11 @@ public: */ const Cursor& second() const; +public: + void draw_viewport_background(QPainter &p, const QRect &rect); + + void draw_viewport_foreground(QPainter &p, const QRect &rect); + private: Cursor _first, _second; const View &_view; diff --git a/pv/view/viewport.cpp b/pv/view/viewport.cpp index 70282d41..7f2cedea 100644 --- a/pv/view/viewport.cpp +++ b/pv/view/viewport.cpp @@ -67,7 +67,8 @@ void Viewport::paintEvent(QPaintEvent*) QPainter p(this); p.setRenderHint(QPainter::Antialiasing); - draw_cursors_background(p); + if (_view.cursors_shown()) + _view.cursors().draw_viewport_background(p, rect()); // Plot the signal const int v_offset = _view.v_offset(); @@ -78,7 +79,8 @@ void Viewport::paintEvent(QPaintEvent*) _view.scale(), _view.offset()); } - draw_cursors_foreground(p); + if (_view.cursors_shown()) + _view.cursors().draw_viewport_foreground(p, rect()); p.end(); } @@ -119,34 +121,6 @@ void Viewport::wheelEvent(QWheelEvent *event) } } -void Viewport::draw_cursors_background(QPainter &p) -{ - if (!_view.cursors_shown()) - return; - - p.setPen(Qt::NoPen); - p.setBrush(QBrush(View::CursorAreaColour)); - - const CursorPair &c = _view.cursors(); - const float x1 = (c.first().time() - _view.offset()) / _view.scale(); - const float x2 = (c.second().time() - _view.offset()) / _view.scale(); - const int l = (int)max(min(x1, x2), 0.0f); - const int r = (int)min(max(x1, x2), (float)width()); - - p.drawRect(l, 0, r - l, height()); -} - -void Viewport::draw_cursors_foreground(QPainter &p) -{ - if (!_view.cursors_shown()) - return; - - const QRect r = rect(); - CursorPair &cursors = _view.cursors(); - cursors.first().paint(p, r); - cursors.second().paint(p, r); -} - void Viewport::on_signals_moved() { update(); diff --git a/pv/view/viewport.h b/pv/view/viewport.h index f72eee01..c15ef0a4 100644 --- a/pv/view/viewport.h +++ b/pv/view/viewport.h @@ -50,11 +50,6 @@ private: void mouseMoveEvent(QMouseEvent *event); void wheelEvent(QWheelEvent *event); -private: - void draw_cursors_background(QPainter &p); - - void draw_cursors_foreground(QPainter &p); - private slots: void on_signals_moved(); -- 2.30.2