Make sure preview is updated once

This commit is contained in:
Jaex 2020-07-08 16:12:43 +03:00
parent c5b5744cb9
commit 593c9aea27

View file

@ -47,8 +47,7 @@ public partial class ImageEffectsForm : Form
public int SelectedPresetIndex { get; private set; } public int SelectedPresetIndex { get; private set; }
public string FilePath { get; private set; } public string FilePath { get; private set; }
private bool ignorePresetsSelectedIndexChanged = false; private bool pauseUpdate;
private bool pauseUpdate = false;
public ImageEffectsForm(Bitmap bmp, List<ImageEffectPreset> presets, int selectedPresetIndex) public ImageEffectsForm(Bitmap bmp, List<ImageEffectPreset> presets, int selectedPresetIndex)
{ {
@ -81,8 +80,6 @@ public ImageEffectsForm(Bitmap bmp, List<ImageEffectPreset> presets, int selecte
AddAllEffectsToContextMenu(); AddAllEffectsToContextMenu();
LoadSettings(); LoadSettings();
pauseUpdate = false;
} }
public static ImageEffectsForm GetFormInstance(List<ImageEffectPreset> presets, int selectedPresetIndex) public static ImageEffectsForm GetFormInstance(List<ImageEffectPreset> presets, int selectedPresetIndex)
@ -238,10 +235,7 @@ private void AddPreset(ImageEffectPreset preset)
Presets.Add(preset); Presets.Add(preset);
ListViewItem lvi = new ListViewItem(preset.ToString()); ListViewItem lvi = new ListViewItem(preset.ToString());
lvPresets.Items.Add(lvi); lvPresets.Items.Add(lvi);
ignorePresetsSelectedIndexChanged = true;
lvPresets.SelectLast(); lvPresets.SelectLast();
ignorePresetsSelectedIndexChanged = false;
LoadPreset(preset);
txtPresetName.Focus(); txtPresetName.Focus();
} }
} }
@ -265,6 +259,8 @@ private void UpdatePreview()
if (PreviewImage != null) if (PreviewImage != null)
{ {
//Debug.WriteLine("Updating preview...");
Stopwatch timer = Stopwatch.StartNew(); Stopwatch timer = Stopwatch.StartNew();
using (Image preview = ApplyEffects()) using (Image preview = ApplyEffects())
@ -414,8 +410,6 @@ private void ClearFields()
private void AddEffect(ImageEffect imageEffect, ImageEffectPreset preset = null) private void AddEffect(ImageEffect imageEffect, ImageEffectPreset preset = null)
{ {
pauseUpdate = true;
ListViewItem lvi = new ListViewItem(imageEffect.GetType().GetDescription()); ListViewItem lvi = new ListViewItem(imageEffect.GetType().GetDescription());
lvi.Checked = imageEffect.Enabled; lvi.Checked = imageEffect.Enabled;
lvi.Tag = imageEffect; lvi.Tag = imageEffect;
@ -442,14 +436,10 @@ private void AddEffect(ImageEffect imageEffect, ImageEffectPreset preset = null)
lvi.EnsureVisible(); lvi.EnsureVisible();
lvi.Selected = true; lvi.Selected = true;
pauseUpdate = false;
} }
private void LoadPreset(ImageEffectPreset preset) private void LoadPreset(ImageEffectPreset preset)
{ {
pauseUpdate = true;
txtPresetName.Text = preset.Name; txtPresetName.Text = preset.Name;
lvEffects.Items.Clear(); lvEffects.Items.Clear();
pgSettings.SelectedObject = null; pgSettings.SelectedObject = null;
@ -459,8 +449,6 @@ private void LoadPreset(ImageEffectPreset preset)
AddEffect(imageEffect); AddEffect(imageEffect);
} }
pauseUpdate = false;
UpdatePreview(); UpdatePreview();
} }
@ -469,6 +457,9 @@ private void LoadPreset(ImageEffectPreset preset)
private void ImageEffectsForm_Shown(object sender, EventArgs e) private void ImageEffectsForm_Shown(object sender, EventArgs e)
{ {
this.ForceActivate(); this.ForceActivate();
pauseUpdate = false;
UpdatePreview();
} }
private void btnPresetNew_Click(object sender, EventArgs e) private void btnPresetNew_Click(object sender, EventArgs e)
@ -512,13 +503,11 @@ private void lvPresets_SelectedIndexChanged(object sender, EventArgs e)
{ {
SelectedPresetIndex = lvPresets.SelectedIndex; SelectedPresetIndex = lvPresets.SelectedIndex;
if (!ignorePresetsSelectedIndexChanged) ImageEffectPreset preset = GetSelectedPreset();
if (preset != null)
{ {
ImageEffectPreset preset = GetSelectedPreset(); LoadPreset(preset);
if (preset != null)
{
LoadPreset(preset);
}
} }
} }