Ask once when the settings file changes

The window is activated again as the question closes, before the answer is in,
so a changed eu07.ini was asked about three times in a row.
This commit is contained in:
maj00r
2026-11-01 20:53:59 +01:00
parent b60c176533
commit 1f231423f3

View File

@@ -744,25 +744,36 @@ public partial class MainWindow : Window
AppServices.Current.Processes.OpenInShell(folder);
}
// The window is activated again as the question closes, before the answer is in.
private bool _askingAboutSettings;
private async void CheckExternalSettings()
{
if ((DateTime.UtcNow - _openedUtc).TotalSeconds < 3)
if (_askingAboutSettings || (DateTime.UtcNow - _openedUtc).TotalSeconds < 3)
return;
if (!AppServices.Current.SettingsStore.IsConfigNewerOnDisk())
return;
var result = await MessageBox.Show(
this,
App.Loc["SettingsFileChanged"],
App.Loc["SettingsFileChangedTitle"],
MessageBoxButtons.YesNo);
if (result)
_askingAboutSettings = true;
try
{
AppServices.Current.SettingsStore.Load();
SettingsView?.ReloadFromSettings();
var result = await MessageBox.Show(
this,
App.Loc["SettingsFileChanged"],
App.Loc["SettingsFileChangedTitle"],
MessageBoxButtons.YesNo);
if (result)
{
AppServices.Current.SettingsStore.Load();
SettingsView?.ReloadFromSettings();
}
else
AppServices.Current.SettingsStore.TouchConfigAge();
}
finally
{
_askingAboutSettings = false;
}
else
AppServices.Current.SettingsStore.TouchConfigAge();
}
private void RestoreFromSimulator()