From cb150a312d535d4e5a3b40852fd03f5c0a5b3c37 Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Fri, 20 Nov 2020 15:24:35 -0800 Subject: [PATCH 1/5] Hook up the Save button --- src/cascadia/TerminalSettingsEditor/MainPage.cpp | 12 +++++++++++- src/cascadia/TerminalSettingsEditor/MainPage.h | 4 ++-- src/cascadia/TerminalSettingsEditor/MainPage.xaml | 6 ++++-- .../TerminalSettingsModel/GlobalAppSettings.cpp | 1 + 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.cpp b/src/cascadia/TerminalSettingsEditor/MainPage.cpp index b0283df76a4..88a422d0c22 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.cpp +++ b/src/cascadia/TerminalSettingsEditor/MainPage.cpp @@ -39,7 +39,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation { MainPage::MainPage(const CascadiaSettings& settings) : _settingsSource{ settings }, - _settingsClone{ settings }, + _settingsClone{ settings.Copy() }, _profileToNavItemMap{ winrt::single_threaded_map() } { InitializeComponent(); @@ -150,6 +150,16 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation } } + void MainPage::SaveButton_Click(IInspectable const& /*sender*/, RoutedEventArgs const& /*args*/) + { + _settingsClone.WriteSettingsToDisk(); + } + + void MainPage::ResetButton_Click(IInspectable const& /*sender*/, RoutedEventArgs const& /*args*/) + { + _settingsClone = _settingsSource.Copy(); + } + void MainPage::_InitializeProfilesList() { // Manually create a NavigationViewItem for each profile diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.h b/src/cascadia/TerminalSettingsEditor/MainPage.h index a40ee15e583..ff61a233b54 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.h +++ b/src/cascadia/TerminalSettingsEditor/MainPage.h @@ -17,12 +17,12 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation void OpenJsonTapped(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs const& args); void SettingsNav_Loaded(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args); void SettingsNav_ItemInvoked(Microsoft::UI::Xaml::Controls::NavigationView const& sender, Microsoft::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs const& args); + void SaveButton_Click(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args); + void ResetButton_Click(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args); TYPED_EVENT(OpenJson, winrt::Windows::Foundation::IInspectable, winrt::Microsoft::Terminal::Settings::Model::SettingsTarget); private: - // XAML should data-bind to the _settingsClone - // When "save" is pressed, _settingsSource = _settingsClone winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings _settingsSource; winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings _settingsClone; winrt::Windows::Foundation::Collections::IMap _profileToNavItemMap; diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.xaml b/src/cascadia/TerminalSettingsEditor/MainPage.xaml index 32be814c9e0..5cf5864a944 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.xaml +++ b/src/cascadia/TerminalSettingsEditor/MainPage.xaml @@ -120,11 +120,13 @@ the MIT License. See LICENSE in the project root for license information. -->