PowerToys/Plugins/Wox.Plugin.WebSearch/WebSearchesSetting.xaml.cs

121 lines
4.2 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using System.Linq;
using System.Windows;
2014-03-29 16:13:36 +08:00
using System.Windows.Controls;
namespace Wox.Plugin.WebSearch
2014-03-29 16:13:36 +08:00
{
/// <summary>
/// Interaction logic for WebSearchesSetting.xaml
/// </summary>
public partial class WebSearchesSetting : UserControl
{
private Settings _settings;
public PluginInitContext Context { get; }
public WebSearchPlugin Plugin { get; }
2015-01-07 18:45:55 +08:00
public WebSearchesSetting(WebSearchPlugin plugin, Settings settings)
2014-03-29 16:13:36 +08:00
{
Context = plugin.Context;
Plugin = plugin;
2014-03-29 16:13:36 +08:00
InitializeComponent();
Loaded += Setting_Loaded;
_settings = settings;
2014-03-29 16:13:36 +08:00
}
private void Setting_Loaded(object sender, RoutedEventArgs e)
{
webSearchView.ItemsSource = _settings.WebSearches;
cbEnableWebSearchSuggestion.IsChecked = _settings.EnableWebSearchSuggestion;
comboBoxSuggestionSource.Visibility = _settings.EnableWebSearchSuggestion
? Visibility.Visible
: Visibility.Collapsed;
2016-01-07 05:34:42 +08:00
List<ComboBoxItem> items = new List<ComboBoxItem>
{
2016-01-07 05:34:42 +08:00
new ComboBoxItem {Content = "Google"},
new ComboBoxItem {Content = "Baidu"}
};
ComboBoxItem selected = items.FirstOrDefault(o => o.Content.ToString() == _settings.WebSearchSuggestionSource);
if (selected == null)
{
selected = items[0];
}
comboBoxSuggestionSource.ItemsSource = items;
comboBoxSuggestionSource.SelectedItem = selected;
2014-03-29 16:13:36 +08:00
}
public void ReloadWebSearchView()
{
webSearchView.Items.Refresh();
}
private void btnAddWebSearch_OnClick(object sender, RoutedEventArgs e)
{
var setting = new WebSearchSetting(this, _settings);
var webSearch = new WebSearch();
setting.AddItem(webSearch);
setting.ShowDialog();
2014-03-29 16:13:36 +08:00
}
private void btnDeleteWebSearch_OnClick(object sender, RoutedEventArgs e)
{
WebSearch selectedWebSearch = webSearchView.SelectedItem as WebSearch;
if (selectedWebSearch != null)
2014-03-29 16:13:36 +08:00
{
string msg = string.Format(Context.API.GetTranslation("wox_plugin_websearch_delete_warning"), selectedWebSearch.Title);
if (MessageBox.Show(msg, string.Empty, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
_settings.WebSearches.Remove(selectedWebSearch);
webSearchView.Items.Refresh();
}
2014-03-29 16:13:36 +08:00
}
else
{
string warning = Context.API.GetTranslation("wox_plugin_websearch_pls_select_web_search");
2015-01-07 18:45:55 +08:00
MessageBox.Show(warning);
2014-03-29 16:13:36 +08:00
}
}
private void btnEditWebSearch_OnClick(object sender, RoutedEventArgs e)
{
WebSearch selectedWebSearch = webSearchView.SelectedItem as WebSearch;
if (selectedWebSearch != null)
2014-03-29 16:13:36 +08:00
{
WebSearchSetting webSearch = new WebSearchSetting(this, _settings);
webSearch.UpdateItem(selectedWebSearch);
2014-03-29 16:13:36 +08:00
webSearch.ShowDialog();
}
else
{
string warning = Context.API.GetTranslation("wox_plugin_websearch_pls_select_web_search");
2015-01-07 18:45:55 +08:00
MessageBox.Show(warning);
2014-03-29 16:13:36 +08:00
}
}
private void CbEnableWebSearchSuggestion_OnChecked(object sender, RoutedEventArgs e)
{
comboBoxSuggestionSource.Visibility = Visibility.Visible;
_settings.EnableWebSearchSuggestion = true;
}
private void CbEnableWebSearchSuggestion_OnUnchecked(object sender, RoutedEventArgs e)
{
comboBoxSuggestionSource.Visibility = Visibility.Collapsed;
_settings.EnableWebSearchSuggestion = false;
}
private void ComboBoxSuggestionSource_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
2014-07-21 22:35:40 +08:00
if (e.AddedItems.Count > 0)
{
_settings.WebSearchSuggestionSource = ((ComboBoxItem)e.AddedItems[0]).Content.ToString();
2014-07-21 22:35:40 +08:00
}
}
2014-03-29 16:13:36 +08:00
}
}