예제 #1
0
            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 });
            }
 public bool Merge()
 {
     return(UICommands.StartMergeBranchDialog(TreeViewNode.TreeView, FullPath));
 }