From 9a8a998dcd39c9609e201fbcd6c10b5e2adc572e Mon Sep 17 00:00:00 2001 From: Judit Bartha Date: Tue, 27 Jun 2017 18:35:36 +0300 Subject: [PATCH] Added callable phone number to Marble Maps --- src/apps/marble-maps/MarbleMaps.qrc | 1 + src/apps/marble-maps/PlacemarkDialog.qml | 10 ++++++++++ src/apps/marble-maps/package/AndroidManifest.xml | 1 + src/lib/marble/declarative/Placemark.cpp | 12 ++++++++++++ src/lib/marble/declarative/Placemark.h | 4 ++++ 5 files changed, 28 insertions(+) diff --git a/src/apps/marble-maps/MarbleMaps.qrc b/src/apps/marble-maps/MarbleMaps.qrc index 9080e5f4d..cdb07902c 100644 --- a/src/apps/marble-maps/MarbleMaps.qrc +++ b/src/apps/marble-maps/MarbleMaps.qrc @@ -88,5 +88,6 @@ konqi/konqi-books.png RouteProfileRadioButton.qml MarbleScrollBar.qml + material-icons/ic_phone_black_48px.svg diff --git a/src/apps/marble-maps/PlacemarkDialog.qml b/src/apps/marble-maps/PlacemarkDialog.qml index 04e4cb7b7..a31f3a44c 100644 --- a/src/apps/marble-maps/PlacemarkDialog.qml +++ b/src/apps/marble-maps/PlacemarkDialog.qml @@ -100,6 +100,16 @@ Item { onLinkActivated: Qt.openUrlExternally(link) } + IconText { + width: parent.width + visible: phone.length > 0 + property string phone: placemark === null ? "" : placemark.phone + text: "" + phone + "" + icon: "qrc:/material/phone.svg" + maximumLineCount: 1 + onLinkActivated: Qt.openUrlExternally(link) + } + IconText { width: parent.width visible: url.length > 0 diff --git a/src/apps/marble-maps/package/AndroidManifest.xml b/src/apps/marble-maps/package/AndroidManifest.xml index a805904c8..83a052434 100644 --- a/src/apps/marble-maps/package/AndroidManifest.xml +++ b/src/apps/marble-maps/package/AndroidManifest.xml @@ -4,6 +4,7 @@ + diff --git a/src/lib/marble/declarative/Placemark.cpp b/src/lib/marble/declarative/Placemark.cpp index ef260f621..5a260e429 100644 --- a/src/lib/marble/declarative/Placemark.cpp +++ b/src/lib/marble/declarative/Placemark.cpp @@ -39,6 +39,7 @@ void Placemark::setGeoDataPlacemark( const Marble::GeoDataPlacemark &placemark ) m_openingHours = QString(); m_wheelchairInfo = QString(); m_wifiAvailable = QString(); + m_phone = QString(); updateTags(); updateRelations(placemark); emit coordinatesChanged(); @@ -50,6 +51,7 @@ void Placemark::setGeoDataPlacemark( const Marble::GeoDataPlacemark &placemark ) emit openingHoursChanged(); emit wheelchairInfoChanged(); emit wifiAvailabilityChanged(); + emit phoneChanged(); emit tagsChanged(); } @@ -585,6 +587,16 @@ QString Placemark::wifiAvailable() const return m_wifiAvailable; } +QString Placemark::phone() const +{ + if (!m_phone.isEmpty()) { + return m_phone; + } + + addTagValue(m_phone, "phone"); + return m_phone; +} + void Placemark::setName(const QString & name) { if (m_placemark.displayName() == name) { diff --git a/src/lib/marble/declarative/Placemark.h b/src/lib/marble/declarative/Placemark.h index 6c7bff7dc..71dfc13fa 100644 --- a/src/lib/marble/declarative/Placemark.h +++ b/src/lib/marble/declarative/Placemark.h @@ -36,6 +36,7 @@ class Placemark : public QObject Q_PROPERTY(QString coordinates READ coordinates NOTIFY coordinatesChanged) Q_PROPERTY(QString wheelchairInfo READ wheelchairInfo NOTIFY wheelchairInfoChanged) Q_PROPERTY(QString wifiAvailable READ wifiAvailable NOTIFY wifiAvailabilityChanged) + Q_PROPERTY(QString phone READ phone NOTIFY phoneChanged) Q_PROPERTY(double longitude READ longitude NOTIFY coordinatesChanged) Q_PROPERTY(double latitude READ latitude NOTIFY coordinatesChanged) Q_PROPERTY(QStringList tags READ tags NOTIFY tagsChanged) @@ -60,6 +61,7 @@ public: QString coordinates() const; QString wheelchairInfo() const; QString wifiAvailable() const; + QString phone() const; double longitude() const; double latitude() const; const QStringList & tags() const; @@ -79,6 +81,7 @@ Q_SIGNALS: void openingHoursChanged(); void wheelchairInfoChanged(); void wifiAvailabilityChanged(); + void phoneChanged(); void tagsChanged(); void routeRelationModelChanged(); @@ -101,6 +104,7 @@ private: mutable QString m_openingHours; mutable QString m_wheelchairInfo; mutable QString m_wifiAvailable; + mutable QString m_phone; QStringList m_tags; RouteRelationModel m_relationModel; -- GitLab