@@ -770,21 +770,27 @@ public void SetTagFilterMode(Models.Tag tag, Models.FilterMode mode)
770770 {
771771 var changed = _settings . UpdateHistoriesFilter ( tag . Name , Models . FilterType . Tag , mode ) ;
772772 if ( changed )
773- RefreshHistoriesFilters ( ) ;
773+ RefreshHistoriesFilters ( true ) ;
774774 }
775775
776- public void SetBranchFilterMode ( Models . Branch branch , Models . FilterMode mode )
776+ public void SetBranchFilterMode ( Models . Branch branch , Models . FilterMode mode , bool clearExists , bool refresh )
777777 {
778778 var node = FindBranchNode ( branch . IsLocal ? _localBranchTrees : _remoteBranchTrees , branch . FullName ) ;
779779 if ( node != null )
780- SetBranchFilterMode ( node , mode ) ;
780+ SetBranchFilterMode ( node , mode , clearExists , refresh ) ;
781781 }
782782
783- public void SetBranchFilterMode ( BranchTreeNode node , Models . FilterMode mode )
783+ public void SetBranchFilterMode ( BranchTreeNode node , Models . FilterMode mode , bool clearExists , bool refresh )
784784 {
785785 var isLocal = node . Path . StartsWith ( "refs/heads/" , StringComparison . Ordinal ) ;
786786 var tree = isLocal ? _localBranchTrees : _remoteBranchTrees ;
787787
788+ if ( clearExists )
789+ {
790+ _settings . HistoriesFilters . Clear ( ) ;
791+ HistoriesFilterMode = Models . FilterMode . None ;
792+ }
793+
788794 if ( node . Backend is Models . Branch branch )
789795 {
790796 var type = isLocal ? Models . FilterType . LocalBranch : Models . FilterType . RemoteBranch ;
@@ -822,7 +828,7 @@ public void SetBranchFilterMode(BranchTreeNode node, Models.FilterMode mode)
822828 cur = parent ;
823829 } while ( true ) ;
824830
825- RefreshHistoriesFilters ( ) ;
831+ RefreshHistoriesFilters ( refresh ) ;
826832 }
827833
828834 public void StashAll ( bool autoStart )
@@ -2149,18 +2155,21 @@ private BranchTreeNode.Builder BuildBranchTree(List<Models.Branch> branches, Lis
21492155 return visible ;
21502156 }
21512157
2152- private void RefreshHistoriesFilters ( )
2158+ private void RefreshHistoriesFilters ( bool refresh )
21532159 {
2154- var filters = _settings . CollectHistoriesFilters ( ) ;
2155- UpdateBranchTreeFilterMode ( LocalBranchTrees , filters ) ;
2156- UpdateBranchTreeFilterMode ( RemoteBranchTrees , filters ) ;
2157- UpdateTagFilterMode ( filters ) ;
2158-
21592160 if ( _settings . HistoriesFilters . Count > 0 )
21602161 HistoriesFilterMode = _settings . HistoriesFilters [ 0 ] . Mode ;
21612162 else
21622163 HistoriesFilterMode = Models . FilterMode . None ;
21632164
2165+ if ( ! refresh )
2166+ return ;
2167+
2168+ var filters = _settings . CollectHistoriesFilters ( ) ;
2169+ UpdateBranchTreeFilterMode ( LocalBranchTrees , filters ) ;
2170+ UpdateBranchTreeFilterMode ( RemoteBranchTrees , filters ) ;
2171+ UpdateTagFilterMode ( filters ) ;
2172+
21642173 Task . Run ( RefreshCommits ) ;
21652174 }
21662175
0 commit comments