From 54b2cd28874a94509275206e8869d0d26eabd451 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 20 Mar 2023 13:40:01 +0300 Subject: fixes #3439 (Scriver/StdMsg: unified popup & tray icon settings with the same default values) --- include/m_chat.h | 7 ++++--- include/m_chat_int.h | 11 ++++++++--- libs/win32/mir_app.lib | Bin 238616 -> 240174 bytes libs/win64/mir_app.lib | Bin 235558 -> 237116 bytes plugins/Scriver/src/chat_main.cpp | 17 ----------------- plugins/Scriver/src/chat_options.cpp | 2 -- plugins/TabSRMM/src/chat_tools.cpp | 33 +++++++++++---------------------- src/core/stdmsg/src/chat_manager.cpp | 16 ---------------- src/mir_app/src/chat.h | 1 - src/mir_app/src/chat_manager.cpp | 2 +- src/mir_app/src/chat_opts.cpp | 5 ----- src/mir_app/src/chat_svc.cpp | 9 +++++++-- src/mir_app/src/chat_tools.cpp | 8 +++++++- src/mir_app/src/chat_ui.cpp | 27 +++++++++++---------------- src/mir_app/src/mir_app.def | 5 +++++ src/mir_app/src/mir_app64.def | 5 +++++ src/mir_app/src/srmm_base.cpp | 2 +- 17 files changed, 60 insertions(+), 90 deletions(-) diff --git a/include/m_chat.h b/include/m_chat.h index 49a636f220..1c628bf8d6 100644 --- a/include/m_chat.h +++ b/include/m_chat.h @@ -345,9 +345,10 @@ MIR_APP_DLL(struct SESSION_INFO*) Chat_NewSession( // Error messages #define GC_EVENT_ERROR 2 // An internal error occurred. -#define GC_EVENT_ALL (GC_EVENT_ACTION | GC_EVENT_MESSAGE | GC_EVENT_NICK | GC_EVENT_JOIN | \ - GC_EVENT_PART | GC_EVENT_TOPIC | GC_EVENT_ADDSTATUS | GC_EVENT_INFORMATION | GC_EVENT_QUIT | \ - GC_EVENT_KICK | GC_EVENT_NOTICE) +// By default users see only those events +#define GC_EVENT_FILTERED (GC_EVENT_ACTION | GC_EVENT_INFORMATION | GC_EVENT_TOPIC | GC_EVENT_MESSAGE | GC_EVENT_NOTICE) + +#define GC_EVENT_ALL (GC_EVENT_FILTERED | GC_EVENT_NICK | GC_EVENT_JOIN | GC_EVENT_PART | GC_EVENT_ADDSTATUS | GC_EVENT_QUIT | GC_EVENT_KICK) // The GCEVENT structure diff --git a/include/m_chat_int.h b/include/m_chat_int.h index 8d5fa8a393..f5d86317ca 100644 --- a/include/m_chat_int.h +++ b/include/m_chat_int.h @@ -154,7 +154,7 @@ struct MIR_APP_EXPORT SESSION_INFO : public MZeroedObject, public MNonCopyable int iType; int iEventCount; int iStatusCount; - int iLogTrayFlags, iLogPopupFlags; + int iTrayFlags, iPopupFlags; uint16_t wStatus; uint16_t wState; @@ -218,8 +218,6 @@ struct GlobalLogSettingsBase bool bShowContactStatus; bool bContactStatusFirst; uint32_t dwIconFlags; - uint32_t dwTrayIconFlags; - uint32_t dwPopupFlags; int LogIconSize; int LogTextIndent; int LoggingLimit; @@ -412,6 +410,13 @@ namespace Chat bLogIndentEnabled, bLogLimitNames, bStripFormat; + + extern MIR_APP_EXPORT CMOption + iPopupFlags, + iSoundFlags, + iFilterFlags, + iDiskLogFlags, + iTrayIconFlags; }; #endif // M_CHAT_INT_H__ diff --git a/libs/win32/mir_app.lib b/libs/win32/mir_app.lib index e00190c13c..718693e434 100644 Binary files a/libs/win32/mir_app.lib and b/libs/win32/mir_app.lib differ diff --git a/libs/win64/mir_app.lib b/libs/win64/mir_app.lib index 99349d01ad..dcc344ccd4 100644 Binary files a/libs/win64/mir_app.lib and b/libs/win64/mir_app.lib differ diff --git a/plugins/Scriver/src/chat_main.cpp b/plugins/Scriver/src/chat_main.cpp index c5964f3219..12acbf6113 100644 --- a/plugins/Scriver/src/chat_main.cpp +++ b/plugins/Scriver/src/chat_main.cpp @@ -97,20 +97,6 @@ static void OnCreateModule(MODULEINFO *mi) mi->hOfflineIconBig = Skin_LoadProtoIcon(mi->pszModule, ID_STATUS_OFFLINE, true); } -static BOOL DoTrayIcon(SESSION_INFO *si, GCEVENT *gce) -{ - if (gce->iType & g_Settings.dwTrayIconFlags) - return oldDoTrayIcon(si, gce); - return TRUE; -} - -static BOOL DoPopup(SESSION_INFO *si, GCEVENT *gce) -{ - if (gce->iType & g_Settings.dwPopupFlags) - return oldDoPopup(si, gce); - return TRUE; -} - static void OnLoadSettings() { g_Settings.bAddColonToAutoComplete = db_get_b(0, CHAT_MODULE, "AddColonToAutoComplete", 1) != 0; @@ -163,9 +149,6 @@ int Chat_Load() Srmm_CreateHotkey(LPGEN("Messaging"), LPGEN("Action: Send message")); - oldDoPopup = g_chatApi.DoPopup; g_chatApi.DoPopup = DoPopup; - oldDoTrayIcon = g_chatApi.DoTrayIcon; g_chatApi.DoTrayIcon = DoTrayIcon; g_chatApi.ReloadSettings(); - return 0; } diff --git a/plugins/Scriver/src/chat_options.cpp b/plugins/Scriver/src/chat_options.cpp index 537d63473e..b8661eec77 100644 --- a/plugins/Scriver/src/chat_options.cpp +++ b/plugins/Scriver/src/chat_options.cpp @@ -524,8 +524,6 @@ static INT_PTR CALLBACK DlgProcOptions2(HWND hwndDlg, UINT uMsg, WPARAM wParam, mir_free(pszText); g_Settings.dwIconFlags = db_get_dw(0, CHAT_MODULE, "IconFlags", 0x0000); - g_Settings.dwTrayIconFlags = db_get_dw(0, CHAT_MODULE, "TrayIconFlags", GC_EVENT_HIGHLIGHT); - g_Settings.dwPopupFlags = db_get_dw(0, CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT); g_Settings.bStripFormat = db_get_b(0, CHAT_MODULE, "TrimFormatting", 0) != 0; g_Settings.bLogIndentEnabled = (db_get_b(0, CHAT_MODULE, "LogIndentEnabled", 1) != 0) ? TRUE : FALSE; diff --git a/plugins/TabSRMM/src/chat_tools.cpp b/plugins/TabSRMM/src/chat_tools.cpp index be49e1210a..754f19705b 100644 --- a/plugins/TabSRMM/src/chat_tools.cpp +++ b/plugins/TabSRMM/src/chat_tools.cpp @@ -78,14 +78,6 @@ static LRESULT CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPA return DefWindowProc(hWnd, message, wParam, lParam); } -BOOL DoTrayIcon(SESSION_INFO *si, GCEVENT *gce) -{ - int iEvent = gce->iType; - if (si && (iEvent & si->iLogTrayFlags)) - return oldDoTrayIcon(si, gce); - return TRUE; -} - int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoName, wchar_t*, COLORREF crBkg, const wchar_t* fmt, ...) { POPUPDATAW pd; @@ -132,7 +124,7 @@ int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoNa BOOL DoPopup(SESSION_INFO *si, GCEVENT *gce) { int iEvent = gce->iType; - if (si == nullptr || !(iEvent & si->iLogPopupFlags)) + if (si == nullptr || !(iEvent & si->iPopupFlags)) return true; CMsgDialog *dat = si->pDlg; @@ -145,7 +137,7 @@ BOOL DoPopup(SESSION_INFO *si, GCEVENT *gce) } else bbStart = bbEnd = L""; - if (!NEN::bMucPopups) // no popups at all. Period + if (!NEN::bMucPopups) // no popups at all. Period return 0; // check the status mode against the status mask @@ -221,7 +213,7 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight if (bInactive) { bFlagUnread = true; - DoTrayIcon(si, gce); + g_chatApi.DoTrayIcon(si, gce); } if (dat || NEN::bMucPopups) @@ -247,7 +239,7 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight else { // do blinking icons in tray if (bInactive || !g_Settings.bTrayIconInactiveOnly) { - DoTrayIcon(si, gce); + g_chatApi.DoTrayIcon(si, gce); if (iEvent == GC_EVENT_MESSAGE) bFlagUnread = true; } @@ -298,7 +290,7 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight HICON hNotifyIcon = (bManyFix && !bInactive) ? 0 : g_chatApi.getIcon(gce->iType); BOOL bForcedIcon = (hNotifyIcon == hIconHighlight || hNotifyIcon == hIconMessage); - if ((gce->iType & si->iLogTrayFlags) || bForcedIcon) { + if ((gce->iType & si->iTrayFlags) || bForcedIcon) { if (!bActiveTab) { if (hNotifyIcon == hIconHighlight) dat->m_iFlashIcon = hNotifyIcon; @@ -334,7 +326,7 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight if (!dat->m_pContainer->cfg.flags.m_bNoFlash) dat->m_pContainer->FlashContainer(1, 0); - if (hNotifyIcon && bInactive && ((gce->iType & si->iLogTrayFlags) || bForcedIcon)) { + if (hNotifyIcon && bInactive && ((gce->iType & si->iTrayFlags) || bForcedIcon)) { if (bMustFlash) dat->m_hTabIcon = hNotifyIcon; else if (dat->m_iFlashIcon) { @@ -365,13 +357,12 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight void Chat_SetFilters(SESSION_INFO *si) { - uint32_t dwFlags_default = db_get_dw(0, CHAT_MODULE, "FilterFlags", GC_EVENT_ALL); uint32_t dwFlags_local = db_get_dw(si->hContact, CHAT_MODULE, "FilterFlags", GC_EVENT_ALL); uint32_t dwMask = db_get_dw(si->hContact, CHAT_MODULE, "FilterMask", 0); CMsgDialog *pDlg = si->pDlg; if (pDlg) { - pDlg->m_iLogFilterFlags = dwFlags_default; + pDlg->m_iLogFilterFlags = Chat::iFilterFlags; for (int i = 0; i < 32; i++) { uint32_t dwBit = 1 << i; if (dwMask & dwBit) @@ -379,26 +370,24 @@ void Chat_SetFilters(SESSION_INFO *si) } } - dwFlags_default = db_get_dw(0, CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT); dwFlags_local = db_get_dw(si->hContact, CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT); dwMask = db_get_dw(si->hContact, CHAT_MODULE, "PopupMask", 0); - si->iLogPopupFlags = dwFlags_default; + si->iPopupFlags = Chat::iPopupFlags; for (int i = 0; i < 32; i++) { uint32_t dwBit = 1 << i; if (dwMask & dwBit) - si->iLogPopupFlags = (dwFlags_local & dwBit) ? si->iLogPopupFlags | dwBit : si->iLogPopupFlags & ~dwBit; + si->iPopupFlags = (dwFlags_local & dwBit) ? si->iPopupFlags | dwBit : si->iPopupFlags & ~dwBit; } - dwFlags_default = db_get_dw(0, CHAT_MODULE, "TrayIconFlags", GC_EVENT_HIGHLIGHT); dwFlags_local = db_get_dw(si->hContact, CHAT_MODULE, "TrayIconFlags", GC_EVENT_HIGHLIGHT); dwMask = db_get_dw(si->hContact, CHAT_MODULE, "TrayIconMask", 0); - si->iLogTrayFlags = dwFlags_default; + si->iTrayFlags = Chat::iTrayIconFlags; for (int i = 0; i < 32; i++) { uint32_t dwBit = 1 << i; if (dwMask & dwBit) - si->iLogTrayFlags = (dwFlags_local & dwBit) ? si->iLogTrayFlags | dwBit : si->iLogTrayFlags & ~dwBit; + si->iTrayFlags = (dwFlags_local & dwBit) ? si->iTrayFlags | dwBit : si->iTrayFlags & ~dwBit; } if (pDlg != nullptr && pDlg->m_iLogFilterFlags == 0) diff --git a/src/core/stdmsg/src/chat_manager.cpp b/src/core/stdmsg/src/chat_manager.cpp index d3e0da1969..a06c0a89f6 100644 --- a/src/core/stdmsg/src/chat_manager.cpp +++ b/src/core/stdmsg/src/chat_manager.cpp @@ -94,20 +94,6 @@ static void OnFlashWindow(SESSION_INFO *si, int bInactive) si->pDlg->StartFlash(); } -static BOOL DoTrayIcon(SESSION_INFO *si, GCEVENT *gce) -{ - if (gce->iType & g_Settings.dwTrayIconFlags) - return oldDoTrayIcon(si, gce); - return TRUE; -} - -static BOOL DoPopup(SESSION_INFO *si, GCEVENT *gce) -{ - if (gce->iType & g_Settings.dwPopupFlags) - return oldDoPopup(si, gce); - return TRUE; -} - static void OnLoadSettings() { g_Settings.iX = db_get_dw(0, CHAT_MODULE, "roomx", -1); @@ -221,8 +207,6 @@ void Load_ChatModule() Srmm_CreateHotkey(LPGEN("Messaging"), LPGEN("Send message")); - oldDoPopup = g_chatApi.DoPopup; g_chatApi.DoPopup = DoPopup; - oldDoTrayIcon = g_chatApi.DoTrayIcon; g_chatApi.DoTrayIcon = DoTrayIcon; g_chatApi.ReloadSettings(); g_hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_MENU)); diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h index 6604acd027..1168fc2815 100644 --- a/src/mir_app/src/chat.h +++ b/src/mir_app/src/chat.h @@ -38,7 +38,6 @@ extern wchar_t *g_szFontGroup; extern mir_cs csChat; extern HICON g_hChatIcons[20]; -extern uint32_t g_dwDiskLogFlags; extern HCURSOR g_hCurHyperlinkHand; extern char* pLogIconBmpBits[14]; extern HANDLE hevSendEvent, hevBuildMenuEvent; diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp index c978c6fa9a..be26a50a5b 100644 --- a/src/mir_app/src/chat_manager.cpp +++ b/src/mir_app/src/chat_manager.cpp @@ -133,7 +133,7 @@ SESSION_INFO::~SESSION_INFO() const char* SESSION_INFO::SESSION_INFO::getSoundName(int iEventType) const { // if sounds are filtered out for this event type, do nothing; - if (!(db_get_dw(0, CHAT_MODULE, "SoundFlags", GC_EVENT_HIGHLIGHT) & iEventType)) + if (!(Chat::iSoundFlags & iEventType)) return nullptr; if (iEventType & GC_EVENT_HIGHLIGHT) diff --git a/src/mir_app/src/chat_opts.cpp b/src/mir_app/src/chat_opts.cpp index 61f7cbadfc..af2b8c5176 100644 --- a/src/mir_app/src/chat_opts.cpp +++ b/src/mir_app/src/chat_opts.cpp @@ -27,7 +27,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. extern SESSION_INFO g_TabSession; HICON g_hChatIcons[20]; -uint32_t g_dwDiskLogFlags; HPLUGIN g_pChatPlugin; GlobalLogSettingsBase *g_Settings; int g_cbModuleInfo = sizeof(MODULEINFO), g_iFontMode; @@ -208,8 +207,6 @@ void LoadGlobalSettings(void) g_Settings->bSoundsFocus = db_get_b(0, CHAT_MODULE, "SoundsFocus", 0) != 0; g_Settings->iEventLimit = db_get_w(0, CHAT_MODULE, "LogLimit", 100); g_Settings->dwIconFlags = db_get_dw(0, CHAT_MODULE, "IconFlags", 0x0000); - g_Settings->dwTrayIconFlags = db_get_dw(0, CHAT_MODULE, "TrayIconFlags", 0x1000); - g_Settings->dwPopupFlags = db_get_dw(0, CHAT_MODULE, "PopupFlags", 0x0000); g_Settings->LoggingLimit = db_get_w(0, CHAT_MODULE, "LoggingLimit", 100); g_Settings->bLoggingEnabled = db_get_b(0, CHAT_MODULE, "LoggingEnabled", 0) != 0; g_Settings->bHighlightEnabled = db_get_b(0, CHAT_MODULE, "HighlightEnabled", 1) != 0; @@ -258,8 +255,6 @@ void LoadGlobalSettings(void) g_Settings->UserListHeadingsFont = CreateFontIndirect(&lf); SetIndentSize(); - - g_dwDiskLogFlags = db_get_dw(0, CHAT_MODULE, "DiskLogFlags", GC_EVENT_ALL); } static void FreeGlobalSettings(void) diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp index 911a04788d..c3c47430f9 100644 --- a/src/mir_app/src/chat_svc.cpp +++ b/src/mir_app/src/chat_svc.cpp @@ -40,6 +40,11 @@ CMOption Chat::bLogIndentEnabled(CHAT_MODULE, "LogIndentEnabled", true); CMOption Chat::bShowTimeIfChanged(CHAT_MODULE, "ShowTimeStampIfChanged", false); CMOption Chat::bTimeStampEventColour(CHAT_MODULE, "TimeStampEventColour", false); +CMOption Chat::iPopupFlags(CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT); +CMOption Chat::iSoundFlags(CHAT_MODULE, "SoundFlags", GC_EVENT_HIGHLIGHT); +CMOption Chat::iFilterFlags(CHAT_MODULE, "FilterFlags", GC_EVENT_FILTERED); +CMOption Chat::iDiskLogFlags(CHAT_MODULE, "DiskLogFlags", GC_EVENT_ALL); +CMOption Chat::iTrayIconFlags(CHAT_MODULE, "TrayIconFlags", GC_EVENT_HIGHLIGHT); INT_PTR SvcGetChatManager(WPARAM, LPARAM); @@ -259,8 +264,8 @@ MIR_APP_DLL(SESSION_INFO*) Chat_NewSession( else wcsncpy_s(szTemp, si->ptszName, _TRUNCATE); si->hContact = AddRoom(pszModule, ptszID, szTemp, si->iType); - si->iLogPopupFlags = db_get_dw(0, CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT); - si->iLogTrayFlags = db_get_dw(0, CHAT_MODULE, "TrayIconFlags", GC_EVENT_HIGHLIGHT); + si->iPopupFlags = Chat::iPopupFlags; + si->iTrayFlags = Chat::iTrayIconFlags; db_set_s(si->hContact, si->pszModule, "Topic", ""); db_unset(si->hContact, "CList", "StatusMsg"); if (si->ptszStatusbarText) diff --git a/src/mir_app/src/chat_tools.cpp b/src/mir_app/src/chat_tools.cpp index 382f2f2dcf..605c713c3e 100644 --- a/src/mir_app/src/chat_tools.cpp +++ b/src/mir_app/src/chat_tools.cpp @@ -158,6 +158,9 @@ static void AddEvent(MCONTACT hContact, HICON hIcon, int type, const wchar_t *pw BOOL DoTrayIcon(SESSION_INFO *si, GCEVENT *gce) { + if (si == nullptr || !(si->iTrayFlags & gce->iType)) + return FALSE; + int iMuteMode = Chat_IsMuted(si->hContact); switch (iMuteMode) { case CHATMODE_MUTE: iMuteMode = CLEF_ONLYAFEW; break; @@ -296,6 +299,9 @@ int ShowPopup(MCONTACT hContact, SESSION_INFO *si, HICON hIcon, char *pszProtoNa BOOL DoPopup(SESSION_INFO *si, GCEVENT *gce) { + if (si == nullptr || !(si->iPopupFlags & gce->iType)) + return FALSE; + fakeLOGINFO lin(gce); CMStringW wszText, wszNick; g_chatApi.CreateNick(si, &lin, wszNick); @@ -466,7 +472,7 @@ BOOL LogToFile(SESSION_INFO *si, GCEVENT *gce) return FALSE; // check whether we have to log this event - if (!(gce->iType & g_dwDiskLogFlags)) + if (!(gce->iType & Chat::iDiskLogFlags)) return FALSE; wchar_t p = '\0'; diff --git a/src/mir_app/src/chat_ui.cpp b/src/mir_app/src/chat_ui.cpp index 4c5c21b6cd..8b08092f8a 100644 --- a/src/mir_app/src/chat_ui.cpp +++ b/src/mir_app/src/chat_ui.cpp @@ -86,20 +86,14 @@ public: { btn1.MakeFlat(); btn2.MakeFlat(); btn3.MakeFlat(); btn4.MakeFlat(); - uint32_t dwFilterFlags = db_get_dw(0, CHAT_MODULE, "FilterFlags", GC_EVENT_ALL); - uint32_t dwTrayFlags = db_get_dw(0, CHAT_MODULE, "TrayIconFlags", GC_EVENT_HIGHLIGHT); - uint32_t dwPopupFlags = db_get_dw(0, CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT); - uint32_t dwSoundFlags = db_get_dw(0, CHAT_MODULE, "SoundFlags", GC_EVENT_HIGHLIGHT); - uint32_t dwLogFlags = db_get_dw(0, CHAT_MODULE, "DiskLogFlags", GC_EVENT_ALL); - for (int i = 0; i < _countof(_eventorder); i++) { if (_eventorder[i] != GC_EVENT_HIGHLIGHT) { - CheckDlgButton(m_hwnd, IDC_1 + i, dwFilterFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_L1 + i, dwLogFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_1 + i, Chat::iFilterFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_L1 + i, Chat::iDiskLogFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); } - CheckDlgButton(m_hwnd, IDC_P1 + i, dwPopupFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_T1 + i, dwTrayFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(m_hwnd, IDC_S1 + i, dwSoundFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_P1 + i, Chat::iPopupFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_S1 + i, Chat::iSoundFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(m_hwnd, IDC_T1 + i, Chat::iTrayIconFlags & _eventorder[i] ? BST_CHECKED : BST_UNCHECKED); } return true; } @@ -117,11 +111,12 @@ public: dwPopupFlags |= (IsDlgButtonChecked(m_hwnd, IDC_P1 + i) ? _eventorder[i] : 0); dwTrayFlags |= (IsDlgButtonChecked(m_hwnd, IDC_T1 + i) ? _eventorder[i] : 0); } - db_set_dw(0, CHAT_MODULE, "FilterFlags", dwFilterFlags); - db_set_dw(0, CHAT_MODULE, "PopupFlags", dwPopupFlags); - db_set_dw(0, CHAT_MODULE, "SoundFlags", dwSoundFlags); - db_set_dw(0, CHAT_MODULE, "TrayIconFlags", dwTrayFlags); - db_set_dw(0, CHAT_MODULE, "DiskLogFlags", dwLogFlags); + + Chat::iPopupFlags = dwPopupFlags; + Chat::iSoundFlags = dwSoundFlags; + Chat::iFilterFlags = dwFilterFlags; + Chat::iTrayIconFlags = dwTrayFlags; + Chat::iDiskLogFlags = dwLogFlags; LoadGlobalSettings(); return true; diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index b84da6e734..8c408aa850 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -825,3 +825,8 @@ Srmm_CreateHotkey @886 NONAME ?OnEventDeleted@PROTO_INTERFACE@@UAEXII@Z @940 NONAME Chat_IsMuted @941 NONAME ?Srmm_AddEvent@@YGXII@Z @942 NONAME +?iDiskLogFlags@Chat@@3V?$CMOption@I@@A @943 NONAME +?iFilterFlags@Chat@@3V?$CMOption@I@@A @944 NONAME +?iPopupFlags@Chat@@3V?$CMOption@I@@A @945 NONAME +?iSoundFlags@Chat@@3V?$CMOption@I@@A @946 NONAME +?iTrayIconFlags@Chat@@3V?$CMOption@I@@A @947 NONAME diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index 91471cf20e..6fea4dc002 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -825,3 +825,8 @@ Srmm_CreateHotkey @886 NONAME ?OnEventDeleted@PROTO_INTERFACE@@UEAAXII@Z @940 NONAME Chat_IsMuted @941 NONAME ?Srmm_AddEvent@@YAXII@Z @942 NONAME +?iDiskLogFlags@Chat@@3V?$CMOption@I@@A @943 NONAME +?iFilterFlags@Chat@@3V?$CMOption@I@@A @944 NONAME +?iPopupFlags@Chat@@3V?$CMOption@I@@A @945 NONAME +?iSoundFlags@Chat@@3V?$CMOption@I@@A @946 NONAME +?iTrayIconFlags@Chat@@3V?$CMOption@I@@A @947 NONAME diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index eab87c6e78..5b115a1a1d 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -55,7 +55,7 @@ CSrmmBaseDialog::CSrmmBaseDialog(CMPluginBase &pPlugin, int idDialog, SESSION_IN { m_bFilterEnabled = db_get_b(0, CHAT_MODULE, "FilterEnabled", 0) != 0; m_bNicklistEnabled = db_get_b(0, CHAT_MODULE, "ShowNicklist", 1) != 0; - m_iLogFilterFlags = db_get_dw(0, CHAT_MODULE, "FilterFlags", 0x03E0); + m_iLogFilterFlags = Chat::iFilterFlags; m_btnColor.OnClick = Callback(this, &CSrmmBaseDialog::onClick_Color); m_btnBkColor.OnClick = Callback(this, &CSrmmBaseDialog::onClick_BkColor); -- cgit v1.2.3