Use consistent RunOnIdle pattern with .2s delay to ensure popup close

This commit is contained in:
John Lewin 2018-06-24 11:15:26 -07:00
parent 486fd08fc1
commit a8d574dd80

View file

@ -89,9 +89,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
PopupMenu.MenuItem menuItem;
menuItem = popupMenu.CreateMenuItem("Import Presets".Localize());
menuItem.Click += (s, e) =>
{
UiThread.RunOnIdle(() =>
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
{
AggContext.FileDialogs.OpenFileDialog(
new OpenFileDialogParams("settings files|*.printer"),
@ -102,25 +100,22 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DialogWindow.Show(new ImportSettingsPage(dialogParams.FileName, printer));
}
});
});
};
}, .2);
popupMenu.CreateHorizontalLine();
menuItem = popupMenu.CreateMenuItem("Restore Settings".Localize());
menuItem.Click += (s, e) =>
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
{
DialogWindow.Show<PrinterProfileHistoryPage>();
};
}, .2);
menuItem.Enabled = !string.IsNullOrEmpty(AuthenticationData.Instance.ActiveSessionUsername);
menuItem = popupMenu.CreateMenuItem("Reset to Defaults".Localize());
menuItem.Click += (s, e) =>
{
UiThread.RunOnIdle(() =>
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
{
StyledMessageBox.ShowMessageBox(
revertSettings =>
(revertSettings) =>
{
if (revertSettings)
{
@ -147,15 +142,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
"Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue?".Localize(),
"Revert Settings".Localize(),
StyledMessageBox.MessageType.YES_NO);
});
};
}, .2);
menuItem = popupMenu.CreateMenuItem("Export".Localize());
menuItem.Click += (s, e) =>
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
{
ActiveSliceSettings.Instance.Helpers.ExportAsMatterControlConfig();
};
}, .2);
}
// TODO: This should just proxy to settingsControlBar.Visible. Having local state and pushing values on event listeners seems off