Pause preview update when loading settings and adding effect

This commit is contained in:
Jaex 2017-09-25 10:49:08 +03:00
parent fa3c04fad6
commit 77262d4043
2 changed files with 36 additions and 25 deletions

View file

@ -259,6 +259,7 @@ private void InitializeComponent()
this.Controls.Add(this.lvEffects);
this.Name = "ImageEffectsForm";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.Shown += new System.EventHandler(this.ImageEffectsForm_Shown);
this.cmsLoadImage.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();

View file

@ -53,18 +53,6 @@ public ImageEffectsForm(Image img, List<ImageEffectPreset> presets, int selected
SelectedPresetIndex = selectedPresetIndex;
eiImageEffects.ObjectType = typeof(ImageEffectPreset);
AddAllEffectsToContextMenu();
foreach (ImageEffectPreset preset in presets)
{
cbPresets.Items.Add(preset);
}
if (selectedPresetIndex > -1 && selectedPresetIndex < cbPresets.Items.Count)
{
cbPresets.SelectedIndex = selectedPresetIndex;
}
UpdatePreview();
}
public void EditorMode()
@ -140,6 +128,23 @@ private void AddEffectToContextMenu(string groupName, params Type[] imageEffects
}
}
private void LoadSettings()
{
pauseUpdate = true;
foreach (ImageEffectPreset preset in Presets)
{
cbPresets.Items.Add(preset);
}
if (SelectedPresetIndex > -1 && SelectedPresetIndex < cbPresets.Items.Count)
{
cbPresets.SelectedIndex = SelectedPresetIndex;
}
pauseUpdate = false;
}
private ImageEffectPreset GetSelectedPreset()
{
int index = cbPresets.SelectedIndex;
@ -260,6 +265,8 @@ private void ClearFields()
private void AddEffect(ImageEffect imageEffect, ImageEffectPreset preset = null)
{
pauseUpdate = true;
ListViewItem lvi = new ListViewItem(imageEffect.GetType().GetDescription());
lvi.Checked = imageEffect.Enabled;
lvi.Tag = imageEffect;
@ -286,33 +293,36 @@ private void AddEffect(ImageEffect imageEffect, ImageEffectPreset preset = null)
lvi.EnsureVisible();
lvi.Selected = true;
pauseUpdate = false;
}
private void LoadPreset(ImageEffectPreset preset)
{
try
{
pauseUpdate = true;
pauseUpdate = true;
txtPresetName.Text = preset.Name;
lvEffects.Items.Clear();
pgSettings.SelectedObject = null;
txtPresetName.Text = preset.Name;
lvEffects.Items.Clear();
pgSettings.SelectedObject = null;
foreach (ImageEffect imageEffect in preset.Effects)
{
AddEffect(imageEffect);
}
}
finally
foreach (ImageEffect imageEffect in preset.Effects)
{
pauseUpdate = false;
AddEffect(imageEffect);
}
pauseUpdate = false;
UpdatePreview();
}
#region Form events
private void ImageEffectsForm_Shown(object sender, EventArgs e)
{
LoadSettings();
this.ForceActivate();
}
private void btnAddPreset_Click(object sender, EventArgs e)
{
AddPreset();