From 7731cfaa4f01acf4520de75e3ca1a6040f4fa147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sat, 8 Mar 2025 18:05:44 +0100 Subject: [PATCH 01/33] Version++ --- .appveyor.yml | 2 +- gpxsee.pro | 2 +- pkg/windows/gpxsee64.nsi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 82250587..1708dcc8 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,4 +1,4 @@ -version: 13.37.{build} +version: 13.38.{build} configuration: - Release diff --git a/gpxsee.pro b/gpxsee.pro index be04573e..5978bb93 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -3,7 +3,7 @@ unix:!macx:!android { } else { TARGET = GPXSee } -VERSION = 13.37 +VERSION = 13.38 QT += core \ gui \ diff --git a/pkg/windows/gpxsee64.nsi b/pkg/windows/gpxsee64.nsi index e2ab96d4..824409cb 100644 --- a/pkg/windows/gpxsee64.nsi +++ b/pkg/windows/gpxsee64.nsi @@ -49,7 +49,7 @@ Unicode true ; The name of the installer Name "GPXSee" ; Program version -!define VERSION "13.37" +!define VERSION "13.38" ; The file to write OutFile "GPXSee-${VERSION}_x64.exe" From a2f1ef7572a0137651da2f80f63aa3d7c6ecb48d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sat, 8 Mar 2025 18:06:20 +0100 Subject: [PATCH 02/33] Silence MSVC C4018 warnings --- src/map/IMG/rgnfile.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/map/IMG/rgnfile.cpp b/src/map/IMG/rgnfile.cpp index 495ed69f..28f4cb5b 100644 --- a/src/map/IMG/rgnfile.cpp +++ b/src/map/IMG/rgnfile.cpp @@ -133,9 +133,7 @@ bool RGNFile::readBuoyInfo(Handle &hdl, quint8 flags, quint32 size, bool RGNFile::readLightInfo(Handle &hdl, quint8 flags, quint32 size, MapData::Point *point) const { - quint16 flags1; - quint8 flags2; - quint32 unused; + quint32 flags1, flags2, unused; if (!(size >= 3 && readUInt16(hdl, flags1) && readUInt8(hdl, flags2))) return false; From 94785ee2ec5867c52ec96d69210d1834c6996e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Tue, 11 Mar 2025 07:34:31 +0100 Subject: [PATCH 03/33] Added support for the "exclude" theme rules added in recent Mapsforge versions --- src/map/mapsforge/style.cpp | 4 +++- src/map/mapsforge/style.h | 11 ++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/map/mapsforge/style.cpp b/src/map/mapsforge/style.cpp index f3803b73..156c153e 100644 --- a/src/map/mapsforge/style.cpp +++ b/src/map/mapsforge/style.cpp @@ -116,13 +116,15 @@ QSet Style::Menu::cats() const } Style::Rule::Filter::Filter(const MapData &data, const QList &keys, - const QList &vals) : _neg(false) + const QList &vals) : _neg(false), _excl(false) { _keys = keyList(data, keys); QList vc(vals); if (vc.removeAll("~")) _neg = true; + if (vc.removeAll("-")) + _excl = true; _vals = valList(vc); } diff --git a/src/map/mapsforge/style.h b/src/map/mapsforge/style.h index a9367dcd..44ff15e0 100644 --- a/src/map/mapsforge/style.h +++ b/src/map/mapsforge/style.h @@ -38,7 +38,7 @@ public: class Filter { public: - Filter() : _neg(false) {} + Filter() : _neg(false), _excl(false) {} Filter(const MapData &data, const QList &keys, const QList &vals); @@ -47,14 +47,15 @@ public: if (_neg) { if (!keyMatches(tags)) return true; - return valueMatches(tags); + return valueMatches(tags) ^ _excl; } else - return (keyMatches(tags) && valueMatches(tags)); + return (keyMatches(tags) && (valueMatches(tags) ^ _excl)); } bool isTautology() const { - return (!_neg && _keys.contains(0u) && _vals.contains(QByteArray())); + return (!_neg && !_excl && _keys.contains(0u) + && _vals.contains(QByteArray())); } private: @@ -86,7 +87,7 @@ public: QList _keys; QList _vals; - bool _neg; + bool _neg, _excl; }; void setType(Type type) From 2eb527f2f3bb31d5472be1499ec69e713ffa6b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=93=D0=BE=D1=80?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D1=96=D1=87?= Date: Mon, 10 Mar 2025 22:32:04 +0100 Subject: [PATCH 04/33] Translated using Weblate (Ukrainian) Currently translated at 100.0% (490 of 490 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/uk/ --- lang/gpxsee_uk.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/gpxsee_uk.ts b/lang/gpxsee_uk.ts index 2219d8de..30d52c2f 100644 --- a/lang/gpxsee_uk.ts +++ b/lang/gpxsee_uk.ts @@ -167,7 +167,7 @@ 70mai GPS log files - + 70mai файли журналу GPS @@ -768,7 +768,7 @@ Error loading geo URI: - + Помилка завантаження geo URI: From f34d6b05409fc080f4887cb9afba299f76bd19cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 17:11:13 +0100 Subject: [PATCH 05/33] Fixed wrong oneway icon filename --- data/style/style.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/style/style.xml b/data/style/style.xml index 285619fc..4abcb8cf 100644 --- a/data/style/style.xml +++ b/data/style/style.xml @@ -403,7 +403,7 @@ - + From 8de6bbe4fb9c1af90705bedd4e2d03dec4cb9e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 17:14:14 +0100 Subject: [PATCH 06/33] Fixed maximal speed info Display the maximum of all primary graphs, not the maximum of all graphs. --- src/GUI/speedgraph.cpp | 12 ++++++++++++ src/GUI/speedgraph.h | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/GUI/speedgraph.cpp b/src/GUI/speedgraph.cpp index 8d26073c..d9f457f7 100644 --- a/src/GUI/speedgraph.cpp +++ b/src/GUI/speedgraph.cpp @@ -64,6 +64,7 @@ GraphItem *SpeedGraph::loadGraph(const Graph &graph, const Track &track, if (primary) { _avg.append(QPointF(track.distance(), gi->avg())); _mavg.append(QPointF(track.distance(), gi->mavg())); + _max.append(QPointF(track.distance(), gi->max())); } return gi; @@ -117,6 +118,16 @@ qreal SpeedGraph::avg() const return (sum / w); } +qreal SpeedGraph::max() const +{ + qreal mv = 0; + + for (int i = 0; i < _max.size(); i++) + mv = qMax(mv, _max.at(i).y()); + + return mv; +} + void SpeedGraph::clear() { qDeleteAll(_tracks); @@ -124,6 +135,7 @@ void SpeedGraph::clear() _avg.clear(); _mavg.clear(); + _max.clear(); GraphTab::clear(); } diff --git a/src/GUI/speedgraph.h b/src/GUI/speedgraph.h index f44b7b4a..febf16be 100644 --- a/src/GUI/speedgraph.h +++ b/src/GUI/speedgraph.h @@ -26,12 +26,13 @@ private: GraphItem *loadGraph(const Graph &graph, const Track &track, const QColor &color, bool primary); qreal avg() const; - qreal max() const {return bounds().bottom();} + qreal max() const; void setYUnits(); void setInfo(); QVector _avg; QVector _mavg; + QVector _max; Units _units; TimeType _timeType; From 912a00c80e5862f4ee2530b289e8cae737a07618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 17:15:33 +0100 Subject: [PATCH 07/33] Cosmetics --- src/data/fitparser.cpp | 3 +-- src/data/tcxparser.h | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/data/fitparser.cpp b/src/data/fitparser.cpp index e22bce5f..480b9d3e 100644 --- a/src/data/fitparser.cpp +++ b/src/data/fitparser.cpp @@ -467,8 +467,7 @@ bool FITParser::parseHeader(CTX &ctx) } bool FITParser::parse(QFile *file, QList &tracks, - QList &routes, - QList &polygons, QVector &waypoints) + QList &routes, QList &polygons, QVector &waypoints) { Q_UNUSED(routes); Q_UNUSED(polygons); diff --git a/src/data/tcxparser.h b/src/data/tcxparser.h index 685668b3..ff27aca9 100644 --- a/src/data/tcxparser.h +++ b/src/data/tcxparser.h @@ -4,7 +4,6 @@ #include #include "parser.h" - class TCXParser : public Parser { public: From 28f55b7e0da0915e92ca49c7d5d87db6088e9549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 17:17:09 +0100 Subject: [PATCH 08/33] Added support for Velocitek VTK files --- gpxsee.pro | 2 + src/data/data.cpp | 4 + src/data/vtkparser.cpp | 214 +++++++++++++++++++++++++++++++++++++++++ src/data/vtkparser.h | 18 ++++ 4 files changed, 238 insertions(+) create mode 100644 src/data/vtkparser.cpp create mode 100644 src/data/vtkparser.h diff --git a/gpxsee.pro b/gpxsee.pro index 5978bb93..befab9ef 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -118,6 +118,7 @@ HEADERS += src/common/config.h \ src/data/style.h \ src/data/twonavparser.h \ src/data/txtparser.h \ + src/data/vtkparser.h \ src/map/ENC/data.h \ src/map/IMG/light.h \ src/map/downloader.h \ @@ -346,6 +347,7 @@ SOURCES += src/main.cpp \ src/GUI/projectioncombobox.cpp \ src/GUI/passwordedit.cpp \ src/data/txtparser.cpp \ + src/data/vtkparser.cpp \ src/map/downloader.cpp \ src/map/demloader.cpp \ src/map/ENC/atlasdata.cpp \ diff --git a/src/data/data.cpp b/src/data/data.cpp index 6ed63882..ecba0159 100644 --- a/src/data/data.cpp +++ b/src/data/data.cpp @@ -24,6 +24,7 @@ #include "twonavparser.h" #include "gpsdumpparser.h" #include "txtparser.h" +#include "vtkparser.h" #include "data.h" @@ -51,6 +52,7 @@ static GHPParser ghp; static TwoNavParser twonav; static GPSDumpParser gpsdump; static TXTParser txt; +static VTKParser vtk; static QMultiMap parsers() { @@ -85,6 +87,7 @@ static QMultiMap parsers() map.insert("wpt", &twonav); map.insert("wpt", &gpsdump); map.insert("txt", &txt); + map.insert("vtk", &vtk); return map; } @@ -245,6 +248,7 @@ QString Data::formats() + qApp->translate("Data", "SML files") + " (*.sml);;" + qApp->translate("Data", "TCX files") + " (*.tcx);;" + qApp->translate("Data", "70mai GPS log files") + " (*.txt);;" + + qApp->translate("Data", "VTK files") + " (*.vtk);;" + qApp->translate("Data", "TwoNav files") + " (*.rte *.trk *.wpt);;" + qApp->translate("Data", "GPSDump files") + " (*.wpt);;" + qApp->translate("Data", "All files") + " (*)"; diff --git a/src/data/vtkparser.cpp b/src/data/vtkparser.cpp new file mode 100644 index 00000000..523e0798 --- /dev/null +++ b/src/data/vtkparser.cpp @@ -0,0 +1,214 @@ +#include +#include +#include "vtkparser.h" + +#define TYPE(tag) (tag & 0x07) +#define FIELD(tag) (tag >> 3) + +#define VARINT 0 +#define I64 1 +#define LEN 2 +#define I32 5 + +struct CTX +{ + CTX(const QByteArray &ba) + : bp(ba.constData()), be(bp + ba.size()), tag(0) {} + + const char *bp; + const char *be; + quint32 tag; +}; + +static inline qint32 zigzag32decode(quint32 value) +{ + return static_cast((value >> 1u) ^ static_cast( + -static_cast(value & 1u))); +} + +template +static bool varint(CTX &ctx, T &val) +{ + unsigned int shift = 0; + val = 0; + + while (ctx.bp < ctx.be) { + val |= ((quint8)*ctx.bp & 0x7F) << shift; + shift += 7; + if (!((quint8)*ctx.bp++ & 0x80)) + return true; + } + + return false; +} + +static bool length(CTX &ctx, qint32 &val) +{ + if (TYPE(ctx.tag) != LEN) + return false; + + if (!varint(ctx, val)) + return false; + + return (val >= 0); +} + +static bool skip(CTX &ctx) +{ + qint32 len = 0; + + switch (TYPE(ctx.tag)) { + case VARINT: + return varint(ctx, len); + case I64: + len = 8; + break; + case LEN: + if (!varint(ctx, len) || len < 0) + return false; + break; + case I32: + len = 4; + break; + default: + return false; + } + + if (ctx.bp + len > ctx.be) + return false; + ctx.bp += len; + + return true; +} + +static bool trackpoint(CTX &ctx, Trackpoint &t) +{ + qint32 len, lon = 0xFFFFFFF, lat = 0xFFFFFFF; + quint32 val, seconds = 0, centiSeconds = 0, speed = 0; + + if (!length(ctx, len)) + return false; + + const char *ee = ctx.bp + len; + if (ee > ctx.be) + return false; + + while (ctx.bp < ee) { + if (!varint(ctx, ctx.tag)) + return false; + + switch (FIELD(ctx.tag)) { + case 1: + if (TYPE(ctx.tag) != VARINT) + return false; + if (!varint(ctx, seconds)) + return false; + break; + case 2: + if (TYPE(ctx.tag) != VARINT) + return false; + if (!varint(ctx, centiSeconds)) + return false; + break; + case 3: + if (TYPE(ctx.tag) != VARINT) + return false; + if (!varint(ctx, val)) + return false; + lat = zigzag32decode(val); + break; + case 4: + if (TYPE(ctx.tag) != VARINT) + return false; + if (!varint(ctx, val)) + return false; + lon = zigzag32decode(val); + break; + case 5: + if (TYPE(ctx.tag) != VARINT) + return false; + if (!varint(ctx, speed)) + return false; + break; + default: + if (!skip(ctx)) + return false; + } + } + + t.setCoordinates(Coordinates(lon / 1e7, lat / 1e7)); + t.setTimestamp(QDateTime::fromMSecsSinceEpoch( + ((qint64)seconds * 1000) + ((qint64)centiSeconds * 10), + QTimeZone::utc())); + t.setSpeed(speed / 5.1444); + + return (ctx.bp == ee); +} + +static bool record(CTX &ctx, Trackpoint &t) +{ + while (ctx.bp < ctx.be) { + if (!varint(ctx, ctx.tag)) + return false; + + switch (FIELD(ctx.tag)) { + case 1: + if (!trackpoint(ctx, t)) + return false; + break; + default: + if (!skip(ctx)) + return false; + } + } + + return (ctx.bp == ctx.be); +} + +bool VTKParser::parse(QFile *file, QList &tracks, + QList &routes, QList &polygons, QVector &waypoints) +{ + Q_UNUSED(routes); + Q_UNUSED(polygons); + Q_UNUSED(waypoints); + qint64 len; + quint16 recordLen; + QByteArray ba; + SegmentData segment; + Trackpoint t; + + _errorString = ""; + + while (true) { + len = file->read((char*)&recordLen, 2); + if (len < 0) { + _errorString = "I/O error"; + return false; + } else if (len == 0) + break; + + recordLen = qFromLittleEndian(recordLen); + ba.resize(recordLen); + if (file->read(ba.data(), ba.size()) != ba.size()) { + _errorString = "Error reading VTK record"; + return false; + } + + CTX ctx(ba); + t.setCoordinates(Coordinates()); + if (!record(ctx, t)) { + _errorString = "Invalid VTK record"; + return false; + } else { + if (t.coordinates().isValid()) + segment.append(t); + else if (!t.coordinates().isNull()) { + _errorString = "Invalid VTK record coordinates"; + return false; + } + } + } + + tracks.append(segment); + return true; +} diff --git a/src/data/vtkparser.h b/src/data/vtkparser.h new file mode 100644 index 00000000..81e0cab8 --- /dev/null +++ b/src/data/vtkparser.h @@ -0,0 +1,18 @@ +#ifndef VTKPARSER_H +#define VTKPARSER_H + +#include "parser.h" + +class VTKParser : public Parser +{ +public: + bool parse(QFile *file, QList &tracks, QList &routes, + QList &polygons, QVector &waypoints); + QString errorString() const {return _errorString;} + int errorLine() const {return 0;} + +private: + QString _errorString; +}; + +#endif // VTKPARSER_H From 8169015f70178b032319d492922baad1df7336f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 17:32:36 +0100 Subject: [PATCH 09/33] Added missing trunk roads names --- data/style/style.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/style/style.xml b/data/style/style.xml index 4abcb8cf..86c1f448 100644 --- a/data/style/style.xml +++ b/data/style/style.xml @@ -428,6 +428,12 @@ + + + + + + From 2041cc7ff57f5fb791f1e835d89f5e31905e008d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 17:37:37 +0100 Subject: [PATCH 10/33] Added Velocitek VTK files Linux desktop integration --- pkg/linux/gpxsee.appdata.xml | 5 +++-- pkg/linux/gpxsee.desktop | 2 +- pkg/linux/gpxsee.xml | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/linux/gpxsee.appdata.xml b/pkg/linux/gpxsee.appdata.xml index 07c7339f..f18efd48 100644 --- a/pkg/linux/gpxsee.appdata.xml +++ b/pkg/linux/gpxsee.appdata.xml @@ -15,8 +15,8 @@
  • Opens GPX, TCX, FIT, KML, IGC, NMEA, SIGMA SLF, Suunto SML, LOC, OziExplorer (PLT, WPT, RTE), GeoJSON, SeeYou CUP, Garmin GPI & CSV, TomTom OV2 & ITN, ONmove OMD/GHP, - TwoNav (TRK, RTE, WPT), GPSDump WPT, 70mai GPS logs and - geotagged JPEG files.
  • + TwoNav (TRK, RTE, WPT), GPSDump WPT, Velocitek VTK, + 70mai GPS logs and geotagged JPEG files.
  • Opens geo URIs (RFC 5870).
  • User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS, QuadTiles).
  • @@ -114,6 +114,7 @@ application/vnd.gpsdump.wpt application/vnd.gpstuner.gmi application/vnd.70mai.txt + application/vnd.velocitek.vtk x-scheme-handler/geo diff --git a/pkg/linux/gpxsee.desktop b/pkg/linux/gpxsee.desktop index b6bba86b..bf037bc3 100644 --- a/pkg/linux/gpxsee.desktop +++ b/pkg/linux/gpxsee.desktop @@ -16,4 +16,4 @@ Icon=gpxsee Terminal=false Type=Application Categories=Graphics;Viewer;Education;Geography;Maps;Sports;Qt -MimeType=x-scheme-handler/geo;application/gpx+xml;application/vnd.garmin.tcx+xml;application/vnd.ant.fit;application/vnd.google-earth.kml+xml;application/vnd.fai.igc;application/vnd.nmea.nmea;application/vnd.oziexplorer.plt;application/vnd.oziexplorer.rte;application/vnd.oziexplorer.wpt;application/vnd.groundspeak.loc+xml;application/vnd.sigma.slf+xml;application/geo+json;application/vnd.naviter.seeyou.cup;application/vnd.garmin.gpi;application/vnd.suunto.sml+xml;image/jpeg;text/csv;application/vnd.garmin.img;application/vnd.garmin.jnx;application/vnd.garmin.gmap+xml;image/vnd.maptech.kap;application/vnd.oziexplorer.map;application/vnd.mapbox.mbtiles;application/vnd.twonav.rmap;application/vnd.trekbuddy.tba;application/vnd.gpxsee.map+xml;application/x-tar;image/tiff;application/vnd.google-earth.kmz;application/vnd.alpinequest.aqm;application/vnd.cgtk.gemf;application/vnd.rmaps.sqlite;application/vnd.osmdroid.sqlite;application/vnd.mapsforge.map;application/vnd.tomtom.ov2;application/vnd.tomtom.itn;application/vnd.esri.wld;application/vnd.onmove.omd;application/vnd.onmove.ghp;application/vnd.memory-map.qct;application/vnd.twonav.trk;application/vnd.twonav.rte;application/vnd.twonav.wpt;application/vnd.orux.map+xml;application/vnd.iho.s57-data;application/vnd.iho.s57-catalogue;application/vnd.gpsdump.wpt;application/vnd.gpstuner.gmi;application/vnd.70mai.txt +MimeType=x-scheme-handler/geo;application/gpx+xml;application/vnd.garmin.tcx+xml;application/vnd.ant.fit;application/vnd.google-earth.kml+xml;application/vnd.fai.igc;application/vnd.nmea.nmea;application/vnd.oziexplorer.plt;application/vnd.oziexplorer.rte;application/vnd.oziexplorer.wpt;application/vnd.groundspeak.loc+xml;application/vnd.sigma.slf+xml;application/geo+json;application/vnd.naviter.seeyou.cup;application/vnd.garmin.gpi;application/vnd.suunto.sml+xml;image/jpeg;text/csv;application/vnd.garmin.img;application/vnd.garmin.jnx;application/vnd.garmin.gmap+xml;image/vnd.maptech.kap;application/vnd.oziexplorer.map;application/vnd.mapbox.mbtiles;application/vnd.twonav.rmap;application/vnd.trekbuddy.tba;application/vnd.gpxsee.map+xml;application/x-tar;image/tiff;application/vnd.google-earth.kmz;application/vnd.alpinequest.aqm;application/vnd.cgtk.gemf;application/vnd.rmaps.sqlite;application/vnd.osmdroid.sqlite;application/vnd.mapsforge.map;application/vnd.tomtom.ov2;application/vnd.tomtom.itn;application/vnd.esri.wld;application/vnd.onmove.omd;application/vnd.onmove.ghp;application/vnd.memory-map.qct;application/vnd.twonav.trk;application/vnd.twonav.rte;application/vnd.twonav.wpt;application/vnd.orux.map+xml;application/vnd.iho.s57-data;application/vnd.iho.s57-catalogue;application/vnd.gpsdump.wpt;application/vnd.gpstuner.gmi;application/vnd.70mai.txt;application/vnd.velocitek.vtk diff --git a/pkg/linux/gpxsee.xml b/pkg/linux/gpxsee.xml index 9286a2ec..fe535d8d 100644 --- a/pkg/linux/gpxsee.xml +++ b/pkg/linux/gpxsee.xml @@ -198,6 +198,13 @@ + + Velocitek VTK File + + + + + From 0e329f4b2223ba155728874048b912907efd631b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 17:53:00 +0100 Subject: [PATCH 11/33] Added Velocitek VTK Windows desktop integration --- gpxsee.pro | 3 ++- icons/formats/scripts/extensions | 1 + icons/formats/vtk.ico | Bin 0 -> 338996 bytes pkg/windows/gpxsee64.nsi | 18 +++++++++++------- 4 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 icons/formats/vtk.ico diff --git a/gpxsee.pro b/gpxsee.pro index befab9ef..567efc7e 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -563,7 +563,8 @@ win32 { icons/formats/trk.ico \ icons/formats/gemf.ico \ icons/formats/000.ico \ - icons/formats/031.ico + icons/formats/031.ico \ + icons/formats/vtk.ico DEFINES += _USE_MATH_DEFINES \ NOGDI } diff --git a/icons/formats/scripts/extensions b/icons/formats/scripts/extensions index fe2efac9..9548ca02 100644 --- a/icons/formats/scripts/extensions +++ b/icons/formats/scripts/extensions @@ -32,3 +32,4 @@ trk:#cccccc gemf:#147085 000:#000000 031:#000000 +vtk:#632433 diff --git a/icons/formats/vtk.ico b/icons/formats/vtk.ico new file mode 100644 index 0000000000000000000000000000000000000000..ce743567a05f3db61e5e60951fb97622ae11aba2 GIT binary patch literal 338996 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 literal 0 HcmV?d00001 diff --git a/pkg/windows/gpxsee64.nsi b/pkg/windows/gpxsee64.nsi index 824409cb..57e2b3d9 100644 --- a/pkg/windows/gpxsee64.nsi +++ b/pkg/windows/gpxsee64.nsi @@ -204,13 +204,14 @@ Section "GPXSee" SEC_APP !insertmacro FILE_ASSOCIATION_ADD "gemf" "GEMF Map File" 26 !insertmacro FILE_ASSOCIATION_ADD "000" "IHO S-57 Electronic Navigation Chart" 27 !insertmacro FILE_ASSOCIATION_ADD "031" "IHO S-57 Electronic Navigation Catalogue" 28 - !insertmacro FILE_ASSOCIATION_ADD "kml" "Keyhole Markup Language" 29 - !insertmacro FILE_ASSOCIATION_ADD "kmz" "KML geographic compressed data" 29 - !insertmacro FILE_ASSOCIATION_ADD "fit" "Flexible and Interoperable Data Transfer" 30 - !insertmacro FILE_ASSOCIATION_ADD "igc" "Flight Recorder Data Format" 31 - !insertmacro FILE_ASSOCIATION_ADD "nmea" "NMEA 0183 Data" 32 - !insertmacro FILE_ASSOCIATION_ADD "plt" "OziExplorer Track File" 33 - !insertmacro FILE_ASSOCIATION_ADD "rte" "OziExplorer Route File" 34 + !insertmacro FILE_ASSOCIATION_ADD "vtk" "Velocitek VTK File" 29 + !insertmacro FILE_ASSOCIATION_ADD "kml" "Keyhole Markup Language" 30 + !insertmacro FILE_ASSOCIATION_ADD "kmz" "KML geographic compressed data" 30 + !insertmacro FILE_ASSOCIATION_ADD "fit" "Flexible and Interoperable Data Transfer" 31 + !insertmacro FILE_ASSOCIATION_ADD "igc" "Flight Recorder Data Format" 32 + !insertmacro FILE_ASSOCIATION_ADD "nmea" "NMEA 0183 Data" 33 + !insertmacro FILE_ASSOCIATION_ADD "plt" "OziExplorer Track File" 34 + !insertmacro FILE_ASSOCIATION_ADD "rte" "OziExplorer Route File" 35 !insertmacro URI_ASSOCIATION_ADD "geo" @@ -266,6 +267,7 @@ Section "GPXSee" SEC_APP WriteRegStr HKCR ".000\OpenWithList" "GPXSee.exe" "" WriteRegStr HKCR ".031\OpenWithList" "GPXSee.exe" "" WriteRegStr HKCR ".txt\OpenWithList" "GPXSee.exe" "" + WriteRegStr HKCR ".vtk\OpenWithList" "GPXSee.exe" "" System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' @@ -440,6 +442,7 @@ Section "Uninstall" !insertmacro FILE_ASSOCIATION_REMOVE "gemf" !insertmacro FILE_ASSOCIATION_REMOVE "000" !insertmacro FILE_ASSOCIATION_REMOVE "031" + !insertmacro FILE_ASSOCIATION_REMOVE "vtk" !insertmacro URI_ASSOCIATION_REMOVE "geo" @@ -494,6 +497,7 @@ Section "Uninstall" DeleteRegValue HKCR ".000\OpenWithList" "GPXSee.exe" DeleteRegValue HKCR ".031\OpenWithList" "GPXSee.exe" DeleteRegValue HKCR ".txt\OpenWithList" "GPXSee.exe" + DeleteRegValue HKCR ".vtk\OpenWithList" "GPXSee.exe" DeleteRegKey HKCR "Applications\GPXSee.exe" System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' From 9d3cdbbd428f9d81e7cc1a2e7f04d797be24be17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 22:15:37 +0100 Subject: [PATCH 12/33] Velocitek VTK MacOS desktop integration --- pkg/mac/Info.plist | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/pkg/mac/Info.plist b/pkg/mac/Info.plist index 2f4c005a..a980c74e 100644 --- a/pkg/mac/Info.plist +++ b/pkg/mac/Info.plist @@ -750,6 +750,22 @@ CFBundleTypeRole Viewer + + CFBundleTypeExtensions + + vtk + + CFBundleTypeMIMETypes + + application/vnd.velocitek.vtk + + CFBundleTypeIconFile + icons/vtk.icns + CFBundleTypeName + Velocitek VTK File + CFBundleTypeRole + Viewer + CFBundleURLTypes @@ -1697,6 +1713,8 @@ https://iho.int/uploads/user/pubs/standards/s-57/31Main.pdf UTTypeDescription IHO S-57 Electronic Navigation Chart + UTTypeIconFile + icons/000.icns UTTypeConformsTo public.data @@ -1718,6 +1736,8 @@ https://iho.int/uploads/user/pubs/standards/s-57/20ApB1.pdf UTTypeDescription IHO S-57 Electronic Navigation Catalogue + UTTypeIconFile + icons/031.icns UTTypeConformsTo public.data @@ -1753,6 +1773,29 @@ application/vnd.70mai.txt + + UTTypeIdentifier + com.velocitek.vtk + UTTypeReferenceURL + https://github.com/velocitek/vtk_protocol + UTTypeDescription + Velocitek VTK File + UTTypeIconFile + icons/vtk.icns + UTTypeConformsTo + + public.data + + UTTypeTagSpecification + + public.filename-extension + + vtk + + public.mime-type + application/vnd.velocitek.vtk + + UTExportedTypeDeclarations From 2e4e702640aeaff183ea3b9ac6d3f54c483bb920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 16 Mar 2025 22:33:26 +0100 Subject: [PATCH 13/33] Fixed speed values conversion --- src/data/vtkparser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/vtkparser.cpp b/src/data/vtkparser.cpp index 523e0798..41aca98d 100644 --- a/src/data/vtkparser.cpp +++ b/src/data/vtkparser.cpp @@ -140,7 +140,7 @@ static bool trackpoint(CTX &ctx, Trackpoint &t) t.setTimestamp(QDateTime::fromMSecsSinceEpoch( ((qint64)seconds * 1000) + ((qint64)centiSeconds * 10), QTimeZone::utc())); - t.setSpeed(speed / 5.1444); + t.setSpeed(speed * 0.051444); return (ctx.bp == ee); } From f1b7d57027064a496a4d99d1f3fb8f95b4059c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 17 Mar 2025 07:40:10 +0100 Subject: [PATCH 14/33] Lcalization update --- lang/gpxsee_ca.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_cs.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_da.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_de.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_eo.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_es.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_fi.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_fr.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_hu.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_it.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_ko.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_nb.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_pl.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_pt_BR.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_ru.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_sv.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_tr.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_uk.ts | 57 ++++++++++++++++++++++++-------------------- lang/gpxsee_zh_CN.ts | 57 ++++++++++++++++++++++++-------------------- 19 files changed, 589 insertions(+), 494 deletions(-) diff --git a/lang/gpxsee_ca.ts b/lang/gpxsee_ca.ts index 252fe279..38cd993d 100644 --- a/lang/gpxsee_ca.ts +++ b/lang/gpxsee_ca.ts @@ -70,117 +70,122 @@ Data - + Supported files Fitxers compatibles - + CSV files Fitxers CSV - + CUP files Fitxers CUP - + FIT files Fitxers FIT - + GeoJSON files Fitxers GeoJSON - + GPI files Fitxers GPI - + GPX files Fitxers GPX - + IGC files Fitxers IGC - + ITN files Fitxers ITN - + JPEG images Imatges JPEG - + KML files Fitxers KML - + LOC files Fitxers LOC - + NMEA files Fitxers NMEA - + ONmove files Fitxer ONmove - + OV2 files Fitxers OV2 - + OziExplorer files Fitxers OziExplorer - + SLF files Fitxers SLF - + SML files Fitxers SML - + TCX files Fitxers TCX - + 70mai GPS log files - + + VTK files + + + + TwoNav files Fitxers TwoNav - + GPSDump files Ffitxers d'abocament de GPS - + All files Tots els fitxers @@ -2420,17 +2425,17 @@ Ritme - + kn kn - + mi/h mi/h - + km/h km/h diff --git a/lang/gpxsee_cs.ts b/lang/gpxsee_cs.ts index 67438fe1..4f8f345b 100644 --- a/lang/gpxsee_cs.ts +++ b/lang/gpxsee_cs.ts @@ -70,117 +70,122 @@ Data - + Supported files Podporované soubory - + CSV files Soubory CSV - + CUP files Soubory CUP - + FIT files Soubory FIT - + GeoJSON files Soubory GeoJSON - + GPI files Soubory GPI - + GPX files Soubory GPX - + IGC files Soubory IGC - + ITN files Soubory ITN - + JPEG images Obrázky JPEG - + KML files Soubory KML - + LOC files Soubory LOC - + NMEA files Soubory NMEA - + OV2 files Soubory OV2 - + OziExplorer files Soubory OziExploreru - + SML files Soubory SML - + TCX files Soubory TCX - + SLF files Soubory SLF - + ONmove files Soubory ONmove - + 70mai GPS log files GPS logy z kamer 70mai - + + VTK files + + + + TwoNav files Soubory TwoNavu - + GPSDump files Soubory GPSDumpu - + All files Všechny soubory @@ -2382,7 +2387,7 @@ Rychlost - + km/h km/h @@ -2427,12 +2432,12 @@ Tempo - + kn kn - + mi/h mi/h diff --git a/lang/gpxsee_da.ts b/lang/gpxsee_da.ts index 432ef888..4ed9c21b 100644 --- a/lang/gpxsee_da.ts +++ b/lang/gpxsee_da.ts @@ -70,117 +70,122 @@ Data - + Supported files Understøttede filer - + CSV files CSV-filer - + CUP files CUP-filer - + FIT files FIT-filer - + GeoJSON files GeoJSON-filer - + GPI files GPI-filer - + GPX files GPX-filer - + IGC files IGC-filer - + ITN files ITN-filer - + JPEG images JPEG-billeder - + KML files KML-filer - + LOC files LOC-filer - + NMEA files NMEA-filer - + ONmove files ONmove-filer - + OV2 files OV2-filer - + OziExplorer files OziExplorer-filer - + SLF files SLF-filer - + SML files SML-filer - + TCX files TCX-filer - + 70mai GPS log files - + + VTK files + + + + TwoNav files TwoNav-filer - + GPSDump files GPSDump-filer - + All files Alle filer @@ -2420,17 +2425,17 @@ Tempo - + kn knob - + mi/h mil/t - + km/h km/t diff --git a/lang/gpxsee_de.ts b/lang/gpxsee_de.ts index c2afb215..c168bfa8 100644 --- a/lang/gpxsee_de.ts +++ b/lang/gpxsee_de.ts @@ -70,117 +70,122 @@ Data - + Supported files Unterstützte Dateien - + CSV files CSV-Dateien - + CUP files CUP-Dateien - + FIT files FIT-Dateien - + GeoJSON files GeoJSON-Dateien - + GPI files GPI-Dateien - + GPX files GPX-Dateien - + IGC files IGC-Dateien - + ITN files ITN-Dateien - + JPEG images JPEG-Bilder - + KML files KML-Dateien - + LOC files LOC-Dateien - + NMEA files NMEA-Dateien - + OV2 files OV2-Dateien - + OziExplorer files OziExplorer-Dateien - + SML files SML-Dateien - + TCX files TCX-Dateien - + SLF files SLF-Dateien - + ONmove files ONmove-Dateien - + 70mai GPS log files 70mai GPS-Logdateien - + + VTK files + + + + TwoNav files TwoNav-Dateien - + GPSDump files GPSDump-Dateien - + All files Alle Dateien @@ -2380,7 +2385,7 @@ Geschwindigkeit - + km/h km/h @@ -2425,12 +2430,12 @@ Tempo - + kn kn - + mi/h mi/h diff --git a/lang/gpxsee_eo.ts b/lang/gpxsee_eo.ts index d8b7675d..5d79920e 100644 --- a/lang/gpxsee_eo.ts +++ b/lang/gpxsee_eo.ts @@ -70,117 +70,122 @@ Data - + Supported files Subtenataj dosieroj - + CSV files CSV-dosieroj - + CUP files CUP-dosieroj - + FIT files FIT-dosieroj - + GeoJSON files GeoJSON-dosieroj - + GPI files GPI-dosieroj - + GPX files GPX-dosieroj - + IGC files IGC-dosieroj - + ITN files ITN-dosieroj - + JPEG images JPEG-bildoj - + KML files KML-dosieroj - + LOC files LOC-dosieroj - + NMEA files NMEA-dosieroj - + ONmove files ONmove-dosieroj - + OV2 files OV2-dosieroj - + OziExplorer files OziExplorer-dosieroj - + SLF files SLF-dosieroj - + SML files SML-dosieroj - + TCX files TCX-dosieroj - + 70mai GPS log files - + + VTK files + + + + TwoNav files TwoNav-dosieroj - + GPSDump files GPSDump-dosieroj - + All files Ĉiuj dosieroj @@ -2420,17 +2425,17 @@ Ritmo - + kn kn - + mi/h mi/h - + km/h km/h diff --git a/lang/gpxsee_es.ts b/lang/gpxsee_es.ts index 2e942294..02acac46 100644 --- a/lang/gpxsee_es.ts +++ b/lang/gpxsee_es.ts @@ -70,117 +70,122 @@ Data - + Supported files Formatos admitidos - + CSV files Archivos CSV - + CUP files Archivos CUP - + FIT files Archivos FIT - + GeoJSON files Archivos GeoJSON - + GPI files Archivos GPI - + GPX files Archivos GPX - + IGC files Archivos IGC - + ITN files Archivos ITN - + JPEG images Imágenes JPEG - + KML files Archivos KML - + LOC files Archivos LOC - + NMEA files Archivos NMEA - + ONmove files Archivos ONmove - + OV2 files Archivos OV2 - + OziExplorer files Archivos OziExplorer - + SLF files Archivos SLF - + SML files Archivos SML - + TCX files Archivos TCX - + 70mai GPS log files - + + VTK files + + + + TwoNav files Archivos TwoNav - + GPSDump files Archivos GPSDump - + All files Todos los archivos @@ -2420,17 +2425,17 @@ Ritmo - + kn kn - + mi/h mi/h - + km/h km/h diff --git a/lang/gpxsee_fi.ts b/lang/gpxsee_fi.ts index 14dc837f..f7139047 100644 --- a/lang/gpxsee_fi.ts +++ b/lang/gpxsee_fi.ts @@ -70,117 +70,122 @@ Data - + Supported files Tuetut tiedostot - + CSV files CSV-tiedostot - + CUP files CUP-tiedostot - + FIT files FIT-tiedostot - + GeoJSON files GeoJSON-tiedostot - + GPI files GPI-tiedostot - + GPX files GPX-tiedostot - + IGC files IGC-tiedostot - + ITN files ITN-tiedostot - + JPEG images JPEG-kuvat - + KML files KML-tiedostot - + LOC files LOC-tiedostot - + NMEA files NMEA-tiedostot - + OV2 files OV2-tiedostot - + OziExplorer files OziExplorer-tiedostot - + SML files SML-tiedostot - + TCX files TCX-tiedostot - + SLF files SLF-tiedostot - + ONmove files ONmove-tiedostot - + 70mai GPS log files - + + VTK files + + + + TwoNav files TwoNav-tiedostot - + GPSDump files GPSDump-tiedostot - + All files Kaikki tiedostot @@ -2380,7 +2385,7 @@ Vauhti - + km/h km/t @@ -2425,12 +2430,12 @@ Tahti - + kn kn - + mi/h mph diff --git a/lang/gpxsee_fr.ts b/lang/gpxsee_fr.ts index 79c1218b..1d83c823 100644 --- a/lang/gpxsee_fr.ts +++ b/lang/gpxsee_fr.ts @@ -70,117 +70,122 @@ Data - + Supported files Formats pris en charge - + CSV files Données CSV - + CUP files Données CUP - + FIT files Données FIT - + GeoJSON files Données GeoJSON - + GPI files Données GPI - + GPX files Données GPX - + IGC files Données IGC - + ITN files Fichiers ITN - + JPEG images Images JPEG - + KML files Données KML - + LOC files Données LOC - + NMEA files Données NMEA - + OV2 files Fichiers OV2 - + OziExplorer files Données OziExplorer - + SML files Données SML - + TCX files Données TCX - + SLF files Données SLF - + ONmove files Données ONmove - + 70mai GPS log files Fichiers de journalisation GPS 70mai - + + VTK files + + + + TwoNav files Données TwoNav - + GPSDump files Fichiers GPSDump - + All files Tous les fichiers @@ -2380,7 +2385,7 @@ Vitesse - + km/h km/h @@ -2425,12 +2430,12 @@ Allure - + kn nd - + mi/h mi/h diff --git a/lang/gpxsee_hu.ts b/lang/gpxsee_hu.ts index f7ab24f8..b9f4e2e6 100644 --- a/lang/gpxsee_hu.ts +++ b/lang/gpxsee_hu.ts @@ -70,117 +70,122 @@ Data - + Supported files Támogatott fájlok - + CSV files CSV fájlok - + CUP files CUP fájlok - + FIT files FIT fájlok - + GeoJSON files GeoJSON fájlok - + GPI files GPI fájlok - + GPX files GPX fájlok - + IGC files IGC fájlok - + ITN files ITN fájlok - + JPEG images JPEG képek - + KML files KML fájlok - + LOC files LOC fájlok - + NMEA files NMEA fájlok - + ONmove files ONmove fájlok - + OV2 files OV2 fájlok - + OziExplorer files OziExplorer fájlok - + SLF files SLF fájlok - + SML files SML fájlok - + TCX files TCX fájlok - + 70mai GPS log files 70mai GPS naplófájlok - + + VTK files + + + + TwoNav files TwoNav fájlok - + GPSDump files GPSDump fájlok - + All files Minden fájl @@ -2418,17 +2423,17 @@ Iram - + kn csomó - + mi/h mph - + km/h km/h diff --git a/lang/gpxsee_it.ts b/lang/gpxsee_it.ts index 27e79c96..6a47f724 100644 --- a/lang/gpxsee_it.ts +++ b/lang/gpxsee_it.ts @@ -70,117 +70,122 @@ Data - + Supported files File supportati - + CSV files File CSV - + CUP files File CUP - + FIT files File FIT - + GeoJSON files File GeoJSON - + GPI files File GPI - + GPX files File GPX - + IGC files File IGC - + ITN files File ITN - + JPEG images File JPEG - + KML files File KML - + LOC files File LOC - + NMEA files File NMEA - + ONmove files File ONmove - + OV2 files File OV2 - + OziExplorer files File OziExplorer - + SLF files File SLF - + SML files File SML - + TCX files File TCX - + 70mai GPS log files - + + VTK files + + + + TwoNav files File TwoNav - + GPSDump files - + All files Tutti i file @@ -2420,17 +2425,17 @@ Ritmo - + kn kn - + mi/h mi/h - + km/h km/h diff --git a/lang/gpxsee_ko.ts b/lang/gpxsee_ko.ts index 874a203c..1b1d60c6 100644 --- a/lang/gpxsee_ko.ts +++ b/lang/gpxsee_ko.ts @@ -70,117 +70,122 @@ Data - + Supported files 지원되는 파일 - + CSV files CSV 파일 - + CUP files CUP 파일 - + FIT files FIT 파일 - + GeoJSON files GeoJSON 파일 - + GPI files GPI 파일 - + GPX files GPX 파일 - + IGC files IGC 파일 - + ITN files ITN 파일 - + JPEG images JPEG 이미지 - + KML files KML 파일 - + LOC files LOC 파일 - + NMEA files NMEA 파일 - + ONmove files ONmove 파일 - + OV2 files OV2 파일 - + OziExplorer files OziExplorer 파일 - + SLF files SLF 파일 - + SML files SML 파일 - + TCX files TCX 파일 - + 70mai GPS log files - + + VTK files + + + + TwoNav files TwoNav 파일 - + GPSDump files GPSDump 파일 - + All files 모든 파일 @@ -2418,17 +2423,17 @@ 속도 - + kn kn - + mi/h mi/h - + km/h km/h diff --git a/lang/gpxsee_nb.ts b/lang/gpxsee_nb.ts index 748cfe9b..ba6432a1 100644 --- a/lang/gpxsee_nb.ts +++ b/lang/gpxsee_nb.ts @@ -70,117 +70,122 @@ Data - + Supported files Støttede filer - + CSV files CSV-filer - + CUP files CUP-filer - + FIT files FIT-filer - + GeoJSON files GeoJSON-filer - + GPI files GPI-filer - + GPX files GPX-filer - + IGC files IGC-filer - + ITN files ITN-filer - + JPEG images JPEG-bilder - + KML files KML-filer - + LOC files LOC-filer - + NMEA files NMEA-filer - + ONmove files ONmove-filer - + OV2 files OV2-filer - + OziExplorer files OziExplorer-filer - + SLF files SLF-filer - + SML files SML-filer - + TCX files TCX-filer - + 70mai GPS log files - + + VTK files + + + + TwoNav files TwoNav-filer - + GPSDump files GPSDump-filer - + All files Alle filer @@ -2420,17 +2425,17 @@ Tempo - + kn kn - + mi/h mi/h - + km/h km/t diff --git a/lang/gpxsee_pl.ts b/lang/gpxsee_pl.ts index fb878e91..ae47b95a 100644 --- a/lang/gpxsee_pl.ts +++ b/lang/gpxsee_pl.ts @@ -70,117 +70,122 @@ Data - + Supported files Obsługiwane pliki - + CSV files Pliki CSV - + CUP files Pliki CUP - + FIT files Pliki FIT - + GeoJSON files Pliki GeoJSON - + GPI files Pliki GPI - + GPX files Pliki GPX - + IGC files Pliki IGC - + ITN files Pliki ITN - + JPEG images Pliki JPEG - + KML files Pliki KML - + LOC files Pliki LOC - + NMEA files Pliki NMEA - + OV2 files Pliki OV2 - + OziExplorer files Pliki OziExplorer - + SML files Pliki SML - + TCX files Pliki TCX - + SLF files Pliki SLF - + ONmove files - + 70mai GPS log files - + + VTK files + + + + TwoNav files - + GPSDump files - + All files Wszystkie pliki @@ -2382,7 +2387,7 @@ Prędkość - + km/h km/h @@ -2427,12 +2432,12 @@ Tempo - + kn kn - + mi/h mi/h diff --git a/lang/gpxsee_pt_BR.ts b/lang/gpxsee_pt_BR.ts index 9eb38516..38322adf 100644 --- a/lang/gpxsee_pt_BR.ts +++ b/lang/gpxsee_pt_BR.ts @@ -70,117 +70,122 @@ Data - + Supported files Formatos suportados - + CSV files Arquivos CSV - + CUP files Arquivos CUP - + FIT files Arquivos FIT - + GeoJSON files Arquivos GeoJSON - + GPI files Arquivos GPI - + GPX files Arquivos GPX - + IGC files Arquivos IGC - + ITN files - + JPEG images Imagens JPEG - + KML files Arquivos KML - + LOC files Arquivos LOC - + NMEA files Arquivos NMEA - + ONmove files - + OV2 files - + OziExplorer files Arquivos OziExplorer - + SLF files Arquivos SLF - + SML files Arquivos SML - + TCX files Arquivos TCX - + 70mai GPS log files - + + VTK files + + + + TwoNav files - + GPSDump files - + All files Todos os arquivos @@ -2420,17 +2425,17 @@ Ritmo - + kn kn - + mi/h mi/h - + km/h km/h diff --git a/lang/gpxsee_ru.ts b/lang/gpxsee_ru.ts index 795ec15c..dfc29d72 100644 --- a/lang/gpxsee_ru.ts +++ b/lang/gpxsee_ru.ts @@ -70,117 +70,122 @@ Data - + Supported files Все поддерживаемые файлы - + CSV files CSV файлы - + CUP files CUP файлы - + FIT files FIT файлы - + GeoJSON files GeoJSON файлы - + GPI files GPI файлы - + GPX files GPX файлы - + IGC files IGC файлы - + ITN files Файлы ITN - + JPEG images JPEG изображения - + KML files KML файлы - + LOC files LOC файлы - + NMEA files NMEA файлы - + OV2 files OV2 файлы - + OziExplorer files OziExplorer файлы - + SML files SML файлы - + TCX files TCX файлы - + SLF files SLF файлы - + ONmove files ONmove файлы - + 70mai GPS log files - + + VTK files + + + + TwoNav files TwoNav файлы - + GPSDump files GPSDump файлы - + All files Все файлы @@ -2382,7 +2387,7 @@ Скорость - + km/h км/ч @@ -2427,12 +2432,12 @@ Темп - + kn уз - + mi/h мл/ч diff --git a/lang/gpxsee_sv.ts b/lang/gpxsee_sv.ts index ef726069..d3f1a3a8 100644 --- a/lang/gpxsee_sv.ts +++ b/lang/gpxsee_sv.ts @@ -70,117 +70,122 @@ Data - + Supported files Filer som stöds - + CSV files CSV-filer - + CUP files CUP-filer - + FIT files FIT-filer - + GeoJSON files GeoJSON-filer - + GPI files GPI-filer - + GPX files GPX-filer - + IGC files IGC-filer - + ITN files ITN-filer - + JPEG images JPEG-bilder - + KML files KML-filer - + LOC files LOC-filer - + NMEA files NMEA-filer - + OV2 files OV2-filer - + OziExplorer files OziExplorer-filer - + SML files SML-filer - + TCX files TCX-filer - + SLF files SLF-filer - + ONmove files ONmove-filer - + 70mai GPS log files 70mai GPS-loggfiler - + + VTK files + + + + TwoNav files TwoNav-filer - + GPSDump files GPSDump-filer - + All files Alla filer @@ -2380,7 +2385,7 @@ Hastighet - + km/h km/h @@ -2425,12 +2430,12 @@ Tempo - + kn knop - + mi/h mi/h diff --git a/lang/gpxsee_tr.ts b/lang/gpxsee_tr.ts index be0e80ca..ce87c00a 100644 --- a/lang/gpxsee_tr.ts +++ b/lang/gpxsee_tr.ts @@ -70,117 +70,122 @@ Data - + Supported files Desteklenen dosyalar - + CSV files CSV dosyaları - + CUP files CUP dosyaları - + FIT files FIT dosyaları - + GeoJSON files GeoJSON dosyaları - + GPI files GPI dosyaları - + GPX files GPX dosyaları - + IGC files IGC dosyaları - + ITN files ITN dosyaları - + JPEG images JPEG görüntüleri - + KML files KML dosyaları - + LOC files LOC dosyaları - + NMEA files NMEA dosyaları - + ONmove files ONmove dosyaları - + OV2 files OV2 dostaları - + OziExplorer files OziExplorer dosyaları - + SLF files SLF dosyaları - + SML files SML dosyaları - + TCX files TCX dosyaları - + 70mai GPS log files 70mai GPS kayıt dosyaları - + + VTK files + + + + TwoNav files TwoNav dosyaları - + GPSDump files GPSDump dosyaları - + All files Tüm dosyalar @@ -2418,17 +2423,17 @@ Hız - + kn kn - + mi/h mi/sa - + km/h km/sa diff --git a/lang/gpxsee_uk.ts b/lang/gpxsee_uk.ts index 30d52c2f..263da251 100644 --- a/lang/gpxsee_uk.ts +++ b/lang/gpxsee_uk.ts @@ -70,117 +70,122 @@ Data - + Supported files Всі підтримувані формати - + CSV files CSV файли - + CUP files CUP файли - + FIT files FIT файли - + GeoJSON files GeoJSON файли - + GPI files GPI файли - + GPX files GPX файли - + IGC files IGC файли - + ITN files ITN файли - + JPEG images JPEG зображення - + KML files KML файли - + LOC files LOC файли - + NMEA files NMEA файли - + ONmove files ONmove файли - + OV2 files OV2 файли - + OziExplorer files OziExplorer файли - + SLF files SLF файли - + SML files SML файли - + TCX files TCX файли - + 70mai GPS log files 70mai файли журналу GPS - + + VTK files + + + + TwoNav files TwoNav файли - + GPSDump files GPSDump файли - + All files Всі файли @@ -2422,17 +2427,17 @@ Темп - + kn вуз - + mi/h миль/год - + km/h км/год diff --git a/lang/gpxsee_zh_CN.ts b/lang/gpxsee_zh_CN.ts index a7130535..0abc5445 100644 --- a/lang/gpxsee_zh_CN.ts +++ b/lang/gpxsee_zh_CN.ts @@ -70,117 +70,122 @@ Data - + Supported files 支持的文件 - + CSV files CSV 文件 - + CUP files CUP 文件 - + FIT files FIT 文件 - + GeoJSON files GeoJSON 文件 - + GPI files GPI 文件 - + GPX files GPX 文件 - + IGC files IGC 文件 - + ITN files ITN 文件 - + JPEG images JPEG 图片 - + KML files KML 文件 - + LOC files LOC 文件 - + NMEA files NMEA 文件 - + ONmove files ONmove 文件 - + OV2 files OV2 文件 - + OziExplorer files OziExplorer 文件 - + SLF files SLF 文件 - + SML files SML 文件 - + TCX files TCX 文件 - + 70mai GPS log files - + + VTK files + + + + TwoNav files TwoNav 文件 - + GPSDump files GPSDump 文件 - + All files 所有文件 @@ -2418,17 +2423,17 @@ 配速 - + kn kn - + mi/h mi/h - + km/h km/h From 496a474bd203299eeb697d68049cf6d77c353697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 17 Mar 2025 07:42:35 +0100 Subject: [PATCH 15/33] Czech translation update --- lang/gpxsee_cs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_cs.ts b/lang/gpxsee_cs.ts index 4f8f345b..f015592e 100644 --- a/lang/gpxsee_cs.ts +++ b/lang/gpxsee_cs.ts @@ -172,7 +172,7 @@ VTK files - + Soubory VTK From 91c0e2a83da500882d328b2ca4c37f43a1703549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 17 Mar 2025 07:43:05 +0100 Subject: [PATCH 16/33] German translation update --- lang/gpxsee_de.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_de.ts b/lang/gpxsee_de.ts index c168bfa8..f5daf14d 100644 --- a/lang/gpxsee_de.ts +++ b/lang/gpxsee_de.ts @@ -172,7 +172,7 @@ VTK files - + VTK-Dateien From 003bdd8814d9903276fb5c1579799ba71abbae03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20Engelbrektson?= Date: Mon, 17 Mar 2025 08:00:53 +0100 Subject: [PATCH 17/33] Translated using Weblate (Swedish) Currently translated at 100.0% (491 of 491 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/sv/ --- lang/gpxsee_sv.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_sv.ts b/lang/gpxsee_sv.ts index d3f1a3a8..e7b86f2f 100644 --- a/lang/gpxsee_sv.ts +++ b/lang/gpxsee_sv.ts @@ -172,7 +172,7 @@ VTK files - + VTK-filer From af03a85fdb2d0677e1ceada2151d104fb448e8d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 17 Mar 2025 08:41:20 +0100 Subject: [PATCH 18/33] Added missing VTK icns icon --- icons/formats/vtk.icns | Bin 0 -> 142005 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/formats/vtk.icns diff --git a/icons/formats/vtk.icns b/icons/formats/vtk.icns new file mode 100644 index 0000000000000000000000000000000000000000..b6f6ab28b4b3883c403c81ba2fd32b0c5f601713 GIT binary patch literal 142005 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 Z&tDaneL`LvUX^&~C((glKY#zI`ajZc>7)Pv literal 0 HcmV?d00001 From c171e8088c94f7833a2fde6f334f9601c3af5663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 17 Mar 2025 09:00:32 +0100 Subject: [PATCH 19/33] Added Velocitek VTK support info --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a120cf3..a9c83c7c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ GPS log file formats. ## Features * Opens GPX, TCX, FIT, KML, NMEA, IGC, CUP, SIGMA SLF, Suunto SML, LOC, GeoJSON, OziExplorer (PLT, RTE, WPT), Garmin GPI&CSV, TomTom OV2&ITN, ONmove OMD/GHP, - TwoNav (TRK, RTE, WPT), GPSDump WPT, 70mai GPS logs and geotagged JPEG files. + TwoNav (TRK, RTE, WPT), GPSDump WPT, Velocitek VTK, 70mai GPS logs and geotagged + JPEG files. * Opens geo URIs (RFC 5870). * User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS, QuadTiles). From 4e45cf6d40e1b07aeabdb0353eec71197e02c605 Mon Sep 17 00:00:00 2001 From: Cloud Esp Date: Mon, 17 Mar 2025 11:19:26 +0100 Subject: [PATCH 20/33] Translated using Weblate (French) Currently translated at 100.0% (491 of 491 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/fr/ --- lang/gpxsee_fr.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_fr.ts b/lang/gpxsee_fr.ts index 1d83c823..cce38a87 100644 --- a/lang/gpxsee_fr.ts +++ b/lang/gpxsee_fr.ts @@ -172,7 +172,7 @@ VTK files - + Fichiers VTK From 739564955e7dc6d56b1aa504e067aaeec1d816e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=93=D0=BE=D1=80?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D1=96=D1=87?= Date: Mon, 17 Mar 2025 09:57:34 +0100 Subject: [PATCH 21/33] Translated using Weblate (Ukrainian) Currently translated at 100.0% (491 of 491 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/uk/ --- lang/gpxsee_uk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_uk.ts b/lang/gpxsee_uk.ts index 263da251..073bb680 100644 --- a/lang/gpxsee_uk.ts +++ b/lang/gpxsee_uk.ts @@ -172,7 +172,7 @@ VTK files - + Файли VTK From 304d4f770ee568e608c9d3cdddb58e7f0fa0879f Mon Sep 17 00:00:00 2001 From: 99 efi Date: Mon, 17 Mar 2025 15:41:35 +0100 Subject: [PATCH 22/33] Translated using Weblate (Hungarian) Currently translated at 100.0% (491 of 491 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/hu/ --- lang/gpxsee_hu.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_hu.ts b/lang/gpxsee_hu.ts index b9f4e2e6..f472f6a8 100644 --- a/lang/gpxsee_hu.ts +++ b/lang/gpxsee_hu.ts @@ -172,7 +172,7 @@ VTK files - + VTK fájlok From 38abffda178b7695b1d2db7fff815a4f6411ef7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 17 Mar 2025 22:32:45 +0100 Subject: [PATCH 23/33] Use jom in Windows CI builds --- .appveyor.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 1708dcc8..bd44e258 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -8,6 +8,7 @@ image: environment: NSISDIR: C:\Program Files (x86)\NSIS + JOMDIR: C:\Qt\Tools\QtCreator\bin matrix: - QTDIR: C:\Qt\5.15\msvc2019_64 OPENSSLDIR: C:\OpenSSL-v111-Win64\bin @@ -17,14 +18,14 @@ environment: install: - cmd: |- - set PATH=%QTDIR%\bin;%NSISDIR%;%PATH% + set PATH=%QTDIR%\bin;%NSISDIR%;%JOMDIR%;%PATH% call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat build_script: - cmd: |- lrelease gpxsee.pro qmake gpxsee.pro - nmake release + jom release md installer copy release\GPXSee.exe installer From cf84680bc61aa561ff380141b4b16910fb1304c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Mon, 17 Mar 2025 22:47:44 +0100 Subject: [PATCH 24/33] Revert "Use jom in Windows CI builds" This reverts commit 38abffda178b7695b1d2db7fff815a4f6411ef7a. --- .appveyor.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index bd44e258..1708dcc8 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -8,7 +8,6 @@ image: environment: NSISDIR: C:\Program Files (x86)\NSIS - JOMDIR: C:\Qt\Tools\QtCreator\bin matrix: - QTDIR: C:\Qt\5.15\msvc2019_64 OPENSSLDIR: C:\OpenSSL-v111-Win64\bin @@ -18,14 +17,14 @@ environment: install: - cmd: |- - set PATH=%QTDIR%\bin;%NSISDIR%;%JOMDIR%;%PATH% + set PATH=%QTDIR%\bin;%NSISDIR%;%PATH% call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat build_script: - cmd: |- lrelease gpxsee.pro qmake gpxsee.pro - jom release + nmake release md installer copy release\GPXSee.exe installer From 381ab1516d0fd0bd4d25c76e7c6a6fb856b3bba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Wed, 19 Mar 2025 01:38:04 +0100 Subject: [PATCH 25/33] Do not draw special type buildings multiple times. Use the new "exclude" rule to improve performance by not drawing the civic/church buildings multipe times. --- data/style/style.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/style/style.xml b/data/style/style.xml index 86c1f448..e7ba6d12 100644 --- a/data/style/style.xml +++ b/data/style/style.xml @@ -214,9 +214,10 @@ - + + From 7184c691d300c3c08593cb9ae96919aa02477649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Wed, 19 Mar 2025 08:11:49 +0100 Subject: [PATCH 26/33] Fixed possible null pointer dereferences --- src/map/mapsforge/rastertile.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/map/mapsforge/rastertile.cpp b/src/map/mapsforge/rastertile.cpp index fb72e8c4..bfe292a1 100644 --- a/src/map/mapsforge/rastertile.cpp +++ b/src/map/mapsforge/rastertile.cpp @@ -188,7 +188,7 @@ void RasterTile::processLineLabels(const QVector &paths, if (l.ti) { limit = (l.ti->key() == ID_ELE || l.ti->key() == ID_REF || (!l.si && l.ti->shield())); - if (limit && set.contains(*l.lbl)) + if (limit && l.lbl && set.contains(*l.lbl)) continue; } @@ -214,7 +214,7 @@ void RasterTile::processLineLabels(const QVector &paths, color, hColor, rotate); if (item->isValid() && !item->collides(textItems)) { textItems.append(item); - if (limit) + if (limit && l.lbl) set.insert(*l.lbl); } else { delete item; From fac377e746f7d1a3dab4426083077cb78cebee50 Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Thu, 20 Mar 2025 15:47:09 +0100 Subject: [PATCH 27/33] Translated using Weblate (Finnish) Currently translated at 96.7% (475 of 491 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/fi/ --- lang/gpxsee_fi.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/gpxsee_fi.ts b/lang/gpxsee_fi.ts index f7139047..900536af 100644 --- a/lang/gpxsee_fi.ts +++ b/lang/gpxsee_fi.ts @@ -167,12 +167,12 @@ 70mai GPS log files - + 70mai GPS -lokitiedostot VTK files - + VTK-tiedostot From f3b1fa8eb7c44e914f790495be815d9fb410914c Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Thu, 20 Mar 2025 15:45:17 +0100 Subject: [PATCH 28/33] Translated using Weblate (Russian) Currently translated at 100.0% (491 of 491 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/ru/ --- lang/gpxsee_ru.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/gpxsee_ru.ts b/lang/gpxsee_ru.ts index dfc29d72..ea1a0192 100644 --- a/lang/gpxsee_ru.ts +++ b/lang/gpxsee_ru.ts @@ -167,12 +167,12 @@ 70mai GPS log files - + 70mai GPS файлы VTK files - + VTK файлы @@ -837,7 +837,7 @@ Error loading geo URI: - + Ошибка загрузки гео URI: From bca335d4b2becdd39d3f91e5a2e75defaca5b62d Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Thu, 20 Mar 2025 15:47:58 +0100 Subject: [PATCH 29/33] Translated using Weblate (Esperanto) Currently translated at 91.2% (448 of 491 strings) Translation: GPXSee/Translations Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/eo/ --- lang/gpxsee_eo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/gpxsee_eo.ts b/lang/gpxsee_eo.ts index 5d79920e..97a8e28e 100644 --- a/lang/gpxsee_eo.ts +++ b/lang/gpxsee_eo.ts @@ -172,7 +172,7 @@ VTK files - + VTK dosieroj From e9a8112196e01a178a6a354258232cbfad9560f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Fri, 21 Mar 2025 05:56:17 +0100 Subject: [PATCH 30/33] Fixed error handling --- src/data/vtkparser.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/data/vtkparser.cpp b/src/data/vtkparser.cpp index 41aca98d..bb32a551 100644 --- a/src/data/vtkparser.cpp +++ b/src/data/vtkparser.cpp @@ -180,12 +180,15 @@ bool VTKParser::parse(QFile *file, QList &tracks, _errorString = ""; while (true) { - len = file->read((char*)&recordLen, 2); - if (len < 0) { - _errorString = "I/O error"; - return false; - } else if (len == 0) - break; + if ((len = file->read((char*)&recordLen, sizeof(recordLen))) + != sizeof(recordLen)) { + if (!len) + break; + else { + _errorString = "Error reading VTK record size"; + return false; + } + } recordLen = qFromLittleEndian(recordLen); ba.resize(recordLen); From af18c98a035a430a2aa1862ed5bcede0a52869b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Fri, 21 Mar 2025 06:27:33 +0100 Subject: [PATCH 31/33] Update the nuber of cores acording to the latest GitHub runners state --- .github/workflows/android.yml | 2 +- .github/workflows/linux.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e5eed0fa..927c4294 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -43,7 +43,7 @@ jobs: - name: Configure build run: qmake gpxsee.pro OPENSSL_PATH=android_openssl - name: Build project - run: make -j2 apk + run: make -j4 apk - name: Upload artifacts uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 61287ae7..bb90f0f2 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -24,4 +24,4 @@ jobs: - name: Configure build run: qmake CONFIG+=${{ matrix.config }} gpxsee.pro - name: Build project - run: make -j2 + run: make -j4 From 0b61fb047039b98f5da6035fb0bc2ed5aabc3260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Fri, 21 Mar 2025 06:55:21 +0100 Subject: [PATCH 32/33] Use jom for Windows CI builds --- .appveyor.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 1708dcc8..f15e9971 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -8,6 +8,7 @@ image: environment: NSISDIR: C:\Program Files (x86)\NSIS + JOMDIR: C:\Qt\Tools\QtCreator\bin\jom matrix: - QTDIR: C:\Qt\5.15\msvc2019_64 OPENSSLDIR: C:\OpenSSL-v111-Win64\bin @@ -17,14 +18,14 @@ environment: install: - cmd: |- - set PATH=%QTDIR%\bin;%NSISDIR%;%PATH% + set PATH=%QTDIR%\bin;%NSISDIR%;%JOMDIR%;%PATH% call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat build_script: - cmd: |- lrelease gpxsee.pro qmake gpxsee.pro - nmake release + jom release md installer copy release\GPXSee.exe installer From 355f451e5cd6b8e780c0001a8f72ad31e4edb555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Fri, 21 Mar 2025 22:06:50 +0100 Subject: [PATCH 33/33] Add "office" as used in OpenAndroMaps as an equivalent to Mapsforge's "civic" --- data/style/style.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/style/style.xml b/data/style/style.xml index e7ba6d12..644d2bd9 100644 --- a/data/style/style.xml +++ b/data/style/style.xml @@ -214,11 +214,11 @@ - + - +