Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gpxsee for openSUSE:Factory checked 
in at 2022-11-27 12:53:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpxsee (Old)
 and      /work/SRC/openSUSE:Factory/.gpxsee.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gpxsee"

Sun Nov 27 12:53:07 2022 rev:97 rq:1038409 version:11.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/gpxsee/gpxsee.changes    2022-11-17 
17:25:13.209292618 +0100
+++ /work/SRC/openSUSE:Factory/.gpxsee.new.1597/gpxsee.changes  2022-11-27 
12:53:19.691311051 +0100
@@ -1,0 +2,7 @@
+Sat Nov 26 20:10:40 CET 2022 - [email protected]
+
+- Update to version 11.10
+  * Fixed broken Inland ECDIS rendering.
+  * Improved ENC maps render style.
+
+-------------------------------------------------------------------

Old:
----
  GPXSee-11.9.tar.gz

New:
----
  GPXSee-11.10.tar.gz

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

Other differences:
------------------
++++++ gpxsee.spec ++++++
--- /var/tmp/diff_new_pack.67xS6t/_old  2022-11-27 12:53:20.499315739 +0100
+++ /var/tmp/diff_new_pack.67xS6t/_new  2022-11-27 12:53:20.503315763 +0100
@@ -19,7 +19,7 @@
 # See also http://en.opensuse.org/openSUSE:Specfile_guidelines
 
 Name:           gpxsee
-Version:        11.9
+Version:        11.10
 Release:        1
 Summary:        GPS log file visualization and analysis tool
 License:        GPL-3.0-only

++++++ GPXSee-11.9.tar.gz -> GPXSee-11.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/.appveyor.yml 
new/GPXSee-11.10/.appveyor.yml
--- old/GPXSee-11.9/.appveyor.yml       2022-11-17 13:26:45.000000000 +0100
+++ new/GPXSee-11.10/.appveyor.yml      2022-11-26 19:22:09.000000000 +0100
@@ -1,4 +1,4 @@
-version: 11.9.{build}
+version: 11.10.{build}
 
 configuration:
   - Release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/.github/workflows/android.yml 
new/GPXSee-11.10/.github/workflows/android.yml
--- old/GPXSee-11.9/.github/workflows/android.yml       2022-11-17 
13:26:45.000000000 +0100
+++ new/GPXSee-11.10/.github/workflows/android.yml      2022-11-26 
19:22:09.000000000 +0100
@@ -26,12 +26,12 @@
       - name: Setup NDK path
         run: echo "ANDROID_NDK_ROOT=${ANDROID_HOME}/ndk/23.1.7779620/" >> 
$GITHUB_ENV
       - name: Install Qt (Desktop)
-        uses: jurplel/install-qt-action@v2
+        uses: jurplel/install-qt-action@v3
         with:
           aqtversion: '==2.1.0'
           version: '6.4.0'
       - name: Install Qt (Android)
-        uses: jurplel/install-qt-action@v2
+        uses: jurplel/install-qt-action@v3
         with:
           aqtversion: '==2.1.0'
           version: '6.4.0'
@@ -47,7 +47,7 @@
       - name: Build project
         run:  make -j2 apk
       - name: Upload artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: GPXSee-armv7.apk
           path: android-build/build/outputs/apk/debug/android-build-debug.apk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/.github/workflows/linux.yml 
new/GPXSee-11.10/.github/workflows/linux.yml
--- old/GPXSee-11.9/.github/workflows/linux.yml 2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/.github/workflows/linux.yml        2022-11-26 
19:22:09.000000000 +0100
@@ -11,7 +11,7 @@
     runs-on: ubuntu-20.04
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - name: Install dependencies
         run: |
           sudo apt-get update
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/.github/workflows/osx.yml 
new/GPXSee-11.10/.github/workflows/osx.yml
--- old/GPXSee-11.9/.github/workflows/osx.yml   2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/.github/workflows/osx.yml  2022-11-26 19:22:09.000000000 
+0100
@@ -13,7 +13,7 @@
       - name: Set environment variables
         run: echo "PATH=/usr/local/opt/qt@5/bin:$PATH" >> $GITHUB_ENV
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - name: Install dependencies
         run: brew install qt5
       - name: Create localization
@@ -25,7 +25,7 @@
       - name: Create DMG
         run: macdeployqt GPXSee.app -dmg
       - name: Upload artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: GPXSee-qt5.dmg
           path: GPXSee.dmg
@@ -37,7 +37,7 @@
       - name: Set environment variables
         run: echo "PATH=/usr/local/opt/qt@6/bin:$PATH" >> $GITHUB_ENV
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - name: Install dependencies
         run: brew install qt6
       - name: Create localization
@@ -49,7 +49,7 @@
       - name: Create DMG
         run: macdeployqt GPXSee.app -dmg
       - name: Upload artifacts
-        uses: actions/upload-artifact@v2
+        uses: actions/upload-artifact@v3
         with:
           name: GPXSee-qt6.dmg
           path: GPXSee.dmg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/README.md new/GPXSee-11.10/README.md
--- old/GPXSee-11.9/README.md   2022-11-17 13:26:45.000000000 +0100
+++ new/GPXSee-11.10/README.md  2022-11-26 19:22:09.000000000 +0100
@@ -10,7 +10,7 @@
   QuadTiles).
 * Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases,
   Garmin IMG/GMAP & JNX maps, TwoNav RMaps, GeoTIFF images, BSB charts,
-  ENC charts KMZ maps, AlpineQuest maps, Locus/OsmAnd/RMaps SQLite maps,
+  ENC charts, KMZ maps, AlpineQuest maps, Locus/OsmAnd/RMaps SQLite maps,
   Mapsforge vector maps, QCT maps, GEMF maps, Osmdroid SQLite maps, Orux maps,
   ESRI World-File georeferenced images).
 * Elevation, speed, heart rate, cadence, power, temperature and gear 
ratio/shifts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/gpxsee.pro new/GPXSee-11.10/gpxsee.pro
--- old/GPXSee-11.9/gpxsee.pro  2022-11-17 13:26:45.000000000 +0100
+++ new/GPXSee-11.10/gpxsee.pro 2022-11-26 19:22:09.000000000 +0100
@@ -3,7 +3,7 @@
 } else {
     TARGET = GPXSee
 }
-VERSION = 11.9
+VERSION = 11.10
 
 QT += core \
     gui \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/gpxsee.qrc new/GPXSee-11.10/gpxsee.qrc
--- old/GPXSee-11.9/gpxsee.qrc  2022-11-17 13:26:45.000000000 +0100
+++ new/GPXSee-11.10/gpxsee.qrc 2022-11-26 19:22:09.000000000 +0100
@@ -173,6 +173,19 @@
                <file alias="platform.png">icons/map/marine/platform.png</file>
                <file 
alias="ferry-line.png">icons/map/marine/ferry-line.png</file>
                <file 
alias="dw-route-line.png">icons/map/marine/dw-route-line.png</file>
+               <file 
alias="fence-line.png">icons/map/marine/fence-line.png</file>
+               <file alias="crane.png">icons/map/marine/crane.png</file>
+               <file 
alias="distance-mark.png">icons/map/marine/distance-mark.png</file>
+               <file 
alias="conveyor-line.png">icons/map/marine/conveyor-line.png</file>
+               <file 
alias="pipeline-overhead.png">icons/map/marine/pipeline-overhead.png</file>
+               <file 
alias="coast-guard.png">icons/map/marine/coast-guard.png</file>
+               <file alias="monument.png">icons/map/marine/monument.png</file>
+               <file alias="radio.png">icons/map/marine/radio.png</file>
+               <file alias="radar.png">icons/map/marine/radar.png</file>
+               <file 
alias="radar-transponder.png">icons/map/marine/radar-transponder.png</file>
+               <file alias="silo.png">icons/map/marine/silo.png</file>
+               <file 
alias="turning-basin.png">icons/map/marine/turning-basin.png</file>
+               <file 
alias="entry-prohibited-line.png">icons/map/marine/entry-prohibited-line.png</file>
        </qresource>
 
        <!-- Mapsforge rendertheme -->
Binary files old/GPXSee-11.9/icons/map/marine/coast-guard.png and 
new/GPXSee-11.10/icons/map/marine/coast-guard.png differ
Binary files old/GPXSee-11.9/icons/map/marine/conveyor-line.png and 
new/GPXSee-11.10/icons/map/marine/conveyor-line.png differ
Binary files old/GPXSee-11.9/icons/map/marine/crane.png and 
new/GPXSee-11.10/icons/map/marine/crane.png differ
Binary files old/GPXSee-11.9/icons/map/marine/distance-mark.png and 
new/GPXSee-11.10/icons/map/marine/distance-mark.png differ
Binary files old/GPXSee-11.9/icons/map/marine/entry-prohibited-line.png and 
new/GPXSee-11.10/icons/map/marine/entry-prohibited-line.png differ
Binary files old/GPXSee-11.9/icons/map/marine/fence-line.png and 
new/GPXSee-11.10/icons/map/marine/fence-line.png differ
Binary files old/GPXSee-11.9/icons/map/marine/monument.png and 
new/GPXSee-11.10/icons/map/marine/monument.png differ
Binary files old/GPXSee-11.9/icons/map/marine/pipeline-overhead.png and 
new/GPXSee-11.10/icons/map/marine/pipeline-overhead.png differ
Binary files old/GPXSee-11.9/icons/map/marine/radar-transponder.png and 
new/GPXSee-11.10/icons/map/marine/radar-transponder.png differ
Binary files old/GPXSee-11.9/icons/map/marine/radar.png and 
new/GPXSee-11.10/icons/map/marine/radar.png differ
Binary files old/GPXSee-11.9/icons/map/marine/radio.png and 
new/GPXSee-11.10/icons/map/marine/radio.png differ
Binary files old/GPXSee-11.9/icons/map/marine/silo.png and 
new/GPXSee-11.10/icons/map/marine/silo.png differ
Binary files old/GPXSee-11.9/icons/map/marine/turning-basin.png and 
new/GPXSee-11.10/icons/map/marine/turning-basin.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/pkg/gpxsee64.nsi 
new/GPXSee-11.10/pkg/gpxsee64.nsi
--- old/GPXSee-11.9/pkg/gpxsee64.nsi    2022-11-17 13:26:45.000000000 +0100
+++ new/GPXSee-11.10/pkg/gpxsee64.nsi   2022-11-26 19:22:09.000000000 +0100
@@ -37,7 +37,7 @@
 ; The name of the installer
 Name "GPXSee"
 ; Program version
-!define VERSION "11.9"
+!define VERSION "11.10"
 
 ; The file to write
 OutFile "GPXSee-${VERSION}_x64.exe"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/common/downloader.cpp 
new/GPXSee-11.10/src/common/downloader.cpp
--- old/GPXSee-11.9/src/common/downloader.cpp   2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/common/downloader.cpp  2022-11-26 19:22:09.000000000 
+0100
@@ -7,12 +7,18 @@
 #include "downloader.h"
 
 
-#if defined(Q_OS_LINUX)
+#if defined(Q_OS_ANDROID)
+#define PLATFORM_STR "Android"
+#elif defined(Q_OS_LINUX)
 #define PLATFORM_STR "Linux"
 #elif defined(Q_OS_WIN32)
 #define PLATFORM_STR "Windows"
 #elif defined(Q_OS_MAC)
 #define PLATFORM_STR "OS X"
+#elif defined(Q_OS_BSD4)
+#define PLATFORM_STR "BSD"
+#elif defined(Q_OS_HAIKU)
+#define PLATFORM_STR "Haiku"
 #else
 #define PLATFORM_STR "Unknown"
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/attributes.h 
new/GPXSee-11.10/src/map/ENC/attributes.h
--- old/GPXSee-11.9/src/map/ENC/attributes.h    2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/map/ENC/attributes.h   2022-11-26 19:22:09.000000000 
+0100
@@ -3,6 +3,7 @@
 
 #define CATACH 8
 #define CATBUA 10
+#define CATDIS 21
 #define CATHAF 30
 #define CATLMK 35
 #define CATMOR 40
@@ -17,4 +18,9 @@
 #define VALDCO 174
 #define WATLEV 187
 
+#define I_CATACH 17000
+#define I_RESTRN 17004
+#define I_WTWDIS 17064
+#define I_HUNITS 17103
+
 #endif // ENC_ATTRIBUTES_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/iso8211.cpp 
new/GPXSee-11.10/src/map/ENC/iso8211.cpp
--- old/GPXSee-11.9/src/map/ENC/iso8211.cpp     2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/map/ENC/iso8211.cpp    2022-11-26 19:22:09.000000000 
+0100
@@ -194,7 +194,7 @@
        int len = readDR(file, fields);
 
        if (len < 0) {
-               _errorString = "Not a ENC file";
+               _errorString = "Not a ISO8211 file";
                return false;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/mapdata.cpp 
new/GPXSee-11.10/src/map/ENC/mapdata.cpp
--- old/GPXSee-11.9/src/map/ENC/mapdata.cpp     2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/map/ENC/mapdata.cpp    2022-11-26 19:22:09.000000000 
+0100
@@ -20,6 +20,7 @@
 {
        QMap<uint,uint> map;
 
+       map.insert(TYPE(CGUSTA), 0);
        map.insert(SUBTYPE(BUAARE, 1), 1);
        map.insert(SUBTYPE(BUAARE, 5), 2);
        map.insert(SUBTYPE(BUAARE, 4), 3);
@@ -27,27 +28,37 @@
        map.insert(SUBTYPE(BUAARE, 2), 5);
        map.insert(SUBTYPE(BUAARE, 6), 6);
        map.insert(SUBTYPE(BUAARE, 0), 7);
-       map.insert(TYPE(BCNISD), 8);
-       map.insert(TYPE(BCNLAT), 9);
-       map.insert(TYPE(BCNSAW), 10);
-       map.insert(TYPE(BCNSPP), 11);
-       map.insert(TYPE(BOYCAR), 12);
-       map.insert(TYPE(BOYINB), 13);
-       map.insert(TYPE(BOYISD), 14);
-       map.insert(TYPE(BOYLAT), 15);
-       map.insert(TYPE(BOYSAW), 16);
-       map.insert(TYPE(BOYSPP), 17);
-       map.insert(TYPE(MORFAC), 18);
-       map.insert(TYPE(OFSPLF), 19);
-       map.insert(TYPE(LIGHTS), 20);
-       map.insert(TYPE(OBSTRN), 21);
-       map.insert(TYPE(WRECKS), 22);
-       map.insert(TYPE(UWTROC), 23);
-       map.insert(TYPE(HRBFAC), 24);
-       map.insert(TYPE(PILPNT), 25);
-       map.insert(TYPE(ACHBRT), 26);
-       map.insert(TYPE(LNDELV), 27);
-       map.insert(TYPE(LNDMRK), 28);
+       map.insert(TYPE(RDOSTA), 8);
+       map.insert(TYPE(RADSTA), 9);
+       map.insert(TYPE(RTPBCN), 10);
+       map.insert(TYPE(BCNISD), 11);
+       map.insert(TYPE(BCNLAT), 12);
+       map.insert(TYPE(I_BCNLAT), 12);
+       map.insert(TYPE(BCNSAW), 13);
+       map.insert(TYPE(BCNSPP), 14);
+       map.insert(TYPE(BOYCAR), 15);
+       map.insert(TYPE(BOYINB), 16);
+       map.insert(TYPE(BOYISD), 17);
+       map.insert(TYPE(BOYLAT), 18);
+       map.insert(TYPE(I_BOYLAT), 18);
+       map.insert(TYPE(BOYSAW), 19);
+       map.insert(TYPE(BOYSPP), 20);
+       map.insert(TYPE(MORFAC), 21);
+       map.insert(TYPE(OFSPLF), 22);
+       map.insert(TYPE(LIGHTS), 23);
+       map.insert(TYPE(OBSTRN), 24);
+       map.insert(TYPE(WRECKS), 25);
+       map.insert(TYPE(UWTROC), 26);
+       map.insert(TYPE(HRBFAC), 27);
+       map.insert(TYPE(PILPNT), 28);
+       map.insert(TYPE(ACHBRT), 29);
+       map.insert(TYPE(I_ACHBRT), 29);
+       map.insert(TYPE(CRANES), 30);
+       map.insert(TYPE(I_CRANES), 30);
+       map.insert(TYPE(LNDMRK), 31);
+       map.insert(TYPE(SILTNK), 32);
+       map.insert(TYPE(LNDELV), 33);
+       map.insert(TYPE(I_DISMAR), 0xFFFFFFFE);
        map.insert(TYPE(SOUNDG), 0xFFFFFFFF);
 
        return map;
@@ -142,9 +153,26 @@
        return true;
 }
 
-static uint depthLevel(const QString &str)
+static Coordinates coordinates(int x, int y, uint COMF)
+{
+       return Coordinates(x / (double)COMF, y / (double)COMF);
+}
+
+static Coordinates point(const ISO8211::Record &r, uint COMF)
+{
+       const ISO8211::Field *f = SGXD(r);
+       if (!f)
+               return Coordinates();
+
+       int y = f->data().at(0).at(0).toInt();
+       int x = f->data().at(0).at(1).toInt();
+
+       return coordinates(x, y, COMF);
+}
+
+static uint depthLevel(const QByteArray &ba)
 {
-       double minDepth = str.isEmpty() ? -1 : str.toDouble();
+       double minDepth = ba.isEmpty() ? -1 : ba.toDouble();
 
        if (minDepth < 0)
                return 0;
@@ -162,28 +190,65 @@
                return 6;
 }
 
-static Coordinates coordinates(int x, int y, uint COMF)
+static QString hUnits(uint type)
 {
-       return Coordinates(x / (double)COMF, y / (double)COMF);
+       switch (type) {
+               case 1:
+                       return "m";
+               case 2:
+                       return "ft";
+               case 3:
+                       return "km";
+               case 4:
+                       return "hm";
+               case 5:
+                       return "mi";
+               case 6:
+                       return "nm";
+               default:
+                       return QString();
+       }
 }
 
-static Coordinates point(const ISO8211::Record &r, uint COMF)
+MapData::Point::Point(uint type, const Coordinates &c, const QString &label,
+  const QByteArray &param) : _type(type), _pos(c), _label(label)
 {
-       const ISO8211::Field *f = SGXD(r);
-       if (!f)
-               return Coordinates();
+       uint hash = (uint)qHash(QPair<double,double>(c.lon(), c.lat()));
+       _id = ((quint64)order(type))<<32 | hash;
 
-       int y = f->data().at(0).at(0).toInt();
-       int x = f->data().at(0).at(1).toInt();
+       if ((type & 0xFFFF0000) == TYPE(I_DISMAR)) {
+               _label = hUnits((type>>8)&0xFF) + " " + 
QString::fromLatin1(param);
+               _type = SUBTYPE(I_DISMAR, type & 0xFF);
+       }
+}
 
-       return coordinates(x, y, COMF);
+MapData::Poly::Poly(uint type, const Polygon &path, const QByteArray &param)
+  : _type(type), _path(path)
+{
+       if (type == TYPE(DEPARE))
+               _type = SUBTYPE(DEPARE, depthLevel(param));
+       else if (type == TYPE(TSSLPT)) {
+               double angle = param.toDouble();
+               _type = SUBTYPE(TSSLPT, (uint)(angle * 10));
+       }
 }
 
-MapData::Point::Point(uint type, const Coordinates &c, const QString &label)
-  : _type(type), _pos(c), _label(label)
+MapData::Line::Line(uint type, const QVector<Coordinates> &path,
+  const QString &label, const QByteArray &param) : _type(type), _path(path),
+  _label(label)
 {
-       uint hash = (uint)qHash(QPair<double,double>(c.lon(), c.lat()));
-       _id = ((quint64)order(type))<<32 | hash;
+       if (type == TYPE(DEPCNT) || type == TYPE(LNDELV))
+               _label = QString::fromLatin1(param);
+}
+
+RectC MapData::Line::bounds() const
+{
+       RectC b;
+
+       for (int i = 0; i < _path.size(); i++)
+               b = b.united(_path.at(i));
+
+       return b;
 }
 
 QVector<MapData::Sounding> MapData::soundings(const ISO8211::Record &r,
@@ -409,6 +474,7 @@
 MapData::Attr MapData::pointAttr(const ISO8211::Record &r, uint OBJL)
 {
        QString label;
+       QByteArray param;
        uint subtype = 0;
 
        const ISO8211::Field *ATTF = r.field("ATTF");
@@ -421,6 +487,7 @@
 
                if (key == OBJNAM)
                        label = QString::fromLatin1(av.at(1).toByteArray());
+
                if ((OBJL == HRBFAC && key == CATHAF)
                  || (OBJL == LNDMRK && key == CATLMK)
                  || (OBJL == WRECKS && key == CATWRK)
@@ -428,14 +495,22 @@
                  || (OBJL == UWTROC && key == WATLEV)
                  || (OBJL == BUAARE && key == CATBUA))
                        subtype = av.at(1).toByteArray().toUInt();
+               else if (OBJL == I_DISMAR && key == CATDIS)
+                       subtype |= av.at(1).toByteArray().toUInt();
+               else if (OBJL == I_DISMAR && key == I_HUNITS)
+                       subtype |= av.at(1).toByteArray().toUInt() << 8;
+
+               if (OBJL == I_DISMAR && key == I_WTWDIS)
+                       param = av.at(1).toByteArray();
        }
 
-       return Attr(subtype, label);
+       return Attr(subtype, label, param);
 }
 
 MapData::Attr MapData::lineAttr(const ISO8211::Record &r, uint OBJL)
 {
        QString label;
+       QByteArray param;
        uint subtype = 0;
 
        const ISO8211::Field *ATTF = r.field("ATTF");
@@ -448,19 +523,22 @@
 
                if (key == OBJNAM)
                        label = QString::fromLatin1(av.at(1).toByteArray());
-               if ((OBJL == DEPCNT && key == VALDCO)
-                 || (OBJL == LNDELV && key == ELEVAT))
-                       label = QString::fromLatin1(av.at(1).toByteArray());
+
                if ((OBJL == RECTRC || OBJL == RCRTCL) && key == CATTRK)
                        subtype = av.at(1).toByteArray().toUInt();
+
+               if ((OBJL == DEPCNT && key == VALDCO)
+                 || (OBJL == LNDELV && key == ELEVAT))
+                       param = av.at(1).toByteArray();
        }
 
-       return Attr(subtype, label);
+       return Attr(subtype, label, param);
 }
 
 MapData::Attr MapData::polyAttr(const ISO8211::Record &r, uint OBJL)
 {
        QString label;
+       QByteArray param;
        uint subtype = 0;
 
        const ISO8211::Field *ATTF = r.field("ATTF");
@@ -471,26 +549,30 @@
                const QVector<QVariant> &av = ATTF->data().at(i);
                uint key = av.at(0).toUInt();
 
-               if (OBJL == DEPARE && key == DRVAL1)
-                       subtype = depthLevel(av.at(1).toByteArray());
-               else if ((OBJL == RESARE && key == CATREA)
-                 || (OBJL == ACHARE && key == CATACH))
+               if ((OBJL == RESARE && key == CATREA)
+                 || (OBJL == I_RESARE && key == CATREA)
+                 || (OBJL == ACHARE && key == CATACH)
+                 || (OBJL == I_ACHARE && key == I_CATACH))
                        subtype = av.at(1).toByteArray().toUInt();
-               else if (OBJL == RESARE && key == RESTRN) {
+               else if ((OBJL == RESARE && key == RESTRN)
+                 || (OBJL == I_RESARE && key == I_RESTRN)) {
                        if (av.at(1).toByteArray().toUInt() == 1)
                                subtype = 2;
-               } else if (OBJL == TSSLPT && key == ORIENT) {
-                       double angle = av.at(1).toByteArray().toDouble();
-                       subtype = (uint)(angle * 10);
+                       if (av.at(1).toByteArray().toUInt() == 7)
+                               subtype = 17;
                }
+
+               if ((OBJL == TSSLPT && key == ORIENT)
+                 || (OBJL == DEPARE && key == DRVAL1))
+                       param = av.at(1).toByteArray();
        }
 
-       return Attr(subtype, label);
+       return Attr(subtype, label, param);
 }
 
 MapData::Point *MapData::pointObject(const Sounding &s)
 {
-       return new Point(SOUNDG<<16, s.c, QString::number(s.depth));
+       return new Point(TYPE(SOUNDG), s.c, QString::number(s.depth), 
QByteArray());
 }
 
 MapData::Point *MapData::pointObject(const ISO8211::Record &r,
@@ -499,8 +581,8 @@
        Coordinates c(pointGeometry(r, vi, vc, COMF));
        Attr attr(pointAttr(r, OBJL));
 
-       return (c.isNull() ? 0 : new Point(OBJL<<16|attr.subtype(), c,
-         attr.label()));
+       return (c.isNull() ? 0 : new Point(SUBTYPE(OBJL,attr.subtype()), c,
+         attr.label(), attr.param()));
 }
 
 MapData::Line *MapData::lineObject(const ISO8211::Record &r,
@@ -509,8 +591,8 @@
        QVector<Coordinates> path(lineGeometry(r, vc, ve, COMF));
        Attr attr(lineAttr(r, OBJL));
 
-       return (path.isEmpty() ? 0 : new Line(OBJL<<16|attr.subtype(), path,
-         attr.label()));
+       return (path.isEmpty() ? 0 : new Line(SUBTYPE(OBJL, attr.subtype()), 
path,
+         attr.label(), attr.param()));
 }
 
 MapData::Poly *MapData::polyObject(const ISO8211::Record &r,
@@ -519,7 +601,8 @@
        Polygon path(polyGeometry(r, vc, ve, COMF));
        Attr attr(polyAttr(r, OBJL));
 
-       return (path.isEmpty() ? 0 : new Poly(OBJL<<16|attr.subtype(), path));
+       return (path.isEmpty() ? 0 : new Poly(SUBTYPE(OBJL, attr.subtype()), 
path,
+         attr.param()));
 }
 
 bool MapData::processRecord(const ISO8211::Record &record,
@@ -641,8 +724,10 @@
                        _errorString = ddf.errorString();
                        return;
                }
-               if (!processRecord(record, gv, COMF, _name))
+               if (!processRecord(record, gv, COMF, _name)) {
+                       _errorString = "Invalid S-57 record";
                        return;
+               }
        }
 
        Rect b;
@@ -791,25 +876,25 @@
        double size = qMin(_bounds.width(), _bounds.height());
 
        if (size > 180)
-               return Range(0, 20);
+               return Range(0, 10);
        else if (size > 90)
-               return Range(1, 20);
+               return Range(1, 11);
        else if (size > 45)
-               return Range(2, 20);
+               return Range(2, 12);
        else if (size > 22.5)
-               return Range(3, 20);
+               return Range(3, 13);
        else if (size > 11.25)
-               return Range(4, 20);
+               return Range(4, 14);
        else if (size > 5.625)
-               return Range(5, 20);
+               return Range(5, 15);
        else if (size > 2.813)
-               return Range(6, 20);
+               return Range(6, 16);
        else if (size > 1.406)
-               return Range(7, 20);
+               return Range(7, 17);
        else if (size > 0.703)
-               return Range(8, 20);
+               return Range(8, 18);
        else if (size > 0.352)
-               return Range(9, 20);
+               return Range(9, 19);
        else if (size > 0.176)
                return Range(10, 20);
        else if (size > 0.088)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/mapdata.h 
new/GPXSee-11.10/src/map/ENC/mapdata.h
--- old/GPXSee-11.9/src/map/ENC/mapdata.h       2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/map/ENC/mapdata.h      2022-11-26 19:22:09.000000000 
+0100
@@ -15,8 +15,7 @@
 public:
        class Poly {
        public:
-               Poly(uint type, const Polygon &path)
-                 : _type(type), _path(path) {}
+               Poly(uint type, const Polygon &path, const QByteArray &param);
 
                RectC bounds() const {return _path.boundingRect();}
                const Polygon &path() const {return _path;}
@@ -29,18 +28,10 @@
 
        class Line {
        public:
-               Line(uint type, const QVector<Coordinates> &path, const QString 
&label)
-                 : _type(type), _path(path), _label(label) {}
+               Line(uint type, const QVector<Coordinates> &path, const QString 
&label,
+                 const QByteArray &param);
 
-               RectC bounds() const
-               {
-                       RectC b;
-
-                       for (int i = 0; i < _path.size(); i++)
-                               b = b.united(_path.at(i));
-
-                       return b;
-               }
+               RectC bounds() const;
                const QVector<Coordinates> &path() const {return _path;}
                uint type() const {return _type;}
                const QString &label() const {return _label;}
@@ -53,7 +44,8 @@
 
        class Point {
        public:
-               Point(uint type, const Coordinates &c, const QString &label);
+               Point(uint type, const Coordinates &c, const QString &label,
+                 const QByteArray &param);
 
                const Coordinates &pos() const {return _pos;}
                uint type() const {return _type;}
@@ -124,15 +116,17 @@
        class Attr {
        public:
                Attr() : _subtype(0) {}
-               Attr(uint subtype, const QString &label = QString())
-                   : _subtype(subtype), _label(label) {}
+               Attr(uint subtype, const QString &label, const QByteArray 
&param)
+                       : _subtype(subtype), _label(label), _param(param) {}
 
                unsigned subtype() const {return _subtype;}
                const QString &label() const {return _label;}
+               const QByteArray &param() const {return _param;}
 
        private:
                unsigned _subtype;
                QString _label;
+               QByteArray _param;
        };
 
        struct Sounding {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/objects.h 
new/GPXSee-11.10/src/map/ENC/objects.h
--- old/GPXSee-11.9/src/map/ENC/objects.h       2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/map/ENC/objects.h      2022-11-26 19:22:09.000000000 
+0100
@@ -22,7 +22,10 @@
 #define CBLOHD 21
 #define CBLSUB 22
 #define CANALS 23
+#define CGUSTA 29
 #define COALNE 30
+#define CONVYR 34
+#define CRANES 35
 #define DAMCON 38
 #define DWRTPT 41
 #define DEPARE 42
@@ -32,24 +35,31 @@
 #define DMPGRD 48
 #define DYKCON 49
 #define FAIRWY 51
+#define FNCLNE 52
 #define FERYRT 53
 #define FLODOC 57
 #define GATCON 61
 #define HRBFAC 64
+#define HULKES 65
 #define LAKARE 69
 #define LNDARE 71
 #define LNDELV 72
 #define LNDMRK 74
 #define LIGHTS 75
+#define LOKBSN 79
 #define MORFAC 84
 #define NAVLNE 85
 #define OBSTRN 86
 #define OFSPLF 87
 #define PILPNT 90
+#define PIPOHD 93
 #define PIPSOL 94
 #define PONTON 95
 #define PRCARE 96
 #define PYLONS 98
+#define RADSTA 102
+#define RTPBCN 103
+#define RDOSTA 105
 #define RAILWY 106
 #define RCRTCL 108
 #define RECTRC 109
@@ -57,6 +67,7 @@
 #define RIVERS 114
 #define ROADWY 116
 #define SLCONS 122
+#define SILTNK 125
 #define SLOTOP 126
 #define SOUNDG 129
 #define TSELNE 145
@@ -68,4 +79,26 @@
 #define WRECKS 159
 #define M_COVR 302
 
+#define I_ACHBRT 17000
+#define I_ACHARE 17001
+#define I_DISMAR 17004
+#define I_RESARE 17005
+#define I_BERTHS 17010
+#define I_BRIDGE 17011
+#define I_CBLOHD 17012
+#define I_FERYRT 17013
+#define I_LOKBSN 17016
+#define I_HULKES 17020
+#define I_PONTON 17021
+#define I_PIPOHD 17024
+#define I_FLODOC 17025
+#define I_BCNLAT 17028
+#define I_BOYLAT 17029
+#define I_CRANES 17030
+#define I_GATCON 17031
+#define I_SLCONS 17032
+#define I_WTWAXS 17051
+#define I_TERMNL 17064
+#define I_TRNBSN 17065
+
 #endif // ENC_OBJECTS_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/rastertile.cpp 
new/GPXSee-11.10/src/map/ENC/rastertile.cpp
--- old/GPXSee-11.9/src/map/ENC/rastertile.cpp  2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/map/ENC/rastertile.cpp 2022-11-26 19:22:09.000000000 
+0100
@@ -12,8 +12,6 @@
 #define ICON_PADDING 2
 #define ARROW_SIZE 0.005
 
-#define ECDIS(x) (((x)>TYPE(17000))?((x)-TYPE(17000)):(x))
-
 const float C1 = 0.866025f; /* sqrt(3)/2 */
 
 static const QColor haloColor(Qt::white);
@@ -161,9 +159,9 @@
        for (int n = 0; n < s.drawOrder().size(); n++) {
                for (int i = 0; i < _polygons.size(); i++) {
                        const MapData::Poly *poly = _polygons.at(i);
-                       if (ECDIS(poly->type()) != s.drawOrder().at(n))
+                       if (poly->type() != s.drawOrder().at(n))
                                continue;
-                       const Style::Polygon &style = 
s.polygon(ECDIS(poly->type()));
+                       const Style::Polygon &style = s.polygon(poly->type());
 
                        if (!style.img().isNull()) {
                                for (int i = 0; i < poly->path().size(); i++)
@@ -186,7 +184,7 @@
 
        for (int i = 0; i < _lines.size(); i++) {
                const MapData::Line *line = _lines.at(i);
-               const Style::Line &style = s.line(ECDIS(line->type()));
+               const Style::Line &style = s.line(line->type());
 
                if (!style.img().isNull()) {
                        BitmapLine::draw(painter, polyline(line->path()), 
style.img());
@@ -212,14 +210,14 @@
 
        for (int i = 0; i < _points.size(); i++) {
                const MapData::Point *point = _points.at(i);
-               const Style::Point &style = s.point(ECDIS(point->type()));
+               const Style::Point &style = s.point(point->type());
 
                const QString *label = point->label().isEmpty() ? 0 : 
&(point->label());
                const QImage *img = style.img().isNull() ? 0 : &style.img();
                const QFont *fnt = font(style.textFontSize());
                const QColor *color = &style.textColor();
-               const QColor *hColor = Style::isSounding(ECDIS(point->type()))
-                 ? 0 : &haloColor;
+               const QColor *hColor = (Style::isSounding(point->type())
+                 || Style::isDistanceMark(point->type())) ? 0 : &haloColor;
 
                if ((!label || !fnt) && !img)
                        continue;
@@ -239,7 +237,7 @@
 
        for (int i = 0; i < _lines.size(); i++) {
                const MapData::Line *line = _lines.at(i);
-               const Style::Line &style = s.line(ECDIS(line->type()));
+               const Style::Line &style = s.line(line->type());
 
                if (style.img().isNull() && style.pen() == Qt::NoPen)
                        continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/style.cpp 
new/GPXSee-11.10/src/map/ENC/style.cpp
--- old/GPXSee-11.9/src/map/ENC/style.cpp       2022-11-17 13:26:45.000000000 
+0100
+++ new/GPXSee-11.10/src/map/ENC/style.cpp      2022-11-26 19:22:09.000000000 
+0100
@@ -22,6 +22,7 @@
        _polygons[TYPE(BUISGL)] = Polygon(QBrush("#d98b21"),
          QPen(QColor("#966118"), 1.5));
        _polygons[TYPE(BRIDGE)] = Polygon(QBrush("#a58140"));
+       _polygons[TYPE(I_BRIDGE)] = Polygon(QBrush("#a58140"));
        _polygons[SUBTYPE(DEPARE, 0)] = Polygon(QBrush("#98c064"));
        _polygons[SUBTYPE(DEPARE, 1)] = Polygon(QBrush("#a0a0ff"));
        _polygons[SUBTYPE(DEPARE, 2)] = Polygon(QBrush("#b0b0ff"));
@@ -35,10 +36,17 @@
          Qt::DashDotDotLine));
        _polygons[TYPE(OBSTRN)] = Polygon(Qt::NoBrush, QPen(QColor("#000000"), 
1.5,
          Qt::DotLine));
+       _polygons[TYPE(UWTROC)] = Polygon(Qt::NoBrush, QPen(QColor("#000000"), 
1.5,
+         Qt::DotLine));
        _polygons[TYPE(PONTON)] = Polygon(QBrush("#333333"));
+       _polygons[TYPE(I_PONTON)] = Polygon(QBrush("#333333"));
+       _polygons[TYPE(HULKES)] = Polygon(QBrush("#333333"));
+       _polygons[TYPE(I_HULKES)] = Polygon(QBrush("#333333"));
        _polygons[TYPE(DRYDOC)] = Polygon(QBrush("#333333"));
        _polygons[TYPE(SLCONS)] = Polygon(Qt::NoBrush, QPen(QColor("#333333"), 
1.5,
          Qt::DashLine));
+       _polygons[TYPE(I_SLCONS)] = Polygon(Qt::NoBrush, 
QPen(QColor("#333333"), 1.5,
+         Qt::DashLine));
        _polygons[TYPE(LAKARE)] = Polygon(QBrush("#9fc4e1"),
          QPen(QColor("#000000"), 1));
        _polygons[TYPE(CANALS)] = Polygon(QBrush("#9fc4e1"),
@@ -54,7 +62,13 @@
        _polygons[SUBTYPE(RESARE, 9)] = Polygon(QBrush(QColor("#ff0000"),
          Qt::BDiagPattern));
        _polygons[SUBTYPE(RESARE, 2)] = 
Polygon(QImage(":/marine/noanchor-line.png"));
+       _polygons[SUBTYPE(I_RESARE, 2)] = 
Polygon(QImage(":/marine/noanchor-line.png"));
+       _polygons[SUBTYPE(RESARE, 17)] = Polygon(
+         QImage(":/marine/entry-prohibited-line.png"));
+       _polygons[SUBTYPE(I_RESARE, 17)] = Polygon(
+         QImage(":/marine/entry-prohibited-line.png"));
        _polygons[SUBTYPE(ACHARE, 1)] = 
Polygon(QImage(":/marine/anchor-line.png"));
+       _polygons[SUBTYPE(I_ACHARE, 1)] = 
Polygon(QImage(":/marine/anchor-line.png"));
        _polygons[TYPE(PRCARE)] = Polygon(QBrush(QColor("#eb49eb"),
          Qt::BDiagPattern));
        _polygons[TYPE(DAMCON)] = Polygon(QBrush("#d98b21"), 
QPen(QColor("#000000"),
@@ -65,19 +79,38 @@
          1));
        _polygons[TYPE(FLODOC)] = Polygon(QBrush("#333333"), 
QPen(QColor("#000000"),
          1));
-       _polygons[TYPE(DWRTPT)] = Polygon(QImage(":/marine/dw-route-line"));
+       _polygons[TYPE(I_FLODOC)] = Polygon(QBrush("#333333"),
+         QPen(QColor("#000000"), 1));
+       _polygons[TYPE(DWRTPT)] = Polygon(QImage(":/marine/dw-route-line.png"));
+       _polygons[TYPE(MORFAC)] = Polygon(QBrush("#e8e064"), 
QPen(QColor("#000000"),
+         2));
+       _polygons[TYPE(GATCON)] = Polygon(QBrush("#000000"));
+       _polygons[TYPE(I_GATCON)] = Polygon(QBrush("#000000"));
+       _polygons[TYPE(I_TERMNL)] = Polygon(QBrush(QColor("#b8b04b")),
+         QPen(QColor("#966118")));
+       _polygons[TYPE(SILTNK)] = Polygon(QBrush("#d98b21"), 
QPen(QColor("#966118"),
+         2));
+       _polygons[TYPE(LOKBSN)] = Polygon(QBrush(QColor("#333333"),
+         Qt::Dense7Pattern));
+       _polygons[TYPE(I_LOKBSN)] = Polygon(QBrush(QColor("#333333"),
+         Qt::Dense7Pattern));
 
        _drawOrder
          << TYPE(M_COVR) << TYPE(LNDARE) << SUBTYPE(DEPARE, 0)
          << SUBTYPE(DEPARE, 1) << SUBTYPE(DEPARE, 2) << SUBTYPE(DEPARE, 3)
          << TYPE(UNSARE) << SUBTYPE(DEPARE, 4) << SUBTYPE(DEPARE, 5)
          << SUBTYPE(DEPARE, 6) << TYPE(LAKARE) << TYPE(CANALS) << TYPE(DYKCON)
-         << TYPE(RIVERS) << TYPE(DRGARE) << TYPE(FAIRWY) << TYPE(BUAARE)
-         << TYPE(BUISGL) << TYPE(AIRARE) << TYPE(BRIDGE) << TYPE(SLCONS)
-         << TYPE(PONTON) << TYPE(FLODOC) << TYPE(DRYDOC) << TYPE(DAMCON)
-         << TYPE(PYLONS) << TYPE(DMPGRD) << TYPE(TSEZNE) << TYPE(OBSTRN)
-         << TYPE(DWRTPT) << SUBTYPE(ACHARE, 1) << SUBTYPE(RESARE, 9)
-         << SUBTYPE(RESARE, 2) << TYPE(PRCARE);
+         << TYPE(RIVERS) << TYPE(DRGARE) << TYPE(FAIRWY) << TYPE(LOKBSN)
+         << TYPE(I_LOKBSN) << TYPE(BUAARE) << TYPE(BUISGL) << TYPE(SILTNK)
+         << TYPE(AIRARE) << TYPE(BRIDGE) << TYPE(I_BRIDGE) << TYPE(I_TERMNL)
+         << TYPE(SLCONS) << TYPE(I_SLCONS) << TYPE(PONTON) << TYPE(I_PONTON)
+         << TYPE(HULKES) << TYPE(I_HULKES) << TYPE(FLODOC) << TYPE(I_FLODOC)
+         << TYPE(DRYDOC) << TYPE(DAMCON) << TYPE(PYLONS) << TYPE(MORFAC)
+         << TYPE(GATCON) << TYPE(I_GATCON) << TYPE(DMPGRD) << TYPE(TSEZNE)
+         << TYPE(OBSTRN) << TYPE(UWTROC) << TYPE(DWRTPT) << SUBTYPE(ACHARE, 1)
+         << SUBTYPE(I_ACHARE, 1) << SUBTYPE(RESARE, 9) << SUBTYPE(RESARE, 2)
+         << SUBTYPE(I_RESARE, 2) << SUBTYPE(RESARE, 17) << SUBTYPE(I_RESARE, 
17)
+         << TYPE(PRCARE);
 }
 
 void Style::defaultLineStyle()
@@ -87,13 +120,16 @@
        _lines[TYPE(DEPCNT)].setTextColor(QColor("#558adf"));
        _lines[TYPE(DEPCNT)].setTextFontSize(Small);
        _lines[TYPE(CBLOHD)] = Line(QImage(":/marine/cable-line.png"));
+       _lines[TYPE(I_CBLOHD)] = Line(QImage(":/marine/cable-line.png"));
        _lines[TYPE(BRIDGE)] = Line(QPen(QColor("#a58140"), 3, Qt::SolidLine));
+       _lines[TYPE(I_BRIDGE)] = Line(QPen(QColor("#a58140"), 3, 
Qt::SolidLine));
        _lines[TYPE(CBLSUB)] = Line(QImage(":/marine/cable.png"));
        _lines[TYPE(CBLSUB)].setTextFontSize(Small);
        _lines[TYPE(PIPSOL)] = Line(QImage(":/marine/pipeline.png"));
        _lines[TYPE(NAVLNE)] = Line(QPen(QColor("#eb49eb"), 1, Qt::DashLine));
        _lines[TYPE(COALNE)] = Line(QPen(QColor("#000000"), 1, Qt::SolidLine));
        _lines[TYPE(SLCONS)] = Line(QPen(QColor("#000000"), 2, Qt::SolidLine));
+       _lines[TYPE(I_SLCONS)] = Line(QPen(QColor("#000000"), 2, 
Qt::SolidLine));
        _lines[TYPE(PONTON)] = Line(QPen(QColor("#333333"), 1, Qt::SolidLine));
        _lines[TYPE(DYKCON)] = Line(QPen(QColor("#333333"), 2, Qt::SolidLine));
        _lines[TYPE(RIVERS)] = Line(QPen(QColor("#000000"), 1, Qt::SolidLine));
@@ -104,16 +140,25 @@
        _lines[TYPE(SLOTOP)] = Line(QPen(QColor("#797420"), 1, Qt::SolidLine));
        _lines[TYPE(OBSTRN)] = Line(QPen(QColor("#000000"), 1.5, Qt::DotLine));
        _lines[TYPE(FERYRT)] = Line(QImage(":/marine/ferry-line.png"));
+       _lines[TYPE(I_FERYRT)] = Line(QImage(":/marine/ferry-line.png"));
        _lines[TYPE(RAILWY)] = Line(railroad());
        _lines[TYPE(ROADWY)] = Line(QPen(QColor("#000000"), 2, Qt::SolidLine));
        _lines[TYPE(GATCON)] = Line(QPen(QColor("#000000"), 2, Qt::SolidLine));
+       _lines[TYPE(I_GATCON)] = Line(QPen(QColor("#000000"), 2, 
Qt::SolidLine));
        _lines[TYPE(TSELNE)] = Line(QPen(QColor("#80fcb4fc"), 4, 
Qt::SolidLine));
+       _lines[TYPE(I_WTWAXS)] = Line(QPen(QColor("#000000"), 0, Qt::DashLine));
        _lines[SUBTYPE(RECTRC, 1)] = Line(QPen(QColor("#000000"), 0, 
Qt::SolidLine));
        _lines[SUBTYPE(RECTRC, 2)] = Line(QPen(QColor("#000000"), 0, 
Qt::DashLine));
        _lines[SUBTYPE(RCRTCL, 1)] = Line(QPen(QColor("#eb49eb"), 0, 
Qt::SolidLine));
        _lines[SUBTYPE(RCRTCL, 2)] = Line(QPen(QColor("#eb49eb"), 0, 
Qt::DashLine));
        _lines[TYPE(FAIRWY)] = Line(QPen(QColor("#888888"), 1, 
Qt::DashDotDotLine));
        _lines[TYPE(BERTHS)] = Line(QPen(QColor("#333333"), 2));
+       _lines[TYPE(I_BERTHS)] = Line(QPen(QColor("#333333"), 2));
+       _lines[TYPE(FNCLNE)] = Line(QImage(":/marine/fence-line.png"));
+       _lines[TYPE(CONVYR)] = Line(QImage(":/marine/conveyor-line.png"));
+       _lines[TYPE(PIPOHD)] = Line(QImage(":/marine/pipeline-overhead.png"));
+       _lines[TYPE(I_PIPOHD)] = Line(QImage(":/marine/pipeline-overhead.png"));
+       _lines[TYPE(CANALS)] = Line(QPen(QColor("#9fc4e1"), 2));
 }
 
 void Style::defaultPointStyle()
@@ -129,13 +174,16 @@
        _points[TYPE(BOYINB)] = Point(QImage(":/marine/buoy.png"), Small);
        _points[TYPE(BOYISD)] = Point(QImage(":/marine/buoy.png"), Small);
        _points[TYPE(BOYLAT)] = Point(QImage(":/marine/buoy.png"), Small);
+       _points[TYPE(I_BOYLAT)] = Point(QImage(":/marine/buoy.png"), Small);
        _points[TYPE(BOYSAW)] = Point(QImage(":/marine/buoy.png"), Small);
        _points[TYPE(BOYSPP)] = Point(QImage(":/marine/buoy.png"), Small);
        _points[TYPE(BCNISD)] = Point(QImage(":/marine/beacon.png"), Small);
        _points[TYPE(BCNLAT)] = Point(QImage(":/marine/beacon.png"), Small);
+       _points[TYPE(I_BCNLAT)] = Point(QImage(":/marine/beacon.png"), Small);
        _points[TYPE(BCNSAW)] = Point(QImage(":/marine/beacon.png"), Small);
        _points[TYPE(BCNSPP)] = Point(QImage(":/marine/beacon.png"), Small);
        _points[SUBTYPE(LNDMRK, 3)] = Point(QImage(":/marine/chimney.png"));
+       _points[SUBTYPE(LNDMRK, 9)] = Point(QImage(":/marine/monument.png"));
        _points[SUBTYPE(LNDMRK, 20)] = Point(QImage(":/marine/church.png"));
        _points[SUBTYPE(LNDMRK, 17)] = Point(QImage(":/marine/tower.png"));
        _points[TYPE(LNDELV)] = 
Point(QImage(":/marine/triangulation-point.png"));
@@ -158,6 +206,7 @@
          Small);
        _points[SUBTYPE(HRBFAC, 5)] = 
Point(QImage(":/marine/yacht-harbor.png"));
        _points[TYPE(ACHBRT)] = Point(QImage(":/marine/anchorage.png"));
+       _points[TYPE(I_ACHBRT)] = Point(QImage(":/marine/anchorage.png"));
        _points[TYPE(OFSPLF)] = Point(QImage(":/marine/platform.png"));
        _points[TYPE(PILPNT)] = Point(QImage(":/marine/pile.png"), Small);
        _points[SUBTYPE(MORFAC, 1)] = Point(QImage(":/marine/pile.png"), Small);
@@ -165,6 +214,17 @@
        _points[SUBTYPE(MORFAC, 5)] = Point(QImage(":/marine/pile.png"), Small);
        _points[SUBTYPE(MORFAC, 7)] = Point(QImage(":/marine/mooring-buoy.png"),
          Small);
+       _points[TYPE(CRANES)] = Point(QImage(":/marine/crane.png"));
+       _points[TYPE(I_CRANES)] = Point(QImage(":/marine/crane.png"));
+       _points[SUBTYPE(I_DISMAR, 1)] = 
Point(QImage(":/marine/distance-mark.png"));
+       _points[SUBTYPE(I_DISMAR, 1)].setTextColor(QColor("#ffffff"));
+       _points[SUBTYPE(I_DISMAR, 1)].setTextFontSize(Small);
+       _points[TYPE(CGUSTA)] = Point(QImage(":/marine/coast-guard.png"));
+       _points[TYPE(RDOSTA)] = Point(QImage(":/marine/radio.png"));
+       _points[TYPE(RADSTA)] = Point(QImage(":/marine/radar.png"));
+       _points[TYPE(RTPBCN)] = Point(QImage(":/marine/radar-transponder.png"));
+       _points[TYPE(SILTNK)] = Point(QImage(":/marine/silo.png"));
+       _points[TYPE(I_TRNBSN)] = Point(QImage(":/marine/turning-basin.png"));
 }
 
 Style::Style()
@@ -174,7 +234,7 @@
        defaultPointStyle();
 }
 
-const Style::Line &Style::line(quint32 type) const
+const Style::Line &Style::line(uint type) const
 {
        static Line null;
 
@@ -182,7 +242,7 @@
        return (it == _lines.constEnd()) ? null : *it;
 }
 
-const Style::Polygon &Style::polygon(quint32 type) const
+const Style::Polygon &Style::polygon(uint type) const
 {
        static Polygon null;
 
@@ -190,7 +250,7 @@
        return (it == _polygons.constEnd()) ? null : *it;
 }
 
-const Style::Point &Style::point(quint32 type) const
+const Style::Point &Style::point(uint type) const
 {
        static Point null;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/GPXSee-11.9/src/map/ENC/style.h 
new/GPXSee-11.10/src/map/ENC/style.h
--- old/GPXSee-11.9/src/map/ENC/style.h 2022-11-17 13:26:45.000000000 +0100
+++ new/GPXSee-11.10/src/map/ENC/style.h        2022-11-26 19:22:09.000000000 
+0100
@@ -89,11 +89,13 @@
 
        const Line &line(uint type) const;
        const Polygon &polygon(uint type) const;
-       const Point &point(quint32 type) const;
+       const Point &point(uint type) const;
        const QVector<uint> &drawOrder() const {return _drawOrder;}
 
-       static bool isSounding(quint32 type)
+       static bool isSounding(uint type)
          {return type == TYPE(SOUNDG);}
+       static bool isDistanceMark(uint type)
+         {return (type & 0xFFFF0000) == TYPE(I_DISMAR);}
 
 private:
        void defaultPolygonStyle();

++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.67xS6t/_old  2022-11-27 12:53:20.955318385 +0100
+++ /var/tmp/diff_new_pack.67xS6t/_new  2022-11-27 12:53:20.959318408 +0100
@@ -1,5 +1,5 @@
 pkgname=gpxsee
-pkgver=11.9
+pkgver=11.10
 pkgrel=1
 pkgdesc='GPS log files visualizing and analyzing tool'
 arch=('i686' 'x86_64')

++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.67xS6t/_old  2022-11-27 12:53:20.983318547 +0100
+++ /var/tmp/diff_new_pack.67xS6t/_new  2022-11-27 12:53:20.987318571 +0100
@@ -1,3 +1,10 @@
+gpxsee (11.10) stable; urgency=low
+
+  * Fixed broken Inland ECDIS rendering.
+  * Improved ENC maps render style.
+
+ -- Martin Tuma <[email protected]>  Sat, 26 Nov 2022 20:15:41 +0100
+
 gpxsee (11.9) stable; urgency=low
 
   * Improved ENC maps render style.

++++++ gpxsee.dsc ++++++
--- /var/tmp/diff_new_pack.67xS6t/_old  2022-11-27 12:53:21.039318873 +0100
+++ /var/tmp/diff_new_pack.67xS6t/_new  2022-11-27 12:53:21.043318896 +0100
@@ -1,10 +1,10 @@
 Format: 1.0
 Source: gpxsee
-Version: 11.9-1
+Version: 11.10-1
 Binary: gpxsee
 Maintainer: Martin Tuma <[email protected]>
 Architecture: any
 Build-Depends: debhelper (>= 9), qtbase5-dev, qtbase5-private-dev, 
qtbase5-dev-tools, qt5-qmake, qttools5-dev-tools, libqt5opengl5-dev, 
qtpositioning5-dev, libqt5svg5-dev
 Files:
- 00000000000000000000000000000000 0 GPXSee-11.9.tar.gz
+ 00000000000000000000000000000000 0 GPXSee-11.10.tar.gz
 

Reply via email to