mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
Added some translations in file pickers
Corrected key file creation picker issue (any not allowed) Fixed some Sonar issues
This commit is contained in:
@@ -24,7 +24,6 @@ namespace ModernKeePass.Application.Group.Commands.AddEntry
|
|||||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||||
|
|
||||||
await _database.AddEntry(message.ParentGroupId, message.EntryId);
|
await _database.AddEntry(message.ParentGroupId, message.EntryId);
|
||||||
//message.ParentGroup.Entries.Add(message.Entry);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,6 @@ namespace ModernKeePass.Application.Group.Commands.AddGroup
|
|||||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||||
|
|
||||||
await _database.AddGroup(message.ParentGroupId, message.GroupId);
|
await _database.AddGroup(message.ParentGroupId, message.GroupId);
|
||||||
//message.ParentGroup.SubGroups.Add(message.Group);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,6 @@ namespace ModernKeePass.Application.Group.Commands.RemoveEntry
|
|||||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||||
|
|
||||||
await _database.RemoveEntry(message.ParentGroupId, message.EntryId);
|
await _database.RemoveEntry(message.ParentGroupId, message.EntryId);
|
||||||
//message.ParentGroup.Entries.Remove(message.Entry);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,6 @@ namespace ModernKeePass.Application.Group.Commands.RemoveGroup
|
|||||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||||
|
|
||||||
await _database.RemoveGroup(message.ParentGroupId, message.GroupId);
|
await _database.RemoveGroup(message.ParentGroupId, message.GroupId);
|
||||||
//message.ParentGroup.SubGroups.Remove(message.Group);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
{
|
{
|
||||||
public static string Any => "*";
|
public static string Any => "*";
|
||||||
public static string Kdbx => ".kdbx";
|
public static string Kdbx => ".kdbx";
|
||||||
|
public static string Key => ".key";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -38,7 +38,6 @@ namespace ModernKeePass
|
|||||||
private readonly ISettingsProxy _settings;
|
private readonly ISettingsProxy _settings;
|
||||||
private readonly INavigationService _navigation;
|
private readonly INavigationService _navigation;
|
||||||
private readonly IHockeyClient _hockey;
|
private readonly IHockeyClient _hockey;
|
||||||
private readonly IDialogService _dialog;
|
|
||||||
private readonly INotificationService _notification;
|
private readonly INotificationService _notification;
|
||||||
private readonly IFileProxy _file;
|
private readonly IFileProxy _file;
|
||||||
private readonly IMessenger _messenger;
|
private readonly IMessenger _messenger;
|
||||||
@@ -64,7 +63,6 @@ namespace ModernKeePass
|
|||||||
_resource = Services.GetService<IResourceProxy>();
|
_resource = Services.GetService<IResourceProxy>();
|
||||||
_settings = Services.GetService<ISettingsProxy>();
|
_settings = Services.GetService<ISettingsProxy>();
|
||||||
_navigation = Services.GetService<INavigationService>();
|
_navigation = Services.GetService<INavigationService>();
|
||||||
_dialog = Services.GetService<IDialogService>();
|
|
||||||
_notification = Services.GetService<INotificationService>();
|
_notification = Services.GetService<INotificationService>();
|
||||||
_hockey = Services.GetService<IHockeyClient>();
|
_hockey = Services.GetService<IHockeyClient>();
|
||||||
_file = Services.GetService<IFileProxy>();
|
_file = Services.GetService<IFileProxy>();
|
||||||
@@ -134,9 +132,6 @@ namespace ModernKeePass
|
|||||||
{
|
{
|
||||||
// Load state from previously terminated application
|
// Load state from previously terminated application
|
||||||
await SuspensionManager.RestoreAsync();
|
await SuspensionManager.RestoreAsync();
|
||||||
#if DEBUG
|
|
||||||
await _dialog.ShowMessage("Windows or an error made the app terminate", "App terminated");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Place the frame in the current Window
|
// Place the frame in the current Window
|
||||||
|
@@ -267,4 +267,13 @@
|
|||||||
<data name="FileNotFoundTitle" xml:space="preserve">
|
<data name="FileNotFoundTitle" xml:space="preserve">
|
||||||
<value>File not found</value>
|
<value>File not found</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MessageDialogSaveNameSuggestion" xml:space="preserve">
|
||||||
|
<value>KeePass</value>
|
||||||
|
</data>
|
||||||
|
<data name="CompositeKeyFileTypeDesc" xml:space="preserve">
|
||||||
|
<value>Key file</value>
|
||||||
|
</data>
|
||||||
|
<data name="CompositeKeyFileNameSuggestion" xml:space="preserve">
|
||||||
|
<value>Key</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
@@ -267,4 +267,13 @@
|
|||||||
<data name="FileNotFoundTitle" xml:space="preserve">
|
<data name="FileNotFoundTitle" xml:space="preserve">
|
||||||
<value>Fichier manquant</value>
|
<value>Fichier manquant</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MessageDialogSaveNameSuggestion" xml:space="preserve">
|
||||||
|
<value>KeePass</value>
|
||||||
|
</data>
|
||||||
|
<data name="CompositeKeyFileTypeDesc" xml:space="preserve">
|
||||||
|
<value>Fichier de clé</value>
|
||||||
|
</data>
|
||||||
|
<data name="CompositeKeyFileNameSuggestion" xml:space="preserve">
|
||||||
|
<value>Clé</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
@@ -0,0 +1,5 @@
|
|||||||
|
Redesign of the UI (top menu and hamburger menu)
|
||||||
|
Resuming the app re-opens previously opened database
|
||||||
|
Notify user and show the Save As dialog when an error is encountered during saving
|
||||||
|
Save As actually works now
|
||||||
|
Creating a new group is now done inline
|
@@ -0,0 +1,5 @@
|
|||||||
|
Redesign de l'interface utilisateur (menu superieur et menu hamburger)
|
||||||
|
Le re-chargement de l'app re-ouvre la base de donnees ouverte precedemment
|
||||||
|
L'utlisateur est prevenu et un popup de sauvegarde est affiche quand il y a une erreur de sauvegarde
|
||||||
|
La fonctionnalite Sauvegarder Sous fonctionne correctement
|
||||||
|
La creation d'un nouveau groupe se fait directement dans le menu
|
@@ -17,15 +17,17 @@ namespace ModernKeePass.ViewModels
|
|||||||
private readonly ISettingsProxy _settings;
|
private readonly ISettingsProxy _settings;
|
||||||
private readonly INavigationService _navigation;
|
private readonly INavigationService _navigation;
|
||||||
private readonly IFileProxy _file;
|
private readonly IFileProxy _file;
|
||||||
|
private readonly IResourceProxy _resource;
|
||||||
|
|
||||||
public RelayCommand CreateDatabaseFileCommand { get; }
|
public RelayCommand CreateDatabaseFileCommand { get; }
|
||||||
|
|
||||||
public NewVm(IMediator mediator, ISettingsProxy settings, INavigationService navigation, IFileProxy file): base(file)
|
public NewVm(IMediator mediator, ISettingsProxy settings, INavigationService navigation, IFileProxy file, IResourceProxy resource): base(file)
|
||||||
{
|
{
|
||||||
_mediator = mediator;
|
_mediator = mediator;
|
||||||
_settings = settings;
|
_settings = settings;
|
||||||
_navigation = navigation;
|
_navigation = navigation;
|
||||||
_file = file;
|
_file = file;
|
||||||
|
_resource = resource;
|
||||||
|
|
||||||
CreateDatabaseFileCommand = new RelayCommand(async () => await CreateDatabaseFile());
|
CreateDatabaseFileCommand = new RelayCommand(async () => await CreateDatabaseFile());
|
||||||
|
|
||||||
@@ -34,8 +36,11 @@ namespace ModernKeePass.ViewModels
|
|||||||
|
|
||||||
private async Task CreateDatabaseFile()
|
private async Task CreateDatabaseFile()
|
||||||
{
|
{
|
||||||
// TODO: get these from resource
|
var file = await _file.CreateFile(_resource.GetResourceValue("MessageDialogSaveNameSuggestion"),
|
||||||
var file = await _file.CreateFile("New Database", Domain.Common.Constants.Extensions.Kdbx, "KeePass 2.x database", true);
|
Domain.Common.Constants.Extensions.Kdbx,
|
||||||
|
_resource.GetResourceValue("MessageDialogSaveErrorFileTypeDesc"),
|
||||||
|
true);
|
||||||
|
if (file == null) return;
|
||||||
Token = file.Id;
|
Token = file.Id;
|
||||||
Path = file.Path;
|
Path = file.Path;
|
||||||
Name = file.Name;
|
Name = file.Name;
|
||||||
|
@@ -24,12 +24,14 @@ namespace ModernKeePass.ViewModels
|
|||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
private readonly INavigationService _navigation;
|
private readonly INavigationService _navigation;
|
||||||
private readonly IFileProxy _file;
|
private readonly IFileProxy _file;
|
||||||
|
private readonly IResourceProxy _resource;
|
||||||
|
|
||||||
public SaveVm(IMediator mediator, INavigationService navigation, IFileProxy file)
|
public SaveVm(IMediator mediator, INavigationService navigation, IFileProxy file, IResourceProxy resource)
|
||||||
{
|
{
|
||||||
_mediator = mediator;
|
_mediator = mediator;
|
||||||
_navigation = navigation;
|
_navigation = navigation;
|
||||||
_file = file;
|
_file = file;
|
||||||
|
_resource = resource;
|
||||||
|
|
||||||
SaveAsCommand = new RelayCommand(async () => await SaveAs());
|
SaveAsCommand = new RelayCommand(async () => await SaveAs());
|
||||||
SaveCommand = new RelayCommand(async () => await Save(), () => IsSaveEnabled);
|
SaveCommand = new RelayCommand(async () => await Save(), () => IsSaveEnabled);
|
||||||
@@ -40,9 +42,11 @@ namespace ModernKeePass.ViewModels
|
|||||||
|
|
||||||
private async Task SaveAs()
|
private async Task SaveAs()
|
||||||
{
|
{
|
||||||
// TODO: get these from resource
|
var file = await _file.CreateFile(_resource.GetResourceValue("MessageDialogSaveNameSuggestion"),
|
||||||
var file = await _file.CreateFile("New Database", Domain.Common.Constants.Extensions.Kdbx, "KeePass 2.x database", true);
|
Domain.Common.Constants.Extensions.Kdbx,
|
||||||
|
_resource.GetResourceValue("MessageDialogSaveErrorFileTypeDesc"),
|
||||||
|
true);
|
||||||
|
if (file == null) return;
|
||||||
await _mediator.Send(new SaveDatabaseCommand { FilePath = file.Id });
|
await _mediator.Send(new SaveDatabaseCommand { FilePath = file.Id });
|
||||||
_navigation.NavigateTo(Constants.Navigation.MainPage);
|
_navigation.NavigateTo(Constants.Navigation.MainPage);
|
||||||
}
|
}
|
||||||
|
@@ -14,6 +14,7 @@ namespace ModernKeePass.ViewModels
|
|||||||
{
|
{
|
||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
private readonly ICredentialsProxy _credentials;
|
private readonly ICredentialsProxy _credentials;
|
||||||
|
private readonly IResourceProxy _resource;
|
||||||
private readonly IFileProxy _file;
|
private readonly IFileProxy _file;
|
||||||
|
|
||||||
public bool HasPassword
|
public bool HasPassword
|
||||||
@@ -105,6 +106,7 @@ namespace ModernKeePass.ViewModels
|
|||||||
{
|
{
|
||||||
_mediator = mediator;
|
_mediator = mediator;
|
||||||
_credentials = credentials;
|
_credentials = credentials;
|
||||||
|
_resource = resource;
|
||||||
_file = file;
|
_file = file;
|
||||||
|
|
||||||
OpenKeyFileCommand = new RelayCommand(async () => await OpenKeyFile(), () => HasKeyFile);
|
OpenKeyFileCommand = new RelayCommand(async () => await OpenKeyFile(), () => HasKeyFile);
|
||||||
@@ -117,12 +119,16 @@ namespace ModernKeePass.ViewModels
|
|||||||
private async Task OpenKeyFile()
|
private async Task OpenKeyFile()
|
||||||
{
|
{
|
||||||
var file = await _file.OpenFile(string.Empty, Constants.Extensions.Any, false);
|
var file = await _file.OpenFile(string.Empty, Constants.Extensions.Any, false);
|
||||||
|
if (file == null) return;
|
||||||
SetKeyFileInfo(file);
|
SetKeyFileInfo(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task CreateKeyFile()
|
private async Task CreateKeyFile()
|
||||||
{
|
{
|
||||||
var file = await _file.CreateFile("Key", Constants.Extensions.Any, "Key file", false);
|
var file = await _file.CreateFile(_resource.GetResourceValue("CompositeKeyFileNameSuggestion"),
|
||||||
|
Constants.Extensions.Key, _resource.GetResourceValue("CompositeKeyFileTypeDesc"),
|
||||||
|
false);
|
||||||
|
if (file == null) return;
|
||||||
SetKeyFileInfo(file);
|
SetKeyFileInfo(file);
|
||||||
|
|
||||||
await _mediator.Send(new GenerateKeyFileCommand { KeyFilePath = KeyFilePath });
|
await _mediator.Send(new GenerateKeyFileCommand { KeyFilePath = KeyFilePath });
|
||||||
@@ -130,7 +136,6 @@ namespace ModernKeePass.ViewModels
|
|||||||
|
|
||||||
private void SetKeyFileInfo(FileInfo file)
|
private void SetKeyFileInfo(FileInfo file)
|
||||||
{
|
{
|
||||||
if (file == null) return;
|
|
||||||
KeyFilePath = file.Id;
|
KeyFilePath = file.Id;
|
||||||
KeyFileText = file.Name;
|
KeyFileText = file.Name;
|
||||||
HasKeyFile = true;
|
HasKeyFile = true;
|
||||||
|
Reference in New Issue
Block a user