mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-07-24 23:44:25 +02:00
Compare commits
30 Commits
13.5
...
092c56468c
Author | SHA1 | Date | |
---|---|---|---|
092c56468c | |||
d064cedbbe | |||
8ab728f81d | |||
6670dc32b5 | |||
61b51e5596 | |||
4bf81e020f | |||
4bcbce671d | |||
e07e109c7d | |||
e9609c5167 | |||
dcf45475ba | |||
6ce2a63a1c | |||
3e8b54f605 | |||
c6af082fa3 | |||
c644ea2170 | |||
04041a2d9c | |||
6a128c8eb4 | |||
1a08e50c3e | |||
dd0dec54df | |||
c03e24ce52 | |||
cbd2d99739 | |||
3e0b732a65 | |||
4b51d30e00 | |||
40c41b88e3 | |||
fcd02e4978 | |||
0f4bb95d57 | |||
2efac25629 | |||
2f74c4bbb6 | |||
66ba8268a3 | |||
e328321b19 | |||
8b20124533 |
@ -1,4 +1,4 @@
|
||||
version: 13.5.{build}
|
||||
version: 13.6.{build}
|
||||
|
||||
configuration:
|
||||
- Release
|
||||
|
8
.github/workflows/android.yml
vendored
8
.github/workflows/android.yml
vendored
@ -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
|
||||
|
@ -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">
|
||||
|
@ -3,7 +3,7 @@ unix:!macx:!android {
|
||||
} else {
|
||||
TARGET = GPXSee
|
||||
}
|
||||
VERSION = 13.5
|
||||
VERSION = 13.6
|
||||
|
||||
|
||||
QT += core \
|
||||
|
@ -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
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
BIN
icons/map/water-arrow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 181 B |
BIN
icons/map/water-arrow@2x.png
Normal file
BIN
icons/map/water-arrow@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 249 B |
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -1019,6 +1019,7 @@
|
||||
<source>%n files</source>
|
||||
<translation>
|
||||
<numerusform>%n fájl</numerusform>
|
||||
<numerusform>%n fájl</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -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 så 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 så lik utskriftsoppløsningen som mulig.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/optionsdialog.cpp" line="680"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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;}
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user