From 59f8bea4196a8a46f790060dadd3102fd6140ca5 Mon Sep 17 00:00:00 2001 From: MaxED Date: Fri, 19 Dec 2014 09:24:22 +0000 Subject: [PATCH] Image Selector Control: fixed a crash when clearing an image. --- .../Core/Controls/ConfigurablePictureBox.cs | 29 ++++++++++++------- .../Controls/ImageSelectorControl.Designer.cs | 1 - Source/Core/Controls/ImageSelectorControl.cs | 14 +++------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Source/Core/Controls/ConfigurablePictureBox.cs b/Source/Core/Controls/ConfigurablePictureBox.cs index cee7db23..c55d525b 100644 --- a/Source/Core/Controls/ConfigurablePictureBox.cs +++ b/Source/Core/Controls/ConfigurablePictureBox.cs @@ -1,33 +1,38 @@ -using System.Drawing; +#region ================== Namespaces + +using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; +#endregion + namespace CodeImp.DoomBuilder.Controls { public class ConfigurablePictureBox : PictureBox { + #region ================== Variables + private InterpolationMode interpolationmode = InterpolationMode.NearestNeighbor; private SmoothingMode smoothingmode = SmoothingMode.Default; private CompositingQuality compositingquality = CompositingQuality.Default; private PixelOffsetMode pixeloffsetmode = PixelOffsetMode.None; private GraphicsUnit pageunit = GraphicsUnit.Pixel; + #endregion + + #region ================== Properties + public InterpolationMode InterpolationMode { get { return interpolationmode; } set { interpolationmode = value; } } public SmoothingMode SmoothingMode { get { return smoothingmode; } set { smoothingmode = value; } } public CompositingQuality CompositingQuality { get { return compositingquality; } set { compositingquality = value; } } public PixelOffsetMode PixelOffsetMode { get { return pixeloffsetmode; } set { pixeloffsetmode = value; } } public GraphicsUnit PageUnit { get { return pageunit; } set { pageunit = value; } } - /*public ConfigurablePictureBox() - { - InterpolationMode = InterpolationMode.NearestNeighbor; - SmoothingMode = SmoothingMode.Default; - CompositingQuality = CompositingQuality.Default; - PixelOffsetMode = PixelOffsetMode.None; - PageUnit = GraphicsUnit.Pixel; - }*/ - - protected override void OnPaint(PaintEventArgs pe) + #endregion + + #region ================== Events + + protected override void OnPaint(PaintEventArgs pe) { pe.Graphics.InterpolationMode = InterpolationMode; pe.Graphics.SmoothingMode = SmoothingMode; @@ -36,5 +41,7 @@ namespace CodeImp.DoomBuilder.Controls pe.Graphics.PixelOffsetMode = PixelOffsetMode; base.OnPaint(pe); } + + #endregion } } diff --git a/Source/Core/Controls/ImageSelectorControl.Designer.cs b/Source/Core/Controls/ImageSelectorControl.Designer.cs index fdab6755..90e45cff 100644 --- a/Source/Core/Controls/ImageSelectorControl.Designer.cs +++ b/Source/Core/Controls/ImageSelectorControl.Designer.cs @@ -15,7 +15,6 @@ namespace CodeImp.DoomBuilder.Controls { if(disposing && (components != null)) { - if(bmp != null) bmp.Dispose(); components.Dispose(); } base.Dispose(disposing); diff --git a/Source/Core/Controls/ImageSelectorControl.cs b/Source/Core/Controls/ImageSelectorControl.cs index a486e493..6b03cf7c 100644 --- a/Source/Core/Controls/ImageSelectorControl.cs +++ b/Source/Core/Controls/ImageSelectorControl.cs @@ -36,10 +36,9 @@ namespace CodeImp.DoomBuilder.Controls public event EventHandler OnValueChanged; //mxd - private Bitmap bmp; private MouseButtons button; private ImageData image; //mxd - private string previousImageName; //mxd + private string previousimagename; //mxd protected bool multipletextures; //mxd protected bool usepreviews = true; //mxd @@ -179,12 +178,7 @@ namespace CodeImp.DoomBuilder.Controls private void ShowPreview(Image image) { // Dispose old image - imagebox.BackgroundImage = null; - if(bmp != null) - { - bmp.Dispose(); - bmp = null; - } + imagebox.Image = null; if(image != null) { @@ -194,9 +188,9 @@ namespace CodeImp.DoomBuilder.Controls } //mxd. Dispatch event - if(OnValueChanged != null && previousImageName != name.Text) + if(OnValueChanged != null && previousimagename != name.Text) { - previousImageName = name.Text; + previousimagename = name.Text; OnValueChanged(this, EventArgs.Empty); } }