diff options
author | George Hazan <ghazan@miranda.im> | 2023-03-20 13:40:01 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2023-03-20 13:40:01 +0300 |
commit | 54b2cd28874a94509275206e8869d0d26eabd451 (patch) | |
tree | 57730f7a26ab56a8f62bcadd66a88c96f2bff68a /src | |
parent | 43eaa430b1e56d4465bfbbbb9f8540f14bc2bae2 (diff) |
fixes #3439 (Scriver/StdMsg: unified popup & tray icon settings with the same default values)
Diffstat (limited to 'src')
-rw-r--r-- | src/core/stdmsg/src/chat_manager.cpp | 16 | ||||
-rw-r--r-- | src/mir_app/src/chat.h | 1 | ||||
-rw-r--r-- | src/mir_app/src/chat_manager.cpp | 2 | ||||
-rw-r--r-- | src/mir_app/src/chat_opts.cpp | 5 | ||||
-rw-r--r-- | src/mir_app/src/chat_svc.cpp | 9 | ||||
-rw-r--r-- | src/mir_app/src/chat_tools.cpp | 8 | ||||
-rw-r--r-- | src/mir_app/src/chat_ui.cpp | 27 | ||||
-rw-r--r-- | src/mir_app/src/mir_app.def | 5 | ||||
-rw-r--r-- | src/mir_app/src/mir_app64.def | 5 | ||||
-rw-r--r-- | src/mir_app/src/srmm_base.cpp | 2 |
10 files changed, 37 insertions, 43 deletions
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<bool> Chat::bLogIndentEnabled(CHAT_MODULE, "LogIndentEnabled", true); CMOption<bool> Chat::bShowTimeIfChanged(CHAT_MODULE, "ShowTimeStampIfChanged", false);
CMOption<bool> Chat::bTimeStampEventColour(CHAT_MODULE, "TimeStampEventColour", false);
+CMOption<uint32_t> Chat::iPopupFlags(CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT);
+CMOption<uint32_t> Chat::iSoundFlags(CHAT_MODULE, "SoundFlags", GC_EVENT_HIGHLIGHT);
+CMOption<uint32_t> Chat::iFilterFlags(CHAT_MODULE, "FilterFlags", GC_EVENT_FILTERED);
+CMOption<uint32_t> Chat::iDiskLogFlags(CHAT_MODULE, "DiskLogFlags", GC_EVENT_ALL);
+CMOption<uint32_t> 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);
|