diff --git a/ModernKeePass/App.xaml b/ModernKeePass/App.xaml index 0427b85..89ac398 100644 --- a/ModernKeePass/App.xaml +++ b/ModernKeePass/App.xaml @@ -11,6 +11,7 @@ + diff --git a/ModernKeePass/Controls/Breadcrumb.cs b/ModernKeePass/Controls/Breadcrumb.cs new file mode 100644 index 0000000..48a1c56 --- /dev/null +++ b/ModernKeePass/Controls/Breadcrumb.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using ModernKeePass.Interfaces; + +// The Templated Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234235 + +namespace ModernKeePass.Controls +{ + public class Breadcrumb : Control + { + public Breadcrumb() + { + DefaultStyleKey = typeof(Breadcrumb); + } + public string TargetPage + { + get { return (string)GetValue(TargetPageProperty); } + set { SetValue(TargetPageProperty, value); } + } + + public static readonly DependencyProperty TargetPageProperty = + DependencyProperty.Register( + "TargetPage", + typeof(string), + typeof(Breadcrumb), + new PropertyMetadata(string.Empty, (o, args) => { })); + + public Symbol SeparatorSymbol + { + get { return (Symbol)GetValue(SeparatorSymbolProperty); } + set { SetValue(SeparatorSymbolProperty, value); } + } + + public static readonly DependencyProperty SeparatorSymbolProperty = + DependencyProperty.Register( + "SeparatorSymbol", + typeof(Symbol), + typeof(Breadcrumb), + new PropertyMetadata(Symbol.Forward, (o, args) => { })); + + public IEnumerable PathItems + { + get { return (IEnumerable)GetValue(PathItemsProperty); } + set { SetValue(PathItemsProperty, value); } + } + + public static readonly DependencyProperty PathItemsProperty = + DependencyProperty.Register( + "PathItems", + typeof(IEnumerable<>), + typeof(Breadcrumb), + new PropertyMetadata(null, (o, args) => { })); + } +} diff --git a/ModernKeePass/ModernKeePass.App.csproj b/ModernKeePass/ModernKeePass.App.csproj index 369b72a..4cd17da 100644 --- a/ModernKeePass/ModernKeePass.App.csproj +++ b/ModernKeePass/ModernKeePass.App.csproj @@ -114,6 +114,7 @@ App.xaml + @@ -247,6 +248,11 @@ MSBuild:Compile Designer + + Designer + MSBuild:Compile + PreserveNewest + Designer MSBuild:Compile diff --git a/ModernKeePass/Services/DatabaseService.cs b/ModernKeePass/Services/DatabaseService.cs index ad7f2f5..43377f1 100644 --- a/ModernKeePass/Services/DatabaseService.cs +++ b/ModernKeePass/Services/DatabaseService.cs @@ -2,6 +2,7 @@ using System; using System.Threading.Tasks; using Windows.Storage; using Windows.UI.Xaml.Controls; +using Microsoft.HockeyApp; using ModernKeePass.Exceptions; using ModernKeePass.Interfaces; using ModernKeePass.ViewModels; @@ -146,6 +147,7 @@ namespace ModernKeePass.Services } catch (InvalidCompositeKeyException ex) { + HockeyClient.Current.TrackException(ex); throw new ArgumentException(ex.Message, ex); } } diff --git a/ModernKeePass/Styles/BreadcrumbStyle.xaml b/ModernKeePass/Styles/BreadcrumbStyle.xaml new file mode 100644 index 0000000..d6d5ef5 --- /dev/null +++ b/ModernKeePass/Styles/BreadcrumbStyle.xaml @@ -0,0 +1,58 @@ + + + + diff --git a/ModernKeePass/ViewModels/EntryVm.cs b/ModernKeePass/ViewModels/EntryVm.cs index e59fed6..ebb974d 100644 --- a/ModernKeePass/ViewModels/EntryVm.cs +++ b/ModernKeePass/ViewModels/EntryVm.cs @@ -143,6 +143,7 @@ namespace ModernKeePass.ViewModels } } + [Obsolete] public string Path { get diff --git a/ModernKeePass/ViewModels/GroupVm.cs b/ModernKeePass/ViewModels/GroupVm.cs index 5cd1819..b78ed99 100644 --- a/ModernKeePass/ViewModels/GroupVm.cs +++ b/ModernKeePass/ViewModels/GroupVm.cs @@ -93,22 +93,23 @@ namespace ModernKeePass.ViewModels set { SetProperty(ref _isMenuClosed, value); } } - public ObservableCollection BreadCrumb + public Stack BreadCrumb { get { - var groups = new ObservableCollection(); + var groups = new Stack(); var group = this; while (group.ParentGroup != null) { group = group.ParentGroup; - groups.Insert(0, group); + groups.Push(group); } return groups; } } + [Obsolete] public string Path { get diff --git a/ModernKeePass/Views/GroupDetailPage.xaml b/ModernKeePass/Views/GroupDetailPage.xaml index 4609e40..237d16f 100644 --- a/ModernKeePass/Views/GroupDetailPage.xaml +++ b/ModernKeePass/Views/GroupDetailPage.xaml @@ -9,6 +9,7 @@ xmlns:core="using:Microsoft.Xaml.Interactions.Core" xmlns:actions="using:ModernKeePass.Actions" xmlns:templateSelectors="using:ModernKeePass.TemplateSelectors" + xmlns:controls="using:ModernKeePass.Controls" x:Name="PageRoot" x:Class="ModernKeePass.Views.GroupDetailPage" mc:Ignorable="d" @@ -95,7 +96,10 @@ Source="{Binding Entries}" /> + Source="{Binding EntriesZoomedOut}" IsSourceGrouped="True" /> + @@ -131,7 +135,7 @@ - + @@ -141,7 +145,7 @@ - + @@ -210,6 +214,7 @@ - - - - - - @@ -347,7 +346,8 @@ - + +