fixed #1631: Add previous region capture (annotate) method back as hotkey only

This commit is contained in:
Jaex 2016-06-21 08:23:00 +03:00
parent cfbb00136d
commit 2e14471359
6 changed files with 82 additions and 1 deletions

View file

@ -1320,6 +1320,24 @@ internal class Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Capture region (Simple annotate).
/// </summary>
internal static string HotkeyType_RectangleAnnotate {
get {
return ResourceManager.GetString("HotkeyType_RectangleAnnotate", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Screen capture.
/// </summary>
internal static string HotkeyType_RectangleAnnotate_Category {
get {
return ResourceManager.GetString("HotkeyType_RectangleAnnotate_Category", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Capture region (Light).
/// </summary>

View file

@ -902,4 +902,10 @@ Would you like to download it?</value>
<data name="HotkeyType_TextCapture_Category" xml:space="preserve">
<value>Screen capture</value>
</data>
<data name="HotkeyType_RectangleAnnotate" xml:space="preserve">
<value>Capture region (Simple annotate)</value>
</data>
<data name="HotkeyType_RectangleAnnotate_Category" xml:space="preserve">
<value>Screen capture</value>
</data>
</root>

View file

@ -880,4 +880,10 @@ Dosya boyutu: {2:n0} / {3:n0} KB</value>
<data name="AfterCaptureTasks_DoOCR" xml:space="preserve">
<value>Yazı tanı (OCR)</value>
</data>
<data name="HotkeyType_RectangleAnnotate_Category" xml:space="preserve">
<value>Ekran yakalama</value>
</data>
<data name="HotkeyType_RectangleAnnotate" xml:space="preserve">
<value>Bölge yakalama (Basit dipnot)</value>
</data>
</root>

View file

@ -163,6 +163,7 @@ public enum HotkeyType // Localized + Category
RectangleRegion,
RectangleLight,
RectangleTransparent,
RectangleAnnotate,
PolygonRegion,
FreeHandRegion,
CustomRegion,

View file

@ -1746,7 +1746,7 @@ private void tsmiImagePreviewAutomatic_Click(object sender, EventArgs e)
private delegate Image ScreenCaptureDelegate();
private enum LastRegionCaptureType { Default, Light, Transparent }
private enum LastRegionCaptureType { Default, Light, Transparent, Annotate }
private LastRegionCaptureType lastRegionCaptureType = LastRegionCaptureType.Default;
@ -1853,6 +1853,9 @@ private void ExecuteJob(TaskSettings taskSettings, HotkeyType job)
case HotkeyType.RectangleTransparent:
CaptureRectangleTransparent(safeTaskSettings, false);
break;
case HotkeyType.RectangleAnnotate:
CaptureRectangleAnnotate(safeTaskSettings, false);
break;
case HotkeyType.PolygonRegion:
CaptureScreenshot(CaptureType.Polygon, safeTaskSettings, false);
break;
@ -2261,6 +2264,31 @@ private void CaptureRectangleTransparent(TaskSettings taskSettings = null, bool
}, CaptureType.Rectangle, taskSettings, autoHideForm);
}
private void CaptureRectangleAnnotate(TaskSettings taskSettings = null, bool autoHideForm = true)
{
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
DoCapture(() =>
{
Image img = null;
using (RectangleRegionAnnotateForm rectangleAnnotate = new RectangleRegionAnnotateForm(taskSettings.CaptureSettingsReference.RectangleAnnotateOptions))
{
if (rectangleAnnotate.ShowDialog() == DialogResult.OK)
{
img = rectangleAnnotate.GetAreaImage();
if (img != null)
{
lastRegionCaptureType = LastRegionCaptureType.Annotate;
}
}
}
return img;
}, CaptureType.Rectangle, taskSettings, autoHideForm);
}
private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = true)
{
switch (lastRegionCaptureType)
@ -2313,6 +2341,22 @@ private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = tr
CaptureRectangleTransparent(taskSettings, autoHideForm);
}
break;
case LastRegionCaptureType.Annotate:
if (!RectangleRegionAnnotateForm.LastSelectionRectangle0Based.IsEmpty)
{
DoCapture(() =>
{
using (Image screenshot = Screenshot.CaptureFullscreen())
{
return ImageHelpers.CropImage(screenshot, RectangleRegionAnnotateForm.LastSelectionRectangle0Based);
}
}, CaptureType.LastRegion, taskSettings, autoHideForm);
}
else
{
CaptureRectangleAnnotate(taskSettings, autoHideForm);
}
break;
}
}

View file

@ -343,6 +343,12 @@ public class TaskSettingsCapture
public ScrollingCaptureOptions ScrollingCaptureOptions = new ScrollingCaptureOptions();
#endregion Capture / Scrolling capture
#region Capture / Rectangle annotate
public RectangleAnnotateOptions RectangleAnnotateOptions = new RectangleAnnotateOptions();
#endregion Capture / Rectangle annotate
}
public class TaskSettingsUpload