mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-28 13:41:16 +01:00
Propper path tick tooltip
+ code cleanup
This commit is contained in:
parent
a16354a6ba
commit
48674bb50b
@ -325,20 +325,15 @@ void PathItem::updateTicks()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
int ts = tickSize();
|
int ts = tickSize();
|
||||||
qreal f = xInM();
|
int tc = _path.last().last().distance() / (ts * xInM());
|
||||||
int tc = (int)_path.last().last().distance() / (ts * f);
|
QRect tr = PathTickItem::tickRect(ts * (tc - 1));
|
||||||
|
|
||||||
QFontMetrics fm(PathTickItem::font());
|
|
||||||
QRect tr = fm.boundingRect(QRect(), Qt::AlignCenter,
|
|
||||||
QString::number(qMax(ts * (tc - 1), 10)))
|
|
||||||
.adjusted(-2, 0, 2, 0);
|
|
||||||
|
|
||||||
_ticks.resize(tc);
|
_ticks.resize(tc);
|
||||||
for (int i = 0; i < tc; i++) {
|
for (int i = 0; i < tc; i++) {
|
||||||
QPoint pos(position((i + 1) * ts * xInM()).toPoint());
|
|
||||||
_ticks[i] = new PathTickItem(tr, (i + 1) * ts, this);
|
_ticks[i] = new PathTickItem(tr, (i + 1) * ts, this);
|
||||||
_ticks[i]->setPos(QPointF(pos.x() - 0.5, pos.y() - 0.5));
|
_ticks[i]->setPos(position((i + 1) * ts * xInM()));
|
||||||
_ticks[i]->setColor(_pen.color());
|
_ticks[i]->setColor(_pen.color());
|
||||||
|
_ticks[i]->setToolTip(toolTip());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,3 +54,18 @@ void PathTickItem::paint(QPainter *painter,
|
|||||||
painter->drawRect(boundingRect());
|
painter->drawRect(boundingRect());
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PathTickItem::setPos(const QPointF &pos)
|
||||||
|
{
|
||||||
|
/* For propper rounded rect rendering, the item must be positioned in the
|
||||||
|
middle of a pixel */
|
||||||
|
QPoint p(pos.toPoint());
|
||||||
|
QGraphicsItem::setPos(QPointF(p.x() - 0.5, p.y() - 0.5));
|
||||||
|
}
|
||||||
|
|
||||||
|
QRect PathTickItem::tickRect(int value)
|
||||||
|
{
|
||||||
|
QFontMetrics fm(_font);
|
||||||
|
return fm.boundingRect(QRect(), Qt::AlignCenter,
|
||||||
|
QString::number(qMax(value, 10))).adjusted(-2, 0, 2, 0);
|
||||||
|
}
|
||||||
|
@ -13,9 +13,10 @@ public:
|
|||||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
QWidget *widget);
|
QWidget *widget);
|
||||||
|
|
||||||
|
void setPos(const QPointF &pos);
|
||||||
void setColor(const QColor &color) {_brush = QBrush(color);}
|
void setColor(const QColor &color) {_brush = QBrush(color);}
|
||||||
|
|
||||||
static const QFont &font() {return _font;}
|
static QRect tickRect(int value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QRectF _tickRect;
|
QRectF _tickRect;
|
||||||
|
Loading…
Reference in New Issue
Block a user