diff options
-rw-r--r-- | include/m_clist.h | 1 | ||||
-rw-r--r-- | include/m_clistint.h | 2 | ||||
-rw-r--r-- | plugins/Clist_modern/src/groupmenu.cpp | 2 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_clc.cpp | 2 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_clcitems.cpp | 5 | ||||
-rw-r--r-- | plugins/Clist_modern/src/modern_clist.h | 2 | ||||
-rw-r--r-- | src/mir_app/src/clcitems.cpp | 2 | ||||
-rw-r--r-- | src/mir_app/src/menu_groups.cpp | 13 |
8 files changed, 14 insertions, 15 deletions
diff --git a/include/m_clist.h b/include/m_clist.h index 365f95669f..7b9f0bf4c4 100644 --- a/include/m_clist.h +++ b/include/m_clist.h @@ -382,6 +382,7 @@ EXTERN_C MIR_APP_DLL(int) Clist_GroupRename(MGROUP hGroup, const wchar_t *ptszNe #define GROUPF_EXPANDED 0x04
#define GROUPF_HIDEOFFLINE 0x08
+#define GROUPF_SHOWOFFLINE 0x40
EXTERN_C MIR_APP_DLL(wchar_t*) Clist_GroupGetName(MGROUP hGroup, uint32_t *pdwFlags = nullptr);
diff --git a/include/m_clistint.h b/include/m_clistint.h index 93401834ae..096ed11883 100644 --- a/include/m_clistint.h +++ b/include/m_clistint.h @@ -85,7 +85,7 @@ struct ClcGroup : public MZeroedObject LIST<ClcContact> cl;
int groupId;
- bool bExpanded, bHideOffline;
+ bool bExpanded, bHideOffline, bShowOffline;
ClcGroup *parent;
int scanIndex;
int totalMembers;
diff --git a/plugins/Clist_modern/src/groupmenu.cpp b/plugins/Clist_modern/src/groupmenu.cpp index 4c166d0fa2..1c0842eaf4 100644 --- a/plugins/Clist_modern/src/groupmenu.cpp +++ b/plugins/Clist_modern/src/groupmenu.cpp @@ -39,7 +39,7 @@ static int OnBuildSubGroupMenu(WPARAM wParam, LPARAM) if (wParam == 0 || MirandaExiting())
showOfflineinGroup = gray = false;
else {
- showOfflineinGroup = CLCItems_IsShowOfflineGroup(group);
+ showOfflineinGroup = group->bShowOffline;
gray = !group->bHideOffline;
}
diff --git a/plugins/Clist_modern/src/modern_clc.cpp b/plugins/Clist_modern/src/modern_clc.cpp index 835de2c645..b57b583774 100644 --- a/plugins/Clist_modern/src/modern_clc.cpp +++ b/plugins/Clist_modern/src/modern_clc.cpp @@ -326,7 +326,7 @@ static LRESULT clcOnCommand(ClcData *dat, HWND hwnd, UINT, WPARAM wParam, LPARAM if (hit != -1 && contact->type == CLCIT_GROUP) {
switch (LOWORD(wParam)) {
case POPUP_GROUPSHOWOFFLINE:
- Clist_GroupSetFlags(contact->groupId, MAKELPARAM(CLCItems_IsShowOfflineGroup(contact->group) ? 0 : GROUPF_SHOWOFFLINE, GROUPF_SHOWOFFLINE));
+ Clist_GroupSetFlags(contact->groupId, MAKELPARAM(contact->group->bShowOffline ? 0 : GROUPF_SHOWOFFLINE, GROUPF_SHOWOFFLINE));
Clist_Broadcast(CLM_AUTOREBUILD, 0, 0);
return 0;
}
diff --git a/plugins/Clist_modern/src/modern_clcitems.cpp b/plugins/Clist_modern/src/modern_clcitems.cpp index f61ec8e2b2..35ac94c13e 100644 --- a/plugins/Clist_modern/src/modern_clcitems.cpp +++ b/plugins/Clist_modern/src/modern_clcitems.cpp @@ -180,10 +180,7 @@ bool CLCItems_IsShowOfflineGroup(ClcGroup *group) {
if (!group) return false;
if (group->bHideOffline) return false;
-
- uint32_t groupFlags = 0;
- Clist_GroupGetName(group->groupId, &groupFlags);
- return (groupFlags & GROUPF_SHOWOFFLINE) != 0;
+ return group->bShowOffline;
}
MCONTACT SaveSelection(ClcData *dat)
diff --git a/plugins/Clist_modern/src/modern_clist.h b/plugins/Clist_modern/src/modern_clist.h index 2adf362135..e67208047c 100644 --- a/plugins/Clist_modern/src/modern_clist.h +++ b/plugins/Clist_modern/src/modern_clist.h @@ -140,6 +140,4 @@ struct ClcCacheEntry : public ClcCacheEntryBase #define CLVM_MODULE "CLVM"
#endif
-#define GROUPF_SHOWOFFLINE 0x40
-
#endif
diff --git a/src/mir_app/src/clcitems.cpp b/src/mir_app/src/clcitems.cpp index 78402b8aa4..b8626f0625 100644 --- a/src/mir_app/src/clcitems.cpp +++ b/src/mir_app/src/clcitems.cpp @@ -72,6 +72,7 @@ ClcGroup* fnAddGroup(HWND hwnd, ClcData *dat, const wchar_t *szName, uint32_t fl group = cc->group;
group->bExpanded = (flags & GROUPF_EXPANDED) != 0;
group->bHideOffline = (flags & GROUPF_HIDEOFFLINE) != 0;
+ group->bShowOffline = (flags & GROUPF_SHOWOFFLINE) != 0;
group->groupId = groupId;
}
else group = cc->group;
@@ -101,6 +102,7 @@ ClcGroup* fnAddGroup(HWND hwnd, ClcData *dat, const wchar_t *szName, uint32_t fl else {
group->bExpanded = (flags & GROUPF_EXPANDED) != 0;
group->bHideOffline = (flags & GROUPF_HIDEOFFLINE) != 0;
+ group->bShowOffline = (flags & GROUPF_SHOWOFFLINE) != 0;
}
group->groupId = pNextField ? 0 : groupId;
group->totalMembers = 0;
diff --git a/src/mir_app/src/menu_groups.cpp b/src/mir_app/src/menu_groups.cpp index 8d0339032f..d28c26a4f0 100644 --- a/src/mir_app/src/menu_groups.cpp +++ b/src/mir_app/src/menu_groups.cpp @@ -188,13 +188,14 @@ static int OnBuildGroupMenu(WPARAM wParam, LPARAM) Menu_SetChecked(hmiHideEmptyGroups, (dwStyle & CLS_HIDEEMPTYGROUPS) != 0);
Menu_SetChecked(hmiDisableGroups, (dwStyle & CLS_USEGROUPS) == 0);
- Menu_ShowItem(hmiRenameGroup, wParam != 0);
- Menu_ShowItem(hmiDeleteGroup, wParam != 0);
- Menu_ShowItem(hmiCreateSubgroup, wParam != 0);
- Menu_ShowItem(hmiHideOfflineUsersInHere, wParam != 0);
- Menu_ShowItem(hmiHideOfflineUsersOutHere, wParam == 0);
-
ClcGroup *group = (ClcGroup *)wParam;
+
+ Menu_ShowItem(hmiRenameGroup, group != 0);
+ Menu_ShowItem(hmiDeleteGroup, group != 0);
+ Menu_ShowItem(hmiCreateSubgroup, group != 0);
+ Menu_ShowItem(hmiHideOfflineUsersInHere, group && !group->bShowOffline);
+ Menu_ShowItem(hmiHideOfflineUsersOutHere, group == 0);
+
if (group != nullptr) // contact->group
Menu_SetChecked(hmiHideOfflineUsersInHere, group->bHideOffline != 0);
return 0;
|