diff --git a/ModernKeePass/Controls/PasswordUserControl.xaml b/ModernKeePass/Controls/PasswordUserControl.xaml
index d27b6e6..07f9ffd 100644
--- a/ModernKeePass/Controls/PasswordUserControl.xaml
+++ b/ModernKeePass/Controls/PasswordUserControl.xaml
@@ -6,7 +6,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
- d:DesignHeight="60"
+ d:DesignHeight="65"
d:DesignWidth="400">
@@ -15,6 +15,6 @@
-
+
diff --git a/ModernKeePass/Controls/PasswordUserControl.xaml.cs b/ModernKeePass/Controls/PasswordUserControl.xaml.cs
index 904e272..a01e74b 100644
--- a/ModernKeePass/Controls/PasswordUserControl.xaml.cs
+++ b/ModernKeePass/Controls/PasswordUserControl.xaml.cs
@@ -1,17 +1,8 @@
-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.System;
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;
+using ModernKeePass.Events;
// Pour en savoir plus sur le modèle d'élément Contrôle utilisateur, consultez la page http://go.microsoft.com/fwlink/?LinkId=234236
@@ -21,7 +12,23 @@ namespace ModernKeePass.Controls
{
public PasswordUserControl()
{
- this.InitializeComponent();
+ InitializeComponent();
+ PasswordBox.Focus(FocusState.Programmatic);
+ }
+
+ public delegate void PasswordCheckedEventHandler(object sender, DatabaseEventArgs e);
+ public event PasswordCheckedEventHandler PasswordChecked;
+
+ private void OpenButton_OnClick(object sender, RoutedEventArgs e)
+ {
+ var app = (App)Application.Current;
+ StatusTextBlock.Text = app.Database.Open(PasswordBox.Password);
+ PasswordChecked(this, new DatabaseEventArgs { IsOpen = app.Database.IsOpen });
+ }
+
+ private void PasswordBox_KeyDown(object sender, KeyRoutedEventArgs e)
+ {
+ if (e.Key == VirtualKey.Enter) OpenButton_OnClick(null, null);
}
}
}
diff --git a/ModernKeePass/Events/DatabaseEventArgs.cs b/ModernKeePass/Events/DatabaseEventArgs.cs
new file mode 100644
index 0000000..06a6960
--- /dev/null
+++ b/ModernKeePass/Events/DatabaseEventArgs.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace ModernKeePass.Events
+{
+ public class DatabaseEventArgs: EventArgs
+ {
+ public bool IsOpen { get; set; }
+ }
+}
diff --git a/ModernKeePass/Models/RecentItem.cs b/ModernKeePass/Models/RecentItem.cs
index 72e3d72..8d996c5 100644
--- a/ModernKeePass/Models/RecentItem.cs
+++ b/ModernKeePass/Models/RecentItem.cs
@@ -1,8 +1,19 @@
-namespace ModernKeePass.Models
+using System.ComponentModel;
+using Windows.UI.Xaml;
+
+namespace ModernKeePass.Models
{
- public class RecentItem
+ public class RecentItem: INotifyPropertyChanged
{
public string Token { get; set; }
public string Name { get; set; }
+ public Visibility PasswordVisibility { get; set; } = Visibility.Collapsed;
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ public void NotifyPropertyChanged(string propertyName)
+ {
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+ }
}
}
diff --git a/ModernKeePass/ModernKeePass.csproj b/ModernKeePass/ModernKeePass.csproj
index 42c6d77..7e60fe7 100644
--- a/ModernKeePass/ModernKeePass.csproj
+++ b/ModernKeePass/ModernKeePass.csproj
@@ -120,6 +120,7 @@
PasswordUserControl.xaml
+
MainPage.xaml
diff --git a/ModernKeePass/Pages/OpenDatabasePage.xaml b/ModernKeePass/Pages/OpenDatabasePage.xaml
index 2c008ad..2f13e0b 100644
--- a/ModernKeePass/Pages/OpenDatabasePage.xaml
+++ b/ModernKeePass/Pages/OpenDatabasePage.xaml
@@ -4,36 +4,17 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:ModernKeePass.ViewModels"
+ xmlns:local="using:ModernKeePass.Controls"
x:Class="ModernKeePass.Pages.OpenDatabasePage"
mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/ModernKeePass/Pages/OpenDatabasePage.xaml.cs b/ModernKeePass/Pages/OpenDatabasePage.xaml.cs
index 06a26b2..f9a2b96 100644
--- a/ModernKeePass/Pages/OpenDatabasePage.xaml.cs
+++ b/ModernKeePass/Pages/OpenDatabasePage.xaml.cs
@@ -71,19 +71,12 @@ namespace ModernKeePass.Pages
databaseVm.Name = file.Name;
databaseVm.NotifyPropertyChanged("SelectedVisibility");
databaseVm.NotifyPropertyChanged("Name");
- PasswordBox.Focus(FocusState.Programmatic);
}
- private void OpenButton_OnClick(object sender, RoutedEventArgs e)
+ private void PasswordUserControl_PasswordChecked(object sender, Events.DatabaseEventArgs e)
{
var app = (App)Application.Current;
- StatusTextBlock.Text = app.Database.Open(PasswordBox.Password);
- if (string.IsNullOrEmpty(StatusTextBlock.Text)) _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
- }
-
- private void PasswordBox_KeyDown(object sender, KeyRoutedEventArgs e)
- {
- if (e.Key == VirtualKey.Enter) OpenButton_OnClick(null, null);
+ if (e.IsOpen) _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
}
}
}
diff --git a/ModernKeePass/Pages/RecentDatabasesPage.xaml b/ModernKeePass/Pages/RecentDatabasesPage.xaml
index 794738e..4231026 100644
--- a/ModernKeePass/Pages/RecentDatabasesPage.xaml
+++ b/ModernKeePass/Pages/RecentDatabasesPage.xaml
@@ -1,10 +1,10 @@
@@ -23,7 +23,10 @@
IsSynchronizedWithCurrentItem="False">
-
+
+
+
+
diff --git a/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs b/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs
index 3fd5aa4..5fc85e6 100644
--- a/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs
+++ b/ModernKeePass/Pages/RecentDatabasesPage.xaml.cs
@@ -1,14 +1,14 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
-using ModernKeePass.Common;
-using ModernKeePass.Models;
-using ModernKeePass.ViewModels;
using Windows.Storage;
using Windows.Storage.AccessCache;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
+using ModernKeePass.Common;
+using ModernKeePass.Models;
+using ModernKeePass.ViewModels;
// Pour en savoir plus sur le modèle d'élément Page vierge, consultez la page http://go.microsoft.com/fwlink/?LinkId=234238
@@ -30,7 +30,6 @@ namespace ModernKeePass.Pages
{
base.OnNavigatedTo(e);
_mainFrame = e.Parameter as Frame;
- //RecentListView.SelectedIndex = -1;
var mru = StorageApplicationPermissions.MostRecentlyUsedList;
var recentVm = DataContext as RecentVm;
recentVm.RecentItems = new ObservableCollection(
@@ -41,15 +40,20 @@ namespace ModernKeePass.Pages
private async void RecentListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
- //if (RecentListView == null || e.RemovedItems.Count > 0) return;
var recentItem = e.AddedItems[0] as RecentItem;
var mru = StorageApplicationPermissions.MostRecentlyUsedList;
var file = await mru.GetFileAsync(recentItem.Token) as StorageFile;
var app = (App)Application.Current;
app.Database = new DatabaseHelper(file);
- app.Database.Open("test");
- _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
+ recentItem.PasswordVisibility = Visibility.Visible;
+ recentItem.NotifyPropertyChanged("PasswordVisibility");
+ }
+
+ private void PasswordUserControl_PasswordChecked(object sender, Events.DatabaseEventArgs e)
+ {
+ var app = (App)Application.Current;
+ if (e.IsOpen) _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
}
}
}