From 17b316e3e7bce8ca2f51efdc8824451c4be89b8f Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 23 Jul 2023 17:41:26 +0300 Subject: Clist_modern: minor fix for the folded groups checkbox in View Modes --- plugins/Clist_modern/src/modern_clui.cpp | 2 -- plugins/Clist_modern/src/modern_viewmodebar.cpp | 35 ++++++++++++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/plugins/Clist_modern/src/modern_clui.cpp b/plugins/Clist_modern/src/modern_clui.cpp index d61609f4c5..c54ad8b8eb 100644 --- a/plugins/Clist_modern/src/modern_clui.cpp +++ b/plugins/Clist_modern/src/modern_clui.cpp @@ -74,7 +74,6 @@ static uint8_t bAlphaEnd; static int bOldHideOffline; static int bOldHideEmptyGroups; static int bOldUseGroups; -static int bOldFoldGroups; static uint16_t wBehindEdgeShowDelay, wBehindEdgeHideDelay, @@ -313,7 +312,6 @@ CLUI::CLUI() : bOldUseGroups = Clist::UseGroups; g_CluiData.bOldFoldGroups = -1; - bOldFoldGroups = -1; } CLUI::~CLUI() diff --git a/plugins/Clist_modern/src/modern_viewmodebar.cpp b/plugins/Clist_modern/src/modern_viewmodebar.cpp index b2a4b65059..6e6ea22632 100644 --- a/plugins/Clist_modern/src/modern_viewmodebar.cpp +++ b/plugins/Clist_modern/src/modern_viewmodebar.cpp @@ -33,6 +33,7 @@ $Id: viewmodes.c 2998 2006-06-01 07:11:52Z nightwish2004 $ HWND g_ViewModeOptDlg = nullptr; +static int iOldFoldGroups = -1; static HWND hwndSelector = nullptr; static BOOL sttDrawViewModeBackground(HWND hwnd, HDC hdc, RECT *rect); @@ -598,6 +599,7 @@ public: UpdateTriState(IDC_USEGROUPS, dwFlags & CLVM_USEGROUPS, dwFlags & CLVM_DONOTUSEGROUPS); UpdateTriState(IDC_FOLD_GROUPS, dwFlags & CLVM_FOLDGROUPS, dwFlags & CLVM_UNFOLDGROUPS); UpdateTriState(IDC_HIDEEMPTYGROUPS, dwFlags & CLVM_HIDEEMPTYGROUPS, dwFlags & CLVM_SHOWEMPTYGROUPS); + onChange_UseGroups(0); int useLastMsg = dwFlags & CLVM_USELASTMSG; chkLastMsg.SetState(useLastMsg); @@ -1345,39 +1347,42 @@ void ApplyViewMode(const char *szName) g_CluiData.bOldHideOffline = -1; } - int bUseGroups = (g_CluiData.filterFlags & CLVM_USEGROUPS) ? 1 : ((g_CluiData.filterFlags & CLVM_DONOTUSEGROUPS) ? 0 : -1); - if (bUseGroups != -1) { + int iValue = (g_CluiData.filterFlags & CLVM_FOLDGROUPS) ? 1 : ((g_CluiData.filterFlags & CLVM_UNFOLDGROUPS) ? 0 : -1); + if (iValue != -1) { + if (g_CluiData.bOldFoldGroups == -1) + g_CluiData.bOldFoldGroups = !Clist::UseGroups; + + SendMessage(g_clistApi.hwndContactTree, CLM_EXPAND, 0, iValue ? CLE_COLLAPSE : CLE_EXPAND); + } + else if (g_CluiData.bOldFoldGroups != -1) { + SendMessage(g_clistApi.hwndContactTree, CLM_EXPAND, 0, g_CluiData.bOldFoldGroups ? CLE_COLLAPSE : CLE_EXPAND); + g_CluiData.bOldFoldGroups = -1; + } + + iValue = (g_CluiData.filterFlags & CLVM_USEGROUPS) ? 1 : ((g_CluiData.filterFlags & CLVM_DONOTUSEGROUPS) ? 0 : -1); + if (iValue != -1) { if (g_CluiData.bOldUseGroups == -1) g_CluiData.bOldUseGroups = Clist::UseGroups; - CallService(MS_CLIST_SETUSEGROUPS, bUseGroups, 0); + CallService(MS_CLIST_SETUSEGROUPS, iValue, 0); } else if (g_CluiData.bOldUseGroups != -1) { CallService(MS_CLIST_SETUSEGROUPS, g_CluiData.bOldUseGroups, 0); g_CluiData.bOldUseGroups = -1; } - int bOldHideEmptyGroups = (g_CluiData.filterFlags & CLVM_HIDEEMPTYGROUPS) ? 1 : ((g_CluiData.filterFlags & CLVM_SHOWEMPTYGROUPS) ? 0 : -1); - if (bOldHideEmptyGroups != -1) { + iValue = (g_CluiData.filterFlags & CLVM_HIDEEMPTYGROUPS) ? 1 : ((g_CluiData.filterFlags & CLVM_SHOWEMPTYGROUPS) ? 0 : -1); + if (iValue != -1) { if (g_CluiData.bOldHideEmptyGroups == -1) g_CluiData.bOldHideEmptyGroups = Clist::HideEmptyGroups; - SendMessage(g_clistApi.hwndContactTree, CLM_SETHIDEEMPTYGROUPS, bOldHideEmptyGroups, 0); + SendMessage(g_clistApi.hwndContactTree, CLM_SETHIDEEMPTYGROUPS, iValue, 0); } else if (g_CluiData.bOldHideEmptyGroups != -1) { SendMessage(g_clistApi.hwndContactTree, CLM_SETHIDEEMPTYGROUPS, g_CluiData.bOldHideEmptyGroups, 0); g_CluiData.bOldHideEmptyGroups = -1; } - int bOldFoldGroups = (g_CluiData.filterFlags & CLVM_FOLDGROUPS) ? 1 : ((g_CluiData.filterFlags & CLVM_UNFOLDGROUPS) ? 0 : -1); - if (bOldFoldGroups != -1) { - SendMessage(g_clistApi.hwndContactTree, CLM_EXPAND, 0, bOldFoldGroups ? CLE_COLLAPSE : CLE_EXPAND); - } - else if (g_CluiData.bOldFoldGroups != -1) { - SendMessage(g_clistApi.hwndContactTree, CLM_EXPAND, 0, g_CluiData.bOldFoldGroups ? CLE_COLLAPSE : CLE_EXPAND); - g_CluiData.bOldFoldGroups = -1; - } - SetWindowText(hwndSelector, ptrW(mir_utf8decodeW((szName[0] == 13) ? szName + 1 : szName))); } -- cgit v1.2.3