X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.hpp;h=da05691f42f5274b8c8fd86d54ffeccd80230927;hb=7daebd054e65a244dce36933cbf173b8d7532a09;hp=f0aa491e585fa5f90998e9697a151404d2fb3275;hpb=873e80357d9622678069fcfe83b010717a68284c;p=pulseview.git diff --git a/pv/views/trace/view.hpp b/pv/views/trace/view.hpp index f0aa491..da05691 100644 --- a/pv/views/trace/view.hpp +++ b/pv/views/trace/view.hpp @@ -37,6 +37,7 @@ #include "cursorpair.hpp" #include "flag.hpp" +#include "trace.hpp" #include "tracetreeitemowner.hpp" using std::list; @@ -190,6 +191,14 @@ public: */ unsigned int depth() const; + /** + * Returns whether the currently shown segment can be influenced + * (selected) or not. + */ + bool segment_is_selectable() const; + + void set_segment_display_mode(Trace::SegmentDisplayMode mode); + void zoom(double steps); void zoom(double steps, int offset); @@ -295,6 +304,12 @@ Q_SIGNALS: /// Emitted when the time_unit changed. void time_unit_changed(); + /// Emitted when the currently selected segment changed + void segment_changed(int segment_id); + + /// Emitted when the multi-segment display mode changed + void segment_display_mode_changed(bool segment_selectable); + public Q_SLOTS: void trigger_event(util::Timestamp location); @@ -323,9 +338,9 @@ private: void set_scroll_default(); - bool header_was_shrunk() const; + void determine_if_header_was_shrunk(); - void expand_header_to_fit(); + void resize_header_to_fit(); void update_layout(); @@ -357,6 +372,7 @@ public: private Q_SLOTS: + void on_signal_name_changed(); void on_splitter_moved(); void h_scroll_value_changed(int value); @@ -365,6 +381,9 @@ private Q_SLOTS: void signals_changed(); void capture_state_updated(int state); + void on_new_segment(int new_segment_id); + void on_segment_changed(int segment); + virtual void perform_delayed_view_update(); void process_sticky_events(); @@ -418,6 +437,13 @@ private: vector< shared_ptr > decode_traces_; #endif + /// The ID of the currently displayed segment + int current_segment_; + Trace::SegmentDisplayMode segment_display_mode_; + + /// Signals whether the user can change the currently shown segment. + bool segment_selectable_; + /// The view time scale in seconds per pixel. double scale_; @@ -426,6 +452,7 @@ private: bool updating_scroll_; bool settings_restored_; + bool header_was_shrunk_; bool sticky_scrolling_; bool coloured_bg_;