diff --git a/ModernKeePass/Controls/TextBoxWithButton.cs b/ModernKeePass/Controls/TextBoxWithButton.cs
index 602fadd..99f0e5f 100644
--- a/ModernKeePass/Controls/TextBoxWithButton.cs
+++ b/ModernKeePass/Controls/TextBoxWithButton.cs
@@ -1,6 +1,7 @@
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
namespace ModernKeePass.Controls
{
@@ -43,6 +44,17 @@ namespace ModernKeePass.Controls
typeof(TextBoxWithButton),
new PropertyMetadata(true, (o, args) => { }));
+ public FlyoutBase ButtonFlyout
+ {
+ get { return (FlyoutBase)GetValue(ButtonFlyoutProperty); }
+ set { SetValue(ButtonFlyoutProperty, value); }
+ }
+ public static readonly DependencyProperty ButtonFlyoutProperty =
+ DependencyProperty.Register(
+ "ButtonFlyout",
+ typeof(FlyoutBase),
+ typeof(TextBoxWithButton),
+ new PropertyMetadata(null, (o, args) => { }));
protected override void OnApplyTemplate()
{
diff --git a/ModernKeePass/ModernKeePass.App.csproj b/ModernKeePass/ModernKeePass.App.csproj
index ed9c35d..7c74128 100644
--- a/ModernKeePass/ModernKeePass.App.csproj
+++ b/ModernKeePass/ModernKeePass.App.csproj
@@ -123,7 +123,6 @@
-
DonatePage.xaml
diff --git a/ModernKeePass/Strings/en-US/CodeBehind.resw b/ModernKeePass/Strings/en-US/CodeBehind.resw
index ba9af2f..e3273cf 100644
--- a/ModernKeePass/Strings/en-US/CodeBehind.resw
+++ b/ModernKeePass/Strings/en-US/CodeBehind.resw
@@ -267,4 +267,7 @@
Recycle Bin
+
+ Current
+
\ No newline at end of file
diff --git a/ModernKeePass/Strings/fr-FR/CodeBehind.resw b/ModernKeePass/Strings/fr-FR/CodeBehind.resw
index e8e76d4..afbcc62 100644
--- a/ModernKeePass/Strings/fr-FR/CodeBehind.resw
+++ b/ModernKeePass/Strings/fr-FR/CodeBehind.resw
@@ -267,4 +267,7 @@
Corbeille
+
+ Courante
+
\ No newline at end of file
diff --git a/ModernKeePass/Styles/HamburgerButtonStyle.xaml b/ModernKeePass/Styles/HamburgerButtonStyle.xaml
index cecece0..a534789 100644
--- a/ModernKeePass/Styles/HamburgerButtonStyle.xaml
+++ b/ModernKeePass/Styles/HamburgerButtonStyle.xaml
@@ -16,13 +16,13 @@
-
+
-
-
+
+
diff --git a/ModernKeePass/Styles/TextBoxWithButtonStyle.xaml b/ModernKeePass/Styles/TextBoxWithButtonStyle.xaml
index 3664575..973338a 100644
--- a/ModernKeePass/Styles/TextBoxWithButtonStyle.xaml
+++ b/ModernKeePass/Styles/TextBoxWithButtonStyle.xaml
@@ -246,6 +246,9 @@
Content="{TemplateBinding ButtonSymbol}"
IsEnabled="{TemplateBinding IsButtonEnabled}"
VerticalAlignment="Stretch">
+
+
+
diff --git a/ModernKeePass/ViewModels/EntryVm.cs b/ModernKeePass/ViewModels/EntryVm.cs
index 7931110..d19240f 100644
--- a/ModernKeePass/ViewModels/EntryVm.cs
+++ b/ModernKeePass/ViewModels/EntryVm.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
using ModernKeePass.Interfaces;
using ModernKeePass.Services;
using ModernKeePassLib;
@@ -10,7 +11,7 @@ using ModernKeePassLib.Cryptography;
namespace ModernKeePass.ViewModels
{
- public class EntryVm : INotifyPropertyChanged, IPwEntity
+ public class EntryVm : INotifyPropertyChanged, IPwEntity, ISelectableModel
{
public GroupVm ParentGroup { get; private set; }
public GroupVm PreviousGroup { get; private set; }
@@ -19,7 +20,6 @@ namespace ModernKeePass.ViewModels
public bool IsRevealPasswordEnabled => !string.IsNullOrEmpty(Password);
public bool HasExpired => HasExpirationDate && _pwEntry.ExpiryTime < DateTime.Now;
public double PasswordComplexityIndicator => QualityEstimation.EstimatePasswordBits(Password?.ToCharArray());
- public bool IsFirstItem => _pwEntry == null;
public bool UpperCasePatternSelected { get; set; } = true;
public bool LowerCasePatternSelected { get; set; } = true;
public bool DigitsPatternSelected { get; set; } = true;
@@ -33,6 +33,10 @@ namespace ModernKeePass.ViewModels
public string Id => _pwEntry?.Uuid.ToHexString();
public bool IsRecycleOnDelete => _database.RecycleBinEnabled && !ParentGroup.IsSelected;
public IEnumerable BreadCrumb => new List(ParentGroup.BreadCrumb) {ParentGroup};
+ ///
+ /// Determines if the Entry is current or from history
+ ///
+ public bool IsSelected { get; set; } = true;
public double PasswordLength
{
@@ -73,6 +77,7 @@ namespace ModernKeePass.ViewModels
get { return GetEntryValue(PwDefs.UrlField); }
set { SetEntryValue(PwDefs.UrlField, value); }
}
+
public string Notes
{
get { return GetEntryValue(PwDefs.NotesField); }
@@ -102,7 +107,7 @@ namespace ModernKeePass.ViewModels
public bool IsEditMode
{
- get { return _isEditMode; }
+ get { return IsSelected && _isEditMode; }
set
{
_isEditMode = value;
@@ -143,10 +148,13 @@ namespace ModernKeePass.ViewModels
{
get
{
+ var history = new List {this};
foreach (var historyEntry in _pwEntry.History)
{
- yield return new EntryVm(historyEntry, ParentGroup);
+ history.Add(new EntryVm(historyEntry, ParentGroup) {IsSelected = false});
}
+
+ return history;
}
}
@@ -154,6 +162,7 @@ namespace ModernKeePass.ViewModels
private readonly PwEntry _pwEntry;
private readonly IDatabaseService _database;
+ private readonly IResourceService _resource;
private bool _isEditMode;
private bool _isRevealPassword;
private double _passwordLength = 25;
@@ -166,11 +175,12 @@ namespace ModernKeePass.ViewModels
public EntryVm() { }
- internal EntryVm(PwEntry entry, GroupVm parent) : this(entry, parent, DatabaseService.Instance) { }
+ internal EntryVm(PwEntry entry, GroupVm parent) : this(entry, parent, DatabaseService.Instance, new ResourcesService()) { }
- public EntryVm(PwEntry entry, GroupVm parent, IDatabaseService database)
+ public EntryVm(PwEntry entry, GroupVm parent, IDatabaseService database, IResourceService resource)
{
_database = database;
+ _resource = resource;
_pwEntry = entry;
ParentGroup = parent;
}
@@ -254,5 +264,10 @@ namespace ModernKeePass.ViewModels
{
return _pwEntry;
}
+
+ public override string ToString()
+ {
+ return IsSelected ? _resource.GetResourceValue("EntryCurrent") : _pwEntry.LastModificationTime.ToString("g");
+ }
}
}
diff --git a/ModernKeePass/ViewModels/GroupVm.cs b/ModernKeePass/ViewModels/GroupVm.cs
index 81a1848..1ea1b7e 100644
--- a/ModernKeePass/ViewModels/GroupVm.cs
+++ b/ModernKeePass/ViewModels/GroupVm.cs
@@ -45,6 +45,7 @@ namespace ModernKeePass.ViewModels
public bool ShowRestore => IsNotRoot && ParentGroup.IsSelected;
public bool IsRecycleOnDelete => _database.RecycleBinEnabled && !IsSelected && !ParentGroup.IsSelected;
+
///
/// Is the Group the database Recycle Bin?
///
diff --git a/ModernKeePass/ViewModels/HistoryVm.cs b/ModernKeePass/ViewModels/HistoryVm.cs
deleted file mode 100644
index 070a70d..0000000
--- a/ModernKeePass/ViewModels/HistoryVm.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System.Collections.Generic;
-using ModernKeePass.Interfaces;
-
-namespace ModernKeePass.ViewModels
-{
- public class HistoryVm: IHasSelectableObject
- {
- public IEnumerable History { get; }
-
- public HistoryVm() { }
-
- public HistoryVm(IEnumerable history)
- {
- History = history;
- }
-
- public ISelectableModel SelectedItem { get; set; }
- }
-}
\ No newline at end of file
diff --git a/ModernKeePass/Views/EntryDetailPage.xaml b/ModernKeePass/Views/EntryDetailPage.xaml
index 238a400..15cd483 100644
--- a/ModernKeePass/Views/EntryDetailPage.xaml
+++ b/ModernKeePass/Views/EntryDetailPage.xaml
@@ -429,13 +429,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
@@ -464,7 +464,7 @@
-
+
@@ -472,8 +472,8 @@
-
-
+
+
diff --git a/ModernKeePass/Views/EntryDetailPage.xaml.cs b/ModernKeePass/Views/EntryDetailPage.xaml.cs
index 2e44338..2771d7b 100644
--- a/ModernKeePass/Views/EntryDetailPage.xaml.cs
+++ b/ModernKeePass/Views/EntryDetailPage.xaml.cs
@@ -97,5 +97,21 @@ namespace ModernKeePass.Views
{
VisualStateManager.GoToState(this, e.NewSize.Width < 700 ? "Small" : "Large", true);
}
+
+ private void HamburgerMenuUserControl_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ var listView = sender as ListView;
+ EntryVm entry;
+ switch (listView?.SelectedIndex)
+ {
+ case -1:
+ return;
+ default:
+ entry = listView?.SelectedItem as EntryVm;
+ break;
+ }
+
+ StackPanel.DataContext = entry;
+ }
}
}
diff --git a/ModernKeePass/Views/GroupDetailPage.xaml b/ModernKeePass/Views/GroupDetailPage.xaml
index 3ee9dc8..597aa27 100644
--- a/ModernKeePass/Views/GroupDetailPage.xaml
+++ b/ModernKeePass/Views/GroupDetailPage.xaml
@@ -116,7 +116,7 @@
-
+
diff --git a/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml b/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml
index 3216683..8332659 100644
--- a/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml
+++ b/ModernKeePass/Views/UserControls/HamburgerMenuUserControl.xaml
@@ -10,21 +10,22 @@
xmlns:converters="using:ModernKeePass.Converters"
mc:Ignorable="d">
-
+ Foreground="{ThemeResource DefaultTextForegroundThemeBrush}"
+ ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}">
-
+
@@ -34,7 +35,7 @@
-
+
@@ -46,14 +47,6 @@
-
-
-
@@ -76,7 +69,7 @@
-
+