X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fview.hpp;h=2fff8d2559d34e88e65648f76c7613b79b88d92f;hb=4c7a19d3d7049bcc9fb3185ce2bc91333a7ca9e1;hp=9fac1a67f8d400933d4a95b2c2b12eca29c483d0;hpb=489953884c0d7692fa20748314751e114ae54cf2;p=pulseview.git diff --git a/pv/view/view.hpp b/pv/view/view.hpp index 9fac1a6..2fff8d2 100644 --- a/pv/view/view.hpp +++ b/pv/view/view.hpp @@ -29,7 +29,7 @@ #include #include -#include +#include #include #include @@ -54,6 +54,10 @@ namespace pv { class Session; +namespace data { +class Logic; +} + namespace views { namespace TraceView { @@ -67,13 +71,12 @@ class Trace; class Viewport; class TriggerMarker; -class CustomAbstractScrollArea : public QAbstractScrollArea +class CustomScrollArea : public QAbstractScrollArea { Q_OBJECT public: - CustomAbstractScrollArea(QWidget *parent = nullptr); - void setViewportMargins(int left, int top, int right, int bottom); + CustomScrollArea(QWidget *parent = nullptr); bool viewportEvent(QEvent *event); }; @@ -92,7 +95,6 @@ private: static const pv::util::Timestamp MinScale; static const int MaxScrollValue; - static const int MaxViewAutoUpdateRate; static const int ScaleUnits[3]; @@ -109,7 +111,7 @@ public: virtual void clear_signals(); - virtual void add_signal(const shared_ptr signal); + void add_signal(const shared_ptr signal); #ifdef ENABLE_DECODE virtual void clear_decode_signals(); @@ -313,12 +315,18 @@ private: */ void calculate_tick_spacing(); + void adjust_top_margin(); + void update_scroll(); void reset_scroll(); void set_scroll_default(); + bool header_was_shrunk() const; + + void expand_header_to_fit(); + void update_layout(); TraceTreeItemOwner* find_prevalent_trace_group( @@ -347,14 +355,15 @@ public: private Q_SLOTS: + void on_splitter_moved(); + void h_scroll_value_changed(int value); void v_scroll_value_changed(); void signals_changed(); void capture_state_updated(int state); - void data_updated(); - void perform_delayed_view_update(); + virtual void perform_delayed_view_update(); void process_sticky_events(); @@ -397,9 +406,11 @@ private Q_SLOTS: void set_time_unit(pv::util::TimeUnit time_unit); private: + CustomScrollArea *scrollarea_; Viewport *viewport_; Ruler *ruler_; Header *header_; + QSplitter *splitter_; unordered_set< shared_ptr > signals_; @@ -407,8 +418,6 @@ private: vector< shared_ptr > decode_traces_; #endif - CustomAbstractScrollArea scrollarea_; - /// The view time scale in seconds per pixel. double scale_; @@ -416,10 +425,11 @@ private: pv::util::Timestamp offset_; bool updating_scroll_; + bool settings_restored_; + bool sticky_scrolling_; bool coloured_bg_; bool always_zoom_to_fit_; - QTimer delayed_view_updater_; pv::util::Timestamp tick_period_; pv::util::SIPrefix tick_prefix_; @@ -444,8 +454,6 @@ private: // A nonzero value indicates the v offset to restore. See View::resizeEvent() int saved_v_offset_; - - bool size_finalized_; }; } // namespace TraceView