diff options
Diffstat (limited to 'protocols/JabberG/src')
-rw-r--r-- | protocols/JabberG/src/jabber_events.cpp | 24 | ||||
-rw-r--r-- | protocols/JabberG/src/jabber_proto.cpp | 17 | ||||
-rw-r--r-- | protocols/JabberG/src/jabber_proto.h | 1 |
3 files changed, 25 insertions, 17 deletions
diff --git a/protocols/JabberG/src/jabber_events.cpp b/protocols/JabberG/src/jabber_events.cpp index cf3c2f92a7..161cc4f427 100644 --- a/protocols/JabberG/src/jabber_events.cpp +++ b/protocols/JabberG/src/jabber_events.cpp @@ -29,6 +29,30 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "jabber_disco.h"
/////////////////////////////////////////////////////////////////////////////////////////
+// OnCacheInit - cache initialization
+
+void CJabberProto::OnCacheInit()
+{
+ for (auto &hContact : AccContacts()) {
+ m_bCacheInited = true;
+
+ SetContactOfflineStatus(hContact);
+
+ if (getByte(hContact, "IsTransport", 0)) {
+ ptrA jid(getUStringA(hContact, "jid"));
+ if (jid == nullptr)
+ continue;
+
+ char *resourcepos = strchr(jid, '/');
+ if (resourcepos != nullptr)
+ *resourcepos = '\0';
+
+ m_lstTransports.insert(mir_strdup(jid));
+ }
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
// OnContactDeleted - processes a contact deletion
bool CJabberProto::OnContactDeleted(MCONTACT hContact, uint32_t)
diff --git a/protocols/JabberG/src/jabber_proto.cpp b/protocols/JabberG/src/jabber_proto.cpp index 0f038b9344..a6127ac83c 100644 --- a/protocols/JabberG/src/jabber_proto.cpp +++ b/protocols/JabberG/src/jabber_proto.cpp @@ -311,23 +311,6 @@ void CJabberProto::OnModulesLoaded() HookProtoEvent(ME_IDLE_CHANGED, &CJabberProto::OnIdleChanged);
CheckAllContactsAreTransported();
-
- // Set all contacts to offline
- for (auto &hContact : AccContacts()) {
- SetContactOfflineStatus(hContact);
-
- if (getByte(hContact, "IsTransport", 0)) {
- ptrA jid(getUStringA(hContact, "jid"));
- if (jid == nullptr)
- continue;
-
- char *resourcepos = strchr(jid, '/');
- if (resourcepos != nullptr)
- *resourcepos = '\0';
-
- m_lstTransports.insert(mir_strdup(jid));
- }
- }
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/protocols/JabberG/src/jabber_proto.h b/protocols/JabberG/src/jabber_proto.h index 17fc45c80e..f3f591f4b9 100644 --- a/protocols/JabberG/src/jabber_proto.h +++ b/protocols/JabberG/src/jabber_proto.h @@ -149,6 +149,7 @@ struct CJabberProto : public PROTO<CJabberProto>, public IJabberInterface int UserIsTyping(MCONTACT hContact, int type) override;
void OnBuildProtoMenu(void) override;
+ void OnCacheInit() override;
bool OnContactDeleted(MCONTACT, uint32_t flags) override;
MWindow OnCreateAccMgrUI(MWindow) override;
void OnMarkRead(MCONTACT, MEVENT) override;
|