From cdf7bea7f0eead18de2616cbfd8697ac0fffb59b Mon Sep 17 00:00:00 2001 From: Joel Holdsworth Date: Fri, 7 Sep 2012 15:24:33 +0100 Subject: [PATCH] Moved view classes into the pv::view:: namespace --- CMakeLists.txt | 8 +-- mainwindow.cpp | 4 +- mainwindow.h | 9 +++- sigview.cpp => pv/view/view.cpp | 52 ++++++++++-------- sigview.h => pv/view/view.h | 23 +++++--- sigviewport.cpp => pv/view/viewport.cpp | 70 ++++++++++++++----------- sigviewport.h => pv/view/viewport.h | 21 +++++--- 7 files changed, 109 insertions(+), 78 deletions(-) rename sigview.cpp => pv/view/view.cpp (79%) rename sigview.h => pv/view/view.h (84%) rename sigviewport.cpp => pv/view/viewport.cpp (75%) rename sigviewport.h => pv/view/viewport.h (86%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5fc8b6a2..db0d5f9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,8 +26,8 @@ set(pulseview_SOURCES signaldata.cpp sigsession.cpp signal.cpp - sigview.cpp - sigviewport.cpp + pv/view/view.cpp + pv/view/viewport.cpp ) set(pulseview_HEADERS @@ -35,8 +35,8 @@ set(pulseview_HEADERS mainwindow.h samplingbar.h sigsession.h - sigview.h - sigviewport.h + pv/view/view.h + pv/view/viewport.h ) set(pulseview_FORMS diff --git a/mainwindow.cpp b/mainwindow.cpp index 54cc39ec..21839343 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -35,7 +35,7 @@ extern "C" { #include "about.h" #include "mainwindow.h" #include "samplingbar.h" -#include "sigview.h" +#include "pv/view/view.h" extern "C" { /* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */ @@ -138,7 +138,7 @@ void MainWindow::setup_ui() _menu_view->setTitle(QApplication::translate("MainWindow", "&View", 0, QApplication::UnicodeUTF8)); _menu_help->setTitle(QApplication::translate("MainWindow", "&Help", 0, QApplication::UnicodeUTF8)); - _view = new SigView(_session, this); + _view = new pv::view::View(_session, this); _vertical_layout->addWidget(_view); } diff --git a/mainwindow.h b/mainwindow.h index 6a1e52ca..45f0b572 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -26,7 +26,12 @@ #include "sigsession.h" class SamplingBar; -class SigView; + +namespace pv { +namespace view { +class View; +} +} namespace Ui { class MainWindow; @@ -53,7 +58,7 @@ private: private: SigSession _session; - SigView *_view; + pv::view::View *_view; QAction *_action_open; QAction *_action_view_zoom_in; diff --git a/sigview.cpp b/pv/view/view.cpp similarity index 79% rename from sigview.cpp rename to pv/view/view.cpp index 4f2436cc..49b96ba3 100644 --- a/sigview.cpp +++ b/pv/view/view.cpp @@ -26,26 +26,29 @@ #include #include -#include "sigview.h" +#include "view.h" +#include "viewport.h" -#include "logicdata.h" -#include "logicdatasnapshot.h" -#include "sigsession.h" -#include "sigviewport.h" +#include "../../logicdata.h" +#include "../../logicdatasnapshot.h" +#include "../../sigsession.h" using namespace boost; using namespace std; -const double SigView::MaxScale = 1e9; -const double SigView::MinScale = 1e-15; +namespace pv { +namespace view { -const int SigView::LabelMarginWidth = 70; -const int SigView::RulerHeight = 30; +const double View::MaxScale = 1e9; +const double View::MinScale = 1e-15; -SigView::SigView(SigSession &session, QWidget *parent) : +const int View::LabelMarginWidth = 70; +const int View::RulerHeight = 30; + +View::View(SigSession &session, QWidget *parent) : QAbstractScrollArea(parent), _session(session), - _viewport(new SigViewport(*this)), + _viewport(new Viewport(*this)), _data_length(0), _scale(1e-6), _offset(0), @@ -60,27 +63,27 @@ SigView::SigView(SigSession &session, QWidget *parent) : setViewport(_viewport); } -double SigView::scale() const +double View::scale() const { return _scale; } -double SigView::offset() const +double View::offset() const { return _offset; } -int SigView::v_offset() const +int View::v_offset() const { return _v_offset; } -void SigView::zoom(double steps) +void View::zoom(double steps) { zoom(steps, (width() - LabelMarginWidth) / 2); } -void SigView::set_scale_offset(double scale, double offset) +void View::set_scale_offset(double scale, double offset) { _scale = scale; _offset = offset; @@ -88,7 +91,7 @@ void SigView::set_scale_offset(double scale, double offset) _viewport->update(); } -void SigView::update_scroll() +void View::update_scroll() { assert(_viewport); @@ -114,7 +117,7 @@ void SigView::update_scroll() _viewport->get_total_height() - areaSize.height()); } -void SigView::zoom(double steps, int offset) +void View::zoom(double steps, int offset) { const double cursor_offset = _offset + _scale * offset; _scale *= pow(3.0/2.0, -steps); @@ -124,7 +127,7 @@ void SigView::zoom(double steps, int offset) update_scroll(); } -bool SigView::viewportEvent(QEvent *e) +bool View::viewportEvent(QEvent *e) { switch(e->type()) { case QEvent::Paint: @@ -140,24 +143,24 @@ bool SigView::viewportEvent(QEvent *e) } } -void SigView::resizeEvent(QResizeEvent *e) +void View::resizeEvent(QResizeEvent *e) { update_scroll(); } -void SigView::h_scroll_value_changed(int value) +void View::h_scroll_value_changed(int value) { _offset = _scale * value; _viewport->update(); } -void SigView::v_scroll_value_changed(int value) +void View::v_scroll_value_changed(int value) { _v_offset = value; _viewport->update(); } -void SigView::data_updated() +void View::data_updated() { // Get the new data length _data_length = 0; @@ -177,3 +180,6 @@ void SigView::data_updated() // Repaint the view _viewport->update(); } + +} // namespace view +} // namespace pv diff --git a/sigview.h b/pv/view/view.h similarity index 84% rename from sigview.h rename to pv/view/view.h index cc7b78af..3c76c8ee 100644 --- a/sigview.h +++ b/pv/view/view.h @@ -18,17 +18,21 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef SIGVIEW_H -#define SIGVIEW_H +#ifndef PV_VIEW_VIEW_H +#define PV_VIEW_VIEW_H #include #include class SigSession; -class SigViewport; -class SigView : public QAbstractScrollArea { +namespace pv { +namespace view { + +class Viewport; + +class View : public QAbstractScrollArea { Q_OBJECT private: @@ -39,7 +43,7 @@ private: static const int RulerHeight; public: - explicit SigView(SigSession &session, QWidget *parent = 0); + explicit View(SigSession &session, QWidget *parent = 0); double scale() const; double offset() const; @@ -68,7 +72,7 @@ private slots: private: SigSession &_session; - SigViewport *_viewport; + Viewport *_viewport; uint64_t _data_length; @@ -77,7 +81,10 @@ private: int _v_offset; - friend class SigViewport; + friend class Viewport; }; -#endif // SIGVIEW_H +} // namespace view +} // namespace pv + +#endif // PV_VIEW_VIEW_H diff --git a/sigviewport.cpp b/pv/view/viewport.cpp similarity index 75% rename from sigviewport.cpp rename to pv/view/viewport.cpp index 6bb0d00e..572e38b1 100644 --- a/sigviewport.cpp +++ b/pv/view/viewport.cpp @@ -18,13 +18,13 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "sigviewport.h" +#include "view.h" +#include "viewport.h" -#include "sigsession.h" -#include "signal.h" -#include "sigview.h" +#include "../../sigsession.h" +#include "../../signal.h" -#include "extdef.h" +#include "../../extdef.h" #include #include @@ -36,16 +36,19 @@ using namespace boost; using namespace std; -const int SigViewport::SignalHeight = 50; +namespace pv { +namespace view { -const int SigViewport::MinorTickSubdivision = 4; -const int SigViewport::ScaleUnits[3] = {1, 2, 5}; +const int Viewport::SignalHeight = 50; -const QString SigViewport::SIPrefixes[9] = +const int Viewport::MinorTickSubdivision = 4; +const int Viewport::ScaleUnits[3] = {1, 2, 5}; + +const QString Viewport::SIPrefixes[9] = {"f", "p", "n", QChar(0x03BC), "m", "", "k", "M", "G"}; -const int SigViewport::FirstSIPrefixPower = -15; +const int Viewport::FirstSIPrefixPower = -15; -SigViewport::SigViewport(SigView &parent) : +Viewport::Viewport(View &parent) : QGLWidget(&parent), _view(parent) { @@ -53,7 +56,7 @@ SigViewport::SigViewport(SigView &parent) : setAutoFillBackground(false); } -int SigViewport::get_total_height() const +int Viewport::get_total_height() const { int height = 0; BOOST_FOREACH(const shared_ptr s, @@ -65,16 +68,16 @@ int SigViewport::get_total_height() const return height; } -void SigViewport::initializeGL() +void Viewport::initializeGL() { } -void SigViewport::resizeGL(int width, int height) +void Viewport::resizeGL(int width, int height) { setup_viewport(width, height); } -void SigViewport::paintEvent(QPaintEvent *event) +void Viewport::paintEvent(QPaintEvent *event) { int offset; @@ -93,14 +96,14 @@ void SigViewport::paintEvent(QPaintEvent *event) // Plot the signal glEnable(GL_SCISSOR_TEST); - glScissor(SigView::LabelMarginWidth, 0, width(), height()); - offset = SigView::RulerHeight - _view.v_offset(); + glScissor(View::LabelMarginWidth, 0, width(), height()); + offset = View::RulerHeight - _view.v_offset(); BOOST_FOREACH(const shared_ptr s, sigs) { assert(s); - const QRect signal_rect(SigView::LabelMarginWidth, offset, - width() - SigView::LabelMarginWidth, SignalHeight); + const QRect signal_rect(View::LabelMarginWidth, offset, + width() - View::LabelMarginWidth, SignalHeight); s->paint(*this, signal_rect, _view.scale(), _view.offset()); @@ -117,13 +120,13 @@ void SigViewport::paintEvent(QPaintEvent *event) painter.setRenderHint(QPainter::Antialiasing); // Paint the labels - offset = SigView::RulerHeight - _view.v_offset(); + offset = View::RulerHeight - _view.v_offset(); BOOST_FOREACH(const shared_ptr s, sigs) { assert(s); const QRect label_rect(0, offset, - SigView::LabelMarginWidth, SignalHeight); + View::LabelMarginWidth, SignalHeight); s->paint_label(painter, label_rect); offset += SignalHeight; @@ -135,7 +138,7 @@ void SigViewport::paintEvent(QPaintEvent *event) painter.end(); } -void SigViewport::mousePressEvent(QMouseEvent *event) +void Viewport::mousePressEvent(QMouseEvent *event) { assert(event); @@ -143,7 +146,7 @@ void SigViewport::mousePressEvent(QMouseEvent *event) _mouse_down_offset = _view.offset(); } -void SigViewport::mouseMoveEvent(QMouseEvent *event) +void Viewport::mouseMoveEvent(QMouseEvent *event) { assert(event); @@ -156,19 +159,19 @@ void SigViewport::mouseMoveEvent(QMouseEvent *event) } } -void SigViewport::mouseReleaseEvent(QMouseEvent *event) +void Viewport::mouseReleaseEvent(QMouseEvent *event) { assert(event); } -void SigViewport::wheelEvent(QWheelEvent *event) +void Viewport::wheelEvent(QWheelEvent *event) { assert(event); _view.zoom(event->delta() / 120, event->x() - - SigView::LabelMarginWidth); + View::LabelMarginWidth); } -void SigViewport::setup_viewport(int width, int height) +void Viewport::setup_viewport(int width, int height) { glViewport(0, 0, (GLint)width, (GLint)height); glMatrixMode(GL_PROJECTION); @@ -177,7 +180,7 @@ void SigViewport::setup_viewport(int width, int height) glMatrixMode(GL_MODELVIEW); } -void SigViewport::paint_ruler(QPainter &p) +void Viewport::paint_ruler(QPainter &p) { const double MinSpacing = 80; @@ -217,7 +220,7 @@ void SigViewport::paint_ruler(QPainter &p) { const double t = t0 + division * minor_tick_period; const double x = (t - _view.offset()) / _view.scale() + - SigView::LabelMarginWidth; + View::LabelMarginWidth; if(x >= width()) break; @@ -230,16 +233,19 @@ void SigViewport::paint_ruler(QPainter &p) ts << (t / order_decimal) << SIPrefixes[prefix] << "s"; p.drawText(x, 0, 0, text_height, Qt::AlignCenter | Qt::AlignTop | Qt::TextDontClip, s); - p.drawLine(x, text_height, x, SigView::RulerHeight); + p.drawLine(x, text_height, x, View::RulerHeight); } else { // Draw a minor tick p.drawLine(x, - (text_height + SigView::RulerHeight) / 2, x, - SigView::RulerHeight); + (text_height + View::RulerHeight) / 2, x, + View::RulerHeight); } division++; } } + +} // namespace view +} // namespace pv diff --git a/sigviewport.h b/pv/view/viewport.h similarity index 86% rename from sigviewport.h rename to pv/view/viewport.h index 12f6b7c5..46bf2733 100644 --- a/sigviewport.h +++ b/pv/view/viewport.h @@ -18,8 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef SIGVIEWPORT_H -#define SIGVIEWPORT_H +#ifndef PV_VIEW_VIEWPORT_H +#define PV_VIEW_VIEWPORT_H #include #include @@ -27,9 +27,13 @@ class QPainter; class QPaintEvent; class SigSession; -class SigView; -class SigViewport : public QGLWidget +namespace pv { +namespace view { + +class View; + +class Viewport : public QGLWidget { Q_OBJECT @@ -43,7 +47,7 @@ private: static const int FirstSIPrefixPower; public: - explicit SigViewport(SigView &parent); + explicit Viewport(View &parent); int get_total_height() const; @@ -66,10 +70,13 @@ private: void paint_ruler(QPainter &p); private: - SigView &_view; + View &_view; QPoint _mouse_down_point; double _mouse_down_offset; }; -#endif // SIGVIEWPORT_H +} // namespace view +} // namespace pv + +#endif // PV_VIEW_VIEWPORT_H -- 2.30.2