forked from qt-creator/qt-creator
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 <mehdi.salem@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -252,7 +252,7 @@ bool AxivionSettings::updateDashboardServers(const QList<AxivionServer> &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<AxivionServer> servers;
|
||||
for (int i = 0, end = m_dashboardServers->count(); i < end; ++i)
|
||||
servers.append(m_dashboardServers->itemData(i).value<AxivionServer>());
|
||||
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();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user