diff options
| -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;
  | 
