Fix unnecessary preview updates

This commit is contained in:
Jaex 2020-06-16 05:52:44 +03:00
parent 28c7b91752
commit d4bd293bbe

View file

@ -52,6 +52,8 @@ public partial class ImageEffectsForm : Form
public ImageEffectsForm(Bitmap bmp, List<ImageEffectPreset> presets, int selectedPresetIndex) public ImageEffectsForm(Bitmap bmp, List<ImageEffectPreset> presets, int selectedPresetIndex)
{ {
pauseUpdate = true;
InitializeComponent(); InitializeComponent();
ShareXResources.ApplyTheme(this); ShareXResources.ApplyTheme(this);
@ -68,9 +70,14 @@ public ImageEffectsForm(Bitmap bmp, List<ImageEffectPreset> presets, int selecte
} }
SelectedPresetIndex = selectedPresetIndex; SelectedPresetIndex = selectedPresetIndex;
eiImageEffects.ObjectType = typeof(ImageEffectPreset); eiImageEffects.ObjectType = typeof(ImageEffectPreset);
eiImageEffects.SerializationBinder = new TypeNameSerializationBinder("ShareX.ImageEffectsLib", "ShareX.ImageEffectsLib"); eiImageEffects.SerializationBinder = new TypeNameSerializationBinder("ShareX.ImageEffectsLib", "ShareX.ImageEffectsLib");
AddAllEffectsToContextMenu(); AddAllEffectsToContextMenu();
LoadSettings();
pauseUpdate = false;
} }
public static ImageEffectsForm GetFormInstance(List<ImageEffectPreset> presets, int selectedPresetIndex) public static ImageEffectsForm GetFormInstance(List<ImageEffectPreset> presets, int selectedPresetIndex)
@ -180,8 +187,6 @@ private void AddEffectToContextMenu(string groupName, params Type[] imageEffects
private void LoadSettings() private void LoadSettings()
{ {
pauseUpdate = true;
foreach (ImageEffectPreset preset in Presets) foreach (ImageEffectPreset preset in Presets)
{ {
cbPresets.Items.Add(preset); cbPresets.Items.Add(preset);
@ -193,8 +198,6 @@ private void LoadSettings()
} }
UpdateControlStates(); UpdateControlStates();
pauseUpdate = false;
} }
private ImageEffectPreset GetSelectedPreset() private ImageEffectPreset GetSelectedPreset()
@ -220,7 +223,9 @@ private void AddPreset(ImageEffectPreset preset)
{ {
Presets.Add(preset); Presets.Add(preset);
cbPresets.Items.Add(preset); cbPresets.Items.Add(preset);
ignorePresetsSelectedIndexChanged = true;
cbPresets.SelectedIndex = cbPresets.Items.Count - 1; cbPresets.SelectedIndex = cbPresets.Items.Count - 1;
ignorePresetsSelectedIndexChanged = false;
LoadPreset(preset); LoadPreset(preset);
txtPresetName.Focus(); txtPresetName.Focus();
} }
@ -438,8 +443,6 @@ private void LoadPreset(ImageEffectPreset preset)
private void ImageEffectsForm_Shown(object sender, EventArgs e) private void ImageEffectsForm_Shown(object sender, EventArgs e)
{ {
LoadSettings();
this.ForceActivate(); this.ForceActivate();
} }
@ -585,7 +588,7 @@ private void lvEffects_SelectedIndexChanged(object sender, EventArgs e)
private void lvEffects_ItemChecked(object sender, ItemCheckedEventArgs e) private void lvEffects_ItemChecked(object sender, ItemCheckedEventArgs e)
{ {
if (e.Item != null && e.Item.Tag is ImageEffect) if (e.Item != null && e.Item.Focused && e.Item.Tag is ImageEffect)
{ {
ImageEffect imageEffect = (ImageEffect)e.Item.Tag; ImageEffect imageEffect = (ImageEffect)e.Item.Tag;
imageEffect.Enabled = e.Item.Checked; imageEffect.Enabled = e.Item.Checked;