Skip to content

Commit ff14c6f

Browse files
committedJul 8, 2020
[FEATURE][layouts] Use QgsTextRenderer for drawing map grid text in layouts
Allows for grid annotations which use buffers, shadows, background shapes, etc!
1 parent 573e46b commit ff14c6f

File tree

7 files changed

+319
-241
lines changed

7 files changed

+319
-241
lines changed
 

‎python/core/auto_generated/layout/qgslayoutitemmapgrid.sip.in

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -565,32 +565,62 @@ Returns whether annotations are shown for the grid.
565565
.. seealso:: :py:func:`setAnnotationEnabled`
566566
%End
567567

568-
void setAnnotationFont( const QFont &font );
568+
void setAnnotationTextFormat( const QgsTextFormat &format );
569+
%Docstring
570+
Sets the text ``format`` to use when rendering grid annotations.
571+
572+
.. seealso:: :py:func:`annotationTextFormat`
573+
574+
.. versionadded:: 3.16
575+
%End
576+
577+
QgsTextFormat annotationTextFormat() const;
578+
%Docstring
579+
Returns the text format used when rendering grid annotations.
580+
581+
.. seealso:: :py:func:`setAnnotationTextFormat`
582+
583+
.. versionadded:: 3.16
584+
%End
585+
586+
void setAnnotationFont( const QFont &font ) /Deprecated/;
569587
%Docstring
570588
Sets the ``font`` used for drawing grid annotations.
571589

572590
.. seealso:: :py:func:`annotationFont`
591+
592+
.. deprecated::
593+
use setAnnotationTextFormat() instead
573594
%End
574595

575-
QFont annotationFont() const;
596+
QFont annotationFont() const /Deprecated/;
576597
%Docstring
577598
Returns the font used for drawing grid annotations.
578599

579600
.. seealso:: :py:func:`setAnnotationFont`
601+
602+
.. deprecated::
603+
use annotationTextFormat() instead
580604
%End
581605

582-
void setAnnotationFontColor( const QColor &color );
606+
void setAnnotationFontColor( const QColor &color ) /Deprecated/;
583607
%Docstring
584608
Sets the font ``color`` used for drawing grid annotations.
585609

586610
.. seealso:: :py:func:`annotationFontColor`
611+
612+
.. deprecated::
613+
use setAnnotationTextFormat() instead
587614
%End
588615

589-
QColor annotationFontColor() const;
616+
QColor annotationFontColor() const /Deprecated/;
590617
%Docstring
591618
Returns the font color used for drawing grid annotations.
592619

593620
.. seealso:: :py:func:`setAnnotationFontColor`
621+
622+
.. deprecated::
623+
use annotationTextFormat() instead
594624
%End
595625

596626
void setAnnotationPrecision( const int precision );

‎src/core/layout/qgscompositionconverter.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -984,8 +984,21 @@ bool QgsCompositionConverter::readMapXml( QgsLayoutItemMap *layoutItem, const QD
984984
mapGrid->setAnnotationFrameDistance( annotationElem.attribute( QStringLiteral( "frameDistance" ), QStringLiteral( "0" ) ).toDouble() );
985985
QFont annotationFont;
986986
annotationFont.fromString( annotationElem.attribute( QStringLiteral( "font" ), QString() ) );
987-
mapGrid->setAnnotationFont( annotationFont );
988-
mapGrid->setAnnotationFontColor( QgsSymbolLayerUtils::decodeColor( itemElem.attribute( QStringLiteral( "fontColor" ), QStringLiteral( "0,0,0,255" ) ) ) );
987+
988+
QgsTextFormat annotationFormat = mapGrid->annotationTextFormat();
989+
annotationFormat.setFont( annotationFont );
990+
if ( annotationFont.pointSizeF() > 0 )
991+
{
992+
annotationFormat.setSize( annotationFont.pointSizeF() );
993+
annotationFormat.setSizeUnit( QgsUnitTypes::RenderPoints );
994+
}
995+
else if ( annotationFont.pixelSize() > 0 )
996+
{
997+
annotationFormat.setSize( annotationFont.pixelSize() );
998+
annotationFormat.setSizeUnit( QgsUnitTypes::RenderPixels );
999+
}
1000+
annotationFormat.setColor( QgsSymbolLayerUtils::decodeColor( itemElem.attribute( QStringLiteral( "fontColor" ), QStringLiteral( "0,0,0,255" ) ) ) );
1001+
mapGrid->setAnnotationTextFormat( annotationFormat );
9891002

9901003
mapGrid->setAnnotationPrecision( annotationElem.attribute( QStringLiteral( "precision" ), QStringLiteral( "3" ) ).toInt() );
9911004
}

‎src/core/layout/qgslayoutitemmapgrid.cpp

Lines changed: 73 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "qgssettings.h"
3636
#include "qgscoordinateformatter.h"
3737
#include "qgsstyleentityvisitor.h"
38+
#include "qgstextrenderer.h"
3839

3940
#include <QPainter>
4041
#include <QPen>
@@ -166,7 +167,9 @@ QgsLayoutItemMapGrid::QgsLayoutItemMapGrid( const QString &name, QgsLayoutItemMa
166167
QString defaultFontString = settings.value( QStringLiteral( "LayoutDesigner/defaultFont" ), QVariant(), QgsSettings::Gui ).toString();
167168
if ( !defaultFontString.isEmpty() )
168169
{
169-
mGridAnnotationFont.setFamily( defaultFontString );
170+
QFont font;
171+
font.setFamily( defaultFontString );
172+
mAnnotationFormat.setFont( font );
170173
}
171174

172175
createDefaultGridLineSymbol();
@@ -268,8 +271,7 @@ bool QgsLayoutItemMapGrid::writeXml( QDomElement &elem, QDomDocument &doc, const
268271
mapGridElem.setAttribute( QStringLiteral( "topAnnotationDirection" ), mTopGridAnnotationDirection );
269272
mapGridElem.setAttribute( QStringLiteral( "bottomAnnotationDirection" ), mBottomGridAnnotationDirection );
270273
mapGridElem.setAttribute( QStringLiteral( "frameAnnotationDistance" ), QString::number( mAnnotationFrameDistance ) );
271-
mapGridElem.appendChild( QgsFontUtils::toXmlElement( mGridAnnotationFont, doc, QStringLiteral( "annotationFontProperties" ) ) );
272-
mapGridElem.setAttribute( QStringLiteral( "annotationFontColor" ), QgsSymbolLayerUtils::encodeColor( mGridAnnotationFontColor ) );
274+
mapGridElem.appendChild( mAnnotationFormat.writeXml( doc, context ) );
273275
mapGridElem.setAttribute( QStringLiteral( "annotationPrecision" ), mGridAnnotationPrecision );
274276
mapGridElem.setAttribute( QStringLiteral( "unit" ), mGridUnit );
275277
mapGridElem.setAttribute( QStringLiteral( "blendMode" ), mBlendMode );
@@ -364,11 +366,24 @@ bool QgsLayoutItemMapGrid::readXml( const QDomElement &itemElem, const QDomDocum
364366
mTopGridAnnotationDirection = QgsLayoutItemMapGrid::AnnotationDirection( itemElem.attribute( QStringLiteral( "topAnnotationDirection" ), QStringLiteral( "0" ) ).toInt() );
365367
mBottomGridAnnotationDirection = QgsLayoutItemMapGrid::AnnotationDirection( itemElem.attribute( QStringLiteral( "bottomAnnotationDirection" ), QStringLiteral( "0" ) ).toInt() );
366368
mAnnotationFrameDistance = itemElem.attribute( QStringLiteral( "frameAnnotationDistance" ), QStringLiteral( "0" ) ).toDouble();
367-
if ( !QgsFontUtils::setFromXmlChildNode( mGridAnnotationFont, itemElem, QStringLiteral( "annotationFontProperties" ) ) )
369+
370+
if ( !itemElem.firstChildElement( "text-style" ).isNull() )
371+
{
372+
mAnnotationFormat.readXml( itemElem, context );
373+
}
374+
else
368375
{
369-
mGridAnnotationFont.fromString( itemElem.attribute( QStringLiteral( "annotationFont" ), QString() ) );
376+
QFont font;
377+
if ( !QgsFontUtils::setFromXmlChildNode( font, itemElem, "annotationFontProperties" ) )
378+
{
379+
font.fromString( itemElem.attribute( "annotationFont", QString() ) );
380+
}
381+
mAnnotationFormat.setFont( font );
382+
mAnnotationFormat.setSize( font.pointSizeF() );
383+
mAnnotationFormat.setSizeUnit( QgsUnitTypes::RenderPoints );
384+
mAnnotationFormat.setColor( QgsSymbolLayerUtils::decodeColor( itemElem.attribute( "annotationFontColor", "0,0,0,255" ) ) );
370385
}
371-
mGridAnnotationFontColor = QgsSymbolLayerUtils::decodeColor( itemElem.attribute( QStringLiteral( "annotationFontColor" ), QStringLiteral( "0,0,0,255" ) ) );
386+
372387
mGridAnnotationPrecision = itemElem.attribute( QStringLiteral( "annotationPrecision" ), QStringLiteral( "3" ) ).toInt();
373388
int gridUnitInt = itemElem.attribute( QStringLiteral( "unit" ), QString::number( MapUnit ) ).toInt();
374389
mGridUnit = ( gridUnitInt <= static_cast< int >( DynamicPageSizeBased ) ) ? static_cast< GridUnit >( gridUnitInt ) : MapUnit;
@@ -585,6 +600,7 @@ void QgsLayoutItemMapGrid::draw( QPainter *p )
585600
//setup render context
586601
QgsRenderContext context = QgsLayoutUtils::createRenderContextForLayout( mLayout, p );
587602
context.setForceVectorOutput( true );
603+
context.setFlag( QgsRenderContext::ApplyScalingWorkaroundForTextRendering, true );
588604
QgsExpressionContext expressionContext = createExpressionContext();
589605
context.setExpressionContext( expressionContext );
590606

@@ -624,7 +640,7 @@ void QgsLayoutItemMapGrid::draw( QPainter *p )
624640

625641
if ( mShowGridAnnotation )
626642
{
627-
drawCoordinateAnnotations( p, horizontalLines, verticalLines, context.expressionContext() );
643+
drawCoordinateAnnotations( context, horizontalLines, verticalLines, context.expressionContext() );
628644
}
629645
}
630646

@@ -1045,39 +1061,40 @@ void QgsLayoutItemMapGrid::drawGridFrameLineBorder( QPainter *p, QgsLayoutItemMa
10451061
}
10461062
}
10471063

1048-
void QgsLayoutItemMapGrid::drawCoordinateAnnotations( QPainter *p, const QList< QPair< double, QLineF > > &hLines, const QList< QPair< double, QLineF > > &vLines, QgsExpressionContext &expressionContext,
1064+
void QgsLayoutItemMapGrid::drawCoordinateAnnotations( QgsRenderContext &context, const QList< QPair< double, QLineF > > &hLines, const QList< QPair< double, QLineF > > &vLines, QgsExpressionContext &expressionContext,
10491065
GridExtension *extension ) const
10501066
{
10511067
QString currentAnnotationString;
10521068
QList< QPair< double, QLineF > >::const_iterator it = hLines.constBegin();
10531069
for ( ; it != hLines.constEnd(); ++it )
10541070
{
10551071
currentAnnotationString = gridAnnotationString( it->first, QgsLayoutItemMapGrid::Latitude, expressionContext );
1056-
drawCoordinateAnnotation( p, it->second.p1(), currentAnnotationString, QgsLayoutItemMapGrid::Latitude, extension );
1057-
drawCoordinateAnnotation( p, it->second.p2(), currentAnnotationString, QgsLayoutItemMapGrid::Latitude, extension );
1072+
drawCoordinateAnnotation( context, it->second.p1(), currentAnnotationString, QgsLayoutItemMapGrid::Latitude, extension );
1073+
drawCoordinateAnnotation( context, it->second.p2(), currentAnnotationString, QgsLayoutItemMapGrid::Latitude, extension );
10581074
}
10591075

10601076
it = vLines.constBegin();
10611077
for ( ; it != vLines.constEnd(); ++it )
10621078
{
10631079
currentAnnotationString = gridAnnotationString( it->first, QgsLayoutItemMapGrid::Longitude, expressionContext );
1064-
drawCoordinateAnnotation( p, it->second.p1(), currentAnnotationString, QgsLayoutItemMapGrid::Longitude, extension );
1065-
drawCoordinateAnnotation( p, it->second.p2(), currentAnnotationString, QgsLayoutItemMapGrid::Longitude, extension );
1080+
drawCoordinateAnnotation( context, it->second.p1(), currentAnnotationString, QgsLayoutItemMapGrid::Longitude, extension );
1081+
drawCoordinateAnnotation( context, it->second.p2(), currentAnnotationString, QgsLayoutItemMapGrid::Longitude, extension );
10661082
}
10671083
}
10681084

1069-
void QgsLayoutItemMapGrid::drawCoordinateAnnotation( QPainter *p, QPointF pos, const QString &annotationString, const AnnotationCoordinate coordinateType, GridExtension *extension ) const
1085+
void QgsLayoutItemMapGrid::drawCoordinateAnnotation( QgsRenderContext &context, QPointF pos, const QString &annotationString, const AnnotationCoordinate coordinateType, GridExtension *extension ) const
10701086
{
10711087
if ( !mMap )
10721088
{
10731089
return;
10741090
}
10751091

10761092
QgsLayoutItemMapGrid::BorderSide frameBorder = borderForLineCoord( pos, coordinateType );
1077-
double textWidth = QgsLayoutUtils::textWidthMM( mGridAnnotationFont, annotationString );
1093+
double textWidth = QgsTextRenderer::textWidth( context, mAnnotationFormat, QStringList() << annotationString ) / context.convertToPainterUnits( 1, QgsUnitTypes::RenderMillimeters );
10781094
//relevant for annotations is the height of digits
1079-
double textHeight = extension ? QgsLayoutUtils::fontAscentMM( mGridAnnotationFont )
1080-
: QgsLayoutUtils::fontHeightCharacterMM( mGridAnnotationFont, QChar( '0' ) );
1095+
const QFontMetricsF metrics = QgsTextRenderer::fontMetrics( context, mAnnotationFormat, QgsTextRenderer::FONT_WORKAROUND_SCALE );
1096+
double textHeight = ( extension ? ( QgsTextRenderer::textHeight( context, mAnnotationFormat, QChar(), true ) )
1097+
: ( QgsTextRenderer::textHeight( context, mAnnotationFormat, '0', false ) ) ) / context.convertToPainterUnits( 1, QgsUnitTypes::RenderMillimeters );
10811098
double xpos = pos.x();
10821099
double ypos = pos.y();
10831100
int rotation = 0;
@@ -1398,23 +1415,25 @@ void QgsLayoutItemMapGrid::drawCoordinateAnnotation( QPainter *p, QPointF pos, c
13981415
}
13991416
}
14001417

1401-
if ( extension || !p )
1418+
if ( extension || !context.painter() )
14021419
return;
14031420

1404-
drawAnnotation( p, QPointF( xpos, ypos ), rotation, annotationString );
1421+
drawAnnotation( context, QPointF( xpos, ypos ), rotation, annotationString );
14051422
}
14061423

1407-
void QgsLayoutItemMapGrid::drawAnnotation( QPainter *p, QPointF pos, int rotation, const QString &annotationText ) const
1424+
void QgsLayoutItemMapGrid::drawAnnotation( QgsRenderContext &context, QPointF pos, int rotation, const QString &annotationText ) const
14081425
{
14091426
if ( !mMap )
14101427
{
14111428
return;
14121429
}
14131430

1414-
QgsScopedQPainterState painterState( p );
1415-
p->translate( pos );
1416-
p->rotate( rotation );
1417-
QgsLayoutUtils::drawText( p, QPointF( 0, 0 ), annotationText, mGridAnnotationFont, mGridAnnotationFontColor );
1431+
QgsScopedQPainterState painterState( context.painter() );
1432+
context.painter()->translate( pos );
1433+
context.painter()->rotate( rotation );
1434+
1435+
QgsScopedRenderContextScaleToPixels scale( context );
1436+
QgsTextRenderer::drawText( QPointF( 0, 0 ), 0, QgsTextRenderer::AlignLeft, QStringList() << annotationText, context, mAnnotationFormat );
14181437
}
14191438

14201439
QString QgsLayoutItemMapGrid::gridAnnotationString( double value, QgsLayoutItemMapGrid::AnnotationCoordinate coord, QgsExpressionContext &expressionContext ) const
@@ -2122,6 +2141,36 @@ QgsMarkerSymbol *QgsLayoutItemMapGrid::markerSymbol()
21222141
return mGridMarkerSymbol.get();
21232142
}
21242143

2144+
void QgsLayoutItemMapGrid::setAnnotationFont( const QFont &font )
2145+
{
2146+
mAnnotationFormat.setFont( font );
2147+
if ( font.pointSizeF() > 0 )
2148+
{
2149+
mAnnotationFormat.setSize( font.pointSizeF() );
2150+
mAnnotationFormat.setSizeUnit( QgsUnitTypes::RenderPoints );
2151+
}
2152+
else if ( font.pixelSize() > 0 )
2153+
{
2154+
mAnnotationFormat.setSize( font.pixelSize() );
2155+
mAnnotationFormat.setSizeUnit( QgsUnitTypes::RenderPixels );
2156+
}
2157+
}
2158+
2159+
QFont QgsLayoutItemMapGrid::annotationFont() const
2160+
{
2161+
return mAnnotationFormat.toQFont();
2162+
}
2163+
2164+
void QgsLayoutItemMapGrid::setAnnotationFontColor( const QColor &color )
2165+
{
2166+
mAnnotationFormat.setColor( color );
2167+
}
2168+
2169+
QColor QgsLayoutItemMapGrid::annotationFontColor() const
2170+
{
2171+
return mAnnotationFormat.color();
2172+
}
2173+
21252174
void QgsLayoutItemMapGrid::setAnnotationDisplay( const QgsLayoutItemMapGrid::DisplayMode display, const QgsLayoutItemMapGrid::BorderSide border )
21262175
{
21272176
switch ( border )
@@ -2220,7 +2269,7 @@ void QgsLayoutItemMapGrid::calculateMaxExtension( double &top, double &right, do
22202269

22212270
if ( mShowGridAnnotation )
22222271
{
2223-
drawCoordinateAnnotations( nullptr, horizontalLines, verticalLines, context.expressionContext(), &extension );
2272+
drawCoordinateAnnotations( context, horizontalLines, verticalLines, context.expressionContext(), &extension );
22242273
}
22252274

22262275
top = extension.top;

‎src/core/layout/qgslayoutitemmapgrid.h

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "qgis_sip.h"
2323
#include "qgslayoutitemmapitem.h"
2424
#include "qgssymbol.h"
25+
#include "qgstextformat.h"
2526
#include <QPainter>
2627

2728
class QgsCoordinateTransform;
@@ -561,29 +562,49 @@ class CORE_EXPORT QgsLayoutItemMapGrid : public QgsLayoutItemMapItem
561562
*/
562563
bool annotationEnabled() const { return mShowGridAnnotation; }
563564

565+
/**
566+
* Sets the text \a format to use when rendering grid annotations.
567+
*
568+
* \see annotationTextFormat()
569+
* \since QGIS 3.16
570+
*/
571+
void setAnnotationTextFormat( const QgsTextFormat &format ) { mAnnotationFormat = format; }
572+
573+
/**
574+
* Returns the text format used when rendering grid annotations.
575+
*
576+
* \see setAnnotationTextFormat()
577+
* \since QGIS 3.16
578+
*/
579+
QgsTextFormat annotationTextFormat() const { return mAnnotationFormat; }
580+
564581
/**
565582
* Sets the \a font used for drawing grid annotations.
566583
* \see annotationFont()
584+
* \deprecated use setAnnotationTextFormat() instead
567585
*/
568-
void setAnnotationFont( const QFont &font ) { mGridAnnotationFont = font; }
586+
Q_DECL_DEPRECATED void setAnnotationFont( const QFont &font ) SIP_DEPRECATED;
569587

570588
/**
571589
* Returns the font used for drawing grid annotations.
572590
* \see setAnnotationFont()
591+
* \deprecated use annotationTextFormat() instead
573592
*/
574-
QFont annotationFont() const { return mGridAnnotationFont; }
593+
Q_DECL_DEPRECATED QFont annotationFont() const SIP_DEPRECATED;
575594

576595
/**
577596
* Sets the font \a color used for drawing grid annotations.
578597
* \see annotationFontColor()
598+
* \deprecated use setAnnotationTextFormat() instead
579599
*/
580-
void setAnnotationFontColor( const QColor &color ) { mGridAnnotationFontColor = color; }
600+
Q_DECL_DEPRECATED void setAnnotationFontColor( const QColor &color ) SIP_DEPRECATED;
581601

582602
/**
583603
* Returns the font color used for drawing grid annotations.
584604
* \see setAnnotationFontColor()
605+
* \deprecated use annotationTextFormat() instead
585606
*/
586-
QColor annotationFontColor() const { return mGridAnnotationFontColor; }
607+
Q_DECL_DEPRECATED QColor annotationFontColor() const SIP_DEPRECATED;
587608

588609
/**
589610
* Sets the coordinate \a precision for grid annotations.
@@ -882,10 +903,10 @@ class CORE_EXPORT QgsLayoutItemMapGrid : public QgsLayoutItemMapItem
882903
double mGridOffsetX = 0.0;
883904
//! Grid line offset in y-direction
884905
double mGridOffsetY = 0.0;
885-
//! Font for grid line annotation
886-
QFont mGridAnnotationFont;
887-
//! Font color for grid coordinates
888-
QColor mGridAnnotationFontColor = Qt::black;
906+
907+
//! Text format for grid annotations
908+
QgsTextFormat mAnnotationFormat;
909+
889910
//! Digits after the dot
890911
int mGridAnnotationPrecision = 3;
891912
//! True if coordinate values should be drawn
@@ -989,29 +1010,29 @@ class CORE_EXPORT QgsLayoutItemMapGrid : public QgsLayoutItemMapItem
9891010

9901011
/**
9911012
* Draw coordinates for mGridAnnotationType Coordinate
992-
\param p drawing painter
993-
\param hLines horizontal coordinate lines in item coordinates
994-
\param vLines vertical coordinate lines in item coordinates
995-
\param expressionContext expression context for evaluating custom annotation formats
996-
\param extension optional. If specified, nothing will be drawn and instead the maximum extension for the grid
997-
annotations will be stored in this variable.
1013+
* \param context destination render context
1014+
* \param hLines horizontal coordinate lines in item coordinates
1015+
* \param vLines vertical coordinate lines in item coordinates
1016+
* \param expressionContext expression context for evaluating custom annotation formats
1017+
* \param extension optional. If specified, nothing will be drawn and instead the maximum extension for the grid
1018+
* annotations will be stored in this variable.
9981019
*/
999-
void drawCoordinateAnnotations( QPainter *p, const QList< QPair< double, QLineF > > &hLines, const QList< QPair< double, QLineF > > &vLines, QgsExpressionContext &expressionContext, GridExtension *extension = nullptr ) const;
1020+
void drawCoordinateAnnotations( QgsRenderContext &context, const QList< QPair< double, QLineF > > &hLines, const QList< QPair< double, QLineF > > &vLines, QgsExpressionContext &expressionContext, GridExtension *extension = nullptr ) const;
10001021

10011022
/**
10021023
* Draw an annotation. If optional extension argument is specified, nothing will be drawn and instead
10031024
* the extension of the annotation outside of the map frame will be stored in this variable.
10041025
*/
1005-
void drawCoordinateAnnotation( QPainter *p, QPointF pos, const QString &annotationString, AnnotationCoordinate coordinateType, GridExtension *extension = nullptr ) const;
1026+
void drawCoordinateAnnotation( QgsRenderContext &context, QPointF pos, const QString &annotationString, AnnotationCoordinate coordinateType, GridExtension *extension = nullptr ) const;
10061027

10071028
/**
10081029
* Draws a single annotation
1009-
* \param p drawing painter
1030+
* \param context destination render context
10101031
* \param pos item coordinates where to draw
10111032
* \param rotation text rotation
10121033
* \param annotationText the text to draw
10131034
*/
1014-
void drawAnnotation( QPainter *p, QPointF pos, int rotation, const QString &annotationText ) const;
1035+
void drawAnnotation( QgsRenderContext &context, QPointF pos, int rotation, const QString &annotationText ) const;
10151036

10161037
QString gridAnnotationString( double value, AnnotationCoordinate coord, QgsExpressionContext &expressionContext ) const;
10171038

‎src/gui/layout/qgslayoutmapgridwidget.cpp

Lines changed: 24 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ QgsLayoutMapGridWidget::QgsLayoutMapGridWidget( QgsLayoutItemMapGrid *mapGrid, Q
9191
connect( mDistanceToMapFrameSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::mDistanceToMapFrameSpinBox_valueChanged );
9292
connect( mMinWidthSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::minIntervalChanged );
9393
connect( mMaxWidthSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsLayoutMapGridWidget::maxIntervalChanged );
94-
connect( mAnnotationFontColorButton, &QgsColorButton::colorChanged, this, &QgsLayoutMapGridWidget::mAnnotationFontColorButton_colorChanged );
9594
connect( mEnabledCheckBox, &QCheckBox::toggled, this, &QgsLayoutMapGridWidget::gridEnabledToggled );
9695
setPanelTitle( tr( "Map Grid Properties" ) );
9796

@@ -124,10 +123,6 @@ QgsLayoutMapGridWidget::QgsLayoutMapGridWidget( QgsLayoutItemMapGrid *mapGrid, Q
124123
mAnnotationFormatComboBox->addItem( tr( "Degree, Minute, Second Aligned" ), QgsLayoutItemMapGrid::DegreeMinuteSecondPadded );
125124
mAnnotationFormatComboBox->addItem( tr( "Custom" ), QgsLayoutItemMapGrid::CustomFormat );
126125

127-
mAnnotationFontColorButton->setColorDialogTitle( tr( "Select Font Color" ) );
128-
mAnnotationFontColorButton->setAllowOpacity( true );
129-
mAnnotationFontColorButton->setContext( QStringLiteral( "composer" ) );
130-
131126
insertAnnotationDisplayEntries( mAnnotationDisplayLeftComboBox );
132127
insertAnnotationDisplayEntries( mAnnotationDisplayRightComboBox );
133128
insertAnnotationDisplayEntries( mAnnotationDisplayTopComboBox );
@@ -181,10 +176,12 @@ QgsLayoutMapGridWidget::QgsLayoutMapGridWidget( QgsLayoutItemMapGrid *mapGrid, Q
181176
updateGuiElements();
182177

183178
blockAllSignals( false );
184-
connect( mAnnotationFontButton, &QgsFontButton::changed, this, &QgsLayoutMapGridWidget::annotationFontChanged );
179+
connect( mAnnotationFontButton, &QgsFontButton::changed, this, &QgsLayoutMapGridWidget::annotationTextFormatChanged );
185180
connect( mGridLineStyleButton, &QgsSymbolButton::changed, this, &QgsLayoutMapGridWidget::lineSymbolChanged );
186181
connect( mGridMarkerStyleButton, &QgsSymbolButton::changed, this, &QgsLayoutMapGridWidget::markerSymbolChanged );
187182

183+
connect( mAnnotationFontButton, &QgsFontButton::changed, this, &QgsLayoutMapGridWidget::annotationTextFormatChanged );
184+
188185
mGridLineStyleButton->registerExpressionContextGenerator( mMapGrid );
189186
mGridLineStyleButton->setLayer( coverageLayer() );
190187
mGridMarkerStyleButton->registerExpressionContextGenerator( mMapGrid );
@@ -193,8 +190,10 @@ QgsLayoutMapGridWidget::QgsLayoutMapGridWidget( QgsLayoutItemMapGrid *mapGrid, Q
193190
{
194191
connect( &mMap->layout()->reportContext(), &QgsLayoutReportContext::layerChanged, mGridLineStyleButton, &QgsSymbolButton::setLayer );
195192
connect( &mMap->layout()->reportContext(), &QgsLayoutReportContext::layerChanged, mGridMarkerStyleButton, &QgsSymbolButton::setLayer );
193+
connect( &mMap->layout()->reportContext(), &QgsLayoutReportContext::layerChanged, mAnnotationFontButton, &QgsFontButton::setLayer );
196194
}
197-
195+
mAnnotationFontButton->setLayer( coverageLayer() );
196+
mAnnotationFontButton->registerExpressionContextGenerator( mMapGrid );
198197
}
199198

200199
void QgsLayoutMapGridWidget::populateDataDefinedButtons()
@@ -276,7 +275,6 @@ void QgsLayoutMapGridWidget::blockAllSignals( bool block )
276275
mAnnotationDirectionComboBoxBottom->blockSignals( block );
277276
mDistanceToMapFrameSpinBox->blockSignals( block );
278277
mCoordinatePrecisionSpinBox->blockSignals( block );
279-
mAnnotationFontColorButton->blockSignals( block );
280278
mAnnotationFontButton->blockSignals( block );
281279
mMinWidthSpinBox->blockSignals( block );
282280
mMaxWidthSpinBox->blockSignals( block );
@@ -453,6 +451,7 @@ void QgsLayoutMapGridWidget::setGridItems()
453451

454452
mGridMarkerStyleButton->registerExpressionContextGenerator( mMapGrid );
455453
mGridLineStyleButton->registerExpressionContextGenerator( mMapGrid );
454+
mAnnotationFontButton->registerExpressionContextGenerator( mMapGrid );
456455

457456
mEnabledCheckBox->setChecked( mMapGrid->enabled() );
458457
mIntervalXSpinBox->setValue( mMapGrid->intervalX() );
@@ -575,8 +574,9 @@ void QgsLayoutMapGridWidget::setGridItems()
575574
initAnnotationDirectionBox( mAnnotationDirectionComboBoxTop, mMapGrid->annotationDirection( QgsLayoutItemMapGrid::Top ) );
576575
initAnnotationDirectionBox( mAnnotationDirectionComboBoxBottom, mMapGrid->annotationDirection( QgsLayoutItemMapGrid::Bottom ) );
577576

578-
mAnnotationFontColorButton->setColor( mMapGrid->annotationFontColor() );
579-
mAnnotationFontButton->setCurrentFont( mMapGrid->annotationFont() );
577+
mAnnotationFontButton->setDialogTitle( tr( "Grid Annotation Font" ) );
578+
mAnnotationFontButton->setMode( QgsFontButton::ModeTextRenderer );
579+
mAnnotationFontButton->setTextFormat( mMapGrid->annotationTextFormat() );
580580

581581
mAnnotationFormatComboBox->setCurrentIndex( mAnnotationFormatComboBox->findData( mMapGrid->annotationFormat() ) );
582582
mAnnotationFormatButton->setEnabled( mMapGrid->annotationFormat() == QgsLayoutItemMapGrid::CustomFormat );
@@ -912,6 +912,20 @@ void QgsLayoutMapGridWidget::maxIntervalChanged( double interval )
912912
mMap->update();
913913
}
914914

915+
void QgsLayoutMapGridWidget::annotationTextFormatChanged()
916+
{
917+
if ( !mMapGrid || !mMap )
918+
{
919+
return;
920+
}
921+
922+
mMap->beginCommand( tr( "Change Annotation Font" ) );
923+
mMapGrid->setAnnotationTextFormat( mAnnotationFontButton->textFormat() );
924+
mMap->endCommand();
925+
mMap->updateBoundingRect();
926+
mMap->update();
927+
}
928+
915929
void QgsLayoutMapGridWidget::mGridBlendComboBox_currentIndexChanged( int index )
916930
{
917931
Q_UNUSED( index )
@@ -1126,19 +1140,6 @@ void QgsLayoutMapGridWidget::mDistanceToMapFrameSpinBox_valueChanged( double d )
11261140
mMap->endCommand();
11271141
}
11281142

1129-
void QgsLayoutMapGridWidget::annotationFontChanged()
1130-
{
1131-
if ( !mMapGrid || !mMap )
1132-
{
1133-
return;
1134-
}
1135-
1136-
mMap->beginCommand( tr( "Change Annotation Font" ) );
1137-
mMapGrid->setAnnotationFont( mAnnotationFontButton->currentFont() );
1138-
mMap->updateBoundingRect();
1139-
mMap->update();
1140-
mMap->endCommand();
1141-
}
11421143

11431144
void QgsLayoutMapGridWidget::lineSymbolChanged()
11441145
{
@@ -1180,19 +1181,6 @@ void QgsLayoutMapGridWidget::gridEnabledToggled( bool active )
11801181
mMap->update();
11811182
}
11821183

1183-
void QgsLayoutMapGridWidget::mAnnotationFontColorButton_colorChanged( const QColor &color )
1184-
{
1185-
if ( !mMapGrid || !mMap )
1186-
{
1187-
return;
1188-
}
1189-
1190-
mMap->beginCommand( tr( "Change Annotation Color" ), QgsLayoutItem::UndoMapGridAnnotationFontColor );
1191-
mMapGrid->setAnnotationFontColor( color );
1192-
mMap->update();
1193-
mMap->endCommand();
1194-
}
1195-
11961184
void QgsLayoutMapGridWidget::mAnnotationFormatComboBox_currentIndexChanged( int index )
11971185
{
11981186
if ( !mMapGrid || !mMap )

‎src/gui/layout/qgslayoutmapgridwidget.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ class GUI_EXPORT QgsLayoutMapGridWidget: public QgsLayoutItemBaseWidget, private
9494
void mAnnotationFormatComboBox_currentIndexChanged( int index );
9595
void mCoordinatePrecisionSpinBox_valueChanged( int value );
9696
void mDistanceToMapFrameSpinBox_valueChanged( double d );
97-
void mAnnotationFontColorButton_colorChanged( const QColor &color );
9897

9998
protected:
10099

@@ -109,13 +108,13 @@ class GUI_EXPORT QgsLayoutMapGridWidget: public QgsLayoutItemBaseWidget, private
109108

110109
//! Sets the GUI elements to the values of mPicture
111110
void setGuiElementValues();
112-
void annotationFontChanged();
113111
void lineSymbolChanged();
114112
void markerSymbolChanged();
115113
void gridEnabledToggled( bool active );
116114
void intervalUnitChanged( int index );
117115
void minIntervalChanged( double interval );
118116
void maxIntervalChanged( double interval );
117+
void annotationTextFormatChanged();
119118

120119
private:
121120
QPointer< QgsLayoutItemMap > mMap;

‎src/ui/layout/qgslayoutmapgridwidgetbase.ui

Lines changed: 133 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
<x>0</x>
5050
<y>0</y>
5151
<width>409</width>
52-
<height>1447</height>
52+
<height>1416</height>
5353
</rect>
5454
</property>
5555
<property name="sizePolicy">
@@ -686,205 +686,168 @@
686686
<property name="collapsed" stdset="0">
687687
<bool>false</bool>
688688
</property>
689-
<layout class="QGridLayout" name="gridLayout" columnstretch="0,1,0">
690-
<item row="10" column="0">
691-
<widget class="QLabel" name="mAnnotationPositionLabelBottom">
692-
<property name="text">
693-
<string>Bottom</string>
694-
</property>
695-
<property name="wordWrap">
696-
<bool>true</bool>
697-
</property>
698-
</widget>
699-
</item>
700-
<item row="0" column="0">
701-
<widget class="QLabel" name="mAnnotationFormatLabel">
702-
<property name="text">
703-
<string>Format</string>
704-
</property>
705-
</widget>
689+
<layout class="QGridLayout" name="gridLayout" columnstretch="0,0,0">
690+
<item row="10" column="1" colspan="2">
691+
<widget class="QComboBox" name="mAnnotationDisplayBottomComboBox"/>
706692
</item>
707-
<item row="14" column="0">
708-
<widget class="QLabel" name="mFontColorLabel">
709-
<property name="text">
710-
<string>Font color</string>
693+
<item row="14" column="1">
694+
<widget class="QgsDoubleSpinBox" name="mDistanceToMapFrameSpinBox">
695+
<property name="suffix">
696+
<string> mm</string>
711697
</property>
712698
</widget>
713699
</item>
714-
<item row="7" column="0">
715-
<widget class="QLabel" name="mAnnotationPositionLabelTop">
700+
<item row="1" column="0">
701+
<widget class="QLabel" name="mAnnotationPositionLabelLeft">
716702
<property name="text">
717-
<string>Top</string>
703+
<string>Left</string>
718704
</property>
719705
<property name="wordWrap">
720706
<bool>true</bool>
721707
</property>
722708
</widget>
723709
</item>
724-
<item row="1" column="0">
725-
<widget class="QLabel" name="mAnnotationPositionLabelLeft">
710+
<item row="4" column="0">
711+
<widget class="QLabel" name="mAnnotationPositionLabelRight">
726712
<property name="text">
727-
<string>Left</string>
713+
<string>Right</string>
728714
</property>
729715
<property name="wordWrap">
730716
<bool>true</bool>
731717
</property>
732718
</widget>
733719
</item>
734-
<item row="15" column="1">
735-
<widget class="QgsDoubleSpinBox" name="mDistanceToMapFrameSpinBox">
736-
<property name="suffix">
737-
<string> mm</string>
720+
<item row="0" column="1" colspan="2">
721+
<layout class="QHBoxLayout" name="horizontalLayout_13">
722+
<item>
723+
<widget class="QComboBox" name="mAnnotationFormatComboBox"/>
724+
</item>
725+
<item>
726+
<widget class="QToolButton" name="mAnnotationFormatButton">
727+
<property name="text">
728+
<string>…</string>
729+
</property>
730+
<property name="icon">
731+
<iconset resource="../../../images/images.qrc">
732+
<normaloff>:/images/themes/default/mIconExpression.svg</normaloff>:/images/themes/default/mIconExpression.svg</iconset>
733+
</property>
734+
</widget>
735+
</item>
736+
</layout>
737+
</item>
738+
<item row="13" column="1" colspan="2">
739+
<widget class="QgsFontButton" name="mAnnotationFontButton">
740+
<property name="sizePolicy">
741+
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
742+
<horstretch>0</horstretch>
743+
<verstretch>0</verstretch>
744+
</sizepolicy>
745+
</property>
746+
<property name="text">
747+
<string>Font</string>
738748
</property>
739749
</widget>
740750
</item>
741-
<item row="16" column="0">
742-
<widget class="QLabel" name="mCoordinatePrecisionLabel">
751+
<item row="4" column="1" colspan="2">
752+
<widget class="QComboBox" name="mAnnotationDisplayRightComboBox"/>
753+
</item>
754+
<item row="10" column="0">
755+
<widget class="QLabel" name="mAnnotationPositionLabelBottom">
743756
<property name="text">
744-
<string>Coordinate precision</string>
757+
<string>Bottom</string>
745758
</property>
746759
<property name="wordWrap">
747760
<bool>true</bool>
748761
</property>
749762
</widget>
750763
</item>
764+
<item row="7" column="1" colspan="2">
765+
<widget class="QComboBox" name="mAnnotationDisplayTopComboBox"/>
766+
</item>
751767
<item row="13" column="0">
752768
<widget class="QLabel" name="label">
753769
<property name="text">
754770
<string>Font</string>
755771
</property>
756772
</widget>
757773
</item>
758-
<item row="4" column="0">
759-
<widget class="QLabel" name="mAnnotationPositionLabelRight">
760-
<property name="text">
761-
<string>Right</string>
762-
</property>
763-
<property name="wordWrap">
764-
<bool>true</bool>
765-
</property>
766-
</widget>
774+
<item row="2" column="1" colspan="2">
775+
<widget class="QComboBox" name="mAnnotationPositionLeftComboBox"/>
767776
</item>
768777
<item row="15" column="0">
769-
<widget class="QLabel" name="mDistanceToFrameLabel">
778+
<widget class="QLabel" name="mCoordinatePrecisionLabel">
770779
<property name="text">
771-
<string>Distance to map frame</string>
780+
<string>Coordinate precision</string>
772781
</property>
773782
<property name="wordWrap">
774783
<bool>true</bool>
775784
</property>
776785
</widget>
777786
</item>
778-
<item row="15" column="2">
787+
<item row="14" column="2">
779788
<widget class="QgsPropertyOverrideButton" name="mLabelDistDDBtn">
780789
<property name="text">
781790
<string>…</string>
782791
</property>
783792
</widget>
784793
</item>
785-
<item row="16" column="1" colspan="2">
786-
<widget class="QgsSpinBox" name="mCoordinatePrecisionSpinBox">
787-
<property name="showClearButton" stdset="0">
788-
<bool>false</bool>
789-
</property>
790-
</widget>
791-
</item>
792-
<item row="14" column="1" colspan="2">
793-
<layout class="QHBoxLayout" name="horizontalLayout">
794-
<item>
795-
<widget class="QgsColorButton" name="mAnnotationFontColorButton">
796-
<property name="minimumSize">
797-
<size>
798-
<width>120</width>
799-
<height>0</height>
800-
</size>
801-
</property>
802-
<property name="text">
803-
<string/>
804-
</property>
805-
</widget>
806-
</item>
807-
<item>
808-
<spacer name="horizontalSpacer">
809-
<property name="orientation">
810-
<enum>Qt::Horizontal</enum>
811-
</property>
812-
<property name="sizeHint" stdset="0">
813-
<size>
814-
<width>40</width>
815-
<height>20</height>
816-
</size>
817-
</property>
818-
</spacer>
819-
</item>
820-
</layout>
821-
</item>
822-
<item row="13" column="1" colspan="2">
823-
<widget class="QgsFontButton" name="mAnnotationFontButton">
824-
<property name="sizePolicy">
825-
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
826-
<horstretch>0</horstretch>
827-
<verstretch>0</verstretch>
828-
</sizepolicy>
829-
</property>
830-
<property name="text">
831-
<string>Font</string>
832-
</property>
833-
</widget>
834-
</item>
835-
<item row="12" column="1" colspan="2">
836-
<widget class="QComboBox" name="mAnnotationDirectionComboBoxBottom"/>
837-
</item>
838-
<item row="11" column="1" colspan="2">
839-
<widget class="QComboBox" name="mAnnotationPositionBottomComboBox"/>
840-
</item>
841-
<item row="10" column="1" colspan="2">
842-
<widget class="QComboBox" name="mAnnotationDisplayBottomComboBox"/>
843-
</item>
844794
<item row="9" column="1" colspan="2">
845795
<widget class="QComboBox" name="mAnnotationDirectionComboBoxTop"/>
846796
</item>
847797
<item row="8" column="1" colspan="2">
848798
<widget class="QComboBox" name="mAnnotationPositionTopComboBox"/>
849799
</item>
850-
<item row="7" column="1" colspan="2">
851-
<widget class="QComboBox" name="mAnnotationDisplayTopComboBox"/>
800+
<item row="3" column="1" colspan="2">
801+
<widget class="QComboBox" name="mAnnotationDirectionComboBoxLeft"/>
852802
</item>
853803
<item row="6" column="1" colspan="2">
854804
<widget class="QComboBox" name="mAnnotationDirectionComboBoxRight"/>
855805
</item>
856-
<item row="5" column="1" colspan="2">
857-
<widget class="QComboBox" name="mAnnotationPositionRightComboBox"/>
806+
<item row="1" column="1" colspan="2">
807+
<widget class="QComboBox" name="mAnnotationDisplayLeftComboBox"/>
858808
</item>
859-
<item row="4" column="1" colspan="2">
860-
<widget class="QComboBox" name="mAnnotationDisplayRightComboBox"/>
809+
<item row="0" column="0">
810+
<widget class="QLabel" name="mAnnotationFormatLabel">
811+
<property name="text">
812+
<string>Format</string>
813+
</property>
814+
</widget>
861815
</item>
862-
<item row="3" column="1" colspan="2">
863-
<widget class="QComboBox" name="mAnnotationDirectionComboBoxLeft"/>
816+
<item row="7" column="0">
817+
<widget class="QLabel" name="mAnnotationPositionLabelTop">
818+
<property name="text">
819+
<string>Top</string>
820+
</property>
821+
<property name="wordWrap">
822+
<bool>true</bool>
823+
</property>
824+
</widget>
864825
</item>
865-
<item row="2" column="1" colspan="2">
866-
<widget class="QComboBox" name="mAnnotationPositionLeftComboBox"/>
826+
<item row="11" column="1" colspan="2">
827+
<widget class="QComboBox" name="mAnnotationPositionBottomComboBox"/>
867828
</item>
868-
<item row="1" column="1" colspan="2">
869-
<widget class="QComboBox" name="mAnnotationDisplayLeftComboBox"/>
829+
<item row="5" column="1" colspan="2">
830+
<widget class="QComboBox" name="mAnnotationPositionRightComboBox"/>
870831
</item>
871-
<item row="0" column="1" colspan="2">
872-
<layout class="QHBoxLayout" name="horizontalLayout_13">
873-
<item>
874-
<widget class="QComboBox" name="mAnnotationFormatComboBox"/>
875-
</item>
876-
<item>
877-
<widget class="QToolButton" name="mAnnotationFormatButton">
878-
<property name="text">
879-
<string>…</string>
880-
</property>
881-
<property name="icon">
882-
<iconset resource="../../../images/images.qrc">
883-
<normaloff>:/images/themes/default/mIconExpression.svg</normaloff>:/images/themes/default/mIconExpression.svg</iconset>
884-
</property>
885-
</widget>
886-
</item>
887-
</layout>
832+
<item row="14" column="0">
833+
<widget class="QLabel" name="mDistanceToFrameLabel">
834+
<property name="text">
835+
<string>Distance to map frame</string>
836+
</property>
837+
<property name="wordWrap">
838+
<bool>true</bool>
839+
</property>
840+
</widget>
841+
</item>
842+
<item row="15" column="1" colspan="2">
843+
<widget class="QgsSpinBox" name="mCoordinatePrecisionSpinBox">
844+
<property name="showClearButton" stdset="0">
845+
<bool>false</bool>
846+
</property>
847+
</widget>
848+
</item>
849+
<item row="12" column="1" colspan="2">
850+
<widget class="QComboBox" name="mAnnotationDirectionComboBoxBottom"/>
888851
</item>
889852
</layout>
890853
</widget>
@@ -897,70 +860,79 @@
897860
</widget>
898861
<layoutdefault spacing="6" margin="11"/>
899862
<customwidgets>
863+
<customwidget>
864+
<class>QgsCollapsibleGroupBoxBasic</class>
865+
<extends>QGroupBox</extends>
866+
<header location="global">qgscollapsiblegroupbox.h</header>
867+
<container>1</container>
868+
</customwidget>
900869
<customwidget>
901870
<class>QgsScrollArea</class>
902871
<extends>QScrollArea</extends>
903872
<header>qgsscrollarea.h</header>
904873
<container>1</container>
905874
</customwidget>
906875
<customwidget>
907-
<class>QgsCollapsibleGroupBoxBasic</class>
908-
<extends>QGroupBox</extends>
909-
<header>qgscollapsiblegroupbox.h</header>
876+
<class>QgsColorButton</class>
877+
<extends>QToolButton</extends>
878+
<header>qgscolorbutton.h</header>
910879
<container>1</container>
911880
</customwidget>
912881
<customwidget>
913882
<class>QgsDoubleSpinBox</class>
914883
<extends>QDoubleSpinBox</extends>
915884
<header>qgsdoublespinbox.h</header>
916885
</customwidget>
886+
<customwidget>
887+
<class>QgsFontButton</class>
888+
<extends>QToolButton</extends>
889+
<header>qgsfontbutton.h</header>
890+
</customwidget>
917891
<customwidget>
918892
<class>QgsSpinBox</class>
919893
<extends>QSpinBox</extends>
920894
<header>qgsspinbox.h</header>
921895
</customwidget>
922-
<customwidget>
923-
<class>QgsBlendModeComboBox</class>
924-
<extends>QComboBox</extends>
925-
<header>qgsblendmodecombobox.h</header>
926-
</customwidget>
927-
<customwidget>
928-
<class>QgsSymbolButton</class>
929-
<extends>QToolButton</extends>
930-
<header>qgssymbolbutton.h</header>
931-
</customwidget>
932896
<customwidget>
933897
<class>QgsPropertyOverrideButton</class>
934898
<extends>QToolButton</extends>
935899
<header>qgspropertyoverridebutton.h</header>
936900
</customwidget>
937901
<customwidget>
938-
<class>QgsColorButton</class>
939-
<extends>QToolButton</extends>
940-
<header>qgscolorbutton.h</header>
941-
<container>1</container>
902+
<class>QgsBlendModeComboBox</class>
903+
<extends>QComboBox</extends>
904+
<header>qgsblendmodecombobox.h</header>
942905
</customwidget>
943906
<customwidget>
944-
<class>QgsFontButton</class>
907+
<class>QgsSymbolButton</class>
945908
<extends>QToolButton</extends>
946-
<header>qgsfontbutton.h</header>
909+
<header>qgssymbolbutton.h</header>
947910
</customwidget>
948911
</customwidgets>
949912
<tabstops>
950913
<tabstop>scrollArea</tabstop>
951914
<tabstop>mGridTypeComboBox</tabstop>
952915
<tabstop>mMapGridCRSButton</tabstop>
916+
<tabstop>mMapGridUnitComboBox</tabstop>
917+
<tabstop>mMinWidthSpinBox</tabstop>
918+
<tabstop>mMaxWidthSpinBox</tabstop>
953919
<tabstop>mOffsetXSpinBox</tabstop>
920+
<tabstop>mOffsetXDDBtn</tabstop>
954921
<tabstop>mOffsetYSpinBox</tabstop>
922+
<tabstop>mOffsetYDDBtn</tabstop>
955923
<tabstop>mCrossWidthSpinBox</tabstop>
924+
<tabstop>mCrossWidthDDBtn</tabstop>
956925
<tabstop>mGridLineStyleButton</tabstop>
957926
<tabstop>mGridMarkerStyleButton</tabstop>
958927
<tabstop>mGridBlendComboBox</tabstop>
959928
<tabstop>mGridFrameGroupBox</tabstop>
960929
<tabstop>mFrameStyleComboBox</tabstop>
961930
<tabstop>mFrameWidthSpinBox</tabstop>
931+
<tabstop>mFrameSizeDDBtn</tabstop>
962932
<tabstop>mGridFrameMarginSpinBox</tabstop>
933+
<tabstop>mFrameMarginDDBtn</tabstop>
963934
<tabstop>mGridFramePenSizeSpinBox</tabstop>
935+
<tabstop>mFrameLineThicknessDDBtn</tabstop>
964936
<tabstop>mGridFramePenColorButton</tabstop>
965937
<tabstop>mGridFrameFill1ColorButton</tabstop>
966938
<tabstop>mGridFrameFill2ColorButton</tabstop>
@@ -988,9 +960,15 @@
988960
<tabstop>mAnnotationPositionBottomComboBox</tabstop>
989961
<tabstop>mAnnotationDirectionComboBoxBottom</tabstop>
990962
<tabstop>mAnnotationFontButton</tabstop>
991-
<tabstop>mAnnotationFontColorButton</tabstop>
992963
<tabstop>mDistanceToMapFrameSpinBox</tabstop>
964+
<tabstop>mLabelDistDDBtn</tabstop>
993965
<tabstop>mCoordinatePrecisionSpinBox</tabstop>
966+
<tabstop>mEnabledCheckBox</tabstop>
967+
<tabstop>mEnabledDDBtn</tabstop>
968+
<tabstop>mIntervalXSpinBox</tabstop>
969+
<tabstop>mIntervalYDDBtn</tabstop>
970+
<tabstop>mIntervalYSpinBox</tabstop>
971+
<tabstop>mIntervalXDDBtn</tabstop>
994972
</tabstops>
995973
<resources>
996974
<include location="../../../images/images.qrc"/>

0 commit comments

Comments
 (0)
Please sign in to comment.