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 ¶m) : _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 ¶m) + : _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 ¶m) : _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 ¶m); 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 ¶m); - 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 ¶m); 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 ¶m) + : _subtype(subtype), _label(label), _param(param) {} unsigned subtype() const {return _subtype;} const QString &label() const {return _label;} + const QByteArray ¶m() 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
