From 872961ee0a85cc283dd749df1f3c3e66d1a99cb3 Mon Sep 17 00:00:00 2001 From: Nick Vella Date: Thu, 1 Aug 2019 23:54:23 +1000 Subject: [PATCH] ssg: advanced config: rename PreferencesController to StaticSitePrefrencesController, begin work on saving --- ....cs => StaticSitePreferencesController.cs} | 73 ++++++++++++++----- 1 file changed, 54 insertions(+), 19 deletions(-) rename src/managed/OpenLiveWriter.PostEditor/Configuration/StaticSiteAdvanced/{PreferencesController.cs => StaticSitePreferencesController.cs} (60%) diff --git a/src/managed/OpenLiveWriter.PostEditor/Configuration/StaticSiteAdvanced/PreferencesController.cs b/src/managed/OpenLiveWriter.PostEditor/Configuration/StaticSiteAdvanced/StaticSitePreferencesController.cs similarity index 60% rename from src/managed/OpenLiveWriter.PostEditor/Configuration/StaticSiteAdvanced/PreferencesController.cs rename to src/managed/OpenLiveWriter.PostEditor/Configuration/StaticSiteAdvanced/StaticSitePreferencesController.cs index 32cc6f08..85ef68b8 100644 --- a/src/managed/OpenLiveWriter.PostEditor/Configuration/StaticSiteAdvanced/PreferencesController.cs +++ b/src/managed/OpenLiveWriter.PostEditor/Configuration/StaticSiteAdvanced/StaticSitePreferencesController.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Data; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -14,7 +15,7 @@ using OpenLiveWriter.PostEditor.Configuration.Wizard; namespace OpenLiveWriter.PostEditor.Configuration.StaticSiteAdvanced { - public class PreferencesController + public class StaticSitePreferencesController { private TemporaryBlogSettings _temporarySettings; private PreferencesForm _form; @@ -24,20 +25,20 @@ namespace OpenLiveWriter.PostEditor.Configuration.StaticSiteAdvanced private FrontMatterPanel panelFrontMatter; private BuildPublishPanel panelBuildPublish; - public PreferencesController(TemporaryBlogSettings blogSettings) + public StaticSitePreferencesController(TemporaryBlogSettings blogSettings) { _temporarySettings = blogSettings; _form = new PreferencesForm(); - panelGeneral = new GeneralPanel(this); - panelAuthoring = new AuthoringPanel(this); - panelFrontMatter = new FrontMatterPanel(this); - panelBuildPublish = new BuildPublishPanel(this); + panelGeneral = new GeneralPanel(this, blogSettings); + panelAuthoring = new AuthoringPanel(this, blogSettings); + panelFrontMatter = new FrontMatterPanel(this, blogSettings); + panelBuildPublish = new BuildPublishPanel(this, blogSettings); } private bool EditWeblogTemporarySettings(IWin32Window owner) { - LoadFromStaticSiteConfig(CreateSiteConfig()); + LoadFromStaticSiteConfig(StaticSiteConfig.LoadConfigFromBlogSettings(_temporarySettings)); // Show form using (var preferencesForm = new StaticSitePreferencesForm()) @@ -45,7 +46,8 @@ namespace OpenLiveWriter.PostEditor.Configuration.StaticSiteAdvanced using (BlogClientUIContextScope uiContextScope = new BlogClientUIContextScope(preferencesForm)) { // Customize form title and behavior - preferencesForm.Text = $"Static Site Configuration for '{_temporarySettings.BlogName}'"; //String.Format(CultureInfo.CurrentCulture, Res.Get(StringId.WeblogSettings), blogSettings.BlogName); + preferencesForm.Text = $"Static Site Configuration for '{_temporarySettings.BlogName}'"; //TODO use strings + preferencesForm.HideApplyButton(); // Add panels int iPanel = 0; @@ -57,20 +59,24 @@ namespace OpenLiveWriter.PostEditor.Configuration.StaticSiteAdvanced preferencesForm.SelectedIndex = 0; // Show the dialog - preferencesForm.ShowDialog(owner); + var result = preferencesForm.ShowDialog(owner); + + if(result == DialogResult.OK) + { + // Create a static site config + var ssgConfig = StaticSiteConfig.LoadConfigFromBlogSettings(_temporarySettings); + SaveToStaticSiteConfig(ssgConfig); + // All panels should be validated by this point, so save the settings + + return true; + } + } } return false; } - private StaticSiteConfig CreateSiteConfig() - { - var ssgConfig = new StaticSiteConfig(); - ssgConfig.LoadFromBlogSettings(_temporarySettings); - return ssgConfig; - } - private void LoadFromStaticSiteConfig(StaticSiteConfig config) { // General @@ -100,16 +106,45 @@ namespace OpenLiveWriter.PostEditor.Configuration.StaticSiteAdvanced panelBuildPublish.PublishCommand = config.PublishCommand; } + private void SaveToStaticSiteConfig(StaticSiteConfig config) + { + // General + config.SiteTitle = panelGeneral.SiteTitle; + config.SiteUrl = panelGeneral.SiteUrl; + config.LocalSitePath = panelGeneral.LocalSitePath; + + // Authoring + config.PostsPath = panelAuthoring.PostsPath; + config.DraftsEnabled = panelAuthoring.DraftsEnabled; + config.DraftsPath = panelAuthoring.DraftsPath; + config.PagesEnabled = panelAuthoring.PagesEnabled; + config.PagesPath = panelAuthoring.PagesStoredInRoot ? "." : panelAuthoring.PagesPath; + config.ImagesEnabled = panelAuthoring.ImagesEnabled; + config.ImagesPath = panelAuthoring.ImagesPath; + + // Front Matter + config.FrontMatterKeys = panelFrontMatter.Keys; + + // Building and Publishing + config.ShowCmdWindows = panelBuildPublish.ShowCmdWindows; + config.CmdTimeoutMs = panelBuildPublish.CmdTimeoutMs; + config.BuildingEnabled = panelBuildPublish.BuildingEnabled; + config.BuildCommand = panelBuildPublish.BuildCommand; + config.OutputPath = panelBuildPublish.OutputPath; + config.PublishCommand = panelBuildPublish.PublishCommand; + } + + public void GeneralPanel_RunAccountWizard() { WeblogConfigurationWizardController.EditTemporarySettings(_form, _temporarySettings); // Reload the settings into the form - LoadFromStaticSiteConfig(CreateSiteConfig()); + LoadFromStaticSiteConfig(StaticSiteConfig.LoadConfigFromBlogSettings(_temporarySettings)); } public void GeneralPanel_RunAutoDetect() { - var ssgConfig = CreateSiteConfig(); + var ssgConfig = StaticSiteConfig.LoadConfigFromBlogSettings(_temporarySettings); var result = StaticSiteConfigDetector.AttmeptAutoDetect(ssgConfig); if(result) @@ -126,6 +161,6 @@ namespace OpenLiveWriter.PostEditor.Configuration.StaticSiteAdvanced } public static bool EditTemporarySettings(IWin32Window owner, TemporaryBlogSettings settings) - => new PreferencesController(settings).EditWeblogTemporarySettings(owner); + => new StaticSitePreferencesController(settings).EditWeblogTemporarySettings(owner); } } \ No newline at end of file