1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-07-24 23:44:25 +02:00

Compare commits

..

30 Commits

Author SHA1 Message Date
092c56468c Update the theme to the latest Mapsforge version 2023-08-08 00:53:06 +02:00
d064cedbbe Apply the Mapsforge maps zoom levels offset
Offset the Mapsforge zoom level when fetching data/rendering the tiles to get
the expected data/sizes/widths for the tiles at the given zoom level.
2023-08-05 18:56:55 +02:00
8ab728f81d Desktop QT still needs to be installed manually for Android build 2023-08-05 09:59:35 +02:00
6670dc32b5 Build arm64_v8a targets on Android 2023-08-05 09:51:04 +02:00
61b51e5596 Be more tolerant to unknown file header data 2023-08-04 09:34:36 +02:00
4bf81e020f Yet another code cleanup 2023-08-03 00:39:56 +02:00
4bcbce671d Merge remote-tracking branch 'weblate/master' 2023-08-01 23:39:55 +02:00
e07e109c7d Code cleanup 2023-08-01 23:38:33 +02:00
e9609c5167 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (467 of 467 strings)

Translation: GPXSee/Translations
Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/nb_NO/
2023-08-01 23:38:30 +02:00
dcf45475ba Show the arrows even when no label is set 2023-08-01 23:21:49 +02:00
6ce2a63a1c Version++ 2023-07-31 23:38:50 +02:00
3e8b54f605 Added hi-dpi one-way street (+ water ways) arrows 2023-07-31 23:36:14 +02:00
c6af082fa3 Merge branch 'origin/master' into Weblate. 2023-07-24 19:03:57 +02:00
c644ea2170 Translated using Weblate (Esperanto)
Currently translated at 94.4% (441 of 467 strings)

Translation: GPXSee/Translations
Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/eo/
2023-07-23 11:03:14 +02:00
04041a2d9c Translated using Weblate (Ukrainian)
Currently translated at 99.1% (463 of 467 strings)

Translation: GPXSee/Translations
Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/uk/
2023-07-23 11:03:13 +02:00
6a128c8eb4 Translated using Weblate (Russian)
Currently translated at 100.0% (467 of 467 strings)

Translation: GPXSee/Translations
Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/ru/
2023-07-23 11:03:13 +02:00
1a08e50c3e Translated using Weblate (Finnish)
Currently translated at 97.6% (456 of 467 strings)

Translation: GPXSee/Translations
Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/fi/
2023-07-23 11:03:13 +02:00
dd0dec54df Merge branch 'origin/master' into Weblate. 2023-07-14 10:33:46 +02:00
c03e24ce52 Merge branch 'origin/master' into Weblate. 2023-07-14 09:54:24 +02:00
cbd2d99739 Merge branch 'origin/master' into Weblate. 2023-07-13 12:00:41 +02:00
3e0b732a65 Merge branch 'origin/master' into Weblate. 2023-07-06 10:57:05 +02:00
4b51d30e00 Merge branch 'origin/master' into Weblate. 2023-07-06 10:19:13 +02:00
40c41b88e3 Merge branch 'origin/master' into Weblate. 2023-07-06 10:12:17 +02:00
fcd02e4978 Merge branch 'origin/master' into Weblate. 2023-07-06 10:07:33 +02:00
0f4bb95d57 Merge branch 'origin/master' into Weblate. 2023-07-04 20:27:49 +02:00
2efac25629 Merge branch 'origin/master' into Weblate. 2023-06-30 09:58:22 +02:00
2f74c4bbb6 Merge branch 'origin/master' into Weblate. 2023-06-29 07:22:32 +02:00
raf
66ba8268a3 Translated using Weblate (Catalan)
Currently translated at 100.0% (467 of 467 strings)

Translation: GPXSee/Translations
Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/ca/
2023-06-28 12:52:20 +02:00
e328321b19 Merge branch 'origin/master' into Weblate. 2023-06-23 13:56:58 +02:00
8b20124533 Translated using Weblate (Hungarian)
Currently translated at 100.0% (467 of 467 strings)

Translation: GPXSee/Translations
Translate-URL: https://hosted.weblate.org/projects/gpxsee/translations/hu/
2023-06-20 12:52:11 +02:00
22 changed files with 115 additions and 98 deletions

View File

@ -1,4 +1,4 @@
version: 13.5.{build}
version: 13.6.{build}
configuration:
- Release

View File

@ -28,14 +28,16 @@ jobs:
- name: Install Qt (Desktop)
uses: jurplel/install-qt-action@v3
with:
aqtversion: '==3.1.*'
version: '6.4.0'
- name: Install Qt (Android)
uses: jurplel/install-qt-action@v3
with:
aqtversion: '==3.1.*'
version: '6.4.0'
target: 'android'
arch: 'android_armv7'
modules: qtpositioning qt5compat qtserialport
arch: 'android_arm64_v8a'
modules: qtimageformats qtpositioning qtserialport qt5compat
- name: Install Android OpenSSL
run: git clone https://github.com/KDAB/android_openssl.git
- name: Create localization
@ -47,5 +49,5 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: GPXSee-armv7.apk
name: GPXSee-arm64_v8a.apk
path: android-build/build/outputs/apk/debug/android-build-debug.apk

View File

@ -871,7 +871,7 @@
<caption fill="#5555AA" font-family="serif" font-size="14" font-style="bold_italic"
k="name" priority="20" stroke="#FFFFFF" stroke-width="2.0" />
</rule>
<rule e="node" k="place" v="isolated_dwelling" zoom-min="15">
<rule e="node" k="place" v="isolated_dwelling|neighbourhood" zoom-min="15">
<caption fill="#333380" font-size="12" font-style="bold" k="name" priority="5"
stroke="#FFFFFF" stroke-width="2.0" />
</rule>
@ -972,22 +972,26 @@
<!-- emergency -->
<rule e="any" k="*" v="*">
<rule e="any" k="amenity|building" v="hospital|clinic" zoom-min="15">
<rule e="any" k="amenity|building" v="hospital|clinic" zoom-min="14">
<symbol id="hospital" src=":/mapsforge/symbols/health/hospital.svg" />
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#DA0092" font-size="12" font-style="bold" k="name" position="above"
priority="10" stroke="#FFFFFF" stroke-width="2.0" symbol-id="hospital" />
</rule>
</rule>
<rule e="any" k="amenity" v="pharmacy" zoom-min="13">
<rule e="any" k="amenity" v="pharmacy" zoom-min="15">
<symbol id="pharmacy" src=":/mapsforge/symbols/health/pharmacy.svg" />
<caption fill="#DA0092" font-size="12" font-style="bold" k="name" position="above"
priority="10" stroke="#FFFFFF" stroke-width="2.0" symbol-id="pharmacy" />
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#DA0092" font-size="12" font-style="bold" k="name" position="above"
priority="10" stroke="#FFFFFF" stroke-width="2.0" symbol-id="pharmacy" />
</rule>
</rule>
<rule e="any" k="amenity" v="doctors" zoom-min="14">
<rule e="any" k="amenity" v="doctors" zoom-min="15">
<symbol id="doctors" src=":/mapsforge/symbols/health/doctors2.svg" />
<caption fill="#DA0092" font-size="12" font-style="bold" k="name" position="above"
priority="10" stroke="#FFFFFF" stroke-width="2.0" symbol-id="doctors" />
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#DA0092" font-size="12" font-style="bold" k="name" position="above"
priority="10" stroke="#FFFFFF" stroke-width="2.0" symbol-id="doctors" />
</rule>
</rule>
<rule e="any" k="amenity|building" v="embassy" zoom-min="17">
<symbol id="embassy" src=":/mapsforge/symbols/poi/embassy2.svg" />
@ -1040,21 +1044,21 @@
</rule>
<rule e="any" k="tourism" v="hostel" zoom-min="13">
<symbol id="hostel" src=":/mapsforge/symbols/accommodation/hostel.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#0092DA" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2" symbol-id="hostel" />
</rule>
</rule>
<rule e="any" k="tourism|building" v="hotel|guest_house|motel" zoom-min="13">
<symbol id="hotel" src=":/mapsforge/symbols/accommodation/hotel2.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption display="never" fill="#0092DA" font-size="12" font-style="bold" k="name"
stroke="#FFFFFF" stroke-width="2" symbol-id="hotel" />
</rule>
</rule>
<rule e="any" k="tourism" v="chalet" zoom-min="13">
<symbol id="chalet" src=":/mapsforge/symbols/accommodation/chalet.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#0092DA" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2" symbol-id="chalet" />
</rule>
@ -1109,7 +1113,7 @@
<!-- food -->
<rule e="any" k="*" v="*">
<rule e="any" k="amenity" v="restaurant" zoom-min="14">
<rule e="any" k="amenity" v="restaurant" zoom-min="15">
<symbol id="restaurant" src=":/mapsforge/symbols/food/restaurant.svg" />
<rule e="node" k="*" v="*" zoom-min="16">
<caption fill="#734A08" font-size="12" font-style="bold" k="name" position="above"
@ -1132,25 +1136,25 @@
<!-- shopping -->
<rule e="any" k="*" v="*">
<rule e="any" k="shop" v="supermarket|department_store|mall" zoom-min="14">
<rule e="any" k="shop" v="supermarket|department_store|mall" zoom-min="15">
<symbol src=":/mapsforge/symbols/shopping/supermarket.svg" />
</rule>
<rule e="any" k="shop" v="convenience|general|kiosk" zoom-min="14">
<rule e="any" k="shop" v="convenience|general|kiosk" zoom-min="15">
<symbol src=":/mapsforge/symbols/shopping/convenience.svg" />
</rule>
<rule e="any" k="shop" v="bakery" zoom-min="14">
<rule e="any" k="shop" v="bakery" zoom-min="15">
<symbol src=":/mapsforge/symbols/shopping/bakery.svg" />
</rule>
<rule e="any" k="amenity" v="fuel" zoom-min="13">
<rule e="any" k="amenity" v="fuel" zoom-min="14">
<symbol id="fuel" src=":/mapsforge/symbols/transport/fuel.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#AC39AC" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2.0" symbol-id="fuel" />
</rule>
</rule>
<rule e="any" k="amenity" v="marketplace" zoom-min="15">
<symbol id="marketplace" src=":/mapsforge/symbols/shopping/marketplace.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#AC39AC" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2.0" symbol-id="marketplace" />
</rule>
@ -1197,14 +1201,14 @@
</rule>
<rule e="any" k="amenity" v="atm" zoom-min="15">
<symbol id="atm" src=":/mapsforge/symbols/money/atm2.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name" position="above"
stroke="#FFFFFF" stroke-width="2.0" symbol-id="atm" />
</rule>
</rule>
<rule e="any" k="amenity" v="bank" zoom-min="15">
<symbol id="bank" src=":/mapsforge/symbols/money/bank2.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name" position="above"
stroke="#FFFFFF" stroke-width="2.0" symbol-id="bank" />
</rule>
@ -1237,35 +1241,35 @@
</rule>
<rule e="any" k="leisure" v="playground" zoom-min="16">
<symbol id="playground" src=":/mapsforge/symbols/amenity/playground.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#39AC39" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2.0" symbol-id="playground" />
</rule>
</rule>
<rule e="any" k="amenity" v="kindergarten" zoom-min="17">
<symbol id="nursery" src=":/mapsforge/symbols/education/nursery3.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#39AC39" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2.0" symbol-id="nursery" />
</rule>
</rule>
<rule e="any" k="amenity|building" v="library" zoom-min="17">
<symbol id="library" src=":/mapsforge/symbols/amenity/library.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#39AC39" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2.0" symbol-id="library" />
</rule>
</rule>
<rule e="any" k="amenity|building" v="school" zoom-min="17">
<symbol id="school" src=":/mapsforge/symbols/education/school.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#39AC39" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2.0" symbol-id="school" />
</rule>
</rule>
<rule e="any" k="amenity" v="theatre" zoom-min="17">
<symbol id="theatre" src=":/mapsforge/symbols/tourist/theatre.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#734A08" font-size="12" font-style="bold" k="name" stroke="#FFFFFF"
stroke-width="2.0" symbol-id="theatre" />
</rule>
@ -1343,25 +1347,25 @@
</rule>
<rule e="node" k="man_made" v="lighthouse" zoom-min="14">
<symbol id="lighthouse" src=":/mapsforge/symbols/transport/lighthouse.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#0092DA" font-size="12" font-style="bold" k="name" position="above"
stroke="#FFFFFF" stroke-width="2.0" symbol-id="lighthouse" />
</rule>
</rule>
<rule e="any" k="building" v="church|cathedral|chapel" zoom-min="14">
<rule e="any" k="building" v="church|cathedral|chapel" zoom-min="15">
<symbol src=":/mapsforge/symbols/place_of_worship/christian.svg" />
</rule>
<rule e="any" k="amenity" v="place_of_worship" zoom-min="14">
<rule e="any" k="amenity" v="place_of_worship" zoom-min="15">
<rule e="any" k="religion" v="buddhist">
<symbol id="buddhist" src=":/mapsforge/symbols/place_of_worship/buddhist.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name"
position="above" stroke="#FFFFFF" stroke-width="2.0" symbol-id="buddhist" />
</rule>
</rule>
<rule e="any" k="religion" v="christian">
<symbol id="christian" src=":/mapsforge/symbols/place_of_worship/christian.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name"
position="above" stroke="#FFFFFF" stroke-width="2.0"
symbol-id="christian" />
@ -1369,35 +1373,35 @@
</rule>
<rule e="any" k="religion" v="hindu">
<symbol id="hindu" src=":/mapsforge/symbols/place_of_worship/hindu.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name"
position="above" stroke="#FFFFFF" stroke-width="2.0" symbol-id="hindu" />
</rule>
</rule>
<rule e="any" k="religion" v="jewish">
<symbol id="jewish" src=":/mapsforge/symbols/place_of_worship/jewish.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name"
position="above" stroke="#FFFFFF" stroke-width="2.0" symbol-id="jewish" />
</rule>
</rule>
<rule e="any" k="religion" v="muslim">
<symbol id="muslim" src=":/mapsforge/symbols/place_of_worship/islamic.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name"
position="above" stroke="#FFFFFF" stroke-width="2.0" symbol-id="muslim" />
</rule>
</rule>
<rule e="any" k="religion" v="shinto">
<symbol id="shinto" src=":/mapsforge/symbols/place_of_worship/shinto.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name"
position="above" stroke="#FFFFFF" stroke-width="2.0" symbol-id="shinto" />
</rule>
</rule>
<rule e="any" k="religion" v="~|*">
<symbol id="religion-unknown" src=":/mapsforge/symbols/place_of_worship/unknown.svg" />
<rule e="any" k="*" v="*" zoom-min="18">
<rule e="any" k="*" v="*" zoom-min="17">
<caption fill="#666666" font-size="12" font-style="bold" k="name"
position="above" stroke="#FFFFFF" stroke-width="2.0"
symbol-id="religion-unknown" />
@ -1409,15 +1413,15 @@
<!-- sports -->
<rule e="any" k="*" v="*">
<rule e="any" k="leisure" v="water_park" zoom-min="14">
<rule e="any" k="leisure" v="water_park" zoom-min="15">
<symbol src=":/mapsforge/symbols/sport/swimming_outdoor.svg" />
</rule>
<rule e="way" k="leisure" v="~" zoom-min="14">
<rule e="way" k="leisure" v="~" zoom-min="15">
<rule e="way" k="sport" v="swimming">
<symbol src=":/mapsforge/symbols/sport/swimming_outdoor.svg" />
</rule>
</rule>
<rule e="node" k="sport" v="swimming" zoom-min="14">
<rule e="node" k="sport" v="swimming" zoom-min="15">
<symbol src=":/mapsforge/symbols/sport/swimming_outdoor.svg" />
</rule>
<rule e="any" k="sport" v="soccer" zoom-min="16">

View File

@ -3,7 +3,7 @@ unix:!macx:!android {
} else {
TARGET = GPXSee
}
VERSION = 13.5
VERSION = 13.6
QT += core \

View File

@ -58,6 +58,9 @@
<!-- Common map stuff -->
<qresource prefix="/map">
<file alias="arrow.png">icons/map/arrow.png</file>
<file alias="arrow@2x.png">icons/map/arrow@2x.png</file>
<file alias="water-arrow.png">icons/map/water-arrow.png</file>
<file alias="water-arrow@2x.png">icons/map/water-arrow@2x.png</file>
</qresource>
<!-- POIs (IMG & ENC style) -->

BIN
icons/map/arrow@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

BIN
icons/map/water-arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

View File

@ -1320,7 +1320,7 @@
<message>
<location filename="../src/GUI/motioninfoitem.cpp" line="87"/>
<source>kn</source>
<translation>km</translation>
<translation>nus</translation>
</message>
<message>
<location filename="../src/GUI/motioninfoitem.cpp" line="90"/>

View File

@ -712,13 +712,13 @@
<location filename="../src/GUI/gui.cpp" line="907"/>
<location filename="../src/GUI/gui.cpp" line="925"/>
<source>CRS directory:</source>
<translation type="unfinished"></translation>
<translation>CRS-dosierujo:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="913"/>
<location filename="../src/GUI/gui.cpp" line="931"/>
<source>Symbols directory:</source>
<translation type="unfinished"></translation>
<translation>Dosierujo de simboloj:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="960"/>

View File

@ -425,7 +425,7 @@
<message>
<location filename="../src/GUI/gui.cpp" line="217"/>
<source>Open directory...</source>
<translation type="unfinished"></translation>
<translation>Avaa hakemisto</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
@ -878,7 +878,7 @@
<location filename="../src/GUI/gui.cpp" line="907"/>
<location filename="../src/GUI/gui.cpp" line="925"/>
<source>CRS directory:</source>
<translation type="unfinished"></translation>
<translation>CRS-hakemisto:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="915"/>

View File

@ -1019,6 +1019,7 @@
<source>%n files</source>
<translation>
<numerusform>%n fájl</numerusform>
<numerusform>%n fájl</numerusform>
</translation>
</message>
</context>

View File

@ -845,22 +845,22 @@
<message>
<location filename="../src/GUI/gui.cpp" line="882"/>
<source>Zoom in</source>
<translation>Forstørr</translation>
<translation>Zoom inn</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="884"/>
<source>Zoom out</source>
<translation>Forminsk</translation>
<translation>Zoom ut</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="886"/>
<source>Digital zoom</source>
<translation>Digital forstørrelse</translation>
<translation>Digital zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="887"/>
<source>Zoom</source>
<translation>Forstørr</translation>
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="888"/>
@ -1822,12 +1822,12 @@
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="662"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Det utskrevne området er omtrent det samme som visningsområdet. Kartforstørrelsesnivået endrer seg ikke.</translation>
<translation>Det utskrevne området er omtrent det samme som visningsområdet. Kartets zoomnivå endres ikke.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="664"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Forstørrelsesnivået vil endres slik at hele innholdet (spor/veipunkter) passer med utskrevet område, og kartoppløsningen er lik utskriftsoppløsningen som mulig.</translation>
<translation>Zoomnivået vil endres slik at hele innholdet (spor/veipunkter) passer med utskrevet område og kartoppløsningen er lik utskriftsoppløsningen som mulig.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="680"/>

View File

@ -878,7 +878,7 @@
<location filename="../src/GUI/gui.cpp" line="907"/>
<location filename="../src/GUI/gui.cpp" line="925"/>
<source>CRS directory:</source>
<translation type="unfinished"></translation>
<translation>Каталог CRS:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="915"/>
@ -1428,12 +1428,12 @@
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="70"/>
<source>Select the proper coordinate reference system (CRS) of maps without a CRS definition (JNX, KMZ and World file maps).</source>
<translation type="unfinished"></translation>
<translation>Выберите правильную систему координат (CRS) для карт без определения CRS (форматы JNX, KMZ и World file).</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="73"/>
<source>Select the desired projection of vector maps (IMG, Mapsforge and ENC maps). The projection must be valid for the whole map area.</source>
<translation type="unfinished"></translation>
<translation>Выберите нужную проекцию векторных карт (IMG, Mapsforge и ENC). Проекция должна быть действительна для всей области карты.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="77"/>

View File

@ -712,7 +712,7 @@
<location filename="../src/GUI/gui.cpp" line="907"/>
<location filename="../src/GUI/gui.cpp" line="925"/>
<source>CRS directory:</source>
<translation type="unfinished"></translation>
<translation>Каталог CRS:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="913"/>

View File

@ -37,7 +37,7 @@ Unicode true
; The name of the installer
Name "GPXSee"
; Program version
!define VERSION "13.5"
!define VERSION "13.6"
; The file to write
OutFile "GPXSee-${VERSION}_x64.exe"

View File

@ -218,18 +218,6 @@ quint32 DataStream::readTranslatedObjects(QList<TranslatedString> &objects)
}
static quint32 readFprsRecord(DataStream &stream)
{
RecordHeader rh;
quint16 s1;
quint8 rs, s2, s3, s4;
rs = stream.readRecordHeader(rh);
stream >> s1 >> s2 >> s3 >> s4;
return rs + 5;
}
static quint32 readFileDataRecord(DataStream &stream)
{
RecordHeader rh;
@ -771,12 +759,15 @@ bool GPIParser::readFileHeader(DataStream &stream, quint32 &ebs)
stream >> s5 >> s6 >> s7 >> s8 >> s9 >> s10;
stream.skipRawData(s10);
ds = sizeof(magic) + 10 + s10;
if (rh.flags & 8)
ds += readFprsRecord(stream);
ebs = (s8 & 0x4) ? s9 * 8 + 8 : 0;
if (stream.status() != QDataStream::Ok || ds != rh.size) {
if (ds > rh.size)
stream.setStatus(QDataStream::ReadCorruptData);
else if (ds < rh.size)
stream.skipRawData(rh.size - ds);
if (stream.status() != QDataStream::Ok) {
_errorString = "Invalid file header";
return false;
} else

View File

@ -18,6 +18,9 @@ using namespace IMG;
#define AREA(rect) \
(rect.size().width() * rect.size().height())
#define ROAD 0
#define WATER 1
static const QColor textColor(Qt::black);
static const QColor haloColor(Qt::white);
static const QColor shieldColor(Qt::white);
@ -25,12 +28,6 @@ static const QColor shieldBgColor1("#dd3e3e");
static const QColor shieldBgColor2("#379947");
static const QColor shieldBgColor3("#4a7fc1");
static const QImage *arrow()
{
static QImage img(":/map/arrow.png");
return &img;
}
static QFont pixelSizeFont(int pixelSize)
{
QFont f;
@ -308,17 +305,17 @@ void RasterTile::processPolygons(const QList<MapData::Poly> &polygons,
}
void RasterTile::processLines(QList<MapData::Poly> &lines,
QList<TextItem*> &textItems)
QList<TextItem*> &textItems, const QImage (&arrows)[2])
{
std::stable_sort(lines.begin(), lines.end());
if (_zoom >= 22)
processStreetNames(lines, textItems);
processStreetNames(lines, textItems, arrows);
processShields(lines, textItems);
}
void RasterTile::processStreetNames(const QList<MapData::Poly> &lines,
QList<TextItem*> &textItems)
QList<TextItem*> &textItems, const QImage (&arrows)[2])
{
for (int i = 0; i < lines.size(); i++) {
const MapData::Poly &poly = lines.at(i);
@ -326,18 +323,22 @@ void RasterTile::processStreetNames(const QList<MapData::Poly> &lines,
if (style.img().isNull() && style.foreground() == Qt::NoPen)
continue;
if (poly.label.text().isEmpty()
|| style.textFontSize() == Style::None)
continue;
const QFont *fnt = font(style.textFontSize(), Style::Small);
const QColor *color = style.textColor().isValid()
? &style.textColor() : 0;
const QColor *hColor = Style::isContourLine(poly.type) ? 0 : &haloColor;
const QImage *img = poly.oneway ? arrow() : 0;
const QImage *img = poly.oneway
? Style::isWaterLine(poly.type)
? &arrows[WATER] : &arrows[ROAD] : 0;
const QString *label = poly.label.text().isEmpty()
? 0 : &poly.label.text();
TextPathItem *item = new TextPathItem(poly.points,
&poly.label.text(), _rect, fnt, color, hColor, img);
if (!img && (!label || !fnt))
continue;
TextPathItem *item = new TextPathItem(poly.points, label, _rect, fnt,
color, hColor, img);
if (item->isValid() && !item->collides(textItems))
textItems.append(item);
else {
@ -479,6 +480,12 @@ void RasterTile::render()
QList<MapData::Poly> lines;
QList<MapData::Point> points;
QList<TextItem*> textItems;
QImage arrows[2];
arrows[ROAD] = (_ratio >= 2)
? QImage(":/map/arrow@2x.png") : QImage(":/map/arrow.png");
arrows[WATER] = (_ratio >= 2)
? QImage(":/map/water-arrow@2x.png") : QImage(":/map/water-arrow.png");
fetchData(polygons, lines, points);
ll2xy(polygons);
@ -487,7 +494,7 @@ void RasterTile::render()
processPoints(points, textItems);
processPolygons(polygons, textItems);
processLines(lines, textItems);
processLines(lines, textItems, arrows);
_pixmap.setDevicePixelRatio(_ratio);
_pixmap.fill(Qt::transparent);

View File

@ -44,14 +44,14 @@ private:
void processPolygons(const QList<MapData::Poly> &polygons,
QList<TextItem *> &textItems);
void processLines(QList<MapData::Poly> &lines,
QList<TextItem*> &textItems);
void processLines(QList<MapData::Poly> &lines, QList<TextItem*> &textItems,
const QImage (&arrows)[2]);
void processPoints(QList<MapData::Point> &points,
QList<TextItem*> &textItems);
void processShields(const QList<MapData::Poly> &lines,
QList<TextItem*> &textItems);
void processStreetNames(const QList<MapData::Poly> &lines,
QList<TextItem*> &textItems);
QList<TextItem*> &textItems, const QImage (&arrows)[2]);
Projection _proj;
Transform _transform;

View File

@ -104,6 +104,9 @@ public:
static bool isWaterArea(quint32 type)
{return ((type >= TYPE(0x3c) && type <= TYPE(0x44))
|| (type & 0xffff00) == TYPE(0x10b));}
static bool isWaterLine(quint32 type)
{return (type == TYPE(0x26) || type == TYPE(0x18)
|| type == TYPE(0x1f));}
static bool isMilitaryArea(quint32 type)
{return (type == TYPE(0x04) || type == 0x10901);}
static bool isNatureReserve(quint32 type)

View File

@ -14,13 +14,16 @@ namespace Mapsforge {
class RasterTile
{
public:
/* Mapsforge maps zoom levels are offset by one against the standard OSM
zoom levels! We decrease the zoom level internaly here when initializing
_zoom and return the propper/increased value back in zoom() */
RasterTile(const Projection &proj, const Transform &transform,
const Style *style, MapData *data, int zoom, const QRect &rect,
qreal ratio) : _proj(proj), _transform(transform), _style(style),
_data(data), _zoom(zoom), _rect(rect), _ratio(ratio),
_data(data), _zoom(zoom - 1), _rect(rect), _ratio(ratio),
_pixmap(rect.width() * ratio, rect.height() * ratio), _valid(false) {}
int zoom() const {return _zoom;}
int zoom() const {return _zoom + 1;}
QPoint xy() const {return _rect.topLeft();}
const QPixmap &pixmap() const {return _pixmap;}
bool isValid() const {return _valid;}

View File

@ -263,12 +263,15 @@ template<class T>
void TextPathItem::init(const T &line, const QRect &tileRect)
{
qreal cw, mw, textWidth;
bool label = _text && _font;
if (_text && _img) {
Q_ASSERT(label || _img);
if (label && _img) {
cw = _font->pixelSize() * CHAR_RATIO;
mw = _font->pixelSize() / 2.0;
textWidth = _text->size() * cw + _img->width() + PADDING;
} else if (_text) {
} else if (label) {
cw = _font->pixelSize() * CHAR_RATIO;
mw = _font->pixelSize() / 2.0;
textWidth = _text->size() * cw;
@ -328,7 +331,7 @@ void TextPathItem::paint(QPainter *painter) const
painter->restore();
}
if (_text) {
if (_text && _font) {
QFontMetrics fm(*_font);
int textWidth = fm.boundingRect(*_text).width();
int imgWidth = _img ? _img->width() + PADDING : 0;