/// <summary>Create <see cref="CreateBranchDialog"/>.</summary> /// <param name="repository"><see cref="Repository"/> to create <see cref="Branch"/> in.</param> /// <exception cref="ArgumentNullException"><paramref name="repository"/> == <c>null</c>.</exception> public CreateBranchDialog(Repository repository) { Verify.Argument.IsNotNull(repository, nameof(repository)); _repository = repository; InitializeComponent(); Localize(); var inputs = new IUserInputSource[] { BranchName = new TextBoxInputSource(_txtName), StartingRevision = new ControlInputSource(_txtRevision), Checkout = new CheckBoxInputSource(_chkCheckoutAfterCreation), Orphan = new CheckBoxInputSource(_chkOrphan), CreateReflog = new CheckBoxInputSource(_chkCreateReflog), TrackingMode = new RadioButtonGroupInputSource <BranchTrackingMode>( new[] { Tuple.Create(_trackingDefault, BranchTrackingMode.Default), Tuple.Create(_trackingTrack, BranchTrackingMode.Tracking), Tuple.Create(_trackingDoNotTrack, BranchTrackingMode.NotTracking), }), }; ErrorNotifier = new UserInputErrorNotifier(NotificationService, inputs); SetupReferenceNameInputBox(_txtName, ReferenceType.LocalBranch); var logallrefupdates = _repository.Configuration.TryGetParameterValue(GitConstants.CoreLogAllRefUpdatesParameter); if (logallrefupdates != null && logallrefupdates == "true") { _chkCreateReflog.Checked = true; _chkCreateReflog.Enabled = false; } ToolTipService.Register(_chkCheckoutAfterCreation, Resources.TipCheckoutAfterCreation); ToolTipService.Register(_chkOrphan, Resources.TipOrphan); ToolTipService.Register(_chkCreateReflog, Resources.TipReflog); ToolTipService.Register(_trackingTrack, Resources.TipTrack); _txtRevision.References.LoadData( _repository, ReferenceType.Reference, GlobalBehavior.GroupReferences, GlobalBehavior.GroupRemoteBranches); _txtRevision.References.Items[0].IsExpanded = true; GitterApplication.FontManager.InputFont.Apply(_txtName, _txtRevision); GlobalBehavior.SetupAutoCompleteSource(_txtRevision, _repository, ReferenceType.Branch); _controller = new CreateBranchController(repository) { View = this }; }