projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use multiple drawLine() calls instead of drawPolyline()
[pulseview.git]
/
pv
/
views
/
trace
/
viewport.cpp
diff --git
a/pv/views/trace/viewport.cpp
b/pv/views/trace/viewport.cpp
index d426a133717596a8c8d396b9f6e4f08e146cef13..2ca43a0b182da5fb6d9a3690faae7725055a55a7 100644
(file)
--- a/
pv/views/trace/viewport.cpp
+++ b/
pv/views/trace/viewport.cpp
@@
-30,6
+30,8
@@
#include <pv/session.hpp>
#include <QMouseEvent>
#include <pv/session.hpp>
#include <QMouseEvent>
+#include <QScreen>
+#include <QWindow>
#include <QDebug>
#include <QDebug>
@@
-37,7
+39,7
@@
using std::abs;
using std::back_inserter;
using std::copy;
using std::dynamic_pointer_cast;
using std::back_inserter;
using std::copy;
using std::dynamic_pointer_cast;
-using std::none_of; // Used in assert()s.
+using std::none_of; //
NOLINT.
Used in assert()s.
using std::shared_ptr;
using std::stable_sort;
using std::vector;
using std::shared_ptr;
using std::stable_sort;
using std::vector;
@@
-64,9
+66,9
@@
shared_ptr<ViewItem> Viewport::get_mouse_over_item(const QPoint &pt)
return nullptr;
}
return nullptr;
}
-void Viewport::item_hover(const shared_ptr<ViewItem> &item)
+void Viewport::item_hover(const shared_ptr<ViewItem> &item
, QPoint pos
)
{
{
- if (item && item->is_draggable())
+ if (item && item->is_draggable(
pos
))
setCursor(dynamic_pointer_cast<RowItem>(item) ?
Qt::SizeVerCursor : Qt::SizeHorCursor);
else
setCursor(dynamic_pointer_cast<RowItem>(item) ?
Qt::SizeVerCursor : Qt::SizeHorCursor);
else
@@
-165,23
+167,27
@@
void Viewport::paintEvent(QPaintEvent*)
stable_sort(row_items.begin(), row_items.end(),
[](const shared_ptr<RowItem> &a, const shared_ptr<RowItem> &b) {
stable_sort(row_items.begin(), row_items.end(),
[](const shared_ptr<RowItem> &a, const shared_ptr<RowItem> &b) {
- return a->
point(QRect()).y() < b->
point(QRect()).y(); });
+ return a->
drag_point(QRect()).y() < b->drag_
point(QRect()).y(); });
const vector< shared_ptr<TimeItem> > time_items(view_.time_items());
assert(none_of(time_items.begin(), time_items.end(),
[](const shared_ptr<TimeItem> &t) { return !t; }));
QPainter p(this);
const vector< shared_ptr<TimeItem> > time_items(view_.time_items());
assert(none_of(time_items.begin(), time_items.end(),
[](const shared_ptr<TimeItem> &t) { return !t; }));
QPainter p(this);
- p.setRenderHint(QPainter::Antialiasing);
+
+ // Disable antialiasing for high-DPI displays
+ bool use_antialiasing =
+ window()->windowHandle()->screen()->devicePixelRatio() < 2.0;
+ p.setRenderHint(QPainter::Antialiasing, use_antialiasing);
for (LayerPaintFunc *paint_func = layer_paint_funcs;
*paint_func; paint_func++) {
ViewItemPaintParams time_pp(rect(), view_.scale(), view_.offset());
for (LayerPaintFunc *paint_func = layer_paint_funcs;
*paint_func; paint_func++) {
ViewItemPaintParams time_pp(rect(), view_.scale(), view_.offset());
- for (const shared_ptr<TimeItem> t : time_items)
+ for (const shared_ptr<TimeItem>
&
t : time_items)
(t.get()->*(*paint_func))(p, time_pp);
ViewItemPaintParams row_pp(rect(), view_.scale(), view_.offset());
(t.get()->*(*paint_func))(p, time_pp);
ViewItemPaintParams row_pp(rect(), view_.scale(), view_.offset());
- for (const shared_ptr<RowItem> r : row_items)
+ for (const shared_ptr<RowItem>
&
r : row_items)
(r.get()->*(*paint_func))(p, row_pp);
}
(r.get()->*(*paint_func))(p, row_pp);
}