mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 17:56:51 +13:00
Pause preview while adding effects
This commit is contained in:
parent
2d8f124461
commit
20140c7b8f
1 changed files with 50 additions and 32 deletions
|
@ -42,6 +42,7 @@ public partial class ImageEffectsForm : Form
|
|||
public int SelectedPresetIndex { get; private set; }
|
||||
|
||||
private bool ignorePresetsSelectedIndexChanged = false;
|
||||
private bool pauseUpdate = false;
|
||||
|
||||
public ImageEffectsForm(Image img, List<ImageEffectPreset> presets, int selectedPresetIndex)
|
||||
{
|
||||
|
@ -165,31 +166,33 @@ private void AddPreset(ImageEffectPreset preset)
|
|||
cbPresets.SelectedIndex = cbPresets.Items.Count - 1;
|
||||
LoadPreset(preset);
|
||||
txtPresetName.Focus();
|
||||
UpdatePreview();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdatePreview()
|
||||
{
|
||||
ImageEffectPreset preset = GetSelectedPreset();
|
||||
|
||||
if (preset != null && DefaultImage != null)
|
||||
if (!pauseUpdate)
|
||||
{
|
||||
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);
|
||||
Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
|
||||
preview.Width, preview.Height, timer.ElapsedMilliseconds);
|
||||
}
|
||||
else
|
||||
{
|
||||
pbResult.Reset();
|
||||
Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
|
||||
0, 0, timer.ElapsedMilliseconds);
|
||||
if (preview != null)
|
||||
{
|
||||
pbResult.LoadImage(preview);
|
||||
Text = string.Format("ShareX - " + Resources.ImageEffectsForm_UpdatePreview_Image_effects___Width___0___Height___1___Render_time___2__ms,
|
||||
preview.Width, preview.Height, timer.ElapsedMilliseconds);
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
ImageEffect imageEffect = (ImageEffect)Activator.CreateInstance(type);
|
||||
// TODO: Order
|
||||
preset.Effects.Add(imageEffect);
|
||||
AddEffect(imageEffect);
|
||||
UpdatePreview();
|
||||
|
@ -233,15 +237,19 @@ private void tsmiEffectClick(object sender, EventArgs e)
|
|||
|
||||
private void RemoveSelectedEffects()
|
||||
{
|
||||
if (lvEffects.SelectedItems.Count > 0)
|
||||
{
|
||||
// TODO
|
||||
foreach (ListViewItem lvi in lvEffects.SelectedItems)
|
||||
{
|
||||
lvi.Remove();
|
||||
}
|
||||
ImageEffectPreset preset = GetSelectedPreset();
|
||||
|
||||
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)
|
||||
{
|
||||
txtPresetName.Text = preset.Name;
|
||||
|
||||
lvEffects.Items.Clear();
|
||||
|
||||
pgSettings.SelectedObject = null;
|
||||
|
||||
foreach (ImageEffect imageEffect in preset.Effects)
|
||||
try
|
||||
{
|
||||
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
|
||||
|
@ -385,6 +402,7 @@ private void btnDuplicate_Click(object sender, EventArgs e)
|
|||
|
||||
private void lvEffects_ItemMoved(object sender, int oldIndex, int newIndex)
|
||||
{
|
||||
// TODO: Order
|
||||
UpdatePreview();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue