]> sigrok.org Git - pulseview.git/commitdiff
Replaced std::pair<Cursor, Cursor> with CursorPair
authorJoel Holdsworth <redacted>
Thu, 18 Apr 2013 21:25:36 +0000 (22:25 +0100)
committerJoel Holdsworth <redacted>
Thu, 18 Apr 2013 21:49:25 +0000 (22:49 +0100)
CMakeLists.txt
pv/view/cursor.h
pv/view/cursorpair.cpp [new file with mode: 0644]
pv/view/cursorpair.h [new file with mode: 0644]
pv/view/ruler.cpp
pv/view/view.cpp
pv/view/view.h
pv/view/viewport.cpp

index 2d9ec8f2ff76fd9260d6315e2d4a641c3f399064..7bc13e05da62379b2c6e82497b60efbe198048fe 100644 (file)
@@ -121,6 +121,7 @@ set(pulseview_SOURCES
        pv/toolbars/samplingbar.cpp
        pv/view/analogsignal.cpp
        pv/view/cursor.cpp
+       pv/view/cursorpair.cpp
        pv/view/header.cpp
        pv/view/logicsignal.cpp
        pv/view/ruler.cpp
index be779c00ef18a2da86303f4b39759dd969a12ce2..2bedb5e9336b45518dd54514b6a3062945667d57 100644 (file)
@@ -48,7 +48,7 @@ private:
 public:
        /**
         * Constructor.
-        * @param colour A reference to the colour of this cursor.
+        * @param view A reference to the view that owns this cursor pair.
         * @param time The time to set the flag to.
         */
        Cursor(const View &view, double time);
diff --git a/pv/view/cursorpair.cpp b/pv/view/cursorpair.cpp
new file mode 100644 (file)
index 0000000..7fe90c7
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#include "cursorpair.h"
+
+#include "view.h"
+
+namespace pv {
+namespace view {
+
+CursorPair::CursorPair(const View &view) :
+       _first(view, 0.0),
+       _second(view, 1.0),
+       _view(view)
+{
+}
+
+const Cursor& CursorPair::first() const
+{
+       return _first;
+}
+
+Cursor& CursorPair::first()
+{
+       return _first;
+}
+
+const Cursor& CursorPair::second() const
+{
+       return _second;
+}
+
+Cursor& CursorPair::second()
+{
+       return _second;
+}
+
+} // namespace view
+} // namespace pv
diff --git a/pv/view/cursorpair.h b/pv/view/cursorpair.h
new file mode 100644 (file)
index 0000000..8c721bb
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_CURSORPAIR_H
+#define PULSEVIEW_PV_VIEW_CURSORPAIR_H
+
+#include "cursor.h"
+
+class QPainter;
+
+namespace pv {
+namespace view {
+
+class CursorPair
+{
+public:
+       /**
+        * Constructor.
+        * @param view A reference to the view that owns this cursor pair.
+        */
+       CursorPair(const View &view);
+
+       /**
+        * Returns a reference to the first cursor.
+        */
+       Cursor& first();
+
+       /**
+        * Returns a reference to the first cursor.
+        */
+       const Cursor& first() const;
+
+       /**
+        * Returns a reference to the second cursor.
+        */
+       Cursor& second();
+
+       /**
+        * Returns a reference to the second cursor.
+        */
+       const Cursor& second() const;
+
+private:
+       Cursor _first, _second;
+       const View &_view;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_CURSORPAIR_H
index 9e639383942ed1149702f9e369b16452a46eba1f..0322af8a611e1ad9520b854e2cbae0b7ec39ad81 100644 (file)
@@ -186,14 +186,13 @@ void Ruler::mousePressEvent(QMouseEvent *e)
                _grabbed_marker = NULL;
 
                if (_view.cursors_shown()) {
-                       std::pair<Cursor, Cursor> &cursors =
-                               _view.cursors();
-                       if (cursors.first.get_label_rect(
+                       CursorPair &cursors = _view.cursors();
+                       if (cursors.first().get_label_rect(
                                rect()).contains(e->pos()))
-                               _grabbed_marker = &cursors.first;
-                       else if (cursors.second.get_label_rect(
+                               _grabbed_marker = &cursors.first();
+                       else if (cursors.second().get_label_rect(
                                rect()).contains(e->pos()))
-                               _grabbed_marker = &cursors.second;
+                               _grabbed_marker = &cursors.second();
                }
        }
 }
@@ -209,9 +208,9 @@ void Ruler::draw_cursors(QPainter &p, unsigned int prefix)
                return;
 
        const QRect r = rect();
-       pair<Cursor, Cursor> &cursors = _view.cursors();
-       cursors.first.paint_label(p, r, prefix);
-       cursors.second.paint_label(p, r, prefix);
+       CursorPair &cursors = _view.cursors();
+       cursors.first().paint_label(p, r, prefix);
+       cursors.second().paint_label(p, r, prefix);
 }
 
 void Ruler::draw_hover_mark(QPainter &p)
index 95b8a5bec9e9f1fde845898ee5ed7a0cf1bfcc58..9c793bb8e635c4443c7b762186f1969df0752886 100644 (file)
@@ -72,8 +72,7 @@ View::View(SigSession &session, QWidget *parent) :
        _v_offset(0),
        _updating_scroll(false),
        _show_cursors(false),
-       _cursors(pair<Cursor, Cursor>(Cursor(*this, 0.0),
-               Cursor(*this, 1.0))),
+       _cursors(*this),
        _hover_point(-1, -1)
 {
        connect(horizontalScrollBar(), SIGNAL(valueChanged(int)),
@@ -86,9 +85,9 @@ View::View(SigSession &session, QWidget *parent) :
        connect(&_session, SIGNAL(data_updated()),
                this, SLOT(data_updated()));
 
-       connect(&_cursors.first, SIGNAL(time_changed()),
+       connect(&_cursors.first(), SIGNAL(time_changed()),
                this, SLOT(marker_time_changed()));
-       connect(&_cursors.second, SIGNAL(time_changed()),
+       connect(&_cursors.second(), SIGNAL(time_changed()),
                this, SLOT(marker_time_changed()));
 
        connect(_header, SIGNAL(signals_moved()),
@@ -162,7 +161,7 @@ void View::show_cursors(bool show)
        _viewport->update();
 }
 
-std::pair<Cursor, Cursor>& View::cursors()
+CursorPair& View::cursors()
 {
        return _cursors;
 }
index 980ccf1f61e8488d38dea381953ab15bb8d6d112..4eb255a2da7a0ec131df8daf6ea6286df8442074 100644 (file)
 
 #include <stdint.h>
 
-#include <utility>
-
 #include <QAbstractScrollArea>
 #include <QSizeF>
 
-#include "cursor.h"
+#include "cursorpair.h"
 
 namespace pv {
 
@@ -101,7 +99,7 @@ public:
        /**
         * Returns a reference to the pair of cursors.
         */
-       std::pair<Cursor, Cursor>& cursors();
+       CursorPair& cursors();
 
        const QPoint& hover_point() const;
 
@@ -157,7 +155,7 @@ private:
        bool _updating_scroll;
 
        bool _show_cursors;
-       std::pair<Cursor, Cursor> _cursors;
+       CursorPair _cursors;
 
        QPoint _hover_point;
 };
index ba26c3c1bcaf1743b0809c9d53c4b9fe44d6fbae..70282d41c4acfbd1cbe759411a716de241079aee 100644 (file)
@@ -127,9 +127,9 @@ void Viewport::draw_cursors_background(QPainter &p)
        p.setPen(Qt::NoPen);
        p.setBrush(QBrush(View::CursorAreaColour));
 
-       const pair<Cursor, Cursor> &c = _view.cursors();
-       const float x1 = (c.first.time() - _view.offset()) / _view.scale();
-       const float x2 = (c.second.time() - _view.offset()) / _view.scale();
+       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());
 
@@ -142,9 +142,9 @@ void Viewport::draw_cursors_foreground(QPainter &p)
                return;
 
        const QRect r = rect();
-       pair<Cursor, Cursor> &cursors = _view.cursors();
-       cursors.first.paint(p, r);
-       cursors.second.paint(p, r);
+       CursorPair &cursors = _view.cursors();
+       cursors.first().paint(p, r);
+       cursors.second().paint(p, r);
 }
 
 void Viewport::on_signals_moved()