From 9a8d8f0fc594ba4117c30ae94859950fa3503d0c Mon Sep 17 00:00:00 2001 From: Jaex Date: Sun, 24 Dec 2017 12:01:16 +0300 Subject: [PATCH] Added "Auto close editor on task" option --- ShareX.HistoryLib/ShareX.HistoryLib.csproj | 8 --- .../Forms/RegionCaptureForm.cs | 55 +++++++++++++++++-- .../RegionCaptureOptions.cs | 3 +- .../Shapes/ShapeManager.cs | 6 +- .../Shapes/ShapeManagerMenu.cs | 9 ++- 5 files changed, 61 insertions(+), 20 deletions(-) diff --git a/ShareX.HistoryLib/ShareX.HistoryLib.csproj b/ShareX.HistoryLib/ShareX.HistoryLib.csproj index a073d8148..37d2c05a6 100644 --- a/ShareX.HistoryLib/ShareX.HistoryLib.csproj +++ b/ShareX.HistoryLib/ShareX.HistoryLib.csproj @@ -270,17 +270,9 @@ - - - - - - - - diff --git a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs index 16599945a..7d39d54eb 100644 --- a/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs +++ b/ShareX.ScreenCaptureLib/Forms/RegionCaptureForm.cs @@ -1465,7 +1465,16 @@ internal void OnSaveImageRequested() if (SaveImageRequested != null) { Image img = GetResultImage(); - SaveImageRequested(img, ImageFilePath); + + if (Options.AutoCloseEditorOnTask) + { + Close(); + TaskEx.Run(() => SaveImageRequested(img, ImageFilePath)); + } + else + { + SaveImageRequested(img, ImageFilePath); + } } } @@ -1474,7 +1483,16 @@ internal void OnSaveImageAsRequested() if (SaveImageAsRequested != null) { Image img = GetResultImage(); - SaveImageAsRequested(img, ImageFilePath); + + if (Options.AutoCloseEditorOnTask) + { + Close(); + TaskEx.Run(() => SaveImageAsRequested(img, ImageFilePath)); + } + else + { + SaveImageAsRequested(img, ImageFilePath); + } } } @@ -1483,7 +1501,16 @@ internal void OnCopyImageRequested() if (CopyImageRequested != null) { Image img = GetResultImage(); - CopyImageRequested(img); + + if (Options.AutoCloseEditorOnTask) + { + Close(); + TaskEx.Run(() => CopyImageRequested(img)); + } + else + { + CopyImageRequested(img); + } } } @@ -1492,7 +1519,16 @@ internal void OnUploadImageRequested() if (UploadImageRequested != null) { Image img = GetResultImage(); - UploadImageRequested(img); + + if (Options.AutoCloseEditorOnTask) + { + Close(); + TaskEx.Run(() => UploadImageRequested(img)); + } + else + { + UploadImageRequested(img); + } } } @@ -1501,7 +1537,16 @@ internal void OnPrintImageRequested() if (PrintImageRequested != null) { Image img = GetResultImage(); - PrintImageRequested(img); + + if (Options.AutoCloseEditorOnTask) + { + Close(); + TaskEx.Run(() => PrintImageRequested(img)); + } + else + { + PrintImageRequested(img); + } } } diff --git a/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs b/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs index f84b0146a..c1befdc62 100644 --- a/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs +++ b/ShareX.ScreenCaptureLib/RegionCaptureOptions.cs @@ -81,8 +81,9 @@ public class RegionCaptureOptions // Image editor public ImageEditorStartMode ImageEditorStartMode = ImageEditorStartMode.AutoSize; public WindowState ImageEditorWindowState = new WindowState(); + public bool AutoCloseEditorOnTask = true; public Color ImageEditorBackgroundColor = Color.FromArgb(200, 200, 200); public bool ShowEditorPanTip = true; - public ImageEditorInterpolationMode ImageEditorInterpolationMode = ImageEditorInterpolationMode.Bicubic; + public ImageEditorInterpolationMode ImageEditorResizeInterpolationMode = ImageEditorInterpolationMode.Bicubic; } } \ No newline at end of file diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index d5a5cbbbb..550112eeb 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -1478,16 +1478,16 @@ private void ChangeImageSize() { Size oldSize = Form.Canvas.Size; - using (ImageSizeForm imageSizeForm = new ImageSizeForm(oldSize, Options.ImageEditorInterpolationMode)) + using (ImageSizeForm imageSizeForm = new ImageSizeForm(oldSize, Options.ImageEditorResizeInterpolationMode)) { if (imageSizeForm.ShowDialog(Form) == DialogResult.OK) { Size size = imageSizeForm.ImageSize; - Options.ImageEditorInterpolationMode = imageSizeForm.InterpolationMode; + Options.ImageEditorResizeInterpolationMode = imageSizeForm.InterpolationMode; if (size != oldSize) { - InterpolationMode interpolationMode = GetInterpolationMode(Options.ImageEditorInterpolationMode); + InterpolationMode interpolationMode = GetInterpolationMode(Options.ImageEditorResizeInterpolationMode); Image img = ImageHelpers.ResizeImage(Form.Canvas, size, interpolationMode); if (img != null) diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs index a6b68b239..6824c0a4f 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs @@ -159,10 +159,7 @@ internal void CreateToolbar() tsbCloseCancel.Image = Resources.cross; tsbCloseCancel.Click += (sender, e) => Form.Close(RegionResult.AnnotateCancelTask); tsMain.Items.Add(tsbCloseCancel); - } - if (Form.Mode == RegionCaptureMode.TaskEditor) - { tsMain.Items.Add(new ToolStripSeparator()); } @@ -752,6 +749,12 @@ internal void CreateToolbar() (sender, e) => Options.ImageEditorStartMode = (ImageEditorStartMode)tscbImageEditorStartMode.Content.SelectedIndex; tsddbOptions.DropDownItems.Add(tscbImageEditorStartMode); + ToolStripMenuItem tsmiAutoCloseEditorOnTask = new ToolStripMenuItem("Auto close editor on task"); + tsmiAutoCloseEditorOnTask.Checked = Options.AutoCloseEditorOnTask; + tsmiAutoCloseEditorOnTask.CheckOnClick = true; + tsmiAutoCloseEditorOnTask.Click += (sender, e) => Options.AutoCloseEditorOnTask = tsmiAutoCloseEditorOnTask.Checked; + tsddbOptions.DropDownItems.Add(tsmiAutoCloseEditorOnTask); + tsmiImageEditorBackgroundColor = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_EditorBackgroundColor); tsmiImageEditorBackgroundColor.Click += (sender, e) => {