X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fviewport.cpp;h=44c912a1acf1ccc117718d09cbc45b816e64a284;hp=e9a9df0c89b4fb4e934a24f33f0ac0f6c15df7eb;hb=633e8ade5289eff00c7137f59269361aa547449a;hpb=a3d5a7c7682ebb991718b49ae916c5840b3b6b51 diff --git a/pv/views/trace/viewport.cpp b/pv/views/trace/viewport.cpp index e9a9df0c..44c912a1 100644 --- a/pv/views/trace/viewport.cpp +++ b/pv/views/trace/viewport.cpp @@ -30,6 +30,8 @@ #include #include +#include +#include #include @@ -64,9 +66,9 @@ shared_ptr Viewport::get_mouse_over_item(const QPoint &pt) return nullptr; } -void Viewport::item_hover(const shared_ptr &item) +void Viewport::item_hover(const shared_ptr &item, QPoint pos) { - if (item && item->is_draggable()) + if (item && item->is_draggable(pos)) setCursor(dynamic_pointer_cast(item) ? Qt::SizeVerCursor : Qt::SizeHorCursor); else @@ -172,16 +174,19 @@ void Viewport::paintEvent(QPaintEvent*) [](const shared_ptr &t) { return !t; })); QPainter p(this); - p.setRenderHint(QPainter::Antialiasing); + + bool useAntialiasing = + window()->windowHandle()->screen()->devicePixelRatio() < 2.0; + p.setRenderHint(QPainter::Antialiasing, useAntialiasing); for (LayerPaintFunc *paint_func = layer_paint_funcs; *paint_func; paint_func++) { ViewItemPaintParams time_pp(rect(), view_.scale(), view_.offset()); - for (const shared_ptr t : time_items) + for (const shared_ptr& t : time_items) (t.get()->*(*paint_func))(p, time_pp); ViewItemPaintParams row_pp(rect(), view_.scale(), view_.offset()); - for (const shared_ptr r : row_items) + for (const shared_ptr& r : row_items) (r.get()->*(*paint_func))(p, row_pp); }