* Simplifying view models, step 1: Extracting common terminal configuration into TerminalInfoViewModel.cs. * Simplifying a bit. * SSH view models simplfication. * Refactoring duplicated code. * Refactoring duplicated code. * Renaming a resource file. * Cleanup. * Fixing an issue with TemplateSelectors. * QuickSshDialog created. * Minor fix. * Wiring up QuickSshDialog. * Minor fix. * Fixed an issue with shared resources. * Single-text-box dialog works. * Improving "Quick SSH" look. * Improving data validation workflow to avoid double validations. * Refactoring view models and templates to avoid duplicated code. * Minor fix. * Fixing a bug with mosh. * Cleanup. * Cleanup. * Moving profile view models in a separate folder (namespace). * Few comment lines (short description) added to profile view models. * Removing IDisposable from view-models because event-caused memory leaks will be solved differently. * Implemented quick-ssh shortcuts. * Fixing quick SSH command validation. * Minor change. * Minor change. * Combining "SSH Info" and "Quick SSH" into a single dialog. * Quick SSH profiles. * Fixing a minor bug with custom links. * Fixing remote profiles look and feel. * Minor improvements. * Fixing a minor bug. * Minor changes based on Felix' comments. * Saving executed commands history implemented.
48 lines
2.6 KiB
C#
48 lines
2.6 KiB
C#
using FluentTerminal.App.Services;
|
|
using FluentTerminal.App.ViewModels.Settings;
|
|
using GalaSoft.MvvmLight;
|
|
using System;
|
|
|
|
namespace FluentTerminal.App.ViewModels
|
|
{
|
|
public class SettingsViewModel : ViewModelBase
|
|
{
|
|
public SettingsViewModel(ISettingsService settingsService, IDefaultValueProvider defaultValueProvider, IDialogService dialogService,
|
|
ITrayProcessCommunicationService trayProcessCommunicationService, IThemeParserFactory themeParserFactory, ISystemFontService systemFontService,
|
|
IFileSystemService fileSystemService, IStartupTaskService startupTaskService, IUpdateService updateService, IApplicationView applicationView,
|
|
IApplicationLanguageService applicationLanguageService, ApplicationDataContainers containers)
|
|
{
|
|
About = new AboutPageViewModel(settingsService, updateService, applicationView);
|
|
KeyBindings = new KeyBindingsPageViewModel(settingsService, dialogService, defaultValueProvider, trayProcessCommunicationService);
|
|
General = new GeneralPageViewModel(settingsService, dialogService, defaultValueProvider, startupTaskService, applicationLanguageService);
|
|
Profiles = new ProfilesPageViewModel(settingsService, dialogService, defaultValueProvider, fileSystemService, applicationView);
|
|
Terminal = new TerminalPageViewModel(settingsService, dialogService, defaultValueProvider, systemFontService);
|
|
Themes = new ThemesPageViewModel(settingsService, dialogService, defaultValueProvider, themeParserFactory, fileSystemService);
|
|
Mouse = new MousePageViewModel(settingsService, dialogService, defaultValueProvider);
|
|
SshProfiles = new SshProfilesPageViewModel(settingsService, dialogService, fileSystemService,
|
|
applicationView, trayProcessCommunicationService, containers.HistoryContainer);
|
|
}
|
|
|
|
public event EventHandler Closed;
|
|
public event EventHandler AboutPageRequested;
|
|
|
|
public GeneralPageViewModel General { get; }
|
|
public KeyBindingsPageViewModel KeyBindings { get; }
|
|
public ProfilesPageViewModel Profiles { get; }
|
|
public TerminalPageViewModel Terminal { get; }
|
|
public ThemesPageViewModel Themes { get; }
|
|
public MousePageViewModel Mouse { get; }
|
|
public AboutPageViewModel About { get; }
|
|
public SshProfilesPageViewModel SshProfiles { get; }
|
|
|
|
public void NavigateToAboutPage()
|
|
{
|
|
AboutPageRequested?.Invoke(this, EventArgs.Empty);
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
Closed?.Invoke(this, EventArgs.Empty);
|
|
}
|
|
}
|
|
} |