summaryrefslogtreecommitdiff
path: root/src/modules/metacontacts
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2014-06-24 14:18:22 +0000
committerGeorge Hazan <george.hazan@gmail.com>2014-06-24 14:18:22 +0000
commit99460dd367af9cfc622e749d6671b9945d08e4a8 (patch)
tree54556ebd8aeb63147dc63533b91fa2bb1bedd345 /src/modules/metacontacts
parent8f011598915d395c8e33d2592a06b7507cf18d67 (diff)
useless metacontact sub's priorities wiped out
git-svn-id: http://svn.miranda-ng.org/main/trunk@9562 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'src/modules/metacontacts')
-rw-r--r--src/modules/metacontacts/meta_menu.cpp1
-rw-r--r--src/modules/metacontacts/meta_options.cpp317
-rw-r--r--src/modules/metacontacts/meta_services.cpp7
-rw-r--r--src/modules/metacontacts/meta_utils.cpp18
-rw-r--r--src/modules/metacontacts/metacontacts.h3
5 files changed, 19 insertions, 327 deletions
diff --git a/src/modules/metacontacts/meta_menu.cpp b/src/modules/metacontacts/meta_menu.cpp
index 4b43b4a5cb..a89bf1b804 100644
--- a/src/modules/metacontacts/meta_menu.cpp
+++ b/src/modules/metacontacts/meta_menu.cpp
@@ -428,7 +428,6 @@ void InitMenus()
mi.pszName = LPGEN("Subcontacts");
hMenuRoot = Menu_AddContactMenuItem(&mi);
-
mi.flags = CMIF_HIDDEN | CMIF_CHILDPOPUP;
mi.hParentMenu = hMenuRoot;
for (int i = 0; i < MAX_CONTACTS; i++) {
diff --git a/src/modules/metacontacts/meta_options.cpp b/src/modules/metacontacts/meta_options.cpp
index e7772fa96f..f131ae56d0 100644
--- a/src/modules/metacontacts/meta_options.cpp
+++ b/src/modules/metacontacts/meta_options.cpp
@@ -169,317 +169,6 @@ int Meta_ReadOptions(MetaOptions *opt)
return 0;
}
-int GetDefaultPrio(int status)
-{
- switch( status ) {
- case ID_STATUS_OFFLINE: return 8;
- case ID_STATUS_AWAY: return 4;
- case ID_STATUS_DND: return 7;
- case ID_STATUS_NA: return 6;
- case ID_STATUS_OCCUPIED: return 5;
- case ID_STATUS_FREECHAT: return 1;
- case ID_STATUS_ONTHEPHONE: return 2;
- case ID_STATUS_OUTTOLUNCH: return 3;
- }
-
- return 0;
-}
-
-typedef struct {
- int prio[10]; // priority for each status
- BOOL def[10]; // use default for this one?
-} ProtoStatusPrio;
-
-ProtoStatusPrio *priorities = 0;
-
-int GetRealPriority(char *proto, int status)
-{
- char szSetting[256];
- if (!proto) {
- mir_snprintf(szSetting, 256, "DefaultPrio_%d", status);
- return db_get_w(0, META_PROTO, szSetting, GetDefaultPrio(status));
- }
-
- mir_snprintf(szSetting, 256, "ProtoPrio_%s%d", proto, status);
- int prio = db_get_w(0, META_PROTO, szSetting, 0xFFFF);
- if (prio == 0xFFFF) {
- mir_snprintf(szSetting, 256, "DefaultPrio_%d", status);
- return db_get_w(0, META_PROTO, szSetting, GetDefaultPrio(status));
- }
- return prio;
-}
-
-void ReadPriorities()
-{
- char szSetting[256];
- int num_protocols, i, j;
- PROTOACCOUNT **pppDesc;
- ProtoEnumAccounts(&num_protocols, &pppDesc);
-
- ProtoStatusPrio *current = priorities = (ProtoStatusPrio *)malloc((num_protocols + 1) * sizeof(ProtoStatusPrio));
- for (i = ID_STATUS_OFFLINE; i <= ID_STATUS_OUTTOLUNCH; i++) {
- mir_snprintf(szSetting, 256, "DefaultPrio_%d", i);
- current->def[i - ID_STATUS_OFFLINE] = TRUE;
- current->prio[i - ID_STATUS_OFFLINE] = db_get_w(0, META_PROTO, szSetting, GetDefaultPrio(i));
- }
-
- for (i = 0; i < num_protocols; i++) {
- current = priorities + (i + 1);
- for (j = ID_STATUS_OFFLINE; j <= ID_STATUS_OUTTOLUNCH; j++) {
- mir_snprintf(szSetting, 256, "ProtoPrio_%s%d", pppDesc[i]->szModuleName, j);
- current->prio[j - ID_STATUS_OFFLINE] = db_get_w(0, META_PROTO, szSetting, 0xFFFF);
- current->def[j - ID_STATUS_OFFLINE] = (current->prio[j - ID_STATUS_OFFLINE] == 0xFFFF);
- }
- }
-}
-
-void WritePriorities()
-{
- char szSetting[256];
- ProtoStatusPrio *current = priorities;
-
- int num_protocols;
- PROTOACCOUNT **pppDesc;
- ProtoEnumAccounts(&num_protocols, &pppDesc);
-
- for (int i = ID_STATUS_OFFLINE; i <= ID_STATUS_OUTTOLUNCH; i++) {
- mir_snprintf(szSetting, 256, "DefaultPrio_%d", i);
- if (current->prio[i - ID_STATUS_OFFLINE] != GetDefaultPrio(i))
- db_set_w(0, META_PROTO, szSetting, (WORD)current->prio[i - ID_STATUS_OFFLINE]);
- else
- db_unset(0, META_PROTO, szSetting);
- }
- for (int i = 0; i < num_protocols; i++) {
- current = priorities + (i + 1);
- for (int j = ID_STATUS_OFFLINE; j <= ID_STATUS_OUTTOLUNCH; j++) {
- mir_snprintf(szSetting, 256, "ProtoPrio_%s%d", pppDesc[i]->szModuleName, j);
- if (!current->def[j - ID_STATUS_OFFLINE])
- db_set_w(0, META_PROTO, szSetting, (WORD)current->prio[j - ID_STATUS_OFFLINE]);
- else
- db_unset(0, META_PROTO, szSetting);
- }
- }
-}
-
-int GetIsDefault(int proto_index, int status)
-{
- return (priorities + (proto_index + 1))->def[status - ID_STATUS_OFFLINE];
-}
-
-BOOL GetPriority(int proto_index, int status)
-{
- if (proto_index == -1)
- return priorities->prio[status - ID_STATUS_OFFLINE];
-
- ProtoStatusPrio *current = priorities + (proto_index + 1);
- if (current->def[status - ID_STATUS_OFFLINE])
- current = priorities;
-
- return current->prio[status - ID_STATUS_OFFLINE];
-}
-
-void SetPriority(int proto_index, int status, BOOL def, int prio)
-{
- if (prio < 0) prio = 0;
- if (prio > 500) prio = 500;
- if (proto_index == -1)
- priorities->prio[status - ID_STATUS_OFFLINE] = prio;
- else {
- ProtoStatusPrio *current = priorities + (proto_index + 1);
- current->def[status - ID_STATUS_OFFLINE] = def;
- if (!def)
- current->prio[status - ID_STATUS_OFFLINE] = prio;
- }
-}
-
-void ResetPriorities()
-{
- int num_protocols;
- PROTOACCOUNT **pppDesc;
- ProtoEnumAccounts(&num_protocols, &pppDesc);
-
- ProtoStatusPrio *current = priorities;
- for (int i = ID_STATUS_OFFLINE; i <= ID_STATUS_OUTTOLUNCH; i++) {
- current->def[i - ID_STATUS_OFFLINE] = TRUE;
- current->prio[i - ID_STATUS_OFFLINE] = GetDefaultPrio(i);
- }
-
- for (int i = 0; i < num_protocols; i++) {
- current = priorities + (i + 1);
- for (int j = ID_STATUS_OFFLINE; j <= ID_STATUS_OUTTOLUNCH; j++)
- current->def[j - ID_STATUS_OFFLINE] = TRUE;
- }
-}
-
-#define WMU_FILLSTATUSCMB (WM_USER + 0x100)
-#define WMU_FILLPRIODATA (WM_USER + 0x101)
-
-INT_PTR CALLBACK DlgProcOptsPriorities(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- SendMessage(GetDlgItem(hwndDlg, IDC_SP_PRIORITY), UDM_SETRANGE, 0, (LPARAM)MAKELONG(500, 0));
- ReadPriorities();
- {
- int num_protocols;
- PROTOACCOUNT **pppDesc;
- ProtoEnumAccounts(&num_protocols, &pppDesc);
-
- int index = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_INSERTSTRING, -1, (LPARAM)TranslateT("<default>"));
- SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_SETITEMDATA, index, -1);
- for (int i = 0; i < num_protocols; i++) {
- if (strcmp(pppDesc[i]->szModuleName, META_PROTO) != 0) {
- index = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_INSERTSTRING, -1, (LPARAM)pppDesc[i]->tszAccountName);
- SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_SETITEMDATA, index, i);
- }
- }
-
- SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_SETCURSEL, 0, 0);
- SendMessage(hwndDlg, WMU_FILLSTATUSCMB, 0, 0);
- SendMessage(hwndDlg, WMU_FILLPRIODATA, 0, 0);
- }
- return FALSE;
-
- case WMU_FILLPRIODATA: {
- int sel = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETCURSEL, 0, 0);
- if (sel != -1) {
- int index = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETITEMDATA, sel, 0);
- sel = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_GETCURSEL, 0, 0);
- if (sel != -1) {
- int status = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_GETITEMDATA, sel, 0);
- SetDlgItemInt(hwndDlg, IDC_ED_PRIORITY, GetPriority(index, status), FALSE);
- if (index == -1) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_ED_PRIORITY), TRUE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SP_PRIORITY), TRUE);
- CheckDlgButton(hwndDlg, IDC_CHK_DEFAULT, TRUE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_CHK_DEFAULT), FALSE);
- }
- else {
- if (GetIsDefault(index, status)) {
- CheckDlgButton(hwndDlg, IDC_CHK_DEFAULT, TRUE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ED_PRIORITY), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SP_PRIORITY), FALSE);
- }
- else {
- CheckDlgButton(hwndDlg, IDC_CHK_DEFAULT, FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ED_PRIORITY), TRUE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SP_PRIORITY), TRUE);
- }
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_CHK_DEFAULT), TRUE);
- }
- }
- }
- return TRUE;
- }
- case WMU_FILLSTATUSCMB:{
- int sel = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETCURSEL, 0, 0);
- if (sel != -1) {
- int index = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETITEMDATA, sel, 0);
- SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_RESETCONTENT, 0, 0);
- if (index == -1) {
- for (int i = ID_STATUS_OFFLINE; i <= ID_STATUS_OUTTOLUNCH; i++) {
- index = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_INSERTSTRING, -1, (LPARAM)cli.pfnGetStatusModeDescription(i, 0));
- SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_SETITEMDATA, index, i);
- }
- }
- else {
- int num_protocols;
- PROTOACCOUNT **pppDesc;
- ProtoEnumAccounts(&num_protocols, &pppDesc);
-
- int caps = CallProtoService(pppDesc[index]->szModuleName, PS_GETCAPS, PFLAGNUM_2, 0);
-
- for (int i = ID_STATUS_OFFLINE; i <= ID_STATUS_OUTTOLUNCH; i++) {
- if (caps & Proto_Status2Flag(i)) {
- index = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_INSERTSTRING, -1, (LPARAM)cli.pfnGetStatusModeDescription(i, 0));
- SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_SETITEMDATA, index, i);
- }
- }
- }
- SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_SETCURSEL, 0, 0);
- SendMessage(hwndDlg, WMU_FILLPRIODATA, 0, 0);
- }
- return TRUE;
- }
-
- case WM_COMMAND:
- if (HIWORD(wParam) == BN_CLICKED) {
- switch (LOWORD(wParam)) {
- case IDC_CHK_DEFAULT: {
- int sel = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETCURSEL, 0, 0);
- if (sel != -1) {
- int index = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETITEMDATA, sel, 0);
- sel = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_GETCURSEL, 0, 0);
- if (sel != -1) {
- BOOL checked = IsDlgButtonChecked(hwndDlg, IDC_CHK_DEFAULT);
- int status = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_GETITEMDATA, sel, 0);
- if (checked) {
- SetPriority(index, status, TRUE, 0);
- SetDlgItemInt(hwndDlg, IDC_ED_PRIORITY, GetPriority(index, status), FALSE);
- }
- else SetPriority(index, status, FALSE, GetDlgItemInt(hwndDlg, IDC_ED_PRIORITY, 0, FALSE));
-
- EnableWindow(GetDlgItem(hwndDlg, IDC_ED_PRIORITY), !checked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_SP_PRIORITY), !checked);
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
- }
- break;
- }
- case IDC_BTN_RESET:
- ResetPriorities();
- SendMessage(GetDlgItem(hwndDlg, IDC_CMB_PROTOCOL), CB_SETCURSEL, 0, 0);
- SendMessage(hwndDlg, WMU_FILLSTATUSCMB, 0, 0);
- SendMessage(hwndDlg, WMU_FILLPRIODATA, 0, 0);
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- }
- }
-
- if (HIWORD(wParam) == EN_CHANGE && LOWORD(wParam) == IDC_ED_PRIORITY && (HWND)lParam == GetFocus()) {
- int sel = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETCURSEL, 0, 0);
- if (sel != -1) {
- int index = SendDlgItemMessage(hwndDlg, IDC_CMB_PROTOCOL, CB_GETITEMDATA, sel, 0);
- sel = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_GETCURSEL, 0, 0);
- if (sel != -1) {
- int status = SendDlgItemMessage(hwndDlg, IDC_CMB_STATUS, CB_GETITEMDATA, sel, 0);
- int prio = GetDlgItemInt(hwndDlg, IDC_ED_PRIORITY, 0, FALSE);
- SetPriority(index, status, FALSE, prio);
- if (prio != GetPriority(index, status))
- SetDlgItemInt(hwndDlg, IDC_ED_PRIORITY, GetPriority(index, status), FALSE);
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
- }
- }
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- switch (LOWORD(wParam)) {
- case IDC_CMB_STATUS:
- SendMessage(hwndDlg, WMU_FILLPRIODATA, 0, 0);
- break;
- case IDC_CMB_PROTOCOL:
- SendMessage(hwndDlg, WMU_FILLSTATUSCMB, 0, 0);
- break;
- }
- }
- break;
-
- case WM_NOTIFY:
- if (((LPNMHDR)lParam)->code == PSN_APPLY) {
- WritePriorities();
- return TRUE;
- }
- break;
- case WM_DESTROY:
- free(priorities);
- priorities = 0;
- break;
- }
-
- return FALSE;
-}
-
/////////////////////////////////////////////////////////////////////////////////////////
int Meta_OptInit(WPARAM wParam, LPARAM)
@@ -492,13 +181,7 @@ int Meta_OptInit(WPARAM wParam, LPARAM)
odp.pszTemplate = MAKEINTRESOURCEA(IDD_METAOPTIONS);
odp.pszTitle = LPGEN("MetaContacts");
odp.pszGroup = LPGEN("Contacts");
- odp.pszTab = LPGEN("General");
odp.pfnDlgProc = DlgProcOpts;
Options_AddPage(wParam, &odp);
-
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_METAPRIORITIES);
- odp.pszTab = LPGEN("Priorities");
- odp.pfnDlgProc = DlgProcOptsPriorities;
- Options_AddPage(wParam, &odp);
return 0;
}
diff --git a/src/modules/metacontacts/meta_services.cpp b/src/modules/metacontacts/meta_services.cpp
index aa2f609da8..d0759125dd 100644
--- a/src/modules/metacontacts/meta_services.cpp
+++ b/src/modules/metacontacts/meta_services.cpp
@@ -209,8 +209,6 @@ INT_PTR Meta_SendNudge(WPARAM wParam, LPARAM lParam)
return ProtoCallService(GetContactProto(hSubContact), PS_SEND_NUDGE, hSubContact, lParam);
}
-/////////////////////////////////////////////////////////////////
-
/** Send a message to the protocol specific network.
*
* Call the function specific to the protocol that belongs
@@ -649,7 +647,7 @@ int Meta_ModulesLoaded(WPARAM wParam, LPARAM lParam)
HookEvent(ME_MSG_WINDOWEVENT, Meta_MessageWindowEvent);
HookEvent(ME_MSG_ICONPRESSED, Meta_SrmmIconClicked);
- ////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////////////
InitMenus();
// create srmm icon
@@ -686,6 +684,7 @@ static VOID CALLBACK sttMenuThread(PVOID param)
DestroyMenu(hMenu);
}
+/////////////////////////////////////////////////////////////////////////////////////////
INT_PTR Meta_ContactMenuFunc(WPARAM hMeta, LPARAM lParam)
{
DBCachedContact *cc = CheckMeta(hMeta);
@@ -718,9 +717,7 @@ INT_PTR Meta_ContactMenuFunc(WPARAM hMeta, LPARAM lParam)
return 0;
}
-////////////////////
// file transfer support - mostly not required, since subcontacts do the receiving
-////////////////////
INT_PTR Meta_FileSend(WPARAM wParam, LPARAM lParam)
{
diff --git a/src/modules/metacontacts/meta_utils.cpp b/src/modules/metacontacts/meta_utils.cpp
index b917fce527..e63e3579d2 100644
--- a/src/modules/metacontacts/meta_utils.cpp
+++ b/src/modules/metacontacts/meta_utils.cpp
@@ -230,6 +230,22 @@ MCONTACT Meta_GetMostOnline(DBCachedContact *cc)
* @return HANDLE to a contact
*/
+static int GetStatusPriority(int status)
+{
+ switch (status) {
+ case ID_STATUS_OFFLINE: return 8;
+ case ID_STATUS_AWAY: return 4;
+ case ID_STATUS_DND: return 7;
+ case ID_STATUS_NA: return 6;
+ case ID_STATUS_OCCUPIED: return 5;
+ case ID_STATUS_FREECHAT: return 1;
+ case ID_STATUS_ONTHEPHONE: return 2;
+ case ID_STATUS_OUTTOLUNCH: return 3;
+ }
+
+ return 0;
+}
+
MCONTACT Meta_GetMostOnlineSupporting(DBCachedContact *cc, int pflagnum, unsigned long capability)
{
if (cc == NULL || cc->nDefault == -1)
@@ -279,7 +295,7 @@ MCONTACT Meta_GetMostOnlineSupporting(DBCachedContact *cc, int pflagnum, unsigne
if (status <= ID_STATUS_OFFLINE) // status below ID_STATUS_OFFLINE is a connecting status
continue;
- if (GetRealPriority(szProto, status) < GetRealPriority(most_online_proto, most_online_status)) {
+ if (GetStatusPriority(status) < GetStatusPriority(most_online_status)) {
most_online_status = status;
most_online_contact = hContact;
most_online_proto = szProto;
diff --git a/src/modules/metacontacts/metacontacts.h b/src/modules/metacontacts/metacontacts.h
index 637ae30bec..c5993c5c73 100644
--- a/src/modules/metacontacts/metacontacts.h
+++ b/src/modules/metacontacts/metacontacts.h
@@ -101,9 +101,6 @@ int Meta_OptInit(WPARAM wParam, LPARAM lParam);
int Meta_WriteOptions(MetaOptions *opt);
int Meta_ReadOptions(MetaOptions *opt);
-int GetDefaufaultPrio(int status);
-int GetRealPriority(char *proto, int status);
-
// API function headers
void CreateApiServices();