X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.hpp;h=d57acd914bdaa8872a95f930e7e8b9b374fc3d4d;hp=6c8ff3d1075d3e42d54ab8c478881fe86e2622a5;hb=7697cd83435e88689936b14c952b8a34d5258b69;hpb=2bdc5796c866b9494b2c40051e973e4385d9c46f diff --git a/pv/views/trace/view.hpp b/pv/views/trace/view.hpp index 6c8ff3d1..d57acd91 100644 --- a/pv/views/trace/view.hpp +++ b/pv/views/trace/view.hpp @@ -44,7 +44,6 @@ using std::list; using std::unordered_map; -using std::unordered_set; using std::set; using std::shared_ptr; using std::vector; @@ -96,14 +95,17 @@ private: static const pv::util::Timestamp MinScale; static const int MaxScrollValue; + static const int ViewScrollMargin; static const int ScaleUnits[3]; public: - explicit View(Session &session, bool is_main_view=false, QWidget *parent = nullptr); + explicit View(Session &session, bool is_main_view=false, QMainWindow *parent = nullptr); ~View(); + virtual ViewType get_type() const; + /** * Resets the view to its default state after construction. It does however * not reset the signal bases or any other connections with the session. @@ -116,7 +118,9 @@ public: /** * Returns the signals contained in this view. */ - unordered_set< shared_ptr > signals() const; + vector< shared_ptr > signals() const; + + shared_ptr get_signal_by_signalbase(shared_ptr base) const; virtual void clear_signals(); @@ -143,9 +147,10 @@ public: virtual const View* view() const; Viewport* viewport(); - const Viewport* viewport() const; + QAbstractScrollArea* scrollarea() const; + const Ruler* ruler() const; virtual void save_settings(QSettings &settings) const; @@ -256,33 +261,17 @@ public: */ void set_scale_offset(double scale, const pv::util::Timestamp& offset); - set< shared_ptr > get_visible_data() const; + vector< shared_ptr > get_visible_data() const; pair get_time_extents() const; - /** - * Enables or disables colored trace backgrounds. If they're not - * colored then they will use alternating colors. - */ - void enable_colored_bg(bool state); - /** * Returns true if the trace background should be drawn with a colored background. */ bool colored_bg() const; /** - * Enable or disable showing sampling points. - */ - void enable_show_sampling_points(bool state); - - /** - * Enable or disable showing the analog minor grid. - */ - void enable_show_analog_minor_grid(bool state); - - /** - * Returns true if cursors are displayed. false otherwise. + * Returns true if cursors are displayed, false otherwise. */ bool cursors_shown() const; @@ -292,14 +281,16 @@ public: void show_cursors(bool show = true); /** - * Sets the cursors to the given offsets. You will still have to call show_cursors separately. + * Sets the cursors to the given offsets. + * You 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. + * You still have to call show_cursors() separately. */ - void centre_cursors(); + void center_cursors(); /** * Returns a reference to the pair of cursors. @@ -439,7 +430,6 @@ public: void extents_changed(bool horz, bool vert); private Q_SLOTS: - void on_signal_name_changed(); void on_splitter_moved(); @@ -451,6 +441,8 @@ private Q_SLOTS: void h_scroll_value_changed(int value); void v_scroll_value_changed(); + void on_grab_ruler(int ruler_id); + void signals_changed(); void capture_state_updated(int state); @@ -515,8 +507,10 @@ private: QShortcut *zoom_in_shortcut_, *zoom_in_shortcut_2_; QShortcut *zoom_out_shortcut_, *zoom_out_shortcut_2_; QShortcut *home_shortcut_, *end_shortcut_; + QShortcut *grab_ruler_left_shortcut_, *grab_ruler_right_shortcut_; + QShortcut *cancel_grab_shortcut_; - unordered_set< shared_ptr > signals_; + vector< shared_ptr > signals_; #ifdef ENABLE_DECODE vector< shared_ptr > decode_traces_; @@ -536,6 +530,8 @@ private: pv::util::Timestamp ruler_offset_; /// The offset of the zero point in seconds. pv::util::Timestamp zero_offset_; + /// Shows whether the user set a custom zero offset that we should keep + bool custom_zero_offset_set_; bool updating_scroll_; bool settings_restored_; @@ -560,6 +556,7 @@ private: vector< shared_ptr > trigger_markers_; QWidget* hover_widget_; + TimeMarker* grabbed_widget_; QPoint hover_point_; shared_ptr signal_under_mouse_cursor_; uint16_t snap_distance_;