@@ -301,45 +301,8 @@ private void OnTreeGUI(Rect rect)
301
301
302
302
rect = treeRemotes . Render ( rect , scroll ,
303
303
node => { } ,
304
- selectedNode =>
305
- {
306
- var indexOfFirstSlash = selectedNode . Name . IndexOf ( '/' ) ;
307
- var originName = selectedNode . Name . Substring ( 0 , indexOfFirstSlash ) ;
308
- var branchName = selectedNode . Name . Substring ( indexOfFirstSlash + 1 ) ;
309
-
310
- if ( Repository . LocalBranches . Any ( localBranch => localBranch . Name == branchName ) )
311
- {
312
- EditorUtility . DisplayDialog ( WarningCheckoutBranchExistsTitle ,
313
- String . Format ( WarningCheckoutBranchExistsMessage , branchName ) ,
314
- WarningCheckoutBranchExistsOK ) ;
315
- }
316
- else
317
- {
318
- var confirmCheckout = EditorUtility . DisplayDialog ( ConfirmCheckoutBranchTitle ,
319
- String . Format ( ConfirmCheckoutBranchMessage , selectedNode . Name , originName ) ,
320
- ConfirmCheckoutBranchOK ,
321
- ConfirmCheckoutBranchCancel ) ;
322
-
323
- if ( confirmCheckout )
324
- {
325
- GitClient
326
- . CreateBranch ( branchName , selectedNode . Name )
327
- . FinallyInUI ( ( success , e ) =>
328
- {
329
- if ( success )
330
- {
331
- Redraw ( ) ;
332
- }
333
- else
334
- {
335
- EditorUtility . DisplayDialog ( Localization . SwitchBranchTitle ,
336
- String . Format ( Localization . SwitchBranchFailedDescription , selectedNode . Name ) ,
337
- Localization . Ok ) ;
338
- }
339
- } )
340
- . Start ( ) ;
341
- }
342
- }
304
+ selectedNode => {
305
+ CheckoutRemoteBranch ( selectedNode . Name ) ;
343
306
} ,
344
307
node => {
345
308
GenericMenu menu = CreateContextMenuForRemoteBranchNode ( node ) ;
@@ -362,6 +325,40 @@ private void OnTreeGUI(Rect rect)
362
325
GUILayout . Space ( rect . y - initialRect . y ) ;
363
326
}
364
327
328
+ private void CheckoutRemoteBranch ( string selectedNodeName )
329
+ {
330
+ var indexOfFirstSlash = selectedNodeName . IndexOf ( '/' ) ;
331
+ var originName = selectedNodeName . Substring ( 0 , indexOfFirstSlash ) ;
332
+ var branchName = selectedNodeName . Substring ( indexOfFirstSlash + 1 ) ;
333
+
334
+ if ( Repository . LocalBranches . Any ( localBranch => localBranch . Name == branchName ) )
335
+ {
336
+ EditorUtility . DisplayDialog ( WarningCheckoutBranchExistsTitle ,
337
+ String . Format ( WarningCheckoutBranchExistsMessage , branchName ) , WarningCheckoutBranchExistsOK ) ;
338
+ }
339
+ else
340
+ {
341
+ var confirmCheckout = EditorUtility . DisplayDialog ( ConfirmCheckoutBranchTitle ,
342
+ String . Format ( ConfirmCheckoutBranchMessage , selectedNodeName , originName ) , ConfirmCheckoutBranchOK ,
343
+ ConfirmCheckoutBranchCancel ) ;
344
+
345
+ if ( confirmCheckout )
346
+ {
347
+ GitClient . CreateBranch ( branchName , selectedNodeName ) . FinallyInUI ( ( success , e ) => {
348
+ if ( success )
349
+ {
350
+ Redraw ( ) ;
351
+ }
352
+ else
353
+ {
354
+ EditorUtility . DisplayDialog ( Localization . SwitchBranchTitle ,
355
+ String . Format ( Localization . SwitchBranchFailedDescription , selectedNodeName ) , Localization . Ok ) ;
356
+ }
357
+ } ) . Start ( ) ;
358
+ }
359
+ }
360
+ }
361
+
365
362
private GenericMenu CreateContextMenuForLocalBranchNode ( TreeNode node )
366
363
{
367
364
var genericMenu = new GenericMenu ( ) ;
@@ -420,6 +417,12 @@ private GenericMenu CreateContextMenuForRemoteBranchNode(TreeNode node)
420
417
{
421
418
var genericMenu = new GenericMenu ( ) ;
422
419
420
+ var checkoutGuiContent = new GUIContent ( "Checkout" ) ;
421
+
422
+ genericMenu . AddItem ( checkoutGuiContent , false , ( ) => {
423
+ CheckoutRemoteBranch ( node . Name ) ;
424
+ } ) ;
425
+
423
426
return genericMenu ;
424
427
}
425
428
0 commit comments