1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-04-20 12:19:11 +02:00

Compare commits

..

No commits in common. "master" and "13.30" have entirely different histories.

194 changed files with 6580 additions and 8961 deletions

View File

@ -1,4 +1,4 @@
version: 13.39.{build}
version: 13.30.{build}
configuration:
- Release
@ -8,24 +8,24 @@ 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
NSISDEF: /DOPENSSL /DANGLE
- QTDIR: C:\Qt\6.8\msvc2022_64
NSISDEF: /DQT6
- QTDIR: C:\Qt\6.7\msvc2019_64
OPENSSLDIR: C:\OpenSSL-v33-Win64\bin
NSISDEF: /DQT6 /DOPENSSL
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
@ -36,8 +36,8 @@ build_script:
xcopy lang\*.qm installer\translations\ /sy
xcopy icons\symbols installer\symbols /i
copy licence.txt installer
IF DEFINED OPENSSLDIR (copy %OPENSSLDIR%\libcrypto-*-x64.dll installer)
IF DEFINED OPENSSLDIR (copy %OPENSSLDIR%\libssl-*-x64.dll installer)
copy %OPENSSLDIR%\libcrypto-*-x64.dll installer
copy %OPENSSLDIR%\libssl-*-x64.dll installer
makensis.exe %NSISDEF% installer\gpxsee64.nsi

View File

@ -43,7 +43,7 @@ jobs:
- name: Configure build
run: qmake gpxsee.pro OPENSSL_PATH=android_openssl
- name: Build project
run: make -j4 apk
run: make -j2 apk
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:

View File

@ -8,10 +8,7 @@ on:
jobs:
build:
name: GPXSee
runs-on: ubuntu-22.04
strategy:
matrix:
config: ['release', 'debug']
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
@ -22,6 +19,6 @@ jobs:
- name: Create localization
run: lrelease gpxsee.pro
- name: Configure build
run: qmake CONFIG+=${{ matrix.config }} gpxsee.pro
run: qmake gpxsee.pro
- name: Build project
run: make -j4
run: make -j2

View File

@ -15,7 +15,7 @@ jobs:
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.8.2'
version: '6.8.0'
modules: qtpositioning qtserialport qtimageformats
- name: Create localization
run: lrelease gpxsee.pro

View File

@ -5,9 +5,7 @@ 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, Vakaros VKX, 70mai GPS logs
and geotagged JPEG files.
* Opens geo URIs (RFC 5870).
TwoNav (TRK, RTE, WPT), GPSDump WPT and geotagged JPEG files.
* User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS,
QuadTiles).
* Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases,
@ -30,8 +28,8 @@ GPS log file formats.
## Build
Build requirements:
* Qt5 >= 5.15 or Qt6 >= 6.2 (Android builds require Qt6)
* C++11 or newer compiler (tested: msvc2022, gcc 11, clang/Apple LLVM version
* Qt5 >= 5.11 or Qt6 >= 6.2 (Android builds require Qt6)
* C++11 or newer compiler (tested: msvc2019, gcc 7.5.0, clang/Apple LLVM version
10.0.0)
Build steps:

View File

@ -21,9 +21,9 @@
</rule>
<rule e="way" closed="yes" k="natural" v="rock|stone|bare_rock|bedrock" zoom-min="14">
<area fill="#96968f"/>
<area fill="#60000000"/>
</rule>
<rule e="way" closed="yes" k="natural" v="glacier" zoom-min="10">
<rule e="way" closed="yes" k="natural" v="glacier" zoom-min="12">
<area fill="#ddf1fd"/>
</rule>
@ -32,7 +32,7 @@
<area fill="#e4efcf"/>
</rule>
<rule e="way" closed="yes" k="landuse" v="construction|quarry|landfill|industrial|farm|farmyard|railway" zoom-min="10">
<rule e="way" closed="yes" k="landuse" v="construction|quarry|landfill|industrial|farm|farmyard" zoom-min="10">
<area fill="#d6d4ce"/>
</rule>
<rule e="way" closed="yes" k="landuse" v="allotments" zoom-min="10">
@ -82,13 +82,7 @@
<!-- Water -->
<rule e="way" closed="yes" k="natural" v="water">
<area fill="#9fc4e1"/>
<rule e="way" k="bBoxWeight" v="~|mid|large|xlarge|xxlarge|xxxlarge" zoom-min="14" zoom-max="15">
<caption fill="#ffffff" font-size="12" font-family="serif" font-style="italic" k="name" stroke="#9fc4e1" stroke-width="2"/>
</rule>
<rule e="way" k="bBoxWeight" v="~|xsmall|small|mid|large|xlarge|xxlarge|xxxlarge" zoom-min="16" zoom-max="16">
<caption fill="#ffffff" font-size="12" font-family="serif" font-style="italic" k="name" stroke="#9fc4e1" stroke-width="2"/>
</rule>
<rule e="way" k="*" v="*" zoom-min="17">
<rule e="way" k="*" v="*" zoom-min="14">
<caption fill="#ffffff" font-size="12" font-family="serif" font-style="italic" k="name" stroke="#9fc4e1" stroke-width="2"/>
</rule>
</rule>
@ -173,28 +167,21 @@
</rule>
<rule e="way" closed="yes" k="amenity" v="parking" zoom-min="10">
<area fill="#ffffff" stroke="#d5cdc0" stroke-width="0.1"/>
<rule e="way" k="parking" v="~|surface|street_side|lane" zoom-min="17">
<rule e="way" k="*" v="*" zoom-min="17">
<symbol id="parking" src=":/POI/parking-11.svg" symbol-width="11"/>
</rule>
<rule e="way" k="parking" v="underground|multi-storey" zoom-min="17">
<symbol id="garage" src=":/POI/parking-garage-11.svg" symbol-width="11"/>
</rule>
</rule>
<rule e="way" closed="yes" k="highway" v="pedestrian" zoom-min="10">
<area fill="#ffffff"/>
</rule>
<rule e="way" closed="yes" k="leisure" v="pitch|playground|track|ls_track" zoom-min="10">
<rule e="way" closed="yes" k="leisure" v="pitch|playground|track" zoom-min="10">
<area fill="#e3edc6" stroke="#c9d3a5" stroke-width="1" scale="none"/>
</rule>
<rule e="way" closed="no" k="leisure" v="track|ls_track" zoom-min="10">
<line stroke="#c9d3a5" stroke-width="0.3"/>
<line stroke="#e3edc6" stroke-width="0.2"/>
</rule>
<rule e="way" closed="yes" k="leisure" v="swimming_pool" zoom-min="12">
<rule e="way" closed="yes" k="leisure" v="swimming_pool" zoom-min="10">
<area fill="#9fc4e1" stroke="#4398d9" stroke-width="1" scale="none"/>
</rule>
<rule e="way" closed="yes" k="amenity" v="fountain" zoom-min="12">
<area fill="#9fc4e1"/>
<rule e="way" k="leisure" v="track" zoom-min="10">
<line stroke="#e3edc6" stroke-width="1"/>
</rule>
<!-- Area overlays -->
@ -214,11 +201,10 @@
</rule>
<!-- Buildings -->
<rule e="way" k="building" v="-|civic|office|cathedral|church|basilica">
<rule e="way" k="building" v="*">
<area fill="#dbd0b6" stroke="#cdccc4" stroke-width="0.1"/>
</rule>
<rule e="way" k="building" v="civic|office">
<rule e="way" k="building" v="civic">
<area fill="#cfc4b3" stroke="#cdccc4" stroke-width="0.1"/>
<rule e="way" k="*" v="*" zoom-min="16">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" priority="-10"/>
@ -404,7 +390,7 @@
<rule e="way" k="*" v="*" zoom-min="14">
<pathText fill="#000000" font-size="10" k="name" priority="-5" stroke="#FFFFFF" stroke-width="2"/>
<rule e="way" k="oneway" v="yes|true|1" zoom-min="16">
<lineSymbol priority="-50" src=":/symbols/oneway.svg" symbol-width="16" symbol-height="8"/>
<lineSymbol priority="-50" src=":/symbols/arrow.svg" symbol-width="16" symbol-height="8"/>
</rule>
</rule>
</rule>
@ -429,12 +415,6 @@
<line stroke="#f7d9a6" stroke-width="1" stroke-linecap="butt"/>
</rule>
</rule>
<rule e="way" k="*" v="*" zoom-min="14">
<pathText fill="#000000" font-size="10" k="name" priority="-3" stroke="#FFFFFF" stroke-width="2"/>
<rule e="way" k="oneway" v="yes|true|1" zoom-min="16">
<lineSymbol priority="-50" src=":/symbols/oneway.svg" symbol-width="16" symbol-height="8"/>
</rule>
</rule>
</rule>
<rule e="way" k="highway" v="motorway|motorway_link">
<rule e="way" k="tunnel" v="~|false|no">
@ -469,7 +449,7 @@
<!-- Railways -->
<rule e="way" k="tunnel" v="~|false|no">
<rule e="way" k="railway" v="rail|preserved|disused">
<rule e="way" k="railway" v="rail">
<rule e="way" k="*" v="*" zoom-min="10" zoom-max="12">
<line stroke="#717171" stroke-width="1" stroke-linecap="butt"/>
</rule>
@ -486,15 +466,12 @@
<line stroke="#ffffff" stroke-width="0.4608" stroke-dasharray="2,2" stroke-linecap="butt" scale="all"/>
</rule>
</rule>
<rule e="way" k="railway" v="narrow_gauge|light_rail|funicular" zoom-min="14">
<line stroke="#414141" stroke-width="0.2" stroke-linecap="butt"/>
</rule>
<rule e="way" k="railway" v="tram" zoom-min="15">
<line stroke="#717171" stroke-width="0.2" stroke-linecap="butt"/>
</rule>
</rule>
<rule e="way" k="tunnel" v="yes|true">
<rule e="way" k="railway" v="rail|preserved|disused">
<rule e="way" k="railway" v="rail">
<rule e="way" k="*" v="*" zoom-min="10" zoom-max="12">
<line stroke="#717171" stroke-width="1" stroke-linecap="butt" stroke-dasharray="10,8"/>
</rule>
@ -508,9 +485,6 @@
<line stroke="#878787" stroke-width="0.4144" stroke-linecap="butt" stroke-dasharray="2,1" scale="all"/>
</rule>
</rule>
<rule e="way" k="railway" v="narrow_gauge|light_rail|funicular" zoom-min="14">
<line stroke="#414141" stroke-width="0.2" stroke-linecap="butt" stroke-dasharray="12,4"/>
</rule>
<rule e="way" k="railway" v="tram" zoom-min="15">
<line stroke="#717171" stroke-width="0.2" stroke-linecap="butt" stroke-dasharray="12,4"/>
</rule>
@ -553,91 +527,45 @@
</rule>
</rule>
<!-- Town & village names -->
<!-- Town & vilage names -->
<rule e="node" k="place" v="locality|isolated_dwelling|farm" zoom-min="14">
<caption fill="#000000" font-size="10" k="name" priority="10" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="place" v="hamlet" zoom-min="12">
<caption fill="#000000" font-size="14" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
<caption fill="#000000" font-size="12" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="place" v="village" zoom-min="11">
<caption fill="#000000" font-size="14" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
<caption fill="#000000" font-size="12" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="place" v="town" zoom-min="9" zoom-max="14">
<rule e="node" k="*" v="*" zoom-max="10">
<caption fill="#000000" font-size="14" k="name" priority="30" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="*" v="*" zoom-min="11">
<caption fill="#000000" font-size="16" k="name" font-style="bold" priority="30" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="place" v="town" zoom-min="9">
<caption fill="#000000" font-size="14" k="name" priority="30" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="place" v="city">
<rule e="node" k="*" v="*" zoom-max="10">
<rule e="node" k="capital" v="2">
<caption fill="#000000" font-size="18" font-style="bold" k="name" priority="40" stroke="#FFFFFF" stroke-width="2" text-transform="uppercase"/>
</rule>
<rule e="node" k="capital" v="4|~">
<caption fill="#000000" font-size="18" font-style="bold" k="name" priority="35" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="capital" v="yes|1|2">
<caption fill="#000000" font-size="16" font-style="bold" k="name" priority="40" stroke="#FFFFFF" stroke-width="2" text-transform="uppercase"/>
</rule>
<rule e="node" k="*" v="*" zoom-min="11" zoom-max="14">
<rule e="node" k="capital" v="2">
<caption fill="#000000" font-size="22" font-style="bold" k="name" priority="40" stroke="#FFFFFF" stroke-width="2" text-transform="uppercase"/>
</rule>
<rule e="node" k="capital" v="4|~">
<caption fill="#000000" font-size="22" font-style="bold" k="name" priority="35" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="capital" v="no|~">
<caption fill="#000000" font-size="16" font-style="bold" k="name" priority="35" stroke="#FFFFFF" stroke-width="2"/>
</rule>
</rule>
<rule e="node" k="place" v="suburb">
<rule e="node" k="*" v="*" zoom-min="12" zoom-max="13">
<caption fill="#000000" font-size="14" k="name" priority="25" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="*" v="*" zoom-min="14" zoom-max="17">
<caption fill="#000000" font-size="16" k="name" priority="25" stroke="#FFFFFF" stroke-width="2"/>
</rule>
</rule>
<rule e="node" k="place" v="quarter" zoom-min="14" zoom-max="17">
<caption fill="#000000" font-size="14" k="name" priority="20" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="node" k="place" v="neighbourhood" zoom-min="15" zoom-max="17">
<caption fill="#000000" font-size="12" k="name" priority="15" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<!-- Nature POIs -->
<rule e="node" k="natural" v="peak" zoom-min="13">
<rule e="node" k="ele" v="*">
<rule e="node" k="name" v="*">
<symbol id="peak" src=":/POI/triangle-11.svg" symbol-width="11" priority="10"/>
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="peak"/>
<rule e="node" k="*" v="*" zoom-min="14">
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="ele" stroke="#FFFFFF" stroke-width="2" symbol-id="peak" priority="-1"/>
</rule>
</rule>
</rule>
<rule e="node" k="ele" v="~" zoom-min="15">
<rule e="node" k="name" v="*">
<symbol id="peak-minor" src=":/POI/triangle-stroked-11.svg" symbol-width="11" priority="5"/>
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="peak-minor"/>
</rule>
<rule e="node" k="name" v="*">
<symbol id="peak" src=":/POI/mountain-11.svg" symbol-width="11" priority="10"/>
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="peak"/>
</rule>
</rule>
<rule e="node" k="natural" v="saddle" zoom-min="13">
<rule e="node" k="name" v="*">
<symbol id="saddle" src=":/symbols/saddle.svg" symbol-width="9" symbol-height="11" priority="9"/>
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="saddle"/>
<rule e="node" k="*" v="*" zoom-min="14">
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="ele" stroke="#FFFFFF" stroke-width="2" symbol-id="saddle" priority="-1"/>
</rule>
</rule>
</rule>
<rule e="node" k="natural" v="volcano" zoom-min="13">
<rule e="node" k="name" v="*">
<symbol id="volcano" src=":/POI/volcano-11.svg" symbol-width="11" priority="10"/>
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="volcano"/>
<rule e="node" k="*" v="*" zoom-min="14">
<caption fill="#000000" font-size="10" font-family="serif" font-style="italic" k="ele" stroke="#FFFFFF" stroke-width="2" symbol-id="volcano" priority="-1"/>
</rule>
</rule>
</rule>
<rule e="node" k="waterway" v="waterfall" zoom-min="15">
@ -854,7 +782,7 @@
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="post"/>
</rule>
</rule>
<rule e="any" k="historic" v="memorial|monument" zoom-min="17">
<rule e="any" k="historic" v="memorial" zoom-min="17">
<symbol id="memorial" src=":/POI/monument-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="memorial"/>
@ -887,7 +815,7 @@
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="townhall"/>
</rule>
</rule>
<rule e="any" k="amenity" v="university|college" zoom-min="16">
<rule e="any" k="amenity" v="university" zoom-min="16">
<symbol id="university" src=":/POI/college-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="university"/>
@ -962,36 +890,6 @@
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="skateboard"/>
</rule>
</rule>
<rule e="any" k="sport" v="baseball" zoom-min="17">
<symbol id="baseball" src=":/POI/baseball-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="baseball"/>
</rule>
</rule>
<rule e="any" k="sport" v="basketball" zoom-min="17">
<symbol id="basketball" src=":/POI/basketball-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="basketball"/>
</rule>
</rule>
<rule e="any" k="sport" v="volleyball" zoom-min="17">
<symbol id="volleyball" src=":/POI/volleyball-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="volleyball"/>
</rule>
</rule>
<rule e="any" k="sport" v="equestrian" zoom-min="17">
<symbol id="equestrian" src=":/POI/horse-riding-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="equestrian"/>
</rule>
</rule>
<rule e="any" k="sport" v="cricket" zoom-min="17">
<symbol id="cricket" src=":/POI/cricket-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="cricket"/>
</rule>
</rule>
<rule e="any" k="amenity" v="restaurant" zoom-min="17">
<symbol id="restaurant" src=":/POI/restaurant-11.svg" symbol-width="11" priority="-5"/>
@ -1101,37 +999,4 @@
</rule>
</rule>
<rule e="any" k="military" v="bunker|bunker_disused" zoom-min="17">
<symbol id="bunker" src=":/symbols/bunker.svg" symbol-width="11" symbol-height="9"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="bunker"/>
</rule>
</rule>
<rule e="any" k="historic" v="wayside_cross|wayside_shrine" zoom-min="17">
<symbol id="wayside-cross" src=":/symbols/cross.svg" symbol-width="6" symbol-height="8"/>
<rule e="any" k="*" v="*" zoom-min="18">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="wayside-cross"/>
</rule>
</rule>
<rule e="any" k="leisure" v="slipway" zoom-min="16">
<symbol id="slipway" src=":/POI/slipway-11.svg" symbol-width="11"/>
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" symbol-id="slipway"/>
</rule>
</rule>
<rule e="any" k="power" v="plant" zoom-min="15">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2" priority="1"/>
</rule>
<rule e="any" k="landuse" v="quarry" zoom-min="14">
<caption fill="#000000" font-size="10" font-style="italic" k="name" stroke="#FFFFFF" stroke-width="2"/>
</rule>
<rule e="any" k="emergency" v="phone" zoom-min="16">
<symbol id="phone" src=":/POI/telephone-11.svg" symbol-width="11"/>
</rule>
<rule e="any" k="emergency" v="defibrillator" zoom-min="16">
<symbol id="defibrillator" src=":/POI/defibrillator-11.svg" symbol-width="11"/>
</rule>
</rendertheme>

View File

@ -3,7 +3,8 @@ unix:!macx:!android {
} else {
TARGET = GPXSee
}
VERSION = 13.39
VERSION = 13.30
QT += core \
gui \
@ -117,11 +118,6 @@ HEADERS += src/common/config.h \
src/data/gpsdumpparser.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 \
src/map/downloader.h \
src/map/demloader.h \
src/map/ENC/attributes.h \
@ -347,9 +343,6 @@ SOURCES += src/main.cpp \
src/GUI/pngexportdialog.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 \
src/map/ENC/atlasdata.cpp \
@ -530,7 +523,7 @@ win32 {
RESOURCES += theme-color.qrc
QMAKE_TARGET_DESCRIPTION = GPXSee
QMAKE_TARGET_COPYRIGHT = Copyright (c) 2015-2025 Martin Tuma
QMAKE_TARGET_COPYRIGHT = Copyright (c) 2015-2024 Martin Tuma
RC_ICONS = icons/app/gpxsee.ico \
icons/formats/gpx.ico \
icons/formats/tcx.ico \
@ -565,9 +558,7 @@ win32 {
icons/formats/trk.ico \
icons/formats/gemf.ico \
icons/formats/000.ico \
icons/formats/031.ico \
icons/formats/vtk.ico \
icons/formats/vkx.ico
icons/formats/031.ico
DEFINES += _USE_MATH_DEFINES \
NOGDI
}

View File

@ -6,9 +6,7 @@
<!-- Common map stuff -->
<qresource prefix="/symbols">
<file alias="bunker.svg">icons/map/symbols/bunker.svg</file>
<file alias="cliff.svg">icons/map/symbols/cliff.svg</file>
<file alias="cross.svg">icons/map/symbols/cross.svg</file>
<file alias="exit.svg">icons/map/symbols/exit.svg</file>
<file alias="flow.svg">icons/map/symbols/flow.svg</file>
<file alias="oneway.svg">icons/map/symbols/oneway.svg</file>
@ -25,8 +23,6 @@
<file alias="bank-11.svg">icons/map/POI/bank-11.svg</file>
<file alias="bar-11.svg">icons/map/POI/bar-11.svg</file>
<file alias="barrier-11.svg">icons/map/POI/barrier-11.svg</file>
<file alias="baseball-11.svg">icons/map/POI/baseball-11.svg</file>
<file alias="basketball-11.svg">icons/map/POI/basketball-11.svg</file>
<file alias="bbq-11.svg">icons/map/POI/bbq-11.svg</file>
<file alias="beach-11.svg">icons/map/POI/beach-11.svg</file>
<file alias="beer-11.svg">icons/map/POI/beer-11.svg</file>
@ -48,11 +44,9 @@
<file alias="college-11.svg">icons/map/POI/college-11.svg</file>
<file alias="communications-tower-11.svg">icons/map/POI/communications-tower-11.svg</file>
<file alias="convenience-11.svg">icons/map/POI/convenience-11.svg</file>
<file alias="cricket-11.svg">icons/map/POI/cricket-11.svg</file>
<file alias="cross-11.svg">icons/map/POI/cross-11.svg</file>
<file alias="dam-11.svg">icons/map/POI/dam-11.svg</file>
<file alias="danger-11.svg">icons/map/POI/danger-11.svg</file>
<file alias="defibrillator-11.svg">icons/map/POI/defibrillator-11.svg</file>
<file alias="doctor-11.svg">icons/map/POI/doctor-11.svg</file>
<file alias="drinking-water-11.svg">icons/map/POI/drinking-water-11.svg</file>
<file alias="fast-food-11.svg">icons/map/POI/fast-food-11.svg</file>
@ -72,7 +66,6 @@
<file alias="hardware-11.svg">icons/map/POI/hardware-11.svg</file>
<file alias="heliport-11.svg">icons/map/POI/heliport-11.svg</file>
<file alias="home-11.svg">icons/map/POI/home-11.svg</file>
<file alias="horse-riding-11.svg">icons/map/POI/horse-riding-11.svg</file>
<file alias="hospital-11.svg">icons/map/POI/hospital-11.svg</file>
<file alias="hot-spring.svg">icons/map/POI/hot-spring.svg</file>
<file alias="ice-cream-11.svg">icons/map/POI/ice-cream-11.svg</file>
@ -88,7 +81,6 @@
<file alias="observation-tower.svg">icons/map/POI/observation-tower.svg</file>
<file alias="park-11.svg">icons/map/POI/park-11.svg</file>
<file alias="parking-11.svg">icons/map/POI/parking-11.svg</file>
<file alias="parking-garage-11.svg">icons/map/POI/parking-garage-11.svg</file>
<file alias="pharmacy-11.svg">icons/map/POI/pharmacy-11.svg</file>
<file alias="picnic-site-11.svg">icons/map/POI/picnic-site-11.svg</file>
<file alias="place-of-worship-11.svg">icons/map/POI/place-of-worship-11.svg</file>
@ -111,7 +103,6 @@
<file alias="skateboard-11.svg">icons/map/POI/skateboard-11.svg</file>
<file alias="skiing-11.svg">icons/map/POI/skiing-11.svg</file>
<file alias="slaughterhouse-11.svg">icons/map/POI/slaughterhouse-11.svg</file>
<file alias="slipway-11.svg">icons/map/POI/slipway-11.svg</file>
<file alias="soccer-11.svg">icons/map/POI/soccer-11.svg</file>
<file alias="stadium-11.svg">icons/map/POI/stadium-11.svg</file>
<file alias="swimming-11.svg">icons/map/POI/swimming-11.svg</file>
@ -120,12 +111,9 @@
<file alias="theatre-11.svg">icons/map/POI/theatre-11.svg</file>
<file alias="toilet-11.svg">icons/map/POI/toilet-11.svg</file>
<file alias="town-hall-11.svg">icons/map/POI/town-hall-11.svg</file>
<file alias="triangle-11.svg">icons/map/POI/triangle-11.svg</file>
<file alias="triangle-stroked-11.svg">icons/map/POI/triangle-stroked-11.svg</file>
<file alias="viewpoint-11.svg">icons/map/POI/viewpoint-11.svg</file>
<file alias="village-11.svg">icons/map/POI/village-11.svg</file>
<file alias="volcano-11.svg">icons/map/POI/volcano-11.svg</file>
<file alias="volleyball-11.svg">icons/map/POI/volleyball-11.svg</file>
<file alias="water-11.svg">icons/map/POI/water-11.svg</file>
<file alias="waterfall-11.svg">icons/map/POI/waterfall-11.svg</file>
<file alias="watermill-11.svg">icons/map/POI/watermill-11.svg</file>
@ -193,10 +181,6 @@
<file alias="overfalls.png">icons/map/marine/overfalls.png</file>
<file alias="boarding-place.png">icons/map/marine/boarding-place.png</file>
<file alias="light.png">icons/map/marine/light.png</file>
<file alias="light-red.png">icons/map/marine/light-red.png</file>
<file alias="light-green.png">icons/map/marine/light-green.png</file>
<file alias="light-yellow.png">icons/map/marine/light-yellow.png</file>
<file alias="light-white.png">icons/map/marine/light-white.png</file>
<file alias="building.png">icons/map/marine/building.png</file>
<file alias="fog-signal.png">icons/map/marine/fog-signal.png</file>
<file alias="construction.png">icons/map/marine/construction.png</file>
@ -210,13 +194,6 @@
<file alias="kelp.png">icons/map/marine/kelp.png</file>
<file alias="eddies.png">icons/map/marine/eddies.png</file>
<file alias="dome.png">icons/map/marine/dome.png</file>
<file alias="radar-reflector.png">icons/map/marine/radar-reflector.png</file>
<file alias="24h-anchorage.png">icons/map/marine/24h-anchorage.png</file>
<file alias="dw-anchorage.png">icons/map/marine/dw-anchorage.png</file>
<file alias="tanker-anchorage.png">icons/map/marine/tanker-anchorage.png</file>
<file alias="nature-reserve-line.png">icons/map/marine/nature-reserve-line.png</file>
<file alias="sanctuary-line.png">icons/map/marine/sanctuary-line.png</file>
<file alias="fishing-farm.png">icons/map/marine/fishing-farm.png</file>
</qresource>
<!-- Patterns (Mapsforge) -->

View File

@ -32,5 +32,3 @@ trk:#cccccc
gemf:#147085
000:#000000
031:#000000
vtk:#632433
vkx:#00ccff

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" id="baseball-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
<path d="M7,3c0,0.5523-0.4477,1-1,1S5,3.5523,5,3s0.4477-1,1-1S7,2.4477,7,3z M9.85,10.24L9.85,10.24l-3-4.85&#xA;&#x9;C6.7391,5.2011,6.5603,5.0616,6.35,5H2.5C2.2239,5,2,5.2239,2,5.5S2.2239,6,2.5,6H5l0.92,1.09l-2.73,3l0,0&#xA;&#x9;C3.0637,10.1876,2.9928,10.3405,3,10.5C3,10.7761,3.2239,11,3.5,11c0.1224-0.0006,0.2401-0.047,0.33-0.13l0,0l3-2.71L9,10.81l0,0&#xA;&#x9;c0.0912,0.1178,0.231,0.1877,0.38,0.19c0.2761,0,0.5-0.2239,0.5-0.5C9.8938,10.4122,9.8834,10.3223,9.85,10.24z M4,0.28&#xA;&#x9;C4,0.1254,3.8746,0,3.72,0C3.6221,0.0262,3.5348,0.0821,3.47,0.16L2,4.59C1.9941,4.6331,1.9941,4.6769,2,4.72&#xA;&#x9;C2,4.8746,2.1254,5,2.28,5c0.1015-0.0243,0.1926-0.0803,0.26-0.16L4,0.41C4.006,0.3669,4.006,0.3231,4,0.28z"/>
</svg>

Before

Width:  |  Height:  |  Size: 876 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="basketball-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
<path id="icon_concepts:_sports_leisure" d="M2.63,3.51a5.1555,5.1555,0,0,1,.34,1.48H2.04A3.2586,3.2586,0,0,1,2.63,3.51Zm.55-.63a6.2022,6.2022,0,0,1,.55,2.11H5.12V2.01A3.4256,3.4256,0,0,0,3.18,2.88Zm2.7-.87V4.99H7.27a6.2022,6.2022,0,0,1,.55-2.11A3.4256,3.4256,0,0,0,5.88,2.01Zm2.49,1.5a5.1555,5.1555,0,0,0-.34,1.48h.93A3.2586,3.2586,0,0,0,8.37,3.51ZM9.9,6.5a.4952.4952,0,0,1-.49.5H8.44L7.91,8.05v1.7a.2176.2176,0,0,1-.14.2.236.236,0,0,1-.08.02.1987.1987,0,0,1-.16-.07l-.75-.74-1.16.77a.2107.2107,0,0,1-.24,0L4.22,9.16l-.75.74a.2222.2222,0,0,1-.38-.15V8.05L2.57,7H1.6a.5.5,0,1,1,0-1H9.4a.4951.4951,0,0,1,.5.49ZM3.53,8V9.22l.5-.5c.01,0,.01-.01.02-.01L5.1,7H3.06l.45.9A.3561.3561,0,0,1,3.53,8Zm2.97.82-1-1.63-1,1.63,1,.67ZM7.94,7H5.9L6.95,8.71c.01,0,.01.01.02.01l.5.5V8a.3561.3561,0,0,1,.02-.1Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 944 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" id="cricket-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
<path d="M6,1c0,0.5523-0.4477,1-1,1S4,1.5523,4,1s0.4477-1,1-1S6,0.4477,6,1z M8.88,5.18l-1-2l0,0l0,0&#xA;&#x9;C7.7859,3.0671,7.647,3.0012,7.5,3H2.77C2.3827,2.9815,2.0467,3.2651,2,3.65l0,0l-1,6.71l0,0c-0.0068,0.0464-0.0068,0.0936,0,0.14&#xA;&#x9;C1,10.7761,1.2239,11,1.5,11c0.2307,0.0129,0.4391-0.1371,0.5-0.36l0,0l1.22-3.89l0,0l0.21-0.83l0.4,0.44l0,0L5,7.6v2.9&#xA;&#x9;C5,10.7761,5.2239,11,5.5,11S6,10.7761,6,10.5v-3l0,0l0,0C5.9971,7.3984,5.9621,7.3004,5.9,7.22l0,0L4.45,5.5L5.5,4h1.71l0.92,1.84&#xA;&#x9;l0,0C8.2247,5.9439,8.3594,6.0022,8.5,6C8.7723,6.0001,8.9946,5.7822,9,5.51C8.9826,5.3931,8.9418,5.2808,8.88,5.18z M10.5,8&#xA;&#x9;C10.2239,8,10,8.2239,10,8.5S10.2239,9,10.5,9S11,8.7761,11,8.5S10.7761,8,10.5,8z M8.69,8V7.25C8.69,7.1119,8.5781,7,8.44,7&#xA;&#x9;S8.19,7.1119,8.19,7.25V8C8.0378,8.0855,7.9426,8.2455,7.94,8.42v2.08c0,0.2761,0.2239,0.5,0.5,0.5s0.5-0.2239,0.5-0.5V8.41&#xA;&#x9;C8.9339,8.2391,8.8392,8.0837,8.69,8z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11" id="defibrillator-11">
<path d="M1.42,4.7955C-0.2131,1.5291,3.9327-.6514,5.512,2.6149,7.0914-.6514,11.2371,1.5291,9.6039,4.7955c-0.0225.0377-.0483,0.0732-0.071,0.1108H8.3867L7.5586,3.252a0.65,0.65,0,0,0-1.1172,0L5,6.1338,4.5586,5.252A0.6243,0.6243,0,0,0,4,4.9063H1.4913C1.4685,4.8687,1.4427,4.8332,1.42,4.7955ZM8,6.1563a0.6243,0.6243,0,0,1-.5586-0.3457L7,4.9287,5.5586,7.8105a0.6241,0.6241,0,0,1-1.1172,0L3.6133,6.1563H2.3006a24.2269,24.2269,0,0,0,2.8973,3.449L5.2134,9.6208A0.44,0.44,0,0,0,5.835,9.6053a24.2289,24.2289,0,0,0,2.8905-3.449H8Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 675 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="horse-riding-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
<path d="M4,1A1,1,0,1,1,5,2,1,1,0,0,1,4,1Zm6.88,3.5L9,3V2.5L7,5H6L7,6V7.014a.5.5,0,1,1-1,0V6.5L4,5H3a1,1,0,0,0-.8.446A1.189,1.189,0,0,0,1.247,5,1.076,1.076,0,0,0,0,5.988C0,7.3.635,7.471.635,7.471a.33.33,0,0,0,.115.023A.253.253,0,0,0,1,7.25V6a.49.49,0,0,1,.48-.5H1.5A.5.5,0,0,1,2,6V8.014l-.3.6a1.609,1.609,0,0,0-.2.6v1.542A.244.244,0,0,0,1.744,11,.255.255,0,0,0,2,10.756V9.514a.367.367,0,0,1,.1-.3l.9-1.2V9l.467,1.816A.256.256,0,0,0,3.709,11a.25.25,0,0,0,.25-.25v-.016l-.242-1.61a.6.6,0,0,1,.025-.236L3.8,8.714,4,8H6V9l.466,1.816A.256.256,0,0,0,6.709,11a.25.25,0,0,0,.25-.25L6.718,9.124a.6.6,0,0,1,.025-.236L7,8a.877.877,0,0,0,.934-.661L8.5,4.5a.6.6,0,0,0,.71.454.562.562,0,0,0,.143-.07l.9.116a.721.721,0,0,0,.392.1A.331.331,0,0,0,11,4.784.406.406,0,0,0,10.88,4.5ZM6,3.5A.51.51,0,0,0,5.5,3h-1a.482.482,0,0,0-.5.5V5H6Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 972 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" id="parking-garage-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
<path d="M7.25,7.44C6.8067,7.7602,6.2657,7.9158,5.72,7.88H4.45V10H3.19V4H5.8c0.5201-0.0279,1.0324,0.1358,1.44,0.46&#xA;&#x9;c0.3847,0.372,0.5828,0.8966,0.54,1.43C7.8557,6.4611,7.6596,7.0348,7.25,7.44z M6.25,5.28c-0.1946-0.1475-0.4365-0.2186-0.68-0.2&#xA;&#x9;H4.45v1.76H5.6c0.246,0.0129,0.4882-0.0654,0.68-0.22c0.1746-0.1813,0.2621-0.4293,0.24-0.68c0.023-0.2449-0.0651-0.4871-0.24-0.66&#xA;&#x9;L6.25,5.28z M10.41,3.28c0.1349-0.2403,0.0499-0.5444-0.19-0.68l-4.5-2.5c-0.1521-0.0855-0.3379-0.0855-0.49,0l-4.5,2.5&#xA;&#x9;C0.4972,2.7485,0.4288,3.0576,0.5773,3.2904C0.7144,3.5054,0.9913,3.5828,1.22,3.47l4.28-2.4l4.26,2.37&#xA;&#x9;c0.2421,0.1328,0.546,0.0442,0.6789-0.1979C10.4392,3.2414,10.4396,3.2407,10.44,3.24L10.41,3.28z"/>
</svg>

Before

Width:  |  Height:  |  Size: 899 B

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="slipway-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
<g id="slipway-final">
<path d="M1.0417,8l8,1.3794V10h-8Zm8-4-1,1v.625L3.7345,4.01l.0777-.2852.86-.8447H5.5a.35.35,0,0,0,0-.6992H4.529a.3478.3478,0,0,0-.2451.1L3.2546,3.291a.3566.3566,0,0,0-.0928.1582l-.0856.3137L1.0417,3C1.0948,4,1,5.5094,3,5.8844,3.9829,6.0687,8.0948,7,8.0948,7l1.9469-2Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 452 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" id="triangle-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
<path id="rect3338" d="M5.5174,1.2315&#xA;&#x9;C5.3163,1.2253,5.1276,1.328,5.024,1.5l-4,6.6598C0.8013,8.5293,1.0679,8.9999,1.5,9h8c0.4321-0.0001,0.6987-0.4707,0.476-0.8402&#xA;&#x9;l-4-6.6598C5.8787,1.3386,5.706,1.2375,5.5174,1.2315z"/>
</svg>

Before

Width:  |  Height:  |  Size: 403 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" id="triangle-stroked-11" xmlns="http://www.w3.org/2000/svg" width="11px" height="11px" viewBox="0 0 11 11">
<path id="rect3338" d="M5.5174,1.2315&#xA;&#x9;C5.3163,1.2253,5.1276,1.328,5.024,1.5l-4,6.6598C0.8013,8.5293,1.0679,8.9999,1.5,9h8c0.4321-0.0001,0.6987-0.4707,0.476-0.8402&#xA;&#x9;l-4-6.6598C5.8787,1.3386,5.706,1.2375,5.5174,1.2315z M5.5,2.8627l3.0191,5.0286H2.4809L5.5,2.8627z"/>
</svg>

Before

Width:  |  Height:  |  Size: 456 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="volleyball-11" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11">
<path d="M9.99,5.73a3.6572,3.6572,0,0,1-.1.74A6.3224,6.3224,0,0,0,7.44,5.05a5.9537,5.9537,0,0,0-1.32-.27c-.03,0-.07-.01-.11-.01A4.6052,4.6052,0,0,1,5.5,3.64a1.0563,1.0563,0,0,1-.06-.24h.12a4.8784,4.8784,0,0,1,1.01.11,5.0388,5.0388,0,0,1,1.14.36,4.8341,4.8341,0,0,1,.94.53A5.1356,5.1356,0,0,1,9.99,5.73ZM9.33,7.31a5.1964,5.1964,0,0,0-1.36-.97c-.05.1-.11.19-.17.29a5.8645,5.8645,0,0,1-.59.82,7.1807,7.1807,0,0,1-.78.78,6.72,6.72,0,0,1-.93.65,6.3643,6.3643,0,0,1-1.86.72,4.524,4.524,0,0,0,3.72,0,4.1584,4.1584,0,0,0,1.25-.86,3.1983,3.1983,0,0,0,.43-.47,3.7473,3.7473,0,0,0,.48-.76A1.1915,1.1915,0,0,0,9.33,7.31ZM8.68,2.32a4.5077,4.5077,0,0,0-1.24-.88,3.979,3.979,0,0,0-.75-.28,4.3423,4.3423,0,0,0-1.03-.15,1.2787,1.2787,0,0,0-.32,0A5.3628,5.3628,0,0,0,5.25,2c0,.14.01.28.02.41a1.6165,1.6165,0,0,1,.22-.01,1.9237,1.9237,0,0,1,.24.01,6.6508,6.6508,0,0,1,1,.11,5.6947,5.6947,0,0,1,1,.28,6.7814,6.7814,0,0,1,1.02.47,6.6645,6.6645,0,0,1,.98.69A4.5655,4.5655,0,0,0,8.68,2.32ZM3.03,6.34a5.808,5.808,0,0,1-.4-.92,5.7849,5.7849,0,0,1-.28-1.03,6.86,6.86,0,0,1-.1-1.12V3.25a5.656,5.656,0,0,1,.07-.93A4.3939,4.3939,0,0,0,1.27,3.97,4.3206,4.3206,0,0,0,1,5.5a1.7671,1.7671,0,0,0,.01.23,4.4161,4.4161,0,0,0,.09.73,4.0749,4.0749,0,0,0,.31.91,1.0685,1.0685,0,0,0,.27-.07A5.0679,5.0679,0,0,0,3.2,6.63C3.14,6.53,3.08,6.44,3.03,6.34Zm3.88-.4a5.4992,5.4992,0,0,0-1.35-.19c-.02.03-.04.05-.06.08a6.2466,6.2466,0,0,1-.91,1.01,5.8334,5.8334,0,0,1-.8.61,6.5727,6.5727,0,0,1-1.83.82,3.1983,3.1983,0,0,0,.43.47,5.1724,5.1724,0,0,0,2.18-.51,5.4146,5.4146,0,0,0,.93-.55,5.5958,5.5958,0,0,0,.91-.84A4.8049,4.8049,0,0,0,7,6.01a.0517.0517,0,0,0,.02-.04A.2283.2283,0,0,0,6.91,5.94ZM4.88,4.78a5.6391,5.6391,0,0,1-.45-1.27,6.3861,6.3861,0,0,1-.16-.99c-.01-.17-.02-.35-.02-.52a5.83,5.83,0,0,1,.06-.84,3.9815,3.9815,0,0,0-.75.28A5.5806,5.5806,0,0,0,3.27,2.8c-.01.15-.02.3-.02.45a4.2153,4.2153,0,0,0,.04.62,4.7107,4.7107,0,0,0,.27,1.18,5.0984,5.0984,0,0,0,.42.92A.0517.0517,0,0,0,4,6.01a.1778.1778,0,0,0,.08-.07h.01a5.6817,5.6817,0,0,0,.84-1.06A.3131.3131,0,0,1,4.88,4.78Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 B

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 393 B

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 11 9" height="9" width="11" version="1.1">
<g stroke-width="1.5" stroke="#000000" fill="none">
<rect x="2" y="2" width="7" height="5"/>
<line x1="0" y1="0" x2="2" y2="2"/>
<line x1="11" y1="0" x2="9" y2="2"/>
<line x1="0" y1="9" x2="2" y2="7"/>
<line x1="11" y1="9" x2="9" y2="7"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 363 B

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 4 5" height="5" width="4" version="1.1">
<g stroke-width="1.0" stroke="#666666">
<path d="M 0.5,0 V 5"/>
<path d="M 0,0.5 H 4"/>
</g>
<svg viewBox="0 0 4 5" height="5" width="4" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<g>
<path d="M 0.5,0 V 5" stroke-width="1.0" stroke="#666666"/>
<path d="M 0,0.5 H 4" stroke-width="1.0" stroke="#666666"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 320 B

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="6" height="8" version="1.1" viewBox="0 0 6 8">
<path d="M 0.5,3 L 5.5,3 M 3,0.5 L 3,7.5" stroke="#000000" stroke-width="1"/>
</svg>

Before

Width:  |  Height:  |  Size: 184 B

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="15" height="11" viewBox="0 0 15 11" version="1.1">
<g stroke="none" fill="#000000">
<path d="M 15.007812 0.132812 C 15.007812 0.230469 15.007812 0.324219 15.007812 0.421875 C 14.570312 1.402344 14.0625 2.710938 13.589844 3.875 C 13.480469 4.140625 13.316406 4.886719 12.96875 4.859375 C 12.683594 4.835938 12.535156 4.089844 12.445312 3.8125 C 12.292969 3.339844 12.210938 3.003906 12.074219 2.605469 C 10.507812 3.261719 9.367188 4.308594 9.421875 6.476562 C 9.460938 8.195312 10.074219 9.632812 10.441406 11.007812 C 8.917969 11.007812 7.394531 11.007812 5.871094 11.007812 C 5.730469 7.347656 5.59375 3.683594 5.46875 0.0078125 C 5.996094 0.0078125 6.519531 0.0078125 7.042969 0.0078125 C 7.40625 1.230469 7.800781 2.421875 8.15625 3.652344 C 8.941406 2.871094 10.023438 2.042969 11.335938 1.65625 C 11.128906 1.378906 10.828125 1.179688 10.5625 0.957031 C 10.320312 0.757812 9.9375 0.570312 9.945312 0.132812 C 10.007812 0.113281 10.015625 0.0390625 10.070312 0.0078125 C 11.675781 0.0078125 13.28125 0.0078125 14.882812 0.0078125 C 14.898438 0.046875 14.921875 0.0742188 14.976562 0.0703125 C 14.972656 0.109375 14.984375 0.128906 15.007812 0.132812 Z M 15.007812 0.132812"/>
<path d="M 3.433594 0.0078125 C 3.957031 0.0078125 4.484375 0.0078125 5.007812 0.0078125 C 4.867188 3.667969 4.730469 7.332031 4.605469 11.007812 C 3.074219 11.007812 1.539062 11.007812 0.0078125 11.007812 C 0.0078125 10.976562 0.0078125 10.945312 0.0078125 10.914062 C 1.171875 7.300781 2.277344 3.628906 3.433594 0.0078125 Z M 3.433594 0.0078125"/>
</g>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="11" viewBox="0 0 15 11" version="1.1">
<g>
<path style="stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 15.007812 0.132812 C 15.007812 0.230469 15.007812 0.324219 15.007812 0.421875 C 14.570312 1.402344 14.0625 2.710938 13.589844 3.875 C 13.480469 4.140625 13.316406 4.886719 12.96875 4.859375 C 12.683594 4.835938 12.535156 4.089844 12.445312 3.8125 C 12.292969 3.339844 12.210938 3.003906 12.074219 2.605469 C 10.507812 3.261719 9.367188 4.308594 9.421875 6.476562 C 9.460938 8.195312 10.074219 9.632812 10.441406 11.007812 C 8.917969 11.007812 7.394531 11.007812 5.871094 11.007812 C 5.730469 7.347656 5.59375 3.683594 5.46875 0.0078125 C 5.996094 0.0078125 6.519531 0.0078125 7.042969 0.0078125 C 7.40625 1.230469 7.800781 2.421875 8.15625 3.652344 C 8.941406 2.871094 10.023438 2.042969 11.335938 1.65625 C 11.128906 1.378906 10.828125 1.179688 10.5625 0.957031 C 10.320312 0.757812 9.9375 0.570312 9.945312 0.132812 C 10.007812 0.113281 10.015625 0.0390625 10.070312 0.0078125 C 11.675781 0.0078125 13.28125 0.0078125 14.882812 0.0078125 C 14.898438 0.046875 14.921875 0.0742188 14.976562 0.0703125 C 14.972656 0.109375 14.984375 0.128906 15.007812 0.132812 Z M 15.007812 0.132812 "/>
<path style="stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 3.433594 0.0078125 C 3.957031 0.0078125 4.484375 0.0078125 5.007812 0.0078125 C 4.867188 3.667969 4.730469 7.332031 4.605469 11.007812 C 3.074219 11.007812 1.539062 11.007812 0.0078125 11.007812 C 0.0078125 10.976562 0.0078125 10.945312 0.0078125 10.914062 C 1.171875 7.300781 2.277344 3.628906 3.433594 0.0078125 Z M 3.433594 0.0078125 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 9 11" height="11" width="9" version="1.1">
<g stroke-width="1" stroke="#000000" fill="none">
<path d="M 1.5,1.5 L3,3 L 3,8 L 1.5,9.5"/>
<path d="M 7.5,1.5 L6,3 L 6,8 L 7.5,9.5"/>
<g>
<path d="M 1.5,1.5 L3,3 L 3,8 L 1.5,9.5" stroke-width="1" stroke="#000000" fill="none"/>
<path d="M 7.5,1.5 L6,3 L 6,8 L 7.5,9.5" stroke-width="1" stroke="#000000" fill="none"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 300 B

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -21,12 +21,6 @@
<data android:scheme="content" android:mimeType="image/jpeg"/>
<data android:scheme="content" android:mimeType="image/tiff"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="geo"/>
</intent-filter>
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
<meta-data android:name="android.app.arguments" android:value="-- %%INSERT_APP_ARGUMENTS%% --"/>

View File

@ -15,9 +15,8 @@
<li>Opens GPX, TCX, FIT, KML, IGC, NMEA, SIGMA SLF, Suunto SML, LOC,
OziExplorer (PLT, WPT, RTE), GeoJSON, SeeYou CUP,
Garmin GPI &amp; CSV, TomTom OV2 &amp; ITN, ONmove OMD/GHP,
TwoNav (TRK, RTE, WPT), GPSDump WPT, Velocitek VTK,
Vakaros VKX, 70mai GPS logs and geotagged JPEG files.</li>
<li>Opens geo URIs (RFC 5870).</li>
TwoNav (TRK, RTE, WPT), GPSDump WPT and geotagged JPEG
files.</li>
<li>User-definable online maps (OpenStreetMap/Google tiles, WMTS,
WMS, TMS, QuadTiles).</li>
<li>Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases,
@ -113,9 +112,5 @@
<mimetype>application/vnd.iho.s57-catalogue</mimetype>
<mimetype>application/vnd.gpsdump.wpt</mimetype>
<mimetype>application/vnd.gpstuner.gmi</mimetype>
<mimetype>application/vnd.70mai.txt</mimetype>
<mimetype>application/vnd.velocitek.vtk</mimetype>
<mimetype>application/vnd.vakaros.vkx</mimetype>
<mimetype>x-scheme-handler/geo</mimetype>
</mimetypes>
</component>

View File

@ -11,9 +11,9 @@ Comment[ru]=Программа для просмотра и анализа GPS
Comment[sv]=GPS-loggfilsläsare och analysator
Comment[tr]=GPS günlük dosyası görüntüleyici ve analizcisi
Comment[uk]=Переглядач та аналізатор GPS логів
Exec=gpxsee %U
Exec=gpxsee %F
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;application/vnd.vakaros.vkx
MimeType=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

View File

@ -188,33 +188,6 @@
<glob pattern="*.wpt"/>
</mime-type>
<mime-type type="application/vnd.70mai.txt">
<comment>70mai GPS Log File</comment>
<sub-class-of type="text/plain"/>
<generic-icon name="text/plain"/>
<magic>
<match type="string" offset="0" value="$V02"/>
</magic>
<glob pattern="*.txt"/>
</mime-type>
<mime-type type="application/vnd.velocitek.vtk">
<comment>Velocitek VTK File</comment>
<sub-class-of type="application/octet-stream"/>
<generic-icon name="application/octet-stream"/>
<glob pattern="*.vtk"/>
</mime-type>
<mime-type type="application/vnd.vakaros.vkx">
<comment>Vakaros VKX File</comment>
<sub-class-of type="application/octet-stream"/>
<generic-icon name="application/octet-stream"/>
<magic>
<match type="byte" offset="0" value="0xFF"/>
</magic>
<glob pattern="*.vkx"/>
</mime-type>
<!-- Maps -->
<mime-type type="application/vnd.garmin.img">

View File

@ -736,66 +736,6 @@
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>txt</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/vnd.70mai.txt</string>
</array>
<key>CFBundleTypeName</key>
<string>70mai GPS Log File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>vtk</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/vnd.velocitek.vtk</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>icons/vtk.icns</string>
<key>CFBundleTypeName</key>
<string>Velocitek VTK File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>vkx</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/vnd.vakaros.vkx</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>icons/vkx.icns</string>
<key>CFBundleTypeName</key>
<string>Vakaros VKX File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>geo</string>
</array>
<key>CFBundleURLName</key>
<string>org.geouri.geo</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
<key>UTImportedTypeDeclarations</key>
@ -1729,8 +1669,6 @@
<string>https://iho.int/uploads/user/pubs/standards/s-57/31Main.pdf</string>
<key>UTTypeDescription</key>
<string>IHO S-57 Electronic Navigation Chart</string>
<key>UTTypeIconFile</key>
<string>icons/000.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
@ -1752,8 +1690,6 @@
<string>https://iho.int/uploads/user/pubs/standards/s-57/20ApB1.pdf</string>
<key>UTTypeDescription</key>
<string>IHO S-57 Electronic Navigation Catalogue</string>
<key>UTTypeIconFile</key>
<string>icons/031.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
@ -1768,73 +1704,6 @@
<string>application/vnd.iho.s57-catalogue</string>
</dict>
</dict>
<dict>
<key>UTTypeIdentifier</key>
<string>com.70mai.txt</string>
<key>UTTypeReferenceURL</key>
<string>https://forum.mapillary.com/t/using-the-70mai-a810-dashcam-for-mapillary/9130/7?u=boris</string>
<key>UTTypeDescription</key>
<string>70mai GPS Log File</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>txt</string>
</array>
<key>public.mime-type</key>
<string>application/vnd.70mai.txt</string>
</dict>
</dict>
<dict>
<key>UTTypeIdentifier</key>
<string>com.velocitek.vtk</string>
<key>UTTypeReferenceURL</key>
<string>https://github.com/velocitek/vtk_protocol</string>
<key>UTTypeDescription</key>
<string>Velocitek VTK File</string>
<key>UTTypeIconFile</key>
<string>icons/vtk.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>vtk</string>
</array>
<key>public.mime-type</key>
<string>application/vnd.velocitek.vtk</string>
</dict>
</dict>
<dict>
<key>UTTypeIdentifier</key>
<string>com.vakaros.vkx</string>
<key>UTTypeReferenceURL</key>
<string>https://github.com/vakaros/vkx</string>
<key>UTTypeDescription</key>
<string>Vakaros VKX File</string>
<key>UTTypeIconFile</key>
<string>icons/vkx.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>vkx</string>
</array>
<key>public.mime-type</key>
<string>application/vnd.vakaros.vkx</string>
</dict>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>

View File

@ -18,18 +18,6 @@
DeleteRegKey HKCR ".${EXT}"
!macroend
; URI association
!macro URI_ASSOCIATION_ADD PROTO
WriteRegStr HKCR "${PROTO}" "" "URL:${PROTO}"
WriteRegStr HKCR "${PROTO}" "URL Protocol" ""
WriteRegStr HKCR "${PROTO}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,0"
WriteRegStr HKCR "${PROTO}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
!macroend
!macro URI_ASSOCIATION_REMOVE PROTO
DeleteRegKey HKCR "${PROTO}"
!macroend
; Translations
!macro LOCALIZATION LANG CODE
Section "${LANG}"
@ -49,7 +37,7 @@ Unicode true
; The name of the installer
Name "GPXSee"
; Program version
!define VERSION "13.39"
!define VERSION "13.30"
; The file to write
OutFile "GPXSee-${VERSION}_x64.exe"
@ -70,7 +58,7 @@ VIProductVersion "${VERSION}.0.0"
VIAddVersionKey "ProductVersion" ${VERSION}
VIAddVersionKey "FileVersion" "${VERSION}.0.0"
VIAddVersionKey "ProductName" "GPXSee"
VIAddVersionKey "LegalCopyright" "Copyright (c) 2015-2025 Martin Tůma"
VIAddVersionKey "LegalCopyright" "Copyright (c) 2015-2024 Martin Tůma"
VIAddVersionKey "FileDescription" "GPXSee installer (x64)"
; Registry key to check for directory (so if you install again, it will
@ -204,17 +192,13 @@ 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 "vtk" "Velocitek VTK File" 29
!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"
!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
WriteRegStr HKCR "Applications\GPXSee.exe\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
WriteRegStr HKCR ".gpx\OpenWithList" "GPXSee.exe" ""
@ -267,9 +251,6 @@ Section "GPXSee" SEC_APP
WriteRegStr HKCR ".gemf\OpenWithList" "GPXSee.exe" ""
WriteRegStr HKCR ".000\OpenWithList" "GPXSee.exe" ""
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)'
@ -444,10 +425,6 @@ Section "Uninstall"
!insertmacro FILE_ASSOCIATION_REMOVE "gemf"
!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"
DeleteRegValue HKCR ".gpx\OpenWithList" "GPXSee.exe"
DeleteRegValue HKCR ".tcx\OpenWithList" "GPXSee.exe"
@ -499,9 +476,6 @@ Section "Uninstall"
DeleteRegValue HKCR ".gemf\OpenWithList" "GPXSee.exe"
DeleteRegValue HKCR ".000\OpenWithList" "GPXSee.exe"
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)'

View File

@ -73,7 +73,9 @@ App::App(int &argc, char **argv) : QApplication(argc, argv)
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
QIcon::setThemeName(APP_NAME);
#endif // Q_OS_WIN32 || Q_OS_MAC
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
QIcon::setFallbackThemeName(APP_NAME);
#endif // QT 5.12
_gui = new GUI();

View File

@ -25,6 +25,15 @@
#define IW(item) ((item)->boundingRect().width())
#define IH(item) ((item)->boundingRect().height())
static inline QPoint POS(QWheelEvent *e)
{
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
return e->pos();
#else // QT 5.15
return e->position().toPoint();
#endif // QT 5.15
}
static inline QPoint POS(QMouseEvent *e)
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
@ -384,7 +393,7 @@ void GraphView::wheelEvent(QWheelEvent *e)
return;
_angleDelta = _angleDelta % (15 * 8);
QPointF pos = mapToScene(e->position().toPoint());
QPointF pos = mapToScene(POS(e));
QRectF gr(_grid->boundingRect());
QPointF r(pos.x() / gr.width(), pos.y() / gr.height());
@ -395,8 +404,7 @@ void GraphView::wheelEvent(QWheelEvent *e)
QPointF npos(mapFromScene(QPointF(r.x() * ngr.width(),
r.y() * ngr.height())));
QScrollBar *sb = horizontalScrollBar();
sb->setSliderPosition(sb->sliderPosition() + npos.x()
- e->position().toPoint().x());
sb->setSliderPosition(sb->sliderPosition() + npos.x() - POS(e).x());
QGraphicsView::wheelEvent(e);
}

View File

@ -164,8 +164,7 @@ void GUI::mapInitialized()
_showMapAction->setEnabled(true);
_clearMapCacheAction->setEnabled(true);
} else {
qWarning("%s: %s", qUtf8Printable(map->path()),
qUtf8Printable(map->errorString()));
qWarning("%s: %s", qPrintable(map->path()), qPrintable(map->errorString()));
action->deleteLater();
}
}
@ -1069,33 +1068,18 @@ void GUI::openDir()
bool GUI::openFile(const QString &fileName, bool tryUnknown, int &showError)
{
QString path;
QFileInfo fi(fileName);
QString canonicalFileName(fi.canonicalFilePath());
QUrl url(fileName);
if (url.scheme() == "geo") {
if (loadURL(url, showError)) {
_fileActionGroup->setEnabled(true);
_reloadFileAction->setEnabled(false);
return true;
} else if (showError)
return false;
} else if (url.isLocalFile())
path = url.toLocalFile();
else
path = fileName;
QFileInfo fi(path);
QString canonicalPath(fi.canonicalFilePath());
if (_files.contains(canonicalPath))
if (_files.contains(canonicalFileName))
return true;
if (!loadFile(path, tryUnknown, showError))
if (!loadFile(fileName, tryUnknown, showError))
return false;
_files.append(canonicalPath);
_files.append(canonicalFileName);
#ifndef Q_OS_ANDROID
_browser->setCurrent(path);
_browser->setCurrent(fileName);
#endif // Q_OS_ANDROID
_fileActionGroup->setEnabled(true);
// Explicitly enable the reload action as it may be disabled by loadMapDir()
@ -1108,42 +1092,12 @@ bool GUI::openFile(const QString &fileName, bool tryUnknown, int &showError)
if (_files.count() > 1)
_mapView->showExtendedInfo(true);
#ifndef Q_OS_ANDROID
updateRecentFiles(canonicalPath);
updateRecentFiles(canonicalFileName);
#endif // Q_OS_ANDROID
return true;
}
bool GUI::loadURL(const QUrl &url, int &showError)
{
Data data(url);
if (data.isValid()) {
loadData(data);
return true;
} else {
if (showError) {
QString error = tr("Error loading geo URI:") + "\n" + url.toString()
+ ": " + data.errorString();
if (showError > 1) {
QMessageBox message(QMessageBox::Critical, APP_NAME, error,
QMessageBox::Ok, this);
QCheckBox checkBox(tr("Don't show again"));
message.setCheckBox(&checkBox);
message.exec();
if (checkBox.isChecked())
showError = 0;
} else
QMessageBox::critical(this, APP_NAME, error);
} else
qWarning("%s: %s", qUtf8Printable(url.toString()),
qUtf8Printable(data.errorString()));
return false;
}
}
bool GUI::loadFile(const QString &fileName, bool tryUnknown, int &showError)
{
Data data(fileName, tryUnknown);
@ -1193,12 +1147,10 @@ void GUI::loadData(const Data &data)
_time += track.time();
_movingTime += track.movingTime();
const QDateTime date = track.date().toTimeZone(_options.timeZone.zone());
if (date.isValid()) {
if (_dateRange.first.isNull() || _dateRange.first > date)
_dateRange.first = date;
if (_dateRange.second.isNull() || _dateRange.second < date)
_dateRange.second = date;
}
if (_dateRange.first.isNull() || _dateRange.first > date)
_dateRange.first = date;
if (_dateRange.second.isNull() || _dateRange.second < date)
_dateRange.second = date;
}
_trackCount += data.tracks().count();
@ -1897,13 +1849,7 @@ bool GUI::loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
bool GUI::loadMap(const QString &fileName, MapAction *&action, int &showError)
{
QString path;
QUrl url(fileName);
path = url.isLocalFile() ? url.toLocalFile() : fileName;
TreeNode<Map*> maps(MapList::loadMaps(path, _mapView->inputProjection()));
TreeNode<Map*> maps(MapList::loadMaps(fileName, _mapView->inputProjection()));
QList<QAction*> existingActions(_mapsActionGroup->actions());
return loadMapNode(maps, action, existingActions, showError);
@ -2500,8 +2446,12 @@ QGeoPositionInfoSource *GUI::positionSource(const Options &options)
{
QGeoPositionInfoSource *source;
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
source = QGeoPositionInfoSource::createSource(options.plugin, this);
#else // QT 5.14
source = QGeoPositionInfoSource::createSource(options.plugin,
options.pluginParams.value(options.plugin), this);
#endif // QT 5.14
if (source)
source->setPreferredPositioningMethods(
QGeoPositionInfoSource::SatellitePositioningMethods);

View File

@ -158,7 +158,6 @@ private:
#endif // Q_OS_ANDROID
bool openPOIFile(const QString &fileName);
bool loadFile(const QString &fileName, bool tryUnknown, int &showError);
bool loadURL(const QUrl &url, int &showError);
void loadData(const Data &data);
bool loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
const QList<QAction*> &existingActions, int &showError);

View File

@ -638,7 +638,11 @@ void MapView::wheelEvent(QWheelEvent *event)
return;
_wheelDelta = _wheelDelta % (15 * 8);
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
zoom((delta > 0) ? 1 : -1, event->pos(), shift);
#else // QT 5.15
zoom((delta > 0) ? 1 : -1, event->position().toPoint(), shift);
#endif // QT 5.15
/* Do not call QGraphicsView::wheelEvent() here as this would shift the
view ! */
@ -1254,7 +1258,7 @@ void MapView::drawHillShading(bool draw)
setMap(_map);
}
void MapView::selectLayers(MapView::Layers layers)
void MapView::selectLayers(Layers layers)
{
_layers = layers;

View File

@ -136,7 +136,7 @@ public slots:
void showMotionInfo(bool show);
void useStyles(bool use);
void drawHillShading(bool draw);
void selectLayers(MapView::Layers layers);
void selectLayers(Layers layers);
private slots:
void updatePOI();

View File

@ -676,17 +676,21 @@ QWidget *OptionsDialog::createPositionPage()
_positionPlugin = new QComboBox();
_positionPlugin->addItems(plugins);
_positionPlugin->setCurrentIndex(_positionPlugin->findText(_options.plugin));
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
_pluginParameters = new PluginParameters(_positionPlugin->currentText(),
_options.pluginParams);
connect(_positionPlugin, &QComboBox::currentTextChanged, _pluginParameters,
&PluginParameters::setPlugin);
#endif // QT 5.14
QFormLayout *pluginLayout = new QFormLayout();
pluginLayout->addRow(tr("Plugin:"), _positionPlugin);
QVBoxLayout *sourceLayout = new QVBoxLayout();
sourceLayout->addLayout(pluginLayout);
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
sourceLayout->addWidget(_pluginParameters);
#endif // QT 5.14
sourceLayout->addStretch();
QWidget *sourceTab = new QWidget();
@ -1005,7 +1009,9 @@ void OptionsDialog::accept()
_options.hillshadingZFactor = _hillshadingZFactor->value();
_options.plugin = _positionPlugin->currentText();
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
_options.pluginParams = _pluginParameters->parameters();
#endif // QT 5.14
_options.useOpenGL = _useOpenGL->isChecked();
_options.enableHTTP2 = _enableHTTP2->isChecked();

View File

@ -193,7 +193,9 @@ private:
QDoubleSpinBox *_hillshadingZFactor;
// Position
QComboBox *_positionPlugin;
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
PluginParameters *_pluginParameters;
#endif // QT 5.14
// System
QSpinBox *_pixmapCache;
QSpinBox *_demCache;

View File

@ -10,6 +10,13 @@
#include "markeritem.h"
#include "pathitem.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
#define INTERSECTS intersect
#else // QT 5.15
#define INTERSECTS intersects
#endif // QT 5.15
#define GEOGRAPHICAL_MILE 1855.3248
Units PathItem::_units = Metric;
@ -72,14 +79,14 @@ bool PathItem::addSegment(const Coordinates &c1, const Coordinates &c2)
QLineF l(QPointF(c1.lon(), c1.lat()), QPointF(c2.lon() + 360,
c2.lat()));
QLineF dl(QPointF(180, -90), QPointF(180, 90));
l.intersects(dl, &p);
l.INTERSECTS(dl, &p);
_painterPath.lineTo(_map->ll2xy(Coordinates(180, p.y())));
_painterPath.moveTo(_map->ll2xy(Coordinates(-180, p.y())));
} else {
QLineF l(QPointF(c1.lon(), c1.lat()), QPointF(c2.lon() - 360,
c2.lat()));
QLineF dl(QPointF(-180, -90), QPointF(-180, 90));
l.intersects(dl, &p);
l.INTERSECTS(dl, &p);
_painterPath.lineTo(_map->ll2xy(Coordinates(-180, p.y())));
_painterPath.moveTo(_map->ll2xy(Coordinates(180, p.y())));
}

View File

@ -9,6 +9,9 @@
#include <QVBoxLayout>
#include <QFormLayout>
#include <QApplication>
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
#include <QDesktopWidget>
#endif // QT 5.15
#include "tooltip.h"
#include "thumbnail.h"
#include "flowlayout.h"
@ -181,7 +184,11 @@ bool PopupFrame::eventFilter(QObject *o, QEvent *ev)
void PopupFrame::place(const QPoint &pos, QWidget *w)
{
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
QRect screen = QApplication::desktop()->screenGeometry(w);
#else // QT 5.15
QRect screen = w->screen()->geometry();
#endif // QT 5.15
QPoint p(pos.x() + 2, pos.y() + 16);
if (p.x() + width() > screen.x() + screen.width())

View File

@ -64,7 +64,6 @@ 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;
@ -118,16 +117,6 @@ 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);
@ -135,7 +124,6 @@ void SpeedGraph::clear()
_avg.clear();
_mavg.clear();
_max.clear();
GraphTab::clear();
}

View File

@ -26,13 +26,12 @@ private:
GraphItem *loadGraph(const Graph &graph, const Track &track,
const QColor &color, bool primary);
qreal avg() const;
qreal max() const;
qreal max() const {return bounds().bottom();}
void setYUnits();
void setInfo();
QVector<QPointF> _avg;
QVector<QPointF> _mavg;
QVector<QPointF> _max;
Units _units;
TimeType _timeType;

View File

@ -7,18 +7,15 @@ RFC 4180 parser with the following enchancements:
- allows LF line ends in addition to CRLF line ends
*/
bool CSV::readEntry(QByteArrayList &list, int limit)
bool CSV::readEntry(QByteArrayList &list)
{
int state = 0, len = 0;
int state = 0;
char c;
QByteArray field;
list.clear();
while (_device->getChar(&c)) {
if (limit && ++len > limit)
return false;
switch (state) {
case 0:
if (c == '\r')

View File

@ -9,7 +9,7 @@ public:
CSV(QIODevice *device, char delimiter = ',')
: _device(device), _delimiter(delimiter), _line(1) {}
bool readEntry(QByteArrayList &list, int limit = 4096);
bool readEntry(QByteArrayList &list);
bool atEnd() const {return _device->atEnd();}
int line() const {return _line;}

View File

@ -53,7 +53,7 @@ public:
bool intersects(const RectC &r) const
{return (right() >= r.left() && bottom() <= r.top() && left() <= r.right()
&& top() >= r.bottom());}
bool contains(const Coordinates &c) const
bool contains(const Coordinates&c) const
{return (c.lon() >= left() && c.lon() <= right() && c.lat() <= top()
&& c.lat() >= bottom());}

View File

@ -115,7 +115,7 @@ public:
/// Count the data elements in this container. This is slow as no internal
/// counter is maintained.
int Count() const;
int Count();
/// Iterator is not remove safe.
@ -363,7 +363,7 @@ protected:
void* a_context) const;
void RemoveAllRec(Node* a_node);
void Reset();
void CountRec(Node* a_node, int& a_count) const;
void CountRec(Node* a_node, int& a_count);
/// Root of tree
Node* m_root;
@ -473,7 +473,7 @@ int RTREE_QUAL::Search(const ELEMTYPE a_min[NUMDIMS], const ELEMTYPE a_max[NUMDI
RTREE_TEMPLATE
int RTREE_QUAL::Count() const
int RTREE_QUAL::Count()
{
int count = 0;
CountRec(m_root, count);
@ -483,7 +483,7 @@ int RTREE_QUAL::Count() const
RTREE_TEMPLATE
void RTREE_QUAL::CountRec(Node* a_node, int& a_count) const
void RTREE_QUAL::CountRec(Node* a_node, int& a_count)
{
if (a_node->IsInternalNode()) { // not a leaf node
for (int index = 0; index < a_node->m_count; ++index)

View File

@ -2,7 +2,6 @@
#include <QFile>
#include <QFileInfo>
#include "common/util.h"
#include "map/crs.h"
#include "gpxparser.h"
#include "tcxparser.h"
#include "csvparser.h"
@ -23,9 +22,6 @@
#include "onmoveparsers.h"
#include "twonavparser.h"
#include "gpsdumpparser.h"
#include "txtparser.h"
#include "vtkparser.h"
#include "vkxparser.h"
#include "data.h"
@ -52,9 +48,6 @@ static OMDParser omd;
static GHPParser ghp;
static TwoNavParser twonav;
static GPSDumpParser gpsdump;
static TXTParser txt;
static VTKParser vtk;
static VKXParser vkx;
static QMultiMap<QString, Parser*> parsers()
{
@ -88,9 +81,6 @@ static QMultiMap<QString, Parser*> parsers()
map.insert("rte", &twonav);
map.insert("wpt", &twonav);
map.insert("wpt", &gpsdump);
map.insert("txt", &txt);
map.insert("vtk", &vtk);
map.insert("vkx", &vkx);
return map;
}
@ -137,11 +127,11 @@ Data::Data(const QString &fileName, bool tryUnknown)
++it;
}
qWarning("%s:", qUtf8Printable(fileName));
qWarning("%s:", qPrintable(fileName));
for (it = _parsers.find(suffix); it != _parsers.end()
&& it.key() == suffix; it++)
qWarning(" %s: line %d: %s", qUtf8Printable(it.key()),
it.value()->errorLine(), qUtf8Printable(it.value()->errorString()));
qWarning(" %s: line %d: %s", qPrintable(it.key()),
it.value()->errorLine(), qPrintable(it.value()->errorString()));
} else if (tryUnknown) {
for (it = _parsers.begin(); it != _parsers.end(); it++) {
@ -154,80 +144,16 @@ Data::Data(const QString &fileName, bool tryUnknown)
file.reset();
}
qWarning("%s:", qUtf8Printable(fileName));
qWarning("%s:", qPrintable(fileName));
for (it = _parsers.begin(); it != _parsers.end(); it++)
qWarning(" %s: line %d: %s", qUtf8Printable(it.key()),
it.value()->errorLine(), qUtf8Printable(it.value()->errorString()));
qWarning(" %s: line %d: %s", qPrintable(it.key()),
it.value()->errorLine(), qPrintable(it.value()->errorString()));
_errorLine = 0;
_errorString = "Unknown format";
}
}
Data::Data(const QUrl &url)
{
bool caOk, cbOk, ccOk;
Projection proj(GCS::WGS84());
_valid = false;
QStringList parts(url.path().split(';'));
if (parts.size() < 1) {
_errorString = "Syntax error";
return;
}
QStringList coords(parts.at(0).split(','));
if (coords.size() < 2 || coords.size() > 3) {
_errorString = "Syntax error";
return;
}
double ca = coords.at(0).toDouble(&caOk);
double cb = coords.at(1).toDouble(&cbOk);
double cc = NAN;
if (!(caOk && cbOk)) {
_errorString = "Invalid coordinates";
return;
}
if (coords.size() > 2) {
cc = coords.at(2).toDouble(&ccOk);
if (!ccOk) {
_errorString = "Invalid elevation";
return;
}
}
if (parts.size() > 1) {
QStringList crsp(parts.at(1).split('='));
if (crsp.size() != 2) {
_errorString = "Syntax error";
return;
}
if (!crsp.at(0).compare("crs", Qt::CaseInsensitive)) {
if (crsp.at(1).compare("wgs84", Qt::CaseInsensitive)) {
proj = CRS::projection(crsp.at(1));
if (!proj.isValid()) {
_errorString = "Unknown CRS";
return;
}
}
}
}
CoordinateSystem::AxisOrder ao = proj.coordinateSystem().axisOrder();
PointD p(ao == CoordinateSystem::XY ? PointD(ca, cb) : PointD(cb, ca));
Coordinates c(proj.xy2ll(p));
if (!c.isValid()) {
_errorString = "Invalid coordinates";
return;
}
Waypoint w(c);
w.setElevation(cc);
_waypoints.append(w);
_valid = true;
}
QString Data::formats()
{
return
@ -250,9 +176,6 @@ QString Data::formats()
+ qApp->translate("Data", "SLF files") + " (*.slf);;"
+ 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);;"
+ qApp->translate("Data", "All files") + " (*)";

Some files were not shown because too many files have changed in this diff Show More