From 1ee38b4c0e1d067f6921900ac67e54e6085f892f Mon Sep 17 00:00:00 2001 From: azakhi Date: Thu, 6 Sep 2018 14:31:06 +0300 Subject: [PATCH] Fix block group output & expand/collapse all --- Filtration.ObjectModel/ItemFilterBlockGroup.cs | 15 +++++++-------- .../ViewModels/ItemFilterBlockGroupViewModel.cs | 9 +++++++++ .../ToolPanes/BlockGroupBrowserViewModel.cs | 4 ++-- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Filtration.ObjectModel/ItemFilterBlockGroup.cs b/Filtration.ObjectModel/ItemFilterBlockGroup.cs index 7412019..3a24984 100644 --- a/Filtration.ObjectModel/ItemFilterBlockGroup.cs +++ b/Filtration.ObjectModel/ItemFilterBlockGroup.cs @@ -57,18 +57,17 @@ namespace Filtration.ObjectModel public override string ToString() { - var currentBlockGroup = this; + if(ParentGroup == null) + { + return string.Empty; + } var outputString = (Advanced ? "~" : string.Empty) + GroupName; - // TODO: This is retarded, fix this. - if (currentBlockGroup.ParentGroup != null) + var parentOutput = ParentGroup.ToString(); + if(!string.IsNullOrWhiteSpace(parentOutput)) { - while (currentBlockGroup.ParentGroup.ParentGroup != null) - { - outputString = (currentBlockGroup.ParentGroup.Advanced ? "~" : string.Empty) + currentBlockGroup.ParentGroup.GroupName + " - " + outputString; - currentBlockGroup = currentBlockGroup.ParentGroup; - } + outputString = parentOutput + (IsLeafNode ? string.Empty : " - " + outputString); } return outputString; diff --git a/Filtration/ViewModels/ItemFilterBlockGroupViewModel.cs b/Filtration/ViewModels/ItemFilterBlockGroupViewModel.cs index 5bec2ed..d6558bd 100644 --- a/Filtration/ViewModels/ItemFilterBlockGroupViewModel.cs +++ b/Filtration/ViewModels/ItemFilterBlockGroupViewModel.cs @@ -166,6 +166,15 @@ namespace Filtration.ViewModels } } + public void SetIsExpandedForAll(bool isExpanded) + { + IsExpanded = isExpanded; + foreach(var child in VisibleChildGroups) + { + child.SetIsExpandedForAll(isExpanded); + } + } + public void RecalculateCheckState() { _isShowChecked = DetermineCheckState(true); diff --git a/Filtration/ViewModels/ToolPanes/BlockGroupBrowserViewModel.cs b/Filtration/ViewModels/ToolPanes/BlockGroupBrowserViewModel.cs index 2302f0d..df6aa24 100644 --- a/Filtration/ViewModels/ToolPanes/BlockGroupBrowserViewModel.cs +++ b/Filtration/ViewModels/ToolPanes/BlockGroupBrowserViewModel.cs @@ -126,7 +126,7 @@ namespace Filtration.ViewModels.ToolPanes { foreach (var vm in BlockGroupViewModels) { - vm.IsExpanded = true; + vm.SetIsExpandedForAll(true); } } @@ -134,7 +134,7 @@ namespace Filtration.ViewModels.ToolPanes { foreach (var vm in BlockGroupViewModels) { - vm.IsExpanded = false; + vm.SetIsExpandedForAll(false); } } }