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;