|
|
|
@ -708,14 +708,16 @@ void ChartView::mouseMoveEvent(QMouseEvent *ev) { |
|
|
|
|
if (!s.series->isVisible()) continue; |
|
|
|
|
|
|
|
|
|
// use reverse iterator to find last item <= sec.
|
|
|
|
|
double value = 0; |
|
|
|
|
auto it = std::lower_bound(s.vals.rbegin(), s.vals.rend(), sec, [](auto &p, double x) { return p.x() > x; }); |
|
|
|
|
if (it != s.vals.rend() && it->x() >= axis_x->min()) { |
|
|
|
|
value = it->y(); |
|
|
|
|
s.track_pt = chart()->mapToPosition(*it); |
|
|
|
|
x = std::max(x, s.track_pt.x()); |
|
|
|
|
} |
|
|
|
|
text_list.push_back(QString("<span style=\"color:%1;\">■ </span>%2: <b>%3</b>") |
|
|
|
|
.arg(s.series->color().name(), s.sig->name, |
|
|
|
|
s.track_pt.isNull() ? "--" : QString::number(s.track_pt.y()))); |
|
|
|
|
s.track_pt.isNull() ? "--" : QString::number(value))); |
|
|
|
|
} |
|
|
|
|
if (x < 0) { |
|
|
|
|
x = ev->pos().x(); |
|
|
|
|