From 3a6172bea2d95758472570b156b001d5cf4da442 Mon Sep 17 00:00:00 2001 From: Christian Schulz Date: Fri, 30 May 2025 17:21:32 +0200 Subject: [PATCH 1/6] Fix: Evaluate LoadDrawablesFromStream() before disposing the stream Break after a container is found --- src/Greenshot.Base/Core/ClipboardHelper.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Greenshot.Base/Core/ClipboardHelper.cs b/src/Greenshot.Base/Core/ClipboardHelper.cs index bfe13c121..789feb417 100644 --- a/src/Greenshot.Base/Core/ClipboardHelper.cs +++ b/src/Greenshot.Base/Core/ClipboardHelper.cs @@ -610,6 +610,7 @@ EndSelection:<<<<<<<4 } var fileFormatHandlers = SimpleServiceProvider.Current.GetAllInstances(); var supportedExtensions = fileFormatHandlers.ExtensionsFor(FileFormatHandlerActions.LoadDrawableFromStream).ToList(); + var foundContainer = false; foreach (var (stream, filename) in IterateClipboardContent(dataObject)) { @@ -622,7 +623,8 @@ EndSelection:<<<<<<<4 IEnumerable drawableContainers; try { - drawableContainers = fileFormatHandlers.LoadDrawablesFromStream(stream, extension); + // without toList() here, LoadDrawablesFromStream() are called after the stream has been disposed + drawableContainers = fileFormatHandlers.LoadDrawablesFromStream(stream, extension).ToList(); } catch (Exception ex) { @@ -636,10 +638,14 @@ EndSelection:<<<<<<<4 // If we get here, there is an image foreach (var container in drawableContainers) { + foundContainer = true; yield return container; } } + // we found sth., prevent multiple imports of the same content + if (foundContainer) yield break; + // check if files are supplied foreach (string imageFile in GetImageFilenames(dataObject)) { From c5a91c0c5a0a3456de00b5f350e444b8fbafe3c5 Mon Sep 17 00:00:00 2001 From: Christian Schulz Date: Fri, 30 May 2025 21:01:44 +0200 Subject: [PATCH 2/6] extend SimpleServiceProvider, include the ability to remove services --- .../Core/SimpleServiceProvider.cs | 37 +++++++++++++++++++ .../Interfaces/IServiceLocator.cs | 14 +++++++ 2 files changed, 51 insertions(+) diff --git a/src/Greenshot.Base/Core/SimpleServiceProvider.cs b/src/Greenshot.Base/Core/SimpleServiceProvider.cs index 084f5b1fd..ed64022bb 100644 --- a/src/Greenshot.Base/Core/SimpleServiceProvider.cs +++ b/src/Greenshot.Base/Core/SimpleServiceProvider.cs @@ -12,8 +12,12 @@ namespace Greenshot.Base.Core { private readonly Dictionary> _services = new(); + /// + /// Gets the current instance of the service locator. + /// public static IServiceLocator Current { get; } = new SimpleServiceProvider(); + /// public IReadOnlyList GetAllInstances() { var typeOfService = typeof(TService); @@ -25,11 +29,13 @@ namespace Greenshot.Base.Core return results.Cast().ToArray(); } + /// public TService GetInstance() { return GetAllInstances().SingleOrDefault(); } + /// public void AddService(IEnumerable services) { var serviceType = typeof(TService); @@ -50,9 +56,40 @@ namespace Greenshot.Base.Core } } + /// public void AddService(params TService[] services) { AddService(services.AsEnumerable()); } + + /// + public void RemoveService(IEnumerable services) + { + var serviceType = typeof(TService); + if (!_services.TryGetValue(serviceType, out var currentServices)) + { + return; + } + + foreach (var service in services) + { + if (service == null) + { + continue; + } + currentServices.Remove(service); + } + + if (currentServices.Count == 0) + { + _services.Remove(serviceType); + } + } + + /// + public void RemoveService(params TService[] services) + { + RemoveService(services.AsEnumerable()); + } } } \ No newline at end of file diff --git a/src/Greenshot.Base/Interfaces/IServiceLocator.cs b/src/Greenshot.Base/Interfaces/IServiceLocator.cs index 5cf1fb529..9a0081fee 100644 --- a/src/Greenshot.Base/Interfaces/IServiceLocator.cs +++ b/src/Greenshot.Base/Interfaces/IServiceLocator.cs @@ -54,5 +54,19 @@ namespace Greenshot.Base.Interfaces /// Type of the service /// IEnumerable{TService} with services to add void AddService(IEnumerable services); + + /// + /// Remove one or more services from the registry + /// + /// Type of the service + /// One or more services which need to be removed + void RemoveService(params TService[] services); + + /// + /// Remove multiple services from the registry + /// + /// Type of the service + /// IEnumerable{TService} with services to remove + void RemoveService(IEnumerable services); } } \ No newline at end of file From 4e7da54a224b5626bbc297a6a206eb8c85fa4437 Mon Sep 17 00:00:00 2001 From: Christian Schulz Date: Fri, 30 May 2025 21:34:33 +0200 Subject: [PATCH 3/6] Add lock for IniConfig.SectionMap --- src/Greenshot.Base/IniFile/IniConfig.cs | 70 ++++++++++++++++--------- 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/src/Greenshot.Base/IniFile/IniConfig.cs b/src/Greenshot.Base/IniFile/IniConfig.cs index cbe04e11b..e5fccbe5e 100644 --- a/src/Greenshot.Base/IniFile/IniConfig.cs +++ b/src/Greenshot.Base/IniFile/IniConfig.cs @@ -41,6 +41,11 @@ namespace Greenshot.Base.IniFile /// private static readonly object IniLock = new object(); + /// + /// A lock object for the section map + /// + private static readonly object SectionMapLock = new object(); + /// /// As the ini implementation is kept someone generic, for reusing, this holds the name of the application /// @@ -290,23 +295,26 @@ namespace Greenshot.Base.IniFile // Load the fixed settings _fixedProperties = Read(CreateIniLocation(_configName + FixedPostfix + IniExtension, true)); - foreach (IniSection section in SectionMap.Values) + lock (SectionMapLock) { - try + foreach (IniSection section in SectionMap.Values) { - section.Fill(PropertiesForSection(section)); - FixProperties(section); - } - catch (Exception ex) - { - string sectionName = "unknown"; - if (section?.IniSectionAttribute?.Name != null) + try { - sectionName = section.IniSectionAttribute.Name; + section.Fill(PropertiesForSection(section)); + FixProperties(section); } + catch (Exception ex) + { + string sectionName = "unknown"; + if (section?.IniSectionAttribute?.Name != null) + { + sectionName = section.IniSectionAttribute.Name; + } - Log.WarnFormat("Problem reading the ini section {0}", sectionName); - Log.Warn("Exception", ex); + Log.WarnFormat("Problem reading the ini section {0}", sectionName); + Log.Warn("Exception", ex); + } } } } @@ -389,7 +397,12 @@ namespace Greenshot.Base.IniFile { get { - foreach (string sectionName in SectionMap.Keys) + List sectionNames; + lock (SectionMapLock) + { + sectionNames = [.. SectionMap.Keys]; + } + foreach (string sectionName in sectionNames) { yield return sectionName; } @@ -403,10 +416,13 @@ namespace Greenshot.Base.IniFile /// public static IniSection GetIniSection(string sectionName) { - SectionMap.TryGetValue(sectionName, out var returnValue); - return returnValue; + lock (SectionMapLock) + { + SectionMap.TryGetValue(sectionName, out var returnValue); + return returnValue; + } } - + /// /// A generic method which returns an instance of the supplied type, filled with it's configuration /// @@ -429,20 +445,24 @@ namespace Greenshot.Base.IniFile Type iniSectionType = typeof(T); string sectionName = IniSection.GetIniSectionAttribute(iniSectionType).Name; - if (SectionMap.ContainsKey(sectionName)) + + lock (SectionMapLock) { + if (SectionMap.ContainsKey(sectionName)) + { //LOG.Debug("Returning pre-mapped section " + sectionName); - section = (T) SectionMap[sectionName]; - } - else - { + section = (T)SectionMap[sectionName]; + } + else + { // Create instance of this type - section = (T) Activator.CreateInstance(iniSectionType); + section = (T)Activator.CreateInstance(iniSectionType); // Store for later save & retrieval - SectionMap.Add(sectionName, section); - section.Fill(PropertiesForSection(section)); - FixProperties(section); + SectionMap.Add(sectionName, section); + section.Fill(PropertiesForSection(section)); + FixProperties(section); + } } if (allowSave && section.IsDirty) From 64c125a9ec8864b26f4e67c3c95f6488eb0a258e Mon Sep 17 00:00:00 2001 From: Christian Schulz Date: Tue, 8 Apr 2025 19:40:44 +0200 Subject: [PATCH 4/6] New Greenshot file format Replace Binaryformatter with MessagePack. Add data transfer objects for all objects that are serialized. Still support all previous file formats, first step to remove Binaryformatter. Add new testproject with xunit. --- src/Greenshot.Base/Core/ImageIO.cs | 78 -- .../Interfaces/IFileFormatHandler.cs | 13 +- src/Greenshot.Base/Interfaces/ISurface.cs | 9 +- .../Drawing/ArrowContainer.cs | 2 - src/Greenshot.Editor/Drawing/CropContainer.cs | 7 - .../Drawing/CursorContainer.cs | 16 +- .../Drawing/DrawableContainer.cs | 36 +- .../Drawing/DrawableContainerList.cs | 1 - .../Drawing/EllipseContainer.cs | 8 - .../Drawing/Fields/AbstractFieldHolder.cs | 36 +- .../Fields/AbstractFieldHolderWithChildren.cs | 20 +- src/Greenshot.Editor/Drawing/Fields/Field.cs | 3 +- .../Drawing/Fields/FieldAggregator.cs | 2 - .../Drawing/Fields/FieldType.cs | 2 - .../Drawing/FilterContainer.cs | 14 - .../Drawing/Filters/AbstractFilter.cs | 3 +- .../Drawing/Filters/BlurFilter.cs | 2 - .../Drawing/Filters/MagnifierFilter.cs | 1 - .../Drawing/FreehandContainer.cs | 31 +- .../Drawing/HighlightContainer.cs | 8 - src/Greenshot.Editor/Drawing/IconContainer.cs | 9 - .../Drawing/ImageContainer.cs | 13 +- src/Greenshot.Editor/Drawing/LineContainer.cs | 8 - .../Drawing/MetafileContainer.cs | 73 +- .../Drawing/ObfuscateContainer.cs | 8 - .../Drawing/RectangleContainer.cs | 11 - .../Drawing/SpeechbubbleContainer.cs | 40 +- .../Drawing/StepLabelContainer.cs | 50 +- src/Greenshot.Editor/Drawing/Surface.cs | 89 +- src/Greenshot.Editor/Drawing/SvgContainer.cs | 36 +- src/Greenshot.Editor/Drawing/TextContainer.cs | 69 +- .../Drawing/VectorGraphicsContainer.cs | 37 +- src/Greenshot.Editor/EditorInitialize.cs | 4 +- .../Dto/Container/ArrowContainerDto.cs | 32 + .../Dto/Container/CursorContainerDto.cs | 36 + .../Dto/Container/DrawableContainerDto.cs | 66 + .../Dto/Container/DrawableContainerListDto.cs | 35 + .../Dto/Container/EllipseContainerDto.cs | 31 + .../Dto/Container/FreehandContainerDto.cs | 35 + .../Dto/Container/HighlightContainerDto.cs | 34 + .../Dto/Container/IconContainerDto.cs | 33 + .../Dto/Container/ImageContainerDto.cs | 34 + .../Dto/Container/LineContainerDto.cs | 32 + .../Dto/Container/MetafileContainerDto.cs | 39 + .../Dto/Container/ObfuscateContainerDto.cs | 34 + .../FileFormat/Dto/Container/PointDto.cs | 33 + .../Dto/Container/RectangleContainerDto.cs | 32 + .../Dto/Container/SpeechbubbleContainerDto.cs | 37 + .../Dto/Container/StepLabelContainerDto.cs | 36 + .../Dto/Container/SvgContainerDto.cs | 38 + .../Dto/Container/TextContainerDto.cs | 30 + .../FileFormat/Dto/ConvertDomainToDto.cs | 406 ++++++ .../FileFormat/Dto/ConvertDtoToDomain.cs | 399 ++++++ .../FileFormat/Dto/DtoHelper.cs | 96 ++ .../ArrowHeadCombinationFieldValueDto.cs | 36 + .../Dto/Fields/BoolFieldValueDto.cs | 35 + .../Dto/Fields/ColorFieldValueDto.cs | 53 + .../Dto/Fields/DecimalFieldValueDto.cs | 35 + .../Dto/Fields/DoubleFieldValueDto.cs | 35 + .../FileFormat/Dto/Fields/FieldDto.cs | 36 + .../Dto/Fields/FieldFlagFieldValueDto.cs | 36 + .../FileFormat/Dto/Fields/FieldValueDto.cs | 45 + .../FileFormat/Dto/Fields/IntFieldValueDto.cs | 35 + .../Dto/Fields/NullFieldValueDto.cs | 35 + .../Dto/Fields/PreparedFilterFieldValueDto.cs | 36 + .../Dto/Fields/SingleFieldValueDto.cs | 35 + .../Fields/StringAlignmentFieldValueDto.cs | 36 + .../Dto/Fields/StringFieldValueDto.cs | 35 + .../FileFormat/Dto/GreenshotFileDto.cs | 62 + .../FileFormat/Dto/GreenshotTemplateDto.cs | 50 + .../FileFormat/GreenshotFile.cs | 59 + .../FileFormat/GreenshotFileVersionHandler.cs | 221 ++++ .../FileFormat/GreenshotTemplate.cs | 47 + .../GreenshotTemplateVersionHandler.cs | 104 ++ .../FileFormat/V1/GreenshotFileV1.cs | 163 +++ .../FileFormat/V1/GreenshotTemplateV1.cs | 93 ++ .../V1/Legacy/ConvertLegacyToDto.cs | 303 +++++ .../FileFormat/V1/Legacy/LegacyClasses.cs | 358 ++++++ .../FileFormat/V1/Legacy/LegacyFileHelper.cs | 88 ++ .../V1/Legacy/LegacySerializationBinder.cs | 123 ++ .../FileFormat/V2/GreenshotFileV2.cs | 266 ++++ .../FileFormat/V2/GreenshotTemplateV2.cs | 212 +++ src/Greenshot.Editor/FileFormat/readme.md | 216 ++++ .../AbstractFileFormatHandler.cs | 7 +- .../DefaultFileFormatHandler.cs | 4 + .../GreenshotFileFormatHandler.cs | 164 ++- .../GreenshotTemplateFormatHandler.cs | 124 ++ .../MetaFileFormatHandler.cs | 16 +- src/Greenshot.Editor/Forms/ImageEditorForm.cs | 38 +- src/Greenshot.Editor/Greenshot.Editor.csproj | 4 + .../Helpers/BinaryFormatterHelper.cs | 124 -- .../ConvertApplicationToDtoTests.cs | 104 ++ .../ConvertArrowContainerToDtoTests.cs | 148 +++ .../ConvertCursorContainerToDtoTests.cs | 58 + .../ConvertDrawableContainerListToDtoTest.cs | 74 ++ .../ConvertEllipseContainerToDtoTests.cs | 135 ++ .../Dto/DomainToDto/ConvertFieldToDtoTests.cs | 86 ++ .../ConvertFreehandContainerToDtoTests.cs | 127 ++ .../ConvertHighlightContainerToDtoTests.cs | 133 ++ .../ConvertIconContainerToDtoTests.cs | 63 + .../ConvertImageContainerToDtoTest.cs | 93 ++ .../ConvertLineContainerToDtoTests.cs | 120 ++ .../ConvertMetafileContainerToDtoTest.cs | 58 + .../ConvertObfuscateContainerToDtoTests.cs | 133 ++ .../ConvertRectangleContainerToDtoTests.cs | 135 ++ .../ConvertSpeechbubbleContainerToDtoTests.cs | 223 ++++ .../ConvertStepLabelContainerToDtoTests.cs | 138 ++ .../ConvertSvgContainerToDtoTest.cs | 58 + .../ConvertTextContainerToDtoTests.cs | 216 ++++ .../Dto/DomainToDto/ConvertValueToDtoTests.cs | 115 ++ .../ConvertDtoToApplicationFileTests.cs | 93 ++ .../ConvertDtoToArrowContainerTests.cs | 133 ++ .../ConvertDtoToCursorContainerTests.cs | 52 + .../ConvertDtoToDrawableContainerListTest.cs | 74 ++ .../ConvertDtoToEllipseContainerTests.cs | 118 ++ .../Dto/DtoToDomain/ConvertDtoToFieldTests.cs | 106 ++ .../ConvertDtoToFreehandContainerTests.cs | 97 ++ .../ConvertDtoToHighlightContainerTests.cs | 128 ++ .../ConvertDtoToIconContainerTests.cs | 66 + .../ConvertDtoToImageContainerTest.cs | 144 +++ .../ConvertDtoToLineContainerTests.cs | 103 ++ .../ConvertDtoToMetafileContainerTest.cs | 65 + .../ConvertDtoToObfuscateContainerTests.cs | 127 ++ .../ConvertDtoToRectangleContainerTests.cs | 119 ++ .../ConvertDtoToSpeechbubbleContainerTests.cs | 208 +++ .../ConvertDtoToStepLabelContainerTests.cs | 77 ++ .../ConvertDtoToSvgContainerTest.cs | 59 + .../ConvertDtoToTextContainerTests.cs | 206 +++ .../Dto/DtoToDomain/ConvertDtoToValueTests.cs | 100 ++ .../ApplicationFileSerializationTests.cs | 91 ++ .../ArrowContainerSerializationTests.cs | 66 + .../CursorContainerSerializationTests.cs | 60 + ...DrawableContainerListSerializationTests.cs | 210 +++ .../EllipseContainerSerializationTests.cs | 65 + .../FieldSerializationTests.cs | 126 ++ .../FieldValueSerializationTests.cs | 111 ++ .../FreehandContainerSerializationTests.cs | 74 ++ .../HighlightContainerSerializationTests.cs | 65 + .../IconContainerSerializationTests.cs | 71 + .../ImageContainerSerializationTests.cs | 73 ++ .../LineContainerSerializationTests.cs | 65 + .../MetafileContainerSerializationTests.cs | 79 ++ .../ObfuscateContainerSerializationTests.cs | 65 + .../RectangleContainerSerializationTests.cs | 65 + ...SpeechbubbleContainerSerializationTests.cs | 70 + .../StepLabelContainerSerializationTests.cs | 69 + .../SurfaceSerializationTests.cs | 125 ++ .../SvgContainerSerializationTests.cs | 124 ++ .../TextContainerSerializationTests.cs | 67 + .../V1/Legacy/LegacyGreenshotFileTest.cs | 96 ++ .../Legacy/LegacySerializationBinderTests.cs | 74 ++ .../GreenshotTemplateFormatHandlerTests.cs | 170 +++ .../LoadGreenshotSurfaceTests.cs | 1140 +++++++++++++++++ .../LoadTemplateFromFileTest.cs | 1103 ++++++++++++++++ .../Base/SimpleServiceProviderFixture.cs | 87 ++ .../SimplServiceProviderCollection.cs | 49 + src/Greenshot.Test/Greenshot.Test.csproj | 316 +++++ .../ArrowContainer_lt_100_200_wh_400_100.gst | Bin 0 -> 2832 bytes ...EllipseContainer_lt_200_200_wh_400_100.gst | Bin 0 -> 2584 bytes .../FreehandContainer_with_4_points.gst | Bin 0 -> 3174 bytes ...ntainer_TextFilter_lt_310_70_wh_195_60.gst | Bin 0 -> 3316 bytes .../IconContainer_lt_400_200_wh_32_32.gst | Bin 0 -> 2999 bytes .../ImageContainer_lt_300_200_wh_100_100.gst | Bin 0 -> 7795 bytes .../LineContainer_lt_200_200_w_400.gst | Bin 0 -> 2503 bytes ...ntainer_BlurFilter_lt_130_70_wh_180_70.gst | Bin 0 -> 3375 bytes ...ectangleContainer_lt_100_200_wh_150_80.gst | Bin 0 -> 2588 bytes ...chbubbleContainer_lt_200_200_wh_150_80.gst | Bin 0 -> 3438 bytes ...epLabelContainer_lt_200_200_lt_500_300.gst | Bin 0 -> 2989 bytes ...ce_with_11_different_DrawableContainer.gst | Bin 0 -> 17671 bytes .../TextContainer_lt_300_200_wh_300_100.gst | Bin 0 -> 3139 bytes .../ArrowContainer_lt_100_200_wh_400_100.gst | Bin 0 -> 2922 bytes ...EllipseContainer_lt_200_200_wh_400_100.gst | Bin 0 -> 2658 bytes .../FreehandContainer_with_4_points.gst | Bin 0 -> 3248 bytes ...ntainer_TextFilter_lt_310_70_wh_195_60.gst | Bin 0 -> 3424 bytes .../IconContainer_lt_400_200_wh_32_32.gst | Bin 0 -> 3052 bytes .../ImageContainer_lt_300_200_wh_100_100.gst | Bin 0 -> 27905 bytes .../LineContainer_lt_200_200_w_400.gst | Bin 0 -> 2577 bytes ...etafileContainer_lt_300_200_wh_120_100.gst | Bin 0 -> 3515 bytes ...ntainer_BlurFilter_lt_130_70_wh_180_70.gst | Bin 0 -> 3483 bytes ...ectangleContainer_lt_100_200_wh_150_80.gst | Bin 0 -> 2662 bytes ...chbubbleContainer_lt_200_200_wh_150_80.gst | Bin 0 -> 3530 bytes ...epLabelContainer_lt_200_200_lt_500_300.gst | Bin 0 -> 3042 bytes ...ce_with_14_different_DrawableContainer.gst | Bin 0 -> 28619 bytes .../SvgContainer_lt_300_200_wh_120_100.gst | Bin 0 -> 7670 bytes .../TextContainer_lt_300_200_wh_300_100.gst | Bin 0 -> 3222 bytes .../ArrowContainer_lt_100_200_wh_400_100.gst | Bin 0 -> 814 bytes ...EllipseContainer_lt_200_200_wh_400_100.gst | Bin 0 -> 676 bytes .../FreehandContainer_with_4_points.gst | Bin 0 -> 528 bytes ...ntainer_TextFilter_lt_310_70_wh_195_60.gst | Bin 0 -> 846 bytes .../IconContainer_lt_400_200_wh_32_32.gst | Bin 0 -> 927 bytes .../ImageContainer_lt_300_200_wh_100_100.gst | Bin 0 -> 25913 bytes .../LineContainer_lt_200_200_w_400.gst | Bin 0 -> 514 bytes ...etafileContainer_lt_300_200_wh_120_100.gst | Bin 0 -> 1318 bytes ...ntainer_BlurFilter_lt_130_70_wh_180_70.gst | Bin 0 -> 993 bytes ...ectangleContainer_lt_100_200_wh_150_80.gst | Bin 0 -> 682 bytes ...chbubbleContainer_lt_200_200_wh_150_80.gst | Bin 0 -> 1771 bytes ...epLabelContainer_lt_200_200_lt_500_300.gst | Bin 0 -> 1178 bytes ...ce_with_14_different_DrawableContainer.gst | Bin 0 -> 17777 bytes .../SvgContainer_lt_300_200_wh_120_100.gst | Bin 0 -> 5428 bytes .../TextContainer_lt_300_200_wh_300_100.gst | Bin 0 -> 1681 bytes ...wContainer_lt_100_200_wh_400_100.greenshot | Bin 0 -> 29035 bytes ...eContainer_lt_200_200_wh_400_100.greenshot | Bin 0 -> 28787 bytes .../FreehandContainer_with_4_points.greenshot | Bin 0 -> 29377 bytes ...r_TextFilter_lt_310_70_wh_195_60.greenshot | Bin 0 -> 29519 bytes ...conContainer_lt_400_200_wh_32_32.greenshot | Bin 0 -> 29202 bytes ...eContainer_lt_300_200_wh_100_100.greenshot | Bin 0 -> 33998 bytes .../LineContainer_lt_200_200_w_400.greenshot | Bin 0 -> 28706 bytes ...r_BlurFilter_lt_130_70_wh_180_70.greenshot | Bin 0 -> 29578 bytes ...leContainer_lt_100_200_wh_150_80.greenshot | Bin 0 -> 28791 bytes ...leContainer_lt_200_200_wh_150_80.greenshot | Bin 0 -> 29641 bytes ...lContainer_lt_200_200_lt_500_300.greenshot | Bin 0 -> 29192 bytes ...h_11_different_DrawableContainer.greenshot | Bin 0 -> 43887 bytes .../Surface_with_Image_800x400.greenshot | Bin 0 -> 26743 bytes ...tContainer_lt_300_200_wh_300_100.greenshot | Bin 0 -> 29342 bytes ...wContainer_lt_100_200_wh_400_100.greenshot | Bin 0 -> 29125 bytes ...eContainer_lt_200_200_wh_400_100.greenshot | Bin 0 -> 28861 bytes .../FreehandContainer_with_4_points.greenshot | Bin 0 -> 29451 bytes ...r_TextFilter_lt_310_70_wh_195_60.greenshot | Bin 0 -> 29627 bytes ...conContainer_lt_400_200_wh_32_32.greenshot | Bin 0 -> 29255 bytes ...eContainer_lt_300_200_wh_100_100.greenshot | Bin 0 -> 54108 bytes .../LineContainer_lt_200_200_w_400.greenshot | Bin 0 -> 28780 bytes ...eContainer_lt_300_200_wh_120_100.greenshot | Bin 0 -> 29718 bytes ...r_BlurFilter_lt_130_70_wh_180_70.greenshot | Bin 0 -> 29686 bytes ...leContainer_lt_100_200_wh_150_80.greenshot | Bin 0 -> 28865 bytes ...leContainer_lt_200_200_wh_150_80.greenshot | Bin 0 -> 29733 bytes ...lContainer_lt_200_200_lt_500_300.greenshot | Bin 0 -> 29245 bytes ...h_14_different_DrawableContainer.greenshot | Bin 0 -> 54822 bytes .../Surface_with_Image_800x400.greenshot | Bin 0 -> 26774 bytes ...gContainer_lt_300_200_wh_120_100.greenshot | Bin 0 -> 33873 bytes ...tContainer_lt_300_200_wh_300_100.greenshot | Bin 0 -> 29425 bytes ...wContainer_lt_100_200_wh_400_100.greenshot | Bin 0 -> 54241 bytes ...eContainer_lt_200_200_wh_400_100.greenshot | Bin 0 -> 56855 bytes .../FreehandContainer_with_4_points.greenshot | Bin 0 -> 53013 bytes ...r_TextFilter_lt_310_70_wh_195_60.greenshot | Bin 0 -> 51532 bytes ...conContainer_lt_400_200_wh_32_32.greenshot | Bin 0 -> 53595 bytes ...eContainer_lt_300_200_wh_100_100.greenshot | Bin 0 -> 85986 bytes .../LineContainer_lt_200_200_w_400.greenshot | Bin 0 -> 52992 bytes ...eContainer_lt_300_200_wh_120_100.greenshot | Bin 0 -> 55609 bytes ...r_BlurFilter_lt_130_70_wh_180_70.greenshot | Bin 0 -> 63970 bytes ...leContainer_lt_100_200_wh_150_80.greenshot | Bin 0 -> 53749 bytes ...leContainer_lt_200_200_wh_150_80.greenshot | Bin 0 -> 61536 bytes ...lContainer_lt_200_200_lt_500_300.greenshot | Bin 0 -> 54761 bytes ...h_14_different_DrawableContainer.greenshot | Bin 0 -> 87791 bytes .../Surface_with_Image_800x400.greenshot | Bin 0 -> 52412 bytes ...gContainer_lt_300_200_wh_120_100.greenshot | Bin 0 -> 59956 bytes ...tContainer_lt_300_200_wh_300_100.greenshot | Bin 0 -> 56819 bytes .../TestData/Images/Greenshot.ico | Bin 0 -> 15227 bytes .../TestData/Images/Logo_G_with_Border.emf | Bin 0 -> 8648 bytes .../TestData/Images/Logo_G_with_Border.jpg | Bin 0 -> 4620 bytes .../TestData/Images/Logo_G_with_Border.png | Bin 0 -> 1059 bytes .../TestData/Images/Logo_G_with_Border.svg | 229 ++++ .../TestData/Images/Logo_G_with_Border.wmf | Bin 0 -> 3434 bytes .../Images/Logo_G_with_Border_256x256.png | Bin 0 -> 34304 bytes .../Images/Screenshot_background_800x400.png | Bin 0 -> 26194 bytes ...Screenshot_background_800x400_template.svg | 239 ++++ src/Greenshot.sln | 12 +- src/Greenshot/Helpers/CaptureHelper.cs | 62 +- 257 files changed, 14528 insertions(+), 738 deletions(-) create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/ArrowContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/CursorContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerListDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/EllipseContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/FreehandContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/HighlightContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/IconContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/ImageContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/LineContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/MetafileContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/ObfuscateContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/PointDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/RectangleContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/SpeechbubbleContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/StepLabelContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/SvgContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Container/TextContainerDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/ConvertDomainToDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/ConvertDtoToDomain.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/ArrowHeadCombinationFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/BoolFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/ColorFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/DecimalFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/DoubleFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/FieldDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/FieldFlagFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/FieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/IntFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/NullFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/PreparedFilterFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/SingleFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/StringAlignmentFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/Fields/StringFieldValueDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/GreenshotFileDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/Dto/GreenshotTemplateDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/GreenshotFile.cs create mode 100644 src/Greenshot.Editor/FileFormat/GreenshotFileVersionHandler.cs create mode 100644 src/Greenshot.Editor/FileFormat/GreenshotTemplate.cs create mode 100644 src/Greenshot.Editor/FileFormat/GreenshotTemplateVersionHandler.cs create mode 100644 src/Greenshot.Editor/FileFormat/V1/GreenshotFileV1.cs create mode 100644 src/Greenshot.Editor/FileFormat/V1/GreenshotTemplateV1.cs create mode 100644 src/Greenshot.Editor/FileFormat/V1/Legacy/ConvertLegacyToDto.cs create mode 100644 src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyClasses.cs create mode 100644 src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyFileHelper.cs create mode 100644 src/Greenshot.Editor/FileFormat/V1/Legacy/LegacySerializationBinder.cs create mode 100644 src/Greenshot.Editor/FileFormat/V2/GreenshotFileV2.cs create mode 100644 src/Greenshot.Editor/FileFormat/V2/GreenshotTemplateV2.cs create mode 100644 src/Greenshot.Editor/FileFormat/readme.md create mode 100644 src/Greenshot.Editor/FileFormatHandlers/GreenshotTemplateFormatHandler.cs delete mode 100644 src/Greenshot.Editor/Helpers/BinaryFormatterHelper.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertApplicationToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertArrowContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertCursorContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertDrawableContainerListToDtoTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertEllipseContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFieldToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFreehandContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertHighlightContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertIconContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertImageContainerToDtoTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertLineContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertMetafileContainerToDtoTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertObfuscateContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertRectangleContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSpeechbubbleContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertStepLabelContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSvgContainerToDtoTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertTextContainerToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertValueToDtoTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToApplicationFileTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToArrowContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToCursorContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToDrawableContainerListTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToEllipseContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFieldTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFreehandContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToHighlightContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToIconContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToImageContainerTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToLineContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToMetafileContainerTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToObfuscateContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToRectangleContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSpeechbubbleContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToStepLabelContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSvgContainerTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToTextContainerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToValueTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ApplicationFileSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ArrowContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/CursorContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/DrawableContainerListSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/EllipseContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldValueSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FreehandContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/HighlightContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/IconContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ImageContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/LineContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/MetafileContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ObfuscateContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/RectangleContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SpeechbubbleContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/StepLabelContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SurfaceSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SvgContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/TextContainerSerializationTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacyGreenshotFileTest.cs create mode 100644 src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacySerializationBinderTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormatHandlers/GreenshotTemplateFormatHandlerTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormatHandlers/LoadGreenshotSurfaceTests.cs create mode 100644 src/Greenshot.Test/Editor/FileFormatHandlers/LoadTemplateFromFileTest.cs create mode 100644 src/Greenshot.Test/Fixtures/Base/SimpleServiceProviderFixture.cs create mode 100644 src/Greenshot.Test/Fixtures/Collections/SimplServiceProviderCollection.cs create mode 100644 src/Greenshot.Test/Greenshot.Test.csproj create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ArrowContainer_lt_100_200_wh_400_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/EllipseContainer_lt_200_200_wh_400_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/FreehandContainer_with_4_points.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/IconContainer_lt_400_200_wh_32_32.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ImageContainer_lt_300_200_wh_100_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/LineContainer_lt_200_200_w_400.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/RectangleContainer_lt_100_200_wh_150_80.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/SpeechbubbleContainer_lt_200_200_wh_150_80.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/StepLabelContainer_lt_200_200_lt_500_300.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/Surface_with_11_different_DrawableContainer.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/TextContainer_lt_300_200_wh_300_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/ArrowContainer_lt_100_200_wh_400_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/EllipseContainer_lt_200_200_wh_400_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/FreehandContainer_with_4_points.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/IconContainer_lt_400_200_wh_32_32.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/ImageContainer_lt_300_200_wh_100_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/LineContainer_lt_200_200_w_400.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/MetafileContainer_lt_300_200_wh_120_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/RectangleContainer_lt_100_200_wh_150_80.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/SpeechbubbleContainer_lt_200_200_wh_150_80.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/StepLabelContainer_lt_200_200_lt_500_300.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/Surface_with_14_different_DrawableContainer.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/SvgContainer_lt_300_200_wh_120_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/TextContainer_lt_300_200_wh_300_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/ArrowContainer_lt_100_200_wh_400_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/EllipseContainer_lt_200_200_wh_400_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/FreehandContainer_with_4_points.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/IconContainer_lt_400_200_wh_32_32.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/ImageContainer_lt_300_200_wh_100_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/LineContainer_lt_200_200_w_400.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/MetafileContainer_lt_300_200_wh_120_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/RectangleContainer_lt_100_200_wh_150_80.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/SpeechbubbleContainer_lt_200_200_wh_150_80.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/StepLabelContainer_lt_200_200_lt_500_300.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/Surface_with_14_different_DrawableContainer.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/SvgContainer_lt_300_200_wh_120_100.gst create mode 100644 src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/TextContainer_lt_300_200_wh_300_100.gst create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ArrowContainer_lt_100_200_wh_400_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/EllipseContainer_lt_200_200_wh_400_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/FreehandContainer_with_4_points.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/IconContainer_lt_400_200_wh_32_32.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ImageContainer_lt_300_200_wh_100_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/LineContainer_lt_200_200_w_400.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/RectangleContainer_lt_100_200_wh_150_80.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/StepLabelContainer_lt_200_200_lt_500_300.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/Surface_with_11_different_DrawableContainer.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/Surface_with_Image_800x400.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/TextContainer_lt_300_200_wh_300_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/ArrowContainer_lt_100_200_wh_400_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/EllipseContainer_lt_200_200_wh_400_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/FreehandContainer_with_4_points.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/IconContainer_lt_400_200_wh_32_32.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/ImageContainer_lt_300_200_wh_100_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/LineContainer_lt_200_200_w_400.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/MetafileContainer_lt_300_200_wh_120_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/RectangleContainer_lt_100_200_wh_150_80.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/StepLabelContainer_lt_200_200_lt_500_300.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/Surface_with_14_different_DrawableContainer.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/Surface_with_Image_800x400.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/SvgContainer_lt_300_200_wh_120_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/TextContainer_lt_300_200_wh_300_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ArrowContainer_lt_100_200_wh_400_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/EllipseContainer_lt_200_200_wh_400_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/FreehandContainer_with_4_points.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/IconContainer_lt_400_200_wh_32_32.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ImageContainer_lt_300_200_wh_100_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/LineContainer_lt_200_200_w_400.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/MetafileContainer_lt_300_200_wh_120_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/RectangleContainer_lt_100_200_wh_150_80.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/StepLabelContainer_lt_200_200_lt_500_300.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/Surface_with_14_different_DrawableContainer.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/Surface_with_Image_800x400.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/SvgContainer_lt_300_200_wh_120_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/TextContainer_lt_300_200_wh_300_100.greenshot create mode 100644 src/Greenshot.Test/TestData/Images/Greenshot.ico create mode 100644 src/Greenshot.Test/TestData/Images/Logo_G_with_Border.emf create mode 100644 src/Greenshot.Test/TestData/Images/Logo_G_with_Border.jpg create mode 100644 src/Greenshot.Test/TestData/Images/Logo_G_with_Border.png create mode 100644 src/Greenshot.Test/TestData/Images/Logo_G_with_Border.svg create mode 100644 src/Greenshot.Test/TestData/Images/Logo_G_with_Border.wmf create mode 100644 src/Greenshot.Test/TestData/Images/Logo_G_with_Border_256x256.png create mode 100644 src/Greenshot.Test/TestData/Images/Screenshot_background_800x400.png create mode 100644 src/Greenshot.Test/TestData/Images/Screenshot_background_800x400_template.svg diff --git a/src/Greenshot.Base/Core/ImageIO.cs b/src/Greenshot.Base/Core/ImageIO.cs index 9d6bbf1cd..fc918cdc1 100644 --- a/src/Greenshot.Base/Core/ImageIO.cs +++ b/src/Greenshot.Base/Core/ImageIO.cs @@ -264,35 +264,6 @@ namespace Greenshot.Base.Core } } - /// - /// Load a Greenshot surface - /// - /// - /// - /// - public static ISurface LoadGreenshotSurface(string fullPath, ISurface returnSurface) - { - if (string.IsNullOrEmpty(fullPath)) - { - return null; - } - - Log.InfoFormat("Loading image from file {0}", fullPath); - // Fixed lock problem Bug #3431881 - using (Stream surfaceFileStream = File.OpenRead(fullPath)) - { - returnSurface = LoadGreenshotSurface(surfaceFileStream, returnSurface); - } - - if (returnSurface != null) - { - Log.InfoFormat("Information about file {0}: {1}x{2}-{3} Resolution {4}x{5}", fullPath, returnSurface.Image.Width, returnSurface.Image.Height, - returnSurface.Image.PixelFormat, returnSurface.Image.HorizontalResolution, returnSurface.Image.VerticalResolution); - } - - return returnSurface; - } - /// /// Saves image to specific path with specified quality /// @@ -602,54 +573,5 @@ namespace Greenshot.Base.Core return null; } - /// - /// Load a Greenshot surface from a stream - /// - /// Stream - /// - /// ISurface - public static ISurface LoadGreenshotSurface(Stream surfaceFileStream, ISurface returnSurface) - { - Image fileImage; - // Fixed problem that the bitmap stream is disposed... by Cloning the image - // This also ensures the bitmap is correctly created - - // We create a copy of the bitmap, so everything else can be disposed - surfaceFileStream.Position = 0; - using (Image tmpImage = Image.FromStream(surfaceFileStream, true, true)) - { - Log.DebugFormat("Loaded .greenshot file with Size {0}x{1} and PixelFormat {2}", tmpImage.Width, tmpImage.Height, tmpImage.PixelFormat); - fileImage = ImageHelper.Clone(tmpImage); - } - - // Start at -14 read "GreenshotXX.YY" (XX=Major, YY=Minor) - const int markerSize = 14; - surfaceFileStream.Seek(-markerSize, SeekOrigin.End); - using (StreamReader streamReader = new StreamReader(surfaceFileStream)) - { - var greenshotMarker = streamReader.ReadToEnd(); - if (!greenshotMarker.StartsWith("Greenshot")) - { - throw new ArgumentException("Stream is not a Greenshot file!"); - } - - Log.InfoFormat("Greenshot file format: {0}", greenshotMarker); - const int filesizeLocation = 8 + markerSize; - surfaceFileStream.Seek(-filesizeLocation, SeekOrigin.End); - using BinaryReader reader = new BinaryReader(surfaceFileStream); - long bytesWritten = reader.ReadInt64(); - surfaceFileStream.Seek(-(bytesWritten + filesizeLocation), SeekOrigin.End); - returnSurface.LoadElementsFromStream(surfaceFileStream); - } - - if (fileImage != null) - { - returnSurface.Image = fileImage; - Log.InfoFormat("Information about .greenshot file: {0}x{1}-{2} Resolution {3}x{4}", fileImage.Width, fileImage.Height, fileImage.PixelFormat, - fileImage.HorizontalResolution, fileImage.VerticalResolution); - } - - return returnSurface; - } } } \ No newline at end of file diff --git a/src/Greenshot.Base/Interfaces/IFileFormatHandler.cs b/src/Greenshot.Base/Interfaces/IFileFormatHandler.cs index bd5558857..c2fbc05e9 100644 --- a/src/Greenshot.Base/Interfaces/IFileFormatHandler.cs +++ b/src/Greenshot.Base/Interfaces/IFileFormatHandler.cs @@ -60,7 +60,7 @@ namespace Greenshot.Base.Interfaces /// Try to save the specified bitmap to the stream in the format belonging to the extension /// /// Bitmap - /// Stream + /// Stream for destination /// extension /// ISurface with the elements for those file types which can store a surface (.greenshot) /// SurfaceOutputSettings @@ -68,21 +68,22 @@ namespace Greenshot.Base.Interfaces public bool TrySaveToStream(Bitmap bitmap, Stream destination, string extension, ISurface surface = null, SurfaceOutputSettings surfaceOutputSettings = null); /// - /// + /// Try to load an Image from the stream /// /// /// /// - /// bool true if it was successful + /// if the image was successfully loaded into a ; otherwise, . public bool TryLoadFromStream(Stream stream, string extension, out Bitmap bitmap); /// - /// Try to load a drawable container from the stream + /// Try to load drawable container from the stream /// /// Stream /// string - /// ISurface - /// IEnumerable{IDrawableContainer} + /// Parent to initialize the container + /// All that could be loaded from the stream public IEnumerable LoadDrawablesFromStream(Stream stream, string extension, ISurface parentSurface = null); } } diff --git a/src/Greenshot.Base/Interfaces/ISurface.cs b/src/Greenshot.Base/Interfaces/ISurface.cs index 4b39fb9b8..f0648c172 100644 --- a/src/Greenshot.Base/Interfaces/ISurface.cs +++ b/src/Greenshot.Base/Interfaces/ISurface.cs @@ -99,8 +99,13 @@ namespace Greenshot.Base.Interfaces IImageContainer AddImageContainer(string filename, int x, int y); ICursorContainer AddCursorContainer(string filename, int x, int y); IIconContainer AddIconContainer(string filename, int x, int y); - long SaveElementsToStream(Stream stream); - void LoadElementsFromStream(Stream stream); + + /// + /// Adds all container to the Surface. + /// Ensure that all new container are correctly integrated into Surface + /// + /// + void LoadElements(IDrawableContainerList containerList); /// /// Provides the selected elements diff --git a/src/Greenshot.Editor/Drawing/ArrowContainer.cs b/src/Greenshot.Editor/Drawing/ArrowContainer.cs index 91c76366b..dede03f14 100644 --- a/src/Greenshot.Editor/Drawing/ArrowContainer.cs +++ b/src/Greenshot.Editor/Drawing/ArrowContainer.cs @@ -33,7 +33,6 @@ namespace Greenshot.Editor.Drawing /// /// Description of LineContainer. /// - [Serializable()] public class ArrowContainer : LineContainer { public enum ArrowHeadCombination @@ -56,7 +55,6 @@ namespace Greenshot.Editor.Drawing protected override void InitializeFields() { AddField(GetType(), FieldType.LINE_THICKNESS, 2); - AddField(GetType(), FieldType.ARROWHEADS, 2); AddField(GetType(), FieldType.LINE_COLOR, Color.Red); AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent); AddField(GetType(), FieldType.SHADOW, true); diff --git a/src/Greenshot.Editor/Drawing/CropContainer.cs b/src/Greenshot.Editor/Drawing/CropContainer.cs index eb2f7179e..22ed9d432 100644 --- a/src/Greenshot.Editor/Drawing/CropContainer.cs +++ b/src/Greenshot.Editor/Drawing/CropContainer.cs @@ -21,7 +21,6 @@ using System.Drawing; -using System.Runtime.Serialization; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Interfaces; @@ -65,12 +64,6 @@ namespace Greenshot.Editor.Drawing Init(); } - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - private void Init() { switch (GetFieldValue(FieldType.CROPMODE)) diff --git a/src/Greenshot.Editor/Drawing/CursorContainer.cs b/src/Greenshot.Editor/Drawing/CursorContainer.cs index e8914eb75..b3fdaaf3a 100644 --- a/src/Greenshot.Editor/Drawing/CursorContainer.cs +++ b/src/Greenshot.Editor/Drawing/CursorContainer.cs @@ -19,11 +19,9 @@ * along with this program. If not, see . */ -using System; using System.Drawing; using System.Drawing.Drawing2D; using System.IO; -using System.Runtime.Serialization; using System.Windows.Forms; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Interfaces; @@ -34,22 +32,21 @@ namespace Greenshot.Editor.Drawing { /// /// Description of CursorContainer. + /// This Container is not in use. For a capture with mouse cursor the IconContainer is used cctor Surface(ICapture capture) in . /// - [Serializable] public class CursorContainer : DrawableContainer, ICursorContainer { private static readonly ILog LOG = LogManager.GetLogger(typeof(CursorContainer)); protected Cursor cursor; - public CursorContainer(ISurface parent) : base(parent) + public CursorContainer(ISurface parent, string filename) : this(parent) { - Init(); + Load(filename); } - protected override void OnDeserialized(StreamingContext streamingContext) + public CursorContainer(ISurface parent) : base(parent) { - base.OnDeserialized(streamingContext); Init(); } @@ -58,11 +55,6 @@ namespace Greenshot.Editor.Drawing CreateDefaultAdorners(); } - public CursorContainer(ISurface parent, string filename) : this(parent) - { - Load(filename); - } - public Cursor Cursor { set diff --git a/src/Greenshot.Editor/Drawing/DrawableContainer.cs b/src/Greenshot.Editor/Drawing/DrawableContainer.cs index cac23dc3a..374ba3965 100644 --- a/src/Greenshot.Editor/Drawing/DrawableContainer.cs +++ b/src/Greenshot.Editor/Drawing/DrawableContainer.cs @@ -25,7 +25,6 @@ using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; -using System.Runtime.Serialization; using System.Windows.Forms; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; @@ -49,7 +48,6 @@ namespace Greenshot.Editor.Drawing /// Subclasses should fulfill INotifyPropertyChanged contract, i.e. call /// OnPropertyChanged whenever a public property has been changed. /// - [Serializable] public abstract class DrawableContainer : AbstractFieldHolderWithChildren, IDrawableContainer { private static readonly ILog LOG = LogManager.GetLogger(typeof(DrawableContainer)); @@ -57,18 +55,18 @@ namespace Greenshot.Editor.Drawing private const int M11 = 0; private const int M22 = 3; - [OnDeserialized] - private void OnDeserializedInit(StreamingContext context) + public DrawableContainer(ISurface parent) { - _adorners = new List(); - OnDeserialized(context); + InitializeFields(); + _parent = parent; } /// - /// Override to implement your own deserialization logic, like initializing properties which are not serialized + /// Performs post-deserialization initialization for the object. + /// This method is called after the object has been deserialized to restore or initialize + /// state that depends on deserialization. /// - /// - protected virtual void OnDeserialized(StreamingContext streamingContext) + public virtual void OnDeserialized() { } @@ -104,7 +102,7 @@ namespace Greenshot.Editor.Drawing Dispose(false); } - [NonSerialized] private PropertyChangedEventHandler _propertyChanged; + private PropertyChangedEventHandler _propertyChanged; public event PropertyChangedEventHandler PropertyChanged { @@ -129,7 +127,7 @@ namespace Greenshot.Editor.Drawing } } - [NonSerialized] internal ISurface _parent; + internal ISurface _parent; public ISurface Parent { @@ -142,10 +140,10 @@ namespace Greenshot.Editor.Drawing get => (Surface)_parent; } - [NonSerialized] private TargetAdorner _targetAdorner; + private TargetAdorner _targetAdorner; public TargetAdorner TargetAdorner => _targetAdorner; - [NonSerialized] private bool _selected; + private bool _selected; public bool Selected { @@ -157,7 +155,7 @@ namespace Greenshot.Editor.Drawing } } - [NonSerialized] private EditStatus _status = EditStatus.UNDRAWN; + private EditStatus _status = EditStatus.UNDRAWN; public EditStatus Status { @@ -253,15 +251,13 @@ namespace Greenshot.Editor.Drawing /// /// List of available Adorners /// - [NonSerialized] private IList _adorners = new List(); + private IList _adorners = new List(); public IList Adorners => _adorners; - [NonSerialized] // will store current bounds of this DrawableContainer before starting a resize protected NativeRect _boundsBeforeResize = NativeRect.Empty; - [NonSerialized] // "workbench" rectangle - used for calculating bounds during resizing (to be applied to this DrawableContainer afterwards) protected NativeRectFloat _boundsAfterResize = NativeRectFloat.Empty; @@ -285,12 +281,6 @@ namespace Greenshot.Editor.Drawing Height = Round(newBounds.Height); } - public DrawableContainer(ISurface parent) - { - InitializeFields(); - _parent = parent; - } - public void Add(IFilter filter) { AddChild(filter); diff --git a/src/Greenshot.Editor/Drawing/DrawableContainerList.cs b/src/Greenshot.Editor/Drawing/DrawableContainerList.cs index ef30c037f..4d894e17b 100644 --- a/src/Greenshot.Editor/Drawing/DrawableContainerList.cs +++ b/src/Greenshot.Editor/Drawing/DrawableContainerList.cs @@ -42,7 +42,6 @@ namespace Greenshot.Editor.Drawing /// /// Dispatches most of a DrawableContainer's public properties and methods to a list of DrawableContainers. /// - [Serializable] public class DrawableContainerList : List, IDrawableContainerList { private static readonly ComponentResourceManager EditorFormResources = new(typeof(ImageEditorForm)); diff --git a/src/Greenshot.Editor/Drawing/EllipseContainer.cs b/src/Greenshot.Editor/Drawing/EllipseContainer.cs index c421515d9..0925640bc 100644 --- a/src/Greenshot.Editor/Drawing/EllipseContainer.cs +++ b/src/Greenshot.Editor/Drawing/EllipseContainer.cs @@ -22,7 +22,6 @@ using System; using System.Drawing; using System.Drawing.Drawing2D; -using System.Runtime.Serialization; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Interfaces; @@ -35,7 +34,6 @@ namespace Greenshot.Editor.Drawing /// /// Description of EllipseContainer. /// - [Serializable()] public class EllipseContainer : DrawableContainer { public EllipseContainer(ISurface parent) : base(parent) @@ -43,12 +41,6 @@ namespace Greenshot.Editor.Drawing Init(); } - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - private void Init() { CreateDefaultAdorners(); diff --git a/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolder.cs b/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolder.cs index a3f3c92da..ab40bd425 100644 --- a/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolder.cs +++ b/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolder.cs @@ -23,7 +23,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; -using System.Runtime.Serialization; +using System.Linq; using Greenshot.Base.IniFile; using Greenshot.Base.Interfaces.Drawing; using Greenshot.Editor.Configuration; @@ -34,40 +34,28 @@ namespace Greenshot.Editor.Drawing.Fields /// /// Basic IFieldHolder implementation, providing access to a set of fields /// - [Serializable] public abstract class AbstractFieldHolder : IFieldHolder { private static readonly ILog LOG = LogManager.GetLogger(typeof(AbstractFieldHolder)); private static readonly EditorConfiguration EditorConfig = IniConfig.GetIniSection(); - [NonSerialized] private readonly IDictionary _handlers = new Dictionary(); + private readonly IDictionary _handlers = new Dictionary(); /// /// called when a field's value has changed /// - [NonSerialized] private FieldChangedEventHandler _fieldChanged; + private FieldChangedEventHandler _fieldChanged; + /// public event FieldChangedEventHandler FieldChanged { add { _fieldChanged += value; } remove { _fieldChanged -= value; } } - // we keep two Collections of our fields, dictionary for quick access, list for serialization - // this allows us to use default serialization - [NonSerialized] private IDictionary _fieldsByType = new Dictionary(); - private readonly IList fields = new List(); - - [OnDeserialized] - private void OnDeserialized(StreamingContext context) - { - _fieldsByType = new Dictionary(); - // listen to changing properties - foreach (var field in fields) - { - field.PropertyChanged += delegate { _fieldChanged?.Invoke(this, new FieldChangedEventArgs(field)); }; - _fieldsByType[field.FieldType] = field; - } - } + /// + /// The dictionary represents the base collection of fields. It allows quick access by . + /// + private readonly IDictionary _fieldsByType = new Dictionary(); public void AddField(Type requestingType, IFieldType fieldType, object fieldValue) { @@ -76,7 +64,6 @@ namespace Greenshot.Editor.Drawing.Fields public virtual void AddField(IField field) { - fields.Add(field); if (_fieldsByType == null) { return; @@ -98,18 +85,19 @@ namespace Greenshot.Editor.Drawing.Fields public void RemoveField(IField field) { - fields.Remove(field); _fieldsByType.Remove(field.FieldType); field.PropertyChanged -= _handlers[field]; _handlers.Remove(field); } + /// + /// Retrieves a list of all fields currently stored in the internal dictionary. + /// public IList GetFields() { - return fields; + return _fieldsByType.Select(x => x.Value).ToList(); } - public IField GetField(IFieldType fieldType) { try diff --git a/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolderWithChildren.cs b/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolderWithChildren.cs index 968edef46..cc3a6ad9d 100644 --- a/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolderWithChildren.cs +++ b/src/Greenshot.Editor/Drawing/Fields/AbstractFieldHolderWithChildren.cs @@ -21,7 +21,6 @@ using System; using System.Collections.Generic; -using System.Runtime.Serialization; using Greenshot.Base.Interfaces.Drawing; namespace Greenshot.Editor.Drawing.Fields @@ -31,12 +30,11 @@ namespace Greenshot.Editor.Drawing.Fields /// but has a List of IFieldHolder for children. /// Field values are passed to and from children as well. /// - [Serializable] public abstract class AbstractFieldHolderWithChildren : AbstractFieldHolder { - [NonSerialized] private readonly FieldChangedEventHandler _fieldChangedEventHandler; + private readonly FieldChangedEventHandler _fieldChangedEventHandler; - [NonSerialized] private EventHandler childrenChanged; + private EventHandler childrenChanged; public event EventHandler ChildrenChanged { @@ -46,23 +44,11 @@ namespace Greenshot.Editor.Drawing.Fields public IList Children = new List(); - public AbstractFieldHolderWithChildren() + protected AbstractFieldHolderWithChildren() { _fieldChangedEventHandler = OnFieldChanged; } - [OnDeserialized()] - private void OnDeserialized(StreamingContext context) - { - // listen to changing properties - foreach (IFieldHolder fieldHolder in Children) - { - fieldHolder.FieldChanged += _fieldChangedEventHandler; - } - - childrenChanged?.Invoke(this, EventArgs.Empty); - } - public void AddChild(IFieldHolder fieldHolder) { Children.Add(fieldHolder); diff --git a/src/Greenshot.Editor/Drawing/Fields/Field.cs b/src/Greenshot.Editor/Drawing/Fields/Field.cs index c3870c54c..cea2bea3e 100644 --- a/src/Greenshot.Editor/Drawing/Fields/Field.cs +++ b/src/Greenshot.Editor/Drawing/Fields/Field.cs @@ -29,10 +29,9 @@ namespace Greenshot.Editor.Drawing.Fields /// Represents a single field of a drawable element, i.e. /// line thickness of a rectangle. /// - [Serializable] public class Field : IField { - [field: NonSerialized] public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler PropertyChanged; private object _myValue; diff --git a/src/Greenshot.Editor/Drawing/Fields/FieldAggregator.cs b/src/Greenshot.Editor/Drawing/Fields/FieldAggregator.cs index 96a19b7b9..690ed6bec 100644 --- a/src/Greenshot.Editor/Drawing/Fields/FieldAggregator.cs +++ b/src/Greenshot.Editor/Drawing/Fields/FieldAggregator.cs @@ -19,7 +19,6 @@ * along with this program. If not, see . */ -using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -41,7 +40,6 @@ namespace Greenshot.Editor.Drawing.Fields /// Properties that do not apply for ALL selected elements are null (or 0 respectively) /// If the property values of the selected elements differ, the value of the last bound element wins. /// - [Serializable] public sealed class FieldAggregator : AbstractFieldHolder, IFieldAggregator { private readonly IDrawableContainerList _boundContainers; diff --git a/src/Greenshot.Editor/Drawing/Fields/FieldType.cs b/src/Greenshot.Editor/Drawing/Fields/FieldType.cs index eead7452a..07996e700 100644 --- a/src/Greenshot.Editor/Drawing/Fields/FieldType.cs +++ b/src/Greenshot.Editor/Drawing/Fields/FieldType.cs @@ -19,7 +19,6 @@ * along with this program. If not, see . */ -using System; using Greenshot.Base.Interfaces.Drawing; namespace Greenshot.Editor.Drawing.Fields @@ -28,7 +27,6 @@ namespace Greenshot.Editor.Drawing.Fields /// Defines all FieldTypes + their default value. /// (The additional value is why this is not an enum) /// - [Serializable] public class FieldType : IFieldType { public static readonly IFieldType ARROWHEADS = new FieldType(nameof(ARROWHEADS)); diff --git a/src/Greenshot.Editor/Drawing/FilterContainer.cs b/src/Greenshot.Editor/Drawing/FilterContainer.cs index 4b846fe66..3d3ff1c05 100644 --- a/src/Greenshot.Editor/Drawing/FilterContainer.cs +++ b/src/Greenshot.Editor/Drawing/FilterContainer.cs @@ -22,7 +22,6 @@ using System; using System.Drawing; using System.Drawing.Drawing2D; -using System.Runtime.Serialization; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Interfaces; @@ -35,7 +34,6 @@ namespace Greenshot.Editor.Drawing /// /// empty container for filter-only elements /// - [Serializable] public abstract class FilterContainer : DrawableContainer { public enum PreparedFilterMode @@ -56,18 +54,6 @@ namespace Greenshot.Editor.Drawing public FilterContainer(ISurface parent) : base(parent) { - Init(); - } - - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - - private void Init() - { - CreateDefaultAdorners(); } protected override void InitializeFields() diff --git a/src/Greenshot.Editor/Drawing/Filters/AbstractFilter.cs b/src/Greenshot.Editor/Drawing/Filters/AbstractFilter.cs index c972ed77d..d391e9e67 100644 --- a/src/Greenshot.Editor/Drawing/Filters/AbstractFilter.cs +++ b/src/Greenshot.Editor/Drawing/Filters/AbstractFilter.cs @@ -33,10 +33,9 @@ namespace Greenshot.Editor.Drawing.Filters /// Subclasses should fulfill INotifyPropertyChanged contract, i.e. call /// OnPropertyChanged whenever a public property has been changed. /// - [Serializable] public abstract class AbstractFilter : AbstractFieldHolder, IFilter { - [NonSerialized] private PropertyChangedEventHandler propertyChanged; + private PropertyChangedEventHandler propertyChanged; public event PropertyChangedEventHandler PropertyChanged { diff --git a/src/Greenshot.Editor/Drawing/Filters/BlurFilter.cs b/src/Greenshot.Editor/Drawing/Filters/BlurFilter.cs index 010cfd2cb..649d86979 100644 --- a/src/Greenshot.Editor/Drawing/Filters/BlurFilter.cs +++ b/src/Greenshot.Editor/Drawing/Filters/BlurFilter.cs @@ -19,7 +19,6 @@ * along with this program. If not, see . */ -using System; using System.Drawing; using System.Drawing.Drawing2D; using Dapplo.Windows.Common.Structs; @@ -30,7 +29,6 @@ using Greenshot.Editor.Drawing.Fields; namespace Greenshot.Editor.Drawing.Filters { - [Serializable] public class BlurFilter : AbstractFilter { public double previewQuality; diff --git a/src/Greenshot.Editor/Drawing/Filters/MagnifierFilter.cs b/src/Greenshot.Editor/Drawing/Filters/MagnifierFilter.cs index 70d829a2e..119e86c9c 100644 --- a/src/Greenshot.Editor/Drawing/Filters/MagnifierFilter.cs +++ b/src/Greenshot.Editor/Drawing/Filters/MagnifierFilter.cs @@ -32,7 +32,6 @@ namespace Greenshot.Editor.Drawing.Filters /// /// Magnify an area /// - [Serializable] public class MagnifierFilter : AbstractFilter { public MagnifierFilter(DrawableContainer parent) : base(parent) diff --git a/src/Greenshot.Editor/Drawing/FreehandContainer.cs b/src/Greenshot.Editor/Drawing/FreehandContainer.cs index 9c66e1a8e..49db5d548 100644 --- a/src/Greenshot.Editor/Drawing/FreehandContainer.cs +++ b/src/Greenshot.Editor/Drawing/FreehandContainer.cs @@ -23,7 +23,6 @@ using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; -using System.Runtime.Serialization; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Drawing; @@ -35,7 +34,6 @@ namespace Greenshot.Editor.Drawing /// /// Description of PathContainer. /// - [Serializable] public class FreehandContainer : DrawableContainer { private static readonly float[] PointOffset = @@ -43,7 +41,6 @@ namespace Greenshot.Editor.Drawing 0.5f, 0.25f, 0.75f }; - [NonSerialized] private GraphicsPath freehandPath = new GraphicsPath(); private Rectangle myBounds = NativeRect.Empty; @@ -56,12 +53,25 @@ namespace Greenshot.Editor.Drawing /// public FreehandContainer(ISurface parent) : base(parent) { - Width = parent.Image.Width; - Height = parent.Image.Height; + if (parent?.Image is not null) + { + Width = parent.Image.Width; + Height = parent.Image.Height; + } Top = 0; Left = 0; } + /// + /// + /// + /// And recalculates path from capturePoints + public override void OnDeserialized() + { + base.OnDeserialized(); + RecalculatePath(); + } + protected override void InitializeFields() { AddField(GetType(), FieldType.LINE_THICKNESS, 3); @@ -78,11 +88,6 @@ namespace Greenshot.Editor.Drawing RecalculatePath(); } - protected override void OnDeserialized(StreamingContext context) - { - RecalculatePath(); - } - /// /// This Dispose is called from the Dispose and the Destructor. /// @@ -98,6 +103,12 @@ namespace Greenshot.Editor.Drawing freehandPath = null; } + public List CapturePoints + { + get => capturePoints; + set => capturePoints = value; + } + /// /// Called from Surface (the parent) when the drawing begins (mouse-down) /// diff --git a/src/Greenshot.Editor/Drawing/HighlightContainer.cs b/src/Greenshot.Editor/Drawing/HighlightContainer.cs index 58cf792ba..d9193fcc3 100644 --- a/src/Greenshot.Editor/Drawing/HighlightContainer.cs +++ b/src/Greenshot.Editor/Drawing/HighlightContainer.cs @@ -19,8 +19,6 @@ * along with this program. If not, see . */ -using System; -using System.Runtime.Serialization; using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Drawing; using Greenshot.Editor.Drawing.Fields; @@ -31,7 +29,6 @@ namespace Greenshot.Editor.Drawing /// /// Description of ObfuscateContainer. /// - [Serializable] public class HighlightContainer : FilterContainer { public HighlightContainer(ISurface parent) : base(parent) @@ -48,11 +45,6 @@ namespace Greenshot.Editor.Drawing AddField(GetType(), FieldType.PREPARED_FILTER_HIGHLIGHT, PreparedFilter.TEXT_HIGHTLIGHT); } - protected override void OnDeserialized(StreamingContext context) - { - Init(); - } - private void Init() { FieldChanged += HighlightContainer_OnFieldChanged; diff --git a/src/Greenshot.Editor/Drawing/IconContainer.cs b/src/Greenshot.Editor/Drawing/IconContainer.cs index 185c17cd2..15ecaa640 100644 --- a/src/Greenshot.Editor/Drawing/IconContainer.cs +++ b/src/Greenshot.Editor/Drawing/IconContainer.cs @@ -19,11 +19,9 @@ * along with this program. If not, see . */ -using System; using System.Drawing; using System.Drawing.Drawing2D; using System.IO; -using System.Runtime.Serialization; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Drawing; @@ -34,7 +32,6 @@ namespace Greenshot.Editor.Drawing /// /// Description of IconContainer. /// - [Serializable] public class IconContainer : DrawableContainer, IIconContainer { private static readonly ILog Log = LogManager.GetLogger(typeof(IconContainer)); @@ -46,12 +43,6 @@ namespace Greenshot.Editor.Drawing Init(); } - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - private void Init() { CreateDefaultAdorners(); diff --git a/src/Greenshot.Editor/Drawing/ImageContainer.cs b/src/Greenshot.Editor/Drawing/ImageContainer.cs index 21f8d2fa6..43a07f9ce 100644 --- a/src/Greenshot.Editor/Drawing/ImageContainer.cs +++ b/src/Greenshot.Editor/Drawing/ImageContainer.cs @@ -19,11 +19,9 @@ * along with this program. If not, see . */ -using System; using System.Drawing; using System.Drawing.Drawing2D; using System.IO; -using System.Runtime.Serialization; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Core; using Greenshot.Base.Effects; @@ -37,7 +35,6 @@ namespace Greenshot.Editor.Drawing /// /// Description of BitmapContainer. /// - [Serializable] public class ImageContainer : DrawableContainer, IImageContainer { private static readonly ILog Log = LogManager.GetLogger(typeof(ImageContainer)); @@ -48,13 +45,13 @@ namespace Greenshot.Editor.Drawing /// This is the shadow version of the bitmap, rendered once to save performance /// Do not serialize, as the shadow is recreated from the original bitmap if it's not available /// - [NonSerialized] private Image _shadowBitmap; + private Image _shadowBitmap; /// /// This is the offset for the shadow version of the bitmap /// Do not serialize, as the offset is recreated /// - [NonSerialized] private NativePoint _shadowOffset = new NativePoint(-1, -1); + private NativePoint _shadowOffset = new NativePoint(-1, -1); public ImageContainer(ISurface parent, string filename) : this(parent) { @@ -67,12 +64,6 @@ namespace Greenshot.Editor.Drawing Init(); } - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - private void Init() { CreateDefaultAdorners(); diff --git a/src/Greenshot.Editor/Drawing/LineContainer.cs b/src/Greenshot.Editor/Drawing/LineContainer.cs index f48dddec7..ed7f1681c 100644 --- a/src/Greenshot.Editor/Drawing/LineContainer.cs +++ b/src/Greenshot.Editor/Drawing/LineContainer.cs @@ -19,10 +19,8 @@ * along with this program. If not, see . */ -using System; using System.Drawing; using System.Drawing.Drawing2D; -using System.Runtime.Serialization; using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Drawing; using Greenshot.Editor.Drawing.Adorners; @@ -34,7 +32,6 @@ namespace Greenshot.Editor.Drawing /// /// Description of LineContainer. /// - [Serializable()] public class LineContainer : DrawableContainer { public LineContainer(ISurface parent) : base(parent) @@ -49,11 +46,6 @@ namespace Greenshot.Editor.Drawing AddField(GetType(), FieldType.SHADOW, true); } - protected override void OnDeserialized(StreamingContext context) - { - Init(); - } - protected void Init() { Adorners.Add(new MoveAdorner(this, Positions.TopLeft)); diff --git a/src/Greenshot.Editor/Drawing/MetafileContainer.cs b/src/Greenshot.Editor/Drawing/MetafileContainer.cs index 3225c4700..0e115aac6 100644 --- a/src/Greenshot.Editor/Drawing/MetafileContainer.cs +++ b/src/Greenshot.Editor/Drawing/MetafileContainer.cs @@ -23,6 +23,7 @@ using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; +using System.IO; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Core; using Greenshot.Base.Interfaces; @@ -32,17 +33,44 @@ namespace Greenshot.Editor.Drawing /// /// This provides a resizable SVG container, redrawing the SVG in the size the container takes. /// - [Serializable] public class MetafileContainer : VectorGraphicsContainer { - private readonly Metafile _metafile; - - public MetafileContainer(Metafile metafile, ISurface parent) : base(parent) + private Metafile _metafile; + public Metafile Metafile { - _metafile = metafile; - Size = new NativeSize(metafile.Width/4, metafile.Height/4); + get => _metafile; } - + + /// + /// Original file content. Is used for serialization. + /// More Information: GDI+ does not support saving .wmf or .emf files, because there is no encoder. + /// So we need to save the original file content for deserialization. + /// + public MemoryStream MetafileContent = new MemoryStream(); + + public MetafileContainer(Stream stream, ISurface parent) : base(parent) + { + + stream.CopyTo(MetafileContent); + stream.Seek(0, SeekOrigin.Begin); + var image = Image.FromStream(stream, true, true); + if (image is Metafile metaFile) + { + _metafile = metaFile; + Size = new NativeSize(_metafile.Width / 4, _metafile.Height / 4); + } else if (image is Bitmap imageFile) + { + // Fallback to support old files version 1.03 + // if the stream is not a Metafile, we create a Metafile from the Bitmap. + _metafile = CreateMetafileFromImage(imageFile); + Size = new NativeSize(imageFile.Width, imageFile.Height); + } + else + { + throw new ArgumentException("Stream is not a valid Metafile"); + } + } + protected override Image ComputeBitmap() { var image = ImageHelper.CreateEmpty(Width, Height, PixelFormat.Format32bppArgb, Color.Transparent); @@ -74,6 +102,37 @@ namespace Greenshot.Editor.Drawing base.Dispose(disposing); } + /// + /// Creates a new from the specified . + /// + /// The source to be converted into a . Cannot be . + /// A object that contains the graphical content of the specified . + /// Thrown if is . + private static Metafile CreateMetafileFromImage(Image image) + { + if (image == null) throw new ArgumentNullException(nameof(image)); + + using (Bitmap tempBitmap = new Bitmap(1, 1)) + using (Graphics referenceGraphics = Graphics.FromImage(tempBitmap)) + { + IntPtr hdc = referenceGraphics.GetHdc(); + try + { + // Erstelle ein neues Metafile mit der Größe des Bildes + Metafile metafile = new Metafile(hdc, new Rectangle(0, 0, image.Width, image.Height), MetafileFrameUnit.Pixel, EmfType.EmfOnly); + using (Graphics gMetafile = Graphics.FromImage(metafile)) + { + gMetafile.DrawImage(image, 0, 0, image.Width, image.Height); + } + return metafile; + } + finally + { + referenceGraphics.ReleaseHdc(hdc); + } + } + } public override bool HasDefaultSize => true; public override NativeSize DefaultSize => new NativeSize(_metafile.Width, _metafile.Height); diff --git a/src/Greenshot.Editor/Drawing/ObfuscateContainer.cs b/src/Greenshot.Editor/Drawing/ObfuscateContainer.cs index b0c890ffc..3294a8ef3 100644 --- a/src/Greenshot.Editor/Drawing/ObfuscateContainer.cs +++ b/src/Greenshot.Editor/Drawing/ObfuscateContainer.cs @@ -19,8 +19,6 @@ * along with this program. If not, see . */ -using System; -using System.Runtime.Serialization; using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Drawing; using Greenshot.Editor.Drawing.Fields; @@ -31,7 +29,6 @@ namespace Greenshot.Editor.Drawing /// /// This is a FilterContainer for the obfuscator filters like blur and pixelate. /// - [Serializable] public class ObfuscateContainer : FilterContainer { public ObfuscateContainer(ISurface parent) : base(parent) @@ -45,11 +42,6 @@ namespace Greenshot.Editor.Drawing AddField(GetType(), FieldType.PREPARED_FILTER_OBFUSCATE, PreparedFilter.PIXELIZE); } - protected override void OnDeserialized(StreamingContext context) - { - Init(); - } - private void Init() { FieldChanged += ObfuscateContainer_OnFieldChanged; diff --git a/src/Greenshot.Editor/Drawing/RectangleContainer.cs b/src/Greenshot.Editor/Drawing/RectangleContainer.cs index 717e1a593..410a52117 100644 --- a/src/Greenshot.Editor/Drawing/RectangleContainer.cs +++ b/src/Greenshot.Editor/Drawing/RectangleContainer.cs @@ -35,7 +35,6 @@ namespace Greenshot.Editor.Drawing /// /// Represents a rectangular shape on the Surface /// - [Serializable] public class RectangleContainer : DrawableContainer { public RectangleContainer(ISurface parent) : base(parent) @@ -43,16 +42,6 @@ namespace Greenshot.Editor.Drawing Init(); } - /// - /// Do some logic to make sure all field are initiated correctly - /// - /// StreamingContext - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - private void Init() { CreateDefaultAdorners(); diff --git a/src/Greenshot.Editor/Drawing/SpeechbubbleContainer.cs b/src/Greenshot.Editor/Drawing/SpeechbubbleContainer.cs index e1f37544b..b3065a000 100644 --- a/src/Greenshot.Editor/Drawing/SpeechbubbleContainer.cs +++ b/src/Greenshot.Editor/Drawing/SpeechbubbleContainer.cs @@ -23,7 +23,6 @@ using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; -using System.Runtime.Serialization; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Interfaces; @@ -36,41 +35,36 @@ namespace Greenshot.Editor.Drawing /// /// Description of SpeechbubbleContainer. /// - [Serializable] public class SpeechbubbleContainer : TextContainer { private Point _initialGripperPoint; - // Only used for serializing the TargetGripper location + /// + /// Location of target gripper, used to draw the tail of the speech bubble. + /// private Point _storedTargetGripperLocation; - /// - /// Store the current location of the target gripper - /// - /// - [OnSerializing] - private void SetValuesOnSerializing(StreamingContext context) + /// + public Point StoredTargetGripperLocation { - if (TargetAdorner != null) - { - _storedTargetGripperLocation = TargetAdorner.Location; - } - } - - /// - /// Restore the target gripper - /// - /// StreamingContext - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - InitTargetAdorner(_storedTargetGripperLocation); + get => _storedTargetGripperLocation; + set => _storedTargetGripperLocation = value; } public SpeechbubbleContainer(ISurface parent) : base(parent) { } + /// + /// + /// + /// And initialize target adorner using the stored gripper location. + public override void OnDeserialized() + { + base.OnDeserialized(); + InitTargetAdorner(_storedTargetGripperLocation); + } + /// /// We set our own field values /// diff --git a/src/Greenshot.Editor/Drawing/StepLabelContainer.cs b/src/Greenshot.Editor/Drawing/StepLabelContainer.cs index 7edecc4f8..a085c537b 100644 --- a/src/Greenshot.Editor/Drawing/StepLabelContainer.cs +++ b/src/Greenshot.Editor/Drawing/StepLabelContainer.cs @@ -23,7 +23,6 @@ using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; -using System.Runtime.Serialization; using System.Windows.Forms; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; @@ -37,11 +36,11 @@ namespace Greenshot.Editor.Drawing /// This is an enumerated label, every single StepLabelContainer shows the number of the order it was created. /// To make sure that deleting recalculates, we check the location before every draw. /// - [Serializable] public sealed class StepLabelContainer : DrawableContainer { - [NonSerialized] private StringFormat _stringFormat = new StringFormat(); + private StringFormat _stringFormat = new StringFormat(); + // TODO: currently not in use, but implemented. Define a new Boolean-Field for this, so it can be changed in the UI private readonly bool _drawAsRectangle = false; public StepLabelContainer(ISurface parent) : base(parent) @@ -56,44 +55,23 @@ namespace Greenshot.Editor.Drawing CreateDefaultAdorners(); } - // Used to store the number of this label, so when deserializing it can be placed back to the StepLabels list in the right location - private int _number; - - // Used to store the counter start of the Surface, as the surface is NOT stored. + /// + /// Used to store the counter start of the Surface on serialization / deserialization. + /// + /// The Surface itself is not stored. All StepLabelContainer will store the same start value. It's a bit hacky. private int _counterStart = 1; - public int Number - { - get { return _number; } - set { _number = value; } - } - /// - /// Retrieve the counter before serializing + /// Used to store the number of this label on serialization / deserialization. /// - /// - [OnSerializing] - private void SetValuesOnSerializing(StreamingContext context) - { - if (InternalParent == null) return; + /// This is not the displayed number, but the internal number of the label. The displayed number is calculated based on position in container list in the Surface, while drawing . + public int Number { get;set; } - Number = InternalParent.CountStepLabels(this); - _counterStart = InternalParent.CounterStart; - } - - /// - /// Restore values that don't serialize - /// - /// - protected override void OnDeserialized(StreamingContext context) - { - Init(); - _stringFormat = new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center - }; - } + /// + public int CounterStart { + get { return _counterStart; } + set { _counterStart = value; } + } /// /// Add the StepLabel to the parent diff --git a/src/Greenshot.Editor/Drawing/Surface.cs b/src/Greenshot.Editor/Drawing/Surface.cs index 6d47a67a6..b77d13d64 100644 --- a/src/Greenshot.Editor/Drawing/Surface.cs +++ b/src/Greenshot.Editor/Drawing/Surface.cs @@ -25,10 +25,7 @@ using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; -using System.IO; using System.Linq; -using System.Runtime.Serialization.Formatters.Binary; -using System.ServiceModel.Security; using System.Windows.Forms; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; @@ -41,7 +38,8 @@ using Greenshot.Base.Interfaces.Drawing; using Greenshot.Base.Interfaces.Drawing.Adorners; using Greenshot.Editor.Configuration; using Greenshot.Editor.Drawing.Fields; -using Greenshot.Editor.Helpers; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; using Greenshot.Editor.Memento; using log4net; @@ -689,59 +687,18 @@ namespace Greenshot.Editor.Drawing _undoStack.Push(memento); } } - } + } - /// - /// This saves the elements of this surface to a stream. - /// Is used to save a template of the complete surface - /// - /// - /// - public long SaveElementsToStream(Stream streamWrite) + /// + public void LoadElements(IDrawableContainerList containerList) { - long bytesWritten = 0; - try - { - long lengtBefore = streamWrite.Length; - BinaryFormatter binaryWrite = new BinaryFormatter(); - binaryWrite.Serialize(streamWrite, _elements); - bytesWritten = streamWrite.Length - lengtBefore; - } - catch (Exception e) - { - LOG.Error("Error serializing elements to stream.", e); - } - - return bytesWritten; - } - - /// - /// This loads elements from a stream, among others this is used to load a surface. - /// - /// - public void LoadElementsFromStream(Stream streamRead) - { - try - { - BinaryFormatter binaryRead = new BinaryFormatter(); - binaryRead.Binder = new BinaryFormatterHelper(); - IDrawableContainerList loadedElements = (IDrawableContainerList) binaryRead.Deserialize(streamRead); - loadedElements.Parent = this; - // Make sure the steplabels are sorted according to their number - _stepLabels.Sort((p1, p2) => p1.Number.CompareTo(p2.Number)); - DeselectAllElements(); - AddElements(loadedElements); - SelectElements(loadedElements); - FieldAggregator.BindElements(loadedElements); - } - catch (SecurityAccessDeniedException) - { - throw; - } - catch (Exception e) - { - LOG.Error("Error serializing elements from stream.", e); - } + containerList.Parent = this; + // Make sure the steplabels are sorted according to their number + _stepLabels.Sort((p1, p2) => p1.Number.CompareTo(p2.Number)); + DeselectAllElements(); + AddElements(containerList); + SelectElements(containerList); + FieldAggregator.BindElements(containerList); } /// @@ -2082,8 +2039,11 @@ namespace Greenshot.Editor.Drawing /// public void CutSelectedElements() { - if (!HasSelectedElements) return; - ClipboardHelper.SetClipboardData(typeof(IDrawableContainerList), selectedElements); + if (!HasSelectedElements) return; + + var serializedData = DtoHelper.SerializeDrawableContainerList((DrawableContainerList)selectedElements); + ClipboardHelper.SetClipboardData(typeof(DrawableContainerListDto), serializedData); + RemoveSelectedElements(); } @@ -2092,8 +2052,10 @@ namespace Greenshot.Editor.Drawing /// public void CopySelectedElements() { - if (!HasSelectedElements) return; - ClipboardHelper.SetClipboardData(typeof(IDrawableContainerList), selectedElements); + if (!HasSelectedElements) return; + + var serializedData = DtoHelper.SerializeDrawableContainerList((DrawableContainerList)selectedElements); + ClipboardHelper.SetClipboardData(typeof(DrawableContainerListDto), serializedData); } /// @@ -2200,9 +2162,12 @@ namespace Greenshot.Editor.Drawing } } - if (formats.Contains(typeof(IDrawableContainerList).FullName)) - { - IDrawableContainerList dcs = (IDrawableContainerList) ClipboardHelper.GetFromDataObject(clipboard, typeof(IDrawableContainerList)); + if (formats.Contains(typeof(DrawableContainerListDto).FullName)) + { + var serializedData = ClipboardHelper.GetFromDataObject(clipboard, typeof(DrawableContainerListDto)) as byte[]; + + IDrawableContainerList dcs = DtoHelper.DeserializeDrawableContainerList(serializedData); + if (dcs != null) { // Make element(s) only move 10,10 if the surface is the same diff --git a/src/Greenshot.Editor/Drawing/SvgContainer.cs b/src/Greenshot.Editor/Drawing/SvgContainer.cs index 85b8cb43d..b1662f455 100644 --- a/src/Greenshot.Editor/Drawing/SvgContainer.cs +++ b/src/Greenshot.Editor/Drawing/SvgContainer.cs @@ -19,9 +19,8 @@ * along with this program. If not, see . */ -using System; using System.Drawing; -using System.IO; +using System.IO; using Dapplo.Windows.Common.Structs; using Greenshot.Base.Core; using Greenshot.Base.Interfaces; @@ -32,35 +31,32 @@ namespace Greenshot.Editor.Drawing /// /// This provides a resizable SVG container, redrawing the SVG in the size the container takes. /// - [Serializable] public class SvgContainer : VectorGraphicsContainer { - private MemoryStream _svgContent; + public MemoryStream SvgContent; - [NonSerialized] private SvgDocument _svgDocument; public SvgContainer(Stream stream, ISurface parent) : base(parent) { - _svgContent = new MemoryStream(); - stream.CopyTo(_svgContent); + SvgContent = new MemoryStream(); + stream.CopyTo(SvgContent); Init(); Size = new Size((int)_svgDocument.Width, (int)_svgDocument.Height); } - protected override void Init() - { - base.Init(); - // Do nothing when there is no content - if (_svgContent == null) - { - return; - } - _svgContent.Position = 0; - - _svgDocument = SvgDocument.Open(_svgContent); - } - + private void Init() + { + // Do nothing when there is no content + if (SvgContent == null) + { + return; + } + SvgContent.Position = 0; + + _svgDocument = SvgDocument.Open(SvgContent); + } + protected override Image ComputeBitmap() { //var image = ImageHelper.CreateEmpty(Width, Height, PixelFormat.Format32bppArgb, Color.Transparent); diff --git a/src/Greenshot.Editor/Drawing/TextContainer.cs b/src/Greenshot.Editor/Drawing/TextContainer.cs index a49fd4bee..ca06c0cec 100644 --- a/src/Greenshot.Editor/Drawing/TextContainer.cs +++ b/src/Greenshot.Editor/Drawing/TextContainer.cs @@ -25,7 +25,6 @@ using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; -using System.Runtime.Serialization; using System.Windows.Forms; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; @@ -40,7 +39,6 @@ namespace Greenshot.Editor.Drawing /// /// Represents a textbox (extends RectangleContainer for border/background support /// - [Serializable] public class TextContainer : RectangleContainer, ITextContainer { // If makeUndoable is true the next text-change will make the change undoable. @@ -48,15 +46,15 @@ namespace Greenshot.Editor.Drawing // Although the name is wrong, we can't change it due to file serialization // ReSharper disable once InconsistentNaming private bool makeUndoable; - [NonSerialized] private Font _font; + private Font _font; public Font Font => _font; - [NonSerialized] private TextBox _textBox; + private TextBox _textBox; /// /// The StringFormat object is not serializable!! /// - [NonSerialized] private StringFormat _stringFormat = new StringFormat(); + private StringFormat _stringFormat = new StringFormat(); public StringFormat StringFormat => _stringFormat; @@ -70,26 +68,27 @@ namespace Greenshot.Editor.Drawing get => text; set => ChangeText(value, true); } - - internal void ChangeText(string newText, bool allowUndoable) - { - if ((text != null || newText == null) && string.Equals(text, newText)) return; - - if (makeUndoable && allowUndoable && IsUndoable) - { - makeUndoable = false; - _parent.MakeUndoable(new TextChangeMemento(this), false); - } - - text = newText; - OnPropertyChanged("Text"); - } - public TextContainer(ISurface parent) : base(parent) { Init(); } + private void Init() + { + _stringFormat = new StringFormat + { + Trimming = StringTrimming.EllipsisWord + }; + + CreateTextBox(); + + UpdateFormat(); + UpdateTextBoxFormat(); + + PropertyChanged += TextContainer_PropertyChanged; + FieldChanged += TextContainer_FieldChanged; + } + protected override void InitializeFields() { AddField(GetType(), FieldType.LINE_THICKNESS, 2); @@ -104,16 +103,6 @@ namespace Greenshot.Editor.Drawing AddField(GetType(), FieldType.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center); } - /// - /// Do some logic to make sure all field are initiated correctly - /// - /// StreamingContext - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - protected override void Dispose(bool disposing) { if (disposing) @@ -140,20 +129,18 @@ namespace Greenshot.Editor.Drawing base.Dispose(disposing); } - private void Init() + internal void ChangeText(string newText, bool allowUndoable) { - _stringFormat = new StringFormat + if ((text != null || newText == null) && string.Equals(text, newText)) return; + + if (makeUndoable && allowUndoable && IsUndoable) { - Trimming = StringTrimming.EllipsisWord - }; + makeUndoable = false; + _parent.MakeUndoable(new TextChangeMemento(this), false); + } - CreateTextBox(); - - UpdateFormat(); - UpdateTextBoxFormat(); - - PropertyChanged += TextContainer_PropertyChanged; - FieldChanged += TextContainer_FieldChanged; + text = newText; + OnPropertyChanged("Text"); } protected override void SwitchParent(ISurface newParent) diff --git a/src/Greenshot.Editor/Drawing/VectorGraphicsContainer.cs b/src/Greenshot.Editor/Drawing/VectorGraphicsContainer.cs index 43da94c7d..b18f31491 100644 --- a/src/Greenshot.Editor/Drawing/VectorGraphicsContainer.cs +++ b/src/Greenshot.Editor/Drawing/VectorGraphicsContainer.cs @@ -19,13 +19,12 @@ * along with this program. If not, see . */ -using System; using System.Drawing; using System.Drawing.Drawing2D; -using System.Runtime.Serialization; using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Drawing; using Greenshot.Editor.Drawing.Adorners; +using log4net; namespace Greenshot.Editor.Drawing { @@ -33,11 +32,17 @@ namespace Greenshot.Editor.Drawing /// This is the base container for vector graphics, these ae graphics which can resize without loss of quality. /// Examples for this are SVG, WMF or EMF, but also graphics based on fonts (e.g. Emoji) /// - [Serializable] public abstract class VectorGraphicsContainer : DrawableContainer { + private static readonly ILog LOG = LogManager.GetLogger(typeof(VectorGraphicsContainer)); + + /// private int _rotationAngle; - protected int RotationAngle + + /// /// + /// This is the rotation angle of the vector graphics. It is used to rotate the graphics when rendering in . + /// + public int RotationAngle { get => _rotationAngle; set => _rotationAngle = value; @@ -47,37 +52,26 @@ namespace Greenshot.Editor.Drawing /// This is the cached version of the bitmap, pre-rendered to save performance /// Do not serialized, it can be rebuild with other information. /// - [NonSerialized] private Image _cachedImage; /// - /// Constructor takes care of calling Init + /// Constructor takes care of creating adorners /// /// ISurface - public VectorGraphicsContainer(ISurface parent) : base(parent) + protected VectorGraphicsContainer(ISurface parent) : base(parent) { - Init(); + InitAdorners(); } /// - /// Make sure Init is called after deserializing + /// For vector graphics the are not used. so we need to initialize the adorners here. /// - /// StreamingContext - protected override void OnDeserialized(StreamingContext streamingContext) - { - base.OnDeserialized(streamingContext); - Init(); - } - - /// - /// Init is called after creating the instance, and from OnDeserialized - /// This is the place to generate your adorners - /// - protected virtual void Init() + private void InitAdorners() { // Check if the adorners are already defined! if (Adorners.Count > 0) { + LOG.Warn("Adorners are already defined!"); return; } @@ -93,7 +87,6 @@ namespace Greenshot.Editor.Drawing /// When disposing==true all non-managed resources should be freed too! /// /// - protected override void Dispose(bool disposing) { if (disposing) diff --git a/src/Greenshot.Editor/EditorInitialize.cs b/src/Greenshot.Editor/EditorInitialize.cs index c1ee27db8..87164a04e 100644 --- a/src/Greenshot.Editor/EditorInitialize.cs +++ b/src/Greenshot.Editor/EditorInitialize.cs @@ -32,8 +32,10 @@ namespace Greenshot.Editor SimpleServiceProvider.Current.AddService( // All generic things, like gif, png, jpg etc. new DefaultFileFormatHandler(), - // Greenshot format + // Greenshot file format new GreenshotFileFormatHandler(), + // Greenshot template format + new GreenshotTemplateFormatHandler(), // For .svg support new SvgFileFormatHandler(), // For clipboard support diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/ArrowContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/ArrowContainerDto.cs new file mode 100644 index 000000000..25021822c --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/ArrowContainerDto.cs @@ -0,0 +1,32 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class ArrowContainerDto : DrawableContainerDto +{ +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/CursorContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/CursorContainerDto.cs new file mode 100644 index 000000000..e95c19899 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/CursorContainerDto.cs @@ -0,0 +1,36 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// The is not really in use. For a capture with mouse cursor the IconContainer is used. See: cctor Surface(ICapture capture) in . +/// +[MessagePackObject] +public sealed class CursorContainerDto : DrawableContainerDto +{ + // Because the CursorContainer is not used, the effort to serialize deserialize the System.Drawing.Cursor object is not justified - YAGNI + //[Key(101)] + //public byte[] Cursor { get; set; } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerDto.cs new file mode 100644 index 000000000..309433f43 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerDto.cs @@ -0,0 +1,66 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Collections.Generic; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto.Fields; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// Simplified Version that supports Properties from and as well. +/// Ignore because it is only used for filters at the moment and all field values from the filters are already in . +/// +[Union(0, typeof(ImageContainerDto))] +[Union(1, typeof(LineContainerDto))] +[Union(2, typeof(RectangleContainerDto))] +[Union(3, typeof(IconContainerDto))] +[Union(4, typeof(TextContainerDto))] +[Union(5, typeof(SpeechbubbleContainerDto))] +[Union(6, typeof(ArrowContainerDto))] +[Union(7, typeof(CursorContainerDto))] +[Union(8, typeof(EllipseContainerDto))] +[Union(9, typeof(FreehandContainerDto))] +[Union(10, typeof(HighlightContainerDto))] +[Union(11, typeof(MetafileContainerDto))] +[Union(12, typeof(ObfuscateContainerDto))] +[Union(13, typeof(StepLabelContainerDto))] +[Union(14, typeof(SvgContainerDto))] +[MessagePackObject] +public abstract class DrawableContainerDto +{ + + [Key(10)] + public int Left { get; set; } + [Key(11)] + public int Top { get; set; } + [Key(12)] + public int Width { get; set; } + [Key(13)] + public int Height { get; set; } + + [Key(14)] + public List Fields { get; set; } = []; +} + + diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerListDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerListDto.cs new file mode 100644 index 000000000..276dcd7be --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/DrawableContainerListDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Collections.Generic; +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class DrawableContainerListDto +{ + [Key(10)] + public List ContainerList { get; set; } = []; +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/EllipseContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/EllipseContainerDto.cs new file mode 100644 index 000000000..244f903c8 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/EllipseContainerDto.cs @@ -0,0 +1,31 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class EllipseContainerDto : DrawableContainerDto +{ +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/FreehandContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/FreehandContainerDto.cs new file mode 100644 index 000000000..721541465 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/FreehandContainerDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Collections.Generic; +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class FreehandContainerDto : DrawableContainerDto +{ + [Key(100)] + public List CapturePoints { get; set; } = []; +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/HighlightContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/HighlightContainerDto.cs new file mode 100644 index 000000000..94f95da8e --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/HighlightContainerDto.cs @@ -0,0 +1,34 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// Ignore because they would be recreated on deserialization based on field values of . +/// +[MessagePackObject] +public sealed class HighlightContainerDto : DrawableContainerDto +{ +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/IconContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/IconContainerDto.cs new file mode 100644 index 000000000..599623dc5 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/IconContainerDto.cs @@ -0,0 +1,33 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class IconContainerDto : DrawableContainerDto +{ + [Key(100)] + public byte[] Icon { get; set; } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/ImageContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/ImageContainerDto.cs new file mode 100644 index 000000000..adc1a4db8 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/ImageContainerDto.cs @@ -0,0 +1,34 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class ImageContainerDto : DrawableContainerDto +{ + [Key(100)] + public byte[] Image { get; set; } // Store image as byte array +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/LineContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/LineContainerDto.cs new file mode 100644 index 000000000..b3c5fab92 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/LineContainerDto.cs @@ -0,0 +1,32 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class LineContainerDto : DrawableContainerDto +{ +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/MetafileContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/MetafileContainerDto.cs new file mode 100644 index 000000000..6c2d59a39 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/MetafileContainerDto.cs @@ -0,0 +1,39 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// Simplified version that supports properties from as well. +/// +[MessagePackObject] +public sealed class MetafileContainerDto : DrawableContainerDto +{ + [Key(100)] + public int RotationAngle { get; set; } + + [Key(101)] + public byte[] MetafileData { get; set; } // Store metafile as byte array +} + diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/ObfuscateContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/ObfuscateContainerDto.cs new file mode 100644 index 000000000..5694110c4 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/ObfuscateContainerDto.cs @@ -0,0 +1,34 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// Ignore because they would be recreated on deserialization based on field values of . +/// +[MessagePackObject] +public sealed class ObfuscateContainerDto : DrawableContainerDto +{ +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/PointDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/PointDto.cs new file mode 100644 index 000000000..a50de3647 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/PointDto.cs @@ -0,0 +1,33 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +[MessagePackObject] +public sealed class PointDto +{ + [Key(10)] + public int X { get; set; } + + [Key(11)] + public int Y { get; set; } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/RectangleContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/RectangleContainerDto.cs new file mode 100644 index 000000000..b136802e8 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/RectangleContainerDto.cs @@ -0,0 +1,32 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class RectangleContainerDto : DrawableContainerDto +{ +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/SpeechbubbleContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/SpeechbubbleContainerDto.cs new file mode 100644 index 000000000..e223721ae --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/SpeechbubbleContainerDto.cs @@ -0,0 +1,37 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class SpeechbubbleContainerDto : DrawableContainerDto +{ + [Key(100)] + public string Text { get; set; } = string.Empty; + + [Key(101)] + public PointDto StoredTargetGripperLocation { get; set; } = new() { X = 0, Y = 0 }; +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/StepLabelContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/StepLabelContainerDto.cs new file mode 100644 index 000000000..4d7d74e8d --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/StepLabelContainerDto.cs @@ -0,0 +1,36 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// +[MessagePackObject] +public sealed class StepLabelContainerDto : DrawableContainerDto +{ + [Key(100)] + public int Number { get; set; } = 1; + + [Key(101)] + public int CounterStart { get; set; } = 1; +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/SvgContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/SvgContainerDto.cs new file mode 100644 index 000000000..742635293 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/SvgContainerDto.cs @@ -0,0 +1,38 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +/// +/// Data transfer object to serialize objects. +/// Simplified version that supports properties from as well. +/// +[MessagePackObject] +public sealed class SvgContainerDto : DrawableContainerDto +{ + [Key(100)] + public int RotationAngle { get; set; } + + [Key(101)] + public byte[] SvgData { get; set; } // Store SVG as byte array +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Container/TextContainerDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Container/TextContainerDto.cs new file mode 100644 index 000000000..57bdaef17 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Container/TextContainerDto.cs @@ -0,0 +1,30 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Container; + +[MessagePackObject] +public sealed class TextContainerDto : DrawableContainerDto +{ + [Key(100)] + public string Text { get; set; } = string.Empty; +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/ConvertDomainToDto.cs b/src/Greenshot.Editor/FileFormat/Dto/ConvertDomainToDto.cs new file mode 100644 index 000000000..f357d9123 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/ConvertDomainToDto.cs @@ -0,0 +1,406 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Linq; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using static Greenshot.Editor.Drawing.ArrowContainer; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Editor.FileFormat.Dto; + +/// +/// Provides methods to convert domain objects, mainly drawable container and fields, into their corresponding Data Transfer Object (DTO) representations. +/// +/// This class contains a collection of static ToDto() methods that handle the transformation +public static class ConvertDomainToDto +{ + + public static GreenshotFileDto ToDto(GreenshotFile domain) + { + if (domain == null) return null; + + return new GreenshotFileDto + { + ContainerList = ToDto(domain.ContainerList), + Image = ImageToByteArray(domain.Image), + RenderedImage = ImageToByteArray(domain.RenderedImage), + FormatVersion = domain.FormatVersion, + SchemaVersion = domain.SchemaVersion + }; + } + + public static GreenshotTemplateDto ToDto(GreenshotTemplate domain) + { + if (domain == null) return null; + + return new GreenshotTemplateDto + { + ContainerList = ToDto(domain.ContainerList), + FormatVersion = domain.FormatVersion, + SchemaVersion = domain.SchemaVersion + }; + } + + public static DrawableContainerListDto ToDto(DrawableContainerList domain) + { + if (domain == null) return null; + + var dtoList = new DrawableContainerListDto(); + foreach (var item in domain) + { + dtoList.ContainerList.Add(ToDto(item)); + } + return dtoList; + } + + public static DrawableContainerDto ToDto(IDrawableContainer domain) => + domain switch + { + null => null, + ImageContainer imageContainer => ToDto(imageContainer), + ArrowContainer arrowContainer => ToDto(arrowContainer), + LineContainer lineContainer => ToDto(lineContainer), + SpeechbubbleContainer speechbubbleContainer => ToDto(speechbubbleContainer), + TextContainer textContainer => ToDto(textContainer), + RectangleContainer rectangleContainer => ToDto(rectangleContainer), + IconContainer iconContainer => ToDto(iconContainer), + StepLabelContainer stepLabelContainer => ToDto(stepLabelContainer), + EllipseContainer ellipseContainer => ToDto(ellipseContainer), + HighlightContainer highlightContainer => ToDto(highlightContainer), + ObfuscateContainer obfuscateContainer => ToDto(obfuscateContainer), + CursorContainer cursorContainer => ToDto(cursorContainer), + FreehandContainer freehandContainer => ToDto(freehandContainer), + MetafileContainer metafileContainer => ToDto(metafileContainer), + SvgContainer svgContainer => ToDto(svgContainer), + _ => throw new ArgumentException($"Unsupported IDrawableContainer type: {domain.GetType()}"), + }; + + public static ImageContainerDto ToDto(ImageContainer domain) + { + if (domain == null) return null; + + var dto = new ImageContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList(), + Image = ImageToByteArray(domain.Image) + }; + return dto; + } + + public static MetafileContainerDto ToDto(MetafileContainer domain) + { + if (domain == null) return null; + + var dto = new MetafileContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList(), + MetafileData = domain.MetafileContent.ToArray(), + RotationAngle = domain.RotationAngle + }; + return dto; + } + + public static SvgContainerDto ToDto(SvgContainer domain) + { + if (domain == null) return null; + + var dto = new SvgContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList(), + SvgData = domain.SvgContent.ToArray(), + RotationAngle = domain.RotationAngle + }; + return dto; + } + + public static LineContainerDto ToDto(LineContainer domain) + { + if (domain == null) return null; + + var dto = new LineContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static RectangleContainerDto ToDto(RectangleContainer domain) + { + if (domain == null) return null; + + var dto = new RectangleContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static TextContainerDto ToDto(TextContainer domain) + { + if (domain == null) return null; + + var dto = new TextContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Text = domain.Text, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static SpeechbubbleContainerDto ToDto(SpeechbubbleContainer domain) + { + if (domain == null) return null; + + var dto = new SpeechbubbleContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Text = domain.Text, + StoredTargetGripperLocation = new PointDto { X = domain.StoredTargetGripperLocation.X, Y = domain.StoredTargetGripperLocation.Y }, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static ArrowContainerDto ToDto(ArrowContainer domain) + { + if (domain == null) return null; + + var dto = new ArrowContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static IconContainerDto ToDto(IconContainer domain) + { + if (domain == null) return null; + + var dto = new IconContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList(), + Icon = IconToByteArray(domain.Icon) + }; + return dto; + } + + public static StepLabelContainerDto ToDto(StepLabelContainer domain) + { + if (domain == null) return null; + + // recalculate the StepLabel number from parent Surface if it exists + if (domain.Parent is Surface parentSurface) + { + domain.Number = parentSurface.CountStepLabels(domain); + domain.CounterStart = parentSurface.CounterStart; + } + + var dto = new StepLabelContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList(), + Number = domain.Number, + CounterStart = domain.CounterStart + }; + return dto; + } + + public static EllipseContainerDto ToDto(EllipseContainer domain) + { + if (domain == null) return null; + + var dto = new EllipseContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static HighlightContainerDto ToDto(HighlightContainer domain) + { + if (domain == null) return null; + + var dto = new HighlightContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static ObfuscateContainerDto ToDto(ObfuscateContainer domain) + { + if (domain == null) return null; + + var dto = new ObfuscateContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static CursorContainerDto ToDto(CursorContainer domain) + { + if (domain == null) return null; + + var dto = new CursorContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList() + }; + return dto; + } + + public static FreehandContainerDto ToDto(FreehandContainer domain) + { + if (domain == null) return null; + + var dto = new FreehandContainerDto + { + Left = domain.Left, + Top = domain.Top, + Width = domain.Width, + Height = domain.Height, + Fields = domain.GetFields() == null ? [] : domain.GetFields().Select(ToDto).ToList(), + CapturePoints = domain.CapturePoints.Select(p => new PointDto { X = p.X, Y = p.Y }).ToList() + }; + return dto; + } + + public static FieldDto ToDto(IField domain) + { + if (domain == null) return null; + + return new FieldDto + { + FieldTypeName = domain.FieldType.Name, + Scope = domain.Scope, + Value = ConvertValueToDto(domain.Value) + }; + } + + /// + /// Converts a given value to its corresponding representation. + /// + /// The method is public mainly because of testing. + /// The value to convert. + /// A specific subclass of instance representing the provided value. + /// Thrown if the type of is not supported. + public static FieldValueDto ConvertValueToDto(object value) => + value switch + { + null => new NullFieldValueDto(), + int intValue => new IntFieldValueDto { Value = intValue }, + string stringValue => new StringFieldValueDto { Value = stringValue }, + bool boolValue => new BoolFieldValueDto { Value = boolValue }, + float singleValue => new SingleFieldValueDto { Value = singleValue }, + double doubleValue => new DoubleFieldValueDto { Value = doubleValue }, + decimal decimalValue => new DecimalFieldValueDto { Value = decimalValue }, + Color colorValue => new ColorFieldValueDto { Value = colorValue }, + ArrowHeadCombination arrowHeadCombinationValue => new ArrowHeadCombinationFieldValueDto { Value = arrowHeadCombinationValue }, + FieldFlag fieldFlagValue => new FieldFlagFieldValueDto { Value = fieldFlagValue }, + PreparedFilter preparedFilterValue => new PreparedFilterFieldValueDto { Value = preparedFilterValue }, + StringAlignment stringAlignmentValue => new StringAlignmentFieldValueDto { Value = stringAlignmentValue }, + _ => throw new ArgumentException($"Unsupported type: {value.GetType()}"), + }; + + /// + /// Converts the specified to a byte array in PNG format. + /// + private static byte[] ImageToByteArray(Image image) + { + if (image == null) return null; + + using var memoryStream = new MemoryStream(); + image.Save(memoryStream, ImageFormat.Png); + return memoryStream.ToArray(); + } + + /// + /// Converts the specified to a byte array representation. + /// + private static byte[] IconToByteArray(Icon icon) + { + if (icon == null) return null; + + using var memoryStream = new MemoryStream(); + icon.Save(memoryStream); + return memoryStream.ToArray(); + } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/Dto/ConvertDtoToDomain.cs b/src/Greenshot.Editor/FileFormat/Dto/ConvertDtoToDomain.cs new file mode 100644 index 000000000..03f2f61f1 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/ConvertDtoToDomain.cs @@ -0,0 +1,399 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Linq; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using log4net; + +namespace Greenshot.Editor.FileFormat.Dto; + + +/// +/// Provides methods to convert various Data Transfer Object (DTO) types into their corresponding domain types, mainly drawable container and fields. +/// +/// This class contains a collection of static ToDomain() methods that handle the transformation +public static class ConvertDtoToDomain +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(ConvertDtoToDomain)); + + /// + /// Checks if the provided parent surface is null and creates a new one if it is. + /// + private static ISurface CheckOrCreateParentSurface( ISurface parentSurface) => parentSurface ?? SimpleServiceProvider.Current.GetInstance>().Invoke(); + + public static GreenshotFile ToDomain(GreenshotFileDto dto) + { + if (dto == null) return null; + + return new GreenshotFile + { + ContainerList = ToDomain(dto.ContainerList), + Image = ByteArrayToImage(dto.Image), + RenderedImage = ByteArrayToImage(dto.RenderedImage), + SchemaVersion = dto.SchemaVersion, + FormatVersion = dto.FormatVersion + }; + } + + public static GreenshotTemplate ToDomain(GreenshotTemplateDto dto) + { + if (dto == null) return null; + + return new GreenshotTemplate + { + ContainerList = ToDomain(dto.ContainerList), + SchemaVersion = dto.SchemaVersion, + FormatVersion = dto.FormatVersion + }; + } + + public static DrawableContainerList ToDomain(DrawableContainerListDto dto) + { + if (dto == null) return null; + + // new Surface for all Container + ISurface parentSurface = CheckOrCreateParentSurface(null); + + var domainList = new DrawableContainerList(); + foreach (var item in dto.ContainerList) + { + domainList.Add(ToDomain(item, parentSurface)); + } + return domainList; + } + + public static IDrawableContainer ToDomain(DrawableContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + return dto switch + { + ImageContainerDto imageContainerDto => ToDomain(imageContainerDto, parentSurface), + ArrowContainerDto arrowContainerDto => ToDomain(arrowContainerDto, parentSurface), + LineContainerDto lineContainerDto => ToDomain(lineContainerDto, parentSurface), + RectangleContainerDto rectangleContainerDto => ToDomain(rectangleContainerDto, parentSurface), + IconContainerDto iconContainerDto => ToDomain(iconContainerDto, parentSurface), + StepLabelContainerDto stepLabelContainerDto => ToDomain(stepLabelContainerDto, parentSurface), + EllipseContainerDto ellipseContainerDto => ToDomain(ellipseContainerDto, parentSurface), + HighlightContainerDto highlightContainerDto => ToDomain(highlightContainerDto, parentSurface), + ObfuscateContainerDto obfuscateContainerDto => ToDomain(obfuscateContainerDto, parentSurface), + CursorContainerDto cursorContainerDto => ToDomain(cursorContainerDto, parentSurface), + FreehandContainerDto freehandContainerDto => ToDomain(freehandContainerDto, parentSurface), + TextContainerDto textContainerDto => ToDomain(textContainerDto, parentSurface), + SpeechbubbleContainerDto speechbubbleContainerDto => ToDomain(speechbubbleContainerDto, parentSurface), + MetafileContainerDto metafileContainerDto => ToDomain(metafileContainerDto, parentSurface), + SvgContainerDto svgContainerDto => ToDomain(svgContainerDto, parentSurface), + _ => throw new ArgumentException($"Unsupported IDrawableContainerDto type: {dto.GetType()}") + }; + } + + public static ImageContainer ToDomain(ImageContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new ImageContainer(parentSurface); + if (dto.Image !=null) + { + // The image setter recalculates the position and dimensions + // this is no problem, because we correct them later in InitDrawableContainer() + domain.Image = ByteArrayToImage(dto.Image); + }else + { + Log.Warn("ImageContainerDto contains no image. Creating an empty image with tranparent background as a replacement."); + // If no image is provided, we create an empty image with the specified dimensions + domain.Image = ImageHelper.CreateEmpty(Math.Max(dto.Width,50), Math.Max(dto.Height,50), PixelFormat.Format32bppArgb, Color.Transparent); + } + + return InitDrawableContainer(domain, dto); + } + + public static MetafileContainer ToDomain(MetafileContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new MetafileContainer(new MemoryStream(dto.MetafileData), parentSurface); + domain.RotationAngle = dto.RotationAngle; + + return InitDrawableContainer(domain, dto); + } + + public static SvgContainer ToDomain(SvgContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new SvgContainer(new MemoryStream(dto.SvgData), parentSurface); + domain.RotationAngle = dto.RotationAngle; + + return InitDrawableContainer(domain, dto); + } + + public static LineContainer ToDomain(LineContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new LineContainer(parentSurface); + return InitDrawableContainer(domain, dto); + } + + public static RectangleContainer ToDomain(RectangleContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new RectangleContainer(parentSurface); + return InitDrawableContainer(domain, dto); + } + + public static TextContainer ToDomain(TextContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new TextContainer(parentSurface) + { + Text = dto.Text + }; + return InitDrawableContainer(domain, dto); + } + + public static SpeechbubbleContainer ToDomain(SpeechbubbleContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new SpeechbubbleContainer(parentSurface) + { + Text = dto.Text, + StoredTargetGripperLocation = new Point(dto.StoredTargetGripperLocation.X, dto.StoredTargetGripperLocation.Y) + }; + return InitDrawableContainer(domain, dto); + } + + public static ArrowContainer ToDomain(ArrowContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new ArrowContainer(parentSurface); + return InitDrawableContainer(domain, dto); + } + + public static IconContainer ToDomain(IconContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new IconContainer(parentSurface); + if (dto.Icon !=null) + { + domain.Icon = ByteArrayToIcon(dto.Icon); + } + else + { + Log.Warn("IconContainerDto contains no Icon. Cannot create a replacement"); + } + return InitDrawableContainer(domain, dto); + } + + public static StepLabelContainer ToDomain(StepLabelContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new StepLabelContainer(parentSurface) + { + Number = dto.Number, + CounterStart = dto.CounterStart + }; + return InitDrawableContainer(domain, dto); + } + + public static EllipseContainer ToDomain(EllipseContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new EllipseContainer(parentSurface); + return InitDrawableContainer(domain, dto); + } + + public static HighlightContainer ToDomain(HighlightContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new HighlightContainer(parentSurface); + return InitDrawableContainer(domain, dto); + } + + public static ObfuscateContainer ToDomain(ObfuscateContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new ObfuscateContainer(parentSurface); + return InitDrawableContainer(domain, dto); + } + + public static CursorContainer ToDomain(CursorContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new CursorContainer(parentSurface); + return InitDrawableContainer(domain, dto); + } + + public static FreehandContainer ToDomain(FreehandContainerDto dto, ISurface parentSurface) + { + if (dto == null) return null; + + parentSurface = CheckOrCreateParentSurface(parentSurface); + + var domain = new FreehandContainer(parentSurface) + { + CapturePoints = dto.CapturePoints.Select(p => new Point(p.X, p.Y)).ToList() + }; + return InitDrawableContainer(domain, dto); + } + + public static IField ToDomain(FieldDto dto) + { + IFieldType FieldTypeNameToFieldTyp(string name) + { + foreach (var fieldType in FieldType.Values) + { + if (fieldType.Name.Equals(name)) + { + return fieldType; + } + } + + throw new ArgumentException($"Unknown field type name: {name}"); + } + + if (dto == null) return null; + + return new Field(FieldTypeNameToFieldTyp(dto.FieldTypeName), dto.Scope) + { + Value = ConvertDtoToValue(dto.Value) + }; + } + + /// + /// Converts a instance to its corresponding value. + /// + /// The method is public mainly because of testing. + /// The value extracted from the using its GetValue method, or + /// if is . + public static object ConvertDtoToValue(FieldValueDto dto) + { + return dto?.GetValue(); + } + + /// + /// Initializes a drawable container. + /// + /// This method sets the position, dimensions, and field values of the container based on the + /// provided DTO. It also invokes the method to finalize the + /// initialization process. + /// The type of the drawable container, which must inherit from . + /// The drawable container instance to initialize. Must not be . + /// The data transfer object containing the properties and field values to apply. Must not be . + /// The initialized drawable container of type . + private static T InitDrawableContainer(T container, DrawableContainerDto dto) where T : DrawableContainer + { + container.Left = dto.Left; + container.Top = dto.Top; + container.Width = dto.Width; + container.Height = dto.Height; + + TranferFieldValues(dto.Fields, container); + + container.OnDeserialized(); + return container; + } + + /// + /// Transfers field values to a . + /// + /// This method uses to add or update the field value. + private static void TranferFieldValues(List dtoFields, DrawableContainer domain) + { + foreach (var field in dtoFields.Select(ToDomain)) + { + domain.SetFieldValue(field.FieldType, field.Value); + } + } + + /// + /// Converts a byte array into an object. + /// + private static Image ByteArrayToImage(byte[] byteArrayIn) + { + if (byteArrayIn == null) return null; + using var ms = new MemoryStream(byteArrayIn); + return Image.FromStream(ms); + } + + /// + /// Converts a byte array into an object. + /// + private static Icon ByteArrayToIcon(byte[] byteArrayIn) + { + if (byteArrayIn == null) return null; + using var ms = new MemoryStream(byteArrayIn); + return new Icon(ms); + } + +} + diff --git a/src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs b/src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs new file mode 100644 index 000000000..c83e716f1 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs @@ -0,0 +1,96 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using System.Linq; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.Forms; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto; + +/// +/// All DTO classes should not contain any business logic. This applies to helper methods as well +/// So this is the placae for them. +/// +public static class DtoHelper +{ + /// + /// Get the value of a field from a object. Null if not found. + /// + /// + /// + /// + public static object GetFieldValue(DrawableContainerDto drawableContainer, IFieldType fieldType) + { + return drawableContainer.Fields? + .FirstOrDefault(x => x.FieldTypeName == fieldType.Name)? + .Value.GetValue(); + } + + /// + /// We store Color as an ARGB integer, so we have to compare two colors in by their ARGB values + /// + /// + /// + /// + public static bool CompareColorValue(Color leftColor, Color rightColor) + { + return leftColor.ToArgb() == rightColor.ToArgb(); + } + + /// + /// Helper method. + /// hides the ARGB value for KnownColor, so we have to use this method to print ARGB value every time. + /// + /// + /// + public static string ArgbString(Color color) => $"ARGB({color.A}, {color.R}, {color.G}, {color.B})"; + + /// + /// Serializes a into a byte array using MessagePack serialization. + /// + /// This method converts the DrawableContainerList into a DTO before serializing it. + ///
It is mainly used for copying the DrawableContainerList to Clipboard with "Greenshot.Editor.FileFormat.Dto.Container.DrawableContainerListDto" as identifier. + /// See also:
+ /// The instance to serialize. Must not be . + /// A byte array containing the serialized representation of the . + public static byte[] SerializeDrawableContainerList(DrawableContainerList drawableContainerList) + { + var dto = ConvertDomainToDto.ToDto(drawableContainerList); + return MessagePackSerializer.Serialize(dto); + } + + /// + /// Deserializes a byte array into a using MessagePack serialization. + /// + /// It deserializes the byte array into a and then converts it to a . + ///
It is mainly used for reading the DrawableContainerList from Clipboard with "Greenshot.Editor.FileFormat.Dto.Container.DrawableContainerListDto" as identifier. + /// See also: + ///
+ /// A byte array containing the serialized representation of the . + public static DrawableContainerList DeserializeDrawableContainerList(byte[] data) + { + var dto = MessagePackSerializer.Deserialize(data); + return ConvertDtoToDomain.ToDomain(dto); + } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/ArrowHeadCombinationFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/ArrowHeadCombinationFieldValueDto.cs new file mode 100644 index 000000000..16bcbdb8e --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/ArrowHeadCombinationFieldValueDto.cs @@ -0,0 +1,36 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; +using static Greenshot.Editor.Drawing.ArrowContainer; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class ArrowHeadCombinationFieldValueDto : FieldValueDto +{ + [Key(100)] + public ArrowHeadCombination Value { get; set; } = ArrowHeadCombination.NONE; + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/BoolFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/BoolFieldValueDto.cs new file mode 100644 index 000000000..32ece7212 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/BoolFieldValueDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class BoolFieldValueDto : FieldValueDto +{ + [Key(100)] + public bool Value { get; set; } + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/ColorFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/ColorFieldValueDto.cs new file mode 100644 index 000000000..04f17e171 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/ColorFieldValueDto.cs @@ -0,0 +1,53 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +/// +/// Represents a field value that stores color information. +/// +[MessagePackObject(AllowPrivate = true)] +// This needs to be a partial class to support private properties with MessagePack serialization +public sealed partial class ColorFieldValueDto : FieldValueDto +{ + [Key(100)] + private int Argb { get; set; } // Store Color as an ARGB integer + + [IgnoreMember] + public Color Value + { + get + { + return Color.FromArgb(Argb); + } + set + { + Argb = value.ToArgb(); + } + } + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/DecimalFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/DecimalFieldValueDto.cs new file mode 100644 index 000000000..0787c5e47 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/DecimalFieldValueDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class DecimalFieldValueDto : FieldValueDto +{ + [Key(100)] + public decimal Value { get; set; } + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/DoubleFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/DoubleFieldValueDto.cs new file mode 100644 index 000000000..2bf3cda9c --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/DoubleFieldValueDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class DoubleFieldValueDto : FieldValueDto +{ + [Key(100)] + public double Value { get; set; } + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldDto.cs new file mode 100644 index 000000000..cd0bf23ff --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldDto.cs @@ -0,0 +1,36 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Diagnostics; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +[DebuggerDisplay("Scope = {Scope}, FieldTypeName = {FieldTypeName}, Value = {Value.GetValue()}")] +public sealed class FieldDto +{ + [Key(10)] + public FieldValueDto Value { get; set; } + [Key(11)] + public string FieldTypeName { get; set; } = string.Empty; + [Key(12)] + public string Scope { get; set; } = string.Empty; +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldFlagFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldFlagFieldValueDto.cs new file mode 100644 index 000000000..789ea6b5f --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldFlagFieldValueDto.cs @@ -0,0 +1,36 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Base.Interfaces.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class FieldFlagFieldValueDto : FieldValueDto +{ + [Key(100)] + public FieldFlag Value { get; set; } = FieldFlag.NONE; + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldValueDto.cs new file mode 100644 index 000000000..9d800fd47 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/FieldValueDto.cs @@ -0,0 +1,45 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing.Fields; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +/// +/// This is a specific Dto to support serialization for the possible types in +/// +[MessagePackObject] +[Union(0, typeof(NullFieldValueDto))] +[Union(1, typeof(IntFieldValueDto))] +[Union(2, typeof(StringFieldValueDto))] +[Union(3, typeof(BoolFieldValueDto))] +[Union(4, typeof(SingleFieldValueDto))] +[Union(5, typeof(DoubleFieldValueDto))] +[Union(6, typeof(DecimalFieldValueDto))] +[Union(7, typeof(ColorFieldValueDto))] +[Union(8, typeof(ArrowHeadCombinationFieldValueDto))] +[Union(9, typeof(FieldFlagFieldValueDto))] +[Union(10, typeof(PreparedFilterFieldValueDto))] +[Union(11, typeof(StringAlignmentFieldValueDto))] +public abstract class FieldValueDto +{ + public abstract object GetValue(); +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/IntFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/IntFieldValueDto.cs new file mode 100644 index 000000000..f589853ce --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/IntFieldValueDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class IntFieldValueDto : FieldValueDto +{ + [Key(100)] + public int Value { get; set; } + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/NullFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/NullFieldValueDto.cs new file mode 100644 index 000000000..a8f90a250 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/NullFieldValueDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class NullFieldValueDto : FieldValueDto +{ + [Key(100)] + public bool IsNull { get; set; } = true; // Use a boolean to represent null + + public override object GetValue() + { + return null; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/PreparedFilterFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/PreparedFilterFieldValueDto.cs new file mode 100644 index 000000000..7e2ba6997 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/PreparedFilterFieldValueDto.cs @@ -0,0 +1,36 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class PreparedFilterFieldValueDto : FieldValueDto +{ + [Key(100)] + public PreparedFilter Value { get; set; } = PreparedFilter.BLUR; + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/SingleFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/SingleFieldValueDto.cs new file mode 100644 index 000000000..d5d68f712 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/SingleFieldValueDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class SingleFieldValueDto : FieldValueDto +{ + [Key(100)] + public float Value { get; set; } + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/StringAlignmentFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/StringAlignmentFieldValueDto.cs new file mode 100644 index 000000000..619bf7d4b --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/StringAlignmentFieldValueDto.cs @@ -0,0 +1,36 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class StringAlignmentFieldValueDto : FieldValueDto +{ + [Key(100)] + public StringAlignment Value { get; set; } = StringAlignment.Near; + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/Fields/StringFieldValueDto.cs b/src/Greenshot.Editor/FileFormat/Dto/Fields/StringFieldValueDto.cs new file mode 100644 index 000000000..775b5839b --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/Fields/StringFieldValueDto.cs @@ -0,0 +1,35 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto.Fields; + +[MessagePackObject] +public sealed class StringFieldValueDto : FieldValueDto +{ + [Key(100)] + public string Value { get; set; } = string.Empty; + + public override object GetValue() + { + return Value; + } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/GreenshotFileDto.cs b/src/Greenshot.Editor/FileFormat/Dto/GreenshotFileDto.cs new file mode 100644 index 000000000..2156b4910 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/GreenshotFileDto.cs @@ -0,0 +1,62 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto; + +/// +/// Is Data Transfer Object (DTO) for +/// This represents the main class for a .greenshot file. +/// +[MessagePackObject] +public sealed class GreenshotFileDto +{ + /// + /// + /// + [Key(0)] + public int SchemaVersion { get; set; } = GreenshotFileVersionHandler.CurrentSchemaVersion; + + /// + /// + /// + [Key(1)] + public GreenshotFileVersionHandler.GreenshotFileFormatVersion FormatVersion { get; set; } = GreenshotFileVersionHandler.GreenshotFileFormatVersion.Unknown; + + /// + /// + /// + [Key(11)] + public byte[] Image { get; set; } + + /// + /// + /// + [Key(12)] + public DrawableContainerListDto ContainerList { get; set; } = new(); + + /// + /// + /// + [Key(13)] + public byte[] RenderedImage { get; set; } +} diff --git a/src/Greenshot.Editor/FileFormat/Dto/GreenshotTemplateDto.cs b/src/Greenshot.Editor/FileFormat/Dto/GreenshotTemplateDto.cs new file mode 100644 index 000000000..736d48739 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/Dto/GreenshotTemplateDto.cs @@ -0,0 +1,50 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.Dto; + +/// +/// Is Data Transfer Object (DTO) for +/// This represents the main class for a .gst file. +/// +[MessagePackObject] +public sealed class GreenshotTemplateDto +{ + /// + /// + /// + [Key(0)] + public int SchemaVersion { get; set; } = GreenshotFileVersionHandler.CurrentSchemaVersion; + + /// + /// + /// + [Key(1)] + public GreenshotFileVersionHandler.GreenshotFileFormatVersion FormatVersion { get; set; } = GreenshotFileVersionHandler.GreenshotFileFormatVersion.Unknown; + + /// + /// + /// + [Key(11)] + public DrawableContainerListDto ContainerList { get; set; } = new(); +} diff --git a/src/Greenshot.Editor/FileFormat/GreenshotFile.cs b/src/Greenshot.Editor/FileFormat/GreenshotFile.cs new file mode 100644 index 000000000..820c2b3ee --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/GreenshotFile.cs @@ -0,0 +1,59 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using System.Drawing; +using Greenshot.Editor.Drawing; + +namespace Greenshot.Editor.FileFormat; + +/// +/// Represents a .greenshot file as domain object. +/// +public sealed class GreenshotFile +{ + /// + /// List of drawable containers that are positioned on the surface. These are graphical elements like text, shapes, and images that can be drawn on the surface. + /// + public DrawableContainerList ContainerList { get; set; } + + /// + /// The main image of the surface. It is captured from the screen or opend from a file. + /// + public Image Image { get; set; } + + /// + /// The image rendered from the surface, which includes all drawable containers. + /// + public Image RenderedImage { get; set; } + + /// + /// Indicates the version of the file format, which is used to determine the serializer and deserializer for the file. + /// For now this is not really needed within the Dto, because you need to know the serializer before deserialzing the Dto. + /// The format version is part of the complete file version, so we include it here for completeness. + /// May be in the future used to handle backward compatibility issues. + /// + public GreenshotFileVersionHandler.GreenshotFileFormatVersion FormatVersion { get; set; } = GreenshotFileVersionHandler.GreenshotFileFormatVersion.Unknown; + + /// + /// Version of the file schema + /// + public int SchemaVersion { get; set; } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/GreenshotFileVersionHandler.cs b/src/Greenshot.Editor/FileFormat/GreenshotFileVersionHandler.cs new file mode 100644 index 000000000..b47aeec2e --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/GreenshotFileVersionHandler.cs @@ -0,0 +1,221 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.V1; +using Greenshot.Editor.FileFormat.V2; +using log4net; + +namespace Greenshot.Editor.FileFormat; + +/// +/// Provides functionality for handling all supported Greenshot file format versions. +/// It also provides methods to create a from a surface and to create a from a Greenshot file. +/// +public sealed class GreenshotFileVersionHandler +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotFileVersionHandler)); + + /// + /// Represents the file format version for greenshot files. This includes greenshot templates as well. + /// + /// The file versions are now independent of the app version.
+ /// The version numbers of greenshot 1.2 matched old greenshot file version 01.02 and greenshot 1.3 matched old file version 01.03. + /// Now the definition changed a bit and it is composed of two parts. + /// {serializer version}.{schema version} + /// The first part is . This decides wich serializer/ binary data structure is used.
+ /// The second part is . This schema version only needs to be changed if certain actions are necessary for backward compatibility.
+ /// + /// The old versions still fit this pattern. + ///
+ public enum GreenshotFileFormatVersion + { + Unknown = 0, + /// + /// This format uses BinaryFormat serialization, supporting Greenshot file versions 01.02 and 01.03 + /// + V1 = 1, + /// + /// This format uses MessagePack serialization + /// + V2 = 2 + } + + /// + /// Version of the current file schema. More precisely, the version of the Dto structure. This includes greenshot templates as well. + /// + /// + /// Increase this version if you change the Dto structure in a way that breaks backward compatibility. + /// After incrementing this version, you need to extend . + /// + /// ./FileFormat/readme.md for more information about the file format and versioning. + /// + public const int CurrentSchemaVersion = 1; + + /// + /// Loads a from the stream. + /// + /// This method detects the file format version of the Greenshot file and loads the GreenshotFile accordingly. + /// A containing the Greenshot file data. + /// The loaded . + /// Thrown if the stream does not contain a valid Greenshot file. + public static GreenshotFile LoadFromStream(Stream greenshotFileStream) + { + GreenshotFileFormatVersion fileFormatVersion = DetectFileFormatVersion(greenshotFileStream); + + return fileFormatVersion switch + { + GreenshotFileFormatVersion.V1 => GreenshotFileV1.LoadFromStream(greenshotFileStream), + GreenshotFileFormatVersion.V2 => GreenshotFileV2.LoadFromStream(greenshotFileStream), + _ => throw new ArgumentException("Stream is not a Greenshot file!") + }; + + } + + /// + /// + /// + /// + public static bool SaveToStreamInCurrentVersion( ISurface surface, Stream stream) => + SaveToStream(CreateGreenshotFile(surface), stream); + + /// + /// + /// + private static bool SaveToStream(GreenshotFile greenshotFile, Stream stream) => GreenshotFileV2.SaveToStream(greenshotFile, stream); + + /// + /// Detects the Greenshot file version from the provided stream. + /// + /// A containing the Greenshot file data. + /// + /// Thrown if the file format version cannot be determined. + private static GreenshotFileFormatVersion DetectFileFormatVersion(Stream greenshotFileStream) + { + // check for newest version first + + if (GreenshotFileV2.DoesFileFormatMatch(greenshotFileStream)) + { + return GreenshotFileFormatVersion.V2; + } + + if (GreenshotFileV1.DoesFileFormatMatch(greenshotFileStream)) + { + return GreenshotFileFormatVersion.V1; + } + + Log.Error("Stream does not contain a known Greenshot file format!"); + throw new ArgumentException("Stream does not contain a known Greenshot file format!"); + } + + /// + /// Creates a from surface. + /// + /// + /// Cannot be . + /// A with surface's image, rendered image, and elements. + /// Thrown if is or if its is . + public static GreenshotFile CreateGreenshotFile(ISurface surface) + { + if (surface == null) + { + Log.Error("Surface cannot be null"); + throw new ArgumentNullException(nameof(surface), "Surface cannot be null"); + } + + if (surface.Image == null) + { + Log.Error("Surface image cannot be null"); + throw new ArgumentNullException(nameof(surface.Image), "Surface image cannot be null"); + } + + return CreateGreenshotFileInCurrentVersion( + (Bitmap)surface.Image, + (Bitmap)surface.GetImageForExport(), + new DrawableContainerList(surface.Elements)); + } + + /// + /// Creates a new with the specified image and elements and also + /// configured with the current format and schema versions. + /// + /// Background image of the surface. + /// rendered image of the surface, which includes all drawable containers. + /// Elements that are positioned on the surface, like text, shapes, and images. + /// + private static GreenshotFile CreateGreenshotFileInCurrentVersion(Bitmap image, Bitmap renderedImage, DrawableContainerList elements) + { + return new GreenshotFile + { + Image = image, + RenderedImage = renderedImage, + ContainerList = elements, + FormatVersion = GreenshotFileFormatVersion.V2, + SchemaVersion = CurrentSchemaVersion, + }; + } + + /// + /// Creates a new instance and initializes it with the data from the specified . It validates the data and creates always a new surface, or throw an exception. + /// + /// Thrown if is + /// or if its is . + public static ISurface CreateSurface(GreenshotFile greenshotFile) + { + if (greenshotFile == null) + { + Log.Error("Greenshot file cannot be null"); + throw new ArgumentNullException(nameof(greenshotFile), "Greenshot file cannot be null"); + } + + if (greenshotFile.Image == null) + { + // a new surface should always have an image, so this is a critical error + Log.Error("Greenshot file image cannot be null"); + throw new ArgumentNullException(nameof(greenshotFile.Image), "Greenshot file image cannot be null"); + } + + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + + surface.Image = greenshotFile.Image; + + if (greenshotFile.ContainerList != null) + { + // An empty container list is allowed, it's a normal case when no elements are present. + surface.LoadElements(greenshotFile.ContainerList); + } + + return surface; + } + + /// + /// + /// + /// + public static ISurface CreateSurfaceFromStream(Stream stream) => + CreateSurface(LoadFromStream(stream)); +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/GreenshotTemplate.cs b/src/Greenshot.Editor/FileFormat/GreenshotTemplate.cs new file mode 100644 index 000000000..4a1bf174f --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/GreenshotTemplate.cs @@ -0,0 +1,47 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.Drawing; + +namespace Greenshot.Editor.FileFormat; + +/// +/// Represents a .gst file as domain object. +/// +public sealed class GreenshotTemplate +{ + /// + /// List of drawable containers that are positioned on the surface. These are graphical elements like text, shapes, and images that can be drawn on the surface. + /// + public DrawableContainerList ContainerList { get; set; } + + /// + /// Indicates the version of the file format, which is used to determine the serializer and deserializer for the file. + /// For now this is not really needed within the Dto, because you need to know the serializer before deserialzing the Dto. + /// The format version is part of the complete file version, so we include it here for completeness. + /// May be in the future used to handle backward compatibility issues. + /// + public GreenshotFileVersionHandler.GreenshotFileFormatVersion FormatVersion { get; set; } = GreenshotFileVersionHandler.GreenshotFileFormatVersion.Unknown; + + /// + /// Version of the file schema + /// + public int SchemaVersion { get; set; } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/GreenshotTemplateVersionHandler.cs b/src/Greenshot.Editor/FileFormat/GreenshotTemplateVersionHandler.cs new file mode 100644 index 000000000..19c7419a0 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/GreenshotTemplateVersionHandler.cs @@ -0,0 +1,104 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.V1; +using Greenshot.Editor.FileFormat.V2; +using log4net; +using static Greenshot.Editor.FileFormat.GreenshotFileVersionHandler; + +namespace Greenshot.Editor.FileFormat; + +/// +/// Provides functionality for handling different Greenshot template file format versions. +/// +public class GreenshotTemplateVersionHandler +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotFileVersionHandler)); + + /// + /// Loads a from the stream. + /// + /// This method detects the file format version of the Greenshot template and loads the GreenshotTemplate accordingly. + /// A containing the Greenshot template data. + /// The loaded . + /// Thrown if the stream does not contain a valid Greenshot template. + public static GreenshotTemplate LoadFromStream(Stream greenshotTemplateStream) + { + GreenshotFileFormatVersion fileFormatVersion = DetectFileFormatVersion(greenshotTemplateStream); + + return fileFormatVersion switch + { + GreenshotFileFormatVersion.V1 => GreenshotTemplateV1.LoadFromStream(greenshotTemplateStream), + GreenshotFileFormatVersion.V2 => GreenshotTemplateV2.LoadFromStream(greenshotTemplateStream), + _ => throw new ArgumentException("Stream is not a Greenshot template file!") + }; + } + + /// + /// + /// + /// + public static bool SaveToStreamInCurrentVersion(DrawableContainerList elements, Stream stream) => + SaveToStream(CreateGreenshotTemplateInCurrentVersion(elements), stream); + + /// + /// + /// + private static bool SaveToStream(GreenshotTemplate greenshotTemplate, Stream stream) => GreenshotTemplateV2.SaveToStream(greenshotTemplate, stream); + + + private static GreenshotFileFormatVersion DetectFileFormatVersion(Stream drawableContainerListFileStream) + { + // check for newest version first + + if (GreenshotTemplateV2.DoesFileFormatMatch(drawableContainerListFileStream)) + { + return GreenshotFileFormatVersion.V2; + } + + if (GreenshotTemplateV1.DoesFileFormatMatch(drawableContainerListFileStream)) + { + return GreenshotFileFormatVersion.V1; + } + + Log.Error("Stream does not contain a known Greenshot template file format!"); + throw new ArgumentException("Stream does not contain a known Greenshot template file format!"); + } + + /// + /// Creates a new with the specified elements and also + /// configured with the current format and schema versions. + /// + /// + /// + private static GreenshotTemplate CreateGreenshotTemplateInCurrentVersion(DrawableContainerList elements) + { + return new GreenshotTemplate + { + ContainerList = elements, + FormatVersion = GreenshotFileFormatVersion.V2, + SchemaVersion = CurrentSchemaVersion, + }; + } + +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/V1/GreenshotFileV1.cs b/src/Greenshot.Editor/FileFormat/V1/GreenshotFileV1.cs new file mode 100644 index 000000000..c6d1d0f88 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V1/GreenshotFileV1.cs @@ -0,0 +1,163 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.IO; +using System.ServiceModel.Security; +using System.Text; +using Greenshot.Base.Core; +using Greenshot.Editor.FileFormat.V1.Legacy; +using log4net; + +namespace Greenshot.Editor.FileFormat.V1; + +/// +/// Provides methods for loading Greenshot file format version V1. +/// +/// Greenshot file format version V1 supports Greenshot file versions 01.02 and 01.03. +/// Saving to this format is not supported anymore. +internal static class GreenshotFileV1 +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotFileV1)); + + /// + /// Determines whether the stream matches the Greenshot file format version V1. + /// + /// It checks for specific markers ("Greenshot01.02" or + /// "Greenshot01.03") and validates the size of surface / container list data. The stream's position will be + /// modified during the operation but will remain open after the method completes. + /// The stream containing the file to check. The stream must support seeking. + /// if the file format matches the Greenshot version V1 and the file contains surface + /// data; otherwise, . + internal static bool DoesFileFormatMatch(Stream greenshotFileStream) + { + // Start at -14 read "GreenshotXX.YY" (XX=Major, YY=Minor) + const int markerSize = 14; + greenshotFileStream.Seek(-markerSize, SeekOrigin.End); + // set leaveOpen to prevent the automatic closing of the file stream + using var streamReader = new StreamReader(greenshotFileStream, Encoding.ASCII, false, 1024, true); + var greenshotMarker = streamReader.ReadToEnd(); + + // only these two known marker are allowed + var foundMarkerV0102 = greenshotMarker.Equals("Greenshot01.02"); + var foundMarkerV0103 = greenshotMarker.Equals("Greenshot01.03"); + + // Load 8 byte in front of marker for file size + const int fileSizeLocation = 8 + markerSize; + greenshotFileStream.Seek(-fileSizeLocation, SeekOrigin.End); + // set leaveOpen to prevent the automatic closing of the file stream + using BinaryReader reader = new BinaryReader(greenshotFileStream, Encoding.ASCII, true); + var bytesWritten = reader.ReadInt64(); + + if (foundMarkerV0102 && bytesWritten > 0) + { + Log.InfoFormat("Greenshot file format: {0}", greenshotMarker); + return true; + } + + if (foundMarkerV0103 && bytesWritten > 0) + { + Log.InfoFormat("Greenshot file format: {0}", greenshotMarker); + return true; + } + + return false; + } + + /// + /// This load function support Greenshot file version 01.02 and 01.03. + /// + /// A containing the Greenshot file data. + /// The loaded Greenshot file. + /// If schema version is not found in the stream. + /// If legacy container list cannot be read due to security restrictions. + internal static GreenshotFile LoadFromStream(Stream greenshotFileStream) + { + GreenshotFile returnGreenshotFile = new GreenshotFile + { + FormatVersion = GreenshotFileVersionHandler.GreenshotFileFormatVersion.V1, + }; + + const int markerSize = 14; + greenshotFileStream.Seek(-markerSize, SeekOrigin.End); + // set leaveOpen to prevent the automatic closing of the file stream + using var streamReader = new StreamReader(greenshotFileStream, Encoding.ASCII, false, 1024, true); + var greenshotMarker = streamReader.ReadToEnd(); + + // only these two known marker are allowed + var foundMarkerV0102 = greenshotMarker.Equals("Greenshot01.02"); + var foundMarkerV0103 = greenshotMarker.Equals("Greenshot01.03"); + + if (foundMarkerV0102) + { + returnGreenshotFile.SchemaVersion = 2; + } + else if (foundMarkerV0103) + { + returnGreenshotFile.SchemaVersion = 3; + }else + { + throw new ArgumentException("No schema version found in Greenshot file stream!"); + } + + + // 14 byte for marker and 8 byte for filesize + const int fileSizeLocation = 8 + markerSize; + greenshotFileStream.Seek(-fileSizeLocation, SeekOrigin.End); + // set leaveOpen to prevent the automatic closing of the file stream + using BinaryReader reader = new BinaryReader(greenshotFileStream, Encoding.ASCII, true); + long bytesWritten = reader.ReadInt64(); + greenshotFileStream.Seek(-(bytesWritten + fileSizeLocation), SeekOrigin.End); + + try + { + returnGreenshotFile.ContainerList = LegacyFileHelper.GetContainerListFromLegacyContainerListStream(greenshotFileStream); + } + catch (SecurityAccessDeniedException) + { + throw; + } + catch (Exception e) + { + Log.Error("Error serializing elements from stream.", e); + } + + Bitmap captureBitmap; + + // reset stream to load image + greenshotFileStream.Seek(0, SeekOrigin.Begin); + // Fixed problem that the bitmap stream is disposed... by Cloning the image + // This also ensures the bitmap is correctly created + using (Image tmpImage = Image.FromStream(greenshotFileStream, true, true)) + { + Log.DebugFormat("Loaded .greenshot file with Size {0}x{1} and PixelFormat {2}", tmpImage.Width, tmpImage.Height, tmpImage.PixelFormat); + captureBitmap = ImageHelper.Clone(tmpImage) as Bitmap; + } + + if (captureBitmap != null) + { + returnGreenshotFile.Image = captureBitmap; + Log.InfoFormat("Information about .greenshot file: {0}x{1}-{2} Resolution {3}x{4}", captureBitmap.Width, captureBitmap.Height, captureBitmap.PixelFormat, captureBitmap.HorizontalResolution, captureBitmap.VerticalResolution); + } + + return returnGreenshotFile; + } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/V1/GreenshotTemplateV1.cs b/src/Greenshot.Editor/FileFormat/V1/GreenshotTemplateV1.cs new file mode 100644 index 000000000..bf0132137 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V1/GreenshotTemplateV1.cs @@ -0,0 +1,93 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using System.ServiceModel.Security; +using Greenshot.Editor.FileFormat.V1.Legacy; +using log4net; + +namespace Greenshot.Editor.FileFormat.V1; + +/// +/// Provides methods for loading Greenshot template in file format version V1. +/// +/// Greenshot template file format version V1 supports Greenshot template files from app version 1.2 and 1.3. +/// Saving to this format is not supported anymore. +internal static class GreenshotTemplateV1 +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotTemplateV1)); + + /// Determines whether the stream matches the Greenshot template format version V1. + /// + /// In this file format is no specific marker or version information, + /// so it is not possible to detect the file format version without deserializing the file. + /// The stream's position will be modified during the operation but will remain open after the method completes. + internal static bool DoesFileFormatMatch(Stream greenshotTemplateFileStream) + { + // This file format has no specific marker, so we just check if we can deserialize it and could find at least one container. + var greenshotTemplate = LoadFromStream(greenshotTemplateFileStream); + if (greenshotTemplate is { ContainerList.Count: > 0 }) + { + Log.Info("Greenshot template file format: V1"); + return true; + } + + return false; + } + + /// + /// This load function support Greenshot template from app version 1.2 and 1.3. + /// + /// In this file format is no specific version information, so schema version is always 3. + /// The stream's position will be modified during the operation but will remain open after the method completes. + /// A containing the Greenshot template data. + /// The loaded Greenshot template. + /// + internal static GreenshotTemplate LoadFromStream(Stream greenshotTemplateFileStream) + { + // reset position + greenshotTemplateFileStream.Seek(0, SeekOrigin.Begin); + + GreenshotTemplate greenshotTemplate = new GreenshotTemplate + { + FormatVersion = GreenshotFileVersionHandler.GreenshotFileFormatVersion.V1, + SchemaVersion = -1 + }; + + try + { + greenshotTemplate.ContainerList = LegacyFileHelper.GetContainerListFromLegacyContainerListStream(greenshotTemplateFileStream); + } + catch (SecurityAccessDeniedException) + { + throw; + } + catch (Exception e) + { + Log.Error("Error serializing elements from stream.", e); + } + + greenshotTemplate.SchemaVersion = 3; // The schema version for V1 is always 3, as this is the last version that was used in the old Greenshot file format. + + return greenshotTemplate; + } + +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/V1/Legacy/ConvertLegacyToDto.cs b/src/Greenshot.Editor/FileFormat/V1/Legacy/ConvertLegacyToDto.cs new file mode 100644 index 000000000..da2839b27 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V1/Legacy/ConvertLegacyToDto.cs @@ -0,0 +1,303 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; + +namespace Greenshot.Editor.FileFormat.V1.Legacy; + +/// +/// Provides methods for converting legacy drawable container objects into their corresponding Data Transfer Object +/// (DTO) representations. +/// +/// This class contains a collection of static ToDto() methods that handle the transformation +internal static class ConvertLegacyToDto +{ + public static DrawableContainerDto ToDto(LegacyDrawableContainer container) + { + return container switch + { + LegacyArrowContainer arrow => ToDto(arrow), + LegacyLineContainer line => ToDto(line), + LegacyRectangleContainer rect => ToDto(rect), + LegacyEllipseContainer ellipse => ToDto(ellipse), + LegacyHighlightContainer highlight => ToDto(highlight), + LegacyObfuscateContainer obfuscate => ToDto(obfuscate), + LegacyTextContainer text => ToDto(text), + LegacyImageContainer image => ToDto(image), + LegacyIconContainer icon => ToDto(icon), + LegacySpeechbubbleContainer speech => ToDto(speech), + LegacyFreehandContainer freehand => ToDto(freehand), + LegacyMetafileContainer meta => ToDto(meta), + LegacySvgContainer svg => ToDto(svg), + LegacyStepLabelContainer step => ToDto(step), + _ => throw new NotSupportedException($"Cannot convert unknown container type {container.GetType()} to a concrete ContainerDto."), + }; + } + + public static DrawableContainerListDto ToDto(LegacyDrawableContainerList containerList) + { + var dto = new DrawableContainerListDto { ContainerList = new List() }; + foreach (var w in containerList) + { + dto.ContainerList.Add(ToDto(w)); + } + return dto; + } + + private static List ToFieldDtos(IList fields) + { + var list = new List(); + if (fields == null) return list; + list.AddRange(fields.Select(f => new FieldDto { FieldTypeName = f.FieldType?.Name, Scope = f.Scope, Value = ConvertValueToDto(f.Value) })); + return list; + } + + public static ArrowContainerDto ToDto(LegacyArrowContainer container) + { + return new ArrowContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields) + }; + } + + public static LineContainerDto ToDto(LegacyLineContainer container) + { + return new LineContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields) + }; + } + + public static RectangleContainerDto ToDto(LegacyRectangleContainer container) + { + return new RectangleContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields) + }; + } + + public static EllipseContainerDto ToDto(LegacyEllipseContainer container) + { + return new EllipseContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields) + }; + } + + public static HighlightContainerDto ToDto(LegacyHighlightContainer container) + { + return new HighlightContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields) + }; + } + + public static ObfuscateContainerDto ToDto(LegacyObfuscateContainer container) + { + return new ObfuscateContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields) + }; + } + + public static TextContainerDto ToDto(LegacyTextContainer container) + { + return new TextContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + Text = container.Text + }; + } + + public static ImageContainerDto ToDto(LegacyImageContainer container) + { + return new ImageContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + Image = container.Image != null ? ImageToByteArray(container.Image) : null + }; + } + + public static IconContainerDto ToDto(LegacyIconContainer container) + { + return new IconContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + Icon = container.Icon != null ? IconToByteArray(container.Icon) : null + }; + } + + public static SpeechbubbleContainerDto ToDto(LegacySpeechbubbleContainer container) + { + return new SpeechbubbleContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + Text = container.Text, + StoredTargetGripperLocation = new PointDto { X = container.StoredTargetGripperLocation.X, Y = container.StoredTargetGripperLocation.Y } + }; + } + + public static FreehandContainerDto ToDto(LegacyFreehandContainer container) + { + var points = new List(); + if (container.CapturePoints != null) + { + foreach (var p in container.CapturePoints) + { + points.Add(new PointDto { X = p.X, Y = p.Y }); + } + } + return new FreehandContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + CapturePoints = points + }; + } + + public static MetafileContainerDto ToDto(LegacyMetafileContainer container) + { + return new MetafileContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + RotationAngle = container.RotationAngle, + MetafileData = container.MetafileContent?.ToArray() + }; + } + + public static SvgContainerDto ToDto(LegacySvgContainer container) + { + return new SvgContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + RotationAngle = container.RotationAngle, + SvgData = container.SvgContent?.ToArray() + }; + } + + public static StepLabelContainerDto ToDto(LegacyStepLabelContainer container) + { + return new StepLabelContainerDto + { + Left = container.Left, + Top = container.Top, + Width = container.Width, + Height = container.Height, + Fields = ToFieldDtos(container.Fields), + Number = container.Number, + CounterStart = container.CounterStart + }; + } + + private static byte[] ImageToByteArray(Image image) + { + if (image == null) return null; + using var ms = new MemoryStream(); + image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); + return ms.ToArray(); + } + private static byte[] IconToByteArray(Icon icon) + { + if (icon == null) return null; + using var ms = new MemoryStream(); + icon.Save(ms); + return ms.ToArray(); + } + + private static FieldValueDto ConvertValueToDto(object value) + { + if (value == null) return new NullFieldValueDto(); + return value switch + { + int i => new IntFieldValueDto { Value = i }, + string s => new StringFieldValueDto { Value = s }, + bool b => new BoolFieldValueDto { Value = b }, + float f => new SingleFieldValueDto { Value = f }, + double d => new DoubleFieldValueDto { Value = d }, + decimal m => new DecimalFieldValueDto { Value = m }, + Color c => new ColorFieldValueDto { Value = c }, + FilterContainer.PreparedFilter filter => new PreparedFilterFieldValueDto { Value = filter }, + ArrowContainer.ArrowHeadCombination arrowHead => new ArrowHeadCombinationFieldValueDto { Value = arrowHead }, + FieldFlag fieldFlag => new FieldFlagFieldValueDto { Value = fieldFlag }, + StringAlignment alignment => new StringAlignmentFieldValueDto { Value = alignment }, + _ => throw new ArgumentException($"Unsupported type: {value.GetType()}") + }; + } +} + diff --git a/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyClasses.cs b/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyClasses.cs new file mode 100644 index 000000000..ea404f2c2 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyClasses.cs @@ -0,0 +1,358 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Drawing.Imaging; +using System.IO; +using System.Runtime.Serialization; + +namespace Greenshot.Editor.FileFormat.V1.Legacy; + +/* + * This File includes all the legacy classes that are used to deserialize the old .greenshot files in file format V1. + * Each class is a copy of the old drawable container classes. + * Each class only contains the properties that are needed for deserialization. + * In some classes we have to handle backward compatibility. + */ + +#region Field and FieldHolder + +[Serializable] +internal class LegacyField +{ +#pragma warning disable CS0649 // Field is never assigned to, and will always have its default value. The field will be set during deserialization. + private object _myValue; +#pragma warning restore CS0649 // Field is never assigned to, and will always have its default value. The field will be set during deserialization. + public LegacyFieldType FieldType { get; set; } + public string Scope { get; set; } + + public object Value => _myValue; +} + +[Serializable] +internal class LegacyFieldType +{ + public string Name { get; set; } +} + +[Serializable] +internal class LegacyFieldHolder : ISerializable +{ + public IList Fields; + + protected LegacyFieldHolder(SerializationInfo info, StreamingContext context) + { + Fields = (IList)info.GetValue("AbstractFieldHolder+fields", typeof(IList)); + } + + void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) + { + // is only called when the object is serialized + // we never want to serialize this object + throw new NotImplementedException(); + } +} + +[Serializable] +internal class LegacyFieldHolderWithChildren : LegacyFieldHolder +{ + public IList Children; + + protected LegacyFieldHolderWithChildren(SerializationInfo info, StreamingContext context) : base(info, context) + { + Children = (IList)info.GetValue("Children", typeof(IList)); + } +} +#endregion + +#region DrawableContainer + +[Serializable] +internal class LegacyDrawableContainer : LegacyFieldHolderWithChildren +{ + public int Left; + public int Top; + public int Width; + public int Height; + + protected LegacyDrawableContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + Left = info.GetInt32("DrawableContainer+left"); + Top = info.GetInt32("DrawableContainer+top"); + Width = info.GetInt32("DrawableContainer+width"); + Height = info.GetInt32("DrawableContainer+height"); + } +} + +[Serializable] +internal class LegacyDrawableContainerList : List +{ +} + +[Serializable] +internal class LegacyLineContainer : LegacyDrawableContainer +{ + protected LegacyLineContainer(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyArrowContainer : LegacyDrawableContainer +{ + protected LegacyArrowContainer(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyRectangleContainer : LegacyDrawableContainer +{ + protected LegacyRectangleContainer(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyEllipseContainer : LegacyDrawableContainer +{ + protected LegacyEllipseContainer(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyHighlightContainer : LegacyDrawableContainer +{ + protected LegacyHighlightContainer(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyObfuscateContainer : LegacyDrawableContainer +{ + protected LegacyObfuscateContainer(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyTextContainer : LegacyDrawableContainer +{ + public string Text; + + protected LegacyTextContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + Text = info.GetString("text"); + } +} + +[Serializable] +internal class LegacyImageContainer : LegacyDrawableContainer +{ + public Image Image; + + protected LegacyImageContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + try + { + Image = (Image)info.GetValue("_image", typeof(Image)); + } + catch (SerializationException) + { + // backword compatibility + // try to serialize file version 01.02 + Image = (Image)info.GetValue("image", typeof(Image)); + } + + } +} + +[Serializable] +internal class LegacyIconContainer : LegacyDrawableContainer +{ + public Icon Icon; + + protected LegacyIconContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + Icon = (Icon)info.GetValue("icon", typeof(Icon)); + } +} + +[Serializable] +internal class LegacySpeechbubbleContainer : LegacyDrawableContainer +{ + public string Text; + public Point StoredTargetGripperLocation; + + protected LegacySpeechbubbleContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + Text = info.GetString("TextContainer+text"); + StoredTargetGripperLocation = (Point)info.GetValue("_storedTargetGripperLocation", typeof(Point)); + } +} + +[Serializable] +internal class LegacyFreehandContainer : LegacyDrawableContainer +{ + public List CapturePoints; + + protected LegacyFreehandContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + CapturePoints = (List)info.GetValue("capturePoints", typeof(List)); + } +} + +[Serializable] +internal class LegacyMetafileContainer : LegacyDrawableContainer +{ + public int RotationAngle; + + public Metafile Metafile; + + public MemoryStream MetafileContent; + + protected LegacyMetafileContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + RotationAngle = info.GetInt32("VectorGraphicsContainer+_rotationAngle"); + + Metafile = (Metafile)info.GetValue("_metafile", typeof(Metafile)); + + if (Metafile != null) + { + ConvertWmfToPngAndReplaceMetafileAndStream(ref Metafile, ref MetafileContent); + } + } + + /// + /// Workaround for serialization for file version > 1.03. + /// For old files we need to recreate MetafileContent. We have to convert it to png, because there is no encoder for .wmf or .emf files in GDI+. + /// + /// + private void ConvertWmfToPngAndReplaceMetafileAndStream( + ref Metafile metafile, + ref MemoryStream pngStream) + { + if (metafile == null) + throw new ArgumentNullException(nameof(metafile)); + + int width = metafile.Width; + int height = metafile.Height; + + // Render original metafile to bitmap + using Bitmap bitmap = new Bitmap(width, height); + using (Graphics g = Graphics.FromImage(bitmap)) + { + g.SmoothingMode = SmoothingMode.AntiAlias; + g.InterpolationMode = InterpolationMode.HighQualityBicubic; + g.PixelOffsetMode = PixelOffsetMode.HighQuality; + g.Clear(Color.Transparent); + + g.DrawImage(metafile, 0, 0, width, height); + } + + // Dispose old MemoryStream if exists + pngStream?.Dispose(); + + // Save bitmap as PNG into new MemoryStream + pngStream = new MemoryStream(); + bitmap.Save(pngStream, ImageFormat.Png); + pngStream.Position = 0; + + // Create new Metafile + using Bitmap tempBitmap = new Bitmap(1, 1); + using Graphics referenceGraphics = Graphics.FromImage(tempBitmap); + IntPtr hdc = referenceGraphics.GetHdc(); + + Metafile newMetafile = new Metafile(hdc, EmfType.EmfOnly); + + referenceGraphics.ReleaseHdc(hdc); + + using (Graphics gMetafile = Graphics.FromImage(newMetafile)) + { + gMetafile.DrawImage(bitmap, 0, 0, width, height); + } + + // Dispose old metafile and replace + metafile?.Dispose(); + metafile = newMetafile; + } +} + +[Serializable] +internal class LegacySvgContainer : LegacyDrawableContainer +{ + public int RotationAngle; + public MemoryStream SvgContent; + + protected LegacySvgContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + RotationAngle = info.GetInt32("VectorGraphicsContainer+_rotationAngle"); + SvgContent = (MemoryStream)info.GetValue("_svgContent", typeof(MemoryStream)); + } +} + +[Serializable] +internal class LegacyStepLabelContainer : LegacyDrawableContainer +{ + public int Number; + public int CounterStart; + + protected LegacyStepLabelContainer(SerializationInfo info, StreamingContext context) : base(info, context) + { + Number = info.GetInt32("_number"); + CounterStart = info.GetInt32("_counterStart"); + } +} + +#endregion + +#region FilterContainer + +[Serializable] +internal class LegacyHighlightFilter : LegacyFieldHolder +{ + protected LegacyHighlightFilter(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyBlurFilter : LegacyFieldHolder +{ + protected LegacyBlurFilter(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyBrightnessFilter : LegacyFieldHolder +{ + protected LegacyBrightnessFilter(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyGrayscaleFilter : LegacyFieldHolder +{ + protected LegacyGrayscaleFilter(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyMagnifierFilter : LegacyFieldHolder +{ + protected LegacyMagnifierFilter(SerializationInfo info, StreamingContext context) : base(info, context) { } +} + +[Serializable] +internal class LegacyPixelizationFilter : LegacyFieldHolder +{ + protected LegacyPixelizationFilter(SerializationInfo info, StreamingContext context) : base(info, context) { } +} +#endregion + + diff --git a/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyFileHelper.cs b/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyFileHelper.cs new file mode 100644 index 000000000..031eca510 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacyFileHelper.cs @@ -0,0 +1,88 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; + +namespace Greenshot.Editor.FileFormat.V1.Legacy; + +public static class LegacyFileHelper +{ + /// + /// Deserializes a legacy Greenshot file stream and converts it into a object. + /// + /// This method processes a legacy Greenshot file by deserializing its contents to , + /// convert this to and then to . The input stream must contain data in the expected legacy format. + /// The input stream containing the serialized legacy Greenshot file data. Must not be . + /// A representing the deserialized and converted data from the legacy file. + /// Thrown if the stream does not contain a valid legacy Greenshot file. + public static DrawableContainerList GetContainerListFromLegacyContainerListStream(Stream stream) + { + // load file in legacy container classes + BinaryFormatter binaryRead = new BinaryFormatter + { + Binder = new LegacySerializationBinder() + }; + var loadedElements = binaryRead.Deserialize(stream); + + if (loadedElements is not LegacyDrawableContainerList legacyDrawableContainerList) + { + throw new ArgumentException("Stream is not a Greenshot file!"); + } + + // Convert the legacy data to DTO + var dto = ConvertLegacyToDto.ToDto(legacyDrawableContainerList); + + // and then to domain object + var containerList = ConvertDtoToDomain.ToDomain(dto); + + return containerList; + } + + /// + /// This is more or less a helper method for develop. It a shorter way to load a ContainerList from a legacy Greenshot file instead of using the . + /// It extracts the container list sub stream from the Greenshot file stream and call . + /// + public static DrawableContainerList GetContainerListFromGreenshotfile(Stream stream) + { + // Start at -14 read "GreenshotXX.YY" (XX=Major, YY=Minor) + const int markerSize = 14; + stream.Seek(-markerSize, SeekOrigin.End); + using StreamReader streamReader = new StreamReader(stream); + + var greenshotMarker = streamReader.ReadToEnd(); + if (!greenshotMarker.StartsWith("Greenshot")) + { + throw new ArgumentException("Stream is not a Greenshot file!"); + } + + const int filesizeLocation = 8 + markerSize; + stream.Seek(-filesizeLocation, SeekOrigin.End); + using BinaryReader reader = new BinaryReader(stream); + long bytesWritten = reader.ReadInt64(); + stream.Seek(-(bytesWritten + filesizeLocation), SeekOrigin.End); + + return GetContainerListFromLegacyContainerListStream(stream); + } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacySerializationBinder.cs b/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacySerializationBinder.cs new file mode 100644 index 000000000..c7300f962 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V1/Legacy/LegacySerializationBinder.cs @@ -0,0 +1,123 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.ServiceModel.Security; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using log4net; + +namespace Greenshot.Editor.FileFormat.V1.Legacy; + +/// +/// This helps to map the serialization of the old .greenshot file to the legacy container. +/// It also prevents misuse like ysoserial attacks, by throwing an exception if a type is not mapped. +/// +internal sealed class LegacySerializationBinder : SerializationBinder +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(LegacySerializationBinder)); + private static readonly IDictionary TypeMapper = new Dictionary + { + // system types + {"System.Guid",typeof(Guid) }, + {"System.Drawing.Rectangle",typeof(System.Drawing.Rectangle) }, + {"System.Drawing.Point",typeof(System.Drawing.Point) }, + {"System.Drawing.Color",typeof(System.Drawing.Color) }, + {"System.Drawing.Bitmap",typeof(System.Drawing.Bitmap) }, + {"System.Drawing.Imaging.Metafile",typeof(System.Drawing.Imaging.Metafile) }, + {"System.Drawing.Icon",typeof(System.Drawing.Icon) }, + {"System.Drawing.Size",typeof(System.Drawing.Size) }, + {"System.IO.MemoryStream",typeof(System.IO.MemoryStream) }, + {"System.Drawing.StringAlignment",typeof(System.Drawing.StringAlignment) }, + {"System.Collections.Generic.List`1[[System.Drawing.Point", typeof(List)}, + + // legacy types + {"System.Collections.Generic.List`1[[Greenshot.Base.Interfaces.Drawing.IFieldHolder", typeof(List)}, + {"System.Collections.Generic.List`1[[Greenshot.Base.Interfaces.Drawing.IField", typeof(List)}, + {"Greenshot.Editor.Drawing.ArrowContainer", typeof(LegacyArrowContainer) }, + {"Greenshot.Editor.Drawing.LineContainer", typeof(LegacyLineContainer) }, + {"Greenshot.Editor.Drawing.TextContainer", typeof(LegacyTextContainer) }, + {"Greenshot.Editor.Drawing.SpeechbubbleContainer", typeof(LegacySpeechbubbleContainer) }, + {"Greenshot.Editor.Drawing.RectangleContainer", typeof(LegacyRectangleContainer) }, + {"Greenshot.Editor.Drawing.EllipseContainer", typeof(LegacyEllipseContainer) }, + {"Greenshot.Editor.Drawing.FreehandContainer", typeof(LegacyFreehandContainer) }, + {"Greenshot.Editor.Drawing.HighlightContainer", typeof(LegacyHighlightContainer) }, + {"Greenshot.Editor.Drawing.IconContainer", typeof(LegacyIconContainer) }, + {"Greenshot.Editor.Drawing.ObfuscateContainer", typeof(LegacyObfuscateContainer) }, + {"Greenshot.Editor.Drawing.StepLabelContainer", typeof(LegacyStepLabelContainer) }, + {"Greenshot.Editor.Drawing.SvgContainer", typeof(LegacySvgContainer) }, + {"Greenshot.Editor.Drawing.MetafileContainer", typeof(LegacyMetafileContainer) }, + {"Greenshot.Editor.Drawing.ImageContainer", typeof(LegacyImageContainer) }, + {"Greenshot.Editor.Drawing.DrawableContainer", typeof(LegacyDrawableContainer) }, + {"Greenshot.Editor.Drawing.DrawableContainerList", typeof(LegacyDrawableContainerList) }, + {"Greenshot.Editor.Drawing.Filters.HighlightFilter", typeof(LegacyHighlightFilter) }, + {"Greenshot.Editor.Drawing.Filters.GrayscaleFilter", typeof(LegacyGrayscaleFilter) }, + {"Greenshot.Editor.Drawing.Filters.MagnifierFilter", typeof(LegacyMagnifierFilter) }, + {"Greenshot.Editor.Drawing.Filters.BrightnessFilter", typeof(LegacyBrightnessFilter) }, + {"Greenshot.Editor.Drawing.Filters.BlurFilter", typeof(LegacyBlurFilter) }, + {"Greenshot.Editor.Drawing.Filters.PixelizationFilter", typeof(LegacyPixelizationFilter) }, + {"Greenshot.Base.Interfaces.Drawing.IDrawableContainer", typeof(LegacyDrawableContainer) }, + {"Greenshot.Base.Interfaces.Drawing.IFieldHolder", typeof(LegacyFieldHolder) }, + {"Greenshot.Base.Interfaces.Drawing.IField", typeof(LegacyField) }, + {"Greenshot.Editor.Drawing.Fields.Field", typeof(LegacyField) }, + {"Greenshot.Editor.Drawing.Fields.FieldType", typeof(LegacyFieldType) }, + {"Greenshot.Editor.Drawing.Fields.AbstractFieldHolder", typeof(LegacyFieldHolder) }, + + // oiginal types, no wapper needed + {"Greenshot.Base.Interfaces.Drawing.FieldFlag", typeof(FieldFlag) }, + {"Greenshot.Base.Interfaces.Drawing.EditStatus", typeof(EditStatus) }, + {"Greenshot.Editor.Drawing.FilterContainer+PreparedFilter", typeof(FilterContainer.PreparedFilter) }, + {"Greenshot.Editor.Drawing.ArrowContainer+ArrowHeadCombination", typeof(ArrowContainer.ArrowHeadCombination) }, + }; + + /// + /// Do the type mapping + /// + /// Assembly for the type that was serialized + /// Type that was serialized + /// Type which was mapped + /// If something smells fishy + public override Type BindToType(string assemblyName, string typeName) + { + if (string.IsNullOrEmpty(typeName)) + { + return null; + } + var typeNameCommaLocation = typeName.IndexOf(","); + var comparingTypeName = typeName.Substring(0, typeNameCommaLocation > 0 ? typeNameCommaLocation : typeName.Length); + + // Correct wrong types + comparingTypeName = comparingTypeName.Replace("Greenshot.Drawing", "Greenshot.Editor.Drawing"); + comparingTypeName = comparingTypeName.Replace("Greenshot.Plugin.Drawing", "Greenshot.Base.Interfaces.Drawing"); + comparingTypeName = comparingTypeName.Replace("GreenshotPlugin.Interfaces.Drawing", "Greenshot.Base.Interfaces.Drawing"); + comparingTypeName = comparingTypeName.Replace("Greenshot.Drawing.Fields", "Greenshot.Editor.Drawing.Fields"); + comparingTypeName = comparingTypeName.Replace("Greenshot.Drawing.Filters", "Greenshot.Editor.Drawing.Filters"); + + if (TypeMapper.TryGetValue(comparingTypeName, out var returnType)) + { + Log.Info($"Mapped {assemblyName} - {typeName} to {returnType.FullName}"); + return returnType; + } + Log.Warn($"Unexpected Greenshot type in .greenshot file detected, maybe vulnerability attack created with ysoserial? Suspicious type: {assemblyName} - {typeName}"); + throw new SecurityAccessDeniedException($"Suspicious type in .greenshot file: {assemblyName} - {typeName}"); + } +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/V2/GreenshotFileV2.cs b/src/Greenshot.Editor/FileFormat/V2/GreenshotFileV2.cs new file mode 100644 index 000000000..43e157f6d --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V2/GreenshotFileV2.cs @@ -0,0 +1,266 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing.Imaging; +using System.IO; +using System.Text; +using Greenshot.Editor.FileFormat.Dto; +using log4net; +using MessagePack; + +namespace Greenshot.Editor.FileFormat.V2; + +/// +/// Provides methods for loading and saving Greenshot file format version V2. +/// +internal static class GreenshotFileV2 +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotFileV2)); + + /// + /// Represents the marker string used to identify the file format as specific to Greenshot file. + /// + private const string FileFormatMarker = "Greenshot"; + + /// + /// Represents the file format version used for Greenshot files, formatted as a two-digit string. + /// + /// Thie ist fixed to ("02") . + private static readonly string FileFormatVersion = ((int)GreenshotFileVersionHandler.GreenshotFileFormatVersion.V2).ToString("D2"); + + /// + /// Represents the current schema version of the Greenshot file in a two-digit string format. + /// + /// It is derived from the property. + private static readonly string SchemaVersion = GreenshotFileVersionHandler.CurrentSchemaVersion.ToString("D2"); + + /// + /// Represents the complete version string, combining the file format version and schema version. + /// + /// This value is a concatenation of and , separated by a period ("."), e.g. "02.01" for version 2.1. + private static readonly string CompleteVersion = FileFormatVersion + Dot + SchemaVersion; + + private const string Dot = "."; + + /// + /// Determines whether the stream matches the Greenshot file format version V2. + /// + /// It checks for specific markers + at the end of the file and validates the size of surface / container list data. + /// The stream's position will be modified during the operation but will remain open after the method completes. + /// The stream containing the file to check. The stream must support seeking. + /// if the file format matches the Greenshot version V2; otherwise, . + internal static bool DoesFileFormatMatch(Stream greenshotFileStream) + { + // file should end with the marker text and format version. + var expectedfileFormatMarker = FileFormatMarker + FileFormatVersion; + + // amount of bytes to ignore at the end of the file + var schemaVersionSuffixLength = Dot.Length + SchemaVersion.Length; + + var markerPosition = expectedfileFormatMarker.Length + schemaVersionSuffixLength; + greenshotFileStream.Seek(-markerPosition, SeekOrigin.End); + + // set leaveOpen to prevent the automatic closing of the file stream + using var streamReader = new StreamReader(greenshotFileStream, Encoding.ASCII, false, 1024, true); + var greenshotMarker = streamReader.ReadToEnd(); + + // Schema version is not relevant for the file format check. + greenshotMarker = greenshotMarker.Substring(0, expectedfileFormatMarker.Length); + + // only these two known marker are allowed + var foundMarkerV02 = expectedfileFormatMarker.Equals(greenshotMarker); + + // Load 8 byte in front of marker for file size + var fileSizeLocation = 8 + markerPosition; + greenshotFileStream.Seek(-fileSizeLocation, SeekOrigin.End); + + // set leaveOpen to prevent the automatic closing of the file stream + using var reader = new BinaryReader(greenshotFileStream, Encoding.ASCII, true); + var bytesWritten = reader.ReadInt64(); + + if (foundMarkerV02 && bytesWritten > 0) + { + Log.InfoFormat("Greenshot file format: {0}", greenshotMarker); + return true; + } + + return false; + + } + + /// + /// Saves the specified to the provided stream in the Greenshot file format version V2. + /// + /// This ignores the file format version and schema version in the GreenshotFile instance. + /// File format version is always V2, schema version is always the current schema version.
+ /// The file parts are:
+ /// 1. The PNG image data
+ /// 2. The binary data of the . (serialized with MessagePack).
+ /// 3. 8 bytes for the binary data size(Int64).
+ /// 4. 11 bytes for the Greenshot marker string + (i.e. `"Greenshot02"`).
+ /// 5. 3 bytes for the Greenshot file schema version (i.e. `".01"`).
+ ///
+ internal static bool SaveToStream(GreenshotFile greenshotFile, Stream stream) + { + // 1. file part - PNG + // Use the rendered image for the PNG part if available, otherwise use the surface image. + var mainImage = greenshotFile.RenderedImage ?? greenshotFile.Image; + if (mainImage == null) + { + Log.Error("Cannot save Greenshot file, no image found!"); + return false; + } + mainImage.Save(stream, ImageFormat.Png); + + greenshotFile.RenderedImage = null; // clear the rendered image it is not nessary to serialize it + + // 2. file part - Greenshot file data + byte[] appFileBytes = Serialize(greenshotFile); + stream.Write(appFileBytes, 0, appFileBytes.Length); + + // 3. file part - Greenshot file data length + var lengthBytes = BitConverter.GetBytes((long)appFileBytes.Length); + stream.Write(lengthBytes, 0, lengthBytes.Length); + + // 4./5. file part - Greenshot file Marker and version information + // writes constant marker and complete version information to the stream + var headerBytes = Encoding.ASCII.GetBytes(FileFormatMarker); + stream.Write(headerBytes, 0, headerBytes.Length); + + var versionBytes = Encoding.ASCII.GetBytes(CompleteVersion); + stream.Write(versionBytes, 0, versionBytes.Length); + + return true; + } + + /// + /// This load function supports file version 02 + /// + /// A containing the Greenshot file data. + /// The loaded Greenshot file. + internal static GreenshotFile LoadFromStream(Stream greenshotFileStream) + { + GreenshotFile returnGreenshotFile; + + try + { + // constant length of file parts at the end of the file + var greenshotMarkerAndVersionLength = FileFormatMarker.Length + CompleteVersion.Length; + var lengthOfTypeLong = 8; + + var fileSizeLocation = lengthOfTypeLong + greenshotMarkerAndVersionLength; + greenshotFileStream.Seek(-fileSizeLocation, SeekOrigin.End); + + // set leaveOpen to prevent the automatic closing of the file stream + using var reader = new BinaryReader(greenshotFileStream, Encoding.ASCII, true); + var bytesWritten = reader.ReadInt64(); + + // go to start of the greenshot file data + var dataStartPosition = fileSizeLocation + bytesWritten; + greenshotFileStream.Seek(-dataStartPosition, SeekOrigin.End); + + // extract the Greenshot file data + var allBytes = new byte[bytesWritten]; + var bytesRead = greenshotFileStream.Read(allBytes, 0, (int)bytesWritten); + + // double check if we read all bytes + if (bytesRead < bytesWritten) + { + throw new EndOfStreamException("Unexpected end of the Greenshot file data!"); + } + + returnGreenshotFile = Deserialize(allBytes); + } + catch (Exception e) + { + Log.Error("Error deserializing Greenshot file from stream.", e); + throw; + } + + return returnGreenshotFile; + } + + /// + /// Serializes the specified instance into a byte array by using MessagePackSerializer. + /// + /// The instance to serialize. Cannot be . + /// A byte array representing the serialized form of the instance. + private static byte[] Serialize(GreenshotFile data) + { + if (data == null) + { + throw new ArgumentNullException(nameof(data), "Cannot serialize a null GreenshotFile."); + } + + var dto = ConvertDomainToDto.ToDto(data); + return MessagePackSerializer.Serialize(dto); + } + + /// + /// Deserializes a byte array into an object by using MessagePackSerializer. + /// + /// This also migrates the loaded to the current version if necessary. + /// + /// The byte array containing the serialized data of an . + /// An object deserialized from the provided byte array. + private static GreenshotFile Deserialize(byte[] bytes) + { + var dto = MessagePackSerializer.Deserialize(bytes); + var currentVersionDto = MigrateToCurrentVersion(dto); + return ConvertDtoToDomain.ToDomain(currentVersionDto); + } + + /// + /// Main method for migrating an to the current version. + /// + /// Does nothing if the version is already current. + /// + private static GreenshotFileDto MigrateToCurrentVersion(GreenshotFileDto dto) + { + switch (dto.SchemaVersion) + { + case GreenshotFileVersionHandler.CurrentSchemaVersion: + return dto; // is already at the current version + case > GreenshotFileVersionHandler.CurrentSchemaVersion: + Log.Warn($"Greenshot file schema version {dto.SchemaVersion} is newer than the current version {GreenshotFileVersionHandler.CurrentSchemaVersion}. No migration will be performed."); + return dto; // no migration possible, just return the dto as is + //case 1: + // Uncomment the next line if the first migration is needed + // return MigrateFromV1ToV2(dto); + default: + return dto; // no migration needed, just return the dto as is + } + } + + /* + // uncomment and implement if the first migration is needed + + private GreenshotFileDto MigrateFromV1ToV2(GreenshotFileDto dto) + { + // Chenge properties as needed for migration + + dto.SchemaVersion = 2; + return dto; + } + */ + +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/V2/GreenshotTemplateV2.cs b/src/Greenshot.Editor/FileFormat/V2/GreenshotTemplateV2.cs new file mode 100644 index 000000000..f07443c59 --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/V2/GreenshotTemplateV2.cs @@ -0,0 +1,212 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using System.Text; +using Greenshot.Editor.FileFormat.Dto; +using log4net; +using MessagePack; +using static Greenshot.Editor.FileFormat.GreenshotFileVersionHandler; + +namespace Greenshot.Editor.FileFormat.V2; + +/// +/// Provides methods for loading and saving Greenshot template file format version V2. +/// +internal static class GreenshotTemplateV2 +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotTemplateV2)); + + /// + /// Represents the marker string used to identify the file format as specific to Greenshot templates. + /// + private const string FileFormatMarker = "GreenshotTemplate"; + + /// + /// Represents the file format version used for Greenshot files, formatted as a two-digit string. + /// + /// Thie ist fixed to ("02") . + private static readonly string FileFormatVersion = ((int)GreenshotFileFormatVersion.V2).ToString("D2"); + + /// + /// Represents the current schema version of the Greenshot file in a two-digit string format. + /// + /// It is derived from the property. + private static readonly string SchemaVersion = CurrentSchemaVersion.ToString("D2"); + + /// + /// Represents the complete version string, combining the file format version and schema version. + /// + /// This value is a concatenation of and , separated by a period ("."), e.g. "02.01" for version 2.1. + private static readonly string CompleteVersion = FileFormatVersion + "." + SchemaVersion; + + /// + /// Determines whether the stream matches the Greenshot file format version V2. + /// + /// The stream's position will be modified during the operation but will remain open after the method completes. + /// The stream containing the file to check. The stream must support seeking. + /// if the file format matches the Greenshot version V2; otherwise, . + internal static bool DoesFileFormatMatch(Stream greenshotTemplateFileStream) + { + //reset position + greenshotTemplateFileStream.Seek(0, SeekOrigin.Begin); + + // set leaveOpen to prevent the automatic closing of the file stream + using var streamReader = new StreamReader(greenshotTemplateFileStream, Encoding.ASCII, false, 1024, true); + + // file should start with the marker text and format version. Schema version is not relevant for the file format check. + string expectedfileFormatMarker = FileFormatMarker + FileFormatVersion; + + var markerInFile = new char[expectedfileFormatMarker.Length]; + streamReader.Read(markerInFile, 0, expectedfileFormatMarker.Length); + var markerText = new string(markerInFile); + + var foundMarkerV02 = expectedfileFormatMarker.Equals(markerText); + + if (foundMarkerV02) + { + Log.InfoFormat("Greenshot file format: {0}", markerText); + return true; + } + + return false; + } + + /// + /// This load function supports file format version V2. + /// + /// A containing the Greenshot template data. + /// The loaded Greenshot template. + internal static GreenshotTemplate LoadFromStream(Stream greenshotTemplateFileStream) + { + GreenshotTemplate returnGreenshotTemplate; + try + { + // ignore marker and use offset + var completeMarker = FileFormatMarker + CompleteVersion; + + greenshotTemplateFileStream.Seek(completeMarker.Length, SeekOrigin.Begin); + using var ms = new MemoryStream(); + greenshotTemplateFileStream.CopyTo(ms); + var allBytes = ms.ToArray(); + + returnGreenshotTemplate = Deserialize(allBytes); + } + catch (Exception e) + { + Log.Error("Error deserializing Greenshot template from stream.", e); + throw; + } + + return returnGreenshotTemplate; + } + + /// + /// Saves the to the provided stream in the Greenshot template format. + /// + /// This ignores the file format version and schema version in the GreenshotTemplate instance. + /// File format version is always V2, schema version is always the current schema version.
+ /// The file parts are:
+ /// 1. 19 bytes for the Greenshot marker string + (i.e. `"GreenshotTemplate02"`).
+ /// 2. 3 bytes for the Greenshot file schema version (i.e. `".01"`).
+ /// 3. The binary data of the . (serialized with MessagePack).
+ ///
+ internal static bool SaveToStream(GreenshotTemplate greenshotTemplate, Stream stream) + { + // 1./2. file part - Greenshot template Marker and version information + // writes constant marker and complete version information to the stream + var headerBytes = Encoding.ASCII.GetBytes(FileFormatMarker); + stream.Write(headerBytes, 0, headerBytes.Length); + + var versionBytes = Encoding.ASCII.GetBytes(CompleteVersion); + stream.Write(versionBytes, 0, versionBytes.Length); + + //3. file part - Greenshot template data + // writes the serialized GreenshotTemplate to the stream + byte[] templateFileBytes = Serialize(greenshotTemplate); + stream.Write(templateFileBytes, 0, templateFileBytes.Length); + + return true; + } + + /// + /// Serializes the specified instance into a byte array by using MessagePackSerializer. + /// + /// The instance to serialize. Cannot be . + /// A byte array representing the serialized form of the instance. + private static byte[] Serialize(GreenshotTemplate data) + { + if (data == null) + { + throw new ArgumentNullException(nameof(data), "Cannot serialize a null GreenshotTemplate."); + } + + var dto = ConvertDomainToDto.ToDto(data); + return MessagePackSerializer.Serialize(dto); + } + + /// + /// Deserializes a byte array into an object by using MessagePackSerializer. + /// + /// The byte array containing the serialized data of an . + /// An object deserialized from the provided byte array. + private static GreenshotTemplate Deserialize(byte[] bytes) + { + var dto = MessagePackSerializer.Deserialize(bytes); + var currentVersionDto = MigrateToCurrentVersion(dto); + return ConvertDtoToDomain.ToDomain(currentVersionDto); + } + + /// + /// Main method for migrating an to the current version. + /// + /// Does nothing if the version is already current. + /// + private static GreenshotTemplateDto MigrateToCurrentVersion(GreenshotTemplateDto dto) + { + switch (dto.SchemaVersion) + { + case CurrentSchemaVersion: + return dto; // is already at the current version + case > CurrentSchemaVersion: + Log.Warn($"Greenshot template schema version {dto.SchemaVersion} is newer than the current version {CurrentSchemaVersion}. No migration will be performed."); + return dto; // no migration possible, just return the dto as is + //case 1: + // Uncomment the next line if the first migration is needed + // return MigrateFromV1ToV2(dto); + default: + return dto; // no migration needed, just return the dto as is + } + } + + /* + // uncomment and implement if the first migration is needed + + private GreenshotTemplateDto MigrateFromV1ToV2(GreenshotTemplateDto dto) + { + // Chenge properties as needed for migration + + dto.SchemaVersion = 2; + return dto; + } + */ +} \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormat/readme.md b/src/Greenshot.Editor/FileFormat/readme.md new file mode 100644 index 000000000..54668eb4e --- /dev/null +++ b/src/Greenshot.Editor/FileFormat/readme.md @@ -0,0 +1,216 @@ +# Greenshot File Format + +This document describes the file formats used by Greenshot Editor for saving editor files and templates. +- Greenshot editor files contains an image and graphical elements (such as text, shapes, and highlights) layered on top of the image. +- Greenshot templates files contains only graphical elements. + +--- + +# Greenshot Editor File + +- Greenshot editor files are saved with the `.greenshot` file extension. +- Class `GreenshotFile` represents a .greenshot file as domain object. +- It contains the PNG image data that came from `Surface` (the editor canvas). More precisely from `Surface.Image`. +- It also contains a `DrawableContainerList` that came from `Surface.Elements`. A `DrawableContainer` object represents a graphical element (such as text, shapes, and highlights) that are placed on the editor canvas. +- For serialization/deserialization, the `GreenshotFile` is converted to a Data Transfer Object (DTO) `GreenshotFileDto`, which contains the data to be serialized. + +## Supported File Formats + +Greenshot editor files supports two file formats: +- Legacy file format (V1) +- Current file format (V2) + +### 1. Legacy File Format (V1) + +- **Serialization:** Uses .NET BinaryFormatter. +- **Markers:** Files are identified by the marker strings `"Greenshot01.02"` or `"Greenshot01.03"` at the end of the file. +- **Security:** BinaryFormatter is deprecated and considered insecure. Support for this format will be removed in the future. +- **Implementation:** See `Greenshot.Editor.FileFormat.V1.GreenshotFileV1`. +- **Implementation Detail:** + The binary data for the drawable containers is not deserialized directly into a `DrawableContainerList`. Instead, there is an intermediate layer of legacy classes. The deserialization steps are as follows: First, the data is deserialized into a `LegacyDrawableContainerList`, then it is converted to a `DrawableContainerListDto`, and finally, it is converted to a `DrawableContainerList`. + Because the legacy classes are used during deserialization, it will be easier to remove support for BinaryFormatter from the application in the future. Only the `LegacyDrawableContainerList` and `LegacyDrawableContainer` classes uses the BinaryFormatter serialization attributes. +- **Binary Data Structure:** + The file consists of: + 1. The PNG image data. + 2. The binary data of the `DrawableContainerList` (serialized with BinaryFormatter). + 3. 8 bytes for the binary data size (Int64). + 4. 14 bytes for the Greenshot marker string (`"Greenshot01.02"` or `"Greenshot01.03"`). +- **Note:** + Because the file starts with PNG data, it was possible to open `.greenshot` files with an image viewer and at least display the image. + +### 2. Current File Format (V2) + +- **Serialization:** Uses [MessagePack](https://github.com/MessagePack-CSharp/MessagePack-CSharp/) for serialization. +- **Marker:** Files are identified by the marker string `"Greenshot02.01"` at the end of the file. The schema version `".01"` would be ignored for determines the file format. +- **Implementation:** See `Greenshot.Editor.FileFormat.V2.GreenshotFileV2`. +- **Binary Data Structure:** + The file consists of: + 1. The PNG image data of the rendered image for export + 2. The binary data of the `GreenshotFileDto`. (serialized with MessagePack). + 3. 8 bytes for the binary data size (Int64). + 4. 11 bytes for the Greenshot marker string `"Greenshot02"`. + 5. 3 bytes for the Greenshot file schema version (i.e. `".01"`). +- **Note:** + In contrast to the legacy file format, the current file format contains the rendered PNG image. This means that all graphical elements are rendered into the PNG image, and the file still can be opened with any image viewer. The image from the editors canvas is stored in the serialized `GreenshotFileDto`. +--- + +# Greenshot Template Files + +- Greenshot template files are saved with the `.gst` file extension. +- Class `GreenshotTemplate` represents a .gst file as domain object. +- It contains a `DrawableContainerList` that came from `Surface.Elements`. This is exactly the same as the `DrawableContainerList` in a Greenshot editor file. +- For serialization/deserialization, the `GreenshotTemplate` is converted to a DTO `GreenshotTemplateDto`, which contains the data to be serialized. + +## Supported File Formats + +Greenshot template files supports two file formats: +- Legacy file format (V1) +- Current file format (V2) + +### 1. Legacy File Format (V1) + +- **Serialization:** Uses .NET BinaryFormatter. +- **Markers:** Files don't have a marker string. +- **Security:** BinaryFormatter is deprecated and considered insecure. Support for this format will be removed in the future. +- **Implementation:** See `Greenshot.Editor.FileFormat.V1.GreenshotTemplateV1`. +- **Implementation Detail:** + The binary data for the drawable containers is not deserialized directly into a `DrawableContainerList`. Instead, there is an intermediate layer of legacy classes. The deserialization steps are as follows: First, the data is deserialized into a `LegacyDrawableContainerList`, then it is converted to a `DrawableContainerListDto`, and finally, it is converted to a `DrawableContainerList`. + Because the legacy classes are used during deserialization, it will be easier to remove support for BinaryFormatter from the application in the future. Only the `LegacyDrawableContainerList` and `LegacyDrawableContainer` classes contain the BinaryFormatter serialization attributes. +- **Binary Data Structure:** + The file consists of: + 1. The binary data of the `DrawableContainerList` (serialized with BinaryFormatter). + +### 2. Current File Format (V2) + +- **Serialization:** Uses [MessagePack](https://github.com/MessagePack-CSharp/MessagePack-CSharp/) for serialization. +- **Marker:** Files are identified by the marker string `"GreenshotTemplate02"` at the beginning of the file. _(Note: Schema version (i.e. `".01"` ) is not part of the marker)_. +- **Implementation:** See `Greenshot.Editor.FileFormat.V2.GreenshotFileV2`. +- **Binary Data Structure:** + The file consists of: + 1. 22 bytes for the Greenshot marker string with complete version string (i.e. `"GreenshotTemplate02.01"` ). + 2. The binary data of `GreenshotTemplateDto`. (serialized with MessagePack). + + +## Summary Table + +|File Type | Format | Marker | Serializer | Security | Implementation | Support Status | +|----------|--------|---------------------|-----------------|------------------|---------------------|---------------------| +| Editor | V1 | Greenshot01.02/03 | BinaryFormatter | Deprecated/Unsafe| GreenshotFileV1 | To be removed | +| Template | V1 | -no marker- | BinaryFormatter | Deprecated/Unsafe| GreenshotTemplateV1 | To be removed | +| Editor | V2 | Greenshot02 | MessagePack | Modern/Safe | GreenshotFileV2 | Current | +| Template | V2 | GreenshotTemplate02 | MessagePack | Modern/Safe | GreenshotTemplateV2 | Current | + +--- + +# Versioning + +Greenshot files and Greenshot templates using the same versioning concept. So the Greenshot templates reuses some global constants from the Greenshot file format. + +Since File Format V2 Greenshot file versions are independent of the application version. + +The version is composed of two parts: + +- **Format Version:** Indicates the serializer is used (i.e. BinaryFormatter or MessagePack) and the binary structure of the file. +- **Schema Version:** Indicates the version of the DTO structure. + +The version is represented as `{format version}.{schema version}` (i.e. as string, `02.01`, this pattern still matches markers in V1 and V2). + +- **Format Version:** See `VersionHandler.GreenshotFileFormatVersion`. +- **Schema Version:** See `VersionHandler.SchemaVersion`. + +--- + +# MessagePack + +Since File Format V2, Greenshot uses [MessagePack](https://github.com/MessagePack-CSharp/MessagePack-CSharp/) for serialization. + + TL;DR: For using MessagePack, the DTO classes are annotated with attributes `[MessagePackObject]`. + Every property that should be serialized is annotated with `[Key]` and has a unique key value. + + Serialization/Deserialization: + var bytes = MessagePackSerializer.Serialize(dto); + var dto = MessagePackSerializer.Deserialize(bytes); + + +## MessagePack Rules + +- **Always** use `int` as `[Key]` value. +- **Do not change** the `[Key]` value of existing properties. +- **Do not remove** properties unless they are marked with `[IgnoreMember]`. +- **Add new properties** with new, unique `[Key]` values. +- **Obsolete properties** have to be marked with `[IgnoreMember]` instead of being removed. +- `[Key]` values `0 - 9` are reserved for operational functions like versioning and have no relation to domain data. +- Use `[Key]` values `10 - 99` for base class properties and `100 - 199` for inherited class properties and so on. +- If possible, avoid inheritance and keep DTO classes as simple as possible. +- If possible, include no business logic in DTO classes. Use the `DtoHelper` class for that. + + +## Rules for Schema and Format Versioning + +- **Non-breaking changes** (do **not** require incrementing `SchemaVersion`): + - Adding required properties with default values. + - Adding new optional properties. + - Changing property types that are compatible (i.e., `int` → `long`). + - Changing default values. + - Marking properties as obsolete with `[IgnoreMember]`. + +- **Breaking changes** (require incrementing `SchemaVersion`): + - Reordering values in enums used in DTO properties. + - Adding required properties without default values. + - Changing property types that are not compatible (i.e., `int` → `string`). + - Changing the meaning of a property content, that requires migration logic. + - Moving properties between DTOs. + +- **Format Version** changes if: + - the serialization method changes (an other serializer than MessagePack and BinaryFormatter is used) + - the binary data structure changes (i.e. the marker string changes). + +--- + +## DTO Migration + +If the DTO structure changes in the future (i.e. a breaking change), you must: + +- Increment the `SchemaVersion`. +- Implement migration logic to convert older DTO versions to the current version (see `GreenshotFileV2.MigrateToCurrentVersion`). +- Ensure backward compatibility for loading older files. + +--- + +# How to handle files + +Main entry point for file handling is the `FileFormatHandler` class. + +It provides methods to save and load files. There is a `GreenshotFileFormatHandler` for handling Greenshot editor files and a `GreenshotTemplateFormatHandler` for handling Greenshot template files. + +Every `FileFormatHandler` calls the associated `VersionHandler` wich determines the file format version and calls the appropriate class that implements the serialization/deserialization logic. + +From `FileFormatHandler` to the implementation, only first-class domain objects (`GreenshotFile`, `GreenshotTemplate`) or file streams are passed as parameters. + +--- + +# Serialization + +The serialization is done by these steps: + 1. Convert the domain object (`GreenshotFile` or `GreenshotTemplate`) to a DTO (`GreenshotFileDto` or `GreenshotTemplateDto`) by using `Greenshot.Editor.FileFormat.Dto.ConvertDtoToDomain.ToDto()` + 1. Convert the DTO to binary data using the MessagePack serializer. _(Serialization with BinaryFormatter is not implemented anymore.)_ + +# Deserialization + +The deserialization is done by these steps: +1. determine the file format version. + - A: If the file format version is V1: + - Extract the PNG image data from the file. + - convert the binary data to `LegacyDrawableContainerList` by using the BinaryFormatter deserializer. _(In this step there is some backward compatibility logic to handle older versions of the legacy classes.)_ + - convert this to `DrawableContainerListDto`. + - use the image data and `DrawableContainerListDto` to create a `GreenshotFileDto` or `GreenshotTemplateDto`. + - B: If the file format version is V2: + - convert the binary data to `GreenshotFileDto` or `GreenshotTemplateDto` using the MessagePack deserializer directly. +1. Convert the DTO to a domain object (`GreenshotFile` or `GreenshotTemplate`) by using `Greenshot.Editor.FileFormat.Dto.ConvertDtoToDomain.ToDomain()`. +1. Call `OnDeserialize()` on every `DrawableContainer` domain object to perform additional initialization. + + +# Clipboard + +In the Greenshot Editor it is possible to copy and paste selected graphical elements (`DrawableContainerList`) to and from the clipboard. For the clipboard data we uses the same mechanism as for the file format. +The `DrawableContainerList` is converted to a `DrawableContainerListDto` and serialized with MessagePack. The clipboard data is stored as a byte array in the clipboard. \ No newline at end of file diff --git a/src/Greenshot.Editor/FileFormatHandlers/AbstractFileFormatHandler.cs b/src/Greenshot.Editor/FileFormatHandlers/AbstractFileFormatHandler.cs index fff576267..e82b9fa09 100644 --- a/src/Greenshot.Editor/FileFormatHandlers/AbstractFileFormatHandler.cs +++ b/src/Greenshot.Editor/FileFormatHandlers/AbstractFileFormatHandler.cs @@ -40,17 +40,20 @@ namespace Greenshot.Editor.FileFormatHandlers return 0; } + /// public abstract bool TrySaveToStream(Bitmap bitmap, Stream destination, string extension, ISurface surface = null, SurfaceOutputSettings surfaceOutputSettings = null); + /// public abstract bool TryLoadFromStream(Stream stream, string extension, out Bitmap bitmap); /// - /// Default implementation taking the TryLoadFromStream image and placing it in an ImageContainer + /// /// + /// Default implementation taking the TryLoadFromStream image and placing it in an /// Stream /// string /// ISurface - /// IEnumerable{IDrawableContainer} + /// One if it was possible to load an image from the stream public virtual IEnumerable LoadDrawablesFromStream(Stream stream, string extension, ISurface parent = null) { if (TryLoadFromStream(stream, extension, out var bitmap)) diff --git a/src/Greenshot.Editor/FileFormatHandlers/DefaultFileFormatHandler.cs b/src/Greenshot.Editor/FileFormatHandlers/DefaultFileFormatHandler.cs index 115b5328f..c363b2e99 100644 --- a/src/Greenshot.Editor/FileFormatHandlers/DefaultFileFormatHandler.cs +++ b/src/Greenshot.Editor/FileFormatHandlers/DefaultFileFormatHandler.cs @@ -115,7 +115,11 @@ namespace Greenshot.Editor.FileFormatHandlers return true; } + /// /// + /// + /// This default implementation uses + /// if the image was successfully loaded into a ; otherwise, . public override bool TryLoadFromStream(Stream stream, string extension, out Bitmap bitmap) { try diff --git a/src/Greenshot.Editor/FileFormatHandlers/GreenshotFileFormatHandler.cs b/src/Greenshot.Editor/FileFormatHandlers/GreenshotFileFormatHandler.cs index 0b956c001..6e7687c2b 100644 --- a/src/Greenshot.Editor/FileFormatHandlers/GreenshotFileFormatHandler.cs +++ b/src/Greenshot.Editor/FileFormatHandlers/GreenshotFileFormatHandler.cs @@ -22,112 +22,96 @@ using System; using System.Collections.Generic; using System.Drawing; -using System.Drawing.Imaging; using System.IO; -using System.Reflection; -using System.Text; -using Greenshot.Base.Core; using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Plugin; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat; using log4net; -namespace Greenshot.Editor.FileFormatHandlers +namespace Greenshot.Editor.FileFormatHandlers; + +public sealed class GreenshotFileFormatHandler : AbstractFileFormatHandler, IFileFormatHandler { - public class GreenshotFileFormatHandler : AbstractFileFormatHandler, IFileFormatHandler + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotFileFormatHandler)); + private readonly IReadOnlyCollection _ourExtensions = new[] { ".greenshot" }; + public GreenshotFileFormatHandler() { - private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotFileFormatHandler)); - private readonly IReadOnlyCollection _ourExtensions = new [] { ".greenshot" }; - public GreenshotFileFormatHandler() + SupportedExtensions[FileFormatHandlerActions.LoadDrawableFromStream] = _ourExtensions; + SupportedExtensions[FileFormatHandlerActions.LoadFromStream] = _ourExtensions; + SupportedExtensions[FileFormatHandlerActions.SaveToStream] = _ourExtensions; + } + + /// + /// Save the surface to the specified stream in the current .greenshot file format. + /// + /// Ignores the given bitmap, as the .greenshot file always uses the original surface image. + /// if the surface was successfully saved to the stream; otherwise, . + public override bool TrySaveToStream(Bitmap bitmap, Stream stream, string extension, ISurface surface = null, SurfaceOutputSettings surfaceOutputSettings = null) + { + if (surface == null) { - SupportedExtensions[FileFormatHandlerActions.LoadDrawableFromStream] = _ourExtensions; - SupportedExtensions[FileFormatHandlerActions.LoadFromStream] = _ourExtensions; - SupportedExtensions[FileFormatHandlerActions.SaveToStream] = _ourExtensions; - } - - public override bool TrySaveToStream(Bitmap bitmap, Stream stream, string extension, ISurface surface = null, SurfaceOutputSettings surfaceOutputSettings = null) - { - if (surface == null) - { - return false; - } - - try - { - bitmap.Save(stream, ImageFormat.Png); - using MemoryStream tmpStream = new MemoryStream(); - long bytesWritten = surface.SaveElementsToStream(tmpStream); - using BinaryWriter writer = new BinaryWriter(tmpStream); - writer.Write(bytesWritten); - Version v = Assembly.GetExecutingAssembly().GetName().Version; - byte[] marker = Encoding.ASCII.GetBytes($"Greenshot{v.Major:00}.{v.Minor:00}"); - writer.Write(marker); - tmpStream.WriteTo(stream); - return true; - } - catch (Exception ex) - { - Log.Error("Couldn't save surface as .greenshot: ", ex); - } - return false; } - public override bool TryLoadFromStream(Stream stream, string extension, out Bitmap bitmap) + try { - try - { - var surface = LoadSurface(stream); - bitmap = (Bitmap)surface.GetImageForExport(); - return true; - } - catch (Exception ex) - { - Log.Error("Couldn't load .greenshot: ", ex); - } - bitmap = null; - return false; + //ignore the given bitmap, in .greenshot file we always use the original surface image + return GreenshotFileVersionHandler.SaveToStreamInCurrentVersion(surface, stream); + } + catch (Exception ex) + { + Log.Error("Couldn't save surface as .greenshot: ", ex); } - private ISurface LoadSurface(Stream surfaceFileStream) + return false; + } + + /// + /// + /// + /// This implementation loads the from stream. Use this to creates a and uses wich renders all contained elements into the image. + /// if the bitmap was successfully loaded from the stream; otherwise, . + public override bool TryLoadFromStream(Stream stream, string extension, out Bitmap bitmap) + { + try { - var returnSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); - Bitmap captureBitmap; + var surface = GreenshotFileVersionHandler.CreateSurfaceFromStream(stream); - // Fixed problem that the bitmap stream is disposed... by Cloning the image - // This also ensures the bitmap is correctly created - using (Image tmpImage = Image.FromStream(surfaceFileStream, true, true)) - { - Log.DebugFormat("Loaded capture from .greenshot file with Size {0}x{1} and PixelFormat {2}", tmpImage.Width, tmpImage.Height, tmpImage.PixelFormat); - captureBitmap = ImageHelper.Clone(tmpImage) as Bitmap; - } - - // Start at -14 read "GreenshotXX.YY" (XX=Major, YY=Minor) - const int markerSize = 14; - surfaceFileStream.Seek(-markerSize, SeekOrigin.End); - using (var streamReader = new StreamReader(surfaceFileStream)) - { - var greenshotMarker = streamReader.ReadToEnd(); - if (!greenshotMarker.StartsWith("Greenshot")) - { - throw new ArgumentException("Stream is not a Greenshot file!"); - } - - Log.InfoFormat("Greenshot file format: {0}", greenshotMarker); - const int fileSizeLocation = 8 + markerSize; - surfaceFileStream.Seek(-fileSizeLocation, SeekOrigin.End); - using BinaryReader reader = new BinaryReader(surfaceFileStream); - long bytesWritten = reader.ReadInt64(); - surfaceFileStream.Seek(-(bytesWritten + fileSizeLocation), SeekOrigin.End); - returnSurface.LoadElementsFromStream(surfaceFileStream); - } - - if (captureBitmap != null) - { - returnSurface.Image = captureBitmap; - Log.InfoFormat("Information about .greenshot file: {0}x{1}-{2} Resolution {3}x{4}", captureBitmap.Width, captureBitmap.Height, captureBitmap.PixelFormat, captureBitmap.HorizontalResolution, captureBitmap.VerticalResolution); - } - - return returnSurface; + bitmap = (Bitmap)surface.GetImageForExport(); + return true; } + catch (Exception ex) + { + Log.Error("Couldn't load .greenshot: ", ex); + } + bitmap = null; + return false; + } + + /// + /// Load a from file path + /// + /// This implementation loads the from file. Use this to creates a . + /// + /// + public ISurface LoadGreenshotSurface(string fullPath) + { + if (string.IsNullOrEmpty(fullPath)) + { + Log.Warn("No file path provided for loading Greenshot surface."); + return null; + } + Log.InfoFormat("Loading surface data from file {0}", fullPath); + + using Stream greenshotFileStream = File.OpenRead(fullPath); + ISurface returnSurface = GreenshotFileVersionHandler.CreateSurfaceFromStream(greenshotFileStream); + + Log.InfoFormat("Information about file {0}: {1}x{2}-{3} Resolution {4}x{5}", fullPath, returnSurface.Image.Width, returnSurface.Image.Height, + returnSurface.Image.PixelFormat, returnSurface.Image.HorizontalResolution, returnSurface.Image.VerticalResolution); + + return returnSurface; } } + diff --git a/src/Greenshot.Editor/FileFormatHandlers/GreenshotTemplateFormatHandler.cs b/src/Greenshot.Editor/FileFormatHandlers/GreenshotTemplateFormatHandler.cs new file mode 100644 index 000000000..74b404087 --- /dev/null +++ b/src/Greenshot.Editor/FileFormatHandlers/GreenshotTemplateFormatHandler.cs @@ -0,0 +1,124 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using Greenshot.Base.Interfaces; +using Greenshot.Base.Interfaces.Plugin; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat; +using log4net; + +namespace Greenshot.Editor.FileFormatHandlers; + +/// +/// Handles the .gst (Greenshot Template) file format, similar to GreenshotFileFormatHandler but for templates. +/// +public sealed class GreenshotTemplateFormatHandler : AbstractFileFormatHandler, IFileFormatHandler +{ + private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotTemplateFormatHandler)); + private readonly IReadOnlyCollection _ourExtensions = [".gst"]; + public GreenshotTemplateFormatHandler() + { + SupportedExtensions[FileFormatHandlerActions.LoadDrawableFromStream] = _ourExtensions; + SupportedExtensions[FileFormatHandlerActions.LoadFromStream] = []; + SupportedExtensions[FileFormatHandlerActions.SaveToStream] = _ourExtensions; + } + + /// + public override bool TrySaveToStream(Bitmap bitmap, Stream stream, string extension, ISurface surface = null, SurfaceOutputSettings surfaceOutputSettings = null) + { + if (surface == null) + { + return false; + } + + try + { + return GreenshotTemplateVersionHandler.SaveToStreamInCurrentVersion(new DrawableContainerList(surface.Elements), stream); + } + catch (Exception ex) + { + Log.Error("Couldn't save surface as .gst: ", ex); + } + + return false; + } + + /// + /// Saves the surface data to a file in the Greenshot template format (.gst). + /// + /// The full file path where the template will be saved. Cannot be null or empty. + /// The surface to save as a template. Cannot be null. + /// Thrown if is null or empty, or if is null. + /// Thrown if the template fails to save to the specified file. + public void SaveTemplateToFile(string fullPath, ISurface surface) + { + if (string.IsNullOrEmpty(fullPath)) + { + throw new ArgumentNullException(nameof(fullPath), "Cannot save Greenshot template to stream, fullPath is null or empty."); + } + if (surface == null) + { + throw new ArgumentNullException(nameof(surface), "Cannot save Greenshot template, surface is null."); + } + Log.InfoFormat("Saving template surface data to file {0}", fullPath); + + using Stream fileStreamWrite = File.OpenWrite(fullPath); + + if (!TrySaveToStream(null, fileStreamWrite, ".gst", surface, null)) + { + throw new Exception("Failed to save Greenshot template to file."); + } + } + + /// + /// Currently not supported + public override bool TryLoadFromStream(Stream stream, string extension, out Bitmap bitmap) + { + throw new NotImplementedException("Greenshot template (.gst) does not support save as image."); + } + + /// + /// Loads a Greenshot template from the specified file and applies its elements to the surface. + /// + /// The full path to the file containing the Greenshot template. Cannot be null or empty. + /// The surface to which the template elements will be applied. Cannot be null. + /// Thrown if is null or empty, or if is null. + public void LoadTemplateFromFile(string fullPath, ISurface surface) + { + if (string.IsNullOrEmpty(fullPath)) + { + throw new ArgumentNullException(nameof(fullPath), "Cannot load Greenshot template, fullPath is null or empty."); + } + if (surface == null) + { + throw new ArgumentNullException(nameof(surface), "Cannot load Greenshot template, surface is null."); + } + Log.InfoFormat("Loading template surface data from file {0}", fullPath); + + using Stream fileStreamRead = File.OpenRead(fullPath); + var greenshotTemplate = GreenshotTemplateVersionHandler.LoadFromStream(fileStreamRead); + surface.LoadElements(greenshotTemplate.ContainerList); + } +} diff --git a/src/Greenshot.Editor/FileFormatHandlers/MetaFileFormatHandler.cs b/src/Greenshot.Editor/FileFormatHandlers/MetaFileFormatHandler.cs index 04c3825b3..a4cf297f3 100644 --- a/src/Greenshot.Editor/FileFormatHandlers/MetaFileFormatHandler.cs +++ b/src/Greenshot.Editor/FileFormatHandlers/MetaFileFormatHandler.cs @@ -19,6 +19,7 @@ * along with this program. If not, see . */ +using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; @@ -28,6 +29,7 @@ using Greenshot.Base.Interfaces; using Greenshot.Base.Interfaces.Drawing; using Greenshot.Base.Interfaces.Plugin; using Greenshot.Editor.Drawing; +using log4net; namespace Greenshot.Editor.FileFormatHandlers { @@ -36,6 +38,7 @@ namespace Greenshot.Editor.FileFormatHandlers /// public class MetaFileFormatHandler : AbstractFileFormatHandler, IFileFormatHandler { + private static readonly ILog Log = LogManager.GetLogger(typeof(MetaFileFormatHandler)); private readonly IReadOnlyCollection _ourExtensions = new[] { ".wmf", ".emf" }; public MetaFileFormatHandler() @@ -72,9 +75,18 @@ namespace Greenshot.Editor.FileFormatHandlers /// public override IEnumerable LoadDrawablesFromStream(Stream stream, string extension, ISurface surface = null) { - if (Image.FromStream(stream, true, true) is Metafile metaFile) + MetafileContainer metafileContainer = null; + try { - yield return new MetafileContainer(metaFile, surface); + metafileContainer = new MetafileContainer(stream, surface); + } + catch (Exception ex) + { + Log.Error("Can't load Metafile", ex); + } + if (metafileContainer != null) + { + yield return metafileContainer; } } } diff --git a/src/Greenshot.Editor/Forms/ImageEditorForm.cs b/src/Greenshot.Editor/Forms/ImageEditorForm.cs index 97263d8c2..e4bcd5491 100644 --- a/src/Greenshot.Editor/Forms/ImageEditorForm.cs +++ b/src/Greenshot.Editor/Forms/ImageEditorForm.cs @@ -48,6 +48,8 @@ using Greenshot.Editor.Destinations; using Greenshot.Editor.Drawing; using Greenshot.Editor.Drawing.Fields; using Greenshot.Editor.Drawing.Fields.Binding; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormatHandlers; using Greenshot.Editor.Helpers; using log4net; @@ -74,7 +76,7 @@ namespace Greenshot.Editor.Forms private static readonly string[] SupportedClipboardFormats = { - typeof(string).FullName, "Text", typeof(IDrawableContainerList).FullName + typeof(string).FullName, "Text", typeof(DrawableContainerListDto).FullName }; private bool _originalBoldCheckState; @@ -1513,34 +1515,48 @@ namespace Greenshot.Editor.Forms private void SaveElementsToolStripMenuItemClick(object sender, EventArgs e) { + var greenshotTemplateFormatHandler = SimpleServiceProvider.Current.GetAllInstances().OfType().FirstOrDefault(); + if (greenshotTemplateFormatHandler is null) + { + throw new Exception($"No instance of {nameof(GreenshotFileFormatHandler)} found in service provider."); + } + SaveFileDialog saveFileDialog = new SaveFileDialog { Filter = "Greenshot templates (*.gst)|*.gst", FileName = FilenameHelper.GetFilenameWithoutExtensionFromPattern(coreConfiguration.OutputFileFilenamePattern, _surface.CaptureDetails) }; + DialogResult dialogResult = saveFileDialog.ShowDialog(); - if (dialogResult.Equals(DialogResult.OK)) + + if (!dialogResult.Equals(DialogResult.OK)) { - using Stream streamWrite = File.OpenWrite(saveFileDialog.FileName); - _surface.SaveElementsToStream(streamWrite); + return; } + + greenshotTemplateFormatHandler.SaveTemplateToFile(saveFileDialog.FileName, _surface); + } private void LoadElementsToolStripMenuItemClick(object sender, EventArgs e) { + var greenshotTemplateFormatHandler = SimpleServiceProvider.Current.GetAllInstances().OfType().FirstOrDefault(); + if (greenshotTemplateFormatHandler is null) + { + throw new Exception($"No instance of {nameof(GreenshotFileFormatHandler)} found in service provider."); + } + OpenFileDialog openFileDialog = new OpenFileDialog { Filter = "Greenshot templates (*.gst)|*.gst" }; - if (openFileDialog.ShowDialog() == DialogResult.OK) + if (openFileDialog.ShowDialog() != DialogResult.OK) { - using (Stream streamRead = File.OpenRead(openFileDialog.FileName)) - { - _surface.LoadElementsFromStream(streamRead); - } - - _surface.Refresh(); + return; } + + greenshotTemplateFormatHandler.LoadTemplateFromFile(openFileDialog.FileName, _surface); + _surface.Refresh(); } private void DestinationToolStripMenuItemClick(object sender, EventArgs e) diff --git a/src/Greenshot.Editor/Greenshot.Editor.csproj b/src/Greenshot.Editor/Greenshot.Editor.csproj index 7da9d555d..e86d88135 100644 --- a/src/Greenshot.Editor/Greenshot.Editor.csproj +++ b/src/Greenshot.Editor/Greenshot.Editor.csproj @@ -84,4 +84,8 @@ ImageEditorForm.cs + + + + \ No newline at end of file diff --git a/src/Greenshot.Editor/Helpers/BinaryFormatterHelper.cs b/src/Greenshot.Editor/Helpers/BinaryFormatterHelper.cs deleted file mode 100644 index 11c7dbae6..000000000 --- a/src/Greenshot.Editor/Helpers/BinaryFormatterHelper.cs +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Greenshot - a free and open source screenshot tool - * Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom - * - * For more information see: https://getgreenshot.org/ - * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 1 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -using System; -using System.Collections.Generic; -using System.Runtime.Serialization; -using System.ServiceModel.Security; -using Greenshot.Base.Interfaces.Drawing; -using Greenshot.Editor.Drawing; -using Greenshot.Editor.Drawing.Fields; -using Greenshot.Editor.Drawing.Filters; -using log4net; -using static Greenshot.Editor.Drawing.FilterContainer; - -namespace Greenshot.Editor.Helpers -{ - /// - /// This helps to map the serialization of the old .greenshot file to the newer. - /// It also prevents misuse. - /// - internal class BinaryFormatterHelper : SerializationBinder - { - private static readonly ILog LOG = LogManager.GetLogger(typeof(BinaryFormatterHelper)); - private static readonly IDictionary TypeMapper = new Dictionary - { - {"System.Guid",typeof(Guid) }, - {"System.Drawing.Rectangle",typeof(System.Drawing.Rectangle) }, - {"System.Drawing.Point",typeof(System.Drawing.Point) }, - {"System.Drawing.Color",typeof(System.Drawing.Color) }, - {"System.Drawing.Bitmap",typeof(System.Drawing.Bitmap) }, - {"System.Drawing.Icon",typeof(System.Drawing.Icon) }, - {"System.Drawing.Size",typeof(System.Drawing.Size) }, - {"System.IO.MemoryStream",typeof(System.IO.MemoryStream) }, - {"System.Drawing.StringAlignment",typeof(System.Drawing.StringAlignment) }, - {"System.Collections.Generic.List`1[[Greenshot.Base.Interfaces.Drawing.IFieldHolder", typeof(List)}, - {"System.Collections.Generic.List`1[[Greenshot.Base.Interfaces.Drawing.IField", typeof(List)}, - {"System.Collections.Generic.List`1[[System.Drawing.Point", typeof(List)}, - {"Greenshot.Editor.Drawing.ArrowContainer", typeof(ArrowContainer) }, - {"Greenshot.Editor.Drawing.ArrowContainer+ArrowHeadCombination", typeof(ArrowContainer.ArrowHeadCombination) }, - {"Greenshot.Editor.Drawing.LineContainer", typeof(LineContainer) }, - {"Greenshot.Editor.Drawing.TextContainer", typeof(TextContainer) }, - {"Greenshot.Editor.Drawing.SpeechbubbleContainer", typeof(SpeechbubbleContainer) }, - {"Greenshot.Editor.Drawing.RectangleContainer", typeof(RectangleContainer) }, - {"Greenshot.Editor.Drawing.EllipseContainer", typeof(EllipseContainer) }, - {"Greenshot.Editor.Drawing.FreehandContainer", typeof(FreehandContainer) }, - {"Greenshot.Editor.Drawing.HighlightContainer", typeof(HighlightContainer) }, - {"Greenshot.Editor.Drawing.IconContainer", typeof(IconContainer) }, - {"Greenshot.Editor.Drawing.ObfuscateContainer", typeof(ObfuscateContainer) }, - {"Greenshot.Editor.Drawing.StepLabelContainer", typeof(StepLabelContainer) }, - {"Greenshot.Editor.Drawing.SvgContainer", typeof(SvgContainer) }, - {"Greenshot.Editor.Drawing.VectorGraphicsContainer", typeof(VectorGraphicsContainer) }, - {"Greenshot.Editor.Drawing.MetafileContainer", typeof(MetafileContainer) }, - {"Greenshot.Editor.Drawing.ImageContainer", typeof(ImageContainer) }, - {"Greenshot.Editor.Drawing.FilterContainer", typeof(FilterContainer) }, - {"Greenshot.Editor.Drawing.DrawableContainer", typeof(DrawableContainer) }, - {"Greenshot.Editor.Drawing.DrawableContainerList", typeof(DrawableContainerList) }, - {"Greenshot.Editor.Drawing.CursorContainer", typeof(CursorContainer) }, - {"Greenshot.Editor.Drawing.Filters.HighlightFilter", typeof(HighlightFilter) }, - {"Greenshot.Editor.Drawing.Filters.GrayscaleFilter", typeof(GrayscaleFilter) }, - {"Greenshot.Editor.Drawing.Filters.MagnifierFilter", typeof(MagnifierFilter) }, - {"Greenshot.Editor.Drawing.Filters.BrightnessFilter", typeof(BrightnessFilter) }, - {"Greenshot.Editor.Drawing.Filters.BlurFilter", typeof(BlurFilter) }, - {"Greenshot.Editor.Drawing.Filters.PixelizationFilter", typeof(PixelizationFilter) }, - {"Greenshot.Base.Interfaces.Drawing.IDrawableContainer", typeof(IDrawableContainer) }, - {"Greenshot.Base.Interfaces.Drawing.EditStatus", typeof(EditStatus) }, - {"Greenshot.Base.Interfaces.Drawing.IFieldHolder", typeof(IFieldHolder) }, - {"Greenshot.Base.Interfaces.Drawing.IField", typeof(IField) }, - {"Greenshot.Base.Interfaces.Drawing.FieldFlag", typeof(FieldFlag) }, - {"Greenshot.Editor.Drawing.Fields.Field", typeof(Field) }, - {"Greenshot.Editor.Drawing.Fields.FieldType", typeof(FieldType) }, - {"Greenshot.Editor.Drawing.FilterContainer+PreparedFilter", typeof(PreparedFilter) }, - }; - - /// - /// Do the type mapping - /// - /// Assembly for the type that was serialized - /// Type that was serialized - /// Type which was mapped - /// If something smells fishy - public override Type BindToType(string assemblyName, string typeName) - { - if (string.IsNullOrEmpty(typeName)) - { - return null; - } - var typeNameCommaLocation = typeName.IndexOf(","); - var comparingTypeName = typeName.Substring(0, typeNameCommaLocation > 0 ? typeNameCommaLocation : typeName.Length); - - // Correct wrong types - comparingTypeName = comparingTypeName.Replace("Greenshot.Drawing", "Greenshot.Editor.Drawing"); - comparingTypeName = comparingTypeName.Replace("Greenshot.Plugin.Drawing", "Greenshot.Base.Interfaces.Drawing"); - comparingTypeName = comparingTypeName.Replace("GreenshotPlugin.Interfaces.Drawing", "Greenshot.Base.Interfaces.Drawing"); - comparingTypeName = comparingTypeName.Replace("Greenshot.Drawing.Fields", "Greenshot.Editor.Drawing.Fields"); - comparingTypeName = comparingTypeName.Replace("Greenshot.Drawing.Filters", "Greenshot.Editor.Drawing.Filters"); - - if (TypeMapper.TryGetValue(comparingTypeName, out var returnType)) - { - LOG.Info($"Mapped {assemblyName} - {typeName} to {returnType.FullName}"); - return returnType; - } - LOG.Warn($"Unexpected Greenshot type in .greenshot file detected, maybe vulnerability attack created with ysoserial? Suspicious type: {assemblyName} - {typeName}"); - throw new SecurityAccessDeniedException($"Suspicious type in .greenshot file: {assemblyName} - {typeName}"); - } - } -} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertApplicationToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertApplicationToDtoTests.cs new file mode 100644 index 000000000..86c0075b5 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertApplicationToDtoTests.cs @@ -0,0 +1,104 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertApplicationToDtoTests +{ + [Fact] + public void ConvertDomainToDto_ApplicationFile_Returns_ApplicationFileDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineContainer = new LineContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + var rectangleContainer = new RectangleContainer(surface) + { + Left = 30, + Top = 40, + Width = 200, + Height = 80 + }; + var domainList = new DrawableContainerList { lineContainer, rectangleContainer }; + var image = new Bitmap(10, 10); + var domain = new GreenshotFile + { + ContainerList = domainList, + Image = image, + SchemaVersion = GreenshotFileVersionHandler.CurrentSchemaVersion + }; + + // Act + var dto = ConvertDomainToDto.ToDto(domain); + + // Assert + Assert.NotNull(dto); + Assert.Equal(domain.SchemaVersion, dto.SchemaVersion); + Assert.NotNull(dto.Image); + Assert.NotNull(dto.ContainerList); + Assert.Equal(2, dto.ContainerList.ContainerList.Count); + Assert.IsType(dto.ContainerList.ContainerList[0]); + Assert.IsType(dto.ContainerList.ContainerList[1]); + + Assert.Equal(lineContainer.Top, dto.ContainerList.ContainerList[0].Top); + Assert.Equal(lineContainer.Left, dto.ContainerList.ContainerList[0].Left); + Assert.Equal(lineContainer.Width, dto.ContainerList.ContainerList[0].Width); + Assert.Equal(lineContainer.Height, dto.ContainerList.ContainerList[0].Height); + + Assert.Equal(rectangleContainer.Top, dto.ContainerList.ContainerList[1].Top); + Assert.Equal(rectangleContainer.Left, dto.ContainerList.ContainerList[1].Left); + Assert.Equal(rectangleContainer.Width, dto.ContainerList.ContainerList[1].Width); + Assert.Equal(rectangleContainer.Height, dto.ContainerList.ContainerList[1].Height); + } + + /// + /// Trivial test to ensure that null ApplicationFile returns null DTO. + /// + [Fact] + public void ToDto_NullApplicationFile_ReturnsNull() + { + // Arrange + GreenshotFile domain = null; + + // Act + // ReSharper disable once ExpressionIsAlwaysNull + var result = ConvertDomainToDto.ToDto(domain); + + // Assert + Assert.Null(result); + } + +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertArrowContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertArrowContainerToDtoTests.cs new file mode 100644 index 000000000..2683591fd --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertArrowContainerToDtoTests.cs @@ -0,0 +1,148 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertArrowContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_ArrowContainer_Returns_ArrowContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var arrowContainer = new ArrowContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + // see ArrowContainer.InitializeFields() for defaults + var defaultLineThickness = 2; + var defaultLineColor = Color.Red; + var defaultFillColor = Color.Transparent; + var defaultShadow = true; + var defaultArrowHeads = ArrowHeadCombination.END_POINT; + + // Act + var result = ConvertDomainToDto.ToDto(arrowContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultArrowHeads = DtoHelper.GetFieldValue(result, FieldType.ARROWHEADS); + + Assert.NotNull(result); + Assert.Equal(arrowContainer.Left, result.Left); + Assert.Equal(arrowContainer.Top, result.Top); + Assert.Equal(arrowContainer.Width, result.Width); + Assert.Equal(arrowContainer.Height, result.Height); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow, (bool)resultShadow); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(defaultFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultArrowHeads); + Assert.IsType(resultArrowHeads); + Assert.Equal(defaultArrowHeads, resultArrowHeads); + } + + [Fact] + public void ConvertDomainToDto_ArrowContainer_with_Field_Values_Returns_ArrowContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var arrowContainer = new ArrowContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + arrowContainer.SetFieldValue(FieldType.LINE_THICKNESS, 3); + arrowContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + arrowContainer.SetFieldValue(FieldType.FILL_COLOR, colorGreen); + arrowContainer.SetFieldValue(FieldType.SHADOW, false); + arrowContainer.SetFieldValue(FieldType.ARROWHEADS, ArrowHeadCombination.BOTH); + + // Act + var result = ConvertDomainToDto.ToDto(arrowContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultArrowHeads = DtoHelper.GetFieldValue(result, FieldType.ARROWHEADS); + + Assert.NotNull(result); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + + Assert.NotNull(resultArrowHeads); + Assert.IsType(resultArrowHeads); + Assert.Equal(ArrowHeadCombination.BOTH, resultArrowHeads); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertCursorContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertCursorContainerToDtoTests.cs new file mode 100644 index 000000000..59391d843 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertCursorContainerToDtoTests.cs @@ -0,0 +1,58 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertCursorContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_CursorContainer_Returns_CursorContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var cursorContainer = new CursorContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + + }; + + // Act + var result = ConvertDomainToDto.ToDto(cursorContainer); + + // Assert + Assert.NotNull(result); + Assert.Equal(cursorContainer.Left, result.Left); + Assert.Equal(cursorContainer.Top, result.Top); + Assert.Equal(cursorContainer.Width, result.Width); + Assert.Equal(cursorContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertDrawableContainerListToDtoTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertDrawableContainerListToDtoTest.cs new file mode 100644 index 000000000..65739529f --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertDrawableContainerListToDtoTest.cs @@ -0,0 +1,74 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertDrawableContainerListToDtoTest +{ + [Fact] + public void ConvertDomainToDto_DrawableContainerList_Returns_DrawableContainerListDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineContainer = new LineContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + var rectangleContainer = new RectangleContainer(surface) + { + Left = 30, + Top = 40, + Width = 200, + Height = 80 + }; + var domainList = new DrawableContainerList { lineContainer, rectangleContainer }; + + // Act + var dto = ConvertDomainToDto.ToDto(domainList); + + // Assert + Assert.NotNull(dto); + Assert.Equal(2, dto.ContainerList.Count); + Assert.IsType(dto.ContainerList[0]); + Assert.IsType(dto.ContainerList[1]); + + Assert.Equal(lineContainer.Top, dto.ContainerList[0].Top); + Assert.Equal(lineContainer.Left, dto.ContainerList[0].Left); + Assert.Equal(lineContainer.Width, dto.ContainerList[0].Width); + Assert.Equal(lineContainer.Height, dto.ContainerList[0].Height); + + Assert.Equal(rectangleContainer.Top, dto.ContainerList[1].Top); + Assert.Equal(rectangleContainer.Left, dto.ContainerList[1].Left); + Assert.Equal(rectangleContainer.Width, dto.ContainerList[1].Width); + Assert.Equal(rectangleContainer.Height, dto.ContainerList[1].Height); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertEllipseContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertEllipseContainerToDtoTests.cs new file mode 100644 index 000000000..22915c3e3 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertEllipseContainerToDtoTests.cs @@ -0,0 +1,135 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertEllipseContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_EllipseContainer_Returns_EllipseContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var ellipseContainer = new EllipseContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + // see EllipseContainer.InitializeFields() for defaults + var defaultLineThickness = 2; + var defaultLineColor = Color.Red; + var defaultFillColor = Color.Transparent; + var defaultShadow = true; + + // Act + var result = ConvertDomainToDto.ToDto(ellipseContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(ellipseContainer.Left, result.Left); + Assert.Equal(ellipseContainer.Top, result.Top); + Assert.Equal(ellipseContainer.Width, result.Width); + Assert.Equal(ellipseContainer.Height, result.Height); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow,(bool)resultShadow); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(defaultFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + } + + [Fact] + public void ConvertDomainToDto_EllipseContainer_with_Field_Values_Returns_EllipseContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var ellipseContainer = new EllipseContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + ellipseContainer.SetFieldValue(FieldType.LINE_THICKNESS, 3); + ellipseContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + ellipseContainer.SetFieldValue(FieldType.FILL_COLOR, colorGreen); + ellipseContainer.SetFieldValue(FieldType.SHADOW, false); + + // Act + var result = ConvertDomainToDto.ToDto(ellipseContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3,resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFieldToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFieldToDtoTests.cs new file mode 100644 index 000000000..04d4faec6 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFieldToDtoTests.cs @@ -0,0 +1,86 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertFieldToDtoTests +{ + /// + /// A collectioan of all supported value types for . + /// + public static IEnumerable GetFieldTestData() + { + yield return [FieldType.FONT_BOLD, typeof(bool), true]; + yield return [FieldType.FONT_FAMILY, typeof(string), "Arial"]; + yield return [FieldType.LINE_THICKNESS, typeof(int), 42]; + yield return [FieldType.PREVIEW_QUALITY, typeof(float), 3.14f]; + yield return [FieldType.PREVIEW_QUALITY, typeof(double), 3.14d]; + yield return [FieldType.PREVIEW_QUALITY, typeof(decimal), 3.14m]; + yield return [FieldType.ARROWHEADS, typeof(ArrowHeadCombination), ArrowHeadCombination.END_POINT]; + yield return [FieldType.TEXT_HORIZONTAL_ALIGNMENT, typeof(StringAlignment), StringAlignment.Center]; + yield return [FieldType.ARROWHEADS, typeof(PreparedFilter), PreparedFilter.TEXT_HIGHTLIGHT]; + yield return [FieldType.FLAGS, typeof(FieldFlag), FieldFlag.COUNTER]; + } + + [Theory] + [MemberData(nameof(GetFieldTestData))] + public void ConvertDomainToDto_Field_Returns_FieldDto(IFieldType field, Type valueType, object value) + { + // Arrange + var original = new Field(field, "TestScope") { Value = value }; + + // Act + var result = ConvertDomainToDto.ToDto(original); + + // Assert + Assert.NotNull(result); + Assert.Equal(field.Name, result.FieldTypeName); + Assert.Equal("TestScope", result.Scope); + Assert.IsType(valueType, result.Value.GetValue()); + Assert.Equal(value, result.Value.GetValue()); + } + + /// + /// trivial test to ensure that null Field returns null DTO. + /// + [Fact] + public void ToDto_NullField_ReturnsNull() + { + // Arrange + Field domain = null; + // Act + // ReSharper disable once ExpressionIsAlwaysNull + var result = ConvertDomainToDto.ToDto(domain); + // Assert + Assert.Null(result); + } + +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFreehandContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFreehandContainerToDtoTests.cs new file mode 100644 index 000000000..cc4bc6b66 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertFreehandContainerToDtoTests.cs @@ -0,0 +1,127 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertFreehandContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_FreehandContainer_Returns_FreehandContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var freehandContainer = new FreehandContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + CapturePoints = [new Point(10, 20), new Point(30, 40)] + }; + // see FreehandContainer.InitializeFields() for defaults + var defaultLineThickness = 3; + var defaultLineColor = Color.Red; + + // Act + var result = ConvertDomainToDto.ToDto(freehandContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + + Assert.NotNull(result); + Assert.Equal(freehandContainer.Left, result.Left); + Assert.Equal(freehandContainer.Top, result.Top); + Assert.Equal(freehandContainer.Width, result.Width); + Assert.Equal(freehandContainer.Height, result.Height); + Assert.NotNull(result.CapturePoints); + Assert.Equal(freehandContainer.CapturePoints.Count, result.CapturePoints.Count); + Assert.Equal(freehandContainer.CapturePoints[0].X, result.CapturePoints[0].X); + Assert.Equal(freehandContainer.CapturePoints[0].Y, result.CapturePoints[0].Y); + Assert.Equal(freehandContainer.CapturePoints[1].X, result.CapturePoints[1].X); + Assert.Equal(freehandContainer.CapturePoints[1].Y, result.CapturePoints[1].Y); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + } + + [Fact] + public void ConvertDomainToDto_FreehandContainer_with_Field_Values_Returns_FreehandContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var freehandContainer = new FreehandContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + CapturePoints = [new Point(10, 20), new Point(30, 40)] + }; + freehandContainer.SetFieldValue(FieldType.LINE_THICKNESS, 5); + freehandContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + + // Act + var result = ConvertDomainToDto.ToDto(freehandContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + + Assert.NotNull(result); + Assert.Equal(freehandContainer.Left, result.Left); + Assert.Equal(freehandContainer.Top, result.Top); + Assert.Equal(freehandContainer.Width, result.Width); + Assert.Equal(freehandContainer.Height, result.Height); + Assert.NotNull(result.CapturePoints); + Assert.Equal(freehandContainer.CapturePoints.Count, result.CapturePoints.Count); + Assert.Equal(freehandContainer.CapturePoints[0].X, result.CapturePoints[0].X); + Assert.Equal(freehandContainer.CapturePoints[0].Y, result.CapturePoints[0].Y); + Assert.Equal(freehandContainer.CapturePoints[1].X, result.CapturePoints[1].X); + Assert.Equal(freehandContainer.CapturePoints[1].Y, result.CapturePoints[1].Y); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(5, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertHighlightContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertHighlightContainerToDtoTests.cs new file mode 100644 index 000000000..3e933d929 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertHighlightContainerToDtoTests.cs @@ -0,0 +1,133 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertHighlightContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_HighlightContainer_Returns_HighlightContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var highlightContainer = new HighlightContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + // see HighlightContainer.InitializeFields() for defaults + var defaultLineThickness = 0; + var defaultLineColor = Color.Red; + var defaultShadow = false; + var defaultPreparedFilter = PreparedFilter.TEXT_HIGHTLIGHT; + + // Act + var result = ConvertDomainToDto.ToDto(highlightContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultPreparedFilter = DtoHelper.GetFieldValue(result, FieldType.PREPARED_FILTER_HIGHLIGHT); + + Assert.NotNull(result); + Assert.Equal(highlightContainer.Left, result.Left); + Assert.Equal(highlightContainer.Top, result.Top); + Assert.Equal(highlightContainer.Width, result.Width); + Assert.Equal(highlightContainer.Height, result.Height); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow,(bool)resultShadow); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(defaultPreparedFilter, resultPreparedFilter); + } + + [Fact] + public void ConvertDomainToDto_HighlightContainer_with_Field_Values_Returns_HighlightContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var highlightContainer = new HighlightContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + highlightContainer.SetFieldValue(FieldType.LINE_THICKNESS, 3); + highlightContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + highlightContainer.SetFieldValue(FieldType.SHADOW, true); + highlightContainer.SetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT, PreparedFilter.AREA_HIGHLIGHT); + + // Act + var result = ConvertDomainToDto.ToDto(highlightContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultPreparedFilter = DtoHelper.GetFieldValue(result, FieldType.PREPARED_FILTER_HIGHLIGHT); + + Assert.NotNull(result); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3,resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.True((bool)resultShadow); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(PreparedFilter.AREA_HIGHLIGHT, resultPreparedFilter); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertIconContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertIconContainerToDtoTests.cs new file mode 100644 index 000000000..89a2db31e --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertIconContainerToDtoTests.cs @@ -0,0 +1,63 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertIconContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_IconContainer_Returns_IconContainerDto() + { + // Arrange + var iconPath = Path.Combine("TestData", "Images", "Greenshot.ico"); + using var iconStream = File.OpenRead(iconPath); + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var iconContainer = new IconContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Icon = new Icon(iconStream) + }; + + // Act + var result = ConvertDomainToDto.ToDto(iconContainer); + + // Assert + Assert.NotNull(result); + Assert.Equal(iconContainer.Left, result.Left); + Assert.Equal(iconContainer.Top, result.Top); + Assert.Equal(iconContainer.Width, result.Width); + Assert.Equal(iconContainer.Height, result.Height); + Assert.NotNull(result.Icon); + Assert.True(result.Icon.Length > 0); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertImageContainerToDtoTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertImageContainerToDtoTest.cs new file mode 100644 index 000000000..f7419253f --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertImageContainerToDtoTest.cs @@ -0,0 +1,93 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertImageContainerToDtoTest +{ + [Fact] + public void ConvertDomainToDto_ImageContainer_Returns_ImageContainerDto() + { + // Arrange + var image = new Bitmap(100, 100); // Create a sample image + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var imageContainer = new ImageContainer(surface); + imageContainer.Image = image; + + // Act + var result = ConvertDomainToDto.ToDto(imageContainer); + + // Assert + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(imageContainer.Left, result.Left); + Assert.Equal(imageContainer.Top, result.Top); + Assert.Equal(imageContainer.Width, result.Width); + Assert.Equal(imageContainer.Height, result.Height); + Assert.NotNull(result.Image); + Assert.True(result.Image.Length > 0); // Ensure the image was serialized + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); // Ensure the shadow flag is false by default + + } + + [Fact] + public void ConvertDomainToDto_ImageContainer_with_shadow_Returns_ImageContainerDto_with_Shadow() + { + // Arrange + var image = new Bitmap(100, 100); // Create a sample image + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var imageContainer = new ImageContainer(surface); + imageContainer.Image = image; + imageContainer.SetFieldValue(FieldType.SHADOW, true); + + // Act + var result = ConvertDomainToDto.ToDto(imageContainer); + + // Assert + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(imageContainer.Left, result.Left); + Assert.Equal(imageContainer.Top, result.Top); + Assert.Equal(imageContainer.Width, result.Width); + Assert.Equal(imageContainer.Height, result.Height); + Assert.NotNull(result.Image); + Assert.True(result.Image.Length > 0); // Ensure the image was serialized + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.True((bool)resultShadow); + } + +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertLineContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertLineContainerToDtoTests.cs new file mode 100644 index 000000000..4c896c253 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertLineContainerToDtoTests.cs @@ -0,0 +1,120 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertLineContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_LineContainer_Returns_LineContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineContainer = new LineContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + // see LineContainer.InitializeFields() for defaults + var defaultLineThickness = 2; + var defaultLineColor = Color.Red; + var defaultShadow = true; + + // Act + var result = ConvertDomainToDto.ToDto(lineContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(lineContainer.Left, result.Left); + Assert.Equal(lineContainer.Top, result.Top); + Assert.Equal(lineContainer.Width, result.Width); + Assert.Equal(lineContainer.Height, result.Height); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow,(bool)resultShadow); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultColor); + Assert.IsType(resultColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultColor)}"); + } + + [Fact] + public void ConvertDomainToDto_LineContainer_with_Field_Values_Returns_LineContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineContainer = new LineContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + lineContainer.SetFieldValue(FieldType.LINE_THICKNESS, 3); + lineContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + lineContainer.SetFieldValue(FieldType.SHADOW, false); + + // Act + var result = ConvertDomainToDto.ToDto(lineContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3,resultLineThickness); + + Assert.NotNull(resultColor); + Assert.IsType(resultColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertMetafileContainerToDtoTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertMetafileContainerToDtoTest.cs new file mode 100644 index 000000000..3487df8f3 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertMetafileContainerToDtoTest.cs @@ -0,0 +1,58 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertMetafileContainerToDtoTest +{ + [Fact] + public void ConvertDomainToDto_MetafileContainer_Returns_MetafileContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var metafilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.emf"); + using var metafileStream = File.OpenRead(metafilePath); + + var metafileContainer = new MetafileContainer(metafileStream, surface); + + // Act + var result = ConvertDomainToDto.ToDto(metafileContainer); + + // Assert + Assert.NotNull(result); + Assert.Equal(metafileContainer.Left, result.Left); + Assert.Equal(metafileContainer.Top, result.Top); + Assert.Equal(metafileContainer.Width, result.Width); + Assert.Equal(metafileContainer.Height, result.Height); + + // Ensure the metafile was serialized + Assert.NotNull(result.MetafileData); + Assert.True(result.MetafileData.Length > 0); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertObfuscateContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertObfuscateContainerToDtoTests.cs new file mode 100644 index 000000000..f23aba5ab --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertObfuscateContainerToDtoTests.cs @@ -0,0 +1,133 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertObfuscateContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_ObfuscateContainer_Returns_ObfuscateContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var obfuscateContainer = new ObfuscateContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + // see ObfuscateContainer.InitializeFields() for defaults + var defaultLineThickness = 0; + var defaultLineColor = Color.Red; + var defaultShadow = false; + var defaultPreparedFilter = PreparedFilter.PIXELIZE; + + // Act + var result = ConvertDomainToDto.ToDto(obfuscateContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultPreparedFilter = DtoHelper.GetFieldValue(result, FieldType.PREPARED_FILTER_OBFUSCATE); + + Assert.NotNull(result); + Assert.Equal(obfuscateContainer.Left, result.Left); + Assert.Equal(obfuscateContainer.Top, result.Top); + Assert.Equal(obfuscateContainer.Width, result.Width); + Assert.Equal(obfuscateContainer.Height, result.Height); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow,(bool)resultShadow); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(defaultPreparedFilter, resultPreparedFilter); + } + + [Fact] + public void ConvertDomainToDto_ObfuscateContainer_with_Field_Values_Returns_ObfuscateContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var obfuscateContainer = new ObfuscateContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + obfuscateContainer.SetFieldValue(FieldType.LINE_THICKNESS, 3); + obfuscateContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + obfuscateContainer.SetFieldValue(FieldType.SHADOW, true); + obfuscateContainer.SetFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE, PreparedFilter.BLUR); + + // Act + var result = ConvertDomainToDto.ToDto(obfuscateContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultPreparedFilter = DtoHelper.GetFieldValue(result, FieldType.PREPARED_FILTER_OBFUSCATE); + + Assert.NotNull(result); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3,resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.True((bool)resultShadow); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(PreparedFilter.BLUR, resultPreparedFilter); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertRectangleContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertRectangleContainerToDtoTests.cs new file mode 100644 index 000000000..cd7d65ed2 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertRectangleContainerToDtoTests.cs @@ -0,0 +1,135 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertRectangleContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_RectangleContainer_Returns_RectangleContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var rectangleContainer = new RectangleContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + // see RectangleContainer.InitializeFields() for defaults + var defaultLineThickness = 2; + var defaultLineColor = Color.Red; + var defaultFillColor = Color.Transparent; + var defaultShadow = true; + + // Act + var result = ConvertDomainToDto.ToDto(rectangleContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(rectangleContainer.Left, result.Left); + Assert.Equal(rectangleContainer.Top, result.Top); + Assert.Equal(rectangleContainer.Width, result.Width); + Assert.Equal(rectangleContainer.Height, result.Height); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow,(bool)resultShadow); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(defaultFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + } + + [Fact] + public void ConvertDomainToDto_RectangleContainer_with_Field_Values_Returns_RectangleContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var rectangleContainer = new RectangleContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + rectangleContainer.SetFieldValue(FieldType.LINE_THICKNESS, 3); + rectangleContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + rectangleContainer.SetFieldValue(FieldType.FILL_COLOR, colorGreen); + rectangleContainer.SetFieldValue(FieldType.SHADOW, false); + + // Act + var result = ConvertDomainToDto.ToDto(rectangleContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + + Assert.NotNull(result); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3,resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSpeechbubbleContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSpeechbubbleContainerToDtoTests.cs new file mode 100644 index 000000000..8fbd02c2a --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSpeechbubbleContainerToDtoTests.cs @@ -0,0 +1,223 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertSpeechbubbleContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_SpeechbubbleContainer_Returns_SpeechbubbleContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var speechbubbleContainer = new SpeechbubbleContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!", + StoredTargetGripperLocation = new Point(30, 40) + }; + // see SpeechbubbleContainer.InitializeFields() for defaults + var defaultLineThickness = 2; + var defaultLineColor = Color.Blue; + var defaultFillColor = Color.White; + var defaultShadow = false; + var defaultFontItalic = false; + var defaultFontBold = true; + var defaultFontFamily = FontFamily.GenericSansSerif.Name; + var defaultFontSize = 20f; + var defaultTextHorizontalAlignment = StringAlignment.Center; + var defaultTextVerticalAlignment = StringAlignment.Center; + + // Act + var result = ConvertDomainToDto.ToDto(speechbubbleContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultFontItalic = DtoHelper.GetFieldValue(result, FieldType.FONT_ITALIC); + var resultFontBold = DtoHelper.GetFieldValue(result, FieldType.FONT_BOLD); + var resultFontFamily = DtoHelper.GetFieldValue(result, FieldType.FONT_FAMILY); + var resultFontSize = DtoHelper.GetFieldValue(result, FieldType.FONT_SIZE); + var resultTextHorizontalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultTextVerticalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(result); + Assert.Equal(speechbubbleContainer.Left, result.Left); + Assert.Equal(speechbubbleContainer.Top, result.Top); + Assert.Equal(speechbubbleContainer.Width, result.Width); + Assert.Equal(speechbubbleContainer.Height, result.Height); + Assert.Equal(speechbubbleContainer.Text, ((SpeechbubbleContainerDto)result).Text); + Assert.Equal(speechbubbleContainer.StoredTargetGripperLocation.X, ((SpeechbubbleContainerDto)result).StoredTargetGripperLocation.X); + Assert.Equal(speechbubbleContainer.StoredTargetGripperLocation.Y, ((SpeechbubbleContainerDto)result).StoredTargetGripperLocation.Y); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(defaultFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow, (bool)resultShadow); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.Equal(defaultFontItalic, (bool)resultFontItalic); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.Equal(defaultFontBold, (bool)resultFontBold); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(defaultFontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(defaultFontSize, resultFontSize); + + Assert.NotNull(resultTextHorizontalAlignment); + Assert.IsType(resultTextHorizontalAlignment); + Assert.Equal(defaultTextHorizontalAlignment, resultTextHorizontalAlignment); + + Assert.NotNull(resultTextVerticalAlignment); + Assert.IsType(resultTextVerticalAlignment); + Assert.Equal(defaultTextVerticalAlignment, resultTextVerticalAlignment); + } + + [Fact] + public void ConvertDomainToDto_SpeechbubbleContainer_with_Field_Values_Returns_SpeechbubbleContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var colorWhite = Color.White; + var fontFamily = FontFamily.GenericSansSerif.Name; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var speechbubbleContainer = new SpeechbubbleContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!", + StoredTargetGripperLocation = new Point(30, 40) + }; + speechbubbleContainer.SetFieldValue(FieldType.LINE_THICKNESS, 2); + speechbubbleContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + speechbubbleContainer.SetFieldValue(FieldType.FILL_COLOR, colorWhite); + speechbubbleContainer.SetFieldValue(FieldType.SHADOW, false); + speechbubbleContainer.SetFieldValue(FieldType.FONT_ITALIC, false); + speechbubbleContainer.SetFieldValue(FieldType.FONT_BOLD, true); + speechbubbleContainer.SetFieldValue(FieldType.FONT_FAMILY, fontFamily); + speechbubbleContainer.SetFieldValue(FieldType.FONT_SIZE, 20f); + speechbubbleContainer.SetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center); + speechbubbleContainer.SetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center); + + // Act + var result = ConvertDomainToDto.ToDto(speechbubbleContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultFontItalic = DtoHelper.GetFieldValue(result, FieldType.FONT_ITALIC); + var resultFontBold = DtoHelper.GetFieldValue(result, FieldType.FONT_BOLD); + var resultFontFamily = DtoHelper.GetFieldValue(result, FieldType.FONT_FAMILY); + var resultFontSize = DtoHelper.GetFieldValue(result, FieldType.FONT_SIZE); + var resultTextHorizontalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultTextVerticalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(result); + Assert.Equal(speechbubbleContainer.Left, result.Left); + Assert.Equal(speechbubbleContainer.Top, result.Top); + Assert.Equal(speechbubbleContainer.Width, result.Width); + Assert.Equal(speechbubbleContainer.Height, result.Height); + Assert.Equal(speechbubbleContainer.Text, ((SpeechbubbleContainerDto)result).Text); + Assert.Equal(speechbubbleContainer.StoredTargetGripperLocation.X, ((SpeechbubbleContainerDto)result).StoredTargetGripperLocation.X); + Assert.Equal(speechbubbleContainer.StoredTargetGripperLocation.Y, ((SpeechbubbleContainerDto)result).StoredTargetGripperLocation.Y); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(2,resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorWhite, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorWhite)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.False((bool)resultFontItalic); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.True((bool)resultFontBold); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(fontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(20f, resultFontSize); + + Assert.NotNull(resultTextHorizontalAlignment); + Assert.IsType(resultTextHorizontalAlignment); + Assert.Equal(StringAlignment.Center, resultTextHorizontalAlignment); + + Assert.NotNull(resultTextVerticalAlignment); + Assert.IsType(resultTextVerticalAlignment); + Assert.Equal(StringAlignment.Center, resultTextVerticalAlignment); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertStepLabelContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertStepLabelContainerToDtoTests.cs new file mode 100644 index 000000000..5f5aef53b --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertStepLabelContainerToDtoTests.cs @@ -0,0 +1,138 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertStepLabelContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_StepLabelContainer_Returns_StepLabelContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var stepLabelContainer = new StepLabelContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Number = 2, + CounterStart = 1 + }; + // see StepLabelContainer.InitializeFields() for defaults + var defaultFillColor = Color.DarkRed; + var defaultLineColor = Color.White; + var defaultFlags = FieldFlag.COUNTER; + + // Act + var result = ConvertDomainToDto.ToDto(stepLabelContainer); + + // Assert + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFlags = DtoHelper.GetFieldValue(result, FieldType.FLAGS); + + Assert.NotNull(result); + Assert.Equal(stepLabelContainer.Left, result.Left); + Assert.Equal(stepLabelContainer.Top, result.Top); + Assert.Equal(stepLabelContainer.Width, result.Width); + Assert.Equal(stepLabelContainer.Height, result.Height); + Assert.Equal(stepLabelContainer.Number, ((StepLabelContainerDto)result).Number); + Assert.Equal(stepLabelContainer.CounterStart, ((StepLabelContainerDto)result).CounterStart); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(defaultFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFlags); + Assert.IsType(resultFlags); + Assert.Equal(defaultFlags, (FieldFlag)resultFlags); + } + + [Fact] + public void ConvertDomainToDto_StepLabelContainer_with_Field_Values_Returns_StepLabelContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var stepLabelContainer = new StepLabelContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Number = 5, + CounterStart = 3 + }; + stepLabelContainer.SetFieldValue(FieldType.FILL_COLOR, colorBlue); + stepLabelContainer.SetFieldValue(FieldType.LINE_COLOR, colorGreen); + // stays the same as default + stepLabelContainer.SetFieldValue(FieldType.FLAGS , FieldFlag.COUNTER); + + // Act + var result = ConvertDomainToDto.ToDto(stepLabelContainer); + + // Assert + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultFlags = DtoHelper.GetFieldValue(result, FieldType.FLAGS); + + Assert.NotNull(result); + Assert.Equal(stepLabelContainer.Left, result.Left); + Assert.Equal(stepLabelContainer.Top, result.Top); + Assert.Equal(stepLabelContainer.Width, result.Width); + Assert.Equal(stepLabelContainer.Height, result.Height); + Assert.Equal(stepLabelContainer.Number, ((StepLabelContainerDto)result).Number); + Assert.Equal(stepLabelContainer.CounterStart, ((StepLabelContainerDto)result).CounterStart); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFlags); + Assert.IsType(resultFlags); + Assert.Equal(FieldFlag.COUNTER, (FieldFlag)resultFlags); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSvgContainerToDtoTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSvgContainerToDtoTest.cs new file mode 100644 index 000000000..19acf1b4c --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertSvgContainerToDtoTest.cs @@ -0,0 +1,58 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertSvgContainerToDtoTest +{ + [Fact] + public void ConvertDomainToDto_SvgContainer_Returns_SvgContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var svgFilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.svg"); + using var svgStream = File.OpenRead(svgFilePath); + + var svgContainer = new SvgContainer(svgStream, surface); + + // Act + var result = ConvertDomainToDto.ToDto(svgContainer); + + // Assert + Assert.NotNull(result); + Assert.Equal(svgContainer.Left, result.Left); + Assert.Equal(svgContainer.Top, result.Top); + Assert.Equal(svgContainer.Width, result.Width); + Assert.Equal(svgContainer.Height, result.Height); + + // Ensure the SVG was serialized + Assert.NotNull(result.SvgData); + Assert.True(result.SvgData.Length > 0); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertTextContainerToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertTextContainerToDtoTests.cs new file mode 100644 index 000000000..f492c8284 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertTextContainerToDtoTests.cs @@ -0,0 +1,216 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +[Collection("DefaultCollection")] +public class ConvertTextContainerToDtoTests +{ + [Fact] + public void ConvertDomainToDto_TextContainer_Returns_TextContainerDto() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var textContainer = new TextContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!" + }; + + // see TextContainer.InitializeFields() for defaults + var defaultLineThickness = 2; + var defaultLineColor = Color.Red; + var defaultShadow = true; + var defaultFontItalic = false; + var defaultFontBold = false; + var defaultFillColor = Color.Transparent; + var defaultFontFamily = FontFamily.GenericSansSerif.Name; + var defaultFontSize = 11f; + var defaultTextHorizontalAlignment = StringAlignment.Center; + var defaultTextVerticalAlignment = StringAlignment.Center; + + // Act + var result = ConvertDomainToDto.ToDto(textContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultFontItalic = DtoHelper.GetFieldValue(result, FieldType.FONT_ITALIC); + var resultFontBold = DtoHelper.GetFieldValue(result, FieldType.FONT_BOLD); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultFontFamily = DtoHelper.GetFieldValue(result, FieldType.FONT_FAMILY); + var resultFontSize = DtoHelper.GetFieldValue(result, FieldType.FONT_SIZE); + var resultTextHorizontalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultTextVerticalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(result); + Assert.Equal(textContainer.Left, result.Left); + Assert.Equal(textContainer.Top, result.Top); + Assert.Equal(textContainer.Width, result.Width); + Assert.Equal(textContainer.Height, result.Height); + Assert.Equal(textContainer.Text, ((TextContainerDto)result).Text); + + //Test Workaround also + Assert.Equal(textContainer.Text, textContainer.Text); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(defaultLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(defaultLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(defaultShadow, (bool)resultShadow); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.Equal(defaultFontItalic, (bool)resultFontItalic); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.Equal(defaultFontBold, (bool)resultFontBold); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(defaultFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(defaultFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(defaultFontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(defaultFontSize, resultFontSize); + + Assert.NotNull(resultTextHorizontalAlignment); + Assert.IsType(resultTextHorizontalAlignment); + Assert.Equal(defaultTextHorizontalAlignment, resultTextHorizontalAlignment); + + Assert.NotNull(resultTextVerticalAlignment); + Assert.IsType(resultTextVerticalAlignment); + Assert.Equal(defaultTextVerticalAlignment, resultTextVerticalAlignment); + } + + [Fact] + public void ConvertDomainToDto_TextContainer_with_Field_Values_Returns_TextContainerDto_with_same_Values() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var fontFamilyName = "Arial"; + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var textContainer = new TextContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!" + }; + textContainer.SetFieldValue(FieldType.LINE_THICKNESS, 3); + textContainer.SetFieldValue(FieldType.LINE_COLOR, colorBlue); + textContainer.SetFieldValue(FieldType.SHADOW, false); + textContainer.SetFieldValue(FieldType.FONT_ITALIC, true); + textContainer.SetFieldValue(FieldType.FONT_BOLD, true); + textContainer.SetFieldValue(FieldType.FILL_COLOR, colorGreen); + textContainer.SetFieldValue(FieldType.FONT_FAMILY, fontFamilyName); + textContainer.SetFieldValue(FieldType.FONT_SIZE, 12f); + textContainer.SetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Far); + textContainer.SetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Far); + + // Act + var result = ConvertDomainToDto.ToDto(textContainer); + + // Assert + var resultLineThickness = DtoHelper.GetFieldValue(result, FieldType.LINE_THICKNESS); + var resultLineColor = DtoHelper.GetFieldValue(result, FieldType.LINE_COLOR); + var resultShadow = DtoHelper.GetFieldValue(result, FieldType.SHADOW); + var resultFontItalic = DtoHelper.GetFieldValue(result, FieldType.FONT_ITALIC); + var resultFontBold = DtoHelper.GetFieldValue(result, FieldType.FONT_BOLD); + var resultFillColor = DtoHelper.GetFieldValue(result, FieldType.FILL_COLOR); + var resultFontFamily = DtoHelper.GetFieldValue(result, FieldType.FONT_FAMILY); + var resultFontSize = DtoHelper.GetFieldValue(result, FieldType.FONT_SIZE); + var resultTextHorizontalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultTextVerticalAlignment = DtoHelper.GetFieldValue(result, FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(result); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.True((bool)resultFontItalic); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.True((bool)resultFontBold); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(fontFamilyName, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(12f, resultFontSize); + + Assert.NotNull(resultTextHorizontalAlignment); + Assert.IsType(resultTextHorizontalAlignment); + Assert.Equal(StringAlignment.Far, resultTextHorizontalAlignment); + + Assert.NotNull(resultTextVerticalAlignment); + Assert.IsType(resultTextVerticalAlignment); + Assert.Equal(StringAlignment.Far, resultTextVerticalAlignment); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertValueToDtoTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertValueToDtoTests.cs new file mode 100644 index 000000000..400ba75ea --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DomainToDto/ConvertValueToDtoTests.cs @@ -0,0 +1,115 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DomainToDto; + +public class ConvertValueToDtoTests +{ + /// + /// A collectioan of all supported value types for . + /// + public static IEnumerable GetValueTestData() + { + yield return [typeof(int), typeof(IntFieldValueDto), 42]; + yield return [typeof(string), typeof(StringFieldValueDto), "test"]; + yield return [typeof(bool), typeof(BoolFieldValueDto), true]; + yield return [typeof(float), typeof(SingleFieldValueDto), 3.14f]; + yield return [typeof(double), typeof(DoubleFieldValueDto), 3.14d]; + yield return [typeof(decimal), typeof(DecimalFieldValueDto), 3.14m]; + yield return [typeof(ArrowContainer.ArrowHeadCombination), typeof(ArrowHeadCombinationFieldValueDto), ArrowContainer.ArrowHeadCombination.END_POINT]; + yield return [typeof(FilterContainer.PreparedFilter), typeof(PreparedFilterFieldValueDto), FilterContainer.PreparedFilter.AREA_HIGHLIGHT]; + yield return [typeof(StringAlignment), typeof(StringAlignmentFieldValueDto), StringAlignment.Center]; + yield return [typeof(FieldFlag), typeof(FieldFlagFieldValueDto), FieldFlag.CONFIRMABLE]; + } + + /// + /// This test ensures that the method produces + /// a DTO of the corresponding type and that the DTO encapsulates the original domain value correctly. + /// + [Theory] + [MemberData(nameof(GetValueTestData))] + public void ConvertValueToDto_DomainType_Returns_FieldValueDtoType(Type domainValueType, Type dtoType, object value) + { + // Act + var result = ConvertDomainToDto.ConvertValueToDto(value); + + // Assert + Assert.IsType(dtoType, result); + Assert.IsType(domainValueType, ((FieldValueDto)result).GetValue()); + Assert.Equal(value, ((FieldValueDto)result).GetValue()); + } + + /// + /// Tests that the method correctly converts a value into an instance of . + /// + /// It's a dedicated test because needs a special compare. + [Fact] + public void ConvertValueToDto_Color_Returns_ColorFieldValueDtoType() + { + // Arrange + Color value = Color.Red; + + // Act + var result = ConvertDomainToDto.ConvertValueToDto(value); + + // Assert + Assert.IsType(result); + Assert.IsType(((ColorFieldValueDto)result).GetValue()); + var resultColorValue = (Color)((ColorFieldValueDto)result).GetValue(); + + // special compare, because we only store the ARGB value + Assert.True(DtoHelper.CompareColorValue(value, resultColorValue), + $"The color values are different. expected:{DtoHelper.ArgbString(value)} result:{DtoHelper.ArgbString(resultColorValue)}"); + } + + [Fact] + public void ConvertValueToDto_NullValue_ReturnsNullFieldValue() + { + // Arrange + object value = null; + + // Act + // ReSharper disable once ExpressionIsAlwaysNull + var result = ConvertDomainToDto.ConvertValueToDto(value); + + // Assert + Assert.IsType(result); + } + + [Fact] + public void ConvertValueToDto_UnsupportedType_ThrowsArgumentException() + { + // Arrange + var value = new object(); + + // Act & Assert + Assert.Throws(() => ConvertDomainToDto.ConvertValueToDto(value)); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToApplicationFileTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToApplicationFileTests.cs new file mode 100644 index 000000000..a8e215e69 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToApplicationFileTests.cs @@ -0,0 +1,93 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToApplicationFileTests +{ + [Fact] + public void ConvertDtoToDomain_ApplicationFileDto_Returns_ApplicationFile() + { + // Arrange + var lineDto = new LineContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + var rectangleDto = new RectangleContainerDto + { + Left = 30, + Top = 40, + Width = 200, + Height = 80 + }; + var dtoList = new DrawableContainerListDto + { + ContainerList = [lineDto, rectangleDto] + }; + var image = new Bitmap(100, 100); // Create a sample image + byte[] imageData; + using (var memoryStream = new MemoryStream()) + { + image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png); + imageData = memoryStream.ToArray(); + } + var dto = new GreenshotFileDto + { + ContainerList = dtoList, + Image = imageData, + SchemaVersion = GreenshotFileVersionHandler.CurrentSchemaVersion + }; + + // Act + var domain = ConvertDtoToDomain.ToDomain(dto); + + // Assert + Assert.NotNull(domain); + Assert.Equal(dto.SchemaVersion, domain.SchemaVersion); + Assert.NotNull(domain.Image); + Assert.NotNull(domain.ContainerList); + Assert.Equal(2, domain.ContainerList.Count); + Assert.IsType(domain.ContainerList[0]); + Assert.IsType(domain.ContainerList[1]); + + Assert.Equal(lineDto.Top, domain.ContainerList[0].Top); + Assert.Equal(lineDto.Left, domain.ContainerList[0].Left); + Assert.Equal(lineDto.Width, domain.ContainerList[0].Width); + Assert.Equal(lineDto.Height, domain.ContainerList[0].Height); + + Assert.Equal(rectangleDto.Top, domain.ContainerList[1].Top); + Assert.Equal(rectangleDto.Left, domain.ContainerList[1].Left); + Assert.Equal(rectangleDto.Width, domain.ContainerList[1].Width); + Assert.Equal(rectangleDto.Height, domain.ContainerList[1].Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToArrowContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToArrowContainerTests.cs new file mode 100644 index 000000000..5a43ac20d --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToArrowContainerTests.cs @@ -0,0 +1,133 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToArrowContainerTests +{ + [Fact] + public void ConvertDtoToDomain_ArrowContainerDto_Returns_ArrowContainer() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var dto = new ArrowContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(ArrowContainer), + Value = new IntFieldValueDto + { + Value = 3 // default in ArrowContainer is 2 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(ArrowContainer), + Value = new ColorFieldValueDto + { + Value = colorBlue // default in ArrowContainer is Red + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FILL_COLOR), + Scope = nameof(ArrowContainer), + Value = new ColorFieldValueDto + { + Value = colorGreen // default in ArrowContainer is Transparent + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(ArrowContainer), + Value = new BoolFieldValueDto + { + Value = false // default in ArrowContainer is true + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.ARROWHEADS), + Scope = nameof(ArrowContainer), + Value = new ArrowHeadCombinationFieldValueDto + { + Value = ArrowHeadCombination.BOTH // default in ArrowContainer is END_POINT + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto,null); + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = result.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + var resultArrowHeads = result.GetFieldValue(FieldType.ARROWHEADS); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + + Assert.NotNull(resultArrowHeads); + Assert.IsType(resultArrowHeads); + Assert.Equal(ArrowHeadCombination.BOTH, resultArrowHeads); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToCursorContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToCursorContainerTests.cs new file mode 100644 index 000000000..5d8b44556 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToCursorContainerTests.cs @@ -0,0 +1,52 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToCursorContainerTests +{ + [Fact] + public void ConvertDtoToDomain_CursorContainerDto_Returns_CursorContainer() + { + // Arrange + var dto = new CursorContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToDrawableContainerListTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToDrawableContainerListTest.cs new file mode 100644 index 000000000..7defca2d8 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToDrawableContainerListTest.cs @@ -0,0 +1,74 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Collections.Generic; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToDrawableContainerListTest +{ + [Fact] + public void ConvertDtoToDomain_DrawableContainerListDto_Returns_DrawableContainerList() + { + // Arrange + var lineDto = new LineContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + var rectangleDto = new RectangleContainerDto + { + Left = 30, + Top = 40, + Width = 200, + Height = 80 + }; + var dtoList = new DrawableContainerListDto + { + ContainerList = [lineDto, rectangleDto] + }; + + // Act + var domainList = ConvertDtoToDomain.ToDomain(dtoList); + + // Assert + Assert.NotNull(domainList); + Assert.Equal(2, domainList.Count); + Assert.IsType(domainList[0]); + Assert.IsType(domainList[1]); + + Assert.Equal(lineDto.Top, domainList[0].Top); + Assert.Equal(lineDto.Left, domainList[0].Left); + Assert.Equal(lineDto.Width, domainList[0].Width); + Assert.Equal(lineDto.Height, domainList[0].Height); + + Assert.Equal(rectangleDto.Top, domainList[1].Top); + Assert.Equal(rectangleDto.Left, domainList[1].Left); + Assert.Equal(rectangleDto.Width, domainList[1].Width); + Assert.Equal(rectangleDto.Height, domainList[1].Height); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToEllipseContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToEllipseContainerTests.cs new file mode 100644 index 000000000..9f1a7ee56 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToEllipseContainerTests.cs @@ -0,0 +1,118 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToEllipseContainerTests +{ + [Fact] + public void ConvertDtoToDomain_EllipseContainerDto_Returns_EllipseContainer() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var dto = new EllipseContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(EllipseContainer), + Value = new IntFieldValueDto + { + Value = 3 // default in EllipseContainer is 2 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(EllipseContainer), + Value = new ColorFieldValueDto + { + Value = colorBlue // default in EllipseContainer is Red + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FILL_COLOR), + Scope = nameof(EllipseContainer), + Value = new ColorFieldValueDto + { + Value = colorGreen // default in EllipseContainer is Transparent + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(EllipseContainer), + Value = new BoolFieldValueDto + { + Value = false // default in EllipseContainer is true + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = result.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFieldTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFieldTests.cs new file mode 100644 index 000000000..59747d360 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFieldTests.cs @@ -0,0 +1,106 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +public class ConvertDtoToFieldTests +{ + /// + /// A collectioan of all supported value types for . + /// + public static IEnumerable GetFieldValueTestData() + { + yield return [FieldType.FONT_BOLD, typeof(bool), new BoolFieldValueDto { Value = true }, true]; + yield return [FieldType.FONT_FAMILY, typeof(string), new StringFieldValueDto { Value = "Arial" }, "Arial"]; + yield return [FieldType.LINE_THICKNESS, typeof(int), new IntFieldValueDto { Value = 42 }, 42]; + yield return [FieldType.PREVIEW_QUALITY, typeof(float), new SingleFieldValueDto { Value = 3.14f }, 3.14f]; + yield return [FieldType.PREVIEW_QUALITY, typeof(double), new DoubleFieldValueDto { Value = 3.14d }, 3.14d]; + yield return [FieldType.PREVIEW_QUALITY, typeof(decimal), new DecimalFieldValueDto { Value = 3.14m }, 3.14m]; + yield return [FieldType.PREVIEW_QUALITY, typeof(ArrowHeadCombination), new ArrowHeadCombinationFieldValueDto { Value = ArrowHeadCombination.END_POINT }, ArrowHeadCombination.END_POINT]; + yield return [FieldType.PREPARED_FILTER_HIGHLIGHT, typeof(PreparedFilter), new PreparedFilterFieldValueDto { Value = PreparedFilter.AREA_HIGHLIGHT }, PreparedFilter.AREA_HIGHLIGHT]; + yield return [FieldType.TEXT_HORIZONTAL_ALIGNMENT, typeof(StringAlignment), new StringAlignmentFieldValueDto { Value = StringAlignment.Center }, StringAlignment.Center]; + yield return [FieldType.FLAGS, typeof(FieldFlag), new FieldFlagFieldValueDto { Value = FieldFlag.CONFIRMABLE }, FieldFlag.CONFIRMABLE]; + } + + /// + /// This test verifies that the method correctly maps + /// the properties of a to a object. + /// + [Theory] + [MemberData(nameof(GetFieldValueTestData))] + public void ConvertDTOToDomain_FieldDto_Returns_Field(IFieldType field, Type valueType, FieldValueDto dto, object value) + { + // Arrange + var fieldDto = new FieldDto + { + FieldTypeName = field.Name, + Scope = "TestScope", + Value = dto + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(fieldDto); + + // Assert + Assert.NotNull(result); + Assert.Equal(field.Name, result.FieldType.Name); + Assert.Equal("TestScope", result.Scope); + Assert.IsType(valueType, result.Value); + Assert.Equal(value, result.Value); + } + + [Fact] + public void ConvertDTOToDomain_ColorFieldValueDto_ReturnsColorField() + { + // Arrange + var redColor = Color.Red; + var dto = new ColorFieldValueDto { Value = redColor }; + var fieldDto = new FieldDto + { + FieldTypeName = FieldType.FILL_COLOR.Name, + Scope = "TestScope", + Value = dto + }; + // Act + var result = ConvertDtoToDomain.ToDomain(fieldDto); + + // Assert + Assert.NotNull(result); + Assert.Equal(FieldType.FILL_COLOR.Name, result.FieldType.Name); + Assert.Equal("TestScope", result.Scope); + + Assert.IsType(result.Value); + // special compare, because we only store the ARGB value + Assert.True(DtoHelper.CompareColorValue(redColor, (Color)result.Value), + $"The color values are different. expected:{DtoHelper.ArgbString(redColor)} result:{DtoHelper.ArgbString((Color)result.Value)}"); + } + +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFreehandContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFreehandContainerTests.cs new file mode 100644 index 000000000..a77b353b7 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToFreehandContainerTests.cs @@ -0,0 +1,97 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToFreehandContainerTests +{ + [Fact] + public void ConvertDtoToDomain_FreehandContainerDto_Returns_FreehandContainer() + { + // Arrange + var colorRed = System.Drawing.Color.Red; + var dto = new FreehandContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + CapturePoints = [new PointDto { X = 10, Y = 20 }, new PointDto { X = 30, Y = 40 }], + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(FreehandContainer), + Value = new IntFieldValueDto + { + Value = 2 // default in FreehandContainer is 3 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(FreehandContainer), + Value = new ColorFieldValueDto + { + Value = colorRed // default in FreehandContainer is Red + } + }] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(result); + Assert.IsType(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + Assert.NotNull(result.CapturePoints); + Assert.Equal(dto.CapturePoints.Count, result.CapturePoints.Count); + Assert.Equal(dto.CapturePoints[0].X, result.CapturePoints[0].X); + Assert.Equal(dto.CapturePoints[0].Y, result.CapturePoints[0].Y); + Assert.Equal(dto.CapturePoints[1].X, result.CapturePoints[1].X); + Assert.Equal(dto.CapturePoints[1].Y, result.CapturePoints[1].Y); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(2, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorRed, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorRed)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToHighlightContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToHighlightContainerTests.cs new file mode 100644 index 000000000..21de71aa0 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToHighlightContainerTests.cs @@ -0,0 +1,128 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using System.Linq; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.Drawing.Filters; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToHighlightContainerTests +{ + [Fact] + public void ConvertDtoToDomain_HighlightContainerDto_Returns_HighlightContainer() + { + // Arrange + var colorBlue = Color.Blue; + var dto = new HighlightContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(HighlightContainer), + Value = new IntFieldValueDto + { + Value = 3 // default in HighlightContainer is 0 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(HighlightContainer), + Value = new ColorFieldValueDto + { + Value = colorBlue // default in HighlightContainer is Red + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(HighlightContainer), + Value = new BoolFieldValueDto + { + Value = true // default in HighlightContainer is false + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.PREPARED_FILTER_HIGHLIGHT), + Scope = nameof(HighlightContainer), + Value = new PreparedFilterFieldValueDto + { + Value = PreparedFilter.AREA_HIGHLIGHT // default in HighlightContainer is TEXT_HIGHTLIGHT + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + var resultPreparedFilter = result.GetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT); + var allFilter = result.Filters; + var brigthnessFilter = allFilter.OfType().FirstOrDefault(); + var blurFilter = allFilter.OfType().FirstOrDefault(); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.True((bool)resultShadow); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(PreparedFilter.AREA_HIGHLIGHT, resultPreparedFilter); + + // PreparedFilter.AREA_HIGHLIGHT should add BrightnessFilter and BlurFilter + Assert.NotNull(allFilter); + Assert.Equal(2,allFilter?.Count); + Assert.NotNull(brigthnessFilter); + Assert.NotNull(blurFilter); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToIconContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToIconContainerTests.cs new file mode 100644 index 000000000..2980e6fe9 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToIconContainerTests.cs @@ -0,0 +1,66 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.IO; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToIconContainerTests +{ + [Fact] + public void ConvertDtoToDomain_IconContainerDto_Returns_IconContainer() + { + // Arrange + var iconPath = Path.Combine("TestData", "Images", "Greenshot.ico"); + using var iconStream = File.OpenRead(iconPath); + using var memoryStream = new MemoryStream(); + iconStream.CopyTo(memoryStream); + var iconBytes = memoryStream.ToArray(); + // Default Icon size, chosen by System.Drawing.Icon ctor(stream) in ToDomain() + var defaultIconSize = new { Width = 32, Height = 32 }; + + var dto = new IconContainerDto + { + Left = 10, + Top = 20, + Width = 222, // different width for testing, Icon is scaled + Height = 222, // different height for testing, Icon is scaled + Icon = iconBytes + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(result.Icon); + Assert.Equal(defaultIconSize.Width, result.Icon.Width); + Assert.Equal(defaultIconSize.Height, result.Icon.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToImageContainerTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToImageContainerTest.cs new file mode 100644 index 000000000..ec7112972 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToImageContainerTest.cs @@ -0,0 +1,144 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using System.IO; +using Greenshot.Base.Effects; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToImageContainerTest +{ + [Fact] + public void ConvertDtoToDomain_ImageContainerDto_Returns_ImageContainer() + { + // Arrange + var image = new Bitmap(100, 100); // Create a sample image + byte[] imageData; + using (var memoryStream = new MemoryStream()) + { + image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png); + imageData = memoryStream.ToArray(); + } + + var dto = new ImageContainerDto + { + Left = 10, + Top = 20, + Width = 222, // different width for testing, because the image is 100x100, so it is scaled + Height = 222, // different height for testing, because the image is 100x100, so it is scaled + Image = imageData, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(ImageContainer), + Value = new BoolFieldValueDto + { + Value = false + } + }] + }; + + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(222, result.Width); + Assert.Equal(222, result.Height); + Assert.NotNull(result.Image); + Assert.Equal(image.Width, result.Image.Width); + Assert.Equal(image.Height, result.Image.Height); + } + + /// + /// Test with shadow, the recalculates the size and position + /// + [Fact] + public void ConvertDtoToDomain_ImageContainerDto_with_shadow_Returns_ImageContainer_with_shadow() + { + // Arrange + var dropShadowImpact = new + { + AdditionalWidth = 14, + AdditionalHeight = 14, + OffsetTop = 1, + OffsetLeft = 1 + }; + + var image = new Bitmap(100, 100); // Create a sample image + byte[] imageData; + using (var memoryStream = new MemoryStream()) + { + image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png); + imageData = memoryStream.ToArray(); + } + + var dto = new ImageContainerDto + { + Left = 10, + Top = 20, + Width = 222, // different width for testing, because the image is 100x100 + Height = 222, // different height for testing, because the image is 100x100 + Image = imageData, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(ImageContainer), + Value = new BoolFieldValueDto + { + Value = true + } + }] + + }; + + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + Assert.NotNull(result); + + IField shadowField = result.GetField(FieldType.SHADOW); + Assert.NotNull(shadowField); + Assert.IsType(shadowField.Value); + Assert.True((bool)shadowField.Value); // Ensure the shadow flag is true + + Assert.Equal(dto.Left + dropShadowImpact.OffsetLeft, result.Left); + Assert.Equal(dto.Top + dropShadowImpact.OffsetTop, result.Top); + Assert.Equal(100 + dropShadowImpact.AdditionalWidth, result.Width); + Assert.Equal(100 + dropShadowImpact.AdditionalHeight, result.Height); + Assert.NotNull(result.Image); + Assert.Equal(image.Width, result.Image.Width); + Assert.Equal(image.Height, result.Image.Height); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToLineContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToLineContainerTests.cs new file mode 100644 index 000000000..0fb0329bb --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToLineContainerTests.cs @@ -0,0 +1,103 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToLineContainerTests +{ + [Fact] + public void ConvertDtoToDomain_LineContainerDto_Returns_LineContainer() + { + // Arrange + var colorBlue = Color.Blue; + var dto = new LineContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(LineContainer), + Value = new IntFieldValueDto + { + Value = 3 // default in LineContainer is 2 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(LineContainer), + Value = new ColorFieldValueDto + { + Value = colorBlue // default in LineContainer is Red + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(LineContainer), + Value = new BoolFieldValueDto + { + Value = false // default in LineContainer is true + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + } + +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToMetafileContainerTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToMetafileContainerTest.cs new file mode 100644 index 000000000..da016d323 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToMetafileContainerTest.cs @@ -0,0 +1,65 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.IO; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToMetafileContainerTest +{ + + [Fact] + public void ConvertDtoToDomain_MetafileContainerDto_Returns_MetafileContainer() + { + // Arrange + var metafilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.wmf"); + byte[] metafileData = File.ReadAllBytes(metafilePath); + + var dto = new MetafileContainerDto + { + Left = 10, + Top = 20, + Width = 222, + Height = 222, + MetafileData = metafileData + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + // only simple check + Assert.NotNull(result.MetafileContent); + + // check current values from Logo_G_with_Border.wmf + Assert.Equal(1499, result.Metafile.Width); + Assert.Equal(1249, result.Metafile.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToObfuscateContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToObfuscateContainerTests.cs new file mode 100644 index 000000000..a1162d717 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToObfuscateContainerTests.cs @@ -0,0 +1,127 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using System.Linq; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.Drawing.Filters; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToObfuscateContainerTests +{ + [Fact] + public void ConvertDtoToDomain_ObfuscateContainerDto_Returns_ObfuscateContainer() + { + // Arrange + var colorBlue = Color.Blue; + var dto = new ObfuscateContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(ObfuscateContainer), + Value = new IntFieldValueDto + { + Value = 3 // default in ObfuscateContainer is 0 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(ObfuscateContainer), + Value = new ColorFieldValueDto + { + Value = colorBlue // default in ObfuscateContainer is Red + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(ObfuscateContainer), + Value = new BoolFieldValueDto + { + Value = true // default in ObfuscateContainer is false + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.PREPARED_FILTER_OBFUSCATE), + Scope = nameof(ObfuscateContainer), + Value = new PreparedFilterFieldValueDto + { + Value = PreparedFilter.BLUR // default in ObfuscateContainer is PIXELIZE + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + var resultPreparedFilter = result.GetFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE); + var allFilter = result.Filters; + var blurFilter = allFilter.OfType().FirstOrDefault(); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.True((bool)resultShadow); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(PreparedFilter.BLUR, resultPreparedFilter); + + // PreparedFilter.BLUR should add BlurFilter + Assert.NotNull(allFilter); + Assert.Equal(1, allFilter?.Count); + Assert.NotNull(blurFilter); + + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToRectangleContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToRectangleContainerTests.cs new file mode 100644 index 000000000..a78fee9d8 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToRectangleContainerTests.cs @@ -0,0 +1,119 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToRectangleContainerTests +{ + [Fact] + public void ConvertDtoToDomain_RectangleContainerDto_Returns_RectangleContainer() + { + // Arrange + var colorBlue = Color.Blue; + var colorGreen = Color.Green; + var dto = new RectangleContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(RectangleContainer), + Value = new IntFieldValueDto + { + Value = 3 // default in RectangleContainer is 2 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(RectangleContainer), + Value = new ColorFieldValueDto + { + Value = colorBlue // default in RectangleContainer is Red + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FILL_COLOR), + Scope = nameof(RectangleContainer), + Value = new ColorFieldValueDto + { + Value = colorGreen // default in RectangleContainer is Transparent + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(RectangleContainer), + Value = new BoolFieldValueDto + { + Value = false // default in RectangleContainer is true + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = result.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorGreen, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorGreen)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + } + +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSpeechbubbleContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSpeechbubbleContainerTests.cs new file mode 100644 index 000000000..81604b0b5 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSpeechbubbleContainerTests.cs @@ -0,0 +1,208 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToSpeechbubbleContainerTests +{ + [Fact] + public void ConvertDtoToDomain_SpeechbubbleContainerDto_Returns_SpeechbubbleContainer() + { + // Arrange + var colorBlue = Color.Blue; + var colorWhite = Color.White; + var fontFamily = FontFamily.GenericSansSerif.Name; + var dto = new SpeechbubbleContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!", + StoredTargetGripperLocation = new PointDto { X = 30, Y = 40 }, + Fields = [ new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(SpeechbubbleContainer), + Value = new IntFieldValueDto + { + Value = 2 // default in SpeechbubbleContainer is 2 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(SpeechbubbleContainer), + Value = new ColorFieldValueDto + { + Value = colorBlue // default in SpeechbubbleContainer is Blue + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FILL_COLOR), + Scope = nameof(SpeechbubbleContainer), + Value = new ColorFieldValueDto + { + Value = colorWhite // default in SpeechbubbleContainer is White + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(SpeechbubbleContainer), + Value = new BoolFieldValueDto + { + Value = false // default in SpeechbubbleContainer is true + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_ITALIC), + Scope = nameof(SpeechbubbleContainer), + Value = new BoolFieldValueDto + { + Value = false // default in SpeechbubbleContainer is false + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_BOLD), + Scope = nameof(SpeechbubbleContainer), + Value = new BoolFieldValueDto + { + Value = true // default in SpeechbubbleContainer is true + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_FAMILY), + Scope = nameof(SpeechbubbleContainer), + Value = new StringFieldValueDto + { + Value = fontFamily // default in SpeechbubbleContainer is "Microsoft Sans Serif" + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_SIZE), + Scope = nameof(SpeechbubbleContainer), + Value = new SingleFieldValueDto + { + Value = 20f // default in SpeechbubbleContainer is 20f + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.TEXT_HORIZONTAL_ALIGNMENT), + Scope = nameof(SpeechbubbleContainer), + Value = new StringAlignmentFieldValueDto + { + Value = StringAlignment.Center // default in SpeechbubbleContainer is Center + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.TEXT_VERTICAL_ALIGNMENT), + Scope = nameof(SpeechbubbleContainer), + Value = new StringAlignmentFieldValueDto + { + Value = StringAlignment.Center // default in SpeechbubbleContainer is Center + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null) as SpeechbubbleContainer; + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = result.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + var resultFontItalic = result.GetFieldValue(FieldType.FONT_ITALIC); + var resultFontBold = result.GetFieldValue(FieldType.FONT_BOLD); + var resultFontFamily = result.GetFieldValue(FieldType.FONT_FAMILY); + var resultFontSize = result.GetFieldValue(FieldType.FONT_SIZE); + var resultTextHorizontalAlignment = result.GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultTextVerticalAlignment = result.GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + Assert.Equal(dto.Text, result.Text); + Assert.Equal(dto.StoredTargetGripperLocation.X, result.StoredTargetGripperLocation.X); + Assert.Equal(dto.StoredTargetGripperLocation.Y, result.StoredTargetGripperLocation.Y); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(2, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorBlue, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorBlue)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorWhite, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorWhite)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.False((bool)resultFontItalic); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.True((bool)resultFontBold); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(fontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(20f, resultFontSize); + + Assert.NotNull(resultTextHorizontalAlignment); + Assert.IsType(resultTextHorizontalAlignment); + Assert.Equal(StringAlignment.Center, resultTextHorizontalAlignment); + + Assert.NotNull(resultTextVerticalAlignment); + Assert.IsType(resultTextVerticalAlignment); + Assert.Equal(StringAlignment.Center, resultTextVerticalAlignment); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToStepLabelContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToStepLabelContainerTests.cs new file mode 100644 index 000000000..c06bd0acf --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToStepLabelContainerTests.cs @@ -0,0 +1,77 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Base.Interfaces.Drawing; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToStepLabelContainerTests +{ + [Fact] + public void ConvertDtoToDomain_StepLabelContainerDto_Returns_StepLabelContainer() + { + // Arrange + var dto = new StepLabelContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Number = 2, + CounterStart = 1 + }; + // see StepLabelContainer.InitializeFields() for defaults + var defaultFillColor = System.Drawing.Color.DarkRed; + var defaultLineColor = System.Drawing.Color.White; + var defaultFlags = FieldFlag.COUNTER; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + var resultFillColor = result.GetFieldValue(Greenshot.Editor.Drawing.Fields.FieldType.FILL_COLOR); + var resultLineColor = result.GetFieldValue(Greenshot.Editor.Drawing.Fields.FieldType.LINE_COLOR); + var resultFlags = result.GetFieldValue(Greenshot.Editor.Drawing.Fields.FieldType.FLAGS); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + Assert.Equal(dto.Number, result.Number); + Assert.Equal(dto.CounterStart, result.CounterStart); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.Equal(defaultFillColor.ToArgb(), ((System.Drawing.Color)resultFillColor).ToArgb()); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.Equal(defaultLineColor.ToArgb(), ((System.Drawing.Color)resultLineColor).ToArgb()); + + Assert.NotNull(resultFlags); + Assert.IsType(resultFlags); + Assert.Equal(defaultFlags, (FieldFlag)resultFlags); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSvgContainerTest.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSvgContainerTest.cs new file mode 100644 index 000000000..de4a5cd79 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToSvgContainerTest.cs @@ -0,0 +1,59 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.IO; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToSvgContainerTest +{ + [Fact] + public void ConvertDtoToDomain_SvgContainerDto_Returns_SvgContainer() + { + // Arrange + var svgFilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.svg"); + byte[] svgData = File.ReadAllBytes(svgFilePath); + + var dto = new SvgContainerDto + { + Left = 10, + Top = 20, + Width = 222, + Height = 222, + SvgData = svgData + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null); + + // Assert + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + + Assert.NotNull(result.SvgContent); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToTextContainerTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToTextContainerTests.cs new file mode 100644 index 000000000..2f20fdca9 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToTextContainerTests.cs @@ -0,0 +1,206 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; + +[Collection("DefaultCollection")] +public class ConvertDtoToTextContainerTests +{ + [Fact] + public void ConvertDtoToDomain_TextContainerDto_Returns_TextContainer() + { + // Arrange + var colorRed = Color.Red; + var colorTransparent = Color.Transparent; + var fontFamilyName = FontFamily.GenericSansSerif.Name; + var dto = new TextContainerDto + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!", + Fields = [ + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_THICKNESS), + Scope = nameof(TextContainer), + Value = new IntFieldValueDto + { + Value = 3 // default in TextContainer is 2 + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.LINE_COLOR), + Scope = nameof(TextContainer), + Value = new ColorFieldValueDto + { + Value = colorRed // default in TextContainer is Red + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.SHADOW), + Scope = nameof(TextContainer), + Value = new BoolFieldValueDto + { + Value = false // default in TextContainer is true + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_ITALIC), + Scope = nameof(TextContainer), + Value = new BoolFieldValueDto + { + Value = true // default in TextContainer is false + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_BOLD), + Scope = nameof(TextContainer), + Value = new BoolFieldValueDto + { + Value = true // default in TextContainer is false + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FILL_COLOR), + Scope = nameof(TextContainer), + Value = new ColorFieldValueDto + { + Value = colorTransparent // default in TextContainer is Transparent + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_FAMILY), + Scope = nameof(TextContainer), + Value = new StringFieldValueDto + { + Value = "Arial" // default in TextContainer is GenericSansSerif.Name + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.FONT_SIZE), + Scope = nameof(TextContainer), + Value = new SingleFieldValueDto + { + Value = 12f // default in TextContainer is 11f + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.TEXT_HORIZONTAL_ALIGNMENT), + Scope = nameof(TextContainer), + Value = new StringAlignmentFieldValueDto + { + Value = StringAlignment.Far // default in TextContainer is StringAlignment.Center + } + }, + new FieldDto + { + FieldTypeName = nameof(FieldType.TEXT_VERTICAL_ALIGNMENT), + Scope = nameof(TextContainer), + Value = new StringAlignmentFieldValueDto + { + Value = StringAlignment.Far // default in TextContainer is StringAlignment.Center + } + } + ] + }; + + // Act + var result = ConvertDtoToDomain.ToDomain(dto, null) as TextContainer; + + // Assert + var resultLineThickness = result.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = result.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = result.GetFieldValue(FieldType.SHADOW); + var resultFontItalic = result.GetFieldValue(FieldType.FONT_ITALIC); + var resultFontBold = result.GetFieldValue(FieldType.FONT_BOLD); + var resultFillColor = result.GetFieldValue(FieldType.FILL_COLOR); + var resultFontFamily = result.GetFieldValue(FieldType.FONT_FAMILY); + var resultFontSize = result.GetFieldValue(FieldType.FONT_SIZE); + var resultTextHorizontalAlignment = result.GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultTextVerticalAlignment = result.GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(result); + Assert.Equal(dto.Left, result.Left); + Assert.Equal(dto.Top, result.Top); + Assert.Equal(dto.Width, result.Width); + Assert.Equal(dto.Height, result.Height); + Assert.Equal(dto.Text, result.Text); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(3, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(colorRed, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorRed)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.False((bool)resultShadow); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.True((bool)resultFontItalic); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.True((bool)resultFontBold); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(colorTransparent, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(colorTransparent)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal("Arial", resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(12f, resultFontSize); + + Assert.NotNull(resultTextHorizontalAlignment); + Assert.IsType(resultTextHorizontalAlignment); + Assert.Equal(StringAlignment.Far, resultTextHorizontalAlignment); + + Assert.NotNull(resultTextVerticalAlignment); + Assert.IsType(resultTextVerticalAlignment); + Assert.Equal(StringAlignment.Far, resultTextVerticalAlignment); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToValueTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToValueTests.cs new file mode 100644 index 000000000..400d3f6e4 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/DtoToDomain/ConvertDtoToValueTests.cs @@ -0,0 +1,100 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Fields; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.DtoToDomain; +public class ConvertDtoToValueTests +{ + /// + /// A collectioan of all supported value types for . + /// + public static IEnumerable GetFieldValueTestData() + { + yield return [typeof(bool), new BoolFieldValueDto { Value = true }, true]; + yield return [typeof(string), new StringFieldValueDto { Value = "test" }, "test"]; + yield return [typeof(int), new IntFieldValueDto { Value = 42 }, 42]; + yield return [typeof(float), new SingleFieldValueDto { Value = 3.14f }, 3.14f]; + yield return [typeof(double), new DoubleFieldValueDto { Value = 3.14d }, 3.14d]; + yield return [typeof(decimal), new DecimalFieldValueDto { Value = 3.14m }, 3.14m]; + yield return [typeof(ArrowHeadCombination), new ArrowHeadCombinationFieldValueDto { Value = ArrowHeadCombination.END_POINT }, ArrowHeadCombination.END_POINT]; + yield return [typeof(FieldFlag), new FieldFlagFieldValueDto { Value = FieldFlag.CONFIRMABLE }, FieldFlag.CONFIRMABLE]; + yield return [typeof(PreparedFilter), new PreparedFilterFieldValueDto { Value = PreparedFilter.AREA_HIGHLIGHT }, PreparedFilter.AREA_HIGHLIGHT]; + yield return [typeof(StringAlignment), new StringAlignmentFieldValueDto { Value = StringAlignment.Center }, StringAlignment.Center]; + } + /// + /// Verifies that the method correctly converts a to its corresponding domain value type. + /// + [Theory] + [MemberData(nameof(GetFieldValueTestData))] + public void ConvertDtoToValue_FieldValueDtoType_Returns_DomainValueType(Type valueType, FieldValueDto dto, object value) + { + // Act + var result = ConvertDtoToDomain.ConvertDtoToValue(dto); + + // Assert + Assert.IsType(valueType, result); + Assert.Equal(value, result); + } + + /// + /// Tests the conversion of a to a value. + /// + /// It's a dedicated test because needs a special compare. + [Fact] + public void ConvertDtoToValue_ColorFieldValueDto_ReturnsColor() + { + // Arrange + var redColor = Color.Red; + var dto = new ColorFieldValueDto { Value = redColor }; + + // Act + var result = ConvertDtoToDomain.ConvertDtoToValue(dto); + + // Assert + Assert.IsType(result); + + // special compare, because we only store the ARGB value + Assert.True(DtoHelper.CompareColorValue(redColor, (Color)result), + $"The color values are different. expected:{DtoHelper.ArgbString(redColor)} result:{DtoHelper.ArgbString((Color)result)}"); + } + + [Fact] + public void ConvertDtoToValue_NullFieldValueDto_ReturnsNull() + { + // Arrange + var dto = new NullFieldValueDto(); + + // Act + var result = ConvertDtoToDomain.ConvertDtoToValue(dto); + + // Assert + Assert.Null(result); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ApplicationFileSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ApplicationFileSerializationTests.cs new file mode 100644 index 000000000..88c4dec81 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ApplicationFileSerializationTests.cs @@ -0,0 +1,91 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat; +using Greenshot.Editor.FileFormat.Dto; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class ApplicationFileSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_ApplicationFile() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineContainer = new LineContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + var rectangleContainer = new RectangleContainer(surface) + { + Left = 30, + Top = 40, + Width = 200, + Height = 80 + }; + var domainList = new DrawableContainerList { lineContainer, rectangleContainer }; + var image = new Bitmap(10, 10); + var domain = new GreenshotFile + { + ContainerList = domainList, + Image = image, + SchemaVersion = GreenshotFileVersionHandler.CurrentSchemaVersion + }; + + // Act + var dto = ConvertDomainToDto.ToDto(domain); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto); + + // Assert + Assert.NotNull(result); + Assert.Equal(domain.SchemaVersion, result.SchemaVersion); + Assert.NotNull(result.Image); + Assert.NotNull(result.ContainerList); + Assert.Equal(2, result.ContainerList.Count); + Assert.IsType(result.ContainerList[0]); + Assert.IsType(result.ContainerList[1]); + Assert.Equal(lineContainer.Top, result.ContainerList[0].Top); + Assert.Equal(lineContainer.Left, result.ContainerList[0].Left); + Assert.Equal(lineContainer.Width, result.ContainerList[0].Width); + Assert.Equal(lineContainer.Height, result.ContainerList[0].Height); + Assert.Equal(rectangleContainer.Top, result.ContainerList[1].Top); + Assert.Equal(rectangleContainer.Left, result.ContainerList[1].Left); + Assert.Equal(rectangleContainer.Width, result.ContainerList[1].Width); + Assert.Equal(rectangleContainer.Height, result.ContainerList[1].Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ArrowContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ArrowContainerSerializationTests.cs new file mode 100644 index 000000000..ee2196ce1 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ArrowContainerSerializationTests.cs @@ -0,0 +1,66 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + + +public class ArrowContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_ArrowContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var arrowContainer = new ArrowContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(arrowContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto,null) as ArrowContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(arrowContainer.Left, result.Left); + Assert.Equal(arrowContainer.Top, result.Top); + Assert.Equal(arrowContainer.Width, result.Width); + Assert.Equal(arrowContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/CursorContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/CursorContainerSerializationTests.cs new file mode 100644 index 000000000..b8b4cd1eb --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/CursorContainerSerializationTests.cs @@ -0,0 +1,60 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class CursorContainerSerializationTests +{ + [Fact] + public void SerializeDeserialize_IconContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var cursorContainer = new CursorContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(cursorContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as CursorContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(cursorContainer.Left, result.Left); + Assert.Equal(cursorContainer.Top, result.Top); + Assert.Equal(cursorContainer.Width, result.Width); + Assert.Equal(cursorContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/DrawableContainerListSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/DrawableContainerListSerializationTests.cs new file mode 100644 index 000000000..ffcbc7b35 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/DrawableContainerListSerializationTests.cs @@ -0,0 +1,210 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.Drawing.Filters; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class DrawableContainerListSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_DrawableContainerList() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineContainer = new LineContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + var rectangleContainer = new RectangleContainer(surface) + { + Left = 30, + Top = 40, + Width = 200, + Height = 80 + }; + var domainList = new DrawableContainerList { lineContainer, rectangleContainer }; + + // Act + var dto = ConvertDomainToDto.ToDto(domainList); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto) as DrawableContainerList; + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Count); + Assert.IsType(result[0]); + Assert.IsType(result[1]); + + Assert.Equal(lineContainer.Top, result[0].Top); + Assert.Equal(lineContainer.Left, result[0].Left); + Assert.Equal(lineContainer.Width, result[0].Width); + Assert.Equal(lineContainer.Height, result[0].Height); + + Assert.Equal(rectangleContainer.Top, result[1].Top); + Assert.Equal(rectangleContainer.Left, result[1].Left); + Assert.Equal(rectangleContainer.Width, result[1].Width); + Assert.Equal(rectangleContainer.Height, result[1].Height); + } + + /// + /// Tests the serialization and deserialization process of an object that contains all possible drawable container. + /// + /// It only checks the types to proof of + [Fact] + public void SerializeDeserialize_DrawableContainerList_with_all_Container() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var metafilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.emf"); + using var metafileStream = File.OpenRead(metafilePath); + + var svgFilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.svg"); + using var svgStream = File.OpenRead(svgFilePath); + + + var domainList = new DrawableContainerList + { + new LineContainer(surface), + new RectangleContainer(surface), + new ImageContainer(surface), + new IconContainer(surface), + new TextContainer(surface), + new SpeechbubbleContainer(surface), + new ArrowContainer(surface), + new CursorContainer(surface), + new EllipseContainer(surface), + new FreehandContainer(surface), + new HighlightContainer(surface), + new MetafileContainer(metafileStream, surface), + new ObfuscateContainer(surface), + new StepLabelContainer(surface), + new SvgContainer(svgStream, surface) + }; + + // Act + var dto = ConvertDomainToDto.ToDto(domainList); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto) as DrawableContainerList; + + // Assert + Assert.NotNull(result); + Assert.Equal(domainList.Count, result.Count); + Assert.IsType(result[0]); + Assert.IsType(result[1]); + Assert.IsType(result[2]); + Assert.IsType(result[3]); + Assert.IsType(result[4]); + Assert.IsType(result[5]); + Assert.IsType(result[6]); + Assert.IsType(result[7]); + Assert.IsType(result[8]); + Assert.IsType(result[9]); + Assert.IsType(result[10]); + Assert.IsType(result[11]); + Assert.IsType(result[12]); + Assert.IsType(result[13]); + Assert.IsType(result[14]); + } + + /// + /// Tests the serialization and deserialization of a DrawableContainerList with two HighlightContainers using different highlight colors. + /// This is to test issue #500. + /// + [Fact] + public void SerializeDeserialize_DrawableContainerList_with_two_different_HighlightContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var highlight1 = new HighlightContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + var highlight2 = new HighlightContainer(surface) + { + Left = 30, + Top = 40, + Width = 120, + Height = 60 + }; + var color1Yellow = Color.Yellow; + var color2Lime = Color.Lime; + // Set different highlight colors + ((HighlightFilter)highlight1.Children[0]).SetFieldValue(FieldType.FILL_COLOR, color1Yellow); + ((HighlightFilter)highlight2.Children[0]).SetFieldValue(FieldType.FILL_COLOR, color2Lime); + + var domainList = new DrawableContainerList { highlight1, highlight2 }; + + // Act + var dto = ConvertDomainToDto.ToDto(domainList); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto) as DrawableContainerList; + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Count); + + Assert.IsType(result[0]); + Assert.IsType(result[1]); + + var resultcontainer1 = (HighlightContainer)result[0]; + var resultcontainer2 = (HighlightContainer)result[1]; + + var color1 = ((HighlightFilter)resultcontainer1.Children[0]).GetFieldValue(FieldType.FILL_COLOR); + var color2 = ((HighlightFilter)resultcontainer2.Children[0]).GetFieldValue(FieldType.FILL_COLOR); + + Assert.NotNull(color1); + Assert.IsType(color1); + Assert.True(DtoHelper.CompareColorValue(color1Yellow, (Color)color1), + $"The color values are different. expected:{DtoHelper.ArgbString(color1Yellow)} result:{DtoHelper.ArgbString((Color)color1)}"); + + + Assert.NotNull(color2); + Assert.IsType(color2); + Assert.True(DtoHelper.CompareColorValue(color2Lime, (Color)color2), + $"The color values are different. expected:{DtoHelper.ArgbString(color2Lime)} result:{DtoHelper.ArgbString((Color)color2)}"); + + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/EllipseContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/EllipseContainerSerializationTests.cs new file mode 100644 index 000000000..834d1c6d8 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/EllipseContainerSerializationTests.cs @@ -0,0 +1,65 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class EllipseContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_EllipseContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var ellipseContainer = new EllipseContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(ellipseContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as EllipseContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(ellipseContainer.Left, result.Left); + Assert.Equal(ellipseContainer.Top, result.Top); + Assert.Equal(ellipseContainer.Width, result.Width); + Assert.Equal(ellipseContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldSerializationTests.cs new file mode 100644 index 000000000..86f9dec17 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldSerializationTests.cs @@ -0,0 +1,126 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Fields; +using MessagePack; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class FieldSerializationTests +{ + /// + /// A collectioan of all supported value types for . + /// + public static IEnumerable GetFieldTestData() + { + yield return [FieldType.FONT_BOLD, typeof(bool), true]; + yield return [FieldType.FONT_FAMILY, typeof(string), "Arial"]; + yield return [FieldType.LINE_THICKNESS, typeof(int), 42]; + yield return [FieldType.PREVIEW_QUALITY, typeof(float), 3.14f]; + yield return [FieldType.PREVIEW_QUALITY, typeof(double), 3.14d]; + yield return [FieldType.PREVIEW_QUALITY, typeof(decimal), 3.14m]; + yield return [FieldType.PREPARED_FILTER_HIGHLIGHT, typeof(PreparedFilter), PreparedFilter.AREA_HIGHLIGHT]; + yield return [FieldType.ARROWHEADS, typeof(ArrowHeadCombination), ArrowHeadCombination.END_POINT]; + yield return [FieldType.FLAGS, typeof(FieldFlag), FieldFlag.CONFIRMABLE]; + yield return [FieldType.TEXT_HORIZONTAL_ALIGNMENT, typeof(StringAlignment), StringAlignment.Center]; + } + + /// + /// Convert a domain object to , serialize , deserialize and convert back to domain object + /// + /// Different from this method tests and + /// instead of and + /// + /// + /// + [Theory] + [MemberData(nameof(GetFieldTestData))] + public void SerializeDeserialize_Field(IFieldType field, Type valueType, object value) + { + // Arrange + var original = new Field(field, "scope") { Value = value }; + + // Act + var dto = ConvertDomainToDto.ToDto(original); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto); + + // Assert + Assert.IsType(valueType, result.Value); + Assert.Equal(original.FieldType, result.FieldType); + Assert.Equal(original.Scope, result.Scope); + Assert.Equal(original.Value, result.Value); + } + + /// + /// Convert a domain object with a value to , serialize , deserialize and convert back to domain object + /// + [Fact] + public void SerializeDeserialize_ColorField() + { + // Arrange + var redColor = Color.Red; + var original = new Field(FieldType.LINE_COLOR, "scope") { Value = redColor }; + + // Act + var dto = ConvertDomainToDto.ToDto(original); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto); + + // Assert + Assert.Equal(original.FieldType, result.FieldType); + Assert.Equal(original.Scope, result.Scope); + + Assert.IsType(result.Value); + // special compare, because we only store the ARGB value + Assert.True(DtoHelper.CompareColorValue(redColor, (Color)result.Value), + $"The color values are different. expected:{DtoHelper.ArgbString(redColor)} result:{DtoHelper.ArgbString((Color)result.Value)}"); + } + + /// + /// Convert a domain object with a null value to , serialize, deserialize and convert back to domain object + /// + [Fact] + public void SerializeDeserialize_NullField() + { + // Arrange + var original = new Field(FieldType.FONT_FAMILY, "scope") { Value = null }; + + // Act + var dto = ConvertDomainToDto.ToDto(original); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto); + + // Assert + Assert.Null(result.Value); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldValueSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldValueSerializationTests.cs new file mode 100644 index 000000000..e2c1c2281 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FieldValueSerializationTests.cs @@ -0,0 +1,111 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Interfaces.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Fields; +using MessagePack; +using Xunit; +using static Greenshot.Editor.Drawing.ArrowContainer; +using static Greenshot.Editor.Drawing.FilterContainer; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class FieldValueSerializationTests +{ + /// + /// A collectioan of all supported value types for . + /// + public static IEnumerable GetValueTestData() + { + yield return [typeof(bool), true]; + yield return [typeof(string), "Arial"]; + yield return [typeof(int), 42]; + yield return [typeof(float), 3.14f]; + yield return [typeof(double), 3.14d]; + yield return [typeof(decimal), 3.14m]; + yield return [typeof(ArrowHeadCombination), ArrowHeadCombination.END_POINT]; + yield return [typeof(PreparedFilter), PreparedFilter.BLUR]; + yield return [typeof(StringAlignment), StringAlignment.Center]; + yield return [typeof(FieldFlag), FieldFlag.CONFIRMABLE]; + } + + /// + /// Convert a value (basic types, that are allowed in a ) to , serialize , deserialize and convert back to domain object + /// + /// Different from this method tests and + /// instead of and + /// + /// + [Theory] + [MemberData(nameof(GetValueTestData))] + public void SerializeDeserialize_FieldValue(Type valueType, object value) + { + // Act + var dto = ConvertDomainToDto.ConvertValueToDto(value); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ConvertDtoToValue(deserializedDto); + + // Assert + Assert.IsType(valueType, result); + Assert.Equal(value, result); + } + + /// + /// Convert a to , serialize , deserialize and convert back to domain object + /// + /// It's a dedicated test because needs a special compare. + [Fact] + public void SerializeDeserialize_ColorFieldValue() + { + // Arrange + var redColor = Color.Red; + + // Act + var dto = ConvertDomainToDto.ConvertValueToDto(redColor); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ConvertDtoToValue(deserializedDto); + + // Assert + Assert.IsType( result); + // special compare, because we only store the ARGB value + Assert.True(DtoHelper.CompareColorValue(redColor, (Color)result), + $"The color values are different. expected:{DtoHelper.ArgbString(redColor)} result:{DtoHelper.ArgbString((Color)result)}"); + } + + [Fact] + public void SerializeDeserialize_NullFieldValue() + { + // Act + var dto = ConvertDomainToDto.ConvertValueToDto(null); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ConvertDtoToValue(deserializedDto); + + // Assert + Assert.Null(result); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FreehandContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FreehandContainerSerializationTests.cs new file mode 100644 index 000000000..168e9a118 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/FreehandContainerSerializationTests.cs @@ -0,0 +1,74 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class FreehandContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_FreehandContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var freehandContainer = new FreehandContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + CapturePoints = [new Point(10, 20), new Point(30, 40)] + }; + + // Act + var dto = ConvertDomainToDto.ToDto(freehandContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as FreehandContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(freehandContainer.Left, result.Left); + Assert.Equal(freehandContainer.Top, result.Top); + Assert.Equal(freehandContainer.Width, result.Width); + Assert.Equal(freehandContainer.Height, result.Height); + Assert.NotNull(result.CapturePoints); + Assert.Equal(freehandContainer.CapturePoints.Count, result.CapturePoints.Count); + Assert.Equal(freehandContainer.CapturePoints[0].X, result.CapturePoints[0].X); + Assert.Equal(freehandContainer.CapturePoints[0].Y, result.CapturePoints[0].Y); + Assert.Equal(freehandContainer.CapturePoints[1].X, result.CapturePoints[1].X); + Assert.Equal(freehandContainer.CapturePoints[1].Y, result.CapturePoints[1].Y); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/HighlightContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/HighlightContainerSerializationTests.cs new file mode 100644 index 000000000..78c49bdc7 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/HighlightContainerSerializationTests.cs @@ -0,0 +1,65 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class HighlightContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_HighlightContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var highlightContainer = new HighlightContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(highlightContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as HighlightContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(highlightContainer.Left, result.Left); + Assert.Equal(highlightContainer.Top, result.Top); + Assert.Equal(highlightContainer.Width, result.Width); + Assert.Equal(highlightContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/IconContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/IconContainerSerializationTests.cs new file mode 100644 index 000000000..ea21aa218 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/IconContainerSerializationTests.cs @@ -0,0 +1,71 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class IconContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_IconContainer() + { + // Arrange + var iconPath = Path.Combine("TestData", "Images", "Greenshot.ico"); + using var iconStream = File.OpenRead(iconPath); + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var iconContainer = new IconContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Icon = new Icon(iconStream) + }; + + // Act + var dto = ConvertDomainToDto.ToDto(iconContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as IconContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(iconContainer.Left, result.Left); + Assert.Equal(iconContainer.Top, result.Top); + Assert.Equal(iconContainer.Width, result.Width); + Assert.Equal(iconContainer.Height, result.Height); + Assert.NotNull(result.Icon); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ImageContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ImageContainerSerializationTests.cs new file mode 100644 index 000000000..76051cea0 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ImageContainerSerializationTests.cs @@ -0,0 +1,73 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class ImageContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_ImageContainer() + { + // Arrange + using var bitmap = new Bitmap(50, 50); + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var imageContainer = new ImageContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Image = bitmap + }; + + // Act + var dto = ConvertDomainToDto.ToDto(imageContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as ImageContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(imageContainer.Left, result.Left); + Assert.Equal(imageContainer.Top, result.Top); + Assert.Equal(imageContainer.Width, result.Width); + Assert.Equal(imageContainer.Height, result.Height); + + // Compare the images (simple check) + Assert.NotNull(result.Image); + Assert.Equal(imageContainer.Image.Width, result.Image.Width); + Assert.Equal(imageContainer.Image.Height, result.Image.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/LineContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/LineContainerSerializationTests.cs new file mode 100644 index 000000000..cd5cd3c1b --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/LineContainerSerializationTests.cs @@ -0,0 +1,65 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class LineContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_LineContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineContainer = new LineContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(lineContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as LineContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(lineContainer.Left, result.Left); + Assert.Equal(lineContainer.Top, result.Top); + Assert.Equal(lineContainer.Width, result.Width); + Assert.Equal(lineContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/MetafileContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/MetafileContainerSerializationTests.cs new file mode 100644 index 000000000..6b1c2e563 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/MetafileContainerSerializationTests.cs @@ -0,0 +1,79 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + + +public class MetafileContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_MetafileContainer() + { + // Arrange + var metafilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.emf"); + using var metafileStream = File.OpenRead(metafilePath); + + + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var metafileContainer = new MetafileContainer(metafileStream, surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(metafileContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as MetafileContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(metafileContainer.Left, result.Left); + Assert.Equal(metafileContainer.Top, result.Top); + Assert.Equal(metafileContainer.Width, result.Width); + Assert.Equal(metafileContainer.Height, result.Height); + + // Compare the metafiles (simple check) + Assert.NotNull(result.MetafileContent); + + Assert.Equal(metafileContainer.Metafile.Width, result.Metafile.Width); + Assert.Equal(metafileContainer.Metafile.Height, result.Metafile.Height); + + } +} + diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ObfuscateContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ObfuscateContainerSerializationTests.cs new file mode 100644 index 000000000..70060edd6 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/ObfuscateContainerSerializationTests.cs @@ -0,0 +1,65 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class ObfuscateContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_ObfuscateContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var obfuscateContainer = new ObfuscateContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(obfuscateContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as ObfuscateContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(obfuscateContainer.Left, result.Left); + Assert.Equal(obfuscateContainer.Top, result.Top); + Assert.Equal(obfuscateContainer.Width, result.Width); + Assert.Equal(obfuscateContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/RectangleContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/RectangleContainerSerializationTests.cs new file mode 100644 index 000000000..6d939c1d3 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/RectangleContainerSerializationTests.cs @@ -0,0 +1,65 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class RectangleContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_RectangleContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var rectangleContainer = new RectangleContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(rectangleContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as RectangleContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(rectangleContainer.Left, result.Left); + Assert.Equal(rectangleContainer.Top, result.Top); + Assert.Equal(rectangleContainer.Width, result.Width); + Assert.Equal(rectangleContainer.Height, result.Height); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SpeechbubbleContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SpeechbubbleContainerSerializationTests.cs new file mode 100644 index 000000000..23f52c761 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SpeechbubbleContainerSerializationTests.cs @@ -0,0 +1,70 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class SpeechbubbleContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_SpeechbubbleContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var speechbubbleContainer = new SpeechbubbleContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!", + StoredTargetGripperLocation = new Point(30, 40) + }; + + // Act + var dto = ConvertDomainToDto.ToDto(speechbubbleContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as SpeechbubbleContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(speechbubbleContainer.Left, result.Left); + Assert.Equal(speechbubbleContainer.Top, result.Top); + Assert.Equal(speechbubbleContainer.Width, result.Width); + Assert.Equal(speechbubbleContainer.Height, result.Height); + Assert.Equal(speechbubbleContainer.Text, result.Text); + Assert.Equal(speechbubbleContainer.StoredTargetGripperLocation, result.StoredTargetGripperLocation); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/StepLabelContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/StepLabelContainerSerializationTests.cs new file mode 100644 index 000000000..a164bda22 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/StepLabelContainerSerializationTests.cs @@ -0,0 +1,69 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class StepLabelContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_StepLabelContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var stepLabelContainer = new StepLabelContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Number = 2, + CounterStart = 1 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(stepLabelContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as StepLabelContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(stepLabelContainer.Left, result.Left); + Assert.Equal(stepLabelContainer.Top, result.Top); + Assert.Equal(stepLabelContainer.Width, result.Width); + Assert.Equal(stepLabelContainer.Height, result.Height); + Assert.Equal(stepLabelContainer.Number, result.Number); + Assert.Equal(stepLabelContainer.CounterStart, result.CounterStart); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SurfaceSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SurfaceSerializationTests.cs new file mode 100644 index 000000000..66cf0719e --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SurfaceSerializationTests.cs @@ -0,0 +1,125 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Drawing; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat; +using Greenshot.Editor.FileFormat.Dto; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +[Collection("DefaultCollection")] +public class SurfaceSerializationTests +{ + /// + /// Tests the serialization and deserialization process of a plain Surface without any elements. + /// + [Fact] + public void SerializeDeserialize_PlainSurface() + { + // Arrange + var image = new Bitmap(200, 150); + var surface = new Surface(image); + + // Act + var greenshotFile = GreenshotFileVersionHandler.CreateGreenshotFile(surface); + var dto = ConvertDomainToDto.ToDto(greenshotFile); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var deserializedGreenshotFile = ConvertDtoToDomain.ToDomain(deserializedDto) as GreenshotFile; + var resultSurface = GreenshotFileVersionHandler.CreateSurface(deserializedGreenshotFile); + + // Assert + Assert.NotNull(resultSurface); + Assert.Equal(image.Width, resultSurface.Image.Width); + Assert.Equal(image.Height, resultSurface.Image.Height); + Assert.Empty(resultSurface.Elements); + + } + + /// + /// Tests the serialization and deserialization process of a surface with two StepLabelContainer, where the counter starts at 3. + /// + [Fact] + public void SerializeDeserialize_SurfaceWith2StepLabelWichStartsAt3() + { + // Arrange + var image = new Bitmap(100, 100); + var surface = new Surface(image); + surface.CounterStart = 3; + var stepLabel1 = new StepLabelContainer(surface) + { + Left = 5, + Top = 10, + Width = 50, + Height = 25 + }; + var stepLabel2 = new StepLabelContainer(surface) + { + Left = 15, + Top = 20, + Width = 60, + Height = 35 + }; + surface.AddElement(stepLabel1, false, false); + surface.AddElement(stepLabel2, false, false); + + // Act + var greenshotfile = GreenshotFileVersionHandler.CreateGreenshotFile(surface); + var dto= ConvertDomainToDto.ToDto(greenshotfile); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var deserializedGreenshotFile = ConvertDtoToDomain.ToDomain(deserializedDto) as GreenshotFile; + + var resultSurface = GreenshotFileVersionHandler.CreateSurface(deserializedGreenshotFile); + + // Assert + Assert.NotNull(resultSurface); + var resultContainerList = resultSurface.Elements; + + Assert.NotNull(resultContainerList); + Assert.Equal(2, resultContainerList.Count); + Assert.IsType(resultContainerList[0]); + Assert.IsType(resultContainerList[1]); + + var resultStepLabel1 = resultContainerList[0] as StepLabelContainer; + var resultStepLabel2 = resultContainerList[1] as StepLabelContainer; + Assert.NotNull(resultStepLabel1); + Assert.NotNull(resultStepLabel2); + Assert.Equal(stepLabel1.Left, resultStepLabel1.Left); + Assert.Equal(stepLabel1.Top, resultStepLabel1.Top); + Assert.Equal(stepLabel1.Width, resultStepLabel1.Width); + Assert.Equal(stepLabel1.Height, resultStepLabel1.Height); + Assert.Equal(stepLabel2.Left, resultStepLabel2.Left); + Assert.Equal(stepLabel2.Top, resultStepLabel2.Top); + Assert.Equal(stepLabel2.Width, resultStepLabel2.Width); + Assert.Equal(stepLabel2.Height, resultStepLabel2.Height); + + // both StepLabels should have the same CounterStart, which is 3 + Assert.Equal(3, resultStepLabel1.CounterStart); + Assert.Equal(3, resultStepLabel2.CounterStart); + + // The StepLabels should have the correct numbers, which are 3 and 4 + Assert.Equal(3, resultStepLabel1.Number); + Assert.Equal(4, resultStepLabel2.Number); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SvgContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SvgContainerSerializationTests.cs new file mode 100644 index 000000000..f38cd13f0 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/SvgContainerSerializationTests.cs @@ -0,0 +1,124 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Windows.Media.Effects; +using Greenshot.Base.Core; +using Greenshot.Base.Effects; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +[Collection("DefaultCollection")] +public class SvgContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_SvgContainer() + { + // Arrange + var svgFilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.svg"); + using var svgStream = File.OpenRead(svgFilePath); + + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var svgContainer = new SvgContainer(svgStream, surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + + // Act + var dto = ConvertDomainToDto.ToDto(svgContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as SvgContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(svgContainer.Left, result.Left); + Assert.Equal(svgContainer.Top, result.Top); + Assert.Equal(svgContainer.Width, result.Width); + Assert.Equal(svgContainer.Height, result.Height); + + // only simple check because the SVG content is here a memory stream + Assert.NotNull(result.SvgContent); + } + + /// + /// Tests the serialization and deserialization of a rotated object. + /// + [Fact] + public void SerializeDeserialize_RotatedSvgContainer() + { + // Arrange + var svgFilePath = Path.Combine("TestData", "Images", "Logo_G_with_Border.svg"); + using var svgStream = File.OpenRead(svgFilePath); + + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var svgContainer = new SvgContainer(svgStream, surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + // imitate surface.ApplyBitmapEffect(new RotateEffect(90)); + var effect = new RotateEffect(90); + var image = new Bitmap(300, 400); + Matrix matrix = new Matrix(); + Image newImage = ImageHelper.ApplyEffect(image, effect, matrix); + svgContainer.Transform(matrix); + + // Act + var dto = ConvertDomainToDto.ToDto(svgContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as SvgContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(svgContainer.Left, result.Left); + Assert.Equal(svgContainer.Top, result.Top); + Assert.Equal(svgContainer.Width, result.Width); + Assert.Equal(svgContainer.Height, result.Height); + + // only simple check because the SVG content is here a memory stream + Assert.NotNull(result.SvgContent); + + // Check if the rotation angle is preserved + Assert.Equal(90, result.RotationAngle); + + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/TextContainerSerializationTests.cs b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/TextContainerSerializationTests.cs new file mode 100644 index 000000000..a34e50681 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/Dto/GreenshotFileV2/TextContainerSerializationTests.cs @@ -0,0 +1,67 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormat.Dto.Container; +using MessagePack; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.Dto.GreenshotFileV2; + +public class TextContainerSerializationTests +{ + /// + /// Tests the serialization and deserialization process of an object. + /// + /// This test verifies that an object can be correctly converted to + /// its DTO representation, serialized, deserialized and then converted back to . + [Fact] + public void SerializeDeserialize_TextContainer() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var textContainer = new TextContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50, + Text = "Hello, greenshot!" + }; + + // Act + var dto = ConvertDomainToDto.ToDto(textContainer); + var serialized = MessagePackSerializer.Serialize(dto); + var deserializedDto = MessagePackSerializer.Deserialize(serialized); + var result = ConvertDtoToDomain.ToDomain(deserializedDto, null) as TextContainer; + + // Assert + Assert.NotNull(result); + Assert.Equal(textContainer.Left, result.Left); + Assert.Equal(textContainer.Top, result.Top); + Assert.Equal(textContainer.Width, result.Width); + Assert.Equal(textContainer.Height, result.Height); + Assert.Equal(textContainer.Text, result.Text); + } +} diff --git a/src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacyGreenshotFileTest.cs b/src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacyGreenshotFileTest.cs new file mode 100644 index 000000000..f9b95556f --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacyGreenshotFileTest.cs @@ -0,0 +1,96 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Editor.FileFormat.V1.Legacy; +using Greenshot.Test.Editor.FileFormatHandlers; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.V1.Legacy; + +[Collection("DefaultCollection")] +public class LegacyGreenshotFileTest +{ + public static IEnumerable TestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "Surface_with_Image_800x400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "LineContainer_lt_200_200_w_400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "RectangleContainer_lt_100_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "ArrowContainer_lt_100_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "EllipseContainer_lt_200_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "TextContainer_lt_300_200_wh_300_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "IconContainer_lt_400_200_wh_32_32.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "ImageContainer_lt_300_200_wh_100_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "StepLabelContainer_lt_200_200_lt_500_300.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "FreehandContainer_with_4_points.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "Surface_with_11_different_DrawableContainer.greenshot")]; + + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "Surface_with_Image_800x400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "LineContainer_lt_200_200_w_400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "RectangleContainer_lt_100_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "ArrowContainer_lt_100_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "EllipseContainer_lt_200_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "TextContainer_lt_300_200_wh_300_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "IconContainer_lt_400_200_wh_32_32.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "ImageContainer_lt_300_200_wh_100_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "MetafileContainer_lt_300_200_wh_120_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "StepLabelContainer_lt_200_200_lt_500_300.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "SvgContainer_lt_300_200_wh_120_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "FreehandContainer_with_4_points.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "Surface_with_14_different_DrawableContainer.greenshot")]; + } + + /// + /// This is more or less a test while develop. + /// A very simple test that loads a legacy Greenshot file and check if the image and container list are not null and the deserialization throws no exception. + /// A more detailed test is done in the . + /// + /// + [Theory] + [MemberData(nameof(TestData))] + public void LoadLegacyGreenshotFileTest(string filePath) + { + // Arrange + var surfaceFileStream = File.OpenRead(filePath); + + // Act + // We create a copy of the bitmap, so everything else can be disposed + surfaceFileStream.Position = 0; + using Image tmpImage = Image.FromStream(surfaceFileStream, true, true); + var fileImage = ImageHelper.Clone(tmpImage); + + var containerList = LegacyFileHelper.GetContainerListFromGreenshotfile(surfaceFileStream); + + // Assert + Assert.NotNull(fileImage); + Assert.NotNull(containerList); + } + +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacySerializationBinderTests.cs b/src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacySerializationBinderTests.cs new file mode 100644 index 000000000..93886af43 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormat/V1/Legacy/LegacySerializationBinderTests.cs @@ -0,0 +1,74 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using System.ServiceModel.Security; +using Greenshot.Editor.FileFormat.V1.Legacy; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormat.V1.Legacy; + +/// +/// Tests for the LegacySerializationBinder class which handles the mapping +/// of types during deserialization of legacy Greenshot files. +/// +[Collection("DefaultCollection")] +public class LegacySerializationBinderTests +{ + /// + /// Test that verifies that a SecurityAccessDeniedException is thrown when + /// attempting to deserialize an object with a type that is not mapped in the binder. + /// + /// This covers the vulnerability attack created with ysoserial. #579 + [Fact] + public void Deserialize_UnmappedType_ThrowsSecurityAccessDeniedException() + { + // Arrange + var unmappedObject = new UnmappedTestClass { Value = "Test Value" }; + var binaryFormatter = new BinaryFormatter(); + + // Serialize the object without a custom binder + using var memoryStream = new MemoryStream(); + binaryFormatter.Serialize(memoryStream, unmappedObject); + memoryStream.Position = 0; + + // Act & Assert + // This should throw a SecurityAccessDeniedException when LegacyFileHelper tries to deserialize + // our unmapped type through the LegacySerializationBinder + var exception = Assert.Throws(() => + LegacyFileHelper.GetContainerListFromLegacyContainerListStream(memoryStream)); + + // Verify the exception message contains information about the suspicious type + Assert.Contains("Suspicious type", exception.Message); + // ReSharper disable once AssignNullToNotNullAttribute + Assert.Contains(typeof(UnmappedTestClass).FullName, exception.Message); + } + + /// + /// A test class that is intentionally not mapped in the LegacySerializationBinder. + /// + [Serializable] + private class UnmappedTestClass + { + public string Value { get; set; } + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormatHandlers/GreenshotTemplateFormatHandlerTests.cs b/src/Greenshot.Test/Editor/FileFormatHandlers/GreenshotTemplateFormatHandlerTests.cs new file mode 100644 index 000000000..8a1dc6cb1 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormatHandlers/GreenshotTemplateFormatHandlerTests.cs @@ -0,0 +1,170 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Drawing; +using System.IO; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormatHandlers; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormatHandlers; + +/// +/// Tests for the class. +/// +[Collection("DefaultCollection")] +public class GreenshotTemplateFormatHandlerTests +{ + /// + /// Verifies that calling + /// with a surface containing two arrow containers results in a new file being created. + /// The test also ensures cleanup by deleting the temporary file. + /// + [Fact] + public void SaveTemplateToFile_ShouldSaveAndCreateFile() + { + // Arrange + var surface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + surface.AddElement(new ArrowContainer(surface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }); + surface.AddElement(new ArrowContainer(surface) + { + Left = 110, + Top = 120, + Width = 200, + Height = 150 + }); + var handler = new GreenshotTemplateFormatHandler(); + var tempFile = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid()}.gst"); + + try + { + // Act + handler.SaveTemplateToFile(tempFile, surface); + + // Assert + Assert.True(File.Exists(tempFile)); + } + finally + { + // Cleanup + if (File.Exists(tempFile)) + { + File.Delete(tempFile); + } + } + } + + /// + /// Verifies that a template saved with + /// can be successfully loaded using . + /// The test checks if the loaded surface contains the same elements as the original surface. + /// + [Fact] + public void LoadTemplateFromFile_FromSavedTemplate_ShouldLoadSurfaceWithElements() + { + // Arrange + var originalSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + var lineColor = Color.Red; + var arrow1 = new ArrowContainer(originalSurface) + { + Left = 10, + Top = 20, + Width = 100, + Height = 50 + }; + arrow1.SetFieldValue(FieldType.LINE_THICKNESS, 3); + arrow1.SetFieldValue(FieldType.LINE_COLOR, lineColor); + arrow1.SetFieldValue(FieldType.ARROWHEADS, ArrowContainer.ArrowHeadCombination.BOTH); + + var arrow2 = new ArrowContainer(originalSurface) + { + Left = 110, + Top = 120, + Width = 200, + Height = 150 + }; + arrow2.SetFieldValue(FieldType.LINE_THICKNESS, 5); + arrow2.SetFieldValue(FieldType.LINE_COLOR, lineColor); + arrow2.SetFieldValue(FieldType.SHADOW, false); + + originalSurface.AddElement(arrow1); + originalSurface.AddElement(arrow2); + var handler = new GreenshotTemplateFormatHandler(); + var tempFile = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid()}.gst"); + + try + { + handler.SaveTemplateToFile(tempFile, originalSurface); + + var newSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + + // Act + handler.LoadTemplateFromFile(tempFile, newSurface); + + // Assert + Assert.Equal(2, newSurface.Elements.Count); + Assert.All(newSurface.Elements, e => Assert.IsType(e)); + + var loadedArrow1 = (ArrowContainer)newSurface.Elements[0]; + Assert.NotNull(loadedArrow1); + Assert.Equal(10, loadedArrow1.Left); + Assert.Equal(20, loadedArrow1.Top); + Assert.Equal(100, loadedArrow1.Width); + Assert.Equal(50, loadedArrow1.Height); + Assert.Equal(3, loadedArrow1.GetFieldValue(FieldType.LINE_THICKNESS)); + var resultLineColor1 = loadedArrow1.GetFieldValue(FieldType.LINE_COLOR); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor1), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor1)}"); + + Assert.Equal(ArrowContainer.ArrowHeadCombination.BOTH, loadedArrow1.GetFieldValue(FieldType.ARROWHEADS)); + + var loadedArrow2 = (ArrowContainer)newSurface.Elements[1]; + Assert.NotNull(loadedArrow2); + Assert.Equal(110, loadedArrow2.Left); + Assert.Equal(120, loadedArrow2.Top); + Assert.Equal(200, loadedArrow2.Width); + Assert.Equal(150, loadedArrow2.Height); + Assert.Equal(5, loadedArrow2.GetFieldValue(FieldType.LINE_THICKNESS)); + var resultLineColor2 = loadedArrow1.GetFieldValue(FieldType.LINE_COLOR); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor2), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor2)}"); + Assert.False((bool)loadedArrow2.GetFieldValue(FieldType.SHADOW)); + } + finally + { + // Cleanup + if (File.Exists(tempFile)) + { + File.Delete(tempFile); + } + } + } +} diff --git a/src/Greenshot.Test/Editor/FileFormatHandlers/LoadGreenshotSurfaceTests.cs b/src/Greenshot.Test/Editor/FileFormatHandlers/LoadGreenshotSurfaceTests.cs new file mode 100644 index 000000000..2a111d0f9 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormatHandlers/LoadGreenshotSurfaceTests.cs @@ -0,0 +1,1140 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.Drawing.Filters; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormatHandlers; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormatHandlers; + +/// +/// Contains unit tests for loading and validating various container types and surfaces from Greenshot files using the +/// . +/// +/// Every test methode uses a .greenshot file from the TestData folder, which is expected to be present. +/// For every test method there is a .greenshot file in every supported Greenshot file version. +/// +[Collection("DefaultCollection")] +public class LoadGreenshotSurfaceTests +{ + private readonly GreenshotFileFormatHandler _greenshotFileFormatHandler = new(); + + public static IEnumerable ImageSurfaceTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "Surface_with_Image_800x400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "Surface_with_Image_800x400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "Surface_with_Image_800x400.greenshot")]; + } + + [Theory] + [MemberData(nameof(ImageSurfaceTestData))] + public void LoadImageSurfaceFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(0, resultElementList.Count); + } + + public static IEnumerable RectangleContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "RectangleContainer_lt_100_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "RectangleContainer_lt_100_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "RectangleContainer_lt_100_200_wh_150_80.greenshot")]; + } + + [Theory] + [MemberData(nameof(RectangleContainerTestData))] + public void LoadRectangleContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var rectangleInTestfile = new Rectangle(100, 200, 150, 80); + var rectangleLineThickness = 2; + var rectangleLineColor = Color.Red; + var rectangleFillColor = Color.Transparent; + var rectangleShadow = true; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultRectangleContainer = (RectangleContainer)resultFirstElement; + + Assert.Equal(rectangleInTestfile.Top, resultRectangleContainer.Top); + Assert.Equal(rectangleInTestfile.Left, resultRectangleContainer.Left); + Assert.Equal(rectangleInTestfile.Width, resultRectangleContainer.Width); + Assert.Equal(rectangleInTestfile.Height, resultRectangleContainer.Height); + + var resultAdorerList = resultRectangleContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultLineThickness = resultRectangleContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultRectangleContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = resultRectangleContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = resultRectangleContainer.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(rectangleLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(rectangleLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(rectangleLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(rectangleFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(rectangleFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(rectangleShadow, resultShadow); + } + + public static IEnumerable LineContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "LineContainer_lt_200_200_w_400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "LineContainer_lt_200_200_w_400.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "LineContainer_lt_200_200_w_400.greenshot")]; + } + + [Theory] + [MemberData(nameof(LineContainerTestData))] + public void LoadLineContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var linePosInTestfile = new Point(200, 200); + var lineWidthInTestfile = 400; + var lineThickness = 4; + var lineColor = Color.Blue; + var lineShadow = false; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultLineContainer = (LineContainer)resultFirstElement; + + Assert.Equal(linePosInTestfile.X, resultLineContainer.Left); + Assert.Equal(linePosInTestfile.Y, resultLineContainer.Top); + Assert.Equal(lineWidthInTestfile, resultLineContainer.Width); + + // LineContainer has no height, so it is set to -1 + Assert.Equal(-1, resultLineContainer.Height); + + var resultAdorerList = resultLineContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 2 Adorners for start and end + Assert.Equal(2, resultAdorerList.Count); + + var resultLineThickness = resultLineContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultLineContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = resultLineContainer.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(lineShadow, resultShadow); + } + + public static IEnumerable ArrowContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "ArrowContainer_lt_100_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "ArrowContainer_lt_100_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "ArrowContainer_lt_100_200_wh_400_100.greenshot")]; + } + + [Theory] + [MemberData(nameof(ArrowContainerTestData))] + public void LoadArrowContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var arrowPosInTestfile = new Point(100, 200); + var arrowWidthInTestfile = 400; + var arrowHeightInTestfile = 100; + var lineThickness = 3; + var lineColor = Color.Red; + var lineShadow = true; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultArrowContainer = (ArrowContainer)resultFirstElement; + + Assert.Equal(arrowPosInTestfile.X, resultArrowContainer.Left); + Assert.Equal(arrowPosInTestfile.Y, resultArrowContainer.Top); + Assert.Equal(arrowWidthInTestfile, resultArrowContainer.Width); + Assert.Equal(arrowHeightInTestfile, resultArrowContainer.Height); + + var resultAdorerList = resultArrowContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 2 Adorners for start and end + Assert.Equal(2, resultAdorerList.Count); + + var resultLineThickness = resultArrowContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultArrowContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = resultArrowContainer.GetFieldValue(FieldType.SHADOW); + var resultArrowheads = resultArrowContainer.GetFieldValue(FieldType.ARROWHEADS); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(lineShadow, resultShadow); + + Assert.NotNull(resultArrowheads); + Assert.IsType(resultArrowheads); + Assert.Equal(ArrowContainer.ArrowHeadCombination.BOTH, resultArrowheads); + } + + public static IEnumerable EllipseContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "EllipseContainer_lt_200_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "EllipseContainer_lt_200_200_wh_400_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "EllipseContainer_lt_200_200_wh_400_100.greenshot")]; + } + + [Theory] + [MemberData(nameof(EllipseContainerTestData))] + public void LoadEllipseContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var ellipseRectangleInTestfile = new Rectangle(200, 200, 400, 100); + var lineThickness = 6; + var lineColor = Color.FromArgb(255,0,255,0); + var fillColor = Color.Blue; + var lineShadow = false; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultEllipseContainer = (EllipseContainer)resultFirstElement; + + Assert.Equal(ellipseRectangleInTestfile.Top, resultEllipseContainer.Top); + Assert.Equal(ellipseRectangleInTestfile.Left, resultEllipseContainer.Left); + Assert.Equal(ellipseRectangleInTestfile.Width, resultEllipseContainer.Width); + Assert.Equal(ellipseRectangleInTestfile.Height, resultEllipseContainer.Height); + + var resultAdorerList = resultEllipseContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultLineThickness = resultEllipseContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultEllipseContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = resultEllipseContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = resultEllipseContainer.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(fillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(fillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(lineShadow, resultShadow); + } + + public static IEnumerable FreehandContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "FreehandContainer_with_4_points.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "FreehandContainer_with_4_points.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "FreehandContainer_with_4_points.greenshot")]; + } + + [Theory] + [MemberData(nameof(FreehandContainerTestData))] + public void LoadFreehandContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + // The Rectangle of the FreehandContainer is inherited from the Parent-Surface.Image, not from DrawingBounds. + var freehandRectangleInTestfile = new Rectangle(0, 0, 800,400); + var expectedCapturePoints = new List + { + new Point(240, 171), + new Point(246, 170), + new Point(246, 170), + new Point(252, 170) + }; + var lineThickness = 3; + var lineColor = Color.Red; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + + Assert.Equal(freehandRectangleInTestfile.Top, ((FreehandContainer)resultFirstElement).Top); + Assert.Equal(freehandRectangleInTestfile.Left, ((FreehandContainer)resultFirstElement).Left); + Assert.Equal(freehandRectangleInTestfile.Width, ((FreehandContainer)resultFirstElement).Width); + Assert.Equal(freehandRectangleInTestfile.Height, ((FreehandContainer)resultFirstElement).Height); + + var resultPoints = ((FreehandContainer)resultFirstElement).CapturePoints; + Assert.NotNull(resultPoints); + Assert.Equal(expectedCapturePoints.Count, resultPoints.Count); + for (int i = 0; i < expectedCapturePoints.Count; i++) + { + Assert.Equal(expectedCapturePoints[i], resultPoints[i]); + } + + var resultLineThickness = ((FreehandContainer)resultFirstElement).GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = ((FreehandContainer)resultFirstElement).GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + } + + public static IEnumerable TextContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "TextContainer_lt_300_200_wh_300_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "TextContainer_lt_300_200_wh_300_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "TextContainer_lt_300_200_wh_300_100.greenshot")]; + } + + [Theory] + [MemberData(nameof(TextContainerTestData))] + public void LoadTextContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var textContainerRectInTestfile = new Rectangle(300, 200, 300, 100); + var expectedText = "Hello Greenshot"; + var expectedLineThickness = 4; + var expectedLineColor = Color.Red; + var expectedFillColor = Color.FromArgb(255,204,255,229); + var expectedShadow = true; + var expectedFontFamily = "Arial"; + var expectedFontSize = 30f; + var expectedFontBold = true; + var expectedFontItalic = false; + var expectedHorizontalAlignment = StringAlignment.Far; + var expectedVerticalAlignment = StringAlignment.Far; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var textContainer = (TextContainer)resultFirstElement; + + Assert.Equal(textContainerRectInTestfile.Top, textContainer.Top); + Assert.Equal(textContainerRectInTestfile.Left, textContainer.Left); + Assert.Equal(textContainerRectInTestfile.Width, textContainer.Width); + Assert.Equal(textContainerRectInTestfile.Height, textContainer.Height); + + var resultAdorerList = textContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + Assert.Equal(expectedText, textContainer.Text); + + var resultLineThickness = textContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = textContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = textContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = textContainer.GetFieldValue(FieldType.SHADOW); + var resultFontFamily = textContainer.GetFieldValue(FieldType.FONT_FAMILY); + var resultFontSize = textContainer.GetFieldValue(FieldType.FONT_SIZE); + var resultFontBold = textContainer.GetFieldValue(FieldType.FONT_BOLD); + var resultFontItalic = textContainer.GetFieldValue(FieldType.FONT_ITALIC); + var resultHorizontalAlignment = textContainer.GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultVerticalAlignment = textContainer.GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(expectedLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor), + $"The line color values are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor), + $"The fill color values are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(expectedShadow, resultShadow); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(expectedFontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(expectedFontSize, resultFontSize); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.Equal(expectedFontBold, resultFontBold); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.Equal(expectedFontItalic, resultFontItalic); + + Assert.NotNull(resultHorizontalAlignment); + Assert.IsType(resultHorizontalAlignment); + Assert.Equal(expectedHorizontalAlignment, resultHorizontalAlignment); + + Assert.NotNull(resultVerticalAlignment); + Assert.IsType(resultVerticalAlignment); + Assert.Equal(expectedVerticalAlignment, resultVerticalAlignment); + } + + public static IEnumerable SpeechbubbleContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot")]; + } + + [Theory] + [MemberData(nameof(SpeechbubbleContainerTestData))] + public void LoadSpeechbubbleContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var speechbubbleRectInTestfile = new Rectangle(200, 200, 150, 80); + var expectedText = "Point on 100x300"; + var expectedLineThickness = 3; + var expectedLineColor = Color.Blue; + var expectedFillColor = Color.White; + var expectedShadow = true; + var expectedFontFamily = "Arial"; + var expectedFontSize = 20f; + var expectedFontBold = false; + var expectedFontItalic = false; + var expectedHorizontalAlignment = StringAlignment.Center; + var expectedVerticalAlignment = StringAlignment.Center; + var expectedTargetPoint = new Point(100, 300); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var speechbubbleContainer = (SpeechbubbleContainer)resultFirstElement; + + Assert.Equal(speechbubbleRectInTestfile.Top, speechbubbleContainer.Top); + Assert.Equal(speechbubbleRectInTestfile.Left, speechbubbleContainer.Left); + Assert.Equal(speechbubbleRectInTestfile.Width, speechbubbleContainer.Width); + Assert.Equal(speechbubbleRectInTestfile.Height, speechbubbleContainer.Height); + + Assert.Equal(expectedText, speechbubbleContainer.Text); + Assert.Equal(expectedTargetPoint, speechbubbleContainer.StoredTargetGripperLocation); + + var resultAdorerList = speechbubbleContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + 1 Target Adorner + Assert.Equal(9, resultAdorerList.Count); + + Assert.Equal(expectedTargetPoint.X, speechbubbleContainer.TargetAdorner.Location.X); + Assert.Equal(expectedTargetPoint.Y, speechbubbleContainer.TargetAdorner.Location.Y); + + var resultLineThickness = speechbubbleContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = speechbubbleContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = speechbubbleContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = speechbubbleContainer.GetFieldValue(FieldType.SHADOW); + var resultFontFamily = speechbubbleContainer.GetFieldValue(FieldType.FONT_FAMILY); + var resultFontSize = speechbubbleContainer.GetFieldValue(FieldType.FONT_SIZE); + var resultFontBold = speechbubbleContainer.GetFieldValue(FieldType.FONT_BOLD); + var resultFontItalic = speechbubbleContainer.GetFieldValue(FieldType.FONT_ITALIC); + var resultHorizontalAlignment = speechbubbleContainer.GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultVerticalAlignment = speechbubbleContainer.GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(expectedLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor), + $"The line color values are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor), + $"The fill color values are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(expectedShadow, resultShadow); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(expectedFontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(expectedFontSize, resultFontSize); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.Equal(expectedFontBold, resultFontBold); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.Equal(expectedFontItalic, resultFontItalic); + + Assert.NotNull(resultHorizontalAlignment); + Assert.IsType(resultHorizontalAlignment); + Assert.Equal(expectedHorizontalAlignment, resultHorizontalAlignment); + + Assert.NotNull(resultVerticalAlignment); + Assert.IsType(resultVerticalAlignment); + Assert.Equal(expectedVerticalAlignment, resultVerticalAlignment); + } + + public static IEnumerable HighlightContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot")]; + } + + [Theory] + [MemberData(nameof(HighlightContainerTestData))] + public void LoadHighlightContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var highlightRectInTestfile = new Rectangle(310, 70, 195, 60); + var expectedPreparedFilter = FilterContainer.PreparedFilter.TEXT_HIGHTLIGHT; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var highlightContainer = (HighlightContainer)resultFirstElement; + + Assert.Equal(highlightRectInTestfile.Top, highlightContainer.Top); + Assert.Equal(highlightRectInTestfile.Left, highlightContainer.Left); + Assert.Equal(highlightRectInTestfile.Width, highlightContainer.Width); + Assert.Equal(highlightRectInTestfile.Height, highlightContainer.Height); + + var resultAdorerList = highlightContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultPreparedFilter = highlightContainer.GetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(expectedPreparedFilter, resultPreparedFilter); + + // Check the actual filter applied based on the prepared filter + Assert.NotNull(highlightContainer.Filters); + Assert.Equal(1, highlightContainer.Filters.Count); + Assert.IsType(highlightContainer.Filters[0]); + } + + public static IEnumerable ObfuscateContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot")]; + } + + [Theory] + [MemberData(nameof(ObfuscateContainerTestData))] + public void LoadObfuscateContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var obfuscateRectInTestfile = new Rectangle(130, 70, 180, 70); + var expectedPreparedFilter = FilterContainer.PreparedFilter.BLUR; + var expectedLineThickness = 1; + var expectedLineColor = Color.FromArgb(255,0,255,0); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var obfuscateContainer = (ObfuscateContainer)resultFirstElement; + + Assert.Equal(obfuscateRectInTestfile.Top, obfuscateContainer.Top); + Assert.Equal(obfuscateRectInTestfile.Left, obfuscateContainer.Left); + Assert.Equal(obfuscateRectInTestfile.Width, obfuscateContainer.Width); + Assert.Equal(obfuscateRectInTestfile.Height, obfuscateContainer.Height); + + var resultAdorerList = obfuscateContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultLineThickness = obfuscateContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = obfuscateContainer.GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(expectedLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor), + $"The line color values are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + var resultPreparedFilter = obfuscateContainer.GetFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(expectedPreparedFilter, resultPreparedFilter); + + // Check the actual filter applied based on the prepared filter + Assert.NotNull(obfuscateContainer.Filters); + Assert.Equal(1, obfuscateContainer.Filters.Count); + Assert.IsType(obfuscateContainer.Filters[0]); + } + + public static IEnumerable IconContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "IconContainer_lt_400_200_wh_32_32.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "IconContainer_lt_400_200_wh_32_32.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "IconContainer_lt_400_200_wh_32_32.greenshot")]; + } + + [Theory] + [MemberData(nameof(IconContainerTestData))] + public void LoadIconContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var iconRectInTestfile = new Rectangle(400, 200, 32, 32); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var iconContainer = (IconContainer)resultFirstElement; + + Assert.Equal(iconRectInTestfile.Top, iconContainer.Top); + Assert.Equal(iconRectInTestfile.Left, iconContainer.Left); + Assert.Equal(iconRectInTestfile.Width, iconContainer.Width); + Assert.Equal(iconRectInTestfile.Height, iconContainer.Height); + + var resultAdorerList = iconContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + Assert.NotNull(iconContainer.Icon); + Assert.Equal(iconRectInTestfile.Size, iconContainer.Icon.Size); + } + + public static IEnumerable StepLabelContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "StepLabelContainer_lt_200_200_lt_500_300.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "StepLabelContainer_lt_200_200_lt_500_300.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "StepLabelContainer_lt_200_200_lt_500_300.greenshot")]; + } + + [Theory] + [MemberData(nameof(StepLabelContainerTestData))] + public void LoadStepLabelContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var stepLabel1Pos = new Point(200, 200); + var stepLabel2Pos = new Point(500, 300); + var stepLabelSize = new Size(30, 30); + var expectedFillColor = Color.Blue; + var expectedLineColor = Color.White; + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(2, resultElementList.Count); + + // Assertions for the first StepLabelContainer + var resultFirstElement = resultElementList[0]; + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var stepLabelContainer1 = (StepLabelContainer)resultFirstElement; + + Assert.Equal(stepLabel1Pos.X, stepLabelContainer1.Left); + Assert.Equal(stepLabel1Pos.Y, stepLabelContainer1.Top); + Assert.Equal(stepLabelSize.Width, stepLabelContainer1.Width); + Assert.Equal(stepLabelSize.Height, stepLabelContainer1.Height); + Assert.Equal(1, stepLabelContainer1.Number); + + var resultFillColor1 = stepLabelContainer1.GetFieldValue(FieldType.FILL_COLOR); + var resultLineColor1 = stepLabelContainer1.GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultFillColor1); + Assert.IsType(resultFillColor1); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor1), + $"The fill color values for StepLabelContainer 1 are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor1)}"); + + Assert.NotNull(resultLineColor1); + Assert.IsType(resultLineColor1); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor1), + $"The line color values for StepLabelContainer 1 are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor1)}"); + + + // Assertions for the second StepLabelContainer + var resultSecondElement = resultElementList[1]; + Assert.NotNull(resultSecondElement); + Assert.IsType(resultSecondElement); + var stepLabelContainer2 = (StepLabelContainer)resultSecondElement; + + Assert.Equal(stepLabel2Pos.X, stepLabelContainer2.Left); + Assert.Equal(stepLabel2Pos.Y, stepLabelContainer2.Top); + Assert.Equal(stepLabelSize.Width, stepLabelContainer2.Width); + Assert.Equal(stepLabelSize.Height, stepLabelContainer2.Height); + Assert.Equal(2, stepLabelContainer2.Number); + + var resultFillColor2 = stepLabelContainer2.GetFieldValue(FieldType.FILL_COLOR); + var resultLineColor2 = stepLabelContainer2.GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultFillColor2); + Assert.IsType(resultFillColor2); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor2), + $"The fill color values for StepLabelContainer 2 are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor2)}"); + + Assert.NotNull(resultLineColor2); + Assert.IsType(resultLineColor2); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor2), + $"The line color values for StepLabelContainer 2 are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor2)}"); + } + + public static IEnumerable ImageContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "ImageContainer_lt_300_200_wh_100_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "ImageContainer_lt_300_200_wh_100_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "ImageContainer_lt_300_200_wh_100_100.greenshot")]; + } + + [Theory] + [MemberData(nameof(ImageContainerTestData))] + public void LoadImageContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + // The ImageContainer has been scaled down from (256, 256) to (100, 100) + var containerImageSize = new Size(256, 256); + var imageRectInTestfile = new Rectangle(300, 200, 100, 100); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var imageContainer = (ImageContainer)resultFirstElement; + + Assert.Equal(imageRectInTestfile.Top, imageContainer.Top); + Assert.Equal(imageRectInTestfile.Left, imageContainer.Left); + Assert.Equal(imageRectInTestfile.Width, imageContainer.Width); + Assert.Equal(imageRectInTestfile.Height, imageContainer.Height); + + var resultAdorerList = imageContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + Assert.NotNull(imageContainer.Image); + Assert.Equal(containerImageSize, imageContainer.Image.Size); + } + + public static IEnumerable SvgContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "SvgContainer_lt_300_200_wh_120_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "SvgContainer_lt_300_200_wh_120_100.greenshot")]; + } + + [Theory] + [MemberData(nameof(SvgContainerTestData))] + public void LoadSvgContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var svgRectInTestfile = new Rectangle(300, 200, 120, 100); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var svgContainer = (SvgContainer)resultFirstElement; + + Assert.Equal(svgRectInTestfile.Top, svgContainer.Top); + Assert.Equal(svgRectInTestfile.Left, svgContainer.Left); + Assert.Equal(svgRectInTestfile.Width, svgContainer.Width); + Assert.Equal(svgRectInTestfile.Height, svgContainer.Height); + + var resultAdorerList = svgContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + Assert.Equal(4, resultAdorerList.Count); + + Assert.NotNull(svgContainer.SvgContent); + Assert.True( svgContainer.SvgContent.Length > 0); + } + + public static IEnumerable MetafileContainerTestData() + { + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "MetafileContainer_lt_300_200_wh_120_100.greenshot")]; + yield return [Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "MetafileContainer_lt_300_200_wh_120_100.greenshot")]; + } + + [Theory] + [MemberData(nameof(MetafileContainerTestData))] + public void LoadMetafileContainerFromGreenshotFile(string filePath) + { + // Arrange + var imageSizeInTestfile = new Size(800, 400); + var metafileRectInTestfile = new Rectangle(300, 200, 120, 100); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.Equal(imageSizeInTestfile, resultSurface.Image.Size); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var metafileContainer = (MetafileContainer)resultFirstElement; + + Assert.Equal(metafileRectInTestfile.Top, metafileContainer.Top); + Assert.Equal(metafileRectInTestfile.Left, metafileContainer.Left); + Assert.Equal(metafileRectInTestfile.Width, metafileContainer.Width); + Assert.Equal(metafileRectInTestfile.Height, metafileContainer.Height); + + var resultAdorerList = metafileContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + Assert.Equal(4, resultAdorerList.Count); + + Assert.NotNull(metafileContainer.MetafileContent); + Assert.True(metafileContainer.MetafileContent.Length > 0); + } + + /// + /// Tests to load a Greenshot surface from a file created with version 01.02, ensuring that the surface + /// contains the expected number and types of drawable containers. + /// + /// The test file contains all possible container types for version 01.02 + [Fact] + public void LoadFromV0102GreenshotFileWithDifferentContainer() + { + // Arrange + string filePath = Path.Combine("TestData", "Greenshotfile", "File_Version_1.02", "Surface_with_11_different_DrawableContainer.greenshot"); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + + var resultElementList = resultSurface.Elements; + + Assert.NotNull(resultElementList); + Assert.Equal(11, resultElementList.Count); + + Assert.IsType(resultElementList[0]); + Assert.IsType(resultElementList[1]); + Assert.IsType(resultElementList[2]); + Assert.IsType(resultElementList[3]); + Assert.IsType(resultElementList[4]); + Assert.IsType(resultElementList[5]); + Assert.IsType(resultElementList[6]); + Assert.IsType(resultElementList[7]); + Assert.IsType(resultElementList[8]); + Assert.IsType(resultElementList[9]); + Assert.IsType(resultElementList[10]); + } + + /// + /// Tests to load a Greenshot surface from a file created with version 01.03, ensuring that the surface + /// contains the expected number and types of drawable containers. + /// + /// The test file contains all possible container types for version 01.03 + [Fact] + public void LoadFromV0103GreenshotFileWithDifferentContainer() + { + // Arrange + string filePath = Path.Combine("TestData", "Greenshotfile", "File_Version_1.03", "Surface_with_14_different_DrawableContainer.greenshot"); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + + var resultElementList = resultSurface.Elements; + + Assert.NotNull(resultElementList); + Assert.Equal(14, resultElementList.Count); + + Assert.IsType(resultElementList[0]); + Assert.IsType(resultElementList[1]); + Assert.IsType(resultElementList[2]); + Assert.IsType(resultElementList[3]); + Assert.IsType(resultElementList[4]); + Assert.IsType(resultElementList[5]); + Assert.IsType(resultElementList[6]); + Assert.IsType(resultElementList[7]); + Assert.IsType(resultElementList[8]); + Assert.IsType(resultElementList[9]); + Assert.IsType(resultElementList[10]); + Assert.IsType(resultElementList[11]); + Assert.IsType(resultElementList[12]); + Assert.IsType(resultElementList[13]); + } + /// + /// Tests to load a Greenshot surface from a file created with version 02.01, ensuring that the surface + /// contains the expected number and types of drawable containers. + /// + /// The test file contains all possible container types for version 02.01 + [Fact] + public void LoadFromV0201GreenshotFileWithDifferentContainer() + { + // Arrange + string filePath = Path.Combine("TestData", "Greenshotfile", "File_Version_2.01", "Surface_with_14_different_DrawableContainer.greenshot"); + + // Act + var resultSurface = _greenshotFileFormatHandler.LoadGreenshotSurface(filePath); + + // Assert + Assert.NotNull(resultSurface); + + var resultElementList = resultSurface.Elements; + + Assert.NotNull(resultElementList); + Assert.Equal(14, resultElementList.Count); + + Assert.IsType(resultElementList[0]); + Assert.IsType(resultElementList[1]); + Assert.IsType(resultElementList[2]); + Assert.IsType(resultElementList[3]); + Assert.IsType(resultElementList[4]); + Assert.IsType(resultElementList[5]); + Assert.IsType(resultElementList[6]); + Assert.IsType(resultElementList[7]); + Assert.IsType(resultElementList[8]); + Assert.IsType(resultElementList[9]); + Assert.IsType(resultElementList[10]); + Assert.IsType(resultElementList[11]); + Assert.IsType(resultElementList[12]); + Assert.IsType(resultElementList[13]); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Editor/FileFormatHandlers/LoadTemplateFromFileTest.cs b/src/Greenshot.Test/Editor/FileFormatHandlers/LoadTemplateFromFileTest.cs new file mode 100644 index 000000000..b74ba08a4 --- /dev/null +++ b/src/Greenshot.Test/Editor/FileFormatHandlers/LoadTemplateFromFileTest.cs @@ -0,0 +1,1103 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Editor.Drawing.Fields; +using Greenshot.Editor.FileFormat.Dto; +using Greenshot.Editor.FileFormatHandlers; +using Greenshot.Editor.Drawing.Filters; +using Xunit; + +namespace Greenshot.Test.Editor.FileFormatHandlers; + +/// +/// Contains unit tests for loading and validating various container types from Greenshot template using the +/// . +/// +/// Every test methode uses a .gst file from the TestData folder, which is expected to be present. +/// For every test method there is a .gst file in every supported Greenshot file version. +/// +[Collection("DefaultCollection")] +public class LoadTemplateFromFileTest +{ + private readonly GreenshotTemplateFormatHandler _greenshotTemplateFormatHandler = new(); + + + public static IEnumerable ArrowContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "ArrowContainer_lt_100_200_wh_400_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "ArrowContainer_lt_100_200_wh_400_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "ArrowContainer_lt_100_200_wh_400_100.gst")]; + } + + [Theory] + [MemberData(nameof(ArrowContainerTestData))] + public void LoadArrowContainerFromGreenshotTemplate(string filePath) + { + // Arrange + + var image = new Bitmap(800, 400); + var arrowPosInTestfile = new Point(100, 200); + var arrowWidthInTestfile = 400; + var arrowHeightInTestfile = 100; + var lineThickness = 3; + var lineColor = Color.Red; + var lineShadow = true; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultArrowContainer = (ArrowContainer)resultFirstElement; + + Assert.Equal(arrowPosInTestfile.X, resultArrowContainer.Left); + Assert.Equal(arrowPosInTestfile.Y, resultArrowContainer.Top); + Assert.Equal(arrowWidthInTestfile, resultArrowContainer.Width); + Assert.Equal(arrowHeightInTestfile, resultArrowContainer.Height); + + var resultAdorerList = resultArrowContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 2 Adorners for start and end + Assert.Equal(2, resultAdorerList.Count); + + var resultLineThickness = resultArrowContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultArrowContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = resultArrowContainer.GetFieldValue(FieldType.SHADOW); + var resultArrowheads = resultArrowContainer.GetFieldValue(FieldType.ARROWHEADS); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(lineShadow, resultShadow); + + Assert.NotNull(resultArrowheads); + Assert.IsType(resultArrowheads); + Assert.Equal(ArrowContainer.ArrowHeadCombination.BOTH, resultArrowheads); + } + + public static IEnumerable RectangleContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "RectangleContainer_lt_100_200_wh_150_80.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "RectangleContainer_lt_100_200_wh_150_80.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "RectangleContainer_lt_100_200_wh_150_80.gst")]; + } + + [Theory] + [MemberData(nameof(RectangleContainerTestData))] + public void LoadRectangleContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var rectangleInTestfile = new Rectangle(100, 200, 150, 80); + var rectangleLineThickness = 2; + var rectangleLineColor = Color.Red; + var rectangleFillColor = Color.Transparent; + var rectangleShadow = true; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultRectangleContainer = (RectangleContainer)resultFirstElement; + + Assert.Equal(rectangleInTestfile.Top, resultRectangleContainer.Top); + Assert.Equal(rectangleInTestfile.Left, resultRectangleContainer.Left); + Assert.Equal(rectangleInTestfile.Width, resultRectangleContainer.Width); + Assert.Equal(rectangleInTestfile.Height, resultRectangleContainer.Height); + + var resultAdorerList = resultRectangleContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultLineThickness = resultRectangleContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultRectangleContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = resultRectangleContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = resultRectangleContainer.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(rectangleLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(rectangleLineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(rectangleLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(rectangleFillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(rectangleFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(rectangleShadow, resultShadow); + } + + public static IEnumerable LineContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "LineContainer_lt_200_200_w_400.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "LineContainer_lt_200_200_w_400.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "LineContainer_lt_200_200_w_400.gst")]; + } + + [Theory] + [MemberData(nameof(LineContainerTestData))] + public void LoadLineContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var linePosInTestfile = new Point(200, 200); + var lineWidthInTestfile = 400; + var lineThickness = 4; + var lineColor = Color.Blue; + var lineShadow = false; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultLineContainer = (LineContainer)resultFirstElement; + + Assert.Equal(linePosInTestfile.X, resultLineContainer.Left); + Assert.Equal(linePosInTestfile.Y, resultLineContainer.Top); + Assert.Equal(lineWidthInTestfile, resultLineContainer.Width); + + // LineContainer has no height, so it is set to -1 + Assert.Equal(-1, resultLineContainer.Height); + + var resultAdorerList = resultLineContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 2 Adorners for start and end + Assert.Equal(2, resultAdorerList.Count); + + var resultLineThickness = resultLineContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultLineContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultShadow = resultLineContainer.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(lineShadow, resultShadow); + } + + public static IEnumerable EllipseContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "EllipseContainer_lt_200_200_wh_400_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "EllipseContainer_lt_200_200_wh_400_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "EllipseContainer_lt_200_200_wh_400_100.gst")]; + } + + [Theory] + [MemberData(nameof(EllipseContainerTestData))] + public void LoadEllipseContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var ellipseRectangleInTestfile = new Rectangle(200, 200, 400, 100); + var lineThickness = 6; + var lineColor = Color.FromArgb(255,0,255,0); + var fillColor = Color.Blue; + var lineShadow = false; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var resultEllipseContainer = (EllipseContainer)resultFirstElement; + + Assert.Equal(ellipseRectangleInTestfile.Top, resultEllipseContainer.Top); + Assert.Equal(ellipseRectangleInTestfile.Left, resultEllipseContainer.Left); + Assert.Equal(ellipseRectangleInTestfile.Width, resultEllipseContainer.Width); + Assert.Equal(ellipseRectangleInTestfile.Height, resultEllipseContainer.Height); + + var resultAdorerList = resultEllipseContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultLineThickness = resultEllipseContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = resultEllipseContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = resultEllipseContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = resultEllipseContainer.GetFieldValue(FieldType.SHADOW); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(fillColor, (Color)resultFillColor), + $"The color values are different. expected:{DtoHelper.ArgbString(fillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(lineShadow, resultShadow); + } + + public static IEnumerable FreehandContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "FreehandContainer_with_4_points.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "FreehandContainer_with_4_points.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "FreehandContainer_with_4_points.gst")]; + } + + [Theory] + [MemberData(nameof(FreehandContainerTestData))] + public void LoadFreehandContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var freehandRectangleInTestfile = new Rectangle(0, 0, 800,400); + var expectedCapturePoints = new List + { + new Point(240, 171), + new Point(246, 170), + new Point(246, 170), + new Point(252, 170) + }; + var lineThickness = 3; + var lineColor = Color.Red; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + + Assert.Equal(freehandRectangleInTestfile.Top, ((FreehandContainer)resultFirstElement).Top); + Assert.Equal(freehandRectangleInTestfile.Left, ((FreehandContainer)resultFirstElement).Left); + Assert.Equal(freehandRectangleInTestfile.Width, ((FreehandContainer)resultFirstElement).Width); + Assert.Equal(freehandRectangleInTestfile.Height, ((FreehandContainer)resultFirstElement).Height); + + var resultPoints = ((FreehandContainer)resultFirstElement).CapturePoints; + Assert.NotNull(resultPoints); + Assert.Equal(expectedCapturePoints.Count, resultPoints.Count); + for (int i = 0; i < expectedCapturePoints.Count; i++) + { + Assert.Equal(expectedCapturePoints[i], resultPoints[i]); + } + + var resultLineThickness = ((FreehandContainer)resultFirstElement).GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = ((FreehandContainer)resultFirstElement).GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(lineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(lineColor, (Color)resultLineColor), + $"The color values are different. expected:{DtoHelper.ArgbString(lineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + } + + public static IEnumerable TextContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "TextContainer_lt_300_200_wh_300_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "TextContainer_lt_300_200_wh_300_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "TextContainer_lt_300_200_wh_300_100.gst")]; + } + + [Theory] + [MemberData(nameof(TextContainerTestData))] + public void LoadTextContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var textContainerRectInTestfile = new Rectangle(300, 200, 300, 100); + var expectedText = "Hello Greenshot"; + var expectedLineThickness = 4; + var expectedLineColor = Color.Red; + var expectedFillColor = Color.FromArgb(255,204,255,229); + var expectedShadow = true; + var expectedFontFamily = "Arial"; + var expectedFontSize = 30f; + var expectedFontBold = true; + var expectedFontItalic = false; + var expectedHorizontalAlignment = StringAlignment.Far; + var expectedVerticalAlignment = StringAlignment.Far; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var textContainer = (TextContainer)resultFirstElement; + + Assert.Equal(textContainerRectInTestfile.Top, textContainer.Top); + Assert.Equal(textContainerRectInTestfile.Left, textContainer.Left); + Assert.Equal(textContainerRectInTestfile.Width, textContainer.Width); + Assert.Equal(textContainerRectInTestfile.Height, textContainer.Height); + + var resultAdorerList = textContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + Assert.Equal(expectedText, textContainer.Text); + + var resultLineThickness = textContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = textContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = textContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = textContainer.GetFieldValue(FieldType.SHADOW); + var resultFontFamily = textContainer.GetFieldValue(FieldType.FONT_FAMILY); + var resultFontSize = textContainer.GetFieldValue(FieldType.FONT_SIZE); + var resultFontBold = textContainer.GetFieldValue(FieldType.FONT_BOLD); + var resultFontItalic = textContainer.GetFieldValue(FieldType.FONT_ITALIC); + var resultHorizontalAlignment = textContainer.GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultVerticalAlignment = textContainer.GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(expectedLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor), + $"The line color values are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor), + $"The fill color values are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(expectedShadow, resultShadow); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(expectedFontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(expectedFontSize, resultFontSize); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.Equal(expectedFontBold, resultFontBold); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.Equal(expectedFontItalic, resultFontItalic); + + Assert.NotNull(resultHorizontalAlignment); + Assert.IsType(resultHorizontalAlignment); + Assert.Equal(expectedHorizontalAlignment, resultHorizontalAlignment); + + Assert.NotNull(resultVerticalAlignment); + Assert.IsType(resultVerticalAlignment); + Assert.Equal(expectedVerticalAlignment, resultVerticalAlignment); + } + + public static IEnumerable SpeechbubbleContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "SpeechbubbleContainer_lt_200_200_wh_150_80.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "SpeechbubbleContainer_lt_200_200_wh_150_80.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "SpeechbubbleContainer_lt_200_200_wh_150_80.gst")]; + } + + [Theory] + [MemberData(nameof(SpeechbubbleContainerTestData))] + public void LoadSpeechbubbleContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var speechbubbleRectInTestfile = new Rectangle(200, 200, 150, 80); + var expectedText = "Point on 100x300"; + var expectedLineThickness = 3; + var expectedLineColor = Color.Blue; + var expectedFillColor = Color.White; + var expectedShadow = true; + var expectedFontFamily = "Arial"; + var expectedFontSize = 20f; + var expectedFontBold = false; + var expectedFontItalic = false; + var expectedHorizontalAlignment = StringAlignment.Center; + var expectedVerticalAlignment = StringAlignment.Center; + var expectedTargetPoint = new Point(100, 300); + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var speechbubbleContainer = (SpeechbubbleContainer)resultFirstElement; + + Assert.Equal(speechbubbleRectInTestfile.Top, speechbubbleContainer.Top); + Assert.Equal(speechbubbleRectInTestfile.Left, speechbubbleContainer.Left); + Assert.Equal(speechbubbleRectInTestfile.Width, speechbubbleContainer.Width); + Assert.Equal(speechbubbleRectInTestfile.Height, speechbubbleContainer.Height); + + Assert.Equal(expectedText, speechbubbleContainer.Text); + Assert.Equal(expectedTargetPoint, speechbubbleContainer.StoredTargetGripperLocation); + + var resultAdorerList = speechbubbleContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + 1 Target Adorner + Assert.Equal(9, resultAdorerList.Count); + + Assert.Equal(expectedTargetPoint.X, speechbubbleContainer.TargetAdorner.Location.X); + Assert.Equal(expectedTargetPoint.Y, speechbubbleContainer.TargetAdorner.Location.Y); + + var resultLineThickness = speechbubbleContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = speechbubbleContainer.GetFieldValue(FieldType.LINE_COLOR); + var resultFillColor = speechbubbleContainer.GetFieldValue(FieldType.FILL_COLOR); + var resultShadow = speechbubbleContainer.GetFieldValue(FieldType.SHADOW); + var resultFontFamily = speechbubbleContainer.GetFieldValue(FieldType.FONT_FAMILY); + var resultFontSize = speechbubbleContainer.GetFieldValue(FieldType.FONT_SIZE); + var resultFontBold = speechbubbleContainer.GetFieldValue(FieldType.FONT_BOLD); + var resultFontItalic = speechbubbleContainer.GetFieldValue(FieldType.FONT_ITALIC); + var resultHorizontalAlignment = speechbubbleContainer.GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var resultVerticalAlignment = speechbubbleContainer.GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(expectedLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor), + $"The line color values are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + Assert.NotNull(resultFillColor); + Assert.IsType(resultFillColor); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor), + $"The fill color values are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor)}"); + + Assert.NotNull(resultShadow); + Assert.IsType(resultShadow); + Assert.Equal(expectedShadow, resultShadow); + + Assert.NotNull(resultFontFamily); + Assert.IsType(resultFontFamily); + Assert.Equal(expectedFontFamily, resultFontFamily); + + Assert.NotNull(resultFontSize); + Assert.IsType(resultFontSize); + Assert.Equal(expectedFontSize, resultFontSize); + + Assert.NotNull(resultFontBold); + Assert.IsType(resultFontBold); + Assert.Equal(expectedFontBold, resultFontBold); + + Assert.NotNull(resultFontItalic); + Assert.IsType(resultFontItalic); + Assert.Equal(expectedFontItalic, resultFontItalic); + + Assert.NotNull(resultHorizontalAlignment); + Assert.IsType(resultHorizontalAlignment); + Assert.Equal(expectedHorizontalAlignment, resultHorizontalAlignment); + + Assert.NotNull(resultVerticalAlignment); + Assert.IsType(resultVerticalAlignment); + Assert.Equal(expectedVerticalAlignment, resultVerticalAlignment); + } + + public static IEnumerable HighlightContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst")]; + } + + [Theory] + [MemberData(nameof(HighlightContainerTestData))] + public void LoadHighlightContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var highlightRectInTestfile = new Rectangle(310, 70, 195, 60); + var expectedPreparedFilter = FilterContainer.PreparedFilter.TEXT_HIGHTLIGHT; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var highlightContainer = (HighlightContainer)resultFirstElement; + + Assert.Equal(highlightRectInTestfile.Top, highlightContainer.Top); + Assert.Equal(highlightRectInTestfile.Left, highlightContainer.Left); + Assert.Equal(highlightRectInTestfile.Width, highlightContainer.Width); + Assert.Equal(highlightRectInTestfile.Height, highlightContainer.Height); + + var resultAdorerList = highlightContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultPreparedFilter = highlightContainer.GetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(expectedPreparedFilter, resultPreparedFilter); + + // Check the actual filter applied based on the prepared filter + Assert.NotNull(highlightContainer.Filters); + Assert.Equal(1, highlightContainer.Filters.Count); + Assert.IsType(highlightContainer.Filters[0]); + } + + public static IEnumerable ObfuscateContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst")]; + } + + [Theory] + [MemberData(nameof(ObfuscateContainerTestData))] + public void LoadObfuscateContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var obfuscateRectInTestfile = new Rectangle(130, 70, 180, 70); + var expectedPreparedFilter = FilterContainer.PreparedFilter.BLUR; + var expectedLineThickness = 1; + var expectedLineColor = Color.FromArgb(255,0,255,0); + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var obfuscateContainer = (ObfuscateContainer)resultFirstElement; + + Assert.Equal(obfuscateRectInTestfile.Top, obfuscateContainer.Top); + Assert.Equal(obfuscateRectInTestfile.Left, obfuscateContainer.Left); + Assert.Equal(obfuscateRectInTestfile.Width, obfuscateContainer.Width); + Assert.Equal(obfuscateRectInTestfile.Height, obfuscateContainer.Height); + + var resultAdorerList = obfuscateContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + var resultLineThickness = obfuscateContainer.GetFieldValue(FieldType.LINE_THICKNESS); + var resultLineColor = obfuscateContainer.GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultLineThickness); + Assert.IsType(resultLineThickness); + Assert.Equal(expectedLineThickness, resultLineThickness); + + Assert.NotNull(resultLineColor); + Assert.IsType(resultLineColor); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor), + $"The line color values are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor)}"); + + var resultPreparedFilter = obfuscateContainer.GetFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE); + + Assert.NotNull(resultPreparedFilter); + Assert.IsType(resultPreparedFilter); + Assert.Equal(expectedPreparedFilter, resultPreparedFilter); + + // Check the actual filter applied based on the prepared filter + Assert.NotNull(obfuscateContainer.Filters); + Assert.Equal(1, obfuscateContainer.Filters.Count); + Assert.IsType(obfuscateContainer.Filters[0]); + } + + public static IEnumerable IconContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "IconContainer_lt_400_200_wh_32_32.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "IconContainer_lt_400_200_wh_32_32.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "IconContainer_lt_400_200_wh_32_32.gst")]; + } + + [Theory] + [MemberData(nameof(IconContainerTestData))] + public void LoadIconContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var iconRectInTestfile = new Rectangle(400, 200, 32, 32); + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var iconContainer = (IconContainer)resultFirstElement; + + Assert.Equal(iconRectInTestfile.Top, iconContainer.Top); + Assert.Equal(iconRectInTestfile.Left, iconContainer.Left); + Assert.Equal(iconRectInTestfile.Width, iconContainer.Width); + Assert.Equal(iconRectInTestfile.Height, iconContainer.Height); + + var resultAdorerList = iconContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + Assert.NotNull(iconContainer.Icon); + Assert.Equal(iconRectInTestfile.Size, iconContainer.Icon.Size); + } + + public static IEnumerable StepLabelContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "StepLabelContainer_lt_200_200_lt_500_300.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "StepLabelContainer_lt_200_200_lt_500_300.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "StepLabelContainer_lt_200_200_lt_500_300.gst")]; + } + + [Theory] + [MemberData(nameof(StepLabelContainerTestData))] + public void LoadStepLabelContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var stepLabel1Pos = new Point(200, 200); + var stepLabel2Pos = new Point(500, 300); + var stepLabelSize = new Size(30, 30); + var expectedFillColor = Color.Blue; + var expectedLineColor = Color.White; + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + + Assert.NotNull(resultElementList); + Assert.Equal(2, resultElementList.Count); + + // Assertions for the first StepLabelContainer + var resultFirstElement = resultElementList[0]; + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var stepLabelContainer1 = (StepLabelContainer)resultFirstElement; + + Assert.Equal(stepLabel1Pos.X, stepLabelContainer1.Left); + Assert.Equal(stepLabel1Pos.Y, stepLabelContainer1.Top); + Assert.Equal(stepLabelSize.Width, stepLabelContainer1.Width); + Assert.Equal(stepLabelSize.Height, stepLabelContainer1.Height); + Assert.Equal(1, stepLabelContainer1.Number); + + var resultFillColor1 = stepLabelContainer1.GetFieldValue(FieldType.FILL_COLOR); + var resultLineColor1 = stepLabelContainer1.GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultFillColor1); + Assert.IsType(resultFillColor1); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor1), + $"The fill color values for StepLabelContainer 1 are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor1)}"); + + Assert.NotNull(resultLineColor1); + Assert.IsType(resultLineColor1); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor1), + $"The line color values for StepLabelContainer 1 are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor1)}"); + + // Assertions for the second StepLabelContainer + var resultSecondElement = resultElementList[1]; + Assert.NotNull(resultSecondElement); + Assert.IsType(resultSecondElement); + var stepLabelContainer2 = (StepLabelContainer)resultSecondElement; + + Assert.Equal(stepLabel2Pos.X, stepLabelContainer2.Left); + Assert.Equal(stepLabel2Pos.Y, stepLabelContainer2.Top); + Assert.Equal(stepLabelSize.Width, stepLabelContainer2.Width); + Assert.Equal(stepLabelSize.Height, stepLabelContainer2.Height); + Assert.Equal(2, stepLabelContainer2.Number); + + var resultFillColor2 = stepLabelContainer2.GetFieldValue(FieldType.FILL_COLOR); + var resultLineColor2 = stepLabelContainer2.GetFieldValue(FieldType.LINE_COLOR); + + Assert.NotNull(resultFillColor2); + Assert.IsType(resultFillColor2); + Assert.True(DtoHelper.CompareColorValue(expectedFillColor, (Color)resultFillColor2), + $"The fill color values for StepLabelContainer 2 are different. expected:{DtoHelper.ArgbString(expectedFillColor)} result:{DtoHelper.ArgbString((Color)resultFillColor2)}"); + + Assert.NotNull(resultLineColor2); + Assert.IsType(resultLineColor2); + Assert.True(DtoHelper.CompareColorValue(expectedLineColor, (Color)resultLineColor2), + $"The line color values for StepLabelContainer 2 are different. expected:{DtoHelper.ArgbString(expectedLineColor)} result:{DtoHelper.ArgbString((Color)resultLineColor2)}"); + } + + public static IEnumerable ImageContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "ImageContainer_lt_300_200_wh_100_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "ImageContainer_lt_300_200_wh_100_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "ImageContainer_lt_300_200_wh_100_100.gst")]; + } + + [Theory] + [MemberData(nameof(ImageContainerTestData))] + public void LoadImageContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var containerImageSize = new Size(256, 256); + var imageRectInTestfile = new Rectangle(300, 200, 100, 100); + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var imageContainer = (ImageContainer)resultFirstElement; + + Assert.Equal(imageRectInTestfile.Top, imageContainer.Top); + Assert.Equal(imageRectInTestfile.Left, imageContainer.Left); + Assert.Equal(imageRectInTestfile.Width, imageContainer.Width); + Assert.Equal(imageRectInTestfile.Height, imageContainer.Height); + + var resultAdorerList = imageContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + 4 Adorners for the sides + Assert.Equal(8, resultAdorerList.Count); + + Assert.NotNull(imageContainer.Image); + Assert.Equal(containerImageSize, imageContainer.Image.Size); + } + + public static IEnumerable SvgContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "SvgContainer_lt_300_200_wh_120_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "SvgContainer_lt_300_200_wh_120_100.gst")]; + } + + [Theory] + [MemberData(nameof(SvgContainerTestData))] + public void LoadSvgContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var svgRectInTestfile = new Rectangle(300, 200, 120, 100); + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var svgContainer = (SvgContainer)resultFirstElement; + + Assert.Equal(svgRectInTestfile.Top, svgContainer.Top); + Assert.Equal(svgRectInTestfile.Left, svgContainer.Left); + Assert.Equal(svgRectInTestfile.Width, svgContainer.Width); + Assert.Equal(svgRectInTestfile.Height, svgContainer.Height); + + var resultAdorerList = svgContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + Assert.Equal(4, resultAdorerList.Count); + + Assert.NotNull(svgContainer.SvgContent); + Assert.True(svgContainer.SvgContent.Length > 0); + } + + public static IEnumerable MetafileContainerTestData() + { + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "MetafileContainer_lt_300_200_wh_120_100.gst")]; + yield return [Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "MetafileContainer_lt_300_200_wh_120_100.gst")]; + } + + [Theory] + [MemberData(nameof(MetafileContainerTestData))] + public void LoadMetafileContainerFromGreenshotTemplate(string filePath) + { + // Arrange + var image = new Bitmap(800, 400); + var metafileRectInTestfile = new Rectangle(300, 200, 120, 100); + + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + var resultFirstElement = resultSurface.Elements.FirstOrDefault(); + + Assert.NotNull(resultElementList); + Assert.Equal(1, resultElementList.Count); + + Assert.NotNull(resultFirstElement); + Assert.IsType(resultFirstElement); + var metafileContainer = (MetafileContainer)resultFirstElement; + + Assert.Equal(metafileRectInTestfile.Top, metafileContainer.Top); + Assert.Equal(metafileRectInTestfile.Left, metafileContainer.Left); + Assert.Equal(metafileRectInTestfile.Width, metafileContainer.Width); + Assert.Equal(metafileRectInTestfile.Height, metafileContainer.Height); + + var resultAdorerList = metafileContainer.Adorners; + Assert.NotNull(resultAdorerList); + // 4 Adorners for corners + Assert.Equal(4, resultAdorerList.Count); + + Assert.NotNull(metafileContainer.MetafileContent); + Assert.True(metafileContainer.MetafileContent.Length > 0); + } + + [Fact] + public void LoadFromV0102GreenshotTemplateWithDifferentContainer() + { + // Arrange + string filePath = Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.02", "Surface_with_11_different_DrawableContainer.gst"); + var image = new Bitmap(800, 400); + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + + Assert.NotNull(resultElementList); + Assert.Equal(11, resultElementList.Count); + + Assert.IsType(resultElementList[0]); + Assert.IsType(resultElementList[1]); + Assert.IsType(resultElementList[2]); + Assert.IsType(resultElementList[3]); + Assert.IsType(resultElementList[4]); + Assert.IsType(resultElementList[5]); + Assert.IsType(resultElementList[6]); + Assert.IsType(resultElementList[7]); + Assert.IsType(resultElementList[8]); + Assert.IsType(resultElementList[9]); + Assert.IsType(resultElementList[10]); + } + + [Fact] + public void LoadFromV0103GreenshotTemplateWithDifferentContainer() + { + // Arrange + string filePath = Path.Combine("TestData", "GreenshotTemplate", "File_Version_1.03", "Surface_with_14_different_DrawableContainer.gst"); + var image = new Bitmap(800, 400); + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + + Assert.NotNull(resultElementList); + Assert.Equal(14, resultElementList.Count); + + Assert.IsType(resultElementList[0]); + Assert.IsType(resultElementList[1]); + Assert.IsType(resultElementList[2]); + Assert.IsType(resultElementList[3]); + Assert.IsType(resultElementList[4]); + Assert.IsType(resultElementList[5]); + Assert.IsType(resultElementList[6]); + Assert.IsType(resultElementList[7]); + Assert.IsType(resultElementList[8]); + Assert.IsType(resultElementList[9]); + Assert.IsType(resultElementList[10]); + Assert.IsType(resultElementList[11]); + Assert.IsType(resultElementList[12]); + Assert.IsType(resultElementList[13]); + } + + [Fact] + public void LoadFromV0201GreenshotTemplateWithDifferentContainer() + { + // Arrange + string filePath = Path.Combine("TestData", "GreenshotTemplate", "File_Version_2.01", "Surface_with_14_different_DrawableContainer.gst"); + var image = new Bitmap(800, 400); + var resultSurface = SimpleServiceProvider.Current.GetInstance>().Invoke(); + resultSurface.Image = image; + + // Act + _greenshotTemplateFormatHandler.LoadTemplateFromFile(filePath, resultSurface); + + // Assert + var resultElementList = resultSurface.Elements; + + Assert.NotNull(resultElementList); + Assert.Equal(14, resultElementList.Count); + + Assert.IsType(resultElementList[0]); + Assert.IsType(resultElementList[1]); + Assert.IsType(resultElementList[2]); + Assert.IsType(resultElementList[3]); + Assert.IsType(resultElementList[4]); + Assert.IsType(resultElementList[5]); + Assert.IsType(resultElementList[6]); + Assert.IsType(resultElementList[7]); + Assert.IsType(resultElementList[8]); + Assert.IsType(resultElementList[9]); + Assert.IsType(resultElementList[10]); + Assert.IsType(resultElementList[11]); + Assert.IsType(resultElementList[12]); + Assert.IsType(resultElementList[13]); + } +} \ No newline at end of file diff --git a/src/Greenshot.Test/Fixtures/Base/SimpleServiceProviderFixture.cs b/src/Greenshot.Test/Fixtures/Base/SimpleServiceProviderFixture.cs new file mode 100644 index 000000000..731c24624 --- /dev/null +++ b/src/Greenshot.Test/Fixtures/Base/SimpleServiceProviderFixture.cs @@ -0,0 +1,87 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using System; +using Greenshot.Base.Core; +using Greenshot.Base.Interfaces; +using Greenshot.Editor.Drawing; +using Greenshot.Test.Fixtures.Collections; + +namespace Greenshot.Test.Fixtures.Base; + +/// +/// Provides a test fixture that manages a shared +/// instance with pre-configured services for integration testing. +/// +/// +/// +/// This fixture follows the xUnit collection fixture pattern, ensuring that: +/// +/// Setup occurs once before any tests in the collection run +/// Cleanup occurs once after all tests in the collection complete +/// The same fixture instance is shared across all tests in the collection +/// +/// +/// +/// Usage: Apply i.e. the [Collection("DefaultCollection")] attribute +/// to your test class to use this fixture. The fixture will be automatically injected +/// as a constructor parameter. +/// +/// +/// Current Services: +/// +/// factory - Provides instances +/// +/// +/// +/// +/// +/// [Collection("DefaultCollection")] +/// public class MyIntegrationTests +/// { +/// private readonly SimpleServiceProviderFixture _fixture; +/// +/// public MyIntegrationTests(SimpleServiceProviderFixture fixture) +/// { +/// _fixture = fixture; +/// } +/// } +/// +/// +public class SimpleServiceProviderFixture : IDisposable +{ + /// + /// Initializes the fixture and configures the shared service provider. + /// This constructor runs once before the first test in the collection executes. + /// + public SimpleServiceProviderFixture() + { + SimpleServiceProvider.Current.AddService>(() => new Surface()); + } + + /// + /// Cleans up the service provider configuration. + /// This method runs once after all tests in the collection have completed. + /// + public void Dispose() + { + SimpleServiceProvider.Current.RemoveService>(); + } +} diff --git a/src/Greenshot.Test/Fixtures/Collections/SimplServiceProviderCollection.cs b/src/Greenshot.Test/Fixtures/Collections/SimplServiceProviderCollection.cs new file mode 100644 index 000000000..88a608e96 --- /dev/null +++ b/src/Greenshot.Test/Fixtures/Collections/SimplServiceProviderCollection.cs @@ -0,0 +1,49 @@ +/* + * Greenshot - a free and open source screenshot tool + * Copyright (C) 2007-2025 Thomas Braun, Jens Klingen, Robin Krom + * + * For more information see: https://getgreenshot.org/ + * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +using Greenshot.Test.Fixtures.Base; +using Xunit; + +namespace Greenshot.Test.Fixtures.Collections; + +/// +/// Defines a test collection that groups related integration tests together. +/// This class serves as a marker for xUnit's collection definition and has no implementation. +/// +/// +/// +/// This collection ensures that all tests within it share the same fixture instance +/// and run sequentially rather than in parallel, which is essential for integration +/// tests that may have shared dependencies or state. +/// +/// +/// Currently includes: +/// +/// - Provides shared service container setup +/// +/// +/// +/// To use this collection, apply the [Collection("DefaultCollection")] attribute +/// to your test classes. Additional fixtures can be added by extending this class +/// or creating new collection definitions as needed. +/// +/// +[CollectionDefinition("DefaultCollection")] +public class DefaultCollection : ICollectionFixture { } diff --git a/src/Greenshot.Test/Greenshot.Test.csproj b/src/Greenshot.Test/Greenshot.Test.csproj new file mode 100644 index 000000000..c54ff1110 --- /dev/null +++ b/src/Greenshot.Test/Greenshot.Test.csproj @@ -0,0 +1,316 @@ + + + + net472 + + + + + + + + + + + + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + + diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ArrowContainer_lt_100_200_wh_400_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ArrowContainer_lt_100_200_wh_400_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..e29b565d0f17266e8f80961c486c9ca6f8679946 GIT binary patch literal 2832 zcmd5;-EQMV6t*2ZvHQ0RY|CzerIeptNC^!~g%B+wq(6x^+m@!VRcm!?`pp}r|e3Qg!YiUVgFLop!kIx*RIp_0t&R9_uMfsZs z?if=ViI2BJA^fNt#7hhJMHsn(zg8~2TUstHFD+CPFHS@c5BZ7fcjTS7JW&n&n7h6R8*UUEWP4+E zmxscS>+2u&82g0VJu=^Ph3CvL$BmAINI3VomxyV+@maaZ+*lk%Q^Tjo{X$$BK0NHF zpHp;2nQWd$WLeruTt|I-6j49DG_X1%JQvx)A@DFwV5|Q{XrJ{oNlJ}zjkPppYs}G@ z&{$hz9gTH0=4$M7jrGW8ILtyp8;q}i`2ELkKYXkHedXuhK3M$aSH(j9zzbIa4{}Da zD|+z~0V7;1PhvV};I=S&cL;wa41<#t`w23-${f+=#EuQejqe4HFsohHbLdmtY|!^f zZHpJ}7BhflOy;sCo@mFjS#=y7KcCf}xK7-?p4E4S+v&!)vkTm|gT#+FgRt4<4rSWq zen-q#S`m@njwPLHf#-;@*ao#CJ*NX^MajK70_y@Z08BIHaS{RG@6-XGs)6STJEkg& zN?U@M?AoP1{|*jPUjtWlKNew|+aenA?MyIBqc8Qpitg}m+$_emGij*bJkgY&T(T%k z;}I3+IN8YBdWZ(Xm}25fLSvbj{7F9GN7mpUXC53{{fVxxXa#fCLfz|l>FMSH^2_%- zq`}Y{O*ZI>MECL~={anK))aXi4jo85t;~3A`lFWmZ`GM5K25ozqv9$^6hIXW{hdpK ziO>r0C;0~^>2Hqh0xw%L5LY0sLOcWUEW~pprZofWH&d5s!;$?aD#;uCnC$3O9;oxH zQn!D4EG{0sbE{1|$f`A6U3~loaE9{4Wy)%^uF*66fr&@q5tzUsE4cb7OV}Jwx%&uPeDkg;E lcODo(Y$eN|^Ry_+$C}_yH8^UyKF3LmcnfJ02T)-0$5fA*?ymif*vZf|;h1e5u$Yy;Oi;#Mgx%If>aeIaBZ3K1Z&-$_FWfNd! zv2A7Di)-BfOItd+cCl^Cnh)tN_iJ*b6^|7HUr_F|u*4&wgYM~>bs92X6z6Z(3Asz{ zI;byl<~c*e;n7YIG3O!mVm62?9_J?r7i>Gqw%#KCj2&scJZ*%ZP?Cx=P~M9`(^`tT zqh9HF)CjNbSP?xuY&piBc0Zo^!8Kg`SF|ISKobn`TotL&qoy#<43&kN#l#0f$vIk;tw1~cg+;A!Gw;( z`OexF{0pAPccKpZCa4V)hgB)$$AZJfy})5c!R4Ls8xyyLX6_e-Un~Y;*`-dfTX3mgV`Fob2=dw%GGmql&tc(26|*Nw zCJ;zPNnGf_(RKD1cv(;pM+o6-wV5%6!1I_bppGJIi9xP%+iGOk=4RVg(^SzHEUZ$S zMV*W~;LBvLYr$WZ)z((OQ5Zn#tA85GzY79OO8*Ka)lW3CDxPBL6QUS+LMSl}oO}Tr zXa^-9n$HV(abT{P8DL4&`@fGALrOK;nNF~e8Kl|3AanCwiDUgH(^_52#17S>BqH&@ zCc`ho@ASXl67?_T- z@wSW%8HYCiAWn4;5EMO-96CtzZZ zAjADtgi6X!qUcmxj_9G>P!)5mCDqaIKBC1W7@1k6+dUwv2tw)%u%S|Mb%AUw7Yi$^ z3+1woew{cRw*|LC5X$`W!Imx?Q>N|*yT1IQM{toa+{{d;5jQM7NiHOjia|=C&%z`l zw=1lb)*h%BDsGqAhhIAwfiy+M*rob7OfrkbQi(LwF?{*q986N><+=H_M*}|qMVJ8~ literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/FreehandContainer_with_4_points.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/FreehandContainer_with_4_points.gst new file mode 100644 index 0000000000000000000000000000000000000000..909c5e49a024f19d4284ef6b65ff92572079a121 GIT binary patch literal 3174 zcmd5;OK;mo5GE;6B5lb@fW&cJBoJH#ZDEC#ng+SpMH|I-1iOwK8R@|gwkvWaZAFs~ zcNteX_t*kG_0(U`{+IrTp8G(7qK`v>bY>+=w&*%?;e!|0B{@4YJCAQ>sp*=gy@G*H z90dcG4>uyl0?`d+x%8Apf``Fs)p^gUIF)j#7W*=e*lNIH8BxDn+KF2}cQ;voH|()s zHHdw`kO3|0BP~0A+~L9h)McV+Z;f<04kmKZ5%Pe#Jz!tw%=hMq$HhS?nD>{9aaeBgdY%WB$e zqc4Ed*@(HP-x*spaBpN-9W6X&*`RFDQBAWzGzc|F%OI{nJcBTUv<=cR zNY^0TAfFqg2RzBJ@_A!8!lfTqpKUg_zr6XPcl*V{W4v(Y@k70V?OJyE3EmfMJ8k<9`eGniCO%PbsEjRSFzAn!BG+trCp6)oKON+0gj zLf;1osBqzIFsLH#Is@$Q?VTiCE*+VqBs}f?6(32#j4iQ_pKQr}e^up?`a>uAH9}*rUvUphx{Dun>6q7kb}RNY4#$ z4K!$QmWAN@9p?8i3ox+}nSX=26QPKQp(>O`$yYE@(w@N$^G}eQCa9|0J;#<#h-M*B zkYcOz{{S7R2Pw%Y0n0avWe!MLJnUi>1iFwLTuUaw`^X~0iwJ^0f4l-6Rn&V;jGtxM zm(ZhRVgxRB&7A6Kb)qtz*OYQ{&)S#4?_^{##}~EQPIZ5LW52GGjU2xMzG6|~%p(-W z_y36nh@jDbgYv)<#k&0g3BL{rf58WqqyEbz;pZXY<&Yz0;q++J%mOgw246Yw_>Myh)RpvzP(b*2}Dhk@EL1>D3;HO_nbTnDt;bJh{{;jU-iH7H literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst new file mode 100644 index 0000000000000000000000000000000000000000..38821e5a04cf23f68ba9b01edc4a51f42debf67c GIT binary patch literal 3316 zcmd5;UvJw~6t|r?iQA?f)7q^=jI7(}rWBJf1}`b1q)8JkYeN%_hpM_b@l9gl+Li6B zDtrdS8&7-!o_OXB@x(LFd=1bfBsjmD#BLMRWz`;frF(pR?(y+CzkB{%NtPt(UmAE~ zEGR@i+wnMe{GJE;a<)11C?Y~3w6We zPEg(cw9nY*M!QeqWsBS9A~P-j*!8*j+^`2cjW52+XPFi7BY$E1=3C$JrSZ#)q5Cl@ zE=lu^Q=cUDoq=V_??)C5-3tw?!oqWw9UKCWR0`O}{~@%`YMLje!VHDA6xLRlsW7gv zj>5VM>nY4q*w+f{lgxOel1XJWg7rUsZGQjq*-zgt{rUTYpMQ}w_z%1=lXwv;vR#U2 zU&COSt0jn}V=5l^qi@IXSFCQ&rWu6z&ynCYX7Y|f5mGX(;F)XkRIz8-CLKqnY}o<# zLh0?%hT+@J-#{3J+aK7cWav8<8b8R^oG%Hy8|aEyI!MbnC?lj zXE2nzl$J9ZN!Or0LPjnuLxeD7psn7RYrXD)dHb!df#d<-Q*FfFT1OC5}b! zU5-j5s(#jTC|rU`?ojrkaw^4RGxZ*%t~|5kRSh$EA=>VcYB%Uz#kt%GkMhhJpx@}C z>f`)U?C4b7YHk+oqpzJ{(!7qF-WeS~}DEH}wk?s4Zy=aWu8Z$8Nxj|~~oDZ=y?Ewoh-SRf-{!6(bK zw?i%>SV+GE)}4?KR8efS3=vVH>8Zk>8Bl=ya$(mvngUk_IElMN7Hier5^Gkf#izTa zMni?QH_oG>Q@3|LQ34#&rHV!}*LU0#N9?FRT@bhcI++BTxLk?RBa>ygE)HOg7IWfv z#l70zz6|fh#ywgj8kMc>y)RYxpZmW9K7S#rdmIUA4wD)GPKNz$eE2e86hF96i`Dvm zslK&e+Ggcyty$Vv~?nhhhT*PH?kDlz&OO{ TJ75HPVd*1mk%2WPFq;1lD?i%N literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/IconContainer_lt_400_200_wh_32_32.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/IconContainer_lt_400_200_wh_32_32.gst new file mode 100644 index 0000000000000000000000000000000000000000..7043e9ee54d4a0e50b5126e585e8fd21355f0023 GIT binary patch literal 2999 zcmds3%}*0S6rXOl?N*AA81duc22Ioy*H$DR6oMAP`jKETTnHJbyVG`H-6gxT5R4}M z6FhnH=v@-ysTYnOJo_gY&nCu;5#QT>Z;626fWCHS_RV|q`aXX1wj@Rf*#W{8DWkwN zJ?C-m_*GYq>5JU+h3ib_jcZ2E$c^cRz?Ol>CmkM0kJ)4Td{DB5`G9XeaaXxB=>)c& ziG!8dwv~B1s0imTZ6(mPi)~xRjK?;FQwdjAvU$OEBohwz9tvM3K=;h8dFF9P7H6hb zDZRtYRZyQ5+_sKWOZaQ9&#gsf2Ye7uJk4jRko=jSX>q=I&WBpedL#TeQ3)AX*z`fu zmQBgax1|BtR47wuNuj1fEroK0mK9o2XjP#? zp(_eq1)UaYsg%;Bx13L{eE59--Io^^Wb)-FlE(NkUpP|8giqi*QL_hd7~M@LVH%8Q zQm{O3M&8VQr;^tZ6Z=6$DK}o8DBmdO^VUR;jk5$=Ki6@oRn?;DI_-)c107Ys&M>uj znE~+bT0%Z@Ev^-+!nUBwqkYNFMs-K}Rcv0CC;PXhyLPI7cSBgRdb)qV%0;CrFZBzU zX}WOrwG6rKPs5rm3PMxmRW;_d6Kwa&k{zj0}(OEd&IzZpC%+Cj(9^z@9EyN{~(tNy8(3TkkqROY$|v~Q^R<+ZQ}C2P2k~y E-^?lO^Z)<= literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ImageContainer_lt_300_200_wh_100_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ImageContainer_lt_300_200_wh_100_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..93a535d4cb0dd561ff9d596688500b992c35b850 GIT binary patch literal 7795 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 JxU~6V@HYd&`-uPm literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst new file mode 100644 index 0000000000000000000000000000000000000000..12699259dd002c85f45ac682ee79fb0689b69175 GIT binary patch literal 3375 zcmd5;OK;mo5GE;668%hqSg}(yP@S|%AceJ?2EEvAWj$;msx3>hgTgR26uGjtrb&Zb z+Hh~}x#wQmztCIJf6)KZV^1v#6liBw5^0NuqZm1O0nRRGhr^j~=dqG3Nz#8XaK$#uBF9O~7X&sC6JSZNp@b$G4( z`5_@|hIt6$RYq-VhFHu$c71B?8g@XZ@r&2XdBQk7@~4JxKKqu=4qs0C?kA+ABu%!? ze2~=F17^w3B8&R&g@)D8!V8w|?IRwU3}T!77tlVhX%d(UF%;5Kh^Y`uAygq?GXO0PB-vPgGcyJfZ#1+(XIgzQn48S%C%^w)MK^<$C0Ztn^P}5t^BCu zVhpyJNH#8F(=MNjv$=bGFU~z>7Vpi+`8~=Gdi+Uz!!S)ZaCp`AT0O&ZPfI<+IiUB8 z9Uns9!eDs zKxW9GGD5g7k3^gPhVUGgLv0GQ3LFsxMB=7K#+B|zh4oF@89F|V4iBC*q7aqokKYnZ zG)H@0R1-E;~!lyDz$*b(fc|7fZ%-L&k^|p*s%? zZ2<{dAY%|CA1u?}3%MB8Li&AVJqY=TDi$Cu2W04#ivEm&0{T9;vS}Q}z?D%|>H{D% z_1b2Iv^Q#{mz$MVOGRt%UPMEO8-VMHvfzL&RWz50L&rUJ#E$C2rGW~d(`iH#FI-~u zAn9dvT^zt7EGES7N?Y}Jc_Al^|KuRoep~* z`i4VB7{w1B!D6A&tTc+vN|{t^^>(F6w$`dUtx~aFN#|hu+U4m(_*VM}$h0EkTAXbL z(b66RNj(8F5fvmEMTJZX7BK$&LVF66hH^4~AuP_rVsfp%(u#mO}Zf3KF0e)9@oMEdtWNsG%*S0*R_xHuff2;@XwHrYcXs z1tD?Z#7l7G$c>la0eAw0K!TY~;*?l|fO=r1on4P-$MbzVJ8MN%6y*mr9I@p!5VsdY z#{8%eh^g_1ER1;I&lc>f_Ov}cHC~K85r=HnXR!#WH#NQ%S3T}5v)%Qe$^2PA_Pl%s zyeuSM*1WjR{eSdjU}zT-U-n!`cer1dBdvO@82Ey6pM_-}2?K0T%&gIn`Jyy;t4YXR z>NLT8fiuq?CN7V*gNV5gsTZ>$T=AqZNw{EJQNHsO@#pM7=iylken!z1Ww5dvfu+3| zb636Gji?1L39N(>{u0^7Ch}pL$gTbz*xu`D5R@9B8mVf;(TJ-NrjeRP>KbWiglpuf zMw(#LX=W~`wcGp8kH38w%`U$xdoT3Y?>;FO;zz!)=kP(!Aa+Hc{EL7wTq_G=C}ZGo zzPq+V{{!X->eu)1Z-L=K;<6fr44HSixEHw0EH=33!gfrgSefj#J(f1{SWS$i)gss) zO>1|!D;mes`Ud0mhPar1K^-TEeX$UPl?HW#oniwJv9UYV2r}CdGG~?o&t>6c4f7|` zGf1VPWX^R7>Dhe*UJ+Ep5t8^;ZRboe@H}7)PEuqqGRRi$*sUDf*hqY}U6p*n!Wwm0 z)Xk|qu}qEkEcnNRwYk|Z3KN?8W?!M~9|$~D##cC0{h*QO;u#)(LKG8s2sM_8lP}-{ z{h-E${t@~c=xfjwYXF3fcK`R5BBX4qpcw=!nMv9u3^KRSlQ{MtGObg$EUZzTrXv&o zYcl*6ezyYt>7XUR^MF-WPZ)EO11;eNUJqno%sC+&>5aW?5#`AIt0_~ zVGxJY_eA~(=P=O(#yVO9Bkuz*roqU}3f)T4s3Hy7Qy_-RrImTIzEmnMugq5} z2F7*tSKKz-3qdF|%m-hFEKLJVKiKi*8zX|NgvlC}%OP)g_+)ztX`~`ZN%d)%49L$F rSIespRD_D3OUzHAIbxUQXYkcRsaz&4bA&HnoP|lYvUF!|_0ix@cb5P) literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/SpeechbubbleContainer_lt_200_200_wh_150_80.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/SpeechbubbleContainer_lt_200_200_wh_150_80.gst new file mode 100644 index 0000000000000000000000000000000000000000..79caa693ed97d21a26156b9af1193d576b87c821 GIT binary patch literal 3438 zcmd5_nMe<1J zCgFqhsm$=uH~0X21RnS@zzpyJ1G{HiaqP5Bm^}1mZgsc2w|D#7y**nZk|g~L4ZqmN zWgwred5k%J!{v$CHuHSTb(Yh~50a^5DiO=JZQl0SvcuZk)9plTvt6|<;~qP#xJ~9P zJ8jz@9|0@*z{;lGu3OIkw58zD-VJOeS3P~-a_Zu%S8bMc9j;pr^9q*F70{hs+SEPf zaBcN&lhPI4Xo7m)VzzmanwH;keP(X!cAH(m72l-e)Z%QsxlIH+j@?e?$sN z(pdS>2hHSK+cL>}Mv1ObwZuGG#KY z$+RxhhDIzyvA*$sTV@9Le zuJ%Xv66j7+%dxnn+iRZHYB6uqwH$tx`rP%HS<$^Z<6TL?HFORsJ3&oW(;-`Pro}g0 zlSQ))%Qhi3<|^!f2YD0U)0^zRW4ai#%g03=6z7k#2CZJ(Vg}cpdS52S2Xz*PQesGD zdRWC~H9j@W=5A|dn7eP8ym4ii-(Xg~!LJVsbi;7l4$r$@xuKixezpNlu(?dthih$c zabeb7+hkt6hL^_=g+e0|0SeKOq>;(vIgu0r!DM-+;My}Y5F=FPI&b@!c~3~!bk?

0>y+iS9Xl_aHDu*pL_`7L(scg8zY&k?0p1%Pa!@G|?DsHLz zIt;_}K&DQ7>Ir%&+mM;}6 zRI6kPT9zRCLh>;TR3TX@6;=s`08bt4`V@D?mD-4#7wYi+5o#TgiP@ tq3fkB?E!d|DNyigt+_6SC&iDWT literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/StepLabelContainer_lt_200_200_lt_500_300.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/StepLabelContainer_lt_200_200_lt_500_300.gst new file mode 100644 index 0000000000000000000000000000000000000000..15fa7f9dc61583e4dc7d40056afa21f527df65e5 GIT binary patch literal 2989 zcmd5;UvJw~6t~^Dw$qjkSi7x27s}8;&Af(fLP9N~WJ`$%TenPmsjAD3eUq5Dc4c3$ zDo^_WJR)A;g(p4<5}$+*fToEDq;Y;XiPI*qWz`;bq(=|*Z243uTsw%}8W2;bFP7leNOY`&t}5hb4)qZ(?8A)ou{_l*82tDA&eymnKz0(UyyoVi_NtpOhX3 zzU*F@ly^nY>B^5L|KOhTy%s0UF8AZZYL{XZ%Ui9K+QE~m(7uX8UnFa76kSS)XoVT% zK+|UQIotkV1msxh004qSW+^i8i#{m0Y8-}yCADGdZVM{)z;pWry1Sd(8knjB);9M< zIx5IxK9x&jFPyR~_x7fZ!Y0yxdZnSfx**UeM31-7CRpa*)SlCX24(9J#t37YjdUTy zjzdg;N;Y5zl0OD(g?22>LBs3lD>N0+<1Kih9C&il4mjpY|La31)Z6f10E z>8KJ^zzH~X6b2x1-X=EGwG?6~G*IE%O9Brw7S0~sDIZU50xvt~z!t%lh!rh3cWPtj zVdnzaMPkMIW#ab+0~1r5F8$GLyMb?)X}(@s>(|>i+n=^8760Zszs^ngypo5R&r~&1 zQ&(+>&1U;Y>Z4+LL&+W-9fK`+u+fJY)9m_%ni?kGdNQGg-mnpEp`->ZQ=zwv^b-*@zl~}P> zZ!}o-ZsYEK9k{^RA`RDPv=bScjsO*|EL%bS=NbC{HdTqQg}eiQPTmb_ f!UJ)2z%_a>YmKe#rVhxJE3_*@+&TcCaB%Kl7`IPV literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/Surface_with_11_different_DrawableContainer.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/Surface_with_11_different_DrawableContainer.gst new file mode 100644 index 0000000000000000000000000000000000000000..c98f859a9386da78edd6032c7c9063d7d678786e GIT binary patch literal 17671 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 Q8wo|$sg`^jR4e-b0IfHMRsaA1 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/TextContainer_lt_300_200_wh_300_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.02/TextContainer_lt_300_200_wh_300_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..07be9bef4631ce262d877ee12884cadeb105b70e GIT binary patch literal 3139 zcmd5;PjlNu6qgjsmh!jICTUY>Lo+~2QWKMg0!=2s(&14qETHC^kl#%3w zaOKRE6Q6+@?tB0ad<`x=ae?8$OnASwEhqL&>vnqR&gkva+qZA`{odQRE6I{1ol!%N zHm(r)Y}4o54H{m!G{4LJ!1mnrRPux5a&mcTKGSl-me1E+-U@xwS(@K&9XNLN5kIYX zP42F{Eyo!jAuGAa%C^(0+wKe6Qn9snBU{N0-#oG1y6DXVhi5!DG;Npr1v>~;(!I8} zZTj2|jg3#6j6F1~O;XR<+_5H^Wd}!Iz^z@=Y4Hin_$IZ;?2sP@^De~#Pk zk4P~|8Y`a$q?z1o*_M2_x1+Xu(Z&qy@WRga_JN0{0o&Mrg!Xw$V*2V@%78^{pO^9n0)e!AwBq2(&0bw!k560;Arns zZ1FiZjP2@iA`>Gjx|_YZUHB{fyD)-&oOH$y%_jfCwLG{U3u*Wgvv|#tf^>fi%>{q@u0ONql%%FQFt7i&nkK$2r4F~BcLBl1EI#lDmQ zK;_U3TLF;&S?(lS#&aA3ijH59+~kzvb~V{f%)PzHR>zd#hTN~2RUY&b@!Wov=KChR z;A!07AJ&Uu^)zboPcPNwm**@_tQ=1eoyv2^@p>q#|I#@g#z%1!k5O+JlQhH^5?u%L z57~enab*8K_p?Nj-$?_#MZKish{Z7J)y@w17jG9-m7$VqtW!ei6r}ocF!_w6?bc0w zf~BodxIGLO%NBlD=3Etge5b>(6xl5`<@J^~nX$(Aar>S)vTPFyjf z26TsVET$(C2qlh=Xg^ZY%fMX({vI)-V!2GIP}-3Jy%<;}CSJ~`H%ed1KwbzxBxWpE zDpr_LNf(Ta4D`jwePVPm@~~9ckP!mxdi2k;KhCJ9rbsekBD6muW;ACM3aq^s8TU)mBRuE$yjjUAN;7f{>rD+o_w4`gb3nRnAm04OTs9(^h89l7Y6IA_L`ly^SPx`$4@$uSPw)eiMXFzdfaLFp7ThY z?uBg;tOp(6&!$LOd7$hekHr;L88FZusOs8fZ$$jW3l8O*H+)eFgM@p5h-zM(7_{Yf z;W3XykW@E5YBTnbJ8cr*^n~xuGS`cb!&taaxZe>o*zs(2g?WiMinG11*!x^u>wP@$ zf{;>lMVYRj#w2NPbv#%7U|<-0w5vfPq9%7l+_$g_Q%6kPKL9+Y3B>ik=njTeP7_mO zTw@K5IT~{{CN$R6*rCQ+8uK*vna0{A(;H?cqn(Z4zWDC@A3y!I^7XgVKZiffsfq<4 zfFGU=KIDv?Q1ts(u^e_=X(BTz1FyRSCFky?7)9Yp|5Bz%_BwM#lT+|O^5f7IW~t@* zF5S_aHM+RI?8}w@vGz96VFXrx5oJ`;T^V;=+^24wU)XBg@2maXy+yJ>rWJWWverKTZTxXD18r$*( zbtXGHm5q3@AbESI$Krg;UMSR^aGb5_>b;51flg#A9#iI=HAmC*JdxSaR;9u*c+l<7 z)&fl}$YpO4`Q)q=qa)D&#Gr28$IsCuzekPyTJu5k!{+L$`ykKPxC#sp9|=v^xI(djW*!sE%&fIoAic-hp#!iaKT(E~cfkY#YH9fT)=Trpzm zdIDBhnGEp8kAoavQn0E3M;`SaO{SzBrJdT&t_p~7TwnY(hyybzeiuud)mn{p#Q~dK tSf)w3UMX(uJT(AZ;lgMd4U!f4SrObVg+~o9;AqM)JJT=hzzg9${SVOKR|o(A literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/EllipseContainer_lt_200_200_wh_400_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/EllipseContainer_lt_200_200_wh_400_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..8c62ff92a64db935f361ae97adaf12d31a1610bc GIT binary patch literal 2658 zcmd5;-EPxL5VoB-vD37apYl_kp9%>HXk?`-KR4}>AWhSVoR&i>xTvaSV{hsuu3dT8 zROKnSI2VAp=M@m*0nQ6>%>!_a(2pv~9+y#Enz_$n!J}|-&Y5@0PPsHwNdlR~Y%yesjA>Asxtp{C?%rX0 z>rsb=i(wK3#S9p$rp9hl!H#LlLOYlxY&sV^X}6iVdMD4!?{_)CEFIo{z~vC>_mU@xC=r? z%WB$Kb5DS#Q%ks~-$)(97@c}3S=^>B6Z;<4(bWSkZfqhvmW7CCKf@Uenj8b6L8w7m z25}AI8H5?6ZICU4_y*wyd1R0d==90T=ZzlKUVnJm`tYv$_RafO&#yfDsM!bv;)hQj z7itDUXxVGW@f`iObHK(kCJt9pBSYs>4FbL+(qpkfdy;spO(A_y_s_^kLm2d8v# z1f$tu-Ls=A0c*>tQL&76&W%cUxhMVeqjI0|Eni+9eL-C}NAH7!$0Q8_Fr5P_zoG7$*r3%!?9l_&_9E8)Hgr^XDRade2i>cre%O0s&EYd4?kj~|US@g~NHjs7w z%4TB~>r)nC_&F2eKV!do)Y$ivP-Fzp^B}JQ8;Qq6BgOtQw?%@LCMzlcGz$$J-g6!qfxPu)er9s zgZrROyp;G@7IqZ-B(U5mV3Wfwq<9*nfAuOQ)@x|!X<565eU27rhp#9a5FofNBHn6 zD)J$*bc|Ku{VPlgYP-r>W9^=f5#x4+FYuEHBaor#2!T@n4JL)WG4R@jFa% M&6QhAYY)c00)r?DoA zcQ;vQH)^wRB}{@KmjPvKsj^kd*&C`d&_E|u)wRoc5Yr<++?P+<2v{Ww1@%J~Z~0sp zAac9BLt_?->VuEkgsf7x4eaYa3%nWP`TQ{A%zH+Igym7HNJ}HWMxJY=4Lto}nWokopO%k*p8axa^X04W?*9AZPai8b z1_I-U)5H(?22LpYy*IHO?Y6V9k;kk`%MUz2%e!N_S{&t_8)pevQ`{UUi|FvyIQ7W)L~DMW-eUfK zOWYa%L0uP|6YEi2Yf&#cs(}CdY~hmzhw^iUg!IEG@L0UqM0j&u2b^Xw$%>MhAI^{i zaS$LMFihW#k)JYJ_~R?J_oosC0Z2dt;LZkv^737$TNHbHrwJDe!_-SaM7^#SQ#_ni zWthsEpd#Uj(U+6h|Nly>1Hmm8hWS&^F4P(8^$R;=!BD@wOph+j7wllhKhVL>gc-t6 z{ao!B68G6I%7F&$&$19|zr*|4ccIwI zruYJn074WCVS^M~8uAAyLxo7`j{>lKBUxsEq~oqvt4`2`Z1)&52%cXS=^b2)K^d#SfyCHKOo_^9^o(ez=~9V9VPtIBOLcQOd0Ne zb?F25yYmh29&{K46HQO8y)$XrQP!Trw$9#$<@(qSNJT%SLksX?zl95O8YnaQ zhM0?+GXeEk@mI# literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/HighlightContainer_TextFilter_lt_310_70_wh_195_60.gst new file mode 100644 index 0000000000000000000000000000000000000000..709c75bc49cb2c2cfb303dbed7304d2c60a5d318 GIT binary patch literal 3424 zcmd5;-EZ4e6t|r?iQA+b)7q^=plmScNMurV-Gr1PwQ0VztPM>ygsSS|#5awJYge|j zs=Vl=Db&t=nvo*nc&zUA;<;2Cx{UGFt*tM!6k9J*cZ zY&kvKPDV&saina=@cA`WsW4CL-U^zV$u7HT-zp2O%Ow zC26s7;gh6Z?pdb%Y-AXG)T>Uwy|&TferRD8rcRi6bPRYB2_PQ*hhi|Ua*>z{GZfZT zSW981!nnfP3Oi9)M`4!2zEfD2WQI>79#;m>{tva^|NgDA^W)Cv#m#TNcqwTB0{CIX z@gZj9gcN;x9m`?279*01sCZ>YN~Ypcu}(TRjUWun0?FTICT|;*K#+dvnmkeHShh)V zN|!8~pbMol(~^&7V4M+InH8~lJ6N7&2kzOuS?;-I2A%t}{0@gBYqJYRtL65bpyYau zj$yjzg^uBz@CVyXpDLpjh-|C4w#mIr8=2=vBT;}aNs;Ubxwj<_Flq!w(DMQNFY+Mo z3a)MQRzNlB>t#+EZ?*J(o*o_jztZZMQQ7pQ{531|`1s1sTzNx+9{J~Y3Bfya9#yRV zMOAzyr$j}*M*m?V}({c5p=;)P1VmrEe9XdOQm5OjvM2 z>7v#U*#tYi5ErBedBHopIOEe-sg-=A<<7E|sQhHE|3D{9#h?aHR9hwzTOo2M%#ZL= zki19yuLkEJj$^vgjSj7+xS!5*Lv7|Z+MDg??e%qYGiPiVGSXM%@qL={s62GLq0G@Bhu1D;0uNdf93}RTbA>C#_0^yGBAogB(hYi?iJZ#rCNBg zS8Oy?7=3pV6rC;!t|uCWL%LLP&@6Nv_uLUHs!#U{j-P4qI6%eaOgtU3S_T3l4v%QE zAbwZauk9bm06{E#M3Y#fvc0?iwF(%XUlQ)gdtKe*C|t8&^e`bF9)rVFkO8Xr&&M=b ztsfNY+Xuy6R;tzxiwCSyEmvwZ4&!NBzHZ}sOj}bC87~pdPiUfjN+h-hR+xPQL$M5` WL!^EJQjiyhKEV>%S7QRH#s2`&Z2A@e literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/IconContainer_lt_400_200_wh_32_32.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/IconContainer_lt_400_200_wh_32_32.gst new file mode 100644 index 0000000000000000000000000000000000000000..34ef5c8807e3a7e02ff0a167e78d6c701498d166 GIT binary patch literal 3052 zcmdrOO-~a+bh_QrtrQ_Kg6L(#!4PRSZ2(PFj8Z;q&;*0wf;dihr*vf9CA+f_JoP7d z@MKIpdL{AL3rGKfSG{>QF7J``(fSA!H8#SA?tr)BL>0 zx#L$|Y0O$ex?WCS=AJKHXR2U~8+jw2(~E&E1CLKRJdhr-3`1T_6xFbt5 zch)JLX68Du&k1f@=cy(94cF(^GP48Thc})T#;B0|g`aIYeFa|uT-#xXr6IazNirGu7{oV;rlg{4+uW2;;l44?p?-vEG_rnW)cLV23u|^0I~1iv!=T|w29rMV9fYAk zJb4AvM_BddAek)eQuxw?(giirFmGm`V8;B)^ud(+25&rw3q_{F zGU#a}JvKMIrZ|QVt~aP(0Urd?C=4COT^I@cwgS|Eb}-a{2$Wi_ zvA_&l7&WrHy9mSDR5so@Q z1SNpRE_9HA9wP%Dy-i35xkDR5;|3NGrwgTwWA*hjmvxj}HqaRi*(DVRa-Ip+W K)Uw38y}toJ!1_=C literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/ImageContainer_lt_300_200_wh_100_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/ImageContainer_lt_300_200_wh_100_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..ce8ca26ddbef204ce84b59e727eeccf584d5c529 GIT binary patch literal 27905 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 STjIqSEE1*Fg{6%b-G2c1co7r; literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/MetafileContainer_lt_300_200_wh_120_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/MetafileContainer_lt_300_200_wh_120_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..e7b83d6b501c06ef0424fa8560969819b8839e62 GIT binary patch literal 3515 zcmd57z~vz$e?ZwejtZnQT#01~BFIMfZoojYwBsM$vwQE}_kHj8 ze!k!D=YH>oa1aFP0}alwNw{E0O|=mO#h7VUIUgrk+NOxkBy0>xQ*+{!@k*6arHD?l zTUfh|m_reE)`nRW(F^T*3u$D|f;cy(-=~!>BgK#o;qlSUkpu)~5uq-IDGMg2jyFkaSBR zA~d&OJQ~FbBL)Zxmu1j6Axtup798*(CX+A#KBw9+tC=(~gLILjHk!p)!0<%MWFca2 zt9Fawhel*oe(T;5BULPfk(G@Uv$S>0NNGNav*xiQt6bc5|IGw;C zH0m!r9YY=zK=K99SOYo^RYhT7;6oJu#y)6^myEHPfD4Hz3Wv{d$Nw|KU}#1Kt`$BC z?-L=~f02MQry5S(K))gINlb zpASOFeR<(isbQhxAP>T{X~~Ph?B|vcULqORj%i@xnG!P+5#&&@xEF&rpvan*%^*m) z3wF-YZ8=wfPNX(Dap{^>S6*90U7j_X$GG1#KDM*4dvx^n8E;!YPFwr2*i(KqYGM_V zpwYB;b#*m#`x+0_MQr)mC)K;^3{`aoS6xZyTyGyygY;Ck>Kn`XV>bE}N5^)UTy?uN zV&y1r?jtv9Ys+heeJww_Kdt=E5g+Q!eegza;`iQ#?&?Ydy>Dx1&vIqyq~pu>)7u*_ zWC_~}KRbVT{izg@cdG1kA+_h%lrV4h)gQNx0~^#u&FDC?)OuXdu-LKt1z*iPYvX;y4@S^j~)1C(B=EQ&-Qe7kw9<-3e<` zr?0E7sjtwyqYM3{NN=!t=udQ^KjmbfjVehhnC5!m>o33f{KE==2(ztmo&_gKBA>U}e_8q1feq{oW%@#2nZ{U zPA<#Lo#t6EWmYRDxyebW_NA|pp4f0aJkUoCpa$Y|J8!zzt!DV%dVbkQ0TxZXzqdZ? z^f7O9WVfWH>CFmFmCm=}``M+{s|xaOjL(1TFBle_U5J)i3K*7ajKv9wI_K6f6A^=nz4@Z3F_UA z`!>;{kmKB2{JHZg=F{{Juhqj z<|Y1^V*h8sHNm&tKDJNH)Tn>xoK!IGmFFLMy$)0i1kuiaD*63+I;X&2gW;6~8*j*; alYg#ef!|)RG79|lY|ujNo!$j-t@tlTRyX|s literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst new file mode 100644 index 0000000000000000000000000000000000000000..38139e008b05b5a6ee118bea5c003f928989bf64 GIT binary patch literal 3483 zcmd5;UvJ|?5VxH;iQA+-PS@V`5GWMx=#j`u)jLi?EvGbp+UP=?CTUNosusuIG$yWH z+3Qx}k@W+40P8W@lCq1wr^1 z2EK75B_LZ{E~U2DahO^%Oy;=R^Z|7})3G;J)ipJz=CbL6Z!zDc8#eWst6AA}&2L$z z{*v~ZPM6vnwr^R<2q-HB$~HBR-cXf{2C9LozFlh3)y_@(n7_4_MGKD2G}EST)%2JQ zTb9;qnoDg~DSp}|WK+|-AYL}9Wy}%7^iCa*8V8!?(-iLbVl_idMo+xt@XIs5qVvO# zvpxtBAu0&7jh+XR>XvUB;>Uqu=%ZS(8Fky5PQ8(Z6*P6i#KR+mCy_wJqyIn*##PP& zQzDu~S`yJEVn~Eaq%DzSiF71lO5{t4bU|h~67je+7~b+9zkG7^^VYY&dcS@D(~BPj z1%W{P@QLFGpMeuX^yy73N4u36kW@s*S0+$06_?#s+xK*h1%a6X`8&j*Z4D9#r9X2F znkaNk%YZng%ccd;jl!6jmRt_O7!p|wi&(VH7Q$@ioZb&}&rO4M9)$TFY94pkN_auj zb;q|^*>M{k&2Y{O9nC(b5A!V#PKM5Swrx9>LETInGtY}gq6oeqM6v;L7bOm2)Lz7xVU|mg+K|zJXkekfG|E-{7IXkSKN)nWE$PfX9;dW-nrM`c3Ro_Qmr_kHM z6GsSwfG4a`!*$MU_D<>a^=fgwp*vx= z6cwLb=|89wO~wa`K2T)=NNf?v-Eg3i_kq7R=#AK-;hGmTvZr`wy~?e%m0N2+Yd>$V zt{TsB+L|U}O7q-)025^i30fdxmLnf5Q{EnNG3~kZJIH!>#7B&=I4Nl$L$74?=jvb} z1Pkjs+DQm%5jDo%12R{w?374zyHa?$Q))D1H2U5oC@NeW9G4dl8+6IM`OI`}=iKHi zvIln!%JGiJ5mdae@zH_WAR+=h4$Cl^;lC^FR(IGW_iC+$Tv&zG%Vk= zm_356%3~lYNyIr1bOJF`J_Hh50WuTREfGbzObjM4et)4nftP}EBJSV@XJ9hBS>3Ob fdcIiMZ-^+vSF$jf2UiX%rB`HcKVPjhKcD>%V1xxk literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/RectangleContainer_lt_100_200_wh_150_80.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/RectangleContainer_lt_100_200_wh_150_80.gst new file mode 100644 index 0000000000000000000000000000000000000000..6a736967d29205eede1c0d722049f00b796cba2b GIT binary patch literal 2662 zcmd5;OK;mo5GE;6B5m18(>O_;M~wyrl3E}nIFE~6z>#fPuxh)JksJ(Tvm#d(BbqeG zWegYXPw1`ap{M?co_p>;3IYU3=37~oY&NZ8ccR z^;n27=|<97^?Vt{<+*1fPW&ibsyYi!#i^9%YH1+TSS*Dil`#*>bK7Y<@ZAk@yc6|A zxD=*AP|A_A)uFN{JP{XEWx_ybsH$(5vl8wy={hU;Psc-y!^RKnL)jyXt8$bX*%pxAt zj-1f)4=!Rk?6wO;rgA2h`Js|?_wrP@l85^v7h{wBW#)+vrvQTV50NLVTGtOex~Fe4 zD9xXjy_OXTL`TkK*)lr3p5-3-p6uSp^1H&{@5+1G1Ma#}8p^dOZgsgA9o4$zk(ga> zClvUuRKc_!1)hlKI|!^Kp98d-mMaf&`A}E@ftKVlO#td2`bkvPq97pXDB}{RE-0RT z*Xc*$?(Y99ZH(Ado;xdl!Tj6X`)Fq@8v1Xa(xXr23sTN}Ln-%BPO0>Hg<`>&X5qfT zu`O&~lQJj-$D{cV&EIKm)70zicf2{97 zCz2Ag-x2LEXj`~K$f zfs+F4DsAi;5LloCI>o;Z){Rp>&;;Mob$fQeHDUSqZX+^g7B~4p22>qr6mAijZZRI<4Y8g?if-WRorm9mDy)Zfo)rpxfbYs%{cu6QET!ti9uSo6T;t zJ8l|YfD3Mc3$D1RcmOVtcmp1Rr$7QE-~tKGH~xteCp4{!)RE@w%sDe>=A84*nOTi# zn)VMBd{KsVB8!WW5JB7srB!r28AjR6x`<*g3}&aSX)9;tvYA5Dm(57b2BIk=$IoU~ zn^oVd-4?r*a8m@cLDTn#2S{0QPuZLki)U12V1w44s@A@&`N-Mvf(`X`s=g?Mfpok; zL?thl22D9Pv+6`5koNqoP0r_>+9nNO@PzN4;I0>Mhp}+i9lt3?FyqsyN$yFp6%TiM zvGQ!+V$*ZkjlGS*M#~PQi0V#F#N8d**y_G5-n$R?q|@+t z;%|yUugW1}>fF(JRp&LGyE+#-uj_n6=M9~EI)9+^O&ZfF=~PN@mrLLO_}z&A`P>)3 zeD(9v51F?#6OMrYP*dor78#)>u06}nv2Qa;WMp7CMV}AazGz2dFT~e?mE)kLnwzd) zuivasO}W=|&a`7d`_bVpZwpatRGZb_ke{R}qudKT={f#lzl3hSeZaJIc!@vy@!_)gkk_KMb z&pN2}^)*qGPO#Af(aD2jF7`pBZ^(H65MR{gSU+2a+h_W@JDw{WXZ!gL;cYbJm41O! ztA))#E`(9J;ke;Wp+QE7iF`GtQ(u$nBrS!$E27CdPF0*pBnC7_l%k<&1Ec$)VX1%s zGe-)tPevp{RhEuy#z5jXti47d^nLO&1vR!71tkHmX0?v)y?akqYWLWZ&Fmk)hv=uu zfA{aRr?%$*pOB`)zI>iedv5MRDm4D0RCp*lAZ3r(E|Ml7^nmJP@cyJ3nB`I@OG(c7 zgE~*;NR=5M;vV2!O9NHln8?B`IZX7F0&XS@GE=$Sqv>3Z{Z4CO9Smf@^>%*k>HI`e z)UT88Jg)6st51`mgYBA9E&yUs5%7|1xt z8IZFe=RhVvUI95zWF%=|&gH#T4!pb6?qW-Qutb_~?W*V0#EjxqcDKdBhu8Q_xfb@b z^#r?mtaYFhsQ@*t&Z_w;HIo;Jj2-$iV6a&k{~9&S3h$W9G#!7k+7RHSr>7qRFZQiuH0(f4j%Yil3v*@fH7#d6tz#|~y=x@g0Q5`mTo zNSC4V=HO-!?gUC=#B?_cl|WM|Bx=B4mCJ-&mZ7E!*iC8-s^tnRrIj^?2q?kZ)JT?> z^7AVnF$6#{-=W6P!pd@m+m(FDE-(Z^N#3P~sU&kNrFn)(VAtJMA7fR7MvZ$?B| literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/StepLabelContainer_lt_200_200_lt_500_300.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/StepLabelContainer_lt_200_200_lt_500_300.gst new file mode 100644 index 0000000000000000000000000000000000000000..ff5f3f7f4bc8fafc1122adb604a21f75d6ec8cd2 GIT binary patch literal 3042 zcmd5;TW=dh6yDi*v%8K%3p8mPZlP*LA!c!u23``R#Ep%GX-i!dq$nE3yJLItW;fbP zL--v$@x(LF{0M#zst`y><$U8f>q`S})Q65VXLiq?J#)@?E;Aa_H0>D;tQaMoNWC6Q z8793bb@n_zjpFj^V;LuY6mG9O8&1Wklvk@+kY=&m4rP|cA}Fsu$l8JLeko5LMSU4= zhglGm=1AFIu54E%@`9=i80h4x26j1jV{z<HjWCsQN4PRMv#7i=SLZ#Q`#S$#=Y5hH4$Cz4)4|xr55Ikz?*8)4^3A`0t#4{JfWR)8CSEk4 zNls{mI~TDWcH8qHCXq$m!1G$JX(BkSR30@&TLx#*DUtkT?hzt8$wTR;BJ2jzFwzc!d14{qPW!)UUXdTk!x~gr=3udxT#9KFQUMc@mdE-m=F+!IYdI! z=9p!ba}dur8sv1;|@fTI=3wejX%qQqGoNE>WhnU+o5%wo3gFe~fURl1!OquI3Vn6tLZ^oG`#;e$apoj?QcG)0Ruv zRK~ONxjl9yi-+CSzD!DoqX0Bt%>?^T-#?nw_cO0wCr6wE+C_C;g_>(1*NGHMD@4CO z?Uv}=bP>o~+a26$X1Uk2D;u57&S#zVb#JpGHiQ9_Z{b|kE zrFf4{j^yOcWO=LQM$>G)z&@O5ALtw&_x4+~sr@#Q`FDuCF?|*@z^!mcx3J#>fha=+ z6#sp&Zk+LftK#1T3#te5fLifC04vu6^q-^0fMr+4~ zq(=LURvNm-;HQGup@(9#ac^%RZUD8BJJEUNqq3kDh%U?-KO$fS1MW)yC-h*{nmhFt S1MtccTGfE}46skxx9~5D99=8` literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/Surface_with_14_different_DrawableContainer.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/Surface_with_14_different_DrawableContainer.gst new file mode 100644 index 0000000000000000000000000000000000000000..334ec5e267e646ed87438e791835ed8c80dbab90 GIT binary patch literal 28619 zcmeG_33wCL)|obGI$bCtEvpcUve-6Fy0^4o>8@RPZ2>_rO_NC*Nt2MIw8aHl6kJf? zq5dc!Dj+H@Kt;vMQjv!U2#P*HMG+DC-z$pG1=;^|?kt%m4K{)A`}_4V?LBkn+;h)8 zcRAw%o*ldlPSa>nB_Q`jnA6dyzK&6uv zE0;3crmZuYtH@bfX=1W0W{1{jW^9EGNG8GLLH?sI+z-J2!CZa&Sb*)iy3Sq_)DY`NpM+%9VnG~wMIRa zW9)*21t@Ae5$~Fc%@Y`iEiSzPeIRBT3`jqX)=yLEr_uRo^nMz~ zPh;@YRQYMD{WL~D%{_jaX+XmtfpWPYcN|=9oG|o;d$V7@b$ZdIs8!n~G&V#JF39mh zg00yTf;7Pw$x&`P0D&AqAOade5CRmP4nYu#01KwW5MY7y4G4N6xDi08pA7j#Ii+yv z*iuI4(3-16J&OhP)aV(57Dgaa7g_X7U{sP5~IuV#!@)s7MF30j@bQfqePT5M(2TD_$%s~T#=^v|rcgXZWQWHjbmOnSx^ zWx$bXm-@p1gTp`C*)E>O6}CW`L+hxuW3N0*al9oQKw{w@m+WQ zHPZr-Owo$=^gb%^)Tv%qCJ+wl$!l4oYgQN3Sy>zCtXGvnt&`6{YopOf0kw2BVj)QAJ^*B>Y$KhW;i4%yCX>->cUr*fdeYARUe^IrpH zG_>h{Fo>xWBFs~Ocnv}}ghU7udH?_!PAbDZ4)#KrCCNa(=;WH@|>dmQPRHXE!M_+>3Fuskn*2DMWQw}nr4SsPtn z9Kk5?YT?0dG`jR^iaILN6nY5Mkorc1p^k_yl3Tlfo7gyo1 z({nCX6L8zwnT>0uD&CN2NH(a|`b3pBUMoYLyVaw9=E7DP*7JHnMRC&;Sko{Tmi&4< zZPMCdgHmf}LUmdzZkWeejAnD#`Cl)?@V zyRWxPB55s5nBSRgKu4LQ745OtU_?xvN_nk)*EeRK?u(GE<~5y$WnY4=@HotH_Mqyi z1{vAM2e7+#z`>oEz(5>o4Paex_mvI-cVM!^z^=oAiMv2#g?TaOddPVM&NP|bse>Yu zMc<0FUx+YpO%4SZ=Y^0_LZdm8;oTF@>)vvv-XU0;5Fiby(N1H=oAnmFwIp>wvS(W| zR8Td6MfY4INGPy2+$!O}Tvfd`R9*b03l$IpqdvZzu{#uXMn|)ymk&q&84vha2mRzFcdoVjNsbp+%>~dv>06xPLnf5GB_B zUhR|677S{Sa=jD!Ut}1+f~Z|09QBd-VyEaL4T$>zi#y|+zT##~!d$=E_Ql%VX!_*z3X6tu({y+IMkPqFP0h3Vj=B2DMd$ zp|*%FPC@D!2=NexK#HwngW>Fi_lxkMj)cw!AnOUh^P`=D8f{g3RSM7;5$AdP*DaQ3 zuo>eNCcOQ;%xqeg4Ro!Ec3Ds}ORhAw~}qTUvbe;W5L)LSCV9?*#WfXsw|yCDf( z1VD!FU$+SNWjOaj!AY)cMwPJk!tG43#?E5EgU_>444VME9g8i`rnOcZb#{S6l*VQO z&nUQ`l8GKUVXm zEC!9C){AtI9tRjas5eDe>J8DwK2X!%5O6bYcZzNK*&9Oo+HdK>udG#k<|qcwKGja!?*>tw<;734pS39cvzsbn1#s^cWzQ6U_5JUx0nZ=i_IHdbqgxr?ewYJO=^>2 zoKmYrL!X|4n3W>T)1U|!0IA@DguWYMQgo~C${TES%7P6azHTDZ;Cm*48tw%XShlI0 zYh+KJ|6(V7{#_DU15EitieBSg(|`Vobr&r>u3UGa))i1uT(8Cz}zFk{T_}~WH zgRTT1(4vo~J1y?u39TL?C@KbO2mp85n*mE`4G_V1SujY^0i=>16jP?>MW4@_KYqM8tO=BBM8AD0sJ+PyW(rAo&*mwgQYzK1q`H@W! zMNxDehx&VOiG&Y;ho_#n>u|3t?kh-L!Cgu?WVrbGt3|JCgU*CJ6t0on3&B;8dm%W7 zbTs?pAPvM-5%v~|lz|zROZ{Al5siIG`tyE>$eLjO>4*whx_FkczF`VTz(C>jMFgJ( z5&ocX#v+2x=238#6Kjsu$3rS|J-M=7WM3vj6_8h8PSSvImX7G`tb%#zMg&a=<{)?w zfV>ibulycDE^`sgL+~&FxgLP8{2oCrk0N*sK#&|QFyR#lXD{nIAF|MoBX|PA0t5>Y zECLYfC$EAN;oTF?QjZQKlo`ea`U&t(gj5ZOxF0&98F`pE#2i4pi->6);$c9%kBECX z#1nvMMTC(z;8g@`5xj=rbpW9Oa-45`E$CFhXAlM2(j?=1>pD%)K z0|p=%&csee-U-$US?LcDY)9}RfG`Ju(^6QqJTk60FEpq>PP3r}`Prp#u7{ux#8q99 z^|v@UNvkr8GQrt*LGT5w46bQw{v;5n$2JVqJ^y@!24p`+&Yg}ji@{L`ub)fm>gtq6 z^E7yNYGsrbTh-E^()$BZBodVy9VSMC4vlzAjdfhC;@`hlm@HM62k+d1<8v^}veu?! zB-IXw)t(j`3$B9#Eiw*1Isy!qw0A*vW_kVHr=C$i+B>uN+!fC^tzXpm!lE@j?F*i7 z-4h-n)wbUDo;*DB#;jlZ4p`E+Z-dl-=+H35R~eHc#!J$Cu%frIr&KiTPDH+s;!zfKBy|FG$kcfLAhU$HiRo*^%$kH5Ti zS=5dpj;}xUKhq@tX<*pbse|6NKO1_%_V!obn-6 zIW_5m?8ErN8R|VVwoY7=uvhxc&!@gr9bWKf@SV?2-*6@)E$CVLg5m8^zw9_@Skg9a z!4pjezpc-nGT-;h#(u-k|8wQa=bzbDb#Kd-rEL@MJG&ZCpA%H$X?x_B3!i~}ZC{Km zDr?*xSFxn+-V3rR&uKR-$QZTSc&k-$;phIt&TlxKGo@|Vy)AE1|JpmUz~1Qp-SFHy ze|&uL=D;ySK8UMWcIxg6n|A+p;>j0xZ7WWFRXXgk8OKs~=KC+s88v-bt-f*Bi_24r z`%kLaP(A#K#kswfM1T3n_s18pWDPg7$%6{muk&zJv6Ls+0(Z+?%GaGU#45dp0N(;_6i+P9>$N0( zV9%YqhSG(DdOVDU_gFa3|5%FAnUBH@RW})rN-#(B{PcD9$xxLr`G>E_Qtyfxp4%T; ztcf^o+PEx{&2~@bClhuT3<*Y_Wx=+$Cl?2ia+ghB*!+dfmhZP1%J{r#+3Qa)&LRS^ zxd;B82)R*Fwf2YO3t356s<9EyGI~SBK_r&fKNkiNfeBgjgPd%4*pIyxvMFqOCA7k4 z%Ti*pe##=E@o`|GHx@5@ddQg}DA|UD;l;Zbp6@w)-p#5>&)&F(`RM+KQLyN}j~s|Q zKKjF5L+HY%Pkde=IKq5_Uaj*+tlky#(dv6YH--sXE}YHB{7Xn zNq*q{htRf53UZ3G-xyobB(KFQnDEKr(+U%}F234gT+D>}htW$L@Mmy*{Ii=EM_Jn(rk$wGdd_8o)QKr6kt2y%M6e$ zP8Erl?5iDctzxf5eAR@&sLzOmtZ@nC$_~X?A*AUoIe`P(xzzj${vcAMy1p{^iDQHZY;en9;b@fIF(8j%U6yS7Opx; zY111zqEx4*rpBt`V&mdsfFj1;0H0&2k1^YaIz>s->4cobTi-Z?(OGJ0@JkgaR(oQ- zlh|5oGZ6~CE|xJdHLx|c$Eua;*vQe)+v%`Rg`F*QyF!8eN-pCPBS&9pW=)SJWF$X4 z1hzY~;}whxMJ!37vlNV z!6z}~XqRMRckM7_IW#{Y(%@q}b;uX?=}iZO}e$ zBznd^jTfz*)It$6EtZ;$$P{H&q*1#?wTE@L% zwKn{OP>f02z(Aj}7K0lZLt~UeZ>?#E`+FGum|gNF;5Npo~vQN>K44V^gS; zm1Ii85B=8L(S zhGQoj1x#hWc4JD?wUdS)3Z0h*M|~OCIJ5pr13wPlx^f-(@haa2ep079*VDj{??4TG zl_uG1X^5SuHrl*yFff`vSqk2?biPwvEk#ES=BqTk?d!ZW*kHM^!hu)(u3%d`8e)k_ zzO|T|pLRMgWM`VpXK}9H)^}vGd=}^GjeSQp%V%+TGwge3rKY-@P@l!|-lCHMZZvp5 zzLQeP_)g|qp!16d?+txt2DtC?T)k26Xh``kkN0NXwS77oQ@+dNy$vT5v$5X$L6s8c z>!9-9w7WK1M-z?D@^E|qt65uhv_$q@o~t+G9W9c5m*?v3ct_KU@AB|w%y&cHkrD7+ z9`7x=4IY-WJ5F&O$mXK`o{Zmj3{8S%aZ&=m^&lJHv_xe>iaI%oN9wh()wkKS4IXwW z&KnR|JlyDD5&SJMb%HWcof5}4F28e5<qWWkhm$5Sy;orLi|*u6(0L zAQKp3PWB$yXitwr(qo-8T)y;JPB2dFSdrZ6v3#}Qo+92F8yzGk-U`AEQm-C0g`uND z-PJx;g6CB|TB&yzO*;h-cKUG-cAoy5`QIr$rS?P146)1So$aZ3GI5pZ?fjW<2cKN= z?tnp?B%{WRIeO;InSEz3?O(eiV*U@8!YW&L=r--pweDCPH2UIYW{c!p^U=!vD`b7< zT#A0T?{8JDJDwjCtPHqVbIYGwx31V4c=?-Shu&}gsv$n;V$G00FJyjwaonNJ%{t4P z$Aiw@rCc(2+xS;4PwxMAV&I8+9~|6p-|k%cVodm+dFIvs$_>3Z>GZM3`$GXc1|*2FB?9N+fM;q~tv$dy64 zhfcCWWeods@tdpb&YuWBw>bEO<&&E}ZTtP)uz8nOHH|!Z>!XkFdSUDTHjSMBCX;F@ z>~V3Iv@Abr=zs%rofUiL=9Moe3mb~U*a_Vo%<5ewkmf`WH zy^~MwYkDkm)&ly{@wI;(+0yXPrQ=O!N6pMjxOelGT`!Dzr6TCPM=N!5~DAvu4G$_WtbSkN)x23#17rS=A>?hNV3JWb{f*JRploBC`5_tUVNV=zo7N0x`n( z{6w(~H&rx8kiPg<*EHtrtM|V%X7QpQ8)n+)Lb?0oaczUv9sKvc2a}I%TCjOd(!~8M z%2i=4k5455@k>L_Embbr`Jau^KkkjL&w4r>5R2&(>euI+46SD@%pWhwE>5!g zeY^Fk!%HKekLmj^PcT>}?_W`9-8Kgr#Lzlm!)u51`@eOxJ_-zWj-OByce3Qxl%v{^ z^VF!#mkR5{wm-0~2O9!-sR4ap`T0Zl-eZ?t+$CGOksU>YZoIH-;+~d^NBW%&`R4Gl z7shO=xb(o+sY^EBJ*)1|fpyP4vU$|fC}6&1-qf7+hx>i=K=_Vfb1uCUd}955F}oX@ z|7dc=g}=WF zL%pi?vE+NO>yKvXe|c$Lh2?G}f#%$UGgK|coaON zQ7F)RMIt!~s0cWZfS`bI8w85Dwn-$jA+6(MHY7sI?Ah!IAVeX|mTcR$4H7Q1U&es% zS3nE`{2>ZK_di@)Z4|nGh>jM8=t8niLY~42sFuj~X6UE>Ijp#4~{4D+3h%ZwG5CoLSE1BJd*F<*_Gtv50rtL zng;TV1pU(quDrp@xc+uQM0%Od;*R!{Ql7sLE-nXo;)un-{r~~}4~Pb!FIg|)+c8=E zS7)gvz+)}wj}YuaK-|ve@c7+`+9Ti}qDoIW?D~ z6qSdB)I1*l1w`2L2>xLXA4o~q@(A`39vdh{a#F*uAO=76Ao_YVg&u^Ya)c?V98yt_ zad?3#!J?xeQU{7EaSX0|wEs{qg}#I=9X2xkJp!bop5PKhbt8CmIV55@+mhfHa(JOF z33d^WB|je_V*jF$fP;yx^l6CQ;P#VQ z7gz=vKS)iX5k5D9)L;z>IYJo*(9{4m6$b_a}rSTFZaPf_T7 zNJxpKqz#aiLWe|xkA^Ec1_9z_Er1uj;^OjC2D#)bJa(n<`5qR5S{z^{Kj#we{P7I@ zU{93M3{DviS1e0=r61aW??ie2+=)=UUFHbM}Oh0&1E%e`jQ z2OKRu1_)Rah@{kZo(De`2=+ssIvc5T5D+|igEd0Hk&_45fP4Tw+J7ZQhGVkxiyUAe z2~RHuuN~JV6ovg4P=F;A78K`b%JU1d?kLVFE0f`L=IY>|h3-6Pf28Q{BO|}z5;V14Aw>p0X$}Spqvi5j;Dipu_|N}=jtaRT`OBu7h2 z$nQY%+=9YF4NHzoDUwhK2?1sKnb{>1DV%lM@wf$fe9w~>A&<<`(vpe!IhomI6wWz> zM=>M>=av+gYYNIU3k$L+oOeh{38c^@Wo$`dHieTgDd308doT`%pM=7Bmr#!r_~d35 z6%^N;p{ueg>ELo1s67iLqKwW7w^7@P|Atm#B1&R-$If=S_MlS$zdAkuGK zY0kLJ(wuA!48QW6QcZqAUOu#QemRB4fe17aBJj@!RQz`BSPggz6&yt+WT@z*fIA`L zRzS(v-0@{undLcD9#1z3BHSpKW9Is6UG(X LnNz4i^$Pw!Hx4O! literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/SvgContainer_lt_300_200_wh_120_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/SvgContainer_lt_300_200_wh_120_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..1a16366a81eba0b8deec20958715dad2bcea65f9 GIT binary patch literal 7670 zcmd5>&2A&d5hf|g6s7&~A#q{@0mie4v5v&~A%_%6lQMQCOA+kFI+naSEEbdIOp|PD zI8F2nMbVED_~eTX_~MuFJ*PZC-Xlg10g|ejX_6wTH96XYhu}|lS66>sRsD5$F_XvA#!Hw--KMY#@%qhkkg%#d(joe006J?|I9s?ioFhoYp}5iafd$3WH#POg756P_Kfzq7@voNlK%eG54VLO z+WH)9I1JE<-)0jYo3z0jn>~_3ArBv0{{d!LYi7|Zzd}y4?aVg18EXm!_`oOoGblu*5hMJ2rmzn+ z{{V?=c)KWCz$LqhC~gV39caqi?O~@wMc(Fub(vqVfm9iWQr`Bc-wk^O+aUwuuyDL< z)9V58UF5-nJrXR$UprXK1N@n{S@3*7{XaY-BIptC>G%uUdEWjCVsp>7nG3W5Y7kNM zF*_m;=8y(T%^(Fn{gb|Fr7dC$oMyGwX*K5f}-%=Ev84Pf2XrQccZJ73w?Og`+@A z{qo|ZSW}fC#JKdhPg|5Ze0%F(zb!!UF?xfm>zR+JQOXPKl~uh(^>q?bxXkSGRYIOJUy{ov6Q zO2cs`JssE!Lv}?S-tXgv7MbIQusanV422g-xQ1iAr&0=Fv) z`ZX$+D(c|{4Z;rdC`3otQ@ZlJta!Z3n|dS`^@o#4Fzt>dhzmuJ+N4<<=qvY%(a}_L zQk8^}q6|nEX5?|vQXf?ed_}WYlr|S|N{~%7dTuoFn0z5*lWG|d4LIVDP%ls|96?&D zR5=mA#!2_3txk_RmsGSl5n!JM5tjy+650*alOew5yx&r5TB%~z%hd&l&UH&ISG0;z zt(oT0TL0w034BcM=sc;4Itdw z)+g7j4~!0$S)ABV;Kiiqkue3I#*C3f#{0#ha={0R;3K72jDp2s!jX{}*~HSyR@E{j zWHg0&pqYkMmqN(sL7XsX7WLsMQE%|~!@hpTVHhdm_u{mX_sC`V9DIm}%Q7jHNU zY-MTPSgXD{G%^%cM}tv+4jkvZuM7MVq#))4zigxn{OZciy)E#|OO|0;GzV*=iFl&N z#M%Y}(oDq^l3G@G>O4~{Ggw+QlKWOig9bZ+6AtXzui@5ZAy%oTvzRHjoz+3EVzSh5 z?#}hgC@VFbyOaGg&PokO(r|ib)$5BCni|gfj2;Cz>#QH&)p``)2hswoA0E~x`c(ov zJ)XOh`m&Hpk7s>apSRDlm`aaleGZQ{W_G=PP}NFlgKB+hpEugFjV3joUA za(X;>r}1TnhD`Q5BBG zRZCtyqKj{%qFFWbpeid}0#|(@$oQ69$}|Ci!$YDYu8=7()6yzttt5>rZ_f3kT22zK z%O&l=GHNwTYJl76v?{sf_Gw655|ZhlvIa9OQEe0QJ&iApPvR2fV;raPS1vB&E|`@; zfheQaQjFOqGlpCQHVX`9M~bI)&j__b!j+B@L;N_sZV8+eoZ|AmcZ6$ xa5r^1EyyWiYV2?)AEjq80gun-%>SCV{ckh-7Yim$^HHjEqT%tXsZ#8_`+r0wc0&LF literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/TextContainer_lt_300_200_wh_300_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_1.03/TextContainer_lt_300_200_wh_300_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..7f24b11f4937c3350d3e0d26d71f968ccea606bb GIT binary patch literal 3222 zcmd5;-ESL35WlhC7L1IMNzdfkZqyF=ipSegV7cj;hwZBC z)E@Aoir?biir04C(IHZn?23vC(#H`Cji}u+cERhzE76#>4o8CXRaQh`W1mkEX%niN6Sg zew8C6RG6i(s={gtvlYe_R##XU&G<9^}YVi*}+lMO> z5e;8uHm_S0O<20++g!^v9oHt%Zf)~gWO7Fy67EAC{IkKX52qeCiPeL*0yDoW*(lj(SI3S|OLpq8%20qcc2apMM>3})^IuDC zUnF;ntUg9cyDb4XJfAW1pSHhwUfW};Idi!Pm_tK!*g|9bN8&D@ zUKX;-(E&eu>rXD1YyO~ENyvB4wGVV6ukmRbYPNoZNOGFU*y-EuWfFaGQkro|(8Hrw zM;GymI?p?*npvnX)$iBm=k2A8wP49`q44D^#OSYrU~?H>gWl53ebcudb0eM)#u^?04dbH1(6ZUfvu2d zAe!&WRrvAzARvw>mW$T@0K_t|NiGn%QZS2oR@pRj4~qG6S%t^0okqlZvJ`3~0pcw}}~E zHwy*U*%hdWfp>`MY_Oi)G7F!`fJKbFOH5~jviT^l0-M*)xTG8f6suX+X?XkebcXS% z`09ZV#Ki_cg~s>5RPrBJ*k)H1`R$6C I>t8bR4@rxFaR2}S literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/ArrowContainer_lt_100_200_wh_400_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/ArrowContainer_lt_100_200_wh_400_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..f64291d51df87ee4ae1d75162005de358d95bfe4 GIT binary patch literal 814 zcmZ=SN=?lx&d4tbNzEPe0fA5D!mhZ$H=I;0>-hIhh5;sm}R%C5f4NsYU1x zW2ckDF8yct&#(&YIA?z!|DeI-FoyrD+&q1J;)!z@Go3>0(6V3;M;HHajF18VCVj84 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/FreehandContainer_with_4_points.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/FreehandContainer_with_4_points.gst new file mode 100644 index 0000000000000000000000000000000000000000..e229771d8d9f5723777f72625ff05e5070ab6485 GIT binary patch literal 528 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/LineContainer_lt_200_200_w_400.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/LineContainer_lt_200_200_w_400.gst new file mode 100644 index 0000000000000000000000000000000000000000..b71ff91f2b50bd6c5160c17a3cfcb0bc2adf73ad GIT binary patch literal 514 zcmZ=SN=?lx&d4tbNzEExEx}8D4@mt0 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/MetafileContainer_lt_300_200_wh_120_100.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/MetafileContainer_lt_300_200_wh_120_100.gst new file mode 100644 index 0000000000000000000000000000000000000000..86901b8ddb6778c343b7e1cd6dcf5f5d0cb1b8fc GIT binary patch literal 1318 zcmZ=SN=?lx&d4tbNzE(0@}>$>ERLtq$_|pg@X-9`WAdK0#b~{LGDfr>(0r% z1aer?9eo`c7&i8E|4C#8@;M7UB8wRq_zr_G)E;1?IiB5MU|3 zF(*xbZu?IGg(;>>a<+L?ZR371e}}Z(P6lgx`v>2@e?R~8--Xpj#d@Cp<4-zxGs;L!#4+pp$NzheZtU57 zyV98JZ?58xKaO|)2He=YIXQoMFW0YVy&3WcLRaNaxo|(6<5~Nm>zis$yK(;26+P3Q zxAc`8@88G|k9wtm795o}{jxoz-~jvipvuK9|Moc*eC-tiYPWd6Uhw>ILVu!tLOUGC zbNqY zFSNRPPcGd5vPrXNeX3=?58vODEWsYy%F>tH5FVTPpdn~ePaaUxSA5Nl88W{nbMa|_ zY+iod-13WgsKIV_h=EU<&PKgB-_-3`-_QB)$?9)+_f@w3d(!mNy2{<8dhfoI3+-1X zaP8_!N-lblzbk?3adzZ6>B-LZMh8VMojP%B%R+DvMiv;p@K>`~FhyrENb)kPwi(#1 z%%>7>@ZWg()feat(KGKDAqMVD*enK)i~Gq<_CHtEZnvL2@p)xcaU0Oy^Xx`%B}K!M4e&kWc0 zr{0_`28?6Qn*U*G`B4|<`xG2#1_nslLFr9vZlqkeUvjVu zXu$E%uw0`T{#q6f5_x_zTJQbmQ^9|@?f@SIv%y>q6uvz7_l@eTV%EPWS!ZvBq#`-t zKPSV_?EZUK@+Z%|n{yW0?@ahtcgJ$Z-njbmA2Q|hI`>-7)&?3rqdnGj<4wtXb)rYr zn*S~1ezvhj_jKiE<2}}=UjPMCnks#?m1oa=coyghpi5b~FIFLarU{h721nAFn`cAIB`qW*z%%Ex6J67u6fN`S$6*x(KOn=ii@t0C?Ixe0{5 zUgWPzK(hyt0>xr@Q1j?@(KlB*SjGFn$p16@t)Kr&{&N@aGk^G1zFulVqw36~z!HOj N!PC{xWt~$(698!Qt%Cpn literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.gst new file mode 100644 index 0000000000000000000000000000000000000000..dfe55594a37f0b62061d98519b5702b0cae283e7 GIT binary patch literal 993 zcmZ=SN=?lx&d4tbNzEFn+28XUaIKPj!WI2q^-=lr~q#LT?ZB6O#* z)5&R<{xke%SOs>Tv%imj5D`verjyeSEerN=bny=-!bx0oauUPNfFRcZ#~@dicsEa< z5Z9o1eky~a?31%8&rBkS#w*LUk Zk3g^<7Hm&d1ZwH9o|{)7jh4H8^-vP-=2XVqSVqs&jr`Nn&PRY7x5A z*y-f7OaK2fFsuSQ&)MI{KWGp+?Ht4Z|NmFHdHVRo6YDf)I)&QdWx*bfF8<+ILJI&U Chq8tM literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/SpeechbubbleContainer_lt_200_200_wh_150_80.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/SpeechbubbleContainer_lt_200_200_wh_150_80.gst new file mode 100644 index 0000000000000000000000000000000000000000..d0db7f535d9abd7d31e16944e572b3e6b0134cec GIT binary patch literal 1771 zcmZ=SN=?lx&d4tbNzEdivCzqV zryLhBFhHU;*fYwNILC3*$#IN3LtG<5;ywI>Jfnbl!qF!lm?zx*d|mxQ2AM;*gB=>? n8WiH`OxT$;sSY*-^Ycm)GxJi5 z2FhvwSNVAQxf1OxPCA7c(^5AdNB3YX0Y#HoVr0aUXwEWzIm@UsnryIz_-L{Lg$ffR E07A(BmH+?% literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/Surface_with_14_different_DrawableContainer.gst b/src/Greenshot.Test/TestData/GreenshotTemplate/File_Version_2.01/Surface_with_14_different_DrawableContainer.gst new file mode 100644 index 0000000000000000000000000000000000000000..a1a695950a374cc0a46a7989b62741793554b239 GIT binary patch literal 17777 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ArrowContainer_lt_100_200_wh_400_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ArrowContainer_lt_100_200_wh_400_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..bea8fe010b65540e2480d7b2b22f3c0af63ee383 GIT binary patch literal 29035 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�M88z;g( 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 B$k+e? literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ImageContainer_lt_300_200_wh_100_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ImageContainer_lt_300_200_wh_100_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..b2e0b7abb2974c4dd65cbec3e5e8467ba71a08c5 GIT binary patch literal 33998 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 Gmi>R|uGD}4 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..eac540fc33f77b04c69eadd365dc2704c7c4015c GIT binary patch literal 29578 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/RectangleContainer_lt_100_200_wh_150_80.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/RectangleContainer_lt_100_200_wh_150_80.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..d2df219619679a79cc4611ce1b2d96b6d5d89f5d GIT binary patch literal 28791 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

B#|~_QzMLJ0vPbZ{6%+ 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/StepLabelContainer_lt_200_200_lt_500_300.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/StepLabelContainer_lt_200_200_lt_500_300.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..b2d3e5e4e4b2be8d49b07ee1ae847b573b644ad5 GIT binary patch literal 29192 zcmdpdXH=6x7iItvq*_pV6QxL(PH2Ksq=N!dRiyVCS`s=aT@;iSkS5Zk_e44ZAxMV+ zks5mFC82EmzO!fd@BZ0yc7Nnd-g#%{ow;-GojdnF_q~Ch1}zl}6#xLB)zW-w1OSk6 z0RSY)l-G$hCJ(Pk5{qjNPjsIE098rU=Wob~&o?|ZU-28_dV2OZQe%Vj|wY=tj>MtBHUxavibXKi`SH(TcXR9qgzGBacs?>t>4B z3*USEr34J#XhM}^FZIT6G@wc>iU|k3gmG}G-nd-x554h&a=x)Af`WoC(_3)xmLOa( z23V8n-t6?w>f-~gkG=+32J(AdcQ$YCPuV6Rmz%ITtgq6EFCHY&a^Zp|TYhY#8 zE^R`!8La~r`ZAvrDJCz56b@B5p0f25?o*>ztfd=W`d{@^*ZvWFDYso3i z!5moDEk*o3Hiebu1VaY;HXmr2`(MB5_QS2xwd8mU3@Kw&ZuWcE6gYkK)r|+osMr8L zqY4v+dYzxloc(s=87LDboNe<|inblD@7PIAC!TneE1hCm4ZwJP+>iNlLZu1jyijp` z-nsD30b)PN-xPK!A^H+`b;<6h`F``$F(`G&NwjSt(CMBQM5WK+%yy9S8u5{ihYJ&C`v5`%aUW|h}bjWQd1zKlJ zxOgbrfVZ*!NjkXdr3+MoD^7Z;LeS_P;7^e`r%L^c;8F+blAja$fV^QV_(^>os&1BK zxp245Iy)fGkyLY**D3pY@_O6;%Jw)TWO2nAce2=xk8<|#v#D!nu9&gNw%IP9H{LE! ztUNZ+Fbyu{`O!9>GCsfY#o6O%huF-W*sOWRLeXHm+`qyC1w>RA2Q4KbUdUiR;DopJ zGXNcOEh|~}fUj#&^d9B#!&IkWFm}>JeHHYIIKAj?KB>?rgQQ?|g0W!?jRjs6%5l0WgtnHh zWJ#Vi-+xBrnnz@PZ<$o2Q4|nQjiYiK0fOI8B+9+X5m(wtT=LygP~>PZ__!DJ(xN^I z!s|56tYY6_H&8Q9fWFo^N`RgOc_}?d{{ehM+7n6tI8-Q_qyTEUC2&ou_aKfqv(~gY zKmRf3gCCj1(b|X=zsFZ;&UsHyO2*eEN9FTZPE!6@#!VKUfDejotop<56nN2a)l9>K zwU0hSvoh2lx*|$VP;$hHDv`xXeoU|rHA&$J+V;8ZX(ulpKJ%MFGC) z+5ukCkZB^6j*9#LjJcN|n^45Kf%-P)daI+~6$W9IcS_*r#+73O&}C4o8F&`~&NDxw z1#Y|vI?K!pLhMVlOxDfmO)>UHod9&JM_iN+(c5>vUBnPSw@F4xX0g0&2lyk#q*7Z# z!xi@iuulIbPcGWSwMiD%=r6Q{Ml=`CM=MPJofdErSbK^O;|$0P+Jt@TJRNBbUuD?4 zXhb&|feFgE5}4fW$%n!`WPPqQTrBeciyTvD@5`TUcSQ&@uAWrT@*y|pPpiP3k5B3v z8caQ|HYZImsrHtPktYS~j2HSQKTsE+(>2o4(^81@yMB{4n@EIyKsD3#WJv27VpT7P ztvCMpOZUprA8jwGs4yp2ttQ(UOLvwVwr7kkny-WrGPqkY$88Ugg!$)39WiC(fA%Fp z2YUeD@+3kXjhR*Mbpombf{&GK*jmPXKcPR+!AkCh^U;YeGA#yIH9Qoh-v&WJ|-b(c^Q!s5ittua{K)IIshwL`t6a7Qx;ATaDj^imfp~)HB z+h77z{#xJbgF=CV2j|ipN^u0!rd^c(d&YO_P39%@XY`e#wb$QHV(ahfze4bbT#v?C z5o=cz$J4Ot>2r)0^-30Przz!9;Raa<(KTF$`0hw?{kZO|f5_`iuIRg~OerQ~CU@;)^XAXbITjFYDFu(MB8;yRyN9IOuNoD}r2P+HF&04-Rbm zLKH867>g2uOP3vX`v9tlt90nV%0jj!;OE^ts3%PJhvg!2Du%z7ag`UdYvSieSDSS~ z4@9YQye?7=0E9IhxC%dl0T)8P1uM`w{~M`IY;2DLvK!@$);*7UnTsRrrkG-Ng}^Px#d@0tPNmjMnO~5zDIEG0 zcm)cr!%sk2E<)I#=WtoZkhK`=vii2xJ=8>WCNIse-DyN?>HJlz%{h$=dJRiF)h@JK zewiS^aQ!8q&H zlJ>a8l`F_8Db)pE(ceYvp(i+Lj4zZB&YQgfLG*taoNPpq2pU}slM z`Z-Y+=WzQoniIVd7(dIH{<)b(I#l8GZ^XEv2K!5P-{B|OB+ElUTp69*am0KEOxm^zlJmQ#VPuq1_EfwW{P>@ac1ixz z*2|#-p3Ur@VNy!a2N2XP_-F-j;_UFmjxFtMU%$<~4gYy3+!qEv9}OfZvDDwvg^h?` zM8VdI$z;(5(U#T63}NfZln1Hy&?f2@;WewF~-c)fQl>KhsHS6lh4{{;!Yt^rm# ze;%_EF;b+FmlnQ6&6#zsRFk`!pgM*|B)c@&t2wTQ9L*+9Q%_ey>SmMjnaC3+Z~aA_ zHrNO_!;6ePY7jq5>9Y3P9G(c1;*{kj4}JMV?__|${`EiQbpZ~RFF?`PxcC*vi#(^-X9 zjy0%&XH1`q#QOl=z3iYdDVE5n3c&v1sJ>}0n~x4V*AASpQ@2j9eD29^`Q>sgKdC|& zdcN1Y=~R~PnObZd(czmGxKUE9KCcm1r+oe9j-}Uv8Fcbf_ym}EhEeZd+ZqB5>Hq36>m($pAI_m52*7dtNej- zqEXX0`nAySvA3!5>1*ZvtUD0S_~O=Z5`PT^Ah#A5aL zwxQd<_kP`33Pi-2#xS{aoc4hTr#OtjvD?%I~qLU`Ur4pvFmXDkw zzpH|D>Kf$1M`t2QWp1K3C#EX)6nlt9i~0#!6mTeN6PH^v=l%g=|fBrWy(KH?3+B->|5&M)Db6f<8=z*`4E(@L7f zMj$pDG~d_iQqfeD13FttuhebX?-$&3I%ll?wV&9N@3o2 zNbqf)&hai>oas0z9zOh1s3P$Rpy~%P4p^~?{;@*Jgup$p%o5Nkb5F9FHvI;ZY%P=uc=r?qgyEudA2Poli?} z0mDAa66$@o3m(UhJyos8uQqKzguk{#$uj)B!Gmmyz|0<-7F}gm)I4-UtOh@J-A9&2 zou1Awc^ZeYQkHg#Ks|^@52qezMPt6E8xJt5kl98bNf}sJbl_xNCGeC|sIs%EBps-A zAq<7@P()q?Kqpu+E^OBNeXbqOikh7a;Agz#$w#tuPT@=#1T`V!sL1DT)aBH&8%yM- zy|4UkCUc5pPW8$OLo+u z4CXdgT{dQKK=L5wgR!1mVa4yh_FUmmOV4)lqt^OM4tm8y1H~jbMOsF|a_oM!*(j*62}E3|G3n#>~gXY0AEqo2?0g-u-* z+XJI%xI;tslXirTg&E&Q7balnXZMEC5#e_5Ojes1p9!jWk|cRe&q6TIT&UhMc=w}v zAiCsV6frv|K89#j;ocnF;Cv6n2%yCuQkwuV{^t4hn6~cr9(exh0{8*W!#3)*{4<{A z?#`?aHUl`u5I-Xi-$#G@1)DglyE>@*>eAC#deww5hv-w)xb<=%bRlsJi)TphEbqZ; z)RIdHxg%BgA^1ztD^vksBsZ6h`f^s+;cC~y8JP45!!tMar9SC4$%eM_SL$(Bmz|M@ z@^tg-_4G29jiV?;WI_d(=eoIBz9&$CU!PHBDm_cN|IAge9vMtDzO~p1LQAWf&Agr> zuzLUNW2aK!nbUNZw)z8QsrgoVsa98>L=V+~+2X%7(lXz^(-!M%g?I?bhqj)Lo-yTK zueD5EQUohqH+esxWp(|o$`0b{(vQ8Pm;7c2`GKSAUF;tP!IPuDQE%w&jJMsB%DcbF zj#^Xo6t?@Qnqh=k1jjYURHgXO@U+kE*szTP2 zSVKn1zMhGDHd+%vkxY7raqS3MI*~8H5|tfb>DlnuO@peo5}c37xJjj@J4zL9d)CBn zP%u=W##HBIK1!avU%^+W#IVNid7EbcGVkYC=hut5B$7x+c~YN~OxxxVQ7Un^(yE_U zi$1qy`;WJ{K2_X%cXhT?f*y>3JV4^*IBXN{<$W!ZSh=&N?OMZUq0VKi*ihb)Z+C3|7Brp^^8sAcyNPltceX$qpP2*|(Wegi$^!8eR zBiLys&DmdRFGgL>#mO760K_H_ifjGK<9va3u(j}s_%0m3n>})Qxy<>s6{CWrsH;X| z9ZOeMPO9L6<3Skz zaZ_l4s*J7~lQf5%mcF=};RV$M(>yAbKs#GT2eayrCdE^z8|;&TDlCg(^@s8wci%(YY| zM1wzB54gN#D)by@xGm@J*l{$WJa5%@r0;KvIqjb8{6)^N`&MJBh-*Oe)gG|^?5~F) z^@Lr!5~mF^+u^2A;0_gHy7D4!ZX9^U%~2fEAbXz$Er^7@u#k}p9S%uBlo)CvmVTec zU&{*sWuv~ybWa60~u4l8IoTM!V+Eo^acu zE5{=I;#o^vLI7_#u&$RyxiII1NicjukC4^SbYN3KKRJ1@-Yetu#mQazX2>Xh%5;w@ zcls?$8gR+1AN_%Zegd@S5PZPCbmV!o@QodH{K}WlcZjeqRTUkzX=Uzj^yTw&ZB`XZ z>cQZ}_k8NB3;*mBtn%4%s^40y)crzBTUCl9S^YREUBG&84^d*|GmpAj7AN4YF{JVeP$*6c&5>9mgB)N`0%VjpiE4b$G*KpnabvFCot>d3H z7HohUFvct*`@^LP1#(3KyXjJ#Z1iJ^g)5ZoG-NZ!!TIV@8N)|WkPOw&u=G_Sr}+Y2 z&-k2iHj9vGZ$-&==OJx|qV-%3m~JO%=@s?ZH|aVc1L**Z4xC4df4!))-n5yzW{Hdv zof8g>>Mcqld6WL;ec&YpGU_y5ve)8F7q|gYLE;zBXlH+0mq6x}x0KRbuPFBS^i+f* z$aIHCnx_$LYF4`6DRXI_pxH!cH3d-ASxX~l&a+|_b0m@5nI3q_u%z8zO&<&w>noxu zsrp`+B!vw}dyi>VF zcoHNU0IJ;3$qFk!t}hb>hQ&Sqb!XOS-QDLmkEFgVI*!0Xx+cStJ6vuEdl8lBG#TZ# zSEfIric9Uzd*3GuL+g_H_YJ=%Vh_?SN6H_yj2R5MB(unM&{Haj5hd0Byq1KXm%8of1D7myR)mC zm(J@M_(_6Pb^1JB^<@o?^6?5@K(i?D+JVzfj(1EJFF#V=mfueD$7g&XuqxRUKRY9? z*A5rT+Jnjm6qAk@n8(F)+hH!dE#o?|f&|6kLB2LjW04t==HZ-Dp$zt;!Nc6y*iT)4 zWi>0)&G~^fL$X1)qIM+TzA_bClv8k;-k9Ak@R*|qmof;*Ib)xrYtl-+g`cs8lJNy+s`>BXx&fIp2+f zTxQ=xEyi+wC+gGPoI$~uG2s<##4_RrryZBTpZK`IUQXzFpMvnjDe)$q7N^bm*5WVm zi~x;{Z1O)yCwI@#FAO}S{d&~y^v@ka17Ze(Z$CHL&P^j<$uLc%y`ocFm1oS@i|B2IfgqXiJf%@=Ec;On7QsLC} zoLR>TzwY#9`j{x7_CZuNUQK1pjuALx>8}qZ3of4B5ll>I+>)(?wrokp+LGwb$I-`}p3?Kx0Fs+kHM#8F3-e{f|xF&K~{S4uZQO`&Jh z3%`o-pkJ$n=?{46q}9dga!X$?ar)C*bT(v{Ku;nS<+$V7yRu;iB%_2?3HT1N#QTHo zEfIyjsRgB94JF<^CKFn=Ya~gYklFmMacyd~rWSqn`xt<^K)W2vg_V>?9Lq}5Yi|}h znKccKA8bKiIh8wc@k_CzmS`E}XNzYF(-D&B%YMpLr@2;*Ez^%fOG_DxL%>jjh|d$< z;)alWq$B%B;L%l!8G!e+UHbSz1>zE)5*T05t&roJQ!L&kG8zyR6at2*;tSKQZezRUTM|q2Kia6l2X|o4?@sG@K|eF$IkCUQkY7LJTlv(jC|V6Q3n~y-!+7{ z(ngNXE#Y2=z~YEZC?8rJv)sMHo0mJQ5XUF|Mu*HIWJ_a)AS^|`C5wMKb9}Aum3oLR zA^jpime135Z;Qs+S?QQyvlX)D3<50JYs?gn(ivNSyT@Ig?)OP1s3&Qs3z=vS?as>_ ztqU`pSo9u!i!da7oIn8>SMZ~;!IAm1h=&;^+kQv$t03XxB@-SvXbr&kcq*)mne)(Q$DSz)kq< zaH5*nNH>@?@U_$_?j~1i({SBSrF!6-oG_4!Bi?s3oP$TatCCaG;_`WrA2L!KuKeI! zy;WlGDhg7qVzGfEE(HCUGl0 zvmnrugHUAY;JiBKx23mvHrdZNlFoxNjMX6s94}0rsRvTzteOWhlj_LttS{ZhxZLA3 zXSIqu`Ya_R7f@b%3?)u~1iM2;l`5Gp*=?_0BIjT#A*;@Zonl-}|aKeXXsCs|B? z0TR^#&yKdnwyZ~@UUg`L0I$kRUbpxw@Yu2q{XzPR!u-^}YmPeAGp4)XBf3L%H4bZM zwLNMlS9MAQ*97vU6F+h>&%b7X_$^2Do1l}|~u9beX4h;2`ImiX1DGeydI~=@QKjfHWyr`h7J5Z^~IaKof zE{cIF(JwiZYMw&~_i0g0Re+E6Coz!kZAInO**=*|Vc18XHg%+4ab7M=PfQmD9_xk3 z`#du1)x$7+8r^IPG=RgK&~2hpW@a`9f|)~}#Y(zKJWP2+A)V4$fMhrT>hdNYmY)>; z+}XoM$Xo_owsj}=<{A_54z6NT*L5@ep%-T#f*I^p<9F4X#fz2EjTB+N;^ zT}otfEV{?X)fqBifb{zM>d#@V;ya!r@jTAwmURC}$V()lMv#SK^raa={DI%A4L}E_ znSw&{WN1poX*!(K4MnkVV?FS&?A-ikV#Pv8o!RKMn^gNYrNhzxGa!6!bwWhLA|pfc;!H6gapWYK|Ejx#kbiW@G**3t z)LE)AP3Gj1!;3x5NHW^|t;>*en`2V3bO-P;`nc$Zqoq9yjq`BGPIa>KrOX8q3PW9a zJ*b!5+HZBfM(MW>e%q&)-{-|6BoYxwaWmtgbcD<&{Y?G#<$Qz##)E(D*W)#Ss)S&M z;a=`9SK=RJc_T6yDdX12`Aq$^!y7<`aDIgD_ zZ*Id}HtOMwnm;~>8|x;<7wgJM3R={xVMYeA>~4RE8{mBXt;5-vQYPPdkDc@n=4X8V z{@8_3K|jsdfkA4<>BD)3$Njuse_t^Qjyqh9^iZjOLGhdIt^a1Ff8f0m2PPnb|b8{5^!{gGMj+>3| zeCWpaJ%V4JnoM4@Pal5f7QR?#^l2$kT*`}tXJH1Q|_sGb}iZdW+L0)I2>Uj1YSwU_78YqN6R(GccN4n&cp7qgxv&&hFn%+ z?U=GlEu&k09kBD{Py`pAd{Z%oPdXo@Dc3dvRF%{05xqdz`Wv74ONR8!33V7*wNhi( zl2<;-14W_aRUfafTFp>XuolmsJlCDk+22X|^G6SlOdVYsl$Qad>T%9FY&p03)~BrL z)Rb@9S&x_*Z-`V6Mj*RDWbX=uPj1 z#aOLjKB_8$AN45q+G>)#yGV%LXXcWG>Wn%#Sxf7IX#1S6ny-c-mO}SKLv|`XX=>n> zqgD!6j+`-BlVQF8<+yhjcfbRQUtefpRrQpWb|W%5RWgdTd;R;DfX|11?2zrd1QL2~ zMH_LqZfcDljJR^D-+YAOELp$RN#471&&iQwITiYVlb&H~z^@3-3|=r3P&Sot_1Kd5 zh_^qCN~vCywulB8EjDo;9_8gj&mlK@A7D9m#(E)I5AksY2e(nTHy-uT351q$(nQ?4 zF@Q>SH`s0YfUCPThh)AHBzP1dwe(M3oN`!TC@>Om11--H%kL*nj3EoV0M1WL5fCZV%iQkuxCcjcE2XByq6w(h6&PUBkwdV$=`c}<=o?(iv}LW>LPcS9~RwGFA4mB4fGr=N*OiNuvGpR*O{1v(~O+?6fT`emlpZU zS?8N*1Z_4p)x-iu6hdU^JN}fpXBDpnsFqur zJB0kTIcQmY6Xn%J^h;Om$%&Md{8gaP{xbfUBH0nkSO1dpj9qjBY?Xm|-m}L9%MN=1 zR2SAn&mD4;-wfGQUcnKgH6O2cPOV|z&*O`mmO#OdtCpPU?e|G3=^yBBF7eW!V;o-l zC3QXgpJEXHFQC5uL@2U|x-;|YwGw+JvrRTP`}%V4F2W0v2`B5rzc!el8g6}Cr`3Tb z%s&X@b{`Gig{(N(@-H7=x=E=X^d!U9FZdltw<^ws8YT|-HO0-%E&Xpr-&0{C`F?S* z%c@WQ;{*yNV83?9aZa0q|5AX)>Zs1InzomqoVs^DPD#4fso^TOOI)TGy=xY={<`AQ z5sl>>J!vtG-IGt%=((~eJgOf`ByOo&OFxBAHglRb_{AfFpn>#9h|%%tsW7By-v3s73GTF5>1M~9Hh z%7o*HFL%{AWH7+I8^flTd!>GPnc?2d&nXqx{n#|@Jm0|zS*hGQ%~9c`ZllwR3zoZJ z6d=3X2W2)%bq zf^IukDCHqs46hv%<-@6hy-L(3LF{U2>l$3+9pwC;?`6&f@kOQ!0t{hBa<49AieoH)9eX4hJ=5$L!A zT(%RrqyQ`4zNc0t@FT(CA6Wa4Tq`GR??B>Jl|g1s`xE~70paI0*|O37DZ?tGH7{}> zN+Opk@UqC%-l{W_Yr3Pib|}*~b#>huYqT|18)s|zXAS$baewA-;Y+VV!0oYo%^>A= zdB3N8tz9P>-T0QSZ3MdBVVp)F^yXq_v32^?&^pk~_a_CZTok4jekx{&zgH_`!$wpL zC!bb*veKV?IDq2IIM1>P{@c#cZ3*1P>*sSvtQ&BFsy%=zLfRev6g(#Ha`m5cVHMEv z9w9K;wXt`2P93c|3vU6RX$4HZ97RQ{vZ7;dHGF@gNgmSxgtEQHgqfr^*0haEDYXRt4W;if}*C15?ATWGalHMZoF8PK% zG)&d7wX{`^q#)2);VO+Jdr4NRaET<%tI4Ttuh+-t(XnEbQlbQ;;r!m{-h}i6iM$8G zjMPiI&_YFwJH{k+SgwiLDGo!8Ad6nLpDTggpd9s@{-+4`h&%kjKqc=pMa4dt$vGI4 z!Q@9@*e3sR4yxRYA<`El<5Z; zP2_kU*cV!ZIP1EN82>9WH~)o+=w7lx(kLVgsb%%?!kp34v?3o~xD@;Oa0^g-GLVk= z+s5`Z3Q6;X4rB6eysNUcXJP-KQkSB)xQW~C^($t%mr-=|XSU?&Ro1FcHw904xSG5= zf0@BB+A*x4%ZHMQz1WG9jw-c^_j=|X73G7M$%U0IDrz zNEDGSn-QJa1WDLM2d>sq`fgv~gf_Z5RWdKmJX}^m5Yas*Bq|btKUB-9c#0*!Fp9 zoBiAhZFW)gN`z~3(EbOZSJ~RsMuf&S+mhD8_@0iT z1LoBJem{x@eU#VYI;MflO$@yRDc@nM%~5uLIsslH@$?r!`e*iON|DW*nl#Y7PioH(p^s+@Do{ zBkQ)*09~k)ckHoi@#I+@P|jAS?sa?h)0&;~Z}2vDmI!5rbRw&((!$MCB$F=nTJop2upUr3O!P_&}>64rPq36;R zLvz=ebf1VwL$yHIcJ}fh*Hdv&r}bq=eGvb!eP-9K`V3N;sHw(~`d1{8&R4ub!^;Jh zIW6H%P~$tQubE^dMd^cGcf`U|;ud{mPUB0Gb$kjM6P1SFq(jKoC8}|6pIl?86|o66 z(Nae+Wi*E@(&Ng2ni57#Qco@WZ2p0NVxXtpL0!V~q%z38$2rf`c4Ns2@qn!PB-Oc{ z%7z#?5m8C%?W553CwwZsgp0c4xoPh8ZB$9y>&!yC)9o~n{~reY%yoypj26PRlv4%f zo&I7BAWDJbk=)KIN#_mds_4$64hr(cMt!5H`(wUyejMh2CqC{=ekSq|%p@&|qURKW+0*!o3)CFANrbI8LRAfpk5wB?T-Gy8Ek^q{(9uuJ($J>s8KdsC} zk{`zaj2NronFzA%yn&XWT&~GTDv>D|p;UAdbt8`l$bMJgoiwQJ*R!?$pBxjJBK49o zET(_w%K)TQq)1RKqd`V%f!F?%ybRSFy1yMykTqmXO|hh4<6N@sp{2b)k-(nfBv`&a z8&7SoI~?SC@6#STB`rh!43Iym7gBhS-@ilDixDD1{?cXP(q%=k1m-c=g zJ1PmTWooJ*WLTOBNz48+iFa*5Hrnqxq1qJ$RMBj=qw~TrQZ`uQdHR zB0^R!6SfHPzu?U{8m^2mA~Mq%O37u0VGJdG*-GiP*I0T`fZ&KS*4tXyFB6^HE`ANi z0_Vt?UF`u29aD!k3z*Yf^>BuZhZB?6YnM)A2O=`^e7#l<=<*~UZr2MWOT)6=*r|U% zlt&r&6*tk5KY!tZz)N1C;Nf*R%SVLja9ty+gXqZ1(-vIVXyW1)Wo-8jj6vfEDe0Uucm(^sB!GT z`w>p-GRhS_x7BF49Od&5JQQ*S3TlR!#F{7ef=h~dhReCeHFIU6$NwT(4(q!cBB45NKSKR*0iaXp4 z)zVeQKZVgb*JN~1VzP0JxSyyypjiQiW&3A>M?U<`_>iY@bX>XRc>K~rbJ`Ng*jvxC zpGk5iH(oP{3HTa)NoprM)Yt44Le|(byTwy1OM%{>UGzXK|F%9&xI;+kc-YGyB?Uo9 zR=u%47dZ!C%v^FMk46f?ubNShhXEaDxJ<++kF1-?Xh=H4muY2&oL78keq0M%E;?;# zRTb|lX~;fV{HBj+KGi7g&eX!^E1~!osRIu6cr4HbF7bc3D^y2zRcZ{mA zK4}te+MWp3;Mb9q;{L0OG5M8wJ<2uXu_S#?{@g`be%w*iQV=**p30M<>w9->)Of-- z6^$@a+~y0FJTB=0$JgL%H{&_z#{%MAo=e||YT}I_LA=HC@i8*wrz2_=6%NAvdJ+*e zxi`^ctGhxmPB~DCF+lhc`<2i4`L#e=hM`Qb#_1Qyjj3TWN=Kt{$=^$6e33mf@lJm{ zc(ysk3UERZ_d`iYGgjMY*B-?zxusS#9a6mCd>raH|6kNSC7-lrAPA%qwW&)aVs z)#Ul|F!b+uL;XL1L3PR9Cy}eBl8W!M8F)lCEUyWeNk_TuI3g~$*Y$UZ2*q#4kjmP& zVrs70Y{7Khs2@&5y+rA8KBfIkY3UUjvmkTPuk#&7+$h9Bpbck|7{` zotTlq!CX6}aJQS?w!Xd5{^dieZlTU&eq4PK@XF)-eY*7F;MXIPf>{iM36@dimvmlk z<7L3>2ZGK|DPN@4lare|-xT;Fl^2%snMsi!j;USKuY*TOZmudiKAQ69Yw2=WjV71+ zf*dZ6-+6{9a?+5u;8f|q_;s0M3dpnnW(mT#5D`=+3-#*THUcqGRcWu31( z0O$+m`aD=UPlZJpWV*lKdgFQ1J@O}NUst&Tm}N7f0yu2?u<1lfDPz>Xom2}Ui?x6A z?{>_oGDFOFXhyQA{5*;hK9V4r0A(Th6;^rK##(npp*6z&z^W28E_UzUgpN@nRAsw} znrqws2G{hEO#Ot~txB93oygFvU;cY$bU3fb*oXnYH9~kp^*E_bvi@t&%|CgmNapwcvk_7xO(qm#ik@^s)Yzln^PduRM+iZ^X&K= zybnH`4}p5dWbz8|b;3rq~E` z_Mirg7lon8{pFEu8|&63-Yxxz%(Fu-g4NvXqUJu67}GOLD5JB-k~|x^_QAgdi*L`* z%Aw7{WnMhJTct@C@N8m!&-OsX66JjwFU>b`DW!`yT4;H8hMm$=vWwPr(9xvN&N&`N zTgMN)Q~09*hfD4(n5J%>ch%!7JSEC{#E6JMt_dqw2-C&>TJ`3n4BIn5RrYrn z2UK@HnS^<;J2|mApDtoW#P>~zKKZf!Zog+W(ZA!ln>P=x^x;MneT|AUVnpjf#yX>_ zY5c)#BN3&zRi^QPm3;)5SCqXw>mTs}%-*0~yXkXqF*t)@Rw>BwY+sRM4nE%b9y4DU z9T`s2x#zui{)@iVz{WRvrt-}^f4sypufE*XKYaT9y+}^yR{nw-VO~0^re(^PElP-T zNFu4)&C%lwa}LsFzN=^oy6z~K~{{=GfMA@|Mawrk6PIB>=^7B#CwuWp&o0*4l zbZNo>yXJSr8Di4bc)!P#At#Vc&53opOzBWfbPTJ?!NHVn!7zllCa81=xp};zo>_bA z|5_4T0ogD+Xx7jwaOJa)7ZDkoSO(?Kf#BCuoC+=6n+oL*1|>@G=qpqyC1n$9#~-F! z8Y$w}@{g*|fYv@pDV~A(pv`iZ1J01$_LQ^C^^)S8AIg}QrdBVlLiW1H@0wZ~LMMq} zijd{H(SW~U6dP`y>xJnPo6W>b2R?VS$jPjazTeTf=_L9q3N&d2dif8}*0(7=sw*@1 z0yjxao^XF>o!*KRMV#*k0jst;>6I1so1K2b+*|j0HmV0iO82gMIf7l6{XW)~(Qu8B ztc@A#m($6wuzGE6f$U*b zZdc+7uO(`K@@lcZ0i@8WxJ4BvEbatYUfJh)_OLrrxvVv7>%ZnlbpFxcv|>z5lHd4_ zziKTKinaFr^K3H>y8oMRv*Y0b9dPUC69y_+z~Xy({?C}r-A?*S6e^_B8?VKe{Q?@( zn0R|39G8~9a1|*Mu94FtomQ?w3Hd-JsgY1OaFM9xVS zwI@}`%>b9kI9Wzr?tl=%?;t(d%jfbt-su=_#=#rx|F(vh_u_8Rpnx3O-!IPc?(f6P zsJ*&bbaT)_1TjfW;(XzedY*AG1oU{v&WsUd%soqAHMJwju)QBcv6|%K{FL?;L_eHD zx4j?bcYu_sY-3#TFcLFo$k6{x4jz6X4j18>O_O@hMq$T<4K^U8U~K{xqIfp@D3k0G zW~LorRumrQjdhW7QF$9a*%tBXP}X}m5U z%rc_}MwbPKaI8_-^FYe$Ru|-7a$FGKQye$%bkwqm@F#=rc6`kt=3QBNDe)&`J)gMg znA&{Z|KhUgQR8U$xBql!spBSCV&CNkh1-)XC%MC_%Zdxta&>FdNiS`{AR#Ju;u!L= zR*0BEJRyh8BEpi@&XtEat80ejUAAj{92AErKovf3QdLh2ip1T%OZ~>FEhrPG!@hoi z{pt&9722wg65WAg&lswg&To@1SaKyEsEp=o5y-Y8ED6J)gxhriO(n0GRlldiRw5lc z(v?N?a)tZsB$Wp?3;e~0L_2wqfR+r}aLx*x@$lIP;Y@QZ7;?^hLXBddCrQEk9sBDGwKPl-QURfN5H<6n{)ZeOj9`m@a1YXNI z4eXy3AGt@qacVv5KyK|%dhScpi?)1qa^E|+EHv( z-^;Z`HL@_PIyaTuzENIm!LqQW<(ou6!~@SZD-n=)%)5#QF0v-Q<7T;RyP?}JhXh@e zPjkGcV*x;9Jrm!F#c$ogMnkh>+J4!hW_1vcZ+hLcrSLm4xAr#!P)>>DS_DKB`OVDN zS_74>7TP4XMnE4b+ZA@p;j;G~A#xkHt~h1PjkboVGrDW<&I@#XhLyS+jYZqPTbVl* zsa-;C7BCy+aKL6==i7q@d4 z_YJ4TGs0bStnZDS4W%aXd?Kme3N}2JdSey2+$dBj>aw%=i}Y65r`P>1XG3Gp#labQ zp9egj$HpJ3#uEdjviPPSQwEpdzNrmxZ zmK?^j-(xFNd|y8f)ihV5eJUcP<1DQvkx*S94s4WM{|$;1U@-drh+yG6mn{nP>-`hS z@0qswzf0U{-^V7yuq@-tYW{2-(i>uNzgT7IpnmbfZatgJ6PwjonS{3R<_gX$h zJstj3e6AFdQ(Y8xfNkv9m*h9V;>PbCn<+;jTWO~~s(QY$UAWE^Ij#68_8)x?mrrr-J^3v^<&GB}lMn95K%k+0#ss3u?+A&c?174~B>+`ACw=BWg z_)>4CzVm@N)4phX5~}Y6+b{rn)XDXv+|6S5Y(OPj%~E~ax~aVR`lICkF1R!Gmrqz2 z#kcM=X7bPb?&48f^{Q0;q-L#TSu3RU(ki%Ugy z&g9-QIjb$mAmDC@PxMjCEuVTdYGEs*mbwwSDDpULy}UwhH?)c%if!D{zSR8B0f6q`h(_a7I5Eph`)=60qXnbT-#68+u@zxCpP}YuQQ~osespJ!$pNKq6jR4fFQv{a!D#-fki>0l9Zg`^(=-P{@?fR`_4P>-2a@j zvok$C)z#Hi)jicczoDGBryVJw?qmk&2UsM^@MZ#Aic^E;EWRX_5V9X)vYqI9M3g)Ssj<6eMhf@rq zQMRX-Y%-s#o5t!Al%5nnb~`JtD@GJh@_HhMI?|w$lvPma$^-X1turzw6oV8>C*GnS zQXc9$uv*hVUF$`N=r4}NhaM$xC-=1ESsQVQG>D;W2(@gZUb52x*ATT*g&kHN*E0R4$b z>kkx?0^JSU!_MhiOjJM!Mg?7wg!sB8@%5ragN|G-n`@i#DL%#c5-D4nPA?QFCNy%$op*xQ>f}i@?-Zy1TA|kraB?j6y*zw_Nkg9QW7w`HG zB$fFUyAH|{oIHxR^-{db0{67;Z$7Vp&S2j$%p1%fW_vk)o0E{DZc&b&F3tUnP|HdT zb?@~P;^?+-{PNu@`6k`C&3y53z}K{Ob=oG*52eklq=|C*5uY)Z@vW-#`gv8Aes*&* zlfS`ZekJi1sf2fv4ryBI)o60I+gSf$>mgL;+%muUBx}l2>qDl8?gPqc+$k%zdm8O} zpX9l7o73drU$Fc-8eh{Po8e|UlT_{$Z_?Y3?w5YyeC^o5Ty%rzXE5h}qZD6r?CL5$ znZ|gft*8~<$8j}RdX&$nZfjqH+mVtIS7RdIpcmhb#+Xd4$fo&*vZRdrm<)rX(Wu^P zCM1jaIy(BWyVIzPzL(N1At7c{-dQe!u`E8%hRcj_zOU;(B~r*=7-&HCW`kS@fneBQ ztY+ICQsFE%xi^KxtWSQ5f~Cdn)3lkQE5lkc8>)Dqq2 z)GQ)}=1bROGd@&j;*xEtjT^r$qFE3HcPT(e5+b(i;X#%tY5Zr}tIs!{;%`(vb)%E= zpen?$;qhZO2g`ZnXcwN`>Ad_@k4w#-;)y}8i7GR{ajdm$9{pLa@}A)0hCC*Qgyi$L z8f^-6#cpj19O5($X`^;zsIl2SD~$DOiP4Odh&b!?Y#dj7R!r5xGg-s}nb2UtDfw#f zo`^-Yyg-t8M_1j2)RJs2d+pZZ+j@o9}qhVI$!fE$YZe;pQrpR<^9xg2Fm=N?=?-MQIVFZ0WsYy`r~&-dWL zNpr_}tNp~qlP-d_IqXA0hu0gW9-g&6F|0y>aidh#KFYTXm@Ao_n2HVcF`w31E!e%) zN~)bg6u&)3!9p|dZ!Z-^a40-nm(8Sa^HFNqYN&$OJi(&7AH8tt_6t}sd-2KObeTw2 zg<+KO2ev~IBqYz+=dceIsRv%b_Pg4A#Ga-lmW1fO$jSeDQb?SGSIn{gZ4sfZu|>c< z<+N{R%&Vzb9{FR3DVeTrD+u%#wijh(a*Z2tQ{=h(ca|$3dY*)y6>EuOWKKvl$g(fg z&*Qa=&Q(Bvxr>VIaYnC)vX}-f;lG@!XwHdwYh5(GGKded6z*E=?e#^KluSmu@sfiWqdt1~kS0#Y&w7`-IqP9t)9z4XwbqPVFJ%S_ z3sf@WZDa41?P2q64&tMVDOtL@EU8IJdN|n@*xPtD{`7}ck@&>*>u-+Xg|U@2l_wG} zhX~rpmDBi{`&{L&jK@rd)xjT_S1pcczO7g+ww_6PfjT}m zSKRJ-^G*Enk;&9fPlr^@z-ZsGpeIznd`O6Yz9oSgQ#ean3*93{aFCFH?7(wt-LEg} z&Ots4=)oO7C9dSbmbbU{2;p3Ub>uJGZIhF3?6-)f>;!e8yP=l7Ob3iSt;{!gSIdy` zVkt3Yg_Ot#*RR&NYQKSBeLNSd(pSznfJ3~}IomCZTs;5IqPFrb?cQRs|RMjXih0HnDu1elJv7E%q2fL0dbW2$_cc( z_Pfiiu>E|41dZ{ErR_ae8D=UPLnRKKGBFldZi$PAACluhW=Y_qLfr~hn<{byH1(%M zPqRCbfJwe$Y5W=rszZ37p8cGc(I-<%JL?EO7-5oc{Nb+TY)wV;fZR=!lReiz?xvzU zv0iH6c4*~Y%Y*5a^9a9~^7?Wy@V>6EHCoToTh4>6RGtSXC`fk#*?RigfUy;8xdbl} zxzef-^gs)xWb16QnNq;i>q{{X0I_=#Uh~IdM#6 zP-0!1p@+>vY~;dn;!82=k3ESG^=xnV@un9`;h*<$FysaB&xCd8UkyD^vf04x|2k{C zfa)OzzBut)FXu|IRTh@JTGj7sFLQv%QhW9jO+-(lyJxIs5WVWUCYo+x%6i;H~&FqOBDl z2-cM?SC6as+z~Y61^5&`g1CjZI>efEDX$*8h%*tqm{UF=)MS1?Bgh}ZDCuqY-}tkD59%K%8(Q)w?ZEldfzZZtZBh zvT4NL+qi-C4^QMbFVpfrfPgOiRpL~ZdioXs_(_T4#@AP<(X}tt^KJfo5Qf91?W{LM zIXUA6Rs7+i>JnzIBwPQ_P1X0){U0*Zcbc&%-_b_X6p5zR5fMIJXBL&a@7}iwT?r+CDJh+f@NFf(uY+pc3b6px2rsPx;|5-Gj@4PFpSDgW@Y^)qh!H$ z?dn*Hj;-D^ma(_dhmCTMb94~;;-b0P#%8y?eo)|wFdU+yTDvmh8pfFW9*`0)y5A6n z3%jj+WceTt08HrE8a+NTmWF+&D?CpYcY8mau8fX~+U-DY7d!v{Wa~5xLCi<3Vq>nE zn41B;#akM|@9*Ns^~O4CwemH4pvI>Q>Dv--E7OSYb{}X<07PU}L3D%Zsvd$N{7oAB zrpyrSbr*Imh4TuwZt`>3m++3N@bOkTesRrDgWFicxFX85c88d2w0k zP^{t_uK?2CK@-8=y3%S-oreK0AyWk&>8=mk5mBTi>H5COAI8;2sII}DZ3jP*G(1o7w^dl8b`F2Z$Glkp%RaHQcp{FH~kobGXM_O!-%3|7YZj?Gp(cz?oL zs+P80Ola^cw{{(YufwttSeg8sKUr#WcVL*!MPgj1Z|SwPcOVoFVta<~J;VBTDP}b; zI!8aKN6mTbT^uOMg%AYa4Kaz3;r{xz|4HuW9|%DRfdN8T9Z!Lg<^yMdNh5hwp+^j$ zmg2iJ#;zt&HB~Y(kza&|-puf!J2?CEl6xqW3tIaLnZ$Q^#(#vP|0hcN1$DgAm+Hrg zqlu;ug<}=66{jA(dYE8zqVg%gP0_YZdJlS+uFv-~Y{{Jxm>@a#Yzw>+!-uo+U7vnJ zEIJMx`Q%~-K&|Ss@p~^fr${!8V-H}MRym>>Eg#mHkE!j%`qV_fcYEO#>JEv@k()P& ztY?4XA}vnRvsZ6Hp?chA%&`v^?ZW+E`#@wo-*##6%5J`+y5QHn(P- zfce*;F@Uq1W6n|(BX^zC^H3sSYGEonO5!0U{KbBws=-jk30L%{3cvrSEPwt$l{wk9 zYf{qyt%wJwvZ--L=W&sO5#$;+fNQ{J^`4nIzttohS70D&&B6^}IFhn(XJ;mF+<#kl z-Bq^!deOMb9lv+FqA}mSsYf>v5%QPzPX+I7`Ih* zvXHUpHzVCtQOGEQfa!eF@q%XK0%dZ2AlDU;8U6gZiv<;>o230fOuzId7J;n|8|7woJ2&*r|ARN(X=jvXDsrCAJe|yKka{{xi422p{np-4^sB4?UjEsrf4ud8QXE20#-O5FQ95;9*zEDk1Hj*bV8aL4ifN)YnVTU}iJ zVx4l6QrB8_K2~*W8717Pm3y$R(VLsNDDcW&nB%X#gg$vmVT zzmZnlx9;XVoX$v5RO(Ii;kH-MU@9VP{mZjwTS}@t_X-7G106lnKCC;A zKIvu-8lT*G(51chZuD|H_Gxk!=vLQm?w0ni&}?M)k%SbxJ-=K8cx#wex{N$tOw#ta zlXVzhw}ENl1{;>&j8hfr^6ss2>%%C@xN#S4q%ixo-`(8+?u{R(l65tLwt?7@m_NNL zs4S!smwpSu*!@;6wTOHVml=#gj&4jTkEZ@#txx@c$KblfW70+s@ zkfk_X+VK#Kamik@yAmKt>3lGQtoX942gOMGrI|ebz=gLHu}U)*<6!X1i8F;94Q*~E z6*P|n4wJ+G1*C9ONWTx!rt1Z*fc1M{5?XkEXK)X^T0WS=Dp6c`qnS^3&R}S(1Dtcv z`t%}-S#{&<#G_Zt`GzWsooj(ZlZlU}xoTpj>uVLp?l?T0Z&!WBe_p7TeI~BH5=^>I z271-)(di^zpZ0A&@+7)i!W*$L4(6~QJRyNHWMp>FMAhQ}TH)k0t4?YQzGCS54P?JS z)M6d0kr{^#)+De-VI*GjAsMU}05)v~E<~G{4}ZyO1#^W@JdQ6nj!A_u)dBcJ3oyJi z=~AcV>*P{96z_!@rq!SrgiI+IChk35MvSfAYT)rK7&i$S{sDpKojLTfb;+Jb`rZOG zdX4+qAiLBG764SwEJEy$C8H+L^{>+ykCURJD8F?kRg!B7%e#g=;ehd{+gt0z@?f5F z#H#;tqrI2+M8$Ay{*&ISfz6o-$V3bkKi^yP#PdjpRj9H@ptLqrN-M#Dm3Z4L*qxuU z2_|LjC1IU4EjWhf@H1C<(=4!?8fJ*mm;CY$Xx{LmY`0#;>ki#DedoL2!NhGOklD;# z*ibOlj4-{}aO9ddH@sFc&?SwSs$Q+;al( z*D2}(i!WBfuuzZV_aO&!sZy0aF69g^II$ydkDa32CtUKnLvauL>~j3*rdQkX@q(HU zo5ht(f+>-q?5Z>jwQS{v%CmKCFpUn@F)#BIZOwiMpd}M!u4Y;?h12Tsm1==tNkvSH zl5z3$kbH}Ru8APcz0A}^ySX&II_fWB-7_H^ZP;L+CYzi@|BHd#9>!u>?<>IfY-8g66kcpwv9 zbf1fQzHg?_r4xWrn0iVovX6nHHl&#y(&cV1+b5^Pjhg3+i$4xg@Mv4fR zsynBcN@cUO$V(t5w=4?!$3sx7z#c7+#SLq-`?Zo7@&FAR5O!GfC5+>5t~+>hsnIxE z!(OLl4O6S;7&mP6pNxDaCN=U*uitX4tbbqRd?~-EkRp3Y4Z%qj+~A9m$StMlr*3D zdJoHhp7j}QtV6AO)#HAx=tv=5!XzC|&+Hf2d`)^J?s$u@^F2pY!g^l4vmTb3Wx3wI z*uaI^JQkj0^0n2^-J4YlwEd{kC#F|CI;z>%c;|Z>R>y7u?x%LU(e;L-H|anAtoDn1 z-nGKS#^Sc%aixaU2vb7W%G47Dqr5)(xM4%OYaHxAYiUWpc#?P-K%weFw;2^kNsQRz z_mCd`8iz){SU<-g-0{^2%>8pvsgoxQZna|6USEE@`Bs2n;+}zFD{1;s%{MgZIBaC> zJZ4TpNq3x8;OgfUe}-KNL3e0>VX)zCcNa)bFHLg+jiS7oeItdcQj&c*oX6wAlX_W9 zgw=BW7{Nf>6T~IfJfWhd-^(pbxZY1I_gJq|T}z;)8&qZ=M*@RG!noqSC=RG@4+6Y- zfx9}ll;;VegJS{$=+ncK^H&O71h~fenp|GSlfueXu4IpFS@4Em8of8Ln0jTS(@s16 zqbCsQqrgu_Z$yq6WQNoaREpgOy2TlPxt7M}Sqx{}dx0pej+5oOr1_k9#)3-vcp%$h z?E*r-KuR-AMsOH@%8)pEr;|%lT1IkUQNyFk=EUOB;Y#5a6p#OmTK)Uje*V&Y#Trm> zYJiEP(S~L1p~UHj0BT`!f^w+VqQLt6FG|VIY}fBJ;#vl@Rb8GYJi)m?Z1&A=hh<3_ zc?T~z^o<$+s3=wC)A%bHzC_vG1danUrHMJRv)cj3qTzg^It;z5DxXL!#9+bZ-ImQc z;yz-MGC(H>W6#vSYFlz7mDIQp)4#aYyZJ0@J$nkL>*t8l?1)pIlJGk>?|CKEWUIAq zG6Go8#q08<@Z4imd&`B6{fa^R2Q;OvJIv0xcy%bVz1b|rF$q%2h=EtCo6|l#f4^^Q zbVkogJw!xn6(1CIWXNLHP5afId%Om(Hj5Sd?-Dq^VlKTEdKAE~2mBYY0tRX<-j_cv z$RErjeFx;RV6*Vz?6ZrDcCW(c z^b-u3@9oTWT;t#1c6|(2auT-^@juwF?npA)o8Jo>%G4ttTC7(4V1>j6)8(Epa-YH3nFc7xC){z9=q+ssVc75lt z;c$+F{DC+CDR?=G= zc*zHPI@U+XgC(W<5af0oIA+Q^_3?lqLVo$ZAHoNUF@iKO1N(I1;f>GDW6%(^{&REq zjtF)=+Z812wN~=cy8ifKaF4Z8MR*;!iaJhQPzdZbF3*nMcV99Ed1$ghd`}^xU{Uql zuPQ?OL)=N_XvZ~{V$-2gQ8GU0TmJ2c#wGE*ep5JQ0tC? z0ihc(3xe`qQ$QSU$gjlw%r`yA4c*SGHnf1$?7c2SZu5u|iMu(>g3jqUC!aU!w9wPU zJB_a1;d%~40Y8`;I12^S19c7>l0RW$c|(QyI{NX`HL{hzs|Aa#zzzT6izX?>6eAn+ z?M38Ref0-R>!8(9;YpDH=Dlr!Kymg%Y`EuN!6#o}x>|-O@fzntVHDtG8*I=&v@yZK zPVL7>V8jK_A~D{so*pXF5;77}5>n!Vnm+DW9}H5(1L=ds*tv@f8vEG0yE^D0ab}(< zq=$-!kGne)C7`1HgNm`ckF%@Ce@KfOVomf1Es2vDJ3m(sXY#+Dy*pCV(*tYg>Vd@Q zyLw}xkKAx68-owocwlu;opSkX_pq>F&skaCG&);OUKYJZtCfgWLt(abEf` z!WD}|doz7M^LF(|?*4w_yHkBi7!?f0Xo~X&IVE&_TpcNn{N!k-dOsM`g*f~JXI3_l zJm}~k*-~u)Y5$%QBS?fJ?BED{IKlyraD*d}aD)>a;S5K(z!9!+gc}@z0(rh~bhNba zZyV=I3%!}ln^Uo0d+!XPqO4%_Q2n7&pdT%CLT+HdJB;e^|A1kLU3%y{LiDs?w+l`U z9Uu5f;CmaGVv!g0?d*~6KN?{d$jE|l1QJm9K8)r|IJA?g-j&|6fFT_|JLS|C+@e>4e?) z*JP~c1&+U_`nft{T{!=m?t*l6cEKL{>jgUpGVj`+7*iKJM^8UZ7f?qex4OMIFb4-L zS7_E z6u19ZtMb2B3CK>s7NQP08R$p70?hO8R1L~Z>kGLN1Oi3}H5b&v^w0;jD3$;Xhz^v} z^zFwF{-Ga?9x`|e$gUux0$YeW#08mwh2Pys51A6h-0xBrKpt`M`$=jy$U+4b`Oj7r zNIEn-UX~gGxmP;GH@^xbB>g9al=yEn_`5TuX8}~dZ&Z*_|EWs$Z>#^)E&q20{G;M~ zKwTl4(2oMr5=aC7APx#hF(8r9vx43CytHJAL5c=#RFeNg!9!$dp|XGWDPn({1avb! z8?@U8?byMNffi!!KPJWj(cy%4Twuq*#0~Z)-yA07wLz!<)3?b&W0$`(da;)}>LllM z%t>0>QBKP4s2w%LGyjij{_v?}m+CD+{)6g9hd|@Vg9>hCa+(?L0`kwp4|Zi!2hYDI z!>K6t|N8Koum*RRSC^=<6D4?PRBh#3lZth5ogfk{e#z-Od@} z=Z}2@*~3E;Cl??I4yd*D)pblMAd!<<0srI;sy78B@V_v~SO{4(*nY4gB`qN(^Iy`f BD>(oF literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/Surface_with_11_different_DrawableContainer.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.02/Surface_with_11_different_DrawableContainer.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..e42413f5532f49fae1f236faecf96c14e9b14cb4 GIT binary patch literal 43887 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�M88z;g( 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/ArrowContainer_lt_100_200_wh_400_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/ArrowContainer_lt_100_200_wh_400_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..57d0f2013bde6a9f535f15c4cf38ad9aa992a2e5 GIT binary patch literal 29125 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 F{vXC&E|&lR literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/EllipseContainer_lt_200_200_wh_400_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/EllipseContainer_lt_200_200_wh_400_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..891c81c111d9c009f61848eb885142b0244bc692 GIT binary patch literal 28861 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 J%OIqW{U1UN?#}=K literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/FreehandContainer_with_4_points.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/FreehandContainer_with_4_points.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..1ab987eca0f06cda5a1760bbb2763756cdd92293 GIT binary patch literal 29451 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 LhlE80h0py5cBB(E literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..cb84932a0c83b0faea504f8ba59b095d1be98853 GIT binary patch literal 29686 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 Ce%>(v literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/RectangleContainer_lt_100_200_wh_150_80.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/RectangleContainer_lt_100_200_wh_150_80.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..221305d71df3015ad4d18b9e8944d7c5332d33f3 GIT binary patch literal 28865 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 ArvLx| literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..f81c966a39b88fa10f02c207b018795ece5dcbae GIT binary patch literal 29733 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/StepLabelContainer_lt_200_200_lt_500_300.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/StepLabelContainer_lt_200_200_lt_500_300.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..9150681a4159d7e9c851d7abc195583eeae92170 GIT binary patch literal 29245 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 z z8hQuM+xLzd{irBa#nZSe8NNiBodk}3( zI}r{n=)!e5QdsU$s@-KmM}Nbh{R0})*6e3yoxR$X*xqau;g|#|rNzK2)lF$1p1Ew##QUp?Yq4CuQrP0`|c1pzG5!E6?zoFuM7Mau^a|!EZ&h;vL6)Y%@!#lm21y5zHii*~pC z=k((YneT1Qv|Zxf;C6frQ*;!!6!G8Rr{+L1+@0S88p^~YA6l$dbAOq{Nt3)*vcWG6 z8BF!3<>oR}iuJ{*(oH!zE`85Wj4$PcFO=-DIRbP`YMgWI9{%k^;6y=R{ikmnFVt@^)>AEd80CEmPLDrNJq{ZmulE6n6x-eoUPO)rbr40FlF${4#ve! zc`}$uP`B~_?J4GR80ICtXq29%+?p=zqf6DjG~eFFdDP=)RB@HlPxBSF*5|ZyB~mu_ zU+TlQ>#u3P2n2|W0kn%csWtA4NwAj{*S*ht+bvCX^WWYrWED-c=oJIHB+qBn3PVvxw6^J50mbOl&I^I-pVR)gITEm+7ykCI8|5e{|`?cA;Mm6S$vG+^X;~U>WR0mgodKN4y(mI zHGvm>pr>O!q#RgMss}-C$AW#Ptdk%286f4B-uoeapco^_12eEs#~8#q$Fm(l!d|PzAFb++9Rk-_DVB%Tg0pVNi1YG+Jw|2OQG4!5q@WH=)Qj(W$S7D? zHT#>g(B4b#q%yR_Doc^cUaL-+a*|rHEp9 zeXgyL9ILPTU||)sG9o+y%E#Z`5(pG$Kfs22{uO-k1*W5Ea00J>E(Asa4z|Ds{X-iQ z931)Xw(jDBMm~1# zF7~=8oT;Z9%0t=1$K9QY5)jk;Nle|=8})CJqJ|hm{3Nx_7vcoQ*3ZSmiTrPC=Z@0w z^uXG>c%U$PF5Xz^i#J?KM&PS99$1|d$K8-fbz6HkP+ZFe@liE^wqP9O(wieBbD3Y2n|tvM#?e%eh4TM8VZWH5==Bp5xbCKNknAGv}}Q&L|frXY7GrPuSX%dDrs9m^j-yc=~BLgQ}sp z)$F{1k=SF&ig(h}-2sI;;;i(>u{7t!y4a%TUKGY`s$gWpdwJ3$dD=yv~Pg@NQkv+aPXk&x%5 zLw<9)KsJ(p*2@3X$NoW!zk64D7C`j-Mg>XppQ&K~W!(?{t9AcT>s_Ft5J~7q0qF?Dsk$~qo(l#+6g zm9#x#OAWES|7Rut()W=y(i=hkgK9{JMB~Wg4Q?fJo+<7;>aQacb|n*g&tJ3QR1{+W z(tRMB-@AKy9&l57UXal6fn@iueK7?jZnE4VZ$U2rB~Vccs0GORLQvM;ANi16$@%-B zEQs`Wc}Udcd{HRtCml%o{|Oyxh%>f7w+90BVxAbt5mI^BqEXajkICTX;pyi=K11yd zIzAMno%FP{P z3P?N<&kVrPZh?QW!C@3oJ;~xlfE@-s9Rtnn;?$7T{xBx`JM$rHftI_i6U5G+y9kI2 w3P|o``VwG=T1!t&+k^rVJed>lPu`%~Q$S+>g+InY$i%_+Lvtjh5Rym!1JWHiLI3~& literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/Surface_with_14_different_DrawableContainer.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/Surface_with_14_different_DrawableContainer.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..ba84c39a6ab08e933fc267b71795883f2ed7f334 GIT binary patch literal 54822 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/TextContainer_lt_300_200_wh_300_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_1.03/TextContainer_lt_300_200_wh_300_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..e8fe6a9a9da21fe7bb50171f2e0c5693e9fd93dc GIT binary patch literal 29425 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ArrowContainer_lt_100_200_wh_400_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ArrowContainer_lt_100_200_wh_400_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..216b94584781b0e2bb9b1907bced3e34875c9b27 GIT binary patch literal 54241 zcmdqIXH-*B_cs_i(h-y*RTL}~k=~n9M0)QaD!q3J2_2*>QlyF?y^3@Q(iNmg@1cht zNC*%@k~cojJF{lZr}?k>GHX6$o!oQpIrrSX&u(Y`_IrI@4O%L8DgXdLtEKtO5C9RC(vBTwqUY2`*xlmomp|7 zhDE!U)Qk2>h4gfO3Q+^GoX^_dMHAIkZ$Q{zseiuhR=1CRaUikRJQMfo*`~9&}ZYlKqh`i zxNYlWgj5EBVn0N6gu>-RP#?br{7B&ya{c^`#9~T|m(VJ@`%qBvdhYyo9d;xu zK?Hw=+fZ(pPCyr;7s3YO@K*&JM__LaHp30sZz#`c8ISR*f-L@qkb|`!l2(C95M9Ul zfaeJ`JULZawo8ioYYD5EZaBNSr==pI<(#h5u0Mab)fyUxDD09xQSjxyrVb^~)KbLJ z+p-3Sr9^sLtM?fc_ekQeyP;C`3IeDmFQHq7=+9XRLEwwpS4+nO)I*b&Kty4RbQ$*f zxc25dGzykDj_-v;?0E!shK>9@_k4QTe)l;!!|2RD;Cq|2zI;{%mD>s_1Jw#T)XNHO zoye(t9t}rL{-S=)sk|XsG3x?ggC-WP+5$H;>>khoAKO+3-KI#ONFW(V9*EfZx}kiU zxuNXy%IAx8v$Q^k3CDvJVLIlaTNDXWEEEaUgvSC1j};M!6gu;6^|A&#P^Hvb<_@_9 zwX)RP2lUExtmnN2u(`lGT5cC!ow|mG9R+2P@3dHODmTX-DXso*YRwRBoe*B5St`31 zz@+?Oc^e+KKMb=x1R!Qlx(ZlBipoiTg*hx}4DXSr{Vf28XrG>fIov){Hc1J_B>+2g z_s0_NG9{?5bUZ<^(7w$XnNh%`>p|`4_Bnb{>Hzt7k>pn{ z`%nOa#hUyLwQp)Y&rM z8FnJ3l{f}?+BTY7_;?j}B$pt9U3|QNE?-O`P(7FEnco}0XIc`?i`ID~%F0xj4S_tp zv55h`e|(XZR*577SVBj|_72T8|K-Kr_MZ5ZY}NY3hY9P%ITJW$Q4jJXjYL4Rk5!q! zF$}u1A%?GXWjAra*mMBLM8lnNgst_M(g*!T^TTEtJ{uZwJdYho##wS2vxTD4cMpK8APw2CcQN;l#}+F=uSF%?omzj z4EaxL{zHPv8hY#uP`pWpu*iw}BRVSxCVMVT@Rry04sK&g>GW0GbtrDWb|WAB+Nt3T z6Zom`3?Ze40_`}R*SL1rIN0SetdfZTuCztgD!CRi)Nqrh{jR3tp>hAvoJI5uYyW?~ zhqG5Tj0QUC?V}j7Z9ZrQ4h6T-hSc`>InEkRyg%cFLK-g*yT{^AzlD&EKHR|gwD?tA z?&Ig}6#eeiYFj=dOv|b~9Ymlw;d>-$cvj}I5j7S^{e847JAS6I={o^+xSu`rpD~Do zrNlWra%2RqC03i*7dm;Ch!fBr7{aYmlZVnlF5S&3anz{u<7uG~Z@68!CAM`2?El4XX3G#MWPvzmA;f&cdv zHMS5m&_aW@js~P=_rzjG^`w8@f*ln3i+b5>YPDZ`?d` zzZrp_T7?zYr_QUp=PGd5f`(|w?%1`MQZOk?dWF`?r_4)sDAm_oD@|=2v>S45!pl?c zr#x)70*?0NyahNY%^oB))!6?!`L;moJ@WB@A147{!$Bz_I z<933DyIiSJlP#IUAQ75?>lFCBh5M3NSENVr==d!WNOM;(O62Ha;kT0+sEeX*_f;}> z00zcwZ}fq~yc*!t<5>>x>}?$HPV{?pyDD{tqP)Vf2nc-12DpOSUGMpeq;x~I2lE?1unjeNL%+g& zEGl%oNPhLvD_L{+{Sh7DjpLYPS3ZVdjyLN2=pIK6SvcjJSbO)7y{WhVe8;oZVGY%? z?5iyUFE37cWEXne2Fn~tp_0kTM{y`W5I1^)9`>TYO*g301Iv&q;5LU#U)@%2HR^;T zmlE~xiCLD^kNWEWlz}(CZG0R5!BWz3wpaLa>7t=N+4;(tbE@$2ucvHyqt3p^fKTX^ z?~w+!`hx=ovn{gY;5so0hZ>M4&Vk$RbC41&7|RgVgh)3Ic)F+uqknOSJI0bKMGh)+ z6~?bJdMBoQ4lFa{sS`W#2kknN@|$`=Bup5Z8pTSMJjb}Egmx5pD`B_!uw?D>eEf*xUT9E8(|w;6oz~g@fN63P&D^@M;(f&VTsXRDc!E{} z%q)sk%$=!u#^sSOeU^QOGKe--L*X``al6H-nLROksS4-w!)F2o!C&(R-`$XMk(GGx z(&=+qA?V#&n7Gw}Xt*~lfqH1aqm=mv*FSS8%)+q8mj)4GiA&EEp`qE#F$)sOh_R_W z*u>CGl>tMD_pdF7Kzpf)BcvfzTlQSqHqbWpWrW+WC__p({9^gY}t z?!mbQBw6@jnO{&wP8WA1kpG;0v0Gp+Dyv zms!8)akjFzJH7tkw1073s9nPw?fCgg+m)ZM{4(TvE79=OGChDxyAQf56(cG{mV zOvVn;60c%@Y;VSc4D*7}O0e~+%yBmqWOHyFiJ{-P{*G?j=mPtiv0d(u_nzXMeZI7M zhJ;R}-sRjp6l-RZpq>)}7hWM5o@IjIyI2znhGrGeH4pf~BRDs#SeE_=S=tpjDMl8G zE8j6lXU7zr`6378rF z;a1yLnm5>eipsL~)slhFT6uA1mn~R&5k=2UCRO5enG0kbhTxJ^@NuWgSv9*zEh_P_ z8$8CaxfnCtn{rFx@Ka1m@4)BYe#H4@GWLyF%q7Ss_#&tb2J$}ar=T+}{2gCJ)G;25#XoRQCDe)1k1I{9{ zzw)roiP4a`_iBb6uSvCF2Ts9dRqnOTc31^ANp$nJDi8>FXs!538@=t2)!k$aTpKqD z+NM}-?AZr=tZP|psdD?$EEx@Tn16f5SXpR+gw&;iZNC+c@AoQX*!okR%kaZCI@8-dqjn8_`M`eIfvTyUz1W(9wqrHEuHCUOUE?R zPVoIN=#E+pDbh+6T{hP~s~!<;`QarMqT-bcL^Rf_6&=y;#j$U`@pn=2JT%S=Ty%M( zqfSMxL$tM#C?X7#KwSiHeb5*VIYVhq?F#h%px_F&UqhWyJFF7ypwtt+#-;*d%AnEx zO0e*2=2sg*#4Iert27z!MiDlCRP#QpW>31#55d9L4%QN_S=y6LP3+f!u=#y5x9;X_wX9jn43qM}2W(NR5js&Jem1&(J97CZfG^_c2VS%PS6F|sG z4~1C(CHHM*N|ryxH%#(0kk!+3d^*}#E$4(=cK8W3`V6G5%=V{)?dt| z>MWB>otXnSe0o-fUF8hFgrT)pW}@{qD|1a5IFRGdBfjpxT#Pfw9h9&I{D!|XJWz{B zAr|Q2IpU_uHKBdUAs$}J7NB8&4Dx#kgFokub(FZ>><82()>tjzjGo+%JnUYQ3d{|e zNG-8d8gi`udslqQpC3#dmf~@4+(-Gk8kUkV_xG~`BuLyAu#PF)W43g`8PB;+o5zOe z^d$Qk1aPgP#ruvcH*LV;cHrv*4w5_;byVAz3f73Ho_0CSCK7VomyJ

m3^C;3L2 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'Zk_i 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/EllipseContainer_lt_200_200_wh_400_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/EllipseContainer_lt_200_200_wh_400_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..5e755c23d5de50ff8bbe4ef68e78bd1a588b4608 GIT binary patch literal 56855 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 Gzz_hsRG@hP literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/FreehandContainer_with_4_points.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/FreehandContainer_with_4_points.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..67d94346733639242c12a7caafcccb10e8d983da GIT binary patch literal 53013 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
gxWRL{N$a;gM=>Edm1 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/HighlightContainer_TextFilter_lt_310_70_wh_195_60.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..e142bd608726295a33712ed6ebc84f76dd4956de GIT binary patch literal 51532 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/IconContainer_lt_400_200_wh_32_32.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/IconContainer_lt_400_200_wh_32_32.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..05420a4830cf208893da4989491cb89306d6ea3c GIT binary patch literal 53595 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 z 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ImageContainer_lt_300_200_wh_100_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ImageContainer_lt_300_200_wh_100_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..e9ad02c27770f8422989ab7fe95e95d83daa0b49 GIT binary patch literal 85986 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 D*n-^- literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/LineContainer_lt_200_200_w_400.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/LineContainer_lt_200_200_w_400.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..ca3b761d565932770f718ab08e69536283b4683f GIT binary patch literal 52992 zcmdpdXH-)`8)g700s;!sq$w5-b8u{MOx@pr72RRBSm_VULznNB81)o z1c(qJKp>%okg)Ol_Uzfe`)AMD{gE@dH+OPp-uIb#+cR(VbTqEfa?%0-fNPr1pBexF z6np>xSsD!$>5j?0E0UzaIlHhU|97k2|~;5hwp3)hxka!5tm z>bx?29_^_sn*3wBxiQl2_v)oxOuG~qA`iK#^Y$c0hU{V(lNys78L8J89A(@2x!4`y z`Qk%%3}Q&BRSd%T7*E{6)93KSz~x$*ppgI3yX(K%K`J& zgP)xX{9v`6+&38S7fw!<)sxn?o0hE} z9NGW5<8BZ5K`z&i&A(Ta zs*7tia|lH?^nWc3xA=F5Gx?SpJ>S1?C!fill3D}j|6a;F{vW&|>Hq7lhID+xTz)S> z%b?+m%Po=agZ?O)43fnB?Q$#tiw*Wq%;_*|F^qNnM`z{#B+2lS)I+-O-&e_Z|1U}= z#132M{H`{%K(Mu^>)U3W^E>BOFRq~cyPEIE0be?nE-r=~psTe{JR>g4qc+Q(=7*&j zyKRqtXATNoQ9j){K(`%TscZ^ixXBYIsioE|nVV=Lx|@v2VM_vrv$JzB8Zo4tg;~Hy8>D3vCP@-iUK_6}BO4Uq?1W zwu4=*M0-10&X&FRd9qhu!$zU>9_af6bwUQO0Fzd=41BlV_Y6*du4H{*f=6Rpd)tDgmFceVxabKh zTHu6r_-5$)l6O6W>w~Ksi4NW%|HihU(8e~|e~(%33h$F1Q!uGT)&iFdyD>2eqg$4T zJ!J$uLH;PY|HuXMu z&uiuz>&)_ZQdgPmNW z_zB}2*DR_3ue3N+UJn2s1JUPOo`YGJ0_gcZX<*m-m!5hC;S*NVNAT-)t0)ApwR)l5 z=|JKi${u$l-zpTbA(nd%vPGPh?ShRwHAre7Bf;-+ zJo{a5q+RmR15%v{m7`)BD!})b(H6?mh!D``FL&TEv_ObL{~~Yd%j3wG@sso@KWgN)^Q^|6ie#xs7a~1h zju6F94|bK#;}5*!8irkE3zl3gtt)+_fxKAGk7XORz-7bklO|}^CT-jk+5CnFN6fLSC6YHXeca8_nZLwKz0>L zQ>wH@u}J@f20h*Z8ELCLT{F4N!wlf6q1TfF_k*MC78d_IVe>LdmfeTdII&*I`Xae! zVBr26k(;(SXy`BJlpg__?|%XwlT6F`zs3GvY2Q*%ZWgT04=P&k2XFoInd;up;9WSq z?Pm-2(>mOOgo1ENu0sK;LAp8Nlb5e5&wc>GUUtE**Ev+~I|B6K9RF)vh~rD80L&lR z*G5&~(0q$s;i{s8xXaT)hk2GlK1lHV(1tF7ce^JzRkj&@Z??N$^d_`-*n&w|nd0Xw zdcGY65(a(&9^WEO64n&x{$|%;`h&NSJlLd#Nf8vpI?SZ2dU*lSl)A0>LjoPBR+zp+ z0A5h+i~jHZcU0*4lCqmUw?8}JsikjrDYtekoa{UQQdl|+z&m^(r-3<+?mNHZ=3O@0 zJ@aW%Dp-_X*%J>S!Lj$i+i<;b?}q5lB;OXJ?qh1vv1TfV`3KU@y5{c#)bWmc7W|(xEw3I7FamzY+1?zd;?*pH$gvI7Y~ca zHZMQ3+RkTS*dt5>9)Vsqu57rU%t}(w;2UjBYdk5R#EahKJzqTu<9pV_z!$h0>ksQG(sD{m}uIRgv|HL^z& zPu?5q$d!Q$&*TFTDl~jh#jeI69Mn@t`49oUS$G*?^Qiay!Pr1O=Ad&vVm)pnCc;z0 z{NNqx^V32K8p=7LXwen_2dINbRUXKtSmKhPJxfG6nt`O=+540NwAmMg4mg)$Jn%9CVwUpf zS)W8*1PiSl`f_}4@arWGyUDzQ0O_5d8!V#Zic{dnV^G%IK%II!mp(CqN`uI7#Na>UQ@udI)jDPKn9XO?NP=MXON?l1!Yw-pc&#gtr4R?S z73jSvqyq8|^Fl<&DbcvOy}>Qy9C0znXF8UQU73jJ`bB`^2cZq$lEeK14-X?6s!8Uo ztrqus^eNdZ((CEGJp`4{OGXR#APnImDfU}oyXgIg5zr=DkKBS4v+kqK+Cia9?D$5q zE!>**0^uy!HXX5Q*nJqWClaC21ysNx?e*SY1g&$~)1PqxLFW64U!|i@xIxQQ|`D(e1UiHo81rF z>cy-(PvC7OL8wbh7!IPC+3Oc-Zh2#VCDvWrO2bnuvKhBCpX08+lQw!S6O1pRRoG_F z7@8af_~Q54vZOd;<5~fjKk2%x8oXit9DMtosJe`8Mx`S?4y$b9PyW=Jmk~#k8l$c? zSw89IhB5vAnZX-xA5g7oG_?S!nD(te>tZd`^pEJ3JMH4IXjSGn0u)l7t`0zK>03}@VBmSGn3@ZEN{Q8 z3V7^mYJFx0#N;uD^Cq=Yp4^1;27e2OUUtrKs>xR;twnVQgI|_e2+Kx%j*X&{&$Id)FBxv7XjPG=<(^C-Y zyjP_Uh$VVm*bls`9MOzO-IJ@NkV}-1vZ%iMM41_uh(Ht=<5P~o7sCZY?um#{DUO>e z?1#zDJ2QpJgyC!CtN1^gh{SM%yg(cfxjvc&bwBP!3_<6V@IK*-Xa0vo$hRJP@UioH zP(%gE^XlnV`m6CF1$4pzdz%yIo(a(<1k>EniU>I(R#DKv_<-SQK$eWtRIGkJ^%D8> zFpB7~eD4S&Y=!2#QBBW~n<~;C3wn8e<8n^PSEM)|o6rWOb#lZ}={)wzOx&{ixr1SZf8EUdI( z47++?aN_7*q+Y%)n+-0j*sTLFgjS$sbEah;g&|H)KaH_$-~-ls-~|QvzD8zVS+g+p zeWu~f*RIBX@9RY~wB@o*q&F8HpPgHAt1JL z8(eQ6q;$K9p?Z_=n&Z(;lG;oVvZYrYz?agy?sJy;)dEMu_q`E(R`Vs(QE+-PDMkQd z&8*X2?xhjxd;t!ZYKFhyR>?UpO^$Ja&)^dTvD%f$XgeJG#QjdeX;4Ml%PZL{@vH$jy{?FwGI zN6_*uOI24BJJR$M-@>n2S+xgA80}^}o%lewBCDR7(cleEQyV0s^ zbKBxP_1Eg>a2*kZjUQ5u%d?k1fWIIQ;ugytQ{nd^&u9-XUd!poy;)Ei_w)4+7vSr7O9DVf?V3#wK|8LReb zC?qzymCtAUg;|M@!b5>nHkE~}JRk<=A=EmiK=O#+3gaKGZ#@stUb9m6+M};Htj0GV zib{oOBO~0pgL&P87S*}nu?OwCea^MsPxWu<6n;Eg%?{zk8v{Dfy?B!V8eUcv8n)jhSB>*Dur)LD{MuRsO_z5!Z6huTr&(AX#ls&_!8x^r zdyx}@ndEvc^lY<1fgj(~QSNq2*#7VZGl+b`eUoHcOL4rZCQ$L?G~@uUFPj!l?MZ>%ABgC#jM+D(D)t1baqq^mizWnBQ;5<4m1mkC?ht=Udr#*CrUNwwoGjJ5*;_)X#KgiNu4`)K%}Itr&~Nb3e&h3W)H^Vfwv$ zJ+yq24FKPZ!{ID!h2UGP3WQ+`csye$6fxZ_M943xr>QT~)y(_4$oU}BM<(N|29%t? z-3Z-t0{C{$aGR}5_65y@zq8ygx3kX{;S1I$$pRX#IE(Px8)|+U?dcMSGPX9NZ@_y6_cI-HWA< zz6Z5lm%(>Lv~&fb7&kz_0^jq0Y3!-OmAIkQshM&_F)~uLv*;j6WqwtGRcoZ53GDqI z6HrUd`MixN76w%qkgu{YVD_S7a#=lVS=r1FArhw0gZM}A$!rHgVdwI{>D$O zHz{~(_9vhxTM9#{bn0MyLvRvlB7q{SFD zxC4yjE)R!!MW1NYTpuapWR|ZOCao+G`E!{$9+kfn=JgL&Zz4BLtn=Fa#-By2d3dmm z|5c!$J^O6?3*GGNEG1e4LP9!en1cT4O(@c*v7F%FqKM951Dn8a-uE|pvdiFQJGA3` z<#Wgt@wpL7*-ORcXZ5t4g}BWX3Yb5ui@H%5PpdxBT<_+0+%l*``4+c|z_OuGTc;jd z!iF{`S{h%fTrPNkl;Y)LoJlbry)MsA)x3SGo=huMTun!ijQa%?9W$>AF3I^W9%2&a zamax=p14x2EUKSf9uoqVz6MWr7S?-jF~6@z^V?kvmoigiB*QHYgxh3u^QbJGuq+EI z&V|v_bkS@5#sXbLemIxPtxgrfOin1O=Gma$YdR+ehhM`R304@4Oc^3SGMkz@r^p!f z`qG!aMXLBtang-8SGlKpDzEWA ztGEqxDVC-1y+t!PpJkzXPo`>sNPX#6wdWMpxE14Q-!bxczIqbE&Lhh(|FV`Fk~@n} z!ba5WRrhnYBv~n70}gurVl!&$IymY1c2h5oHDS+VcrR9ulyFu!=PEbljuED;5AmNZ z0L5t#_xZZVOiAuD6@~-kKgEZ+rk6@-U0HLlDqMjEcT>5 zpbKu6R{Zv9fa?1Awrt5A{fhOJSJp-AuL|e+jG);nusCuoEnk4M3$12jeB^zRS?8}? zu6gB;={Y*(KMh8j!ov{eLLi)LHH4RO^%s!3YOmGhi9Q1(AJ_CUsJ{1Bi#LmhL4r4J zk7SfqN#1oP%$74t)lQg3+Q_`F>bD#XF<#`pVBk;JXoGr*cmwqki-(16%yhvWx;0z~ zmR)Q=$K}_UK;t4#WA_hYrMtP1bT`l$I2b~mgEKga%E?e8QgT^kA-u#VrW!lYv!IMyAYLJcUp~7ez5&lIrcLTX$cn! zA_arjfqGtMfOVzMS&WsrT2N}u2xeuB%EuB8Hf)N*e)~Tow@wyI{)jD0VDGRG^-2gPt0_Wt%J_i z+L2@hDmH~p8^M{7YOz~cT02qFXUf6p=4ww`ATADrjn}idx611Ogq1rqtPhz;c`xvh zPc!f-KK(|li-EnR_8oF6wJ&E?>GX;ojG_Jt1LVd>53Cjhneyp!G8Q_k5M!4P80MO*$7GN#}BxS)^-FW~KJ$S%>;wni|e9`4A7 z5sD@Zij+Sc?>7yQh@Q^^{dD$<>d@Z0~3lh7NXh% zm;jMN=gUz8M{Nq#%Kac7@AirH-YV;m{ps|*`dB-g+T7Db!iy^GSwnd{NysyH#;A?# zpFlb?*TeH(S0bx)q}7{6r_F9uJtW+Yhu>8^^+EnuSNg_L$$|nN+romh@a?iJhTqd3 z!oGm@?TKS&D4iJ#d)52lhG?R|a(;F7DR$D?EFu6|>lxb+d?oFC-S;$ZGgCCkw(ugw zHHF-#C0yj^VKB?AfW74A+fi+1w#6NZA6*}ldJXrg%aw%@8)TWs;!@V0+A|~s1;zIn zm@jxgjJ;+UXpv0WwYjc*dT5`F#*eyMHtJ$tKO9AUb=9vBGiSIlFUZ4G)uB_+jsR3%M#hE`3G2(b+0lNr};x0!iZO4Sm|I} z1KHhKi$Bow=PpZw-MLIN)ijjI}#YOXRK~db?D#`~d zmFM} z1<_*rBg+~lbqAUYky`Q7`|6z zn{>V-BJ+ZETW_Ebwa9H;*5?De|bd z^TM2CY+LDapvjTrI8qaFR<2O2Q=FqYGNj!C0c%a(l5ww)BkE3JRFkBeztE=jUFhy)$<90jk2@@&ozjZXsNKG<#&R{jYEC4+m4} zF}qn;9oI3Uc*2!~HmRr4!fzC*@|R43jxl}GE>q2TtR=PjHJIrhS*bj{u7#1DfZai- z@m3$v)s!<^A$$WoT@;5+#=JSI&68nq|p3?!rniBC(I!|vD0TH@j0jibSxA(L)oASncg|sz@c*-+s{|TI?WYV9~h^q zuz8dFEHg69=mCS$QjT#bRJie>()|&O%;`u<=!h2XO_GgN;$@l zx`75dsj9-}E59X`Ln*h(KE^OUDa8r26f8eo7hDIeq`NWl%}%UJk|mEO#i(A}f#$Pe z5-!UjN4(QGV9F1ZYh8-9oMdX&$I9ZbOiO-(_#cVHxRN4?dvh@|e{^%}qet)%N4U4Z z-|tf>fSQC*j{afMcUjTm*N99@FF}#svyB@Bxg7P*7ZtcQsn}cR;0BNBfvdC0BnRFS znBZ!LN}q6LFe*$!Ji%1y$CQiKo3n?5cI6`{-gH^S_p;+2OAcE+Ty?9g{LF&?vdVM# z_HcH^qF>L-%VOtx+(z0c$s9-bYkAiaMs^7#=PxL)c}?rVzMDDiGEN?q^JRO(-XDjT zO#N*L6q6*1ROt*%4~Jk+UA-|gJSsa3f3>yShE&C>=B~$B1k`<*yCaf5vmS>KIO+KX z>Ynh(3==;)0-cBaCvWF{=jD=q_c@m*SuA#DDd(z#Fj?#e+>-nKD)>PIwW7|Ka5Jx6 z!yi9iX>ATzA|7Xl0E%@dem!x(zHT+HcwO}VEW|b2hMH;bl2t0Q*;FHjx^z(a{xnmr zv@u&u`EAKA20mVbf~&&N*FPqdU8K^zPBfDtqwZ&T+>?OrZtwWvQR+*Jom1u*)~c>S zJcbwmDBcn}*dM%ze~AKHJ*&fQQs>pp(0DD*&h zz>aG6h>bXNw(gdFVllbpsQCFApptt1IhiuP*ZUo$jTj1$;0{_+tL18U=LDVXT(2w+k4*-K9X9p8c?=VKQZG4fs$QGVl@WJ zDc(+-ZdBrp2eZ(gT)g46G-n(bN#QJYFansnKls~ng^5^~HBuP-W8h}>_EF(mbPFr} zoL;R2!SsqCb3rkg&+b3A2Ymp#i+m)`6Zv0dj2 zFv;pJy)hmA@#fdEV6{Bgu+v;s4^`>I=X&g^qc7>gB6bp*22Tjb;u6UWr|ApFZ(GIB z#S;MErWO^5b$@fOry|TN=zig1L{T~@@kl-P6jXNHLq&=1H_NZXNKVUD_NX@S+{g>w z#MpARqvS7!Z@_Ezx6a#)iVKu)4iq3Jzmjq_>Q9OEOgTW4=?AVh(l0}={q();1iC1T zyuPlYe8?ylZ*E()Jzfyeocd%O_1*EmIx#0ag?BsNH=e3Yn@$c4!(LE4C-`qK=mZC8 zjA&+rsSxja!e#sQjA^_>r;eIuUl+!$Qn;^IC2e8Tb}Zw*IQ-y`zpgqbt{{c7sx3(FXlr#&+?xd(oVYkN7+W;`Qsh-*t&~;=%8ps{bFh~<@vG^ zTDMP#wZ`iaa#GwMk=f_uT;@#{3-@TzIWg@WH#%E1WNk+@DtdyRZ*^Y1ju#|FMiYyQ z9~9~wS>J$z8ajS`p-kh_rHvpJ2s8MlX9v=e+3M_NTY?41K5@(Bydn9GbCM#|ntHdK z^zwmO7UACMRqj~`DYxL#w#;0GCK|rufxu}#uH()*d6j4eD-wHQ_6t?odf-O&d*&z8 zLz|sb0f5Rv;%^A<@$vH)(?KeHl)uh{MntOurW261xjNGc(#zW=2NyVHGtZlzn zSuFKO6BOb;JuJc5t|j%yy=(syKz(dPPqz>zy5iZm^<&#?oniMOQ|IRz@;LDe?>u-Z z3h+&y{Z9+IWWAZ!$Ahh28BM!H7|8*ETr`QZ_#P9rrPQW}(h6ts`V-}g) zz%(V@O&Kpy_tl&1PZMO7mA)#9s$Bel3YNlfK8yF^`hzyiABFMUk$Vp?m?zc^{q;R; znG*P?xI5Hoy2SL>szbM+r#c6cv+qW=qsdHJ!Y$)ir!9kUH01n%akdZc$!b6&`UONG zi34?*SGF+^>nY#hbO|xJ>2g(jy1iQYCE*X~H!!luOTM3b9o%DVcx!)m>Vuq!j0kNY z3#RJSWuJyX%H((2{a{{!71~(`Jblpp<22{TPS=ky2&~+B_DC?2X#@4u2Dvak8)$*D zW4z)^3zT!Qs1;iW)xV;DQ=J!gE? z+QF8$)aBOJb(J8ZdJETBDJJ0vbi1Cmgp?8Niymy>QTW=3yU8}cqo%E@C?X@|-(8EQ zhu>6Y7Wi(84URsLWwgv?q1*|Hh*HzBq)8tHbZ}y&QJJ zv#1>G=zc}K(^DzVpsvG&vAc!BbJ$xL%X$<)u3XBt!%4f13xg$frEHBvA*eD48)#$Y zCrlHzxKo^hI4*PBlB?OC9yi4RKF$~TU|&~S1+uja8r=G4I6qL(*j#q_Cp=^Tj#A`Q z(aGwbkMYJ!Gl;x1ayLb7seNQy6S!goOTNvC_?E2!D26=Y{^>CM+s$8qeAYt#ZGGl97k#4e}_Q_5FQpSIWGxIb;1K;ui(MGh19d5pG6`C$w z>_j8)xYqt>#W3=T_I{2aE}TYn#n0yV&WE4GeX|Bz^ zpdvX<(07X#4|?qjh?|Y7h7qkLXi++;!T7W-F$^eh*C?*n^+^0POCS>}`g+{>Lg^Kj zr>ON9SLvfeUYN1s<$0z9qWm!B>O^<}lfD#efNlEhb*+cF5P}1TB;uQA`*jlkqzu{*%4Ms` zq9#8J!OFFzk`|p$k4H^ekx6NeM#O{F2O{uTRXTQyHjB($J)B>;-pcRwAa-eit7Bhw zpl=*n6;ajYx|r`qZXndLlsl)Qiraq-QwTtHMLZ|k%7bXIl20Aj{Ht+2Vfk9k_-7<><0yEN0PBTjkFe@6->{Se;tR`q{(?r=XOmr*mHuetCsEfRVuB=Iz z#J$Sl9}Mu1V(2=$RiVs}7h!#>qKd*~IA`2FdS6^Qn$YX5v8bB!p}&Gu79&n&wXu?d z`n}CWOaCi%xrlp;@8j35)16!;YYzd^26O@8T<5PjRA_!4A2MmsIoO&|nlqU!kxRKm z=&;Nx3GX~R$MC9Ejg$*!jo2-fCjMJimU znm1c%q&x%j@vJI(g|Hy&-sP)8f$JR68P4dWhjxYwWs4>R?yFold0d$2&3eN7t+j<= zK(y{9_NYU)+~L}v^Nawdhi@Y42-$b@dhnJ7W9O?rB5z@dq+p~#L(19d)3@``LC5aS zc(IT3p}l*H-&ip*@TL;QwunCoxost6Pp4m#oXI^#veHMd!i2-9<)0t}k5yFb7;aiM z01s0OgbJC}G~UQRH27JA4vBg{kzub?)7H5#wd`UR6>39vh2_c)nn|=sGPrVRggVZR z_MYUuk`);!gWaDyv_}C^49yCu!y4TC?1jqVDI%bx37#(EYNNSce;}Wv-h$hHks=p9 z!=h;6Dsb2uY-1>lExSCMnz)_j%%P&vUNz5~O5LhKFjwVGPQ92I#{}v|B~4~mT(5B# z{=VWz+lT9{aIFe=E;l9_tzz`l{W>^7v>G498bsK;gx3#@D*d8`Mk?To0+s49@nJ37m#AG z(s0epIH-<8>W`#M=Z-2T`)6@mwqYYIF2Q|~L{*$OrDi&p`G#gD$76aWB3;P;nI0mO zN<*h8fU+v+`o;#x8KoH^Mf){x0lR5#8_-r5jVq{cWqTzC1@y-??nC+^hpNd}1kbf< z>aMvA9bV6(mU=Qfm;r?)jDKo|m8)1pylD-1bQk$oQTKM?mORT9T%8B=T%Yn<_Ls$_ zp3$iIR@h83Pwr$^jcRe1B1YPt%3(ZH#7Bpz9`pEM3R3@T3> zmv{W`G9afUEx2iAO7NoLI3%E;lTZM8j?A3QOPbkkQtfyzh9Z>jj5U96`}J3xNZv)RaWyK`xdVSP!0Ra zmMX*IqH+xoh?hO|Q{DKZySByvjLQ#-qGnUuuQ5guCr(p(C&ncr?MAUsmcmP!?dWG@ zN#y=D92?#uXDr_ri5?PqYg^GAPt2BBkGcJ*$k=C(O0%N!?7!>T*mHXmj%z= zElEC%>^>I}hrkz7>GHBFKn_5I_CM@p4MXUx`_jMP!{Z?Jwu`)1d~?zUPi>FQLpW7r zFT=J^r;?e;eW%eM$tCa!{Sv5Gx5~n@$o;2%m#r$4Z)qDP9J~JYBkhzmjNsD+MJ6le zvszy-Cj}4@DeC~y8<_D2V->8FdoP1@acR)ARnH3TI%P((4%ZbqFE1m=WV!wt$!iFgr-+RX7)pVp7cp7RZyh{J02M?`&jX@oxi1YXY*4}1 zSjJId8fWZMJ7#bS8W#g&nGuB9gV>>^B+#UH$r8}+Ib4(K8Gz!-%vemvWCr6fth94$ ziuZ2aDBz1LX=&A&kUTn%q=QdJfuB0B@>!AM-#T^9zPn^sM7tZy&Nk40v} z3f1vC_*JHT97v6tat3B96(gw76OLHp?(ALfny!!g5WRzDI1!2y-DhvQ7B5x(OJCqM zN2^A7TT3VQ@)vxmquhDChJg=9EN_tS0g$&|r5v0crrO@xX)`&E z6f>@~8mjOxGBWaD5&o0n?j=(8KA+U=i8{R+=n(U!7Mkk6!87}kiIm|+Hdob;`;*g* z;ip1Sy$T2_Cb2VBrC5aVgiKKZG`Lq`jbDA7@HOlvZv`{|It9&>y;~MZ_=rlJVM?$;$BA1ayv8A zrdD31mJ+=fg?qfe(D9hPoyO2HpuX;EK%Mp)L7DbC{Yu)aVWHe##fheYkEq$4_d6$l zBzdYbv$?qnu+*=zI^D)ozhUq!pVaXGTM8XVK@QZ|m1Wl1?cs*9r9MNH1<~BF7*AC) zq4?}7^`yzhc9i@$_la}>z*Tw-@KMiDTsBYatN?7=D+A|UUN6@iUGvU}UM=XE7Cf3r zb=lVS9?f~Td8VzWH(12`Q~%X~9%HvOV*l`qkRs0})vR6?yg|D9} zfu)tb<6%KVuGj`c{u_=(*Szs&Z2`R>=nsy62isrvGmjxqegiz=Qom9dJw?#8^Ze@9 zh6lE2MEo(%W+Uyr&juO>W>$R?KHPtDh)+?IpjQvtSYVf?UAo)uc z+vY~+7tMiJ{Y)#HxJ%~(QHoc~JlgC}qk3;CJn-<6qLuMdKCo8!b$x^?;iyh;S|`Y> zQ+2R61$J-g`0aN1>peI=Wr)_-7$<4d_pgr?QeU+wa&#CtaEZE9~)Xj~0jp4Ax^jC;eQ{9NNi z(_P?H24)jp9<*KSxtUCU-go`ss2?m4)P-k8(e+P+B@}92=Y}Tr}ZP;CeDE zP0GO|EenOAaf*s!q?j=;;;ISwe$M>fXtK1c@c+FNg49JYZ%9u&i5>fOgT#bjH;b@U zBr!NCrhR4LU_a0hhcnARUTrWB=_JGSJ1vop(jXGu{g=~pVE0yzJ5^@SW~Qad7VzLZ z1qBwl{q{kD01$3$YHe%#X#{=l?Ob*IE$mmqh%irw^$For&t)YlW$M!K4G> zVS%9IS<@`oXJ{aav&*WhbUgDNwdG1UKi&-QA+fxvwpuh{7no5|(KhB$Wzty*iuzmB z`0b%v-j77OcE8=Ygg4j^d`I1N)#p$trI-->nrBdB+2-}ot9?B_>KFLew^! zm5(Z}v)zL^dbaXwfqVlGSJ=_ypaL96I`y{Hpma3^q_oEQ*uys9tT)fIHlgIkZ~tgDZ#a#Nc9| zA#N91cb6_LUAv!<0euZ_W7d>ZMa)mkW%qs2L>vFfXVsYzBu3z9|2-^&($Rzs3oUQx zZsTKtO*pDyfI$cf1=oYmNzyk9PiRl!T8~C&X0BhxibQMV3`rNY@`>EizvV+Zmr(y` z_>c|AhWaXfR|Iy?jT5u?)KeF%o${TDf)kd2&PMJ7VRqsD`G1b&_kEG@+c$q- z<^Ff1b9>Ix+qy+@Ysl9z-FUNLEY)m=dcr(kn zSp+P+*o42fdawN+pq!wl=N%w_p}Kns|^g3iFi> znzzA5)7kfDa!OB&4|qw#NjciaCUq(lu)WFcXA6W+gJ~B*;VIER51EF8i?$~#2xKR! zRbhWS)!$ll&&)hxygl>$$NYWCb*;iIy$O~-H*yNg0t~v?k;wHAuOmIjs8nS&>&se2 z$FoYGiMIgy^J~k?xd*DY?j19>@KmNrj0mW#DXL8K(&n;w!S>G>27>>PINQQ>uWJ%| zX(V~y)w_Q@)pb!gZP@Sr&W23oM|Y*kWVotDeeA!ZovPxz+Y(z~kJ(c2Y@xr}a&x<- zky%cPwbD+zg8f(yewY$iQzNwRo)RNjU&$QtsZ~(w9%!}ZAj~kC39ajCa{gPg@LfGA zMd`ukIB zT~;SmAhA4Pi*j<|`seGdQ;Oue7m7F(yX$-M0I=wOvxN6TK34OO_Am9lrf!ov@y*>Q zG4?KqZ~8U}7Ha;VaOXUWFWnSxZ0OSJoz0TzZ%e`F8XI^IR}8N)jOtgbLb97Lj^}NG z4fJOP+frQB18$Gf7=yl_{6cQF@PeW39#12=oh|9p&udHXzg`yjjiwO8gnPP}BiB`o;n zFXfm+4lSBx0|U*F5p+|N_;%q1zO{7tHDHQfKsyyGH$rFR$$w*V=02|~tu{OXAmOz) zE*AXtoITq&m`qwa;EPxe+rz7RAe;c2U0YRJ8%nngM(Ph=#{hCqdw$|`8bs85tup74 zQh^}5s6>?)Vw){sXScF!CN;+9IkuH(AxCa*IE!+gSE-Tjd;; zD)h6^3L0$^gqQZmk@=kn7c~}H>@lBcjeeKfZ7Ie(%OkHj+o!edw<{N~ z#x=9>NiC&3gg;j{5O{bCt7QT zczbAr$DXb>msZZ*8OhDomrccfpw3^o9y~*15o~#`A12@ul3@d5{e54RB>2_~IW=7? zk&%HPvSDv9;Zh#ylKJGGIpe)957*R#CGMqU$nplu>cn~H%x$)?dXANU?{&A(c>E8N z+3bOZn^5u*_um*X@khHz%)zZfZ3%{)q_Rz14?UfGFmrY55?#vWMc#*KPh|@>eAC{k z!1i}1zz3sWbU$2B6ijs72o@7;w60+;rh9}sOnQm-5sQyY)eX9q;OUR{P!ZDbNfdM5 zx$ANe3Z7iS&GmS+#Q4f#Gj~G3Yu-4|52uC2D&s58v}r{X`KQCKJ9+u&P#cAD=dYDI z7WWyi;g0O_cd{7oPRzX$;yusY8-)iOcG!;<(^Lc};L5{*q)Fi9c7e~|ayVNG`5-e&+2q$3E3R8fiu zSm-T?N|7!KNL5jKZy}Hnkg8M#0qFtCDBSS(?&1Vur@VX#?cG^0}SF zwA3;5EN_vzvTxeO?U*-_PTo4azhiIW7AqWiGJ%Fmc^qoI8+(O#UL=^q>Q|qcRGBjuF zAzS*En=WvedaQRZqIUHVGN0&3#jHN@DvCkVC=>lKE;>U6q>jl8)>!Vb7uix2Yx)*d zHc^+Z>Q@(0yS_bIJ1p+P0lix}e46v?+bAl`>OJ%pN2N~q-;Sw7v3{@;ZtBOHNNUC2 z;$=FsBbK52=$<4nj8oZ{%s~FFS4Ndf(6-ABwF0&VXJ;q21>Mw!9Cc^W)Gkkkj7IIG zt<+YTC6!6sZBK5a&A<0(%kfjRUr?RU=(iccU-p7316H#Vx{JQ_`MYnm2>c%@o>n*~ zX-8_oio<4Ztz+Y)B0B>0u+J&0VQmwxNjeh0_BHhHwh20~Nv@=Uau)Ro@h_`%8{eYZnpAqPKFEePjdtkh zqk38{w@5gfhsaaTA4`T@l8l9kBdb!kVi-b&q7G=Fg6xC+qVzYQw;Y!-0d)-ZEIjec{qcOr24F99MyqHd8^J zy5-FX+zXc{OgGJwqcq}e?O#f3nwx~^9pBw*U_v;nb3BV!zsIJ9km9`ZAr8>DDg64H zZQufQj4?bWG|;HGU9KpqhB}3{V#a4{kKjmO&qtY4TguFpoD>kb6ejO*uF$)+s!)lB z>NRxA<4FKo>x6@DLXIWgz0R85mD&|OcWlY_R9G~9g9{3ZEa%Q}NuH};z2;W_Ai*;g0YuYvaF4cUKw8+dKE0i`ld6p!k5s^Z_Hkdo4+Z(a18tES=rC?{w#r$Wx;(&QRlsr^# z3#nUTz@HF(OGQ5gxvwelV5JlZzZdok?2Cn58_W6KVpBBa0dp|~7r(b7tgKYlIX_nX z$^zNN)V(0Fic^<0!L|Bf_jA4Y>1!QZUvYI~Q3x1P1yjMH$~72L7!FUMC;csHY+!!B z5z^UYq?mp89!h9M;{(Y9*@n6MZ$1|`#OX40QKN!b*B;$XeRCatXKR#{D%3HP-x;h; zk}ijYP9^T@4XcyOo`lHrZU>Xv7nw$6ao`q$54-g`AnN(ypiZ`$DeWz z_r+nHl)8-?A>K1;sq(faYW?x*6|@QIrFC_+=LnpHJ4e12{0Al5;ceFB5g;0NEVriH z`GM{xabB4KiRYAj_athb1zMbZ;<%^x?N&woHl6$<-B?TpH| z&33gU4FOd5=CcWCeCF56rG*V%uPdJ7`(>Z>VJGFibYY>4)(5aD!wR}?o8%;-6u5G4r<_OW>V-#8hWS&+ zOu1HESLKC{k|G%54kAS_fArh<)>Og;sk}qO6V5I4g{xYG#L0)KdTbK?d^ry+9m&JD z*kA>EPv-*7bT=ZLhAERn#w_o#GG_~Zq4%9vRVIl`3a`^;9eQ|AVi0z1>~}OT{~psX z>QXJBOTGxR^!@?7&h>sCz2{NEvbtowvM0&0v7W7#agGg&_M@$^Zutm0>gl%o+9ta1&us3f05eB`bgq{|&RP$)7HtOv1~!Yh^)Qmw+Rt5v+k7s|yPxCb9%z99Wn z?B7GeqPvDErC?4I3Gh1f3ak3DHK34X3;ww8>iXn{I-DrU1^gwY<6z$+sBU%_5Z@}} zZs+z^v*1WJQeUDbN_7!3kMef2xb}q9&47Ue`2FQh96$vZTKm+ zoRBfSqM3!PXwgYwzcT?g3?>=mHuupmo_D5CLyR+V|0k199B)7p)f)=Tm##m%L9qw; z{Gyt#DXp@YvixFHO^S+p(E*^E1V*Pow!5V0J7bCJU<&mYcq+%-G+fuJaV(H=&!GnS zUhbe6C9U%a3-77mxk;&U4@`qSuo+!G$u-AT9QV@LobX;Zuu*;j+#P$(7O^#KS$v6J z@jzthtt$6%V}s&{JqU2kre5_Fe6BOO~*LQbHiSiYcgmBt-{<>;X6xGqbFO+cvViss)55)s2C^ME5}d0#Cn+1JFdiYJH=m1){U& zmuZX;9B&e=y~`x>l$Y)*SE-Q%F@6I!IHE7ka|6wY40r~>lMs0qt8>y6VC9ySj&&kz z2H3wVLodGu@iJsv8Ol#)<;7b*VJZ-}Gr%YF8$n|W#)vW6?wJ=Mu0Tnta*fFK(%;*5 zA2I`r_x{%3wiGZ?e_RA131X*BGGV0j{`P!g2o@CHV0ZSLkt<_M(_ zW&e`WCeAU03|~Lj%XkE+k=TEf`t|7efoRRb=a1dx; zk6S$kOI|dE1Pl>143ml`&czV-cV$#$sjtL!Pilg3DemoleEm+n7Zi%XFCK`P$EKMy z66PhY1BZXG%9T3P$Ll-k`M;Dd{GV&^{>P;`fU;QnuisTu#NX7tOQKmzYW#^QbnavR zn9p({nez>xrWPB-%Rz1KZW8M=>%SC<{IBo+|EE)T zMEwDwN6zM70_mn4eg{*{nW0?9DIR_5&0SKH@*6e(XXUJ|UBHHSG%SC>I@K1!x?Y5G z8Wf!p2O{Ed88AdF{3Mh)c??nS#i-KB>@v;S2nh^`B7x)>(dyX`0Ygj%bczRm?s%v8 z;TPwYFR;{|jM^7-dLKthO&E3ajctq)2TapF;_&EHzdQIJx*P2k$+#D9K${I@^nX=` z!n2|kYiQ{9ClROZJAjS;o}%qvMa(B5!9aql`MoOFGi?NMP%R9#J(mPK?$5ZD`Z~>f z`fWhZb>LZTeSDadzLfC1BId}*wuxyhw}}Bmi~2i}R?jr$*6X$bNk_ZKXJ+5l&>Z?& zCK55TOiXRKP2hKzDdx}K7qC7txoJLM3qG~ki+l(dt@%Pjc`jUh^$oSCV6MdOzBiEW z>45I+s$muc8q0jw>mh%3cc@=*b)lx^i5DOauzev`hIxU9fc>qzlj?HMCgZ|W(~$XR zdBv(pDon!2-^{|OwEgE3Kwe4umJV=E-_DMte=qD^)Z7j=ui8)T={kYT07Y)sXADM( zI$e+O$=&md>m22xb@7VVUDE*blf6jXBG26nsG}P1{bCy;2EsQ2E|QXEy5W$pn6GR`Vz^zq&_U}&#gXr23X(y8h@2^q>@T2I0n9Vh8{{0edWy#OyY^*+} z?Z3B^e=PVbw7)B7C>O2o_=xJ7>v1Qr3w-AMKSdi%$)gs)=P8?uphQf<_s7YKwf?nb zx#!B;;@tRPsQe`bz(M%O#gJc2X;8XbBu!6zm&+H|0FPj6ea9gN>35AN3n%k$8*$5! zRu+pF7I$9!^H{)`(*`6-Z!@reU=~~$daqLQsGQ}nRPh7g%2lR7Fj`WDni}+?@_>y$ zZ;sgdB~bj;jHpX1eg*JBJot4uTl2;A>mO|4^$Q37}a!umiNuajZ)g<^} zNLZWMNqUkiqnDACR(YR(FI4x%ktR@?ACUP{B>Z|0|ioPme${K)ZP7h^+w96F|42 z1>(ZM|Nr}Rf&X7H`N)e(Q9ycn8gNBKx}|3#rU3~w^SO56Vh(S8VlSpZ=8?w$t*w@r zm464M^5Gu|>uAIuEux{}OaxAMcynfRIR5V@Itp&YygLP_hpy{#VI^Is2H+{DO_yP` zg`=dW!=_{I(+O$IE@n>y+aND{o4H{fD?b*?tbA*Fcb{INOnNR(zkUC0v3{^)&w`_a z*k1E*Rc^Bs#L3|th*=FqjCddRwv+=7}THuFrn!3ehE)tC*hc4o+EZZVs?bFm?OYusqH> zu1+|=DMhm1>@W^28xY2#FJQ$G^#sd`DjCm}lGb?a%BnNM*YyWEE3-hF_sc`6p-496 zG49f)@~bCYNknmK;f^Zsd@HDrjK(m9%FsqOta`b5{1V;H5g?`KAIpK+uH6CV5jHZB zyBD4MJU%F5p3MVxn9Vz#>=HJNiBjMr%okWIq2CY79|HQMjN~GIG|Vs|hg6rw3xy;>NP*6oB3Meonwq)a z;hZq$%ez;`m_Q!=03Tr82H7^<6NlO=S|;ts%whLud_^=yc0d*&JtN1M;%h$9tZ;r?R=W;E<5=Fz~{=j6S zZl>=Ws4?0fx=C?vP4iB)vRhJ1Dl1a&HDFNhQq4<@m;cTn_SP|TkDHo6X^&gVfMtl8H$0y+9N;l*TNe)EoK;coq4x%#|%0Z8@q zh4$m$sb#d=$_5kn#^JZ+^3siA6%Wn|p9LE~*ddkMhLJjo;P=rLl06RrXaOf~qC(Exk6NV*t&bSjm~R^4kjxoVc9XRLBQy0Yxgz<}Ne4 z%JD7wC(Jd{X(Ni_3bwMp8;);-7eBvGI#(@bMRX4YE1RVshnnm+!*ckufar(*VI@$h zeS1zQFB;CrE%+%`1Xao95=#;t4VxR`TybGi?ZCYvM&Tx=5uPz)f_9g zbN%?`Awf{B`#qdrs<7`z11p~9;sDbXE4p;}7Oc)1TxV8J`0VQlR~ln2{Ya$=RoxC! zX55yJKEy7Z*Mjs(Mr(PFXzyI+VMf{ljW+_z(SCf};(QF(WfrBFuhcRJwh*oD43B%$ z+8Tt^%VJ?V3@J+=_!vg$Op>Yjv^6 zpuhlP;gK)m-vG2K@nf~7HMd-eV@W}_oJq|(zbdd*c&<&Uqm9pfo)=f#vaSsvTSLcy zLKBN*k?OurGS0ni3AAB7VDt8~rJeI@MH^xeizF&iaiK>*iou?-^_`&tdyC+q4f|U3 z$W-@}8h;!%oG##S+vwu{!^)7qJ;z*ueDeSs_JadB=5s?*()=to0s(#O0|N%AJvMxz zkl)4z)kozIZ`@uTV$MoO{YRK;vL7vBV*5;pr6JRjgl} zQ5VqtQeh@$EQsp%a$p8zQ(AxXuECMQ)Z5*$nJtMwtPKS%p)ir?n6toRI zlp`<_+@`(BA)6Rj?_L5g^NdFqMOHJ9_7H3X+ZM_)0CQd42vJAqR@`CmvU~#Kb&ty; zTvoyZPK4O`7{A;8JK-eR7BoD^FF}i}WNHu^9_qILZGWPxI+GHl*EA6ac1}#$)&X{m_C{>tZB9>kW!;F|1uD7nP(9UAy1?{a6+6 zt`+_FBTHt1Zv#2t8_K+TKKgmYg0zk34Kjc~=-;Zrq<2-5q*C=u%yV3zzc%>A0IS=A{mfIV;cHVBK z(XSx{2jIKL0boU}#4Y&mF(8tj zBMtxkPZ3O2{&2pgZ6ThLFKyin9A{546a)O~B7#fe$`xa8H;5~l25O4(^?2g-&reBa z4{_;Y0uRo`bR|pCYp(NoJxZyt@md>ucA^Fx7E7v@g0e{i0`OZ`FXoCRF)IOIHjV!b z7ejeJ$A4BQA>K*IA9yx?a^hV!uz#ff{kZZ#d*bPjK|rk1}TV;lMj0z|4S|h z4J{8Y9pUFnRKuRx)t&|x_;MR15btm-b;o%9cy;C^3_#3))E{a;C{lj@CXEEt@NfS$ zTRnXHKZIfP`q#f0Hg(sn{f3}(HzUQ_oAtV7a)E#4H6|kE#*a1N0s>leFU9W;Mpz*) zv?Q7hdIyke-um_J)vXumA!e4HjYR?E5eehXY=N6^Ht!_n!Qo5QJ%zXv?STuGJ$WX% zgzZ+s06brNKqmLA_P}s~qVd19pX+wSI1(9yuB5;UjZw) z#`9G*bY%CFBi}l!LM8l=DnJb3dbB@!_{)*6qd7R==~j_F7^jYTvm~@nEt} z7mn9i|2lC*C^ncp%261Yu*+fEMsG!X8K$4y6??jVdcx_c_I5dL4-(sLD^@=RwPi7> zh|*r(8jJchWE)Xir1qZVLGsdoRAn>(v57vR7mKa>750Hg10 zDLhI)$`Xsb84Eu__&{fOuTwR;UXE0aJdZuHKYh91wwE#hK~+A6&sm!nDjqe78DPCc zEu`Zmr^6A}jWVmzQ1hfgduOl(d==*vt-1bv=C~))VO?_OFU1CF%&k=M#5doXI`7+{ z4nVOnL+w|T_mqzT#HfvW^HlFl8&b6~ep`TIvsk}1w>rS;H$7*!zCYcJ54Lmmv?#Bv zDH=6NwOB2j&|fW#D&8|tHT2Er`&vKneqdrL(aw2y4LHmRIIL#WL_v48(5uL#M-Kfx z*Jmag{X}Z=-MYxCP7P8W z^vN<=TPASb3}xBHT_!*t_TxHyYZPa^2HHYx)N`d1pSDfm#YpJVB7k>EL#$RWZ6o*w zuQA#co6%mH^GY4a1J14(@J}2(?y~T!$2T}bU(C9z5yJWX$GH6HqjTJoNV0*2sFnR# zoZM-S47a1ae_j4uiuhs8)rUZVx7#jo; zVxv!Tm?+R$4qY>D=hcn9~{Un;pg6fQhuP6$Ttx^ae0*r64-UMRhdRll3PIsTZS8lMpV9w?6U47900A+&?OvjKj1 z-648jJB_0?;?Yy5V$9e2r&Lsv`=@mVt4T9Vvz4o(kB@6kMbJ{~jG=q=*SZK3k9HeF z3&?+O-SzKm0e#K{_JZnPR$^%aefRd=Q?%fy?e~bozN1UeV|gP$CpOJCEwo^9no!Lj z6zUy+ti9m=Vd69vJb%*nAJ69u1M=IkUIp@o^#>(|14TU!`ChP%YJ8LzY#e2T1U2pr zqX^Y@xYkMoIq;{7R`;GBh;Qe3ymkIM!LWLx$LlTYE0t>Fyop2lVlg7f23K+EUmzRc z+c|}Sc$^9VvN5SpG^sy$UnucLHw7)Wu-DegNWE2tRnrWxhWT_AbXCaF0D>t(*3-x;+b0 zCYfsjAH7s~vLc1ZgPZ)ha=N#>6pp~nE%BkZn}2vB{f?7guTrFTcC32%DICj9n&c7e zf4;`8ZX*=di>(`R(tfLVQAf>dJ@?qGb_zvhl=K>A*NczG7H%Kyo-UXBToa>8b3KmL z1rZk3;U)OKNqCOmXJ2_bJK~kM&2)uDCAVVTiByB%;qW^48GH_bD8~;X z*pFcxh$ECVD{LXuyr81KZnI}FB$=P4VPgbcmp^e@XK_Shk6pk4quQ}X?brR&dCn`S zkvsaJ5#atyCfIzP)9QhqJquMZYwN9T#cdp90F8S{UQsCKkY|26xIJ*?bVg&qTs>J@Ne{gz(moUH4l6y02W?pxszjBHI&*R=M1LDB2)DlY z5zCETf<}z7CVZ@+k@S}b!mR_uy=R;rz4uZ{X1nFq3y9nzS#RPDU;ywnO(>|(;^?Yp zarD7$Vuk=;Zk_6BP`{ELlhr%|@Q8w~sQ4%G1HT)8hzlOnopf*WEvL5hl2St6K@g6< zyL0G$JL`L|IpPnubn1=k@gLXTc%-9_Fi?Ubdj+Fbdf)Bi;Pi!DBFtul2(u{~^b-eQ zHkD`#0_u)tr14>-+|u*SJu#1N6$PR_ncP>SL%co1(thc@= zLb?u?72oj?^k+(fz`ZKI$!dY7Vxo7}%No29&5l?m1Gf6;6Z zM4Am87{k5~5NS4BM4C@PX*LJzlQP@m(~`Al zR6QP*E=FAhv-T4kGVsm6YnWd9fm`%fiH~M^r7V2+P&B&0QH)`5xM)+M1#nta_Q`_f zx`UV3GfKyuzU~=VUrLX5Y_YaX)-#%g435!Svn|jc{fPqhUIdM%>Kx}KC~r(1{ZgE& zYaz@{-o}Q(+pK|2*|4!%r^%AEo|A(PPg+-4v1BYMB_C>2Gj+bS}0Ap$G|*AV*y;upsxlc0%i+8ZMv+)Hmk;+#&(XZObL0?kbblkwMx9 z%peR>fy9gF8O{dC8(D(@T$sty8P2Ayj<~!b?F?t5Ma0=G{~OL`aN7yk9{C<>TyQMn zzhRuDCo%c9@vgwi!8rfa@u8-z!p`-?9HqN)AZ1TKeeXGokgs#3Z0PlCrYS<21y0cx z6Z%s6Ve3Po^rtRn+cHhYFh0B2Kr-4Q+Sd&gm`D?j+)U}DBa zKi~>wev>G|85nxFwIOq=6Q#{~(BmShRqU>Wu8B$Gy0pVxJf%cW!QpVUCc-=?y$9c@ z&~@yM7`!rR&tb09=Fn)Tpw`3;e+Wc0cBScT->^-hsR>EDNcT&@C&ROj>_N*`9Q(BTreqlf2eOhN~vG{(9h-Le0B zLBEwQ$+ggTL^4~^ueKi{|FOHT=nmSpRU2(DVw>IHe8eV_c zR`lA_YTF!fpMMv7QudLZOk2)B-hUz zF)EAN!hUW@A3Q8S-7f!R-%^!-T8%dL)1fMLY~@00`Gqr2A9lH=xOIN-nX%6!x1nm@ zfhQuL^<;zkGBP-*PsX&YPd7~Lp@5IZ0=W9m|Q z$5EB4tQek!PGX=^*TPV}u{^96)XnbBzRy-}Ym6a}*(wq!S7crgbh${gb&~n*lil;_ z3=;7!8(C8K{bb7;m>AVZ8>xLKC$rpu9TY|j6Gp04S_&dCTQgpFiic4v5l6UqctLlZRbM>e|Ax}q26Cs`KU-N!%ZTl^fL~Of)%lpA$q_wq>nY!#$`p|Djz&lJ!qC+plp0y7 zk{5(Fon)|l5;GZE1eGKWhja8y4vMV7^ILbv^>lDkL9W%j$s9@t-OR>92k!gs$0!YQ zuBgZ|Fq=(=DVPufkNbyZGr;_pWitq#Fst9y@iLq|XdY^6AZOlqsXC10=}>#NDOYj$ z$61(q@bwQxZi}u|YlfT9H7fK7pyV|^Aa}~kl?$tszRHdj?n-}RA|(SXr+Sah(^Esw z{5ps@m+1{j?fF!}iski-kLcc6KWaTvSf^T6Ym&Dfqv7eT+tq;#L6#2plhMr7Scj~! zeO^m!aets^#FadI80ZBT&fx@^k!}|`1V;^O6H+Rxw=Ih3hlaKnTcvChZJi_;U>N*A zEF1QCxf!E&>^l6VmuFLM!XU?9zXC49`-GoJnl91qKGh?sEi60+nTv4K= z?(_wSdMfi%ME?W_21Ft}7s4d2=9pS4Q|wCXgiC0F7F%0@9wVE)`?Gf1bgZxWtsKtu zn&8hCuc-)BlWwHN;ioNaVTeITBRk{-^U%M639M>cN=nIUKdO^E2QB{or}U)gRwf^9 ziChi*a(+7Ft0cysMgpvVwzgeZ6)uURfbdVW1Lk4IWj(ySL)KO)&tH@cvFgrHHYg&> zrmLNZvXKE$HVJ=GHaT;YoHS&kd%jsJ!AZTl!G1}~AJY@&Z`w{|^SeZ(4RDyiLfjO@ zf7o?vFe4W;xYD(nAT!UX`#(#T%Q2I7uxq0DBm@_cO%;YU)TJ{3moDv%TyQHgn&d^o zi?`4dimu>;2=P{vLoK-_Kcz1G^daroFY`RVaqx;_Lft9F)~2@7%|J4(-oBax8A@!|o|8x7U(^rkC{LMW-)9JssXfEETz zn|9X=Hz%&tsaaQ06Wr8EgdbW z?ECMyt==5^vH!WpumUx2C+`0Z+&*M&#z*USq`JL7>;5raXaMFG%PYzkdAAY-q@Rb1 z%shD#2eb8ZTmFVKOVuxJ2^t4cpCI=FaehCC0%98NFNnATMs$RXa@9523thrTa|3?yqW@{QKohE`?*zY8?(E~)a!QH1i-(sjx^b9f;& zB=p?2?OK{!XbQhzm#n4WYw@oi@ld&v7(@Kn=xyyEsGBL92wCr3(t&K_@Ce@5lPArl z;Y~PUfcJD(g-N?H{25b%vKoRUfxt(+)vMf(z%hEENE%Bv=3wOn)u6ShD4B! z?a0;tQVZj>mxBFHQdxSY!??cy_H-kyQ#iC=WDXZNi@w19 znn&n&L^u>!7jo1lFEV%l%%tPPHMn1z`~k)YNMGNw;I#yDrzD*m=nn0t-5<8Za0m_L zvK;*4BZDRF0M}}VyQGu>pKXg6so9tnG4fO|O8X6ZX@aa2Z0k#0Li?YDtjc%zNWIBa z#Nfg>d#l5f_lBO3N0Kbk@dQ!WjX%yzQ|_lB&=T6y^Z(wRmb~ljk*@94&x>grlwh3I*j99f*f4;Y#spI{l^!-lQ z<}bxvf$iobE6%xQ$KCGhsc^Z$`pYCiybz2VvvGUv+p%&DR4jh8NUnG}p#MLoS)}&>pdQvb@;mWLaChZ@WA{Rc2C7@Tw z6uFtZ`+WTt5zyC5jW6HwOK3&jmv6zi;^!xw=@-h)GYWa)mx#9WJGVI~6 zJ<#Ma)_zYWAg?fRPg?!=+PAd}$IP3Io-MQ=*e*h!;NL?dvYX}8JkoM+ z{}jb|`}n}%e#&@YEwSt!o$&HblAzrCQt9z+PmtkWYcPnY@=iL0;a0fiiX3@2*^=$aSVD4*U z`G)T@$oc&Ix5f|{9RxIGr8=66q0=}2%)(ok z;29_7(-OV*vn$F9(VUr#`HQf@5D_*X275rPb9hXcZ&214`g#%sG_rfR?CIdWga4s8~*UX152xUq}y-Vy4Hj{|mCIW0EmxYsmAl=Ue-v0SI+cjR& zpGT_c>XY8Q)DzBXs~~>ExtQ7`@cxzR>370Qbb$VN`}&VSsu_H__Y7IvH@Qs2qQEx! zdpV`K?|HXOC)FLFIk9MQ#}4}?H zE}|>nRw_-~QS|sCHi=NApRprVJMtr3rR}LM0ez_05B2*}k1V84bx)oNz}<*j)|7b0 zeKIvNID&+p@oR1vwQ5f?$6=PMp}HtkHMU+%!pO)%S2(%bC09`^nvX3L=%mA%Q+`R- zpz_SY>xKKsZ)=;lK&cb&lltbU)(m|D-rC{T@OiByFU0ZTd%dQ;rx1`j4jZ|5F9Tt| z&Dn1G(J#PO_J@S%P=82^yMvuyhi;ear)R%+$`oGl?cUDheq>5VEJA*u2vvPd6hcmn z2)D0!J_B?GDUIaiV}|_S7ab&^xE*^arYI!OD#==NPEAEDn;3Z=Qp6 zVtjkJlu(=NTi;zhK0UeKdYxwom%-wa-GPcdkALm@G|z*FxejxL$^;_dcwhXVXSsQIQI7B@`qvE=+5I zq6ohO*pn#e`$|wSIHvdpsSzIeMYajv+y72HCa|O zfc{n?kzT`oEHkQ7)Bf-D8Z1DsiMAzGGX#f1hZl(Sn*J0by{7NWy=}w6n-OT~Jz#ZK zZEAd`m`XKGSBb$_h^(ERRWr(_LKXHBR%4>U_O7E#yPPp8O6h zI9syW@Glz%HtD~_AU$r|Tv0Av2W>5alPfJ@kDP7{M_y@nV+l&M@^0S}<>=eodQZ+J z#(f%CJ*h)utOg0+pF2(lDR&vJblfgH$li=RAA=c;+I)r`MC|O(uKrxlHWg@fkuSmp zym3BMTosq{%uDOgr(5C~c6 zr%4DPoxWrA08nJtF}Ao|fN{3#nb_M7?+3PpYLyp|WY^v|Pk*c%#_9MQr~te3FRc&z z6_W*yT3$^WYwDcWj}}D1P9DP>Jaoh#MH`|a8c>oG6wtA z`NWNmmqXyF`@)w^f@kJ^smvJnHvA|fK35a-ARn+ew=D9~Z(mIK)S^O4nO^xU#CmS_ zHCrc-7Gifui@T_0vFMT`xTW;rxfm;kD2_kj>x4lVs+bPgRO z52~b-eOIjdIpdl|a!ui8%)GnnC-oYHAzYpBcc#M{W{gO#*}cANXk%Xqo&}MrgxjTY zq%pQF4x7{6SG+*(>sPB&P#8M(N`Ut9Z6SY$GNv8iEf7*2aXs?WQ}1kLkFBSD9nS?y zWP7#*fD8yC@JaC5YR!cRKSI3cITbFsn5tODp>4A}tvT)WGrf7$ zAGTKPLQ{$|#hA&T+Hi-a3%Tncy8!pPs1Wl(oT%8-dB(N=dmItzPXja*w*d zu90ooLkTU6A&+_Mmen!aeGc3z3^yjZ^A;JK$Xn-FY;8zpV-eT5>6uqLJdvo&@F^o9 zu;E*b8&U6(KT2=4|;%n0V~TDCg=%}p7cfRL5o~+T#Ijh zkh|_1rdvpJwXuLLfU$%iI==L9YqASB_RY}{I)$4yL=8=={vd@r^%3+p-jU~DS%!Mh zjDLrFj6A$-44RTk9{hE3W9Sn#*msE(A|H)*IFo&dMz-@3sY zVnTiK-pwE+byM=`b4AYL%ND7;oQt!q8)#R*WE5E&{<-cTRd3zPa`i?mVd7cplWO zzVJ|Dk~N6S+0jt1}30tut;-`Th0c)jT4%ru2+klYp)&!!H;RRQlLyXHBodnEj6 zE9m2V->*P&dkw#Km36nGI|`^$$J%xZ_teYr8mtF8r=Rwamr66{BpY7EzZ!>_`9RG4)f z2eeJ^-icPf+2$I|rpf6m$Zj_xqMS{5w^|O>b4^}tGaMm@VA&(V)*s2|^AV1F7xsYu zVOzvmB4)J2VLmjwGFmx#vb;V!^Kn&Y)y|JTYP?Kg6c2jIND}mXxS(|NBcco{5o&CH zX6=dGnq>2);EbD{x@0j_?PZ@LJG$QB$g}rt>iJl^)JQ9Kf$IX903vpm$U zuv{8pQU>RA06YpQJ{Uh0I%x=cQku z#JG+S4Z$W*!~cm|;|Wk}WIv1}z%`RVzqFylp8HF!$?+kuT3}s>)S4tBwdT6SHpkG; zVvbZh=)lEr0|K7>W3$IEnt=Ku=DV4w1o?c$xX!XoxXGuct{vOMFaGEmj-b}&w=FNRs z6~O}CUaU<(_D^?8HqKnz|D(FMj*GHeAN6Sv1W}MqQ9|kN6c7O^l?G91h8SW*X(^Qy z5T#25C8S2W%Yh-J8%bdZ>4vi&eBb@!l@^X>!l{5SKB=Y)yIls zgwx*`1&B-Es%z<3L)IX#%7*+v5@8!c7^4_qJp@F5^j@efq7E`mKB% zBvRDwQyd7%Fv?PN6R2%1v&LI<|I&MMH>SpFVxBZPJ9s{`?$gm|`^K0TU*i+A)9tdQ zZkakrT9XMS_;oPJo4u$yJ}z3vMUeI-*Ych9e{rwcFZZJ74MoSa7|M!XRfD88r9fI^ zg-8C|udEc3*2swzrm@`&$}e}IRvETCG;XeCro5t??!@G+Vb#Leoc-u_x{xRrHh!WUhW8dv!Qr!&H^TB<(wk@8-W*r45Qoiv^Zi*SY13+1<;=FwA(t#i(grj9YQ{)3 z{bF@-9HcV)G@*-&-US#%3rC*btJX59C4EW7U+M@sYvx_EqZ}8UrNiiB1Fdw>)>63! zDLWsRN~HPYjDXy4b(G*zR3(%>_fEzyZ3z%kc}0EI5Q`0r`Oh8p1rSYUr;W(xoIO^F z&6kl0IATG=_EFScJ7|JER&R~09#)@3dKh>V#0ivUO24r2SmS_aTVJS%Z<`- z%_@(O?XigW!Cew6UVp5BM_I~i{^FsUN*zr?rPs`*^*pINLb@~}w@up3q2!+s-~E>7 z%{-DgV(1OQ6lJB~q4-B(SV@zSiW6&v-$H6ZMkNm1Rl2!1U^qUPg{1MWej34QcW%w2 z#E+KytM3pVy_AQe1lH{dRY!Qy`_i;)s83T^LDEb&CDsVqhyNMLj| z$X7Jav1gS#JwgmF?t;{f-BlZ`-fCKK$#+Arbg7GL6YFr3(>to3r?CtL67vqH9(~~( z>b{W9CdGJ_>!~QBre66M>MPS=A}>-{j81=gG7k%f7zd3ArPfZU&T`pQNKa6_p!wZq z4_$&wQxS^et(S(o+BLh;8wi}Gk*S$l3~Z%sjpo6kooPLD=D z7wXiZEX&%1b#rDZyv=L4L`3@N!`Y4cT^re3zcM#+iI!1KuSo<= z!%h2zKTeHMpDygz-k_9BRG_eVt1K4|Hyyv>XoppMG9lyM@Sb0h=o-yt4V3U4{HT4s z?ufm)JUt|YM&5>az$<$=EF!%yQC_p*13dxr8Lkutb~~R+>+ach>cmyY&n&X9WWyPP z3KS2uafy<@CjJas;$~{%Sln0`_CBIED?HB|YZF=YMN*4g$EeahsruoRW71t@U*?)* z&rT|V4ll5ZB2cm79%>O7@Hzcygq*MF-2o{pr{OC{VfD3@>%bf04>B|De2G{Lrl|dJ z9#j*#Y?Oc5%Bo`u(z~}ZznRB3vHIyz?V{8KKCOcl*3ZV_ZS$W~`)MixlqWX^hX_h% z_d`2gCZxN$%x{sU3*A^naz%-zCc_v>zTc4S)@%P%L58nTduuGv{p%(1Y#XGY3icV)8lntRRFUn3w&*i53KC%IKTkB36H@d`% z78XW0CxUo&aMJ2yGF^Q;oZ=|D@kSeGkcdy6aFK=CG4HYW$>=FdR9_%>?OA2FU=LQ~ z!Fpm{tWy$s)R<2^<@*si$`nJ6G0ycWhP1JFvkQuc4#GN&L!T_#!SJaBh|r&G$vbOK ze?wKotu`N|&W4^SlIo3Zpx2#u_D=_7c9djiUm(&&CA^t%;A55Q zKc$q{HV+&mP8}bZZIoJSo(dwtIU)G*FJ+AtNY>!g5EfybR-AfRpGXkokRT|0DJ65_ zBro&LPSEUg?-)s9XUgWBme8Pq@CRJf{>i#0;t*ANhWf$y(Fe?i zr*GEu-C=uw!*6=v8xl$|D9*jA5V)W(Eb}Uvl8txS1dq!=Gzhk4Q+K+$q_qYz6f^XE z3QKD~k+6&>--_1^`fLl@B_gNeVRdEIr(aX-AF5i>>eFzzY0K9dfi*RlMkS=Z78atnn$zhl|wm z^`hx%<)_acUB6{_o9KQF5+7gRj-2bgNVxOaCfc3onfH14D8*WGE?YR0I|hF3-qe&UkV-QDA&<3P@fu@`LnNk)T8%9A z!40(nwqt0K#wb|tP>H6K|GE>zvm=B(h)6*6M3CpV01(uO6G321q<-&CXGTyFn_smzcV*%{E{Xeuh&FXlT6?Y?RgpnUw$$Qgd zWTl)=U+OpguAprrI!b9|4HDx0O}R46r;=CTt=LEU8c>=hcjXd3T4vwxbj?9B5G5z z{rix8-GhWtI$O{|USMI-xcqsn+uoBNXtj8NDoXm>x|F1D;c+XY-rf|LDyTXDqMi~w za{eE*$(^dH?A=or)9Rg)pM=7i1zJRJ;yO1 zu*kT3kndahBF}}bZRJbkNo_J%-?Q5Ba+c`YMVC7kZ=%1l#v)x;a z7FmpATTr69-QG~D6QivygWdkjBCo*aLlBeiN42;smjr(gW39w&ooUtT61JDijPirg zgP2)DQN_UZ@p6!*xRR%Oou2WBRC;#u?{SZpue}++sh470w@x}o>wuml#kpZ#g7(Gk zT29F1$Kb#K?4}L)#&P|nYHf43;L$>hNzO2#Id(0HGblfOk}8ndu9`Eegom9>q+*Wf zL6vM>zE1>>5_#Wlf)NwW9LHI^`VN0~XJ&TPqGt2_9!LLXZ^OIwj=gO1W`Tw?+8=SO z7Kpsa#-wn|RiA!Mh?q|7kXN@V~aScGu8s8z1OyMK1S=gl9LIR~#$C1CfwN`^a@Gu)A|62bZ0#6P0Bf4Kzdi&wV2)4C;;Yeo0NeOn zs%QnEZ=^RXZNH{ER&TT}1Cr;LjWY-nHRt}eH18tI5A0t6yO0mLVk&^MhF)c`ZiET2 z6qjq(y`9|GYxW{KJG$h~j-%J#UY0*k6tB~gJ(!E0*8*VBvI7W0)_#nZXMG=V0;n~T zo5}Ut5SYow)C5V|unagp^oExrBo^K;dxN#4?SiJmDR?#IOwOdV-wF?Ji=$F8VM1Lr zADAzv7%YUcMbI3WK?G2D0L{5qQ{&0#Uj#c72!AA0`juUc9<1IclZOR;44+whW^!ir zm$l|sC9u|T)-^%oAL@umKqNgptIp;=x7J|ZLC`7;WUY}}`KmxkoC+vtlALiMbwgk+_jZL~4V z3Hr99jNZ85*A{2{onCY~y*^Ic-O)G4)wNC^w0P`EL|}S?|31aOE+^UsL(y2uz{?qh zxZ3z31+2R=b&=(aT69)`Y3Q4O*nDq~aVoK~oJQ@h%{G#I3vJq8AcQF-*-C5|ofe!Z z=Bt?L54osgbshz!4et89E#(F)hzBJAifoWr=~%9dxfl@h>{m-%t!26h5e2RmF^c@p63WX*}(g!g3v$EDwP$z9u#_R#gINfb&~(b(nb)pIXOb zN9;f;W0jShp9h035oYnfBj$gf}U$z{jDA%~h#0F!?Ry$y~=~H(aT=KqbBTH#M zl)aMLA;m8vp=NO!o|7mRZwNI8MYziXKOg3N3z8c}ISD`RUG zkf1HFOa`%im8nKXi{cp#)WD>Vt@hU{xE{cLgK0rJ2Xg_%*kUG5gtXgI^(k zSxP-4#%zdO#&<}N?bW}=r$1B8kDf3ZR3hADiSUT0z(`uPn z+{#6!qFvi9Tz1=%aHW_k&7`}Wj#kmGBL9hn+)ULX9mBiKhcA5uJP#nu=u_I?GF$fI z58DO|(indGtv=|wWiPj%;xZD7C51-PaO@d>*X%6UG1w(ViDy@;AlTgE%amsWD8w#r zVxD!|M&PR*)m7k=Cq7c^D6BSC$9|$KXXI*11W=CFUc$B-9ZhyY-P;l1 zk3-=&I4s|`DCNF?C2eL?X9ReJ9a7AwejIegM6ktTBUfJN?21^J2F{gp7xLM!&D7&u z_K$spvOnnRzboLKkRI3Jd^a>~i;Z}3e(~mFoaRCH(vc!3s&MMg6dO`amf)bEf3i7Z z??%K3yzU)pl|1re7{3XV-gr)EVYJ&LNKc?ddYhM9!%kF5D7+XMAXP5B^c@k%MX8%} z^T^n3BAHLhy{$Kp)A=1n!O$SnBS_JX_I7y;TG;thVx!w>m4mFZc6*;|2?epOgmkI< zZ7a9DYUwh*jjGt7+dZ+Lj%B@4inIN<7Rwtqg*mks*9WL}4djB*)uba%MXebOCk~_8 zw)3tssGT@}&dHs1T>@me3`)LTfG(bgWYa6#MYByj1r8$_yD6rW=wUNo{K4FzaWMO$ z_dIgiHMY$yFWgS=^xi14>AC>TCSOBjcRMilbs%mwu_)xjjDH_=$R{hAsH~b*SZ{{Dm+EeEvtahr|;K`Tf_Vib-+HEz;8&L#YWg2pF?Uq5M6F2)D-7eptb z*sV;xNm1-VFvjSPg?mLy7Z7h;(U;CPCuTQ6tsj--=ziU8I*8L#9cpv~seUj{9q{-f zGv|?r##r^IFMJvY5|3%@lzxiU)xzpxF9pq2#kSp%pu0NdX_CtDuHz_jHtpD9z6T{t zAJ!3Yl4!1U=R^N7v1MI&F?rXE#U)sqVPf%Fm#_%Cj>L6AajH?fSfZ7AfxZEU&lhhe zNo~4y;m@xZ*~jv$5%PkDR>U&AwY*X21a}j|*`s;WBo>i0hNHq;s+YEEq%ZOODk|Ys zv8|eMzVbs+flOzn#mtM6MQoc{mrGH|?U+ODp6#1;$XoBx0ofKX*nxUrO1a6y;8(VX zE3qeb!|a}t_@mOv-n|d&!%?cZP}y~4-N>q*SReL0K-_uL3)}W?5IJ7m$c2|5;d1XzGBY+uq>ep0vb_RF3${YDa1()0CEwwSVgqZJ(+gAXKm^x% zHd5wA26waH0yDSJ8W}9t!RU%T&)s>(-vv0B@`(0%+^xribHx|>N`v~wFDC@JC5eR( z_Xq8i?Ub;l&0kI>PxOjI&t=nwU$E@^w3)kXso7Xg7q4shm06#k*Ia*>)|Q?z|31NV zLDhjN`uknWzTyHapO2dd?CnZdOQujueUv{svi;{nVSP8{NEFzE_e1GPK#*jIkS%ZF z$(!E^NKfp{qK#$r^6SnlcoJKO;ReaQ&dB6~ER66*68FQ4k=6qDvU=%r()XWpCxOH$~M_ z&btV&=BQeV)9Kq-rum86QM|-y9*TP$vR|$xu-b#NtP4fXa@;(Mi!D>&PW+@r&yMoG zJsiHp!IfB{S>okc9VW%h0{BR>qjx9-)CkEyF&`~Gp`Q6#RYEu97O1EzQEIQ^AME#I zK={k~M;L`a`V{-kE!@FM3L>ZFv`lY=uAD)rOf*>`dY^$aabzVpNbhxHn}lE z{c)3*AHP#NY_&9d$y`1?Ho##7!Ad>&xNZIKTFHp9qr2}>5DD6vu7Q5D*sYo5wf$rc zTEtKtNg3mT%m~7zs&vWD>b__+z5dJCxUph}6Cz8!QkOQJhlAQ0pV6H5X`6dY`WTAD zUG(RRpB<*8lj#!o%`UfDjC{*=pwlPFENCFVJ0DfkC!A`hw-%4IiqaVwhm8v~Sicgx zkqv9*IM+v&7SxCZ9TX%GXzzCwqG6-dLD>THjPA{+S7YpWii>TvhZv__7^B<5)09Ko zw_3~MQ$N9hnJUbFr23*IIrkAP?3RPoyp4v7R2(ZSnI6LiElOLsAlH=kKI+lvz$aWw z*5_=X1XQ22iu9pS_r{Cl%?ACNpX6%NW>q$BUAGkargjwc^?@kY%5rAo>8x11x&B(b zOXe>%;2QZ+`BRzWs#OO&Ka4R&ol={#S;r>BP{nic9lKKA8yuTFSSTvwtOdu%&|aWm zi7=@CxUwL+s?v^#-w`h#PFYZ}V0r^dFG9He?R~$0r8=$rW9)C5BRX{g*w*iHtTP zT=e~EC{d`!r7RrZ_)Q6hY6LfT{4!^+Y^FtHaSs4@-oxPm=Ptk5>eJLH; zm52a${Z-Y2yi2F(vDy{$qFy6xa)PbrkNMxAp5)(Z&bX*y`jdapc&3~|KgM8i9Jc-9 zT?1ATRncwV6v0pm@mYKANlMO;F-!V|rNGJZr0Wep9c22`O_y+}*iWq?^ULqstlZQL zTu)ni3sGHdoy_`)x*loaO)C-fqGGpjF9w~7GmqzY7pAAtE^5(X=Q=#^M@n4T~aYNnwZiV0}>-%$MvKUc$UEmv!vy#MDKYSWnhEGXW zrKmaLlY}FS(CBCsz+`@nA#ppVCrPlZa$Q>yOzqa*eZobe0lPG#CxfCh!b)8#$V78IpBdB7eOd-S?T ztbom}qNYMN)<4)=FIa`R8m8$!EIR-7JM8D9(e%u=B|4)D($tcR_o{s-$qo#7lzPi| zicHqx8|)<(HjBEQ-u6W8@nDkrot`AYr{+h+e7@n`oQ#R8KjpPw5Pvv!7;u>%^@LZn z1w*AJ;PHbx@71N)Jv@$!3JiD3WB#)4WOb;h?bPfdre2k-lp}o>w`` zu&*WhlFj2jk3H$vjP-_Ev_10LurJ{jC-X$Q!oBuVyd6g5%|=Mu*tTxrqrfynk6%_} z6tO6l&a)~-#H(&&M~Zh(Oy^IZo(g9^bhoIAYvQADgl`pYO2zt8+#cN(sCxr{fe>Nl zwpZAfg(;|<%i(8#Uz}QzCD5ZV$iy zc?pk5_NY|Tj&uJ|RScqgT(Ymjuw2di{ zybME@`)F~W9A$ecGi#k)7ch;3LYhhsmho4p%lNGakks2`;!&h=ti3+&Sf3V1YTdhB`a z_lDWF{qT@?gY3r6r=EH3cP7(SMW420W^mgXMvUzW^ zbzmo9q8TgX%!x&p9rwqp`Hr6Xj_|z=hD-}Td_J$t&g9&G8w~k0z<&-Y!vkSDAY1KR zVsl^icT}yoXwh3?NCgX&H1m2G4w)6bw})UL0VFrgzw{*hfF1ktMj$VF`GF=9CYB5?wnM(1n^ zD7L`}zycmn#|5Tvacwg`C;!T`VH4nj@(5LOyulnkD0YuGS#AeOTXv^7wS zZN9GUkG5t@;62tRh(HaUYirv30IP6m8E9*AA#IK4p-{K9UI@_EOdU;r6FmXKog4^s z@mvPdc#LjCz<z_59p(d}6lYdQQPhZNQ7VRajk2MjLPTe5oD6Eq*4u z(0`v?`n?K_ppYY}dC1&-;K7dc;D=A9-a7+3!U?V|L#cq6y;BXMmzGb@vH1tI8dw!T zxbp?#z*iovRjDrcpRxqv*$M6+HIneKV$Q){4S;5%uay&IkYFrjLuRl>874Acv3=cIjf z_c#tw84(`7-SzANDyC}*CdqIVm%Ds95O5D=r$VcEOGB8R+dQT1F?n-P@tw+B@t1ST z8E zU(;u9_aX~%le?dUzk*nF2Z`!f>7p}$a+qpQ!L8T?s0aFlxP#0g)AO`UrkbClj>5=! z;aC=UdHa$*g@FgEjPCvI=PrXSp>`}qmUeW(vszVSo;EOe@a)e!7SsHSVmJH)}c<`91&=#Zm)?OGT%NY2kfG!4H?ZOn*Uw;Vw=HJ8fOn7^d91rTENrjH3I(jn2$ewUkz+iysDeo3{X~*^;>%s6@ZyJD4A#uV%9s(Rc^Z0Mm{`easWraJS22TRcJ|P5n?;9L;~U6 zd0HRg+;My^q9#E{mE5)kcN4UJZ+hAd)=!x5*AjMfu}=S{Q)xyq_8GQ;S|+;r94f0@ zBJZ)_Cp$xt{T`*Sl7E0uIEd}tn{WyoC6!EX+p!MIX|dmQRev^BoDC5Kf6QEDKPL)~ zp8Yp9KmUaYLI?&3u{tV2CH(>#19&pfDh1<=Y2ccL2`|9tcp zt{>!n{yU!WzoMc4Z@khC_~#T`N#G&)%oZV@AqmU`pMgrCq7raZRLtThK<_fJ^eNTs zyismIakx1mA_(2!$xQUSGUz!WhdvMG69F~oAP;AoMd`;ZlZ@!Tb| z3|un#f4O9$A(za*xJWzya>;m}yJWimcFCCSPQScV;8?YajQ*o;Dg<2vq%GpO2!-B&$u`Z*R-mp14x!_VJ9+7&wr&qXY!WW6h3^# zzY1tY^qw*&itklR3dPU8Fvp;2a7!O~u=eP*oh>p?lf#6Z4q!Oq(>))qVWL0vHovwN zZh2j}DDxfx+;ZW6x00kR!l@ZgBu*5Gt`xD*!G1FFt1RhOlY@q^xi+3rx&<&_pzUvFc8hik|8cq)8c-~@6c7*eS+d%MY; z0l`q7l4{;%u6a5NJEK3^n=NRiJK-9zy<}FdRbsMR`71YYEdy~*KX$iPP3{y(vcxj> zLmhn=`-AqTy@eg^BZahAg}AIiLs$N76N2mP1~(E6=NG-_=pq^JqFCM44|WdLO%mVY zs+q`bLC%h7&p(%z3x^0k-JaaF#N0Rq<_^2t?OnqO%C37FtqC=5smx$QFkgON1v6?{2i3h2i>!3i=K2!D}wp?Bl=(7Z8u%A^N{5Vj8W#eP{mV3B5(iA;$z zCmHM&Nh&=54efm_Y!Qm>?`c*uKwFekP_dA3sNlchPAfv+|CawYp8*n<^#!@pxA@X> zjOiXHI9A(J0_t-S%WB>KmS_9l*kCUFak<#FMKJ!ED}VBz?MD+U@S-U0iKk1hmiB!H zW84y`)f}tWAr^q#@QeqE)l314lg6$ehI&ydlP=@Dx!)mmgr1(aG%5EQ($_NK)X&2M!0=LMK!K34pH`kT$^|}4sE9oc zRV806Zr9bap@{0!R(hwrMIFD{eoTx>e)%?1 zHFdJK3{??G#dGLXKrawjE=Lt&uY4?1S^);EL+@OC9hh+2vG`3~cumq*Sr!VY5&Ggi z9n6>TvF^b&_||`b7HM`zcu>9kd!O2&hV=*VU}87t4b&TK_gIqdqgHo-W8*&H7F*Pq zi%ZNefy4C#BAaCr9BO~KaS`dr!pa-?Gp9Xe-{CcfOs|61*v;NW&nmFopdJS?nF)VU zAx9ON_`uUQwlDXxg`~(YPatb48m8LVi<&=i>5^E?tC>70s<_CK7#ct&M?hRliG=v+ zU08~J6bml;vRxgB>rl!>neBaL!TeQ)s0w*+kWvxeDWzSsIwRUCuBO96;2#Kt4J|(l zD8~NucWufkp1{esGYZ@-a{G+V5t1O$;|rn&W4hz<=LkKkoM&%#y@5&q@RSaW1=2-| zM=J8+>n1GDfo-81oPyv~i}`{q<#M9&*iR|uU#5z_GHKt!9;cGe8MHJru4?wWlBM}L zMdgJ`b_+5h?c~~4PC*#txS=4f9{(P?C66W=<4&yxdr)ehUDGwLOZ1|C^F}FUq4pP{ z=G3sLN$1p7%3l9j!sbTal>Rgg}m=pUVo38a&;gmf}RaO_=>nPNU6EU+FDMmM$zDvHm! zP6i2dGQ%bWQP{N9^6d%w)!7QEszCMmZM@Kjxyzv zwrNSsvs}<&5FTj(1*%By8sIeqi zYxqr-`x#4QBCMW|J``8v9A%nU?6MIwbe@-1TtQwx?fI^1BxR&mamRz-S#HFz4fpA` zX8Qw|7SFroeTic);PJOo(#DxjzK?z7ej3NvKSBK_<|wztTHOuuaXc>4v?0@vz=_xS zjYc@QQYeFaKQHy`ViUcpT*fPgt>M;#g*b5ZE0^quMuK4{7k>V8+6`YA4)bH%in@Fk zrCJX{^iTu)E8oPmaz{lYXYUccqNW0+mT>H*(-;FW*r@{RI}-7+coH{>EKA4dikx%n zCiQT0hk|Nz_$MQ1ubA6;acH>wcmLj#US^bzLn@rIxcy(J*+Y=x=@uHX1>fYAQd^{8 z4qDoOPD~o(^Pcb~u_;5h19L)3X|fHtDbfcS(TTt(Lk0O{a=x_)!y%u{0!mZG3B)B1 zouFNsd3S8S+l|0lqb7BXUAj>Sy zoqI#`@B3+$1O)k}b`%|}Ol5b3W-Hh_?dhMd$+t{Ij5C#fk*onbPV&;>(>gY+<&0hZ z3{VT0W!#xsgFKT*H>DD+DPO;D^Xvo~6r0MJZ=MdHJ3KPFvC{dqTz$8nj4o*Z>qPM? zDx+SedJG9)LQ!8|D~-(*-Z=9T3&UaLP$eEYkoh%6KIF^NamlbFliQt(PY{&J>4*ol zOFcO^Ajvua$?i_d+wyPgjd9uQe=tKCM@(-ZKHZT zNq+`QS#cY)Kff`q@N`V;%9jyvqx2lVK*?&gIs0QY1PMo_CrpA+g{k?q--)zLG<~sJ zb}A}LtLgNMq*0XZS?N_XAyBpimT4A074+tVMilhb=SIQ51q9h-ETu2TO02uv0YdvM zhi+w=BjdDptpsKu3nM!h$}|C?3=#-sT!9Kk>+aCP?5M?*|IaiBk%EJ`1#4X(gNc$M zdmI=(WcC6!hfff7>QbCR@i?gf-GE;MqmhG=jh+eyp8szn5ZYHJu@8$?dSmAb8D+jZ zLq?h1C(uUvA)`!i6P6%1L6n7n-^DlBPr;Ny(_<`JD%?9jET-Q6f9*$*QKs<%N0^4O z=wC*eWRKDIZA-`~Q?*w4MG_cgRI~XKfl+4MtxxkvxxpI{7rh8~)sku*fF7o?;119;G6>w5>8XCO7;$NgxHVz6BxHms4H4HHuNvt1KVFb0&V zO@#%$M^=EY288Wj^~L|At2ux9M^|(H@?CnKJ(i*3|NB<7f2EN>eDWXsNN5PF@yzgN z6r;zm1$3STrd7~T)Z^)4@kp)r3wP-0Si@Wtq?Bqv$n8k*`eOQ>pTONBx;KF^cZXt( z;5{${TedZ}Xp8iKYgbp-#p1f+GOK5Q z8DUpH@g-VvVp_Q`=aaA$R&U;wVZG+(FouLZJtQyEn<=&20>1SDxwqi!b67wSlL#W} zm9?Q@E9`{88#Cf82FaF~KGZtEfh;ColZ*xI?>l6d5j_^&5C7+TtJ8GQ&l!M+#!_kI zwcz-ne(JFfojlA$tug zsXRQdyz?Vhsv{X1$( z>i3lO^zt=q9W9ld9NjFyU-tIeke6TJe*q?z-lG5j literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/MetafileContainer_lt_300_200_wh_120_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/MetafileContainer_lt_300_200_wh_120_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..8ba010b5f2d3c459ad24de06e72ba70eca60568f GIT binary patch literal 55609 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/ObfuscateContainer_BlurFilter_lt_130_70_wh_180_70.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..742246a3861501b707648033916da39116b20027 GIT binary patch literal 63970 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 z zKB7#{3oNM!ZI#w8oF5l&l~C2;B75Rz0|Xnx(BqHCyGErXw1Jt|`he)BlI#}y!!RkZ z&?DEqYSv`k?N~x|#lwkT+k+tu=v1Wb!TYgeek)-@sIkN#9ma>0tH47863L1`{vU2cC z;Hq331)e{-5`00iX<|XwxF+6{F*sN;iBSEWTw|n99ML+mnzY${7=F}ZXuMu+=;}Gp zxhBwWpm-S=gp>&-PCjelcH$*$V4<6ryN|s9NfS@nWygLe8w6}jrM7a5gxHmJCzM9lDlT9)dtjJ1IPGh<4H5lb4WCekySL#fvq2dqAndU2);x`g z+_iLOmLt1|fPG0!oj4(zuKjs$@J3(_pU`BD+Mp4kWbl{3)nX3bvr_P)s^0)h=WW6(ApIPzEk(aS za{uJm&uV|nW!uS*ZY*r~nU?;%9iZ3Tvo-fYLMwYfJbXfv;sqldXe~MZS4TV>CHScP z+1FGO_!ue|$qXw84~2`9i-=m3nLVb`4E6R7^wrrLd9T_~a$lZ&-T%tjtYe>yVkm0* zvznb`NobeAuvOHGfVAo~J?HZuTOO3BqP%0tf2A~G>#*mHODax$06OK`cG}B$(lSB# zgg>i8)`tdBRDkhj1EE<%*%8Dgb{wHk%@2vK&Dgw6#5(L&$nHduQ;c4NPg?=r(J>X=XW^a1%DFW|@m3fvnd0@!q|9C26 zWIf^8Ubne&(wHM?(sy3pwK{pOYNYr!jFj=c2D-%*@uZr}q$ZT9eTXwysp|$-6~CGu zL6ui_G6J;igmPZWk6yIRI*5c7|lU+At4s_gCpSYlfiMMs(|lvh0KMs1IoS zoEEpV4p^#?mb1^AWBWf?B_Y7r6WIb0~7Y4=pWZnpOgJwuCX$QJUy) zx}IVtKO^xY={jY~khy`1O++X9)R@2YeSTvej|+qH_wZV0a{EC?={e*=i`A;Lw(v}3 zal6I)93qgxRDIuS#ahLiJf1H(5Ep0GaQsg7Nu2vp@h_%VfNlxTFipS3e9Z?=6pYpX zjpHDbhO787{=Ica6M)b@%wn0F;Y~aEy6_%pcpXWTG&O$ne4V^=AePtN&Up#nr1cw) zFfm|0@?PYA&^=|F^ejN@1u^CwW8Ejm3A>U}H9wZxh`Hn%1n|*N{e3ER^R;0TvOJ zOu_j53%-LcT^hSeAH4wLq9^%=YC^UBMhxszS&;MXKMqS0>^zPSi>R%JNCbS@z>g+( z*Xy=}GjbdNQ~LLWML_fTp5u z_jZc+3_sR{PTMuNvDVQ0X@AfjGg9SBO{A&&qTA6{KP z3N=*QqhO%XHE6iN_r4H867Gp_h5meQev}1zolS0h%}TL9NaU!`1BwLRq|gdM_ij>J>cQrFV`4@4vRi$wdBsdrQUhL*v9AQI(YBoeGl zTUSY2URUXcnX;<7zLKt)mV)vvJw6+=v-%!1!m!n|sic+?* zcllQxJMkB_T8r$FrNUqZp!II6DjAsR+>%#U)i?Sl*=iYVA!~;HWNi`>5fBpoFYrMy A;{X5v literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/RectangleContainer_lt_100_200_wh_150_80.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/RectangleContainer_lt_100_200_wh_150_80.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..57f63038101e33c251f086674c2595757c7619e3 GIT binary patch literal 53749 zcmdqJcQo5y{68MlsNL3T&AvORt@a)r+M?8~5frsYty+myN^3-`rFOOU2uf^Gl&BR& zM9mTeK`KN%Q*I&3*3YeLim9m_0V+V7UC*p>6cLk zE-kbCm@~5CTx%d^5PtpP`|DnJ95OU_nkI+12?vv=NVom<(QB0Vv^OOUbgMvoq)mh0 zT=ToNe=SXXOx&~)54#j%AJA@FX>@mKH}e2?v43wPT>FN)_f3#1VpD*kEYatH&&ts+P|C1>M{{K8wu>}w` z@lc$%JU{3WIbfGCEGHUa{*RhT9)x4 zo8)=w!O$Qkm?r_Fas|T2kxsUu_QT&{)T;wx!YYpl$Syn326GsneVB}+TGsRmTZ~6< z*lf{3l$Tvy*J;om%4tURTj%H@$xlRm(PZEh`rsYiU7U9);J2lagyWE9A}pGoC2{wp ztp(Z%?dKHh=%Yl2u5jHG)>~1iJoEzOEH29VN$F56>Ufypf-yB=Jj`#CQW*MW`r}q6 zR`m7?SM&lO1%6g5Rx=Z_7m`Sq;^YzMV}2XP&-^xp)-8?J?bnK4gAXctkqkTS7u0R; z*oN~K*=u~5qD#PUzs4&u4Bpk$X(~NhF||S9=DHh{zQISg0N-v1Q8%M)N(KR6LSY)Q zLRLZ&DsEMBUH^V<$4MLVX#_AuSZ`5q5v_PBMq&#ct`pzp zU}to=_&;4}qeiuw*?gA}cQrT$W8);ZNY#9q+R3?T_Jlbjsu#PwxurP@nD8DRGg;ds zAI4O6L#9Ra7Eyl-l*nQC-m;6?*)V1J3+PQFDcvzqd!tUnh|m`!a=u5ubeQt=Z6n@oIBj2-cxEX#gN0xun|;HbOAZAyhkIum!TDns)0N4gS0ri`;a zSJSH%@WL<}v5c-n*JNU{J8b-tZY_#!t zx|A)0$N6Guu7I4;W^mqHIVz^g$1)KU)<+0Sr!f{uBiD1l=4-kVr@UrgNgWcJAZr7m z@yzu~bVb`hoh&C0k~ZUBqf^>SzD_;JZ{T$0_#-0vETGGr>C2Hu>AmNG9FE4z(@Vmj z0C{*S=AKW@|NU!=PWC`5u#UG3{TG&Jgxee_pIS1cdGRNR)Bfye_kgz3q!{Gb3IlZ~ z-DR`ISFU_>Eud`clz`l^M}>9twyCLWF>k!L(q4bnJ*RM0BSb*Yy-_1pzTuvRBNI2r zE81K`fC&zU2Qe&cL}gG^A7tN43Vj<+#8HM_2f-YUx!*p<>zClEaN&M?>h+?5>|NfF z@?@l;AJ%-YmfG3fiG47i-IUBO)~FEcx$%E^cie!(*ngXTgSZm?3F(ycI2X~i_mx@q z`L0hufYjm{x=uz{e4$mA4fzl)H&7(aTXZT_m+C7g^B=>YFT2Vc197QIT*0eSb1bZwU6{Ky!Ln}$_lpIVbq__HOu;?-vf|C zb9Hw-0KeLA$AAH#*UG&#Eq6DWLw1ESKSq(&3O6eP;>g4f}oekIogho;k}eCi*y Oj}^Ud8c!(wH;>sQtu zPk`LRqTP%dz|<`LQKf-VId##Fr5U@km_;n;;@Aa5vTGy70)_ol>5RclZ#mNsmetCA zL|;I-qY*7xR1aH_gVT`D$teoI5cAC zW2mS77Yv1-%!5e_*KqHXL?SEHu=&AnG3lC6wXKS;ZxzSXzP93^9rs1D=Yx^jYp&_) z>z`IOzCvWjG;lS9h!xBfr0;61?_xt`_)@@}Bj`}B+Z?n*jjla93{W!d9va0ho-o(( ziBi6H48_~bBc)#p=}CP4XI`@``lB&6xe!M9S%8xq{BM}!EuE97FiwAYB5rBWURS`a zP_*1=cx~xy*IeE4n!jd15e2si>Jo57+>)x>`zY7c&Dks87yx@n_m=)iTfMAQiK_QXA7;Cw+uKn~Rjwv@#q=ow12dKLkHNME8~Ok%_%wpf2ib0KqByKD1#1 zFI1onskg?bL|t4%h}sW_j?DA7e4J%hiPbusaqZtjh&uVs)E6tq&WA05``;Og*fK$A z9ByenT1gpp?om-)0__iC0=iERgBBVPBKA6m@ocgZEd@M5Qw4X_W6eCvoC%{&qB26p zui}w7e5cm8B`ik;b>r9) zI9WukjAn`rHr{gW4~?1*!Wn|=-UVVQF#ONHsfyC2_AYk50IIo>8VmerGOC<){C`~U zy6#B82Ni8r7>`gG$eFM|5}&2Y`h?ccdm)#jI0s)nI_Dwh)_wf(L@V8ePf5fumfE|t zm%dbS0xL-IMdT&66A?pAs+- z$?Xy!%iIAmhQThA8}{ua z$D{C8c7s!|iQQv1*5TjlWNeXWgh(jPj9qNXVXv>DefmTEbRW&*=dRKJ=X!2}vW8fm zS`%d|3mnbs$R6sI9VPBX3|uw`6iYF|n#fUA-XjtZGfITn}US}6k{3%YCvG#sgi zR&(a{F=XQJv7cId(Oca8>cfyoZ@Pe_q91vIub z`=Tr^no0@~jW~PgxjSQk!e%hh@JMPs*e7!>>;R-v{XlsuOJu%=I_a`R>kBuxW}P3}n_rc1ll{m@ zF59~h@(^R^7*V^Xd{19~*F%VPCgI(2$1CJ~bJt|dW1HWW!rjN<+kOP$;l!h(d5l@5 z9%C<|X?O`JsdI*?wj;m8`qpd2u2O2pcDDE`WH^??gwij&CTvAbgAS6)sE*I`kz2jm z3#Z}Hhk`{uLL#PvHGSUd5Bqpr@7-j~K(%si#tRg6b6|5%t(UBLj$N}`yttvb-<#h( zUdQG#$9lbxS!fozSp^0k%k5s)^e^QUGjW|L>(Ne}Wf-(Mvu$U-5T~`2{@u1~fUtO< zWA2d&6R)0mh1&jz;&4_f4|^{C;PY&tHPq({e(wka$;Jub-eoB~PI%6xd-8V>bD6)l zou<$)+zQ%5B^bHAN4Lsiq6Z~@{2-l+b~xH|ubRST`;6XlMtC{&5WH2cdFyO)UMgz& z$xS~fe)a>pJx{nZ($utf8g~UBq9yUPY?<3~g3QYP%UapwCxbs}atV|C zzD>36u1lHbvr|8ei8|Cd%%p#i*lRest*XwNjcO~l`cDT*frmw@yiD-X7!%4G|6(wz zt&E;Bvyk_`ax~v3Fx&GR;DbnJDq>n7}#>mT!QwQ4byCGFBuCoe{&Q-{rg-BWk*Ho4U%*xfW z3yDfPRBU3MdhgqFw?^KmdD2?I^P!wgEZ+#OOCSnKrH@9@bY)WpD_tB^a%}Ra12j8* zd3?nN;)QXtJIIAoz4q24JeSu50>PJhG3tzUFlh1@<$Q%3du_i$0TKHilgfH*o^WAw z6!G}e(;NQcu*;T!h}Cz7)*LLN{CX_>HDB4R91KY{O4HY5j4%&3-tvl4X>myw?y>Ia z!Mo6{>Eere0z5`^6|=8JQBO60Lf9C$LGn&NUUqUuOYHk?%Ic-L@)}4~{J=t{HDl#7 z;L%PY+9}GhJfDu@92dI0mD|5OnR$a|gndK>mgrGt(G;Ka#Tk}iwPI@Pbt&}sls|>A zG^&{Rv;*FwBPX`*#HG`V_lOmUvgTQ_8Rsj-LN62boV~l-%J#8excgvN*yhw7#pABw zk(>sbLHdV9_`G(cmVlu-z6ht#?0F$~QzLUJP6we71%1YJ`!JX^gb^4KDbmc9js1Hz z8N^x}5>sWb?CsmvUiN1o>EFestWU}TXQJ}ROG+_k~6*%tZ$=0|6B_m;#Y0= zlBRC=@A&u!0hYDPGe(pjet#xpIq8FWYN0>Hb3fb^MLzohG1dwAy!Oia_i?Baj6fhi z{kQH#(T`V5u&H`BJ4HXQd`gsszt)JYkJ0I9JE3I%5k-Gx74V}gDcp|7NyhkfE^cWX zPrko#;}xseuU0_NR%Lk>&hyqA-1k<_>26viAr&(TlR7PMtzm&YH-6|)?r(BQufk+) z_ZQHaDSN98Euv?Q<|erEdz@cpizEUpm~KX|VM!lduMOGS!857cdv}7JDt@jqmq><8 zCMI4EUcn94dH^C$3wCV7_!bSNL(HlR`2DMYN2-a8)GKLtW@cRU8CDmuQsq2usw?gI zVfR9@=Q#9<=a|!E*IJPOV}TaIZ$If0NXEq<<8@(0)kvV#pXJ$#G3HAgs}$_~i}Wf4 z;gi7qTMnqiyHMfw7hOaMi8tUh6WoucIZydOI>t^l?q=D++ZNU!h>6bM4nlmWW4$Tb z2Dr~2e}e>ER-~X}8tTHax<7CqNPHf5G2vD?aoDs8r&x&7YJeS26>`t5^M1Tp4G7>n^byEL0F_<%kI6kxGmgy(9>!d*tFdgXda3bMdaXKFTkS3b|VD9eQP z!ak()UJ|Jh8AtA|YY!~-t>vXO&(D?P^fy3w8^{|O>61mPxyP)H=KjwZSf0g&B6TR+ zgBtlSde5&NV+*68?7|KAu4mgB3w#zqSK3dW%ZRSgj+Ou1xM*6#i$&BP2Yy-47d_9~ z(BP!jh?lp*WXH(Xd6l{=%hf#DcRFR^4*$nD8^AIm_iPe%sAc2$*A^&cyirj$BdiS{ zK_S_16WLw1Ge!TL5Y18?d6nQNki#^gN!jtVib!ptuP3n2lCk^kw4EFkTIAVUZsi|Z zEc>`WZ>=31;t$eZr&YvLxVrgTh&+eqBsPtY*UrF(|9F%2W4B{_qb2TUXq@X| z&GGDt@+zg6&HA+K?z3FFt-VF1PSstQo|N}O`<<)u0X?hQ6Y=I&8omp2j-P}@_0$e| z=5J|DyRx%%7#oe8>TbyX@F~$;oS-E-=?qmQ{_Z6`lSA{pyt8MNu%8sT91wr*hnCtn zW9_UeHruD7mW`M0!!1u7F7fS$lc+d+>lVd(UJ1HGmw?HW1aEye4FA*d)^?>?I*EmK zP)HOW20t6#jCzZ{CuIjWW!*;YdDJ>${(=8x|Hogkn$BhHBmAqvpI)J_pomhOlT*dEny(@pWH3) z26F5H#Tnfm$imy)#y%4@78v@$hvEfOv!$$Fd@{X^F_XtVVBHmr-h<_agsj%b3w8$p zgP8gDr2y%{@q1s6^^4a-a&6y9OqpG?<@Y@LhP3CdiZcGZlSGf>)!XVB=XvkKMhA4L zLO&j!R02N#bUP$eB89FF3dT4}1yUlamqb+;hn$$JFwLG8Ptv)>944n)ZSZN+s;nwr z-&GSG+rO9EjgZGi{OhI}oJ)=po#T$LmJ z{^*k*4|Y_;P}%=NSuHc|WG@9DS>8xz3@f#O!b-cMiKiMg^s@?jIm zl7dxrsiK?Bt9mGF9cGjIQO)WebFDaLfNymFeu9{gHRa1arI@0SP3?o=~n4)XOTT&XBN|3 z@e}D}qnyH@I25QF;M;pJ;^b6m1%drYEv{@|H2a%2_eDE){9am2b-V`|e7mgL{0E0w zH8`kn|C9i>7na)nb*Y76;lFCXNgn_sZY%V$Mdf?fM_6zBvr^?$vwoNvEFlmyOK%bd zprceSvZ;#ZA4bJ$W}ugB_oA}8tK|h-jJDpWgzH9R+Zx;ng>Sg@!!EQ4V~GK4u4OLu z#V*x$s{R+_BAB`T|Fi8z|HAy>P{*iDs0Fi$fx~)M242-f{q12koG#_#uzNW1P02l> zG8%))xttO@&#Mi!Xc=J6AS$WH{=H^{jO2~s$)<2qv8RgEqw7T{lbeWKe_=9YE@IrvPyF!HxIUw~nEvzZQca`C1!o+3!WS)`%K)Ny)ahW)m6g%W zV#c*=X61l=1h8xj@+`Y_Ad4y9T>GzjN(2{OI;BR>v5);rj05d+lZ{ER;}0iy{;#+h!IEEM9$C2 zQ2&6#4zElKG5+zUo`@kRPb?b~eti`8S2aBuw6424{pdF3aVRu*pvgEz@aZ&q3Iq#% z;=?8OM}*1f`LpgyZk5N{p2~dNS>+V1!93;YBT}hrzxvOPN@;u%^j>jkZ2dm*qnIFD znw6>;YeOR(?EnrV9jOcGuG54$mhKPAgs}25)65Kt@4wU`Z+*$0mfhqcWKfLTY80!` z?eiIpBS!;!NW|XXg72{YE=A8u@`mW*??{?^1QK)DGPEAj2c0TQ<4E43A8oSu2;!kk?c3e+6e?fu%PcTF&(wJca@D zg}tns@;guKCb@$0Q{cJpuscrq_%O2{BgUwGM6b_+Id}Qz0$KqiyvV_((PiGUvoFv} z&7PJWx3?&`|L3pz5RB0pGl3(k@+{_Hnzh+Z!}te9NG-#w-!x1E*%44x!j- zc~mG;Ap6Ln@#xRcw%xW|z_W)vK9zwdlScsauHEL(@(;C*EVkV(L$SU%CWN#b>Lti< zeGcddiXy{q=S?zGJA^HqNFj1xR0{s88-;sui4Du}3Zb*2+*13(LcsI;Q48FXRcj%0 zDRU@HkIQ#=u}Ij$u4=A*aGBN8!3Q%zk9#$6wmG|-|3q28mXsa#suq6jQ|eX!YiW)3 zbmuAs`HJK9cT({WWUhs@4VBNYQN88|L(xDR&e-y5>qt(2O94{dZW@$`acQZiq73UmBWgN{Ip%X)X)VXAU>q)vBDqSbvHPZT z@TzgA@gW#r5FWN(S8@yo;snkO zU{Uz1-PV`+pUQ~04(x1Aj~@x!hju@&T5lb#*@&DK`t~GE;hE5*dCq-Kv8J2TlwprZ zd-&@!w|(X7Fxw44FZwvD2}0F+(X%j;k<`(y zg3kk;k-NVc2GLaDtjd_Ih4Mp1VLuSuR-wz6C`1c0^EBY!r@{c0<+zgiya0<9b|K@i zyppbtbJV)R^5H>Gs7Z{IWS0ZuzU$K4Z*i2dLnp>=vA~s1Cs#HbsK&swrqn z&DP}&mm2`|>Be0SVjA=1r$xGO5gXnjSN9kx;I(Ac>$N)KCbiNu7nzmoO&+Eg>f$CV zJR097lFEnH6e@01cjOF2)rl?W1s%92hlrM=c zgg}Y$oN}*d8Ajt5L0(nXRNO^7mECq6bY)1YPFkVxt5;cdLKc_Eoz`a~%yTLW`DUk| zZpJpH1%FC{EuJsf)gxvHc0P1e_8C7}lVQWe2vIo24i=!z&!q3eITjkS-iF!PdAs+w zRX_|oT|rj%Mgni=Mvb(;n&k)O#D`j$g`XC{mU6&P=}I^ujeMZXKY)HlahgjW3+75r z^Qp2ih3h#HTY|3#koS~5!_Q^{&a`%bg|iF~v;kd}xM?Mp`zRe3vub#?CoFmHdT98v z##`6AAP2dSyfuf^MR0zDND=v`&CsI+TjsYmbzfy-|7ydU{o|h+0iLXc*iyMoe?vn^-WV#I{Sb;QX!ZLcw*+FU%KeXJK; zwTG4tF>>!-ey3abD4`V@k^J$J)y`4**@)*(cobk+qt0KaWtuxip3aSOCS&WTi&b9q ztvfICzSG}MoM8QdmC?3rxZwHyx3#^nuJfZpv_L=|%D1k2xr}BP5b_e$|Q}$ z%f#uq7j^kf9GRCbhn-GMCX=cIXYKFh)$Ns}0L)E$-_e5(qnC1#6x4FxzoK>pUCHTi zm#J0HyExb$ktnQ3E7ne`jEsE@xFhoygiXc{IHH1|eEwPF(-t)>ij$3%PcPNMH>@|d z{}yW0?cXVbO;ciPIA!-D9ee!-46-fPTF)6H!)YZ6)P_Qoc>r4=K2)I3)*bv>FFm)8}B}6NYqP{R?9Eys0_erFZ zioMS}&mxbGk7;|5MTx99a?Ck_fK*BlYR3br9~njB6arx0rcD*k3C+d7^&A-cDl_D#w}GTR0ds&Y@WQ(#hJ;-RieTHGoi@2h|4j?N ztE=S14?LHFJmZBvJIuCgZ={F{uYTCqI1!+ML->?qYv5l4bmTK{Zdwj*B53vgQ-%lN zu+16Mh!ee^wjW*fqOS=rsr8vzu>^EX9&}D2k}f9@u!bmN@@72dCGd(Jfcyhef{Tj> z!;#*;_nlg;31}myF4R{A|yNgcFZQ<%r~4VjOs)2VZxY4WtBtOF*YE?xKa zYrFboidGr^AAthzhFj_ioQUmGhK36;uYLbVu4a8Uvtq7O7eH{q=G~t$N94WXqH2n5 z{r69KTjX2e{qd-sH4UcM{GL>E$KidxayMuPcVHoH zEhYt{!fhCx_IliD=7VtE6kHHQ6G z?09WmgrMb8k&#SMi!G{lcu&AYcA9qe(&=f3QJ(3B?(gGaeX zTZlK6UYM8QO`7J1#jG!Z@*;1RM$C(4&_4%vt?E{VqLaFua!t`mDpLmve;Xrp?7|78 z;V#80`WZXCT^HXSHnFB5D@v;BNwu!ce2u(68rIG&h{u?R^5$dR&NtEm^ou*kN7E~P z-5wt5)1_xM*Bu~xikvd4+%fou>sA{1-&_ag|)%BIns9tf$@5t;T-+Y|_$k z0-LvjeiiHY^$MJmrIjq@8O-)^%ZiS?6^o><(K-)4P2JAYa9UkS&Yt&(y6%V36%FNo zKcnm$p@$FHmb3r8^0IN|@gE_)4ZI$fKaiEz+K;$r;_*@R z(LvE%ChzQpfImZ_=CxSRz$tAu&{`3U@s;s*(gJ^_oAor zm^2TC^=Oh9FcRuG13iwTPMIo&)qY|Gx>aG5Cr_XOj+5&9!=m+x@ViG^nJ=#O%bn~T*r_oKkxq!x$ZZnCSA+*`Yvybx*|n#tXZg9&Sm7(m zcK6xic1QKICTJP<&uneF;iQ0G$OS!?*F+s3r!zwwI;f)mISu&nFDpD~LAf4X9b{8% z0$4IWKOPy_aql^$uflq6*#Nzc1GhC}|I~iGqHhNv>IKTBZA!l3<-B_h(ykQT5)oEDckh-y$#|@$)GEa@Gq3UT1bw`1<(G|Cn zX?4Kf?{n?$M{$31_2}SsNa2L?w%@Zg5@u*D8_!#pTEg+UjAQ8DNgi_u6jLQ7tXiKs zXM#%;HCm`tBk>%!jvdVtY-^w`Ww&z9-$1==kavXG%u;LDU6s$j%EaX~A9em!clP!_ z1g0s{J=5@~8RU4mlY$W71y+fspgyZbE(90F~h5o_f3fuTaFR#;Bmo z`Zqn=^eu=CV+GOsdBrBLMDOLos=@nr-t+&FIA@7SyLAQA{FFwX@Fb0l{{A zXxh0Ry7A?s*kk07N5fVYe@h=t6%C_ft_1WG-v!*Mz8AWb4h!jXsd;>=vw!&<`K+#2 z&~~~A+d0YJY*zJkoDQbtW3=FI`@(==d9qsQg3p_KYhqv4aZ`^PVQ@Dh)n?&bx;5l!X1>|JE#qg}CISrw zxoNi&e32QqpHm%gJ2|Q}H~!wzl=$eXRCIuub9Fns->(N-56^Mi78%&9VqFZN=Ak{> zI}|Y*TYzYf89B!9ReI#*CG-hcr3vtjk{Q7fdA4x>S*ylC0CmFW`FQGFbMb%cM!I>9 zY-m5nddEVRKOLh>ZFktkK(BFru2PJ(|DiMnH21UuDL0MnzE8EInk^01NI3>pIekQV zfAfp&_fT~^2fk5i^lF9SM&+*Pa@F2#Gx0CUD0^Wmu!#1xe}OI?ME3t zATXU1tUS!i*ouCv0!n4+h*SqDpl=%n(Dzz(QNy)gXl7J1VQJr$KB&6G%VBn$cMGyQYQ2q{|Vz<)H_~#$wj4$>4wFI&Ft9aaK zH`SZvHRxgs@rw$=}TflbA+a=(9wF&N0~%{pc&0NRFZOF}Nx+RfiOwTO9XT4AZ* zc?ql>%rncnd51%cy%$=}?_M9yUIc=m(Ytfq2a$W5y4~fSQ1Tfz{FlME$TEd=Da>oa zX@1j$1|n><zY8wnp2`zaF8%jK#aofv~jyK>$< zHT&tpmGM;EHGeL<*Hxl6j(Bb+i-~|ddau)2_34I;eAmBPiJ*3z8TV>ekns#NHrD5@ zzYmuj^Oa+N1WpoxO^OF!i#qv0aRBplkK?wJ$mFZ%LV&|QzH{~33@==b z1Q2b<>_IVwUhcwkvzw-u*hxmp)eq^?W)@kY@HKAo`Gd!@u|%xZUaof?+$BsTS16{&H_Eg_~p5k ztz)rdh|jGNFcE9vnOqC`qnaLUD0LlM3Kek4e>`s^toMnawZyfAMZIL=9_{@nxfSQQ zr{3u#iU=Bc(MQL@|~v|e4%OTnE>Oh<6q(fA>+AL{P)B0o!w9S zbWEpOEhHW+yv-V-m^G!5liNAPKGz*@;g+*rBg*v0eSNWVHe1k{ zRo(N?G{|{(z{#U3wX0&PVA)&p!O;?0ji%{OG{SD_srnhN84zbTzG(Ox_hm4!Z25!# zbRl-*{;0+wC6{W2#NpJobTzpqd1c@dh%>tm@3iE!xT>fVCTN#gjlQGjKO2@ll(wZf ztHhR1cX!{N=Grwr(6bDQ7Juv&hee+JeSEwU(8onjvz4Nvtg!j>S~?z?MA}m2pR^>z ziXNBIFDgm6O@1tf?+KmmdK3U_`h1#LRmF!HdvG>$M$ z8v=SZh0cdG2`m}zgN>jF{ z+JAKuw_wqAalH}XT^7+ycVWRu03EPuOE$s*moPq)s~|JrXNhGt-qai}VR4R+ZI6=Y z1(HKLO{$h0244LDU)EC!_!rfo=n~{q+`}JLT`8r3@^uZ!!8VF%&RKwXo26N6&}sHQ z)cV|ocBfy&>zwAPM^CVZ8S&47GiCQF!~hfOnjj}2N#JCyAVIg7EI1=icfKlz-06$*a9~qpMB#<=ZCIVA1cKQI zLaT?KNVp588#>O}p-#H@%3s!P7AjUVJcx$hsu`1ujdeB94#?!_nYztNO~Dnh2k=-gv%|$Sn(Zl8f(TlVSl4Ur3Jl z142s0j^BQV?}+Tmq-SAaaUzqo^awFfS9)^`pMW3Nd2D1w(Z`f``tzCX=f7}@?P=Ct zsa7lk7?9viOOe}SO?2msqs>fp zBk9~z?H4M=e?PUq7$@|0pNuvP`nXin#jy_xtFoD9YQ!q#$x^_( zKME|HPLp*PVry?5e{`ofoY)}2_FK0-%2ze*s*9eu>&t(L=+~RUm!KEMv=i^JdYpW> zsK-H&h81n#8k6hh-B4<}7&5XvX}=fy_L&Wni|U#QCK zMo%cL%>S|*3S5cw*9l`UaXhY_D;MduV$N{?*U$aDm~)vTQx0U&q_8_jFAk}J=0+s@ zymkG+{D*bvvZZJLDe|rJcQ>9us-I_98s!C_^k^O}O?`WFt>tVJ-Y_sK6kM-!ob)nH z%PB-&HT_z$eE-!%8F%Pgrx}w^fl2xuBil-&&a*dpBvvSc3PhLro6G6zdwXqxs@=J6 z|KRJeUSjGKOkksWJlm_29P8V=0l(yTz?U9wyzXH)br8h3>*p~lH}45y z7f+H#C%=p_yaMJtZW5B#ym&uXK_o82f$wFRbmv$+y#l2yh<0A&Wqa^lfz{lbGpZba z3Yb)FQV}|cFoSt_JJ9;dS&$#;rdMA$U;GmP+2LZA{6s2-{JZ<)Q3KvbPIatFiBkr& z7mEE9A?2^gVYjvd|6<$c*2}Z7MxvVHWf@YwcOKF_O4%Y1=rscv5_ zB5gdq#I;nd%mSg9z&D4Wm+(5+Dr$|80Lm6!@RB*JAV)9JPC(WDK9_h zYTOY<%Lnib7?iuFz4b+ia8bGOrbP?P!+my@T9r` zYQefQ56Xz!ZfrIa@ow%82;Mu^oEv^iKhSeQav0w%y3*n25pnVfs^TA}R!sCnmbdU3 zbw7`a*m=QWh48f5>k*xK63rj9|GgDxb98p&>0a)JW0*Xz--O-&dx!rx?~oRw0s>Eo zXkA3Syo+P+n_QdwRo*;Ea7(B8EZx^!s3&})!_fv*r9JCRq_b@29i zv^Hs8ac`zMf(8pn5e(>T&>HK6Q}Es0;d}l3h9WJ6D*p3N3(@xeZO`3+c_AZpU5B#- zwT7KbrdkSwR<9R@{xneiO0Ey|)*h91S}<}o@O@JSyV%6Djhe z=($W&9ov7$Li_Jk_9dY^HSygV(O%&Hx(C1+-0w4aqEwP5jeR55|)m;?fL?%p{>UM#+0!7t(8SyfHebn>7bC9M~S3Mv7 zd6h59e+I8X9Db+cKfIbSKKzp0 zpiN%Q9Cj^)Ds$Ihn%_5h{-f{f-rKNIKZ1b(qbO_Qo^9#4QyZ% z6e$FoCr3SC3^qW}AW@d>lwH~ZGSimErc)YDU;P`En8BZL>)d|sK8g4b9E`ZGz5d=v z_VRDTUWyT;=UFMm$}x65_rY=;5z~IUD?q$e#ZSO*{2)R_Xclt+IqOxr6+er;9A);>~KJOu>o|N5ZOA&E$(4zY~FR$VyCllyzB;IQmiR+p1Ij@ab zT?m`CyL{13YQhyG7Gx)F-ji#luo()+YU6Ex+i0O3n7x3LVrLS<7Iu$T+M$1=EmF9V zrasn@qaj6aA*O`ys+)?vSTSvtX8#wpSgikqfPh`ngsV8?sBI}ywy5JFI^()6LqGV zB+8Zrr9nm&GO~LE9YmgRn@~pBz66ThR`e|mJy&=XNkAw}@-c25IZQP*`a6u0r3tdn zGskQfB`@5uTRiSjY6_f_2nc+ed0`c)Xd?AQ2cQ|iI7m{2-g}*qD~fwM0}01hGA8YK zqMRL!XV0eX1B8Dwbs`T0pr}9@zCm%VKjCXQ!Zg>S$Gpma-ya7{4?M(JoAWD5vhFwN zpGRBHZTlzecEUUzUVOQDRXZJdTfBKEqR8Eo{yU7I`* z(=DYgQTmalT20LAt1VaOp*6;t8PuCzPsfVudi^_JLC#8yzniq=O7;uIfrf(&zB-5h ziTd=yS$+oEixjoY_rGEMkN#HA2Lz$e>!S-<$wCUd{DJ#2+K^{#AN{dzxPxG#c$jGR zL8LpY!B8kOgoEJd)%At}AMDUbju>4-Ty-=$|4gmBtfC?r@-8I&cI*Q?eYU%j(#BgV zcU03lVewZS+7C*uJY!AdsUqz0`N8(dpLf;rxEaSlx`S*!O;EE3qpw($e@incFYuI2 zE=7=T#T(cawilQ^Fj_A561&~#TDs!}euKXucRe1eMW!qhS7kUrG3ip$rmyHjBb`j1 zK~61Zj1d|8eD>0W-^j9^+^i+^wIwH!WS82QJgxeE%sXZS=&x2k#|*4;8ct(?_`%Lz z&AL)>wu!dbg%cP4=9>{4!w|;0Yu#n8K9-p$!4n}uH{bMR#GH@ryuYYh1YEQbVLI<^ zf`~^KF>mp#T(lz*Tu~}d;!655>F!Rj?w%`TWuNDkftpHGtit+vzU8sr8f0^BU{ZU? zD8j1bmx$3;lRkvh|I0qv$36co%ljL4>mLTvxfDwDFmSi-5PmvZ^+GvvXB7akXm|{Xj>M z7auYINvPQf3&DxS_>rfELIhLi;`j4J?mWnuI%Ordrgd_U1(&axplvfjCu2%7H=pR- zxZTQ^YxjX=o2)!J?I+1~7Zg^q2I5~WLNwdO)1(HSnf*TJdL`Riv-I zd>$jPFZY;$Wzi1oxXyKHGWGXQ1nPzHL=bC}mpb-KWvt-Z!iQGtmB`g)HD36pU3QCI zQ)nJN7V0JX^PfaMbD0g!T4K8%pfKF`qqV+hxG$hnbyR8Nc2+ZX|F&$+8n9;8POkNA zAD_zOyZ^ggt;ny)@L`f1Lvo3^quBj9f!L=TpUUcU`9ZnIAFx0jfyQ6f&c(5JY(74% z812YP?Ff6g*k4nd6*I55+R3E#(qgEO1MiVLyB8va;BYTWaD4|UD%N|vqsaKcY-0?8 zQQ{aILux|`)?t%Y;(nP)uR-M2;CI8~7d>&`KAM7u_tx;8)$^^pX6L3r-$9dYMeg2f zAW_V~>?)y$7~wgX-JDH%y3K>^80Kynym$Wa(zfRQX=h^NPA z@BQwx&pBV6UvIr%)n}Deuvn{CukQQqzEfXUBR^YC^}7H4q4@#GjiN-Ki#b0pk4Y&A z(Y8%3RuyRvZ9Lw|~eNII9(w)Hu5p5G`ZK51L z^)4^e3p2BEbCfg_p>gW=#qvIbS#6ipiMR1Sh~CYQnKfL|j?kVZ;$tW=`UHx5`?_G_ zhdT`7Qas>_)k*GaNUrkQ?OQsKx|{m(?QXJgRzZBG4^_XdQ`(a=V=^((Z)%SP@-R$N ztkIuS%LLmT$u-a+eJZ%@-+SCEP1Wy zgqr$AOTHbf-K0_6j+;c;_ul&i&{1w~;ump!9R%Ck=@yekNxRT1+GDzjar`|dq2sp& zvul}RORT6pyZck3%(;@7^R6-ZD0;Gjq?XL_k5`sBUZUT{ znfEjlXp1*o#c+6GEzDuh<*7fQHv%#jC65zA=&ROo{>!P(#wPj2x{~3b6P{qUa#+5lw5m(=I5?5=7No7 zS2O;E620yk$X0owj_uq_$tpZa*A|a)oNc0nUGDF4j^=mb#yM$iOD}P7=;$+VGw$d~ zlogw?KHhmYdAooJ#^EQp5OnBy(&>eIuyc31{7z;~&^N~-4c5HLwp}hTj2f8m&q+Rf zPE5INIJ9^QYf4rMv~ooQi0aVCRTZA=HoHP1+C-TiG9@@P(QGM#6nZmKJLLgCn z`#x^q+=4*KwTgahFI4%NpXpS;nX}*pda2MSiWCMW2W8A%G08-oCR&VlX1J-@%Y&x4 z*gmlFPj4vdThHIF8-oXl0=PmARQ`1EA-6s_EHmZ}sSEbC1PniMw!Q*1+MEl@1;2*D^V& zv&;90Xk1W7(9&zTfel{6nyP@sgQK5wp1*dtuRA(lhddWq=OL-&Z5f?Z7TEbZOnV7c zd$X($D)Kx8P{=Dd?ItTw?KoYg0&1vmuA{^qJZsRlkrA~wO8ShEgUUs#jLPUs-sggZO zUL*D)YCjv2buhprmUCWc;I^ty zQvo*A__R^w<9e0H>`u7`uEcnFtsh4GUS5C1mi6WE>I86_fL#c3Hk-hD2`Hg@-Ww~4v$nY@Hs$)v-^uBcF0 zV&ih!oi|zh%5$~B-*MZ^2OQKA>1py3kA6C@eQYo9Db#i$Cq?P7DCkTL_iFoQz}yya zD5(0F1M92K^|Snr zK^q{m9$WKs-sgxb1t-lVVAq}d`lFts#o*ZUuKig%U5aklRRT2HE?K!fyDRpRv_7$3QPv>oz@kPen3 zv=J5J;Dl5E@FR|cJN8-+MWr@SNc$I-zO54Cb~nGUKYSJ&E~`hM`xOi!hdeKLxV2cz=l#Q_MH=ZoI1T50~Iyd06g ze{0~W_OeXOYsQ0W$zE8JlD86wH7ntw3I|YKdH3`J#*Q?kjuZ0~|Ngt^@ndp!19QY) zx1WZwFdlj9(%pWpE-EU~zTvNLh9&=jW{#C zr=eZf3p2cpq2O2t&7YHmmfIl2cAf62?{jD`Um*=ox|=c-#DkKLU&Lv$`mN;r9jTLD z%^M=7Gu4yFhq3^;l*Sv0Kya=U08w~AzgB)K zt>i{=#>rPmgJ{?*k3pG2Ja9?xIv%;=_30c43ogmBdW;&`CJoJ@m7_qbc{qA42yEdc zPcQr3Y<9!ECE>;`W#|tTx+IRU(N|wiI_S&=?p>T}JZRc9GdcrjifKVW%&9I5AFH#* z0gMa-W{-Z+eE9jnjE{L;90==`!^;lq@nC5KNPxz&H)d`g5e-6xepWNPNG0=#3&yv| zSOsz=L%Xi&ETCOMfYF`hSgX&aal6x{2Y`ePoltTIO@lK7 z9iS_w@>^etII&-SFDnxYGMpfAODQRVb0D6?8E0)uhF$4QO8$`%WevlsDN~SRea~wD z)k1VTJCu+ReRoK#jku2$zSa7=3uVzJtE_39-1$cSPh7KbiuNDprNL|8EZe#eggvn-#jI=)+$P3u>c3va->0jvH|#!vj#E;spjs*GI2yK&66K(j)(ynaPY+r$ zkX{|5dRYEEboiZb6MiI6(}ZOD^J2*%e4d3Jwb6$mH|kZcTzVUuk{t6T{qxtI>Q$J2 z6zSAu*+ZpJ6dL{Y=kB_0n0U^T_eSYIua^qb-Luj5wP zO}|vVl|R{PUy@bU1?`9ieM@z+7aa1c^4XkSNHTcJm-2(9?=k?`TejCD2y=PD$1Ad* zTU2#pK7d2MY&8}Wc6C&AkV_EF9U(xotd{!cQii(O= z1rp&291axh!%tji>i;rMXr!Pe2n(z$GqmLg*np`itrspAjNiN#FxRL7qi1)$n;94Xj~vUy88^02p_ zMgnni6nzVMQ~y-^4KkwR=k^zt(EfKeDd*xuv{H1@$X3JyGHLk;hVr4Wp8MMX-!M)- z;DZ3~M~bHg0ECb_^dfuBtRGh0Q7u85H>1TU0I!{BRlAvIm;I&#+oFx-xo2v^FastJ zXoHDWyjrmj08rs`5rX@u%Ipt9zGh%d6zT8K#{cVYt&obK|7xBjp4jT{L$j@V&`pF$ zkN`WytF@4^B!HY4N?=7`r1zMvu?z?c8znnMcgXwtpI$dL-W)xH7~P?z86p0}53m$T ziMk0Z{?Duaw-~@kfXbNWQeRXH0;sRBpIQQv8aA8#7d5;<#`T{92M&9VnR;kL(J@lA z22Wv2x5C~W=E+L`Yra7n0Ksvu>;Fi@A65HrR;NdIAFhSqF-^UCfF4@}KTPGpTR>}X z2(0b`5Y$ou_Kk_k!tn+l*KKg*De>I)o#$sf_GuA6(DW+U?y^N!EQ|Hs*ITc*YCJzb zx{QZO&4Y;t35Y0@bt#M(P7%I`P1bo7;$Jb4L15MTP$W-|mRQAp_Ry3G7;HoG40kRO z&|IoFThk1x;q;{{ucVhkpi&_`{RFu zsR83FNH0o~Kb96qMy9leSpV5P&=>jDSYcKS@`Ip_o$U)0tbw}&QgQNU z`%|vMV^>^!f8h-;7k^-8(EvEGgKjif@wf)YfHecsa%K@13BOs!DOCRrSEVDr{Y^|- z9@t&{edZwF>MldD5KPKyXms}Nnl4QjTOhpd1f*GwtJspS*zKI6LfYJ`VZb_6dy0pc z&BHN(&8j0L9=eod5L?o)oa)%?B{l1d?iH)IF8_s3r@`P38g>7l_(wdTXZ8Uk*X}%p zZ+BE!-*Bx`$8S+$?3V?GD*A*PN=!#3X3+rOOn6KbV8d9Zll8F%9L~S)5*G^d@;rWp z{WD;|P*Z2BH_Inj#&2c4?rp?5!9tIrO!c<;<*fD$W+jHI1|^5SnW0|5>^tg~1uxau z6(0vxCwwHype6Pzq%U{V!$>;e-<Gx3`jxc_g13Q7YE zc`q4mOJn?&)=lw%jIuvMMI?LgM(m6_5elCPeeDcwyU3G>&GO%<6Z8B=``Xk&G$;RN z*&iEN39L<&Kbt|OI|`ptcF@XYGS^e){b}Cm)QC0PyhWs}c;_@PLC0bJQMd%cb&|T2 z?Lz9I^yNps0y+QI#O_8&Qf}H`^>b({{=d>%AV&)UtQK-T1|1vb)3OxvkW@;B? z)8RWk*6O|hrKh(A)pR$t^EDn}aOqzMx>M^B`Eq&U5&!HK*yhK~d}h?`)E{L(GgV9N zxK(8g0xar6&4&x_Gb}#SCx!9(wN`73n@O%`iLyCOd3q@S5gMu5zwwm6TmRo-nE%6#`X30dES>^! z$NOu*>XZWO9hU}U-+wO_bpOqubicKtjtSc=vvi+XSO;DPdVznXw3CO|uS>c>H>ed4 zpKTB8>s|*MvUw{G)E9Io0CP}7R({}S&^WOs_;E<${~ZaN{tn6F+3}`utn|W*1+Xf! z8l}kp{(i4R29vJO>@yARc&NtmS30zlp#w;%jLk=NJ? z$-6Qqrlg;yN8x?JT2Q3Xcae6%avrxb2;5JD%qaZYDgT7IMsBmwV-fli^Ii!QTe!fc zGl9Om_S!P_#Dvp5<&D!#hlN>+3kEKqAqbl;|!HZ;t8JBFFdYQMyY6((pB-BuHYgg2_fe0 z0!YWzEZFipcZTDe(|Jo=h~&xv;7Tj)$Vc+WUNL8f7cF*S@qW4x0LI&C+*(RZ_E)Um z1%5<|64?paV%ICnZc&WsBFf)i=%^ivq0is^NPkD3Zbp+h+p(;!pad4TgI>a|uqOSr z3SaEAzw%s0aK-)|Cf9^H>JX+rgsWY7AN7QF6K7~n67O~YZWJ{Uu{pU3KC0me$-!R4 zen^VLK8jha8hhGM5nZ63EIC6acKw5t%d~XGhFeE@RF}xS<|{%`GA@B#@Y%*Zv0cFT zlc|VhgN@GkqGR~`5SAotWAAt7vAdq%;)ATBNF6fuKc|OzWx$N++=zsC>i z`evxpp=cn|e^&oYiR3a;+Inj3Ln^PvP`)CAZCQnF#KidbcLW7PqQK0C4KxI!jkY^sB^#9AvUn?M{L z5d}&Nsdg@{V;}!)_S2-tk0yz`By$f>W@z!Vgg)FhyPtC9DBGi-kNzRqGCd}45AMky zBlEN7qz;qG-_Z5&wMr>WpJQbAM+?3tOI~NSfgkf{wg?#L?hHL!ISkFx~ zLq9Yp;4H=1fZ!-MFL;f&RS1`z# z;G4$}!C3yTFeKsmke5`|U`U(ptk?o><;ktDpnhsouz|Z^H~zatn$qm<58?Vc56T}j zj6fCpAY$xjLUl&?)ab9w=93TM^X;wYyNj8cJ(-h>wK|fqmWlVut4Y>l{O!nnIYU!>NwiWn;zTv$vz3#c9prtxP z^VP<@yH!Bm^5*yJ48LuZ)!2`bHH}qSD2-$U{p~P6E8IO6-1gh#xU;+iNNv8dTMh(`) z{JL0t5(B})kreAQHC${9OtFvXP27rZDtpjod9Bd)9~HxY+UgnUALC6nblZs5D>EP`uWA|e0_GSh*kKVb>T^W_sR`98PU(LBk>g=e41nWgY!0@i{8P_TA;^{{Px>H9c zqJ=sjt|CiB1J}q^O3?oONL8hk`h-~6uaA9Di+)Ish~O^#x8>x99#~hbAq??Q0AErU zAC(m_=1KiPNqzXsVx`3P`C}&4;87VSe}9{*$RN!K1(KP3ZA@vmcO50#C|8`{o~>+)+lL% z#xDh-u=-G$E33`(HV+jQ7RisLd^ixXs^0<4yOEb7Tu)^Z9g=yJdE43d=BEXpK_o+2`N3AI~bi(3tiX&ocqPviGQU}Z?j-fjV5pe5@5On)b$10p5>F!k|awEu1Y#OzJ52uwp3 zqiVZLNdP^{7oU!Jy%e>qck%C}1)x2N6)=~Gd;pmM#48*R-IN{^l5GZiTul*9y>~Nc z%dEraiD~nnhh1e_R-w4}GLH$nZzOtAH$dEnAF9O&nBX7AXA@`_?uqpP&{2@s$Xozm z=`2Qno^uD57oCAAw4-}R#RD7w8YISW3H^EFe8a2Fl3Mr==34||bM65s^q(8zRd}(C z|1-wCUovPb&|BIH*t);FD^w~0WZ(jDG#SB%RXa~TNe?($yI_#wa4!iyg_CGpFWAf2SO@TZwmbhYZ$#& zxc#l!$l3A__08(D|79>}0DztW(fgBFk}=;DC<7(puMzkc44qSl8H(Dd>I}UEd_@oq z6`lKK%FjYF2_Rqp`LDx9<>h}1A(C~^zY!wY28_X$1Y#r@J05}@8~9&UZz5P_{74hQ z!=ru4LPC5r+NR)Q=UcN;-(X@bk)F?1BF{A<%q;uc%7TfbQ)W8oL$^b=#oiVn5NmbF zQp}mo$i*6DkxAk4ZrAY$qF84{rtqWA$Zjdm@Lhg>{=ZT{kgUOP(|=B`5(IDUt<1pS zyz$ga*OLWB?AXgYAfq_22vm*9=nrvG3>EvP-&n)P^{JXTtv?eIgU`Hz8T((8A^l@f zwgGG>N7zqzXYo<-+ne=T*Y6n4gQ9s5>*vxaEuiA~+dV(-|L=8x|6|Me9~dL}2e(uj zh_U0nT-mcjG&WEZ1R&?T)BbqjA_Ibd7zexryTKubFPBj0|GGYY;g5ID^*{H!{>hp3 z|C|WMAm@h6;>@{S(<*dm&%Qxcai)JjUpI&@8iVtm&L5pWITh{yLIjl1Db;&f)xjqA z-Z^t_(kav+aOAamn6G#ECZdglB#2&boDjv=?>LHGFH$Tpv z9DjN;capC#GV73kZMS77&f6gCOkDV{&GR!BFZGw$#C@NHL3`n*d6+$|Np-9ac4s=a zXUsmj;SVQK+S-UzO&m?_`?xb|;aCAF;Vc|QgX*mCf{v%D%S!X1Qj6G*!h@`nT;Ujj z1jJdOA8c{&CV3l_Ax15RWa`B6+~S~nKYhffx#kgK$@Xcf;z_&klPPZ@bLr&UfL6n{ zO=dj~_B3_W(N)PDv5xVM)7q>+pCV(NHgBWL_#at8eiRt9-Kl=;Uu;WJ^m$YllJniH z`JlQASv5_tn7`HZG{ZN?j!=D?+dhLNezj?5X?=t)U}4E&^I)OlDBQu-%e<@;sRv1Z|W+pX|?B64k&B)%szaJ_DAH;{9b>x#oC zGpg%L-WelB;OXj-ptqx^1LgruM_*lG&lf$^kE1|7pEZCwF5e@SAP+T4S2H|?kvq?q zVRM!bYAjw#m%!EEPyteNi>TXz{?2VAX@HyBUa2|XvDfDTq)VOMW^p_CXHlT(FTM+s zUAs}BXN}2GUf#nFyC2g)Yfa!n&&V?63HRYa(a5R(#GI;uSw9R$8zm^^GhOw#{opHLZ@B@f;#gL=o@2T}`?@xhwdmBqcMr5+M z4j?c@05Vk(C41C!$SU>o9GM7Lr#k7ZT5kdLR7-u~Y=r#S&j~(9zLon&!EC-ce%P$U z_QRpZkY$?f)7q)JM~Gvk&7v%st7A6>Ise6F^v~fK$Gt37S^pL)NVj}YM#Tg8Zw|{5 zY+?shH8lpV=h(3)a|t%4bYTa1t8}NjPd*|~lTy@@Q<7hU{sFQkaKt{X7g9k_5|1ZE zTGq*A?uvf!m&+&A$ELr?$>$Ev8=tJFqOUF1tWQ2Vtv?rRk=ncxx!=S!a6J29uPw5K z_{YwFks9eU+@WoURQLk&0CVPsVb8>=SC_JiXhV1|2`|tu@U57ir_^zWMfxV6>a2LY znLSTXT0R^4_vcw&5QJSx@Gg-zXgVw}9VtUP6??W*T);WN#K1(3G=@#fq39OtNk9=CMKD7Sj7Aot0{xanUS}`jhY%5{ofR^>tmN7G5|>#HJaz zx}-3Yj8RRQp);vgG-*0~T`C!(m);`0ve_oOHB?wVqCM>me}-j`xV}uk1gc_e%uiNE z9lA10LmBO(Bh4$6p88puoC0dMU5#-yC(h~t%`BZ3%ZQMePg5Td7uij!6-?OFoYFF~ z#-E&L*>8IxisH7Z^DJLlzFMa>ul%&kaA!Pjpx(lnpI!`}fAlTRdy|Nd(GyY!_>Mk? zQY+ThuUAj0E?eWz7AFXkIHhkx%etPF~p3n%G9624K@-$CyEaY2mG1e~T>uajo<_pN&dD4fd8 znG_v6ezV4`?*=MtezI-DNC&KoH=lHDAn(%K{4N!ex%2Sr;^wE*=@rqFy>o1pAD1wB zCiFBx4|2S+i6}oBnnUCVy!V&C*RUxzo=JTTz>RNC86lPe z1FMck0~t@@%z-D((sb~Z$fqUMO^w^g(TFr|%CB1!Ese#q=Z)qkl#Wv?7_h6IYBqd4 zIA3OAYMv0&hfIL?ubE60>z>z*AotDHl<2xdb`^IqJ|is{72@hrVW*;}=cBtLfEP(~ z#N^z`$80MuD}Pq!9HzTBdS2de#DmJE223{+#wCtX=s058&L zNtEr?q$#$kHCXgCT}o0to)_uxXXpq%;?Lsw{cZ-qBFM*0yuneGZHCvAreAsSxg8T(L}cMMSbar1Ye@7oJZq(pNO~%7 z0%Qyd%SHnvkc9H8c*h!>dv?q4z3JEqiiuAFRnu{~^u#e^SAMn})|m4-G#BW* zR|62t2-H+)nm~T94Sl!OZ#f%aya^= z0?}@WI|#WAOEQLqmqGBXrUqTi9$GBy8_mZXRjVMM;l^V67GH5!rVZ-2y0G>oDQ*dc z`k`%}$uK}Ip*pJ;RRzM*8>Y~C!@w~>jD!GtSj7n84a9|=gQW$xwzcr!=cavY8%gz_ zHN6n$cmaJKUUG>&{<4Wg8PRCZ6 zhl<)SEV7cOR@(ezeelFc)^rwNcbz)tjtu?Lc8T~E@}$lzx33f!HMOXB`Cek~2KtB3 zly=gu1+Ya|6YpO~vcc+M$n*Lk24(5wiwRgIp00MmV%^w6)t8n*>pk0Fuc2WrQ3jFp zF06;$KF5cfb27U#3%46unwyTAvxF(i;I;w6V^92x#SO9=-mnSvl>2E_)yN|Da6)k< z&cc^R$IG@AI)TxmdO#E|HyDoH%&weq`MCeY_Ig&FbEmCk+C#%dpV4V5Tly91lb^A# z53<50GjvajQk1vmPkI#R8#|Ae=0vAnAi8ZWn4s|K2A8?=Oyt>NpBEJr{^>RVVBl=t z*2-9}EI+Tk`_(_I!jJif?yFs)bBsJ3w+1Vn@R>e@1t1mE&8y{25Wjs|3`v`pE8QBE zOxH`xp3boT&h74!K8{|$KhP#wJXeU5zwkQATnQE^Nf73&$Ew83_Nw=|3#X0=E`tnB z2R$=SnPRhNmDGUB6!n1$2H-(F$pDcAub2yx4EQXREd-x$SOerpKC|78_{>eF4=8~A zq}>4AdaV5klX)OG?>)NfQoma88fIK_3eaJVQy)ssy=)Wb`E@wMJ%5VRvRC+h^KJee z@kEHSSAf3nl6l0(B|`d^O)k@PKCKd$IP+P3Dg76lW0BP7ZUGylT{`fe&yJ#}Ib!<+ zhw7I>vZW}^U8K~dw;b_%FP|H5q4aLPi4Em;f(l$qL^tz2>^3c;*l|APw0qN8-negs zwR{!w%oHh2^Z6p@KwaqE^u9sCc}7{~P3M+ne=(<>fnq?6G>dlA4`w1OZWju41zQiB zj?a?XY-Pt0g& z)7_da7-S00`R+AVpRrOa{MJ*5Yi5Npp5A}!4a!Ag8Z!ep`sI#)RjMu9m+u!s+RQ2o z*0LxV!rvZdeC-I2lDe1ww9aoVozR=P^SYL9E&~*kuq?8Tn4;teg73s_2j$*{gabu{aG{u;tnp(=V7KLmHiz#Dw zTQxS!b(7=c)up>Lo|3NAi*w?y9`Faow+73x0D4)yp4&|*tJ<4n_)rotd6>f3RK2St zIon7r+33U>>#FQKUHG%|w$%F%RE4@4a907@phg@DN1sjd#WWVJfKViP^0H6E3=mjt zw49%Lv9xs&Uv4AbwNt*1`617Lu-A=p54@Uc(J`h3N{IIw6Le(ltukpH123|BzRHIr zCeOcT+|+T0<^-8}FGm^1B3r{NOp})hr=eOLVIdFT=XRAuWGt&`n<}VEU($HOYji7n z1I44ce2n24zNT(9V$N#hUp^snTT(BRYiOg$Lo9K1yn1x@jGQaRf;q# zylz)1cg}J?zjJuDkWC;lU?)rHagb(N4;LmEWiBrNYzE-pq?MT3jWDj_em8Y~}+QwwDE98{{n$pH8D@ zM&!;pSPS7b(l;2V_y@8cn@Gt7eTTnpDSD{hg6=ttzL4YVlYx9!O*h36kQ_bu8!+IW zC~T5r)!XH5rzzRLH}2{BjQOnL4$@j^D5jiprw=$Rr#=mbdPOr80Vb5^tQe=Wg6u4Z zm@!22sLpYEP2H|}8THuM?kb=~dTZ};`!XDLG;Xj>pFLs0m@J1j?45c=Kt1ZSV(Y)l zg5Go6n}5%O+&A*%@f?KYE+=K$GbX8AZQ8i1Mp0&*SYAj1s_?@LG8x zc_ZJ{Qkis5S~p5k8?xHf2{cAFZSPydg6Z^7$4fbkDHrdzPVf2X=61apbKJWf9e$rD zeQk_BXDF2*aGFiczLJoP&T&$=a0&LQ;%DVqnMe*NRk>U}f}uF;idE{BZ-zW{KX-QB z=oA1e5(xjqIiXat86F4*==c#CQA?#z+YUY&WT`g#@HmIklL=%xsWroOs<8*NZ&r_bigq@KNgdavr zbeZ6^<<+=ssHS_K76r^G{ZdS6JSW}R*101PN~HaLsD7e_`JS2f2eNF+yHm`< z)9QRkigff4&S6@lY=$6gJq<6+d3vIIi^ z$$$jeUx6poi<3`B=^PcMX`iG;2MEWUb!>fw*4j9%AI_A_*`}XcI-8R_4vV?33yifM zyhj>TH!nL#1btTO9kVs#qzX7u+dWwHNXp_Hfx9Pg2yw;$PIqOFz_BtjFZQ>ic@GOa z{|;wXYFyvpH4dXVE7%Xk1biC{j&F0kCw&;uc!1)ZdlR)@O*IG-K_9m9XD@V%d>X|A@w5R7>U8(_S%LHU2@$iRT2#gfXUiTYev<)F0RmGBJ-3nK%O z1sQq!iJj?A9B*lgEiQU$@MeUWi!zxc<&v$&^B2$Gq1^{;SIOC7CMbJ3gn?>r+A#AA z#w{C9#b(=*cN!SEBeD)_@gru*sxgVxTPcOhoTXWg-yXAksmZ%5GzxH-q@Y7FmmG9E z_XJZhp=5WZwXpA1zno-Bc$pNb0VdkN8Ic_RW<)|RykPqP*3+%be*VZ|!6i)SB49+a zX6O469R&l0rzhR=f}@APlTMBTj7TPUMkJr1AuKOf3b9M7Za(Zc)w{h`dwe*A(uY9~ zarMEIHJxB+os&2rS@3)NvMUtyG>RyB^5>PqPrg%z*(lgImAgd_KaNfg-y_82L-%qM*6U+n3BwpbOk*Hmr+PC`W3>%7BH?N{1xh0!&eln$~ z0FH;3jOPU*wg^QA)MLH{f)Dl?zcB7i>8_~i1qKDE%y$7X!89czUc*A9%z$>%)qApq z*0_{O5#{S$${#OU9(xj}Za@e}6PhWg0Uwh5*K6Hr9#7Y+wxC|SQ;(AMRi<%U=n9@cJ#ls~Lts|^=vsadUN zK@G9EnDCgLp5~jvB}GokJtlKxw_!iJXa%nsaL9yK0udQqoy~Bu??Y4PdnZ{3{qXG` z#XX+gj#L|#r4Hx4!J8QfxzQ#Df-nvrlsk=aZ^O&!Dor}!4L6s?cT~~8e#ca`v1kiT z9*oo)=fGBkE=Y2={yI4XbVyhKL5EbInU~>(r$hQ;t2^iTsIp)sNjRlteOeLFAr1Kl ztOmlY0UgpyZb|K!d-9zq=+W|=EA`5kEZsh+R&rI8Hpgv}BKseW1-L=$7-|B^aJvn+ zuBA0=IU=&Gaz4*N#%OPZjcH51XF^`_yNBXdVnhOq*0lujqf*!pY8S?rE5A(PdiEi6 zr&EsmGQmZqq5IMj)SB3Qd&9cHk=~!H|eoBkP)LAdtvi(e> z+Ao7QgJ^UrDEJQ23r!mB5PcW`*pPPi5U6F7Nr?M|b;`(YS&e3YN^R8~wks;ZwLtni*xR+GT9htJgM;-JK*8ntp`k2h0tk)O{zF{O@S zp9jd;2ili5sQXHvZZ%6Cv!JdL|NIgl)V&R(u}>69-TAh({4&bvh;qA(D|a&wF)~_c zZ7lz_LZ)E3xcH^94}<_IVpv3R>>U0XnyOP={;WoJ8l$LKvd!7T@5;ZgF`;Gcbt)l9 zE=e4g;aWmGVQ8l{5XAd!@W@Pa05yZ&dL zj?xsbL@B?{xQ%ZEu{MDnIccb>;D@6N?kJ0vhsSS5kr2A2Bh(B3u-xgEo2fpKi9Oto zpFvq%u)E#AnfMsGWMQ=>c(^RXlgIKXi&1olroXaylrZ0OF_&aJ2 z{zLBN@d?RMxts&9QWI*-TZEd`k} z8Etv;@40sD? zdENVpW=k?I3ok_8X7C7iFBW)Y*h_8!W|xI_v|cx`kK#YnQepMtV0}L&?!cRlaCY zZ6cQwxXQCj{95kLQbm!7>70hMkqfOhTf%ri+Sf0S5Lko#FSnlq)&ftd-E2s*VxPRM z?XK18Z`K*Q)3QrdyLT!xe=B-^5S|NEq((ass-FZL-=IR)l|$ZCA4CRxXeubB$nZ!* z2V-s}VznfV*v{rBMkfkj`#Nx0k6VUaI&(CMC~O@}uerHys!3SV(9m3uKW)&hP*FRM zlRgJ1>A2Q>K&maIDrfX&=|REgjcrV*)S2&DQ%7u9w*K*vt&_+&iFT@Y;3@9)!}k5Z zd>|T_shIt{*?~`YS$Zv#0)p*jTP20Yh9f#XoE!rB^ah~sjDGz7qF}|jCz`|dz!cAe zG|UZ#P|eRoA>z#NSd`1lXbsXvW+*QoKNj>F@E|p_IU`BuFRsFVmz)@XjxC#qR~e!% zTqfT!KTP{1aKWb^<&R{&)4aX8QvvmS_xR?38(>Da1RRq*|^d*U)DI+dp=XK8;?v~jN5_LLf|yI`K7tZ7uT>% zuhYV$DizgrT#|ZaWkDMfd;BAqF_n~hsJt1DKz+K^+|_^fL{arJn|f*hk8_m(Ff3A2 zB~Eb)xh;G461helZO6HLzv+i7_6D@jl?L%_>@r6p_fz8@VSBV`GOx0ZDHLx&-bCyd zT(mQ_VWf2U4&SJVS2~kA9SF=qo*RJrIR%750byV2&D)_; ziMnaJt&6!WwsWq$D__M{Aj;zWsSmfaze)?|+Moe?RVn^B0pqF6q-uTd2i#A|Fs38; zXQ!$5iz9LNgz5%Lk+AWVgzxs3hSQ_b_jZOp+}$-86^L$;28;@J4H?Nf!m4$Y1LaRX z`p7x}8YEErq6W8s*W+oB`UW(`-|I2sX^?L5f>>{7R=;8iWGJl5h@#nZL8tH0Poc4i zVVVIt>RkT0LWEW3a&XSJ&udvKBpX(6uCSp;-v?qZn_VM0lS0AX#{KlHy zR?wI6E-O|GRDq|c9g}k9CS+$-DXqp5{=ntdcnnjoJ8jro8{gg?A?Bg&o!7*y!ffZE zb#uCu#_B#%2TP}E0DaBiSD$FI4dR@=V;U;G%Ra zsp#~HO7acd#et{SI58|lpnYjj?7ab4rxb*%oKW^oTtOm7&nmShTrU)j`kA}jPqdp% zoCQQ#!;~q(gbQMZ_aQkgy2j=VB`8-12NS_~9V`*aZQWgN!j)g^#I? z@$uC=pRuT^kFIC#mpGVtP6jW2*gp2kxhItq@6mlUdF7~33w6I3tT-a(MOmU(Q{Hu| z5|ROemk8UXMQi$gcJ08uF>SW8&egK(&Ptt?Di`8yF2^$ejM_XNg*Sh?#EdUIu%=?4 z;W<#u58-5SL}RdWLGZIr7;E~BV$+C*ue&UqnWX;t2k-CbH;*~&CM$iZg(xc}+q87a zWvxE87DUu2sC$~{-e$d{nkI64E+w83h$*0PC@>y{3?T>>T)Sh*acIrT?t6yGr8VM4P z^_?qS+!x}j24}Z@ROX_6nT3`0^@P~q6Q0I#fb!7IwChIRR{z!{G>r=IHgZ3^FneUg z4~=3pKmE zd(m$i+rY^Q+IR zpqT+NZ^)-)AnxS)OZ?4|&F}En6$`gbA|Q_z>ezno<>UsQ1YGRm!mw=&cLiwNJc`QO zy^6fLcB}gmAf#fW483x(51HViw*|@%tFFupFkJNG-wTyQjgN&^aULutE_UYt0Aq#&;x@kb7|IYS|xL^mmCYttf}nG4Pd4}I~%~}F$)IGV+(4n zgb0_RWBsjH#KlZlm?z~-1;TSeg~1pyFO@dhb9QU&9fgwr8ljJTGDh%H&$I-Gg;G)$ zKUK!SwK}vc?Q;x|T3WGy350JuZwsFd+=g#))?e@%WvFJVgwN}Y zjx|#b;XLxu2e*q0yk(x|K2h_-*49`F^}4iJj@d>!n2{ zoK4Gw0o&X1D)Pic2o;?t5l4FAQMOZT%Fg>q354%b->&`9_i#Cc=ZV&)8kH^%0rOV9 z73BQ8XoN}h3q-lp)YumO(|osK;dwZ;4#cI)w`GKiihjzIYQ7y2BaOGi@KpcBhGP*P zMVO_|J?Pw~&&mjXET<}{J~i{3gZMHWtF*KUvNdl=+Q(NgF9Fkc9oom=ZrPMArS%3O z88w$S7R^mL6>0m-EAHFPf2u(UKB2yPS0Jo_qCM^WnIg+42J;LKmes|strloNS~F4i z(KEeK^6!lnRT^zm$Fp3)94;vTt$-z4OWwubXU>w!yPfe_tEaqns9$9#0yU$%yy~LH z#-`p^067&s!H3h`Ehb&!j|YK)$C!5=QEU^&h@YfB!&T%b=XLAoKsN1bZ^k8@s_t!m zS}$^(Sa7dg(D>=JnbJ~Q%G#M6S=%v&CqPOkl`-Fqrb{)g4iCHi>)If77S5yLm9pFd zk*SQ%5PaX(6bT4U49-DRL7j-I-|{C_H4Dpc)Ug|L;%36&k{R`DQy_v4fn%1Qb%)0G zS3!*lengSyF=ZdOCFF1L_@+8^EZN*8;LiNja$4;F5hS-ajy7)4?NtxPf+=-w=q2^Y zU`W=aJJdaYw_k9*GW(^LU!3%`tKTfyz3}}XG(i}M1d{WmkHi_EQtmC5k-hEFBf*=agDM~2aodO~trGli0G(*FP(o!lZrF2P1 zNe$iUz|cLEq%eeZ!(D^lU)*!-epKdcJrin(=HX^ln~)+Q=u&QY5S^D*n{>(*Y^!=}n4Cyp^*-oW&KF_vGt72{pz zE*PX|bZPC08LxRK7_|hXa&&88M-afvzJzum{FZSu4=inTlFAIxG{@IA>tT$77>iCW zhlaWJd-vadTQ>JdHMCmp=n4b$qlDxpS+jT!>)`R%A z1|-bl5B(@1+bC|VXGI+1@*NLLG+?Hz{*XuWn7mBbm=+j@gXksa#5maxJKo3n z3`a>PZtK>8b)ihzE2mR?G^_RO#akG14MKMH4?Ks&Y%VUxg(ZyU_YLgbt*cwRr-XqI zC+llGkCb1JJss@zm!m-j-KfYhd59ZS;az_wTmhU6%l4UzmMl-DGQ$bo?}Y&GpAsSY zp!G&#`;v}O1a!zXh)AC)~naHTU+F)2z*_6~)YS zx0bkw#Y~zP5&Sxj8S7YORkzjQ?0j!uGC(Sf->c%3d~j<-=nj9{9Zm|uc{T5^k~4NQ z&!YN7tEj9#&JZ?W2QHaU<)&Q4A9Nf?8-gwHhCgV?q{ZMBZhKN%znzJvbiMwyPVCc^ zw{-Ok=$DqnNSs`eeEt;2uWwE$jFAqU_@3kOX<_qwcLjH7M|W4g3d1q9Mv@(N%)c5z z8OqzVDE@RA67(_=@l#r_SUiERgd*z4oD6|NL|h-9*krppGqDpokYNqDnFhC4atJZ| z^v$GQeN}8~PEGegrabcT9BT7-hif)9d3@Gh|77lii^L`8HauoOKY1}lwtS5~q@{0W zt1~_&UA7eiF+o%@%asI>ihVdcl8)gjs|#JN{ZPnqXTGmC^Jqf?qr^ZMQxai=de@S4 zB9L;{yjf--bgR>SLQl!0Cly_E{;w(6RX`4QZsxzNjBudH( zT+C?5KAGs;LV9pFn;M<(map_mHf%26wgQpd6HmJ6WsKg|oSqhMVnc}rlj^xIhVoo% z4l6xqxPlQ;ZO^5IZYc){A2XIsDYu#9ko@*3FSEU-b}B7cl*)WBprF#0LUGLcSiiNN zf$XMMnmxUzs(Bk-Yu1YgY5YR$n7IAshcDuZE+h1cYOCr%Xk4`^R#^(`gCXSWDf!u) zytpgb+=iAV zlTXF&l*s$HYG=-ci+XomERJ0TFi&H@8xi>A${a<`40}n@=wZ08XfM+3Zci$jh(P8m zynmL9S+<+iI501DNhe7Yc0itgH=@IzeY?Iq2|}5@S`a10v3`1y0^#S6Yt;?viQbX( zl-cRUCTJ`=XGPd8IY@-iMEjd-A}qvnb(8nLu9Qmf#OO_$d#+DhxgJrCj-HE^^hsTz zRFmZr@>Yf}H_;Wm0hxo)7NhfK*c-M!^MuwLuy`!tfU!ys*mF#O>kAf+zJ*MKIDT_l^#%28WnX+O7 zWqh^A-1W_T@rV3cl!6ZoI*rl6KSADyZEspR#ju1CTYSk1^1p*|PeL#fr^Dr@Hi{|$ z>GcW;mXotYYro%ETrMMF^CO+qE9^KW}4L>Z5lI(<80r?#>dw|9M5kx?psRT z|COtr}2@O5UK;(Y0_{w|qVf-I@!Ck5$HC&S6R zcGej6XH$}{O`m}h$8E~(I&{Eu;ET@9h7*?7%Cw*$N*POnVUMh_kg&9(1R1raFEm#e zF0jQ>kOu|i>W?mVQ>Jd&ePfh*FBM7~P$+k-fsLQ^J>h4-3I}})>+;spnCA(FQPE}G zScl-UH;h8?4oZpIv}V9Q$Dp^^rrbHvhJ{EJ5n5;-aYfObW3-KT*z5eK9&E9ye-DJL zoQJNRgf!MyZ(d`J_XUxe*53Gxx-%3$SWj#59k(j;b}}321GFEnEpF#?PpxOas9zSJ z!lkk`$N1Siwrl)z<}g*!kL>L3$mo@_`NQC@ckyX1j*C0QY5aHBVeAn?DM=7I!XJ0V zdbK;VtB7%B>+d7|UB6!!$+CpG%~+?Vt-DDSK05Vc8xu?#Xh6rjCN0ieaB_LwFc7PEw`Cwje;NU@05>@YeV8%gg|8k-fSu3+tWKK`SDaFb5_ z_B*Q;Vd=v5n*hsYDVDKgFOkfiS=vL%Q|<6LTDv%c?^ry$apMx^{~XiviQ9`36+n+AJ{IU0gh z@y;D5$;944r$5{ywekiW5&`I&tye0(SB5YgD#A&nDegQz$06Q8bB`!qJ1{Nu=; z0(eb;8$UKatYO<=Z_oP+w=P*Dn@mSM)A^F0I%eW}uMjq_9oJ`G|3yguB(DXDkFuKd z@q-j%>(cmU{F$Upip}r6q|ixrvITR6`+Lr8)yEzWJ^~m}!SV6@&+6ED%%PVK`QO7u z|CxKVtNyTq15s*D1qs1h5QM%zI&1ebn5}&fN_rC6e7A!wK+vl}pxDIdl#avA^TB6wMB2zL#HPdE;rX!Sp1jojTWFe)s3$#^6S7)m za`ItAKTLBLG(BPTsD4f+qhahnLXa{!Jl`z7(mE4Bh;?>lpe;y_QynXObKD#RYp|&b z2r|ve%{*&NxDsF+&nIv_Ib-T9KjY(G!2BD}C@}&Dveulo;DF)KbQvXI?oHGanKVYB zF3T65I3ywT*N0w**gO)t8c@X&GSKjHnU$4-EF-R=Oj2UU&$T_Qp){2QIkfbfBgiV* zn|}zyZ;$T6IcNHpI}uq=f~V5qXMxqRK5TqTtzm&5^SZ45?GqtZ{r1f33_O{e9Pe)X zU}D8DHBJ7y7c>uvDy-VYdynGtv7G)Bb&t;~r1%;>K!>ItQKW6x4L)T4eAj1oxB`X_ zFeu5rCF{SWBOv)ciHwDBjSn`cVqR63NbE*dg*riT2Vs|Qi`^mX#W0v^!gavm*>ov9|TufN;q zOkqux=1=buv~jfTvu(n%#4qem-^U5 z>&Ggdu1lmcmeX;g$la+gLOwoC*W;O7B6}}}_Eia(1%~HDtgl#LT+f{9w5MS>^B@RSSWJicFYx`1fXLzATVu80{fw&TH7y&=GnK~o=4Lj-VQ+tESwn) zfO_D{q_7 zJ#2?&(RVa@j%TH}DS0Rr47@3 zyLtTE*Bl?3e2mPSyIMoUywPVB7nzi`qKXW}QaGi*8)y{L^-7{&qP|{WL6li(j&l(o$n30O`6Nfo6#DRF< z^%g)qN;0H+T(*Ix9!>N!0O}FN->65ZrKMKk^L3Y#V4hB1weR+*MsXtgLdpuy_s(*_ z5qY{acl^k(mt{rH8%;gB*uPI_l1Yc$K?kZ^AB?8h(^*;3S|83WbMbCJ13vj7c$=$2 zY2c3#rfSsAg?hafUT3A`1P_=!2ph#0R}J5ptOQYtYxzodXy^vS)3TC&PrAMP;7M1Z zQigKgIqRNippwZ$LHDt%k8n;6#zhG+PM&0*kun z1v)-`n%tkkx|S`ol#_*6uxbJSX^m7vfmaxoJjvjGydFK)0_#Pm${tTvcScskvRdon z0qf9qe^cyc*FhFZD{s>U)j$lB2{eDVfyk}a+vcoMQ;q>zzT@~PEh*^wK&0mgHT(<_ zb|9@&cit0rtcZCwiyyOBwXP&mQKxG!9heu|MfWgAasni64a4onG#SKc<*jJe^QCs> zxrdhJ=;_m8cEa8eKE$_5k$s@<$JRwgIwH5 ztFJ&H>Z=$?P0d3K(MW|Sfq#eZ#u;cy0x0zs|eTRH}s-lJ$0uZ8l#*MKv$3UL6bsw1dskm` ze(8k*`KG7nc(zWI5YR%Jda^kRk|*q58O7BixPdgw8}Z^bkP0lZU2XL}1+90w3N&Hz zwl2_ustc~4%JKo02lE%m&@Lbr`;}S+lu>CEM;gZI-4`NP>oz^@T{r6v!n(V9q%Te* zH$UBwxeOF`rC$LR>%IMh71exqhgf{=JDPj+dhWd#Tg(jVcgyvn-d>L) zr(-l|$UCSq?B-9u&Dgk~7yev+O3Cd)sW3(^8ciC9PNtxI&Wb!$t2H%z z{Q*SXL+yPd2{tt{X!BVhKI|ZqMDCYal@pR4$QJDh^>$F>k2pS8)&n_3D;V-7UuqDB z@V~f6f?ommh(G>dq4y8>$g4eR;Z$tHDQ<>|qWdZx`qhBE7d!n52}IBKc6Oo@yz^LC z{y9k&Nw)=8!zf7Nd}1GU8o$#cZvTpoYKEI4^(byh#|$&x^mY*5Qn-!v1ES|%>V9}? zP4HehDBxLN1~ zTIvb!lSIlz+{wX&O%dJmpgWwT0BGULHo4%}1619l`Mf*fdLJEe>r1kH&aXM1-fzhZcX`#IUBAt%xjMcQ0O%f%J}z193B8RT6VI!ducEIY_TRCSEM zY=5>v*_T?H&B6~i=9@`8`L}JZ;z48+tweW=&kN7w3KWfWMjcf!x=#X9NA|rwm2m(O zsSzLz1;Uc$Po;YpN=kdgY}QMiEhKyJpoPvRQF4cwS-g-O!5^FQKczu&=vH=?zqmka zIo4nS+#B`FM`R`Qr#Eqb8Zd_K$P8vEpJ1=OGdSskhTbfHU6uQsN-ifdxCmj{94F14 zmde>_CLrB~%5>xH;cj6@VARAD`8j+tR)H8Naw~Ve1WLW)`Vcko_NNFHYIM4f_qT0KS)HsooG!sf&X?dLeVxfsT0D0neb#d}duNBru0VS@wS1w zv(qcO7iW+Fu0W^IBF_Fu06t0t;3EWzgD}0AnUC3a(H($~+~K3V18DG((WI5dbfx%m zDO*Cc+JuE!!Gmj7Aa$yxuiY%8q@A5uQKPOA=LmUC4WIfRTq1Iig zsk=`E7s;wtgfhFtl`G8qkqY0~M!oK}3d2=CX#mop2``kpifZ*$Fio|@oe4}A=?wbv z-#2@RuHLv{5Z2RL>m!VBE4ww#-WrpVXR9?7X#Q$(>X55!z895ArIAdZ;;coUQ>}O> zJy%WCk8Gm;I;Q!=M3N)?@g6Tv3>?eWcJ+Zt8OM{GsdL+!7}EkMqi>Oo}`Lck$A zq1olU##Tx}qjS)?l$5|qRHDrFfw@b5twcHZR!wxkgTCnOQz?(+k}Thy<;v!50XB{0 z&0+F=UFiTsEz!7raeF%Lne9ZD)uOW`d@shAZF+B0>k6z=5-!upOC85axb2bUsMaBp z>;xf1-V>HjaI;)2`C@F_Jd$Pj zg;BNuqW}A-OD0L)Kylrus-XJHy@)>#+!EF3?CXn{-gZQV8?$Z48?XkGBYnFqj z`l#1%1goz$Snn=Ou9NWj)KlBVKDYo)NSEJPf-xF>bV^{>5L!ag^LBX!((yc@GjEi^VY^Ys8hyL>8esQ7BmA;V zAdn*!|Kv)8XMyjnj@P2ktjAc~#c(Gil05sLHHN~?AJN`-l!7}X63z$|+_&MZj#u;b z9EFA1qMIZS@4D3e6kM&5&oL%14aT@*ehNz^m{SW-b#?8$rJ@*tvph2_r=Y!96lKOk zI+bzlTa0dM4)_9n!rW)%!TrN{jO1cj?D?^{DKMc$v#9IGwl24H*=GBm+$Fc}%DOwB zY^Wu~i>mIDE@XCc$CD7!zSlxDV-a67?=BvO>Xy2SOkb0h_f4$nC1aFLt62*l91*RV zJg9Yx?|rPDRI5rw4PTkxSIDJ(n40(FndmMjGOnR3%V|Dd{)R>u@ebs~3;htTAt)Q| zd*Y*UX=#bmdtP_z<*6El2cS6~y|ATsU!A05&oa`t$Hhj^i{+&UG zhs#)JpUR4cuHea)*}|G5L&T3qW`iY#=3Za7k61e8Z@!;J>5lJY9!5rbwvQFcZ#_r0c+ zdep^VPD`}RM$tFWXJA+$@3MMJO1|7sdp+l&x*BXSjmgb0(ta^-k*shH2ULQ3{%|ln zqII9+q$pZ#FpJ9Y{aHkUYjI%-kI|JOM|J65xHy`91VwgjcJm_1*-A=&&@z4gF6aF* zhgLQe<5RXaVce+kh+ed(QM(D9d!3nd`1b2BZZmP^&|<4u0l2wc@r6o)W4Y%I#OGWyj{SgiP`_S-cm%n+0iST>)$Ek!6K-!U0Ex@mDksdx{W{35tL$-bFgs*7I9Y)|@3J zRvM#pvyOC;9iaez)Vb4M4&X;lDQf&7HsiI|%t$y+(C{PkMN3sj@fap1VgNs)f&=(b zt|8SE_=}0*Y-}^8H_V^~)Sk5q4#MG&0sP2l#HZCXSB)yO8o-at_$!o80=_>LVqaU$ zXg;48jx*NTh;z*N13#+%iH09_vG73Xl2!hKA3axeUyfyw&;N*JnGXqu2VJybc|Et` zEnLA1XgsYhjI61)#^N6_Xn0Ik|?lpp__!lu9hWX0uF=q^Hl-fQ$xUUH646ko7yEt}-$_H}=Ju`1ub}xR$ zF0E@H&!TG<)vim)-7=fWqFXD(5XUh%-0F~60=pJ2&erl5UqVlc!z7D^7jtW{~7UQORN3u@}95P(%Mli3AR{V3&XiVkZpUaG%82 z+X{2k@ueh#!<$z!vApB9MQLlH92{}4L2M5BoY(!64xVq%45a2I;TY65(lS4VdKq-Y zHKo?V{9JX`m5%bSpCgddYB|vcHX??`3N^HxZj$7P1W!x&w>72C9O`B?#Lu$ z_ibzwMlpHu1Mg(MU{aBJ8;xl)wjiV#&C-hhbY>pAoA z-uSq^*-WO>6V8p*W%o<^kqe9~{H$FA4PD)D0|ldI;!8`hVz0KKFxg6m)#qGZ^*A0sUw)##{_n<@i-}IW8G-jhx!J zS0a`aRJE&_7nSiniqPehhA`f&#(86nFQr#w-;|wD6>@z}-dzc5KqRX}df!NU#7{#8 zkrLC)H&c)=nHpgfmRWv-%&p6d4kxr^Kj45{9vk@$)#Ewd5fGs@eZ&$Gee$7CxRBYU zs;){Z+BeWsJ5Z6J7NX`lCband2ju6AiL{K46>7aIqLk8Wk88cBiH~$S<@+o5iVZg6 znruXuwu^i1KlMc%aH0~2>`fD$W)>%ey()0-O-DsEo^#nOi9ACd``zGyn{o-2n$pCa zKqt~Z-=zamaRZozYaHTsWVtsHoN&D;gW!7?Jt&kldCaIbIb4?Mi{JC{Yj@P`^>t2Z zkIKy=*b_p_3$V>{J_OWRDfVFnlx~MfPQVCf+>Kk5o{b2Y9f>kK>ghPg=X+E#j(M9Q zu3NqwbUTpvK-c(OovKep1CkeNa<+)CCD3mp&ef$y(y9luitgwYIPp(??)J+ZNg54j z?7paxgTC+8wbFv#U@B$mc~^G@JIPaos}63@~UgBTIA+P z&?Q?)I)3|s$ARa_rZ>_Ox~B3drg0W}8*AoiOn>3ts;lgp5&We2VC=)s>p1vQCuM5Z zY=;BgIqQcnjG>{hHW)j|*L5?1s62NTv?D7MqH$+r#FsKdXuY4&&?kj)(Thv6&2ROhV=0qfrTF>no-hGv}y(>7N*|*V{_Hnc$_Svmsn=GP812o z$aL8k91fzJ*>Qi4MSoK8Vv*AnXx89|;1lqSj2ZRlV z(XOH-peeB@His&CyIEIp>9a%YXSo4M>8F=Itv@pLXkC9GGOSMroOR^~wab#OpBbOf z0(}ZsM)%!*rO~=%9>+10pr=8!P7hsyt4Rk9DMD+MjC9QaondBF1Muany4NnDeQb*j z9RcK*n&be@vJE^?qq2T7vfn!gfx`XDDvI{)Aam;8M&*+3o)B{;?9A2Y20pz=V>KdMW2plFNWH z^A5Nzz&8PCQ8_*iuJxU)VRHK0@dimi0Nqul@^rgvG%E$2#ak9c|HkqaRiDAfqpBa| zo^rn&k}tUWtCB_suHWhThhBexiZMZ8UlREl-yGftOL7H~7a~U1LfbCQSc5fz%LqYw z4*6fR7cP&(i?EY=O+(*bK6HW#Mw-yv(Q-q_zbcuPFxO|`dofvYAoruEM^-B7j9bod{K9qkdto9ww^871Mt;tO8 zXt_53*P$TbH}ndk03Sy}_q(mz)0gx`Rw$)UHUe-dI{%M_)KQ?ei;|Uoz5lC5fZ{zO z-$^5NQ%N79(7q%0+7LXg$zCxhrBZKQtTuWp8PJv8FWny-Z8p75e;(yD5O6)2g;XmBr;0Bf&aKr zd;HG*1JWv>!960DU<`cLdk!@&S{8aV*&_|(TKha%c`rqsBfrqX8Pw)O8OZNT$cWOctZUle|l!`4zYky-76G<0a z``+>`N?od|8m-fA6gLG%m*JJ{6r;;Q2`rH4HCzJS-3{GN)+J%UVDyq)w`dC z3Qz0yGEe@V0G{zYqkX^*DMa(fB1h3OkMTudXaK7V`NX6+!RSR6$T5J)8PNfpf~y01 zp=l%wumT46T(DZFpfhzsXFr1&3d6v1%A4biaH(oLNmb^)XjJwU5Zto^Mzc^4uFFo$ z{~6dbT&8&dI-vgo{gXRcf4o|5CD8S90+>+Y?PG%|r~g*k<64>XG zHvV+u#W`R#zxKA*Oz#znF-Fr3p$GaNmZzO92TOYzC$g#Ui?EpjMsNPp zCHOX3bnnJLUtIQFpbn>f1ZQ$pIodngG)VY_t!yB@6DECr80r3}YT2>yon||edR7>k zXTaKFZ>NoO=#}z2?s^;i%{z*7s9ZA>dUb{HzlNI^SorEE?1 zC_j7+-FBC!Ja!N^gWK;2d%+S;Q*iqIx=usa%c;F}faPDxl7XF1oqeO(5%b>A!XyO{l_&Abl*7CbnKS_zlc)FRkWC6;P5=ntp=r z#lBW{m}taHF1_b&|7w`{hVC+${8GAWgBn%F%c{abuj7Et_&_u$Oj*nR-@by*OKRsZ zKwKD1xgjCUJAWqkz^dh;38i9yEt7X?oWax<(6FYwPS*EqhyliB^?M6(-eUmRJocPJ zMSowXsta9js}}*RuWtbU&_Mr!sh)fzysZi>x}rSMFw`OBhjq6u&Wey)E@$K2Ww3^w zQ-K8c;N!c#@v+Svs1>5tNtF`2(Eyo9vq^@Jdw|XLgu>88)3Z)wAwvG!rC2WzY&!GY z4bjw@-%LY*wZaNJ(Swd99-nKiK>kpd&UHw0SQd|Nh)RYn!qI6S58!0bUCA4R!+E`Y zG_3Z#oyIxL>E^;aoyL7J5~v? zD14pti;2dU);>DDwm(qt9^0_Z@F@I%+3H#Rx(dSuJ>o#8Go0R5Nt1^sJazYu9?ZRA zA}09DJ^sYBc#M4OAY$>%u}5?{zi#@hxat~XLa-mX^c8}7G8kGvyaz*WkaWpWN2;d_ zdIudcQEv4_fv;d)Hlj+#6NFTRc8hBiug?i}izsU{Uh(y}0tNe7NQ(S3-gPJ>yQ49| z69NYc(uZ^oVPYWABM(}KGTd|fQ$qI|hxvOwAJHuUfaQjf{?y?j;b@*r{PF_07NW@> z@MM+?_!ujth2k(@kuJVV5qfXXxq~@LE|W82W~5)!>Txqu?Pap!Tg9w4SXk=W?VX&$ zkR4EQqy)8-KZ18;5co)rlv;2H`Of(bE&YZB4~mZ;<&&4{f8nXkj0qWZ&j4`m&_(!V zjkzPW8$)+)gO>}Srcd{TE_p{w<&NIF;Wk3$v>?#U6Y6cth26=L&S^jHXk~!$Q>n4` z5E~21@NF)TlMxwVZ! zm6&l@bKj?un>>8Iqbit%xlGm~L7OL?q+5u~70Hs~l`{oP5BU|8Sm`IrGfBmtm}(=xKq`oLp*p6i-4@wqX} zf!5>wNwu(@p%>yy#DQd$@Tjnp4C%yODx!~&R=S+A^AXQt-O0tTjr!Af*9aIv&q~jI zIBmY@>Q}Q~W!&=?eA$<;fR+SDCPLan?Um+G`a)0rqq$=km!?d${Xc2gehaY1xPagX=1c>7V1HhlPStwKaScS0z9{xSZ03UbhD@sRiI zk+cNhrm{@2gd)f|LKo3YGrKo(YzvzPjZVh4g|)^`*?Q=^q8{YOAe>}=`1YUmGr%=% zQ=G_3I{*HdeOHp*U4p}QoVK~dm6u5w0#**+5D-Oqea5>-U`X3*%MhPjmShQDio{WR zWCBhVH~D-Zja^Pfn}Ac0{z2OkTusp)_$7|*(YIQk65L(2%1(mWozzGlN8#bmN{}y` zfe!Zvv~oxKVixGlGkj5sk=TK=&Mq-9K(yvjJMZ!>8K{=&IxU+ckp3{qcj*h~y0n3B z7c*z}65pK;nJ6azvY7udOQlq$5isXeB3j801#{_wZ}hS#oTQ}^JYV)Z7OV% zzAR6y4%|4=Lz7$m^m#p7^!hg-wSZd1o~zf*H+XSRJl=xr!{-k7?iodC%j&2KciV4W zZt1;%D5LJ|4Tv&J8h?LKoT}=GcPVb80@vXbcQ(qRGXPP>LpTJBjujAPjwF8}Nk+XH zyRJX)%HVKi=jH=#ayIN~eM`^&D`ZKXaL{e z#;IH9iyJEXvOX*dM}=NqoO8Nc)`~5kGilXY&Wc4QzrZPeJH72^`tCum0_@jlB?fq6 zj)}ZwMtW}=-p}9|T{2zg!9=HoEpGKk;YCny4tjZp($LCc%4G%c%%&JrBm{;}4qS-< z4_jm;uaN3D^Txr8(zeS(2dmZR93m;N#GjO% z(et4@Ox>@;ZkSnuA>eMG3kgxF+5aMJ7Gi!~cFTw#v@PCM%H{0B{sLe`!C3u2ef?(< zGnTzY0#HXMkkG!!pNZ@}UJEn#_Z-i1V8=XlUuz!${Q#*OI@-1hGW#P?3XEQb}-v;Bk+`oSn zXwc8G>A!Fn|0qWD#q*yLbZ%oN=;tgntU*sj-CiA+jMsaMV5?WZMXq!$p{Jm2D_wzqs(`40$cx$Wxa6lno9KOT zj)8b(U@O>bBRaY(;yJDXOAon~&7EMzhHB@yQ9#I8RJ;91lIgaOEfNNKbxcyMJy&M7 zGoZpfEd2=_zJPHP91J|_)%C&PDlB*r;7u8Y~1&;redBNbx zLC!|z-uU~UnKB7~1IjcuMt&Lqd$3ae@z1O7&hA)^=%j!Ab9o5nB!<~P{`x<+g;l7k z{8+*G$wOs%mB$L&+9g_MrY%q9VxcH{1tg34KUo9H;zo^z)va}z{K2X>BU({CPlqI@ZVqhpanVH!+TiUzu J@Nx0*{twNfnpOY+ literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/SpeechbubbleContainer_lt_200_200_wh_150_80.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..6b21438926b78b2370bf738850591178b83f15be GIT binary patch literal 61536 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%0DmiN5-DP?rw2=_ny6kZ?e^v}?}`Vv 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
dE_FgIii}vYQ5*D;i#u13g6;ULJnZ2goQ4orPqW zW>_pR5~A<*Qko!V>uRYFWrOKsJmygX&fwn>JsMhCIut2 z{tmmq9!({qCe@idyYSR`pbQHDJ8XJjX3;VGHm*=5ibv*?dn9h`sTnHtUaqw}=FqPC}9xH-(pNixhpV1kwVrd==*|#pP!gg`bxxDJHTK63&WW2ZrMNy)y+7TG2axG-yr{ zO#)?BLeApR_S@d;lY+F0bVpXa+jn%gMsy+xeGg=3=z%gW5VHTrnkJ)m}}+N%3GSlO4)0Zqc-lM$^ESJjO&=jg<_ zQ4ijiROjwzSygZGP<-h;(N;21L4W<}?z#%bDDRSvyQ?4Es1a-K<893jyDlxL+f~>k z{BvZ&wbb+x&cko`PXdqPVSPWD!(#XIT5Pr4PSJ0-SQqO&p)-yoO)yyP@^o}%Py=H> zE&H3ciA_T>^A$T`uyuDP9<+Y(tUc9GFyip^um5!WOFsKvVO(2rx8JO6>u!i4rhjL# zQc5pxSR!gtm+BQW6VO^p{8eW>J2j|Onfon`6h48*P5J}e$xG$R)Qb6Mq?IGO&I*}x zpIGa{&4TzYq|&z+-w(fYVhkM9kc=hm|L$flMJmcIG?IW^7nIeUW#9~&+wr146YKkq z@+!3jdygY$Vrp5+6EG-pyP0p2$g72zCWG0Waw}WJkRfK^T#wTKXxz zF>jZXQsJ~;tGE|SNi{CVGz$j?2ZunTT}Un|9*+aQdCvD5@p1$V-}nqCC*scJ0^w!B z6He$Xto_N?XnbIW{L9R#BNO)E=hGj?Hj`f-^gUEh{pAcq`pM_FUN5htPP%`~ST+A! zpj#}_FB&K;8Y5V`e{zPYVQ*Gw;t5&NGzHbCqk(KE)eA5qoJk!JQLahSTe`UEcYRP* z5mBMBO%xvzW$Ho2$=(J+dIzQrSK^jF0;+|Dd9sNH zlLGSxS7j4z8DGC^Lv@a+D?X`-twcF~?C{9!fn*5lx%zF`4A1EQyQAdQHPJ8AJaA%X zG0c~i%i^-c){ea;!%1O$8q`C(^1t!)I6tnAv!)$c0`B}mqCh9dBkwjeb#Fbwm()MO zrLNew*t>75HP(<)jWCC)Vx#011wHQ*oL>eQ9CbA>ga8YA_F4iToGnRyzJgowHWK0G z-JY^@&q9&7Uv|hLN;H`I-#eWZ@Fa`pOXWur5>OrI-!xw( zc%GGAu)G0uOJts9HV6H^5I9i~tN)L09AwjRl|9Fo+V->q3hm=u*2Q_g%%ktir3e!R z1YPR%#H~wB%C4ame4Y-jtN3=k+qjv@;fG@{ex*B#qj%$HZ0|t0U8CjctOFx(md_DW zrzoP2TuL$-tdr4QUryB{SQHU-!$+clC%>PFgksC3cMx%^VfL;rORK@(p6XYK(r?)i z3+c<+hbjd(K|}>8q92O*(}s~e0x5$gYY3Ey?3N!bmsb1#x3}o3Ajq$$`NFl$B=)r+ zzwGLAQapy+H{hj>z>dOZV$PmsM|Fb)x=UzRf6bfS9WM-$T*Qd*v>CU4 zUDCCZ*#7BhQZ{+D-BT8%bPOSV#1K4Z@UidFxG)XEZnK~f!6rEu8b)%-{zPr;r3*h;f567H7 Y0!&vJQJ+`ACto0%YPvVkDh~qw7i2owhX4Qo literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Images/Screenshot_background_800x400_template.svg b/src/Greenshot.Test/TestData/Images/Screenshot_background_800x400_template.svg new file mode 100644 index 000000000..6e8289758 --- /dev/null +++ b/src/Greenshot.Test/TestData/Images/Screenshot_background_800x400_template.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + Hello Greenshot! + Testfile 800x400 px + + + 200 + 200 + 400 + 600 + 100 + 300 + 100 + 700 + 300 + 500 + + diff --git a/src/Greenshot.sln b/src/Greenshot.sln index b71e79bd3..c0da2f4c4 100644 --- a/src/Greenshot.sln +++ b/src/Greenshot.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.7.34009.444 +VisualStudioVersion = 17.13.35919.96 d17.13 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot", "Greenshot\Greenshot.csproj", "{CD642BF4-D815-4D67-A0B5-C69F0B8231AF}" ProjectSection(ProjectDependencies) = postProject @@ -53,6 +53,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Editor", "Greenshot.Editor\Greenshot.Editor.csproj", "{148D3C8B-D6EC-4A7D-80E9-243A81F19DD2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Test", "Greenshot.Test\Greenshot.Test.csproj", "{CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -173,6 +175,14 @@ Global {148D3C8B-D6EC-4A7D-80E9-243A81F19DD2}.Release|Any CPU.Build.0 = Release|Any CPU {148D3C8B-D6EC-4A7D-80E9-243A81F19DD2}.Release|x86.ActiveCfg = Release|Any CPU {148D3C8B-D6EC-4A7D-80E9-243A81F19DD2}.Release|x86.Build.0 = Release|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Debug|x86.Build.0 = Debug|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Release|Any CPU.Build.0 = Release|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Release|x86.ActiveCfg = Release|Any CPU + {CD82EAD5-57B8-2FD8-0B6F-B912185F70D1}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Greenshot/Helpers/CaptureHelper.cs b/src/Greenshot/Helpers/CaptureHelper.cs index e51b51ebe..867736258 100644 --- a/src/Greenshot/Helpers/CaptureHelper.cs +++ b/src/Greenshot/Helpers/CaptureHelper.cs @@ -25,6 +25,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.IO; +using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; @@ -41,6 +42,7 @@ using Greenshot.Base.Interfaces; using Greenshot.Configuration; using Greenshot.Editor.Destinations; using Greenshot.Editor.Drawing; +using Greenshot.Editor.FileFormatHandlers; using Greenshot.Forms; namespace Greenshot.Helpers @@ -432,37 +434,45 @@ namespace Greenshot.Helpers Image fileImage = null; string filename = _capture.CaptureDetails.Filename; - if (!string.IsNullOrEmpty(filename)) + if (string.IsNullOrEmpty(filename)) { - // TODO: Fix that the Greenshot format needs a separate code path - try - { - if (filename.ToLower().EndsWith("." + OutputFormat.greenshot)) - { - ISurface surface = new Surface(); - surface = ImageIO.LoadGreenshotSurface(filename, surface); - surface.CaptureDetails = _capture.CaptureDetails; - DestinationHelper.GetDestination(EditorDestination.DESIGNATION).ExportCapture(true, surface, _capture.CaptureDetails); - break; - } - } - catch (Exception e) - { - Log.Error(e.Message, e); - MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); - } + break; + } - // TODO: Remove Image loading for here - try + // TODO: Fix that the Greenshot format needs a separate code path + try + { + if (filename.ToLower().EndsWith("." + OutputFormat.greenshot)) { - fileImage = ImageIO.LoadImage(filename); - } - catch (Exception e) - { - Log.Error(e.Message, e); - MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); + var greenshotFileFormatHandler = SimpleServiceProvider.Current.GetAllInstances().OfType().FirstOrDefault(); + if (greenshotFileFormatHandler is null) + { + throw new Exception($"No instance of {nameof(GreenshotFileFormatHandler)} found in service provider."); + } + + ISurface surface = greenshotFileFormatHandler.LoadGreenshotSurface(filename); + surface.CaptureDetails = _capture.CaptureDetails; + DestinationHelper.GetDestination(EditorDestination.DESIGNATION).ExportCapture(true, surface, _capture.CaptureDetails); + break; } } + catch (Exception e) + { + Log.Error(e.Message, e); + MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); + } + + // TODO: Remove Image loading for here + try + { + fileImage = ImageIO.LoadImage(filename); + } + catch (Exception e) + { + Log.Error(e.Message, e); + MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); + } + if (fileImage != null) { From 54edc1e50b22cc4fc0f3fb6a63ebf83258f8b89e Mon Sep 17 00:00:00 2001 From: Christian Schulz Date: Sat, 26 Jul 2025 01:50:38 +0200 Subject: [PATCH 5/6] Fix typo --- src/Greenshot.Editor/FileFormat/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Greenshot.Editor/FileFormat/readme.md b/src/Greenshot.Editor/FileFormat/readme.md index 54668eb4e..90a5e9005 100644 --- a/src/Greenshot.Editor/FileFormat/readme.md +++ b/src/Greenshot.Editor/FileFormat/readme.md @@ -84,7 +84,7 @@ Greenshot template files supports two file formats: - **Serialization:** Uses [MessagePack](https://github.com/MessagePack-CSharp/MessagePack-CSharp/) for serialization. - **Marker:** Files are identified by the marker string `"GreenshotTemplate02"` at the beginning of the file. _(Note: Schema version (i.e. `".01"` ) is not part of the marker)_. -- **Implementation:** See `Greenshot.Editor.FileFormat.V2.GreenshotFileV2`. +- **Implementation:** See `Greenshot.Editor.FileFormat.V2.GreenshotTemplateV2`. - **Binary Data Structure:** The file consists of: 1. 22 bytes for the Greenshot marker string with complete version string (i.e. `"GreenshotTemplate02.01"` ). @@ -192,7 +192,7 @@ From `FileFormatHandler` to the implementation, only first-class domain objects # Serialization The serialization is done by these steps: - 1. Convert the domain object (`GreenshotFile` or `GreenshotTemplate`) to a DTO (`GreenshotFileDto` or `GreenshotTemplateDto`) by using `Greenshot.Editor.FileFormat.Dto.ConvertDtoToDomain.ToDto()` + 1. Convert the domain object (`GreenshotFile` or `GreenshotTemplate`) to a DTO (`GreenshotFileDto` or `GreenshotTemplateDto`) by using `Greenshot.Editor.FileFormat.Dto.ConvertDomainToDto.ToDto()` 1. Convert the DTO to binary data using the MessagePack serializer. _(Serialization with BinaryFormatter is not implemented anymore.)_ # Deserialization From c8453b189d7c64d2c80bca42420be8b5de39e13b Mon Sep 17 00:00:00 2001 From: Christian Schulz Date: Sun, 3 Aug 2025 16:17:41 +0200 Subject: [PATCH 6/6] Fix typo --- src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs | 4 ++-- src/Greenshot.Editor/FileFormat/readme.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs b/src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs index c83e716f1..c6d30db28 100644 --- a/src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs +++ b/src/Greenshot.Editor/FileFormat/Dto/DtoHelper.cs @@ -30,7 +30,7 @@ namespace Greenshot.Editor.FileFormat.Dto; /// /// All DTO classes should not contain any business logic. This applies to helper methods as well -/// So this is the placae for them. +/// So this is the place for them. /// public static class DtoHelper { @@ -48,7 +48,7 @@ public static class DtoHelper } /// - /// We store Color as an ARGB integer, so we have to compare two colors in by their ARGB values + /// We store Color as an ARGB integer, so we have to compare two colors by their ARGB values /// /// /// diff --git a/src/Greenshot.Editor/FileFormat/readme.md b/src/Greenshot.Editor/FileFormat/readme.md index 90a5e9005..226f3e769 100644 --- a/src/Greenshot.Editor/FileFormat/readme.md +++ b/src/Greenshot.Editor/FileFormat/readme.md @@ -115,8 +115,8 @@ The version is composed of two parts: The version is represented as `{format version}.{schema version}` (i.e. as string, `02.01`, this pattern still matches markers in V1 and V2). -- **Format Version:** See `VersionHandler.GreenshotFileFormatVersion`. -- **Schema Version:** See `VersionHandler.SchemaVersion`. +- **Format Version:** See `GreenshotFileVersionHandler.GreenshotFileFormatVersion`. +- **Schema Version:** See `GreenshotFileVersionHandler.CurrentSchemaVersion`. --- @@ -185,7 +185,7 @@ It provides methods to save and load files. There is a `GreenshotFileFormatHandl Every `FileFormatHandler` calls the associated `VersionHandler` wich determines the file format version and calls the appropriate class that implements the serialization/deserialization logic. -From `FileFormatHandler` to the implementation, only first-class domain objects (`GreenshotFile`, `GreenshotTemplate`) or file streams are passed as parameters. +From `FileFormatHandler` to the implementation, only first-class domain objects (`GreenshotFile`, `GreenshotTemplate`) or file streams are passed as parameters. _(In particular, no `Surface` or `DrawableContainer`.)_ ---
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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/SvgContainer_lt_300_200_wh_120_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/SvgContainer_lt_300_200_wh_120_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..35ac907e51f40a6be36c3a9fdec4573cec821091 GIT binary patch literal 59956 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 TK?zbE9Hqm=k$@1NfZ+cFu)1G( literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/TextContainer_lt_300_200_wh_300_100.greenshot b/src/Greenshot.Test/TestData/Greenshotfile/File_Version_2.01/TextContainer_lt_300_200_wh_300_100.greenshot new file mode 100644 index 0000000000000000000000000000000000000000..65f714071e267ac037a8fae63d710565e674d424 GIT binary patch literal 56819 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Images/Greenshot.ico b/src/Greenshot.Test/TestData/Images/Greenshot.ico new file mode 100644 index 0000000000000000000000000000000000000000..fd1312dec58ecd9c413fb6a0a2120bd5bd30fa4a GIT binary patch literal 15227 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 Bc;^5B literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.emf b/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.emf new file mode 100644 index 0000000000000000000000000000000000000000..39612f621b886be41a651354e4e404a11351c6d9 GIT binary patch literal 8648 zcmc)QPl#4k7zXe&Y7tqX6(!6fwImB0<{Nd!EGr|EsK9C+D$Zn5{=p(AC~{R$s}|C( zUCW|HtHf{>F4_emQmYthZL}(|_xEv5$^_?y0`G-0&;7pddFFke=N`{J-&`k3DZj;N z$FDb)^5?4ds+13IE9H}0OIg3?#b-;IC>J)A^3p^pD}u5s#+#M;^Mj?lzqOQ0@%rBQ z{QBek^DE1x-K)xT#}4lr%}h^CFOH_;C-TtUmG1~8ZEY5FlU$Q(C7b^3JBae3iWx20n&*Q_Dv$|?wRtHBOwDM6W%TiA`dZcZBZbX*tI>a?Q zy?l<&#U#x9;>dMfpj@wn2iVK?hsyaXkQQcjaAZR}o_7^{b@YU*N80A+M&!CY%gfP2 z<`G98X9Hz;ree?I@ygj(wJ@uLBM;i~ysOx&qbFQF(l$RsWcgm)3p0;6vV1jAmU9(* z9@kdR@8OXaW_57nK|7vn6?=8`gsVr|=4Xg3_eC~~$-h^e&tr^YoQtu#V$b7J_`>}@ zkQQcja9$2B?Y2O5V6TpzaP&yq{0xz$dtl}fM;`8<@^P<)J&*3oIPTN5Fsp+j4_f)C zlVzzV96i!Pb%w~&b)1YfzLyKm?%=|icRtHBO zwDM6W%TiA`dZcZBhRD)>Ec1vX4|_TJ*k5K@+9TrFGt$DW4vsu%<)coPrJiu~NZb4j zk>!1{7-b%DqT^IrtIC%~R&DWb=5KcR(L9h{xPrJW2^2lndd2}h5#&Cd{7TB|dUIP$R0%f~$- z%hLS=$NhvBW_57nK`S41vMlw4qet52XNWAVFPTRid03m|V;#$~wC3Sh18HGa2S*;X z@)>{c5A4lLJ>lw+w)q(%OY2MK5l0?O$;Wz`WogaBu?Et@tPYMmXyv00>}Bag96i!D zKSN|`eOVDb_xi=z92{%Y-azXZ>}i%FdK_yYEzIiR{1kc6eix_??A6f|jvi^7pCPie zzGNP86rtLXArb7tAisC+VNbg*qfJn!qp>f^D{)2{-&RK#F2;R0rK&TBFoZq1{}{FXkk_d zM;^4}xmK~4rJiv0NZb4jk>%y6pLxWQ$Js#n_->bF>3blK?}fB5tAisC+VNbg*vnE+ zxO${*eul`>9wPIIBM8M86g#P~K$E`NPKgza;m edA;1%Q}KT9xwYq|*FU$uBl!MLKszpMDCKYKqPo-o literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.jpg b/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e250504b2f65cd4bd7c2102aa3d38ead39f3c643 GIT binary patch literal 4620 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.png b/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.png new file mode 100644 index 0000000000000000000000000000000000000000..f3b53882c543406a9ea7ca74a47e757b340c8eeb GIT binary patch literal 1059 zcmeAS@N?(olHy`uVBq!ia0vp^6+oQA!3HFK3%(cuDb50q$YKTtzQZ8Qcszea3Q$n8 z#5JNMI6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWD=HkfM;xlAKhAkksOmw9K4T zh4Rdj42ATf)YQDFcMbmcZ454Ca2I zF_D3RIo#95F{EP7+d1~xB7q`D&-*4RO#RQ5`-f#)nbPVB{YE_;VW-$wT#q^!h-Fz% zWqY%BjR@xp_YIpkvJ}OXl4c&s7MxnTSvvgwZR`AV^W>Mz+{4{poiJms{f@BEsm>RS zu76`aQWALJiAF+^h=C<{@;rO<&1Wyn?ohe2mp!5K$IlZDXLB}Z&bqqtzE{fPb=f<9 z?`!zlrRL5!d2z!@pthdhU3|&BWi@gZK<74mcW($ct*M@twahb{@qWARTc+3C2V5E2 z>umpX)$C%AetFpZMz&JMQ_))KZ9AB4iXRxU&H6Z5m_cs+;a_J=1Gfl$5GoKo@U!`x z#D+5QvRPZzy2O~wj2~QLVSoO-ZhrFWPGy@1><2s&<7QzG^dqtt zWvD*L{&4=Y1OI{7g8%Qae)wPzV0hi-;w_ceTz{Aoo?rW3XCG(qUJa-i%l=9W*^`=Txqt6<&4RkbmgDQ-MJR$-HHz60L6rupGlwFJW<5p zalyRaB@L48pL0}L&sYGJX(k+dXd`_x{vt@(B<3`bveZdOK_)!bnU!pDzAc5>auV+o z53>o%Hy!#2aM%xQsPf#D$l|klx{7pLLiAphn+7bmU#XsKvwr~QFgylv7$w5>J;NfdICj;060h@ywQ-YjB${%+PD*iJwtMO==96t33)TR|PWWWnPRKdovJyl(oP?7e z%ihR&n5hI+@vBG+Y3^m8#M?RL9#EHy*Zam4XEv{Qa8k|dEsz~{>b0YKDs%K%lb2I+ z5>|IEFy7R-R;}yY3ASysG^~`QZ)81s(E^fKA`Ft4;Cr(Z`>}Mtj>+`_#j9RJ|?yFC+Ahl-(M}2 ztrefxu=~54t^9ZEiko+*FRzdnY>B%FP3BxP=E&z}T1DmFE=>gHMg~t;KbLh*2~7a= CFvm~; literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.svg b/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.svg new file mode 100644 index 000000000..ae11b9b6b --- /dev/null +++ b/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.svg @@ -0,0 +1,229 @@ + + + Testfile with greenshot logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Testfile with greenshot logo + https://getgreenshot.org + + + + diff --git a/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.wmf b/src/Greenshot.Test/TestData/Images/Logo_G_with_Border.wmf new file mode 100644 index 0000000000000000000000000000000000000000..e5693946d9130e67185527a58260692f234d7b61 GIT binary patch literal 3434 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 literal 0 HcmV?d00001 diff --git a/src/Greenshot.Test/TestData/Images/Screenshot_background_800x400.png b/src/Greenshot.Test/TestData/Images/Screenshot_background_800x400.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8b27e601f86cd02de74d8f47717d8b29452b6e GIT binary patch literal 26194 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