X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fruler.cpp;h=aec3de979cf5171062df6777e78a42aaf4c74b03;hp=06cd1b1540ba3dca171d2cd286cdc35f66d1fd86;hb=819f4c25391a9c74d3d2f528d462142d5c4aad4d;hpb=4030e03db23566ccc2521c7c40903d0f360797ca diff --git a/pv/view/ruler.cpp b/pv/view/ruler.cpp index 06cd1b15..aec3de97 100644 --- a/pv/view/ruler.cpp +++ b/pv/view/ruler.cpp @@ -30,16 +30,20 @@ #include #include +#include #include #include #include -using namespace boost; -using namespace std; +#include + +using namespace Qt; +using boost::shared_ptr; namespace pv { namespace view { +const int Ruler::RulerHeight = 30; const int Ruler::MinorTickSubdivision = 4; const int Ruler::ScaleUnits[3] = {1, 2, 5}; @@ -71,7 +75,7 @@ QString Ruler::format_time(double t, unsigned int prefix, unsigned int precision) { const double multiplier = pow(10.0, - - prefix * 3 - FirstSIPrefixPower); + (int)- prefix * 3 - FirstSIPrefixPower); QString s; QTextStream ts(&s); @@ -81,9 +85,13 @@ QString Ruler::format_time(double t, unsigned int prefix, return s; } +QSize Ruler::sizeHint() const +{ + return QSize(0, RulerHeight); +} + void Ruler::paintEvent(QPaintEvent*) { - using namespace Qt; const double SpacingIncrement = 32.0f; const double MinValueSpacing = 32.0f; @@ -103,7 +111,7 @@ void Ruler::paintEvent(QPaintEvent*) const double min_period = _view.scale() * min_width; const int order = (int)floorf(log10f(min_period)); - const double order_decimal = pow(10, order); + const double order_decimal = pow(10.0, order); unsigned int unit = 0; @@ -225,6 +233,16 @@ void Ruler::mousePressEvent(QMouseEvent *e) void Ruler::mouseReleaseEvent(QMouseEvent *) { + using pv::widgets::Popup; + + if (!_dragging) + if (shared_ptr m = _grabbed_marker.lock()) { + Popup *const p = m->create_popup(&_view); + p->set_position(mapToGlobal(QPoint(m->get_x(), + height())), Popup::Bottom); + p->show(); + } + _dragging = false; _grabbed_marker.reset(); }