summaryrefslogtreecommitdiff
path: root/protocols/Skype/src/skype_contacts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Skype/src/skype_contacts.cpp')
-rw-r--r--protocols/Skype/src/skype_contacts.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/protocols/Skype/src/skype_contacts.cpp b/protocols/Skype/src/skype_contacts.cpp
index a4f9b0bb16..221e1f7669 100644
--- a/protocols/Skype/src/skype_contacts.cpp
+++ b/protocols/Skype/src/skype_contacts.cpp
@@ -224,6 +224,7 @@ HANDLE CSkypeProto::AddContact(CContact::Ref contact)
::db_set_ws(hContact, this->m_szModuleName, SKYPE_SETTINGS_LOGIN, sid);
::db_set_ws(hContact, this->m_szModuleName, "Nick", nick);
+
DBVARIANT dbv;
if(!db_get_ts(NULL, m_szModuleName, SKYPE_SETTINGS_DEF_GROUP, &dbv))
{
@@ -239,8 +240,10 @@ HANDLE CSkypeProto::AddContact(CContact::Ref contact)
return hContact;
}
-void __cdecl CSkypeProto::LoadContactList(void*)
+void __cdecl CSkypeProto::LoadContactList(void* data)
{
+ bool isFirstLoad = data != NULL;
+
g_skype->GetHardwiredContactGroup(CContactGroup::ALL_BUDDIES, this->commonList);
this->commonList.fetch();
this->commonList->SetOnContactListChangedCallback(
@@ -258,11 +261,15 @@ void __cdecl CSkypeProto::LoadContactList(void*)
HANDLE hContact = this->AddContact(contact);
- // todo: move to AddContact?
- this->UpdateContactAuthState(hContact, contact);
- this->UpdateContactStatus(hContact, contact);
-
- this->UpdateProfile(contact.fetch(), hContact);
+ if ( !isFirstLoad)
+ {
+ // todo: move to AddContact?
+ this->UpdateContactAuthState(hContact, contact);
+ this->UpdateContactStatus(hContact, contact);
+
+ this->UpdateProfileNickName(contact.fetch(), hContact);
+ this->UpdateProfile(contact.fetch(), hContact);
+ }
}
}