Support importing .sxie files

This commit is contained in:
Jaex 2020-06-16 05:29:07 +03:00
parent 8a6d06b21d
commit 28c7b91752
5 changed files with 45 additions and 26 deletions

View file

@ -231,6 +231,12 @@ private void tsmiImportClipboard_Click(object sender, EventArgs e)
}
}
public void ImportFile(string filePath)
{
string json = File.ReadAllText(filePath, Encoding.UTF8);
OnImportRequested(json);
}
private void tsmiImportFile_Click(object sender, EventArgs e)
{
string filter = "Settings (*.json)|*.json|All files (*.*)|*.*";
@ -246,8 +252,7 @@ private void tsmiImportFile_Click(object sender, EventArgs e)
{
foreach (string filename in ofd.FileNames)
{
string json = File.ReadAllText(filename, Encoding.UTF8);
OnImportRequested(json);
ImportFile(filename);
}
OnImportCompleted();

View file

@ -101,12 +101,7 @@ public static string ExtractPackage(string packageFilePath, string imageEffectsF
string destination = Path.Combine(imageEffectsFolderPath, packageName);
ZipManager.Extract(packageFilePath, destination);
string configFilePath = Path.Combine(destination, ConfigFileName);
if (File.Exists(configFilePath))
{
return configFilePath;
}
return Path.Combine(destination, ConfigFileName);
}
}

View file

@ -71,8 +71,6 @@ public ImageEffectsForm(Bitmap bmp, List<ImageEffectPreset> presets, int selecte
eiImageEffects.ObjectType = typeof(ImageEffectPreset);
eiImageEffects.SerializationBinder = new TypeNameSerializationBinder("ShareX.ImageEffectsLib", "ShareX.ImageEffectsLib");
AddAllEffectsToContextMenu();
LoadSettings();
}
public static ImageEffectsForm GetFormInstance(List<ImageEffectPreset> presets, int selectedPresetIndex)
@ -101,6 +99,11 @@ public void EditorMode()
btnClose.Text = Resources.ImageEffectsForm_EditorMode_Cancel;
}
public void ImportImageEffectFromFilePath(string filePath)
{
eiImageEffects.ImportFile(filePath);
}
protected void OnImageProcessRequested(Bitmap bmp)
{
ImageProcessRequested?.Invoke(bmp);
@ -435,6 +438,8 @@ private void LoadPreset(ImageEffectPreset preset)
private void ImageEffectsForm_Shown(object sender, EventArgs e)
{
LoadSettings();
this.ForceActivate();
}

View file

@ -813,20 +813,7 @@ private void chkShowImageEffectsWindowAfterCapture_CheckedChanged(object sender,
private void btnImageEffects_Click(object sender, EventArgs e)
{
bool firstInstance = !ImageEffectsForm.IsInstanceActive;
ImageEffectsForm imageEffectsForm = ImageEffectsForm.GetFormInstance(TaskSettings.ImageSettings.ImageEffectPresets,
TaskSettings.ImageSettings.SelectedImageEffectPreset);
if (firstInstance)
{
imageEffectsForm.FormClosed += (sender2, e2) => TaskSettings.ImageSettings.SelectedImageEffectPreset = imageEffectsForm.SelectedPresetIndex;
imageEffectsForm.Show();
}
else
{
imageEffectsForm.ForceActivate();
}
TaskHelpers.OpenImageEffectsSingleton(TaskSettings);
}
private void nudThumbnailWidth_ValueChanged(object sender, EventArgs e)

View file

@ -1061,6 +1061,28 @@ public static void OpenImageEffects(TaskSettings taskSettings = null)
}
}
public static ImageEffectsForm OpenImageEffectsSingleton(TaskSettings taskSettings = null)
{
if (taskSettings == null) taskSettings = Program.DefaultTaskSettings;
bool firstInstance = !ImageEffectsForm.IsInstanceActive;
ImageEffectsForm imageEffectsForm = ImageEffectsForm.GetFormInstance(taskSettings.ImageSettings.ImageEffectPresets,
taskSettings.ImageSettings.SelectedImageEffectPreset);
if (firstInstance)
{
imageEffectsForm.FormClosed += (sender, e) => taskSettings.ImageSettings.SelectedImageEffectPreset = imageEffectsForm.SelectedPresetIndex;
imageEffectsForm.Show();
}
else
{
imageEffectsForm.ForceActivate();
}
return imageEffectsForm;
}
public static void OpenMonitorTest()
{
using (MonitorTestForm monitorTestForm = new MonitorTestForm())
@ -1670,9 +1692,14 @@ public static void AddImageEffect(string filePath)
{
string configFilePath = ImageEffectPackager.ExtractPackage(filePath, Program.ImageEffectsFolder);
if (!string.IsNullOrEmpty(configFilePath))
if (!string.IsNullOrEmpty(configFilePath) && File.Exists(configFilePath))
{
// TODO
ImageEffectsForm imageEffectsForm = OpenImageEffectsSingleton(Program.DefaultTaskSettings);
if (imageEffectsForm != null)
{
imageEffectsForm.ImportImageEffectFromFilePath(configFilePath);
}
}
}