mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
Code refactor and simplfication
ModernKeePassLib assembly info updated and version fixed
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<UserControl
|
||||
x:Class="ModernKeePass.Controls.PasswordUserControl"
|
||||
x:Class="ModernKeePass.Controls.OpenDatabaseUserControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:ModernKeePass.Controls"
|
@@ -1,29 +1,29 @@
|
||||
using Windows.System;
|
||||
using System;
|
||||
using Windows.System;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Input;
|
||||
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
|
||||
|
||||
namespace ModernKeePass.Controls
|
||||
{
|
||||
public sealed partial class PasswordUserControl : UserControl
|
||||
public sealed partial class OpenDatabaseUserControl : UserControl
|
||||
{
|
||||
public PasswordUserControl()
|
||||
public OpenDatabaseUserControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
PasswordBox.Focus(FocusState.Programmatic);
|
||||
}
|
||||
|
||||
public delegate void PasswordCheckedEventHandler(object sender, DatabaseEventArgs e);
|
||||
public event PasswordCheckedEventHandler PasswordChecked;
|
||||
public delegate void PasswordCheckedEventHandler(object sender, EventArgs e);
|
||||
public event PasswordCheckedEventHandler ValidationChecked;
|
||||
|
||||
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 });
|
||||
ValidationChecked?.Invoke(this, new EventArgs());
|
||||
}
|
||||
|
||||
private void PasswordBox_KeyDown(object sender, KeyRoutedEventArgs e)
|
@@ -1,9 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace ModernKeePass.Events
|
||||
{
|
||||
public class DatabaseEventArgs: EventArgs
|
||||
{
|
||||
public bool IsOpen { get; set; }
|
||||
}
|
||||
}
|
@@ -3,7 +3,6 @@ using System.Linq;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using ModernKeePass.Models;
|
||||
using ModernKeePass.Pages;
|
||||
using ModernKeePass.ViewModels;
|
||||
|
||||
@@ -24,16 +23,16 @@ namespace ModernKeePass
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
var mainMenuItems = new ObservableCollection<MainMenuItem>
|
||||
var mainMenuItems = new ObservableCollection<MainMenuItemVm>
|
||||
{
|
||||
new MainMenuItem {Title = "Open", PageType = typeof(OpenDatabasePage), Destination = MenuFrame, Parameter = Frame, SymbolIcon = Symbol.Page2},
|
||||
new MainMenuItem {Title = "New" /*, PageType = typeof(NewDatabasePage)*/, Destination = MenuFrame, SymbolIcon = Symbol.Add},
|
||||
new MainMenuItem {Title = "Save" , PageType = typeof(SaveDatabasePage), Destination = MenuFrame, Parameter = Frame, SymbolIcon = Symbol.Save},
|
||||
new MainMenuItem {Title = "Recent" , PageType = typeof(RecentDatabasesPage), Destination = MenuFrame, Parameter = Frame, SymbolIcon = Symbol.Copy}
|
||||
new MainMenuItemVm {Title = "Open", PageType = typeof(OpenDatabasePage), Destination = MenuFrame, Parameter = Frame, SymbolIcon = Symbol.Page2},
|
||||
new MainMenuItemVm {Title = "New" /*, PageType = typeof(NewDatabasePage)*/, Destination = MenuFrame, SymbolIcon = Symbol.Add},
|
||||
new MainMenuItemVm {Title = "Save" , PageType = typeof(SaveDatabasePage), Destination = MenuFrame, Parameter = Frame, SymbolIcon = Symbol.Save},
|
||||
new MainMenuItemVm {Title = "Recent" , PageType = typeof(RecentDatabasesPage), Destination = MenuFrame, Parameter = Frame, SymbolIcon = Symbol.Copy}
|
||||
};
|
||||
var app = (App)Application.Current;
|
||||
if (app.Database != null && app.Database.IsOpen)
|
||||
mainMenuItems.Add(new MainMenuItem { Title = app.Database.Name, PageType = typeof(GroupDetailPage), Destination = Frame, Parameter = app.Database.RootGroup, Group = 1, SymbolIcon = Symbol.ProtectedDocument});
|
||||
mainMenuItems.Add(new MainMenuItemVm { Title = app.Database.Name, PageType = typeof(GroupDetailPage), Destination = Frame, Parameter = app.Database.RootGroup, Group = 1, SymbolIcon = Symbol.ProtectedDocument});
|
||||
|
||||
var mainVm = DataContext as MainVm;
|
||||
mainVm.MainMenuItems = from item in mainMenuItems group item by item.Group into grp orderby grp.Key select grp;
|
||||
@@ -42,7 +41,7 @@ namespace ModernKeePass
|
||||
|
||||
private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
var mainMenuItem = e.AddedItems[0] as MainMenuItem;
|
||||
var mainMenuItem = e.AddedItems[0] as MainMenuItemVm;
|
||||
mainMenuItem?.Destination.Navigate(mainMenuItem.PageType, mainMenuItem.Parameter);
|
||||
}
|
||||
}
|
||||
|
@@ -116,18 +116,17 @@
|
||||
<Compile Include="Common\RelayCommand.cs" />
|
||||
<Compile Include="Common\SuspensionManager.cs" />
|
||||
<Compile Include="Controls\ListViewWithDisable.cs" />
|
||||
<Compile Include="Controls\PasswordUserControl.xaml.cs">
|
||||
<DependentUpon>PasswordUserControl.xaml</DependentUpon>
|
||||
<Compile Include="Controls\OpenDatabaseUserControl.xaml.cs">
|
||||
<DependentUpon>OpenDatabaseUserControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Converters\PluralizationConverter.cs" />
|
||||
<Compile Include="Events\DatabaseEventArgs.cs" />
|
||||
<Compile Include="Interfaces\IIsEnabled.cs" />
|
||||
<Compile Include="MainPage.xaml.cs">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Mappings\PwIconToSegoeMapping.cs" />
|
||||
<Compile Include="Models\MainMenuItem.cs" />
|
||||
<Compile Include="Models\RecentItem.cs" />
|
||||
<Compile Include="ViewModels\MainMenuItemVm.cs" />
|
||||
<Compile Include="ViewModels\RecentItemVm.cs" />
|
||||
<Compile Include="Pages\EntryDetailPage.xaml.cs">
|
||||
<DependentUpon>EntryDetailPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -166,7 +165,7 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Page Include="Controls\PasswordUserControl.xaml">
|
||||
<Page Include="Controls\OpenDatabaseUserControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
@@ -217,7 +216,9 @@
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Folder Include="Models\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Assets\Logo.scale-100.png" />
|
||||
<Content Include="Assets\Logo.scale-140.png" />
|
||||
|
@@ -15,6 +15,6 @@
|
||||
<HyperlinkButton Content="Browse files..." Click="ButtonBase_OnClick" />
|
||||
<HyperlinkButton Content="From Url..." IsEnabled="False" />
|
||||
<TextBlock TextWrapping="Wrap" Text="{Binding Name}" Height="auto" Width="auto" FontSize="16" Margin="10,7,0,6" />
|
||||
<local:PasswordUserControl Visibility="{Binding SelectedVisibility}" PasswordChecked="PasswordUserControl_PasswordChecked" />
|
||||
<local:OpenDatabaseUserControl Visibility="{Binding SelectedVisibility}" ValidationChecked="PasswordUserControl_PasswordChecked" />
|
||||
</StackPanel>
|
||||
</Page>
|
||||
|
@@ -73,10 +73,10 @@ namespace ModernKeePass.Pages
|
||||
databaseVm.NotifyPropertyChanged("Name");
|
||||
}
|
||||
|
||||
private void PasswordUserControl_PasswordChecked(object sender, Events.DatabaseEventArgs e)
|
||||
private void PasswordUserControl_PasswordChecked(object sender, EventArgs e)
|
||||
{
|
||||
var app = (App)Application.Current;
|
||||
if (e.IsOpen) _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
|
||||
if (app.Database.IsOpen) _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -25,7 +25,7 @@
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Name}" Width="350" Padding="5" />
|
||||
<local:PasswordUserControl Visibility="{Binding PasswordVisibility}" PasswordChecked="PasswordUserControl_PasswordChecked" />
|
||||
<local:OpenDatabaseUserControl Visibility="{Binding PasswordVisibility}" ValidationChecked="PasswordUserControl_PasswordChecked" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
|
@@ -1,13 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
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
|
||||
@@ -32,17 +30,19 @@ namespace ModernKeePass.Pages
|
||||
_mainFrame = e.Parameter as Frame;
|
||||
var mru = StorageApplicationPermissions.MostRecentlyUsedList;
|
||||
var recentVm = DataContext as RecentVm;
|
||||
recentVm.RecentItems = new ObservableCollection<RecentItem>(
|
||||
if (recentVm == null) return;
|
||||
recentVm.RecentItems = new ObservableCollection<RecentItemVm>(
|
||||
from entry in mru.Entries
|
||||
select new RecentItem() { Name = entry.Metadata, Token = entry.Token });
|
||||
select new RecentItemVm {Name = entry.Metadata, Token = entry.Token});
|
||||
recentVm.NotifyPropertyChanged("RecentItems");
|
||||
}
|
||||
|
||||
private async void RecentListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
var recentItem = e.AddedItems[0] as RecentItem;
|
||||
var recentItem = e.AddedItems[0] as RecentItemVm;
|
||||
var mru = StorageApplicationPermissions.MostRecentlyUsedList;
|
||||
var file = await mru.GetFileAsync(recentItem.Token) as StorageFile;
|
||||
if (recentItem == null) return;
|
||||
var file = await mru.GetFileAsync(recentItem.Token);
|
||||
|
||||
var app = (App)Application.Current;
|
||||
app.Database = new DatabaseHelper(file);
|
||||
@@ -50,10 +50,10 @@ namespace ModernKeePass.Pages
|
||||
recentItem.NotifyPropertyChanged("PasswordVisibility");
|
||||
}
|
||||
|
||||
private void PasswordUserControl_PasswordChecked(object sender, Events.DatabaseEventArgs e)
|
||||
private void PasswordUserControl_PasswordChecked(object sender, EventArgs e)
|
||||
{
|
||||
var app = (App)Application.Current;
|
||||
if (e.IsOpen) _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
|
||||
if (app.Database.IsOpen) _mainFrame.Navigate(typeof(GroupDetailPage), app.Database.RootGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,9 +2,9 @@
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using ModernKeePass.Interfaces;
|
||||
|
||||
namespace ModernKeePass.Models
|
||||
namespace ModernKeePass.ViewModels
|
||||
{
|
||||
public class MainMenuItem: IIsEnabled
|
||||
public class MainMenuItemVm: IIsEnabled
|
||||
{
|
||||
private string _title;
|
||||
|
@@ -1,5 +1,4 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using ModernKeePass.Models;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
|
||||
@@ -7,7 +6,7 @@ namespace ModernKeePass.ViewModels
|
||||
{
|
||||
public class MainVm : INotifyPropertyChanged
|
||||
{
|
||||
public IOrderedEnumerable<IGrouping<int, MainMenuItem>> MainMenuItems { get; set; }
|
||||
public IOrderedEnumerable<IGrouping<int, MainMenuItemVm>> MainMenuItems { get; set; }
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
public void NotifyPropertyChanged(string propertyName)
|
||||
|
@@ -1,9 +1,9 @@
|
||||
using System.ComponentModel;
|
||||
using Windows.UI.Xaml;
|
||||
|
||||
namespace ModernKeePass.Models
|
||||
namespace ModernKeePass.ViewModels
|
||||
{
|
||||
public class RecentItem: INotifyPropertyChanged
|
||||
public class RecentItemVm: INotifyPropertyChanged
|
||||
{
|
||||
public string Token { get; set; }
|
||||
public string Name { get; set; }
|
@@ -1,12 +1,11 @@
|
||||
using ModernKeePass.Models;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace ModernKeePass.ViewModels
|
||||
{
|
||||
public class RecentVm : INotifyPropertyChanged
|
||||
{
|
||||
public ObservableCollection<RecentItem> RecentItems { get; set; }
|
||||
public ObservableCollection<RecentItemVm> RecentItems { get; set; }
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
|
Reference in New Issue
Block a user