mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
fixed #1631: Add previous region capture (annotate) method back as hotkey only
This commit is contained in:
parent
cfbb00136d
commit
2e14471359
6 changed files with 82 additions and 1 deletions
18
ShareX.HelpersLib/Properties/Resources.Designer.cs
generated
18
ShareX.HelpersLib/Properties/Resources.Designer.cs
generated
|
@ -1320,6 +1320,24 @@ internal static string HotkeyType_QRCode_Category {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -163,6 +163,7 @@ public enum HotkeyType // Localized + Category
|
||||||
RectangleRegion,
|
RectangleRegion,
|
||||||
RectangleLight,
|
RectangleLight,
|
||||||
RectangleTransparent,
|
RectangleTransparent,
|
||||||
|
RectangleAnnotate,
|
||||||
PolygonRegion,
|
PolygonRegion,
|
||||||
FreeHandRegion,
|
FreeHandRegion,
|
||||||
CustomRegion,
|
CustomRegion,
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue