public GlobalSettingsVm( ISaveSignal saveSignal, IWorkConsumerSettings workConsumerSettings, ISettingsSingleton settingsSingleton) { Shortcircuit = settingsSingleton.Pipeline.Shortcircuit; DotNetPathOverride = settingsSingleton.Gui.DotNetPathOverride; BuildCorePercentage = settingsSingleton.Gui.BuildCorePercentage; NumProcessors = (byte)Math.Min(byte.MaxValue, Environment.ProcessorCount); _buildCores = this.WhenAnyValue(x => x.BuildCorePercentage) .Select(x => (byte)Math.Min(byte.MaxValue, Environment.ProcessorCount * Percent.FactoryPutInRange(x))) .ToGuiProperty(this, nameof(BuildCores), deferSubscription: true); ObservableExtensions.Subscribe(this.WhenAnyValue(x => x.BuildCores), x => workConsumerSettings.SetNumThreads(x)) .DisposeWith(this); saveSignal.Saving .Subscribe(x => { Save(x.Gui); Save(x.Pipe); }) .DisposeWith(this); }
public ShowHelpSetting( ISaveSignal saveSignal, ISettingsSingleton settings) { SaveSignal = saveSignal; ShowHelpToggleCommand = ReactiveCommand.Create(() => ShowHelp = !ShowHelp); ShowHelp = settings.Gui.ShowHelp; saveSignal.Saving .Subscribe(x => x.Gui.ShowHelp = ShowHelp) .DisposeWith(this); }
public MainVm( ActiveRunVm activeRunVm, ProfileManagerVm profileManager, OpenProfileSettings openProfileSettings, OpenGlobalSettings openGlobalSettings, IConfirmationPanelControllerVm confirmationControllerVm, IProvideCurrentVersions currentVersions, ISelectedProfileControllerVm selectedProfile, ISaveSignal saveSignal, ISettingsSingleton settingsSingleton, INewestLibraryVersionsVm libVersionsVm, IActivePanelControllerVm activePanelControllerVm, IProfileFactory profileFactory, ILogger logger) { logger.Information("Creating MainVM"); _selectedProfileController = selectedProfile; _settingsSingleton = settingsSingleton; _activePanelControllerVm = activePanelControllerVm; _profileFactory = profileFactory; _logger = logger; _activePanel = activePanelControllerVm.WhenAnyValue(x => x.ActivePanel) .ToGuiProperty(this, nameof(ActivePanel), default, deferSubscription: true);