[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [marble] src/lib/marble: Distinguish route types by color. Color scheme to be improved.
From:       Dennis_Nienhüser <null () kde ! org>
Date:       2017-01-31 20:17:35
Message-ID: E1cYerv-0001CL-CW () code ! kde ! org
[Download RAW message or body]

Git commit bfab49b8dcdac4ec56988e30384ab31a56119abc by Dennis Nienhüser.
Committed on 31/01/2017 at 20:11.
Pushed by nienhueser into branch 'master'.

Distinguish route types by color. Color scheme to be improved.

M  +33   -2    src/lib/marble/StyleBuilder.cpp

https://commits.kde.org/marble/bfab49b8dcdac4ec56988e30384ab31a56119abc

diff --git a/src/lib/marble/StyleBuilder.cpp b/src/lib/marble/StyleBuilder.cpp
index 776319e3b..13ec1044f 100644
--- a/src/lib/marble/StyleBuilder.cpp
+++ b/src/lib/marble/StyleBuilder.cpp
@@ -243,7 +243,36 @@ GeoDataStyle::ConstPtr \
                StyleBuilder::Private::createRelationStyle(const StylePar
         if (parameters.relation->relationType() >= GeoDataRelation::RouteRoad &&
             parameters.relation->relationType() <= \
                GeoDataRelation::RouteInlineSkates) {
             auto const colorValue = \
                parameters.relation->osmData().tagValue(QStringLiteral("colour"));
-            QString const color = QColor::isValidColor(colorValue) ? colorValue : \
QStringLiteral("salmon"); +            QString color = colorValue;
+            if (!QColor::isValidColor(colorValue)) {
+                switch (parameters.relation->relationType()) {
+                case GeoDataRelation::RouteTrain:
+                    color = QStringLiteral("navy"); break;
+                case GeoDataRelation::RouteSubway:
+                    color = QStringLiteral("cornflowerblue"); break;
+                case GeoDataRelation::RouteTram:
+                    color = QStringLiteral("steelblue"); break;
+                case GeoDataRelation::RouteBus:
+                case GeoDataRelation::RouteTrolleyBus:
+                    color = QStringLiteral("tomato"); break;
+                case GeoDataRelation::RouteBicycle:
+                case GeoDataRelation::RouteMountainbike:
+                case GeoDataRelation::RouteFoot:
+                case GeoDataRelation::RouteHiking:
+                case GeoDataRelation::RouteHorse:
+                case GeoDataRelation::RouteInlineSkates:
+                    color = QStringLiteral("paleturquoise"); break;
+                case GeoDataRelation::UnknownType:
+                case GeoDataRelation:: RouteRoad:
+                case GeoDataRelation::RouteDetour:
+                case GeoDataRelation::RouteFerry:
+                case GeoDataRelation::RouteSkiDownhill:
+                case GeoDataRelation::RouteSkiNordic:
+                case GeoDataRelation::RouteSkitour:
+                case GeoDataRelation::RouteSled:
+                    color = QString(); break;
+                }
+            }
             // Take cached Style instance if possible
             QString const cacheKey = \
QStringLiteral("/route/%1/%2").arg(parameters.relation->relationType()).arg(color);  \
if (m_styleCache.contains(cacheKey)) { @@ -256,7 +285,9 @@ GeoDataStyle::ConstPtr \
StyleBuilder::Private::createRelationStyle(const StylePar  adjustWayWidth(parameters, \
lineStyle);  }
             GeoDataStyle::Ptr newStyle(new GeoDataStyle(*style));
-            lineStyle.setColor(QColor(color));
+            if (!color.isEmpty()) {
+                lineStyle.setColor(QColor(color));
+            }
             newStyle->setLineStyle(lineStyle);
             style = newStyle;
             m_styleCache.insert(cacheKey, newStyle);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic