]> sigrok.org Git - pulseview.git/commitdiff
Flags: Always save raw text, not display text in session setup
authorSoeren Apel <redacted>
Tue, 17 Oct 2023 22:11:53 +0000 (00:11 +0200)
committerSoeren Apel <redacted>
Wed, 18 Oct 2023 23:00:12 +0000 (01:00 +0200)
Before, get_text() would return the delta time to a selected flag, so if one was selected as the session was saved, this delta time would be saved as the name.

pv/views/trace/cursor.cpp
pv/views/trace/flag.cpp
pv/views/trace/flag.hpp
pv/views/trace/timemarker.cpp
pv/views/trace/timemarker.hpp

index 80eaba232b1d8157b2bbfacbb40ebe202e79670a..8462a3a604c6e2509f0389c5ffbec96ba91c5908 100644 (file)
@@ -72,7 +72,7 @@ QRectF Cursor::label_rect(const QRectF &rect) const
        const float x = get_x();
 
        QFontMetrics m(QApplication::font());
-       QSize text_size = m.boundingRect(get_text()).size();
+       QSize text_size = m.boundingRect(get_display_text()).size();
 
        const QSizeF label_size(
                text_size.width() + LabelPadding.width() * 2,
index b0518b646d87c493d8c13de606570f8dccf92522..c356b15bf62bba31341b0f22f8a24a2ed5813dd1 100644 (file)
@@ -57,7 +57,11 @@ bool Flag::enabled() const
        return true;
 }
 
-QString Flag::get_text() const
+/**
+ * Returns the text used to display this flag item. This is not necessarily the
+ * name that the user has given it.
+ */
+QString Flag::get_display_text() const
 {
        QString s;
 
@@ -73,6 +77,14 @@ QString Flag::get_text() const
        return s;
 }
 
+/**
+ * Returns the text of this flag item, i.e. the user-editable name.
+ */
+QString Flag::get_text() const
+{
+       return text_;
+}
+
 void Flag::set_text(const QString &text)
 {
        text_ = text;
@@ -92,7 +104,7 @@ QRectF Flag::label_rect(const QRectF &rect) const
                const float x = get_x();
 
                QFontMetrics m(QApplication::font());
-               QSize text_size = m.boundingRect(get_text()).size();
+               QSize text_size = m.boundingRect(get_display_text()).size();
 
                const QSizeF label_size(
                        text_size.width() + LabelPadding.width() * 2,
index 4c4c977f0d19254bf17b199c6ede54e688a2d60a..eb4bf87c6008d9f84f737e1dd4a0086812ce47e7 100644 (file)
@@ -63,7 +63,13 @@ public:
        virtual bool enabled() const override;
 
        /**
-        * Gets the text to show in the marker.
+        * Gets the current text to show in the marker - this may be dynamic.
+        */
+       virtual QString get_display_text() const override;
+
+       /**
+        * Gets the default text used to show the marker - e.g. the user-editable
+        * name.
         */
        virtual QString get_text() const override;
 
index b428f6027e7bf4331d5c9d4d408a3f56fe554a92..af1d55d66bd254f28fee96a9f8fe3bec60cedd33 100644 (file)
@@ -88,7 +88,7 @@ QRectF TimeMarker::label_rect(const QRectF &rect) const
 {
        QFontMetrics m(QApplication::font());
        const QSizeF text_size(
-               max(m.boundingRect(get_text()).size().width(), ArrowSize),
+               max(m.boundingRect(get_display_text()).size().width(), ArrowSize),
                m.height());
        const QSizeF label_size(text_size + LabelPadding * 2);
        const float top = rect.height() - label_size.height() -
@@ -105,6 +105,11 @@ QRectF TimeMarker::hit_box_rect(const ViewItemPaintParams &pp) const
        return QRectF(x - h / 2.0f, pp.top(), h, pp.height());
 }
 
+QString TimeMarker::get_display_text() const
+{
+       return get_text();
+}
+
 void TimeMarker::set_text(const QString &text)
 {
        (void)text;
@@ -158,7 +163,7 @@ void TimeMarker::paint_label(QPainter &p, const QRect &rect, bool hover)
        p.drawPolygon(points, countof(points));
 
        p.setPen(select_text_color(color_));
-       p.drawText(r, Qt::AlignCenter | Qt::AlignVCenter, get_text());
+       p.drawText(r, Qt::AlignCenter | Qt::AlignVCenter, get_display_text());
 }
 
 void TimeMarker::paint_fore(QPainter &p, ViewItemPaintParams &pp)
index 040a29ea78605fadcd5c2723ac37019b9691cca9..00998462513f41c576f2e5e25f477308bc861c0e 100644 (file)
@@ -95,7 +95,13 @@ public:
        QRectF hit_box_rect(const ViewItemPaintParams &pp) const override;
 
        /**
-        * Gets the text to show in the marker.
+        * Gets the current text to show in the marker - this may be dynamic.
+        */
+       virtual QString get_display_text() const;
+
+       /**
+        * Gets the default text used to show the marker - e.g. the user-editable
+        * name.
         */
        virtual QString get_text() const = 0;