diff --git a/README.md b/README.md index 09f06857..d5b4e479 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,8 @@ GPXSee uses [Weblate](https://hosted.weblate.org/projects/gpxsee/translations/) GPXSee is licensed under GPL-3.0 (only). However, some 3rd party parts are using different, GPL compatible, licenses: * [Oxygen icons](icons/GUI) - LGPLv3 -* [Mapbox Maki icons](icons/POI) - CC0 +* [Mapbox Maki icons](icons/IMG) - CC0 +* [Map Icons Collection](icons/symbols) - CC BY SA 3.0 * [RTree implementation](src/common/rtree.h) - Public domain * [Albers](src/map/proj/albersequal.cpp), [Geocentric](src/map/geocentric.cpp), [LCC](src/map/proj/lambertconic.cpp), [Mercator](src/map/proj/mercator.cpp), [Polar Stereographic](src/map/proj/polarstereographic.cpp), diff --git a/gpxsee.pro b/gpxsee.pro index 1dcbf7e4..8abf28ec 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -33,6 +33,7 @@ HEADERS += src/common/config.h \ src/common/tifffile.h \ src/common/downloader.h \ src/common/polygon.h \ + src/common/color.h \ src/GUI/authenticationwidget.h \ src/GUI/axislabelitem.h \ src/GUI/dirselectwidget.h \ @@ -191,7 +192,6 @@ HEADERS += src/common/config.h \ src/map/osm.h \ src/map/rmap.h \ src/map/calibrationpoint.h \ - src/map/color.h \ src/map/textitem.h \ src/map/aqmmap.h \ src/map/mapsforgemap.h \ @@ -439,58 +439,17 @@ macx { ICON = icons/app/gpxsee.icns QMAKE_INFO_PLIST = pkg/Info.plist locale.path = Contents/Resources/translations - locale.files = lang/gpxsee_en.qm \ - lang/gpxsee_cs.qm \ - lang/gpxsee_de.qm \ - lang/gpxsee_fi.qm \ - lang/gpxsee_fr.qm \ - lang/gpxsee_ru.qm \ - lang/gpxsee_sv.qm \ - lang/gpxsee_pl.qm \ - lang/gpxsee_nb.qm \ - lang/gpxsee_da.qm \ - lang/gpxsee_tr.qm \ - lang/gpxsee_es.qm \ - lang/gpxsee_pt_BR.qm \ - lang/gpxsee_uk.qm \ - lang/gpxsee_hu.qm \ - lang/gpxsee_it.qm \ - lang/gpxsee_eo.qm \ - lang/gpxsee_zh.qm + locale.files = lang/*.qm csv.path = Contents/Resources csv.files = pkg/csv maps.path = Contents/Resources maps.files = pkg/maps + symbols.path = Contents/Resources/symbols + symbols.files = icons/symbols/*.png icons.path = Contents/Resources/icons - icons.files = icons/formats/gpx.icns \ - icons/formats/tcx.icns \ - icons/formats/kml.icns \ - icons/formats/fit.icns \ - icons/formats/igc.icns \ - icons/formats/nmea.icns \ - icons/formats/plt.icns \ - icons/formats/rte.icns \ - icons/formats/wpt.icns \ - icons/formats/loc.icns \ - icons/formats/slf.icns \ - icons/formats/json.icns \ - icons/formats/cup.icns \ - icons/formats/gpi.icns \ - icons/formats/sml.icns \ - icons/formats/img.icns \ - icons/formats/jnx.icns \ - icons/formats/kap.icns \ - icons/formats/mbts.icns \ - icons/formats/rmap.icns \ - icons/formats/tba.icns \ - icons/formats/aqm.icns \ - icons/formats/sqlt.icns \ - icons/formats/ov2.icns \ - icons/formats/itn.icns \ - icons/formats/wld.icns \ - icons/formats/omd.icns \ - icons/formats/ghp.icns - QMAKE_BUNDLE_DATA += locale maps icons csv + icons.files = icons/formats/*.icns + + QMAKE_BUNDLE_DATA += locale maps symbols icons csv } win32 { @@ -535,6 +494,8 @@ unix:!macx { maps.path = $$PREFIX/share/gpxsee/maps csv.files = pkg/csv/* csv.path = $$PREFIX/share/gpxsee/csv + symbols.files = icons/symbols/*.png + symbols.path = $$PREFIX/share/gpxsee/symbols locale.files = lang/*.qm locale.path = $$PREFIX/share/gpxsee/translations icon.files = icons/app/hicolor/* @@ -544,5 +505,5 @@ unix:!macx { mime.files = pkg/gpxsee.xml mime.path = $$PREFIX/share/mime/packages target.path = $$PREFIX/bin - INSTALLS += target maps csv locale icon desktop mime + INSTALLS += target maps csv symbols locale icon desktop mime } diff --git a/gpxsee.qrc b/gpxsee.qrc index f53ff4e6..e6fa24fa 100644 --- a/gpxsee.qrc +++ b/gpxsee.qrc @@ -51,85 +51,85 @@ icons/GUI/document-encrypt.png - - - icons/POI/airfield-11.png - icons/POI/airport-11.png - icons/POI/amusement-park-11.png - icons/POI/bakery-11.png - icons/POI/bank-11.png - icons/POI/bar-11.png - icons/POI/bbq-11.png - icons/POI/beach-11.png - icons/POI/bowling-alley-11.png - icons/POI/building-alt1-11.png - icons/POI/bridge-11.png - icons/POI/bus-11.png - icons/POI/cafe-11.png - icons/POI/campsite-11.png - icons/POI/car-11.png - icons/POI/car-rental-11.png - icons/POI/car-repair-11.png - icons/POI/casino-11.png - icons/POI/cemetery-11.png - icons/POI/cinema-11.png - icons/POI/clothing-store-11.png - icons/POI/communications-tower-11.png - icons/POI/convenience-11.png - icons/POI/dam-11.png - icons/POI/danger-11.png - icons/POI/drinking-water-11.png - icons/POI/fast-food-11.png - icons/POI/entrance-alt1-11.png - icons/POI/fire-station-11.png - icons/POI/fitness-centre-11.png - icons/POI/fuel-11.png - icons/POI/furniture-11.png - icons/POI/garden-11.png - icons/POI/garden-centre-11.png - icons/POI/golf-11.png - icons/POI/grocery-11.png - icons/POI/hairdresser-11.png - icons/POI/harbor-11.png - icons/POI/hardware-11.png - icons/POI/heliport-11.png - icons/POI/hospital-11.png - icons/POI/information-11.png - icons/POI/landmark-11.png - icons/POI/library-11.png - icons/POI/lodging-11.png - icons/POI/mountain-11.png - icons/POI/museum-11.png - icons/POI/park-11.png - icons/POI/parking-11.png - icons/POI/pharmacy-11.png - icons/POI/picnic-site-11.png - icons/POI/place-of-worship-11.png - icons/POI/police-11.png - icons/POI/post-11.png - icons/POI/religious-christian-11.png - icons/POI/religious-jewish-11.png - icons/POI/religious-muslim-11.png - icons/POI/restaurant-11.png - icons/POI/restaurant-noodle-11.png - icons/POI/restaurant-pizza-11.png - icons/POI/restaurant-seafood-11.png - icons/POI/roadblock-11.png - icons/POI/school-11.png - icons/POI/shelter-11.png - icons/POI/shop-11.png - icons/POI/skiing-11.png - icons/POI/soccer-11.png - icons/POI/swimming-11.png - icons/POI/theatre-11.png - icons/POI/telephone-11.png - icons/POI/toilet-11.png - icons/POI/town-hall-11.png - icons/POI/viewpoint-11.png - icons/POI/village-11.png - icons/POI/waterfall-11.png - icons/POI/wetland-11.png - icons/POI/zoo-11.png + + + icons/IMG/airfield-11.png + icons/IMG/airport-11.png + icons/IMG/amusement-park-11.png + icons/IMG/bakery-11.png + icons/IMG/bank-11.png + icons/IMG/bar-11.png + icons/IMG/bbq-11.png + icons/IMG/beach-11.png + icons/IMG/bowling-alley-11.png + icons/IMG/building-alt1-11.png + icons/IMG/bridge-11.png + icons/IMG/bus-11.png + icons/IMG/cafe-11.png + icons/IMG/campsite-11.png + icons/IMG/car-11.png + icons/IMG/car-rental-11.png + icons/IMG/car-repair-11.png + icons/IMG/casino-11.png + icons/IMG/cemetery-11.png + icons/IMG/cinema-11.png + icons/IMG/clothing-store-11.png + icons/IMG/communications-tower-11.png + icons/IMG/convenience-11.png + icons/IMG/dam-11.png + icons/IMG/danger-11.png + icons/IMG/drinking-water-11.png + icons/IMG/fast-food-11.png + icons/IMG/entrance-alt1-11.png + icons/IMG/fire-station-11.png + icons/IMG/fitness-centre-11.png + icons/IMG/fuel-11.png + icons/IMG/furniture-11.png + icons/IMG/garden-11.png + icons/IMG/garden-centre-11.png + icons/IMG/golf-11.png + icons/IMG/grocery-11.png + icons/IMG/hairdresser-11.png + icons/IMG/harbor-11.png + icons/IMG/hardware-11.png + icons/IMG/heliport-11.png + icons/IMG/hospital-11.png + icons/IMG/information-11.png + icons/IMG/landmark-11.png + icons/IMG/library-11.png + icons/IMG/lodging-11.png + icons/IMG/mountain-11.png + icons/IMG/museum-11.png + icons/IMG/park-11.png + icons/IMG/parking-11.png + icons/IMG/pharmacy-11.png + icons/IMG/picnic-site-11.png + icons/IMG/place-of-worship-11.png + icons/IMG/police-11.png + icons/IMG/post-11.png + icons/IMG/religious-christian-11.png + icons/IMG/religious-jewish-11.png + icons/IMG/religious-muslim-11.png + icons/IMG/restaurant-11.png + icons/IMG/restaurant-noodle-11.png + icons/IMG/restaurant-pizza-11.png + icons/IMG/restaurant-seafood-11.png + icons/IMG/roadblock-11.png + icons/IMG/school-11.png + icons/IMG/shelter-11.png + icons/IMG/shop-11.png + icons/IMG/skiing-11.png + icons/IMG/soccer-11.png + icons/IMG/swimming-11.png + icons/IMG/theatre-11.png + icons/IMG/telephone-11.png + icons/IMG/toilet-11.png + icons/IMG/town-hall-11.png + icons/IMG/viewpoint-11.png + icons/IMG/village-11.png + icons/IMG/waterfall-11.png + icons/IMG/wetland-11.png + icons/IMG/zoo-11.png diff --git a/icons/POI/airfield-11.png b/icons/IMG/airfield-11.png similarity index 100% rename from icons/POI/airfield-11.png rename to icons/IMG/airfield-11.png diff --git a/icons/POI/airport-11.png b/icons/IMG/airport-11.png similarity index 100% rename from icons/POI/airport-11.png rename to icons/IMG/airport-11.png diff --git a/icons/POI/amusement-park-11.png b/icons/IMG/amusement-park-11.png similarity index 100% rename from icons/POI/amusement-park-11.png rename to icons/IMG/amusement-park-11.png diff --git a/icons/POI/bakery-11.png b/icons/IMG/bakery-11.png similarity index 100% rename from icons/POI/bakery-11.png rename to icons/IMG/bakery-11.png diff --git a/icons/POI/bank-11.png b/icons/IMG/bank-11.png similarity index 100% rename from icons/POI/bank-11.png rename to icons/IMG/bank-11.png diff --git a/icons/POI/bar-11.png b/icons/IMG/bar-11.png similarity index 100% rename from icons/POI/bar-11.png rename to icons/IMG/bar-11.png diff --git a/icons/POI/bbq-11.png b/icons/IMG/bbq-11.png similarity index 100% rename from icons/POI/bbq-11.png rename to icons/IMG/bbq-11.png diff --git a/icons/POI/beach-11.png b/icons/IMG/beach-11.png similarity index 100% rename from icons/POI/beach-11.png rename to icons/IMG/beach-11.png diff --git a/icons/POI/bowling-alley-11.png b/icons/IMG/bowling-alley-11.png similarity index 100% rename from icons/POI/bowling-alley-11.png rename to icons/IMG/bowling-alley-11.png diff --git a/icons/POI/bridge-11.png b/icons/IMG/bridge-11.png similarity index 100% rename from icons/POI/bridge-11.png rename to icons/IMG/bridge-11.png diff --git a/icons/POI/building-alt1-11.png b/icons/IMG/building-alt1-11.png similarity index 100% rename from icons/POI/building-alt1-11.png rename to icons/IMG/building-alt1-11.png diff --git a/icons/POI/bus-11.png b/icons/IMG/bus-11.png similarity index 100% rename from icons/POI/bus-11.png rename to icons/IMG/bus-11.png diff --git a/icons/POI/cafe-11.png b/icons/IMG/cafe-11.png similarity index 100% rename from icons/POI/cafe-11.png rename to icons/IMG/cafe-11.png diff --git a/icons/POI/campsite-11.png b/icons/IMG/campsite-11.png similarity index 100% rename from icons/POI/campsite-11.png rename to icons/IMG/campsite-11.png diff --git a/icons/POI/car-11.png b/icons/IMG/car-11.png similarity index 100% rename from icons/POI/car-11.png rename to icons/IMG/car-11.png diff --git a/icons/POI/car-rental-11.png b/icons/IMG/car-rental-11.png similarity index 100% rename from icons/POI/car-rental-11.png rename to icons/IMG/car-rental-11.png diff --git a/icons/POI/car-repair-11.png b/icons/IMG/car-repair-11.png similarity index 100% rename from icons/POI/car-repair-11.png rename to icons/IMG/car-repair-11.png diff --git a/icons/POI/casino-11.png b/icons/IMG/casino-11.png similarity index 100% rename from icons/POI/casino-11.png rename to icons/IMG/casino-11.png diff --git a/icons/POI/cemetery-11.png b/icons/IMG/cemetery-11.png similarity index 100% rename from icons/POI/cemetery-11.png rename to icons/IMG/cemetery-11.png diff --git a/icons/POI/cinema-11.png b/icons/IMG/cinema-11.png similarity index 100% rename from icons/POI/cinema-11.png rename to icons/IMG/cinema-11.png diff --git a/icons/POI/clothing-store-11.png b/icons/IMG/clothing-store-11.png similarity index 100% rename from icons/POI/clothing-store-11.png rename to icons/IMG/clothing-store-11.png diff --git a/icons/POI/communications-tower-11.png b/icons/IMG/communications-tower-11.png similarity index 100% rename from icons/POI/communications-tower-11.png rename to icons/IMG/communications-tower-11.png diff --git a/icons/POI/convenience-11.png b/icons/IMG/convenience-11.png similarity index 100% rename from icons/POI/convenience-11.png rename to icons/IMG/convenience-11.png diff --git a/icons/POI/dam-11.png b/icons/IMG/dam-11.png similarity index 100% rename from icons/POI/dam-11.png rename to icons/IMG/dam-11.png diff --git a/icons/POI/danger-11.png b/icons/IMG/danger-11.png similarity index 100% rename from icons/POI/danger-11.png rename to icons/IMG/danger-11.png diff --git a/icons/POI/drinking-water-11.png b/icons/IMG/drinking-water-11.png similarity index 100% rename from icons/POI/drinking-water-11.png rename to icons/IMG/drinking-water-11.png diff --git a/icons/POI/entrance-alt1-11.png b/icons/IMG/entrance-alt1-11.png similarity index 100% rename from icons/POI/entrance-alt1-11.png rename to icons/IMG/entrance-alt1-11.png diff --git a/icons/POI/fast-food-11.png b/icons/IMG/fast-food-11.png similarity index 100% rename from icons/POI/fast-food-11.png rename to icons/IMG/fast-food-11.png diff --git a/icons/POI/fire-station-11.png b/icons/IMG/fire-station-11.png similarity index 100% rename from icons/POI/fire-station-11.png rename to icons/IMG/fire-station-11.png diff --git a/icons/POI/fitness-centre-11.png b/icons/IMG/fitness-centre-11.png similarity index 100% rename from icons/POI/fitness-centre-11.png rename to icons/IMG/fitness-centre-11.png diff --git a/icons/POI/fuel-11.png b/icons/IMG/fuel-11.png similarity index 100% rename from icons/POI/fuel-11.png rename to icons/IMG/fuel-11.png diff --git a/icons/POI/furniture-11.png b/icons/IMG/furniture-11.png similarity index 100% rename from icons/POI/furniture-11.png rename to icons/IMG/furniture-11.png diff --git a/icons/POI/garden-11.png b/icons/IMG/garden-11.png similarity index 100% rename from icons/POI/garden-11.png rename to icons/IMG/garden-11.png diff --git a/icons/POI/garden-centre-11.png b/icons/IMG/garden-centre-11.png similarity index 100% rename from icons/POI/garden-centre-11.png rename to icons/IMG/garden-centre-11.png diff --git a/icons/POI/golf-11.png b/icons/IMG/golf-11.png similarity index 100% rename from icons/POI/golf-11.png rename to icons/IMG/golf-11.png diff --git a/icons/POI/grocery-11.png b/icons/IMG/grocery-11.png similarity index 100% rename from icons/POI/grocery-11.png rename to icons/IMG/grocery-11.png diff --git a/icons/POI/hairdresser-11.png b/icons/IMG/hairdresser-11.png similarity index 100% rename from icons/POI/hairdresser-11.png rename to icons/IMG/hairdresser-11.png diff --git a/icons/POI/harbor-11.png b/icons/IMG/harbor-11.png similarity index 100% rename from icons/POI/harbor-11.png rename to icons/IMG/harbor-11.png diff --git a/icons/POI/hardware-11.png b/icons/IMG/hardware-11.png similarity index 100% rename from icons/POI/hardware-11.png rename to icons/IMG/hardware-11.png diff --git a/icons/POI/heliport-11.png b/icons/IMG/heliport-11.png similarity index 100% rename from icons/POI/heliport-11.png rename to icons/IMG/heliport-11.png diff --git a/icons/POI/hospital-11.png b/icons/IMG/hospital-11.png similarity index 100% rename from icons/POI/hospital-11.png rename to icons/IMG/hospital-11.png diff --git a/icons/POI/information-11.png b/icons/IMG/information-11.png similarity index 100% rename from icons/POI/information-11.png rename to icons/IMG/information-11.png diff --git a/icons/POI/landmark-11.png b/icons/IMG/landmark-11.png similarity index 100% rename from icons/POI/landmark-11.png rename to icons/IMG/landmark-11.png diff --git a/icons/POI/library-11.png b/icons/IMG/library-11.png similarity index 100% rename from icons/POI/library-11.png rename to icons/IMG/library-11.png diff --git a/icons/POI/licence.txt b/icons/IMG/licence.txt similarity index 98% rename from icons/POI/licence.txt rename to icons/IMG/licence.txt index 73caf1b7..79b151f0 100644 --- a/icons/POI/licence.txt +++ b/icons/IMG/licence.txt @@ -1,4 +1,4 @@ -The POI icons are Mapbox Maki icons (https://labs.mapbox.com/maki-icons/) +The IMG style icons are Mapbox Maki icons (https://labs.mapbox.com/maki-icons/) licensed under CC0. ----- diff --git a/icons/POI/lodging-11.png b/icons/IMG/lodging-11.png similarity index 100% rename from icons/POI/lodging-11.png rename to icons/IMG/lodging-11.png diff --git a/icons/POI/mountain-11.png b/icons/IMG/mountain-11.png similarity index 100% rename from icons/POI/mountain-11.png rename to icons/IMG/mountain-11.png diff --git a/icons/POI/museum-11.png b/icons/IMG/museum-11.png similarity index 100% rename from icons/POI/museum-11.png rename to icons/IMG/museum-11.png diff --git a/icons/POI/park-11.png b/icons/IMG/park-11.png similarity index 100% rename from icons/POI/park-11.png rename to icons/IMG/park-11.png diff --git a/icons/POI/parking-11.png b/icons/IMG/parking-11.png similarity index 100% rename from icons/POI/parking-11.png rename to icons/IMG/parking-11.png diff --git a/icons/POI/pharmacy-11.png b/icons/IMG/pharmacy-11.png similarity index 100% rename from icons/POI/pharmacy-11.png rename to icons/IMG/pharmacy-11.png diff --git a/icons/POI/picnic-site-11.png b/icons/IMG/picnic-site-11.png similarity index 100% rename from icons/POI/picnic-site-11.png rename to icons/IMG/picnic-site-11.png diff --git a/icons/POI/place-of-worship-11.png b/icons/IMG/place-of-worship-11.png similarity index 100% rename from icons/POI/place-of-worship-11.png rename to icons/IMG/place-of-worship-11.png diff --git a/icons/POI/police-11.png b/icons/IMG/police-11.png similarity index 100% rename from icons/POI/police-11.png rename to icons/IMG/police-11.png diff --git a/icons/POI/post-11.png b/icons/IMG/post-11.png similarity index 100% rename from icons/POI/post-11.png rename to icons/IMG/post-11.png diff --git a/icons/POI/religious-christian-11.png b/icons/IMG/religious-christian-11.png similarity index 100% rename from icons/POI/religious-christian-11.png rename to icons/IMG/religious-christian-11.png diff --git a/icons/POI/religious-jewish-11.png b/icons/IMG/religious-jewish-11.png similarity index 100% rename from icons/POI/religious-jewish-11.png rename to icons/IMG/religious-jewish-11.png diff --git a/icons/POI/religious-muslim-11.png b/icons/IMG/religious-muslim-11.png similarity index 100% rename from icons/POI/religious-muslim-11.png rename to icons/IMG/religious-muslim-11.png diff --git a/icons/POI/restaurant-11.png b/icons/IMG/restaurant-11.png similarity index 100% rename from icons/POI/restaurant-11.png rename to icons/IMG/restaurant-11.png diff --git a/icons/POI/restaurant-noodle-11.png b/icons/IMG/restaurant-noodle-11.png similarity index 100% rename from icons/POI/restaurant-noodle-11.png rename to icons/IMG/restaurant-noodle-11.png diff --git a/icons/POI/restaurant-pizza-11.png b/icons/IMG/restaurant-pizza-11.png similarity index 100% rename from icons/POI/restaurant-pizza-11.png rename to icons/IMG/restaurant-pizza-11.png diff --git a/icons/POI/restaurant-seafood-11.png b/icons/IMG/restaurant-seafood-11.png similarity index 100% rename from icons/POI/restaurant-seafood-11.png rename to icons/IMG/restaurant-seafood-11.png diff --git a/icons/POI/roadblock-11.png b/icons/IMG/roadblock-11.png similarity index 100% rename from icons/POI/roadblock-11.png rename to icons/IMG/roadblock-11.png diff --git a/icons/POI/school-11.png b/icons/IMG/school-11.png similarity index 100% rename from icons/POI/school-11.png rename to icons/IMG/school-11.png diff --git a/icons/POI/shelter-11.png b/icons/IMG/shelter-11.png similarity index 100% rename from icons/POI/shelter-11.png rename to icons/IMG/shelter-11.png diff --git a/icons/POI/shop-11.png b/icons/IMG/shop-11.png similarity index 100% rename from icons/POI/shop-11.png rename to icons/IMG/shop-11.png diff --git a/icons/POI/skiing-11.png b/icons/IMG/skiing-11.png similarity index 100% rename from icons/POI/skiing-11.png rename to icons/IMG/skiing-11.png diff --git a/icons/POI/soccer-11.png b/icons/IMG/soccer-11.png similarity index 100% rename from icons/POI/soccer-11.png rename to icons/IMG/soccer-11.png diff --git a/icons/POI/swimming-11.png b/icons/IMG/swimming-11.png similarity index 100% rename from icons/POI/swimming-11.png rename to icons/IMG/swimming-11.png diff --git a/icons/POI/telephone-11.png b/icons/IMG/telephone-11.png similarity index 100% rename from icons/POI/telephone-11.png rename to icons/IMG/telephone-11.png diff --git a/icons/POI/theatre-11.png b/icons/IMG/theatre-11.png similarity index 100% rename from icons/POI/theatre-11.png rename to icons/IMG/theatre-11.png diff --git a/icons/POI/toilet-11.png b/icons/IMG/toilet-11.png similarity index 100% rename from icons/POI/toilet-11.png rename to icons/IMG/toilet-11.png diff --git a/icons/POI/town-hall-11.png b/icons/IMG/town-hall-11.png similarity index 100% rename from icons/POI/town-hall-11.png rename to icons/IMG/town-hall-11.png diff --git a/icons/POI/viewpoint-11.png b/icons/IMG/viewpoint-11.png similarity index 100% rename from icons/POI/viewpoint-11.png rename to icons/IMG/viewpoint-11.png diff --git a/icons/POI/village-11.png b/icons/IMG/village-11.png similarity index 100% rename from icons/POI/village-11.png rename to icons/IMG/village-11.png diff --git a/icons/POI/waterfall-11.png b/icons/IMG/waterfall-11.png similarity index 100% rename from icons/POI/waterfall-11.png rename to icons/IMG/waterfall-11.png diff --git a/icons/POI/wetland-11.png b/icons/IMG/wetland-11.png similarity index 100% rename from icons/POI/wetland-11.png rename to icons/IMG/wetland-11.png diff --git a/icons/POI/zoo-11.png b/icons/IMG/zoo-11.png similarity index 100% rename from icons/POI/zoo-11.png rename to icons/IMG/zoo-11.png diff --git a/icons/symbols/ATV.png b/icons/symbols/ATV.png new file mode 100644 index 00000000..ada669e4 Binary files /dev/null and b/icons/symbols/ATV.png differ diff --git a/icons/symbols/Airport.png b/icons/symbols/Airport.png new file mode 100644 index 00000000..c59bfc40 Binary files /dev/null and b/icons/symbols/Airport.png differ diff --git a/icons/symbols/Amusement Park.png b/icons/symbols/Amusement Park.png new file mode 100644 index 00000000..341c75a7 Binary files /dev/null and b/icons/symbols/Amusement Park.png differ diff --git a/icons/symbols/Anchor.png b/icons/symbols/Anchor.png new file mode 100644 index 00000000..f2eb8696 Binary files /dev/null and b/icons/symbols/Anchor.png differ diff --git a/icons/symbols/Ballpark.png b/icons/symbols/Ballpark.png new file mode 100644 index 00000000..a7c2fb06 Binary files /dev/null and b/icons/symbols/Ballpark.png differ diff --git a/icons/symbols/Bank.png b/icons/symbols/Bank.png new file mode 100644 index 00000000..72535ced Binary files /dev/null and b/icons/symbols/Bank.png differ diff --git a/icons/symbols/Bar.png b/icons/symbols/Bar.png new file mode 100644 index 00000000..7ed861ac Binary files /dev/null and b/icons/symbols/Bar.png differ diff --git a/icons/symbols/Beach.png b/icons/symbols/Beach.png new file mode 100644 index 00000000..c6caaabe Binary files /dev/null and b/icons/symbols/Beach.png differ diff --git a/icons/symbols/Big Game.png b/icons/symbols/Big Game.png new file mode 100644 index 00000000..e3803fb7 Binary files /dev/null and b/icons/symbols/Big Game.png differ diff --git a/icons/symbols/Bike Trail.png b/icons/symbols/Bike Trail.png new file mode 100644 index 00000000..42a3ad99 Binary files /dev/null and b/icons/symbols/Bike Trail.png differ diff --git a/icons/symbols/Boat Ramp.png b/icons/symbols/Boat Ramp.png new file mode 100644 index 00000000..7b0a22df Binary files /dev/null and b/icons/symbols/Boat Ramp.png differ diff --git a/icons/symbols/Bowling.png b/icons/symbols/Bowling.png new file mode 100644 index 00000000..eebaede4 Binary files /dev/null and b/icons/symbols/Bowling.png differ diff --git a/icons/symbols/Bridge.png b/icons/symbols/Bridge.png new file mode 100644 index 00000000..03ee8b95 Binary files /dev/null and b/icons/symbols/Bridge.png differ diff --git a/icons/symbols/Building.png b/icons/symbols/Building.png new file mode 100644 index 00000000..f2d5f3b9 Binary files /dev/null and b/icons/symbols/Building.png differ diff --git a/icons/symbols/Campground.png b/icons/symbols/Campground.png new file mode 100644 index 00000000..de24a001 Binary files /dev/null and b/icons/symbols/Campground.png differ diff --git a/icons/symbols/Car Rental.png b/icons/symbols/Car Rental.png new file mode 100644 index 00000000..aa4657ff Binary files /dev/null and b/icons/symbols/Car Rental.png differ diff --git a/icons/symbols/Car Repair.png b/icons/symbols/Car Repair.png new file mode 100644 index 00000000..07e96d55 Binary files /dev/null and b/icons/symbols/Car Repair.png differ diff --git a/icons/symbols/Car.png b/icons/symbols/Car.png new file mode 100644 index 00000000..fbf3e2d5 Binary files /dev/null and b/icons/symbols/Car.png differ diff --git a/icons/symbols/Cemetary.png b/icons/symbols/Cemetary.png new file mode 100644 index 00000000..007ed2b4 Binary files /dev/null and b/icons/symbols/Cemetary.png differ diff --git a/icons/symbols/Church.png b/icons/symbols/Church.png new file mode 100644 index 00000000..d4262da1 Binary files /dev/null and b/icons/symbols/Church.png differ diff --git a/icons/symbols/Crossing.png b/icons/symbols/Crossing.png new file mode 100644 index 00000000..fa1164d6 Binary files /dev/null and b/icons/symbols/Crossing.png differ diff --git a/icons/symbols/Dam.png b/icons/symbols/Dam.png new file mode 100644 index 00000000..b5942345 Binary files /dev/null and b/icons/symbols/Dam.png differ diff --git a/icons/symbols/Drinking Water.png b/icons/symbols/Drinking Water.png new file mode 100644 index 00000000..c0347bed Binary files /dev/null and b/icons/symbols/Drinking Water.png differ diff --git a/icons/symbols/Fastfood.png b/icons/symbols/Fastfood.png new file mode 100644 index 00000000..f8b1d860 Binary files /dev/null and b/icons/symbols/Fastfood.png differ diff --git a/icons/symbols/Fishing Area.png b/icons/symbols/Fishing Area.png new file mode 100644 index 00000000..39718f0c Binary files /dev/null and b/icons/symbols/Fishing Area.png differ diff --git a/icons/symbols/Forest.png b/icons/symbols/Forest.png new file mode 100644 index 00000000..048f9b0f Binary files /dev/null and b/icons/symbols/Forest.png differ diff --git a/icons/symbols/Furbearer.png b/icons/symbols/Furbearer.png new file mode 100644 index 00000000..b3410b37 Binary files /dev/null and b/icons/symbols/Furbearer.png differ diff --git a/icons/symbols/Gas Station.png b/icons/symbols/Gas Station.png new file mode 100644 index 00000000..85e69247 Binary files /dev/null and b/icons/symbols/Gas Station.png differ diff --git a/icons/symbols/Ghost Town.png b/icons/symbols/Ghost Town.png new file mode 100644 index 00000000..3af19157 Binary files /dev/null and b/icons/symbols/Ghost Town.png differ diff --git a/icons/symbols/Golf Course.png b/icons/symbols/Golf Course.png new file mode 100644 index 00000000..b5adf473 Binary files /dev/null and b/icons/symbols/Golf Course.png differ diff --git a/icons/symbols/Ground Transportation.png b/icons/symbols/Ground Transportation.png new file mode 100644 index 00000000..4ef4ac4e Binary files /dev/null and b/icons/symbols/Ground Transportation.png differ diff --git a/icons/symbols/Heliport.png b/icons/symbols/Heliport.png new file mode 100644 index 00000000..a2756dda Binary files /dev/null and b/icons/symbols/Heliport.png differ diff --git a/icons/symbols/Hunting Area.png b/icons/symbols/Hunting Area.png new file mode 100644 index 00000000..91053458 Binary files /dev/null and b/icons/symbols/Hunting Area.png differ diff --git a/icons/symbols/Iceskating.png b/icons/symbols/Iceskating.png new file mode 100644 index 00000000..55894baa Binary files /dev/null and b/icons/symbols/Iceskating.png differ diff --git a/icons/symbols/Information.png b/icons/symbols/Information.png new file mode 100644 index 00000000..0578db8a Binary files /dev/null and b/icons/symbols/Information.png differ diff --git a/icons/symbols/Library.png b/icons/symbols/Library.png new file mode 100644 index 00000000..95c0f5d4 Binary files /dev/null and b/icons/symbols/Library.png differ diff --git a/icons/symbols/Live Theater.png b/icons/symbols/Live Theater.png new file mode 100644 index 00000000..83ffa65f Binary files /dev/null and b/icons/symbols/Live Theater.png differ diff --git a/icons/symbols/Lodging.png b/icons/symbols/Lodging.png new file mode 100644 index 00000000..8281131e Binary files /dev/null and b/icons/symbols/Lodging.png differ diff --git a/icons/symbols/Marina.png b/icons/symbols/Marina.png new file mode 100644 index 00000000..b2a9286e Binary files /dev/null and b/icons/symbols/Marina.png differ diff --git a/icons/symbols/Medical Facility.png b/icons/symbols/Medical Facility.png new file mode 100644 index 00000000..ca7709cf Binary files /dev/null and b/icons/symbols/Medical Facility.png differ diff --git a/icons/symbols/Military.png b/icons/symbols/Military.png new file mode 100644 index 00000000..a0ff7915 Binary files /dev/null and b/icons/symbols/Military.png differ diff --git a/icons/symbols/Mine.png b/icons/symbols/Mine.png new file mode 100644 index 00000000..a60a1608 Binary files /dev/null and b/icons/symbols/Mine.png differ diff --git a/icons/symbols/Movie Theater.png b/icons/symbols/Movie Theater.png new file mode 100644 index 00000000..43c89a6a Binary files /dev/null and b/icons/symbols/Movie Theater.png differ diff --git a/icons/symbols/Museum.png b/icons/symbols/Museum.png new file mode 100644 index 00000000..921b4a81 Binary files /dev/null and b/icons/symbols/Museum.png differ diff --git a/icons/symbols/Oil Field.png b/icons/symbols/Oil Field.png new file mode 100644 index 00000000..b2677f3d Binary files /dev/null and b/icons/symbols/Oil Field.png differ diff --git a/icons/symbols/Parachute Area.png b/icons/symbols/Parachute Area.png new file mode 100644 index 00000000..0abea756 Binary files /dev/null and b/icons/symbols/Parachute Area.png differ diff --git a/icons/symbols/Park.png b/icons/symbols/Park.png new file mode 100644 index 00000000..83a252d9 Binary files /dev/null and b/icons/symbols/Park.png differ diff --git a/icons/symbols/Parking Area.png b/icons/symbols/Parking Area.png new file mode 100644 index 00000000..43394077 Binary files /dev/null and b/icons/symbols/Parking Area.png differ diff --git a/icons/symbols/Pharmacy.png b/icons/symbols/Pharmacy.png new file mode 100644 index 00000000..ebc93033 Binary files /dev/null and b/icons/symbols/Pharmacy.png differ diff --git a/icons/symbols/Picnic Area.png b/icons/symbols/Picnic Area.png new file mode 100644 index 00000000..2663f6bc Binary files /dev/null and b/icons/symbols/Picnic Area.png differ diff --git a/icons/symbols/Police Station.png b/icons/symbols/Police Station.png new file mode 100644 index 00000000..ebc3b50e Binary files /dev/null and b/icons/symbols/Police Station.png differ diff --git a/icons/symbols/Post Office.png b/icons/symbols/Post Office.png new file mode 100644 index 00000000..6b769881 Binary files /dev/null and b/icons/symbols/Post Office.png differ diff --git a/icons/symbols/RV Park.png b/icons/symbols/RV Park.png new file mode 100644 index 00000000..273503b0 Binary files /dev/null and b/icons/symbols/RV Park.png differ diff --git a/icons/symbols/Radio Beacon.png b/icons/symbols/Radio Beacon.png new file mode 100644 index 00000000..193f1386 Binary files /dev/null and b/icons/symbols/Radio Beacon.png differ diff --git a/icons/symbols/Residence.png b/icons/symbols/Residence.png new file mode 100644 index 00000000..93385c1a Binary files /dev/null and b/icons/symbols/Residence.png differ diff --git a/icons/symbols/Restaurant.png b/icons/symbols/Restaurant.png new file mode 100644 index 00000000..060a2674 Binary files /dev/null and b/icons/symbols/Restaurant.png differ diff --git a/icons/symbols/Restroom.png b/icons/symbols/Restroom.png new file mode 100644 index 00000000..4ab916fe Binary files /dev/null and b/icons/symbols/Restroom.png differ diff --git a/icons/symbols/Scenic Area.png b/icons/symbols/Scenic Area.png new file mode 100644 index 00000000..4fe02721 Binary files /dev/null and b/icons/symbols/Scenic Area.png differ diff --git a/icons/symbols/School.png b/icons/symbols/School.png new file mode 100644 index 00000000..ae122593 Binary files /dev/null and b/icons/symbols/School.png differ diff --git a/icons/symbols/Shipwreck.png b/icons/symbols/Shipwreck.png new file mode 100644 index 00000000..71284726 Binary files /dev/null and b/icons/symbols/Shipwreck.png differ diff --git a/icons/symbols/Shopping Center.png b/icons/symbols/Shopping Center.png new file mode 100644 index 00000000..e3a4faf7 Binary files /dev/null and b/icons/symbols/Shopping Center.png differ diff --git a/icons/symbols/Ski Resort.png b/icons/symbols/Ski Resort.png new file mode 100644 index 00000000..42b69a36 Binary files /dev/null and b/icons/symbols/Ski Resort.png differ diff --git a/icons/symbols/Skiing Area.png b/icons/symbols/Skiing Area.png new file mode 100644 index 00000000..fc6d6f47 Binary files /dev/null and b/icons/symbols/Skiing Area.png differ diff --git a/icons/symbols/Skull and Crossbones.png b/icons/symbols/Skull and Crossbones.png new file mode 100644 index 00000000..6a167954 Binary files /dev/null and b/icons/symbols/Skull and Crossbones.png differ diff --git a/icons/symbols/Small Game.png b/icons/symbols/Small Game.png new file mode 100644 index 00000000..000f2d3a Binary files /dev/null and b/icons/symbols/Small Game.png differ diff --git a/icons/symbols/Stadium.png b/icons/symbols/Stadium.png new file mode 100644 index 00000000..c8e396c2 Binary files /dev/null and b/icons/symbols/Stadium.png differ diff --git a/icons/symbols/Summit.png b/icons/symbols/Summit.png new file mode 100644 index 00000000..26760484 Binary files /dev/null and b/icons/symbols/Summit.png differ diff --git a/icons/symbols/Tall Tower.png b/icons/symbols/Tall Tower.png new file mode 100644 index 00000000..0e420884 Binary files /dev/null and b/icons/symbols/Tall Tower.png differ diff --git a/icons/symbols/Telephone.png b/icons/symbols/Telephone.png new file mode 100644 index 00000000..cacb3b5e Binary files /dev/null and b/icons/symbols/Telephone.png differ diff --git a/icons/symbols/Trail Head.png b/icons/symbols/Trail Head.png new file mode 100644 index 00000000..3cf19cf2 Binary files /dev/null and b/icons/symbols/Trail Head.png differ diff --git a/icons/symbols/Truck Stop.png b/icons/symbols/Truck Stop.png new file mode 100644 index 00000000..f2bcafbf Binary files /dev/null and b/icons/symbols/Truck Stop.png differ diff --git a/icons/symbols/Truck.png b/icons/symbols/Truck.png new file mode 100644 index 00000000..adbdc048 Binary files /dev/null and b/icons/symbols/Truck.png differ diff --git a/icons/symbols/Tunnel.png b/icons/symbols/Tunnel.png new file mode 100644 index 00000000..6ae605bd Binary files /dev/null and b/icons/symbols/Tunnel.png differ diff --git a/icons/symbols/Ultralight Area.png b/icons/symbols/Ultralight Area.png new file mode 100644 index 00000000..7c770a52 Binary files /dev/null and b/icons/symbols/Ultralight Area.png differ diff --git a/icons/symbols/Upland Game.png b/icons/symbols/Upland Game.png new file mode 100644 index 00000000..85c13368 Binary files /dev/null and b/icons/symbols/Upland Game.png differ diff --git a/icons/symbols/Water Hydrant.png b/icons/symbols/Water Hydrant.png new file mode 100644 index 00000000..fdf05a15 Binary files /dev/null and b/icons/symbols/Water Hydrant.png differ diff --git a/icons/symbols/Water Source.png b/icons/symbols/Water Source.png new file mode 100644 index 00000000..f33e7508 Binary files /dev/null and b/icons/symbols/Water Source.png differ diff --git a/icons/symbols/Waterfowl.png b/icons/symbols/Waterfowl.png new file mode 100644 index 00000000..02cacc36 Binary files /dev/null and b/icons/symbols/Waterfowl.png differ diff --git a/icons/symbols/Waypoint.png b/icons/symbols/Waypoint.png new file mode 100644 index 00000000..6ad8e9be Binary files /dev/null and b/icons/symbols/Waypoint.png differ diff --git a/icons/symbols/Winery.png b/icons/symbols/Winery.png new file mode 100644 index 00000000..53685211 Binary files /dev/null and b/icons/symbols/Winery.png differ diff --git a/icons/symbols/Zoo.png b/icons/symbols/Zoo.png new file mode 100644 index 00000000..a57b6ef5 Binary files /dev/null and b/icons/symbols/Zoo.png differ diff --git a/icons/symbols/licence.txt b/icons/symbols/licence.txt new file mode 100644 index 00000000..29429c01 --- /dev/null +++ b/icons/symbols/licence.txt @@ -0,0 +1,364 @@ +The symbols icons are "Map Icons Collection" (https://mapicons.mapsmarker.com) +icons licensed under CC BY SA 3.0. + +----- + +Creative Commons Legal Code + +Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined below) for the purposes of this + License. + c. "Creative Commons Compatible License" means a license that is listed + at https://creativecommons.org/compatiblelicenses that has been + approved by Creative Commons as being essentially equivalent to this + License, including, at a minimum, because that license: (i) contains + terms that have the same purpose, meaning and effect as the License + Elements of this License; and, (ii) explicitly permits the relicensing + of adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same + License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + h. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + j. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(c), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(c), as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You + Distribute or Publicly Perform; (II) You may not offer or impose any + terms on the Adaptation that restrict the terms of the Applicable + License or the ability of the recipient of the Adaptation to exercise + the rights granted to that recipient under the terms of the Applicable + License; (III) You must keep intact all notices that refer to the + Applicable License and to the disclaimer of warranties with every copy + of the Work as included in the Adaptation You Distribute or Publicly + Perform; (IV) when You Distribute or Publicly Perform the Adaptation, + You may not impose any effective technological measures on the + Adaptation that restrict the ability of a recipient of the Adaptation + from You to exercise the rights granted to that recipient under the + terms of the Applicable License. This Section 4(b) applies to the + Adaptation as incorporated in a Collection, but this does not require + the Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Ssection 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the Adaptation + (e.g., "French translation of the Work by Original Author," or + "Screenplay based on original Work by Original Author"). The credit + required by this Section 4(c) may be implemented in any reasonable + manner; provided, however, that in the case of a Adaptation or + Collection, at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then as + part of these credits and in a manner at least as prominent as the + credits for the other contributing authors. For the avoidance of + doubt, You may only use the credit required by this Section for the + purpose of attribution in the manner set out above and, by exercising + Your rights under this License, You may not implicitly or explicitly + assert or imply any connection with, sponsorship or endorsement by the + Original Author, Licensor and/or Attribution Parties, as appropriate, + of You or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or Attribution + Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of the License. + + Creative Commons may be contacted at https://creativecommons.org/. diff --git a/src/GUI/app.cpp b/src/GUI/app.cpp index 994d9693..2e232fc0 100644 --- a/src/GUI/app.cpp +++ b/src/GUI/app.cpp @@ -13,6 +13,7 @@ #include "map/gcs.h" #include "map/pcs.h" #include "data/dem.h" +#include "data/waypoint.h" #include "gui.h" #include "mapaction.h" #include "app.h" @@ -57,6 +58,7 @@ App::App(int &argc, char **argv) : QApplication(argc, argv) loadDatums(); loadPCSs(); + Waypoint::loadSymbolIcons(ProgramPaths::symbolsDir()); _gui = new GUI(); } diff --git a/src/GUI/gui.cpp b/src/GUI/gui.cpp index ec41df6b..a6d1f3fc 100644 --- a/src/GUI/gui.cpp +++ b/src/GUI/gui.cpp @@ -269,6 +269,11 @@ void GUI::createActions() _overlapPOIAction->setCheckable(true); connect(_overlapPOIAction, &QAction::triggered, _mapView, &MapView::showOverlappedPOIs); + _showPOIIconsAction = new QAction(tr("Show POI icons"), this); + _showPOIIconsAction->setMenuRole(QAction::NoRole); + _showPOIIconsAction->setCheckable(true); + connect(_showPOIIconsAction, &QAction::triggered, _mapView, + &MapView::showPOIIcons); _showPOILabelsAction = new QAction(tr("Show POI labels"), this); _showPOILabelsAction->setMenuRole(QAction::NoRole); _showPOILabelsAction->setCheckable(true); @@ -343,6 +348,11 @@ void GUI::createActions() _showAreasAction->setMenuRole(QAction::NoRole); _showAreasAction->setCheckable(true); connect(_showAreasAction, &QAction::triggered, this, &GUI::showAreas); + _showWaypointIconsAction = new QAction(tr("Waypoint icons"), this); + _showWaypointIconsAction->setMenuRole(QAction::NoRole); + _showWaypointIconsAction->setCheckable(true); + connect(_showWaypointIconsAction, &QAction::triggered, _mapView, + &MapView::showWaypointIcons); _showWaypointLabelsAction = new QAction(tr("Waypoint labels"), this); _showWaypointLabelsAction->setMenuRole(QAction::NoRole); _showWaypointLabelsAction->setCheckable(true); @@ -572,6 +582,7 @@ void GUI::createMenus() graphMenu->addAction(_showGraphsAction); QMenu *dataMenu = menuBar()->addMenu(tr("&Data")); + dataMenu->addAction(_showWaypointIconsAction); dataMenu->addAction(_showWaypointLabelsAction); dataMenu->addAction(_showRouteWaypointsAction); dataMenu->addAction(_showTicksAction); @@ -592,6 +603,7 @@ void GUI::createMenus() _poiMenu->addAction(_selectAllPOIAction); _poiMenu->addAction(_unselectAllPOIAction); _poiMenu->addSeparator(); + _poiMenu->addAction(_showPOIIconsAction); _poiMenu->addAction(_showPOILabelsAction); _poiMenu->addAction(_overlapPOIAction); _poiMenu->addSeparator(); @@ -2145,6 +2157,9 @@ void GUI::writeSettings() if (_showPOILabelsAction->isChecked() != SHOW_POI_LABELS_DEFAULT) settings.setValue(SHOW_POI_LABELS_SETTING, _showPOILabelsAction->isChecked()); + if (_showPOIIconsAction->isChecked() != SHOW_POI_ICONS_DEFAULT) + settings.setValue(SHOW_POI_ICONS_SETTING, + _showPOIIconsAction->isChecked()); int j = 0; QList poiActions(_poisActionGroup->actions()); @@ -2171,6 +2186,9 @@ void GUI::writeSettings() _showWaypointsAction->isChecked()); if (_showAreasAction->isChecked() != SHOW_AREAS_DEFAULT) settings.setValue(SHOW_AREAS_SETTING, _showAreasAction->isChecked()); + if (_showWaypointIconsAction->isChecked() != SHOW_WAYPOINT_ICONS_DEFAULT) + settings.setValue(SHOW_WAYPOINT_ICONS_SETTING, + _showWaypointIconsAction->isChecked()); if (_showWaypointLabelsAction->isChecked() != SHOW_WAYPOINT_LABELS_DEFAULT) settings.setValue(SHOW_WAYPOINT_LABELS_SETTING, _showWaypointLabelsAction->isChecked()); @@ -2433,6 +2451,9 @@ void GUI::readSettings(QString &activeMap, QStringList &disabledPOIs) _mapView->showOverlappedPOIs(false); else _overlapPOIAction->setChecked(true); + if (settings.value(SHOW_POI_ICONS_SETTING, SHOW_POI_ICONS_DEFAULT) + .toBool()) + _showPOIIconsAction->trigger(); if (!settings.value(SHOW_POI_LABELS_SETTING, SHOW_POI_LABELS_DEFAULT) .toBool()) _mapView->showPOILabels(false); @@ -2473,6 +2494,9 @@ void GUI::readSettings(QString &activeMap, QStringList &disabledPOIs) _mapView->showAreas(false); else _showAreasAction->setChecked(true); + if (settings.value(SHOW_WAYPOINT_ICONS_SETTING, + SHOW_WAYPOINT_ICONS_DEFAULT).toBool()) + _showWaypointIconsAction->trigger(); if (!settings.value(SHOW_WAYPOINT_LABELS_SETTING, SHOW_WAYPOINT_LABELS_DEFAULT).toBool()) _mapView->showWaypointLabels(false); diff --git a/src/GUI/gui.h b/src/GUI/gui.h index 3e8e5001..e9bc3aa6 100644 --- a/src/GUI/gui.h +++ b/src/GUI/gui.h @@ -196,6 +196,7 @@ private: QAction *_showPOIAction; QAction *_overlapPOIAction; QAction *_showPOILabelsAction; + QAction *_showPOIIconsAction; QAction *_showMapAction; QAction *_fullscreenAction; QAction *_loadMapAction; @@ -225,6 +226,7 @@ private: QAction *_showRoutesAction; QAction *_showWaypointsAction; QAction *_showWaypointLabelsAction; + QAction *_showWaypointIconsAction; QAction *_showAreasAction; QAction *_showRouteWaypointsAction; QAction *_hideMarkersAction; diff --git a/src/GUI/mapview.cpp b/src/GUI/mapview.cpp index 36404da9..4e7edfe5 100644 --- a/src/GUI/mapview.cpp +++ b/src/GUI/mapview.cpp @@ -89,8 +89,10 @@ MapView::MapView(Map *map, POI *poi, QWidget *parent) _showAreas = true; _showWaypoints = true; _showWaypointLabels = true; + _showWaypointIcons = false; _showPOI = true; _showPOILabels = true; + _showPOIIcons = false; _overlapPOIs = true; _showRouteWaypoints = true; _showMarkers = true; @@ -169,6 +171,7 @@ PathItem *MapView::addRoute(const Route &route) ri->setVisible(_showRoutes); ri->showWaypoints(_showRouteWaypoints); ri->showWaypointLabels(_showWaypointLabels); + ri->showWaypointIcons(_showWaypointLabels); ri->setDigitalZoom(_digitalZoom); ri->setMarkerColor(_markerColor); ri->showMarker(_showMarkers); @@ -217,6 +220,7 @@ void MapView::addWaypoints(const QVector &waypoints) wi->setSize(_waypointSize); wi->setColor(_waypointColor); wi->showLabel(_showWaypointLabels); + wi->showIcon(_showWaypointIcons); wi->setVisible(_showWaypoints); wi->setDigitalZoom(_digitalZoom); _scene->addItem(wi); @@ -478,6 +482,7 @@ void MapView::addPOI(const QList &waypoints) pi->setSize(_poiSize); pi->setColor(_poiColor); pi->showLabel(_showPOILabels); + pi->showIcon(_showPOIIcons); pi->setVisible(_showPOI); pi->setDigitalZoom(_digitalZoom); _scene->addItem(pi); @@ -492,9 +497,9 @@ void MapView::setUnits(Units units) PathItem::setUnits(units); for (int i = 0; i < _tracks.count(); i++) - _tracks[i]->updateTicks(); + _tracks.at(i)->updateTicks(); for (int i = 0; i < _routes.count(); i++) - _routes[i]->updateTicks(); + _routes.at(i)->updateTicks(); _mapScale->setUnits(units); } @@ -505,9 +510,9 @@ void MapView::setCoordinatesFormat(CoordinatesFormat format) PathItem::setCoordinatesFormat(format); for (int i = 0; i < _tracks.count(); i++) - _tracks[i]->updateMarkerInfo(); + _tracks.at(i)->updateMarkerInfo(); for (int i = 0; i < _routes.count(); i++) - _routes[i]->updateMarkerInfo(); + _routes.at(i)->updateMarkerInfo(); _coordinates->setFormat(format); } @@ -518,9 +523,9 @@ void MapView::setTimeZone(const QTimeZone &zone) PathItem::setTimeZone(zone); for (int i = 0; i < _tracks.count(); i++) - _tracks[i]->updateMarkerInfo(); + _tracks.at(i)->updateMarkerInfo(); for (int i = 0; i < _routes.count(); i++) - _routes[i]->updateMarkerInfo(); + _routes.at(i)->updateMarkerInfo(); } void MapView::clearMapCache() @@ -819,6 +824,16 @@ void MapView::showWaypointLabels(bool show) _routes.at(i)->showWaypointLabels(show); } +void MapView::showWaypointIcons(bool show) +{ + _showWaypointIcons = show; + + for (int i = 0; i < _waypoints.size(); i++) + _waypoints.at(i)->showIcon(show); + for (int i = 0; i < _routes.size(); i++) + _routes.at(i)->showWaypointIcons(show); +} + void MapView::showRouteWaypoints(bool show) { _showRouteWaypoints = show; @@ -884,6 +899,17 @@ void MapView::showPOILabels(bool show) updatePOIVisibility(); } +void MapView::showPOIIcons(bool show) +{ + _showPOIIcons = show; + + for (POIHash::const_iterator it = _pois.constBegin(); + it != _pois.constEnd(); it++) + it.value()->showIcon(show); + + updatePOIVisibility(); +} + void MapView::showCoordinates(bool show) { _coordinates->setVisible(show); diff --git a/src/GUI/mapview.h b/src/GUI/mapview.h index 455140ba..59e6c7d0 100644 --- a/src/GUI/mapview.h +++ b/src/GUI/mapview.h @@ -95,12 +95,14 @@ public slots: void showMap(bool show); void showPOI(bool show); void showPOILabels(bool show); + void showPOIIcons(bool show); void showCoordinates(bool show); void showTicks(bool show); void showMarkers(bool show); void showMarkerInfo(MarkerInfoItem::Type type); void showOverlappedPOIs(bool show); void showWaypointLabels(bool show); + void showWaypointIcons(bool show); void showTracks(bool show); void showRoutes(bool show); void showAreas(bool show); @@ -165,7 +167,7 @@ private: bool _showMap, _showTracks, _showRoutes, _showAreas, _showWaypoints, _showWaypointLabels, _showPOI, _showPOILabels, _showRouteWaypoints, - _showMarkers, _showPathTicks; + _showMarkers, _showPathTicks, _showPOIIcons, _showWaypointIcons; MarkerInfoItem::Type _markerInfoType; bool _overlapPOIs; int _trackWidth, _routeWidth, _areaWidth; diff --git a/src/GUI/routeitem.cpp b/src/GUI/routeitem.cpp index f7f21ed3..782abb46 100644 --- a/src/GUI/routeitem.cpp +++ b/src/GUI/routeitem.cpp @@ -53,7 +53,7 @@ RouteItem::RouteItem(const Route &route, Map *map, QGraphicsItem *parent) void RouteItem::setMap(Map *map) { for (int i = 0; i < _waypoints.count(); i++) - _waypoints[i]->setMap(map); + _waypoints.at(i)->setMap(map); PathItem::setMap(map); } @@ -61,19 +61,25 @@ void RouteItem::setMap(Map *map) void RouteItem::showWaypoints(bool show) { for (int i = 0; i < _waypoints.count(); i++) - _waypoints[i]->setVisible(show); + _waypoints.at(i)->setVisible(show); } void RouteItem::showWaypointLabels(bool show) { for (int i = 0; i < _waypoints.count(); i++) - _waypoints[i]->showLabel(show); + _waypoints.at(i)->showLabel(show); +} + +void RouteItem::showWaypointIcons(bool show) +{ + for (int i = 0; i < _waypoints.count(); i++) + _waypoints.at(i)->showIcon(show); } void RouteItem::setDigitalZoom(int zoom) { for (int i = 0; i < _waypoints.count(); i++) - _waypoints[i]->setDigitalZoom(zoom); + _waypoints.at(i)->setDigitalZoom(zoom); PathItem::setDigitalZoom(zoom); } diff --git a/src/GUI/routeitem.h b/src/GUI/routeitem.h index 16d72a9e..3ae84a51 100644 --- a/src/GUI/routeitem.h +++ b/src/GUI/routeitem.h @@ -20,6 +20,7 @@ public: void showWaypoints(bool show); void showWaypointLabels(bool show); + void showWaypointIcons(bool show); ToolTip info() const; QDateTime date() const {return QDateTime();} diff --git a/src/GUI/settings.h b/src/GUI/settings.h index 5ff1b7a4..56028090 100644 --- a/src/GUI/settings.h +++ b/src/GUI/settings.h @@ -40,6 +40,9 @@ #define POI_SETTINGS_GROUP "POI" #define OVERLAP_POI_SETTING "overlap" #define OVERLAP_POI_DEFAULT false + +#define SHOW_POI_ICONS_SETTING "icons" +#define SHOW_POI_ICONS_DEFAULT true #define SHOW_POI_LABELS_SETTING "labels" #define SHOW_POI_LABELS_DEFAULT true #define SHOW_POI_SETTING "show" @@ -58,6 +61,8 @@ #define SHOW_AREAS_DEFAULT true #define SHOW_ROUTE_WAYPOINTS_SETTING "routeWaypoints" #define SHOW_ROUTE_WAYPOINTS_DEFAULT true +#define SHOW_WAYPOINT_ICONS_SETTING "waypointIcons" +#define SHOW_WAYPOINT_ICONS_DEFAULT false #define SHOW_WAYPOINT_LABELS_SETTING "waypointLabels" #define SHOW_WAYPOINT_LABELS_DEFAULT true #define SHOW_MARKERS_SETTING "positionMarkers" diff --git a/src/GUI/waypointitem.cpp b/src/GUI/waypointitem.cpp index 23edff1b..e33df50c 100644 --- a/src/GUI/waypointitem.cpp +++ b/src/GUI/waypointitem.cpp @@ -44,6 +44,8 @@ ToolTip WaypointItem::info() const && _waypoint.comment() != _waypoint.description()) tt.insert(qApp->translate("WaypointItem", "Comment"), _waypoint.comment()); + if (!_waypoint.symbol().isEmpty()) + tt.insert(qApp->translate("WaypointItem", "Symbol"), _waypoint.symbol()); if (!_waypoint.address().isEmpty()) { QString addr(_waypoint.address()); addr.replace('\n', "
"); @@ -63,6 +65,7 @@ ToolTip WaypointItem::info() const } tt.insert(qApp->translate("WaypointItem", "Links"), links); } + tt.setImages(_waypoint.images()); return tt; @@ -73,9 +76,14 @@ WaypointItem::WaypointItem(const Waypoint &waypoint, Map *map, { _waypoint = waypoint; _showLabel = true; + _showIcon = false; _size = 8; _color = Qt::black; + _icon = (_waypoint.icon().isNull()) + ? Waypoint::symbolIcon(_waypoint.symbol()) + : &_waypoint.icon(); + _font.setPixelSize(FS(_size)); _font.setFamily(FONT_FAMILY); @@ -95,11 +103,22 @@ void WaypointItem::updateCache() QFontMetrics fm(_font); _labelBB = fm.tightBoundingRect(_waypoint.name()); - p.addRect(-pointSize/2, -pointSize/2, pointSize, pointSize); - p.addRect(pointSize/2, pointSize/2, _labelBB.width(), _labelBB.height() - + fm.descent()); - } else - p.addRect(-pointSize/2, -pointSize/2, pointSize, pointSize); + if (_showIcon && _icon) { + p.addRect(-_icon->width()/2.0, -_icon->height(), _icon->width(), + _icon->height()); + p.addRect(0, 0, _labelBB.width(), _labelBB.height() + fm.descent()); + } else { + p.addRect(-pointSize/2, -pointSize/2, pointSize, pointSize); + p.addRect(pointSize/2, pointSize/2, _labelBB.width(), + _labelBB.height() + fm.descent()); + } + } else { + if (_showIcon && _icon) + p.addRect(-_icon->width()/2, -_icon->height(), _icon->width(), + _icon->height()); + else + p.addRect(-pointSize/2, -pointSize/2, pointSize, pointSize); + } _shape = p; } @@ -115,12 +134,19 @@ void WaypointItem::paint(QPainter *painter, if (_showLabel) { painter->setFont(_font); - painter->drawText(pointSize/2 - qMax(_labelBB.x(), 0), pointSize/2 - + _labelBB.height(), _waypoint.name()); + if (_showIcon && _icon) + painter->drawText(-qMax(_labelBB.x(), 0), _labelBB.height(), + _waypoint.name()); + else + painter->drawText(pointSize/2 - qMax(_labelBB.x(), 0), pointSize/2 + + _labelBB.height(), _waypoint.name()); } painter->setBrush(QBrush(_color, Qt::SolidPattern)); - painter->drawEllipse(-pointSize/2, -pointSize/2, pointSize, pointSize); + if (_showIcon && _icon) + painter->drawPixmap(-_icon->width()/2.0, -_icon->height(), *_icon); + else + painter->drawEllipse(-pointSize/2, -pointSize/2, pointSize, pointSize); /* painter->setPen(Qt::red); @@ -159,6 +185,16 @@ void WaypointItem::showLabel(bool show) updateCache(); } +void WaypointItem::showIcon(bool show) +{ + if (_showIcon == show) + return; + + prepareGeometryChange(); + _showIcon = show; + updateCache(); +} + void WaypointItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event); diff --git a/src/GUI/waypointitem.h b/src/GUI/waypointitem.h index 68bec205..a81540d8 100644 --- a/src/GUI/waypointitem.h +++ b/src/GUI/waypointitem.h @@ -23,6 +23,7 @@ public: void setSize(int size); void setColor(const QColor &color); void showLabel(bool show); + void showIcon(bool show); void setDigitalZoom(int zoom) {setScale(pow(2, -zoom));} QPainterPath shape() const {return _shape;} @@ -50,8 +51,10 @@ private: QColor _color; int _size; bool _showLabel; + bool _showIcon; QFont _font; QRect _labelBB; + const QPixmap *_icon; static Units _units; static CoordinatesFormat _format; diff --git a/src/map/color.h b/src/common/color.h similarity index 100% rename from src/map/color.h rename to src/common/color.h diff --git a/src/common/programpaths.cpp b/src/common/programpaths.cpp index a7f89ac5..7c03595c 100644 --- a/src/common/programpaths.cpp +++ b/src/common/programpaths.cpp @@ -11,6 +11,8 @@ #define TILES_DIR "tiles" #define TRANSLATIONS_DIR "translations" #define STYLE_DIR "style" +#define SYMBOLS_DIR "symbols" + #define ELLIPSOID_FILE "ellipsoids.csv" #define GCS_FILE "gcs.csv" #define PCS_FILE "pcs.csv" @@ -68,6 +70,16 @@ QString ProgramPaths::styleDir(bool writable) STYLE_DIR, QStandardPaths::LocateDirectory); } +QString ProgramPaths::symbolsDir(bool writable) +{ + if (writable) + return QDir(QStandardPaths::writableLocation( + QStandardPaths::AppDataLocation)).filePath(SYMBOLS_DIR); + else + return QStandardPaths::locate(QStandardPaths::AppDataLocation, + SYMBOLS_DIR, QStandardPaths::LocateDirectory); +} + QString ProgramPaths::tilesDir() { return QDir(QStandardPaths::writableLocation( diff --git a/src/common/programpaths.h b/src/common/programpaths.h index f07a2b09..221ec7e4 100644 --- a/src/common/programpaths.h +++ b/src/common/programpaths.h @@ -10,6 +10,7 @@ namespace ProgramPaths QString csvDir(bool writable = false); QString demDir(bool writable = false); QString styleDir(bool writable = false); + QString symbolsDir(bool writable = false); QString tilesDir(); QString translationsDir(); QString ellipsoidsFile(); diff --git a/src/data/gpiparser.cpp b/src/data/gpiparser.cpp index 9139de51..217c74a8 100644 --- a/src/data/gpiparser.cpp +++ b/src/data/gpiparser.cpp @@ -10,6 +10,7 @@ #include #include "common/garmin.h" #include "common/textcodec.h" +#include "common/color.h" #include "address.h" #include "gpiparser.h" @@ -36,6 +37,14 @@ private: QString _str; }; +#ifndef QT_NO_DEBUG +QDebug operator<<(QDebug dbg, const TranslatedString &ts) +{ + dbg.nospace() << "TS(" << ts.lang() << ", " << ts.str() << ")"; + return dbg.space(); +} +#endif // QT_NO_DEBUG + class CryptDevice : public QIODevice { public: @@ -530,8 +539,22 @@ static quint32 readCamera(DataStream &stream, QVector &waypoints, return rs + rh.size; } +static quint32 readIconId(DataStream &stream, quint16 &id) +{ + RecordHeader rh; + quint8 rs; + + rs = stream.readRecordHeader(rh); + stream >> id; + + if (2 != rh.size) + stream.setStatus(QDataStream::ReadCorruptData); + + return rs + rh.size; +} + static quint32 readPOI(DataStream &stream, QVector &waypoints, - const QString &fileName, int &imgId) + const QString &fileName, int &imgId, QVector > &icons) { RecordHeader rh; quint8 rs; @@ -551,7 +574,13 @@ static quint32 readPOI(DataStream &stream, QVector &waypoints, waypoints.last().setName(obj.first().str()); while (stream.status() == QDataStream::Ok && ds < rh.size) { - switch(stream.nextHeaderType()) { + quint16 type = stream.nextHeaderType(); + switch(type) { + case 4: + {quint16 id; + ds += readIconId(stream, id); + icons.append(QPair(waypoints.size() - 1, id));} + break; case 10: ds += readDescription(stream, waypoints.last()); break; @@ -579,7 +608,8 @@ static quint32 readPOI(DataStream &stream, QVector &waypoints, } static quint32 readSpatialIndex(DataStream &stream, QVector &waypoints, - QList &polygons, const QString &fileName, int &imgId) + QList &polygons, const QString &fileName, int &imgId, + QVector > &icons) { RecordHeader rh; quint32 ds, s5; @@ -595,11 +625,12 @@ static quint32 readSpatialIndex(DataStream &stream, QVector &waypoints while (stream.status() == QDataStream::Ok && ds < rh.size) { switch(stream.nextHeaderType()) { case 2: - ds += readPOI(stream, waypoints, fileName, imgId); + ds += readPOI(stream, waypoints, fileName, imgId, + icons); break; case 8: ds += readSpatialIndex(stream, waypoints, polygons, - fileName, imgId); + fileName, imgId, icons); break; case 19: ds += readCamera(stream, waypoints, polygons); @@ -616,31 +647,89 @@ static quint32 readSpatialIndex(DataStream &stream, QVector &waypoints return rs + rh.size; } +static quint32 readSymbol(DataStream &stream, QPixmap &pixmap) +{ + RecordHeader rh; + quint8 rs, u8, bpp, transparent; + quint32 ds = 36, u32, imageSize, paletteSize, bgColor; + quint16 id, height, width, lineSize; + QByteArray data; + QVector palette; + QImage img; + + rs = stream.readRecordHeader(rh); + stream >> id >> height >> width >> lineSize >> bpp >> u8 >> u8 >> u8 + >> imageSize >> u32 >> paletteSize >> bgColor >> transparent >> u8 >> u8 + >> u8 >> u32; + if (imageSize) { + data.resize(imageSize); + stream.readRawData(data.data(), data.size()); + ds += data.size(); + } + if (paletteSize) { + quint32 rgb; + palette.resize(paletteSize); + for (quint32 i = 0; i < paletteSize; i++) { + stream >> rgb; + palette[i] = (transparent && rgb == bgColor) + ? QRgb(0) + : Color::rgb((rgb & 0x000000FF), (rgb & 0x0000FF00) >> 8, + (rgb & 0x00FF0000) >> 16); + } + ds += paletteSize * 4; + } + + if (paletteSize) { + img = QImage((uchar*)data.data(), width, height, lineSize, + QImage::Format_Indexed8); + img.setColorTable(palette); + } else + img = QImage((uchar*)data.data(), width, height, lineSize, + QImage::Format_RGB32); + pixmap = QPixmap::fromImage(img); + + if (ds != rh.size) + stream.setStatus(QDataStream::ReadCorruptData); + + return rs + rh.size; +} + static void readPOIDatabase(DataStream &stream, QVector &waypoints, QList &polygons, const QString &fileName, int &imgId) { RecordHeader rh; QList obj; quint32 ds; + QVector > il; + QVector icons; stream.readRecordHeader(rh); ds = stream.readTranslatedObjects(obj); - ds += readSpatialIndex(stream, waypoints, polygons, fileName, imgId); + ds += readSpatialIndex(stream, waypoints, polygons, fileName, imgId, il); if (rh.flags & 0x8) { while (stream.status() == QDataStream::Ok && ds < rh.size) { - switch(stream.nextHeaderType()) { + quint16 type = stream.nextHeaderType(); + switch(type) { + case 5: + icons.append(QPixmap()); + ds += readSymbol(stream, icons.last()); + break; case 8: ds += readSpatialIndex(stream, waypoints, polygons, - fileName, imgId); + fileName, imgId, il); break; - case 5: // symbol - case 7: // category default: ds += stream.skipRecord(); } } } + for (int i = 0; i < il.size(); i++) { + const QPair &e = il.at(i); + if (e.second < icons.size()) + waypoints[e.first].setIcon(icons.at(e.second)); + } + if (ds != rh.size) stream.setStatus(QDataStream::ReadCorruptData); } @@ -652,7 +741,7 @@ bool GPIParser::readData(DataStream &stream, QVector &waypoints, while (stream.status() == QDataStream::Ok) { switch (stream.nextHeaderType()) { - case 0x09: // POI database + case 0x09: readPOIDatabase(stream, waypoints, polygons, fileName, imgId); break; @@ -661,8 +750,6 @@ bool GPIParser::readData(DataStream &stream, QVector &waypoints, if (stream.status() == QDataStream::Ok) return true; break; - case 0x16: // route - case 0x15: // info header default: stream.skipRecord(); } diff --git a/src/data/gpxparser.cpp b/src/data/gpxparser.cpp index 3187f604..a5229052 100644 --- a/src/data/gpxparser.cpp +++ b/src/data/gpxparser.cpp @@ -205,6 +205,8 @@ void GPXParser::waypointData(Waypoint &waypoint, SegmentData *autoRoute) link10.setText(_reader.readElementText()); else if (_reader.name() == QLatin1String("extensions")) waypointExtensions(waypoint, autoRoute); + else if (_reader.name() == QLatin1String("sym")) + waypoint.setSymbol(_reader.readElementText()); else _reader.skipCurrentElement(); } diff --git a/src/data/waypoint.cpp b/src/data/waypoint.cpp index e8f52114..275fa6b1 100644 --- a/src/data/waypoint.cpp +++ b/src/data/waypoint.cpp @@ -1,8 +1,11 @@ +#include +#include #include "dem.h" #include "waypoint.h" bool Waypoint::_useDEM = false; bool Waypoint::_show2ndElevation = false; +QHash Waypoint::_symbolIcons; QPair Waypoint::elevations() const { @@ -21,3 +24,26 @@ QPair Waypoint::elevations() const return QPair(DEM::elevation(coordinates()), NAN); } } + +void Waypoint::loadSymbolIcons(const QString &dir) +{ + QDir d(dir); + QFileInfoList files(d.entryInfoList(QDir::Files | QDir::Readable)); + + for (int i = 0; i < files.size(); i++) { + QPixmap pm(files.at(i).absoluteFilePath()); + if (pm.isNull()) + qWarning("%s: error loading image", + qPrintable(files.at(i).absoluteFilePath())); + else + _symbolIcons.insert(files.at(i).baseName(), pm); + } +} + +const QPixmap *Waypoint::symbolIcon(const QString &symbol) +{ + if (symbol.isEmpty()) + return 0; + QHash::const_iterator it(_symbolIcons.find(symbol)); + return (it == _symbolIcons.constEnd()) ? 0 : &*it; +} diff --git a/src/data/waypoint.h b/src/data/waypoint.h index 0001d5f6..1d04bffa 100644 --- a/src/data/waypoint.h +++ b/src/data/waypoint.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include "common/config.h" #include "common/coordinates.h" @@ -24,10 +25,12 @@ public: const QString &comment() const {return _comment;} const QString &address() const {return _address;} const QString &phone() const {return _phone;} + const QString &symbol() const {return _symbol;} const QVector &images() const {return _images;} const QVector &links() const {return _links;} const QDateTime ×tamp() const {return _timestamp;} qreal elevation() const {return _elevation;} + const QPixmap &icon() const {return _icon;} QPair elevations() const; @@ -39,10 +42,12 @@ public: void setComment(const QString &comment) {_comment = comment;} void setAddress(const QString &address) {_address = address;} void setPhone(const QString &phone) {_phone = phone;} + void setSymbol(const QString &symbol) {_symbol = symbol;} void setTimestamp(const QDateTime ×tamp) {_timestamp = timestamp;} void setElevation(qreal elevation) {_elevation = elevation;} void addImage(const QString &path) {_images.append(path);} void addLink(const Link &link) {_links.append(link);} + void setIcon(const QPixmap &icon) {_icon = icon;} bool hasElevation() const {return !std::isnan(_elevation);} @@ -54,6 +59,9 @@ public: static void showSecondaryElevation(bool show) {_show2ndElevation = show;} + static const QPixmap *symbolIcon(const QString &symbol); + static void loadSymbolIcons(const QString &dir); + private: Coordinates _coordinates; QString _name; @@ -61,13 +69,16 @@ private: QString _comment; QString _address; QString _phone; + QString _symbol; QVector _images; QVector _links; QDateTime _timestamp; qreal _elevation; + QPixmap _icon; static bool _useDEM; static bool _show2ndElevation; + static QHash _symbolIcons; }; inline HASH_T qHash(const Waypoint &key) diff --git a/src/map/IMG/style.cpp b/src/map/IMG/style.cpp index 262eff8f..ce246667 100644 --- a/src/map/IMG/style.cpp +++ b/src/map/IMG/style.cpp @@ -239,137 +239,137 @@ void Style::defaultPointStyle() _points[TYPE(0x03)].setTextFontSize(Large); // POI - _points[0x2a00] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a01] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a02] = Point(QImage(":/POI/restaurant-noodle-11.png")); - _points[0x2a03] = Point(QImage(":/POI/bbq-11.png")); - _points[0x2a04] = Point(QImage(":/POI/restaurant-noodle-11.png")); - _points[0x2a05] = Point(QImage(":/POI/bakery-11.png")); - _points[0x2a06] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a07] = Point(QImage(":/POI/fast-food-11.png")); - _points[0x2a08] = Point(QImage(":/POI/restaurant-pizza-11.png")); - _points[0x2a09] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a0a] = Point(QImage(":/POI/restaurant-pizza-11.png")); - _points[0x2a0b] = Point(QImage(":/POI/restaurant-seafood-11.png")); - _points[0x2a0c] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a0d] = Point(QImage(":/POI/bakery-11.png")); - _points[0x2a0e] = Point(QImage(":/POI/cafe-11.png")); - _points[0x2a0f] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a10] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a11] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a12] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x2a13] = Point(QImage(":/POI/restaurant-11.png")); + _points[0x2a00] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a01] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a02] = Point(QImage(":/IMG/restaurant-noodle-11.png")); + _points[0x2a03] = Point(QImage(":/IMG/bbq-11.png")); + _points[0x2a04] = Point(QImage(":/IMG/restaurant-noodle-11.png")); + _points[0x2a05] = Point(QImage(":/IMG/bakery-11.png")); + _points[0x2a06] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a07] = Point(QImage(":/IMG/fast-food-11.png")); + _points[0x2a08] = Point(QImage(":/IMG/restaurant-pizza-11.png")); + _points[0x2a09] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a0a] = Point(QImage(":/IMG/restaurant-pizza-11.png")); + _points[0x2a0b] = Point(QImage(":/IMG/restaurant-seafood-11.png")); + _points[0x2a0c] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a0d] = Point(QImage(":/IMG/bakery-11.png")); + _points[0x2a0e] = Point(QImage(":/IMG/cafe-11.png")); + _points[0x2a0f] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a10] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a11] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a12] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x2a13] = Point(QImage(":/IMG/restaurant-11.png")); - _points[0x2b01] = Point(QImage(":/POI/lodging-11.png")); - _points[0x2b02] = Point(QImage(":/POI/lodging-11.png")); - _points[0x2b03] = Point(QImage(":/POI/campsite-11.png")); - _points[0x2b04] = Point(QImage(":/POI/village-11.png")); - _points[0x2b06] = Point(QImage(":/POI/shelter-11.png")); + _points[0x2b01] = Point(QImage(":/IMG/lodging-11.png")); + _points[0x2b02] = Point(QImage(":/IMG/lodging-11.png")); + _points[0x2b03] = Point(QImage(":/IMG/campsite-11.png")); + _points[0x2b04] = Point(QImage(":/IMG/village-11.png")); + _points[0x2b06] = Point(QImage(":/IMG/shelter-11.png")); - _points[0x2c01] = Point(QImage(":/POI/amusement-park-11.png")); - _points[0x2c02] = Point(QImage(":/POI/museum-11.png")); - _points[0x2c03] = Point(QImage(":/POI/library-11.png")); - _points[0x2c04] = Point(QImage(":/POI/landmark-11.png")); - _points[0x2c05] = Point(QImage(":/POI/school-11.png")); - _points[0x2c06] = Point(QImage(":/POI/garden-11.png")); - _points[0x2c07] = Point(QImage(":/POI/zoo-11.png")); - _points[0x2c08] = Point(QImage(":/POI/soccer-11.png")); - _points[0x2c0a] = Point(QImage(":/POI/bar-11.png")); - _points[0x2c0b] = Point(QImage(":/POI/place-of-worship-11.png")); - _points[0x2c0d] = Point(QImage(":/POI/religious-muslim-11.png")); - _points[0x2c0e] = Point(QImage(":/POI/religious-christian-11.png")); - _points[0x2c10] = Point(QImage(":/POI/religious-jewish-11.png")); - _points[0x2d01] = Point(QImage(":/POI/theatre-11.png")); - _points[0x2d02] = Point(QImage(":/POI/bar-11.png")); - _points[0x2d03] = Point(QImage(":/POI/cinema-11.png")); - _points[0x2d04] = Point(QImage(":/POI/casino-11.png")); - _points[0x2d05] = Point(QImage(":/POI/golf-11.png")); - _points[0x2d06] = Point(QImage(":/POI/skiing-11.png")); - _points[0x2d07] = Point(QImage(":/POI/bowling-alley-11.png")); - _points[0x2d09] = Point(QImage(":/POI/swimming-11.png")); - _points[0x2d0a] = Point(QImage(":/POI/fitness-centre-11.png")); - _points[0x2d0b] = Point(QImage(":/POI/airfield-11.png")); + _points[0x2c01] = Point(QImage(":/IMG/amusement-park-11.png")); + _points[0x2c02] = Point(QImage(":/IMG/museum-11.png")); + _points[0x2c03] = Point(QImage(":/IMG/library-11.png")); + _points[0x2c04] = Point(QImage(":/IMG/landmark-11.png")); + _points[0x2c05] = Point(QImage(":/IMG/school-11.png")); + _points[0x2c06] = Point(QImage(":/IMG/garden-11.png")); + _points[0x2c07] = Point(QImage(":/IMG/zoo-11.png")); + _points[0x2c08] = Point(QImage(":/IMG/soccer-11.png")); + _points[0x2c0a] = Point(QImage(":/IMG/bar-11.png")); + _points[0x2c0b] = Point(QImage(":/IMG/place-of-worship-11.png")); + _points[0x2c0d] = Point(QImage(":/IMG/religious-muslim-11.png")); + _points[0x2c0e] = Point(QImage(":/IMG/religious-christian-11.png")); + _points[0x2c10] = Point(QImage(":/IMG/religious-jewish-11.png")); + _points[0x2d01] = Point(QImage(":/IMG/theatre-11.png")); + _points[0x2d02] = Point(QImage(":/IMG/bar-11.png")); + _points[0x2d03] = Point(QImage(":/IMG/cinema-11.png")); + _points[0x2d04] = Point(QImage(":/IMG/casino-11.png")); + _points[0x2d05] = Point(QImage(":/IMG/golf-11.png")); + _points[0x2d06] = Point(QImage(":/IMG/skiing-11.png")); + _points[0x2d07] = Point(QImage(":/IMG/bowling-alley-11.png")); + _points[0x2d09] = Point(QImage(":/IMG/swimming-11.png")); + _points[0x2d0a] = Point(QImage(":/IMG/fitness-centre-11.png")); + _points[0x2d0b] = Point(QImage(":/IMG/airfield-11.png")); - _points[0x2e02] = Point(QImage(":/POI/grocery-11.png")); - _points[0x2e03] = Point(QImage(":/POI/shop-11.png")); - _points[0x2e05] = Point(QImage(":/POI/pharmacy-11.png")); - _points[0x2e06] = Point(QImage(":/POI/convenience-11.png")); - _points[0x2e07] = Point(QImage(":/POI/clothing-store-11.png")); - _points[0x2e08] = Point(QImage(":/POI/garden-centre-11.png")); - _points[0x2e09] = Point(QImage(":/POI/furniture-11.png")); - _points[0x2e0a] = Point(QImage(":/POI/shop-11.png")); - _points[0x2e0c] = Point(QImage(":/POI/shop-11.png")); + _points[0x2e02] = Point(QImage(":/IMG/grocery-11.png")); + _points[0x2e03] = Point(QImage(":/IMG/shop-11.png")); + _points[0x2e05] = Point(QImage(":/IMG/pharmacy-11.png")); + _points[0x2e06] = Point(QImage(":/IMG/convenience-11.png")); + _points[0x2e07] = Point(QImage(":/IMG/clothing-store-11.png")); + _points[0x2e08] = Point(QImage(":/IMG/garden-centre-11.png")); + _points[0x2e09] = Point(QImage(":/IMG/furniture-11.png")); + _points[0x2e0a] = Point(QImage(":/IMG/shop-11.png")); + _points[0x2e0c] = Point(QImage(":/IMG/shop-11.png")); - _points[0x2f01] = Point(QImage(":/POI/fuel-11.png")); - _points[0x2f02] = Point(QImage(":/POI/car-rental-11.png")); - _points[0x2f03] = Point(QImage(":/POI/car-repair-11.png")); - _points[0x2f04] = Point(QImage(":/POI/airport-11.png")); - _points[0x2f05] = Point(QImage(":/POI/post-11.png")); - _points[0x2f06] = Point(QImage(":/POI/bank-11.png")); - _points[0x2f07] = Point(QImage(":/POI/car-11.png")); - _points[0x2f08] = Point(QImage(":/POI/bus-11.png")); - _points[0x2f09] = Point(QImage(":/POI/harbor-11.png")); - _points[0x2f0b] = Point(QImage(":/POI/parking-11.png")); + _points[0x2f01] = Point(QImage(":/IMG/fuel-11.png")); + _points[0x2f02] = Point(QImage(":/IMG/car-rental-11.png")); + _points[0x2f03] = Point(QImage(":/IMG/car-repair-11.png")); + _points[0x2f04] = Point(QImage(":/IMG/airport-11.png")); + _points[0x2f05] = Point(QImage(":/IMG/post-11.png")); + _points[0x2f06] = Point(QImage(":/IMG/bank-11.png")); + _points[0x2f07] = Point(QImage(":/IMG/car-11.png")); + _points[0x2f08] = Point(QImage(":/IMG/bus-11.png")); + _points[0x2f09] = Point(QImage(":/IMG/harbor-11.png")); + _points[0x2f0b] = Point(QImage(":/IMG/parking-11.png")); _points[0x2f0b].setTextFontSize(None); - _points[0x2f0c] = Point(QImage(":/POI/toilet-11.png")); + _points[0x2f0c] = Point(QImage(":/IMG/toilet-11.png")); _points[0x2f0c].setTextFontSize(None); - _points[0x2f10] = Point(QImage(":/POI/hairdresser-11.png")); + _points[0x2f10] = Point(QImage(":/IMG/hairdresser-11.png")); _points[0x2f12].setTextFontSize(None); - _points[0x2f13] = Point(QImage(":/POI/hardware-11.png")); - _points[0x2f17] = Point(QImage(":/POI/bus-11.png")); + _points[0x2f13] = Point(QImage(":/IMG/hardware-11.png")); + _points[0x2f17] = Point(QImage(":/IMG/bus-11.png")); - _points[0x3001] = Point(QImage(":/POI/police-11.png")); - _points[0x3002] = Point(QImage(":/POI/hospital-11.png")); - _points[0x3003] = Point(QImage(":/POI/town-hall-11.png")); - _points[0x3006] = Point(QImage(":/POI/entrance-alt1-11.png")); - _points[0x3007] = Point(QImage(":/POI/town-hall-11.png")); - _points[0x3008] = Point(QImage(":/POI/fire-station-11.png")); + _points[0x3001] = Point(QImage(":/IMG/police-11.png")); + _points[0x3002] = Point(QImage(":/IMG/hospital-11.png")); + _points[0x3003] = Point(QImage(":/IMG/town-hall-11.png")); + _points[0x3006] = Point(QImage(":/IMG/entrance-alt1-11.png")); + _points[0x3007] = Point(QImage(":/IMG/town-hall-11.png")); + _points[0x3008] = Point(QImage(":/IMG/fire-station-11.png")); - _points[0x4000] = Point(QImage(":/POI/golf-11.png")); - _points[0x4300] = Point(QImage(":/POI/harbor-11.png")); - _points[0x4400] = Point(QImage(":/POI/fuel-11.png")); - _points[0x4500] = Point(QImage(":/POI/restaurant-11.png")); - _points[0x4600] = Point(QImage(":/POI/bar-11.png")); - _points[0x4900] = Point(QImage(":/POI/park-11.png")); - _points[0x4a00] = Point(QImage(":/POI/picnic-site-11.png")); - _points[0x4c00] = Point(QImage(":/POI/information-11.png")); - _points[0x4800] = Point(QImage(":/POI/campsite-11.png")); - _points[0x4a00] = Point(QImage(":/POI/picnic-site-11.png")); - _points[0x4b00] = Point(QImage(":/POI/hospital-11.png")); - _points[0x4c00] = Point(QImage(":/POI/information-11.png")); - _points[0x4d00] = Point(QImage(":/POI/parking-11.png")); + _points[0x4000] = Point(QImage(":/IMG/golf-11.png")); + _points[0x4300] = Point(QImage(":/IMG/harbor-11.png")); + _points[0x4400] = Point(QImage(":/IMG/fuel-11.png")); + _points[0x4500] = Point(QImage(":/IMG/restaurant-11.png")); + _points[0x4600] = Point(QImage(":/IMG/bar-11.png")); + _points[0x4900] = Point(QImage(":/IMG/park-11.png")); + _points[0x4a00] = Point(QImage(":/IMG/picnic-site-11.png")); + _points[0x4c00] = Point(QImage(":/IMG/information-11.png")); + _points[0x4800] = Point(QImage(":/IMG/campsite-11.png")); + _points[0x4a00] = Point(QImage(":/IMG/picnic-site-11.png")); + _points[0x4b00] = Point(QImage(":/IMG/hospital-11.png")); + _points[0x4c00] = Point(QImage(":/IMG/information-11.png")); + _points[0x4d00] = Point(QImage(":/IMG/parking-11.png")); _points[0x4d00].setTextFontSize(None); - _points[0x4e00] = Point(QImage(":/POI/toilet-11.png")); + _points[0x4e00] = Point(QImage(":/IMG/toilet-11.png")); _points[0x4e00].setTextFontSize(None); - _points[0x5000] = Point(QImage(":/POI/drinking-water-11.png")); + _points[0x5000] = Point(QImage(":/IMG/drinking-water-11.png")); _points[0x5000].setTextFontSize(None); - _points[0x5100] = Point(QImage(":/POI/telephone-11.png")); - _points[0x5200] = Point(QImage(":/POI/viewpoint-11.png")); - _points[0x5300] = Point(QImage(":/POI/skiing-11.png")); - _points[0x5400] = Point(QImage(":/POI/swimming-11.png")); - _points[0x5500] = Point(QImage(":/POI/dam-11.png")); - _points[0x5700] = Point(QImage(":/POI/danger-11.png")); - _points[0x5800] = Point(QImage(":/POI/roadblock-11.png")); - _points[0x5900] = Point(QImage(":/POI/airport-11.png")); - _points[0x5901] = Point(QImage(":/POI/airport-11.png")); - _points[0x5904] = Point(QImage(":/POI/heliport-11.png")); + _points[0x5100] = Point(QImage(":/IMG/telephone-11.png")); + _points[0x5200] = Point(QImage(":/IMG/viewpoint-11.png")); + _points[0x5300] = Point(QImage(":/IMG/skiing-11.png")); + _points[0x5400] = Point(QImage(":/IMG/swimming-11.png")); + _points[0x5500] = Point(QImage(":/IMG/dam-11.png")); + _points[0x5700] = Point(QImage(":/IMG/danger-11.png")); + _points[0x5800] = Point(QImage(":/IMG/roadblock-11.png")); + _points[0x5900] = Point(QImage(":/IMG/airport-11.png")); + _points[0x5901] = Point(QImage(":/IMG/airport-11.png")); + _points[0x5904] = Point(QImage(":/IMG/heliport-11.png")); - _points[0x6401] = Point(QImage(":/POI/bridge-11.png")); - _points[0x6402] = Point(QImage(":/POI/building-alt1-11.png")); - _points[0x6403] = Point(QImage(":/POI/cemetery-11.png")); - _points[0x6404] = Point(QImage(":/POI/religious-christian-11.png")); - _points[0x6407] = Point(QImage(":/POI/dam-11.png")); - _points[0x6408] = Point(QImage(":/POI/hospital-11.png")); - _points[0x6409] = Point(QImage(":/POI/dam-11.png")); - _points[0x640d] = Point(QImage(":/POI/communications-tower-11.png")); - _points[0x640e] = Point(QImage(":/POI/park-11.png")); - _points[0x640f] = Point(QImage(":/POI/post-11.png")); - _points[0x6411] = Point(QImage(":/POI/communications-tower-11.png")); + _points[0x6401] = Point(QImage(":/IMG/bridge-11.png")); + _points[0x6402] = Point(QImage(":/IMG/building-alt1-11.png")); + _points[0x6403] = Point(QImage(":/IMG/cemetery-11.png")); + _points[0x6404] = Point(QImage(":/IMG/religious-christian-11.png")); + _points[0x6407] = Point(QImage(":/IMG/dam-11.png")); + _points[0x6408] = Point(QImage(":/IMG/hospital-11.png")); + _points[0x6409] = Point(QImage(":/IMG/dam-11.png")); + _points[0x640d] = Point(QImage(":/IMG/communications-tower-11.png")); + _points[0x640e] = Point(QImage(":/IMG/park-11.png")); + _points[0x640f] = Point(QImage(":/IMG/post-11.png")); + _points[0x6411] = Point(QImage(":/IMG/communications-tower-11.png")); - _points[0x6508] = Point(QImage(":/POI/waterfall-11.png")); - _points[0x6513] = Point(QImage(":/POI/wetland-11.png")); - _points[0x6604] = Point(QImage(":/POI/beach-11.png")); - _points[0x6616] = Point(QImage(":/POI/mountain-11.png")); + _points[0x6508] = Point(QImage(":/IMG/waterfall-11.png")); + _points[0x6513] = Point(QImage(":/IMG/wetland-11.png")); + _points[0x6604] = Point(QImage(":/IMG/beach-11.png")); + _points[0x6616] = Point(QImage(":/IMG/mountain-11.png")); // NT types diff --git a/src/map/bsbmap.cpp b/src/map/bsbmap.cpp index 3cb1f542..3758a50f 100644 --- a/src/map/bsbmap.cpp +++ b/src/map/bsbmap.cpp @@ -1,11 +1,11 @@ #include #include #include +#include "common/color.h" #include "image.h" #include "gcs.h" #include "pcs.h" #include "calibrationpoint.h" -#include "color.h" #include "bsbmap.h" diff --git a/src/map/ozf.cpp b/src/map/ozf.cpp index c0654810..7ff7499d 100644 --- a/src/map/ozf.cpp +++ b/src/map/ozf.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "color.h" +#include "common/color.h" #include "ozf.h" diff --git a/src/map/rmap.cpp b/src/map/rmap.cpp index 0af194c3..be0fb38e 100644 --- a/src/map/rmap.cpp +++ b/src/map/rmap.cpp @@ -6,11 +6,11 @@ #include #include "common/rectc.h" #include "common/wgs84.h" +#include "common/color.h" #include "calibrationpoint.h" #include "utm.h" #include "pcs.h" #include "rectd.h" -#include "color.h" #include "rmap.h"