protected override IEnumerable <DragDropAction> CreateDragDropActions() { var stashDD = new DragDropAction <StashNode>( (draggedStash) => IsActive, (draggedStash) => { // normal -> Pop // Alt -> Apply UiCommands.StartStashDialog(); }); var branchDD = new DragDropAction <BranchNode>(draggedBranch => { string activeBranch = UiCommands.Module.GetSelectedBranch(); if (Equals(FullPath, activeBranch)) {// target is active -> merge dropped return(true); } if (Equals(draggedBranch.FullPath, activeBranch)) {// dragged is active -> merge dragged return(true); } return(false); }, draggedBranch => { string activeBranch = UiCommands.Module.GetSelectedBranch(); if (Equals(FullPath, activeBranch)) {// target is active -> merge dropped UiCommands.StartMergeBranchDialog(draggedBranch.FullPath); } if (Equals(draggedBranch.FullPath, activeBranch)) {// dropped is active -> merge target UiCommands.StartMergeBranchDialog(FullPath); } }); return(new DragDropAction[] { stashDD, branchDD, }); }
/// <summary>Checkout the branch.</summary> internal override void OnDoubleClick() { base.OnDoubleClick(); UiCommands.StartCheckoutBranchDialog(FullPath); }