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"; }); } }
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); }; }