Files
Artemis/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs
T
Robert 146c545f02 Redesigned sidebar
Removed dependency on Mahapps, ControlzEx and Dragablz
2019-12-10 16:29:47 +01:00

77 lines
2.6 KiB
C#

using Artemis.Core.Services;
using Artemis.Core.Services.Storage.Interfaces;
using Artemis.UI.Ninject.Factories;
using Artemis.UI.Screens.Settings.Debug;
using Artemis.UI.Screens.Settings.Tabs.Devices;
using MaterialDesignThemes.Wpf;
using Ninject;
using Stylet;
namespace Artemis.UI.Screens.Settings
{
public class SettingsViewModel : MainScreenViewModel
{
private readonly IDeviceSettingsViewModelFactory _deviceSettingsViewModelFactory;
private readonly IKernel _kernel;
private readonly ISettingsService _settingsService;
private readonly ISurfaceService _surfaceService;
private readonly IWindowManager _windowManager;
public SettingsViewModel(IKernel kernel,
ISurfaceService surfaceService,
IWindowManager windowManager,
ISettingsService settingsService,
IDeviceSettingsViewModelFactory deviceSettingsViewModelFactory)
{
DisplayName = "Settings";
DisplayIcon = PackIconKind.Settings;
DisplayOrder = 5;
_kernel = kernel;
_surfaceService = surfaceService;
_windowManager = windowManager;
_settingsService = settingsService;
_deviceSettingsViewModelFactory = deviceSettingsViewModelFactory;
DeviceSettingsViewModels = new BindableCollection<DeviceSettingsViewModel>();
}
public BindableCollection<DeviceSettingsViewModel> DeviceSettingsViewModels { get; set; }
public double RenderScale
{
get => _settingsService.GetSetting("Core.RenderScale", 1.0).Value;
set
{
_settingsService.GetSetting("Core.RenderScale", 1.0).Value = value;
_settingsService.GetSetting("Core.RenderScale", 1.0).Save();
}
}
public int TargetFrameRate
{
get => _settingsService.GetSetting("Core.TargetFrameRate", 25).Value;
set
{
_settingsService.GetSetting("Core.TargetFrameRate", 25).Value = value;
_settingsService.GetSetting("Core.TargetFrameRate", 25).Save();
}
}
public string Title => "Settings";
protected override void OnActivate()
{
DeviceSettingsViewModels.Clear();
foreach (var device in _surfaceService.ActiveSurface.Devices)
DeviceSettingsViewModels.Add(_deviceSettingsViewModelFactory.Create(device));
base.OnActivate();
}
public void ShowDebugger()
{
_windowManager.ShowWindow(_kernel.Get<DebugViewModel>());
}
}
}