Skip to content

Commit

Permalink
dont open multiple options
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonCropp committed Aug 8, 2021
1 parent 96a1180 commit 95b422f
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion src/DiffEngineTray/Settings/OptionsFormLauncher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,30 @@

static class OptionsFormLauncher
{
static OptionsForm? instance;
static EventHandler formOnClosed = Form_Closed;

public static async Task Launch(KeyRegister keyRegister, Tracker tracker)
{
if (instance != null)
{
instance.BringToFront();
return;
}

var settings = await SettingsHelper.Read();
using var form = new OptionsForm(settings, async newSettings => await Save(keyRegister, tracker, newSettings));
using var form = new OptionsForm(settings, newSettings => Save(keyRegister, tracker, newSettings));
instance = form;
form.Closed += formOnClosed;
form.ShowDialog();
}

static void Form_Closed(object? sender, EventArgs e)
{
instance!.Closed -= formOnClosed;
instance = null;
}

static async Task<IReadOnlyList<string>> Save(KeyRegister keyRegister, Tracker tracker, Settings settings)
{
if (!settings.IsValidate(out var errors))
Expand Down

0 comments on commit 95b422f

Please sign in to comment.