mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-05 22:57:47 -04:00
Corrected order of deletion of feature vs feature GUI. Fixes #1332
This commit is contained in:
parent
da14591c93
commit
de6bd1f608
@ -66,8 +66,8 @@ void FeatureUISet::freeFeatures()
|
|||||||
qDebug("FeatureUISet::freeFeatures: destroying feature [%s]",
|
qDebug("FeatureUISet::freeFeatures: destroying feature [%s]",
|
||||||
qPrintable(m_featureInstanceRegistrations.at(i).m_feature->getURI())
|
qPrintable(m_featureInstanceRegistrations.at(i).m_feature->getURI())
|
||||||
);
|
);
|
||||||
m_featureInstanceRegistrations.at(i).m_feature->destroy();
|
|
||||||
m_featureInstanceRegistrations.at(i).m_gui->destroy();
|
m_featureInstanceRegistrations.at(i).m_gui->destroy();
|
||||||
|
m_featureInstanceRegistrations.at(i).m_feature->destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_featureInstanceRegistrations.clear();
|
m_featureInstanceRegistrations.clear();
|
||||||
@ -82,8 +82,8 @@ void FeatureUISet::deleteFeature(int featureIndex)
|
|||||||
qPrintable(m_featureInstanceRegistrations.at(featureIndex).m_feature->getURI()),
|
qPrintable(m_featureInstanceRegistrations.at(featureIndex).m_feature->getURI()),
|
||||||
featureIndex
|
featureIndex
|
||||||
);
|
);
|
||||||
m_featureInstanceRegistrations.at(featureIndex).m_feature->destroy();
|
|
||||||
m_featureInstanceRegistrations.at(featureIndex).m_gui->destroy();
|
m_featureInstanceRegistrations.at(featureIndex).m_gui->destroy();
|
||||||
|
m_featureInstanceRegistrations.at(featureIndex).m_feature->destroy();
|
||||||
m_featureInstanceRegistrations.removeAt(featureIndex);
|
m_featureInstanceRegistrations.removeAt(featureIndex);
|
||||||
m_featureSet->removeFeatureInstanceAt(featureIndex);
|
m_featureSet->removeFeatureInstanceAt(featureIndex);
|
||||||
}
|
}
|
||||||
@ -233,8 +233,14 @@ void FeatureUISet::handleClosingFeatureGUI(FeatureGUI *featureGUI)
|
|||||||
{
|
{
|
||||||
if (it->m_gui == featureGUI)
|
if (it->m_gui == featureGUI)
|
||||||
{
|
{
|
||||||
m_featureSet->removeFeatureInstance(it->m_feature);
|
Feature *feature = it->m_feature;
|
||||||
it->m_feature->destroy();
|
m_featureSet->removeFeatureInstance(feature);
|
||||||
|
QObject::connect(
|
||||||
|
featureGUI,
|
||||||
|
&FeatureGUI::destroyed,
|
||||||
|
this,
|
||||||
|
[this, feature](){ this->handleDeleteFeature(feature); }
|
||||||
|
);
|
||||||
m_featureInstanceRegistrations.erase(it);
|
m_featureInstanceRegistrations.erase(it);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -245,3 +251,8 @@ void FeatureUISet::handleClosingFeatureGUI(FeatureGUI *featureGUI)
|
|||||||
m_featureInstanceRegistrations.at(i).m_gui->setIndex(i);
|
m_featureInstanceRegistrations.at(i).m_gui->setIndex(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FeatureUISet::handleDeleteFeature(Feature *feature)
|
||||||
|
{
|
||||||
|
feature->destroy();
|
||||||
|
}
|
||||||
|
@ -85,6 +85,8 @@ private:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void handleClosingFeatureGUI(FeatureGUI *featureGUI);
|
void handleClosingFeatureGUI(FeatureGUI *featureGUI);
|
||||||
|
void handleDeleteFeature(Feature *feature);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SDRGUI_FEATURE_FEATUREUISET_H_
|
#endif // SDRGUI_FEATURE_FEATUREUISET_H_
|
||||||
|
Loading…
x
Reference in New Issue
Block a user