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> /// <returns>false if no keys were processed</returns>
public bool ProcessCmdKey(Keys k) public bool ProcessCmdKey(Keys k)
{ {
if (selectedElements.Count > 0) if (selectedElements.Count <= 0) return false;
{
bool shiftModifier = (ModifierKeys & Keys.Shift) == Keys.Shift; bool shiftModifier = (ModifierKeys & Keys.Shift) == Keys.Shift;
int px = shiftModifier ? 10 : 1; int px = shiftModifier ? 10 : 1;
Point moveBy = Point.Empty; Point moveBy = Point.Empty;
switch (k) switch (k)
{ {
case Keys.Left: case Keys.Left:
@ -2312,85 +2311,55 @@ namespace Greenshot.Editor.Drawing
case Keys.Escape: case Keys.Escape:
ConfirmSelectedConfirmableElements(false); ConfirmSelectedConfirmableElements(false);
break; break;
case Keys.NumPad0: case Keys.D0 | Keys.Control:
SetSelectedElementColor(Color.Orange, true, shiftModifier); case Keys.D0 | Keys.Shift | Keys.Control:
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:
SetSelectedElementColor(shiftModifier ? Color.Orange : Color.Transparent, false, shiftModifier); SetSelectedElementColor(shiftModifier ? Color.Orange : Color.Transparent, false, shiftModifier);
break; break;
case Keys.D1: case Keys.D1 | Keys.Control:
case Keys.D1 | Keys.Shift: case Keys.D1 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Red, false, shiftModifier); SetSelectedElementColor(Color.Red, false, shiftModifier);
break; break;
case Keys.D2: case Keys.D2 | Keys.Control:
case Keys.D2 | Keys.Shift: case Keys.D2 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Green, false, shiftModifier); SetSelectedElementColor(Color.Green, false, shiftModifier);
break; break;
case Keys.D3: case Keys.D3 | Keys.Control:
case Keys.D3 | Keys.Shift: case Keys.D3 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Blue, false, shiftModifier); SetSelectedElementColor(Color.Blue, false, shiftModifier);
break; break;
case Keys.D4: case Keys.D4 | Keys.Control:
case Keys.D4 | Keys.Shift: case Keys.D4 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Cyan, false, shiftModifier); SetSelectedElementColor(Color.Cyan, false, shiftModifier);
break; break;
case Keys.D5: case Keys.D5 | Keys.Control:
case Keys.D5 | Keys.Shift: case Keys.D5 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Magenta, false, shiftModifier); SetSelectedElementColor(Color.Magenta, false, shiftModifier);
break; break;
case Keys.D6: case Keys.D6 | Keys.Control:
case Keys.D6 | Keys.Shift: case Keys.D6 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Yellow, false, shiftModifier); SetSelectedElementColor(Color.Yellow, false, shiftModifier);
break; break;
case Keys.D7: case Keys.D7 | Keys.Control:
case Keys.D7 | Keys.Shift: case Keys.D7 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Black, false, shiftModifier); SetSelectedElementColor(Color.Black, false, shiftModifier);
break; break;
case Keys.D8: case Keys.D8 | Keys.Control:
case Keys.D8 | Keys.Shift: case Keys.D8 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.Gray, false, shiftModifier); SetSelectedElementColor(Color.Gray, false, shiftModifier);
break; break;
case Keys.D9: case Keys.D9 | Keys.Control:
case Keys.D9 | Keys.Shift: case Keys.D9 | Keys.Shift | Keys.Control:
SetSelectedElementColor(Color.White, false, shiftModifier); SetSelectedElementColor(Color.White, false, shiftModifier);
break; break;
case Keys.Add: case Keys.Add | Keys.Control:
case Keys.Add | Keys.Shift: case Keys.Add | Keys.Shift | Keys.Control:
ChangeLineThickness(shiftModifier ? 5 : 1); ChangeLineThickness(shiftModifier ? 5 : 1);
break; break;
case Keys.Subtract: case Keys.Subtract | Keys.Control:
case Keys.Subtract | Keys.Shift: case Keys.Subtract | Keys.Shift | Keys.Control:
ChangeLineThickness(shiftModifier ? -5 : -1); ChangeLineThickness(shiftModifier ? -5 : -1);
break; break;
case Keys.Divide: case Keys.Divide | Keys.Control:
FlipShadow(); FlipShadow();
break; break;
/*case Keys.Delete: /*case Keys.Delete:
@ -2407,9 +2376,7 @@ namespace Greenshot.Editor.Drawing
} }
return true; return true;
}
return false;
} }
// for laptops without numPads, also allow shift modifier // 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); private delegate void SurfaceMessageReceivedThreadSafeDelegate(object sender, SurfaceMessageEventArgs eventArgs);
/// <summary> /// <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. /// surface is exported. It also updates the title to represent the filename, if there is one.
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
@ -505,41 +505,41 @@ namespace Greenshot.Editor.Forms
/// <summary> /// <summary>
/// This is called when the foreground color of the select element chances, used for shortcuts /// This is called when the foreground color of the select element chances, used for shortcuts
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender">object</param>
/// <param name="eventArgs"></param> /// <param name="eventArgs">SurfaceForegroundColorEventArgs</param>
private void ForegroundColorChanged(object sender, SurfaceForegroundColorEventArgs eventArgs) private void ForegroundColorChanged(object sender, SurfaceForegroundColorEventArgs eventArgs)
{ {
btnLineColor.SelectedColor = eventArgs.Color; _surface.FieldAggregator.GetField(FieldType.LINE_COLOR).Value = eventArgs.Color;
} }
/// <summary> /// <summary>
/// This is called when the background color of the select element chances, used for shortcuts /// This is called when the background color of the select element chances, used for shortcuts
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender">object</param>
/// <param name="eventArgs"></param> /// <param name="eventArgs">SurfaceBackgroundColorEventArgs</param>
private void BackgroundColorChanged(object sender, SurfaceBackgroundColorEventArgs eventArgs) private void BackgroundColorChanged(object sender, SurfaceBackgroundColorEventArgs eventArgs)
{ {
btnFillColor.SelectedColor = eventArgs.Color; _surface.FieldAggregator.GetField(FieldType.FILL_COLOR).Value = eventArgs.Color;
} }
/// <summary> /// <summary>
/// This is called when the line thickness of the select element chances, used for shortcuts /// This is called when the line thickness of the select element chances, used for shortcuts
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender">object</param>
/// <param name="eventArgs"></param> /// <param name="eventArgs">SurfaceLineThicknessEventArgs</param>
private void LineThicknessChanged(object sender, SurfaceLineThicknessEventArgs eventArgs) private void LineThicknessChanged(object sender, SurfaceLineThicknessEventArgs eventArgs)
{ {
lineThicknessUpDown.Value = eventArgs.Thickness; _surface.FieldAggregator.GetField(FieldType.LINE_THICKNESS).Value = eventArgs.Thickness;
} }
/// <summary> /// <summary>
/// This is called when the shadow of the select element chances, used for shortcuts /// This is called when the shadow of the select element chances, used for shortcuts
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender">object</param>
/// <param name="eventArgs"></param> /// <param name="eventArgs">SurfaceShadowEventArgs</param>
private void ShadowChanged(object sender, SurfaceShadowEventArgs eventArgs) private void ShadowChanged(object sender, SurfaceShadowEventArgs eventArgs)
{ {
shadowButton.Checked = eventArgs.HasShadow; _surface.FieldAggregator.GetField(FieldType.SHADOW).Value = eventArgs.HasShadow;
} }
/// <summary> /// <summary>