From 39e8f2ba7affc0ce41b5a87e772d2af15de25478 Mon Sep 17 00:00:00 2001 From: Max Hora Date: Mon, 1 Jun 2020 01:52:59 -0700 Subject: [PATCH] Export/import settings for default shell profile and default theme. (#773) --- .../Implementation/SettingsService.cs | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/FluentTerminal.App.Services/Implementation/SettingsService.cs b/FluentTerminal.App.Services/Implementation/SettingsService.cs index c92031c..f6dce64 100644 --- a/FluentTerminal.App.Services/Implementation/SettingsService.cs +++ b/FluentTerminal.App.Services/Implementation/SettingsService.cs @@ -63,7 +63,8 @@ namespace FluentTerminal.App.Services.Implementation TerminalOptions = GetTerminalOptions(), Themes = new List(), Profiles = new List(), - SshProfiles = new List() + SshProfiles = new List(), + DefaultSettings = GetDefaultSettings(), }; foreach (var theme in GetThemes().Where(x => !x.PreInstalled)) @@ -84,6 +85,15 @@ namespace FluentTerminal.App.Services.Implementation return JsonConvert.SerializeObject(config, PreserveDictionaryKeyCaseContractResolver.SerializerSettings); } + private Dictionary GetDefaultSettings() + { + return new Dictionary + { + [DefaultShellProfileKey] = GetDefaultShellProfileId().ToString(), + [CurrentThemeKey] = GetCurrentThemeId().ToString(), + }; + } + public void ImportSettings(string serializedSettings) { var config = new @@ -93,7 +103,8 @@ namespace FluentTerminal.App.Services.Implementation Themes = new List(), Profiles = new List(), SshProfiles = new List(), - TerminalOptions = GetTerminalOptions() + TerminalOptions = GetTerminalOptions(), + DefaultSettings = new Dictionary(), }; JsonConvert.PopulateObject(serializedSettings, config); @@ -143,6 +154,16 @@ namespace FluentTerminal.App.Services.Implementation } SaveTerminalOptions(config.TerminalOptions); + + if (config.DefaultSettings.ContainsKey(DefaultShellProfileKey)) + { + SaveDefaultShellProfileId(new Guid(config.DefaultSettings[DefaultShellProfileKey])); + } + + if (config.DefaultSettings.ContainsKey(CurrentThemeKey)) + { + SaveCurrentThemeId(new Guid(config.DefaultSettings[CurrentThemeKey])); + } } public void DeleteShellProfile(Guid id)