From f9ec01a2c12eb46c0cad433ad10e6967cc84f8a1 Mon Sep 17 00:00:00 2001 From: Jaex Date: Tue, 23 Aug 2016 16:39:15 +0300 Subject: [PATCH] If image dialog is canceled then remove image shape --- ShareX.ScreenCaptureLib/Shapes/BaseShape.cs | 5 +++++ .../Shapes/Drawing/ImageDrawingShape.cs | 11 +++++++++-- ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs b/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs index b9c19b231..19417cddb 100644 --- a/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs +++ b/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs @@ -90,6 +90,11 @@ public virtual bool Intersects(Point position) return Rectangle.Contains(position); } + public void Remove() + { + Manager.DeleteShape(this); + } + public void AddShapePath(GraphicsPath gp, int sizeOffset = 0) { Rectangle rect = Rectangle; diff --git a/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageDrawingShape.cs b/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageDrawingShape.cs index d2a754177..5d509a778 100644 --- a/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageDrawingShape.cs +++ b/ShareX.ScreenCaptureLib/Shapes/Drawing/ImageDrawingShape.cs @@ -58,7 +58,7 @@ public void SetImage(Image img, bool centerImage) } } - public void OpenImageDialog(bool centerImage) + public bool OpenImageDialog(bool centerImage) { Manager.IsMoving = false; @@ -71,8 +71,12 @@ public void OpenImageDialog(bool centerImage) if (img != null) { SetImage(img, centerImage); + + return true; } } + + return false; } public override void OnDraw(Graphics g) @@ -87,7 +91,10 @@ public override void OnCreating() { StartPosition = EndPosition = InputManager.MousePosition0Based; - OpenImageDialog(true); + if (!OpenImageDialog(true)) + { + Remove(); + } } public override void OnDoubleClicked() diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index f07273e6f..70eaeba4a 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -1526,7 +1526,7 @@ private void DeselectCurrentShape() DeselectShape(CurrentShape); } - private void DeleteShape(BaseShape shape) + public void DeleteShape(BaseShape shape) { if (shape != null) {