mirror of
https://github.com/ShareX/ShareX.git
synced 2024-07-02 21:20:28 +12:00
Pause preview while adding effects
This commit is contained in:
parent
2d8f124461
commit
20140c7b8f
|
@ -42,6 +42,7 @@ public partial class ImageEffectsForm : Form
|
||||||
public int SelectedPresetIndex { get; private set; }
|
public int SelectedPresetIndex { get; private set; }
|
||||||
|
|
||||||
private bool ignorePresetsSelectedIndexChanged = false;
|
private bool ignorePresetsSelectedIndexChanged = false;
|
||||||
|
private bool pauseUpdate = false;
|
||||||
|
|
||||||
public ImageEffectsForm(Image img, List<ImageEffectPreset> presets, int selectedPresetIndex)
|
public ImageEffectsForm(Image img, List<ImageEffectPreset> presets, int selectedPresetIndex)
|
||||||
{
|
{
|
||||||
|
@ -165,31 +166,33 @@ private void AddPreset(ImageEffectPreset preset)
|
||||||
cbPresets.SelectedIndex = cbPresets.Items.Count - 1;
|
cbPresets.SelectedIndex = cbPresets.Items.Count - 1;
|
||||||
LoadPreset(preset);
|
LoadPreset(preset);
|
||||||
txtPresetName.Focus();
|
txtPresetName.Focus();
|
||||||
UpdatePreview();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdatePreview()
|
private void UpdatePreview()
|
||||||
{
|
{
|
||||||
ImageEffectPreset preset = GetSelectedPreset();
|
if (!pauseUpdate)
|
||||||
|
|
||||||
if (preset != null && DefaultImage != null)
|
|
||||||
{
|
{
|
||||||
Stopwatch timer = Stopwatch.StartNew();
|
ImageEffectPreset preset = GetSelectedPreset();
|
||||||
|
|
||||||
using (Image preview = ApplyEffects())
|
if (preset != null && DefaultImage != null)
|
||||||
{
|
{
|
||||||
if (preview != null)
|
Stopwatch timer = Stopwatch.StartNew();
|
||||||
|
|
||||||
|
using (Image preview = ApplyEffects())
|
||||||
{
|
{
|
||||||
pbResult.LoadImage(preview);
|
if (preview != null)
|
||||||
Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
|
{
|
||||||
preview.Width, preview.Height, timer.ElapsedMilliseconds);
|
pbResult.LoadImage(preview);
|
||||||
}
|
Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
|
||||||
else
|
preview.Width, preview.Height, timer.ElapsedMilliseconds);
|
||||||
{
|
}
|
||||||
pbResult.Reset();
|
else
|
||||||
Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
|
{
|
||||||
0, 0, timer.ElapsedMilliseconds);
|
pbResult.Reset();
|
||||||
|
Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
|
||||||
|
0, 0, timer.ElapsedMilliseconds);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -224,6 +227,7 @@ private void tsmiEffectClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Type type = (Type)tsmi.Tag;
|
Type type = (Type)tsmi.Tag;
|
||||||
ImageEffect imageEffect = (ImageEffect)Activator.CreateInstance(type);
|
ImageEffect imageEffect = (ImageEffect)Activator.CreateInstance(type);
|
||||||
|
// TODO: Order
|
||||||
preset.Effects.Add(imageEffect);
|
preset.Effects.Add(imageEffect);
|
||||||
AddEffect(imageEffect);
|
AddEffect(imageEffect);
|
||||||
UpdatePreview();
|
UpdatePreview();
|
||||||
|
@ -233,15 +237,19 @@ private void tsmiEffectClick(object sender, EventArgs e)
|
||||||
|
|
||||||
private void RemoveSelectedEffects()
|
private void RemoveSelectedEffects()
|
||||||
{
|
{
|
||||||
if (lvEffects.SelectedItems.Count > 0)
|
ImageEffectPreset preset = GetSelectedPreset();
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
foreach (ListViewItem lvi in lvEffects.SelectedItems)
|
|
||||||
{
|
|
||||||
lvi.Remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdatePreview();
|
if (preset != null)
|
||||||
|
{
|
||||||
|
int index = lvEffects.SelectedIndex;
|
||||||
|
|
||||||
|
if (index > -1)
|
||||||
|
{
|
||||||
|
preset.Effects.RemoveAt(index);
|
||||||
|
lvEffects.Items.RemoveAt(index);
|
||||||
|
|
||||||
|
UpdatePreview();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,16 +281,25 @@ private void AddEffect(ImageEffect imageEffect)
|
||||||
|
|
||||||
private void LoadPreset(ImageEffectPreset preset)
|
private void LoadPreset(ImageEffectPreset preset)
|
||||||
{
|
{
|
||||||
txtPresetName.Text = preset.Name;
|
try
|
||||||
|
|
||||||
lvEffects.Items.Clear();
|
|
||||||
|
|
||||||
pgSettings.SelectedObject = null;
|
|
||||||
|
|
||||||
foreach (ImageEffect imageEffect in preset.Effects)
|
|
||||||
{
|
{
|
||||||
AddEffect(imageEffect);
|
pauseUpdate = true;
|
||||||
|
|
||||||
|
txtPresetName.Text = preset.Name;
|
||||||
|
lvEffects.Items.Clear();
|
||||||
|
pgSettings.SelectedObject = null;
|
||||||
|
|
||||||
|
foreach (ImageEffect imageEffect in preset.Effects)
|
||||||
|
{
|
||||||
|
AddEffect(imageEffect);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
pauseUpdate = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdatePreview();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Form events
|
#region Form events
|
||||||
|
@ -385,6 +402,7 @@ private void btnDuplicate_Click(object sender, EventArgs e)
|
||||||
|
|
||||||
private void lvEffects_ItemMoved(object sender, int oldIndex, int newIndex)
|
private void lvEffects_ItemMoved(object sender, int oldIndex, int newIndex)
|
||||||
{
|
{
|
||||||
|
// TODO: Order
|
||||||
UpdatePreview();
|
UpdatePreview();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue