diff --git a/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs b/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs
index bcfa2ec7e..a7b6e7d67 100644
--- a/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs
+++ b/AboutPage/HTMLParser/ImageWidget_AsyncLoadOnDraw.cs
@@ -52,6 +52,9 @@ namespace MatterHackers.MatterControl
bool startedLoad = false;
string uriToLoad;
+ IRecieveBlenderByte scalingBlender = new BlenderBGRA();
+ public void SetScalingBlender(IRecieveBlenderByte blender) { scalingBlender = blender; }
+
public ImageWidget_AsyncLoadOnDraw(ImageBuffer image, string uriToLoad)
: base(image)
{
@@ -89,7 +92,7 @@ namespace MatterHackers.MatterControl
// The image sampler we use is a 2x2 filter so we need to scale by a max of 1/2 if we want to get good results.
// So we scale as many times as we need to to get the Image to be the right size.
// If this were going to be a non-uniform scale we could do the x and y separatly to get better results.
- ImageBuffer halfImage = new ImageBuffer(unScaledImage.Width / 2, unScaledImage.Height / 2, 32, new BlenderBGRA());
+ ImageBuffer halfImage = new ImageBuffer(unScaledImage.Width / 2, unScaledImage.Height / 2, 32, scalingBlender);
halfImage.NewGraphics2D().Render(unScaledImage, 0, 0, 0, halfImage.Width / (double)unScaledImage.Width, halfImage.Height / (double)unScaledImage.Height);
unScaledImage = halfImage;
}
diff --git a/ActionBar/PrintStatusRow.cs b/ActionBar/PrintStatusRow.cs
index 6106dd035..92731eb11 100644
--- a/ActionBar/PrintStatusRow.cs
+++ b/ActionBar/PrintStatusRow.cs
@@ -113,7 +113,10 @@ namespace MatterHackers.MatterControl.ActionBar
public override void OnClosed(EventArgs e)
{
- activePrintPreviewImage.PrintItem.SlicingOutputMessage -= PrintItem_SlicingOutputMessage;
+ if (activePrintPreviewImage.PrintItem != null)
+ {
+ activePrintPreviewImage.PrintItem.SlicingOutputMessage -= PrintItem_SlicingOutputMessage;
+ }
if (unregisterEvents != null)
{
unregisterEvents(this, null);
diff --git a/CustomWidgets/PartThumbnailWidget.cs b/CustomWidgets/PartThumbnailWidget.cs
index e586426c0..b32b6d6ae 100644
--- a/CustomWidgets/PartThumbnailWidget.cs
+++ b/CustomWidgets/PartThumbnailWidget.cs
@@ -136,15 +136,17 @@ namespace MatterHackers.MatterControl
get { return printItem; }
set
{
- if (printItem != null)
+ if (PrintItem != null)
{
- printItem.FileHasChanged -= item_FileHasChanged;
+ PrintItem.FileHasChanged -= item_FileHasChanged;
}
+
printItem = value;
+
thumbNailHasBeenCreated = false;
- if (printItem != null)
+ if (PrintItem != null)
{
- printItem.FileHasChanged += item_FileHasChanged;
+ PrintItem.FileHasChanged += item_FileHasChanged;
}
}
}
@@ -170,9 +172,10 @@ namespace MatterHackers.MatterControl
{
unregisterEvents(this, null);
}
- if (printItem != null)
+
+ if (PrintItem != null)
{
- printItem.FileHasChanged -= item_FileHasChanged;
+ PrintItem.FileHasChanged -= item_FileHasChanged;
}
base.OnClosed(e);
}
@@ -477,12 +480,15 @@ namespace MatterHackers.MatterControl
private void OnDoneRendering()
{
- string stlHashCode = this.PrintItem.FileHashCode.ToString();
- string imageFileName = GetImageFileName(stlHashCode);
-
- if (DoneRendering != null)
+ if (PrintItem != null)
{
- DoneRendering(this, new StringEventArgs(imageFileName));
+ string stlHashCode = this.PrintItem.FileHashCode.ToString();
+ string imageFileName = GetImageFileName(stlHashCode);
+
+ if (DoneRendering != null)
+ {
+ DoneRendering(this, new StringEventArgs(imageFileName));
+ }
}
}
@@ -582,7 +588,7 @@ namespace MatterHackers.MatterControl
private bool SetImageFast()
{
- if (this.printItem == null)
+ if (this.PrintItem == null)
{
this.thumbnailImage = new ImageBuffer(this.noThumbnailImage);
this.Invalidate();