#5007 Janitor : Do not call virtual methods from destructors

This commit is contained in:
Magne Sjaastad
2019-11-07 08:48:11 +01:00
parent 0caaaf7159
commit a413f672ec
12 changed files with 99 additions and 30 deletions

View File

@@ -87,7 +87,7 @@ RimGridCrossPlot::RimGridCrossPlot()
RimGridCrossPlot::~RimGridCrossPlot()
{
removeMdiWindowFromMdiArea();
deleteViewWidget();
cleanupBeforeClose();
}
//--------------------------------------------------------------------------------------------------
@@ -481,12 +481,7 @@ QWidget* RimGridCrossPlot::createViewWidget( QWidget* mainWindowParent )
//--------------------------------------------------------------------------------------------------
void RimGridCrossPlot::deleteViewWidget()
{
detachAllCurves();
if ( m_plotWidget )
{
m_plotWidget->deleteLater();
m_plotWidget = nullptr;
}
cleanupBeforeClose();
}
//--------------------------------------------------------------------------------------------------
@@ -1115,6 +1110,23 @@ void RimGridCrossPlot::updatePlotTitle()
updateCurveNamesAndPlotTitle();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridCrossPlot::cleanupBeforeClose()
{
for ( auto dataSet : m_crossPlotDataSets() )
{
dataSet->detachAllCurves();
}
if ( m_plotWidget )
{
m_plotWidget->deleteLater();
m_plotWidget = nullptr;
}
}
//--------------------------------------------------------------------------------------------------
/// Name Configuration
///