From 86a943d143565cc5e0de640708ae1aacf73f3ac9 Mon Sep 17 00:00:00 2001 From: Michal Biesiada Date: Thu, 20 Feb 2020 02:43:08 +0000 Subject: [PATCH 1/3] Translated using Weblate (Polish) Currently translated at 98.5% (346 of 351 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/pl/ --- lang/gpxsee_pl.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_pl.ts b/lang/gpxsee_pl.ts index 75891aa2..bc95008a 100644 --- a/lang/gpxsee_pl.ts +++ b/lang/gpxsee_pl.ts @@ -1890,7 +1890,7 @@ Address - + Adres From 23c18d4acdd2fe8366969b8379e0d26cec05c43b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sat, 7 Mar 2020 19:24:39 +0100 Subject: [PATCH 2/3] Optimization --- src/map/imgmap.cpp | 11 ++++------- src/map/imgmap.h | 3 ++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/map/imgmap.cpp b/src/map/imgmap.cpp index 9293f714..33077095 100644 --- a/src/map/imgmap.cpp +++ b/src/map/imgmap.cpp @@ -260,13 +260,6 @@ void IMGMap::unload() _data->clear(); } -QRectF IMGMap::bounds() -{ - RectD prect(_data->bounds(), _projection); - return QRectF(_transform.proj2img(prect.topLeft()), - _transform.proj2img(prect.bottomRight())); -} - int IMGMap::zoomFit(const QSize &size, const RectC &rect) { if (rect.isValid()) { @@ -320,6 +313,10 @@ Transform IMGMap::transform(int zoom) const void IMGMap::updateTransform() { _transform = transform(_zoom); + + RectD prect(_data->bounds(), _projection); + _bounds = QRectF(_transform.proj2img(prect.topLeft()), + _transform.proj2img(prect.bottomRight())); } QPointF IMGMap::ll2xy(const Coordinates &c) diff --git a/src/map/imgmap.h b/src/map/imgmap.h index 03dec65b..1618fe36 100644 --- a/src/map/imgmap.h +++ b/src/map/imgmap.h @@ -18,7 +18,7 @@ public: QString name() const {return _data->name();} - QRectF bounds(); + QRectF bounds() {return _bounds;} virtual int zoom() const {return _zoom;} virtual void setZoom(int zoom); @@ -62,6 +62,7 @@ private: int _zoom; Projection _projection; Transform _transform; + QRectF _bounds; bool _valid; QString _errorString; From aea17c9fedd3c688cc1ea42d13bc0540c0604d05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 9 Mar 2020 20:04:13 +0100 Subject: [PATCH 3/3] Added support for GPX comments (cmt tag) Closes #272 --- src/GUI/routeitem.cpp | 3 +++ src/GUI/routeitem.h | 1 + src/GUI/trackitem.cpp | 3 +++ src/GUI/trackitem.h | 1 + src/GUI/waypointitem.cpp | 4 ++++ src/data/gpiparser.cpp | 8 ++++---- src/data/gpxparser.cpp | 6 ++++++ src/data/route.h | 1 + src/data/routedata.h | 3 +++ src/data/track.h | 1 + src/data/trackdata.h | 3 +++ src/data/waypoint.h | 3 +++ 12 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/GUI/routeitem.cpp b/src/GUI/routeitem.cpp index 0ae7c43f..0f83b3ab 100644 --- a/src/GUI/routeitem.cpp +++ b/src/GUI/routeitem.cpp @@ -15,6 +15,8 @@ QString RouteItem::info() const tt.insert(tr("Name"), _name); if (!_desc.isEmpty()) tt.insert(tr("Description"), _desc); + if (!_comment.isEmpty() && _comment != _desc) + tt.insert(tr("Comment"), _comment); tt.insert(tr("Distance"), Format::distance(path().last().last().distance(), _units)); if (!_links.isEmpty()) { @@ -43,6 +45,7 @@ RouteItem::RouteItem(const Route &route, Map *map, QGraphicsItem *parent) _name = route.name(); _desc = route.description(); + _comment = route.comment(); _links = route.links(); _coordinatesFormat = DecimalDegrees; } diff --git a/src/GUI/routeitem.h b/src/GUI/routeitem.h index 9811e342..8295201f 100644 --- a/src/GUI/routeitem.h +++ b/src/GUI/routeitem.h @@ -29,6 +29,7 @@ public: private: QString _name; QString _desc; + QString _comment; QVector _links; CoordinatesFormat _coordinatesFormat; diff --git a/src/GUI/trackitem.cpp b/src/GUI/trackitem.cpp index d5b83705..b4629fd9 100644 --- a/src/GUI/trackitem.cpp +++ b/src/GUI/trackitem.cpp @@ -13,6 +13,8 @@ QString TrackItem::info() const tt.insert(tr("Name"), _name); if (!_desc.isEmpty()) tt.insert(tr("Description"), _desc); + if (!_comment.isEmpty() && _comment != _desc) + tt.insert(tr("Comment"), _comment); tt.insert(tr("Distance"), Format::distance(path().last().last().distance(), _units)); if (_time > 0) @@ -41,6 +43,7 @@ TrackItem::TrackItem(const Track &track, Map *map, QGraphicsItem *parent) { _name = track.name(); _desc = track.description(); + _comment = track.comment(); _links = track.links(); _date = track.date(); _time = track.time(); diff --git a/src/GUI/trackitem.h b/src/GUI/trackitem.h index 41f01863..0edd1049 100644 --- a/src/GUI/trackitem.h +++ b/src/GUI/trackitem.h @@ -22,6 +22,7 @@ public: private: QString _name; QString _desc; + QString _comment; QVector _links; QDateTime _date; qreal _time; diff --git a/src/GUI/waypointitem.cpp b/src/GUI/waypointitem.cpp index f32c6366..cc05bb83 100644 --- a/src/GUI/waypointitem.cpp +++ b/src/GUI/waypointitem.cpp @@ -30,6 +30,10 @@ QString WaypointItem::info() const if (!_waypoint.description().isEmpty()) tt.insert(qApp->translate("WaypointItem", "Description"), _waypoint.description()); + if (!_waypoint.comment().isEmpty() + && _waypoint.comment() != _waypoint.description()) + tt.insert(qApp->translate("WaypointItem", "Comment"), + _waypoint.comment()); if (_waypoint.address().isValid()) { QString addr("
"); addr += _waypoint.address().street(); diff --git a/src/data/gpiparser.cpp b/src/data/gpiparser.cpp index 2a9ab74e..676b25f1 100644 --- a/src/data/gpiparser.cpp +++ b/src/data/gpiparser.cpp @@ -282,14 +282,14 @@ static quint32 readNotes(QDataStream &stream, QTextCodec *codec, if (s1 & 0x1) { QList obj; ds += readTranslatedObjects(stream, codec, obj); - if (!obj.isEmpty() && waypoint.description().isNull()) - waypoint.setDescription(obj.first().str()); + if (!obj.isEmpty()) + waypoint.setComment(obj.first().str()); } if (s1 & 0x2) { QString str; ds += readString(stream, codec, str); - if (!str.isEmpty() && waypoint.description().isNull()) - waypoint.setDescription(str); + if (!str.isEmpty()) + waypoint.setComment(str); } if (ds != rh.size) diff --git a/src/data/gpxparser.cpp b/src/data/gpxparser.cpp index a5d67eaf..debb0e19 100644 --- a/src/data/gpxparser.cpp +++ b/src/data/gpxparser.cpp @@ -192,6 +192,8 @@ void GPXParser::waypointData(Waypoint &waypoint, SegmentData *autoRoute) waypoint.setName(_reader.readElementText()); else if (_reader.name() == QLatin1String("desc")) waypoint.setDescription(_reader.readElementText()); + else if (_reader.name() == QLatin1String("cmt")) + waypoint.setComment(_reader.readElementText()); else if (_reader.name() == QLatin1String("ele")) waypoint.setElevation(number()); else if (_reader.name() == QLatin1String("geoidheight")) @@ -244,6 +246,8 @@ void GPXParser::routepoints(RouteData &route, QList &tracks) route.setName(_reader.readElementText()); else if (_reader.name() == QLatin1String("desc")) route.setDescription(_reader.readElementText()); + else if (_reader.name() == QLatin1String("cmt")) + route.setComment(_reader.readElementText()); else if (_reader.name() == QLatin1String("link")) { Link l(link()); if (!l.URL().isEmpty()) @@ -278,6 +282,8 @@ void GPXParser::track(TrackData &track) track.setName(_reader.readElementText()); else if (_reader.name() == QLatin1String("desc")) track.setDescription(_reader.readElementText()); + else if (_reader.name() == QLatin1String("cmt")) + track.setComment(_reader.readElementText()); else if (_reader.name() == QLatin1String("link")) { Link l(link()); if (!l.URL().isEmpty()) diff --git a/src/data/route.h b/src/data/route.h index 414a984f..e3eda33a 100644 --- a/src/data/route.h +++ b/src/data/route.h @@ -21,6 +21,7 @@ public: const QString &name() const {return _data.name();} const QString &description() const {return _data.description();} + const QString &comment() const {return _data.comment();} const QVector &links() const {return _data.links();} bool isValid() const {return _data.size() >= 2;} diff --git a/src/data/routedata.h b/src/data/routedata.h index 0c614dfd..2c1e6ade 100644 --- a/src/data/routedata.h +++ b/src/data/routedata.h @@ -11,15 +11,18 @@ class RouteData : public QVector public: const QString &name() const {return _name;} const QString &description() const {return _desc;} + const QString &comment() const {return _comment;} const QVector &links() const {return _links;} void setName(const QString &name) {_name = name;} void setDescription(const QString &desc) {_desc = desc;} + void setComment(const QString &comment) {_comment = comment;} void addLink(const Link &link) {_links.append(link);} private: QString _name; QString _desc; + QString _comment; QVector _links; }; diff --git a/src/data/track.h b/src/data/track.h index 00c4394b..09a294b0 100644 --- a/src/data/track.h +++ b/src/data/track.h @@ -32,6 +32,7 @@ public: const QString &name() const {return _data.name();} const QString &description() const {return _data.description();} + const QString &comment() const {return _data.comment();} const QVector &links() const {return _data.links();} bool isValid() const; diff --git a/src/data/trackdata.h b/src/data/trackdata.h index 18c872a7..c1ff1b2c 100644 --- a/src/data/trackdata.h +++ b/src/data/trackdata.h @@ -14,15 +14,18 @@ class TrackData : public QList public: const QString &name() const {return _name;} const QString &description() const {return _desc;} + const QString &comment() const {return _comment;} const QVector &links() const {return _links;} void setName(const QString &name) {_name = name;} void setDescription(const QString &desc) {_desc = desc;} + void setComment(const QString &comment) {_comment = comment;} void addLink(const Link &link) {_links.append(link);} private: QString _name; QString _desc; + QString _comment; QVector _links; }; diff --git a/src/data/waypoint.h b/src/data/waypoint.h index c7d9d706..03e23f19 100644 --- a/src/data/waypoint.h +++ b/src/data/waypoint.h @@ -21,6 +21,7 @@ public: const Coordinates &coordinates() const {return _coordinates;} const QString &name() const {return _name;} const QString &description() const {return _description;} + const QString &comment() const {return _comment;} const Address &address() const {return _address;} const QVector &images() const {return _images;} const QVector &links() const {return _links;} @@ -32,6 +33,7 @@ public: void setName(const QString &name) {_name = name;} void setDescription(const QString &description) {_description = description;} + void setComment(const QString &comment) {_comment = comment;} void setAddress(const Address &address) {_address = address;} void setTimestamp(const QDateTime ×tamp) {_timestamp = timestamp;} void setElevation(qreal elevation) {_elevation = elevation;} @@ -48,6 +50,7 @@ private: Coordinates _coordinates; QString _name; QString _description; + QString _comment; Address _address; QVector _images; QVector _links;