Use consistent RunOnIdle pattern with .2s delay to ensure popup close
This commit is contained in:
parent
486fd08fc1
commit
a8d574dd80
1 changed files with 40 additions and 47 deletions
|
|
@ -89,73 +89,66 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
PopupMenu.MenuItem menuItem;
|
PopupMenu.MenuItem menuItem;
|
||||||
|
|
||||||
menuItem = popupMenu.CreateMenuItem("Import Presets".Localize());
|
menuItem = popupMenu.CreateMenuItem("Import Presets".Localize());
|
||||||
menuItem.Click += (s, e) =>
|
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
|
||||||
{
|
{
|
||||||
UiThread.RunOnIdle(() =>
|
AggContext.FileDialogs.OpenFileDialog(
|
||||||
{
|
new OpenFileDialogParams("settings files|*.printer"),
|
||||||
AggContext.FileDialogs.OpenFileDialog(
|
(dialogParams) =>
|
||||||
new OpenFileDialogParams("settings files|*.printer"),
|
{
|
||||||
(dialogParams) =>
|
if (!string.IsNullOrEmpty(dialogParams.FileName))
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(dialogParams.FileName))
|
DialogWindow.Show(new ImportSettingsPage(dialogParams.FileName, printer));
|
||||||
{
|
}
|
||||||
DialogWindow.Show(new ImportSettingsPage(dialogParams.FileName, printer));
|
});
|
||||||
}
|
}, .2);
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
popupMenu.CreateHorizontalLine();
|
popupMenu.CreateHorizontalLine();
|
||||||
|
|
||||||
menuItem = popupMenu.CreateMenuItem("Restore Settings".Localize());
|
menuItem = popupMenu.CreateMenuItem("Restore Settings".Localize());
|
||||||
menuItem.Click += (s, e) =>
|
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
|
||||||
{
|
{
|
||||||
DialogWindow.Show<PrinterProfileHistoryPage>();
|
DialogWindow.Show<PrinterProfileHistoryPage>();
|
||||||
};
|
}, .2);
|
||||||
menuItem.Enabled = !string.IsNullOrEmpty(AuthenticationData.Instance.ActiveSessionUsername);
|
menuItem.Enabled = !string.IsNullOrEmpty(AuthenticationData.Instance.ActiveSessionUsername);
|
||||||
|
|
||||||
menuItem = popupMenu.CreateMenuItem("Reset to Defaults".Localize());
|
menuItem = popupMenu.CreateMenuItem("Reset to Defaults".Localize());
|
||||||
menuItem.Click += (s, e) =>
|
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
|
||||||
{
|
{
|
||||||
UiThread.RunOnIdle(() =>
|
StyledMessageBox.ShowMessageBox(
|
||||||
{
|
(revertSettings) =>
|
||||||
StyledMessageBox.ShowMessageBox(
|
{
|
||||||
revertSettings =>
|
if (revertSettings)
|
||||||
{
|
{
|
||||||
if (revertSettings)
|
bool onlyReloadSliceSettings = true;
|
||||||
|
if (printer.Settings.GetValue<bool>(SettingsKey.print_leveling_required_to_print)
|
||||||
|
&& printer.Settings.GetValue<bool>(SettingsKey.print_leveling_enabled))
|
||||||
{
|
{
|
||||||
bool onlyReloadSliceSettings = true;
|
onlyReloadSliceSettings = false;
|
||||||
if (printer.Settings.GetValue<bool>(SettingsKey.print_leveling_required_to_print)
|
|
||||||
&& printer.Settings.GetValue<bool>(SettingsKey.print_leveling_enabled))
|
|
||||||
{
|
|
||||||
onlyReloadSliceSettings = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
printer.Settings.ClearUserOverrides();
|
|
||||||
printer.Settings.Save();
|
|
||||||
|
|
||||||
if (onlyReloadSliceSettings)
|
|
||||||
{
|
|
||||||
printer?.Bed.GCodeRenderer?.Clear3DGCode();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ApplicationController.Instance.ReloadAll();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"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);
|
|
||||||
});
|
|
||||||
|
|
||||||
};
|
printer.Settings.ClearUserOverrides();
|
||||||
|
printer.Settings.Save();
|
||||||
|
|
||||||
|
if (onlyReloadSliceSettings)
|
||||||
|
{
|
||||||
|
printer?.Bed.GCodeRenderer?.Clear3DGCode();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ApplicationController.Instance.ReloadAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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 = popupMenu.CreateMenuItem("Export".Localize());
|
||||||
menuItem.Click += (s, e) =>
|
menuItem.Click += (s, e) => UiThread.RunOnIdle(() =>
|
||||||
{
|
{
|
||||||
ActiveSliceSettings.Instance.Helpers.ExportAsMatterControlConfig();
|
ActiveSliceSettings.Instance.Helpers.ExportAsMatterControlConfig();
|
||||||
};
|
}, .2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: This should just proxy to settingsControlBar.Visible. Having local state and pushing values on event listeners seems off
|
// TODO: This should just proxy to settingsControlBar.Visible. Having local state and pushing values on event listeners seems off
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue