Database file is now handled by each page, instead of a central place

Opening a database while another one is open triggers a warning message
This commit is contained in:
BONNEVILLE Geoffroy
2018-06-20 11:52:17 +02:00
parent 408b4eed90
commit 188233cc81
8 changed files with 17 additions and 16 deletions

View File

@@ -3,7 +3,6 @@ using System.Text;
using System.Threading.Tasks;
using Windows.Storage;
using ModernKeePass.Common;
using ModernKeePass.Exceptions;
using ModernKeePass.Interfaces;
using ModernKeePass.Services;
using ModernKeePassLib.Cryptography;

View File

@@ -1,6 +1,7 @@
using System.Collections.ObjectModel;
using System.Linq;
using Windows.ApplicationModel;
using Windows.Storage;
using Windows.UI.Xaml.Controls;
using ModernKeePass.Common;
using ModernKeePass.Interfaces;
@@ -44,11 +45,11 @@ namespace ModernKeePass.ViewModels
public MainVm() {}
internal MainVm(Frame referenceFrame, Frame destinationFrame) : this(referenceFrame, destinationFrame,
DatabaseService.Instance, new ResourcesService(), RecentService.Instance)
internal MainVm(Frame referenceFrame, Frame destinationFrame, StorageFile databaseFile = null) : this(referenceFrame, destinationFrame,
DatabaseService.Instance, new ResourcesService(), RecentService.Instance, databaseFile)
{ }
public MainVm(Frame referenceFrame, Frame destinationFrame, IDatabaseService database, IResourceService resource, IRecentService recent)
public MainVm(Frame referenceFrame, Frame destinationFrame, IDatabaseService database, IResourceService resource, IRecentService recent, StorageFile databaseFile = null)
{
var isDatabaseOpen = database != null && database.IsOpen;
@@ -59,8 +60,9 @@ namespace ModernKeePass.ViewModels
Title = resource.GetResourceValue("MainMenuItemOpen"),
PageType = typeof(OpenDatabasePage),
Destination = destinationFrame,
Parameter = referenceFrame,
SymbolIcon = Symbol.Page2
Parameter = databaseFile,
SymbolIcon = Symbol.Page2,
IsSelected = databaseFile != null
},
new MainMenuItemVm
{

View File

@@ -9,7 +9,7 @@ namespace ModernKeePass.ViewModels
{
public bool IsFileSelected => DatabaseFile != null;
public string Name => DatabaseFile.DisplayName;
public string Name => DatabaseFile?.DisplayName;
public StorageFile DatabaseFile { get; private set; }
@@ -31,6 +31,7 @@ namespace ModernKeePass.ViewModels
DatabaseFile = file;
OnPropertyChanged("Name");
OnPropertyChanged("IsFileSelected");
OnPropertyChanged("DatabaseFile");
AddToRecentList(file, recent);
}