mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-26 00:02:08 -05:00
Make sure items in legend always occupy the set number of columns
In some cases (eg a legend with 4 items and 3 columns) less columns were being created
This commit is contained in:
parent
a673fa8393
commit
52eef90061
@ -295,13 +295,19 @@ void QgsLegendRenderer::setColumns( QList<Atom>& atomList )
|
||||
currentHeight += spaceAboveAtom( atom );
|
||||
currentHeight += atom.size.height();
|
||||
|
||||
// Recalc average height for remaining columns including current
|
||||
avgColumnHeight = ( totalHeight - closedColumnsHeight ) / ( mSettings.columnCount() - currentColumn );
|
||||
if (( currentHeight - avgColumnHeight ) > atom.size.height() / 2 // center of current atom is over average height
|
||||
&& currentColumnAtomCount > 0 // do not leave empty column
|
||||
&& currentHeight > maxAtomHeight // no sense to make smaller columns than max atom height
|
||||
&& currentHeight > maxColumnHeight // no sense to make smaller columns than max column already created
|
||||
&& currentColumn < mSettings.columnCount() - 1 ) // must not exceed max number of columns
|
||||
bool canCreateNewColumn = ( currentColumnAtomCount > 0 ) // do not leave empty column
|
||||
&& ( currentColumn < mSettings.columnCount() - 1 ); // must not exceed max number of columns
|
||||
|
||||
bool shouldCreateNewColumn = ( currentHeight - avgColumnHeight ) > atom.size.height() / 2 // center of current atom is over average height
|
||||
&& currentColumnAtomCount > 0 // do not leave empty column
|
||||
&& currentHeight > maxAtomHeight // no sense to make smaller columns than max atom height
|
||||
&& currentHeight > maxColumnHeight; // no sense to make smaller columns than max column already created
|
||||
|
||||
// also should create a new column if the number of items left < number of columns left
|
||||
// in this case we should spread the remaining items out over the remaining columns
|
||||
shouldCreateNewColumn |= ( atomList.size() - i < mSettings.columnCount() - currentColumn );
|
||||
|
||||
if ( canCreateNewColumn && shouldCreateNewColumn )
|
||||
{
|
||||
// New column
|
||||
currentColumn++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user