X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Fheader.h;h=808de5d5c966aed905da5f2e06a88d5714e3c80a;hb=f0c0b38f812bfbb2bb1978d40e2ce93f1da3f89d;hp=ff058863c2d536a598b5b83a199801bd2ba9b1e5;hpb=54401bbb93fbbd9b0de4874bf02c24b710643fe7;p=pulseview.git diff --git a/pv/view/header.h b/pv/view/header.h index ff058863..808de5d5 100644 --- a/pv/view/header.h +++ b/pv/view/header.h @@ -21,35 +21,54 @@ #ifndef PULSEVIEW_PV_VIEW_HEADER_H #define PULSEVIEW_PV_VIEW_HEADER_H -#include +#include +#include +#include -#include - -#include +#include "marginwidget.h" namespace pv { namespace view { -class Signal; +class RowItem; class View; -class Header : public QWidget +class Header : public MarginWidget { Q_OBJECT +private: + static const int Padding; + public: Header(View &parent); + 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; + + void signals_updated(); + private: - boost::shared_ptr get_mouse_over_signal( + 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); @@ -58,25 +77,21 @@ private: void contextMenuEvent(QContextMenuEvent *event); -private slots: - void on_action_set_name_triggered(); + void keyPressEvent(QKeyEvent *e); + +private Q_SLOTS: + void on_signals_moved(); - void on_action_set_colour_triggered(); + void on_trace_changed(); -signals: +Q_SIGNALS: void signals_moved(); private: - View &_view; - QPoint _mouse_point; QPoint _mouse_down_point; - - std::map _mouse_down_signal_offsets; - - boost::shared_ptr _context_signal; - QAction *_action_set_name; - QAction *_action_set_colour; + std::shared_ptr _mouse_down_item; + bool _dragging; }; } // namespace view