Move printer initialize from widget into main initialize function

This commit is contained in:
John Lewin 2018-10-10 14:58:03 -07:00
parent 0fae401091
commit 5cb1804f94
3 changed files with 18 additions and 20 deletions

View file

@ -274,11 +274,6 @@ namespace MatterHackers.MatterControl
// HACK: short term solution to resolve printer reference for non-printer related contexts
DragDropData.Printer = printer;
if (!AppContext.IsLoading)
{
// Fire printer changed event
}
BedSettings.SetMakeAndModel(
printer.Settings.GetValue(SettingsKey.make),
printer.Settings.GetValue(SettingsKey.model));
@ -3041,6 +3036,19 @@ namespace MatterHackers.MatterControl
await ProfileManager.Instance.Initialize();
reporter?.Invoke(0.25, "Initialize printer");
var printer = await ProfileManager.Instance.LoadPrinter();
// Restore bed
if (printer.Settings.PrinterSelected)
{
printer.ViewState.ViewMode = PartViewMode.Model;
UiThread.RunOnIdle(() =>
{
printer.Bed.LoadPlateFromHistory().ConfigureAwait(false);
}, 2);
}
reporter?.Invoke(0.3, "MainView");
applicationController.MainView = new WidescreenPanel(applicationController.Theme);

View file

@ -292,20 +292,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
this.CreatePartTab("New Part", bed, theme);
}
// TODO: Initial hack to prototype desired behavior. Ideally loading the printer would occur during the loading screen and be initialized before widget load
UiThread.RunOnIdle(() =>
{
ProfileManager.Instance.LoadPrinter().ContinueWith(task =>
{
var printer = task.Result;
if (printer.Settings.PrinterSelected)
{
printer.ViewState.ViewMode = PartViewMode.Model;
printer.Bed.LoadPlateFromHistory().ConfigureAwait(false);
}
});
});
}
public ChromeTabs TabControl => tabControl;

View file

@ -32,6 +32,7 @@ using System.IO;
using MatterHackers.Agg;
using MatterHackers.Agg.Image;
using MatterHackers.Agg.Platform;
using MatterHackers.Agg.UI;
using MatterHackers.Agg.VertexSource;
using MatterHackers.DataConverters3D;
using MatterHackers.MeshVisualizer;
@ -67,7 +68,10 @@ namespace MatterHackers.MatterControl
}
// Preload GL texture for 2D bed image and use MipMaps
ImageGlPlugin.GetImageGlPlugin(bedImage, createAndUseMipMaps: true);
UiThread.RunOnIdle(() =>
{
ImageGlPlugin.GetImageGlPlugin(bedImage, createAndUseMipMaps: true);
});
return bedImage;
}