ReloadAll should not rebuild workspaces
- Issue MatterHackers/MCCentral#4704
This commit is contained in:
parent
6a677cd889
commit
801363fe49
3 changed files with 43 additions and 5 deletions
|
|
@ -1711,7 +1711,8 @@ namespace MatterHackers.MatterControl
|
||||||
|
|
||||||
public bool IsReloading { get; private set; } = false;
|
public bool IsReloading { get; private set; } = false;
|
||||||
|
|
||||||
public async Task ReloadAll()
|
// TODO: No longer contains async child methods. Leaving async compatible pattern in place in case it's needed in the near future, revert back to void if not
|
||||||
|
public Task ReloadAll()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -1745,8 +1746,6 @@ namespace MatterHackers.MatterControl
|
||||||
AppContext.RootSystemWindow.AddChild(MainView);
|
AppContext.RootSystemWindow.AddChild(MainView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.RestoreUserTabs();
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
|
@ -1757,6 +1756,8 @@ namespace MatterHackers.MatterControl
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.WriteLine($"LayoutCount: {GuiWidget.LayoutCount:0.0}");
|
Debug.WriteLine($"LayoutCount: {GuiWidget.LayoutCount:0.0}");
|
||||||
|
|
||||||
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int reloadCount = 0;
|
static int reloadCount = 0;
|
||||||
|
|
@ -1926,14 +1927,23 @@ namespace MatterHackers.MatterControl
|
||||||
this.Workspaces.Add(workspace);
|
this.Workspaces.Add(workspace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private string loadedUserTabs = null;
|
||||||
|
|
||||||
public async Task RestoreUserTabs()
|
public async Task RestoreUserTabs()
|
||||||
{
|
{
|
||||||
|
// Prevent reload of loaded user
|
||||||
|
if (loadedUserTabs == ProfileManager.Instance.UserName)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
loadedUserTabs = ProfileManager.Instance.UserName;
|
||||||
|
|
||||||
var history = this.Library.PlatingHistory;
|
var history = this.Library.PlatingHistory;
|
||||||
|
|
||||||
this.Workspaces.Clear();
|
this.Workspaces.Clear();
|
||||||
|
|
||||||
// TODO: Loading previous parts/printer is a relatively huge task compared to other startup tasks. These might work better if
|
|
||||||
// loaded after startup tasks and should have better progress reporting
|
|
||||||
if (File.Exists(ProfileManager.Instance.OpenTabsPath))
|
if (File.Exists(ProfileManager.Instance.OpenTabsPath))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
@ -3399,6 +3409,7 @@ If you experience adhesion problems, please re-run leveling."
|
||||||
await applicationController.Tasks.Execute(task.Title, null, task.Action);
|
await applicationController.Tasks.Execute(task.Title, null, task.Action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Initial load builds UI elements, then constructs workspace tabs as they're encountered in RestoreUserTabs()
|
||||||
await applicationController.RestoreUserTabs();
|
await applicationController.RestoreUserTabs();
|
||||||
|
|
||||||
if (ApplicationSettings.Instance.get(UserSettingsKey.ShownWelcomeMessage) != "false")
|
if (ApplicationSettings.Instance.get(UserSettingsKey.ShownWelcomeMessage) != "false")
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,22 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
|
|
||||||
tabControl.TabBar.ActionArea.AddChild(brandMenu, 0);
|
tabControl.TabBar.ActionArea.AddChild(brandMenu, 0);
|
||||||
|
|
||||||
|
// Restore active workspace tabs
|
||||||
|
foreach (var workspace in ApplicationController.Instance.Workspaces)
|
||||||
|
{
|
||||||
|
// Create and switch to new printer tab
|
||||||
|
if (workspace.Printer?.Settings.PrinterSelected == true)
|
||||||
|
{
|
||||||
|
tabControl.ActiveTab = this.CreatePrinterTab(workspace, theme);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tabControl.ActiveTab = this.CreatePartTab(workspace);
|
||||||
|
}
|
||||||
|
|
||||||
|
tabControl.RefreshTabPointers();
|
||||||
|
}
|
||||||
|
|
||||||
tabControl.SelectedTabKey = tabKey;
|
tabControl.SelectedTabKey = tabKey;
|
||||||
|
|
||||||
statusBar = new Toolbar(theme)
|
statusBar = new Toolbar(theme)
|
||||||
|
|
|
||||||
|
|
@ -177,6 +177,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
|
|
||||||
// Wire up the CollectionChanged event
|
// Wire up the CollectionChanged event
|
||||||
Instance.Profiles.CollectionChanged += Profiles_CollectionChanged;
|
Instance.Profiles.CollectionChanged += Profiles_CollectionChanged;
|
||||||
|
|
||||||
|
// Only execute RestoreUserTabs if the application is up and running, never during startup
|
||||||
|
// During startup this behavior must be executed after the MainViewWidget has loaded
|
||||||
|
if (!AppContext.IsLoading)
|
||||||
|
{
|
||||||
|
UiThread.RunOnIdle(() =>
|
||||||
|
{
|
||||||
|
// Delay then load user tabs
|
||||||
|
ApplicationController.Instance.RestoreUserTabs().ConfigureAwait(false);
|
||||||
|
}, .2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue