summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2023-09-26 13:34:09 +0300
committerGeorge Hazan <george.hazan@gmail.com>2023-09-26 13:34:09 +0300
commitb8ebaa0bdb6be17e014d7a382b86af8c028cf00d (patch)
tree5ff2f2e64e9bf2f0d214fbc9af1d8a661d934c17 /src
parentaa23f64e684fd892a2ae51eacb71c66434efc4d0 (diff)
Group chat options are applied alongside the private window options update
Diffstat (limited to 'src')
-rw-r--r--src/core/stdmsg/src/chat_window.cpp24
-rw-r--r--src/core/stdmsg/src/msgdialog.cpp25
-rw-r--r--src/core/stdmsg/src/msgs.h1
-rw-r--r--src/mir_app/src/chat_svc.cpp2
-rw-r--r--src/mir_app/src/mir_app.def2
-rw-r--r--src/mir_app/src/mir_app64.def2
-rw-r--r--src/mir_app/src/srmm_base.cpp4
7 files changed, 28 insertions, 32 deletions
diff --git a/src/core/stdmsg/src/chat_window.cpp b/src/core/stdmsg/src/chat_window.cpp
index 08762670c6..39ab7e2873 100644
--- a/src/core/stdmsg/src/chat_window.cpp
+++ b/src/core/stdmsg/src/chat_window.cpp
@@ -50,30 +50,6 @@ void CMsgDialog::UpdateFilterButton()
m_btnNickList.SendMsg(BM_SETIMAGE, IMAGE_ICON, (LPARAM)g_plugin.getIcon(m_bNicklistEnabled ? IDI_NICKLIST : IDI_NICKLIST2, FALSE));
}
-void CMsgDialog::UpdateOptions()
-{
- HICON hIcon = ImageList_GetIcon(Clist_GetImageList(), GetImageId(), ILD_TRANSPARENT);
- SendMessage(m_pOwner->m_hwndStatus, SB_SETICON, 0, (LPARAM)hIcon);
- DestroyIcon(hIcon);
-
- Window_SetIcon_IcoLib(m_pOwner->GetHwnd(), g_plugin.getIconHandle(IDI_CHANMGR));
-
- // nicklist
- int ih = Chat_GetTextPixelSize(L"AQGglo", g_Settings.UserListFont, FALSE);
- int ih2 = Chat_GetTextPixelSize(L"AQGglo", g_Settings.UserListHeadingsFont, FALSE);
- int height = db_get_b(0, CHAT_MODULE, "NicklistRowDist", 12);
- int font = ih > ih2 ? ih : ih2;
-
- // make sure we have space for icon!
- if (g_Settings.bShowContactStatus)
- font = font > 16 ? font : 16;
-
- m_nickList.SendMsg(LB_SETITEMHEIGHT, 0, height > font ? height : font);
- InvalidateRect(m_nickList.GetHwnd(), nullptr, TRUE);
-
- CSuper::UpdateOptions();
-}
-
void CMsgDialog::UpdateStatusBar()
{
wchar_t *ptszDispName = m_si->pMI->ptszModDispName;
diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp
index 7794154a64..9de8fd65a1 100644
--- a/src/core/stdmsg/src/msgdialog.cpp
+++ b/src/core/stdmsg/src/msgdialog.cpp
@@ -140,7 +140,6 @@ bool CMsgDialog::OnInitDialog()
if (isChat()) {
OnActivate();
- UpdateOptions();
UpdateStatusBar();
UpdateTitle();
UpdateChatLog();
@@ -1074,6 +1073,29 @@ void CMsgDialog::TabAutoComplete()
void CMsgDialog::OnOptionsApplied()
{
+ if (isChat()) {
+ HICON hIcon = ImageList_GetIcon(Clist_GetImageList(), GetImageId(), ILD_TRANSPARENT);
+ SendMessage(m_pOwner->m_hwndStatus, SB_SETICON, 0, (LPARAM)hIcon);
+ DestroyIcon(hIcon);
+
+ Window_SetIcon_IcoLib(m_pOwner->GetHwnd(), g_plugin.getIconHandle(IDI_CHANMGR));
+
+ // nicklist
+ int ih = Chat_GetTextPixelSize(L"AQGglo", g_Settings.UserListFont, FALSE);
+ int ih2 = Chat_GetTextPixelSize(L"AQGglo", g_Settings.UserListHeadingsFont, FALSE);
+ int height = db_get_b(0, CHAT_MODULE, "NicklistRowDist", 12);
+ int font = ih > ih2 ? ih : ih2;
+
+ // make sure we have space for icon!
+ if (g_Settings.bShowContactStatus)
+ font = font > 16 ? font : 16;
+
+ m_nickList.SendMsg(LB_SETITEMHEIGHT, 0, height > font ? height : font);
+ InvalidateRect(m_nickList.GetHwnd(), nullptr, TRUE);
+
+ UpdateChatOptions();
+ }
+
CustomButtonData *cbd;
for (int i = 0; cbd = Srmm_GetNthButton(i); i++) {
HWND hwndButton = GetDlgItem(m_hwnd, cbd->m_dwButtonCID);
@@ -1103,7 +1125,6 @@ void CMsgDialog::OnOptionsApplied()
UpdateTitle();
Resize();
- m_pLog->UpdateOptions();
m_message.SendMsg(EM_SETBKGNDCOLOR, 0, g_plugin.getDword(SRMSGSET_BKGCOLOUR, SRMSGDEFSET_BKGCOLOUR));
// avatar stuff
diff --git a/src/core/stdmsg/src/msgs.h b/src/core/stdmsg/src/msgs.h
index 98670d6dee..3c82801813 100644
--- a/src/core/stdmsg/src/msgs.h
+++ b/src/core/stdmsg/src/msgs.h
@@ -144,7 +144,6 @@ public:
void SetStatusText(const wchar_t *, HICON) override;
void ShowFilterMenu() override;
void UpdateFilterButton() override;
- void UpdateOptions() override;
void UpdateStatusBar() override;
void UpdateTitle() override;
diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp
index 73c6eb540a..df0b70c420 100644
--- a/src/mir_app/src/chat_svc.cpp
+++ b/src/mir_app/src/chat_svc.cpp
@@ -774,7 +774,7 @@ MIR_APP_DLL(void) Chat_UpdateOptions()
{
for (auto &si : g_arSessions)
if (si->pDlg)
- si->pDlg->UpdateOptions();
+ si->pDlg->OnOptionsApplied();
}
MIR_APP_DLL(int) Chat_IsMuted(MCONTACT hContact)
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def
index 8a939f15af..986b1c5182 100644
--- a/src/mir_app/src/mir_app.def
+++ b/src/mir_app/src/mir_app.def
@@ -321,7 +321,7 @@ Srmm_FindDialog @406 NONAME
?UpdateStatusBar@CSrmmBaseDialog@@UAEXXZ @417 NONAME
Chat_UpdateOptions @418 NONAME
?RedrawLog@CSrmmBaseDialog@@QAEXXZ @419 NONAME
-?UpdateOptions@CSrmmBaseDialog@@UAEXXZ @420 NONAME
+?UpdateChatOptions@CSrmmBaseDialog@@QAEXXZ @420 NONAME
?ShowColorChooser@CSrmmBaseDialog@@QAEXH@Z @421 NONAME
?ShowFilterMenu@CSrmmBaseDialog@@UAEXXZ @422 NONAME
?OnInitDialog@CSrmmBaseDialog@@MAE_NXZ @423 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def
index f36d40f651..3d6eca5103 100644
--- a/src/mir_app/src/mir_app64.def
+++ b/src/mir_app/src/mir_app64.def
@@ -321,7 +321,7 @@ Srmm_FindDialog @406 NONAME
?UpdateStatusBar@CSrmmBaseDialog@@UEAAXXZ @417 NONAME
Chat_UpdateOptions @418 NONAME
?RedrawLog@CSrmmBaseDialog@@QEAAXXZ @419 NONAME
-?UpdateOptions@CSrmmBaseDialog@@UEAAXXZ @420 NONAME
+?UpdateChatOptions@CSrmmBaseDialog@@QEAAXXZ @420 NONAME
?ShowColorChooser@CSrmmBaseDialog@@QEAAXH@Z @421 NONAME
?ShowFilterMenu@CSrmmBaseDialog@@UEAAXXZ @422 NONAME
?OnInitDialog@CSrmmBaseDialog@@MEAA_NXZ @423 NONAME
diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp
index 499bf58b67..3f69bf8fed 100644
--- a/src/mir_app/src/srmm_base.cpp
+++ b/src/mir_app/src/srmm_base.cpp
@@ -568,6 +568,7 @@ INT_PTR CSrmmBaseDialog::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case DM_OPTIONSAPPLIED:
+ m_pLog->UpdateOptions();
OnOptionsApplied();
return 0;
@@ -637,9 +638,8 @@ bool CSrmmBaseDialog::IsSuitableEvent(const LOGINFO &lin) const
return (m_si->iType == GCW_SERVER || (m_iLogFilterFlags & lin.iType));
}
-void CSrmmBaseDialog::UpdateOptions()
+void CSrmmBaseDialog::UpdateChatOptions()
{
- m_pLog->UpdateOptions();
UpdateFilterButton();
MODULEINFO *mi = m_si->pMI;