From 53c5011ffb6e8811b48a231c788a6fba81b24e4c Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Mon, 22 Apr 2013 19:50:08 +0000 Subject: - some changes in chats (may contains errors) - fix for profile update git-svn-id: http://svn.miranda-ng.org/main/trunk@4507 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Skype/src/skype_contacts.cpp | 42 ++++++++-------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) (limited to 'protocols/Skype/src/skype_contacts.cpp') diff --git a/protocols/Skype/src/skype_contacts.cpp b/protocols/Skype/src/skype_contacts.cpp index 8bb2149163..b0f59323a6 100644 --- a/protocols/Skype/src/skype_contacts.cpp +++ b/protocols/Skype/src/skype_contacts.cpp @@ -54,13 +54,10 @@ void CSkypeProto::UpdateContactOnlineSinceTime(SEObject *obj, HANDLE hContact) void CSkypeProto::UpdateContactLastEventDate(SEObject *obj, HANDLE hContact) { - if (hContact) - { - uint newTS = obj->GetUintProp(/* CContact::P_LASTUSED_TIMESTAMP */39); - DWORD oldTS = this->GetSettingDword(hContact, "LastEventDateTS"); - if (newTS > oldTS) - this->SetSettingDword(hContact, "LastEventDateTS", newTS); - } + uint newTS = obj->GetUintProp(/* CContact::P_LASTUSED_TIMESTAMP */39); + DWORD oldTS = this->GetSettingDword(hContact, "LastEventDateTS"); + if (newTS > oldTS) + this->SetSettingDword(hContact, "LastEventDateTS", newTS); } void CSkypeProto::OnContactChanged(CContact::Ref contact, int prop) @@ -253,13 +250,11 @@ void __cdecl CSkypeProto::LoadContactList(void*) HANDLE hContact = this->AddContact(contact); + // todo: move to AddContact? this->UpdateContactAuthState(hContact, contact); this->UpdateContactStatus(hContact, contact); - SEObject *obj = contact.fetch(); - this->UpdateProfile(obj, hContact); - this->UpdateProfileAvatar(obj, hContact); - this->UpdateProfileStatusMessage(obj, hContact); + this->UpdateProfile(contact.fetch(), hContact); } } @@ -274,29 +269,12 @@ void __cdecl CSkypeProto::LoadChatList(void*) CConversation::MY_STATUS status; conversations[i]->GetPropMyStatus(status); - if (type == CConversation::CONFERENCE) + if (type == CConversation::CONFERENCE && status == CConversation::CONSUMER) { - SEString data; - - conversations[i]->GetPropIdentity(data); - wchar_t *cid = ::mir_utf8decodeW(data); - - conversations[i]->GetPropDisplayname(data); - wchar_t *name = ::mir_utf8decodeW(data); + auto conversation = conversations[i]; - HANDLE hContact = this->AddChatRoomByID(cid, name); - //::DBWriteContactSettingString(hContact, this->m_szModuleName, "Nick", name); - - ::mir_free(cid); - ::mir_free(name); - - CConversation::LOCAL_LIVESTATUS live; - conversations[i]->GetPropLocalLivestatus(live); - - if (status == CConversation::CONSUMER)// && live != CConversation::NONE) - { - this->JoinToChat(cid, false); - } + this->AddChatRoom(conversation); + this->JoinToChat(conversation, false); } } -- cgit v1.2.3