Remove superfluous Signal::disconnect() calls

This commit is contained in:
Gaute Lindkvist 2020-09-16 09:06:21 +02:00
parent c65157277a
commit 1649d27d0f
13 changed files with 23 additions and 74 deletions

View File

@ -202,7 +202,6 @@ RimPlotDataFilterCollection* RimAnalysisPlot::plotDataFilterCollection() const
//--------------------------------------------------------------------------------------------------
void RimAnalysisPlot::setCurveDefinitions( const std::vector<RiaSummaryCurveDefinition>& curveDefinitions )
{
disconnectAllCaseSignals();
m_analysisPlotDataSelection.deleteAllChildObjects();
for ( auto curveDef : curveDefinitions )
{
@ -460,7 +459,6 @@ void RimAnalysisPlot::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
{
std::vector<RiaSummaryCurveDefinition> summaryVectorDefinitions = dlg.curveSelection();
disconnectAllCaseSignals();
m_analysisPlotDataSelection.deleteAllChildObjects();
for ( const RiaSummaryCurveDefinition& vectorDef : summaryVectorDefinitions )
{
@ -1816,17 +1814,3 @@ void RimAnalysisPlot::connectAllCaseSignals()
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimAnalysisPlot::disconnectAllCaseSignals()
{
for ( auto dataEntry : m_analysisPlotDataSelection )
{
if ( dataEntry->ensemble() )
{
dataEntry->ensemble()->caseRemoved.disconnect( this );
}
}
}

View File

@ -181,7 +181,6 @@ private:
private:
void onCaseRemoved( const SignalEmitter* emitter, RimSummaryCase* summaryCase );
void connectAllCaseSignals();
void disconnectAllCaseSignals();
private:
std::unique_ptr<RiaSummaryCurveDefinitionAnalyser> m_analyserOfSelectedCurveDefs;

View File

@ -56,8 +56,6 @@ RimPlotDataFilterItem* RimPlotDataFilterCollection::addFilter()
//--------------------------------------------------------------------------------------------------
void RimPlotDataFilterCollection::removeFilter( RimPlotDataFilterItem* filter )
{
filter->filterChanged.disconnect( this );
m_filters.removeChildObject( filter );
delete filter;

View File

@ -76,7 +76,6 @@ RimAbstractCorrelationPlot::~RimAbstractCorrelationPlot()
//--------------------------------------------------------------------------------------------------
void RimAbstractCorrelationPlot::setCurveDefinitions( const std::vector<RiaSummaryCurveDefinition>& curveDefinitions )
{
disconnectAllCaseSignals();
m_analysisPlotDataSelection.deleteAllChildObjects();
for ( auto curveDef : curveDefinitions )
{
@ -127,7 +126,6 @@ void RimAbstractCorrelationPlot::fieldChangedByUi( const caf::PdmFieldHandle* ch
if ( !curveSelection.empty() )
{
std::vector<RiaSummaryCurveDefinition> summaryVectorDefinitions = dlg.curveSelection();
disconnectAllCaseSignals();
m_analysisPlotDataSelection.deleteAllChildObjects();
for ( const RiaSummaryCurveDefinition& vectorDef : summaryVectorDefinitions )
{
@ -613,17 +611,3 @@ void RimAbstractCorrelationPlot::connectAllCaseSignals()
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimAbstractCorrelationPlot::disconnectAllCaseSignals()
{
for ( auto dataEntry : m_analysisPlotDataSelection )
{
if ( dataEntry->ensemble() )
{
dataEntry->ensemble()->caseRemoved.disconnect( this );
}
}
}

View File

@ -120,7 +120,6 @@ protected:
private:
void onCaseRemoved( const SignalEmitter* emitter, RimSummaryCase* summaryCase );
void connectAllCaseSignals();
void disconnectAllCaseSignals();
protected:
std::unique_ptr<RiaSummaryCurveDefinitionAnalyser> m_analyserOfSelectedCurveDefs;

View File

@ -178,8 +178,6 @@ void RimWellLogExtractionCurve::setFromSimulationWellName( const QString& simWel
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurve::setCase( RimCase* rimCase )
{
disconnectCaseSignals( m_case.value() );
m_case = rimCase;
connectCaseSignals( rimCase );
@ -201,7 +199,6 @@ void RimWellLogExtractionCurve::setPropertiesFromView( Rim3dView* view )
{
if ( view )
{
disconnectCaseSignals( m_case.value() );
m_case = view->ownerCase();
connectCaseSignals( m_case );
}
@ -1121,17 +1118,6 @@ void RimWellLogExtractionCurve::connectCaseSignals( RimCase* rimCase )
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogExtractionCurve::disconnectCaseSignals( RimCase* rimCase )
{
if ( rimCase != nullptr )
{
rimCase->settingsChanged.disconnect( this );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -98,7 +98,6 @@ protected:
void onLoadDataAndUpdate( bool updateParentPlot ) override;
void onCaseSettingsChanged( const caf::SignalEmitter* emitter );
void connectCaseSignals( RimCase* rimCase );
void disconnectCaseSignals( RimCase* rimCase );
virtual void performDataExtraction( bool* isUsingPseudoLength );
void extractData( bool* isUsingPseudoLength, bool performDataSmoothing = false, double smoothingThreshold = -1.0 );

View File

@ -1112,7 +1112,6 @@ void RimWellLogTrack::removeCurve( RimWellLogCurve* curve )
{
m_curves[index]->detachQwtCurve();
m_curves.removeChildObject( curve );
disconnectCurveSignals( curve );
}
}
@ -2045,17 +2044,6 @@ void RimWellLogTrack::connectCurveSignals( RimWellLogCurve* curve )
curve->stackingChanged.connect( this, &RimWellLogTrack::curveStackingChanged );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellLogTrack::disconnectCurveSignals( RimWellLogCurve* curve )
{
curve->dataChanged.disconnect( this );
curve->visibilityChanged.disconnect( this );
curve->appearanceChanged.disconnect( this );
curve->stackingChanged.disconnect( this );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -299,7 +299,6 @@ private:
const RigWellLogExtractor* extractor ) const;
void connectCurveSignals( RimWellLogCurve* curve );
void disconnectCurveSignals( RimWellLogCurve* curve );
private:
QString m_xAxisTitle;

View File

@ -230,7 +230,6 @@ void RimSummaryCaseCollection::removeCase( RimSummaryCase* summaryCase )
{
size_t caseCountBeforeRemove = m_cases.size();
summaryCase->nameChanged.disconnect( this );
m_cases.removeChildObject( summaryCase );
m_cachedSortedEnsembleParameters.clear();

View File

@ -240,7 +240,6 @@ void RimSummaryCaseMainCollection::removeCase( RimSummaryCase* summaryCase )
}
}
summaryCase->nameChanged.disconnect( this );
m_cases.removeChildObject( summaryCase );
for ( RimSummaryCaseCollection* summaryCaseCollection : m_caseCollections )
@ -307,7 +306,6 @@ RimSummaryCaseCollection*
//--------------------------------------------------------------------------------------------------
void RimSummaryCaseMainCollection::removeCaseCollection( RimSummaryCaseCollection* caseCollection )
{
caseCollection->caseNameChanged.disconnect( this );
m_caseCollections.removeChildObject( caseCollection );
}

View File

@ -51,6 +51,14 @@ SignalEmitter::~SignalEmitter()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void SignalEmitter::addEmittedSignal( AbstractSignal* signalToAdd ) const
{
m_signals.push_back( signalToAdd );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -85,7 +93,7 @@ std::list<AbstractSignal*> SignalObserver::observedSignals() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void SignalObserver::addSignal( AbstractSignal* signalToObserve ) const
void SignalObserver::addObservedSignal( AbstractSignal* signalToObserve ) const
{
m_signals.push_back( signalToObserve );
}
@ -93,7 +101,7 @@ void SignalObserver::addSignal( AbstractSignal* signalToObserve ) const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void SignalObserver::removeSignal( AbstractSignal* signalToRemove ) const
void SignalObserver::removeObservedSignal( AbstractSignal* signalToRemove ) const
{
m_signals.remove( signalToRemove );
}

View File

@ -64,6 +64,8 @@ class SignalEmitter
public:
SignalEmitter();
virtual ~SignalEmitter();
void addEmittedSignal( AbstractSignal* signalToAdd ) const;
std::list<AbstractSignal*> emittedSignals() const;
private:
@ -80,8 +82,8 @@ public:
SignalObserver();
virtual ~SignalObserver();
std::list<AbstractSignal*> observedSignals() const;
void addSignal( AbstractSignal* signalToAdd ) const;
void removeSignal( AbstractSignal* signalToRemove ) const;
void addObservedSignal( AbstractSignal* signalToAdd ) const;
void removeObservedSignal( AbstractSignal* signalToRemove ) const;
private:
void disconnectAllSignals();
@ -107,11 +109,14 @@ public:
Signal( const SignalEmitter* emitter )
: m_emitter( emitter )
{
m_emitter->addEmittedSignal( this );
}
Signal( const Signal& rhs )
: m_emitter( rhs.m_emitter )
{
m_emitter->addEmittedSignal( this );
for ( auto observerCallbackPair : rhs.m_observerCallbacks )
{
connect( observerCallbackPair.first, observerCallbackPair.second.first );
@ -121,10 +126,13 @@ public:
Signal& operator=( const Signal& rhs )
{
m_emitter = rhs.m_emitter;
m_emitter->addEmittedSignal( this );
for ( auto observerCallbackPair : rhs.m_observerCallbacks )
{
connect( observerCallbackPair.first, observerCallbackPair.second.first );
}
return *this;
}
@ -132,7 +140,7 @@ public:
{
for ( auto observerCallbackPair : m_observerCallbacks )
{
observerCallbackPair.first->removeSignal( this );
observerCallbackPair.first->removeObservedSignal( this );
}
}
@ -152,7 +160,7 @@ public:
static_assert( std::is_convertible<ClassType*, SignalObserver*>::value,
"Only classes that inherit SignalObserver can connect as an observer of a Signal." );
m_observerCallbacks[observer] = std::make_pair( callback, true );
observer->addSignal( this );
observer->addObservedSignal( this );
}
// Disconnect an observer from the signal. Do this only when the relationship between the
@ -161,7 +169,7 @@ public:
void disconnect( SignalObserver* observer ) override
{
m_observerCallbacks.erase( observer );
observer->removeSignal( this );
observer->removeObservedSignal( this );
}
void send( Args... args )