Skip to content

Commit 28c93da

Browse files
committed
ux: show Unset menu item only if it is necessary (#690)
Signed-off-by: leo <[email protected]>
1 parent 0469709 commit 28c93da

File tree

1 file changed

+34
-37
lines changed

1 file changed

+34
-37
lines changed

src/Views/FilterModeSwitchButton.axaml.cs

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -71,19 +71,25 @@ private void OnChangeFilterModeButtonClicked(object sender, RoutedEventArgs e)
7171
if (button == null)
7272
return;
7373

74+
var menu = new ContextMenu();
75+
var mode = Models.FilterMode.None;
7476
if (DataContext is Models.Tag tag)
7577
{
76-
var mode = tag.FilterMode;
78+
mode = tag.FilterMode;
7779

78-
var none = new MenuItem();
79-
none.Icon = App.CreateMenuIcon("Icons.Eye");
80-
none.Header = App.Text("Repository.FilterCommits.Default");
81-
none.IsEnabled = mode != Models.FilterMode.None;
82-
none.Click += (_, ev) =>
80+
if (mode != Models.FilterMode.None)
8381
{
84-
UpdateTagFilterMode(repo, tag, Models.FilterMode.None);
85-
ev.Handled = true;
86-
};
82+
var unset = new MenuItem();
83+
unset.Header = App.Text("Repository.FilterCommits.Default");
84+
unset.Click += (_, ev) =>
85+
{
86+
UpdateTagFilterMode(repo, tag, Models.FilterMode.None);
87+
ev.Handled = true;
88+
};
89+
90+
menu.Items.Add(unset);
91+
menu.Items.Add(new MenuItem() { Header = "-" });
92+
}
8793

8894
var include = new MenuItem();
8995
include.Icon = App.CreateMenuIcon("Icons.Filter");
@@ -105,32 +111,26 @@ private void OnChangeFilterModeButtonClicked(object sender, RoutedEventArgs e)
105111
ev.Handled = true;
106112
};
107113

108-
var menu = new ContextMenu();
109-
menu.Items.Add(none);
110114
menu.Items.Add(include);
111115
menu.Items.Add(exclude);
112-
113-
if (mode == Models.FilterMode.None)
114-
{
115-
IsContextMenuOpening = true;
116-
menu.Closed += (_, _) => IsContextMenuOpening = false;
117-
}
118-
119-
menu.Open(button);
120116
}
121117
else if (DataContext is ViewModels.BranchTreeNode node)
122118
{
123-
var mode = node.FilterMode;
119+
mode = node.FilterMode;
124120

125-
var none = new MenuItem();
126-
none.Icon = App.CreateMenuIcon("Icons.Eye");
127-
none.Header = App.Text("Repository.FilterCommits.Default");
128-
none.IsEnabled = mode != Models.FilterMode.None;
129-
none.Click += (_, ev) =>
121+
if (mode != Models.FilterMode.None)
130122
{
131-
UpdateBranchFilterMode(repo, node, Models.FilterMode.None);
132-
ev.Handled = true;
133-
};
123+
var unset = new MenuItem();
124+
unset.Header = App.Text("Repository.FilterCommits.Default");
125+
unset.Click += (_, ev) =>
126+
{
127+
UpdateBranchFilterMode(repo, node, Models.FilterMode.None);
128+
ev.Handled = true;
129+
};
130+
131+
menu.Items.Add(unset);
132+
menu.Items.Add(new MenuItem() { Header = "-" });
133+
}
134134

135135
var include = new MenuItem();
136136
include.Icon = App.CreateMenuIcon("Icons.Filter");
@@ -152,20 +152,17 @@ private void OnChangeFilterModeButtonClicked(object sender, RoutedEventArgs e)
152152
ev.Handled = true;
153153
};
154154

155-
var menu = new ContextMenu();
156-
menu.Items.Add(none);
157155
menu.Items.Add(include);
158156
menu.Items.Add(exclude);
157+
}
159158

160-
if (mode == Models.FilterMode.None)
161-
{
162-
IsContextMenuOpening = true;
163-
menu.Closed += (_, _) => IsContextMenuOpening = false;
164-
}
165-
166-
menu.Open(button);
159+
if (mode == Models.FilterMode.None)
160+
{
161+
IsContextMenuOpening = true;
162+
menu.Closed += (_, _) => IsContextMenuOpening = false;
167163
}
168164

165+
menu.Open(button);
169166
e.Handled = true;
170167
}
171168

0 commit comments

Comments
 (0)