From b8ebaa0bdb6be17e014d7a382b86af8c028cf00d Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 26 Sep 2023 13:34:09 +0300 Subject: Group chat options are applied alongside the private window options update --- src/core/stdmsg/src/chat_window.cpp | 24 ------------------------ src/core/stdmsg/src/msgdialog.cpp | 25 +++++++++++++++++++++++-- src/core/stdmsg/src/msgs.h | 1 - src/mir_app/src/chat_svc.cpp | 2 +- src/mir_app/src/mir_app.def | 2 +- src/mir_app/src/mir_app64.def | 2 +- src/mir_app/src/srmm_base.cpp | 4 ++-- 7 files changed, 28 insertions(+), 32 deletions(-) (limited to 'src') 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; -- cgit v1.2.3