mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-28 05:34:47 +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:
parent
f5d4974d57
commit
f683525fce
@ -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)
|
||||
|
@ -203,6 +203,7 @@ private:
|
||||
int _waypointSize, _poiSize;
|
||||
QColor _backgroundColor, _waypointColor, _poiColor, _markerColor;
|
||||
qreal _areaOpacity;
|
||||
bool _infoBackground;
|
||||
|
||||
int _digitalZoom;
|
||||
bool _plot;
|
||||
|
@ -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());
|
||||
|
||||
painter->setPen(Qt::NoPen);
|
||||
QColor bc(painter->background().color());
|
||||
bc.setAlpha(196);
|
||||
painter->setBrush(QBrush(bc));
|
||||
painter->drawRect(r2);
|
||||
painter->drawRect(r1);
|
||||
painter->setBrush(Qt::NoBrush);
|
||||
if (_drawBackground) {
|
||||
painter->setPen(Qt::NoPen);
|
||||
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();
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user