+ EventListenerData* GetEventListenerData(const std::string& listenerName) const;

This commit is contained in:
eap 2012-09-24 11:25:47 +00:00
parent 587ed40d42
commit 9586144b53
2 changed files with 33 additions and 2 deletions

View File

@ -2097,6 +2097,23 @@ EventListenerData* SMESH_subMesh::GetEventListenerData(EventListener* listener)
return 0; return 0;
} }
//================================================================================
/*!
* \brief Return an event listener data
* \param listenerName - the listener name
* \retval EventListenerData* - found data, maybe NULL
*/
//================================================================================
EventListenerData* SMESH_subMesh::GetEventListenerData(const string& listenerName) const
{
map< EventListener*, EventListenerData* >::const_iterator l_d = _eventListeners.begin();
for ( ; l_d != _eventListeners.end(); ++l_d )
if ( listenerName == l_d->first->GetName() )
return l_d->second;
return 0;
}
//================================================================================ //================================================================================
/*! /*!
* \brief Notify stored event listeners on the occured event * \brief Notify stored event listeners on the occured event
@ -2137,8 +2154,15 @@ void SMESH_subMesh::DeleteEventListener(EventListener* listener)
map< EventListener*, EventListenerData* >::iterator l_d = map< EventListener*, EventListenerData* >::iterator l_d =
_eventListeners.find( listener ); _eventListeners.find( listener );
if ( l_d != _eventListeners.end() ) { if ( l_d != _eventListeners.end() ) {
if ( l_d->first && l_d->first->IsDeletable() ) delete l_d->first; if ( l_d->first && l_d->first->IsDeletable() )
if ( l_d->second && l_d->second->IsDeletable() ) delete l_d->second; {
l_d->first->BeforeDelete( this, l_d->second );
delete l_d->first;
}
if ( l_d->second && l_d->second->IsDeletable() )
{
delete l_d->second;
}
_eventListeners.erase( l_d ); _eventListeners.erase( l_d );
} }
} }

View File

@ -138,6 +138,13 @@ class SMESH_EXPORT SMESH_subMesh
*/ */
EventListenerData* GetEventListenerData(EventListener* listener) const; EventListenerData* GetEventListenerData(EventListener* listener) const;
/*!
* \brief Return an event listener data
* \param listenerName - the listener name
* \retval EventListenerData* - found data, maybe NULL
*/
EventListenerData* GetEventListenerData(const std::string& listenerName) const;
/*! /*!
* \brief Unregister the listener and delete it and it's data * \brief Unregister the listener and delete it and it's data
* \param listener - the event listener to delete * \param listener - the event listener to delete