Fix crash when closing and reopening plots

This commit is contained in:
Gaute Lindkvist 2019-11-22 15:42:40 +01:00
parent f130163ee8
commit 293290827b
9 changed files with 20 additions and 22 deletions

View File

@ -198,7 +198,7 @@ void RimGridCrossPlot::calculateZoomRangeAndUpdateQwt()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridCrossPlot::reattachCurvesToQwtAndReplot()
void RimGridCrossPlot::reattachAllCurves()
{
if ( m_plotWidget )
{

View File

@ -70,15 +70,17 @@ public:
QImage snapshotWindowContent() override;
void zoomAll() override;
void calculateZoomRangeAndUpdateQwt();
void reattachCurvesToQwtAndReplot();
QString createAutoName() const override;
bool showInfoBox() const;
caf::PdmFieldHandle* userDescriptionField() override;
void detachAllCurves() override;
void performAutoNameUpdate() override;
void updateCurveNamesAndPlotTitle();
void swapAxes();
void detachAllCurves() override;
void reattachAllCurves() override;
void performAutoNameUpdate() override;
void updateCurveNamesAndPlotTitle();
void swapAxes();
QString asciiDataForPlotExport() const override;
QString asciiTitleForPlotExport( int dataSetIndex ) const;

View File

@ -147,7 +147,7 @@ void RimGridCrossPlotCurve::updateLegendsInPlot()
this->firstAncestorOrThisOfType( plot );
if ( plot )
{
plot->reattachCurvesToQwtAndReplot();
plot->reattachAllCurves();
}
RimPlotCurve::updateLegendsInPlot();
}

View File

@ -1216,7 +1216,7 @@ void RimGridCrossPlotDataSet::triggerPlotNameUpdateAndReplot()
if ( parent )
{
parent->updateCurveNamesAndPlotTitle();
parent->reattachCurvesToQwtAndReplot();
parent->reattachAllCurves();
parent->updateConnectedEditors();
}
}

View File

@ -78,7 +78,8 @@ public:
virtual QString asciiDataForPlotExport() const = 0;
virtual void detachAllCurves() = 0;
virtual void reattachAllCurves() = 0;
virtual void detachAllCurves() = 0;
virtual caf::PdmObject* findPdmObjectFromQwtCurve( const QwtPlotCurve* curve ) const = 0;

View File

@ -126,7 +126,7 @@ public:
TrajectoryType formationTrajectoryType() const;
void detachAllCurves() override;
void reattachAllCurves();
void reattachAllCurves() override;
void setAndUpdateWellPathFormationNamesData( RimCase* rimCase, RimWellPath* wellPath );

View File

@ -102,7 +102,7 @@ public:
size_t curveCount() const;
void detachAllCurves() override;
void reattachAllCurves();
void reattachAllCurves() override;
void updateCaseNameHasChanged();
void updateAxes() override;

View File

@ -527,6 +527,10 @@ bool RiuQwtPlotWidget::eventFilter( QObject* watched, QEvent* event )
void RiuQwtPlotWidget::hideEvent( QHideEvent* event )
{
resetCurveHighlighting();
if ( m_plotDefinition )
{
m_plotDefinition->detachAllCurves();
}
QwtPlot::hideEvent( event );
}
@ -541,19 +545,11 @@ void RiuQwtPlotWidget::showEvent( QShowEvent* event )
m_canvasStyleSheet = createCanvasStyleSheet();
m_canvasStyleSheet.applyToWidget( canvas() );
QwtPlot::showEvent( event );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuQwtPlotWidget::closeEvent( QCloseEvent* event )
{
if ( m_plotDefinition )
{
m_plotDefinition->detachAllCurves();
m_plotDefinition->reattachAllCurves();
}
QwtPlot::closeEvent( event );
QwtPlot::showEvent( event );
}
//--------------------------------------------------------------------------------------------------

View File

@ -106,7 +106,6 @@ protected:
bool eventFilter( QObject* watched, QEvent* event ) override;
void hideEvent( QHideEvent* event ) override;
void showEvent( QShowEvent* event ) override;
void closeEvent( QCloseEvent* event ) override;
void applyAxisTitleToQwt( QwtPlot::Axis axis );