Fixed the field changing for #338, this should trigger undo and also changes to the default field values (meaning storing in the configuration)- Added the CTRL modifier for the feature for now.

This commit is contained in:
Robin Krom 2022-01-29 21:49:20 +01:00
commit fdbaca6c3f
No known key found for this signature in database
GPG key ID: BCC01364F1371490
2 changed files with 115 additions and 148 deletions

View file

@ -2270,12 +2270,11 @@ namespace Greenshot.Editor.Drawing
/// <returns>false if no keys were processed</returns>
public bool ProcessCmdKey(Keys k)
{
if (selectedElements.Count > 0)
{
if (selectedElements.Count <= 0) return false;
bool shiftModifier = (ModifierKeys & Keys.Shift) == Keys.Shift;
int px = shiftModifier ? 10 : 1;
Point moveBy = Point.Empty;
switch (k)
{
case Keys.Left:
@ -2312,85 +2311,55 @@ namespace Greenshot.Editor.Drawing
case Keys.Escape:
ConfirmSelectedConfirmableElements(false);
break;
case Keys.NumPad0:
SetSelectedElementColor(Color.Orange, true, shiftModifier);
break;
case Keys.NumPad1:
SetSelectedElementColor(Color.Red, true, shiftModifier);
break;
case Keys.NumPad2:
SetSelectedElementColor(Color.FromArgb(0,255,0), true, shiftModifier); // Color.Green is #008000 and not #00FF00
break;
case Keys.NumPad3:
SetSelectedElementColor(Color.Blue, true, shiftModifier);
break;
case Keys.NumPad4:
SetSelectedElementColor(Color.Cyan, true, shiftModifier);
break;
case Keys.NumPad5:
SetSelectedElementColor(Color.Magenta, true, shiftModifier);
break;
case Keys.NumPad6:
SetSelectedElementColor(Color.Yellow, true, shiftModifier);
break;
case Keys.NumPad7:
SetSelectedElementColor(Color.Black, true, shiftModifier);
break;
case Keys.NumPad8:
SetSelectedElementColor(Color.Gray, true, shiftModifier);
break;
case Keys.NumPad9:
SetSelectedElementColor(Color.White, true, shiftModifier);
break;
case Keys.D0:
case Keys.D0 | Keys.Shift:
case Keys.D0 | Keys.Control:
case Keys.D0 | Keys.Shift | Keys.Control:
SetSelectedElementColor(shiftModifier ? Color.Orange : Color.Transparent, false, shiftModifier);
break;
case Keys.D1:
case Keys.D1 | Keys.Shift:
case Keys.D1 | Keys.Control:
case Keys.D1 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Red, false, shiftModifier);
break;
case Keys.D2:
case Keys.D2 | Keys.Shift:
case Keys.D2 | Keys.Control:
case Keys.D2 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Green, false, shiftModifier);
break;
case Keys.D3:
case Keys.D3 | Keys.Shift:
case Keys.D3 | Keys.Control:
case Keys.D3 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Blue, false, shiftModifier);
break;
case Keys.D4:
case Keys.D4 | Keys.Shift:
case Keys.D4 | Keys.Control:
case Keys.D4 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Cyan, false, shiftModifier);
break;
case Keys.D5:
case Keys.D5 | Keys.Shift:
case Keys.D5 | Keys.Control:
case Keys.D5 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Magenta, false, shiftModifier);
break;
case Keys.D6:
case Keys.D6 | Keys.Shift:
case Keys.D6 | Keys.Control:
case Keys.D6 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Yellow, false, shiftModifier);
break;
case Keys.D7:
case Keys.D7 | Keys.Shift:
case Keys.D7 | Keys.Control:
case Keys.D7 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Black, false, shiftModifier);
break;
case Keys.D8:
case Keys.D8 | Keys.Shift:
case Keys.D8 | Keys.Control:
case Keys.D8 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Gray, false, shiftModifier);
break;
case Keys.D9:
case Keys.D9 | Keys.Shift:
case Keys.D9 | Keys.Control:
case Keys.D9 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.White, false, shiftModifier);
break;
case Keys.Add:
case Keys.Add | Keys.Shift:
case Keys.Add | Keys.Control:
case Keys.Add | Keys.Shift | Keys.Control:
ChangeLineThickness(shiftModifier ? 5 : 1);
break;
case Keys.Subtract:
case Keys.Subtract | Keys.Shift:
case Keys.Subtract | Keys.Control:
case Keys.Subtract | Keys.Shift | Keys.Control:
ChangeLineThickness(shiftModifier ? -5 : -1);
break;
case Keys.Divide:
case Keys.Divide | Keys.Control:
FlipShadow();
break;
/*case Keys.Delete:
@ -2407,9 +2376,7 @@ namespace Greenshot.Editor.Drawing
}
return true;
}
return false;
}
// for laptops without numPads, also allow shift modifier

View file

@ -471,7 +471,7 @@ namespace Greenshot.Editor.Forms
private delegate void SurfaceMessageReceivedThreadSafeDelegate(object sender, SurfaceMessageEventArgs eventArgs);
/// <summary>
/// This is the SufraceMessageEvent receiver which display a message in the status bar if the
/// This is the SurfaceMessageEvent receiver which display a message in the status bar if the
/// surface is exported. It also updates the title to represent the filename, if there is one.
/// </summary>
/// <param name="sender"></param>
@ -505,41 +505,41 @@ namespace Greenshot.Editor.Forms
/// <summary>
/// This is called when the foreground color of the select element chances, used for shortcuts
/// </summary>
/// <param name="sender"></param>
/// <param name="eventArgs"></param>
/// <param name="sender">object</param>
/// <param name="eventArgs">SurfaceForegroundColorEventArgs</param>
private void ForegroundColorChanged(object sender, SurfaceForegroundColorEventArgs eventArgs)
{
btnLineColor.SelectedColor = eventArgs.Color;
_surface.FieldAggregator.GetField(FieldType.LINE_COLOR).Value = eventArgs.Color;
}
/// <summary>
/// This is called when the background color of the select element chances, used for shortcuts
/// </summary>
/// <param name="sender"></param>
/// <param name="eventArgs"></param>
/// <param name="sender">object</param>
/// <param name="eventArgs">SurfaceBackgroundColorEventArgs</param>
private void BackgroundColorChanged(object sender, SurfaceBackgroundColorEventArgs eventArgs)
{
btnFillColor.SelectedColor = eventArgs.Color;
_surface.FieldAggregator.GetField(FieldType.FILL_COLOR).Value = eventArgs.Color;
}
/// <summary>
/// This is called when the line thickness of the select element chances, used for shortcuts
/// </summary>
/// <param name="sender"></param>
/// <param name="eventArgs"></param>
/// <param name="sender">object</param>
/// <param name="eventArgs">SurfaceLineThicknessEventArgs</param>
private void LineThicknessChanged(object sender, SurfaceLineThicknessEventArgs eventArgs)
{
lineThicknessUpDown.Value = eventArgs.Thickness;
_surface.FieldAggregator.GetField(FieldType.LINE_THICKNESS).Value = eventArgs.Thickness;
}
/// <summary>
/// This is called when the shadow of the select element chances, used for shortcuts
/// </summary>
/// <param name="sender"></param>
/// <param name="eventArgs"></param>
/// <param name="sender">object</param>
/// <param name="eventArgs">SurfaceShadowEventArgs</param>
private void ShadowChanged(object sender, SurfaceShadowEventArgs eventArgs)
{
shadowButton.Checked = eventArgs.HasShadow;
_surface.FieldAggregator.GetField(FieldType.SHADOW).Value = eventArgs.HasShadow;
}
/// <summary>