diff --git a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml
index 04044a9..c8b0cf5 100644
--- a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml
+++ b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml
@@ -1,11 +1,11 @@
-
-
+
diff --git a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs
index 727e76e..f48c6e8 100644
--- a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs
+++ b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs
@@ -6,6 +6,7 @@ using Windows.UI.Xaml;
using Windows.UI.Xaml.Input;
using ModernKeePass.Common;
using ModernKeePass.Events;
+using ModernKeePassLib.Cryptography;
// Pour en savoir plus sur le modèle d'élément Contrôle utilisateur, consultez la page http://go.microsoft.com/fwlink/?LinkId=234236
@@ -23,7 +24,19 @@ namespace ModernKeePass.Controls
"CreateNew",
typeof(bool),
typeof(OpenDatabaseUserControl),
- new PropertyMetadata(null, (o, args) => { }));
+ new PropertyMetadata(false, (o, args) => { }));
+
+ public string Password
+ {
+ get { return (string)GetValue(PasswordProperty); }
+ set { SetValue(PasswordProperty, value); }
+ }
+ public static readonly DependencyProperty PasswordProperty =
+ DependencyProperty.Register(
+ "Password",
+ typeof(string),
+ typeof(OpenDatabaseUserControl),
+ new PropertyMetadata(string.Empty, (o, args) => { }));
public OpenDatabaseUserControl()
{
diff --git a/ModernKeePass/Converters/ProgressBarLegalValuesConverter.cs b/ModernKeePass/Converters/ProgressBarLegalValuesConverter.cs
new file mode 100644
index 0000000..b6b84f4
--- /dev/null
+++ b/ModernKeePass/Converters/ProgressBarLegalValuesConverter.cs
@@ -0,0 +1,27 @@
+using System;
+using Windows.UI.Xaml.Data;
+
+namespace ModernKeePass.Converters
+{
+ public class ProgressBarLegalValuesConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, string language)
+ {
+ var legalValuesOptionString = parameter as string;
+ var legalValuesOptions = legalValuesOptionString?.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
+ if (legalValuesOptions == null || legalValuesOptions.Length != 2) return 0;
+
+ var minValue = double.Parse(legalValuesOptions[0]);
+ var maxValue = double.Parse(legalValuesOptions[1]);
+ var count = value is double ? (double)value : 0;
+ if (count > maxValue) return maxValue;
+ if (count < minValue) return minValue;
+ return count;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, string language)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/ModernKeePass/ModernKeePass.csproj b/ModernKeePass/ModernKeePass.csproj
index 91c5dc2..4ebea25 100644
--- a/ModernKeePass/ModernKeePass.csproj
+++ b/ModernKeePass/ModernKeePass.csproj
@@ -127,6 +127,7 @@
+
@@ -163,6 +164,7 @@
+
diff --git a/ModernKeePass/Pages/AboutPage.xaml b/ModernKeePass/Pages/AboutPage.xaml
index 15447b0..cdd4f63 100644
--- a/ModernKeePass/Pages/AboutPage.xaml
+++ b/ModernKeePass/Pages/AboutPage.xaml
@@ -2,7 +2,6 @@
x:Class="ModernKeePass.Pages.AboutPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:ModernKeePass.Pages"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
diff --git a/ModernKeePass/Pages/AboutPage.xaml.cs b/ModernKeePass/Pages/AboutPage.xaml.cs
index e171fa9..56c46e9 100644
--- a/ModernKeePass/Pages/AboutPage.xaml.cs
+++ b/ModernKeePass/Pages/AboutPage.xaml.cs
@@ -1,30 +1,15 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Navigation;
-
-// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
namespace ModernKeePass.Pages
{
///
/// An empty page that can be used on its own or navigated to within a Frame.
///
- public sealed partial class AboutPage : Page
+ public sealed partial class AboutPage
{
public AboutPage()
{
- this.InitializeComponent();
+ InitializeComponent();
}
}
}
diff --git a/ModernKeePass/Pages/NewDatabasePage.xaml b/ModernKeePass/Pages/NewDatabasePage.xaml
index f857221..b023095 100644
--- a/ModernKeePass/Pages/NewDatabasePage.xaml
+++ b/ModernKeePass/Pages/NewDatabasePage.xaml
@@ -9,17 +9,24 @@
xmlns:viewModels="using:ModernKeePass.ViewModels"
mc:Ignorable="d">
-
+
+
-
+
-
+
New
Create a new password database to the location of your chosing.
-
-
+
+
+
+
+ Password complexity
+
+
+
diff --git a/ModernKeePass/Pages/NewDatabasePage.xaml.cs b/ModernKeePass/Pages/NewDatabasePage.xaml.cs
index c0dc6dd..7cbf989 100644
--- a/ModernKeePass/Pages/NewDatabasePage.xaml.cs
+++ b/ModernKeePass/Pages/NewDatabasePage.xaml.cs
@@ -18,7 +18,7 @@ namespace ModernKeePass.Pages
{
private Frame _mainFrame;
- public OpenVm Model => (OpenVm)DataContext;
+ public NewVm Model => (NewVm)DataContext;
public NewDatabasePage()
{
diff --git a/ModernKeePass/Pages/OpenDatabasePage.xaml b/ModernKeePass/Pages/OpenDatabasePage.xaml
index 655fe11..c132f87 100644
--- a/ModernKeePass/Pages/OpenDatabasePage.xaml
+++ b/ModernKeePass/Pages/OpenDatabasePage.xaml
@@ -21,7 +21,11 @@
Open an existing password database from your PC.
Open an existing password database from an Internet location (not yet implemented).
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ModernKeePass/Pages/SaveDatabasePage.xaml b/ModernKeePass/Pages/SaveDatabasePage.xaml
index 8e7d74a..9f289b9 100644
--- a/ModernKeePass/Pages/SaveDatabasePage.xaml
+++ b/ModernKeePass/Pages/SaveDatabasePage.xaml
@@ -11,6 +11,7 @@
+ Save
This will save and close the currently opened database.
diff --git a/ModernKeePass/ViewModels/NewVm.cs b/ModernKeePass/ViewModels/NewVm.cs
new file mode 100644
index 0000000..da2cd89
--- /dev/null
+++ b/ModernKeePass/ViewModels/NewVm.cs
@@ -0,0 +1,21 @@
+using ModernKeePassLib.Cryptography;
+
+namespace ModernKeePass.ViewModels
+{
+ public class NewVm : OpenVm
+ {
+ private string _password = string.Empty;
+
+ public string Password
+ {
+ get { return _password; }
+ set
+ {
+ _password = value;
+ NotifyPropertyChanged("PasswordComplexityIndicator");
+ }
+ }
+
+ public double PasswordComplexityIndicator => QualityEstimation.EstimatePasswordBits(Password.ToCharArray());
+ }
+}
diff --git a/ModernKeePass/ViewModels/OpenVm.cs b/ModernKeePass/ViewModels/OpenVm.cs
index 51b4e13..4d69b93 100644
--- a/ModernKeePass/ViewModels/OpenVm.cs
+++ b/ModernKeePass/ViewModels/OpenVm.cs
@@ -27,7 +27,7 @@ namespace ModernKeePass.ViewModels
public event PropertyChangedEventHandler PropertyChanged;
- private void NotifyPropertyChanged(string propertyName)
+ protected void NotifyPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
diff --git a/ModernKeePass/ViewModels/RecentVm.cs b/ModernKeePass/ViewModels/RecentVm.cs
index 03d0925..a98cc78 100644
--- a/ModernKeePass/ViewModels/RecentVm.cs
+++ b/ModernKeePass/ViewModels/RecentVm.cs
@@ -9,7 +9,7 @@ namespace ModernKeePass.ViewModels
{
private RecentItemVm _selectedItem;
private ObservableCollection _recentItems = new ObservableCollection();
-
+
public ObservableCollection RecentItems
{
get { return _recentItems; }