Skip to content

Commit c961870

Browse files
authored
Merge branch 'master' into planmanager-memleak
2 parents 49e87d8 + bc724b5 commit c961870

File tree

73 files changed

+1003
-1320
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+1003
-1320
lines changed

cmake/CreateWinInstaller.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ set(QGC_NSIS_INSTALLER_PARAMETERS
2424
/DAPPNAME=QGroundControl
2525
/DEXENAME=QGroundControl
2626
/DORGNAME=org.mavlink.qgroundcontrol
27-
/DDESTDIR=${CMAKE_BINARY_DIR}/staging
27+
/DDESTDIR=${CMAKE_INSTALL_PREFIX}
2828
/NOCD
2929
"/XOutFile ${QGC_INSTALLER_OUT}"
3030
${QGC_NSIS_INSTALLER_SCRIPT}

custom-example/qgcimages.qrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
<file alias="DatalinkLossLight.svg">../src/AutoPilotPlugins/PX4/Images/DatalinkLossLight.svg</file>
8787
<file alias="Disarmed.svg">../src/UI/toolbar/Images/Disarmed.svg</file>
8888
<file alias="Disconnect.svg">../src/UI/toolbar/Images/Disconnect.svg</file>
89-
<file alias="FirmwareUpgradeIcon.png">../src/VehicleSetup/FirmwareUpgradeIcon.png</file>
89+
<file alias="FirmwareUpgradeIcon.png">../src/Vehicle/VehicleSetup/FirmwareUpgradeIcon.png</file>
9090
<file alias="FollowComponentIcon.png">../src/AutoPilotPlugins/Common/Images/FlightModesComponentIcon.png</file>
9191
<file alias="FlightModesComponentIcon.png">../src/AutoPilotPlugins/Common/Images/FlightModesComponentIcon.png</file>
9292
<file alias="FloatingWindow.svg">../src/AnalyzeView/FloatingWindow.svg</file>
@@ -202,7 +202,7 @@
202202
<file alias="VehicleNoseDownRotate.png">../src/AutoPilotPlugins/PX4/Images/VehicleNoseDownRotate.png</file>
203203
<file alias="VehicleRight.png">../src/AutoPilotPlugins/PX4/Images/VehicleRight.png</file>
204204
<file alias="VehicleRightRotate.png">../src/AutoPilotPlugins/PX4/Images/VehicleRightRotate.png</file>
205-
<file alias="VehicleSummaryIcon.png">../src/VehicleSetup/VehicleSummaryIcon.png</file>
205+
<file alias="VehicleSummaryIcon.png">../src/Vehicle/VehicleSetup/VehicleSummaryIcon.png</file>
206206
<file alias="VehicleTailDown.png">../src/AutoPilotPlugins/PX4/Images/VehicleTailDown.png</file>
207207
<file alias="VehicleTailDownRotate.png">../src/AutoPilotPlugins/PX4/Images/VehicleTailDownRotate.png</file>
208208
<file alias="VehicleUpsideDown.png">../src/AutoPilotPlugins/PX4/Images/VehicleUpsideDown.png</file>

custom-example/qgroundcontrol.qrc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<file alias="RemoteIDSettings.qml">../src/UI/preferences/RemoteIDSettings.qml</file>
3939
<file alias="ESP8266Component.qml">../src/AutoPilotPlugins/Common/ESP8266Component.qml</file>
4040
<file alias="ESP8266ComponentSummary.qml">../src/AutoPilotPlugins/Common/ESP8266ComponentSummary.qml</file>
41-
<file alias="FirmwareUpgrade.qml">../src/VehicleSetup/FirmwareUpgrade.qml</file>
41+
<file alias="FirmwareUpgrade.qml">../src/Vehicle/VehicleSetup/FirmwareUpgrade.qml</file>
4242
<file alias="QGroundControl/FlightDisplay/QGCVideoBackground.qml">../src/FlightDisplay/QGCVideoBackground.qml</file>
4343
<file alias="FlightDisplayViewDummy.qml">../src/FlightDisplay/FlightDisplayViewDummy.qml</file>
4444
<file alias="FlightDisplayViewUVC.qml">../src/FlightDisplay/FlightDisplayViewUVC.qml</file>
@@ -51,11 +51,11 @@
5151
<file alias="HelpSettings.qml">../src/UI/preferences/HelpSettings.qml</file>
5252
<file alias="IntegratedAttitudeIndicator.qml">../src/FlightMap/Widgets/IntegratedAttitudeIndicator.qml</file>
5353
<file alias="IntegratedCompassAttitude.qml">../src/FlightMap/Widgets/IntegratedCompassAttitude.qml</file>
54-
<file alias="JoystickConfig.qml">../src/VehicleSetup/JoystickConfig.qml</file>
55-
<file alias="JoystickConfigAdvanced.qml">../src/VehicleSetup/JoystickConfigAdvanced.qml</file>
56-
<file alias="JoystickConfigButtons.qml">../src/VehicleSetup/JoystickConfigButtons.qml</file>
57-
<file alias="JoystickConfigCalibration.qml">../src/VehicleSetup/JoystickConfigCalibration.qml</file>
58-
<file alias="JoystickConfigGeneral.qml">../src/VehicleSetup/JoystickConfigGeneral.qml</file>
54+
<file alias="JoystickConfig.qml">../src/Vehicle/VehicleSetup/JoystickConfig.qml</file>
55+
<file alias="JoystickConfigAdvanced.qml">../src/Vehicle/VehicleSetup/JoystickConfigAdvanced.qml</file>
56+
<file alias="JoystickConfigButtons.qml">../src/Vehicle/VehicleSetup/JoystickConfigButtons.qml</file>
57+
<file alias="JoystickConfigCalibration.qml">../src/Vehicle/VehicleSetup/JoystickConfigCalibration.qml</file>
58+
<file alias="JoystickConfigGeneral.qml">../src/Vehicle/VehicleSetup/JoystickConfigGeneral.qml</file>
5959
<file alias="LinkSettings.qml">../src/UI/preferences/LinkSettings.qml</file>
6060
<file alias="LogDownloadPage.qml">../src/AnalyzeView/LogDownloadPage.qml</file>
6161
<file alias="LogReplaySettings.qml">../src/UI/preferences/LogReplaySettings.qml</file>
@@ -74,7 +74,7 @@
7474
<file alias="PlanViewSettings.qml">../src/UI/preferences/PlanViewSettings.qml</file>
7575
<file alias="PlanViewToolBar.qml">../src/UI/toolbar/PlanViewToolBar.qml</file>
7676
<file alias="PreFlightCheckList.qml">../src/FlightDisplay/PreFlightCheckList.qml</file>
77-
<file alias="OpticalFlowSensor.qml">../src/VehicleSetup/OpticalFlowSensor.qml</file>
77+
<file alias="OpticalFlowSensor.qml">../src/Vehicle/VehicleSetup/OpticalFlowSensor.qml</file>
7878
<file alias="VerticalCompassAttitude.qml">../src/FlightMap/Widgets/VerticalCompassAttitude.qml</file>
7979
<file alias="HorizontalCompassAttitude.qml">../src/FlightMap/Widgets/HorizontalCompassAttitude.qml</file>
8080
<file alias="QGroundControl/Controls/AnalyzePage.qml">../src/AnalyzeView/AnalyzePage.qml</file>
@@ -283,8 +283,8 @@
283283
<file alias="QGroundControl/ScreenTools/ScreenTools.qml">../src/QmlControls/ScreenTools.qml</file>
284284
<file alias="RadioComponent.qml">../src/AutoPilotPlugins/Common/RadioComponent.qml</file>
285285
<file alias="SerialSettings.qml">../src/UI/preferences/SerialSettings.qml</file>
286-
<file alias="SetupParameterEditor.qml">../src/VehicleSetup/SetupParameterEditor.qml</file>
287-
<file alias="SetupView.qml">../src/VehicleSetup/SetupView.qml</file>
286+
<file alias="SetupParameterEditor.qml">../src/Vehicle/VehicleSetup/SetupParameterEditor.qml</file>
287+
<file alias="SetupView.qml">../src/Vehicle/VehicleSetup/SetupView.qml</file>
288288
<file alias="SettingsPage.qml">../src/UI/preferences/SettingsPage.qml</file>
289289
<file alias="SettingsPagesModel.qml">../src/UI/SettingsPagesModel.qml</file>
290290
<file alias="SimpleItemEditor.qml">../src/PlanView/SimpleItemEditor.qml</file>
@@ -294,7 +294,7 @@
294294
<file alias="TcpSettings.qml">../src/UI/preferences/TcpSettings.qml</file>
295295
<file alias="TelemetrySettings.qml">../src/UI/preferences/TelemetrySettings.qml</file>
296296
<file alias="UdpSettings.qml">../src/UI/preferences/UdpSettings.qml</file>
297-
<file alias="VehicleSummary.qml">../src/VehicleSetup/VehicleSummary.qml</file>
297+
<file alias="VehicleSummary.qml">../src/Vehicle/VehicleSetup/VehicleSummary.qml</file>
298298
<file alias="VibrationPage.qml">../src/AnalyzeView/VibrationPage.qml</file>
299299
<file alias="VideoSettings.qml">../src/UI/preferences/VideoSettings.qml</file>
300300
<file alias="VirtualJoystick.qml">../src/FlightDisplay/VirtualJoystick.qml</file>

qgcimages.qrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
<file alias="DatalinkLossLight.svg">src/AutoPilotPlugins/PX4/Images/DatalinkLossLight.svg</file>
8787
<file alias="Disarmed.svg">src/UI/toolbar/Images/Disarmed.svg</file>
8888
<file alias="Disconnect.svg">src/UI/toolbar/Images/Disconnect.svg</file>
89-
<file alias="FirmwareUpgradeIcon.png">src/VehicleSetup/FirmwareUpgradeIcon.png</file>
89+
<file alias="FirmwareUpgradeIcon.png">src/Vehicle/VehicleSetup/FirmwareUpgradeIcon.png</file>
9090
<file alias="FollowComponentIcon.png">src/AutoPilotPlugins/Common/Images/FlightModesComponentIcon.png</file>
9191
<file alias="FlightModesComponentIcon.png">src/AutoPilotPlugins/Common/Images/FlightModesComponentIcon.png</file>
9292
<file alias="FloatingWindow.svg">src/AnalyzeView/FloatingWindow.svg</file>
@@ -203,7 +203,7 @@
203203
<file alias="VehicleNoseDownRotate.png">src/AutoPilotPlugins/PX4/Images/VehicleNoseDownRotate.png</file>
204204
<file alias="VehicleRight.png">src/AutoPilotPlugins/PX4/Images/VehicleRight.png</file>
205205
<file alias="VehicleRightRotate.png">src/AutoPilotPlugins/PX4/Images/VehicleRightRotate.png</file>
206-
<file alias="VehicleSummaryIcon.png">src/VehicleSetup/VehicleSummaryIcon.png</file>
206+
<file alias="VehicleSummaryIcon.png">src/Vehicle/VehicleSetup/VehicleSummaryIcon.png</file>
207207
<file alias="VehicleTailDown.png">src/AutoPilotPlugins/PX4/Images/VehicleTailDown.png</file>
208208
<file alias="VehicleTailDownRotate.png">src/AutoPilotPlugins/PX4/Images/VehicleTailDownRotate.png</file>
209209
<file alias="VehicleUpsideDown.png">src/AutoPilotPlugins/PX4/Images/VehicleUpsideDown.png</file>

qgroundcontrol.qrc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<file alias="RemoteIDSettings.qml">src/UI/preferences/RemoteIDSettings.qml</file>
3939
<file alias="ESP8266Component.qml">src/AutoPilotPlugins/Common/ESP8266Component.qml</file>
4040
<file alias="ESP8266ComponentSummary.qml">src/AutoPilotPlugins/Common/ESP8266ComponentSummary.qml</file>
41-
<file alias="FirmwareUpgrade.qml">src/VehicleSetup/FirmwareUpgrade.qml</file>
41+
<file alias="FirmwareUpgrade.qml">src/Vehicle/VehicleSetup/FirmwareUpgrade.qml</file>
4242
<file alias="QGroundControl/FlightDisplay/QGCVideoBackground.qml">src/FlightDisplay/QGCVideoBackground.qml</file>
4343
<file alias="FlightDisplayViewDummy.qml">src/FlightDisplay/FlightDisplayViewDummy.qml</file>
4444
<file alias="FlightDisplayViewUVC.qml">src/FlightDisplay/FlightDisplayViewUVC.qml</file>
@@ -51,11 +51,11 @@
5151
<file alias="HelpSettings.qml">src/UI/preferences/HelpSettings.qml</file>
5252
<file alias="IntegratedAttitudeIndicator.qml">src/FlightMap/Widgets/IntegratedAttitudeIndicator.qml</file>
5353
<file alias="IntegratedCompassAttitude.qml">src/FlightMap/Widgets/IntegratedCompassAttitude.qml</file>
54-
<file alias="JoystickConfig.qml">src/VehicleSetup/JoystickConfig.qml</file>
55-
<file alias="JoystickConfigAdvanced.qml">src/VehicleSetup/JoystickConfigAdvanced.qml</file>
56-
<file alias="JoystickConfigButtons.qml">src/VehicleSetup/JoystickConfigButtons.qml</file>
57-
<file alias="JoystickConfigCalibration.qml">src/VehicleSetup/JoystickConfigCalibration.qml</file>
58-
<file alias="JoystickConfigGeneral.qml">src/VehicleSetup/JoystickConfigGeneral.qml</file>
54+
<file alias="JoystickConfig.qml">src/Vehicle/VehicleSetup/JoystickConfig.qml</file>
55+
<file alias="JoystickConfigAdvanced.qml">src/Vehicle/VehicleSetup/JoystickConfigAdvanced.qml</file>
56+
<file alias="JoystickConfigButtons.qml">src/Vehicle/VehicleSetup/JoystickConfigButtons.qml</file>
57+
<file alias="JoystickConfigCalibration.qml">src/Vehicle/VehicleSetup/JoystickConfigCalibration.qml</file>
58+
<file alias="JoystickConfigGeneral.qml">src/Vehicle/VehicleSetup/JoystickConfigGeneral.qml</file>
5959
<file alias="LinkSettings.qml">src/UI/preferences/LinkSettings.qml</file>
6060
<file alias="LogDownloadPage.qml">src/AnalyzeView/LogDownloadPage.qml</file>
6161
<file alias="LogReplaySettings.qml">src/UI/preferences/LogReplaySettings.qml</file>
@@ -73,7 +73,7 @@
7373
<file alias="PlanViewSettings.qml">src/UI/preferences/PlanViewSettings.qml</file>
7474
<file alias="PlanViewToolBar.qml">src/UI/toolbar/PlanViewToolBar.qml</file>
7575
<file alias="PreFlightCheckList.qml">src/FlightDisplay/PreFlightCheckList.qml</file>
76-
<file alias="OpticalFlowSensor.qml">src/VehicleSetup/OpticalFlowSensor.qml</file>
76+
<file alias="OpticalFlowSensor.qml">src/Vehicle/VehicleSetup/OpticalFlowSensor.qml</file>
7777
<file alias="VerticalCompassAttitude.qml">src/FlightMap/Widgets/VerticalCompassAttitude.qml</file>
7878
<file alias="HorizontalCompassAttitude.qml">src/FlightMap/Widgets/HorizontalCompassAttitude.qml</file>
7979
<file alias="QGroundControl/Controls/AnalyzePage.qml">src/AnalyzeView/AnalyzePage.qml</file>
@@ -294,8 +294,8 @@
294294
<file alias="QGroundControl/ScreenTools/ScreenTools.qml">src/QmlControls/ScreenTools.qml</file>
295295
<file alias="RadioComponent.qml">src/AutoPilotPlugins/Common/RadioComponent.qml</file>
296296
<file alias="SerialSettings.qml">src/UI/preferences/SerialSettings.qml</file>
297-
<file alias="SetupParameterEditor.qml">src/VehicleSetup/SetupParameterEditor.qml</file>
298-
<file alias="SetupView.qml">src/VehicleSetup/SetupView.qml</file>
297+
<file alias="SetupParameterEditor.qml">src/Vehicle/VehicleSetup/SetupParameterEditor.qml</file>
298+
<file alias="SetupView.qml">src/Vehicle/VehicleSetup/SetupView.qml</file>
299299
<file alias="SettingsPage.qml">src/UI/preferences/SettingsPage.qml</file>
300300
<file alias="SettingsPagesModel.qml">src/UI/SettingsPagesModel.qml</file>
301301
<file alias="SimpleItemEditor.qml">src/PlanView/SimpleItemEditor.qml</file>
@@ -305,7 +305,7 @@
305305
<file alias="TcpSettings.qml">src/UI/preferences/TcpSettings.qml</file>
306306
<file alias="TelemetrySettings.qml">src/UI/preferences/TelemetrySettings.qml</file>
307307
<file alias="UdpSettings.qml">src/UI/preferences/UdpSettings.qml</file>
308-
<file alias="VehicleSummary.qml">src/VehicleSetup/VehicleSummary.qml</file>
308+
<file alias="VehicleSummary.qml">src/Vehicle/VehicleSetup/VehicleSummary.qml</file>
309309
<file alias="VibrationPage.qml">src/AnalyzeView/VibrationPage.qml</file>
310310
<file alias="VideoSettings.qml">src/UI/preferences/VideoSettings.qml</file>
311311
<file alias="VirtualJoystick.qml">src/FlightDisplay/VirtualJoystick.qml</file>

src/AnalyzeView/CMakeLists.txt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,24 @@ CPMAddPackage(
117117
"EXPAT_SHARED_LIBS OFF"
118118
)
119119

120-
if(TARGET EXPAT::EXPAT)
121-
set(_EXIV2_ENABLE_XMP ON)
122-
else()
123-
set(_EXIV2_ENABLE_XMP OFF)
120+
set(_EXIV2_ENABLE_XMP OFF)
121+
if(EXPAT_ADDED)
122+
find_package(expat CONFIG QUIET)
123+
if(NOT TARGET expat::expat)
124+
find_package(EXPAT MODULE)
125+
if(EXPAT_FOUND)
126+
if(NOT TARGET expat::expat)
127+
add_library(expat::expat INTERFACE IMPORTED)
128+
target_link_libraries(expat::expat INTERFACE EXPAT::EXPAT)
129+
endif()
130+
set(_EXIV2_ENABLE_XMP ON)
131+
endif()
132+
endif()
124133
endif()
125134

126135
CPMAddPackage(
127136
NAME exiv2
128-
VERSION 0.28.4
137+
VERSION 0.28.5
129138
GITHUB_REPOSITORY Exiv2/exiv2
130139
OPTIONS
131140
"EXIV2_ENABLE_XMP ${_EXIV2_ENABLE_XMP}"

src/AutoPilotPlugins/APM/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,8 @@ target_link_libraries(APMAutoPilotPlugin
5555
Qt6::Core
5656
Qt6::Quick
5757
AutoPilotPlugins
58-
CommonAutoPilotPlugin
5958
FactControls
6059
MAVLink
61-
VehicleSetup
6260
)
6361

6462
target_include_directories(APMAutoPilotPlugin PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

src/AutoPilotPlugins/AutoPilotPlugin.cc

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,43 @@
77
*
88
****************************************************************************/
99

10-
11-
/// @file
12-
/// @author Don Gagne <[email protected]>
13-
1410
#include "AutoPilotPlugin.h"
15-
#include "QGCApplication.h"
1611
#include "FirmwarePlugin.h"
12+
#include "QGCApplication.h"
13+
#include "QGCLoggingCategory.h"
1714
#include "Vehicle.h"
1815
#include "VehicleComponent.h"
16+
1917
#include <QtCore/QCoreApplication>
2018

21-
AutoPilotPlugin::AutoPilotPlugin(Vehicle* vehicle, QObject* parent)
19+
QGC_LOGGING_CATEGORY(AutoPilotPluginLog, "qgc.autopilotplugin.autopilotplugin");
20+
21+
AutoPilotPlugin::AutoPilotPlugin(Vehicle *vehicle, QObject *parent)
2222
: QObject(parent)
2323
, _vehicle(vehicle)
2424
, _firmwarePlugin(vehicle->firmwarePlugin())
25-
, _setupComplete(false)
2625
{
27-
26+
// qCDebug(AutoPilotPluginLog) << Q_FUNC_INFO << this;
2827
}
2928

3029
AutoPilotPlugin::~AutoPilotPlugin()
3130
{
32-
31+
// qCDebug(AutoPilotPluginLog) << Q_FUNC_INFO << this;
3332
}
3433

35-
void AutoPilotPlugin::_recalcSetupComplete(void)
34+
void AutoPilotPlugin::_recalcSetupComplete()
3635
{
3736
bool newSetupComplete = true;
3837

39-
for(const QVariant& componentVariant: vehicleComponents()) {
40-
VehicleComponent* component = qobject_cast<VehicleComponent*>(qvariant_cast<QObject *>(componentVariant));
38+
for (const QVariant &componentVariant : vehicleComponents()) {
39+
const VehicleComponent *const component = qobject_cast<const VehicleComponent*>(qvariant_cast<const QObject*>(componentVariant));
4140
if (component) {
4241
if (!component->setupComplete()) {
4342
newSetupComplete = false;
4443
break;
4544
}
4645
} else {
47-
qWarning() << "AutoPilotPlugin::_recalcSetupComplete Incorrectly typed VehicleComponent";
46+
qCWarning(AutoPilotPluginLog) << "Incorrectly typed VehicleComponent";
4847
}
4948
}
5049

@@ -54,22 +53,17 @@ void AutoPilotPlugin::_recalcSetupComplete(void)
5453
}
5554
}
5655

57-
bool AutoPilotPlugin::setupComplete(void) const
58-
{
59-
return _setupComplete;
60-
}
61-
62-
void AutoPilotPlugin::parametersReadyPreChecks(void)
56+
void AutoPilotPlugin::parametersReadyPreChecks()
6357
{
6458
_recalcSetupComplete();
6559

6660
// Connect signals in order to keep setupComplete up to date
67-
for(QVariant componentVariant: vehicleComponents()) {
68-
VehicleComponent* component = qobject_cast<VehicleComponent*>(qvariant_cast<QObject *>(componentVariant));
61+
for (QVariant componentVariant : vehicleComponents()) {
62+
VehicleComponent *const component = qobject_cast<VehicleComponent*>(qvariant_cast<QObject*>(componentVariant));
6963
if (component) {
70-
connect(component, &VehicleComponent::setupCompleteChanged, this, &AutoPilotPlugin::_recalcSetupComplete);
64+
(void) connect(component, &VehicleComponent::setupCompleteChanged, this, &AutoPilotPlugin::_recalcSetupComplete);
7165
} else {
72-
qWarning() << "AutoPilotPlugin::_recalcSetupComplete Incorrectly typed VehicleComponent";
66+
qCWarning(AutoPilotPluginLog) << "Incorrectly typed VehicleComponent";
7367
}
7468
}
7569

@@ -82,12 +76,12 @@ void AutoPilotPlugin::parametersReadyPreChecks(void)
8276
}
8377
}
8478

85-
VehicleComponent* AutoPilotPlugin::findKnownVehicleComponent(KnownVehicleComponent knownVehicleComponent)
79+
VehicleComponent *AutoPilotPlugin::findKnownVehicleComponent(KnownVehicleComponent knownVehicleComponent)
8680
{
8781
if (knownVehicleComponent != UnknownVehicleComponent) {
88-
for(const QVariant& componentVariant: vehicleComponents()) {
89-
VehicleComponent* component = qobject_cast<VehicleComponent*>(qvariant_cast<QObject *>(componentVariant));
90-
if (component && component->KnownVehicleComponent() == knownVehicleComponent) {
82+
for (const QVariant &componentVariant: vehicleComponents()) {
83+
VehicleComponent *const component = qobject_cast<VehicleComponent*>(qvariant_cast<QObject *>(componentVariant));
84+
if (component && (component->KnownVehicleComponent() == knownVehicleComponent)) {
9185
return component;
9286
}
9387
}

0 commit comments

Comments
 (0)