+bool Trace::is_selectable(QPoint pos) const
+{
+ // True if the header was clicked, false if the trace area was clicked
+ const View *view = owner_->view();
+ assert(view);
+
+ return (pos.x() <= view->header_width());
+}
+
+bool Trace::is_draggable(QPoint pos) const
+{
+ // While the header label that belongs to this trace is draggable,
+ // the trace itself shall not be. Hence we return true if the header
+ // was clicked and false if the trace area was clicked
+ const View *view = owner_->view();
+ assert(view);
+
+ return (pos.x() <= view->header_width());
+}
+
+void Trace::set_segment_display_mode(SegmentDisplayMode mode)
+{
+ segment_display_mode_ = mode;
+
+ if (owner_)
+ owner_->row_item_appearance_changed(true, true);
+}
+
+void Trace::on_setting_changed(const QString &key, const QVariant &value)
+{
+ if (key == GlobalSettings::Key_View_ShowHoverMarker)
+ show_hover_marker_ = value.toBool();
+}
+