Hello community, here is the log from the commit of package gpxsee for openSUSE:Factory checked in at 2017-10-19 19:33:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gpxsee (Old) and /work/SRC/openSUSE:Factory/.gpxsee.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpxsee" Thu Oct 19 19:33:08 2017 rev:16 rq:535016 version:4.16 Changes: -------- --- /work/SRC/openSUSE:Factory/gpxsee/gpxsee.changes 2017-10-08 20:15:31.447196358 +0200 +++ /work/SRC/openSUSE:Factory/.gpxsee.new/gpxsee.changes 2017-10-19 19:33:09.701999133 +0200 @@ -1,0 +2,11 @@ +Wed Oct 18 00:06:27 CEST 2017 - [email protected] + +- Update to version 4.16 + * Fixed broken loading of KML files with folder elements outside + document element. + * Added support for KML files with multitracks. + * Added support for Temperature, Cadence and Heartrate in KML + files. + * Added support for TCX multi-sport activities. + +------------------------------------------------------------------- Old: ---- GPXSee-4.15.tar.gz New: ---- GPXSee-4.16.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gpxsee.spec ++++++ --- /var/tmp/diff_new_pack.sLraEP/_old 2017-10-19 19:33:10.401966383 +0200 +++ /var/tmp/diff_new_pack.sLraEP/_new 2017-10-19 19:33:10.405966196 +0200 @@ -19,7 +19,7 @@ # See also http://en.opensuse.org/openSUSE:Specfile_guidelines Name: gpxsee -Version: 4.15 +Version: 4.16 Release: 1 Summary: GPS log files visualizing and analyzing tool License: GPL-3.0 ++++++ GPXSee-4.15.tar.gz -> GPXSee-4.16.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/.appveyor.yml new/GPXSee-4.16/.appveyor.yml --- old/GPXSee-4.15/.appveyor.yml 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/.appveyor.yml 2017-10-14 22:57:03.000000000 +0200 @@ -1,4 +1,4 @@ -version: 4.15.{build} +version: 4.16.{build} configuration: Release platform: Any CPU environment: Binary files old/GPXSee-4.15/cert/mac/gpxsee.cer and new/GPXSee-4.16/cert/mac/gpxsee.cer differ Binary files old/GPXSee-4.15/cert/win/gpxsee.cer and new/GPXSee-4.16/cert/win/gpxsee.cer differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/gpxsee.pro new/GPXSee-4.16/gpxsee.pro --- old/GPXSee-4.15/gpxsee.pro 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/gpxsee.pro 2017-10-14 22:57:03.000000000 +0200 @@ -1,5 +1,5 @@ TARGET = GPXSee -VERSION = 4.15 +VERSION = 4.16 QT += core \ gui \ network Binary files old/GPXSee-4.15/pkg/gpxsee.cer and new/GPXSee-4.16/pkg/gpxsee.cer differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/pkg/gpxsee.nsi new/GPXSee-4.16/pkg/gpxsee.nsi --- old/GPXSee-4.15/pkg/gpxsee.nsi 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/pkg/gpxsee.nsi 2017-10-14 22:57:03.000000000 +0200 @@ -5,7 +5,7 @@ ; The name of the installer Name "GPXSee" ; Program version -!define VERSION "4.15" +!define VERSION "4.16" ; The file to write OutFile "GPXSee-${VERSION}.exe" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/pkg/gpxsee64.nsi new/GPXSee-4.16/pkg/gpxsee64.nsi --- old/GPXSee-4.15/pkg/gpxsee64.nsi 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/pkg/gpxsee64.nsi 2017-10-14 22:57:03.000000000 +0200 @@ -5,7 +5,7 @@ ; The name of the installer Name "GPXSee" ; Program version -!define VERSION "4.15" +!define VERSION "4.16" ; The file to write OutFile "GPXSee-${VERSION}_x64.exe" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/src/gui.cpp new/GPXSee-4.16/src/gui.cpp --- old/GPXSee-4.15/src/gui.cpp 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/src/gui.cpp 2017-10-14 22:57:03.000000000 +0200 @@ -187,7 +187,7 @@ } } - _map = _ml->maps().isEmpty() ? new EmptyMap(this) : _ml->maps().first(); + _map = new EmptyMap(this); } void GUI::loadPOIs() @@ -1711,9 +1711,7 @@ _showMapAction->setChecked(true); if (_ml->maps().count()) { int index = mapIndex(settings.value(CURRENT_MAP_SETTING).toString()); - _mapActions.at(index)->setChecked(true); - _map = _ml->maps().at(index); - _pathView->setMap(_map); + _mapActions.at(index)->trigger(); } settings.endGroup(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/src/kmlparser.cpp new/GPXSee-4.16/src/kmlparser.cpp --- old/GPXSee-4.15/src/kmlparser.cpp 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/src/kmlparser.cpp 2017-10-14 22:57:03.000000000 +0200 @@ -225,10 +225,127 @@ _reader.raiseError("Missing Point coordinates"); } +void KMLParser::heartRate(TrackData &track, int start) +{ + int i = start; + const char error[] = "Heartrate data count mismatch"; + + while (_reader.readNextStartElement()) { + if (_reader.name() == "value") { + if (i < track.size()) + track[i++].setHeartRate(number()); + else { + _reader.raiseError(error); + return; + } + } else + _reader.skipCurrentElement(); + } + + if (i != track.size()) + _reader.raiseError(error); +} + +void KMLParser::cadence(TrackData &track, int start) +{ + int i = start; + const char error[] = "Cadence data count mismatch"; + + while (_reader.readNextStartElement()) { + if (_reader.name() == "value") { + if (i < track.size()) + track[i++].setCadence(number()); + else { + _reader.raiseError(error); + return; + } + } else + _reader.skipCurrentElement(); + } + + if (i != track.size()) + _reader.raiseError(error); +} + +void KMLParser::speed(TrackData &track, int start) +{ + int i = start; + const char error[] = "Speed data count mismatch"; + + while (_reader.readNextStartElement()) { + if (_reader.name() == "value") { + if (i < track.size()) + track[i++].setSpeed(number()); + else { + _reader.raiseError(error); + return; + } + } else + _reader.skipCurrentElement(); + } + + if (i != track.size()) + _reader.raiseError(error); +} + +void KMLParser::temperature(TrackData &track, int start) +{ + int i = start; + const char error[] = "Temperature data count mismatch"; + + while (_reader.readNextStartElement()) { + if (_reader.name() == "value") { + if (i < track.size()) + track[i++].setTemperature(number()); + else { + _reader.raiseError(error); + return; + } + } else + _reader.skipCurrentElement(); + } + + if (i != track.size()) + _reader.raiseError(error); +} + +void KMLParser::schemaData(TrackData &track, int start) +{ + while (_reader.readNextStartElement()) { + if (_reader.name() == "SimpleArrayData") { + QXmlStreamAttributes attr = _reader.attributes(); + QStringRef name = attr.value("name"); + + if (name == "Heartrate") + heartRate(track, start); + else if (name == "Cadence") + cadence(track, start); + else if (name == "Speed") + speed(track, start); + else if (name == "Temperature") + temperature(track, start); + else + _reader.skipCurrentElement(); + } else + _reader.skipCurrentElement(); + } +} + +void KMLParser::extendedData(TrackData &track, int start) +{ + while (_reader.readNextStartElement()) { + if (_reader.name() == "SchemaData") + schemaData(track, start); + else + _reader.skipCurrentElement(); + } +} + void KMLParser::track(TrackData &track) { - const char mismatchError[] = "gx:coord/when element count mismatch"; - int i = track.size(); + const char error[] = "gx:coord/when element count mismatch"; + int first = track.size(); + int i = first; while (_reader.readNextStartElement()) { if (_reader.name() == "when") { @@ -236,19 +353,31 @@ track.last().setTimestamp(time()); } else if (_reader.name() == "coord") { if (i == track.size()) { - _reader.raiseError(mismatchError); + _reader.raiseError(error); return; } else if (!coord(track[i])) { _reader.raiseError("Invalid coordinates"); return; } i++; - } else + } else if (_reader.name() == "ExtendedData") + extendedData(track, first); + else _reader.skipCurrentElement(); } if (i != track.size()) - _reader.raiseError(mismatchError); + _reader.raiseError(error); +} + +void KMLParser::multiTrack(TrackData &t) +{ + while (_reader.readNextStartElement()) { + if (_reader.name() == "Track") + track(t); + else + _reader.skipCurrentElement(); + } } void KMLParser::multiGeometry(QList<TrackData> &tracks, @@ -308,6 +437,12 @@ t.setName(name); t.setDescription(desc); track(t); + } else if (_reader.name() == "MultiTrack") { + tracks.append(TrackData()); + TrackData &t = tracks.last(); + t.setName(name); + t.setDescription(desc); + multiTrack(t); } else _reader.skipCurrentElement(); } @@ -344,6 +479,8 @@ document(tracks, waypoints); else if (_reader.name() == "Placemark") placemark(tracks, waypoints); + else if (_reader.name() == "Folder") + folder(tracks, waypoints); else _reader.skipCurrentElement(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/src/kmlparser.h new/GPXSee-4.16/src/kmlparser.h --- old/GPXSee-4.15/src/kmlparser.h 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/src/kmlparser.h 2017-10-14 22:57:03.000000000 +0200 @@ -23,11 +23,18 @@ void multiGeometry(QList<TrackData> &tracks, QList<Waypoint> &waypoints, const QString &name, const QString &desc, const QDateTime timestamp); void track(TrackData &track); + void multiTrack(TrackData &t); void lineString(TrackData &track); void point(Waypoint &waypoint); bool pointCoordinates(Waypoint &waypoint); bool lineCoordinates(TrackData &track); bool coord(Trackpoint &trackpoint); + void extendedData(TrackData &track, int start); + void schemaData(TrackData &track, int start); + void heartRate(TrackData &track, int start); + void cadence(TrackData &track, int start); + void speed(TrackData &track, int start); + void temperature(TrackData &track, int start); QDateTime timeStamp(); qreal number(); QDateTime time(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/src/pathview.cpp new/GPXSee-4.16/src/pathview.cpp --- old/GPXSee-4.15/src/pathview.cpp 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/src/pathview.cpp 2017-10-14 22:57:03.000000000 +0200 @@ -43,8 +43,10 @@ _scene->addItem(_mapScale); _map = map; - _poi = poi; + _map->load(); connect(_map, SIGNAL(loaded()), this, SLOT(reloadMap())); + + _poi = poi; connect(_poi, SIGNAL(pointsChanged()), this, SLOT(updatePOI())); _units = Metric; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/src/tcxparser.cpp new/GPXSee-4.16/src/tcxparser.cpp --- old/GPXSee-4.15/src/tcxparser.cpp 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/src/tcxparser.cpp 2017-10-14 22:57:03.000000000 +0200 @@ -183,7 +183,7 @@ } } -void TCXParser::activities(QList<TrackData> &tracks) +void TCXParser::sport(QList<TrackData> &tracks) { while (_reader.readNextStartElement()) { if (_reader.name() == "Activity") { @@ -193,6 +193,29 @@ _reader.skipCurrentElement(); } } + +void TCXParser::multiSportSession(QList<TrackData> &tracks) +{ + while (_reader.readNextStartElement()) { + if (_reader.name() == "FirstSport" || _reader.name() == "NextSport") + sport(tracks); + else + _reader.skipCurrentElement(); + } +} + +void TCXParser::activities(QList<TrackData> &tracks) +{ + while (_reader.readNextStartElement()) { + if (_reader.name() == "Activity") { + tracks.append(TrackData()); + activity(tracks.back()); + } else if (_reader.name() == "MultiSportSession") + multiSportSession(tracks); + else + _reader.skipCurrentElement(); + } +} void TCXParser::tcx(QList<TrackData> &tracks, QList<Waypoint> &waypoints) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-4.15/src/tcxparser.h new/GPXSee-4.16/src/tcxparser.h --- old/GPXSee-4.15/src/tcxparser.h 2017-10-04 23:15:39.000000000 +0200 +++ new/GPXSee-4.16/src/tcxparser.h 2017-10-14 22:57:03.000000000 +0200 @@ -19,6 +19,8 @@ void tcx(QList<TrackData> &tracks, QList<Waypoint> &waypoints); void courses(QList<TrackData> &tracks, QList<Waypoint> &waypoints); void activities(QList<TrackData> &tracks); + void multiSportSession(QList<TrackData> &tracks); + void sport(QList<TrackData> &tracks); void course(QList<Waypoint> &waypoints, TrackData &track); void activity(TrackData &track); void lap(TrackData &track); ++++++ debian.changelog ++++++ --- /var/tmp/diff_new_pack.sLraEP/_old 2017-10-19 19:33:10.613956465 +0200 +++ /var/tmp/diff_new_pack.sLraEP/_new 2017-10-19 19:33:10.613956465 +0200 @@ -1,3 +1,14 @@ +gpxsee (4.16) stable; urgency=low + + * Fixed broken loading of KML files with folder elements outside + document element. + * Added support for KML files with multitracks. + * Added support for Temperature, Cadence and Heartrate in KML + files. + * Added support for TCX multi-sport activities. + + -- Martin Tuma <[email protected]> Wed, 18 Oct 2017 00:12:16 +0200 + gpxsee (4.15) stable; urgency=low * Fixed the 1px content offset on zoom/map change issue. ++++++ gpxsee.dsc ++++++ --- /var/tmp/diff_new_pack.sLraEP/_old 2017-10-19 19:33:10.693952722 +0200 +++ /var/tmp/diff_new_pack.sLraEP/_new 2017-10-19 19:33:10.697952535 +0200 @@ -1,9 +1,9 @@ Format: 1.0 Source: gpxsee -Version: 4.15 +Version: 4.16 Binary: gpxsee Maintainer: Martin Tuma <[email protected]> Architecture: any Build-Depends: debhelper (>= 9), qtbase5-dev, qtbase5-dev-tools, qt5-qmake, qttools5-dev-tools, libqt5opengl5-dev Files: - 00000000000000000000000000000000 0 GPXSee-4.15.tar.gz + 00000000000000000000000000000000 0 GPXSee-4.16.tar.gz
