Skip to content
Permalink
Browse files
[legend] insure multi-line labels are vertically centered with tall s…
…ymbols
  • Loading branch information
nirvn committed Oct 19, 2016
1 parent 4bcd970 commit 455874258cfe7deeb4de888483adbedd97c4da7b
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 4558742

Please sign in to comment.