Skip to content

Commit a2c6afc

Browse files
committed
enhance: add file histories context menu item for staged changes and deleted files (#432)
1 parent b0b55c9 commit a2c6afc

File tree

2 files changed

+37
-28
lines changed

2 files changed

+37
-28
lines changed

src/ViewModels/CommitDetail.cs

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -267,44 +267,41 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
267267
var explore = new MenuItem();
268268
explore.Header = App.Text("RevealFile");
269269
explore.Icon = App.CreateMenuIcon("Icons.Explore");
270-
explore.IsVisible = File.Exists(fullPath);
270+
explore.IsEnabled = File.Exists(fullPath);
271271
explore.Click += (_, ev) =>
272272
{
273273
Native.OS.OpenInFileManager(fullPath, true);
274274
ev.Handled = true;
275275
};
276276

277+
var history = new MenuItem();
278+
history.Header = App.Text("FileHistory");
279+
history.Icon = App.CreateMenuIcon("Icons.Histories");
280+
history.Click += (_, ev) =>
281+
{
282+
var window = new Views.FileHistories() { DataContext = new FileHistories(_repo, change.Path) };
283+
window.Show();
284+
ev.Handled = true;
285+
};
286+
287+
var blame = new MenuItem();
288+
blame.Header = App.Text("Blame");
289+
blame.Icon = App.CreateMenuIcon("Icons.Blame");
290+
blame.IsEnabled = change.Index != Models.ChangeState.Deleted;
291+
blame.Click += (_, ev) =>
292+
{
293+
var window = new Views.Blame() { DataContext = new Blame(_repo.FullPath, change.Path, _commit.SHA) };
294+
window.Show();
295+
ev.Handled = true;
296+
};
297+
277298
var menu = new ContextMenu();
278299
menu.Items.Add(diffWithMerger);
279300
menu.Items.Add(explore);
280301
menu.Items.Add(new MenuItem { Header = "-" });
281-
282-
if (change.Index != Models.ChangeState.Deleted)
283-
{
284-
var history = new MenuItem();
285-
history.Header = App.Text("FileHistory");
286-
history.Icon = App.CreateMenuIcon("Icons.Histories");
287-
history.Click += (_, ev) =>
288-
{
289-
var window = new Views.FileHistories() { DataContext = new FileHistories(_repo, change.Path) };
290-
window.Show();
291-
ev.Handled = true;
292-
};
293-
294-
var blame = new MenuItem();
295-
blame.Header = App.Text("Blame");
296-
blame.Icon = App.CreateMenuIcon("Icons.Blame");
297-
blame.Click += (_, ev) =>
298-
{
299-
var window = new Views.Blame() { DataContext = new Blame(_repo.FullPath, change.Path, _commit.SHA) };
300-
window.Show();
301-
ev.Handled = true;
302-
};
303-
304-
menu.Items.Add(history);
305-
menu.Items.Add(blame);
306-
menu.Items.Add(new MenuItem { Header = "-" });
307-
}
302+
menu.Items.Add(history);
303+
menu.Items.Add(blame);
304+
menu.Items.Add(new MenuItem { Header = "-" });
308305

309306
var resetToThisRevision = new MenuItem();
310307
resetToThisRevision.Header = App.Text("ChangeCM.CheckoutThisRevision");

src/ViewModels/WorkingCopy.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -952,6 +952,16 @@ public ContextMenu CreateContextMenuForStagedChanges()
952952
e.Handled = true;
953953
};
954954

955+
var history = new MenuItem();
956+
history.Header = App.Text("FileHistory");
957+
history.Icon = App.CreateMenuIcon("Icons.Histories");
958+
history.Click += (_, e) =>
959+
{
960+
var window = new Views.FileHistories() { DataContext = new FileHistories(_repo, change.Path) };
961+
window.Show();
962+
e.Handled = true;
963+
};
964+
955965
var copyPath = new MenuItem();
956966
copyPath.Header = App.Text("CopyPath");
957967
copyPath.Icon = App.CreateMenuIcon("Icons.Copy");
@@ -977,6 +987,8 @@ public ContextMenu CreateContextMenuForStagedChanges()
977987
menu.Items.Add(stash);
978988
menu.Items.Add(patch);
979989
menu.Items.Add(new MenuItem() { Header = "-" });
990+
menu.Items.Add(history);
991+
menu.Items.Add(new MenuItem() { Header = "-" });
980992

981993
var lfsEnabled = new Commands.LFS(_repo.FullPath).IsEnabled();
982994
if (lfsEnabled)

0 commit comments

Comments
 (0)