diff --git a/PalCalc.UI/Localization/LocalizationCodes.Designer.cs b/PalCalc.UI/Localization/LocalizationCodes.Designer.cs index 43da513..d88455b 100644 --- a/PalCalc.UI/Localization/LocalizationCodes.Designer.cs +++ b/PalCalc.UI/Localization/LocalizationCodes.Designer.cs @@ -885,6 +885,22 @@ public enum LocalizationCodes /// /// Looks up a localized string similar to . /// + LC_TRAITS_SEARCH_DESCRIPTION, + /// + /// Looks up a localized string similar to . + /// + LC_TRAITS_SEARCH_NAME, + /// + /// Looks up a localized string similar to . + /// + LC_TRAITS_SEARCH_SEARCH, + /// + /// Looks up a localized string similar to . + /// + LC_TRAITS_SEARCH_TITLE, + /// + /// Looks up a localized string similar to . + /// LC_UNKNOWN_GUILD, /// /// Looks up a localized string similar to . diff --git a/PalCalc.UI/Localization/LocalizationCodes.resx b/PalCalc.UI/Localization/LocalizationCodes.resx index c9b714d..26b7722 100644 --- a/PalCalc.UI/Localization/LocalizationCodes.resx +++ b/PalCalc.UI/Localization/LocalizationCodes.resx @@ -748,4 +748,16 @@ InternalName + + + + + + + + + + + + \ No newline at end of file diff --git a/PalCalc.UI/Localization/Localizations/en.resx b/PalCalc.UI/Localization/Localizations/en.resx index 5b96d68..3ad9098 100644 --- a/PalCalc.UI/Localization/Localizations/en.resx +++ b/PalCalc.UI/Localization/Localizations/en.resx @@ -770,6 +770,18 @@ Higher values linearly affect time required, depending on how many types of pals Rename Preset '{PresetName}' + + Description + + + Name + + + Search + + + Search Passive Skills + {InternalName} (Unrecognized) diff --git a/PalCalc.UI/View/Main/PalTargetView.xaml b/PalCalc.UI/View/Main/PalTargetView.xaml index c709ae7..381dbdc 100644 --- a/PalCalc.UI/View/Main/PalTargetView.xaml +++ b/PalCalc.UI/View/Main/PalTargetView.xaml @@ -9,6 +9,7 @@ xmlns:dnkc="clr-namespace:DotNetKit.Windows.Controls;assembly=DotNetKit.Wpf.AutoCompleteComboBox" xmlns:itl="clr-namespace:PalCalc.UI.Localization" xmlns:vu="clr-namespace:PalCalc.UI.View.Utils" + xmlns:materialIcons="clr-namespace:Material.Icons.WPF;assembly=Material.Icons.WPF" d:Background="White" mc:Ignorable="d" d:DataContext="{d:DesignInstance vm:PalTargetViewModel, IsDesignTimeCreatable=True}" @@ -34,7 +35,15 @@ - + + + + + + + diff --git a/PalCalc.UI/View/PassivesSearchWindow.xaml b/PalCalc.UI/View/PassivesSearchWindow.xaml new file mode 100644 index 0000000..ce73b4b --- /dev/null +++ b/PalCalc.UI/View/PassivesSearchWindow.xaml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PalCalc.UI/View/PassivesSearchWindow.xaml.cs b/PalCalc.UI/View/PassivesSearchWindow.xaml.cs new file mode 100644 index 0000000..706ed3d --- /dev/null +++ b/PalCalc.UI/View/PassivesSearchWindow.xaml.cs @@ -0,0 +1,38 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using PalCalc.UI.ViewModel.Mapped; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace PalCalc.UI.View +{ + [ObservableObject] + public partial class PassivesSearchWindow : Window + { + [NotifyPropertyChangedFor(nameof(DisplayedOptions))] + [ObservableProperty] + private string searchText; + + public List DisplayedOptions => + PassiveSkillViewModel.All.Where(p => + string.IsNullOrEmpty(SearchText) || + p.Name.Value.Contains(SearchText, StringComparison.OrdinalIgnoreCase) || + p.Description.Value.Contains(SearchText, StringComparison.OrdinalIgnoreCase) + ).ToList(); + + public PassivesSearchWindow() + { + InitializeComponent(); + } + } +} diff --git a/PalCalc.UI/ViewModel/PalTargetViewModel.cs b/PalCalc.UI/ViewModel/PalTargetViewModel.cs index ad1c591..f8fc23f 100644 --- a/PalCalc.UI/ViewModel/PalTargetViewModel.cs +++ b/PalCalc.UI/ViewModel/PalTargetViewModel.cs @@ -2,6 +2,7 @@ using CommunityToolkit.Mvvm.Input; using PalCalc.Model; using PalCalc.UI.Model; +using PalCalc.UI.View; using PalCalc.UI.ViewModel.Mapped; using System; using System.Collections.Generic; @@ -65,6 +66,8 @@ public PalTargetViewModel(SaveGameViewModel sourceSave, PalSpecifierViewModel in OpenPresetsMenuCommand = new RelayCommand(() => PresetsMenuIsOpen = true); presets.PresetSelected += (_) => PresetsMenuIsOpen = false; + + OpenPassivesSearchCommand = new RelayCommand(() => new PassivesSearchWindow().Show()); } private void PalSource_PropertyChanged(object sender, PropertyChangedEventArgs e) @@ -157,5 +160,7 @@ public IEnumerable AvailablePals private bool presetsMenuIsOpen = false; public IRelayCommand OpenPresetsMenuCommand { get; } + + public IRelayCommand OpenPassivesSearchCommand { get; } } }