mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
WIP removing global databaseFile property
This commit is contained in:
@@ -3,6 +3,7 @@ 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;
|
||||
@@ -120,12 +121,12 @@ namespace ModernKeePass.ViewModels
|
||||
Database = database;
|
||||
}
|
||||
|
||||
public async Task<bool> OpenDatabase(bool createNew)
|
||||
public async Task<bool> OpenDatabase(StorageFile databaseFile, bool createNew)
|
||||
{
|
||||
try
|
||||
{
|
||||
_isOpening = true;
|
||||
Database.Open(CreateCompositeKey(), createNew);
|
||||
Database.Open(databaseFile, CreateCompositeKey(), createNew);
|
||||
await Task.Run(() => RootGroup = Database.RootGroup);
|
||||
return true;
|
||||
}
|
||||
|
@@ -27,17 +27,7 @@ namespace ModernKeePass.ViewModels
|
||||
Name = metadata;
|
||||
DatabaseFile = file as StorageFile;
|
||||
}
|
||||
|
||||
public void OpenDatabaseFile()
|
||||
{
|
||||
OpenDatabaseFile(DatabaseService.Instance);
|
||||
}
|
||||
|
||||
public void OpenDatabaseFile(IDatabaseService database)
|
||||
{
|
||||
database.DatabaseFile = DatabaseFile;
|
||||
}
|
||||
|
||||
|
||||
public void UpdateAccessTime()
|
||||
{
|
||||
UpdateAccessTime(RecentService.Instance);
|
||||
|
@@ -60,8 +60,7 @@ namespace ModernKeePass.ViewModels
|
||||
PageType = typeof(OpenDatabasePage),
|
||||
Destination = destinationFrame,
|
||||
Parameter = referenceFrame,
|
||||
SymbolIcon = Symbol.Page2,
|
||||
IsSelected = database != null && database.IsFileOpen && !database.IsOpen
|
||||
SymbolIcon = Symbol.Page2
|
||||
},
|
||||
new MainMenuItemVm
|
||||
{
|
||||
@@ -89,7 +88,7 @@ namespace ModernKeePass.ViewModels
|
||||
Parameter = referenceFrame,
|
||||
SymbolIcon = Symbol.Copy,
|
||||
IsSelected =
|
||||
(database == null || database.IsClosed) &&
|
||||
(database == null || !database.IsOpen) &&
|
||||
recent.EntryCount > 0,
|
||||
IsEnabled = recent.EntryCount > 0
|
||||
},
|
||||
|
@@ -7,19 +7,18 @@ namespace ModernKeePass.ViewModels
|
||||
{
|
||||
public class OpenVm: NotifyPropertyChangedBase
|
||||
{
|
||||
public bool ShowPasswordBox => _database.IsFileOpen;
|
||||
public bool IsFileSelected => DatabaseFile != null;
|
||||
|
||||
public string Name => _database?.Name;
|
||||
public string Name => DatabaseFile.DisplayName;
|
||||
|
||||
private readonly IDatabaseService _database;
|
||||
public StorageFile DatabaseFile { get; private set; }
|
||||
|
||||
public OpenVm() : this(DatabaseService.Instance) { }
|
||||
public OpenVm() : this(null) { }
|
||||
|
||||
public OpenVm(IDatabaseService database)
|
||||
public OpenVm(StorageFile file)
|
||||
{
|
||||
_database = database;
|
||||
if (database == null || !database.IsFileOpen) return;
|
||||
OpenFile(database.DatabaseFile);
|
||||
if (!IsFileSelected) return;
|
||||
OpenFile(file);
|
||||
}
|
||||
|
||||
public void OpenFile(StorageFile file)
|
||||
@@ -29,9 +28,9 @@ namespace ModernKeePass.ViewModels
|
||||
|
||||
public void OpenFile(StorageFile file, IRecentService recent)
|
||||
{
|
||||
_database.DatabaseFile = file;
|
||||
DatabaseFile = file;
|
||||
OnPropertyChanged("Name");
|
||||
OnPropertyChanged("ShowPasswordBox");
|
||||
OnPropertyChanged("IsFileSelected");
|
||||
AddToRecentList(file, recent);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user