1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-24 11:45:53 +01:00

Fixed/improved map info background rendering settings

All text items on the map (including path marker info) have now the same
background color (the map background color) and the "info background" option
also applies to all items now.
This commit is contained in:
Martin Tůma 2023-08-19 11:01:12 +02:00
parent f5d4974d57
commit f683525fce
6 changed files with 57 additions and 8 deletions

View File

@ -118,6 +118,7 @@ MapView::MapView(Map *map, POI *poi, QWidget *parent) : QGraphicsView(parent)
_showPosition = false;
_showPositionCoordinates = false;
_showMotionInfo = false;
_infoBackground = false;
_opengl = false;
_plot = false;
@ -156,6 +157,8 @@ PathItem *MapView::addTrack(const Track &track)
ti->setVisible(_showTracks);
ti->setDigitalZoom(_digitalZoom);
ti->setMarkerColor(_markerColor);
ti->setMarkerBackgroundColor(_backgroundColor);
ti->drawMarkerBackground(_infoBackground);
ti->showMarker(_showMarkers);
ti->showMarkerInfo(_markerInfoType);
ti->showTicks(_showPathTicks);
@ -186,6 +189,8 @@ PathItem *MapView::addRoute(const Route &route)
ri->showWaypointIcons(_showWaypointIcons);
ri->setDigitalZoom(_digitalZoom);
ri->setMarkerColor(_markerColor);
ri->setMarkerBackgroundColor(_backgroundColor);
ri->drawMarkerBackground(_infoBackground);
ri->showMarker(_showMarkers);
ri->showMarkerInfo(_markerInfoType);
ri->showTicks(_showPathTicks);
@ -1086,6 +1091,11 @@ void MapView::setBackgroundColor(const QColor &color)
_positionCoordinates->setBackgroundColor(color);
_motionInfo->setBackgroundColor(color);
for (int i = 0; i < _tracks.size(); i++)
_tracks.at(i)->setMarkerBackgroundColor(color);
for (int i = 0; i < _routes.size(); i++)
_routes.at(i)->setMarkerBackgroundColor(color);
reloadMap();
}
@ -1378,9 +1388,16 @@ void MapView::setInfoColor(const QColor &color)
void MapView::drawInfoBackground(bool draw)
{
_infoBackground = draw;
_cursorCoordinates->drawBackground(draw);
_positionCoordinates->drawBackground(draw);
_motionInfo->drawBackground(draw);
for (int i = 0; i < _tracks.size(); i++)
_tracks.at(i)->drawMarkerBackground(draw);
for (int i = 0; i < _routes.size(); i++)
_routes.at(i)->drawMarkerBackground(draw);
}
void MapView::setHidpi(bool hidpi)

View File

@ -203,6 +203,7 @@ private:
int _waypointSize, _poiSize;
QColor _backgroundColor, _waypointColor, _poiColor, _markerColor;
qreal _areaOpacity;
bool _infoBackground;
int _digitalZoom;
bool _plot;

View File

@ -13,6 +13,8 @@ CoordinatesFormat MarkerInfoItem::_format = DecimalDegrees;
MarkerInfoItem::MarkerInfoItem(QGraphicsItem *parent) : QGraphicsItem(parent)
{
_color = Qt::red;
_bgColor = Qt::white;
_drawBackground = false;
_font.setPixelSize(FONT_SIZE);
_font.setFamily(FONT_FAMILY);
@ -62,13 +64,15 @@ void MarkerInfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
QRectF r2(OFFSET, 0, fm.boundingRect(_s2).width(), fm.height()
- fm.descent());
if (_drawBackground) {
painter->setPen(Qt::NoPen);
QColor bc(painter->background().color());
QColor bc(_bgColor);
bc.setAlpha(196);
painter->setBrush(QBrush(bc));
painter->drawRect(r2);
painter->drawRect(r1);
painter->setBrush(Qt::NoBrush);
}
painter->setFont(_font);
painter->setPen(_color);
@ -84,3 +88,15 @@ void MarkerInfoItem::setColor(const QColor &color)
_color = color;
update();
}
void MarkerInfoItem::setBackgroundColor(const QColor &color)
{
_bgColor = color;
update();
}
void MarkerInfoItem::drawBackground(bool draw)
{
_drawBackground = draw;
update();
}

View File

@ -26,6 +26,8 @@ public:
void setCoordinates(const Coordinates &c);
void setColor(const QColor &color);
void setBackgroundColor(const QColor &color);
void drawBackground(bool draw);
static void setCoordinatesFormat(const CoordinatesFormat &format)
{_format = format;}
@ -35,8 +37,9 @@ private:
QString _s1, _s2;
QRectF _boundingRect;
QColor _color;
QColor _color, _bgColor;
QFont _font;
bool _drawBackground;
static CoordinatesFormat _format;
};

View File

@ -365,6 +365,16 @@ void PathItem::setMarkerColor(const QColor &color)
_markerInfo->setColor(color);
}
void PathItem::setMarkerBackgroundColor(const QColor &color)
{
_markerInfo->setBackgroundColor(color);
}
void PathItem::drawMarkerBackground(bool draw)
{
_markerInfo->drawBackground(draw);
}
void PathItem::hover(bool hover)
{
if (hover) {

View File

@ -41,6 +41,8 @@ public:
void setPenStyle(Qt::PenStyle style);
void setDigitalZoom(int zoom);
void setMarkerColor(const QColor &color);
void setMarkerBackgroundColor(const QColor &color);
void drawMarkerBackground(bool draw);
void showMarker(bool show);
void showMarkerInfo(MarkerInfoItem::Type type);
void showTicks(bool show);