1
1
using System ;
2
2
using System . Collections . Generic ;
3
3
using System . IO ;
4
+ using System . Linq ;
4
5
using System . Text . RegularExpressions ;
5
6
using System . Threading . Tasks ;
6
7
@@ -270,25 +271,6 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
270
271
var fullPath = Path . Combine ( _repo . FullPath , change . Path ) ;
271
272
if ( File . Exists ( fullPath ) )
272
273
{
273
- var resetToThisRevision = new MenuItem ( ) ;
274
- resetToThisRevision . Header = App . Text ( "ChangeCM.CheckoutThisRevision" ) ;
275
- resetToThisRevision . Icon = App . CreateMenuIcon ( "Icons.File.Checkout" ) ;
276
- resetToThisRevision . Click += ( _ , ev ) =>
277
- {
278
- new Commands . Checkout ( _repo . FullPath ) . FileWithRevision ( change . Path , $ "{ _commit . SHA } ") ;
279
- ev . Handled = true ;
280
- } ;
281
-
282
- var resetToFirstParent = new MenuItem ( ) ;
283
- resetToFirstParent . Header = App . Text ( "ChangeCM.CheckoutFirstParentRevision" ) ;
284
- resetToFirstParent . Icon = App . CreateMenuIcon ( "Icons.File.Checkout" ) ;
285
- resetToFirstParent . IsEnabled = _commit . Parents . Count > 0 && change . Index != Models . ChangeState . Added && change . Index != Models . ChangeState . Renamed ;
286
- resetToFirstParent . Click += ( _ , ev ) =>
287
- {
288
- new Commands . Checkout ( _repo . FullPath ) . FileWithRevision ( change . Path , $ "{ _commit . SHA } ~1") ;
289
- ev . Handled = true ;
290
- } ;
291
-
292
274
var explore = new MenuItem ( ) ;
293
275
explore . Header = App . Text ( "RevealFile" ) ;
294
276
explore . Icon = App . CreateMenuIcon ( "Icons.Explore" ) ;
@@ -298,8 +280,6 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
298
280
ev . Handled = true ;
299
281
} ;
300
282
301
- menu . Items . Add ( resetToThisRevision ) ;
302
- menu . Items . Add ( resetToFirstParent ) ;
303
283
menu . Items . Add ( new MenuItem { Header = "-" } ) ;
304
284
menu . Items . Add ( explore ) ;
305
285
menu . Items . Add ( new MenuItem { Header = "-" } ) ;
@@ -332,6 +312,29 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
332
312
menu . Items . Add ( new MenuItem { Header = "-" } ) ;
333
313
}
334
314
315
+ var resetToThisRevision = new MenuItem ( ) ;
316
+ resetToThisRevision . Header = App . Text ( "ChangeCM.CheckoutThisRevision" ) ;
317
+ resetToThisRevision . Icon = App . CreateMenuIcon ( "Icons.File.Checkout" ) ;
318
+ resetToThisRevision . Click += ( _ , ev ) =>
319
+ {
320
+ new Commands . Checkout ( _repo . FullPath ) . FileWithRevision ( change . Path , $ "{ _commit . SHA } ") ;
321
+ ev . Handled = true ;
322
+ } ;
323
+
324
+ var resetToFirstParent = new MenuItem ( ) ;
325
+ resetToFirstParent . Header = App . Text ( "ChangeCM.CheckoutFirstParentRevision" ) ;
326
+ resetToFirstParent . Icon = App . CreateMenuIcon ( "Icons.File.Checkout" ) ;
327
+ resetToFirstParent . IsEnabled = _commit . Parents . Count > 0 ;
328
+ resetToFirstParent . Click += ( _ , ev ) =>
329
+ {
330
+ if ( change . Index == Models . ChangeState . Renamed )
331
+ {
332
+ new Commands . Checkout ( _repo . FullPath ) . FileWithRevision ( change . OriginalPath , $ "{ _commit . SHA } ~1") ;
333
+ }
334
+ new Commands . Checkout ( _repo . FullPath ) . FileWithRevision ( change . Path , $ "{ _commit . SHA } ~1") ;
335
+ ev . Handled = true ;
336
+ } ;
337
+
335
338
var copyPath = new MenuItem ( ) ;
336
339
copyPath . Header = App . Text ( "CopyPath" ) ;
337
340
copyPath . Icon = App . CreateMenuIcon ( "Icons.Copy" ) ;
@@ -340,7 +343,6 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
340
343
App . CopyText ( change . Path ) ;
341
344
ev . Handled = true ;
342
345
} ;
343
- menu . Items . Add ( copyPath ) ;
344
346
345
347
var copyFileName = new MenuItem ( ) ;
346
348
copyFileName . Header = App . Text ( "CopyFileName" ) ;
@@ -350,6 +352,11 @@ public ContextMenu CreateChangeContextMenu(Models.Change change)
350
352
App . CopyText ( Path . GetFileName ( change . Path ) ) ;
351
353
e . Handled = true ;
352
354
} ;
355
+
356
+ menu . Items . Add ( resetToThisRevision ) ;
357
+ menu . Items . Add ( resetToFirstParent ) ;
358
+ menu . Items . Add ( new MenuItem { Header = "-" } ) ;
359
+ menu . Items . Add ( copyPath ) ;
353
360
menu . Items . Add ( copyFileName ) ;
354
361
355
362
return menu ;
@@ -369,6 +376,18 @@ public ContextMenu CreateRevisionFileContextMenu(Models.Object file)
369
376
ev . Handled = true ;
370
377
} ;
371
378
379
+ var resetToFirstParent = new MenuItem ( ) ;
380
+ resetToFirstParent . Header = App . Text ( "ChangeCM.CheckoutFirstParentRevision" ) ;
381
+ resetToFirstParent . Icon = App . CreateMenuIcon ( "Icons.File.Checkout" ) ;
382
+ var fileInChanges = _changes . Find ( x => x . Path == file . Path ) ;
383
+ var fileIndex = fileInChanges ? . Index ;
384
+ resetToFirstParent . IsEnabled = _commit . Parents . Count > 0 && fileIndex != Models . ChangeState . Renamed ;
385
+ resetToFirstParent . Click += ( _ , ev ) =>
386
+ {
387
+ new Commands . Checkout ( _repo . FullPath ) . FileWithRevision ( file . Path , $ "{ _commit . SHA } ~1") ;
388
+ ev . Handled = true ;
389
+ } ;
390
+
372
391
var explore = new MenuItem ( ) ;
373
392
explore . Header = App . Text ( "RevealFile" ) ;
374
393
explore . Icon = App . CreateMenuIcon ( "Icons.Explore" ) ;
@@ -448,6 +467,7 @@ public ContextMenu CreateRevisionFileContextMenu(Models.Object file)
448
467
449
468
var menu = new ContextMenu ( ) ;
450
469
menu . Items . Add ( resetToThisRevision ) ;
470
+ menu . Items . Add ( resetToFirstParent ) ;
451
471
menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
452
472
menu . Items . Add ( explore ) ;
453
473
menu . Items . Add ( saveAs ) ;
0 commit comments