diff --git a/.appveyor.yml b/.appveyor.yml index f15e9971..1db0c37d 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,4 +1,4 @@ -version: 13.38.{build} +version: 13.39.{build} configuration: - Release diff --git a/README.md b/README.md index a9c83c7c..b1c10107 100644 --- a/README.md +++ b/README.md @@ -5,8 +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, Velocitek VTK, 70mai GPS logs and geotagged - JPEG files. + TwoNav (TRK, RTE, WPT), GPSDump WPT, Velocitek VTK, Vakaros VKX, 70mai GPS logs + and geotagged JPEG files. * Opens geo URIs (RFC 5870). * User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS, QuadTiles). diff --git a/gpxsee.pro b/gpxsee.pro index 567efc7e..cd2a4ac9 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -3,7 +3,7 @@ unix:!macx:!android { } else { TARGET = GPXSee } -VERSION = 13.38 +VERSION = 13.39 QT += core \ gui \ @@ -118,6 +118,7 @@ HEADERS += src/common/config.h \ src/data/style.h \ src/data/twonavparser.h \ src/data/txtparser.h \ + src/data/vkxparser.h \ src/data/vtkparser.h \ src/map/ENC/data.h \ src/map/IMG/light.h \ @@ -347,6 +348,7 @@ SOURCES += src/main.cpp \ src/GUI/projectioncombobox.cpp \ src/GUI/passwordedit.cpp \ src/data/txtparser.cpp \ + src/data/vkxparser.cpp \ src/data/vtkparser.cpp \ src/map/downloader.cpp \ src/map/demloader.cpp \ @@ -564,7 +566,8 @@ win32 { icons/formats/gemf.ico \ icons/formats/000.ico \ icons/formats/031.ico \ - icons/formats/vtk.ico + icons/formats/vtk.ico \ + icons/formats/vkx.ico DEFINES += _USE_MATH_DEFINES \ NOGDI } diff --git a/icons/formats/scripts/extensions b/icons/formats/scripts/extensions index 9548ca02..61eefabd 100644 --- a/icons/formats/scripts/extensions +++ b/icons/formats/scripts/extensions @@ -33,3 +33,4 @@ gemf:#147085 000:#000000 031:#000000 vtk:#632433 +vkx:#00ccff diff --git a/icons/formats/vkx.icns b/icons/formats/vkx.icns new file mode 100644 index 00000000..7a97772e Binary files /dev/null and b/icons/formats/vkx.icns differ diff --git a/icons/formats/vkx.ico b/icons/formats/vkx.ico new file mode 100644 index 00000000..58c1f771 Binary files /dev/null and b/icons/formats/vkx.ico differ diff --git a/lang/gpxsee_ca.ts b/lang/gpxsee_ca.ts index 38cd993d..ea47d0e4 100644 --- a/lang/gpxsee_ca.ts +++ b/lang/gpxsee_ca.ts @@ -70,122 +70,127 @@ 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 + Fitxers de registre GPS de 70mai + + + + VKX files - + VTK files - + Fitxers VTK - + TwoNav files Fitxers TwoNav - + GPSDump files Ffitxers d'abocament de GPS - + All files Tots els fitxers @@ -961,7 +966,7 @@ Error loading geo URI: - + Error en carregar geo URI: diff --git a/lang/gpxsee_cs.ts b/lang/gpxsee_cs.ts index f015592e..18d24121 100644 --- a/lang/gpxsee_cs.ts +++ b/lang/gpxsee_cs.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + Soubory VKX + + + VTK files Soubory VTK - + TwoNav files Soubory TwoNavu - + GPSDump files Soubory GPSDumpu - + All files Všechny soubory diff --git a/lang/gpxsee_da.ts b/lang/gpxsee_da.ts index 4ed9c21b..e182bb08 100644 --- a/lang/gpxsee_da.ts +++ b/lang/gpxsee_da.ts @@ -70,122 +70,127 @@ 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 + 70mai GPS-logfiler + + + + VKX files - + VTK files - + VTK-filer - + TwoNav files TwoNav-filer - + GPSDump files GPSDump-filer - + All files Alle filer @@ -773,7 +778,7 @@ Error loading geo URI: - + Fejl ved indlæsning af geo-URI: diff --git a/lang/gpxsee_de.ts b/lang/gpxsee_de.ts index f5daf14d..c1e989d1 100644 --- a/lang/gpxsee_de.ts +++ b/lang/gpxsee_de.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + VKX-Dateien + + + VTK files VTK-Dateien - + TwoNav files TwoNav-Dateien - + GPSDump files GPSDump-Dateien - + All files Alle Dateien diff --git a/lang/gpxsee_eo.ts b/lang/gpxsee_eo.ts index 97a8e28e..e957dbbe 100644 --- a/lang/gpxsee_eo.ts +++ b/lang/gpxsee_eo.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files VTK dosieroj - + TwoNav files TwoNav-dosieroj - + GPSDump files GPSDump-dosieroj - + All files Ĉiuj dosieroj diff --git a/lang/gpxsee_es.ts b/lang/gpxsee_es.ts index 02acac46..d9d20d22 100644 --- a/lang/gpxsee_es.ts +++ b/lang/gpxsee_es.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files - + TwoNav files Archivos TwoNav - + GPSDump files Archivos GPSDump - + All files Todos los archivos diff --git a/lang/gpxsee_fi.ts b/lang/gpxsee_fi.ts index 900536af..a10dd686 100644 --- a/lang/gpxsee_fi.ts +++ b/lang/gpxsee_fi.ts @@ -70,122 +70,127 @@ 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 70mai GPS -lokitiedostot - + + VKX files + + + + VTK files VTK-tiedostot - + TwoNav files TwoNav-tiedostot - + GPSDump files GPSDump-tiedostot - + All files Kaikki tiedostot diff --git a/lang/gpxsee_fr.ts b/lang/gpxsee_fr.ts index cce38a87..9f8f4c6d 100644 --- a/lang/gpxsee_fr.ts +++ b/lang/gpxsee_fr.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + Fichiers VKX + + + VTK files Fichiers VTK - + TwoNav files Données TwoNav - + GPSDump files Fichiers GPSDump - + All files Tous les fichiers diff --git a/lang/gpxsee_hu.ts b/lang/gpxsee_hu.ts index f472f6a8..9df737bb 100644 --- a/lang/gpxsee_hu.ts +++ b/lang/gpxsee_hu.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + VKX fájlok + + + VTK files VTK fájlok - + TwoNav files TwoNav fájlok - + GPSDump files GPSDump fájlok - + All files Minden fájl @@ -200,7 +205,7 @@ Select directory - Könyvtár választása + Könyvtár kiválasztása @@ -1066,7 +1071,7 @@ Select map directory - Térképmappa választása + Térképmappa kiválasztása @@ -2035,7 +2040,7 @@ Select the initial paths of the file open dialogues. Leave the field empty for the system default. - Alapértelmezetten megnyíló mappa a lenti elemekhez. Üresen hagyva a mezőt, a program által alapértelmezett. + Válassza ki a fájlmegnyitó párbeszédpanelek kezdeti elérési útvonalait. A rendszer alapértelmezett beállításaihoz hagyja üresen. diff --git a/lang/gpxsee_it.ts b/lang/gpxsee_it.ts index 6a47f724..0b31a04f 100644 --- a/lang/gpxsee_it.ts +++ b/lang/gpxsee_it.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files - + TwoNav files File TwoNav - + GPSDump files - + All files Tutti i file diff --git a/lang/gpxsee_ko.ts b/lang/gpxsee_ko.ts index 1b1d60c6..ca1612c0 100644 --- a/lang/gpxsee_ko.ts +++ b/lang/gpxsee_ko.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files - + TwoNav files TwoNav 파일 - + GPSDump files GPSDump 파일 - + All files 모든 파일 diff --git a/lang/gpxsee_nb.ts b/lang/gpxsee_nb.ts index ba6432a1..6a463deb 100644 --- a/lang/gpxsee_nb.ts +++ b/lang/gpxsee_nb.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files - + TwoNav files TwoNav-filer - + GPSDump files GPSDump-filer - + All files Alle filer diff --git a/lang/gpxsee_pl.ts b/lang/gpxsee_pl.ts index ae47b95a..ac3fdf60 100644 --- a/lang/gpxsee_pl.ts +++ b/lang/gpxsee_pl.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files - + TwoNav files - + GPSDump files - + All files Wszystkie pliki diff --git a/lang/gpxsee_pt_BR.ts b/lang/gpxsee_pt_BR.ts index 38322adf..2c191626 100644 --- a/lang/gpxsee_pt_BR.ts +++ b/lang/gpxsee_pt_BR.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files - + TwoNav files - + GPSDump files - + All files Todos os arquivos diff --git a/lang/gpxsee_ru.ts b/lang/gpxsee_ru.ts index ea1a0192..973c5501 100644 --- a/lang/gpxsee_ru.ts +++ b/lang/gpxsee_ru.ts @@ -70,122 +70,127 @@ 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 70mai GPS файлы - + + VKX files + + + + VTK files VTK файлы - + TwoNav files TwoNav файлы - + GPSDump files GPSDump файлы - + All files Все файлы diff --git a/lang/gpxsee_sv.ts b/lang/gpxsee_sv.ts index e7b86f2f..0c0a1f3b 100644 --- a/lang/gpxsee_sv.ts +++ b/lang/gpxsee_sv.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + VKX-filer + + + VTK files VTK-filer - + TwoNav files TwoNav-filer - + GPSDump files GPSDump-filer - + All files Alla filer diff --git a/lang/gpxsee_tr.ts b/lang/gpxsee_tr.ts index ce87c00a..216380ff 100644 --- a/lang/gpxsee_tr.ts +++ b/lang/gpxsee_tr.ts @@ -70,122 +70,127 @@ 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ı - + + VKX files + + + + VTK files - + TwoNav files TwoNav dosyaları - + GPSDump files GPSDump dosyaları - + All files Tüm dosyalar diff --git a/lang/gpxsee_uk.ts b/lang/gpxsee_uk.ts index 073bb680..180c1dda 100644 --- a/lang/gpxsee_uk.ts +++ b/lang/gpxsee_uk.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + Файли VKX + + + VTK files Файли VTK - + TwoNav files TwoNav файли - + GPSDump files GPSDump файли - + All files Всі файли diff --git a/lang/gpxsee_zh_CN.ts b/lang/gpxsee_zh_CN.ts index 0abc5445..80eaca66 100644 --- a/lang/gpxsee_zh_CN.ts +++ b/lang/gpxsee_zh_CN.ts @@ -70,122 +70,127 @@ 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 - + + VKX files + + + + VTK files - + TwoNav files TwoNav 文件 - + GPSDump files GPSDump 文件 - + All files 所有文件 diff --git a/pkg/linux/gpxsee.appdata.xml b/pkg/linux/gpxsee.appdata.xml index f18efd48..15a05604 100644 --- a/pkg/linux/gpxsee.appdata.xml +++ b/pkg/linux/gpxsee.appdata.xml @@ -16,7 +16,7 @@ OziExplorer (PLT, WPT, RTE), GeoJSON, SeeYou CUP, Garmin GPI & CSV, TomTom OV2 & ITN, ONmove OMD/GHP, TwoNav (TRK, RTE, WPT), GPSDump WPT, Velocitek VTK, - 70mai GPS logs and geotagged JPEG files. + Vakaros VKX, 70mai GPS logs and geotagged JPEG files.
  • Opens geo URIs (RFC 5870).
  • User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS, QuadTiles).
  • @@ -115,6 +115,7 @@ application/vnd.gpstuner.gmi application/vnd.70mai.txt application/vnd.velocitek.vtk + application/vnd.vakaros.vkx x-scheme-handler/geo diff --git a/pkg/linux/gpxsee.desktop b/pkg/linux/gpxsee.desktop index bf037bc3..cceb7c31 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;application/vnd.velocitek.vtk +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;application/vnd.vakaros.vkx diff --git a/pkg/linux/gpxsee.xml b/pkg/linux/gpxsee.xml index fe535d8d..2c91fa5d 100644 --- a/pkg/linux/gpxsee.xml +++ b/pkg/linux/gpxsee.xml @@ -205,6 +205,16 @@ + + Vakaros VKX File + + + + + + + + diff --git a/pkg/mac/Info.plist b/pkg/mac/Info.plist index a980c74e..e1c2739e 100644 --- a/pkg/mac/Info.plist +++ b/pkg/mac/Info.plist @@ -766,6 +766,22 @@ CFBundleTypeRole Viewer + + CFBundleTypeExtensions + + vkx + + CFBundleTypeMIMETypes + + application/vnd.vakaros.vkx + + CFBundleTypeIconFile + icons/vkx.icns + CFBundleTypeName + Vakaros VKX File + CFBundleTypeRole + Viewer + CFBundleURLTypes @@ -1796,6 +1812,29 @@ application/vnd.velocitek.vtk + + UTTypeIdentifier + com.vakaros.vkx + UTTypeReferenceURL + https://github.com/vakaros/vkx + UTTypeDescription + Vakaros VKX File + UTTypeIconFile + icons/vkx.icns + UTTypeConformsTo + + public.data + + UTTypeTagSpecification + + public.filename-extension + + vkx + + public.mime-type + application/vnd.vakaros.vkx + + UTExportedTypeDeclarations diff --git a/pkg/windows/gpxsee64.nsi b/pkg/windows/gpxsee64.nsi index 57e2b3d9..11a0af88 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.38" +!define VERSION "13.39" ; The file to write OutFile "GPXSee-${VERSION}_x64.exe" @@ -205,13 +205,14 @@ Section "GPXSee" SEC_APP !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 "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 FILE_ASSOCIATION_ADD "vkx" "Vakaros VKX File" 30 + !insertmacro FILE_ASSOCIATION_ADD "kml" "Keyhole Markup Language" 31 + !insertmacro FILE_ASSOCIATION_ADD "kmz" "KML geographic compressed data" 31 + !insertmacro FILE_ASSOCIATION_ADD "fit" "Flexible and Interoperable Data Transfer" 32 + !insertmacro FILE_ASSOCIATION_ADD "igc" "Flight Recorder Data Format" 33 + !insertmacro FILE_ASSOCIATION_ADD "nmea" "NMEA 0183 Data" 34 + !insertmacro FILE_ASSOCIATION_ADD "plt" "OziExplorer Track File" 35 + !insertmacro FILE_ASSOCIATION_ADD "rte" "OziExplorer Route File" 36 !insertmacro URI_ASSOCIATION_ADD "geo" @@ -268,6 +269,7 @@ Section "GPXSee" SEC_APP WriteRegStr HKCR ".031\OpenWithList" "GPXSee.exe" "" WriteRegStr HKCR ".txt\OpenWithList" "GPXSee.exe" "" WriteRegStr HKCR ".vtk\OpenWithList" "GPXSee.exe" "" + WriteRegStr HKCR ".vkx\OpenWithList" "GPXSee.exe" "" System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' @@ -443,6 +445,7 @@ Section "Uninstall" !insertmacro FILE_ASSOCIATION_REMOVE "000" !insertmacro FILE_ASSOCIATION_REMOVE "031" !insertmacro FILE_ASSOCIATION_REMOVE "vtk" + !insertmacro FILE_ASSOCIATION_REMOVE "vkx" !insertmacro URI_ASSOCIATION_REMOVE "geo" @@ -498,6 +501,7 @@ Section "Uninstall" DeleteRegValue HKCR ".031\OpenWithList" "GPXSee.exe" DeleteRegValue HKCR ".txt\OpenWithList" "GPXSee.exe" DeleteRegValue HKCR ".vtk\OpenWithList" "GPXSee.exe" + DeleteRegValue HKCR ".vkx\OpenWithList" "GPXSee.exe" DeleteRegKey HKCR "Applications\GPXSee.exe" System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' diff --git a/src/data/data.cpp b/src/data/data.cpp index ecba0159..ada95eda 100644 --- a/src/data/data.cpp +++ b/src/data/data.cpp @@ -25,6 +25,7 @@ #include "gpsdumpparser.h" #include "txtparser.h" #include "vtkparser.h" +#include "vkxparser.h" #include "data.h" @@ -53,6 +54,7 @@ static TwoNavParser twonav; static GPSDumpParser gpsdump; static TXTParser txt; static VTKParser vtk; +static VKXParser vkx; static QMultiMap parsers() { @@ -88,6 +90,7 @@ static QMultiMap parsers() map.insert("wpt", &gpsdump); map.insert("txt", &txt); map.insert("vtk", &vtk); + map.insert("vkx", &vkx); return map; } @@ -248,6 +251,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", "VKX files") + " (*.vkx);;" + qApp->translate("Data", "VTK files") + " (*.vtk);;" + qApp->translate("Data", "TwoNav files") + " (*.rte *.trk *.wpt);;" + qApp->translate("Data", "GPSDump files") + " (*.wpt);;" diff --git a/src/data/vkxparser.cpp b/src/data/vkxparser.cpp new file mode 100644 index 00000000..98af4ba5 --- /dev/null +++ b/src/data/vkxparser.cpp @@ -0,0 +1,151 @@ +#include "vkxparser.h" + +static bool readTrackPoint(QDataStream &stream, SegmentData &segment) +{ + quint64 time; + qint32 lat, lon; + quint32 unused; + float speed, alt; + + stream >> time >> lat >> lon; + if (stream.status() != QDataStream::Ok) + return false; + if (stream.readRawData((char*)&speed, 4) != 4) + return false; + stream >> unused; + if (stream.readRawData((char*)&alt, 4) != 4) + return false; + stream >> unused >> unused >> unused >> unused; + if (stream.status() != QDataStream::Ok) + return false; + + Trackpoint t(Coordinates(lon / 1e7, lat / 1e7)); + if (!t.coordinates().isValid()) + return false; + t.setTimestamp(QDateTime::fromMSecsSinceEpoch(time)); + t.setSpeed(speed); + t.setElevation(alt); + + segment.append(t); + + return true; +} + +bool VKXParser::skip(QDataStream &stream, quint8 key, int len) +{ + if (stream.skipRawData(len) != len) { + _errorString = "Invalid 0x" + QString::number(key, 16) + " row"; + return false; + } + + return true; +} + +bool VKXParser::parse(QFile *file, QList &tracks, + QList &routes, QList &polygons, QVector &waypoints) +{ + Q_UNUSED(routes); + Q_UNUSED(polygons); + Q_UNUSED(waypoints); + quint8 key; + quint64 hdr; + SegmentData segment; + + QDataStream stream(file); + stream.setByteOrder(QDataStream::LittleEndian); + + stream >> hdr; + if ((hdr & 0xFF) != 0xFF) { + _errorString = "Not a Vakaros VKX file"; + return false; + } + + while (stream.status() == QDataStream::Ok) { + stream >> key; + if (stream.status() != QDataStream::Ok) + break; + + switch (key) { + case 0x01: + if (!skip(stream, key, 32)) + return false; + break; + case 0x02: + if (!readTrackPoint(stream, segment)) { + _errorString = "Invalid 0x2 row"; + return false; + } + break; + case 0x03: + if (!skip(stream, key, 20)) + return false; + break; + case 0x04: + if (!skip(stream, key, 13)) + return false; + break; + case 0x05: + if (!skip(stream, key, 17)) + return false; + break; + case 0x06: + if (!skip(stream, key, 18)) + return false; + break; + case 0x07: + if (!skip(stream, key, 12)) + return false; + break; + case 0x08: + if (!skip(stream, key, 13)) + return false; + break; + case 0x0A: + case 0x0B: + if (!skip(stream, key, 16)) + return false; + break; + case 0x0C: + if (!skip(stream, key, 12)) + return false; + break; + case 0x0E: + case 0x0F: + if (!skip(stream, key, 16)) + return false; + break; + case 0x10: + if (!skip(stream, key, 12)) + return false; + break; + case 0x20: + if (!skip(stream, key, 13)) + return false; + break; + case 0x21: + if (!skip(stream, key, 52)) + return false; + break; + case 0xFE: + if (!skip(stream, key, 2)) + return false; + break; + case 0xFF: + if (!skip(stream, key, 7)) + return false; + break; + default: + _errorString = "Unknown row key: 0x" + QString::number(key, 16); + return false; + } + } + + if (stream.status() != QDataStream::ReadPastEnd) { + _errorString = "Unexpected EOF"; + return false; + } + + tracks.append(segment); + + return true; +} diff --git a/src/data/vkxparser.h b/src/data/vkxparser.h new file mode 100644 index 00000000..0459dfe0 --- /dev/null +++ b/src/data/vkxparser.h @@ -0,0 +1,27 @@ +#ifndef VKXPARSER_H +#define VKXPARSER_H + +#include "parser.h" + +class QDataStream; + +class VKXParser : public Parser +{ +public: + VKXParser() + { + static_assert(sizeof(float) == 4, "Invalid float size"); + } + + bool parse(QFile *file, QList &tracks, QList &routes, + QList &polygons, QVector &waypoints); + QString errorString() const {return _errorString;} + int errorLine() const {return 0;} + +private: + bool skip(QDataStream &stream, quint8 key, int len); + + QString _errorString; +}; + +#endif // VKXPARSER_H