Make sure we load our images asynch make sure we update them after load

This commit is contained in:
Lars Brubaker 2021-11-24 17:02:26 -08:00
parent 1fda0e7320
commit 6162ca25d4
4 changed files with 16 additions and 5 deletions

View file

@ -61,7 +61,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.PlusTab
Margin = new BorderDouble(right: ItemSpacing)
};
WebCache.RetrieveImageAsync(image, item.icon, true, new BlenderPreMultBGRA());
Load += (s, e) => WebCache.RetrieveImageAsync(image, item.icon, true, new BlenderPreMultBGRA());
this.AddChild(imageWidget);
}
else if (item.widget_url != null)
@ -80,7 +80,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.PlusTab
VAnchor = VAnchor.Center,
};
WebCache.RetrieveImageAsync(image, item.widget_url, true, new BlenderPreMultBGRA());
Load += (s, e) => WebCache.RetrieveImageAsync(image, item.widget_url, true, new BlenderPreMultBGRA());
whiteBackground.AddChild(imageWidget);
}

View file

@ -49,8 +49,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.PlusTab
private GuiWidget topBanner;
private GuiWidget sectionSelectButtons;
private GuiWidget contentSection;
private bool loaded;
public ExplorePanel(ThemeConfig theme, string relativeUrl)
public ExplorePanel(ThemeConfig theme, string relativeUrl)
: base(FlowDirection.TopToBottom)
{
this.relativeUrl = relativeUrl;
@ -107,6 +108,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.PlusTab
{
this.AddChild(widget);
}
UiThread.RunOnIdle(() =>
{
// Force layout to change to get it working
@ -203,7 +205,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.PlusTab
};
}
WebCache.RetrieveImageAsync(image, content.image_url, false, new BlenderPreMultBGRA());
AfterDraw += (s, e) =>
{
if (!loaded)
{
loaded = true;
WebCache.RetrieveImageAsync(image, content.image_url, false, new BlenderPreMultBGRA());
}
};
topBanner.AddChild(imageWidget);
}
}

View file

@ -66,7 +66,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.PlusTab
VAnchor = VAnchor.Center,
};
WebCache.RetrieveImageAsync(image, item.widget_url, true, new BlenderPreMultBGRA());
Load += (s, e) => WebCache.RetrieveImageAsync(image, item.widget_url, true, new BlenderPreMultBGRA());
whiteBackground.AddChild(imageWidget);
}

View file

@ -391,6 +391,8 @@ namespace MatterHackers.MatterControl
{
StaticData.Instance.LoadImageData(stream, imageToLoadInto);
}
imageToLoadInto.MarkImageChanged();
}
}
}