@@ -53,40 +53,47 @@ private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e
5353 e . Handled = true ;
5454 } ;
5555
56- var selectedFolder = selection . IsSingleFolder ;
57- var fullPathOfFolder = selectedFolder ? vm . GetAbsPath ( selection . SingleFolderPath ) : null ;
58- var relativePathOfFolder = selectedFolder ? selection . SingleFolderPath : null ;
56+ var selectedSingleFolder = selection . IsSingleFolder ;
57+ var fullPathOfFolder = selectedSingleFolder ? vm . GetAbsPath ( selection . SingleFolderPath ) : null ;
58+ var relativePathOfFolder = selectedSingleFolder ? selection . SingleFolderPath : null ;
5959
6060 var menu = new ContextMenu ( ) ;
6161 if ( selection . Count == 1 )
6262 {
6363 var change = selection . Changes [ 0 ] ;
6464 var changeFullPath = vm . GetAbsPath ( change . Path ) ;
6565
66- var openWithMerger = new MenuItem ( ) ;
67- openWithMerger . Header = App . Text ( "OpenInExternalMergeTool" ) ;
68- openWithMerger . Icon = this . CreateMenuIcon ( "Icons.OpenWith" ) ;
69- openWithMerger . Tag = OperatingSystem . IsMacOS ( ) ? "⌘+⇧+D" : "Ctrl+Shift+D" ;
70- openWithMerger . IsVisible = ! selectedFolder ;
71- openWithMerger . Click += ( _ , ev ) =>
66+ if ( ! selection . HasFolder )
7267 {
73- vm . OpenInExternalDiffTool ( change ) ;
74- ev . Handled = true ;
75- } ;
68+ var openWithMerger = new MenuItem ( ) ;
69+ openWithMerger . Header = App . Text ( "OpenInExternalMergeTool" ) ;
70+ openWithMerger . Icon = this . CreateMenuIcon ( "Icons.OpenWith" ) ;
71+ openWithMerger . Tag = OperatingSystem . IsMacOS ( ) ? "⌘+⇧+D" : "Ctrl+Shift+D" ;
72+ openWithMerger . Click += ( _ , ev ) =>
73+ {
74+ vm . OpenInExternalDiffTool ( change ) ;
75+ ev . Handled = true ;
76+ } ;
77+ menu . Items . Add ( openWithMerger ) ;
78+ }
7679
77- var explore = new MenuItem ( ) ;
78- explore . Header = App . Text ( "RevealFile" ) ;
79- explore . Icon = this . CreateMenuIcon ( "Icons.Explore" ) ;
80- explore . IsEnabled = selectedFolder ? Directory . Exists ( fullPathOfFolder ) : File . Exists ( changeFullPath ) ;
81- explore . Click += ( _ , ev ) =>
80+ if ( ! selection . HasFolder || selectedSingleFolder )
8281 {
83- Native . OS . OpenInFileManager ( selectedFolder ? fullPathOfFolder : changeFullPath ) ;
84- ev . Handled = true ;
85- } ;
82+ var explore = new MenuItem ( ) ;
83+ explore . Header = App . Text ( "RevealFile" ) ;
84+ explore . Icon = this . CreateMenuIcon ( "Icons.Explore" ) ;
85+ explore . IsEnabled = selectedSingleFolder ? Directory . Exists ( fullPathOfFolder ) : File . Exists ( changeFullPath ) ;
86+ explore . Click += ( _ , ev ) =>
87+ {
88+ Native . OS . OpenInFileManager ( selectedSingleFolder ? fullPathOfFolder : changeFullPath ) ;
89+ ev . Handled = true ;
90+ } ;
91+ menu . Items . Add ( explore ) ;
92+ }
93+
94+ if ( menu . Items . Count > 0 )
95+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
8696
87- menu . Items . Add ( openWithMerger ) ;
88- menu . Items . Add ( explore ) ;
89- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
9097 menu . Items . Add ( patch ) ;
9198
9299 if ( vm . CanResetFiles )
@@ -120,7 +127,7 @@ private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e
120127 copyPath . Tag = OperatingSystem . IsMacOS ( ) ? "⌘+C" : "Ctrl+C" ;
121128 copyPath . Click += async ( _ , ev ) =>
122129 {
123- await this . CopyTextAsync ( selectedFolder ? relativePathOfFolder : change . Path ) ;
130+ await this . CopyTextAsync ( selectedSingleFolder ? relativePathOfFolder : change . Path ) ;
124131 ev . Handled = true ;
125132 } ;
126133
@@ -130,7 +137,7 @@ private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e
130137 copyFullPath . Tag = OperatingSystem . IsMacOS ( ) ? "⌘+⇧+C" : "Ctrl+Shift+C" ;
131138 copyFullPath . Click += async ( _ , ev ) =>
132139 {
133- await this . CopyTextAsync ( selectedFolder ? fullPathOfFolder : changeFullPath ) ;
140+ await this . CopyTextAsync ( selectedSingleFolder ? fullPathOfFolder : changeFullPath ) ;
134141 ev . Handled = true ;
135142 } ;
136143
@@ -140,7 +147,7 @@ private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e
140147 }
141148 else
142149 {
143- if ( selectedFolder )
150+ if ( selectedSingleFolder )
144151 {
145152 var explore = new MenuItem ( ) ;
146153 explore . Header = App . Text ( "RevealFile" ) ;
@@ -189,7 +196,7 @@ private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e
189196 copyPath . Tag = OperatingSystem . IsMacOS ( ) ? "⌘+C" : "Ctrl+C" ;
190197 copyPath . Click += async ( _ , ev ) =>
191198 {
192- if ( selectedFolder )
199+ if ( selectedSingleFolder )
193200 {
194201 await this . CopyTextAsync ( relativePathOfFolder ) ;
195202 }
@@ -211,7 +218,7 @@ private void OnChangeContextRequested(object sender, ContextRequestedEventArgs e
211218 copyFullPath . Tag = OperatingSystem . IsMacOS ( ) ? "⌘+⇧+C" : "Ctrl+Shift+C" ;
212219 copyFullPath . Click += async ( _ , ev ) =>
213220 {
214- if ( selectedFolder )
221+ if ( selectedSingleFolder )
215222 {
216223 await this . CopyTextAsync ( fullPathOfFolder ) ;
217224 }
0 commit comments