public ThemeViewModel(TerminalTheme theme, ISettingsService settingsService, IDialogService dialogService, IFileSystemService fileSystemService, IImageFileSystemService imageFileSystemService, bool isNew) { Model = theme; _settingsService = settingsService; _dialogService = dialogService; _fileSystemService = fileSystemService; _imageFileSystemService = imageFileSystemService; _isNew = isNew; Name = Model.Name; Author = Model.Author; Id = Model.Id; Black = Model.Colors.Black; Red = Model.Colors.Red; Green = Model.Colors.Green; Yellow = Model.Colors.Yellow; Blue = Model.Colors.Blue; Magenta = Model.Colors.Magenta; Cyan = Model.Colors.Cyan; White = Model.Colors.White; BrightBlack = Model.Colors.BrightBlack; BrightRed = Model.Colors.BrightRed; BrightGreen = Model.Colors.BrightGreen; BrightYellow = Model.Colors.BrightYellow; BrightBlue = Model.Colors.BrightBlue; BrightMagenta = Model.Colors.BrightMagenta; BrightCyan = Model.Colors.BrightCyan; BrightWhite = Model.Colors.BrightWhite; Background = Model.Colors.Background; Foreground = Model.Colors.Foreground; Cursor = Model.Colors.Cursor; CursorAccent = Model.Colors.CursorAccent; Selection = Model.Colors.Selection; BackgroundThemeFile = Model.BackgroundImage; SetActiveCommand = new RelayCommand(SetActive); DeleteCommand = new RelayCommand(async() => await Delete().ConfigureAwait(false), NotPreInstalled); EditCommand = new RelayCommand(Edit, NotPreInstalled); CancelEditCommand = new RelayCommand(async() => await CancelEdit().ConfigureAwait(false)); SaveChangesCommand = new RelayCommand(async() => await SaveChanges().ConfigureAwait(false)); ExportCommand = new RelayCommand(async() => await Export().ConfigureAwait(false), NotPreInstalled); ChooseBackgroundImageCommand = new RelayCommand(async() => await ChooseBackgroundImage(), NotPreInstalled); DeleteBackgroundImageCommand = new RelayCommand(async() => await DeleteBackgroundImage(), NotPreInstalled); }
public SettingsViewModel(ISettingsService settingsService, IDefaultValueProvider defaultValueProvider, IDialogService dialogService, ITrayProcessCommunicationService trayProcessCommunicationService, IThemeParserFactory themeParserFactory, ISystemFontService systemFontService, IFileSystemService fileSystemService, IStartupTaskService startupTaskService, IApplicationView applicationView, IApplicationLanguageService applicationLanguageService, ApplicationDataContainers containers, IImageFileSystemService imageFileSystemService) { KeyBindings = new KeyBindingsPageViewModel(settingsService, dialogService, trayProcessCommunicationService); General = new GeneralPageViewModel(settingsService, dialogService, defaultValueProvider, startupTaskService, applicationLanguageService, trayProcessCommunicationService, fileSystemService); Profiles = new ProfilesPageViewModel(settingsService, dialogService, defaultValueProvider, fileSystemService, applicationView); Terminal = new TerminalPageViewModel(settingsService, dialogService, defaultValueProvider, systemFontService); Themes = new ThemesPageViewModel(settingsService, dialogService, defaultValueProvider, themeParserFactory, fileSystemService, imageFileSystemService); Mouse = new MousePageViewModel(settingsService, dialogService, defaultValueProvider); SshProfiles = new SshProfilesPageViewModel(settingsService, dialogService, fileSystemService, applicationView, trayProcessCommunicationService, containers.HistoryContainer); }
public ThemesPageViewModel(ISettingsService settingsService, IDialogService dialogService, IDefaultValueProvider defaultValueProvider, IThemeParserFactory themeParserFactory, IFileSystemService fileSystemService, IImageFileSystemService imageFileSystemService) { _settingsService = settingsService; _dialogService = dialogService; _defaultValueProvider = defaultValueProvider; _themeParserFactory = themeParserFactory; _fileSystemService = fileSystemService; _imageFileSystemService = imageFileSystemService; CreateThemeCommand = new RelayCommand(CreateTheme); ImportThemeCommand = new AsyncCommand(ImportTheme); CloneCommand = new RelayCommand <ThemeViewModel>(CloneTheme); MessengerInstance.Register <TerminalOptionsChangedMessage>(this, OnTerminalOptionsChanged); BackgroundOpacity = _settingsService.GetTerminalOptions().BackgroundOpacity; var activeThemeId = _settingsService.GetCurrentThemeId(); foreach (var theme in _settingsService.GetThemes()) { var viewModel = new ThemeViewModel(theme, _settingsService, _dialogService, _fileSystemService, _imageFileSystemService, false); viewModel.Activated += OnThemeActivated; viewModel.Deleted += OnThemeDeleted; if (theme.Id == activeThemeId) { viewModel.IsActive = true; } Themes.Add(viewModel); } SelectedTheme = Themes.First(t => t.IsActive); }