Hello community,

here is the log from the commit of package gpxsee for openSUSE:Factory checked 
in at 2019-06-21 09:58:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpxsee (Old)
 and      /work/SRC/openSUSE:Factory/.gpxsee.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gpxsee"

Fri Jun 21 09:58:44 2019 rev:45 rq:711224 version:7.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/gpxsee/gpxsee.changes    2019-06-01 
09:56:33.171179811 +0200
+++ /work/SRC/openSUSE:Factory/.gpxsee.new.4811/gpxsee.changes  2019-06-21 
09:58:46.716697211 +0200
@@ -1,0 +2,7 @@
+Sat Jun 15 22:36:58 CEST 2019 - [email protected]
+
+- Update to version 7.9
+  * Removed the annoying map view re-zooming on window resize.
+  * Improved POI handling and text rendering in IMG maps.
+
+-------------------------------------------------------------------

Old:
----
  GPXSee-7.8.tar.gz

New:
----
  GPXSee-7.9.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gpxsee.spec ++++++
--- /var/tmp/diff_new_pack.8DAszL/_old  2019-06-21 09:58:48.180699391 +0200
+++ /var/tmp/diff_new_pack.8DAszL/_new  2019-06-21 09:58:48.184699397 +0200
@@ -19,7 +19,7 @@
 # See also http://en.opensuse.org/openSUSE:Specfile_guidelines
 
 Name:           gpxsee
-Version:        7.8
+Version:        7.9
 Release:        1
 Summary:        GPS log file visualization and analysis tool
 License:        GPL-3.0-only
@@ -30,7 +30,6 @@
 BuildRequires:  gcc-c++
 BuildRequires:  make
 %if 0%{?fedora_version}
-%if 0%{?fedora_version} >= 24
 BuildRequires:  qt5-qtbase
 BuildRequires:  qt5-qtbase-gui
 BuildRequires:  qt5-qtbase-devel
@@ -38,9 +37,6 @@
 Recommends: qt5-qtimageformats
 Recommends: qt5-qtpbfimageformat
 %else
-BuildRequires:  libqt4-devel
-%endif
-%endif
 %if 0%{?suse_version}
 BuildRequires:  libQt5Core-devel
 BuildRequires:  libQt5Concurrent-devel
@@ -54,11 +50,26 @@
 Recommends: libQt5Sql5-sqlite
 Recommends: libqt5-qtimageformats
 Recommends: libqt5-qtpbfimageformat
-%endif
+%else
 %if 0%{?rhel_version} || 0%{?centos_version}
 BuildRequires:  libqt4-devel
+%else
+# Mageia
+BuildRequires:  libqt5core-devel
+BuildRequires:  libqt5gui-devel
+BuildRequires:  libqt5concurrent-devel
+BuildRequires:  libqt5widgets-devel
+BuildRequires:  libqt5network-devel
+BuildRequires:  libqt5printsupport-devel
+BuildRequires:  libqt5opengl-devel
+BuildRequires:  libqt5sql-devel
+BuildRequires:  qttools5
+Recommends: qtimageformats5
+Recommends: libqt5-database-plugin-sqlite
+Recommends: libqt5-qtpbfimageformat
+%endif
+%endif
 %endif
-
 
 %description
 GPXSee is a Qt-based tool for visualizing and analyzing GPX, TCX, FIT, KML,
@@ -69,16 +80,21 @@
 %setup -q -n GPXSee-%{version}
 
 %build
-%if 0%{?fedora_version} >= 24
-lrelease-qt5 gpxsee.pro
-%{qmake_qt5} gpxsee.pro
-%else
 %if 0%{?suse_version}
 lrelease-qt5 gpxsee.pro
 %{qmake5} gpxsee.pro
 %else
+%if 0%{?fedora_version}
+lrelease-qt5 gpxsee.pro
+%{qmake_qt5} gpxsee.pro
+%else
+%if 0%{?rhel_version} || 0%{?centos_version}
 lrelease-qt4 gpxsee.pro
 qmake-qt4 PREFIX=/usr gpxsee.pro
+%else
+lrelease gpxsee.pro
+%{qmake_qt5} gpxsee.pro
+%endif
 %endif
 %endif
 make %{?_smp_mflags}

++++++ GPXSee-7.8.tar.gz -> GPXSee-7.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/.appveyor.yml new/GPXSee-7.9/.appveyor.yml
--- old/GPXSee-7.8/.appveyor.yml        2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/.appveyor.yml        2019-06-15 09:25:16.000000000 +0200
@@ -1,4 +1,4 @@
-version: 7.8.{build}
+version: 7.9.{build}
 configuration: Release
 platform: Any CPU
 environment:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/README.md new/GPXSee-7.9/README.md
--- old/GPXSee-7.8/README.md    2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/README.md    2019-06-15 09:25:16.000000000 +0200
@@ -3,7 +3,7 @@
 
 ## Features
 * Opens GPX, TCX, FIT, KML, IGC, NMEA, SLF, LOC, GeoJSON, OziExplorer (PLT, 
RTE, WPT), Garmin CSV and geotagged JPEG files.
-* User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS).
+* User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS, 
QuadTiles).
 * Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases, Garmin IMG 
& JNX maps, TwoNav RMaps, GeoTIFF images).
 * Elevation, speed, heart rate, cadence, power, temperature and gear 
ratio/shifts graphs.
 * Support for DEM files (SRTM HGT).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/gpxsee.pro new/GPXSee-7.9/gpxsee.pro
--- old/GPXSee-7.8/gpxsee.pro   2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/gpxsee.pro   2019-06-15 09:25:16.000000000 +0200
@@ -3,7 +3,7 @@
 } else {
     TARGET = GPXSee
 }
-VERSION = 7.8
+VERSION = 7.9
 
 QT += core \
     gui \
@@ -179,7 +179,8 @@
     src/map/IMG/style.h \
     src/map/IMG/netfile.h \
     src/GUI/limitedcombobox.h \
-    src/GUI/pathtickitem.h
+    src/GUI/pathtickitem.h \
+    src/map/IMG/textitem.h
 SOURCES += src/main.cpp \
     src/common/coordinates.cpp \
     src/common/rectc.cpp \
@@ -309,7 +310,8 @@
     src/map/IMG/vectortile.cpp \
     src/map/IMG/style.cpp \
     src/map/IMG/netfile.cpp \
-    src/GUI/pathtickitem.cpp
+    src/GUI/pathtickitem.cpp \
+    src/map/IMG/textitem.cpp
 
 greaterThan(QT_MAJOR_VERSION, 4) {
     HEADERS += src/data/geojsonparser.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/gpxsee.qrc new/GPXSee-7.9/gpxsee.qrc
--- old/GPXSee-7.8/gpxsee.qrc   2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/gpxsee.qrc   2019-06-15 09:25:16.000000000 +0200
@@ -1,5 +1,6 @@
 <RCC>
        <qresource prefix="/">
+               <!-- GUI -->
                <file alias="gpxsee.png">icons/gpxsee.png</file>
                <file alias="[email protected]">icons/[email protected]</file>
                <file alias="dialog-close.png">icons/GUI/dialog-close.png</file>
@@ -42,5 +43,83 @@
                <file 
alias="[email protected]">icons/GUI/[email protected]</file>
                <file 
alias="applications-internet_32.png">icons/GUI/applications-internet_32.png</file>
                <file 
alias="[email protected]">icons/GUI/[email protected]</file>
+
+               <!-- POI -->
+               <file alias="airfield-11.png">icons/POI/airfield-11.png</file>
+               <file alias="airport-11.png">icons/POI/airport-11.png</file>
+               <file 
alias="amusement-park-11.png">icons/POI/amusement-park-11.png</file>
+               <file alias="bakery-11.png">icons/POI/bakery-11.png</file>
+               <file alias="bank-11.png">icons/POI/bank-11.png</file>
+               <file alias="bar-11.png">icons/POI/bar-11.png</file>
+               <file alias="bbq-11.png">icons/POI/bbq-11.png</file>
+               <file alias="beach-11.png">icons/POI/beach-11.png</file>
+               <file 
alias="bowling-alley-11.png">icons/POI/bowling-alley-11.png</file>
+               <file 
alias="building-alt1-11.png">icons/POI/building-alt1-11.png</file>
+               <file alias="bridge-11.png">icons/POI/bridge-11.png</file>
+               <file alias="bus-11.png">icons/POI/bus-11.png</file>
+               <file alias="cafe-11.png">icons/POI/cafe-11.png</file>
+               <file alias="campsite-11.png">icons/POI/campsite-11.png</file>
+               <file alias="car-11.png">icons/POI/car-11.png</file>
+               <file 
alias="car-rental-11.png">icons/POI/car-rental-11.png</file>
+               <file 
alias="car-repair-11.png">icons/POI/car-repair-11.png</file>
+               <file alias="casino-11.png">icons/POI/casino-11.png</file>
+               <file alias="cemetery-11.png">icons/POI/cemetery-11.png</file>
+               <file alias="cinema-11.png">icons/POI/cinema-11.png</file>
+               <file 
alias="clothing-store-11.png">icons/POI/clothing-store-11.png</file>
+               <file 
alias="communications-tower-11.png">icons/POI/communications-tower-11.png</file>
+               <file alias="dam-11.png">icons/POI/dam-11.png</file>
+               <file alias="danger-11.png">icons/POI/danger-11.png</file>
+               <file 
alias="drinking-water-11.png">icons/POI/drinking-water-11.png</file>
+               <file alias="fast-food-11.png">icons/POI/fast-food-11.png</file>
+               <file 
alias="fire-station-11.png">icons/POI/fire-station-11.png</file>
+               <file 
alias="fitness-centre-11.png">icons/POI/fitness-centre-11.png</file>
+               <file alias="fuel-11.png">icons/POI/fuel-11.png</file>
+               <file alias="furniture-11.png">icons/POI/furniture-11.png</file>
+               <file alias="garden-11.png">icons/POI/garden-11.png</file>
+               <file 
alias="garden-centre-11.png">icons/POI/garden-centre-11.png</file>
+               <file alias="golf-11.png">icons/POI/golf-11.png</file>
+               <file alias="grocery-11.png">icons/POI/grocery-11.png</file>
+               <file 
alias="hairdresser-11.png">icons/POI/hairdresser-11.png</file>
+               <file alias="harbor-11.png">icons/POI/harbor-11.png</file>
+               <file alias="hardware-11.png">icons/POI/hardware-11.png</file>
+               <file alias="heliport-11.png">icons/POI/heliport-11.png</file>
+               <file alias="hospital-11.png">icons/POI/hospital-11.png</file>
+               <file 
alias="information-11.png">icons/POI/information-11.png</file>
+               <file alias="landmark-11.png">icons/POI/landmark-11.png</file>
+               <file alias="library-11.png">icons/POI/library-11.png</file>
+               <file alias="lodging-11.png">icons/POI/lodging-11.png</file>
+               <file alias="mountain-11.png">icons/POI/mountain-11.png</file>
+               <file alias="museum-11.png">icons/POI/museum-11.png</file>
+               <file alias="park-11.png">icons/POI/park-11.png</file>
+               <file alias="parking-11.png">icons/POI/parking-11.png</file>
+               <file alias="pharmacy-11.png">icons/POI/pharmacy-11.png</file>
+               <file 
alias="picnic-site-11.png">icons/POI/picnic-site-11.png</file>
+               <file 
alias="place-of-worship-11.png">icons/POI/place-of-worship-11.png</file>
+               <file alias="police-11.png">icons/POI/police-11.png</file>
+               <file alias="post-11.png">icons/POI/post-11.png</file>
+               <file alias="prison-11.png">icons/POI/prison-11.png</file>
+               <file 
alias="religious-christian-11.png">icons/POI/religious-christian-11.png</file>
+               <file 
alias="religious-jewish-11.png">icons/POI/religious-jewish-11.png</file>
+               <file 
alias="religious-muslim-11.png">icons/POI/religious-muslim-11.png</file>
+               <file 
alias="restaurant-11.png">icons/POI/restaurant-11.png</file>
+               <file 
alias="restaurant-noodle-11.png">icons/POI/restaurant-noodle-11.png</file>
+               <file 
alias="restaurant-pizza-11.png">icons/POI/restaurant-pizza-11.png</file>
+               <file 
alias="restaurant-seafood-11.png">icons/POI/restaurant-seafood-11.png</file>
+               <file alias="roadblock-11.png">icons/POI/roadblock-11.png</file>
+               <file alias="school-11.png">icons/POI/school-11.png</file>
+               <file alias="shelter-11.png">icons/POI/shelter-11.png</file>
+               <file alias="shop-11.png">icons/POI/shop-11.png</file>
+               <file alias="skiing-11.png">icons/POI/skiing-11.png</file>
+               <file alias="soccer-11.png">icons/POI/soccer-11.png</file>
+               <file alias="swimming-11.png">icons/POI/swimming-11.png</file>
+               <file alias="theatre-11.png">icons/POI/theatre-11.png</file>
+               <file alias="telephone-11.png">icons/POI/telephone-11.png</file>
+               <file alias="toilet-11.png">icons/POI/toilet-11.png</file>
+               <file alias="town-hall-11.png">icons/POI/town-hall-11.png</file>
+               <file alias="viewpoint-11.png">icons/POI/viewpoint-11.png</file>
+               <file alias="village-11.png">icons/POI/village-11.png</file>
+               <file alias="waterfall-11.png">icons/POI/waterfall-11.png</file>
+               <file alias="wetland-11.png">icons/POI/wetland-11.png</file>
+               <file alias="zoo-11.png">icons/POI/zoo-11.png</file>
        </qresource>
 </RCC>
Binary files old/GPXSee-7.8/icons/POI/airfield-11.png and 
new/GPXSee-7.9/icons/POI/airfield-11.png differ
Binary files old/GPXSee-7.8/icons/POI/airport-11.png and 
new/GPXSee-7.9/icons/POI/airport-11.png differ
Binary files old/GPXSee-7.8/icons/POI/amusement-park-11.png and 
new/GPXSee-7.9/icons/POI/amusement-park-11.png differ
Binary files old/GPXSee-7.8/icons/POI/bakery-11.png and 
new/GPXSee-7.9/icons/POI/bakery-11.png differ
Binary files old/GPXSee-7.8/icons/POI/bank-11.png and 
new/GPXSee-7.9/icons/POI/bank-11.png differ
Binary files old/GPXSee-7.8/icons/POI/bar-11.png and 
new/GPXSee-7.9/icons/POI/bar-11.png differ
Binary files old/GPXSee-7.8/icons/POI/bbq-11.png and 
new/GPXSee-7.9/icons/POI/bbq-11.png differ
Binary files old/GPXSee-7.8/icons/POI/beach-11.png and 
new/GPXSee-7.9/icons/POI/beach-11.png differ
Binary files old/GPXSee-7.8/icons/POI/bowling-alley-11.png and 
new/GPXSee-7.9/icons/POI/bowling-alley-11.png differ
Binary files old/GPXSee-7.8/icons/POI/bridge-11.png and 
new/GPXSee-7.9/icons/POI/bridge-11.png differ
Binary files old/GPXSee-7.8/icons/POI/building-alt1-11.png and 
new/GPXSee-7.9/icons/POI/building-alt1-11.png differ
Binary files old/GPXSee-7.8/icons/POI/bus-11.png and 
new/GPXSee-7.9/icons/POI/bus-11.png differ
Binary files old/GPXSee-7.8/icons/POI/cafe-11.png and 
new/GPXSee-7.9/icons/POI/cafe-11.png differ
Binary files old/GPXSee-7.8/icons/POI/campsite-11.png and 
new/GPXSee-7.9/icons/POI/campsite-11.png differ
Binary files old/GPXSee-7.8/icons/POI/car-11.png and 
new/GPXSee-7.9/icons/POI/car-11.png differ
Binary files old/GPXSee-7.8/icons/POI/car-rental-11.png and 
new/GPXSee-7.9/icons/POI/car-rental-11.png differ
Binary files old/GPXSee-7.8/icons/POI/car-repair-11.png and 
new/GPXSee-7.9/icons/POI/car-repair-11.png differ
Binary files old/GPXSee-7.8/icons/POI/casino-11.png and 
new/GPXSee-7.9/icons/POI/casino-11.png differ
Binary files old/GPXSee-7.8/icons/POI/cemetery-11.png and 
new/GPXSee-7.9/icons/POI/cemetery-11.png differ
Binary files old/GPXSee-7.8/icons/POI/cinema-11.png and 
new/GPXSee-7.9/icons/POI/cinema-11.png differ
Binary files old/GPXSee-7.8/icons/POI/clothing-store-11.png and 
new/GPXSee-7.9/icons/POI/clothing-store-11.png differ
Binary files old/GPXSee-7.8/icons/POI/communications-tower-11.png and 
new/GPXSee-7.9/icons/POI/communications-tower-11.png differ
Binary files old/GPXSee-7.8/icons/POI/dam-11.png and 
new/GPXSee-7.9/icons/POI/dam-11.png differ
Binary files old/GPXSee-7.8/icons/POI/danger-11.png and 
new/GPXSee-7.9/icons/POI/danger-11.png differ
Binary files old/GPXSee-7.8/icons/POI/drinking-water-11.png and 
new/GPXSee-7.9/icons/POI/drinking-water-11.png differ
Binary files old/GPXSee-7.8/icons/POI/fast-food-11.png and 
new/GPXSee-7.9/icons/POI/fast-food-11.png differ
Binary files old/GPXSee-7.8/icons/POI/fire-station-11.png and 
new/GPXSee-7.9/icons/POI/fire-station-11.png differ
Binary files old/GPXSee-7.8/icons/POI/fitness-centre-11.png and 
new/GPXSee-7.9/icons/POI/fitness-centre-11.png differ
Binary files old/GPXSee-7.8/icons/POI/fuel-11.png and 
new/GPXSee-7.9/icons/POI/fuel-11.png differ
Binary files old/GPXSee-7.8/icons/POI/furniture-11.png and 
new/GPXSee-7.9/icons/POI/furniture-11.png differ
Binary files old/GPXSee-7.8/icons/POI/garden-11.png and 
new/GPXSee-7.9/icons/POI/garden-11.png differ
Binary files old/GPXSee-7.8/icons/POI/garden-centre-11.png and 
new/GPXSee-7.9/icons/POI/garden-centre-11.png differ
Binary files old/GPXSee-7.8/icons/POI/golf-11.png and 
new/GPXSee-7.9/icons/POI/golf-11.png differ
Binary files old/GPXSee-7.8/icons/POI/grocery-11.png and 
new/GPXSee-7.9/icons/POI/grocery-11.png differ
Binary files old/GPXSee-7.8/icons/POI/hairdresser-11.png and 
new/GPXSee-7.9/icons/POI/hairdresser-11.png differ
Binary files old/GPXSee-7.8/icons/POI/harbor-11.png and 
new/GPXSee-7.9/icons/POI/harbor-11.png differ
Binary files old/GPXSee-7.8/icons/POI/hardware-11.png and 
new/GPXSee-7.9/icons/POI/hardware-11.png differ
Binary files old/GPXSee-7.8/icons/POI/heliport-11.png and 
new/GPXSee-7.9/icons/POI/heliport-11.png differ
Binary files old/GPXSee-7.8/icons/POI/hospital-11.png and 
new/GPXSee-7.9/icons/POI/hospital-11.png differ
Binary files old/GPXSee-7.8/icons/POI/information-11.png and 
new/GPXSee-7.9/icons/POI/information-11.png differ
Binary files old/GPXSee-7.8/icons/POI/landmark-11.png and 
new/GPXSee-7.9/icons/POI/landmark-11.png differ
Binary files old/GPXSee-7.8/icons/POI/library-11.png and 
new/GPXSee-7.9/icons/POI/library-11.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/icons/POI/licence.txt 
new/GPXSee-7.9/icons/POI/licence.txt
--- old/GPXSee-7.8/icons/POI/licence.txt        1970-01-01 01:00:00.000000000 
+0100
+++ new/GPXSee-7.9/icons/POI/licence.txt        2019-06-15 09:25:16.000000000 
+0200
@@ -0,0 +1,126 @@
+The POI icons are Mapbox Maki icons (https://labs.mapbox.com/maki-icons/)
+licensed under CC0.
+
+-----
+
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+    HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+     likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+     subject to the limitations in paragraph 4(a), below;
+  v. rights protecting the extraction, dissemination, use and reuse of data
+     in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+     European Parliament and of the Council of 11 March 1996 on the legal
+     protection of databases, and under any national implementation
+     thereof, including any amended or successor version of such
+     directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+     world based on applicable law or treaty, and any national
+     implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+    surrendered, licensed or otherwise affected by this document.
+ b. Affirmer 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, merchantability, fitness for a particular purpose, non
+    infringement, or the absence of latent or other defects, accuracy, or
+    the present or absence of errors, whether or not discoverable, all to
+    the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+    that may apply to the Work or any use thereof, including without
+    limitation any person's Copyright and Related Rights in the Work.
+    Further, Affirmer disclaims responsibility for obtaining any necessary
+    consents, permissions or other rights required for any use of the
+    Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+    party to this document and has no duty or obligation with respect to
+    this CC0 or use of the Work.
Binary files old/GPXSee-7.8/icons/POI/lodging-11.png and 
new/GPXSee-7.9/icons/POI/lodging-11.png differ
Binary files old/GPXSee-7.8/icons/POI/mountain-11.png and 
new/GPXSee-7.9/icons/POI/mountain-11.png differ
Binary files old/GPXSee-7.8/icons/POI/museum-11.png and 
new/GPXSee-7.9/icons/POI/museum-11.png differ
Binary files old/GPXSee-7.8/icons/POI/park-11.png and 
new/GPXSee-7.9/icons/POI/park-11.png differ
Binary files old/GPXSee-7.8/icons/POI/parking-11.png and 
new/GPXSee-7.9/icons/POI/parking-11.png differ
Binary files old/GPXSee-7.8/icons/POI/pharmacy-11.png and 
new/GPXSee-7.9/icons/POI/pharmacy-11.png differ
Binary files old/GPXSee-7.8/icons/POI/picnic-site-11.png and 
new/GPXSee-7.9/icons/POI/picnic-site-11.png differ
Binary files old/GPXSee-7.8/icons/POI/place-of-worship-11.png and 
new/GPXSee-7.9/icons/POI/place-of-worship-11.png differ
Binary files old/GPXSee-7.8/icons/POI/police-11.png and 
new/GPXSee-7.9/icons/POI/police-11.png differ
Binary files old/GPXSee-7.8/icons/POI/post-11.png and 
new/GPXSee-7.9/icons/POI/post-11.png differ
Binary files old/GPXSee-7.8/icons/POI/prison-11.png and 
new/GPXSee-7.9/icons/POI/prison-11.png differ
Binary files old/GPXSee-7.8/icons/POI/religious-christian-11.png and 
new/GPXSee-7.9/icons/POI/religious-christian-11.png differ
Binary files old/GPXSee-7.8/icons/POI/religious-jewish-11.png and 
new/GPXSee-7.9/icons/POI/religious-jewish-11.png differ
Binary files old/GPXSee-7.8/icons/POI/religious-muslim-11.png and 
new/GPXSee-7.9/icons/POI/religious-muslim-11.png differ
Binary files old/GPXSee-7.8/icons/POI/restaurant-11.png and 
new/GPXSee-7.9/icons/POI/restaurant-11.png differ
Binary files old/GPXSee-7.8/icons/POI/restaurant-noodle-11.png and 
new/GPXSee-7.9/icons/POI/restaurant-noodle-11.png differ
Binary files old/GPXSee-7.8/icons/POI/restaurant-pizza-11.png and 
new/GPXSee-7.9/icons/POI/restaurant-pizza-11.png differ
Binary files old/GPXSee-7.8/icons/POI/restaurant-seafood-11.png and 
new/GPXSee-7.9/icons/POI/restaurant-seafood-11.png differ
Binary files old/GPXSee-7.8/icons/POI/roadblock-11.png and 
new/GPXSee-7.9/icons/POI/roadblock-11.png differ
Binary files old/GPXSee-7.8/icons/POI/school-11.png and 
new/GPXSee-7.9/icons/POI/school-11.png differ
Binary files old/GPXSee-7.8/icons/POI/shelter-11.png and 
new/GPXSee-7.9/icons/POI/shelter-11.png differ
Binary files old/GPXSee-7.8/icons/POI/shop-11.png and 
new/GPXSee-7.9/icons/POI/shop-11.png differ
Binary files old/GPXSee-7.8/icons/POI/skiing-11.png and 
new/GPXSee-7.9/icons/POI/skiing-11.png differ
Binary files old/GPXSee-7.8/icons/POI/soccer-11.png and 
new/GPXSee-7.9/icons/POI/soccer-11.png differ
Binary files old/GPXSee-7.8/icons/POI/swimming-11.png and 
new/GPXSee-7.9/icons/POI/swimming-11.png differ
Binary files old/GPXSee-7.8/icons/POI/telephone-11.png and 
new/GPXSee-7.9/icons/POI/telephone-11.png differ
Binary files old/GPXSee-7.8/icons/POI/theatre-11.png and 
new/GPXSee-7.9/icons/POI/theatre-11.png differ
Binary files old/GPXSee-7.8/icons/POI/toilet-11.png and 
new/GPXSee-7.9/icons/POI/toilet-11.png differ
Binary files old/GPXSee-7.8/icons/POI/town-hall-11.png and 
new/GPXSee-7.9/icons/POI/town-hall-11.png differ
Binary files old/GPXSee-7.8/icons/POI/viewpoint-11.png and 
new/GPXSee-7.9/icons/POI/viewpoint-11.png differ
Binary files old/GPXSee-7.8/icons/POI/village-11.png and 
new/GPXSee-7.9/icons/POI/village-11.png differ
Binary files old/GPXSee-7.8/icons/POI/waterfall-11.png and 
new/GPXSee-7.9/icons/POI/waterfall-11.png differ
Binary files old/GPXSee-7.8/icons/POI/wetland-11.png and 
new/GPXSee-7.9/icons/POI/wetland-11.png differ
Binary files old/GPXSee-7.8/icons/POI/zoo-11.png and 
new/GPXSee-7.9/icons/POI/zoo-11.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/lang/gpxsee_fr.ts 
new/GPXSee-7.9/lang/gpxsee_fr.ts
--- old/GPXSee-7.8/lang/gpxsee_fr.ts    2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/lang/gpxsee_fr.ts    2019-06-15 09:25:16.000000000 +0200
@@ -479,7 +479,7 @@
     <message>
         <location filename="../src/GUI/gui.cpp" line="352"/>
         <source>km/mi markers</source>
-        <translation type="unfinished"></translation>
+        <translation>Bornes kilométriques ou milliaires</translation>
     </message>
     <message>
         <location filename="../src/GUI/gui.cpp" line="359"/>
@@ -606,7 +606,7 @@
     <message>
         <location filename="../src/GUI/gui.cpp" line="670"/>
         <source>GPXSee is distributed under the terms of the GNU General 
Public License version 3. For more info about GPXSee visit the project homepage 
at %1.</source>
-        <translation>GPXSee est distribué selon les termes de la licence 
publique générale GNU (version 3). Pour plus d&apos;information sur GPXSee, 
visiter le site du projet sur %1.</translation>
+        <translation>GPXSee est distribué selon les termes de la licence 
publique générale GNU (version 3). Pour plus d&apos;information sur GPXSee, 
visiter le site du projet %1.</translation>
     </message>
     <message>
         <location filename="../src/GUI/gui.cpp" line="697"/>
@@ -666,7 +666,7 @@
     <message>
         <location filename="../src/GUI/gui.cpp" line="733"/>
         <source>Styles directory:</source>
-        <translation type="unfinished"></translation>
+        <translation>Dossier de styles :</translation>
     </message>
     <message>
         <location filename="../src/GUI/gui.cpp" line="1037"/>
@@ -1017,7 +1017,7 @@
     <message>
         <location filename="../src/map/maplist.cpp" line="123"/>
         <source>Garmin IMG maps</source>
-        <translation type="unfinished"></translation>
+        <translation>Cartes Garmin IMG</translation>
     </message>
     <message>
         <location filename="../src/map/maplist.cpp" line="125"/>
@@ -1349,12 +1349,12 @@
     <message>
         <location filename="../src/GUI/optionsdialog.cpp" line="72"/>
         <source>Projection:</source>
-        <translation type="unfinished"></translation>
+        <translation>Projection :</translation>
     </message>
     <message>
         <location filename="../src/GUI/optionsdialog.cpp" line="94"/>
         <source>Vector maps</source>
-        <translation type="unfinished"></translation>
+        <translation>Cartes vectorielles</translation>
     </message>
     <message>
         <location filename="../src/GUI/optionsdialog.cpp" line="147"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/pkg/gpxsee.nsi 
new/GPXSee-7.9/pkg/gpxsee.nsi
--- old/GPXSee-7.8/pkg/gpxsee.nsi       2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/pkg/gpxsee.nsi       2019-06-15 09:25:16.000000000 +0200
@@ -7,7 +7,7 @@
 ; The name of the installer
 Name "GPXSee"
 ; Program version
-!define VERSION "7.8"
+!define VERSION "7.9"
 
 ; The file to write
 OutFile "GPXSee-${VERSION}.exe"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/pkg/gpxsee64.nsi 
new/GPXSee-7.9/pkg/gpxsee64.nsi
--- old/GPXSee-7.8/pkg/gpxsee64.nsi     2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/pkg/gpxsee64.nsi     2019-06-15 09:25:16.000000000 +0200
@@ -7,7 +7,7 @@
 ; The name of the installer
 Name "GPXSee"
 ; Program version
-!define VERSION "7.8"
+!define VERSION "7.9"
 
 ; The file to write
 OutFile "GPXSee-${VERSION}_x64.exe"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/GUI/gui.cpp 
new/GPXSee-7.9/src/GUI/gui.cpp
--- old/GPXSee-7.8/src/GUI/gui.cpp      2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/GUI/gui.cpp      2019-06-15 09:25:16.000000000 +0200
@@ -2216,6 +2216,8 @@
        connect(w, SIGNAL(screenChanged(QScreen*)), this,
          SLOT(screenChanged(QScreen*)));
 #endif // ENABLE_HIDPI
+
+       _mapView->fitContentToSize();
 }
 
 void GUI::screenChanged(QScreen *screen)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/GUI/mapview.cpp 
new/GPXSee-7.9/src/GUI/mapview.cpp
--- old/GPXSee-7.8/src/GUI/mapview.cpp  2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/GUI/mapview.cpp  2019-06-15 09:25:16.000000000 +0200
@@ -39,6 +39,7 @@
        setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        setRenderHint(QPainter::Antialiasing, true);
+       setResizeAnchor(QGraphicsView::AnchorViewCenter);
        setAcceptDrops(false);
 
        _mapScale = new ScaleItem();
@@ -901,17 +902,6 @@
        }
 }
 
-void MapView::resizeEvent(QResizeEvent *event)
-{
-       QGraphicsView::resizeEvent(event);
-
-       int zoom = _map->zoom();
-       if (fitMapZoom() != zoom)
-               rescale();
-
-       centerOn(contentCenter());
-}
-
 void MapView::paintEvent(QPaintEvent *event)
 {
        QPointF scaleScenePos = mapToScene(rect().bottomRight() + QPoint(
@@ -1042,3 +1032,12 @@
        rescale();
        centerOn(_map->ll2xy(center));
 }
+
+void MapView::fitContentToSize()
+{
+       int zoom = _map->zoom();
+       if (fitMapZoom() != zoom)
+               rescale();
+
+       centerOn(contentCenter());
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/GUI/mapview.h 
new/GPXSee-7.9/src/GUI/mapview.h
--- old/GPXSee-7.8/src/GUI/mapview.h    2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/GUI/mapview.h    2019-06-15 09:25:16.000000000 +0200
@@ -85,6 +85,8 @@
        void setDevicePixelRatio(qreal deviceRatio, qreal mapRatio);
        void setProjection(int id);
 
+       void fitContentToSize();
+
 private slots:
        void updatePOI();
        void reloadMap();
@@ -111,7 +113,6 @@
        void wheelEvent(QWheelEvent *event);
        void keyPressEvent(QKeyEvent *event);
        void drawBackground(QPainter *painter, const QRectF &rect);
-       void resizeEvent(QResizeEvent *event);
        void paintEvent(QPaintEvent *event);
        void scrollContentsBy(int dx, int dy);
        void mouseMoveEvent(QMouseEvent *event);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/GUI/optionsdialog.cpp 
new/GPXSee-7.9/src/GUI/optionsdialog.cpp
--- old/GPXSee-7.8/src/GUI/optionsdialog.cpp    2019-05-29 21:24:37.000000000 
+0200
+++ new/GPXSee-7.9/src/GUI/optionsdialog.cpp    2019-06-15 09:25:16.000000000 
+0200
@@ -12,7 +12,6 @@
 #include <QRadioButton>
 #include <QLabel>
 #include <QSysInfo>
-#include <QInputDialog>
 #include "map/pcs.h"
 #include "icons.h"
 #include "colorbox.h"
@@ -35,7 +34,7 @@
 
        return l;
 }
-#endif
+#endif // Q_OS_MAC
 
 QWidget *OptionsDialog::createMapPage()
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/GUI/optionsdialog.h 
new/GPXSee-7.9/src/GUI/optionsdialog.h
--- old/GPXSee-7.8/src/GUI/optionsdialog.h      2019-05-29 21:24:37.000000000 
+0200
+++ new/GPXSee-7.9/src/GUI/optionsdialog.h      2019-06-15 09:25:16.000000000 
+0200
@@ -86,9 +86,6 @@
 public:
        OptionsDialog(Options *options, QWidget *parent = 0);
 
-//private slots:
-//     void projectionChanged(int index);
-
 private:
        QWidget *createMapPage();
        QWidget *createAppearancePage();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/img.cpp 
new/GPXSee-7.9/src/map/IMG/img.cpp
--- old/GPXSee-7.8/src/map/IMG/img.cpp  2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/map/IMG/img.cpp  2019-06-15 09:25:16.000000000 +0200
@@ -255,3 +255,18 @@
 
        return true;
 }
+
+#ifndef QT_NO_DEBUG
+QDebug operator<<(QDebug dbg, const IMG::Point &point)
+{
+       dbg.nospace() << "Point(" << hex << point.type << ", " << point.label
+         << ", " << point.poi << ")";
+       return dbg.space();
+}
+
+QDebug operator<<(QDebug dbg, const IMG::Poly &poly)
+{
+       dbg.nospace() << "Poly(" << hex << poly.type << ", " << poly.label << 
")";
+       return dbg.space();
+}
+#endif // QT_NO_DEBUG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/img.h 
new/GPXSee-7.9/src/map/IMG/img.h
--- old/GPXSee-7.8/src/map/IMG/img.h    2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/map/IMG/img.h    2019-06-15 09:25:16.000000000 +0200
@@ -40,7 +40,7 @@
                quint64 id;
 
                bool operator<(const Point &other) const
-                 {return id < other.id;}
+                 {return id > other.id;}
        };
 
 
@@ -84,4 +84,9 @@
        QString _errorString;
 };
 
+#ifndef QT_NO_DEBUG
+QDebug operator<<(QDebug dbg, const IMG::Point &point);
+QDebug operator<<(QDebug dbg, const IMG::Poly &poly);
+#endif // QT_NO_DEBUG
+
 #endif // IMG_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/rgnfile.cpp 
new/GPXSee-7.9/src/map/IMG/rgnfile.cpp
--- old/GPXSee-7.8/src/map/IMG/rgnfile.cpp      2019-05-29 21:24:37.000000000 
+0200
+++ new/GPXSee-7.9/src/map/IMG/rgnfile.cpp      2019-06-15 09:25:16.000000000 
+0200
@@ -338,7 +338,8 @@
                point.poi = labelPtr & 0x400000;
                if (lbl && (labelPtr & 0x3FFFFF)) {
                        point.label = lbl->label(lblHdl, labelPtr & 0x3FFFFF, 
point.poi);
-                       point.id = ((quint64)lbl->offset())<<24 | (labelPtr & 
0x3FFFFF);
+                       point.id = ((quint64)point.type)<<40 | 
((quint64)lbl->offset())<<24
+                         | (labelPtr & 0x3FFFFF);
                }
 
                points->append(point);
@@ -383,7 +384,8 @@
                        point.poi = labelPtr & 0x400000;
                        if (lbl && (labelPtr & 0x3FFFFF)) {
                                point.label = lbl->label(lblHdl, labelPtr & 
0x3FFFFF, point.poi);
-                               point.id = ((quint64)lbl->offset())<<24 | 
(labelPtr & 0x3FFFFF);
+                               point.id = ((quint64)point.type)<<40
+                                 | ((quint64)lbl->offset())<<24 | (labelPtr & 
0x3FFFFF);
                        }
                }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/style.cpp 
new/GPXSee-7.9/src/map/IMG/style.cpp
--- old/GPXSee-7.8/src/map/IMG/style.cpp        2019-05-29 21:24:37.000000000 
+0200
+++ new/GPXSee-7.9/src/map/IMG/style.cpp        2019-06-15 09:25:16.000000000 
+0200
@@ -75,10 +75,11 @@
          << TYPE(0x42) << TYPE(0x43) << TYPE(0x44) << TYPE(0x45) << TYPE(0x46)
          << TYPE(0x47) << TYPE(0x48) << TYPE(0x49) << TYPE(0x4c) << TYPE(0x4d)
          << TYPE(0x4e) << TYPE(0x4f) << TYPE(0x50) << TYPE(0x51) << TYPE(0x52)
-         << TYPE(0x14) << TYPE(0x15) << TYPE(0x1e) << TYPE(0x1f) << TYPE(0x04)
-         << TYPE(0x05) << TYPE(0x06) << TYPE(0x07) << TYPE(0x08) << TYPE(0x09)
-         << TYPE(0x0a) << TYPE(0x0b) << TYPE(0x0c) << TYPE(0x0d) << TYPE(0x0e)
-         << TYPE(0x0f) << TYPE(0x10) << TYPE(0x11) << TYPE(0x12) << TYPE(0x13);
+         << TYPE(0x14) << TYPE(0x15) << TYPE(0x16) << TYPE(0x1e) << TYPE(0x1f)
+         << TYPE(0x04) << TYPE(0x05) << TYPE(0x06) << TYPE(0x07) << TYPE(0x08)
+         << TYPE(0x09) << TYPE(0x0a) << TYPE(0x0b) << TYPE(0x0c) << TYPE(0x0d)
+         << TYPE(0x0e) << TYPE(0x0f) << TYPE(0x10) << TYPE(0x11) << TYPE(0x12)
+         << TYPE(0x13);
 }
 
 void Style::defaultLineStyle()
@@ -147,6 +148,137 @@
        _lines[TYPE(0x29)].setTextFontSize(Style::None);
 }
 
+void Style::defaultPOIStyle()
+{
+       _points[0x2a00] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a01] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a02] = Point(QImage(":/restaurant-noodle-11.png"));
+       _points[0x2a03] = Point(QImage(":/bbq-11.png"));
+       _points[0x2a04] = Point(QImage(":/restaurant-noodle-11.png"));
+       _points[0x2a05] = Point(QImage(":/bakery-11.png"));
+       _points[0x2a06] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a07] = Point(QImage(":/fast-food-11.png"));
+       _points[0x2a08] = Point(QImage(":/restaurant-pizza-11.png"));
+       _points[0x2a09] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a0a] = Point(QImage(":/restaurant-pizza-11.png"));
+       _points[0x2a0b] = Point(QImage(":/restaurant-seafood-11.png"));
+       _points[0x2a0c] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a0d] = Point(QImage(":/bakery-11.png"));
+       _points[0x2a0e] = Point(QImage(":/cafe-11.png"));
+       _points[0x2a0f] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a10] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a11] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a12] = Point(QImage(":/restaurant-11.png"));
+       _points[0x2a13] = Point(QImage(":/restaurant-11.png"));
+
+       _points[0x2b01] = Point(QImage(":/lodging-11.png"));
+       _points[0x2b02] = Point(QImage(":/lodging-11.png"));
+       _points[0x2b03] = Point(QImage(":/campsite-11.png"));
+       _points[0x2b04] = Point(QImage(":/village-11.png"));
+       _points[0x2b06] = Point(QImage(":/shelter-11.png"));
+
+       _points[0x2c01] = Point(QImage(":/amusement-park-11.png"));
+       _points[0x2c02] = Point(QImage(":/museum-11.png"));
+       _points[0x2c03] = Point(QImage(":/library-11.png"));
+       _points[0x2c04] = Point(QImage(":/landmark-11.png"));
+       _points[0x2c05] = Point(QImage(":/school-11.png"));
+       _points[0x2c06] = Point(QImage(":/garden-11.png"));
+       _points[0x2c07] = Point(QImage(":/zoo-11.png"));
+       _points[0x2c08] = Point(QImage(":/soccer-11.png"));
+       _points[0x2c0a] = Point(QImage(":/bar-11.png"));
+       _points[0x2c0b] = Point(QImage(":/place-of-worship-11.png"));
+       _points[0x2c0d] = Point(QImage(":/religious-muslim-11.png"));
+       _points[0x2c0e] = Point(QImage(":/religious-christian-11.png"));
+       _points[0x2c10] = Point(QImage(":/religious-jewish-11.png"));
+       _points[0x2d01] = Point(QImage(":/theatre-11.png"));
+       _points[0x2d02] = Point(QImage(":/bar-11.png"));
+       _points[0x2d03] = Point(QImage(":/cinema-11.png"));
+       _points[0x2d04] = Point(QImage(":/casino-11.png"));
+       _points[0x2d05] = Point(QImage(":/golf-11.png"));
+       _points[0x2d06] = Point(QImage(":/skiing-11.png"));
+       _points[0x2d07] = Point(QImage(":/bowling-alley-11.png"));
+       _points[0x2d09] = Point(QImage(":/swimming-11.png"));
+       _points[0x2d0a] = Point(QImage(":/fitness-centre-11.png"));
+       _points[0x2d0b] = Point(QImage(":/airfield-11.png"));
+
+       _points[0x2e02] = Point(QImage(":/grocery-11.png"));
+       _points[0x2e05] = Point(QImage(":/pharmacy-11.png"));
+       _points[0x2e07] = Point(QImage(":/clothing-store-11.png"));
+       _points[0x2e08] = Point(QImage(":/garden-centre-11.png"));
+       _points[0x2e09] = Point(QImage(":/furniture-11.png"));
+       _points[0x2e0c] = Point(QImage(":/shop-11.png"));
+
+       _points[0x2f01] = Point(QImage(":/fuel-11.png"));
+       _points[0x2f02] = Point(QImage(":/car-rental-11.png"));
+       _points[0x2f03] = Point(QImage(":/car-repair-11.png"));
+       _points[0x2f04] = Point(QImage(":/airport-11.png"));
+       _points[0x2f05] = Point(QImage(":/post-11.png"));
+       _points[0x2f06] = Point(QImage(":/bank-11.png"));
+       _points[0x2f07] = Point(QImage(":/car-11.png"));
+       _points[0x2f08] = Point(QImage(":/bus-11.png"));
+       _points[0x2f09] = Point(QImage(":/harbor-11.png"));
+       _points[0x2f0b] = Point(QImage(":/parking-11.png"));
+       _points[0x2f0b].setTextFontSize(None);
+       _points[0x2f0c] = Point(QImage(":/toilet-11.png"));
+       _points[0x2f0c].setTextFontSize(None);
+       _points[0x2f10] = Point(QImage(":/hairdresser-11.png"));
+       _points[0x2f12].setTextFontSize(None);
+       _points[0x2f13] = Point(QImage(":/hardware-11.png"));
+       _points[0x2f17] = Point(QImage(":/bus-11.png"));
+
+       _points[0x3001] = Point(QImage(":/police-11.png"));
+       _points[0x3002] = Point(QImage(":/hospital-11.png"));
+       _points[0x3003] = Point(QImage(":/town-hall-11.png"));
+       _points[0x3007] = Point(QImage(":/prison-11.png"));
+       _points[0x3008] = Point(QImage(":/fire-station-11.png"));
+
+       _points[0x4000] = Point(QImage(":/golf-11.png"));
+       _points[0x4300] = Point(QImage(":/harbor-11.png"));
+       _points[0x4400] = Point(QImage(":/fuel-11.png"));
+       _points[0x4500] = Point(QImage(":/restaurant-11.png"));
+       _points[0x4600] = Point(QImage(":/bar-11.png"));
+       _points[0x4900] = Point(QImage(":/park-11.png"));
+       _points[0x4a00] = Point(QImage(":/picnic-site-11.png"));
+       _points[0x4c00] = Point(QImage(":/information-11.png"));
+       _points[0x4800] = Point(QImage(":/campsite-11.png"));
+       _points[0x4a00] = Point(QImage(":/picnic-site-11.png"));
+       _points[0x4b00] = Point(QImage(":/hospital-11.png"));
+       _points[0x4c00] = Point(QImage(":/information-11.png"));
+       _points[0x4d00] = Point(QImage(":/parking-11.png"));
+       _points[0x4d00].setTextFontSize(None);
+       _points[0x4e00] = Point(QImage(":/toilet-11.png"));
+       _points[0x4e00].setTextFontSize(None);
+       _points[0x5000] = Point(QImage(":/drinking-water-11.png"));
+       _points[0x5000].setTextFontSize(None);
+       _points[0x5100] = Point(QImage(":/telephone-11.png"));
+       _points[0x5200] = Point(QImage(":/viewpoint-11.png"));
+       _points[0x5300] = Point(QImage(":/skiing-11.png"));
+       _points[0x5400] = Point(QImage(":/swimming-11.png"));
+       _points[0x5500] = Point(QImage(":/dam-11.png"));
+       _points[0x5700] = Point(QImage(":/danger-11.png"));
+       _points[0x5800] = Point(QImage(":/roadblock-11.png"));
+       _points[0x5900] = Point(QImage(":/airport-11.png"));
+       _points[0x5901] = Point(QImage(":/airport-11.png"));
+       _points[0x5904] = Point(QImage(":/heliport-11.png"));
+
+       _points[0x6401] = Point(QImage(":/bridge-11.png"));
+       _points[0x6402] = Point(QImage(":/building-alt1-11.png"));
+       _points[0x6403] = Point(QImage(":/cemetery-11.png"));
+       _points[0x6404] = Point(QImage(":/religious-christian-11.png"));
+       _points[0x6407] = Point(QImage(":/dam-11.png"));
+       _points[0x6408] = Point(QImage(":/hospital-11.png"));
+       _points[0x6409] = Point(QImage(":/dam-11.png"));
+       _points[0x640d] = Point(QImage(":/communications-tower-11.png"));
+       _points[0x640e] = Point(QImage(":/park-11.png"));
+       _points[0x640f] = Point(QImage(":/post-11.png"));
+       _points[0x6411] = Point(QImage(":/communications-tower-11.png"));
+
+       _points[0x6508] = Point(QImage(":/waterfall-11.png"));
+       _points[0x6513] = Point(QImage(":/wetland-11.png"));
+       _points[0x6604] = Point(QImage(":/beach-11.png"));
+       _points[0x6616] = Point(QImage(":/mountain-11.png"));
+}
+
 static bool readBitmap(SubFile *file, SubFile::Handle &hdl, QImage &img,
   int bpp)
 {
@@ -790,6 +922,7 @@
 {
        defaultLineStyle();
        defaultPolygonStyle();
+       defaultPOIStyle();
 
        if (typ && typ->isValid())
                parseTYPFile(typ);
@@ -830,6 +963,37 @@
        return (type == TYPE(0x62) || type == TYPE(0x63));
 }
 
+bool Style::isSummit(quint32 type)
+{
+       return  (type == 0x6616);
+}
+
+Style::POIClass Style::poiClass(quint32 type)
+{
+       if ((type >= 0x2a00 && type < 0x2b00) || type == 0x2c0a || type == 
0x2d02)
+               return Food;
+       else if (type >= 0x2b00 && type < 0x2c00)
+               return Accommodation;
+       else if (type >= 0x2c00 && type < 0x2e00)
+               return Recreation;
+       else if (type >= 0x2e00 && type < 0x2f00)
+               return Shopping;
+       else if ((type >= 0x2f00 && type < 0x2f0f) || type == 0x2f17)
+               return Transport;
+       else if (type >= 0x2f0f && type < 0x3000)
+               return Services;
+       else if (type >= 0x3000 && type < 0x3100)
+               return Community;
+       else if (type >= 0x4000 && type < 0x6000)
+               return Elementary;
+       else if (type >= 0x6400 && type < 0x6500)
+               return ManmadePlaces;
+       else if (type >= 0x6500 && type < 0x6700)
+               return NaturePlaces;
+       else
+               return Unknown;
+}
+
 #ifndef QT_NO_DEBUG
 static QString penColor(const QPen &pen)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/style.h 
new/GPXSee-7.9/src/map/IMG/style.h
--- old/GPXSee-7.8/src/map/IMG/style.h  2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/map/IMG/style.h  2019-06-15 09:25:16.000000000 +0200
@@ -18,6 +18,20 @@
                Large = 4
        };
 
+       enum POIClass {
+               Unknown,
+               Food,
+               Accommodation,
+               Recreation,
+               Shopping,
+               Transport,
+               Services,
+               Community,
+               Elementary,
+               ManmadePlaces,
+               NaturePlaces
+       };
+
        class Polygon {
        public:
                Polygon() : _brush(Qt::NoBrush), _pen(Qt::NoPen) {}
@@ -91,6 +105,8 @@
 
        static bool isContourLine(quint32 type);
        static bool isSpot(quint32 type);
+       static bool isSummit(quint32 type);
+       static POIClass poiClass(quint32 type);
 
 private:
        struct Section {
@@ -121,6 +137,7 @@
          const Section &section, ItemInfo &info);
        void defaultPolygonStyle();
        void defaultLineStyle();
+       void defaultPOIStyle();
 
        QMap<quint32, Line> _lines;
        QMap<quint32, Polygon> _polygons;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/textitem.cpp 
new/GPXSee-7.9/src/map/IMG/textitem.cpp
--- old/GPXSee-7.8/src/map/IMG/textitem.cpp     1970-01-01 01:00:00.000000000 
+0100
+++ new/GPXSee-7.9/src/map/IMG/textitem.cpp     2019-06-15 09:25:16.000000000 
+0200
@@ -0,0 +1,17 @@
+#include "textitem.h"
+
+bool TextItem::collides(const QList<TextItem*> &list) const
+{
+       QRectF r1(boundingRect());
+
+       for (int i = 0; i < list.size(); i++) {
+               const TextItem* other = list.at(i);
+               QRectF r2(other->boundingRect());
+
+               if (!(r1.isEmpty() || r2.isEmpty() || !r1.intersects(r2)))
+                       if (other->shape().intersects(shape()))
+                               return true;
+       }
+
+       return false;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/textitem.h 
new/GPXSee-7.9/src/map/IMG/textitem.h
--- old/GPXSee-7.8/src/map/IMG/textitem.h       1970-01-01 01:00:00.000000000 
+0100
+++ new/GPXSee-7.9/src/map/IMG/textitem.h       2019-06-15 09:25:16.000000000 
+0200
@@ -0,0 +1,22 @@
+#ifndef TEXTITEM_H
+#define TEXTITEM_H
+
+#include <QList>
+#include <QRectF>
+#include <QPainterPath>
+
+class QPainter;
+
+class TextItem
+{
+public:
+       virtual ~TextItem() {}
+
+       virtual QPainterPath shape() const = 0;
+       virtual QRectF boundingRect() const = 0;
+       virtual void paint(QPainter *painter) const = 0;
+
+       bool collides(const QList<TextItem*> &list) const;
+};
+
+#endif // TEXTITEM_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/textpathitem.cpp 
new/GPXSee-7.9/src/map/IMG/textpathitem.cpp
--- old/GPXSee-7.8/src/map/IMG/textpathitem.cpp 2019-05-29 21:24:37.000000000 
+0200
+++ new/GPXSee-7.9/src/map/IMG/textpathitem.cpp 2019-06-15 09:25:16.000000000 
+0200
@@ -154,23 +154,6 @@
        _rect = _shape.boundingRect();
 }
 
-bool TextPathItem::collides(const QVector<TextPathItem> &list) const
-{
-       if (_rect.isEmpty())
-               return false;
-
-       for (int i = 0; i < list.size(); i++) {
-               const TextPathItem &other = list.at(i);
-               if (other._rect.isEmpty() || !_rect.intersects(other._rect))
-                       continue;
-
-               if (other._shape.intersects(_shape))
-                       return true;
-       }
-
-       return false;
-}
-
 void TextPathItem::paint(QPainter *painter) const
 {
        QFontMetrics fm(*_font);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/textpathitem.h 
new/GPXSee-7.9/src/map/IMG/textpathitem.h
--- old/GPXSee-7.8/src/map/IMG/textpathitem.h   2019-05-29 21:24:37.000000000 
+0200
+++ new/GPXSee-7.9/src/map/IMG/textpathitem.h   2019-06-15 09:25:16.000000000 
+0200
@@ -3,9 +3,9 @@
 
 #include <QVector>
 #include <QPainterPath>
-#include "img.h"
+#include "textitem.h"
 
-class TextPathItem
+class TextPathItem : public TextItem
 {
 public:
        TextPathItem() : _text(0), _font(0), _color(0) {}
@@ -13,7 +13,9 @@
          const QRect &tileRect, const QFont *font, const QColor *color);
 
        bool isValid() const {return !_path.isEmpty();}
-       bool collides(const QVector<TextPathItem> &list) const;
+
+       QPainterPath shape() const {return _shape;}
+       QRectF boundingRect() const {return _rect;}
        void paint(QPainter *painter) const;
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/textpointitem.cpp 
new/GPXSee-7.9/src/map/IMG/textpointitem.cpp
--- old/GPXSee-7.8/src/map/IMG/textpointitem.cpp        2019-05-29 
21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/map/IMG/textpointitem.cpp        2019-06-15 
09:25:16.000000000 +0200
@@ -18,6 +18,7 @@
                QFontMetrics fm(*font);
                int limit = font->pixelSize() * MAX_TEXT_WIDTH;
                _textRect = fm.boundingRect(QRect(0, 0, limit, 0), FLAGS, 
*text);
+               _textRect.adjust(0, 0, 1, 1);
        }
        if (img) {
                iconRect = QRect(QPoint(point.x() - img->width()/2, point.y()
@@ -28,15 +29,7 @@
                _textRect.moveCenter(point);
 
        _rect = _textRect | iconRect;
-}
-
-bool TextPointItem::collides(const QVector<TextPointItem> &list) const
-{
-       for (int i = 0; i < list.size(); i++)
-               if (list.at(i)._rect.intersects(_rect))
-                       return true;
-
-       return false;
+       _shape.addRect(_rect);
 }
 
 void TextPointItem::paint(QPainter *painter) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/IMG/textpointitem.h 
new/GPXSee-7.9/src/map/IMG/textpointitem.h
--- old/GPXSee-7.8/src/map/IMG/textpointitem.h  2019-05-29 21:24:37.000000000 
+0200
+++ new/GPXSee-7.9/src/map/IMG/textpointitem.h  2019-06-15 09:25:16.000000000 
+0200
@@ -4,20 +4,24 @@
 #include <QRect>
 #include <QString>
 #include <QVector>
+#include "textitem.h"
 
 class QPainter;
 class QFont;
 class QImage;
 class QColor;
 
-class TextPointItem
+class TextPointItem : public TextItem
 {
 public:
        TextPointItem() : _text(0), _font(0), _img(0) {}
        TextPointItem(const QPoint &point, const QString *text, const QFont 
*font,
          const QImage *img, const QColor *color);
 
-       bool collides(const QVector<TextPointItem> &list) const;
+       bool isValid() const {return !_rect.isEmpty();}
+
+       QRectF boundingRect() const {return _rect;}
+       QPainterPath shape() const {return _shape;}
        void paint(QPainter *painter) const;
 
 private:
@@ -26,6 +30,7 @@
        const QImage *_img;
        const QColor *_color;
        QRect _rect, _textRect;
+       QPainterPath _shape;
 };
 
 #endif // TEXTPOINTITEM_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/imgmap.cpp 
new/GPXSee-7.9/src/map/imgmap.cpp
--- old/GPXSee-7.8/src/map/imgmap.cpp   2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/map/imgmap.cpp   2019-06-15 09:25:16.000000000 +0200
@@ -24,9 +24,7 @@
 #define SMALL_FONT_SIZE   10
 #define POI_FONT_SIZE      9
 
-#define LINE_TEXT_MIN_ZOOM   23
-#define POI_MIN_ZOOM         25
-#define POI_TEXT_MIN_ZOOM    26
+#define LINE_TEXT_MIN_ZOOM   22
 
 class RasterTile
 {
@@ -45,6 +43,12 @@
 
        void load()
        {
+               QList<TextItem*> textItems;
+
+               _map->processPolygons(_polygons);
+               _map->processPoints(_points, textItems);
+               _map->processLines(_lines, _xy, textItems);
+
                _img.fill(Qt::transparent);
 
                QPainter painter(&_img);
@@ -53,8 +57,10 @@
                painter.translate(-_xy.x(), -_xy.y());
 
                _map->drawPolygons(&painter, _polygons);
-               _map->drawLines(&painter, _lines, _xy);
-               _map->drawPoints(&painter, _points);
+               _map->drawLines(&painter, _lines);
+               _map->drawTextItems(&painter, textItems);
+
+               qDeleteAll(textItems);
        }
 
 private:
@@ -76,6 +82,26 @@
                str = QString::number(qRound(number * 0.3048));
 }
 
+static int minPOIZoom(Style::POIClass cl)
+{
+       switch (cl) {
+               case Style::Food:
+               case Style::Shopping:
+               case Style::Services:
+                       return 27;
+               case Style::Accommodation:
+               case Style::Recreation:
+                       return 25;
+               case Style::ManmadePlaces:
+               case Style::NaturePlaces:
+               case Style::Transport:
+               case Style::Community:
+               case Style::Elementary:
+                       return 23;
+               default:
+                       return 0;
+       }
+}
 
 IMGMap::IMGMap(const QString &fileName, QObject *parent)
   : Map(parent), _fileName(fileName), _img(fileName),
@@ -171,20 +197,15 @@
 }
 
 
-void IMGMap::drawPolygons(QPainter *painter, QList<IMG::Poly> &polygons)
+void IMGMap::drawPolygons(QPainter *painter, const QList<IMG::Poly> &polygons)
 {
        for (int n = 0; n < _img.style().drawOrder().size(); n++) {
                for (int i = 0; i < polygons.size(); i++) {
-                       IMG::Poly &poly = polygons[i];
+                       const IMG::Poly &poly = polygons.at(i);
                        if (poly.type != _img.style().drawOrder().at(n))
                                continue;
                        const Style::Polygon &style = 
_img.style().polygon(poly.type);
 
-                       for (int j = 0; j < poly.points.size(); j++) {
-                               QPointF &p = poly.points[j];
-                               p = ll2xy(Coordinates(p.x(), p.y()));
-                       }
-
                        painter->setPen(style.pen());
                        painter->setBrush(style.brush());
                        painter->drawPolygon(poly.points);
@@ -192,19 +213,8 @@
        }
 }
 
-void IMGMap::drawLines(QPainter *painter, QList<IMG::Poly> &lines,
-  const QPoint &tile)
+void IMGMap::drawLines(QPainter *painter, const QList<IMG::Poly> &lines)
 {
-       qStableSort(lines);
-
-       for (int i = 0; i < lines.size(); i++) {
-               IMG::Poly &poly = lines[i];
-               for (int j = 0; j < poly.points.size(); j++) {
-                       QPointF &p = poly.points[j];
-                       p = ll2xy(Coordinates(p.x(), p.y()));
-               }
-       }
-
        painter->setBrush(Qt::NoBrush);
 
        for (int i = 0; i < lines.size(); i++) {
@@ -229,12 +239,42 @@
                        painter->drawPolyline(poly.points);
                }
        }
+}
+
+void IMGMap::drawTextItems(QPainter *painter, const QList<TextItem*> 
&textItems)
+{
+       for (int i = 0; i < textItems.size(); i++)
+               textItems.at(i)->paint(painter);
+}
+
+
+void IMGMap::processPolygons(QList<IMG::Poly> &polygons)
+{
+       for (int i = 0; i < polygons.size(); i++) {
+               IMG::Poly &poly = polygons[i];
+               for (int j = 0; j < poly.points.size(); j++) {
+                       QPointF &p = poly.points[j];
+                       p = ll2xy(Coordinates(p.x(), p.y()));
+               }
+       }
+}
+
+void IMGMap::processLines(QList<IMG::Poly> &lines, const QPoint &tile,
+  QList<TextItem*> &textItems)
+{
+       qStableSort(lines);
+
+       for (int i = 0; i < lines.size(); i++) {
+               IMG::Poly &poly = lines[i];
+               for (int j = 0; j < poly.points.size(); j++) {
+                       QPointF &p = poly.points[j];
+                       p = ll2xy(Coordinates(p.x(), p.y()));
+               }
+       }
 
        if (_zoom < LINE_TEXT_MIN_ZOOM)
                return;
 
-       QVector<TextPathItem> items;
-
        for (int i = 0; i < lines.size(); i++) {
                IMG::Poly &poly = lines[i];
                const Style::Line &style = _img.style().line(poly.type);
@@ -261,36 +301,37 @@
                const QColor *color = style.textColor().isValid()
                  ? &style.textColor() : 0;
 
-               TextPathItem item(poly.points, &poly.label, QRect(tile,
-                 QSize(TILE_SIZE, TILE_SIZE)), font, color);
-               if (item.isValid() && !item.collides(items))
-                       items.append(item);
+               TextPathItem *item = new TextPathItem(poly.points, &poly.label,
+                 QRect(tile, QSize(TILE_SIZE, TILE_SIZE)), font, color);
+               if (item->isValid() && !item->collides(textItems))
+                       textItems.append(item);
+               else
+                       delete item;
        }
-
-       for (int i = 0; i < items.size(); i++)
-               items.at(i).paint(painter);
 }
 
-void IMGMap::drawPoints(QPainter *painter, QList<IMG::Point> &points)
+void IMGMap::processPoints(QList<IMG::Point> &points,
+  QList<TextItem*> &textItems)
 {
        qSort(points);
 
-       QVector<TextPointItem> items;
-
        for (int i = 0; i < points.size(); i++) {
                IMG::Point &point = points[i];
+
                const Style::Point &style = _img.style().point(point.type);
 
-               if (point.poi && _zoom < POI_MIN_ZOOM)
+               if (point.poi && _zoom < 
minPOIZoom(Style::poiClass(point.type)))
                        continue;
 
-               const QString *label = ((point.poi && _zoom < POI_TEXT_MIN_ZOOM)
-                 || point.label.isEmpty()) ? 0 : &(point.label);
+               const QString *label = point.label.isEmpty() ? 0 : 
&(point.label);
                const QImage *img = style.img().isNull() ? 0 : &style.img();
                const QFont *font = 0;
-               if (point.poi)
-                       font = &_poiFont;
-               else {
+               if (point.poi) {
+                       if (style.textFontSize() == Style::None)
+                               label = 0;
+                       else
+                               font = &_poiFont;
+               } else {
                        switch (style.textFontSize()) {
                                case Style::None:
                                        label = 0;
@@ -313,15 +354,19 @@
 
                if (Style::isSpot(point.type))
                        convertUnits(point.label);
+               if (Style::isSummit(point.type) && !point.label.isEmpty()) {
+                       QStringList list = point.label.split(" ");
+                       convertUnits(list.last());
+                       point.label = list.join(" ");
+               }
 
-               TextPointItem item(ll2xy(point.coordinates).toPoint(), label, 
font, img,
-                 color);
-               if (!item.collides(items))
-                       items.append(item);
+               TextPointItem *item = new TextPointItem(
+                 ll2xy(point.coordinates).toPoint(), label, font, img, color);
+               if (item->isValid() && !item->collides(textItems))
+                       textItems.append(item);
+               else
+                       delete item;
        }
-
-       for (int i = 0; i < items.size(); i++)
-               items.at(i).paint(painter);
 }
 
 static void render(RasterTile &tile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/imgmap.h 
new/GPXSee-7.9/src/map/imgmap.h
--- old/GPXSee-7.8/src/map/imgmap.h     2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/map/imgmap.h     2019-06-15 09:25:16.000000000 +0200
@@ -8,6 +8,7 @@
 #include "common/range.h"
 #include "IMG/img.h"
 
+class TextItem;
 
 class IMGMap : public Map
 {
@@ -41,10 +42,14 @@
 
        Transform transform(int zoom) const;
        void updateTransform();
-       void drawPolygons(QPainter *painter, QList<IMG::Poly> &polygons);
-       void drawLines(QPainter *painter, QList<IMG::Poly> &lines,
-         const QPoint &tile);
-       void drawPoints(QPainter *painter, QList<IMG::Point> &points);
+       void drawPolygons(QPainter *painter, const QList<IMG::Poly> &polygons);
+       void drawLines(QPainter *painter, const QList<IMG::Poly> &lines);
+       void drawTextItems(QPainter *painter, const QList<TextItem*> 
&textItems);
+
+       void processPolygons(QList<IMG::Poly> &polygons);
+       void processLines(QList<IMG::Poly> &lines, const QPoint &tile,
+         QList<TextItem*> &textItems);
+       void processPoints(QList<IMG::Point> &points, QList<TextItem*> 
&textItems);
 
        QString _fileName;
        IMG _img;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-7.8/src/map/map.cpp 
new/GPXSee-7.9/src/map/map.cpp
--- old/GPXSee-7.8/src/map/map.cpp      2019-05-29 21:24:37.000000000 +0200
+++ new/GPXSee-7.9/src/map/map.cpp      2019-06-15 09:25:16.000000000 +0200
@@ -1,6 +1,5 @@
 #include <QLineF>
 #include "map.h"
-#include "pcs.h"
 
 qreal Map::resolution(const QRectF &rect)
 {

++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.8DAszL/_old  2019-06-21 09:58:48.512699885 +0200
+++ /var/tmp/diff_new_pack.8DAszL/_new  2019-06-21 09:58:48.516699891 +0200
@@ -1,5 +1,5 @@
 pkgname=gpxsee
-pkgver=7.8
+pkgver=7.9
 pkgrel=1
 pkgdesc='GPS log files visualizing and analyzing tool'
 arch=('i686' 'x86_64')

++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.8DAszL/_old  2019-06-21 09:58:48.540699926 +0200
+++ /var/tmp/diff_new_pack.8DAszL/_new  2019-06-21 09:58:48.540699926 +0200
@@ -1,3 +1,10 @@
+gpxsee (7.9) stable; urgency=low
+
+  * Removed the annoying map view re-zooming on window resize.
+  * Improved POI handling and text rendering in IMG maps.
+
+ -- Martin Tuma <[email protected]>  Sat, 15 Jun 2019 22:44:41 +0200
+
 gpxsee (7.8) stable; urgency=low
 
   * Added support for QuadTiles maps.

++++++ gpxsee.dsc ++++++
--- /var/tmp/diff_new_pack.8DAszL/_old  2019-06-21 09:58:48.600700016 +0200
+++ /var/tmp/diff_new_pack.8DAszL/_new  2019-06-21 09:58:48.604700022 +0200
@@ -1,9 +1,9 @@
 Format: 1.0
 Source: gpxsee
-Version: 7.8
+Version: 7.9
 Binary: gpxsee
 Maintainer: Martin Tuma <[email protected]>
 Architecture: any
 Build-Depends: debhelper (>= 9), qtbase5-dev, qtbase5-dev-tools, qt5-qmake, 
qttools5-dev-tools, libqt5opengl5-dev
 Files:
- 00000000000000000000000000000000 0 GPXSee-7.8.tar.gz
+ 00000000000000000000000000000000 0 GPXSee-7.9.tar.gz


Reply via email to