summaryrefslogtreecommitdiff
path: root/protocols/Skype/src
diff options
context:
space:
mode:
authorAlexander Lantsev <aunsane@gmail.com>2012-10-25 18:11:20 +0000
committerAlexander Lantsev <aunsane@gmail.com>2012-10-25 18:11:20 +0000
commit0a5bd1c2f123bc03b5014e6332689a5fcd3c9a1a (patch)
tree8b04685aaa951a9c130f5c49034b13d93a00ff52 /protocols/Skype/src
parenta036396be89ba6a39b38417f37d59ed91ebab7b2 (diff)
- fixed some issues with contact adding and authorization
git-svn-id: http://svn.miranda-ng.org/main/trunk@2075 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Skype/src')
-rw-r--r--protocols/Skype/src/skype_contacts.cpp21
-rw-r--r--protocols/Skype/src/skype_menus.cpp8
-rw-r--r--protocols/Skype/src/skype_proto.cpp7
3 files changed, 26 insertions, 10 deletions
diff --git a/protocols/Skype/src/skype_contacts.cpp b/protocols/Skype/src/skype_contacts.cpp
index 60d062f9cd..23a47699f3 100644
--- a/protocols/Skype/src/skype_contacts.cpp
+++ b/protocols/Skype/src/skype_contacts.cpp
@@ -787,9 +787,26 @@ HANDLE CSkypeProto::AddContactBySid(const wchar_t* sid, const wchar_t* nick, DWO
::CallService(MS_PROTO_ADDTOCONTACT, (WPARAM)hContact, (LPARAM)this->m_szModuleName);
this->SetSettingString(hContact, "sid", sid);
-
this->SetSettingString(hContact, "Nick", nick);
- //::DBWriteContactSettingWString(hContact, "CList", "MyHandle", displayName);
+ this->SetSettingByte(hContact, "Auth", 1);
+
+ CContact::Ref contact;
+ if (g_skype->GetContact(::mir_u2a(sid), contact))
+ {
+ contact.fetch();
+ bool result;
+ if (contact->IsMemberOfHardwiredGroup(CContactGroup::ALL_KNOWN_CONTACTS, result) && result)
+ {
+ CContactGroup::Ref group;
+ if (g_skype->GetHardwiredContactGroup(CContactGroup::ALL_KNOWN_CONTACTS, group))
+ {
+ group.fetch();
+ group->AddContact(contact);
+ }
+ }
+ }
+
+ this->UpdateContactProfile(hContact, contact);
if (flags & PALF_TEMPORARY)
{
diff --git a/protocols/Skype/src/skype_menus.cpp b/protocols/Skype/src/skype_menus.cpp
index 3ef76141ca..0b47f6882d 100644
--- a/protocols/Skype/src/skype_menus.cpp
+++ b/protocols/Skype/src/skype_menus.cpp
@@ -35,8 +35,8 @@ int CSkypeProto::OnPrebuildContactMenu(WPARAM wParam, LPARAM)
{
bool ctrlPressed = (GetKeyState(VK_CONTROL) & 0x8000) != 0;
- bool authNeed = this->GetSettingByte(hContact, "Auth");
- bool grantNeed = this->GetSettingByte(hContact, "Grant");
+ bool authNeed = this->GetSettingByte(hContact, "Auth") > 0;
+ bool grantNeed = this->GetSettingByte(hContact, "Grant") > 0;
sttEnableMenuItem( g_hContactMenuItems[CMI_AUTH_REQUEST], ctrlPressed || authNeed);
sttEnableMenuItem( g_hContactMenuItems[CMI_AUTH_GRANT], ctrlPressed || grantNeed);
@@ -80,7 +80,10 @@ int CSkypeProto::GrantAuth(WPARAM wParam, LPARAM lParam)
if (g_skype->GetContact(sid, contact))
{
if (contact->SetBuddyStatus(true))
+ {
+ this->DeleteSetting(hContact, "Auth");
this->DeleteSetting(hContact, "Grant");
+ }
}
return 0;
@@ -95,7 +98,6 @@ int CSkypeProto::RevokeAuth(WPARAM wParam, LPARAM lParam)
{
if (contact->SetBuddyStatus(false))
{
- //this->DeleteSetting(hContact, "Auth");
this->SetSettingByte(hContact, "Grant", 1);
}
this->contactList.remove_val(contact);
diff --git a/protocols/Skype/src/skype_proto.cpp b/protocols/Skype/src/skype_proto.cpp
index 9f1c6c8e27..87a1e758cf 100644
--- a/protocols/Skype/src/skype_proto.cpp
+++ b/protocols/Skype/src/skype_proto.cpp
@@ -38,10 +38,7 @@ CSkypeProto::~CSkypeProto()
HANDLE __cdecl CSkypeProto::AddToList(int flags, PROTOSEARCHRESULT* psr)
{
- //if (psr->cbSize != sizeof(PROTOSEARCHRESULT))
- return 0;
-
- return this->AddContactBySid(psr->id, psr->nick, flags);
+ return this->AddContactBySid(psr->id, psr->nick, 0);
}
HANDLE __cdecl CSkypeProto::AddToListByEvent(int flags, int iContact, HANDLE hDbEvent)
@@ -370,7 +367,7 @@ void __cdecl CSkypeProto::SignInAsync(void*)
fetch(g_skype->inbox);
g_skype->SetOnConversationAddedCallback(
(CSkype::OnConversationAdded)&CSkypeProto::OnConversationAdded, this);
- for (int i = 0 ; i < g_skype->inbox.size(); i++)
+ for (uint i = 0 ; i < g_skype->inbox.size(); i++)
{
g_skype->inbox[i]->SetOnMessageReceivedCallback(
(CConversation::OnMessageReceived)&CSkypeProto::OnOnMessageReceived, this);