X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fcursorpair.hpp;h=d59d9414d6ae5488896131ccf9c667716bd0737f;hb=85125b0f34be424fdf8a8a5133f2494722077d7d;hp=6728268039f5e718d7363f68b63a9b43fa55758c;hpb=581724de334181fc5338f1efa87954264cf90520;p=pulseview.git diff --git a/pv/views/trace/cursorpair.hpp b/pv/views/trace/cursorpair.hpp index 67282680..d59d9414 100644 --- a/pv/views/trace/cursorpair.hpp +++ b/pv/views/trace/cursorpair.hpp @@ -21,9 +21,11 @@ #define PULSEVIEW_PV_VIEWS_TRACEVIEW_CURSORPAIR_HPP #include "cursor.hpp" +#include "pv/globalsettings.hpp" #include +#include #include #include @@ -38,13 +40,12 @@ namespace trace { class View; -class CursorPair : public TimeItem +class CursorPair : public TimeItem, public GlobalSettingsInterface { Q_OBJECT private: static const int DeltaPadding; - static const QColor ViewportFillColor; public: /** @@ -53,6 +54,8 @@ public: */ CursorPair(View &view); + ~CursorPair(); + /** * Returns true if the item is visible and enabled. */ @@ -73,13 +76,18 @@ public: */ void set_time(const pv::util::Timestamp& time) override; + virtual const pv::util::Timestamp time() const override; + float get_x() const override; + virtual const pv::util::Timestamp delta(const pv::util::Timestamp& other) const override; + QPoint drag_point(const QRect &rect) const override; pv::widgets::Popup* create_popup(QWidget *parent) override; -public: + QMenu* create_header_context_menu(QWidget *parent) override; + QRectF label_rect(const QRectF &rect) const override; /** @@ -100,19 +108,27 @@ public: /** * Constructs the string to display. */ - QString format_string(); + QString format_string(int max_width = 0, std::function query_size + = [](const QString& s) -> double { (void)s; return 0; }); pair 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: + QString format_string_sub(int time_precision, int freq_precision, bool show_unit = true); + private: shared_ptr first_, second_; + QColor fill_color_; QSizeF text_size_; QRectF label_area_; bool label_incomplete_; + bool show_interval_, show_frequency_, show_samples_; }; } // namespace trace