Fix unselected issue for bookmark plugin by using binding (Don't understand Reason it doesn't work before)

This commit is contained in:
Kevin Zhang 2021-10-25 18:51:34 -05:00
parent 1a5116023e
commit 8a59e87f99
2 changed files with 23 additions and 19 deletions

View file

@ -22,12 +22,12 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="{DynamicResource flowlauncher_plugin_browserbookmark_settings_openBookmarks}" <Label Grid.Column="0" Content="{DynamicResource flowlauncher_plugin_browserbookmark_settings_openBookmarks}"
FontSize="15" Margin="10 5 0 0"/> FontSize="15" Margin="10 5 0 0"/>
<RadioButton Grid.Column="1" Name="NewWindowBrowser" GroupName="OpenSearchBehaviour" <RadioButton Grid.Column="1" Name="NewWindowBrowser"
Content="{DynamicResource flowlauncher_plugin_browserbookmark_settings_newWindow}" IsChecked="{Binding OpenInNewBrowserWindow}"
Click="OnNewBrowserWindowClick" /> Content="{DynamicResource flowlauncher_plugin_browserbookmark_settings_newWindow}"/>
<RadioButton Grid.Column="2" Name="NewTabInBrowser" GroupName="OpenSearchBehaviour" <RadioButton Grid.Column="2" Name="NewTabInBrowser"
Content="{DynamicResource flowlauncher_plugin_browserbookmark_settings_newTab}" IsChecked="{Binding OpenInNewTab, Mode=OneTime}"
Click="OnNewTabClick" /> Content="{DynamicResource flowlauncher_plugin_browserbookmark_settings_newTab}"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" Grid.Row="1" Height="60" Margin="30,20,0,0"> <StackPanel Orientation="Horizontal" VerticalAlignment="Top" Grid.Row="1" Height="60" Margin="30,20,0,0">

View file

@ -3,34 +3,38 @@ using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using Flow.Launcher.Plugin.BrowserBookmark.Models; using Flow.Launcher.Plugin.BrowserBookmark.Models;
using System.Windows.Input; using System.Windows.Input;
using System.ComponentModel;
namespace Flow.Launcher.Plugin.BrowserBookmark.Views namespace Flow.Launcher.Plugin.BrowserBookmark.Views
{ {
/// <summary> /// <summary>
/// Interaction logic for BrowserBookmark.xaml /// Interaction logic for BrowserBookmark.xaml
/// </summary> /// </summary>
public partial class SettingsControl public partial class SettingsControl : INotifyPropertyChanged
{ {
public Settings Settings { get; } public Settings Settings { get; }
public CustomBrowser SelectedCustomBrowser { get; set; } public CustomBrowser SelectedCustomBrowser { get; set; }
public bool OpenInNewBrowserWindow
{
get => Settings.OpenInNewBrowserWindow;
set
{
Settings.OpenInNewBrowserWindow = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(OpenInNewBrowserWindow)));
}
}
public bool OpenInNewTab
{
get => !OpenInNewBrowserWindow;
}
public SettingsControl(Settings settings) public SettingsControl(Settings settings)
{ {
Settings = settings; Settings = settings;
InitializeComponent(); InitializeComponent();
NewWindowBrowser.IsChecked = Settings.OpenInNewBrowserWindow;
NewTabInBrowser.IsChecked = !Settings.OpenInNewBrowserWindow;
} }
private void OnNewBrowserWindowClick(object sender, RoutedEventArgs e) public event PropertyChangedEventHandler PropertyChanged;
{
Settings.OpenInNewBrowserWindow = true;
}
private void OnNewTabClick(object sender, RoutedEventArgs e)
{
Settings.OpenInNewBrowserWindow = false;
}
private void OnChooseClick(object sender, RoutedEventArgs e) private void OnChooseClick(object sender, RoutedEventArgs e)
{ {
@ -61,7 +65,7 @@ namespace Flow.Launcher.Plugin.BrowserBookmark.Views
private void DeleteCustomBrowser(object sender, RoutedEventArgs e) private void DeleteCustomBrowser(object sender, RoutedEventArgs e)
{ {
if(CustomBrowsers.SelectedItem is CustomBrowser selectedCustomBrowser) if (CustomBrowsers.SelectedItem is CustomBrowser selectedCustomBrowser)
{ {
Settings.CustomChromiumBrowsers.Remove(selectedCustomBrowser); Settings.CustomChromiumBrowsers.Remove(selectedCustomBrowser);
} }