Пример #1
0
        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);
        }
Пример #2
0
 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);
        }