Git commit bfab49b8dcdac4ec56988e30384ab31a56119abc by Dennis Nienh=C3=BCse= r. 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::createRe= lationStyle(const StylePar if (parameters.relation->relationType() >=3D GeoDataRelation::Rout= eRoad && parameters.relation->relationType() <=3D GeoDataRelation::Rout= eInlineSkates) { auto const colorValue =3D parameters.relation->osmData().tagVa= lue(QStringLiteral("colour")); - QString const color =3D QColor::isValidColor(colorValue) ? col= orValue : QStringLiteral("salmon"); + QString color =3D colorValue; + if (!QColor::isValidColor(colorValue)) { + switch (parameters.relation->relationType()) { + case GeoDataRelation::RouteTrain: + color =3D QStringLiteral("navy"); break; + case GeoDataRelation::RouteSubway: + color =3D QStringLiteral("cornflowerblue"); break; + case GeoDataRelation::RouteTram: + color =3D QStringLiteral("steelblue"); break; + case GeoDataRelation::RouteBus: + case GeoDataRelation::RouteTrolleyBus: + color =3D QStringLiteral("tomato"); break; + case GeoDataRelation::RouteBicycle: + case GeoDataRelation::RouteMountainbike: + case GeoDataRelation::RouteFoot: + case GeoDataRelation::RouteHiking: + case GeoDataRelation::RouteHorse: + case GeoDataRelation::RouteInlineSkates: + color =3D 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 =3D QString(); break; + } + } // Take cached Style instance if possible QString const cacheKey =3D QStringLiteral("/route/%1/%2").arg(= parameters.relation->relationType()).arg(color); if (m_styleCache.contains(cacheKey)) { @@ -256,7 +285,9 @@ GeoDataStyle::ConstPtr StyleBuilder::Private::createRel= ationStyle(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 =3D newStyle; m_styleCache.insert(cacheKey, newStyle);