mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Holding ctrl while using image file tool will use last image file instead of opening file dialog
This commit is contained in:
parent
8311c79ba8
commit
8f81068e07
3 changed files with 51 additions and 47 deletions
|
@ -75,6 +75,7 @@ public class AnnotationOptions
|
||||||
|
|
||||||
// Image drawing
|
// Image drawing
|
||||||
public ImageEditorInterpolationMode ImageInterpolationMode = ImageEditorInterpolationMode.NearestNeighbor;
|
public ImageEditorInterpolationMode ImageInterpolationMode = ImageEditorInterpolationMode.NearestNeighbor;
|
||||||
|
public string LastImageFilePath { get; set; }
|
||||||
|
|
||||||
// Step drawing
|
// Step drawing
|
||||||
public Color StepBorderColor { get; set; } = SecondaryColor;
|
public Color StepBorderColor { get; set; } = SecondaryColor;
|
||||||
|
|
|
@ -35,15 +35,20 @@ public override void OnCreating()
|
||||||
Point pos = InputManager.ClientMousePosition;
|
Point pos = InputManager.ClientMousePosition;
|
||||||
Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
||||||
|
|
||||||
if (!OpenImageDialog(true))
|
if (Manager.IsCornerMoving && LoadImageFile(AnnotationOptions.LastImageFilePath, true))
|
||||||
{
|
{
|
||||||
Remove();
|
OnCreated();
|
||||||
|
Manager.IsMoving = true;
|
||||||
}
|
}
|
||||||
else
|
else if (OpenImageDialog(true))
|
||||||
{
|
{
|
||||||
OnCreated();
|
OnCreated();
|
||||||
ShowNodes();
|
ShowNodes();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnDoubleClicked()
|
public override void OnDoubleClicked()
|
||||||
|
@ -54,15 +59,20 @@ public override void OnDoubleClicked()
|
||||||
private bool OpenImageDialog(bool centerImage)
|
private bool OpenImageDialog(bool centerImage)
|
||||||
{
|
{
|
||||||
Manager.IsMoving = false;
|
Manager.IsMoving = false;
|
||||||
|
|
||||||
string filepath = ImageHelpers.OpenImageFileDialog(Manager.Form);
|
string filepath = ImageHelpers.OpenImageFileDialog(Manager.Form);
|
||||||
|
return LoadImageFile(filepath, centerImage);
|
||||||
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(filepath))
|
private bool LoadImageFile(string filePath, bool centerImage)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(filePath))
|
||||||
{
|
{
|
||||||
Image img = ImageHelpers.LoadImage(filepath);
|
Image img = ImageHelpers.LoadImage(filePath);
|
||||||
|
|
||||||
if (img != null)
|
if (img != null)
|
||||||
{
|
{
|
||||||
|
AnnotationOptions.LastImageFilePath = filePath;
|
||||||
|
|
||||||
SetImage(img, centerImage);
|
SetImage(img, centerImage);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -50,7 +50,37 @@ public override void ShowNodes()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OpenStickerForm(bool creating)
|
public override void OnCreating()
|
||||||
|
{
|
||||||
|
Point pos = InputManager.ClientMousePosition;
|
||||||
|
Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
||||||
|
|
||||||
|
if (Manager.IsCornerMoving && LoadSticker(AnnotationOptions.LastStickerPath, AnnotationOptions.StickerSize))
|
||||||
|
{
|
||||||
|
OnCreated();
|
||||||
|
Manager.IsMoving = true;
|
||||||
|
}
|
||||||
|
else if (OpenStickerForm())
|
||||||
|
{
|
||||||
|
OnCreated();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnDoubleClicked()
|
||||||
|
{
|
||||||
|
OpenStickerForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Resize(int x, int y, bool fromBottomRight)
|
||||||
|
{
|
||||||
|
Move(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool OpenStickerForm()
|
||||||
{
|
{
|
||||||
Manager.Form.Pause();
|
Manager.Form.Pause();
|
||||||
|
|
||||||
|
@ -63,27 +93,16 @@ private void OpenStickerForm(bool creating)
|
||||||
AnnotationOptions.SelectedStickerPack = stickerForm.SelectedStickerPack;
|
AnnotationOptions.SelectedStickerPack = stickerForm.SelectedStickerPack;
|
||||||
AnnotationOptions.StickerSize = stickerForm.StickerSize;
|
AnnotationOptions.StickerSize = stickerForm.StickerSize;
|
||||||
|
|
||||||
if (LoadSticker(stickerForm.SelectedImageFile, stickerForm.StickerSize))
|
return LoadSticker(stickerForm.SelectedImageFile, stickerForm.StickerSize);
|
||||||
{
|
|
||||||
if (creating)
|
|
||||||
{
|
|
||||||
OnCreated();
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (creating)
|
|
||||||
{
|
|
||||||
Remove();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Manager.Form.Resume();
|
Manager.Form.Resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool LoadSticker(string filePath, int stickerSize)
|
private bool LoadSticker(string filePath, int stickerSize)
|
||||||
|
@ -106,31 +125,5 @@ private bool LoadSticker(string filePath, int stickerSize)
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnCreating()
|
|
||||||
{
|
|
||||||
Point pos = InputManager.ClientMousePosition;
|
|
||||||
Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
|
|
||||||
|
|
||||||
if (Manager.IsCornerMoving && LoadSticker(AnnotationOptions.LastStickerPath, AnnotationOptions.StickerSize))
|
|
||||||
{
|
|
||||||
OnCreated();
|
|
||||||
Manager.IsMoving = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
OpenStickerForm(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnDoubleClicked()
|
|
||||||
{
|
|
||||||
OpenStickerForm(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Resize(int x, int y, bool fromBottomRight)
|
|
||||||
{
|
|
||||||
Move(x, y);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue