Merge remote-tracking branch 'remotes/upstream/master'

This commit is contained in:
RedMser 2018-02-23 17:12:03 +01:00
commit a1039ee6de
4 changed files with 57 additions and 50 deletions

View file

@ -75,6 +75,7 @@ public class AnnotationOptions
// Image drawing
public ImageEditorInterpolationMode ImageInterpolationMode = ImageEditorInterpolationMode.NearestNeighbor;
public string LastImageFilePath { get; set; }
// Step drawing
public Color StepBorderColor { get; set; } = SecondaryColor;
@ -87,7 +88,7 @@ public class AnnotationOptions
public List<StickerPackInfo> StickerPacks = new List<StickerPackInfo>();
public int SelectedStickerPack = 0;
public int StickerSize { get; set; } = 64;
public bool StickerQuickMode { get; set; } = false;
public string LastStickerPath { get; set; }
// Blur effect
public int BlurRadius { get; set; } = 15;

View file

@ -35,15 +35,20 @@ public override void OnCreating()
Point pos = InputManager.ClientMousePosition;
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();
ShowNodes();
}
else
{
Remove();
}
}
public override void OnDoubleClicked()
@ -54,15 +59,20 @@ public override void OnDoubleClicked()
private bool OpenImageDialog(bool centerImage)
{
Manager.IsMoving = false;
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)
{
AnnotationOptions.LastImageFilePath = filePath;
SetImage(img, centerImage);
return true;

View file

@ -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();
@ -63,27 +93,16 @@ private void OpenStickerForm(bool creating)
AnnotationOptions.SelectedStickerPack = stickerForm.SelectedStickerPack;
AnnotationOptions.StickerSize = stickerForm.StickerSize;
if (LoadSticker(stickerForm.SelectedImageFile, stickerForm.StickerSize))
{
if (creating)
{
OnCreated();
}
return;
}
return LoadSticker(stickerForm.SelectedImageFile, stickerForm.StickerSize);
}
}
if (creating)
{
Remove();
}
}
finally
{
Manager.Form.Resume();
}
return false;
}
private bool LoadSticker(string filePath, int stickerSize)
@ -94,7 +113,7 @@ private bool LoadSticker(string filePath, int stickerSize)
if (img != null)
{
Manager.LastStickerPath = filePath;
AnnotationOptions.LastStickerPath = filePath;
img = ImageHelpers.ResizeImageLimit(img, stickerSize);
@ -106,31 +125,5 @@ private bool LoadSticker(string filePath, int stickerSize)
return false;
}
public override void OnCreating()
{
Point pos = InputManager.ClientMousePosition;
Rectangle = new Rectangle(pos.X, pos.Y, 1, 1);
if (AnnotationOptions.StickerQuickMode && LoadSticker(Manager.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);
}
}
}

View file

@ -157,8 +157,11 @@ private set
public bool IsMoving { get; set; }
public bool IsPanning { get; set; }
public bool IsResizing { get; set; }
// Is holding Ctrl?
public bool IsCornerMoving { get; private set; }
// Is holding Shift?
public bool IsProportionalResizing { get; private set; }
// Is holding Alt?
public bool IsSnapResizing { get; private set; }
public bool IsRenderingOutput { get; private set; }
@ -217,7 +220,6 @@ public bool NodesVisible
public event Action<BaseShape> ShapeCreated;
internal RegionCaptureForm Form { get; private set; }
internal string LastStickerPath { get; set; }
private bool isLeftPressed, isRightPressed, isUpPressed, isDownPressed;
@ -1044,6 +1046,7 @@ private BaseShape CheckHover()
case ShapeType.DrawingSpeechBalloon:
case ShapeType.DrawingStep:
case ShapeType.DrawingImage:
case ShapeType.DrawingSticker:
case ShapeType.DrawingCursor:
return null;
}