mirror of
https://github.com/ShareX/ShareX.git
synced 2024-07-07 07:26:05 +12:00
Added undo shape keybind (ctrl + z)
This commit is contained in:
parent
a371ca7df4
commit
a38c79e46c
|
@ -85,7 +85,7 @@ private set
|
||||||
UpdateCursor();
|
UpdateCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
DeselectShape();
|
DeselectCurrentShape();
|
||||||
|
|
||||||
OnCurrentShapeTypeChanged(currentShapeType);
|
OnCurrentShapeTypeChanged(currentShapeType);
|
||||||
}
|
}
|
||||||
|
@ -284,7 +284,7 @@ private void CreateContextMenu()
|
||||||
|
|
||||||
tsmiDeleteAll = new ToolStripMenuItem(Resources.ShapeManager_CreateContextMenu_Delete_all_objects);
|
tsmiDeleteAll = new ToolStripMenuItem(Resources.ShapeManager_CreateContextMenu_Delete_all_objects);
|
||||||
tsmiDeleteAll.Image = Resources.minus;
|
tsmiDeleteAll.Image = Resources.minus;
|
||||||
tsmiDeleteAll.Click += (sender, e) => ClearAll();
|
tsmiDeleteAll.Click += (sender, e) => DeleteAllShapes();
|
||||||
cmsContextMenu.Items.Add(tsmiDeleteAll);
|
cmsContextMenu.Items.Add(tsmiDeleteAll);
|
||||||
|
|
||||||
#endregion Selected object
|
#endregion Selected object
|
||||||
|
@ -921,16 +921,6 @@ private void form_KeyDown(object sender, KeyEventArgs e)
|
||||||
case Keys.Menu:
|
case Keys.Menu:
|
||||||
IsSnapResizing = true;
|
IsSnapResizing = true;
|
||||||
break;
|
break;
|
||||||
case Keys.Insert:
|
|
||||||
if (IsCreating)
|
|
||||||
{
|
|
||||||
EndRegionSelection();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
StartRegionSelection();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case Keys.Left:
|
case Keys.Left:
|
||||||
case Keys.A:
|
case Keys.A:
|
||||||
isLeftPressed = true;
|
isLeftPressed = true;
|
||||||
|
@ -949,9 +939,26 @@ private void form_KeyDown(object sender, KeyEventArgs e)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (e.KeyData)
|
||||||
|
{
|
||||||
|
case Keys.Insert:
|
||||||
|
if (IsCreating)
|
||||||
|
{
|
||||||
|
EndRegionSelection();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StartRegionSelection();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Keys.Control | Keys.Z:
|
||||||
|
UndoShape();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (form.Mode == RectangleRegionMode.Annotation && !IsCreating)
|
if (form.Mode == RectangleRegionMode.Annotation && !IsCreating)
|
||||||
{
|
{
|
||||||
switch (e.KeyCode)
|
switch (e.KeyData)
|
||||||
{
|
{
|
||||||
case Keys.Tab:
|
case Keys.Tab:
|
||||||
SwapShapeType();
|
SwapShapeType();
|
||||||
|
@ -1059,14 +1066,6 @@ private void form_KeyUp(object sender, KeyEventArgs e)
|
||||||
case Keys.Menu:
|
case Keys.Menu:
|
||||||
IsSnapResizing = false;
|
IsSnapResizing = false;
|
||||||
break;
|
break;
|
||||||
case Keys.Delete:
|
|
||||||
DeleteCurrentShape();
|
|
||||||
|
|
||||||
if (IsCreating)
|
|
||||||
{
|
|
||||||
EndRegionSelection();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case Keys.Left:
|
case Keys.Left:
|
||||||
case Keys.A:
|
case Keys.A:
|
||||||
isLeftPressed = false;
|
isLeftPressed = false;
|
||||||
|
@ -1085,9 +1084,21 @@ private void form_KeyUp(object sender, KeyEventArgs e)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (e.KeyData)
|
||||||
|
{
|
||||||
|
case Keys.Delete:
|
||||||
|
DeleteCurrentShape();
|
||||||
|
|
||||||
|
if (IsCreating)
|
||||||
|
{
|
||||||
|
EndRegionSelection();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (form.Mode == RectangleRegionMode.Annotation)
|
if (form.Mode == RectangleRegionMode.Annotation)
|
||||||
{
|
{
|
||||||
switch (e.KeyCode)
|
switch (e.KeyData)
|
||||||
{
|
{
|
||||||
case Keys.Apps:
|
case Keys.Apps:
|
||||||
OpenOptionsMenu();
|
OpenOptionsMenu();
|
||||||
|
@ -1168,7 +1179,7 @@ private void StartRegionSelection()
|
||||||
}
|
}
|
||||||
else if (!IsCreating) // Create new shape
|
else if (!IsCreating) // Create new shape
|
||||||
{
|
{
|
||||||
DeselectShape();
|
DeselectCurrentShape();
|
||||||
|
|
||||||
shape = AddShape();
|
shape = AddShape();
|
||||||
|
|
||||||
|
@ -1502,38 +1513,43 @@ private void SelectIntersectShape()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeselectShape()
|
private void DeselectShape(BaseShape shape)
|
||||||
{
|
{
|
||||||
CurrentShape = null;
|
if (shape == CurrentShape)
|
||||||
NodesVisible = false;
|
{
|
||||||
|
CurrentShape = null;
|
||||||
|
NodesVisible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeselectCurrentShape()
|
||||||
|
{
|
||||||
|
DeselectShape(CurrentShape);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteShape(BaseShape shape)
|
||||||
|
{
|
||||||
|
if (shape != null)
|
||||||
|
{
|
||||||
|
Shapes.Remove(shape);
|
||||||
|
DeselectShape(shape);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeleteCurrentShape()
|
private void DeleteCurrentShape()
|
||||||
{
|
{
|
||||||
BaseShape shape = CurrentShape;
|
DeleteShape(CurrentShape);
|
||||||
|
|
||||||
if (shape != null)
|
|
||||||
{
|
|
||||||
Shapes.Remove(shape);
|
|
||||||
DeselectShape();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeleteIntersectShape()
|
private void DeleteIntersectShape()
|
||||||
{
|
{
|
||||||
BaseShape shape = GetIntersectShape();
|
DeleteShape(GetIntersectShape());
|
||||||
|
|
||||||
if (shape != null)
|
|
||||||
{
|
|
||||||
Shapes.Remove(shape);
|
|
||||||
DeselectShape();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ClearAll()
|
private void DeleteAllShapes()
|
||||||
{
|
{
|
||||||
Shapes.Clear();
|
Shapes.Clear();
|
||||||
DeselectShape();
|
DeselectCurrentShape();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BaseShape GetIntersectShape()
|
public BaseShape GetIntersectShape()
|
||||||
|
@ -1561,6 +1577,14 @@ public bool IsShapeIntersect()
|
||||||
return GetIntersectShape() != null;
|
return GetIntersectShape() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UndoShape()
|
||||||
|
{
|
||||||
|
if (Shapes.Count > 0)
|
||||||
|
{
|
||||||
|
DeleteShape(Shapes[Shapes.Count - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void UpdateNodes()
|
private void UpdateNodes()
|
||||||
{
|
{
|
||||||
BaseShape shape = CurrentShape;
|
BaseShape shape = CurrentShape;
|
||||||
|
|
Loading…
Reference in a new issue