Improve rendering of longer parking names.
This commit is contained in:
parent
e765d1c0fa
commit
07109d79f5
1 changed files with 18 additions and 9 deletions
|
@ -399,13 +399,27 @@ void AirportDiagram::drawParking(QPainter* painter, const ParkingData& p) const
|
||||||
|
|
||||||
painter->drawPath(useLeftIcon ? m_parkingIconLeftPath : m_parkingIconPath);
|
painter->drawPath(useLeftIcon ? m_parkingIconLeftPath : m_parkingIconPath);
|
||||||
|
|
||||||
painter->fillRect(labelRect, Qt::white);
|
// ensure the selection colour is quite visible, by not filling
|
||||||
|
// with white when selected
|
||||||
|
if (p.parking != m_selectedParking) {
|
||||||
|
painter->fillRect(labelRect, Qt::white);
|
||||||
|
}
|
||||||
|
|
||||||
|
QFont f = painter->font();
|
||||||
|
f.setPixelSize(20);
|
||||||
|
painter->setFont(f);
|
||||||
|
|
||||||
|
QString parkingName = QString::fromStdString(p.parking->name());
|
||||||
|
int textFlags = Qt::AlignVCenter | Qt::AlignHCenter | Qt::TextWordWrap;
|
||||||
|
QRectF bounds = painter->boundingRect(labelRect, textFlags, parkingName);
|
||||||
|
if (bounds.height() > labelRect.height()) {
|
||||||
|
f.setPixelSize(10);
|
||||||
|
painter->setFont(f);
|
||||||
|
}
|
||||||
|
|
||||||
// draw text
|
// draw text
|
||||||
painter->setPen(Qt::black);
|
painter->setPen(Qt::black);
|
||||||
painter->drawText(labelRect,
|
painter->drawText(labelRect, textFlags, parkingName);
|
||||||
Qt::AlignVCenter | Qt::AlignHCenter,
|
|
||||||
QString::fromStdString(p.parking->name()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AirportDiagram::ParkingData AirportDiagram::findParkingData(const FGParkingRef &pk) const
|
AirportDiagram::ParkingData AirportDiagram::findParkingData(const FGParkingRef &pk) const
|
||||||
|
@ -424,10 +438,6 @@ void AirportDiagram::drawParkings(QPainter* painter) const
|
||||||
painter->save();
|
painter->save();
|
||||||
QTransform t = painter->transform();
|
QTransform t = painter->transform();
|
||||||
|
|
||||||
QFont f = painter->font();
|
|
||||||
f.setPixelSize(16);
|
|
||||||
painter->setFont(f);
|
|
||||||
|
|
||||||
Q_FOREACH(const ParkingData& p, m_parking) {
|
Q_FOREACH(const ParkingData& p, m_parking) {
|
||||||
if (p.parking == m_selectedParking) {
|
if (p.parking == m_selectedParking) {
|
||||||
continue; // skip and draw last
|
continue; // skip and draw last
|
||||||
|
@ -505,7 +515,6 @@ void AirportDiagram::mouseReleaseEvent(QMouseEvent* me)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Q_FOREACH(const HelipadData& pad, m_helipads) {
|
Q_FOREACH(const HelipadData& pad, m_helipads) {
|
||||||
QPainterPath pp = pathForHelipad(pad, t);
|
QPainterPath pp = pathForHelipad(pad, t);
|
||||||
if (pp.contains(me->pos())) {
|
if (pp.contains(me->pos())) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue