mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-26 01:39:05 -05:00
Corrected order of deletion of channel vs channel GUI. Fixes #1332
This commit is contained in:
parent
ef873c00bb
commit
bd7fd29de9
@ -161,8 +161,8 @@ void DeviceUISet::freeChannels()
|
|||||||
for(int i = 0; i < m_channelInstanceRegistrations.count(); i++)
|
for(int i = 0; i < m_channelInstanceRegistrations.count(); i++)
|
||||||
{
|
{
|
||||||
qDebug("DeviceUISet::freeChannels: destroying channel [%s]", qPrintable(m_channelInstanceRegistrations[i].m_channelAPI->getURI()));
|
qDebug("DeviceUISet::freeChannels: destroying channel [%s]", qPrintable(m_channelInstanceRegistrations[i].m_channelAPI->getURI()));
|
||||||
m_channelInstanceRegistrations[i].m_channelAPI->destroy();
|
|
||||||
m_channelInstanceRegistrations[i].m_gui->destroy();
|
m_channelInstanceRegistrations[i].m_gui->destroy();
|
||||||
|
m_channelInstanceRegistrations[i].m_channelAPI->destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_channelInstanceRegistrations.clear();
|
m_channelInstanceRegistrations.clear();
|
||||||
@ -176,8 +176,8 @@ void DeviceUISet::deleteChannel(int channelIndex)
|
|||||||
qDebug("DeviceUISet::deleteChannel: delete channel [%s] at %d",
|
qDebug("DeviceUISet::deleteChannel: delete channel [%s] at %d",
|
||||||
qPrintable(m_channelInstanceRegistrations[channelIndex].m_channelAPI->getURI()),
|
qPrintable(m_channelInstanceRegistrations[channelIndex].m_channelAPI->getURI()),
|
||||||
channelIndex);
|
channelIndex);
|
||||||
m_channelInstanceRegistrations[channelIndex].m_channelAPI->destroy();
|
|
||||||
m_channelInstanceRegistrations[channelIndex].m_gui->destroy();
|
m_channelInstanceRegistrations[channelIndex].m_gui->destroy();
|
||||||
|
m_channelInstanceRegistrations[channelIndex].m_channelAPI->destroy();
|
||||||
m_channelInstanceRegistrations.removeAt(channelIndex);
|
m_channelInstanceRegistrations.removeAt(channelIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,8 +723,14 @@ void DeviceUISet::handleChannelGUIClosing(ChannelGUI* channelGUI)
|
|||||||
{
|
{
|
||||||
if (it->m_gui == channelGUI)
|
if (it->m_gui == channelGUI)
|
||||||
{
|
{
|
||||||
m_deviceSet->removeChannelInstance(it->m_channelAPI);
|
ChannelAPI *channelAPI = it->m_channelAPI;
|
||||||
it->m_channelAPI->destroy();
|
m_deviceSet->removeChannelInstance(channelAPI);
|
||||||
|
QObject::connect(
|
||||||
|
channelGUI,
|
||||||
|
&ChannelGUI::destroyed,
|
||||||
|
this,
|
||||||
|
[this, channelAPI](){ this->handleDeleteChannel(channelAPI); }
|
||||||
|
);
|
||||||
m_channelInstanceRegistrations.erase(it);
|
m_channelInstanceRegistrations.erase(it);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -736,6 +742,11 @@ void DeviceUISet::handleChannelGUIClosing(ChannelGUI* channelGUI)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeviceUISet::handleDeleteChannel(ChannelAPI *channelAPI)
|
||||||
|
{
|
||||||
|
channelAPI->destroy();
|
||||||
|
}
|
||||||
|
|
||||||
int DeviceUISet::webapiSpectrumSettingsGet(SWGSDRangel::SWGGLSpectrum& response, QString& errorMessage) const
|
int DeviceUISet::webapiSpectrumSettingsGet(SWGSDRangel::SWGGLSpectrum& response, QString& errorMessage) const
|
||||||
{
|
{
|
||||||
return m_spectrumVis->webapiSpectrumSettingsGet(response, errorMessage);
|
return m_spectrumVis->webapiSpectrumSettingsGet(response, errorMessage);
|
||||||
|
@ -158,6 +158,7 @@ private:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void handleChannelGUIClosing(ChannelGUI* channelGUI);
|
void handleChannelGUIClosing(ChannelGUI* channelGUI);
|
||||||
|
void handleDeleteChannel(ChannelAPI *channelAPI);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user