Implement review hints

This commit is contained in:
Christian Schulz 2022-03-01 10:48:12 +01:00
commit 2a52e72c24
6 changed files with 194 additions and 204 deletions

View file

@ -85,20 +85,15 @@ namespace Greenshot.Editor.Drawing
}
default:
{
InitCropStyle();
CreateDefaultAdorners();
break;
}
}
}
private void InitCropStyle()
{
CreateDefaultAdorners();
}
private void InitHorizontalCropOutStyle()
{
var defaultHeight = 25;
const int defaultHeight = 25;
if (_parent?.Image is { } image)
{
@ -109,7 +104,7 @@ namespace Greenshot.Editor.Drawing
private void InitVerticalCropOutStyle()
{
var defaultWidth = 25;
const int defaultWidth = 25;
if (_parent?.Image is { } image)
{

View file

@ -1188,42 +1188,39 @@ namespace Greenshot.Editor.Drawing
/// <returns></returns>
public bool ApplyCrop(Rectangle cropRectangle)
{
if (IsCropPossible(ref cropRectangle))
if (!IsCropPossible(ref cropRectangle)) return false;
Rectangle imageRectangle = new Rectangle(Point.Empty, Image.Size);
Bitmap tmpImage;
// Make sure we have information, this this fails
try
{
Rectangle imageRectangle = new Rectangle(Point.Empty, Image.Size);
Bitmap tmpImage;
// Make sure we have information, this this fails
try
{
tmpImage = ImageHelper.CloneArea(Image, cropRectangle, PixelFormat.DontCare);
}
catch (Exception ex)
{
ex.Data.Add("CropRectangle", cropRectangle);
ex.Data.Add("Width", Image.Width);
ex.Data.Add("Height", Image.Height);
ex.Data.Add("Pixelformat", Image.PixelFormat);
throw;
}
Matrix matrix = new Matrix();
matrix.Translate(-cropRectangle.Left, -cropRectangle.Top, MatrixOrder.Append);
// Make undoable
MakeUndoable(new SurfaceBackgroundChangeMemento(this, matrix), false);
// Do not dispose otherwise we can't undo the image!
SetImage(tmpImage, false);
_elements.Transform(matrix);
if (_surfaceSizeChanged != null && !imageRectangle.Equals(new Rectangle(Point.Empty, tmpImage.Size)))
{
_surfaceSizeChanged(this, null);
}
Invalidate();
return true;
tmpImage = ImageHelper.CloneArea(Image, cropRectangle, PixelFormat.DontCare);
}
catch (Exception ex)
{
ex.Data.Add("CropRectangle", cropRectangle);
ex.Data.Add("Width", Image.Width);
ex.Data.Add("Height", Image.Height);
ex.Data.Add("Pixelformat", Image.PixelFormat);
throw;
}
return false;
Matrix matrix = new Matrix();
matrix.Translate(-cropRectangle.Left, -cropRectangle.Top, MatrixOrder.Append);
// Make undoable
MakeUndoable(new SurfaceBackgroundChangeMemento(this, matrix), false);
// Do not dispose otherwise we can't undo the image!
SetImage(tmpImage, false);
_elements.Transform(matrix);
if (_surfaceSizeChanged != null && !imageRectangle.Equals(new Rectangle(Point.Empty, tmpImage.Size)))
{
_surfaceSizeChanged(this, null);
}
Invalidate();
return true;
}
/// <summary>
@ -1234,49 +1231,48 @@ namespace Greenshot.Editor.Drawing
/// <returns></returns>
public bool ApplyHorizontalCrop(Rectangle cropRectangle)
{
if (IsCropPossible(ref cropRectangle))
if (!IsCropPossible(ref cropRectangle)) return false;
Rectangle imageRectangle = new Rectangle(Point.Empty, Image.Size);
Bitmap tmpNewimage, tmpImageTop, tmpImageBottom;
// Make sure we have information, this this fails
try
{
Rectangle imageRectangle = new Rectangle(Point.Empty, Image.Size);
Bitmap tmpNewimage, tmpImageTop, tmpImageBottom;
// Make sure we have information, this this fails
try
{
tmpNewimage = new Bitmap(Image.Size.Width, Image.Size.Height - cropRectangle.Height);
tmpImageTop = ImageHelper.CloneArea(Image, new Rectangle(0, 0, Image.Size.Width, cropRectangle.Top), PixelFormat.DontCare);
tmpImageBottom = ImageHelper.CloneArea(Image, new Rectangle(0, cropRectangle.Top + cropRectangle.Height, Image.Size.Width, Image.Size.Height - cropRectangle.Top - cropRectangle.Height), PixelFormat.DontCare);
}
catch (Exception ex)
{
ex.Data.Add("CropRectangle", cropRectangle);
ex.Data.Add("Width", Image.Width);
ex.Data.Add("Height", Image.Height);
ex.Data.Add("Pixelformat", Image.PixelFormat);
throw;
}
using Graphics g = Graphics.FromImage(tmpNewimage);
g.DrawImage(tmpImageTop, new Point(0, 0));
g.DrawImage(tmpImageBottom, new Point(0, tmpImageTop.Height));
tmpNewimage = new Bitmap(Image.Size.Width, Image.Size.Height - cropRectangle.Height);
tmpImageTop = ImageHelper.CloneArea(Image, new Rectangle(0, 0, Image.Size.Width, cropRectangle.Top), PixelFormat.DontCare);
tmpImageBottom = ImageHelper.CloneArea(Image, new Rectangle(0, cropRectangle.Top + cropRectangle.Height, Image.Size.Width, Image.Size.Height - cropRectangle.Top - cropRectangle.Height), PixelFormat.DontCare);
}
catch (Exception ex)
{
ex.Data.Add("CropRectangle", cropRectangle);
ex.Data.Add("Width", Image.Width);
ex.Data.Add("Height", Image.Height);
ex.Data.Add("Pixelformat", Image.PixelFormat);
throw;
}
using Graphics g = Graphics.FromImage(tmpNewimage);
g.DrawImage(tmpImageTop, new Point(0, 0));
g.DrawImage(tmpImageBottom, new Point(0, tmpImageTop.Height));
Matrix matrix = new Matrix();
matrix.Translate(0, -(cropRectangle.Top + cropRectangle.Height), MatrixOrder.Append);
// Make undoable
MakeUndoable(new SurfaceBackgroundChangeMemento(this, matrix), false);
tmpImageTop.Dispose();
tmpImageBottom.Dispose();
// Do not dispose otherwise we can't undo the image!
SetImage(tmpNewimage, false);
Matrix matrix = new Matrix();
matrix.Translate(0, -(cropRectangle.Top + cropRectangle.Height), MatrixOrder.Append);
// Make undoable
MakeUndoable(new SurfaceBackgroundChangeMemento(this, matrix), false);
_elements.Transform(matrix);
if (_surfaceSizeChanged != null && !imageRectangle.Equals(new Rectangle(Point.Empty, tmpNewimage.Size)))
{
_surfaceSizeChanged(this, null);
}
// Do not dispose otherwise we can't undo the image!
SetImage(tmpNewimage, false);
Invalidate();
return true;
_elements.Transform(matrix);
if (_surfaceSizeChanged != null && !imageRectangle.Equals(new Rectangle(Point.Empty, tmpNewimage.Size)))
{
_surfaceSizeChanged(this, null);
}
return false;
Invalidate();
return true;
}
/// <summary>
@ -1287,49 +1283,49 @@ namespace Greenshot.Editor.Drawing
/// <returns></returns>
public bool ApplyVerticalCrop(Rectangle cropRectangle)
{
if (IsCropPossible(ref cropRectangle))
if (!IsCropPossible(ref cropRectangle)) return false;
Rectangle imageRectangle = new Rectangle(Point.Empty, Image.Size);
Bitmap tmpNewimage, tmpImageLeft, tmpImageRight;
// Make sure we have information, this this fails
try
{
Rectangle imageRectangle = new Rectangle(Point.Empty, Image.Size);
Bitmap tmpNewimage, tmpImageLeft, tmpImageRight;
// Make sure we have information, this this fails
try
{
tmpNewimage = new Bitmap(Image.Size.Width - cropRectangle.Width, Image.Size.Height);
tmpNewimage = new Bitmap(Image.Size.Width - cropRectangle.Width, Image.Size.Height);
tmpImageLeft = ImageHelper.CloneArea(Image, new Rectangle(0, 0, cropRectangle.Left, Image.Size.Height), PixelFormat.DontCare);
tmpImageRight = ImageHelper.CloneArea(Image, new Rectangle(cropRectangle.Left + cropRectangle.Width, 0, Image.Size.Width - cropRectangle.Width - cropRectangle.Left, Image.Size.Height), PixelFormat.DontCare);
}
catch (Exception ex)
{
ex.Data.Add("CropRectangle", cropRectangle);
ex.Data.Add("Width", Image.Width);
ex.Data.Add("Height", Image.Height);
ex.Data.Add("Pixelformat", Image.PixelFormat);
throw;
}
using Graphics g = Graphics.FromImage(tmpNewimage);
g.DrawImage(tmpImageLeft, new Point(0, 0));
g.DrawImage(tmpImageRight, new Point(tmpImageLeft.Width, 0));
tmpImageLeft = ImageHelper.CloneArea(Image, new Rectangle(0, 0, cropRectangle.Left, Image.Size.Height), PixelFormat.DontCare);
tmpImageRight = ImageHelper.CloneArea(Image, new Rectangle(cropRectangle.Left + cropRectangle.Width, 0, Image.Size.Width - cropRectangle.Width - cropRectangle.Left, Image.Size.Height), PixelFormat.DontCare);
}
catch (Exception ex)
{
ex.Data.Add("CropRectangle", cropRectangle);
ex.Data.Add("Width", Image.Width);
ex.Data.Add("Height", Image.Height);
ex.Data.Add("Pixelformat", Image.PixelFormat);
throw;
}
using Graphics g = Graphics.FromImage(tmpNewimage);
g.DrawImage(tmpImageLeft, new Point(0, 0));
g.DrawImage(tmpImageRight, new Point(tmpImageLeft.Width, 0));
Matrix matrix = new Matrix();
matrix.Translate(- cropRectangle.Left - cropRectangle.Width, 0, MatrixOrder.Append);
// Make undoable
MakeUndoable(new SurfaceBackgroundChangeMemento(this, matrix), false);
tmpImageLeft.Dispose();
tmpImageRight.Dispose();
// Do not dispose otherwise we can't undo the image!
SetImage(tmpNewimage, false);
Matrix matrix = new Matrix();
matrix.Translate(-cropRectangle.Left - cropRectangle.Width, 0, MatrixOrder.Append);
// Make undoable
MakeUndoable(new SurfaceBackgroundChangeMemento(this, matrix), false);
_elements.Transform(matrix);
if (_surfaceSizeChanged != null && !imageRectangle.Equals(new Rectangle(Point.Empty, tmpNewimage.Size)))
{
_surfaceSizeChanged(this, null);
}
// Do not dispose otherwise we can't undo the image!
SetImage(tmpNewimage, false);
Invalidate();
return true;
_elements.Transform(matrix);
if (_surfaceSizeChanged != null && !imageRectangle.Equals(new Rectangle(Point.Empty, tmpNewimage.Size)))
{
_surfaceSizeChanged(this, null);
}
return false;
Invalidate();
return true;
}
/// <summary>
@ -2103,13 +2099,13 @@ namespace Greenshot.Editor.Drawing
public void RemoveCropContainer()
{
if (_cropContainer != null)
{
RemoveElement(_cropContainer, false);
_cropContainer.Dispose();
_cropContainer = null;
}
if (_cropContainer == null) return;
RemoveElement(_cropContainer, false);
_cropContainer.Dispose();
_cropContainer = null;
}
/// <summary>
/// Paste all the elements that are on the clipboard
/// </summary>

View file

@ -141,15 +141,15 @@ namespace Greenshot.Editor.Forms {
this.toolStripSeparator16 = new System.Windows.Forms.ToolStripSeparator();
this.btnHelp = new GreenshotToolStripButton();
this.propertiesToolStrip = new ToolStripEx();
this.obfuscateModeButton = new BindableToolStripDropDownButton();
this.cropModeButton = new BindableToolStripDropDownButton();
this.pixelizeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.obfuscateModeButton = new BindableToolStripDropDownButton();
this.cropModeButton = new BindableToolStripDropDownButton();
this.pixelizeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.blurToolStripMenuItem = new GreenshotToolStripMenuItem();
this.defaultCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.verticalCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.horizontalCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.autoCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.highlightModeButton = new BindableToolStripDropDownButton();
this.defaultCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.verticalCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.horizontalCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.autoCropModeToolStripMenuItem = new GreenshotToolStripMenuItem();
this.highlightModeButton = new BindableToolStripDropDownButton();
this.textHighlightMenuItem = new GreenshotToolStripMenuItem();
this.areaHighlightMenuItem = new GreenshotToolStripMenuItem();
this.grayscaleHighlightMenuItem = new GreenshotToolStripMenuItem();
@ -1073,7 +1073,7 @@ namespace Greenshot.Editor.Forms {
this.toolStripSeparator10,
this.btnConfirm,
this.btnCancel,
this.cropModeButton,
this.cropModeButton,
this.counterLabel,
this.counterUpDown});
//
@ -1103,60 +1103,60 @@ namespace Greenshot.Editor.Forms {
this.blurToolStripMenuItem.LanguageKey = "editor_obfuscate_blur";
this.blurToolStripMenuItem.Name = "blurToolStripMenuItem";
this.blurToolStripMenuItem.Tag = FilterContainer.PreparedFilter.BLUR;
//
// cropModeButton
//
this.cropModeButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.cropModeButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.defaultCropModeToolStripMenuItem,
this.verticalCropModeToolStripMenuItem,
this.horizontalCropModeToolStripMenuItem,
this.autoCropModeToolStripMenuItem});
this.cropModeButton.Image = ((System.Drawing.Image)(resources.GetObject("btnCrop.Image")));
this.cropModeButton.ImageTransparentColor = System.Drawing.Color.Magenta;
//TODO translate
this.cropModeButton.LanguageKey = "editor_crop_mode";
this.cropModeButton.Name = "cropModeButton";
this.cropModeButton.SelectedTag = CropContainer.CropMode.Default;
this.cropModeButton.Tag = CropContainer.CropMode.Default;
//
// defaultCropStyleToolStripMenuItem
//
this.defaultCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("btnCrop.Image")));
this.defaultCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_default";
this.defaultCropModeToolStripMenuItem.Name = "defaultCropModeToolStripMenuItem";
this.defaultCropModeToolStripMenuItem.Tag = CropContainer.CropMode.Default;
//
// cropModeButton
//
this.cropModeButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.cropModeButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.defaultCropModeToolStripMenuItem,
this.verticalCropModeToolStripMenuItem,
this.horizontalCropModeToolStripMenuItem,
this.autoCropModeToolStripMenuItem});
this.cropModeButton.Image = ((System.Drawing.Image)(resources.GetObject("btnCrop.Image")));
this.cropModeButton.ImageTransparentColor = System.Drawing.Color.Magenta;
//TODO translate
this.cropModeButton.LanguageKey = "editor_crop_mode";
this.cropModeButton.Name = "cropModeButton";
this.cropModeButton.SelectedTag = CropContainer.CropMode.Default;
this.cropModeButton.Tag = CropContainer.CropMode.Default;
//
// verticalCropStyleToolStripMenuItem
//
this.verticalCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("CropVertical.Image")));
this.verticalCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_vertical";
this.verticalCropModeToolStripMenuItem.Name = "verticalCropModeToolStripMenuItem";
this.verticalCropModeToolStripMenuItem.Tag = CropContainer.CropMode.Vertical;
//
// defaultCropStyleToolStripMenuItem
//
this.defaultCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("btnCrop.Image")));
this.defaultCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_default";
this.defaultCropModeToolStripMenuItem.Name = "defaultCropModeToolStripMenuItem";
this.defaultCropModeToolStripMenuItem.Tag = CropContainer.CropMode.Default;
//
// horizontalCropStyleToolStripMenuItem
//
this.horizontalCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("CropHorizontal.Image")));
this.horizontalCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_horizontal";
this.horizontalCropModeToolStripMenuItem.Name = "horizontalCropModeToolStripMenuItem";
this.horizontalCropModeToolStripMenuItem.Tag = CropContainer.CropMode.Horizontal;
//
// verticalCropStyleToolStripMenuItem
//
this.verticalCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("CropVertical.Image")));
this.verticalCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_vertical";
this.verticalCropModeToolStripMenuItem.Name = "verticalCropModeToolStripMenuItem";
this.verticalCropModeToolStripMenuItem.Tag = CropContainer.CropMode.Vertical;
//
// horizontalCropStyleToolStripMenuItem
//
this.autoCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("AutoCrop.Image")));
this.autoCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_auto";
this.autoCropModeToolStripMenuItem.Name = "autoCropModeToolStripMenuItem";
this.autoCropModeToolStripMenuItem.Tag = CropContainer.CropMode.AutoCrop;
//
// horizontalCropStyleToolStripMenuItem
//
this.horizontalCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("CropHorizontal.Image")));
this.horizontalCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_horizontal";
this.horizontalCropModeToolStripMenuItem.Name = "horizontalCropModeToolStripMenuItem";
this.horizontalCropModeToolStripMenuItem.Tag = CropContainer.CropMode.Horizontal;
//
// highlightModeButton
//
this.highlightModeButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
//
// horizontalCropStyleToolStripMenuItem
//
this.autoCropModeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("AutoCrop.Image")));
this.autoCropModeToolStripMenuItem.LanguageKey = "editor_cropmode_auto";
this.autoCropModeToolStripMenuItem.Name = "autoCropModeToolStripMenuItem";
this.autoCropModeToolStripMenuItem.Tag = CropContainer.CropMode.AutoCrop;
//
// highlightModeButton
//
this.highlightModeButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.highlightModeButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.textHighlightMenuItem,
this.areaHighlightMenuItem,
@ -1914,13 +1914,13 @@ namespace Greenshot.Editor.Forms {
private BindableToolStripButton btnCancel;
private BindableToolStripButton btnConfirm;
private GreenshotToolStripMenuItem selectAllToolStripMenuItem;
private BindableToolStripDropDownButton highlightModeButton;
private BindableToolStripDropDownButton cropModeButton;
private GreenshotToolStripMenuItem defaultCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem verticalCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem horizontalCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem autoCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem pixelizeToolStripMenuItem;
private BindableToolStripDropDownButton highlightModeButton;
private BindableToolStripDropDownButton cropModeButton;
private GreenshotToolStripMenuItem defaultCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem verticalCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem horizontalCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem autoCropModeToolStripMenuItem;
private GreenshotToolStripMenuItem pixelizeToolStripMenuItem;
private GreenshotToolStripMenuItem blurToolStripMenuItem;
private BindableToolStripDropDownButton obfuscateModeButton;
private GreenshotToolStripButton btnHighlight;

View file

@ -728,12 +728,11 @@ namespace Greenshot.Editor.Forms
private void BtnCropClick(object sender, EventArgs e)
{
if (_surface.DrawingMode != DrawingModes.Crop)
{
_surface.DrawingMode = DrawingModes.Crop;
InitCropMode((CropContainer.CropMode)_surface.FieldAggregator.GetField(FieldType.CROPMODE).Value);
RefreshFieldControls();
}
if (_surface.DrawingMode == DrawingModes.Crop) return;
_surface.DrawingMode = DrawingModes.Crop;
InitCropMode((CropContainer.CropMode)_surface.FieldAggregator.GetField(FieldType.CROPMODE).Value);
RefreshFieldControls();
}
private void BtnHighlightClick(object sender, EventArgs e)

View file

@ -76,9 +76,9 @@ schnell zu finden. Vielen Dank :)</resource>
<resource name="editor_arrowheads_end">Endpunkt</resource>
<resource name="editor_arrowheads_none">Keine</resource>
<resource name="editor_arrowheads_start">Anfangspunkt</resource>
<resource name="editor_autocrop">Automatisch zuschneiden</resource>
<resource name="editor_autocrop_not_possible">Automatisches Zuschneiden nicht möglich</resource>
<resource name="editor_backcolor">Hintergrundfarbe (0-9)</resource>
<resource name="editor_autocrop">Automatisch zuschneiden</resource>
<resource name="editor_autocrop_not_possible">Automatisches Zuschneiden nicht möglich</resource>
<resource name="editor_backcolor">Hintergrundfarbe (0-9)</resource>
<resource name="editor_blur_radius">Weichzeichner-Radius</resource>
<resource name="editor_bold">Fett</resource>
<resource name="editor_border">Rand</resource>
@ -92,12 +92,12 @@ schnell zu finden. Vielen Dank :)</resource>
<resource name="editor_copyimagetoclipboard">Grafik in die Zwischenablage kopieren</resource>
<resource name="editor_copypathtoclipboard">Pfad in Zwischenablage kopieren</resource>
<resource name="editor_copytoclipboard">Kopieren</resource>
<resource name="editor_crop">Zuschneiden (C)</resource>
<resource name="editor_crop_mode">Zuschneiden - Modus</resource>
<resource name="editor_cropmode_default">Zuschneiden</resource>
<resource name="editor_cropmode_vertical">Vertikal ausschneiden</resource>
<resource name="editor_cropmode_horizontal">Horizontal ausschneiden</resource>
<resource name="editor_cropmode_auto">Automatisch zuschneiden</resource>
<resource name="editor_crop">Zuschneiden (C)</resource>
<resource name="editor_crop_mode">Zuschneiden - Modus</resource>
<resource name="editor_cropmode_default">Zuschneiden</resource>
<resource name="editor_cropmode_vertical">Vertikal ausschneiden</resource>
<resource name="editor_cropmode_horizontal">Horizontal ausschneiden</resource>
<resource name="editor_cropmode_auto">Automatisch zuschneiden</resource>
<resource name="editor_cursortool">Auswahlwerkzeug (Esc)</resource>
<resource name="editor_cuttoclipboard">Ausschneiden</resource>
<resource name="editor_deleteelement">Gewähltes Element löschen</resource>

View file

@ -78,7 +78,7 @@ Also, we would highly appreciate if you checked whether a tracker item already e
<resource name="editor_arrowheads_none">None</resource>
<resource name="editor_arrowheads_start">Start point</resource>
<resource name="editor_autocrop">Auto crop</resource>
<resource name="editor_autocrop_not_possible">Auto crop not possible</resource>
<resource name="editor_autocrop_not_possible">Auto crop not possible</resource>
<resource name="editor_backcolor">Fill color (0-9)</resource>
<resource name="editor_blur_radius">Blur radius</resource>
<resource name="editor_bold">Bold</resource>
@ -94,11 +94,11 @@ Also, we would highly appreciate if you checked whether a tracker item already e
<resource name="editor_copypathtoclipboard">Copy path to clipboard</resource>
<resource name="editor_copytoclipboard">Copy</resource>
<resource name="editor_crop">Crop (C)</resource>
<resource name="editor_crop_mode">Crop mode</resource>
<resource name="editor_cropmode_default">Crop</resource>
<resource name="editor_cropmode_vertical">Crop out vertically</resource>
<resource name="editor_cropmode_horizontal">Crop out horizontally</resource>
<resource name="editor_cropmode_auto">Auto crop</resource>
<resource name="editor_crop_mode">Crop mode</resource>
<resource name="editor_cropmode_default">Crop</resource>
<resource name="editor_cropmode_vertical">Crop out vertically</resource>
<resource name="editor_cropmode_horizontal">Crop out horizontally</resource>
<resource name="editor_cropmode_auto">Auto crop</resource>
<resource name="editor_cursortool">Selection Tool (ESC)</resource>
<resource name="editor_cuttoclipboard">Cut</resource>
<resource name="editor_deleteelement">Delete</resource>