]> sigrok.org Git - pulseview.git/blobdiff - pv/view/ruler.cpp
Added selection_changed signal to pv::view::View
[pulseview.git] / pv / view / ruler.cpp
index d323f9be0525be8c5e39f3621d6c4ca9f05e0f5b..fa5c488e4f576107e51f490b75ec4162b906aeb9 100644 (file)
@@ -49,8 +49,7 @@ const int Ruler::FirstSIPrefixPower = -15;
 const int Ruler::HoverArrowSize = 5;
 
 Ruler::Ruler(View &parent) :
-       QWidget(&parent),
-       _view(parent),
+       MarginWidget(parent),
        _grabbed_marker(NULL)
 {
        setMouseTracking(true);
@@ -59,6 +58,14 @@ Ruler::Ruler(View &parent) :
                this, SLOT(hover_point_changed()));
 }
 
+void Ruler::clear_selection()
+{
+       CursorPair &cursors = _view.cursors();
+       cursors.first().select(false);
+       cursors.second().select(false);
+       update();
+}
+
 QString Ruler::format_time(double t, unsigned int prefix,
        unsigned int precision)
 {
@@ -186,6 +193,8 @@ void Ruler::mousePressEvent(QMouseEvent *e)
        if (e->buttons() & Qt::LeftButton) {
                _grabbed_marker = NULL;
 
+               clear_selection();
+
                if (_view.cursors_shown()) {
                        CursorPair &cursors = _view.cursors();
                        if (cursors.first().get_label_rect(
@@ -195,6 +204,11 @@ void Ruler::mousePressEvent(QMouseEvent *e)
                                rect()).contains(e->pos()))
                                _grabbed_marker = &cursors.second();
                }
+
+               if(_grabbed_marker)
+                       _grabbed_marker->select();
+
+               selection_changed();
        }
 }