namespace view {
class CursorHeader;
+class DecodeTrace;
class Header;
class Ruler;
+class Signal;
class Trace;
class Viewport;
class TriggerMarker;
Session& session();
const Session& session() const;
+ /**
+ * Returns the signals contained in this view.
+ */
+ std::unordered_set< std::shared_ptr<view::Signal> > signals() const;
+
+ void clear_signals();
+
+ void add_signal(const std::shared_ptr<view::Signal> signal);
+
+#ifdef ENABLE_DECODE
+ void clear_decode_traces();
+
+ void add_decode_trace(std::shared_ptr<data::SignalBase> signalbase);
+
+ void remove_decode_trace(std::shared_ptr<data::SignalBase> signalbase);
+#endif
+
/**
* Returns the view of the owner.
*/
const Viewport* viewport() const;
+ void save_settings(QSettings &settings) const;
+
+ void restore_settings(QSettings &settings);
+
/**
* Gets a list of time markers.
*/
*/
void enable_sticky_scrolling(bool state);
+ /**
+ * Enables or disables coloured trace backgrounds. If they're not
+ * coloured then they will use alternating colors.
+ */
+ void enable_coloured_bg(bool state);
+
/**
* Returns true if cursors are displayed. false otherwise.
*/
const QPoint& hover_point() const;
- void update_viewport();
-
void restack_all_trace_tree_items();
Q_SIGNALS:
void update_scroll();
- void update_layout();
+ void reset_scroll();
- /**
- * Satisifies TraceTreeItem functionality.
- * @param p the QPainter to paint into.
- * @param rect the rectangle of the header area.
- * @param hover true if the label is being hovered over by the mouse.
- */
- void paint_label(QPainter &p, const QRect &rect, bool hover);
+ void set_scroll_default();
- /**
- * Computes the outline rectangle of a label.
- * @param rect the rectangle of the header area.
- * @return Returns the rectangle of the signal label.
- */
- QRectF label_rect(const QRectF &rect);
+ void update_layout();
TraceTreeItemOwner* find_prevalent_trace_group(
const std::shared_ptr<sigrok::ChannelGroup> &group,
- const std::unordered_map<std::shared_ptr<sigrok::Channel>,
+ const std::unordered_map<std::shared_ptr<data::SignalBase>,
std::shared_ptr<Signal> > &signal_map);
static std::vector< std::shared_ptr<Trace> >
extract_new_traces_for_channels(
const std::vector< std::shared_ptr<sigrok::Channel> > &channels,
- const std::unordered_map<std::shared_ptr<sigrok::Channel>,
+ const std::unordered_map<std::shared_ptr<data::SignalBase>,
std::shared_ptr<Signal> > &signal_map,
std::set< std::shared_ptr<Trace> > &add_list);
bool eventFilter(QObject *object, QEvent *event);
- bool viewportEvent(QEvent *e);
+ bool viewportEvent(QEvent *event);
- void resizeEvent(QResizeEvent *e);
+ void resizeEvent(QResizeEvent *event);
public:
void row_item_appearance_changed(bool label, bool content);
Ruler *ruler_;
Header *header_;
+ std::unordered_set< std::shared_ptr<view::Signal> > signals_;
+
+#ifdef ENABLE_DECODE
+ std::vector< std::shared_ptr<view::DecodeTrace> > decode_traces_;
+#endif
+
/// The view time scale in seconds per pixel.
double scale_;
unsigned int sticky_events_;
QTimer lazy_event_handler_;
+
+ // This is true when the defaults couldn't be set due to insufficient info
+ bool scroll_needs_defaults;
};
} // namespace view