public GetCloneFromInternetDialog(GetCloneFromInternetModel model)
        {
            _model = model;
            //#if !MONO
            Font = SystemFonts.MessageBoxFont;
            //#endif
            InitializeComponent();

            Font = SystemFonts.MessageBoxFont;

            _backgroundWorker = new BackgroundWorker();
            _backgroundWorker.WorkerSupportsCancellation = true;
            _backgroundWorker.RunWorkerCompleted += _backgroundWorker_RunWorkerCompleted;
            _backgroundWorker.DoWork += _backgroundWorker_DoWork;

            _logBox.ShowCopyToClipboardMenuItem = true;
            _logBox.ShowDetailsMenuItem = true;
            _logBox.ShowDiagnosticsMenuItem = true;
            _logBox.ShowFontMenuItem = true;

            _model.AddProgress(_statusProgress);
            _statusProgress.Text = "";
            _statusProgress.Visible = false;
            _model.AddMessageProgress(_logBox);
            _model.ProgressIndicator = _progressBar;
            _model.UIContext = SynchronizationContext.Current;

            _serverSettingsControl = new ServerSettingsControl(){Model=_model};
            _serverSettingsControl.TabIndex = 0;
            _serverSettingsControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left);
            Controls.Add(_serverSettingsControl);

            _targetFolderControl = new TargetFolderControl(_model);
            _targetFolderControl.Anchor = (AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
            _targetFolderControl._downloadButton.Click+=OnDownloadClick;
            _targetFolderControl.Location = new Point(0, _serverSettingsControl.Height +10);
            MinimumSize = new Size(_targetFolderControl.MinimumSize.Width+20, _targetFolderControl.Bottom +20);
            if (_targetFolderControl.Bottom +30> Bottom)
            {
                this.Size = new Size(this.Width,_targetFolderControl.Bottom + 30);
            }
            _targetFolderControl.TabIndex = 1;
            this.Controls.Add(_targetFolderControl);
            _okButton.TabIndex = 90;
            _cancelButton.TabIndex = 91;

            _fixSettingsButton.Left = _cancelButton.Left;
             _targetFolderControl._downloadButton.Top = _okButton.Top-_targetFolderControl.Top	;
             _targetFolderControl._downloadButton.Left = _okButton.Left - 15;

            _logBox.GetDiagnosticsMethod = (progress) =>
                                           	{
                                                var hg = new HgRepository(PathToNewlyClonedFolder, progress);
                                                hg.GetDiagnosticInformationForRemoteProject(progress, ThreadSafeUrl);
                                           	};
        }
 public void UpdateDisplay_BadModelDoesNotThrow()
 {
     using (var testFolder = new TemporaryFolder("clonetest"))
     {
         var model = new GetCloneFromInternetModel(testFolder.Path);
         model.AccountName = "account";
         model.Password = "******";
         model.ProjectId = "id";
         model.LocalFolderName = "Some<Folder";
         var ctrl = new TargetFolderControl(model);
         Assert.DoesNotThrow(() => { ctrl._localFolderName.Text = "Some<Folders"; });
     }
 }
Example #3
0
        public GetCloneFromInternetDialog(GetCloneFromInternetModel model)
        {
            _model = model;
            Font   = SystemFonts.MessageBoxFont;
            InitializeComponent();

            Font = SystemFonts.MessageBoxFont;

            _backgroundWorker = new BackgroundWorker();
            _backgroundWorker.WorkerSupportsCancellation = true;
            _backgroundWorker.RunWorkerCompleted        += _backgroundWorker_RunWorkerCompleted;
            _backgroundWorker.DoWork += _backgroundWorker_DoWork;

            _logBox.ShowCopyToClipboardMenuItem = true;
            _logBox.ShowDetailsMenuItem         = true;
            _logBox.ShowDiagnosticsMenuItem     = true;
            _logBox.ShowFontMenuItem            = true;


            _model.AddProgress(_statusProgress);
            _statusProgress.Text    = "";
            _statusProgress.Visible = false;
            _model.AddMessageProgress(_logBox);
            _model.ProgressIndicator = _progressBar;
            _model.UIContext         = SynchronizationContext.Current;

            _serverSettingsControl = new ServerSettingsControl()
            {
                Model = _model
            };
            _serverSettingsControl.TabIndex = 0;
            _serverSettingsControl.Anchor   = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
            Controls.Add(_serverSettingsControl);

            _targetFolderControl        = new TargetFolderControl(_model);
            _targetFolderControl.Anchor = (AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
            _targetFolderControl._downloadButton.Click += OnDownloadClick;
            _targetFolderControl.Location = new Point(0, _serverSettingsControl.Height + 10);
            var minimumWidth = Math.Max(_serverSettingsControl.MinimumSize.Width, _targetFolderControl.MinimumSize.Width) + 20;

            MinimumSize = new Size(minimumWidth, _targetFolderControl.Bottom + 20);
            // On Linux, we have to set the dialog width, then set the control width back to what it had been. TODO: different order
            var sscWidth = _serverSettingsControl.Width;

            Width = sscWidth + 30;
            _serverSettingsControl.Width = sscWidth;
            if (_targetFolderControl.Bottom + 30 > Bottom)
            {
                this.Size = new Size(this.Width, _targetFolderControl.Bottom + 30);
            }
            _targetFolderControl.TabIndex = 1;
            this.Controls.Add(_targetFolderControl);
            _okButton.TabIndex     = 90;
            _cancelButton.TabIndex = 91;

            _fixSettingsButton.Left = _cancelButton.Left;
            var fixBtnWidth = _fixSettingsButton.Width;

            _fixSettingsButton.AutoSize = true;
            if (_fixSettingsButton.Width > fixBtnWidth)
            {
                // The button was too small before autosizing, but now it may extend off the dialog...
                var diff = _fixSettingsButton.Width - fixBtnWidth;
                if (diff < _cancelButton.Left)
                {
                    _fixSettingsButton.Left = _cancelButton.Left - diff;
                }
            }
            _targetFolderControl._downloadButton.Top  = _okButton.Top - _targetFolderControl.Top;
            _targetFolderControl._downloadButton.Left = _okButton.Left - 15;

            _logBox.GetDiagnosticsMethod = (progress) =>
            {
                var hg = new HgRepository(PathToNewlyClonedFolder, progress);
                hg.GetDiagnosticInformationForRemoteProject(progress, ThreadSafeUrl);
            };
        }