]> sigrok.org Git - pulseview.git/blobdiff - pv/view/view.hpp
View: Store CursorPair in a shared_ptr
[pulseview.git] / pv / view / view.hpp
index c6e585b7cbdd4cae86290b4e142395c908cb5fc9..026c7683ffaef224c501ed94ad6cdbe586452742 100644 (file)
@@ -39,7 +39,7 @@
 
 namespace pv {
 
 
 namespace pv {
 
-class SigSession;
+class Session;
 
 namespace view {
 
 
 namespace view {
 
@@ -63,16 +63,18 @@ private:
 
        static const int MaxScrollValue;
 
 
        static const int MaxScrollValue;
 
+       static const int ScaleUnits[3];
+
 public:
        static const QColor CursorAreaColour;
 
        static const QSizeF LabelPadding;
 
 public:
 public:
        static const QColor CursorAreaColour;
 
        static const QSizeF LabelPadding;
 
 public:
-       explicit View(SigSession &session, QWidget *parent = 0);
+       explicit View(Session &session, QWidget *parent = 0);
 
 
-       SigSession& session();
-       const SigSession& session() const;
+       Session& session();
+       const Session& session() const;
 
        /**
         * Returns the view of the owner.
 
        /**
         * Returns the view of the owner.
@@ -88,6 +90,11 @@ public:
 
        const Viewport* viewport() const;
 
 
        const Viewport* viewport() const;
 
+       /**
+        * Gets a list of time markers.
+        */
+       std::vector< std::shared_ptr<TimeItem> > time_items() const;
+
        /**
         * Returns the view time scale in seconds per pixel.
         */
        /**
         * Returns the view time scale in seconds per pixel.
         */
@@ -100,6 +107,16 @@ public:
        double offset() const;
        int owner_visual_v_offset() const;
 
        double offset() const;
        int owner_visual_v_offset() const;
 
+       /**
+        * Returns the SI prefix to apply to the graticule time markings.
+        */
+       unsigned int tick_prefix() const;
+
+       /**
+        * Returns period of the graticule time markings.
+        */
+       double tick_period() const;
+
        /**
         * Returns the number of nested parents that this row item owner has.
         */
        /**
         * Returns the number of nested parents that this row item owner has.
         */
@@ -142,12 +159,7 @@ public:
        /**
         * Returns a reference to the pair of cursors.
         */
        /**
         * Returns a reference to the pair of cursors.
         */
-       CursorPair& cursors();
-
-       /**
-        * Returns a reference to the pair of cursors.
-        */
-       const CursorPair& cursors() const;
+       std::shared_ptr<CursorPair> cursors() const;
 
        const QPoint& hover_point() const;
 
 
        const QPoint& hover_point() const;
 
@@ -175,6 +187,12 @@ private:
         */
        void set_zoom(double scale, int offset);
 
         */
        void set_zoom(double scale, int offset);
 
+       /**
+        * Find a tick spacing and number formatting that does not cause
+        * the values to collide.
+        */
+       void calculate_tick_spacing();
+
        void update_scroll();
 
        void update_layout();
        void update_scroll();
 
        void update_layout();
@@ -236,7 +254,7 @@ private Q_SLOTS:
        void on_hover_point_changed();
 
 private:
        void on_hover_point_changed();
 
 private:
-       SigSession &session_;
+       Session &session_;
 
        Viewport *viewport_;
        Ruler *ruler_;
 
        Viewport *viewport_;
        Ruler *ruler_;
@@ -252,8 +270,11 @@ private:
        int v_offset_;
        bool updating_scroll_;
 
        int v_offset_;
        bool updating_scroll_;
 
+       double tick_period_;
+       unsigned int tick_prefix_;
+
        bool show_cursors_;
        bool show_cursors_;
-       CursorPair cursors_;
+       std::shared_ptr<CursorPair> cursors_;
 
        QPoint hover_point_;
 
 
        QPoint hover_point_;