X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fheader.h;h=b982ad76c33370e8c3468e5cca917d11276fbdac;hp=5474f10eb48bcac2461f8d58546605e86d409173;hb=73ba2d70ce244f3582045498ace31f54485c316f;hpb=d7c0ca4a965c5f9cb2ae9aea584bb2547f4baca1 diff --git a/pv/view/header.h b/pv/view/header.h index 5474f10e..b982ad76 100644 --- a/pv/view/header.h +++ b/pv/view/header.h @@ -21,10 +21,8 @@ #ifndef PULSEVIEW_PV_VIEW_HEADER_H #define PULSEVIEW_PV_VIEW_HEADER_H -#include -#include - #include +#include #include #include "marginwidget.h" @@ -32,7 +30,7 @@ namespace pv { namespace view { -class Trace; +class RowItem; class View; class Header : public MarginWidget @@ -47,18 +45,28 @@ public: QSize sizeHint() const; + /** + * The horizontal offset, relative to the left edge of the widget, + * where the arrows of the trace labels end. + */ + static const int BaselineOffset; + private: - boost::shared_ptr get_mouse_over_trace( + std::shared_ptr get_mouse_over_row_item( const QPoint &pt); void clear_selection(); + void show_popup(const std::shared_ptr &item); + private: void paintEvent(QPaintEvent *event); private: + void mouseLeftPressEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent * event); + void mouseLeftReleaseEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); @@ -69,23 +77,19 @@ private: void keyPressEvent(QKeyEvent *e); -private slots: - void on_signals_changed(); - +private Q_SLOTS: void on_signals_moved(); - void on_trace_text_changed(); + void on_group(); -signals: +Q_SIGNALS: void signals_moved(); private: QPoint _mouse_point; QPoint _mouse_down_point; + std::shared_ptr _mouse_down_item; bool _dragging; - - std::list, int> > - _drag_traces; }; } // namespace view