diff options
author | George Hazan <george.hazan@gmail.com> | 2023-07-23 17:41:26 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2023-07-23 17:41:26 +0300 |
commit | 17b316e3e7bce8ca2f51efdc8824451c4be89b8f (patch) | |
tree | 97dd1d22c7405ba06d5972d9dd2619bfd7769431 | |
parent | 7fae2fb35b194f96198e1e0789ba034736b9b9cb (diff) |
Clist_modern: minor fix for the folded groups checkbox in View Modes
-rw-r--r-- | plugins/Clist_modern/src/modern_clui.cpp | 2 | ||||
-rw-r--r-- | 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)));
}
|