private async Task BindHotKeyAsync() { runHotKey = new DefaultRunHotKeyService(this, this); KeyViewModel runKey; if (Converts.Try(settings.RunKey, out runKey) && runKey != null) { try { runHotKey.Bind(runKey.Key, runKey.Modifier); } catch (Win32Exception) { MessageBox.Show($"The global hotkey '{settings.RunKey}' is already in use. Configure another one in the settings.", "SolutionRunner"); runHotKey.UnBind(); settings.RunKey = null; await settingsService.SaveAsync(settings); } } if (!runHotKey.IsSet) { startup.IsHidden = false; } }
internal SaveConfigurationCommandFactory(Settings settings, DefaultRunHotKeyService runHotKey, ShortcutService shortcutService) { Ensure.NotNull(settings, "settings"); Ensure.NotNull(runHotKey, "runHotKey"); Ensure.NotNull(shortcutService, "shortcutService"); this.settings = settings; this.runHotKey = runHotKey; this.shortcutService = shortcutService; }
internal ConfigurationViewModelFactory(IApplicationLoader mainApplicationLoader, ShortcutService shortcutService, DefaultRunHotKeyService runHotKey, Settings settings, INavigator navigator) { Ensure.NotNull(mainApplicationLoader, "mainApplicationLoader"); Ensure.NotNull(shortcutService, "shortcutService"); Ensure.NotNull(runHotKey, "runHotKey"); Ensure.NotNull(settings, "settings"); Ensure.NotNull(navigator, "navigator"); this.mainApplicationLoader = mainApplicationLoader; this.shortcutService = shortcutService; this.runHotKey = runHotKey; this.settings = settings; this.navigator = navigator; }
internal ConfigurationViewModelFactory(IApplicationLoader mainApplicationLoader, ShortcutService shortcutService, DefaultRunHotKeyService runHotKey, ISettingsService settingsService, ISettings settings, ISettingsFactory settingsFactory, INavigator navigator, ILogService logProvider, IDiagnosticService searchDiagnostics, FileLogBatchFactory executorFactory) { Ensure.NotNull(mainApplicationLoader, "mainApplicationLoader"); Ensure.NotNull(shortcutService, "shortcutService"); Ensure.NotNull(runHotKey, "runHotKey"); Ensure.NotNull(settingsService, "settingsService"); Ensure.NotNull(settings, "settings"); Ensure.NotNull(settingsFactory, "settingsFactory"); Ensure.NotNull(navigator, "navigator"); Ensure.NotNull(logProvider, "logProvider"); Ensure.NotNull(searchDiagnostics, "searchDiagnostics"); Ensure.NotNull(executorFactory, "executorFactory"); this.mainApplicationLoader = mainApplicationLoader; this.shortcutService = shortcutService; this.runHotKey = runHotKey; this.settingsService = settingsService; this.settings = settings; this.settingsFactory = settingsFactory; this.navigator = navigator; this.logProvider = logProvider; this.searchDiagnostics = searchDiagnostics; this.executorFactory = executorFactory; }
protected override void OnStartup(StartupEventArgs e) { ReloadThemeResources(); TaskScheduler.UnobservedTaskException += OnTaskSchedulerUnobservedException; //#if DEBUG // Settings.Default.Reset(); //#endif PrepareStartup(e); base.OnStartup(e); BuildErrorHandler(); Converts.Repository .AddJsonPrimitivesSearchHandler() .AddJsonObjectSearchHandler() .AddJsonEnumSearchHandler() .AddEnumSearchHandler(false) .AddToStringSearchHandler() .Add(new AdditionalApplicationCollectionConverter()) .Add(new KeyViewModelConverter()) .Add(new ExceptionModelConverter()); EventManager.FilePinned += OnFilePinned; EventManager.ConfigurationSaved += OnConfigurationSaved; EventManager.ProcessStarted += OnProcessStarted; mainApplicationLoader = new ApplicationLoaderCollection() .Add(new VsVersionLoader()) .Add(new VsCodeLoader()); // Bind global hotkey. runHotKey = new DefaultRunHotKeyService(this, this); KeyViewModel runKey; if (Converts.Try(Settings.Default.RunKey, out runKey) && runKey != null) { try { runHotKey.Bind(runKey.Key, runKey.Modifier); } catch (Win32Exception) { runHotKey.UnBind(); Settings.Default.RunKey = null; Settings.Default.Save(); } } if (!runHotKey.IsSet) { startup.IsHidden = false; } configurationFactory = new ConfigurationViewModelFactory( mainApplicationLoader, shortcutService, runHotKey, Settings.Default, this ); mainFactory = new MainViewModelFactory( this, Settings.Default, mainApplicationLoader, GetPinnedFiles, OnMainViewModelPropertyChanged ); SettingsExtension.Settings = Settings.Default; positionProvider = new PositionService(Settings.Default); InitializeCounting(); if (Settings.Default.IsTrayIcon) { TryCreateTrayIcon(); } // Open window. if (String.IsNullOrEmpty(Settings.Default.SourceDirectoryPath)) { OpenConfiguration(); } else { OpenMain(); } startup.IsStartup = false; }