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> /// <summary>
/// Looks up a localized string similar to Capture region (Light). /// Looks up a localized string similar to Capture region (Light).
/// </summary> /// </summary>

View file

@ -902,4 +902,10 @@ Would you like to download it?</value>
<data name="HotkeyType_TextCapture_Category" xml:space="preserve"> <data name="HotkeyType_TextCapture_Category" xml:space="preserve">
<value>Screen capture</value> <value>Screen capture</value>
</data> </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> </root>

View file

@ -880,4 +880,10 @@ Dosya boyutu: {2:n0} / {3:n0} KB</value>
<data name="AfterCaptureTasks_DoOCR" xml:space="preserve"> <data name="AfterCaptureTasks_DoOCR" xml:space="preserve">
<value>Yazı tanı (OCR)</value> <value>Yazı tanı (OCR)</value>
</data> </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> </root>

View file

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

View file

@ -1746,7 +1746,7 @@ private void tsmiImagePreviewAutomatic_Click(object sender, EventArgs e)
private delegate Image ScreenCaptureDelegate(); private delegate Image ScreenCaptureDelegate();
private enum LastRegionCaptureType { Default, Light, Transparent } private enum LastRegionCaptureType { Default, Light, Transparent, Annotate }
private LastRegionCaptureType lastRegionCaptureType = LastRegionCaptureType.Default; private LastRegionCaptureType lastRegionCaptureType = LastRegionCaptureType.Default;
@ -1853,6 +1853,9 @@ private void ExecuteJob(TaskSettings taskSettings, HotkeyType job)
case HotkeyType.RectangleTransparent: case HotkeyType.RectangleTransparent:
CaptureRectangleTransparent(safeTaskSettings, false); CaptureRectangleTransparent(safeTaskSettings, false);
break; break;
case HotkeyType.RectangleAnnotate:
CaptureRectangleAnnotate(safeTaskSettings, false);
break;
case HotkeyType.PolygonRegion: case HotkeyType.PolygonRegion:
CaptureScreenshot(CaptureType.Polygon, safeTaskSettings, false); CaptureScreenshot(CaptureType.Polygon, safeTaskSettings, false);
break; break;
@ -2261,6 +2264,31 @@ private void CaptureRectangleTransparent(TaskSettings taskSettings = null, bool
}, CaptureType.Rectangle, taskSettings, autoHideForm); }, 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) private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = true)
{ {
switch (lastRegionCaptureType) switch (lastRegionCaptureType)
@ -2313,6 +2341,22 @@ private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = tr
CaptureRectangleTransparent(taskSettings, autoHideForm); CaptureRectangleTransparent(taskSettings, autoHideForm);
} }
break; 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(); public ScrollingCaptureOptions ScrollingCaptureOptions = new ScrollingCaptureOptions();
#endregion Capture / Scrolling capture #endregion Capture / Scrolling capture
#region Capture / Rectangle annotate
public RectangleAnnotateOptions RectangleAnnotateOptions = new RectangleAnnotateOptions();
#endregion Capture / Rectangle annotate
} }
public class TaskSettingsUpload public class TaskSettingsUpload