projects
/
pulseview.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5dfeb70
)
Simplify drawing for zoomed out annotations
author
Joel Holdsworth
<joel@airwebreathe.org.uk>
Sun, 1 Dec 2013 11:40:11 +0000
(11:40 +0000)
committer
Joel Holdsworth
<joel@airwebreathe.org.uk>
Mon, 2 Dec 2013 18:56:42 +0000
(18:56 +0000)
pv/view/decode/annotation.cpp
patch
|
blob
|
history
diff --git
a/pv/view/decode/annotation.cpp
b/pv/view/decode/annotation.cpp
index a2db331d4f2d0c466f0a0772435b0261ca9b1324..3a0a51fda26adc24605d2f55eb3ade98a3fd2e56 100644
(file)
--- a/
pv/view/decode/annotation.cpp
+++ b/
pv/view/decode/annotation.cpp
@@
-110,19
+110,30
@@
void Annotation::draw_instant(QPainter &p, QColor fill, QColor outline,
void Annotation::draw_range(QPainter &p, QColor fill, QColor outline,
QColor text_color, int h, double start, double end, int y)
{
void Annotation::draw_range(QPainter &p, QColor fill, QColor outline,
QColor text_color, int h, double start, double end, int y)
{
+ const double top = y + .5 - h / 2;
+ const double bottom = y + .5 + h / 2;
+
+ p.setPen(outline);
+ p.setBrush(fill);
+
+ // If the two ends are within 1 pixel, draw a vertical line
+ if (start + 1.0 > end)
+ {
+ p.drawLine(QPointF(start, top), QPointF(start, bottom));
+ return;
+ }
+
const double cap_width = min((end - start) / 2, EndCapWidth);
QPointF pts[] = {
QPointF(start, y + .5f),
const double cap_width = min((end - start) / 2, EndCapWidth);
QPointF pts[] = {
QPointF(start, y + .5f),
- QPointF(start + cap_width,
y + .5f - h / 2
),
- QPointF(end - cap_width,
y + .5f - h / 2
),
+ QPointF(start + cap_width,
top
),
+ QPointF(end - cap_width,
top
),
QPointF(end, y + .5f),
QPointF(end, y + .5f),
- QPointF(end - cap_width,
y + .5f + h / 2
),
- QPointF(start + cap_width,
y + .5f + h / 2
)
+ QPointF(end - cap_width,
bottom
),
+ QPointF(start + cap_width,
bottom
)
};
};
- p.setPen(outline);
- p.setBrush(fill);
p.drawConvexPolygon(pts, countof(pts));
if (_annotations.empty())
p.drawConvexPolygon(pts, countof(pts));
if (_annotations.empty())