Files
qad/libs/map/mapitemtext.cpp
peri4 7188e38072 CMake findQAD miss map
MapItemBase::offset feature
PIValueTreeEdit add custom button to show/hide groups
2023-01-26 23:19:28 +03:00

51 lines
1.0 KiB
C++

#include "mapitemtext.h"
MapItemText::MapItemText(const QString & t) {
setBrush(Qt::NoBrush);
setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
setText(t);
}
void MapItemText::setAlignment(Qt::Alignment a) {
m_alignment = a;
updateParent();
}
void MapItemText::setText(const QString & s) {
str = s;
updateParent();
}
void MapItemText::setFont(const QFont & f) {
m_font = f;
updateParent();
}
void MapItemText::draw(QPainter * p) {
if (str.isEmpty()) return;
p->setPen(pen());
p->setFont(font());
auto br = p->fontMetrics().boundingRect(str).adjusted(0, 0, 1, 1);
br.translate(-br.topLeft());
if (m_alignment.testFlag(Qt::AlignHCenter)) {
br.translate(-br.center().x(), 0.);
}
if (m_alignment.testFlag(Qt::AlignRight)) {
br.translate(-br.width(), 0.);
}
if (m_alignment.testFlag(Qt::AlignVCenter)) {
br.translate(0., -br.center().y());
}
if (m_alignment.testFlag(Qt::AlignBottom)) {
br.translate(0., -br.height());
}
p->fillRect(br.adjusted(-2, 0, 2, 0), brush());
p->drawText(br, Qt::TextSingleLine, str);
setBoundingRect(br);
}