From caaf34918e196bd964875a8e843283d4e2d81b88 Mon Sep 17 00:00:00 2001 From: Geoffroy Bonneville Date: Wed, 27 Sep 2017 18:01:21 +0200 Subject: [PATCH] Main page now uses Frame to change views when selecting items Backgrounds unified Menu items can be disabled thanks to custom ListView control --- ModernKeePass/Common/DatabaseHelper.cs | 6 +- ModernKeePass/Controls/ListViewWithDisable.cs | 20 +++++ ModernKeePass/Interfaces/IIsEnabled.cs | 7 ++ ModernKeePass/MainPage.xaml | 56 +++++-------- ModernKeePass/MainPage.xaml.cs | 79 ++++--------------- ModernKeePass/Models/MainMenuItem.cs | 17 ++++ ModernKeePass/ModernKeePass.csproj | 22 +++++- .../ModernKeePass.csproj.DotSettings | 2 + ModernKeePass/Pages/GroupDetailPage.xaml | 1 + ModernKeePass/Pages/GroupDetailPage.xaml.cs | 16 ++-- ModernKeePass/Pages/OpenDatabasePage.xaml | 37 +++++++++ ModernKeePass/Pages/OpenDatabasePage.xaml.cs | 61 ++++++++++++++ ModernKeePass/Pages/SaveDatabasePage.xaml | 28 +++++++ ModernKeePass/Pages/SaveDatabasePage.xaml.cs | 39 +++++++++ ModernKeePass/Properties/AssemblyInfo.cs | 4 +- ModernKeePass/ViewModels/DatabaseVm.cs | 25 ++++++ ModernKeePass/ViewModels/GroupVm.cs | 3 +- ModernKeePass/ViewModels/HomeVm.cs | 24 ------ ModernKeePass/ViewModels/MainVm.cs | 10 +++ 19 files changed, 319 insertions(+), 138 deletions(-) create mode 100644 ModernKeePass/Controls/ListViewWithDisable.cs create mode 100644 ModernKeePass/Interfaces/IIsEnabled.cs create mode 100644 ModernKeePass/Models/MainMenuItem.cs create mode 100644 ModernKeePass/ModernKeePass.csproj.DotSettings create mode 100644 ModernKeePass/Pages/OpenDatabasePage.xaml create mode 100644 ModernKeePass/Pages/OpenDatabasePage.xaml.cs create mode 100644 ModernKeePass/Pages/SaveDatabasePage.xaml create mode 100644 ModernKeePass/Pages/SaveDatabasePage.xaml.cs create mode 100644 ModernKeePass/ViewModels/DatabaseVm.cs delete mode 100644 ModernKeePass/ViewModels/HomeVm.cs create mode 100644 ModernKeePass/ViewModels/MainVm.cs diff --git a/ModernKeePass/Common/DatabaseHelper.cs b/ModernKeePass/Common/DatabaseHelper.cs index fe3153d..adc8966 100644 --- a/ModernKeePass/Common/DatabaseHelper.cs +++ b/ModernKeePass/Common/DatabaseHelper.cs @@ -60,7 +60,11 @@ namespace ModernKeePass.Common public void Save() { _pwDatabase.Save(new NullStatusLogger()); - //_pwDatabase.Close(); + } + + public void Close() + { + _pwDatabase.Close(); } } } diff --git a/ModernKeePass/Controls/ListViewWithDisable.cs b/ModernKeePass/Controls/ListViewWithDisable.cs new file mode 100644 index 0000000..74b2a66 --- /dev/null +++ b/ModernKeePass/Controls/ListViewWithDisable.cs @@ -0,0 +1,20 @@ +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using ModernKeePass.Interfaces; + +namespace ModernKeePass.Controls +{ + public class ListViewWithDisable: ListView + { + protected override void PrepareContainerForItemOverride(DependencyObject element, object item) + { + base.PrepareContainerForItemOverride(element, item); + + var container = element as ListViewItem; + var binaryItem = item as IIsEnabled; + if (container == null || binaryItem == null) return; + container.IsEnabled = binaryItem.IsEnabled; + container.IsHitTestVisible = binaryItem.IsEnabled; + } + } +} diff --git a/ModernKeePass/Interfaces/IIsEnabled.cs b/ModernKeePass/Interfaces/IIsEnabled.cs new file mode 100644 index 0000000..cfed3ab --- /dev/null +++ b/ModernKeePass/Interfaces/IIsEnabled.cs @@ -0,0 +1,7 @@ +namespace ModernKeePass.Interfaces +{ + public interface IIsEnabled + { + bool IsEnabled { get; } + } +} diff --git a/ModernKeePass/MainPage.xaml b/ModernKeePass/MainPage.xaml index b0a737e..4b54697 100644 --- a/ModernKeePass/MainPage.xaml +++ b/ModernKeePass/MainPage.xaml @@ -1,62 +1,46 @@  - + + + + - + - + - + - - - + + + - - Save - New - File - Recent files - Coming soon - Url files - Coming soon - - - - - - - - - - - - - - - - - -