Skip to content
Permalink
Browse files
Merge pull request #3631 from nirvn/legend_vertical_alignment_2
[legend] insure multi-line labels are vertically centered with tall symbols
  • Loading branch information
nyalldawson committed Oct 19, 2016
2 parents 4bcd970 + 4558742 commit 1a51a7577bcd2aaf0c998c55c37e45bc4b5667a8
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 3 deletions.
@@ -108,9 +108,9 @@ QSizeF QgsLayerTreeModelLegendNode::drawSymbolText( const QgsLegendSettings& set

// Vertical alignment of label with symbol
if ( labelSize.height() < symbolSize.height() )
labelY += symbolSize.height() / 2 + textHeight / 2; // label centered with symbol
else
labelY += textHeight; // label starts at top and runs under symbol
labelY += symbolSize.height() / 2 - labelSize.height() / 2; // label centered with symbol

labelY += textHeight;
}

for ( QStringList::Iterator itemPart = lines.begin(); itemPart != lines.end(); ++itemPart )
@@ -114,6 +114,7 @@ class TestQgsLegendRenderer : public QObject
void testBasic();
void testBigMarker();
void testMapUnits();
void testTallSymbol();
void testLongSymbolText();
void testThreeColumns();
void testFilterByMap();
@@ -338,6 +339,28 @@ void TestQgsLegendRenderer::testMapUnits()
QVERIFY( _verifyImage( testName, mReport ) );
}

void TestQgsLegendRenderer::testTallSymbol()
{
QString testName = "legend_tall_symbol";

QgsCategorizedSymbolRenderer* catRenderer = dynamic_cast<QgsCategorizedSymbolRenderer*>( mVL3->renderer() );
QVERIFY( catRenderer );
catRenderer->updateCategoryLabel( 1, "This is\nthree lines\nlong label" );

mVL2->setName( "This is a two lines\nlong label" );

QgsLayerTreeModel legendModel( mRoot );

QgsLegendSettings settings;
settings.setWrapChar( "\n" );
settings.setSymbolSize( QSizeF( 10.0, 10.0 ) );
_setStandardTestFont( settings );
_renderLegend( testName, &legendModel, settings );
QVERIFY( _verifyImage( testName, mReport ) );

mVL2->setName( "Polygon Layer" );
}

void TestQgsLegendRenderer::testLongSymbolText()
{
QString testName = "legend_long_symbol_text";
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1a51a75

Please sign in to comment.