From a94ca701ac29a3afd2abf3f70ce9f3eefeefc0e0 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 30 Jan 2017 11:31:52 +1000 Subject: [PATCH] [FEATURE] Control over annotation contents margins (refs #10555) Allows setting left/top/right/bottom margins for the contents within an annotation. --- python/core/annotations/qgsannotation.sip | 3 + src/app/qgsannotationwidget.cpp | 9 + src/core/annotations/qgsannotation.cpp | 19 +- src/core/annotations/qgsannotation.h | 17 + src/core/annotations/qgshtmlannotation.cpp | 3 +- src/gui/qgsformannotation.cpp | 3 +- src/ui/qgsannotationwidgetbase.ui | 291 +++++++++++++----- src/ui/qgsoptionsbase.ui | 62 ++-- tests/src/python/test_qgsannotation.py | 14 +- .../expected_annotation_margins.png | Bin 0 -> 3032 bytes .../expected_html_annotation.png | Bin 5299 -> 4853 bytes .../expected_html_feature.png | Bin 7566 -> 7597 bytes .../expected_html_nofeature.png | Bin 7291 -> 7235 bytes .../expected_relative_style.png | Bin 3279 -> 2729 bytes .../expected_svg_annotation.png | Bin 16786 -> 16780 bytes .../expected_text_annotation.png | Bin 8843 -> 8905 bytes 16 files changed, 311 insertions(+), 110 deletions(-) create mode 100644 tests/testdata/control_images/annotations/expected_annotation_margins/expected_annotation_margins.png diff --git a/python/core/annotations/qgsannotation.sip b/python/core/annotations/qgsannotation.sip index 45b1ea16d062..439972914d60 100644 --- a/python/core/annotations/qgsannotation.sip +++ b/python/core/annotations/qgsannotation.sip @@ -28,6 +28,9 @@ class QgsAnnotation : QObject void setFrameSize( QSizeF size ); QSizeF frameSize() const; + void setContentsMargin( const QgsMargins& margins ); + QgsMargins contentsMargin() const; + void setFrameBorderWidth( double width ); double frameBorderWidth() const; diff --git a/src/app/qgsannotationwidget.cpp b/src/app/qgsannotationwidget.cpp index 8e2fbb555d83..259c5061a860 100644 --- a/src/app/qgsannotationwidget.cpp +++ b/src/app/qgsannotationwidget.cpp @@ -60,6 +60,11 @@ QgsAnnotationWidget::QgsAnnotationWidget( QgsMapCanvasAnnotationItem* item, QWid mBackgroundColorButton->setNoColorString( tr( "Transparent" ) ); mBackgroundColorButton->setShowNoColor( true ); + whileBlocking( mSpinTopMargin )->setValue( annotation->contentsMargin().top() ); + whileBlocking( mSpinLeftMargin )->setValue( annotation->contentsMargin().left() ); + whileBlocking( mSpinRightMargin )->setValue( annotation->contentsMargin().right() ); + whileBlocking( mSpinBottomMargin )->setValue( annotation->contentsMargin().bottom() ); + mLayerComboBox->setLayer( annotation->mapLayer() ); connect( mBackgroundColorButton, &QgsColorButton::colorChanged, this, &QgsAnnotationWidget::backgroundColorChanged ); @@ -92,6 +97,10 @@ void QgsAnnotationWidget::apply() annotation->setFrameBackgroundColor( mBackgroundColorButton->color() ); annotation->setMarkerSymbol( mMarkerSymbol->clone() ); annotation->setMapLayer( mLayerComboBox->currentLayer() ); + annotation->setContentsMargin( QgsMargins( mSpinLeftMargin->value(), + mSpinTopMargin->value(), + mSpinRightMargin->value(), + mSpinBottomMargin->value() ) ); } mItem->update(); } diff --git a/src/core/annotations/qgsannotation.cpp b/src/core/annotations/qgsannotation.cpp index d7c2ac906fbf..36175271a60b 100644 --- a/src/core/annotations/qgsannotation.cpp +++ b/src/core/annotations/qgsannotation.cpp @@ -83,6 +83,12 @@ void QgsAnnotation::setFrameSize( QSizeF size ) emit appearanceChanged(); } +void QgsAnnotation::setContentsMargin( const QgsMargins& margins ) +{ + mContentsMargins = margins; + emit appearanceChanged(); +} + void QgsAnnotation::setFrameBorderWidth( double width ) { mFrameBorderWidth = width; @@ -117,15 +123,16 @@ void QgsAnnotation::render( QgsRenderContext& context ) const } if ( mHasFixedMapPosition ) { - painter->translate( mOffsetFromReferencePoint.x() + mFrameBorderWidth / 2.0, - mOffsetFromReferencePoint.y() + mFrameBorderWidth / 2.0 ); + painter->translate( mOffsetFromReferencePoint.x() + context.convertToPainterUnits( mContentsMargins.left(), QgsUnitTypes::RenderMillimeters ), + mOffsetFromReferencePoint.y() + context.convertToPainterUnits( mContentsMargins.top(), QgsUnitTypes::RenderMillimeters ) ); } else { - painter->translate( mFrameBorderWidth / 2.0, mFrameBorderWidth / 2.0 ); + painter->translate( context.convertToPainterUnits( mContentsMargins.left(), QgsUnitTypes::RenderMillimeters ), + context.convertToPainterUnits( mContentsMargins.top(), QgsUnitTypes::RenderMillimeters ) ); } - QSizeF size( mFrameSize.width() - mFrameBorderWidth, - mFrameSize.height() - mFrameBorderWidth ); + QSizeF size( mFrameSize.width() - context.convertToPainterUnits( mContentsMargins.left() + mContentsMargins.right(), QgsUnitTypes::RenderMillimeters ), + mFrameSize.height() - context.convertToPainterUnits( mContentsMargins.top() + mContentsMargins.bottom(), QgsUnitTypes::RenderMillimeters ) ); renderAnnotation( context, size ); painter->restore(); @@ -316,6 +323,7 @@ void QgsAnnotation::_writeXml( QDomElement& itemElem, QDomDocument& doc ) const annotationElem.setAttribute( QStringLiteral( "canvasPosX" ), qgsDoubleToString( mRelativePosition.x() ) ); annotationElem.setAttribute( QStringLiteral( "canvasPosY" ), qgsDoubleToString( mRelativePosition.y() ) ); annotationElem.setAttribute( QStringLiteral( "frameBorderWidth" ), qgsDoubleToString( mFrameBorderWidth ) ); + annotationElem.setAttribute( QStringLiteral( "contentsMargin" ), mContentsMargins.toString() ); annotationElem.setAttribute( QStringLiteral( "frameColor" ), mFrameColor.name() ); annotationElem.setAttribute( QStringLiteral( "frameColorAlpha" ), mFrameColor.alpha() ); annotationElem.setAttribute( QStringLiteral( "frameBackgroundColor" ), mFrameBackgroundColor.name() ); @@ -358,6 +366,7 @@ void QgsAnnotation::_readXml( const QDomElement& annotationElem, const QDomDocum } mFrameBorderWidth = annotationElem.attribute( QStringLiteral( "frameBorderWidth" ), QStringLiteral( "0.5" ) ).toDouble(); + mContentsMargins = QgsMargins::fromString( annotationElem.attribute( QStringLiteral( "contentsMargin" ) ) ); mFrameColor.setNamedColor( annotationElem.attribute( QStringLiteral( "frameColor" ), QStringLiteral( "#000000" ) ) ); mFrameColor.setAlpha( annotationElem.attribute( QStringLiteral( "frameColorAlpha" ), QStringLiteral( "255" ) ).toInt() ); mFrameBackgroundColor.setNamedColor( annotationElem.attribute( QStringLiteral( "frameBackgroundColor" ) ) ); diff --git a/src/core/annotations/qgsannotation.h b/src/core/annotations/qgsannotation.h index 62a9516e28b6..520fe660b9c0 100644 --- a/src/core/annotations/qgsannotation.h +++ b/src/core/annotations/qgsannotation.h @@ -23,6 +23,7 @@ #include "qgscoordinatereferencesystem.h" #include "qgsrendercontext.h" #include "qgssymbol.h" +#include "qgsmargins.h" #include "qgsmaplayer.h" /** \ingroup core @@ -156,6 +157,20 @@ class CORE_EXPORT QgsAnnotation : public QObject */ QSizeF frameSize() const { return mFrameSize; } + /** + * Sets the margins (in millimeters) between the outside of the frame and the annotation + * content. + * @see contentsMargin() + */ + void setContentsMargin( const QgsMargins& margins ); + + /** + * Returns the margins (in millimeters) between the outside of the frame and the annotation + * content. + * @see setContentsMargin() + */ + QgsMargins contentsMargin() const { return mContentsMargins; } + /** * Sets the annotation's frame's border width (in pixels). * @see frameBorderWidth() @@ -337,6 +352,8 @@ class CORE_EXPORT QgsAnnotation : public QObject //! Point symbol that is to be drawn at the map reference location QScopedPointer mMarkerSymbol; + QgsMargins mContentsMargins; + //! Width of the frame double mFrameBorderWidth = 1.0; diff --git a/src/core/annotations/qgshtmlannotation.cpp b/src/core/annotations/qgshtmlannotation.cpp index f08038959d07..9e0bcf11c27f 100644 --- a/src/core/annotations/qgshtmlannotation.cpp +++ b/src/core/annotations/qgshtmlannotation.cpp @@ -86,7 +86,8 @@ QSizeF QgsHtmlAnnotation::minimumFrameSize() const if ( mWebPage ) { QSizeF widgetMinSize = QSizeF( 0, 0 ); // mWebPage->minimumSize(); - return QSizeF( 2 * frameBorderWidth() + widgetMinSize.width(), 2 * frameBorderWidth() + widgetMinSize.height() ); + return QSizeF( contentsMargin().left() + contentsMargin().right() + widgetMinSize.width(), + contentsMargin().top() + contentsMargin().bottom() + widgetMinSize.height() ); } else { diff --git a/src/gui/qgsformannotation.cpp b/src/gui/qgsformannotation.cpp index b9ed8ea5d33d..67351ce0a3c2 100644 --- a/src/gui/qgsformannotation.cpp +++ b/src/gui/qgsformannotation.cpp @@ -109,7 +109,8 @@ QSizeF QgsFormAnnotation::minimumFrameSize() const if ( mDesignerWidget ) { QSizeF widgetMinSize = mMinimumSize; - return QSizeF( 2 * frameBorderWidth() + widgetMinSize.width(), 2 * frameBorderWidth() + widgetMinSize.height() ); + return QSizeF( contentsMargin().left() + contentsMargin().right() + widgetMinSize.width(), + contentsMargin().top() + contentsMargin().bottom() + widgetMinSize.height() ); } else { diff --git a/src/ui/qgsannotationwidgetbase.ui b/src/ui/qgsannotationwidgetbase.ui index a0ce989d4ffa..2f038a0455e6 100644 --- a/src/ui/qgsannotationwidgetbase.ui +++ b/src/ui/qgsannotationwidgetbase.ui @@ -7,65 +7,14 @@ 0 0 319 - 203 + 402 Form - - - - Map marker - - - mMapMarkerButton - - - - - - - Background color - - - - - - - - - - Frame color - - - - - - - - - - - - - - Linked layer - - - mMapMarkerButton - - - - - - - Allows the annotation to be associated with a map layer. If set, the annotation will only be visible when the layer is visible. - - - - + @@ -101,14 +50,201 @@ - - + + - Fixed map position + Frame color - + + + + + + + + + + + Contents margins + + + + + + Top + + + + + + + + 1 + 0 + + + + mm + + + 2 + + + 10000000.000000000000000 + + + 0.200000000000000 + + + 1.000000000000000 + + + + + + + Bottom + + + + + + + Left + + + + + + + Right + + + + + + + + 1 + 0 + + + + mm + + + 2 + + + 10000000.000000000000000 + + + 0.200000000000000 + + + 1.000000000000000 + + + + + + + + 1 + 0 + + + + mm + + + 2 + + + 10000000.000000000000000 + + + 0.200000000000000 + + + 1.000000000000000 + + + + + + + + 1 + 0 + + + + mm + + + 2 + + + 10000000.000000000000000 + + + 0.200000000000000 + + + 1.000000000000000 + + + + + + + + + + Background color + + + + + + + + + + Map marker + + + mMapMarkerButton + + + + + + + Frame width + + + mFrameWidthSpinBox + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + @@ -144,28 +280,29 @@ - - + + - Frame width + Linked layer - mFrameWidthSpinBox + mMapMarkerButton - - - - Qt::Vertical + + + + Fixed map position - - - 20 - 40 - + + + + + + Allows the annotation to be associated with a map layer. If set, the annotation will only be visible when the layer is visible. - + @@ -174,12 +311,24 @@ QgsColorButton QToolButton
qgscolorbutton.h
+ 1 QgsMapLayerComboBox QComboBox
qgsmaplayercombobox.h
+ + QgsDoubleSpinBox + QDoubleSpinBox +
qgsdoublespinbox.h
+
+ + QgsCollapsibleGroupBox + QGroupBox +
qgscollapsiblegroupbox.h
+ 1 +
mMapPositionFixedCheckBox diff --git a/src/ui/qgsoptionsbase.ui b/src/ui/qgsoptionsbase.ui index 505284b555c7..a07db0b8a40a 100644 --- a/src/ui/qgsoptionsbase.ui +++ b/src/ui/qgsoptionsbase.ui @@ -308,7 +308,7 @@ - 1 + 2 @@ -337,8 +337,8 @@ 0 0 - 651 - 590 + 691 + 702 @@ -1024,7 +1024,7 @@ 0 0 843 - 1065 + 1110 @@ -1553,8 +1553,8 @@ 0 0 - 495 - 659 + 843 + 755 @@ -1911,8 +1911,8 @@ 0 0 - 674 - 936 + 713 + 1110 @@ -2662,7 +2662,7 @@ 0 0 - 142 + 151 239 @@ -2813,8 +2813,8 @@ 0 0 - 501 - 316 + 523 + 370 @@ -3156,8 +3156,8 @@ 0 0 - 604 - 589 + 640 + 660 @@ -3587,8 +3587,8 @@ 0 0 - 480 - 571 + 509 + 623 @@ -3856,8 +3856,8 @@ 0 0 - 543 - 667 + 572 + 793 @@ -4411,8 +4411,8 @@ 0 0 - 412 - 368 + 435 + 402 @@ -4550,8 +4550,8 @@ 0 0 - 512 - 638 + 543 + 710 @@ -4796,8 +4796,8 @@ 0 0 - 273 - 236 + 292 + 258 @@ -4905,8 +4905,8 @@ 0 0 - 484 - 689 + 534 + 790 @@ -5419,18 +5419,18 @@ - - QgsCollapsibleGroupBox - QGroupBox -
qgscollapsiblegroupbox.h
- 1 -
QgsColorButton QToolButton
qgscolorbutton.h
1
+ + QgsCollapsibleGroupBox + QGroupBox +
qgscollapsiblegroupbox.h
+ 1 +
QgsColorSchemeList QWidget diff --git a/tests/src/python/test_qgsannotation.py b/tests/src/python/test_qgsannotation.py index 13163221f6a4..d3a4a3336344 100644 --- a/tests/src/python/test_qgsannotation.py +++ b/tests/src/python/test_qgsannotation.py @@ -24,7 +24,8 @@ QgsRenderChecker, QgsPoint, QgsVectorLayer, - QgsFeature) + QgsFeature, + QgsMargins) from qgis.PyQt.QtCore import (QDir, QPointF, QSizeF) @@ -111,6 +112,17 @@ def testRelativePosition(self): im = self.renderAnnotation(a, QPointF(20, 30)) self.assertTrue(self.imageCheck('relative_style', 'relative_style', im)) + def testMargins(self): + """ test rendering an annotation with margins""" + a = QgsHtmlAnnotation() + a.setFrameSize(QSizeF(400, 250)) + a.setHasFixedMapPosition(False) + a.setContentsMargin(QgsMargins(15, 10, 30, 20)) + html = TEST_DATA_DIR + "/test_html.html" + a.setSourceFile(html) + im = self.renderAnnotation(a, QPointF(20, 30)) + self.assertTrue(self.imageCheck('annotation_margins', 'annotation_margins', im)) + def renderAnnotation(self, annotation, offset): image = QImage(600, 400, QImage.Format_RGB32) image.fill(QColor(0, 0, 0, 0)) diff --git a/tests/testdata/control_images/annotations/expected_annotation_margins/expected_annotation_margins.png b/tests/testdata/control_images/annotations/expected_annotation_margins/expected_annotation_margins.png new file mode 100644 index 0000000000000000000000000000000000000000..ef89ce52cc43297b136cc4079d7162518530e72f GIT binary patch literal 3032 zcmd5;X;4#F6n=;dC`d#du>wZiQU(OIwiZ!T24xfCs0auI6b+P$P%s9B1X{2z6vYvw zteMe5Doao!TL=lE3Oa1Xm_$fOun-Vp0wjh&*5-+5+^Y6R>yI~Y=G}MiIrlr?`ObH4 zkB{5Dxl88)05H$P-E}Vj%<=~Sy-cH7+Ak`mT^tq%JWG^GJ`^R{e>aUii^Q^jIVE?8LBSf!!kBc4Rp{ zcYn!xvpYU3&d)wl)U>v3y-!hi^aL`F+KJ~tE!2lr^Gv!`;axJ!6nT`Q=!mR3Si$^? zTx8J=^tCN?0j|!m2D;Mbr$o3IZQp1;dwJgcS@XS(^v^UYs?v{zj;%p;ghx^N>e`q>jV}R$>F%i))M{ z`rGHMl-#Qv&o7x8#^XjvMata(eS}09Ra{C&L=9!YnDhYnGgp6>bTY&$)FMe~E~|sn zu84Ub2o^33=|>0q`7$03={-6-ZoIu((!5YGT>gP1K|HF}?Hj!5&oJAh3BWg3qXIXz z`Wq&!cpa~I+_6W#srAImh$KRxxFP2`saV_M zEb+u2XTmCR42UQ~q`%$NI%rBN<9XQx+k|vt7VJ`rhj1+j$1-RE?n%>iv!?7+TR;0k zryAK^b3dvwRzzIa*M0_)tdz3+6p9vvjHU;>y@YCo9AHfbvwVHOR>xsdqQ=J8*nu>g zx@Gcui$-SDR<=C@K$kCkI%Fb-)kp4#OH#m2>1DphQMGso@FJpqf~O}tf~ zsDzh8Oux0Z4szT=)|RwX{G?IMBR8o%HV+nSO-x*d}z<_jUx($3Xv<+YxRCi*S!{wU$Rbm}w0ZYaP+s|xM zPYTK^CoVRKQuTe@jr>Gh)nidFbkNyAvuOs!8Ipo|=9LU%i1Q|MBG}CK4a^-BJEB-Q zOou_BA_O^J+86qqLG@?{L<1>SC2w~^J7ZMZg1Xg2cVcF{Tc_D>!)jD2LkJk4Pdp`Y z&@5{r%4t#;Bm7PyKl|X?J)YeT{ALd9(4T_6McKFN<6c#pe6k{IZ?-rB?Cu|IYCIh| zY^MnlNCn|SxUz5f*vs4|5s0=!bSSW(xXMag3;c5#iAtU zreYH{oSGEVIOk2p4xH8j?3ln92*iJms{VOGJmU~_b@JbgEXVu#^@Q*9kfqmvWA5zg zIOvbUDo_WNtjYdn%>V->Y~TtSxQUUYRv|Uhvl@141*e0$x{MKdT2rXm^|ou#%_*H9 z>$o9$2ok3CFO0~-Na>4q*L69%|AUigCr`Fga*{hMRO??32=cBfEY8t~Fe5q%tE2Gid(@e(br`d2YWx5dk>`np-1T z3}|7lI*32G^*zH>SB`H6*?%$uS_7u7=UM!H1TB{Ct?DTOZxP<=nH_B+=%K!iX literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/annotations/expected_html_annotation/expected_html_annotation.png b/tests/testdata/control_images/annotations/expected_html_annotation/expected_html_annotation.png index ec31d5c567251bd2cbb232efb8dfe2a0c36abd38..f18c6fe2a6739cfec92c0619015a411f83fd470b 100644 GIT binary patch literal 4853 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 literal 5299 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 F`8TIx#-jiL diff --git a/tests/testdata/control_images/annotations/expected_html_feature/expected_html_feature.png b/tests/testdata/control_images/annotations/expected_html_feature/expected_html_feature.png index f10be84e5d3355b62214cad534e0a9a832305700..ae9bb88009ed7c9a61432dc72701a7391ff99296 100644 GIT binary patch literal 7597 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 Wq1UJ diff --git a/tests/testdata/control_images/annotations/expected_html_nofeature/expected_html_nofeature.png b/tests/testdata/control_images/annotations/expected_html_nofeature/expected_html_nofeature.png index 2b6f5bd69d3b68f2cb6b246e99b8f9fdc2a5e693..20f9f72b569654b1d9ebe412246a1f6eb572cd1c 100644 GIT binary patch literal 7235 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 Dbcp|q literal 7291 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 DWH&T% diff --git a/tests/testdata/control_images/annotations/expected_relative_style/expected_relative_style.png b/tests/testdata/control_images/annotations/expected_relative_style/expected_relative_style.png index 9cffe4ec2fcbcbb5474706dd022d6b5d746b531a..9a58bb020906a8aadbab3c124ddad3f08d00ed88 100644 GIT binary patch literal 2729 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1V4T3g1Qhuj-gzEKaTa()7BevL9RXp+soH$f z3=CY+o-U3d6?5L+byznfZLD@w++4)^Gh5&u!4x4+fiG&M==hV_(`U|HY_oM6w&^1?{z4&+RCd zs=xoeG(g*a|{#_-%)x9*!?VIlZ{?*RN{ax%={YA#Q zLm;{B?>X#$t}TuDTRXp1dK#~F%u$dinl;}lewoy*{rbwBxnO$k?K?WjRVT2hLJ!ZS z|9P*^z5L_%zV)wv{blx=S+n-;0lWRz-o252rF&3H&H>|(LJ zh;;7bGgBjp4eI{o{*SLmt*{+8_?I0H-2OubcqlIr+RQBA$=O+L5y??!{ z?teqjvdmX@E%hs>WX@U!3Z%RO{BHPGaW>h`{^7CP8w(E1PY3#U%kA=(bC!EyVR-BD z%gaBuUR!;i=RoYX+~UnWFBPqka@+R$tSuIu-}uh$t8F^?vq1mPJWw)-E7{z0KdSxe z{qK=G5^rue9E$9ZssEOrvs(V~du{ynufN%+82ya*W&Zsq-Zy=|)YgK-R?!ycbPzF$ zoU_q94holQn_8*;*Q&nGX54X_geZ%8-D8d90^i{Gl7E6zXD!S8^(#5yAzS&jf;o}X zjuIIGII>m$b(>{-o*BlRJ;YcK4wSt6g1cn@`$k$Qv|!09Yrojb+_3E3|Ni%`b@%NT zSaf}3+xJf*V#oFehxgiV*Xf33mbb3vr+;h(=JZ}rPM5`=(_u-*cAi~teD>a7XBqCK z-ZnEoJwt92mTUnlIicYjm3jBQ!uvVL?tib1z5ZT4;M9}ubL`)Kx;~Gu=h3j^&QW^L5FVdQ&MBb@06QffssI20 literal 3279 zcmd5<4OCO-8NQ&{R1oO!2Y~~|_Sm7Q43a>55G=;2lz^f!AQA)z|0lVgejbGVW)r(Uh47NZ&+vUbKhM@~Gbaw*}4CVHg_5_s0 zr#qMc-XRe9FBL^654bZe?=GjJRUsDT~w>V+(`eduNE#Q3(J zNFbPi#4zi_cmDGsd{X;p`dBwlNtez?N$1D%v$wcrww~VOEh`m@lr2xW!lfih#{91> z!%0#Ngz3?dL6yh>;+D3jZBLP8ELGUnSygTfIO+FL__~wsT*{Yf^b_a8wVA-J5+U%b zGN1AiM$bSleCNGUx7E99r&L-+qg0`8jZ!p(pK4vZKB{kcbb?f$uftO0ZTNuHfZb@VfF8HF`gQ$OEV2w?eI7{(D4C+cfIpOKYduiKmc4{JgR$LNvGM{eNu$({fXPAW15< zof9(!);6;H7((VhZa?#?Ok^n~bMM0SfuHEkUGIXD7I?qfRPTDCPO0GykaM?mGwZVT z(2SUAPbTeS-jv;L9#glDG5FPj&G1gXc``XoH`kmmX*%TmmS1%is&{yLA&VneUtLe# zk6K+S;-!d3S^I=SsaiY6P)>I4cDhD&6hU&DzdbuwR$`q@L=mNs!ULEqsX7@m2-OprL0q50HO% z_0fR@8SZ0L%qDV?#kSRDF{2G{(nma(bII4mh~r3OdVQWe>J3;ExsnzK!LcxG)Z=Vc zvBS%3eATH%QV-~PLnlavdc4>dKX?TT+6T#J97XKJpeli_bxul87fydy1de`_zovXX z9X{%zd80j|4H%slnmJ6gn~>8|D11GI zFI6OQ?^v!>I3S1eqP(j4tafrTx8re&i+zXK>t(?=$%sy72{TWxZP z&+?Ei)j}#)biXN|&ZGMEH*(72f|a+HhW@VAatgmz?`(UrjMxtURAYPSd_#F4)YwoQ zn;XUoV^tL7m|6!G!pShY`(~CMtb-nCCeef#GH%Qp{C~`cH$=i*Y0ZRK5vj1c7L&qa z7miHV{k3Z-I|V9885QkA`Zan>U_ezQ&LPm59~X$?BKMGLKIxor+v5A2R!`+OziE$g z{3HfuT7^G;hTq6v6S%rSoJFzMuxde{AyH;%Zxq|{6HG&D zkxx2n$^vE$qxE{sp9Jf=zb^FBg8FdZTva~240yNUQ=IBB9JBYYsCU5+S&ZIhoMSaV?d4BtgZc=m9FduM) z<4Jov!&c3zxBRB31H+TJ-&@BAhPN*zK0_d@cI|*>?~hWnV-%reko=j|HL8nfHqDQ* zIJzR4#C^=E>G^EI5c%rh-+Z?*i{k*Jh59d=R**KFAk|bBUN2w!RZ)OJr;;+(Hco>} z86^usQH786ZX=j8d=dT#pR}qVaGVyqh=qznm=Yby3yZ~Gjh=d)=~?k`c4v)t?Dc*O zVW9$Ku}f!hsTQ8_8CYyo@?-q6BQ&SzDsu4n;z=*>@khIXWs{jqxbb=)qQ()RZdw^1 zC}AN{i%mB}&g44G#_Rvhl^Uy{IN#iz$IrCBT!n=E)bTg4NCEWXXc;m(Uo&NU)ysgvs^-1Ke4+Ka8u$$bIC3xq KUmJMlH~$30L2`ir diff --git a/tests/testdata/control_images/annotations/expected_svg_annotation/expected_svg_annotation.png b/tests/testdata/control_images/annotations/expected_svg_annotation/expected_svg_annotation.png index 20ccc23bed8eed9527cb5ef52040ea2a2f4ee676..b8060851622f03515cf1aefd01be998a0f42d54b 100644 GIT binary patch literal 16780 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 VWIsBE5jdLyg378qE0ul~_#g5;N=5(x literal 8843 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 R3U8Mn6z(X?7Rs3T{~wS3WGesw