]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/cursorpair.hpp
Backport recent changes from mainline.
[pulseview.git] / pv / views / trace / cursorpair.hpp
index 7a73e1980395d16b43c22420ed23bb802e6f0304..9d450df6b69af06e1dcc9a0830f036c9b18c3f23 100644 (file)
 #define PULSEVIEW_PV_VIEWS_TRACEVIEW_CURSORPAIR_HPP
 
 #include "cursor.hpp"
+#include "pv/globalsettings.hpp"
 
 #include <memory>
 
+#include <QColor>
 #include <QPainter>
+#include <QRect>
 
 using std::pair;
 using std::shared_ptr;
@@ -35,11 +38,14 @@ namespace pv {
 namespace views {
 namespace trace {
 
-class CursorPair : public TimeItem
+class View;
+
+class CursorPair : public TimeItem, public GlobalSettingsInterface
 {
+       Q_OBJECT
+
 private:
        static const int DeltaPadding;
-       static const QColor ViewportFillColour;
 
 public:
        /**
@@ -48,7 +54,8 @@ public:
         */
        CursorPair(View &view);
 
-public:
+       ~CursorPair();
+
        /**
         * Returns true if the item is visible and enabled.
         */
@@ -71,11 +78,10 @@ public:
 
        float get_x() const override;
 
-       QPoint point(const QRect &rect) const override;
+       QPoint drag_point(const QRect &rect) const override;
 
        pv::widgets::Popup* create_popup(QWidget *parent) override;
 
-public:
        QRectF label_rect(const QRectF &rect) const override;
 
        /**
@@ -98,14 +104,20 @@ public:
         */
        QString format_string();
 
-       void compute_text_size(QPainter &p);
-
        pair<float, float> get_cursor_offsets() const;
 
+       virtual void on_setting_changed(const QString &key, const QVariant &value) override;
+
+public Q_SLOTS:
+       void on_hover_point_changed(const QWidget* widget, const QPoint &hp);
+
 private:
        shared_ptr<Cursor> first_, second_;
+       QColor fill_color_;
 
        QSizeF text_size_;
+       QRectF label_area_;
+       bool label_incomplete_;
 };
 
 } // namespace trace