X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.hpp;h=06b2cf2fb6275f2cd51f55e8b5a43007ff0d757c;hp=94082189be41bc1b47b7abfff094045ed703138c;hb=39173000c5d0d164c52443d16a1dc434d538b198;hpb=eeceee9955e7db4ac777d49d1b7a766069476b08 diff --git a/pv/views/trace/view.hpp b/pv/views/trace/view.hpp index 94082189..06b2cf2f 100644 --- a/pv/views/trace/view.hpp +++ b/pv/views/trace/view.hpp @@ -145,6 +145,8 @@ public: const Viewport* viewport() const; + const Ruler* ruler() const; + virtual void save_settings(QSettings &settings) const; virtual void restore_settings(QSettings &settings); @@ -171,10 +173,13 @@ public: */ const pv::util::Timestamp& ruler_offset() const; - void set_zero_position(pv::util::Timestamp& position); + void set_zero_position(const pv::util::Timestamp& position); void reset_zero_position(); + pv::util::Timestamp absolute_to_ruler_time(const pv::util::Timestamp& abs_time) const; + pv::util::Timestamp ruler_to_absolute_time(const pv::util::Timestamp& ruler_time) const; + /** * Returns the vertical scroll offset. */ @@ -276,6 +281,11 @@ public: */ void show_cursors(bool show = true); + /** + * Sets the cursors to the given offsets. You will still have to call show_cursors separately. + */ + void set_cursors(pv::util::Timestamp& first, pv::util::Timestamp& second); + /** * Moves the cursors to a convenient position in the view. */ @@ -302,6 +312,7 @@ public: vector< shared_ptr > flags() const; const QPoint& hover_point() const; + const QWidget* hover_widget() const; /** * Determines the closest level change (i.e. edge) to a given point, which @@ -310,7 +321,7 @@ public: * @param p The current position of the mouse cursor * @return The sample number of the nearest level change or -1 if none */ - int64_t get_nearest_level_change(const QPoint &p) const; + int64_t get_nearest_level_change(const QPoint &p); void restack_all_trace_tree_items(); @@ -319,7 +330,7 @@ public: void on_setting_changed(const QString &key, const QVariant &value); Q_SIGNALS: - void hover_point_changed(const QPoint &hp); + void hover_point_changed(const QWidget* widget, const QPoint &hp); void selection_changed(); @@ -504,6 +515,8 @@ private: pv::util::Timestamp offset_; /// The ruler version of the time offset in seconds. pv::util::Timestamp ruler_offset_; + /// The offset of the zero point in seconds. + pv::util::Timestamp zero_offset_; bool updating_scroll_; bool settings_restored_; @@ -527,8 +540,10 @@ private: vector< shared_ptr > trigger_markers_; + QWidget* hover_widget_; QPoint hover_point_; shared_ptr signal_under_mouse_cursor_; + uint16_t snap_distance_; unsigned int sticky_events_; QTimer lazy_event_handler_;