diff options
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/Skype/res/Resource.rc | 2 | ||||
-rw-r--r-- | protocols/Skype/src/resource.h | 4 | ||||
-rw-r--r-- | protocols/Skype/src/skype.h | 2 | ||||
-rw-r--r-- | protocols/Skype/src/skype_account.cpp | 8 | ||||
-rw-r--r-- | protocols/Skype/src/skype_contacts.cpp | 6 | ||||
-rw-r--r-- | protocols/Skype/src/skype_dialogs.cpp | 24 |
6 files changed, 45 insertions, 1 deletions
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;
|