optimize(Manager): add context menu for recent opened repositories

This commit is contained in:
leo 2020-08-06 11:31:20 +08:00
parent 08dc039768
commit 28e3a1bb27
2 changed files with 48 additions and 19 deletions

View file

@ -87,6 +87,42 @@ namespace SourceGit.UI {
e.Handled = true;
}
}
private void RecentsContextMenuOpening(object sender, ContextMenuEventArgs e) {
var repo = (sender as ListViewItem).DataContext as Git.Repository;
if (repo == null) return;
var open = new MenuItem();
open.Header = "Open";
open.Click += (o, ev) => {
CheckAndOpenRepo(repo.Path);
ev.Handled = true;
};
var explore = new MenuItem();
explore.Header = "Open Container Folder";
explore.Click += (o, ev) => {
Process.Start(repo.Path);
ev.Handled = true;
};
var delete = new MenuItem();
delete.Header = "Delete";
delete.Click += (o, ev) => {
App.Preference.RemoveRepository(repo.Path);
UpdateRecentOpened();
UpdateTree();
HideBrief();
ev.Handled = true;
};
var menu = new ContextMenu();
menu.Items.Add(open);
menu.Items.Add(explore);
menu.Items.Add(delete);
menu.IsOpen = true;
e.Handled = true;
}
#endregion
#region EVENT_TREEVIEW
@ -299,6 +335,7 @@ namespace SourceGit.UI {
delete.Header = "Delete";
delete.Click += (o, ev) => {
DeleteNode(node);
HideBrief();
ev.Handled = true;
};
@ -364,10 +401,6 @@ namespace SourceGit.UI {
private void HideBrief() {
briefMask.Visibility = Visibility.Visible;
}
private void OpenRepo(object sender, RoutedEventArgs e) {
CheckAndOpenRepo(repoPath.Content as string);
}
#endregion
#region PRIVATES