@@ -262,7 +262,8 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
262262 menu . Items . Add ( diffWithMerger ) ;
263263 menu . Items . Add ( new MenuItem { Header = "-" } ) ;
264264
265- if ( File . Exists ( Path . Combine ( _repo . FullPath , change . Path ) ) )
265+ var fullPath = Path . Combine ( _repo . FullPath , change . Path ) ;
266+ if ( File . Exists ( fullPath ) )
266267 {
267268 var resetToThisRevision = new MenuItem ( ) ;
268269 resetToThisRevision . Header = App . Text ( "ChangeCM.CheckoutThisRevision" ) ;
@@ -283,9 +284,20 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
283284 ev . Handled = true ;
284285 } ;
285286
287+ var explore = new MenuItem ( ) ;
288+ explore . Header = App . Text ( "RevealFile" ) ;
289+ explore . Icon = App . CreateMenuIcon ( "Icons.Explore" ) ;
290+ explore . Click += ( _ , ev ) =>
291+ {
292+ Native . OS . OpenInFileManager ( fullPath , true ) ;
293+ ev . Handled = true ;
294+ } ;
295+
286296 menu . Items . Add ( resetToThisRevision ) ;
287297 menu . Items . Add ( resetToFirstParent ) ;
288298 menu . Items . Add ( new MenuItem { Header = "-" } ) ;
299+ menu . Items . Add ( explore ) ;
300+ menu . Items . Add ( new MenuItem { Header = "-" } ) ;
289301 }
290302
291303 if ( change . Index != Models . ChangeState . Deleted )
@@ -308,22 +320,10 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
308320 var window = new Views . Blame ( ) { DataContext = new Blame ( _repo . FullPath , change . Path , _commit . SHA ) } ;
309321 window . Show ( ) ;
310322 ev . Handled = true ;
311- } ;
312-
313- var full = Path . GetFullPath ( Path . Combine ( _repo . FullPath , change . Path ) ) ;
314- var explore = new MenuItem ( ) ;
315- explore . Header = App . Text ( "RevealFile" ) ;
316- explore . Icon = App . CreateMenuIcon ( "Icons.Explore" ) ;
317- explore . IsEnabled = File . Exists ( full ) ;
318- explore . Click += ( _ , ev ) =>
319- {
320- Native . OS . OpenInFileManager ( full , true ) ;
321- ev . Handled = true ;
322- } ;
323+ } ;
323324
324325 menu . Items . Add ( history ) ;
325326 menu . Items . Add ( blame ) ;
326- menu . Items . Add ( explore ) ;
327327 menu . Items . Add ( new MenuItem { Header = "-" } ) ;
328328 }
329329
@@ -352,34 +352,25 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
352352
353353 public ContextMenu CreateRevisionFileContextMenu ( Models . Object file )
354354 {
355- var history = new MenuItem ( ) ;
356- history . Header = App . Text ( "FileHistory" ) ;
357- history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
358- history . Click += ( _ , ev ) =>
359- {
360- var window = new Views . FileHistories ( ) { DataContext = new FileHistories ( _repo , file . Path ) } ;
361- window . Show ( ) ;
362- ev . Handled = true ;
363- } ;
355+ var fullPath = Path . Combine ( _repo . FullPath , file . Path ) ;
364356
365- var blame = new MenuItem ( ) ;
366- blame . Header = App . Text ( "Blame " ) ;
367- blame . Icon = App . CreateMenuIcon ( "Icons.Blame " ) ;
368- blame . IsEnabled = file . Type == Models . ObjectType . Blob ;
369- blame . Click += ( _ , ev ) =>
357+ var resetToThisRevision = new MenuItem ( ) ;
358+ resetToThisRevision . Header = App . Text ( "ChangeCM.CheckoutThisRevision " ) ;
359+ resetToThisRevision . Icon = App . CreateMenuIcon ( "Icons.File.Checkout " ) ;
360+ resetToThisRevision . IsEnabled = File . Exists ( fullPath ) ;
361+ resetToThisRevision . Click += ( _ , ev ) =>
370362 {
371- var window = new Views . Blame ( ) { DataContext = new Blame ( _repo . FullPath , file . Path , _commit . SHA ) } ;
372- window . Show ( ) ;
363+ new Commands . Checkout ( _repo . FullPath ) . FileWithRevision ( file . Path , $ "{ _commit . SHA } ") ;
373364 ev . Handled = true ;
374365 } ;
375366
376- var full = Path . GetFullPath ( Path . Combine ( _repo . FullPath , file . Path ) ) ;
377367 var explore = new MenuItem ( ) ;
378368 explore . Header = App . Text ( "RevealFile" ) ;
379369 explore . Icon = App . CreateMenuIcon ( "Icons.Explore" ) ;
370+ explore . IsEnabled = File . Exists ( fullPath ) ;
380371 explore . Click += ( _ , ev ) =>
381372 {
382- Native . OS . OpenInFileManager ( full , file . Type == Models . ObjectType . Blob ) ;
373+ Native . OS . OpenInFileManager ( fullPath , file . Type == Models . ObjectType . Blob ) ;
383374 ev . Handled = true ;
384375 } ;
385376
@@ -404,6 +395,27 @@ public ContextMenu CreateRevisionFileContextMenu(Models.Object file)
404395 ev . Handled = true ;
405396 } ;
406397
398+ var history = new MenuItem ( ) ;
399+ history . Header = App . Text ( "FileHistory" ) ;
400+ history . Icon = App . CreateMenuIcon ( "Icons.Histories" ) ;
401+ history . Click += ( _ , ev ) =>
402+ {
403+ var window = new Views . FileHistories ( ) { DataContext = new FileHistories ( _repo , file . Path ) } ;
404+ window . Show ( ) ;
405+ ev . Handled = true ;
406+ } ;
407+
408+ var blame = new MenuItem ( ) ;
409+ blame . Header = App . Text ( "Blame" ) ;
410+ blame . Icon = App . CreateMenuIcon ( "Icons.Blame" ) ;
411+ blame . IsEnabled = file . Type == Models . ObjectType . Blob ;
412+ blame . Click += ( _ , ev ) =>
413+ {
414+ var window = new Views . Blame ( ) { DataContext = new Blame ( _repo . FullPath , file . Path , _commit . SHA ) } ;
415+ window . Show ( ) ;
416+ ev . Handled = true ;
417+ } ;
418+
407419 var copyPath = new MenuItem ( ) ;
408420 copyPath . Header = App . Text ( "CopyPath" ) ;
409421 copyPath . Icon = App . CreateMenuIcon ( "Icons.Copy" ) ;
@@ -423,10 +435,14 @@ public ContextMenu CreateRevisionFileContextMenu(Models.Object file)
423435 } ;
424436
425437 var menu = new ContextMenu ( ) ;
426- menu . Items . Add ( history ) ;
427- menu . Items . Add ( blame ) ;
438+ menu . Items . Add ( resetToThisRevision ) ;
439+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
428440 menu . Items . Add ( explore ) ;
429441 menu . Items . Add ( saveAs ) ;
442+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
443+ menu . Items . Add ( history ) ;
444+ menu . Items . Add ( blame ) ;
445+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
430446 menu . Items . Add ( copyPath ) ;
431447 menu . Items . Add ( copyFileName ) ;
432448 return menu ;
0 commit comments