Implemented file selection

This commit is contained in:
Thorsten Sommer 2022-06-12 16:20:04 +02:00
parent 0876caa0d0
commit 89b2744896
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108

View File

@ -1,5 +1,5 @@
using System.ComponentModel;
using Microsoft.Win32;
using Microsoft.Win32;
namespace UI_WinForms.Components;
@ -78,23 +78,50 @@ public partial class LoaderStart : UserControl
private void buttonNew_Click(object sender, EventArgs e)
{
// TODO: Browse for new project's location
var saveDialog = new SaveFileDialog
{
AddExtension = true,
CheckPathExists = true,
CheckFileExists = false,
CreatePrompt = false,
OverwritePrompt = true,
DereferenceLinks = true,
DefaultExt = ".i18nc",
Filter = "I18N Commander Files (*.i18nc)|*.i18nc",
RestoreDirectory = true,
Title = "Create a new I18N Commander file",
};
// TODO: Apply new project's path
LoaderStart.UpdateRecentProjectsWithPruning(string.Empty);
var dialogResult = saveDialog.ShowDialog(this);
if (dialogResult != DialogResult.OK)
return;
// TODO: Open the project
var destinationFilePath = saveDialog.FileName;
LoaderStart.UpdateRecentProjectsWithPruning(destinationFilePath);
this.OpenProject(destinationFilePath);
}
private void BrowseForProject()
{
// TODO: Browse for project
// TODO: Handle cancel event
var openDialog = new OpenFileDialog
{
AddExtension = true,
CheckPathExists = true,
CheckFileExists = true,
DereferenceLinks = true,
DefaultExt = ".i18nc",
Filter = "I18N Commander Files (*.i18nc)|*.i18nc",
Multiselect = false,
RestoreDirectory = true,
Title = "Open an I18N Commander file",
};
var dialogResult = openDialog.ShowDialog(this);
if (dialogResult != DialogResult.OK)
return;
// TODO: Apply chosen project's path
LoaderStart.UpdateRecentProjectsWithPruning(string.Empty);
// TODO: Open the project
var projectFilePath = openDialog.FileName;
LoaderStart.UpdateRecentProjectsWithPruning(projectFilePath);
this.OpenProject(projectFilePath);
}
private void OpenRecentProject(object? sender)
@ -104,8 +131,13 @@ public partial class LoaderStart : UserControl
var path = (item.Tag as string)!;
LoaderStart.UpdateRecentProjectsWithPruning(path);
// TODO: Open the project
this.OpenProject(path);
}
private void OpenProject(string path)
{
// Hint: the project file might or might not exist (new project vs. recent project)
this.LoadProject?.Invoke(this, path);
}
private void contextMenuRecentProjects_Closing(object sender, ToolStripDropDownClosingEventArgs e)