mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Remove superfluous Signal::disconnect() calls
This commit is contained in:
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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 )
|
||||
|
||||
Reference in New Issue
Block a user