From b1d5c938e4a868e489176b1b117ae4166c298160 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 9 Oct 2024 13:40:25 +0200 Subject: [PATCH] Axivion: Fix crash and signal emission Avoid accessing an empty list. Avoid sending the changed() signal twice when applying the settings. Change-Id: I24381fe4a1043e50fbe3609293e407acd6ae3e4b Reviewed-by: Mohammad Mehdi Salem Naraghi Reviewed-by: Jarek Kobus --- src/plugins/axivion/axivionsettings.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/axivion/axivionsettings.cpp b/src/plugins/axivion/axivionsettings.cpp index 1c15d4979d0..6c07811b0a4 100644 --- a/src/plugins/axivion/axivionsettings.cpp +++ b/src/plugins/axivion/axivionsettings.cpp @@ -252,7 +252,7 @@ bool AxivionSettings::updateDashboardServers(const QList &other, if (selected == oldDefault && m_allServers == other) return false; - m_defaultServerId.setValue(selected.toString()); + m_defaultServerId.setValue(selected.toString(), BeQuiet); m_allServers = other; emit changed(); // should we be more detailed? (id) return true; @@ -417,7 +417,9 @@ void AxivionSettingsWidget::apply() QList servers; for (int i = 0, end = m_dashboardServers->count(); i < end; ++i) servers.append(m_dashboardServers->itemData(i).value()); - if (settings().updateDashboardServers(servers, servers.at(m_dashboardServers->currentIndex()).id)) + const Id selected = servers.isEmpty() ? Id{} + : servers.at(m_dashboardServers->currentIndex()).id; + if (settings().updateDashboardServers(servers, selected)) settings().toSettings(); }