X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fsignal.h;h=eeef55389eb79384f5f84ccaa9542bb631b28999;hb=c0f868521a211747f89ef217ae63404f373d952b;hp=c35f557dcd7ac66a9ed6b80a5f7e563d6957fe92;hpb=2658961bdef3601e07d494a8ed3d01a8101b68cd;p=pulseview.git diff --git a/pv/view/signal.h b/pv/view/signal.h index c35f557..eeef553 100644 --- a/pv/view/signal.h +++ b/pv/view/signal.h @@ -24,28 +24,40 @@ #include #include +#include #include +#include #include #include +#include #include +#include + +#include "selectableitem.h" + namespace pv { +class SigSession; + namespace data { class SignalData; } namespace view { -class Signal +class Signal : public SelectableItem { + Q_OBJECT + private: static const int LabelHitPadding; - static const int LabelHighlightRadius; + + static const QPen SignalAxisPen; protected: - Signal(QString name); + Signal(pv::SigSession &session, const sr_probe *const probe); public: /** @@ -78,16 +90,6 @@ public: */ void set_v_offset(int v_offset); - /** - * Returns true if the signal has been selected by the user. - */ - bool selected() const; - - /** - * Selects or deselects the signal. - */ - void select(bool select = true); - /** * Paints the signal with a QPainter * @param p the QPainter to paint into. @@ -124,6 +126,17 @@ public: bool pt_in_label_rect(int y, int left, int right, const QPoint &point); +protected: + + /** + * Paints a zero axis across the viewport. + * @param p the QPainter to paint into. + * @param y the y-offset of the axis. + * @param left the x-coordinate of the left edge of the view. + * @param right the x-coordinate of the right edge of the view. + */ + void paint_axis(QPainter &p, int y, int left, int right); + private: /** @@ -141,14 +154,25 @@ private: */ QRectF get_label_rect(int y, int right); +private slots: + void on_text_changed(const QString &text); + +signals: + void text_changed(); + protected: + pv::SigSession &_session; + const sr_probe *const _probe; + QString _name; QColor _colour; int _v_offset; - bool _selected; - QSizeF _text_size; + + QWidgetAction _name_action; + QComboBox _name_widget; + bool _updating_name_widget; }; } // namespace view