projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TraceTreeItem: Separated from RowItem
[pulseview.git]
/
pv
/
view
/
viewport.cpp
diff --git
a/pv/view/viewport.cpp
b/pv/view/viewport.cpp
index d9be32c996ee142b44603d1c9097a9bcde93295a..007a8c218878fa14cf0477322b7557296a990a14 100644
(file)
--- a/
pv/view/viewport.cpp
+++ b/
pv/view/viewport.cpp
@@
-49,7
+49,6
@@
namespace view {
Viewport::Viewport(View &parent) :
ViewWidget(parent),
Viewport::Viewport(View &parent) :
ViewWidget(parent),
- drag_offset_(numeric_limits<double>::signaling_NaN()),
pinch_zoom_active_(false)
{
setAutoFillBackground(true);
pinch_zoom_active_(false)
{
setAutoFillBackground(true);
@@
-82,17
+81,16
@@
void Viewport::drag()
void Viewport::drag_by(const QPoint &delta)
{
void Viewport::drag_by(const QPoint &delta)
{
- // Use std::isnan() instead of isnan(), the latter can cause issues.
- if (std::isnan(drag_offset_))
+ if (drag_offset_ == boost::none)
return;
return;
- view_.set_scale_offset(view_.scale(),
drag_offset_ -
-
delta.x() * view_.scale(
));
+ view_.set_scale_offset(view_.scale(),
+
(*drag_offset_ - delta.x() * view_.scale()
));
}
void Viewport::drag_release()
{
}
void Viewport::drag_release()
{
- drag_offset_ =
numeric_limits<double>::signaling_NaN()
;
+ drag_offset_ =
boost::none
;
}
vector< shared_ptr<ViewItem> > Viewport::items()
}
vector< shared_ptr<ViewItem> > Viewport::items()
@@
-117,8
+115,8
@@
bool Viewport::touch_event(QTouchEvent *event)
if (!pinch_zoom_active_ ||
(event->touchPointStates() & Qt::TouchPointPressed)) {
if (!pinch_zoom_active_ ||
(event->touchPointStates() & Qt::TouchPointPressed)) {
- pinch_offset0_ =
view_.offset() + view_.scale() * touchPoint0.pos().x
();
- pinch_offset1_ =
view_.offset() + view_.scale() * touchPoint1.pos().x
();
+ pinch_offset0_ =
(view_.offset() + view_.scale() * touchPoint0.pos().x()).convert_to<double>
();
+ pinch_offset1_ =
(view_.offset() + view_.scale() * touchPoint1.pos().x()).convert_to<double>
();
pinch_zoom_active_ = true;
}
pinch_zoom_active_ = true;
}
@@
-150,12
+148,12
@@
bool Viewport::touch_event(QTouchEvent *event)
void Viewport::paintEvent(QPaintEvent*)
{
void Viewport::paintEvent(QPaintEvent*)
{
- vector< shared_ptr<
Row
Item> > row_items(view_.begin(), view_.end());
+ vector< shared_ptr<
TraceTree
Item> > row_items(view_.begin(), view_.end());
assert(none_of(row_items.begin(), row_items.end(),
assert(none_of(row_items.begin(), row_items.end(),
- [](const shared_ptr<
Row
Item> &r) { return !r; }));
+ [](const shared_ptr<
TraceTree
Item> &r) { return !r; }));
stable_sort(row_items.begin(), row_items.end(),
stable_sort(row_items.begin(), row_items.end(),
- [](const shared_ptr<
RowItem> &a, const shared_ptr<Row
Item> &b) {
+ [](const shared_ptr<
TraceTreeItem> &a, const shared_ptr<TraceTree
Item> &b) {
return a->visual_v_offset() < b->visual_v_offset(); });
const vector< shared_ptr<TimeItem> > time_items(view_.time_items());
return a->visual_v_offset() < b->visual_v_offset(); });
const vector< shared_ptr<TimeItem> > time_items(view_.time_items());
@@
-169,15
+167,17
@@
void Viewport::paintEvent(QPaintEvent*)
for (const shared_ptr<TimeItem> t : time_items)
t->paint_back(p, pp);
for (const shared_ptr<TimeItem> t : time_items)
t->paint_back(p, pp);
- for (const shared_ptr<
Row
Item> r : row_items)
+ for (const shared_ptr<
TraceTree
Item> r : row_items)
r->paint_back(p, pp);
for (const shared_ptr<TimeItem> t : time_items)
t->paint_mid(p, pp);
r->paint_back(p, pp);
for (const shared_ptr<TimeItem> t : time_items)
t->paint_mid(p, pp);
- for (const shared_ptr<
Row
Item> r : row_items)
+ for (const shared_ptr<
TraceTree
Item> r : row_items)
r->paint_mid(p, pp);
r->paint_mid(p, pp);
- for (const shared_ptr<RowItem> r : row_items)
+ p.setRenderHint(QPainter::Antialiasing, false);
+
+ for (const shared_ptr<TraceTreeItem> r : row_items)
r->paint_fore(p, pp);
for (const shared_ptr<TimeItem> t : time_items)
t->paint_fore(p, pp);
r->paint_fore(p, pp);
for (const shared_ptr<TimeItem> t : time_items)
t->paint_fore(p, pp);