From dd0192c8e5c6916fd16623322bd45ba5152d7b6c Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Thu, 25 Apr 2013 07:02:52 +0000 Subject: try to add default group for contacts git-svn-id: http://svn.miranda-ng.org/main/trunk@4528 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Skype/res/Resource.rc | 2 ++ protocols/Skype/src/resource.h | 4 +++- protocols/Skype/src/skype.h | 2 ++ protocols/Skype/src/skype_account.cpp | 8 ++++++++ protocols/Skype/src/skype_contacts.cpp | 6 ++++++ protocols/Skype/src/skype_dialogs.cpp | 24 ++++++++++++++++++++++++ 6 files changed, 45 insertions(+), 1 deletion(-) (limited to 'protocols/Skype') diff --git a/protocols/Skype/res/Resource.rc b/protocols/Skype/res/Resource.rc index 3f31679407..c933a67bbb 100644 --- a/protocols/Skype/res/Resource.rc +++ b/protocols/Skype/res/Resource.rc @@ -225,6 +225,8 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,97,276,10 PUSHBUTTON "Register new account",IDC_REGISTER,204,17,87,14,WS_DISABLED PUSHBUTTON "Change password",IDC_CHANGE_PWD,204,33,87,14,WS_DISABLED + EDITTEXT IDC_GROUP,90,120,104,14,ES_AUTOHSCROLL + LTEXT "Default group:",IDC_STATIC,15,121,63,8 END diff --git a/protocols/Skype/src/resource.h b/protocols/Skype/src/resource.h index c6c95bbde4..312ced9d5e 100644 --- a/protocols/Skype/src/resource.h +++ b/protocols/Skype/src/resource.h @@ -45,6 +45,8 @@ #define IDC_USE_ALT_PORTS 1017 #define IDC_REGISTER 1018 #define IDC_CHANGE_PWD 1019 +#define IDC_DEFAULT_GROUP 1020 +#define IDC_GROUP 1021 // Next default values for new objects // @@ -52,7 +54,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 108 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1020 +#define _APS_NEXT_CONTROL_VALUE 1022 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/protocols/Skype/src/skype.h b/protocols/Skype/src/skype.h index 0a8d5a9f50..6bd9995032 100644 --- a/protocols/Skype/src/skype.h +++ b/protocols/Skype/src/skype.h @@ -57,10 +57,12 @@ #define MODULE "Skype" #define SKYPE_SID_LIMIT 128 #define SKYPE_PASSWORD_LIMIT 128 +#define SKYPE_GROUP_NAME_LIMIT 100 #define SKYPE_SETTINGS_STATUS "Status" #define SKYPE_SETTINGS_LOGIN "sid" #define SKYPE_SETTINGS_PASSWORD "Password" +#define SKYPE_SETTINGS_DEF_GROUP "DefaultGroup" #define SKYPE_SEARCH_BYSID 1001 #define SKYPE_SEARCH_BYEMAIL 1002 diff --git a/protocols/Skype/src/skype_account.cpp b/protocols/Skype/src/skype_account.cpp index 1f7ca50541..ac7149a945 100644 --- a/protocols/Skype/src/skype_account.cpp +++ b/protocols/Skype/src/skype_account.cpp @@ -185,6 +185,14 @@ void CSkypeProto::SetAccountSettings() int port = this->GetSettingWord("Port", rand() % 10000 + 10000); g_skype->SetInt(SETUPKEY_PORT, port); g_skype->SetInt(SETUPKEY_DISABLE_PORT80, (int)!this->GetSettingByte("UseAlternativePorts", 1)); + + // Create default group for new contacts + DBVARIANT dbv = {0}; + if (!db_get_ts(NULL, m_szModuleName, SKYPE_SETTINGS_DEF_GROUP, &dbv) && lstrlen(dbv.ptszVal) > 0) + { + CallService(MS_CLIST_GROUPCREATE, 0, (LPARAM)dbv.ptszVal); + db_free(&dbv); + } } bool CSkypeProto::IsAvatarChanged(const SEBinary &avatar) diff --git a/protocols/Skype/src/skype_contacts.cpp b/protocols/Skype/src/skype_contacts.cpp index 68546d252b..17707ce680 100644 --- a/protocols/Skype/src/skype_contacts.cpp +++ b/protocols/Skype/src/skype_contacts.cpp @@ -224,6 +224,12 @@ 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)) + { + db_set_ts(hContact, "CList", "Group", dbv.ptszVal); + db_free(&dbv); + } ::mir_free(nick); } diff --git a/protocols/Skype/src/skype_dialogs.cpp b/protocols/Skype/src/skype_dialogs.cpp index d08131a3d7..584bdf91d2 100644 --- a/protocols/Skype/src/skype_dialogs.cpp +++ b/protocols/Skype/src/skype_dialogs.cpp @@ -52,6 +52,12 @@ INT_PTR CALLBACK CSkypeProto::SkypeMainOptionsProc(HWND hwnd, UINT message, WPAR { EnableWindow(GetDlgItem(hwnd, IDC_REGISTER), FALSE); } + + SendDlgItemMessage(hwnd, IDC_GROUP, EM_LIMITTEXT, SKYPE_GROUP_NAME_LIMIT, 0); + + wchar_t *defgroup = db_get_wsa(NULL, proto->m_szModuleName, SKYPE_SETTINGS_DEF_GROUP); + SetDlgItemText(hwnd, IDC_GROUP, defgroup); + ::mir_free(defgroup); } return TRUE; @@ -86,6 +92,14 @@ INT_PTR CALLBACK CSkypeProto::SkypeMainOptionsProc(HWND hwnd, UINT message, WPAR } break; + case IDC_GROUP: + { + if ((HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus())) + return 0; + else + SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0); + } + case IDC_PORT: case IDC_USE_ALT_PORTS: SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0); @@ -155,6 +169,16 @@ INT_PTR CALLBACK CSkypeProto::SkypeMainOptionsProc(HWND hwnd, UINT message, WPAR proto->SetSettingByte("UseAlternativePorts", (BYTE)IsDlgButtonChecked(hwnd, IDC_USE_ALT_PORTS)); } + wchar_t tstr[128]; + GetDlgItemText(hwnd, IDC_GROUP, tstr, SIZEOF(tstr)); + if (lstrlen(tstr) > 0) + { + db_set_ts(NULL, proto->m_szModuleName, SKYPE_SETTINGS_DEF_GROUP, tstr); + CallService(MS_CLIST_GROUPCREATE, 0, (LPARAM)tstr); + } + else + db_unset(NULL, proto->m_szModuleName, SKYPE_SETTINGS_DEF_GROUP); + return TRUE; } break; -- cgit v1.2.3