diff --git a/src/apps/marble-maps/MarbleMaps.qrc b/src/apps/marble-maps/MarbleMaps.qrc
--- a/src/apps/marble-maps/MarbleMaps.qrc
+++ b/src/apps/marble-maps/MarbleMaps.qrc
@@ -57,6 +57,7 @@
material-icons/ic_directions_walk_48px.svg
material-icons/ic_navigation_48px.svg
material-icons/ic_access_time_48px.svg
+ material-icons/ic_accessible_black_48px.svg
material-icons/ic_place_black_48px.svg
material-icons/ic_star_24px.svg
material-icons/ic_star_border_24px.svg
diff --git a/src/apps/marble-maps/PlacemarkDialog.qml b/src/apps/marble-maps/PlacemarkDialog.qml
--- a/src/apps/marble-maps/PlacemarkDialog.qml
+++ b/src/apps/marble-maps/PlacemarkDialog.qml
@@ -109,6 +109,13 @@
IconText {
width: parent.width
visible: text.length > 0
+ text: placemark === null ? "" : placemark.wheelchairInfo
+ icon: "qrc:/material/wheelchair.svg"
+ }
+
+ IconText {
+ width: parent.width
+ visible: text.length > 0
text: placemark === null ? "" : "" + placemark.coordinates + ""
icon: "qrc:/material/place.svg"
linkColor: palette.text
diff --git a/src/lib/marble/declarative/Placemark.h b/src/lib/marble/declarative/Placemark.h
--- a/src/lib/marble/declarative/Placemark.h
+++ b/src/lib/marble/declarative/Placemark.h
@@ -33,6 +33,7 @@
Q_PROPERTY(QString wikipedia READ wikipedia NOTIFY wikipediaChanged)
Q_PROPERTY(QString openingHours READ openingHours NOTIFY openingHoursChanged)
Q_PROPERTY(QString coordinates READ coordinates NOTIFY coordinatesChanged)
+ Q_PROPERTY(QString wheelchairInfo READ wheelchairInfo NOTIFY wheelchairInfoChanged)
Q_PROPERTY(double longitude READ longitude NOTIFY coordinatesChanged)
Q_PROPERTY(double latitude READ latitude NOTIFY coordinatesChanged)
Q_PROPERTY(QStringList tags READ tags NOTIFY tagsChanged)
@@ -53,6 +54,7 @@
QString wikipedia() const;
QString openingHours() const;
QString coordinates() const;
+ QString wheelchairInfo() const;
double longitude() const;
double latitude() const;
const QStringList & tags() const;
@@ -68,6 +70,7 @@
void websiteChanged();
void wikipediaChanged();
void openingHoursChanged();
+ void wheelchairInfoChanged();
void tagsChanged();
private:
@@ -85,6 +88,7 @@
mutable QString m_website;
mutable QString m_wikipedia;
mutable QString m_openingHours;
+ mutable QString m_wheelchairInfo;
QStringList m_tags;
};
diff --git a/src/lib/marble/declarative/Placemark.cpp b/src/lib/marble/declarative/Placemark.cpp
--- a/src/lib/marble/declarative/Placemark.cpp
+++ b/src/lib/marble/declarative/Placemark.cpp
@@ -35,14 +35,16 @@
m_website = QString();
m_wikipedia = QString();
m_openingHours = QString();
+ m_wheelchairInfo = QString();
updateTags();
emit coordinatesChanged();
emit nameChanged();
emit descriptionChanged();
emit addressChanged();
emit websiteChanged();
emit wikipediaChanged();
emit openingHoursChanged();
+ emit wheelchairInfoChanged();
emit tagsChanged();
}
@@ -323,10 +325,6 @@
addTagDescription(m_description, QStringLiteral("fee"), QStringLiteral("no"), tr("no fee"));
addTagValue(m_description, QStringLiteral("description"));
addTagValue(m_description, QStringLiteral("old_name"), tr("formerly %1"));
-
- addTagDescription(m_description, QStringLiteral("wheelchair"), QStringLiteral("yes"), tr("Wheelchair accessible"));
- addTagDescription(m_description, QStringLiteral("wheelchair"), QStringLiteral("no"), tr("Not wheelchair accessible"));
- addTagDescription(m_description, QStringLiteral("wheelchair"), QStringLiteral("limited"), tr("Limited wheelchair accessibility"));
}
return m_description;
@@ -410,6 +408,36 @@
return m_placemark.coordinate().toString(GeoDataCoordinates::Decimal).trimmed();
}
+QString Placemark::wheelchairInfo() const
+{
+ if (!m_wheelchairInfo.isEmpty())
+ return m_wheelchairInfo;
+
+ addTagDescription(m_wheelchairInfo, QStringLiteral("wheelchair"), QStringLiteral("yes"), tr("Wheelchair accessible"));
+ addTagDescription(m_wheelchairInfo, QStringLiteral("wheelchair"), QStringLiteral("no"), tr("Wheelchair inaccessible"));
+ addTagDescription(m_wheelchairInfo, QStringLiteral("wheelchair"), QStringLiteral("limited"), tr("Limited wheelchair accessibility"));
+ addTagDescription(m_wheelchairInfo, QStringLiteral("wheelchair"), QStringLiteral("designated"), tr("Wheelchair access only"));
+
+ // Check if there is localized description
+ auto const & osmData = m_placemark.osmData();
+ QStringList const uiLanguages = QLocale::system().uiLanguages();
+ foreach (const QString &uiLanguage, uiLanguages) {
+ for (auto tagIter = osmData.tagsBegin(), end = osmData.tagsEnd(); tagIter != end; ++tagIter) {
+ if (tagIter.key().startsWith(QLatin1String("wheelchair:description:"))) {
+ QStringRef const tagLanguage = tagIter.key().midRef(23);
+ if (tagLanguage == uiLanguage) {
+ append(m_wheelchairInfo, tagIter.value());
+ return m_wheelchairInfo;
+ }
+ }
+ }
+ }
+
+ addTagValue(m_wheelchairInfo, "wheelchair:description");
+
+ return m_wheelchairInfo;
+}
+
void Placemark::setName(const QString & name)
{
if (m_placemark.displayName() == name) {