In MUCRoom::join()
1. m_parent->registerPresenceHandler( m_nick.bareJID(), this );
2. m_session = new MUCMessageSession( m_parent, m_nick.bareJID() );
3. m_session->registerMessageHandler( this );
4. m_joined = true;
In MUCRoom::leave()
1. m_parent->removePresenceHandler( m_nick.bareJID(), this );
2. m_parent->disposeMessageSession( m_session );
3. m_session = 0;
4. m_joined = false;
In MUCRoom::handlePresence( Stanza *stanza )
if ( stanza->subtype() == StanzaPresenceError ) only set m_joined to false