X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fflag.cpp;h=81af10868f46a070aaf8d8c45a56cce7359d622b;hb=9f094349d415a37ec30fa2aa2bb6c979c03d6bc1;hp=97b21be232888dc909fc36b4df9c573005815f39;hpb=710c2a1896fbac968c82f2d1257aaabd10a48cc8;p=pulseview.git diff --git a/pv/views/trace/flag.cpp b/pv/views/trace/flag.cpp index 97b21be2..81af1086 100644 --- a/pv/views/trace/flag.cpp +++ b/pv/views/trace/flag.cpp @@ -59,22 +59,28 @@ bool Flag::enabled() const QString Flag::get_text() const { - const shared_ptr ref_item = view_.get_reference_time_item(); - if (ref_item == nullptr || ref_item.get() == this) { - return text_; - } else { - return Ruler::format_time_with_distance( + QString s; + + const shared_ptr ref_item = view_.ruler()->get_reference_item(); + + if (!ref_item || (ref_item.get() == this)) + s = text_; + else + s = Ruler::format_time_with_distance( ref_item->time(), ref_item->delta(time_), view_.tick_prefix(), view_.time_unit(), view_.tick_precision()); - } + + return s; } QRectF Flag::label_rect(const QRectF &rect) const { - const shared_ptr ref_item = view_.get_reference_time_item(); - if (ref_item == nullptr || ref_item.get() == this) { - return TimeMarker::label_rect(rect); + QRectF r; + + const shared_ptr ref_item = view_.ruler()->get_reference_item(); + if (!ref_item || (ref_item.get() == this)) { + r = TimeMarker::label_rect(rect); } else { // TODO: Remove code duplication between here and cursor.cpp const float x = get_x(); @@ -85,17 +91,20 @@ QRectF Flag::label_rect(const QRectF &rect) const const QSizeF label_size( text_size.width() + LabelPadding.width() * 2, text_size.height() + LabelPadding.height() * 2); - const float top = rect.height() - label_size.height() - - TimeMarker::ArrowSize - 0.5f; + const float height = label_size.height(); + const float top = + rect.height() - label_size.height() - TimeMarker::ArrowSize - 0.5f; const pv::util::Timestamp& delta = ref_item->delta(time_); if (delta >= 0) - return QRectF(x, top, label_size.width(), height); + r = QRectF(x, top, label_size.width(), height); else - return QRectF(x - label_size.width(), top, label_size.width(), height); + r = QRectF(x - label_size.width(), top, label_size.width(), height); } + + return r; } pv::widgets::Popup* Flag::create_popup(QWidget *parent)