From 2f30389f6c20d7416f92fe55eca3d352a1ffc8e5 Mon Sep 17 00:00:00 2001 From: Geoffroy BONNEVILLE Date: Mon, 4 May 2020 20:56:19 +0200 Subject: [PATCH] Big redesign (closer to Win10 UWP) Replaced breadcrumb with Up button Search button now integrated in top menu Hamburger menu make better use of visual states Better visual states changes when size changes --- .../HamburgerButtonStyle.xaml | 8 +- .../NoBorderButtonStyle.xaml | 2 +- .../ResourceDictionaries/Styles.xaml | 27 +- ModernKeePass/ViewModels/GroupDetailVm.cs | 7 +- ModernKeePass/Views/EntryDetailPage.xaml | 54 ++-- ModernKeePass/Views/EntryDetailPage.xaml.cs | 20 +- ModernKeePass/Views/GroupDetailPage.xaml | 81 ++--- ModernKeePass/Views/GroupDetailPage.xaml.cs | 37 +-- ModernKeePass/Views/MainPage.xaml | 4 +- .../SettingsNewDatabasePage.xaml | 2 +- .../HamburgerMenuUserControl.xaml | 287 ++++++++++-------- .../HamburgerMenuUserControl.xaml.cs | 35 +-- .../UserControls/TopMenuUserControl.xaml | 57 +++- .../UserControls/TopMenuUserControl.xaml.cs | 20 +- .../ViewModels/UserControls/TopMenuVm.cs | 33 +- 15 files changed, 378 insertions(+), 296 deletions(-) diff --git a/ModernKeePass/ResourceDictionaries/HamburgerButtonStyle.xaml b/ModernKeePass/ResourceDictionaries/HamburgerButtonStyle.xaml index abf2cc6..89f74ae 100644 --- a/ModernKeePass/ResourceDictionaries/HamburgerButtonStyle.xaml +++ b/ModernKeePass/ResourceDictionaries/HamburgerButtonStyle.xaml @@ -13,14 +13,14 @@ - + Storyboard.TargetProperty="Background"> + - + @@ -52,7 +52,7 @@ - @@ -50,9 +42,9 @@ - + @@ -84,6 +76,9 @@ - 0 0 + 5 + 0 + + diff --git a/ModernKeePass/ViewModels/GroupDetailVm.cs b/ModernKeePass/ViewModels/GroupDetailVm.cs index c04176c..b15ccfe 100644 --- a/ModernKeePass/ViewModels/GroupDetailVm.cs +++ b/ModernKeePass/ViewModels/GroupDetailVm.cs @@ -178,12 +178,7 @@ namespace ModernKeePass.ViewModels await _mediator.Send(new RemoveGroupCommand {ParentGroupId = _parent.Id, GroupId = Id }); GoToGroup(destinationId); } - - public async Task> Search(string queryText) - { - return await _mediator.Send(new SearchEntriesQuery {GroupId = Id, SearchText = queryText}); - } - + private async Task SaveChanges() { try diff --git a/ModernKeePass/Views/EntryDetailPage.xaml b/ModernKeePass/Views/EntryDetailPage.xaml index 05c94d9..8f7bc0d 100644 --- a/ModernKeePass/Views/EntryDetailPage.xaml +++ b/ModernKeePass/Views/EntryDetailPage.xaml @@ -365,19 +365,20 @@ - + - + - + @@ -456,36 +457,38 @@ - + - - - - - - - - - - + + + - + - @@ -505,11 +509,7 @@ - - + 640 && e.NewSize.Width <= 1008) + { + VisualStateManager.GoToState(this, "Medium", true); + VisualStateManager.GoToState(TopMenu, "Overflowed", true); + VisualStateManager.GoToState(HamburgerMenu, "Collapsed", true); + } + else + { + VisualStateManager.GoToState(this, "Large", true); + VisualStateManager.GoToState(TopMenu, "Overflowed", true); + VisualStateManager.GoToState(HamburgerMenu, "Collapsed", true); + } } } } diff --git a/ModernKeePass/Views/GroupDetailPage.xaml b/ModernKeePass/Views/GroupDetailPage.xaml index 21ad291..a395f40 100644 --- a/ModernKeePass/Views/GroupDetailPage.xaml +++ b/ModernKeePass/Views/GroupDetailPage.xaml @@ -36,21 +36,20 @@ - + - + @@ -116,7 +115,7 @@ - - - - - - - - - - - + + + - + - @@ -233,11 +234,7 @@ - - + - - - - - - - - - + @@ -301,9 +274,6 @@ - - - @@ -311,9 +281,6 @@ - - - diff --git a/ModernKeePass/Views/GroupDetailPage.xaml.cs b/ModernKeePass/Views/GroupDetailPage.xaml.cs index 46f1079..faad56f 100644 --- a/ModernKeePass/Views/GroupDetailPage.xaml.cs +++ b/ModernKeePass/Views/GroupDetailPage.xaml.cs @@ -83,26 +83,27 @@ namespace ModernKeePass.Views e.Cancel = !Model.IsEditMode; e.Data.RequestedOperation = DataPackageOperation.Move; } - - private async void SearchBox_OnSuggestionsRequested(SearchBox sender, SearchBoxSuggestionsRequestedEventArgs args) - { - var imageUri = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appdata://Assets/ModernKeePass-SmallLogo.scale-80.png")); - var results = (await Model.Search(args.QueryText)).Take(5); - foreach (var result in results) - { - args.Request.SearchSuggestionCollection.AppendResultSuggestion(result.Title, result.ParentGroupName, result.Id, imageUri, string.Empty); - } - } - - private void SearchBox_OnResultSuggestionChosen(SearchBox sender, SearchBoxResultSuggestionChosenEventArgs args) - { - Model.GoToEntry(args.Tag); - } - + private void GroupDetailPage_OnSizeChanged(object sender, SizeChangedEventArgs e) { - VisualStateManager.GoToState(this, e.NewSize.Width < 800 ? "Small" : "Large", true); - VisualStateManager.GoToState(TopMenu, e.NewSize.Width < 800 ? "Collapsed" : "Overflowed", true); + if (e.NewSize.Width <= 640) + { + VisualStateManager.GoToState(this, "Small", true); + VisualStateManager.GoToState(TopMenu, "Collapsed", true); + VisualStateManager.GoToState(HamburgerMenu, "Hidden", true); + } + else if (e.NewSize.Width > 640 && e.NewSize.Width <= 1008) + { + VisualStateManager.GoToState(this, "Medium", true); + VisualStateManager.GoToState(TopMenu, "Overflowed", true); + VisualStateManager.GoToState(HamburgerMenu, "Collapsed", true); + } + else + { + VisualStateManager.GoToState(this, "Large", true); + VisualStateManager.GoToState(TopMenu, "Overflowed", true); + VisualStateManager.GoToState(HamburgerMenu, "Expanded", true); + } } #endregion diff --git a/ModernKeePass/Views/MainPage.xaml b/ModernKeePass/Views/MainPage.xaml index 68949ba..f87a9f9 100644 --- a/ModernKeePass/Views/MainPage.xaml +++ b/ModernKeePass/Views/MainPage.xaml @@ -27,7 +27,7 @@ - + @@ -44,7 +44,7 @@ + + - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml.cs b/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml.cs index 7843b35..8571a1d 100644 --- a/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml.cs +++ b/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml.cs @@ -51,19 +51,7 @@ namespace ModernKeePass.Views.UserControls typeof(string), typeof(HamburgerMenuUserControl), new PropertyMetadata("Title", (o, args) => { })); - - public object ResizeTarget - { - get { return GetValue(ResizeTargetProperty); } - set { SetValue(ResizeTargetProperty, value); } - } - public static readonly DependencyProperty ResizeTargetProperty = - DependencyProperty.Register( - nameof(ResizeTarget), - typeof(object), - typeof(HamburgerMenuUserControl), - new PropertyMetadata(null, (o, args) => { })); - + public Visibility IsButtonVisible { get { return (Visibility)GetValue(IsButtonVisibleProperty); } @@ -112,19 +100,7 @@ namespace ModernKeePass.Views.UserControls typeof(int), typeof(HamburgerMenuUserControl), new PropertyMetadata(-1, (o, args) => { })); - - public bool IsOpen - { - get { return (bool)GetValue(IsOpenProperty); } - set { SetValue(IsOpenProperty, value); } - } - public static readonly DependencyProperty IsOpenProperty = - DependencyProperty.Register( - nameof(IsOpen), - typeof(bool), - typeof(HamburgerMenuUserControl), - new PropertyMetadata(false, (o, args) => { })); - + public ICommand ActionButtonCommand { get { return (ICommand)GetValue(ActionButtonCommandProperty); } @@ -143,5 +119,12 @@ namespace ModernKeePass.Views.UserControls { SelectionChanged?.Invoke(sender, e); } + + private void ToggleButton_OnUnchecked(object sender, RoutedEventArgs e) + { + var parent = Parent as FrameworkElement; + if (parent == null) return; + VisualStateManager.GoToState(this, parent.ActualWidth <= 640 ? "Hidden" : "Collapsed", true); + } } } diff --git a/ModernKeePass/Views/UserControls/TopMenuUserControl.xaml b/ModernKeePass/Views/UserControls/TopMenuUserControl.xaml index 26d816e..e595cb7 100644 --- a/ModernKeePass/Views/UserControls/TopMenuUserControl.xaml +++ b/ModernKeePass/Views/UserControls/TopMenuUserControl.xaml @@ -4,15 +4,18 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:interactivity="using:Microsoft.Xaml.Interactivity" + xmlns:core="using:Microsoft.Xaml.Interactions.Core" + xmlns:actions="using:ModernKeePass.Actions" mc:Ignorable="d"> @@ -26,6 +29,9 @@ + + + @@ -36,6 +42,9 @@ + + + @@ -56,13 +65,12 @@ - + + + + + + + + + +