From 454e074c44a25111f761029b999198636d0519d3 Mon Sep 17 00:00:00 2001 From: Geoffroy Bonneville Date: Wed, 11 Oct 2017 11:20:05 +0200 Subject: [PATCH] Search shows entries results Selecting a result goes to the Entry Page Auto-save on quit disabled --- ModernKeePass/App.xaml.cs | 3 ++- ModernKeePass/Pages/GroupDetailPage.xaml | 2 +- ModernKeePass/Pages/GroupDetailPage.xaml.cs | 21 ++++++++++++++++++- .../Pages/RecentDatabasesPage.xaml.cs | 9 +------- ModernKeePass/ViewModels/EntryVm.cs | 3 +++ 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/ModernKeePass/App.xaml.cs b/ModernKeePass/App.xaml.cs index ed0a57e..f048081 100644 --- a/ModernKeePass/App.xaml.cs +++ b/ModernKeePass/App.xaml.cs @@ -98,7 +98,8 @@ namespace ModernKeePass private void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); - Database.Save(); + // TODO: save state? + //Database.Save(); deferral.Complete(); } diff --git a/ModernKeePass/Pages/GroupDetailPage.xaml b/ModernKeePass/Pages/GroupDetailPage.xaml index d73ec92..0d80490 100644 --- a/ModernKeePass/Pages/GroupDetailPage.xaml +++ b/ModernKeePass/Pages/GroupDetailPage.xaml @@ -231,7 +231,7 @@ - + diff --git a/ModernKeePass/Pages/GroupDetailPage.xaml.cs b/ModernKeePass/Pages/GroupDetailPage.xaml.cs index 4c7de8b..ed8bb79 100644 --- a/ModernKeePass/Pages/GroupDetailPage.xaml.cs +++ b/ModernKeePass/Pages/GroupDetailPage.xaml.cs @@ -1,5 +1,6 @@ using System; -using Windows.UI.Xaml; +using System.Linq; +using Windows.Storage.Streams; using ModernKeePass.Common; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Navigation; @@ -112,5 +113,23 @@ namespace ModernKeePass.Pages e.DestinationItem.Item = e.SourceItem.Item; } } + + private void SearchBox_OnSuggestionsRequested(SearchBox sender, SearchBoxSuggestionsRequestedEventArgs args) + { + var viewModel = DataContext as GroupVm; + var imageUri = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx://Assets/Logo.scale-80.png")); + var results = viewModel.Entries.Skip(1).Where(e => e.Title.IndexOf(args.QueryText, StringComparison.OrdinalIgnoreCase) >= 0).Take(5); + foreach (var result in results) + { + args.Request.SearchSuggestionCollection.AppendResultSuggestion(result.Title, result.ParentGroup.Name, result.Id, imageUri, string.Empty); + } + } + + private void SearchBox_OnResultSuggestionChosen(SearchBox sender, SearchBoxResultSuggestionChosenEventArgs args) + { + var viewModel = DataContext as GroupVm; + var entry = viewModel.Entries.Skip(1).FirstOrDefault(e => e.Id == args.Tag); + Frame.Navigate(typeof(EntryDetailPage), entry); + } } } diff --git a/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs b/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs index 2df6cb7..66ee557 100644 --- a/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs +++ b/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs @@ -1,13 +1,6 @@ -using System; -using System.Threading.Tasks; -using Windows.Storage.AccessCache; -using Windows.UI.Core; -using Windows.UI.Xaml; -using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Navigation; -using ModernKeePass.Common; using ModernKeePass.Events; -using ModernKeePass.ViewModels; // Pour en savoir plus sur le modèle d'élément Page vierge, consultez la page http://go.microsoft.com/fwlink/?LinkId=234238 diff --git a/ModernKeePass/ViewModels/EntryVm.cs b/ModernKeePass/ViewModels/EntryVm.cs index d34dda5..973c983 100644 --- a/ModernKeePass/ViewModels/EntryVm.cs +++ b/ModernKeePass/ViewModels/EntryVm.cs @@ -24,6 +24,9 @@ namespace ModernKeePass.ViewModels } set { SetEntryValue(PwDefs.TitleField, value); } } + + public string Id => Entry.Uuid.ToHexString(); + public string UserName { get { return GetEntryValue(PwDefs.UserNameField); }