From 002c824dd9dbaffbc1f44933815b3d7e2d695e47 Mon Sep 17 00:00:00 2001 From: srcejon Date: Tue, 16 Apr 2024 13:28:50 +0100 Subject: [PATCH] ADS-B: Fix map centering and station icon for Qt6. --- plugins/channelrx/demodadsb/adsbdemodgui.cpp | 43 ++++++++++++-------- plugins/channelrx/demodadsb/map/map_6.qml | 1 + 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.cpp b/plugins/channelrx/demodadsb/adsbdemodgui.cpp index 721a7a2b8..9b1a4308f 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodgui.cpp @@ -4802,6 +4802,25 @@ void ADSBDemodGUI::applyMapSettings() // Restore position of map if (newMap != nullptr) { + // Move antenna icon to My Position + QObject *stationObject = newMap->findChild("station"); + if(stationObject != NULL) + { + QGeoCoordinate coords = stationObject->property("coordinate").value(); + coords.setLatitude(stationLatitude); + coords.setLongitude(stationLongitude); + coords.setAltitude(stationAltitude); + stationObject->setProperty("coordinate", QVariant::fromValue(coords)); + stationObject->setProperty("stationName", QVariant::fromValue(MainCore::instance()->getSettings().getStationName())); + } + else + { + qDebug() << "ADSBDemodGUI::applyMapSettings - Couldn't find station"; + } + +#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) + newMap = newMap->findChild("map"); +#endif if (coords.isValid()) { newMap->setProperty("zoomLevel", QVariant::fromValue(zoom)); @@ -4812,22 +4831,6 @@ void ADSBDemodGUI::applyMapSettings() { qDebug() << "ADSBDemodGUI::applyMapSettings - createMap returned a nullptr"; } - - // Move antenna icon to My Position - QObject *stationObject = newMap->findChild("station"); - if(stationObject != NULL) - { - QGeoCoordinate coords = stationObject->property("coordinate").value(); - coords.setLatitude(stationLatitude); - coords.setLongitude(stationLongitude); - coords.setAltitude(stationAltitude); - stationObject->setProperty("coordinate", QVariant::fromValue(coords)); - stationObject->setProperty("stationName", QVariant::fromValue(MainCore::instance()->getSettings().getStationName())); - } - else - { - qDebug() << "ADSBDemodGUI::applyMapSettings - Couldn't find station"; - } } // Called from QML when empty space clicked @@ -6000,7 +6003,11 @@ void ADSBDemodGUI::preferenceChanged(int elementType) // Update icon position on Map QQuickItem *item = ui->map->rootObject(); +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) QObject *map = item->findChild("map"); +#else + QObject *map = item->findChild("mapView"); +#endif if (map != nullptr) { QObject *stationObject = map->findChild("station"); @@ -6019,7 +6026,11 @@ void ADSBDemodGUI::preferenceChanged(int elementType) { // Update icon label on Map QQuickItem *item = ui->map->rootObject(); +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) QObject *map = item->findChild("map"); +#else + QObject *map = item->findChild("mapView"); +#endif if (map != nullptr) { QObject *stationObject = map->findChild("station"); diff --git a/plugins/channelrx/demodadsb/map/map_6.qml b/plugins/channelrx/demodadsb/map/map_6.qml index 86b48538f..282c5c1ee 100644 --- a/plugins/channelrx/demodadsb/map/map_6.qml +++ b/plugins/channelrx/demodadsb/map/map_6.qml @@ -74,6 +74,7 @@ Item { id: station objectName: "station" stationName: "Home" + parent: mapView.map } MapItemView {