diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/QXmppRoster.cpp | 7 | ||||
| -rw-r--r-- | source/QXmppRoster.h | 3 | ||||
| -rw-r--r-- | source/QXmppStream.cpp | 6 |
3 files changed, 15 insertions, 1 deletions
diff --git a/source/QXmppRoster.cpp b/source/QXmppRoster.cpp index 84b98ed5..9d272cfa 100644 --- a/source/QXmppRoster.cpp +++ b/source/QXmppRoster.cpp @@ -38,6 +38,13 @@ QXmppRoster::~QXmppRoster() } +void QXmppRoster::disconnected() +{ + m_entries = QMap<QString, QXmppRoster::QXmppRosterEntry>(); + m_presences = QMap<QString, QMap<QString, QXmppPresence> >(); + m_isRosterReceived = false; +} + void QXmppRoster::presenceReceived(const QXmppPresence& presence) { QString jid = presence.getFrom(); diff --git a/source/QXmppRoster.h b/source/QXmppRoster.h index 1d585ec7..110b4a0a 100644 --- a/source/QXmppRoster.h +++ b/source/QXmppRoster.h @@ -138,9 +138,10 @@ private: // map of resources of the jid and map of resouces and presences QMap<QString, QMap<QString, QXmppPresence> > m_presences; // flag to store that QXmppRoster has been populated - bool m_isRosterReceived ; + bool m_isRosterReceived; private slots: + void disconnected(); void presenceReceived(const QXmppPresence&); void rosterIqReceived(const QXmppRosterIq&); void rosterRequestIqReceived(const QXmppRosterIq&); diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp index d089935d..11f801a6 100644 --- a/source/QXmppStream.cpp +++ b/source/QXmppStream.cpp @@ -87,6 +87,12 @@ QXmppStream::QXmppStream(QXmppClient* client) Q_ASSERT(check); check = QObject::connect(this, + SIGNAL(disconnected()), + &m_roster, + SLOT(disconnected())); + Q_ASSERT(check); + + check = QObject::connect(this, SIGNAL(presenceReceived(const QXmppPresence&)), &m_roster, SLOT(presenceReceived(const QXmppPresence&))); |
