#include <QAbstractScrollArea>
#include <QSizeF>
-#include <QTimer>
+#include <QSplitter>
#include <pv/data/signaldata.hpp>
#include <pv/util.hpp>
class Session;
+namespace data {
+class Logic;
+}
+
namespace views {
namespace TraceView {
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);
};
static const pv::util::Timestamp MinScale;
static const int MaxScrollValue;
- static const int MaxViewAutoUpdateRate;
static const int ScaleUnits[3];
virtual void clear_signals();
- virtual void add_signal(const shared_ptr<Signal> signal);
+ void add_signal(const shared_ptr<Signal> signal);
#ifdef ENABLE_DECODE
virtual void clear_decode_signals();
*/
void enable_coloured_bg(bool state);
+ /**
+ * Returns true if the trace background should be drawn with a coloured background.
+ */
+ bool coloured_bg() const;
+
/**
* Enable or disable showing sampling points.
*/
*/
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(
private Q_SLOTS:
+ void on_splitter_moved();
+ void on_repeat_splitter_expansion();
+
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();
void set_time_unit(pv::util::TimeUnit time_unit);
private:
+ CustomScrollArea *scrollarea_;
Viewport *viewport_;
Ruler *ruler_;
Header *header_;
+ QSplitter *splitter_;
unordered_set< shared_ptr<Signal> > signals_;
vector< shared_ptr<DecodeTrace> > decode_traces_;
#endif
- CustomAbstractScrollArea scrollarea_;
-
/// The view time scale in seconds per pixel.
double scale_;
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_;
// A nonzero value indicates the v offset to restore. See View::resizeEvent()
int saved_v_offset_;
-
- bool size_finalized_;
};
} // namespace TraceView