From fc6b9e74816401ad364ff0e675767a30c84d9896 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Fri, 8 Oct 2010 10:12:07 +0300 Subject: added ability to remove conflicting filters --- new_gpg.rc | 2 ++ options.cpp | 6 +++++- resource.h | 3 ++- utilities.cpp | 13 +++++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/new_gpg.rc b/new_gpg.rc index 4925e14..8ccaf14 100644 --- a/new_gpg.rc +++ b/new_gpg.rc @@ -325,6 +325,8 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,175,181,10 LTEXT "Статический",IDC_CURRENT_KEY,97,196,116,8 CONTROL "Encrypt file transfers",IDC_FILE_TRANSFERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,185,137,10 + PUSHBUTTON "*Remove filters",IDC_REMOVE_FILTERS,155,135,59,14 + LTEXT "* - need restart",IDC_STATIC,222,137,52,8 END IDD_OPT_GPG_BIN DIALOGEX 0, 0, 282, 214 diff --git a/options.cpp b/options.cpp index 28eb55a..15dffb5 100644 --- a/options.cpp +++ b/options.cpp @@ -356,7 +356,11 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA SetDlgItemText(hwndDlg, IDC_LOG_FILE_EDIT, tmp); mir_free(tmp); } - break; + break; + case IDC_REMOVE_FILTERS: + void SecureIM_cleanup(); + SecureIM_cleanup(); + break; default: break; } diff --git a/resource.h b/resource.h index 3c850b3..afef0d0 100644 --- a/resource.h +++ b/resource.h @@ -68,6 +68,7 @@ #define IDC_DEFAULT_PASSWORD 1055 #define IDC_KEYSERVER 1058 #define IDC_FILE_TRANSFERS 1061 +#define IDC_REMOVE_FILTERS 1062 // Next default values for new objects // @@ -75,7 +76,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 114 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1062 +#define _APS_NEXT_CONTROL_VALUE 1063 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/utilities.cpp b/utilities.cpp index 2ad4cf2..70bb870 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -755,3 +755,16 @@ const bool StriStr(const char *str, const char *substr) return i; } + +void SecureIM_cleanup() +{ + for (HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); hContact; hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0)) + { + if(CallService(MS_PROTO_ISPROTOONCONTACT, (WPARAM)hContact, (LPARAM)"SecureIM")) + CallService(MS_PROTO_REMOVEFROMCONTACT, (WPARAM)hContact, (LPARAM)"SecureIM"); + if(CallService(MS_PROTO_ISPROTOONCONTACT, (WPARAM)hContact, (LPARAM)"OTR")) + CallService(MS_PROTO_REMOVEFROMCONTACT, (WPARAM)hContact, (LPARAM)"OTR"); + if(CallService(MS_PROTO_ISPROTOONCONTACT, (WPARAM)hContact, (LPARAM)"GnuPGPlugin")) + CallService(MS_PROTO_REMOVEFROMCONTACT, (WPARAM)hContact, (LPARAM)"GnuPGPlugin"); + } +} \ No newline at end of file -- cgit v1.2.3