@@ -770,21 +770,27 @@ public void SetTagFilterMode(Models.Tag tag, Models.FilterMode mode)
770
770
{
771
771
var changed = _settings . UpdateHistoriesFilter ( tag . Name , Models . FilterType . Tag , mode ) ;
772
772
if ( changed )
773
- RefreshHistoriesFilters ( ) ;
773
+ RefreshHistoriesFilters ( true ) ;
774
774
}
775
775
776
- public void SetBranchFilterMode ( Models . Branch branch , Models . FilterMode mode )
776
+ public void SetBranchFilterMode ( Models . Branch branch , Models . FilterMode mode , bool clearExists , bool refresh )
777
777
{
778
778
var node = FindBranchNode ( branch . IsLocal ? _localBranchTrees : _remoteBranchTrees , branch . FullName ) ;
779
779
if ( node != null )
780
- SetBranchFilterMode ( node , mode ) ;
780
+ SetBranchFilterMode ( node , mode , clearExists , refresh ) ;
781
781
}
782
782
783
- public void SetBranchFilterMode ( BranchTreeNode node , Models . FilterMode mode )
783
+ public void SetBranchFilterMode ( BranchTreeNode node , Models . FilterMode mode , bool clearExists , bool refresh )
784
784
{
785
785
var isLocal = node . Path . StartsWith ( "refs/heads/" , StringComparison . Ordinal ) ;
786
786
var tree = isLocal ? _localBranchTrees : _remoteBranchTrees ;
787
787
788
+ if ( clearExists )
789
+ {
790
+ _settings . HistoriesFilters . Clear ( ) ;
791
+ HistoriesFilterMode = Models . FilterMode . None ;
792
+ }
793
+
788
794
if ( node . Backend is Models . Branch branch )
789
795
{
790
796
var type = isLocal ? Models . FilterType . LocalBranch : Models . FilterType . RemoteBranch ;
@@ -822,7 +828,7 @@ public void SetBranchFilterMode(BranchTreeNode node, Models.FilterMode mode)
822
828
cur = parent ;
823
829
} while ( true ) ;
824
830
825
- RefreshHistoriesFilters ( ) ;
831
+ RefreshHistoriesFilters ( refresh ) ;
826
832
}
827
833
828
834
public void StashAll ( bool autoStart )
@@ -2149,18 +2155,21 @@ private BranchTreeNode.Builder BuildBranchTree(List<Models.Branch> branches, Lis
2149
2155
return visible ;
2150
2156
}
2151
2157
2152
- private void RefreshHistoriesFilters ( )
2158
+ private void RefreshHistoriesFilters ( bool refresh )
2153
2159
{
2154
- var filters = _settings . CollectHistoriesFilters ( ) ;
2155
- UpdateBranchTreeFilterMode ( LocalBranchTrees , filters ) ;
2156
- UpdateBranchTreeFilterMode ( RemoteBranchTrees , filters ) ;
2157
- UpdateTagFilterMode ( filters ) ;
2158
-
2159
2160
if ( _settings . HistoriesFilters . Count > 0 )
2160
2161
HistoriesFilterMode = _settings . HistoriesFilters [ 0 ] . Mode ;
2161
2162
else
2162
2163
HistoriesFilterMode = Models . FilterMode . None ;
2163
2164
2165
+ if ( ! refresh )
2166
+ return ;
2167
+
2168
+ var filters = _settings . CollectHistoriesFilters ( ) ;
2169
+ UpdateBranchTreeFilterMode ( LocalBranchTrees , filters ) ;
2170
+ UpdateBranchTreeFilterMode ( RemoteBranchTrees , filters ) ;
2171
+ UpdateTagFilterMode ( filters ) ;
2172
+
2164
2173
Task . Run ( RefreshCommits ) ;
2165
2174
}
2166
2175
0 commit comments