@@ -517,32 +517,50 @@ private void OnTreeContextRequested(object _1, ContextRequestedEventArgs _2)
517517 var menu = branch . IsLocal ? CreateContextMenuForLocalBranch ( repo , branch ) : CreateContextMenuForRemoteBranch ( repo , branch ) ;
518518 menu . Open ( this ) ;
519519 }
520- else if ( branches . Find ( x => x . IsCurrent ) == null )
520+ else
521521 {
522522 var menu = new ContextMenu ( ) ;
523523
524- var mergeMulti = new MenuItem ( ) ;
525- mergeMulti . Header = App . Text ( "BranchCM.MergeMultiBranches" , branches . Count ) ;
526- mergeMulti . Icon = App . CreateMenuIcon ( "Icons.Merge" ) ;
527- mergeMulti . Click += ( _ , ev ) =>
524+ if ( branches . Count == 2 )
528525 {
529- repo . MergeMultipleBranches ( branches ) ;
530- ev . Handled = true ;
531- } ;
532- menu . Items . Add ( mergeMulti ) ;
533- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
526+ var compare = new MenuItem ( ) ;
527+ compare . Header = App . Text ( "BranchCM.CompareTwo" ) ;
528+ compare . Icon = App . CreateMenuIcon ( "Icons.Compare" ) ;
529+ compare . Click += ( _ , ev ) =>
530+ {
531+ App . ShowWindow ( new ViewModels . BranchCompare ( repo . FullPath , branches [ 0 ] , branches [ 1 ] ) ) ;
532+ ev . Handled = true ;
533+ } ;
534+ menu . Items . Add ( compare ) ;
535+ }
534536
535- var deleteMulti = new MenuItem ( ) ;
536- deleteMulti . Header = App . Text ( "BranchCM.DeleteMultiBranches" , branches . Count ) ;
537- deleteMulti . Icon = App . CreateMenuIcon ( "Icons.Clear" ) ;
538- deleteMulti . Click += ( _ , ev ) =>
537+ if ( branches . Find ( x => x . IsCurrent ) == null )
539538 {
540- repo . DeleteMultipleBranches ( branches , branches [ 0 ] . IsLocal ) ;
541- ev . Handled = true ;
542- } ;
543- menu . Items . Add ( deleteMulti ) ;
539+ var mergeMulti = new MenuItem ( ) ;
540+ mergeMulti . Header = App . Text ( "BranchCM.MergeMultiBranches" , branches . Count ) ;
541+ mergeMulti . Icon = App . CreateMenuIcon ( "Icons.Merge" ) ;
542+ mergeMulti . Click += ( _ , ev ) =>
543+ {
544+ repo . MergeMultipleBranches ( branches ) ;
545+ ev . Handled = true ;
546+ } ;
544547
545- menu . Open ( this ) ;
548+ var deleteMulti = new MenuItem ( ) ;
549+ deleteMulti . Header = App . Text ( "BranchCM.DeleteMultiBranches" , branches . Count ) ;
550+ deleteMulti . Icon = App . CreateMenuIcon ( "Icons.Clear" ) ;
551+ deleteMulti . Click += ( _ , ev ) =>
552+ {
553+ repo . DeleteMultipleBranches ( branches , branches [ 0 ] . IsLocal ) ;
554+ ev . Handled = true ;
555+ } ;
556+
557+ menu . Items . Add ( mergeMulti ) ;
558+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
559+ menu . Items . Add ( deleteMulti ) ;
560+ }
561+
562+ if ( menu . Items . Count > 0 )
563+ menu . Open ( this ) ;
546564 }
547565 }
548566
0 commit comments