Compare commits
73 Commits
Author | SHA1 | Date | |
---|---|---|---|
86f5da9355 | |||
3587d29cb6 | |||
beb93bcd1f | |||
dd911a95b0 | |||
1fc644e1d6 | |||
dc628c9554 | |||
ec3eccd580 | |||
a3d22dcd2a | |||
c13d7ae51d | |||
e4085cc25a | |||
8a13355740 | |||
8f799e1bcf | |||
5cd0a3a8b0 | |||
283197612b | |||
2d0ac129ce | |||
499869119a | |||
fdcc431a4e | |||
38a4a4c32b | |||
6efd8e7fd1 | |||
5b3c448582 | |||
054ae32689 | |||
0594774570 | |||
e11d6d280d | |||
897de9920e | |||
82923a4529 | |||
4daa9fd55c | |||
3270625172 | |||
d70c4fefd5 | |||
c364121288 | |||
62eb5a09ae | |||
d0438b3ee8 | |||
5b83f1b86b | |||
241ecb36f2 | |||
f5b9f6e392 | |||
d04775d58e | |||
68644aa25d | |||
acbf72a983 | |||
010b983667 | |||
e6cd7f8bfa | |||
a9cc586103 | |||
bbd933295c | |||
0d77165d3f | |||
b0636d1cdb | |||
0a24a8e466 | |||
3176a42aa5 | |||
2575ecf1d8 | |||
8a990d1b94 | |||
9fd4b4d22e | |||
03d83716f8 | |||
093df0162f | |||
3e4c5bebf9 | |||
7c7ba06bf7 | |||
f9a5821374 | |||
23614aa157 | |||
7ca4426757 | |||
02969c19d9 | |||
cb9606e057 | |||
1137df94a6 | |||
ef011cad67 | |||
0dd8b6210b | |||
87a6b903c6 | |||
51c88e7c7c | |||
225c123f08 | |||
541e658741 | |||
deb09dfe7c | |||
cdfd968592 | |||
f443f7b8c4 | |||
bf845a4a65 | |||
6be0df331d | |||
0adf409624 | |||
9bcae2e3bc | |||
78d07cc166 | |||
04058e54a7 |
@ -1,4 +1,4 @@
|
||||
version: 7.4.{build}
|
||||
version: 7.6.{build}
|
||||
configuration: Release
|
||||
platform: Any CPU
|
||||
environment:
|
||||
|
@ -1,7 +1,6 @@
|
||||
Only localization contributions are accepted at the moment, code pull requests will be rejected.
|
||||
|
||||
The rationale is, that I want leave the possibility to distribute GPXsee builds in the OS X/Windows
|
||||
stores under a non-GPL licence open. In the future, code pull requests under a QT-like contribution
|
||||
agreement [1] will be possible.
|
||||
|
||||
[1] https://d21tv0wm5mksdn.cloudfront.net/wp-content/uploads/2015/03/Qt-ContributionLicenseAgreement_v1_2_FINAL.pdf
|
||||
stores under a non-GPL licence open. In the future, code pull requests under a
|
||||
[QT-like contribution agreement](https://d21tv0wm5mksdn.cloudfront.net/wp-content/uploads/2015/03/Qt-ContributionLicenseAgreement_v1_2_FINAL.pdf)
|
||||
may become possible.
|
||||
|
@ -2,9 +2,9 @@
|
||||
GPXSee is a Qt-based GPS log file viewer and analyzer that supports all common GPS log file formats.
|
||||
|
||||
## Features
|
||||
* Opens GPX, TCX, FIT, KML, IGC, NMEA, SLF, LOC, GeoJSON, OziExplorer (PLT, RTE, WPT) and Garmin CSV files.
|
||||
* Opens GPX, TCX, FIT, KML, IGC, NMEA, SLF, LOC, GeoJSON, OziExplorer (PLT, RTE, WPT), Garmin CSV and geotagged JPEG files.
|
||||
* User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS).
|
||||
* Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases, Garmin JNX maps, GeoTIFF images).
|
||||
* Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases, Garmin JNX maps, TwoNav RMaps, GeoTIFF images).
|
||||
* Elevation, speed, heart rate, cadence, power, temperature and gear ratio/shifts graphs.
|
||||
* Support for DEM files (SRTM HGT).
|
||||
* Support for multiple tracks in one view.
|
||||
@ -19,7 +19,7 @@ GPXSee is a Qt-based GPS log file viewer and analyzer that supports all common G
|
||||
## Build
|
||||
Build requirements:
|
||||
* Qt 4.8 or QT 5.x (Qt >= 5.10.1 recommended for all features)
|
||||
* C++03 compiler (tested: msvc2015, gcc >= 4.8, clang/Apple LLVM version 8.1.0)
|
||||
* C++03 or newer compiler (tested: msvc2015, gcc >= 4.8, clang/Apple LLVM version 8.1.0)
|
||||
|
||||
Build steps:
|
||||
```shell
|
||||
@ -36,7 +36,7 @@ make # nmake on windows
|
||||
[Changelog](https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes)
|
||||
|
||||
## Homepage
|
||||
http://www.gpxsee.org
|
||||
[https://www.gpxsee.org](https://www.gpxsee.org)
|
||||
|
||||
## Maps
|
||||
[GPXSee maps repository](https://github.com/tumic0/GPXSee-maps)
|
||||
|
40
gpxsee.pro
@ -3,7 +3,7 @@ unix:!macx {
|
||||
} else {
|
||||
TARGET = GPXSee
|
||||
}
|
||||
VERSION = 7.4
|
||||
VERSION = 7.6
|
||||
|
||||
QT += core \
|
||||
gui \
|
||||
@ -29,6 +29,7 @@ HEADERS += src/common/config.h \
|
||||
src/common/kv.h \
|
||||
src/common/greatcircle.h \
|
||||
src/common/programpaths.h \
|
||||
src/common/tifffile.h \
|
||||
src/GUI/app.h \
|
||||
src/GUI/icons.h \
|
||||
src/GUI/gui.h \
|
||||
@ -83,6 +84,9 @@ HEADERS += src/common/config.h \
|
||||
src/GUI/mapview.h \
|
||||
src/GUI/font.h \
|
||||
src/GUI/areaitem.h \
|
||||
src/map/IMG/bitmapline.h \
|
||||
src/map/IMG/textpathitem.h \
|
||||
src/map/IMG/textpointitem.h \
|
||||
src/map/projection.h \
|
||||
src/map/ellipsoid.h \
|
||||
src/map/datum.h \
|
||||
@ -108,7 +112,6 @@ HEADERS += src/common/config.h \
|
||||
src/map/pcs.h \
|
||||
src/map/transform.h \
|
||||
src/map/mapfile.h \
|
||||
src/map/tifffile.h \
|
||||
src/map/gcs.h \
|
||||
src/map/angularunits.h \
|
||||
src/map/primemeridian.h \
|
||||
@ -161,7 +164,20 @@ HEADERS += src/common/config.h \
|
||||
src/GUI/coordinatesitem.h \
|
||||
src/map/rmap.h \
|
||||
src/map/calibrationpoint.h \
|
||||
src/map/color.h
|
||||
src/map/color.h \
|
||||
src/data/exifparser.h \
|
||||
src/data/imageinfo.h \
|
||||
src/map/imgmap.h \
|
||||
src/map/IMG/img.h \
|
||||
src/map/IMG/subfile.h \
|
||||
src/map/IMG/trefile.h \
|
||||
src/map/IMG/rgnfile.h \
|
||||
src/map/IMG/lblfile.h \
|
||||
src/map/IMG/vectortile.h \
|
||||
src/map/IMG/subdiv.h \
|
||||
src/map/IMG/units.h \
|
||||
src/map/IMG/style.h \
|
||||
src/map/IMG/netfile.h
|
||||
SOURCES += src/main.cpp \
|
||||
src/common/coordinates.cpp \
|
||||
src/common/rectc.cpp \
|
||||
@ -169,6 +185,7 @@ SOURCES += src/main.cpp \
|
||||
src/common/util.cpp \
|
||||
src/common/greatcircle.cpp \
|
||||
src/common/programpaths.cpp \
|
||||
src/common/tifffile.cpp \
|
||||
src/GUI/app.cpp \
|
||||
src/GUI/gui.cpp \
|
||||
src/GUI/axisitem.cpp \
|
||||
@ -212,6 +229,9 @@ SOURCES += src/main.cpp \
|
||||
src/GUI/gearratiographitem.cpp \
|
||||
src/GUI/mapview.cpp \
|
||||
src/GUI/areaitem.cpp \
|
||||
src/map/IMG/bitmapline.cpp \
|
||||
src/map/IMG/textpathitem.cpp \
|
||||
src/map/IMG/textpointitem.cpp \
|
||||
src/map/maplist.cpp \
|
||||
src/map/onlinemap.cpp \
|
||||
src/map/downloader.cpp \
|
||||
@ -233,7 +253,6 @@ SOURCES += src/main.cpp \
|
||||
src/map/pcs.cpp \
|
||||
src/map/transform.cpp \
|
||||
src/map/mapfile.cpp \
|
||||
src/map/tifffile.cpp \
|
||||
src/map/projection.cpp \
|
||||
src/map/gcs.cpp \
|
||||
src/map/angularunits.cpp \
|
||||
@ -277,7 +296,17 @@ SOURCES += src/main.cpp \
|
||||
src/data/polygon.cpp \
|
||||
src/map/obliquestereographic.cpp \
|
||||
src/GUI/coordinatesitem.cpp \
|
||||
src/map/rmap.cpp
|
||||
src/map/rmap.cpp \
|
||||
src/data/exifparser.cpp \
|
||||
src/map/imgmap.cpp \
|
||||
src/map/IMG/img.cpp \
|
||||
src/map/IMG/subfile.cpp \
|
||||
src/map/IMG/trefile.cpp \
|
||||
src/map/IMG/rgnfile.cpp \
|
||||
src/map/IMG/lblfile.cpp \
|
||||
src/map/IMG/vectortile.cpp \
|
||||
src/map/IMG/style.cpp \
|
||||
src/map/IMG/netfile.cpp
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
HEADERS += src/data/geojsonparser.h
|
||||
@ -359,6 +388,7 @@ win32 {
|
||||
|
||||
unix:!macx {
|
||||
isEmpty(PREFIX):PREFIX = /usr/local
|
||||
lessThan(QT_MAJOR_VERSION, 5) {DEFINES += PREFIX=\\\"$$PREFIX\\\"}
|
||||
|
||||
maps.files = pkg/maps/*
|
||||
maps.path = $$PREFIX/share/gpxsee/maps
|
||||
|
84
gpxsee.qrc
@ -1,46 +1,46 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>icons/dialog-close.png</file>
|
||||
<file>icons/dialog-close@2x.png</file>
|
||||
<file>icons/document-open.png</file>
|
||||
<file>icons/document-open@2x.png</file>
|
||||
<file>icons/document-print.png</file>
|
||||
<file>icons/document-print@2x.png</file>
|
||||
<file>icons/document-export.png</file>
|
||||
<file>icons/document-export@2x.png</file>
|
||||
<file>icons/flag.png</file>
|
||||
<file>icons/flag@2x.png</file>
|
||||
<file>icons/gpxsee.png</file>
|
||||
<file>icons/gpxsee@2x.png</file>
|
||||
<file>icons/application-exit.png</file>
|
||||
<file>icons/application-exit@2x.png</file>
|
||||
<file>icons/applications-internet.png</file>
|
||||
<file>icons/applications-internet@2x.png</file>
|
||||
<file>icons/view-refresh.png</file>
|
||||
<file>icons/view-refresh@2x.png</file>
|
||||
<file>icons/arrow-left.png</file>
|
||||
<file>icons/arrow-left@2x.png</file>
|
||||
<file>icons/arrow-right.png</file>
|
||||
<file>icons/arrow-right@2x.png</file>
|
||||
<file>icons/arrow-left-double.png</file>
|
||||
<file>icons/arrow-left-double@2x.png</file>
|
||||
<file>icons/arrow-right-double.png</file>
|
||||
<file>icons/arrow-right-double@2x.png</file>
|
||||
<file>icons/view-fullscreen.png</file>
|
||||
<file>icons/view-fullscreen@2x.png</file>
|
||||
<file>icons/office-chart-line.png</file>
|
||||
<file>icons/office-chart-line@2x.png</file>
|
||||
<file>icons/format-stroke-color.png</file>
|
||||
<file>icons/format-stroke-color@2x.png</file>
|
||||
<file>icons/flag_32.png</file>
|
||||
<file>icons/flag_32@2x.png</file>
|
||||
<file>icons/preferences-system.png</file>
|
||||
<file>icons/preferences-system@2x.png</file>
|
||||
<file>icons/document-print_32.png</file>
|
||||
<file>icons/document-print_32@2x.png</file>
|
||||
<file>icons/view-filter.png</file>
|
||||
<file>icons/view-filter@2x.png</file>
|
||||
<file>icons/applications-internet_32.png</file>
|
||||
<file>icons/applications-internet_32@2x.png</file>
|
||||
<file alias="gpxsee.png">icons/gpxsee.png</file>
|
||||
<file alias="gpxsee@2x.png">icons/gpxsee@2x.png</file>
|
||||
<file alias="dialog-close.png">icons/GUI/dialog-close.png</file>
|
||||
<file alias="dialog-close@2x.png">icons/GUI/dialog-close@2x.png</file>
|
||||
<file alias="document-open.png">icons/GUI/document-open.png</file>
|
||||
<file alias="document-open@2x.png">icons/GUI/document-open@2x.png</file>
|
||||
<file alias="document-print.png">icons/GUI/document-print.png</file>
|
||||
<file alias="document-print@2x.png">icons/GUI/document-print@2x.png</file>
|
||||
<file alias="document-export.png">icons/GUI/document-export.png</file>
|
||||
<file alias="document-export@2x.png">icons/GUI/document-export@2x.png</file>
|
||||
<file alias="flag.png">icons/GUI/flag.png</file>
|
||||
<file alias="flag@2x.png">icons/GUI/flag@2x.png</file>
|
||||
<file alias="application-exit.png">icons/GUI/application-exit.png</file>
|
||||
<file alias="application-exit@2x.png">icons/GUI/application-exit@2x.png</file>
|
||||
<file alias="applications-internet.png">icons/GUI/applications-internet.png</file>
|
||||
<file alias="applications-internet@2x.png">icons/GUI/applications-internet@2x.png</file>
|
||||
<file alias="view-refresh.png">icons/GUI/view-refresh.png</file>
|
||||
<file alias="view-refresh@2x.png">icons/GUI/view-refresh@2x.png</file>
|
||||
<file alias="arrow-left.png">icons/GUI/arrow-left.png</file>
|
||||
<file alias="arrow-left@2x.png">icons/GUI/arrow-left@2x.png</file>
|
||||
<file alias="arrow-right.png">icons/GUI/arrow-right.png</file>
|
||||
<file alias="arrow-right@2x.png">icons/GUI/arrow-right@2x.png</file>
|
||||
<file alias="arrow-left-double.png">icons/GUI/arrow-left-double.png</file>
|
||||
<file alias="arrow-left-double@2x.png">icons/GUI/arrow-left-double@2x.png</file>
|
||||
<file alias="arrow-right-double.png">icons/GUI/arrow-right-double.png</file>
|
||||
<file alias="arrow-right-double@2x.png">icons/GUI/arrow-right-double@2x.png</file>
|
||||
<file alias="view-fullscreen.png">icons/GUI/view-fullscreen.png</file>
|
||||
<file alias="view-fullscreen@2x.png">icons/GUI/view-fullscreen@2x.png</file>
|
||||
<file alias="office-chart-line.png">icons/GUI/office-chart-line.png</file>
|
||||
<file alias="office-chart-line@2x.png">icons/GUI/office-chart-line@2x.png</file>
|
||||
<file alias="format-stroke-color.png">icons/GUI/format-stroke-color.png</file>
|
||||
<file alias="format-stroke-color@2x.png">icons/GUI/format-stroke-color@2x.png</file>
|
||||
<file alias="flag_32.png">icons/GUI/flag_32.png</file>
|
||||
<file alias="flag_32@2x.png">icons/GUI/flag_32@2x.png</file>
|
||||
<file alias="preferences-system.png">icons/GUI/preferences-system.png</file>
|
||||
<file alias="preferences-system@2x.png">icons/GUI/preferences-system@2x.png</file>
|
||||
<file alias="document-print_32.png">icons/GUI/document-print_32.png</file>
|
||||
<file alias="document-print_32@2x.png">icons/GUI/document-print_32@2x.png</file>
|
||||
<file alias="view-filter.png">icons/GUI/view-filter.png</file>
|
||||
<file alias="view-filter@2x.png">icons/GUI/view-filter@2x.png</file>
|
||||
<file alias="applications-internet_32.png">icons/GUI/applications-internet_32.png</file>
|
||||
<file alias="applications-internet_32@2x.png">icons/GUI/applications-internet_32@2x.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 926 B After Width: | Height: | Size: 926 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 707 B After Width: | Height: | Size: 707 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 924 B After Width: | Height: | Size: 924 B |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 682 B After Width: | Height: | Size: 682 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 865 B After Width: | Height: | Size: 865 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 880 B After Width: | Height: | Size: 880 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
169
icons/GUI/licence.txt
Normal file
@ -0,0 +1,169 @@
|
||||
The GUI icons are Oxygen icons from the KDE project (http://www.kde.org)
|
||||
licensed under LGPLv3.
|
||||
|
||||
-----
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
Before Width: | Height: | Size: 728 B After Width: | Height: | Size: 728 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 885 B After Width: | Height: | Size: 885 B |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 381 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Podporované soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>Soubory CSV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>Soubory FIT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>Soubory GeoJSON</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>Soubory GPX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>Soubory IGC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>Obrázky JPEG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>Soubory KML</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>Soubory LOC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>Soubory NMEA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>Soubory OziExploreru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>Soubory TCX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>Soubory SLF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Všechny soubory</translation>
|
||||
</message>
|
||||
@ -986,42 +991,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Podporované soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>MBTiles mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation>Garmin IMG mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy mapy/atlasy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF obrázky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation>TwoNav mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Online mapové zdroje</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Understøttede filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>CSV-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>FIT-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>GPX-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>IGC-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>KML-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>LOC-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>NMEA-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>OziExplorer-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>SLF-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>TCX-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Alle filer</translation>
|
||||
</message>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Understøttede filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX-kort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer-kort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy kort/atlas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF billeder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation type="unfinished">Online-kort kilder</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Unterstützte Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>CSV-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>FIT-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>GeoJSON-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>GPX-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>IGC-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>JPEG-Bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>KML-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>LOC-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>NMEA-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>OziExplorer-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>TCX-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>SLF-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Alle Dateien</translation>
|
||||
</message>
|
||||
@ -189,7 +194,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/exportdialog.cpp" line="135"/>
|
||||
<source>Export to PDF</source>
|
||||
<translation>PDF Export</translation>
|
||||
<translation>In PDF exportieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/exportdialog.cpp" line="52"/>
|
||||
@ -209,12 +214,12 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/exportdialog.cpp" line="99"/>
|
||||
<source>Orientation:</source>
|
||||
<translation>Orientierung:</translation>
|
||||
<translation>Ausrichtung:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/exportdialog.cpp" line="94"/>
|
||||
<source>Page Setup</source>
|
||||
<translation>Seiten Setup</translation>
|
||||
<translation>Seite einrichten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/exportdialog.cpp" line="25"/>
|
||||
@ -276,12 +281,12 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/exportdialog.cpp" line="152"/>
|
||||
<source>%1 is a directory.</source>
|
||||
<translation>%1 ist ein Verzeichniss.</translation>
|
||||
<translation>%1 ist ein Verzeichnis.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/exportdialog.cpp" line="157"/>
|
||||
<source>%1 is not writable.</source>
|
||||
<translation>%1 ist nich schreibbar.</translation>
|
||||
<translation>%1 ist nicht beschreibbar.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -289,7 +294,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/fileselectwidget.cpp" line="38"/>
|
||||
<source>Select file</source>
|
||||
<translation>Datei Auswählen</translation>
|
||||
<translation>Datei auswählen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -343,7 +348,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="844"/>
|
||||
<source>Open POI file</source>
|
||||
<translation>POI Datei öffnen</translation>
|
||||
<translation>POI-Datei öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="200"/>
|
||||
@ -365,7 +370,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="242"/>
|
||||
<source>Reload</source>
|
||||
<translation>Neu Laden</translation>
|
||||
<translation>Neu laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="588"/>
|
||||
@ -385,7 +390,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="265"/>
|
||||
<source>Overlap POIs</source>
|
||||
<translation>POI überlappen</translation>
|
||||
<translation>POIs überlappen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="270"/>
|
||||
@ -410,7 +415,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="218"/>
|
||||
<source>Open...</source>
|
||||
<translation>Öffnen...</translation>
|
||||
<translation>Öffnen …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="207"/>
|
||||
@ -422,17 +427,17 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="249"/>
|
||||
<source>Statistics...</source>
|
||||
<translation>Statistiken...</translation>
|
||||
<translation>Statistiken …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="257"/>
|
||||
<source>Load POI file...</source>
|
||||
<translation>POI-Datei laden...</translation>
|
||||
<translation>POI-Datei laden …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="293"/>
|
||||
<source>Load map...</source>
|
||||
<translation>Karte laden...</translation>
|
||||
<translation>Karte laden …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="302"/>
|
||||
@ -469,7 +474,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="343"/>
|
||||
<source>Waypoint labels</source>
|
||||
<translation>Wegpunkt Labels</translation>
|
||||
<translation>Wegpunkt-Labels</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="355"/>
|
||||
@ -546,7 +551,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="463"/>
|
||||
<source>Options...</source>
|
||||
<translation>Einstellungen...</translation>
|
||||
<translation>Einstellungen …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="469"/>
|
||||
@ -596,7 +601,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="665"/>
|
||||
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at %1.</source>
|
||||
<translation>GPXSee wird unter der GNU General Public License version 3 vertrieben. Mehr Informationen zu GPXSee auf der Homepage %1.</translation>
|
||||
<translation>GPXSee wird unter der GNU General Public License version 3 veröffentlicht. Mehr Informationen zu GPXSee auf der Homepage %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="692"/>
|
||||
@ -668,12 +673,12 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="1309"/>
|
||||
<source>Open map file</source>
|
||||
<translation>Karte Datei öffnen</translation>
|
||||
<translation>Kartendatei öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="1332"/>
|
||||
<source>Error loading map:</source>
|
||||
<translation>Fehler beim Laden der Karte-Datei:</translation>
|
||||
<translation>Fehler beim Laden der Kartendatei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="1343"/>
|
||||
@ -710,12 +715,12 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="223"/>
|
||||
<source>Print...</source>
|
||||
<translation>Drucken...</translation>
|
||||
<translation>Drucken …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="230"/>
|
||||
<source>Export to PDF...</source>
|
||||
<translation>Als PDF exportieren...</translation>
|
||||
<translation>Als PDF exportieren …</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="1029"/>
|
||||
@ -731,7 +736,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="348"/>
|
||||
<source>Route waypoints</source>
|
||||
<translation>Routen Wegpunkte</translation>
|
||||
<translation>Routen-Wegpunkte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="489"/>
|
||||
@ -786,7 +791,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="833"/>
|
||||
<source>Error loading data file:</source>
|
||||
<translation>Fehler beim Laden der Datei:</translation>
|
||||
<translation>Fehler beim Laden der Datendatei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="836"/>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Unterstützte Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>MBTiles Karten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX Karten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer Karten</translation>
|
||||
<translation>MBTiles-Karten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy Karten/Atlanten</translation>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX-Karten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation>Garmin IMG-Karten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF Bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation>TwoNav Karten</translation>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer-Karten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy-Karten/Atlanten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF-Bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation>TwoNav-Karten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Online-Kartenquellen</translation>
|
||||
</message>
|
||||
@ -1101,7 +1111,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="266"/>
|
||||
<source>Map opacity:</source>
|
||||
<translation>Karte Deckkraft:</translation>
|
||||
<translation>Kartendeckkraft:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="279"/>
|
||||
@ -1251,7 +1261,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
|
||||
<source>Eliminate GPS outliers</source>
|
||||
<translation>GPS Ausreißer entfernen</translation>
|
||||
<translation>GPS-Ausreißer entfernen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="324"/>
|
||||
@ -1344,17 +1354,17 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="139"/>
|
||||
<source>Area border width:</source>
|
||||
<translation>Flächen Randbreite:</translation>
|
||||
<translation>Flächen-Randbreite:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="140"/>
|
||||
<source>Area border style:</source>
|
||||
<translation>Flächen Randstil:</translation>
|
||||
<translation>Flächen-Randstil:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="141"/>
|
||||
<source>Area fill opacity:</source>
|
||||
<translation>Flächen Deckkraft:</translation>
|
||||
<translation>Flächendeckkraft:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="145"/>
|
||||
@ -1400,7 +1410,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
|
||||
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
|
||||
<translation>Der Druckbereich ist circa der Anzeigebereich. Das Karten-Zoom ändert sich nicht.</translation>
|
||||
<translation>Der Druckbereich entspricht ungefähr dem Anzeigebereich. Das Karten-Zoom ändert sich nicht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="475"/>
|
||||
@ -1470,7 +1480,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="561"/>
|
||||
<source>Image cache size:</source>
|
||||
<translation>Bild-Cache größe:</translation>
|
||||
<translation>Bild-Cachegröße:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="562"/>
|
||||
@ -1501,7 +1511,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="601"/>
|
||||
<source>Print & Export</source>
|
||||
<translation>Druck & Export</translation>
|
||||
<translation>Druck / Export</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="630"/>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Formatos soportados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>Archivos CSV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>Archivos FIT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>Archivos GeoJSON</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>Archivos GPX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>Archivos IGC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>Imagen JPEG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>Archivos KML</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>Archivos LOC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>Archivos NMEA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>Archivos OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>Archivos SLF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>Archivos TCX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Todos los archivos</translation>
|
||||
</message>
|
||||
@ -450,7 +455,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="338"/>
|
||||
<source>Show areas</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ver áreas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="343"/>
|
||||
@ -495,7 +500,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="389"/>
|
||||
<source>Show path markers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ver marcadores de camino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="396"/>
|
||||
@ -774,7 +779,7 @@
|
||||
<location filename="../src/GUI/gui.cpp" line="1023"/>
|
||||
<location filename="../src/GUI/gui.cpp" line="1094"/>
|
||||
<source>Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Tracks</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="1026"/>
|
||||
@ -786,13 +791,13 @@
|
||||
<location filename="../src/GUI/gui.cpp" line="1029"/>
|
||||
<location filename="../src/GUI/gui.cpp" line="1098"/>
|
||||
<source>Waypoints</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Waypoints</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="1032"/>
|
||||
<location filename="../src/GUI/gui.cpp" line="1100"/>
|
||||
<source>Areas</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Áreas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="1038"/>
|
||||
@ -831,9 +836,9 @@
|
||||
<message numerus="yes">
|
||||
<location filename="../src/GUI/gui.cpp" line="1347"/>
|
||||
<source>%n files</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
<translation>
|
||||
<numerusform>%n archivo</numerusform>
|
||||
<numerusform>%n archivos</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Formatos soportados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>Mapas MBTiles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Mapas Garmin JNX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>Mapas OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>Mapas/atlas TrekBuddy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>Imagenes GeoTIFF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mapas TwoNav</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Mapas Online</translation>
|
||||
</message>
|
||||
@ -1070,7 +1080,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="159"/>
|
||||
<source>Base color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Color de base:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="160"/>
|
||||
@ -1104,7 +1114,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="109"/>
|
||||
<source>Tracks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Tracks</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="121"/>
|
||||
@ -1124,27 +1134,27 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="139"/>
|
||||
<source>Area border width:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ancho de frontera del área:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="140"/>
|
||||
<source>Area border style:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Estilo de frontera del área:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="141"/>
|
||||
<source>Area fill opacity:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Opacidad de relleno del área:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="145"/>
|
||||
<source>Fill opacity:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Opacidad de relleno:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="146"/>
|
||||
<source>Areas</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Áreas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="162"/>
|
||||
@ -1166,7 +1176,7 @@
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="198"/>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="214"/>
|
||||
<source>Color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Color:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="199"/>
|
||||
@ -1177,7 +1187,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="200"/>
|
||||
<source>Waypoints</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Waypoints</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="211"/>
|
||||
@ -1349,7 +1359,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="419"/>
|
||||
<source>Sources</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Fuentes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="420"/>
|
||||
@ -1359,7 +1369,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
|
||||
<source>Radius:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Radio:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Tuetut tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>CSV-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>FIT-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>GeoJSON-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>GPX-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>IGC-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>JPEG-kuvat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>KML-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>LOC-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>NMEA-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>OziExplorer-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>TCX-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>SLF-tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Kaikki tiedostot</translation>
|
||||
</message>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Tuetut tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>MBTiles-kartat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX -kartat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer-kartat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy-kartat/kartastot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF -kuvat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>TwoNav-kartat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Online-karttojen lähteet</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Formats pris en charge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>Données CSV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>Données FIT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>Données GeoJSON</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>Données GPX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>Données IGC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>Images JPEG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>Données KML</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>Données LOC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>Données NMEA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>Données OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>Données TCX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>Données SLF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Tous les fichiers</translation>
|
||||
</message>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Formats pris en charge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>Cartes MBTiles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Cartes Garmin JNX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>Cartes OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>Cartes ou atlas TrekBuddy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>Images GeoTIFF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Cartes TwoNav</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Cartes en ligne</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Støttede filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>CSV-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>FIT-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>GeoJSON-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>GPX-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>IGC-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>JPEG-bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>KML-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>LOC-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>NMEA-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>OziExplorer-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>SLF-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>TCX-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Alle filer</translation>
|
||||
</message>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Støttede filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>MBTiles-kart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX-kart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation>Garming IMG-kart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer-kart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy kart/atlas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF-bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation>TwoNav-kart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Nettbaserte kartkilder</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Obsługiwane pliki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>Pliki CSV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>Pliki FIT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>Pliki GPX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>Pliki IGC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>Pliki KML</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>Pliki LOC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>Pliki NMEA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>Pliki OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>Pliki TCX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>Pliki SLF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Wszystkie pliki</translation>
|
||||
</message>
|
||||
@ -986,42 +991,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Obsługiwane pliki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>Mapy MBTiles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Mapy Garmin JNX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>Mapy OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>Mapy/atlasy TrekBuddy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>Obrazy GeoTIFF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Źródła map online</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Formatos suportados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>Arquivos CSV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>Arquivos FIT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>Arquivos GeoJSON</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>Arquivos GPX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>Arquivos IGC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>Imagens JPEG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>Arquivos KML</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>Arquivos LOC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>Arquivos NMEA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>Arquivos OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>Arquivos SLF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>Arquivos TCX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Todos os arquivos</translation>
|
||||
</message>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Formatos suportados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>Mapas MBTiles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Mapas Garmin JNX</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>Mapas OziExplorer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>Mapas/Atlas TrekBuddy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>Imagens GeoTIFF</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation>Mapas TwoNav</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Mapas online</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Все поддерживаемые файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>CSV файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>FIT файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>GeoJSON файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>GPX файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>IGC файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>JPEG изображения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>KML файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>LOC файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>NMEA файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>OziExplorer файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>TCX файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>SLF файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Все файлы</translation>
|
||||
</message>
|
||||
@ -986,42 +991,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Все поддерживаемые файлы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>MBTiles карты</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX карты</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer карты</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy карты/атласы</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF изображения</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>TwoNav карты</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Источники онлайн карт</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Filer som stöds</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>CSV-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>FIT-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>GeoJSON-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>GPX-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>IGC-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>JPEG-bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>KML-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>LOC-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>NMEA-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>OziExplorer-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>TCX-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>SLF-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Alla filer</translation>
|
||||
</message>
|
||||
@ -985,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Filer som stöds</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>MBTiles-kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX-kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation>Garmin IMG-kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer-kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy-kartor/-atlaser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF-bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation>TwoNav-kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Online-kartkällor</translation>
|
||||
</message>
|
||||
|
@ -47,67 +47,72 @@
|
||||
<context>
|
||||
<name>Data</name>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="143"/>
|
||||
<location filename="../src/data/data.cpp" line="148"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Desteklenen dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="144"/>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<source>CSV files</source>
|
||||
<translation>CSV dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="145"/>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<source>FIT files</source>
|
||||
<translation>FIT dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="147"/>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<source>GeoJSON files</source>
|
||||
<translation>GeoJSON dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="149"/>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<source>GPX files</source>
|
||||
<translation>GPX dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="150"/>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<source>IGC files</source>
|
||||
<translation>IGC dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="151"/>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<source>JPEG images</source>
|
||||
<translation>JPEG resimler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<source>KML files</source>
|
||||
<translation>KML dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="152"/>
|
||||
<location filename="../src/data/data.cpp" line="158"/>
|
||||
<source>LOC files</source>
|
||||
<translation>LOC dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="153"/>
|
||||
<location filename="../src/data/data.cpp" line="159"/>
|
||||
<source>NMEA files</source>
|
||||
<translation>NMEA dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="154"/>
|
||||
<location filename="../src/data/data.cpp" line="160"/>
|
||||
<source>OziExplorer files</source>
|
||||
<translation>OziExplorer dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="155"/>
|
||||
<location filename="../src/data/data.cpp" line="161"/>
|
||||
<source>SLF files</source>
|
||||
<translation>SLF dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="156"/>
|
||||
<location filename="../src/data/data.cpp" line="162"/>
|
||||
<source>TCX files</source>
|
||||
<translation>TCX dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/data/data.cpp" line="157"/>
|
||||
<location filename="../src/data/data.cpp" line="163"/>
|
||||
<source>All files</source>
|
||||
<translation>Tüm dosyalar</translation>
|
||||
</message>
|
||||
@ -833,6 +838,7 @@
|
||||
<source>%n files</source>
|
||||
<translation>
|
||||
<numerusform>%n dosya</numerusform>
|
||||
<numerusform>%n dosya</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
@ -984,42 +990,47 @@
|
||||
<context>
|
||||
<name>MapList</name>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="119"/>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<source>Supported files</source>
|
||||
<translation>Desteklenen dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="121"/>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<source>MBTiles maps</source>
|
||||
<translation>MBTiles haritalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="122"/>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<source>Garmin JNX maps</source>
|
||||
<translation>Garmin JNX haritalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="123"/>
|
||||
<source>Garmin IMG maps</source>
|
||||
<translation>Garmin IMG haritaları</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<source>OziExplorer maps</source>
|
||||
<translation>OziExplorer haritalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="124"/>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<source>TrekBuddy maps/atlases</source>
|
||||
<translation>TrekBuddy haritalar/atlaslar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="125"/>
|
||||
<location filename="../src/map/maplist.cpp" line="128"/>
|
||||
<source>GeoTIFF images</source>
|
||||
<translation>GeoTIFF görüntü</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="126"/>
|
||||
<location filename="../src/map/maplist.cpp" line="129"/>
|
||||
<source>TwoNav maps</source>
|
||||
<translation>TwoNav haritaları</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="127"/>
|
||||
<location filename="../src/map/maplist.cpp" line="130"/>
|
||||
<source>Online map sources</source>
|
||||
<translation>Online harita kaynakları</translation>
|
||||
</message>
|
||||
|
@ -7,7 +7,7 @@
|
||||
; The name of the installer
|
||||
Name "GPXSee"
|
||||
; Program version
|
||||
!define VERSION "7.4"
|
||||
!define VERSION "7.6"
|
||||
|
||||
; The file to write
|
||||
OutFile "GPXSee-${VERSION}.exe"
|
||||
|
@ -7,7 +7,7 @@
|
||||
; The name of the installer
|
||||
Name "GPXSee"
|
||||
; Program version
|
||||
!define VERSION "7.4"
|
||||
!define VERSION "7.6"
|
||||
|
||||
; The file to write
|
||||
OutFile "GPXSee-${VERSION}_x64.exe"
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map xmlns="http://www.gpxsee.org/map/1.0">
|
||||
<map xmlns="http://www.gpxsee.org/map/1.3">
|
||||
<name>4UMaps</name>
|
||||
<url>https://4umaps.com/$z/$x/$y.png</url>
|
||||
<copyright>Map data: © OpenStreetMap contributors (ODbL) | Rendering: © 4UMaps.eu</copyright>
|
||||
<zoom min="2" max="15"/>
|
||||
<bounds bottom="-65"/>
|
||||
<copyright>Map data: © OpenStreetMap contributors (ODbL) | Rendering: © 4UMaps.eu</copyright>
|
||||
</map>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map xmlns="http://www.gpxsee.org/map/1.0" type="WMTS">
|
||||
<map xmlns="http://www.gpxsee.org/map/1.3" type="WMTS">
|
||||
<name>Antarctica</name>
|
||||
<url type="REST">https://gis.ngdc.noaa.gov/arcgis/rest/services/antarctic/antarctic_basemap/MapServer/WMTS/1.0.0/WMTSCapabilities.xml</url>
|
||||
<copyright>NOAA National Centers for Environmental Information (NCEI); International Bathymetric Chart of the Southern Ocean (IBCSO); General Bathymetric Chart of the Oceans (GEBCO); Natural Earth</copyright>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map xmlns="http://www.gpxsee.org/map/1.0">
|
||||
<map xmlns="http://www.gpxsee.org/map/1.3">
|
||||
<name>Open Street Map</name>
|
||||
<url>http://tile.openstreetmap.org/$z/$x/$y.png</url>
|
||||
<copyright>Map data: © OpenStreetMap contributors (ODbL) | Rendering: © OpenStreetMap (CC-BY-SA)</copyright>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map xmlns="http://www.gpxsee.org/map/1.0">
|
||||
<map xmlns="http://www.gpxsee.org/map/1.3">
|
||||
<name>Open Topo Map</name>
|
||||
<url>https://a.tile.opentopomap.org/$z/$x/$y.png</url>
|
||||
<copyright>Map data: © OpenStreetMap contributors (ODbL), SRTM | Rendering: © OpenTopoMap (CC-BY-SA)</copyright>
|
||||
<zoom max="17"/>
|
||||
<copyright>Map data: © OpenStreetMap contributors (ODbL), SRTM | Rendering: © OpenTopoMap (CC-BY-SA)</copyright>
|
||||
</map>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map xmlns="http://www.gpxsee.org/map/1.0">
|
||||
<map xmlns="http://www.gpxsee.org/map/1.3">
|
||||
<name>USGS Imagery</name>
|
||||
<url>https://basemap.nationalmap.gov/ArcGIS/rest/services/USGSImageryOnly/MapServer/tile/$z/$y/$x</url>
|
||||
<copyright>Map services and data available from U.S. Geological Survey, National Geospatial Program.</copyright>
|
||||
<zoom min="2" max="15"/>
|
||||
<bounds bottom="0" top="74"/>
|
||||
<copyright>Map services and data available from U.S. Geological Survey, National Geospatial Program.</copyright>
|
||||
</map>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map xmlns="http://www.gpxsee.org/map/1.0">
|
||||
<map xmlns="http://www.gpxsee.org/map/1.3">
|
||||
<name>USGS Topo</name>
|
||||
<url>https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/$z/$y/$x</url>
|
||||
<copyright>Map services and data available from U.S. Geological Survey, National Geospatial Program.</copyright>
|
||||
<zoom min="2" max="15"/>
|
||||
<copyright>Map services and data available from U.S. Geological Survey, National Geospatial Program.</copyright>
|
||||
</map>
|
||||
|
@ -51,7 +51,7 @@ App::App(int &argc, char **argv) : QApplication(argc, argv)
|
||||
"QThreadStorage: Thread X exited after QThreadStorage Y destroyed" */
|
||||
Downloader::setNetworkManager(new QNetworkAccessManager(this));
|
||||
DEM::setDir(ProgramPaths::demDir());
|
||||
OPENGL_SET_SAMPLES(4);
|
||||
OPENGL_SET_FORMAT(4, 8);
|
||||
|
||||
loadDatums();
|
||||
loadPCSs();
|
||||
|
@ -63,11 +63,11 @@ QList<GraphItem*> CadenceGraph::loadData(const Data &data)
|
||||
qreal CadenceGraph::avg() const
|
||||
{
|
||||
qreal sum = 0, w = 0;
|
||||
QList<QPointF>::const_iterator it;
|
||||
|
||||
for (it = _avg.begin(); it != _avg.end(); it++) {
|
||||
sum += it->y() * it->x();
|
||||
w += it->x();
|
||||
for (int i = 0; i < _avg.size(); i++) {
|
||||
const QPointF &p = _avg.at(i);
|
||||
sum += p.y() * p.x();
|
||||
w += p.x();
|
||||
}
|
||||
|
||||
return (sum / w);
|
||||
|
@ -21,7 +21,7 @@ private:
|
||||
qreal max() const {return bounds().bottom();}
|
||||
void setInfo();
|
||||
|
||||
QList<QPointF> _avg;
|
||||
QVector<QPointF> _avg;
|
||||
|
||||
bool _showTracks;
|
||||
};
|
||||
|
@ -11,6 +11,10 @@ CoordinatesItem::CoordinatesItem(QGraphicsItem *parent) : QGraphicsItem(parent)
|
||||
_font.setPixelSize(FONT_SIZE);
|
||||
_font.setFamily(FONT_FAMILY);
|
||||
|
||||
_digitalZoom = 0;
|
||||
|
||||
setAcceptHoverEvents(true);
|
||||
|
||||
updateBoundingRect();
|
||||
}
|
||||
|
||||
@ -48,6 +52,12 @@ void CoordinatesItem::setFormat(const CoordinatesFormat &format)
|
||||
updateBoundingRect();
|
||||
}
|
||||
|
||||
void CoordinatesItem::setDigitalZoom(qreal zoom)
|
||||
{
|
||||
_digitalZoom = zoom;
|
||||
setScale(pow(2, -_digitalZoom));
|
||||
}
|
||||
|
||||
void CoordinatesItem::updateBoundingRect()
|
||||
{
|
||||
QFontMetrics fm(_font);
|
||||
|
@ -17,6 +17,7 @@ public:
|
||||
|
||||
void setCoordinates(const Coordinates &c);
|
||||
void setFormat(const CoordinatesFormat &format);
|
||||
void setDigitalZoom(qreal zoom);
|
||||
|
||||
private:
|
||||
void updateBoundingRect();
|
||||
@ -25,6 +26,7 @@ private:
|
||||
CoordinatesFormat _format;
|
||||
QRectF _boundingRect;
|
||||
QFont _font;
|
||||
qreal _digitalZoom;
|
||||
};
|
||||
|
||||
#endif // COORDINATESITEM_H
|
||||
|
@ -63,11 +63,11 @@ QList<GraphItem*> HeartRateGraph::loadData(const Data &data)
|
||||
qreal HeartRateGraph::avg() const
|
||||
{
|
||||
qreal sum = 0, w = 0;
|
||||
QList<QPointF>::const_iterator it;
|
||||
|
||||
for (it = _avg.begin(); it != _avg.end(); it++) {
|
||||
sum += it->y() * it->x();
|
||||
w += it->x();
|
||||
for (int i = 0; i < _avg.size(); i++) {
|
||||
const QPointF &p = _avg.at(i);
|
||||
sum += p.y() * p.x();
|
||||
w += p.x();
|
||||
}
|
||||
|
||||
return (sum / w);
|
||||
|
@ -20,7 +20,7 @@ private:
|
||||
qreal max() const {return bounds().bottom();}
|
||||
void setInfo();
|
||||
|
||||
QList<QPointF> _avg;
|
||||
QVector<QPointF> _avg;
|
||||
|
||||
bool _showTracks;
|
||||
};
|
||||
|
@ -1,30 +1,30 @@
|
||||
#ifndef ICONS_H
|
||||
#define ICONS_H
|
||||
|
||||
#define APP_ICON ":/icons/gpxsee.png"
|
||||
#define APP_ICON ":/gpxsee.png"
|
||||
|
||||
// Toolbar/menu icons
|
||||
#define OPEN_FILE_ICON ":/icons/document-open.png"
|
||||
#define EXPORT_FILE_ICON ":/icons/document-export.png"
|
||||
#define PRINT_FILE_ICON ":/icons/document-print.png"
|
||||
#define CLOSE_FILE_ICON ":/icons/dialog-close.png"
|
||||
#define SHOW_POI_ICON ":/icons/flag.png"
|
||||
#define SHOW_MAP_ICON ":/icons/applications-internet.png"
|
||||
#define SHOW_GRAPHS_ICON ":/icons/office-chart-line.png"
|
||||
#define QUIT_ICON ":/icons/application-exit.png"
|
||||
#define RELOAD_FILE_ICON ":/icons/view-refresh.png"
|
||||
#define NEXT_FILE_ICON ":/icons/arrow-right.png"
|
||||
#define PREV_FILE_ICON ":/icons/arrow-left.png"
|
||||
#define LAST_FILE_ICON ":/icons/arrow-right-double.png"
|
||||
#define FIRST_FILE_ICON ":/icons/arrow-left-double.png"
|
||||
#define FULLSCREEN_ICON ":/icons/view-fullscreen.png"
|
||||
#define OPEN_FILE_ICON ":/document-open.png"
|
||||
#define EXPORT_FILE_ICON ":/document-export.png"
|
||||
#define PRINT_FILE_ICON ":/document-print.png"
|
||||
#define CLOSE_FILE_ICON ":/dialog-close.png"
|
||||
#define SHOW_POI_ICON ":/flag.png"
|
||||
#define SHOW_MAP_ICON ":/applications-internet.png"
|
||||
#define SHOW_GRAPHS_ICON ":/office-chart-line.png"
|
||||
#define QUIT_ICON ":/application-exit.png"
|
||||
#define RELOAD_FILE_ICON ":/view-refresh.png"
|
||||
#define NEXT_FILE_ICON ":/arrow-right.png"
|
||||
#define PREV_FILE_ICON ":/arrow-left.png"
|
||||
#define LAST_FILE_ICON ":/arrow-right-double.png"
|
||||
#define FIRST_FILE_ICON ":/arrow-left-double.png"
|
||||
#define FULLSCREEN_ICON ":/view-fullscreen.png"
|
||||
|
||||
// Options dialog icons
|
||||
#define APPEARANCE_ICON ":/icons/format-stroke-color.png"
|
||||
#define POI_ICON ":/icons/flag_32.png"
|
||||
#define SYSTEM_ICON ":/icons/preferences-system.png"
|
||||
#define PRINT_EXPORT_ICON ":/icons/document-print_32.png"
|
||||
#define DATA_ICON ":/icons/view-filter.png"
|
||||
#define MAPS_ICON ":/icons/applications-internet_32.png"
|
||||
#define APPEARANCE_ICON ":/format-stroke-color.png"
|
||||
#define POI_ICON ":/flag_32.png"
|
||||
#define SYSTEM_ICON ":/preferences-system.png"
|
||||
#define PRINT_EXPORT_ICON ":/document-print_32.png"
|
||||
#define DATA_ICON ":/view-filter.png"
|
||||
#define MAPS_ICON ":/applications-internet_32.png"
|
||||
|
||||
#endif /* ICONS_H */
|
||||
|
@ -39,7 +39,6 @@ MapView::MapView(Map *map, POI *poi, QWidget *parent)
|
||||
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
setRenderHint(QPainter::Antialiasing, true);
|
||||
setAcceptDrops(false);
|
||||
setMouseTracking(true);
|
||||
|
||||
_mapScale = new ScaleItem();
|
||||
_mapScale->setZValue(2.0);
|
||||
@ -476,6 +475,7 @@ void MapView::digitalZoom(int zoom)
|
||||
it.value()->setDigitalZoom(_digitalZoom);
|
||||
|
||||
_mapScale->setDigitalZoom(_digitalZoom);
|
||||
_coordinates->setDigitalZoom(_digitalZoom);
|
||||
}
|
||||
|
||||
void MapView::zoom(int zoom, const QPoint &pos)
|
||||
@ -751,6 +751,7 @@ void MapView::showPOILabels(bool show)
|
||||
void MapView::showCoordinates(bool show)
|
||||
{
|
||||
_coordinates->setVisible(show);
|
||||
setMouseTracking(show);
|
||||
}
|
||||
|
||||
void MapView::setPOIOverlap(bool overlap)
|
||||
|
@ -14,13 +14,15 @@
|
||||
#endif
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0)
|
||||
#define OPENGL_SET_SAMPLES(samples) \
|
||||
#define OPENGL_SET_FORMAT(samples, stencilBuffer) \
|
||||
{QGLFormat fmt; \
|
||||
fmt.setStencilBufferSize(stencilBuffer); \
|
||||
fmt.setSamples(samples); \
|
||||
QGLFormat::setDefaultFormat(fmt);}
|
||||
#else
|
||||
#define OPENGL_SET_SAMPLES(samples) \
|
||||
#define OPENGL_SET_FORMAT(samples, stencilBuffer) \
|
||||
{QSurfaceFormat fmt; \
|
||||
fmt.setSamples(samples);\
|
||||
fmt.setStencilBufferSize(stencilBuffer); \
|
||||
fmt.setSamples(samples); \
|
||||
QSurfaceFormat::setDefaultFormat(fmt);}
|
||||
#endif
|
||||
|
@ -63,11 +63,11 @@ QList<GraphItem*> PowerGraph::loadData(const Data &data)
|
||||
qreal PowerGraph::avg() const
|
||||
{
|
||||
qreal sum = 0, w = 0;
|
||||
QList<QPointF>::const_iterator it;
|
||||
|
||||
for (it = _avg.begin(); it != _avg.end(); it++) {
|
||||
sum += it->y() * it->x();
|
||||
w += it->x();
|
||||
for (int i = 0; i < _avg.size(); i++) {
|
||||
const QPointF &p = _avg.at(i);
|
||||
sum += p.y() * p.x();
|
||||
w += p.x();
|
||||
}
|
||||
|
||||
return (sum / w);
|
||||
|
@ -20,7 +20,7 @@ private:
|
||||
qreal max() const {return bounds().bottom();}
|
||||
void setInfo();
|
||||
|
||||
QList<QPointF> _avg;
|
||||
QVector<QPointF> _avg;
|
||||
|
||||
bool _showTracks;
|
||||
};
|
||||
|
@ -74,12 +74,12 @@ QList<GraphItem*> SpeedGraph::loadData(const Data &data)
|
||||
qreal SpeedGraph::avg() const
|
||||
{
|
||||
qreal sum = 0, w = 0;
|
||||
QList<QPointF>::const_iterator it;
|
||||
const QList<QPointF> &list = (_timeType == Moving) ? _mavg : _avg;
|
||||
const QVector<QPointF> &vector = (_timeType == Moving) ? _mavg : _avg;
|
||||
|
||||
for (it = list.begin(); it != list.end(); it++) {
|
||||
sum += it->y() * it->x();
|
||||
w += it->x();
|
||||
for (int i = 0; i < vector.size(); i++) {
|
||||
const QPointF &p = vector.at(i);
|
||||
sum += p.y() * p.x();
|
||||
w += p.x();
|
||||
}
|
||||
|
||||
return (sum / w);
|
||||
|
@ -24,8 +24,8 @@ private:
|
||||
void setYUnits();
|
||||
void setInfo();
|
||||
|
||||
QList<QPointF> _avg;
|
||||
QList<QPointF> _mavg;
|
||||
QVector<QPointF> _avg;
|
||||
QVector<QPointF> _mavg;
|
||||
|
||||
Units _units;
|
||||
TimeType _timeType;
|
||||
|
@ -66,11 +66,11 @@ QList<GraphItem*> TemperatureGraph::loadData(const Data &data)
|
||||
qreal TemperatureGraph::avg() const
|
||||
{
|
||||
qreal sum = 0, w = 0;
|
||||
QList<QPointF>::const_iterator it;
|
||||
|
||||
for (it = _avg.begin(); it != _avg.end(); it++) {
|
||||
sum += it->y() * it->x();
|
||||
w += it->x();
|
||||
for (int i = 0; i < _avg.size(); i++) {
|
||||
const QPointF &p = _avg.at(i);
|
||||
sum += p.y() * p.x();
|
||||
w += p.x();
|
||||
}
|
||||
|
||||
return (sum / w);
|
||||
|
@ -23,7 +23,7 @@ private:
|
||||
void setYUnits(Units units);
|
||||
void setInfo();
|
||||
|
||||
QList<QPointF> _avg;
|
||||
QVector<QPointF> _avg;
|
||||
|
||||
bool _showTracks;
|
||||
};
|
||||
|
@ -1,22 +1,43 @@
|
||||
#include <QImageReader>
|
||||
#include "tooltip.h"
|
||||
|
||||
|
||||
#define THUMBNAIL_MAX_SIZE 240
|
||||
|
||||
void ToolTip::insert(const QString &key, const QString &value)
|
||||
{
|
||||
_list.append(KV(key, value));
|
||||
}
|
||||
|
||||
QString ToolTip::toString()
|
||||
QString ToolTip::toString() const
|
||||
{
|
||||
if (_list.isEmpty())
|
||||
return QString();
|
||||
QString html;
|
||||
|
||||
QString ret = "<table>";
|
||||
if (_img.isValid()) {
|
||||
int width, height;
|
||||
if (_img.size().width() > _img.size().height()) {
|
||||
width = qMin(_img.size().width(), THUMBNAIL_MAX_SIZE);
|
||||
qreal ratio = _img.size().width() / (qreal)_img.size().height();
|
||||
height = (int)(width / ratio);
|
||||
} else {
|
||||
height = qMin(_img.size().height(), THUMBNAIL_MAX_SIZE);
|
||||
qreal ratio = _img.size().height() / (qreal)_img.size().width();
|
||||
width = (int)(height / ratio);
|
||||
}
|
||||
|
||||
for (int i = 0; i < _list.count(); i++)
|
||||
ret += "<tr><td align=\"right\"><b>" + _list.at(i).key()
|
||||
+ ": </b></td><td>" + _list.at(i).value() + "</td></tr>";
|
||||
html += "<div align=\"center\">";
|
||||
html += QString("<img src=\"file:%0\" width=\"%1\" height=\"%2\"/>")
|
||||
.arg(_img.path(), QString::number(width), QString::number(height));
|
||||
html += "</div>";
|
||||
}
|
||||
|
||||
ret += "</table>";
|
||||
if (!_list.isEmpty()) {
|
||||
html += "<table>";
|
||||
for (int i = 0; i < _list.count(); i++)
|
||||
html += "<tr><td align=\"right\"><b>" + _list.at(i).key()
|
||||
+ ": </b></td><td>" + _list.at(i).value() + "</td></tr>";
|
||||
html += "</table>";
|
||||
}
|
||||
|
||||
return ret;
|
||||
return html;
|
||||
}
|
||||
|
@ -4,15 +4,18 @@
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
#include "common/kv.h"
|
||||
#include "data/imageinfo.h"
|
||||
|
||||
class ToolTip
|
||||
{
|
||||
public:
|
||||
void insert(const QString &key, const QString &value);
|
||||
QString toString();
|
||||
void setImage(const ImageInfo &image) {_img = image;}
|
||||
QString toString() const;
|
||||
|
||||
private:
|
||||
QList<KV> _list;
|
||||
ImageInfo _img;
|
||||
};
|
||||
|
||||
#endif // TOOLTIP_H
|
||||
|
@ -18,15 +18,16 @@ QString WaypointItem::toolTip(Units units, CoordinatesFormat format)
|
||||
tt.insert(qApp->translate("WaypointItem", "Name"), _waypoint.name());
|
||||
tt.insert(qApp->translate("WaypointItem", "Coordinates"),
|
||||
Format::coordinates(_waypoint.coordinates(), format));
|
||||
if (!std::isnan(_waypoint.elevation()))
|
||||
if (_waypoint.hasElevation())
|
||||
tt.insert(qApp->translate("WaypointItem", "Elevation"),
|
||||
Format::elevation(_waypoint.elevation(), units));
|
||||
if (!_waypoint.timestamp().isNull())
|
||||
if (_waypoint.timestamp().isValid())
|
||||
tt.insert(qApp->translate("WaypointItem", "Date"),
|
||||
_waypoint.timestamp().toString(Qt::SystemLocaleShortDate));
|
||||
if (!_waypoint.description().isNull())
|
||||
if (!_waypoint.description().isEmpty())
|
||||
tt.insert(qApp->translate("WaypointItem", "Description"),
|
||||
_waypoint.description());
|
||||
tt.setImage(_waypoint.image());
|
||||
|
||||
return tt.toString();
|
||||
}
|
||||
|
@ -14,4 +14,8 @@
|
||||
#define ENABLE_HIDPI
|
||||
#endif // QT >= 5.6
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
#define ENABLE_GEOJSON
|
||||
#endif // QT >= 5.0
|
||||
|
||||
#endif /* CONFIG_H */
|
||||
|
@ -31,7 +31,7 @@
|
||||
#else
|
||||
#define USER_DIR QDir::homePath() + QString("/.local/share/") \
|
||||
+ qApp->applicationName()
|
||||
#define GLOBAL_DIR QString("/usr/share/") + qApp->applicationName()
|
||||
#define GLOBAL_DIR QString(PREFIX "/share/") + qApp->applicationName()
|
||||
#endif
|
||||
|
||||
static QString dir(const QString &dirName, bool writable = false)
|
||||
|
@ -28,6 +28,11 @@ public:
|
||||
double left() const {return _tl.lon();}
|
||||
double right() const {return _br.lon();}
|
||||
|
||||
void setLeft(double val) {_tl.rlon() = val;}
|
||||
void setRight(double val) {_br.rlon() = val;}
|
||||
void setTop(double val) {_tl.rlat() = val;}
|
||||
void setBottom(double val) {_br.rlat() = val;}
|
||||
|
||||
RectC operator|(const RectC &r) const;
|
||||
RectC &operator|=(const RectC &r) {*this = *this | r; return *this;}
|
||||
RectC operator&(const RectC &r) const;
|
||||
@ -35,6 +40,13 @@ public:
|
||||
|
||||
RectC united(const Coordinates &c) const;
|
||||
|
||||
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
|
||||
{return (c.lon() >= left() && c.lon() <= right() && c.lat() <= top()
|
||||
&& c.lat() >= bottom());}
|
||||
|
||||
private:
|
||||
Coordinates _tl, _br;
|
||||
};
|
||||
|
@ -215,6 +215,8 @@ public:
|
||||
StackElement m_stack[MAX_STACK];
|
||||
// Top Of Stack index
|
||||
int m_tos;
|
||||
|
||||
friend class RTree;
|
||||
};
|
||||
|
||||
// Get 'first' for iteration
|
||||
|
@ -4,25 +4,25 @@
|
||||
#define TIFF_MM 0x4D4D
|
||||
#define TIFF_MAGIC 42
|
||||
|
||||
bool TIFFFile::readHeader(quint32 &ifd)
|
||||
TIFFFile::TIFFFile(QIODevice *device) : _device(device), _ifd(0), _offset(0)
|
||||
{
|
||||
quint16 endian, magic;
|
||||
|
||||
if (QFile::read((char*)&endian, sizeof(endian)) < (qint64)sizeof(endian))
|
||||
return false;
|
||||
_offset = _device->pos();
|
||||
|
||||
if (_device->read((char*)&endian, sizeof(endian)) < (qint64)sizeof(endian))
|
||||
return;
|
||||
if (endian == TIFF_II)
|
||||
_be = false;
|
||||
else if (endian == TIFF_MM)
|
||||
_be = true;
|
||||
else
|
||||
return false;
|
||||
return;
|
||||
|
||||
if (!readValue(magic))
|
||||
return false;
|
||||
return;
|
||||
if (magic != TIFF_MAGIC)
|
||||
return false;
|
||||
if (!readValue(ifd))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return;
|
||||
if (!readValue(_ifd))
|
||||
return;
|
||||
}
|
58
src/common/tifffile.h
Normal file
@ -0,0 +1,58 @@
|
||||
#ifndef TIFFFILE_H
|
||||
#define TIFFFILE_H
|
||||
|
||||
#include <QIODevice>
|
||||
#include <QtEndian>
|
||||
|
||||
#define TIFF_BYTE 1
|
||||
#define TIFF_ASCII 2
|
||||
#define TIFF_SHORT 3
|
||||
#define TIFF_LONG 4
|
||||
#define TIFF_RATIONAL 5
|
||||
#define TIFF_DOUBLE 12
|
||||
|
||||
class TIFFFile
|
||||
{
|
||||
public:
|
||||
TIFFFile(QIODevice *device);
|
||||
|
||||
bool isValid() const {return _ifd != 0;}
|
||||
quint32 ifd() const {return _ifd;}
|
||||
|
||||
bool seek(qint64 pos) {return _device->seek(_offset + pos);}
|
||||
qint64 pos() const {return _offset + _device->pos();}
|
||||
QByteArray read(qint64 maxSize) {return _device->read(maxSize);}
|
||||
|
||||
template<class T> bool readValue(T &val)
|
||||
{
|
||||
T data;
|
||||
|
||||
if (_device->read((char*)&data, sizeof(T)) < (qint64)sizeof(T))
|
||||
return false;
|
||||
|
||||
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
|
||||
if (_be)
|
||||
val = data;
|
||||
else {
|
||||
for (size_t i = 0; i < sizeof(T); i++)
|
||||
*((char *)&val + i) = *((char*)&data + sizeof(T) - 1 - i);
|
||||
}
|
||||
#else
|
||||
if (_be) {
|
||||
for (size_t i = 0; i < sizeof(T); i++)
|
||||
*((char *)&val + i) = *((char*)&data + sizeof(T) - 1 - i);
|
||||
} else
|
||||
val = data;
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
QIODevice *_device;
|
||||
bool _be;
|
||||
quint32 _ifd;
|
||||
qint64 _offset;
|
||||
};
|
||||
|
||||
#endif // TIFFFILE_H
|
@ -2,6 +2,7 @@
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QLineF>
|
||||
#include "common/config.h"
|
||||
#include "gpxparser.h"
|
||||
#include "tcxparser.h"
|
||||
#include "csvparser.h"
|
||||
@ -12,9 +13,10 @@
|
||||
#include "oziparsers.h"
|
||||
#include "locparser.h"
|
||||
#include "slfparser.h"
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
#ifdef ENABLE_GEOJSON
|
||||
#include "geojsonparser.h"
|
||||
#endif // QT 5
|
||||
#endif // ENABLE_GEOJSON
|
||||
#include "exifparser.h"
|
||||
#include "dem.h"
|
||||
#include "data.h"
|
||||
|
||||
@ -31,9 +33,10 @@ static WPTParser wpt;
|
||||
static RTEParser rte;
|
||||
static LOCParser loc;
|
||||
static SLFParser slf;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
#ifdef ENABLE_GEOJSON
|
||||
static GeoJSONParser geojson;
|
||||
#endif // QT 5
|
||||
#endif // ENABLE_GEOJSON
|
||||
static EXIFParser exif;
|
||||
|
||||
static QHash<QString, Parser*> parsers()
|
||||
{
|
||||
@ -51,10 +54,12 @@ static QHash<QString, Parser*> parsers()
|
||||
hash.insert("rte", &rte);
|
||||
hash.insert("loc", &loc);
|
||||
hash.insert("slf", &slf);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
#ifdef ENABLE_GEOJSON
|
||||
hash.insert("json", &geojson);
|
||||
hash.insert("geojson", &geojson);
|
||||
#endif // QT 5
|
||||
#endif // ENABLE_GEOJSON
|
||||
hash.insert("jpeg", &exif);
|
||||
hash.insert("jpg", &exif);
|
||||
|
||||
return hash;
|
||||
}
|
||||
@ -143,11 +148,12 @@ QString Data::formats()
|
||||
qApp->translate("Data", "Supported files") + " (" + supported + ");;"
|
||||
+ qApp->translate("Data", "CSV files") + " (*.csv);;"
|
||||
+ qApp->translate("Data", "FIT files") + " (*.fit);;"
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
#ifdef ENABLE_GEOJSON
|
||||
+ qApp->translate("Data", "GeoJSON files") + " (*.geojson *.json);;"
|
||||
#endif // QT5
|
||||
#endif // ENABLE_GEOJSON
|
||||
+ qApp->translate("Data", "GPX files") + " (*.gpx);;"
|
||||
+ qApp->translate("Data", "IGC files") + " (*.igc);;"
|
||||
+ qApp->translate("Data", "JPEG images") + " (*.jpg *.jpeg);;"
|
||||
+ qApp->translate("Data", "KML files") + " (*.kml);;"
|
||||
+ qApp->translate("Data", "LOC files") + " (*.loc);;"
|
||||
+ qApp->translate("Data", "NMEA files") + " (*.nmea);;"
|
||||
|
255
src/data/exifparser.cpp
Normal file
@ -0,0 +1,255 @@
|
||||
#include <QDataStream>
|
||||
#include <QFileInfo>
|
||||
#include <QImageReader>
|
||||
#include "common/tifffile.h"
|
||||
#include "exifparser.h"
|
||||
|
||||
|
||||
#define SOI_MARKER 0xFFD8
|
||||
#define APP1_MARKER 0xFFE1
|
||||
|
||||
#define GPSIFDTag 34853
|
||||
#define ImageDescription 270
|
||||
|
||||
#define GPSLatitudeRef 1
|
||||
#define GPSLatitude 2
|
||||
#define GPSLongitudeRef 3
|
||||
#define GPSLongitude 4
|
||||
#define GPSAltitudeRef 5
|
||||
#define GPSAltitude 6
|
||||
#define GPSTimeStamp 7
|
||||
#define GPSDateStamp 29
|
||||
|
||||
|
||||
QString EXIFParser::text(TIFFFile &file, const IFDEntry &e) const
|
||||
{
|
||||
if (e.type != TIFF_ASCII || !e.count)
|
||||
return QString();
|
||||
|
||||
if (e.count <= sizeof(e.offset))
|
||||
return QString(QByteArray((const char *)&e.offset, sizeof(e.offset)));
|
||||
|
||||
if (!file.seek(e.offset))
|
||||
return QString();
|
||||
|
||||
QByteArray str(file.read(e.count));
|
||||
if (str.size() < (int)e.count)
|
||||
return QString();
|
||||
|
||||
return QString(str);
|
||||
}
|
||||
|
||||
QTime EXIFParser::time(TIFFFile &file, const IFDEntry &ts) const
|
||||
{
|
||||
if (!(ts.type == TIFF_RATIONAL && ts.count == 3))
|
||||
return QTime();
|
||||
|
||||
if (!file.seek(ts.offset))
|
||||
return QTime();
|
||||
|
||||
double hms[3];
|
||||
for (int i = 0; i < 3; i++) {
|
||||
quint32 num, den;
|
||||
if (!file.readValue(num))
|
||||
return QTime();
|
||||
if (!file.readValue(den))
|
||||
return QTime();
|
||||
|
||||
hms[i] = num/(double)den;
|
||||
}
|
||||
|
||||
return QTime((int)hms[0], (int)hms[1], (int)hms[2]);
|
||||
}
|
||||
|
||||
double EXIFParser::altitude(TIFFFile &file, const IFDEntry &alt,
|
||||
const IFDEntry &altRef) const
|
||||
{
|
||||
if (!(alt.type == TIFF_RATIONAL && alt.count == 1))
|
||||
return NAN;
|
||||
|
||||
if (!file.seek(alt.offset))
|
||||
return NAN;
|
||||
|
||||
quint32 num, den;
|
||||
if (!file.readValue(num))
|
||||
return NAN;
|
||||
if (!file.readValue(den))
|
||||
return NAN;
|
||||
|
||||
return (altRef.type == TIFF_BYTE && altRef.count == 1 && altRef.offset)
|
||||
? -(num/(double)den) : num/(double)den;
|
||||
}
|
||||
|
||||
double EXIFParser::coordinate(TIFFFile &file, const IFDEntry &ll) const
|
||||
{
|
||||
if (!(ll.type == TIFF_RATIONAL && ll.count == 3))
|
||||
return NAN;
|
||||
|
||||
if (!file.seek(ll.offset))
|
||||
return NAN;
|
||||
|
||||
double dms[3];
|
||||
for (int i = 0; i < 3; i++) {
|
||||
quint32 num, den;
|
||||
if (!file.readValue(num))
|
||||
return NAN;
|
||||
if (!file.readValue(den))
|
||||
return NAN;
|
||||
|
||||
dms[i] = num/(double)den;
|
||||
}
|
||||
|
||||
return dms[0] + dms[1]/60 + dms[2]/3600;
|
||||
}
|
||||
|
||||
Coordinates EXIFParser::coordinates(TIFFFile &file, const IFDEntry &lon,
|
||||
const IFDEntry &lonRef, const IFDEntry &lat, const IFDEntry &latRef) const
|
||||
{
|
||||
if (!(latRef.type == TIFF_ASCII && latRef.count == 2
|
||||
&& lonRef.type == TIFF_ASCII && lonRef.count == 2))
|
||||
return Coordinates();
|
||||
|
||||
Coordinates c(coordinate(file, lon), coordinate(file, lat));
|
||||
if (!c.isValid())
|
||||
return Coordinates();
|
||||
|
||||
if (lonRef.offset == 'W')
|
||||
c.rlon() = -c.lon();
|
||||
if (latRef.offset == 'S')
|
||||
c.rlat() = -c.lat();
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
bool EXIFParser::readEntry(TIFFFile &file, const QSet<quint16> &tags,
|
||||
QMap<quint16, IFDEntry> &entries) const
|
||||
{
|
||||
IFDEntry entry;
|
||||
quint16 tag;
|
||||
|
||||
if (!file.readValue(tag))
|
||||
return false;
|
||||
if (!file.readValue(entry.type))
|
||||
return false;
|
||||
if (!file.readValue(entry.count))
|
||||
return false;
|
||||
if (!file.readValue(entry.offset))
|
||||
return false;
|
||||
|
||||
if (tags.contains(tag))
|
||||
entries.insert(tag, entry);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool EXIFParser::readIFD(TIFFFile &file, quint32 offset,
|
||||
const QSet<quint16> &tags, QMap<quint16, IFDEntry> &entries) const
|
||||
{
|
||||
quint16 count;
|
||||
|
||||
if (!file.seek(offset))
|
||||
return false;
|
||||
if (!file.readValue(count))
|
||||
return false;
|
||||
|
||||
for (quint16 i = 0; i < count; i++)
|
||||
if (!readEntry(file, tags, entries))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool EXIFParser::parseTIFF(QFile *file, QVector<Waypoint> &waypoints)
|
||||
{
|
||||
TIFFFile tiff(file);
|
||||
if (!tiff.isValid()) {
|
||||
_errorString = "Invalid EXIF data";
|
||||
return false;
|
||||
}
|
||||
|
||||
QSet<quint16> IFD0Tags;
|
||||
IFD0Tags << GPSIFDTag << ImageDescription;
|
||||
QMap<quint16, IFDEntry> IFD0;
|
||||
for (quint32 ifd = tiff.ifd(); ifd; ) {
|
||||
if (!readIFD(tiff, ifd, IFD0Tags, IFD0) || !tiff.readValue(ifd)) {
|
||||
_errorString = "Invalid IFD0";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!IFD0.contains(GPSIFDTag)) {
|
||||
_errorString = "GPS IFD not found";
|
||||
return false;
|
||||
}
|
||||
|
||||
QSet<quint16> GPSIFDTags;
|
||||
GPSIFDTags << GPSLatitude << GPSLongitude << GPSLatitudeRef
|
||||
<< GPSLongitudeRef << GPSAltitude << GPSAltitudeRef << GPSDateStamp
|
||||
<< GPSTimeStamp;
|
||||
QMap<quint16, IFDEntry> GPSIFD;
|
||||
for (quint32 ifd = IFD0.value(GPSIFDTag).offset; ifd; ) {
|
||||
if (!readIFD(tiff, ifd, GPSIFDTags, GPSIFD) || !tiff.readValue(ifd)) {
|
||||
_errorString = "Invalid GPS IFD";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Coordinates c(coordinates(tiff, GPSIFD.value(GPSLongitude),
|
||||
GPSIFD.value(GPSLongitudeRef), GPSIFD.value(GPSLatitude),
|
||||
GPSIFD.value(GPSLatitudeRef)));
|
||||
if (!c.isValid()) {
|
||||
_errorString = "Invalid/missing GPS coordinates";
|
||||
return false;
|
||||
}
|
||||
|
||||
file->reset();
|
||||
ImageInfo img(file->fileName(), QImageReader(file).size());
|
||||
|
||||
Waypoint wp(c);
|
||||
wp.setName(QFileInfo(file->fileName()).baseName());
|
||||
wp.setImage(img);
|
||||
wp.setElevation(altitude(tiff, GPSIFD.value(GPSAltitude),
|
||||
GPSIFD.value(GPSAltitudeRef)));
|
||||
wp.setTimestamp(QDateTime(QDate::fromString(text(tiff,
|
||||
GPSIFD.value(GPSDateStamp)), "yyyy:MM:dd"), time(tiff,
|
||||
GPSIFD.value(GPSTimeStamp)), Qt::UTC));
|
||||
wp.setDescription(text(tiff, IFD0.value(ImageDescription)).trimmed());
|
||||
|
||||
waypoints.append(wp);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool EXIFParser::parse(QFile *file, QList<TrackData> &tracks,
|
||||
QList<RouteData> &routes, QList<Area> &polygons,
|
||||
QVector<Waypoint> &waypoints)
|
||||
{
|
||||
Q_UNUSED(tracks);
|
||||
Q_UNUSED(routes);
|
||||
Q_UNUSED(polygons);
|
||||
quint16 marker;
|
||||
|
||||
QDataStream stream(file);
|
||||
stream.setByteOrder(QDataStream::BigEndian);
|
||||
stream >> marker;
|
||||
if (marker != SOI_MARKER) {
|
||||
_errorString = "Not a JPEG file";
|
||||
return false;
|
||||
}
|
||||
|
||||
while (!stream.atEnd()) {
|
||||
stream >> marker;
|
||||
if (marker == APP1_MARKER) {
|
||||
quint16 size;
|
||||
char magic[6];
|
||||
stream >> size;
|
||||
if (stream.readRawData(magic, sizeof(magic)) == sizeof(magic) &&
|
||||
!memcmp(magic, "Exif\0\0", sizeof(magic)))
|
||||
return parseTIFF(file, waypoints);
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
_errorString = "No EXIF data found";
|
||||
return false;
|
||||
}
|
43
src/data/exifparser.h
Normal file
@ -0,0 +1,43 @@
|
||||
#ifndef EXIFPARSER_H
|
||||
#define EXIFPARSER_H
|
||||
|
||||
#include <QDateTime>
|
||||
#include "parser.h"
|
||||
|
||||
class TIFFFile;
|
||||
|
||||
class EXIFParser : public Parser
|
||||
{
|
||||
public:
|
||||
bool parse(QFile *file, QList<TrackData> &tracks, QList<RouteData> &routes,
|
||||
QList<Area> &polygons, QVector<Waypoint> &waypoints);
|
||||
QString errorString() const {return _errorString;}
|
||||
int errorLine() const {return 0;}
|
||||
|
||||
private:
|
||||
struct IFDEntry {
|
||||
IFDEntry() : type(0), count(0), offset(0) {}
|
||||
|
||||
quint16 type;
|
||||
quint32 count;
|
||||
quint32 offset;
|
||||
};
|
||||
|
||||
bool parseTIFF(QFile *file, QVector<Waypoint> &waypoints);
|
||||
bool readIFD(TIFFFile &file, quint32 offset, const QSet<quint16> &tags,
|
||||
QMap<quint16, IFDEntry> &entries) const;
|
||||
bool readEntry(TIFFFile &file, const QSet<quint16> &tags,
|
||||
QMap<quint16, IFDEntry> &entries) const;
|
||||
|
||||
double coordinate(TIFFFile &file, const IFDEntry &ll) const;
|
||||
Coordinates coordinates(TIFFFile &file, const IFDEntry &lon,
|
||||
const IFDEntry &lonRef, const IFDEntry &lat, const IFDEntry &latRef) const;
|
||||
double altitude(TIFFFile &file, const IFDEntry &alt,
|
||||
const IFDEntry &altRef) const;
|
||||
QTime time(TIFFFile &file, const IFDEntry &ts) const;
|
||||
QString text(TIFFFile &file, const IFDEntry &e) const;
|
||||
|
||||
QString _errorString;
|
||||
};
|
||||
|
||||
#endif // EXIFPARSER_H
|
24
src/data/imageinfo.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef IMAGEINFO_H
|
||||
#define IMAGEINFO_H
|
||||
|
||||
#include <QString>
|
||||
#include <QSize>
|
||||
|
||||
class ImageInfo
|
||||
{
|
||||
public:
|
||||
ImageInfo() {}
|
||||
ImageInfo(const QString &path, const QSize &size)
|
||||
: _path(path), _size(size) {}
|
||||
|
||||
const QString &path() const {return _path;}
|
||||
const QSize &size() const {return _size;}
|
||||
|
||||
bool isValid() const {return _size.isValid() && !_path.isEmpty();}
|
||||
|
||||
private:
|
||||
QString _path;
|
||||
QSize _size;
|
||||
};
|
||||
|
||||
#endif // IMAGEINFO_H
|
@ -217,7 +217,7 @@ Graph Track::speed() const
|
||||
v = 0;
|
||||
stop.append(gs.size());
|
||||
} else if (_useReportedSpeed && sd.at(j).hasSpeed()
|
||||
&& seg.outliers.contains(j))
|
||||
&& !seg.outliers.contains(j))
|
||||
v = sd.at(j).speed();
|
||||
else if (!std::isnan(seg.speed.at(j)) && !seg.outliers.contains(j))
|
||||
v = seg.speed.at(j);
|
||||
|
@ -5,8 +5,8 @@
|
||||
#include <QDateTime>
|
||||
#include <QHash>
|
||||
#include <QDebug>
|
||||
#include <cmath>
|
||||
#include "common/coordinates.h"
|
||||
#include "imageinfo.h"
|
||||
|
||||
class Waypoint
|
||||
{
|
||||
@ -18,6 +18,7 @@ public:
|
||||
const Coordinates &coordinates() const {return _coordinates;}
|
||||
const QString &name() const {return _name;}
|
||||
const QString &description() const {return _description;}
|
||||
const ImageInfo &image() const {return _image;}
|
||||
const QDateTime ×tamp() const {return _timestamp;}
|
||||
qreal elevation() const {return _elevation;}
|
||||
|
||||
@ -28,6 +29,7 @@ public:
|
||||
{_description = description;}
|
||||
void setTimestamp(const QDateTime ×tamp) {_timestamp = timestamp;}
|
||||
void setElevation(qreal elevation) {_elevation = elevation;}
|
||||
void setImage(const ImageInfo &image) {_image = image;}
|
||||
|
||||
bool hasElevation() const {return !std::isnan(_elevation);}
|
||||
|
||||
@ -39,6 +41,7 @@ private:
|
||||
Coordinates _coordinates;
|
||||
QString _name;
|
||||
QString _description;
|
||||
ImageInfo _image;
|
||||
QDateTime _timestamp;
|
||||
qreal _elevation;
|
||||
};
|
||||
|
39
src/map/IMG/bitmapline.cpp
Normal file
@ -0,0 +1,39 @@
|
||||
#include <QPainter>
|
||||
#include <QImage>
|
||||
#include "bitmapline.h"
|
||||
|
||||
static QImage img2line(const QImage &img, int width)
|
||||
{
|
||||
Q_ASSERT(img.format() == QImage::Format_ARGB32_Premultiplied);
|
||||
QImage res(width, img.height(), QImage::Format_ARGB32_Premultiplied);
|
||||
const int srcBpl = img.bytesPerLine();
|
||||
const int dstBpl = res.bytesPerLine();
|
||||
const uchar *srcBits = img.bits();
|
||||
uchar *dstBits = res.bits();
|
||||
|
||||
for (int i = 0; i < img.height(); i++) {
|
||||
const uchar *srcLine = srcBits + srcBpl * i;
|
||||
uchar *dstLine = dstBits + dstBpl * i;
|
||||
|
||||
for (int j = dstBpl; j > 0; j -= srcBpl, dstLine += srcBpl)
|
||||
memcpy(dstLine, srcLine, qMin(j, srcBpl));
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void BitmapLine::draw(QPainter *painter, const QPolygonF &line,
|
||||
const QImage &img)
|
||||
{
|
||||
for (int i = 1; i < line.size(); i++) {
|
||||
QLineF segment(line.at(i-1).x(), line.at(i-1).y(), line.at(i).x(),
|
||||
line.at(i).y());
|
||||
|
||||
painter->save();
|
||||
painter->translate(segment.p1());
|
||||
painter->rotate(-segment.angle());
|
||||
painter->drawImage(0, -img.height()/2, img2line(img, segment.length()));
|
||||
painter->restore();
|
||||
}
|
||||
}
|
||||
|
13
src/map/IMG/bitmapline.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef BITMAPLINE_H
|
||||
#define BITMAPLINE_H
|
||||
|
||||
class QPainter;
|
||||
class QImage;
|
||||
class QPolygonF;
|
||||
|
||||
namespace BitmapLine
|
||||
{
|
||||
void draw(QPainter *painter, const QPolygonF &line, const QImage &img);
|
||||
}
|
||||
|
||||
#endif // BITMAPLINE_H
|
247
src/map/IMG/img.cpp
Normal file
@ -0,0 +1,247 @@
|
||||
#include <QSet>
|
||||
#include <QtEndian>
|
||||
#include "vectortile.h"
|
||||
#include "img.h"
|
||||
|
||||
|
||||
#define CHECK(condition) \
|
||||
if (!(condition)) { \
|
||||
_errorString = "Invalid/corrupted IMG file"; \
|
||||
return; \
|
||||
}
|
||||
|
||||
struct CTX
|
||||
{
|
||||
CTX(const RectC &rect, int bits, QList<IMG::Poly> *polygons,
|
||||
QList<IMG::Poly> *lines, QList<IMG::Point> *points)
|
||||
: rect(rect), bits(bits), polygons(polygons), lines(lines),
|
||||
points(points) {}
|
||||
|
||||
const RectC ▭
|
||||
int bits;
|
||||
QList<IMG::Poly> *polygons;
|
||||
QList<IMG::Poly> *lines;
|
||||
QList<IMG::Point> *points;
|
||||
};
|
||||
|
||||
#ifndef QT_NO_DEBUG
|
||||
static QDebug operator<<(QDebug dbg, const QMap<QString, VectorTile*> &map)
|
||||
{
|
||||
dbg.nospace() << "TileMap(";
|
||||
for (QMap<QString, VectorTile*>::const_iterator it = map.constBegin();
|
||||
it != map.constEnd(); ++it)
|
||||
dbg << "(" << it.key() << ", " << *(*it) << ")";
|
||||
dbg << ")";
|
||||
return dbg.space();
|
||||
}
|
||||
#endif // QT_NO_DEBUG
|
||||
|
||||
IMG::IMG(const QString &fileName) : _file(fileName), _valid(false)
|
||||
{
|
||||
if (!_file.open(QFile::ReadOnly)) {
|
||||
_errorString = _file.errorString();
|
||||
return;
|
||||
}
|
||||
|
||||
// Read IMG header
|
||||
char signature[7], identifier[7];
|
||||
_file.read((char*)&_key, 1) && _file.seek(0x10)
|
||||
&& read(signature, sizeof(signature)) && _file.seek(0x41)
|
||||
&& read(identifier, sizeof(identifier));
|
||||
if (memcmp(signature, "DSKIMG", sizeof(signature))
|
||||
|| memcmp(identifier, "GARMIN", sizeof(identifier))) {
|
||||
_errorString = "Not a Garmin IMG file";
|
||||
return;
|
||||
}
|
||||
char d1[20], d2[31];
|
||||
quint8 e1, e2;
|
||||
CHECK(_file.seek(0x49) && read(d1, sizeof(d1)) && _file.seek(0x61)
|
||||
&& readValue(e1) && readValue(e2) && _file.seek(0x65)
|
||||
&& read(d2, sizeof(d2)));
|
||||
QByteArray nba(QByteArray(d1, sizeof(d1)) + QByteArray(d2, sizeof(d2)));
|
||||
_name = QString(nba).trimmed();
|
||||
_blockSize = 1 << (e1 + e2);
|
||||
|
||||
// Read the FAT table
|
||||
quint8 flag;
|
||||
quint64 offset = 0x200;
|
||||
// Skip unused FAT blocks if any
|
||||
while (true) {
|
||||
CHECK(_file.seek(offset) && readValue(flag));
|
||||
if (flag)
|
||||
break;
|
||||
offset += 512;
|
||||
}
|
||||
|
||||
// Read first FAT block with FAT table size
|
||||
char name[8], type[3];
|
||||
quint32 size;
|
||||
quint16 part;
|
||||
CHECK(_file.seek(offset + 12) && readValue(size));
|
||||
offset += 512;
|
||||
int cnt = (size - offset) / 512;
|
||||
|
||||
|
||||
QMap<QString, VectorTile*> tileMap;
|
||||
QMap<QString, SubFile*> TYPMap;
|
||||
|
||||
// Read FAT blocks describing the IMG sub-files
|
||||
for (int i = 0; i < cnt; i++) {
|
||||
quint16 block;
|
||||
CHECK(_file.seek(offset) && readValue(flag) && read(name, sizeof(name))
|
||||
&& read(type, sizeof(type)) && readValue(size) && readValue(part));
|
||||
SubFile::Type tt = SubFile::type(type);
|
||||
|
||||
if (tt == SubFile::GMP) {
|
||||
_errorString = "NT maps not supported";
|
||||
return;
|
||||
}
|
||||
|
||||
QString fn(QByteArray(name, sizeof(name)));
|
||||
if (VectorTile::isTileFile(tt)) {
|
||||
VectorTile *tile;
|
||||
QMap<QString, VectorTile*>::iterator it = tileMap.find(fn);
|
||||
if (it == tileMap.end()) {
|
||||
tile = new VectorTile();
|
||||
tileMap.insert(fn, tile);
|
||||
} else
|
||||
tile = *it;
|
||||
|
||||
SubFile *file = part ? tile->file(tt)
|
||||
: tile->addFile(this, tt, size);
|
||||
CHECK(file);
|
||||
|
||||
_file.seek(offset + 0x20);
|
||||
for (int i = 0; i < 240; i++) {
|
||||
CHECK(readValue(block));
|
||||
if (block == 0xFFFF)
|
||||
break;
|
||||
file->addBlock(block);
|
||||
}
|
||||
} else if (tt == SubFile::TYP) {
|
||||
SubFile *typ;
|
||||
QMap<QString, SubFile*>::iterator it = TYPMap.find(fn);
|
||||
if (it == TYPMap.end()) {
|
||||
typ = new SubFile(this, size);
|
||||
TYPMap.insert(fn, typ);
|
||||
} else
|
||||
typ = *it;
|
||||
|
||||
_file.seek(offset + 0x20);
|
||||
for (int i = 0; i < 240; i++) {
|
||||
CHECK(readValue(block));
|
||||
if (block == 0xFFFF)
|
||||
break;
|
||||
typ->addBlock(block);
|
||||
}
|
||||
}
|
||||
|
||||
offset += 512;
|
||||
}
|
||||
|
||||
// Create tile tree
|
||||
QSet<int> bits;
|
||||
for (QMap<QString, VectorTile*>::iterator it = tileMap.begin();
|
||||
it != tileMap.end(); ++it) {
|
||||
CHECK((*it)->init());
|
||||
|
||||
double min[2], max[2];
|
||||
min[0] = (*it)->bounds().left();
|
||||
min[1] = (*it)->bounds().bottom();
|
||||
max[0] = (*it)->bounds().right();
|
||||
max[1] = (*it)->bounds().top();
|
||||
_tileTree.Insert(min, max, *it);
|
||||
|
||||
_bounds |= (*it)->bounds();
|
||||
|
||||
for (int i = 0; i < (*it)->bits().count(); i++)
|
||||
bits.insert((*it)->bits().at(i));
|
||||
}
|
||||
_bits = bits.toList();
|
||||
qSort(_bits);
|
||||
|
||||
// Read TYP file if any
|
||||
if (!TYPMap.isEmpty()) {
|
||||
SubFile *typ = TYPMap.values().first();
|
||||
_style = Style(typ);
|
||||
qDeleteAll(TYPMap);
|
||||
}
|
||||
|
||||
_valid = true;
|
||||
}
|
||||
|
||||
IMG::~IMG()
|
||||
{
|
||||
TileTree::Iterator it;
|
||||
for (_tileTree.GetFirst(it); !_tileTree.IsNull(it); _tileTree.GetNext(it))
|
||||
delete _tileTree.GetAt(it);
|
||||
}
|
||||
|
||||
static bool cb(VectorTile *tile, void *context)
|
||||
{
|
||||
CTX *ctx = (CTX*)context;
|
||||
tile->objects(ctx->rect, ctx->bits, ctx->polygons, ctx->lines, ctx->points);
|
||||
return true;
|
||||
}
|
||||
|
||||
void IMG::objects(const RectC &rect, int bits, QList<Poly> *polygons,
|
||||
QList<Poly> *lines, QList<Point> *points) const
|
||||
{
|
||||
int mb = _bits.first();
|
||||
for (int i = 0; i < _bits.size(); i++) {
|
||||
if (_bits.at(i) > bits)
|
||||
break;
|
||||
else
|
||||
mb = _bits.at(i);
|
||||
}
|
||||
|
||||
CTX ctx(rect, mb, polygons, lines, points);
|
||||
double min[2], max[2];
|
||||
|
||||
min[0] = rect.left();
|
||||
min[1] = rect.bottom();
|
||||
max[0] = rect.right();
|
||||
max[1] = rect.top();
|
||||
|
||||
_tileTree.Search(min, max, cb, &ctx);
|
||||
}
|
||||
|
||||
qint64 IMG::read(char *data, qint64 maxSize)
|
||||
{
|
||||
qint64 ret = _file.read(data, maxSize);
|
||||
if (_key)
|
||||
for (int i = 0; i < ret; i++)
|
||||
data[i] ^= _key;
|
||||
return ret;
|
||||
}
|
||||
|
||||
template<class T> bool IMG::readValue(T &val)
|
||||
{
|
||||
T data;
|
||||
|
||||
if (read((char*)&data, sizeof(T)) < (qint64)sizeof(T))
|
||||
return false;
|
||||
|
||||
if (sizeof(T) > 1)
|
||||
val = qFromLittleEndian(data);
|
||||
else
|
||||
val = data;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IMG::readBlock(int blockNum, QByteArray &data)
|
||||
{
|
||||
QByteArray *block = _blockCache[blockNum];
|
||||
if (!block) {
|
||||
if (!_file.seek((qint64)blockNum * (qint64)_blockSize))
|
||||
return false;
|
||||
data.resize(_blockSize);
|
||||
if (read(data.data(), _blockSize) < _blockSize)
|
||||
return false;
|
||||
_blockCache.insert(blockNum, new QByteArray(data));
|
||||
} else
|
||||
data = *block;
|
||||
|
||||
return true;
|
||||
}
|