public static PluginSettingsPage CreateSettingsPageFromPlugin(ISettingsPageHost aPageHost, IGitPlugin gitPlugin) { var result = SettingsPageBase.Create <PluginSettingsPage>(aPageHost); result._gitPlugin = gitPlugin; return(result); }
private void RunFormTest(Func <MockHost, Task> testDriverAsync) { UITest.RunForm( () => { _form = new MockHost(_referenceRepository.Module) { Size = new(800, 400) }; _settingsPage = SettingsPageBase.Create <BuildServerIntegrationSettingsPage>(_form); _settingsPage.Dock = DockStyle.Fill; _form.Controls.Add(_settingsPage); _form.ShowDialog(owner: null); }, testDriverAsync); }
private static void RunApplication() { string[] args = Environment.GetCommandLineArgs(); // This form created to obtain UI synchronization context only using (new Form()) { // Store the shared JoinableTaskContext ThreadHelper.JoinableTaskContext = new JoinableTaskContext(); } AppSettings.LoadSettings(); if (EnvUtils.RunningOnWindows()) { WebBrowserEmulationMode.SetBrowserFeatureControl(); FormFixHome.CheckHomePath(); } if (string.IsNullOrEmpty(AppSettings.Translation)) { using (var formChoose = new FormChooseTranslation()) { formChoose.ShowDialog(); } } try { // Ensure we can find the git command to execute, // unless we are being instructed to uninstall, // or AppSettings.CheckSettings is set to false. if (!(args.Length >= 2 && args[1] == "uninstall")) { if (!CheckSettingsLogic.SolveGitCommand()) { if (!LocateMissingGit()) { Environment.Exit(-1); return; } } if (AppSettings.CheckSettings) { var uiCommands = new GitUICommands(""); var commonLogic = new CommonLogic(uiCommands.Module); var checkSettingsLogic = new CheckSettingsLogic(commonLogic); var fakePageHost = new SettingsPageHostMock(checkSettingsLogic); using (var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(fakePageHost)) { if (!checklistSettingsPage.CheckSettings()) { if (!checkSettingsLogic.AutoSolveAllSettings()) { uiCommands.StartSettingsDialog(); } } } } } } catch { // TODO: remove catch-all } if (EnvUtils.RunningOnWindows()) { MouseWheelRedirector.Active = true; } var commands = new GitUICommands(GetWorkingDir(args)); if (args.Length <= 1) { commands.StartBrowseDialog(); } else { // if we are here args.Length > 1 commands.RunCommand(args); } AppSettings.SaveSettings(); }
private static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (!EnvUtils.IsMonoRuntime()) { try { NBug.Settings.UIMode = NBug.Enums.UIMode.Full; // Uncomment the following after testing to see that NBug is working as configured NBug.Settings.ReleaseMode = true; NBug.Settings.ExitApplicationImmediately = false; NBug.Settings.WriteLogToDisk = false; NBug.Settings.MaxQueuedReports = 10; NBug.Settings.StopReportingAfter = 90; NBug.Settings.SleepBeforeSend = 30; NBug.Settings.StoragePath = NBug.Enums.StoragePath.WindowsTemp; AppDomain.CurrentDomain.UnhandledException += NBug.Handler.UnhandledException; Application.ThreadException += NBug.Handler.ThreadException; } catch (TypeInitializationException tie) { // is this exception caused by the configuration? if (tie.InnerException != null && tie.InnerException.GetType() .IsSubclassOf(typeof(System.Configuration.ConfigurationException))) { HandleConfigurationException((System.Configuration.ConfigurationException)tie.InnerException); } } } string[] args = Environment.GetCommandLineArgs(); FormSplash.ShowSplash(); //Store here SynchronizationContext.Current, because later sometimes it can be null //see http://stackoverflow.com/questions/11621372/synchronizationcontext-current-is-null-in-continuation-on-the-main-ui-thread GitUIExtensions.UISynchronizationContext = SynchronizationContext.Current; AsyncLoader.DefaultContinuationTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext(); Application.DoEvents(); AppSettings.LoadSettings(); if (EnvUtils.RunningOnWindows()) { WebBrowserEmulationMode.SetBrowserFeatureControl(); //Quick HOME check: FormSplash.SetAction("Checking home path..."); Application.DoEvents(); FormFixHome.CheckHomePath(); } //Register plugins FormSplash.SetAction("Loading plugins..."); Application.DoEvents(); if (string.IsNullOrEmpty(AppSettings.Translation)) { using (var formChoose = new FormChooseTranslation()) { formChoose.ShowDialog(); } } try { if (!(args.Length >= 2 && args[1].Equals("uninstall")) && (AppSettings.CheckSettings || string.IsNullOrEmpty(AppSettings.GitCommandValue) || !File.Exists(AppSettings.GitCommandValue))) { FormSplash.SetAction("Checking settings..."); Application.DoEvents(); GitUICommands uiCommands = new GitUICommands(string.Empty); var commonLogic = new CommonLogic(uiCommands.Module); var checkSettingsLogic = new CheckSettingsLogic(commonLogic); ISettingsPageHost fakePageHost = new SettingsPageHostMock(checkSettingsLogic); using (var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(fakePageHost)) { if (!checklistSettingsPage.CheckSettings()) { if (!checkSettingsLogic.AutoSolveAllSettings()) { uiCommands.StartSettingsDialog(); } } } } } catch { // TODO: remove catch-all } FormSplash.HideSplash(); if (EnvUtils.RunningOnWindows()) { MouseWheelRedirector.Active = true; } GitUICommands uCommands = new GitUICommands(GetWorkingDir(args)); if (args.Length <= 1) { uCommands.StartBrowseDialog(); } else // if we are here args.Length > 1 { uCommands.RunCommand(args); } AppSettings.SaveSettings(); }
private static void RunApplication() { string[] args = Environment.GetCommandLineArgs(); // This form created for obtain UI synchronization context only using (new Form()) { // Store here SynchronizationContext.Current, because later sometimes it can be null // see http://stackoverflow.com/questions/11621372/synchronizationcontext-current-is-null-in-continuation-on-the-main-ui-thread GitUIExtensions.UISynchronizationContext = SynchronizationContext.Current; AsyncLoader.DefaultContinuationTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext(); } AppSettings.LoadSettings(); if (EnvUtils.RunningOnWindows()) { WebBrowserEmulationMode.SetBrowserFeatureControl(); FormFixHome.CheckHomePath(); } if (string.IsNullOrEmpty(AppSettings.Translation)) { using (var formChoose = new FormChooseTranslation()) { formChoose.ShowDialog(); } } try { if (!(args.Length >= 2 && args[1].Equals("uninstall")) && (AppSettings.CheckSettings || string.IsNullOrEmpty(AppSettings.GitCommandValue) || !File.Exists(AppSettings.GitCommandValue))) { GitUICommands uiCommands = new GitUICommands(string.Empty); var commonLogic = new CommonLogic(uiCommands.Module); var checkSettingsLogic = new CheckSettingsLogic(commonLogic); ISettingsPageHost fakePageHost = new SettingsPageHostMock(checkSettingsLogic); using (var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(fakePageHost)) { if (!checklistSettingsPage.CheckSettings()) { if (!checkSettingsLogic.AutoSolveAllSettings()) { uiCommands.StartSettingsDialog(); } } } } } catch { // TODO: remove catch-all } if (EnvUtils.RunningOnWindows()) { MouseWheelRedirector.Active = true; } GitUICommands commands = new GitUICommands(GetWorkingDir(args)); if (args.Length <= 1) { commands.StartBrowseDialog(); } else { // if we are here args.Length > 1 commands.RunCommand(args); } AppSettings.SaveSettings(); }
private static void RunApplication() { string[] args = Environment.GetCommandLineArgs(); // This form created to obtain UI synchronization context only using (new Form()) { // Store the shared JoinableTaskContext ThreadHelper.JoinableTaskContext = new JoinableTaskContext(); } AppSettings.LoadSettings(); if (EnvUtils.RunningOnWindows()) { WebBrowserEmulationMode.SetBrowserFeatureControl(); FormFixHome.CheckHomePath(); } if (string.IsNullOrEmpty(AppSettings.Translation)) { using (var formChoose = new FormChooseTranslation()) { formChoose.ShowDialog(); } } if (!AppSettings.TelemetryEnabled.HasValue) { AppSettings.TelemetryEnabled = MessageBox.Show(null, Strings.TelemetryPermissionMessage, Strings.TelemetryPermissionCaption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes; } try { // Ensure we can find the git command to execute, // unless we are being instructed to uninstall, // or AppSettings.CheckSettings is set to false. if (!(args.Length >= 2 && args[1] == "uninstall")) { if (!CheckSettingsLogic.SolveGitCommand()) { if (!LocateMissingGit()) { Environment.Exit(-1); return; } } if (AppSettings.CheckSettings) { var uiCommands = new GitUICommands(""); var commonLogic = new CommonLogic(uiCommands.Module); var checkSettingsLogic = new CheckSettingsLogic(commonLogic); var fakePageHost = new SettingsPageHostMock(checkSettingsLogic); using (var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(fakePageHost)) { if (!checklistSettingsPage.CheckSettings()) { if (!checkSettingsLogic.AutoSolveAllSettings()) { uiCommands.StartSettingsDialog(); } } } } } } catch { // TODO: remove catch-all } if (EnvUtils.RunningOnWindows()) { MouseWheelRedirector.Active = true; } var commands = new GitUICommands(GetWorkingDir(args)); if (args.Length <= 1) { commands.StartBrowseDialog(); } else { // if we are here args.Length > 1 // Avoid replacing the ExitCode eventually set while parsing arguments, // i.e. assume -1 and afterwards, only set it to 0 if no error is indicated. Environment.ExitCode = -1; if (commands.RunCommand(args)) { Environment.ExitCode = 0; } } AppSettings.SaveSettings(); }
public FormSettings([NotNull] GitUICommands commands, SettingsPageReference initialPage = null) : base(commands) { InitializeComponent(); _translatedTitle = Text; settingsTreeView.SuspendLayout(); #if DEBUG buttonDiscard.Visible = true; #endif _commonLogic = new CommonLogic(Module); CheckSettingsLogic = new CheckSettingsLogic(_commonLogic); var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(this); // Git Extensions settings settingsTreeView.AddSettingsPage(new GitExtensionsSettingsGroup(), null, Images.GitExtensionsLogo16); var gitExtPageRef = GitExtensionsSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(checklistSettingsPage, gitExtPageRef, icon: null, asRoot: true); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GeneralSettingsPage>(this), gitExtPageRef, Images.GeneralSettings); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AppearanceSettingsPage>(this), gitExtPageRef, Images.Appearance); var appearanceSettingsPage = AppearanceSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ColorsSettingsPage>(this), appearanceSettingsPage, Images.Colors); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AppearanceFontsSettingsPage>(this), appearanceSettingsPage, Images.Font); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <RevisionLinksSettingsPage>(this), gitExtPageRef, Images.Link); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <BuildServerIntegrationSettingsPage>(this), gitExtPageRef, Images.Integration); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ScriptsSettingsPage>(this), gitExtPageRef, Images.Console); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <HotkeysSettingsPage>(this), gitExtPageRef, Images.Hotkey); if (EnvUtils.RunningOnWindows()) { settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ShellExtensionSettingsPage>(this), gitExtPageRef, Images.ShellExtensions); } settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AdvancedSettingsPage>(this), gitExtPageRef, Images.AdvancedSettings); SettingsPageReference advancedPageRef = AdvancedSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ConfirmationsSettingsPage>(this), advancedPageRef, Images.BisectGood); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <DetailedSettingsPage>(this), gitExtPageRef, Images.Settings); var detailedSettingsPage = DetailedSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <FormBrowseRepoSettingsPage>(this), detailedSettingsPage, Images.BranchFolder); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <CommitDialogSettingsPage>(this), detailedSettingsPage, Images.CommitSummary); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <DiffViewerSettingsPage>(this), detailedSettingsPage, Images.Diff); var sshSettingsPage = SettingsPageBase.Create <SshSettingsPage>(this); settingsTreeView.AddSettingsPage(sshSettingsPage, gitExtPageRef, Images.Key); checklistSettingsPage.SshSettingsPage = sshSettingsPage; // Git settings settingsTreeView.AddSettingsPage(new GitSettingsGroup(), null, Images.GitLogo16); var gitPageRef = GitSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitSettingsPage>(this), gitPageRef, Images.FolderOpen); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitConfigSettingsPage>(this), gitPageRef, Images.GeneralSettings); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitConfigAdvancedSettingsPage>(this), gitPageRef, Images.AdvancedSettings); // Plugins settings settingsTreeView.AddSettingsPage(new PluginsSettingsGroup(), null, Images.Plugin); SettingsPageReference pluginsPageRef = PluginsSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <PluginRootIntroductionPage>(this), pluginsPageRef, icon: null, asRoot: true); var pluginEntries = PluginRegistry.Plugins .Select(plugin => (Plugin: plugin, Page: PluginSettingsPage.CreateSettingsPageFromPlugin(this, plugin))) .OrderBy(entry => entry.Page.GetTitle(), StringComparer.CurrentCultureIgnoreCase); foreach (var entry in pluginEntries) { settingsTreeView.AddSettingsPage(entry.Page, pluginsPageRef, entry.Plugin.Icon as Bitmap); } if (initialPage == null && _lastSelectedSettingsPageType != null) { initialPage = new SettingsPageReferenceByType(_lastSelectedSettingsPageType); } settingsTreeView.GotoPage(initialPage); settingsTreeView.ResumeLayout(); InitializeComplete(); }
public FormSettings(GitUICommands aCommands, SettingsPageReference initalPage = null) : base(aCommands) { InitializeComponent(); Translate(); _translatedTitle = this.Text; settingsTreeView.SuspendLayout(); //if form is created for translation purpose if (aCommands == null) { return; } #if DEBUG buttonDiscard.Visible = true; #endif settingsTreeView.AddSettingsPage(new GitExtensionsSettingsGroup(), null); SettingsPageReference gitExtPageRef = GitExtensionsSettingsGroup.GetPageReference(); _commonLogic = new CommonLogic(Module); _checkSettingsLogic = new CheckSettingsLogic(_commonLogic); var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(this); settingsTreeView.AddSettingsPage(checklistSettingsPage, gitExtPageRef, true); // as root settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitExtensionsSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <CommitDialogSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AppearanceSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <RevisionLinksSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ColorsSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <StartPageSettingsPage>(this), gitExtPageRef); var globalSettingsSettingsPage = SettingsPageBase.Create <GitConfigSettingsPage>(this); settingsTreeView.AddSettingsPage(globalSettingsSettingsPage, gitExtPageRef); var buildServerIntegrationSettingsPage = SettingsPageBase.Create <BuildServerIntegrationSettingsPage>(this); settingsTreeView.AddSettingsPage(buildServerIntegrationSettingsPage, gitExtPageRef); var _sshSettingsPage = SettingsPageBase.Create <SshSettingsPage>(this); settingsTreeView.AddSettingsPage(_sshSettingsPage, gitExtPageRef); checklistSettingsPage.SshSettingsPage = _sshSettingsPage; settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ScriptsSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <HotkeysSettingsPage>(this), gitExtPageRef); if (EnvUtils.RunningOnWindows()) { settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ShellExtensionSettingsPage>(this), gitExtPageRef); } settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AdvancedSettingsPage>(this), gitExtPageRef); SettingsPageReference advancedPageRef = AdvancedSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <DetailedSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ConfirmationsSettingsPage>(this), advancedPageRef); settingsTreeView.AddSettingsPage(new PluginsSettingsGroup(), null); SettingsPageReference pluginsPageRef = PluginsSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <PluginRootIntroductionPage>(this), pluginsPageRef, true); // as root foreach (var gitPlugin in LoadedPlugins.Plugins) { var settingsPage = PluginSettingsPage.CreateSettingsPageFromPlugin(this, gitPlugin); settingsTreeView.AddSettingsPage(settingsPage, pluginsPageRef); } settingsTreeView.GotoPage(initalPage); settingsTreeView.ResumeLayout(); }
protected override void OnRuntimeLoad(EventArgs e) { base.OnRuntimeLoad(e); settingsTreeView.SuspendLayout(); ChecklistSettingsPage checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(this); // Git Extensions settings settingsTreeView.AddSettingsPage(new GitExtensionsSettingsGroup(), null, Images.GitExtensionsLogo16); var gitExtPageRef = GitExtensionsSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(checklistSettingsPage, gitExtPageRef, icon: null, asRoot: true); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GeneralSettingsPage>(this), gitExtPageRef, Images.GeneralSettings); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AppearanceSettingsPage>(this), gitExtPageRef, Images.Appearance); var appearanceSettingsPage = AppearanceSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ColorsSettingsPage>(this), appearanceSettingsPage, Images.Colors); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AppearanceFontsSettingsPage>(this), appearanceSettingsPage, Images.Font.AdaptLightness()); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <RevisionLinksSettingsPage>(this), gitExtPageRef, Images.Link.AdaptLightness()); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <BuildServerIntegrationSettingsPage>(this), gitExtPageRef, Images.Integration); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ScriptsSettingsPage>(this), gitExtPageRef, Images.Console); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <HotkeysSettingsPage>(this), gitExtPageRef, Images.Hotkey); if (EnvUtils.RunningOnWindows()) { settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ShellExtensionSettingsPage>(this), gitExtPageRef, Images.ShellExtensions); } settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AdvancedSettingsPage>(this), gitExtPageRef, Images.AdvancedSettings); SettingsPageReference advancedPageRef = AdvancedSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ConfirmationsSettingsPage>(this), advancedPageRef, Images.BisectGood); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <DetailedSettingsPage>(this), gitExtPageRef, Images.Settings); var detailedSettingsPage = DetailedSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <FormBrowseRepoSettingsPage>(this), detailedSettingsPage, Images.BranchFolder); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <CommitDialogSettingsPage>(this), detailedSettingsPage, Images.CommitSummary); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <DiffViewerSettingsPage>(this), detailedSettingsPage, Images.Diff); var sshSettingsPage = SettingsPageBase.Create <SshSettingsPage>(this); settingsTreeView.AddSettingsPage(sshSettingsPage, gitExtPageRef, Images.Key); checklistSettingsPage.SshSettingsPage = sshSettingsPage; // Git settings settingsTreeView.AddSettingsPage(new GitSettingsGroup(), null, Images.GitLogo16); var gitPageRef = GitSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitSettingsPage>(this), gitPageRef, Images.FolderOpen); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitConfigSettingsPage>(this), gitPageRef, Images.GeneralSettings); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitConfigAdvancedSettingsPage>(this), gitPageRef, Images.AdvancedSettings); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitRootIntroductionPage>(this), gitPageRef, icon: null, asRoot: true); // Plugins settings settingsTreeView.AddSettingsPage(new PluginsSettingsGroup(), null, Images.Plugin); SettingsPageReference pluginsPageRef = PluginsSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <PluginRootIntroductionPage>(this), pluginsPageRef, icon: null, asRoot: true); lock (PluginRegistry.Plugins) { var pluginEntries = PluginRegistry.Plugins .Where(p => p.HasSettings) .Select(plugin => (Plugin: plugin, Page: PluginSettingsPage.CreateSettingsPageFromPlugin(this, plugin))) .OrderBy(entry => entry.Page.GetTitle(), StringComparer.CurrentCultureIgnoreCase); foreach (var entry in pluginEntries) { settingsTreeView.AddSettingsPage(entry.Page, pluginsPageRef, entry.Plugin.Icon as Bitmap); } } settingsTreeView.ResumeLayout(); }
private static void RunApplication() { string[] args = Environment.GetCommandLineArgs(); // This form created for obtain UI synchronization context only using (new Form()) { // Store the shared JoinableTaskContext ThreadHelper.JoinableTaskContext = new JoinableTaskContext(); } AppSettings.LoadSettings(); if (EnvUtils.RunningOnWindows()) { WebBrowserEmulationMode.SetBrowserFeatureControl(); FormFixHome.CheckHomePath(); } if (string.IsNullOrEmpty(AppSettings.Translation)) { using (var formChoose = new FormChooseTranslation()) { formChoose.ShowDialog(); } } try { if (!(args.Length >= 2 && args[1] == "uninstall") && (AppSettings.CheckSettings || string.IsNullOrEmpty(AppSettings.GitCommandValue) || !File.Exists(AppSettings.GitCommandValue))) { GitUICommands uiCommands = new GitUICommands(string.Empty); var commonLogic = new CommonLogic(uiCommands.Module); var checkSettingsLogic = new CheckSettingsLogic(commonLogic); ISettingsPageHost fakePageHost = new SettingsPageHostMock(checkSettingsLogic); using (var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(fakePageHost)) { if (!checklistSettingsPage.CheckSettings()) { if (!checkSettingsLogic.AutoSolveAllSettings()) { uiCommands.StartSettingsDialog(); } } } } } catch { // TODO: remove catch-all } if (EnvUtils.RunningOnWindows()) { MouseWheelRedirector.Active = true; } GitUICommands commands = new GitUICommands(GetWorkingDir(args)); if (args.Length <= 1) { commands.StartBrowseDialog(startWithDashboard: !AppSettings.StartWithRecentWorkingDir); } else { // if we are here args.Length > 1 commands.RunCommand(args); } AppSettings.SaveSettings(); }
public FormSettings([NotNull] GitUICommands commands, SettingsPageReference initialPage = null) : base(commands) { InitializeComponent(); _translatedTitle = Text; settingsTreeView.SuspendLayout(); #if DEBUG buttonDiscard.Visible = true; #endif _commonLogic = new CommonLogic(Module); CheckSettingsLogic = new CheckSettingsLogic(_commonLogic); var checklistSettingsPage = SettingsPageBase.Create <ChecklistSettingsPage>(this); // Git Extensions settings settingsTreeView.AddSettingsPage(new GitExtensionsSettingsGroup(), null); var gitExtPageRef = GitExtensionsSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(checklistSettingsPage, gitExtPageRef, true); // as root settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GeneralSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AppearanceSettingsPage>(this), gitExtPageRef); var appearanceSettingsPage = AppearanceSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ColorsSettingsPage>(this), appearanceSettingsPage); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AppearanceFontsSettingsPage>(this), appearanceSettingsPage); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <RevisionLinksSettingsPage>(this), gitExtPageRef); var buildServerIntegrationSettingsPage = SettingsPageBase.Create <BuildServerIntegrationSettingsPage>(this); settingsTreeView.AddSettingsPage(buildServerIntegrationSettingsPage, gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ScriptsSettingsPage>(this), gitExtPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <HotkeysSettingsPage>(this), gitExtPageRef); if (EnvUtils.RunningOnWindows()) { settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ShellExtensionSettingsPage>(this), gitExtPageRef); } settingsTreeView.AddSettingsPage(SettingsPageBase.Create <AdvancedSettingsPage>(this), gitExtPageRef); SettingsPageReference advancedPageRef = AdvancedSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <ConfirmationsSettingsPage>(this), advancedPageRef); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <DetailedSettingsPage>(this), gitExtPageRef); var detailedSettingsPage = DetailedSettingsPage.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <FormBrowseRepoSettingsPage>(this), detailedSettingsPage); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <CommitDialogSettingsPage>(this), detailedSettingsPage); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <DiffViewerSettingsPage>(this), detailedSettingsPage); var sshSettingsPage = SettingsPageBase.Create <SshSettingsPage>(this); settingsTreeView.AddSettingsPage(sshSettingsPage, gitExtPageRef); checklistSettingsPage.SshSettingsPage = sshSettingsPage; // Git settings settingsTreeView.AddSettingsPage(new GitSettingsGroup(), null); var gitPageRef = GitSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <GitSettingsPage>(this), gitPageRef); var gitConfigSettingsSettingsPage = SettingsPageBase.Create <GitConfigSettingsPage>(this); settingsTreeView.AddSettingsPage(gitConfigSettingsSettingsPage, gitPageRef); var gitConfigAdvancedSettingsPage = SettingsPageBase.Create <GitConfigAdvancedSettingsPage>(this); settingsTreeView.AddSettingsPage(gitConfigAdvancedSettingsPage, gitPageRef); // Plugins settings settingsTreeView.AddSettingsPage(new PluginsSettingsGroup(), null); SettingsPageReference pluginsPageRef = PluginsSettingsGroup.GetPageReference(); settingsTreeView.AddSettingsPage(SettingsPageBase.Create <PluginRootIntroductionPage>(this), pluginsPageRef, true); // as root foreach (var gitPlugin in PluginRegistry.Plugins) { var settingsPage = PluginSettingsPage.CreateSettingsPageFromPlugin(this, gitPlugin); settingsTreeView.AddSettingsPage(settingsPage, pluginsPageRef); } if (initialPage == null && _lastSelectedSettingsPageType != null) { initialPage = new SettingsPageReferenceByType(_lastSelectedSettingsPageType); } settingsTreeView.GotoPage(initialPage); settingsTreeView.ResumeLayout(); InitializeComplete(); }