diff --git a/ModernKeePass/Actions/ClipboardAction.cs b/ModernKeePass/Actions/ClipboardAction.cs
new file mode 100644
index 0000000..5eceb9e
--- /dev/null
+++ b/ModernKeePass/Actions/ClipboardAction.cs
@@ -0,0 +1,26 @@
+using Windows.ApplicationModel.DataTransfer;
+using Windows.UI.Xaml;
+using Microsoft.Xaml.Interactivity;
+
+namespace ModernKeePass.Actions
+{
+ public class ClipboardAction : DependencyObject, IAction
+ {
+ public string Text
+ {
+ get { return (string)GetValue(TextProperty); }
+ set { SetValue(TextProperty, value); }
+ }
+
+ public static readonly DependencyProperty TextProperty =
+ DependencyProperty.Register("Text", typeof(string), typeof(ClipboardAction), new PropertyMetadata(string.Empty));
+
+ public object Execute(object sender, object parameter)
+ {
+ var dataPackage = new DataPackage { RequestedOperation = DataPackageOperation.Copy };
+ dataPackage.SetText(Text);
+ Clipboard.SetContent(dataPackage);
+ return null;
+ }
+ }
+}
diff --git a/ModernKeePass/Common/ToastNotificationHelper.cs b/ModernKeePass/Common/ToastNotificationHelper.cs
index d81eb73..2da2b4e 100644
--- a/ModernKeePass/Common/ToastNotificationHelper.cs
+++ b/ModernKeePass/Common/ToastNotificationHelper.cs
@@ -2,7 +2,6 @@
using Windows.Data.Json;
using Windows.Data.Xml.Dom;
using Windows.UI.Notifications;
-using Windows.UI.Xaml;
using ModernKeePass.Interfaces;
using ModernKeePass.ViewModels;
@@ -12,7 +11,6 @@ namespace ModernKeePass.Common
{
public static void ShowMovedToast(IPwEntity entity, string action, string text)
{
- var app = (App)Application.Current;
var entityType = entity is GroupVm ? "Group" : "Entry";
var notificationXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02);
var toastElements = notificationXml.GetElementsByTagName("text");
diff --git a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml
index fe25eee..0132d17 100644
--- a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml
+++ b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml
@@ -8,8 +8,6 @@
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
xmlns:actions="using:ModernKeePass.Actions"
xmlns:converters="using:ModernKeePass.Converters"
- xmlns:local="using:ModernKeePass.Controls"
- xmlns:viewModels="using:ModernKeePass.ViewModels"
mc:Ignorable="d"
d:DesignHeight="120"
d:DesignWidth="550" >
@@ -18,13 +16,7 @@
-
-
@@ -36,7 +28,7 @@
-
+
@@ -45,8 +37,8 @@
diff --git a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs
index 00e1c37..29079aa 100644
--- a/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs
+++ b/ModernKeePass/Controls/OpenDatabaseUserControl.xaml.cs
@@ -1,17 +1,24 @@
using System;
+using System.ComponentModel;
using Windows.Storage.Pickers;
using Windows.System;
using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
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
namespace ModernKeePass.Controls
{
- public sealed partial class OpenDatabaseUserControl
+ public sealed partial class OpenDatabaseUserControl: INotifyPropertyChanged
{
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ public double PasswordComplexityIndicator { get; private set; }
+
public bool CreateNew
{
get { return (bool)GetValue(CreateNewProperty); }
@@ -26,7 +33,7 @@ namespace ModernKeePass.Controls
public string Password
{
- get { return (string)GetValue(PasswordProperty); }
+ get { return (string) GetValue(PasswordProperty); }
set { SetValue(PasswordProperty, value); }
}
public static readonly DependencyProperty PasswordProperty =
@@ -35,7 +42,12 @@ namespace ModernKeePass.Controls
typeof(string),
typeof(OpenDatabaseUserControl),
new PropertyMetadata(string.Empty, (o, args) => { }));
-
+
+ private void NotifyPropertyChanged(string propertyName)
+ {
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+ }
+
public OpenDatabaseUserControl()
{
InitializeComponent();
@@ -88,5 +100,12 @@ namespace ModernKeePass.Controls
app.Database.KeyFile = file;
StatusTextBlock.Text = $"Key file: {file.Name}";
}
+
+ private void PasswordBox_OnPasswordChanged(object sender, RoutedEventArgs e)
+ {
+ var passwordBox = sender as PasswordBox;
+ PasswordComplexityIndicator = QualityEstimation.EstimatePasswordBits(passwordBox?.Password.ToCharArray());
+ NotifyPropertyChanged("PasswordComplexityIndicator");
+ }
}
}
diff --git a/ModernKeePass/ModernKeePass.csproj b/ModernKeePass/ModernKeePass.csproj
index 958e32b..d0c367c 100644
--- a/ModernKeePass/ModernKeePass.csproj
+++ b/ModernKeePass/ModernKeePass.csproj
@@ -108,6 +108,7 @@
true
+
App.xaml
@@ -161,7 +162,6 @@
WelcomePage.xaml
-
diff --git a/ModernKeePass/Pages/EntryDetailPage.xaml b/ModernKeePass/Pages/EntryDetailPage.xaml
index 12146f5..c445d87 100644
--- a/ModernKeePass/Pages/EntryDetailPage.xaml
+++ b/ModernKeePass/Pages/EntryDetailPage.xaml
@@ -428,10 +428,22 @@
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
diff --git a/ModernKeePass/Pages/EntryDetailPage.xaml.cs b/ModernKeePass/Pages/EntryDetailPage.xaml.cs
index 82e97b4..95892a3 100644
--- a/ModernKeePass/Pages/EntryDetailPage.xaml.cs
+++ b/ModernKeePass/Pages/EntryDetailPage.xaml.cs
@@ -1,4 +1,5 @@
using System;
+using Windows.ApplicationModel.DataTransfer;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
@@ -101,6 +102,5 @@ namespace ModernKeePass.Pages
// TODO: Show some error
}
}
-
}
}
diff --git a/ModernKeePass/ViewModels/Controls/OpenDatabaseUserControlVM.cs b/ModernKeePass/ViewModels/Controls/OpenDatabaseUserControlVM.cs
deleted file mode 100644
index 6d7a96f..0000000
--- a/ModernKeePass/ViewModels/Controls/OpenDatabaseUserControlVM.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using ModernKeePass.Common;
-using ModernKeePassLib.Cryptography;
-
-namespace ModernKeePass.ViewModels
-{
- public class OpenDatabaseUserControlVm: NotifyPropertyChangedBase
- {
- private string _password;
-
- public string Password
- {
- get { return _password; }
- set
- {
- _password = value;
- OnPropertyChanged("PasswordComplexityIndicator");
- }
- }
-
- public double PasswordComplexityIndicator => QualityEstimation.EstimatePasswordBits(Password.ToCharArray());
- }
-}