Make sure a signal is connected only once

This commit is contained in:
Magne Sjaastad 2022-02-28 10:32:15 +01:00
parent cc52508970
commit 9826d94e9a
3 changed files with 20 additions and 12 deletions

View File

@ -50,8 +50,9 @@ void RicNewPlotAxisPropertiesFeature::onActionTriggered( bool isChecked )
RimSummaryPlot* summaryPlot = summaryPlots[0]; RimSummaryPlot* summaryPlot = summaryPlots[0];
bool connectSignals = true;
RimPlotAxisProperties* newPlotAxisProperties = RimPlotAxisProperties* newPlotAxisProperties =
summaryPlot->addNewAxisProperties( RiaDefines::PlotAxis::PLOT_AXIS_LEFT, "New Axis" ); summaryPlot->addNewAxisProperties( RiaDefines::PlotAxis::PLOT_AXIS_LEFT, "New Axis", connectSignals );
summaryPlot->updateConnectedEditors(); summaryPlot->updateConnectedEditors();
RiuPlotMainWindowTools::selectAsCurrentItem( newPlotAxisProperties ); RiuPlotMainWindowTools::selectAsCurrentItem( newPlotAxisProperties );

View File

@ -121,12 +121,13 @@ RimSummaryPlot::RimSummaryPlot( bool isCrossPlot )
CAF_PDM_InitFieldNoDefault( &m_axisProperties, "AxisProperties", "Axes", ":/Axes16x16.png" ); CAF_PDM_InitFieldNoDefault( &m_axisProperties, "AxisProperties", "Axes", ":/Axes16x16.png" );
addNewAxisProperties( RiuPlotAxis::defaultLeft(), "Left" ); bool connectSignals = false;
addNewAxisProperties( RiuPlotAxis::defaultRight(), "Right" ); addNewAxisProperties( RiuPlotAxis::defaultLeft(), "Left", connectSignals );
addNewAxisProperties( RiuPlotAxis::defaultRight(), "Right", connectSignals );
if ( m_isCrossPlot ) if ( m_isCrossPlot )
{ {
addNewAxisProperties( RiuPlotAxis::defaultBottom(), "Bottom" ); addNewAxisProperties( RiuPlotAxis::defaultBottom(), "Bottom", connectSignals );
} }
else else
{ {
@ -1725,21 +1726,26 @@ void RimSummaryPlot::axisLogarithmicChanged( const caf::SignalEmitter* emitter,
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimPlotAxisProperties* RimSummaryPlot::addNewAxisProperties( RiaDefines::PlotAxis plotAxis, const QString& name ) RimPlotAxisProperties*
RimSummaryPlot::addNewAxisProperties( RiaDefines::PlotAxis plotAxis, const QString& name, bool connectSignals )
{ {
RiuPlotAxis newPlotAxis = plotWidget()->createNextPlotAxis( plotAxis ); RiuPlotAxis newPlotAxis = plotWidget()->createNextPlotAxis( plotAxis );
return addNewAxisProperties( newPlotAxis, name ); return addNewAxisProperties( newPlotAxis, name, connectSignals );
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimPlotAxisProperties* RimSummaryPlot::addNewAxisProperties( RiuPlotAxis plotAxis, const QString& name ) RimPlotAxisProperties* RimSummaryPlot::addNewAxisProperties( RiuPlotAxis plotAxis, const QString& name, bool connectSignals )
{ {
RimPlotAxisProperties* axisProperties = new RimPlotAxisProperties; RimPlotAxisProperties* axisProperties = new RimPlotAxisProperties;
axisProperties->setNameAndAxis( name, plotAxis.axis(), plotAxis.index() ); axisProperties->setNameAndAxis( name, plotAxis.axis(), plotAxis.index() );
m_axisProperties.push_back( axisProperties ); m_axisProperties.push_back( axisProperties );
connectAxisSignals( axisProperties );
if ( connectSignals )
{
connectAxisSignals( axisProperties );
}
return axisProperties; return axisProperties;
} }
@ -2532,8 +2538,9 @@ void RimSummaryPlot::assignPlotAxis( RimSummaryCurve* destinationCurve )
if ( !destinationCurve->summaryAddressY().uiText().empty() ) if ( !destinationCurve->summaryAddressY().uiText().empty() )
axisObjectName = QString::fromStdString( destinationCurve->summaryAddressY().uiText() ); axisObjectName = QString::fromStdString( destinationCurve->summaryAddressY().uiText() );
newPlotAxis = plotWidget()->createNextPlotAxis( plotAxis ); newPlotAxis = plotWidget()->createNextPlotAxis( plotAxis );
addNewAxisProperties( newPlotAxis, axisObjectName ); bool connectSignals = true;
addNewAxisProperties( newPlotAxis, axisObjectName, connectSignals );
} }
destinationCurve->setLeftOrRightAxisY( newPlotAxis ); destinationCurve->setLeftOrRightAxisY( newPlotAxis );

View File

@ -189,7 +189,7 @@ public:
RimPlotAxisPropertiesInterface* axisPropertiesForPlotAxis( RiuPlotAxis plotAxis ) const; RimPlotAxisPropertiesInterface* axisPropertiesForPlotAxis( RiuPlotAxis plotAxis ) const;
RimPlotAxisProperties* addNewAxisProperties( RiaDefines::PlotAxis, const QString& name ); RimPlotAxisProperties* addNewAxisProperties( RiaDefines::PlotAxis, const QString& name, bool connectSignals );
public: public:
// RimViewWindow overrides // RimViewWindow overrides
@ -214,7 +214,7 @@ private:
void connectCurveToPlot( RimSummaryCurve* curve, bool update, bool autoAssignPlotAxis ); void connectCurveToPlot( RimSummaryCurve* curve, bool update, bool autoAssignPlotAxis );
RimPlotAxisProperties* addNewAxisProperties( RiuPlotAxis plotAxis, const QString& name ); RimPlotAxisProperties* addNewAxisProperties( RiuPlotAxis plotAxis, const QString& name, bool connectSignals );
protected: protected:
// Overridden PDM methods // Overridden PDM methods