Skip to content

Commit c5f7f1e

Browse files
committed
Composer Legend: Add spacing for groups. Fixes #4247 Patch by Anna
Kratochvilova. Thanks!
1 parent c2fee79 commit c5f7f1e

File tree

6 files changed

+45
-11
lines changed

6 files changed

+45
-11
lines changed

src/app/composer/qgscomposerlegendwidget.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ void QgsComposerLegendWidget::setGuiElements()
8181
mTitleLineEdit->setText( mLegend->title() );
8282
mSymbolWidthSpinBox->setValue( mLegend->symbolWidth() );
8383
mSymbolHeightSpinBox->setValue( mLegend->symbolHeight() );
84+
mGroupSpaceSpinBox->setValue( mLegend->groupSpace() );
8485
mLayerSpaceSpinBox->setValue( mLegend->layerSpace() );
8586
mSymbolSpaceSpinBox->setValue( mLegend->symbolSpace() );
8687
mIconLabelSpaceSpinBox->setValue( mLegend->iconLabelSpace() );
@@ -140,6 +141,18 @@ void QgsComposerLegendWidget::on_mSymbolHeightSpinBox_valueChanged( double d )
140141
}
141142
}
142143

144+
void QgsComposerLegendWidget::on_mGroupSpaceSpinBox_valueChanged( double d )
145+
{
146+
if ( mLegend )
147+
{
148+
mLegend->beginCommand( tr( "Legend group space" ), QgsComposerMergeCommand::LegendGroupSpace );
149+
mLegend->setGroupSpace( d );
150+
mLegend->adjustBoxSize();
151+
mLegend->update();
152+
mLegend->endCommand();
153+
}
154+
}
155+
143156
void QgsComposerLegendWidget::on_mLayerSpaceSpinBox_valueChanged( double d )
144157
{
145158
if ( mLegend )
@@ -641,6 +654,7 @@ void QgsComposerLegendWidget::blockAllSignals( bool b )
641654
mMapComboBox->blockSignals( b );
642655
mSymbolWidthSpinBox->blockSignals( b );
643656
mSymbolHeightSpinBox->blockSignals( b );
657+
mGroupSpaceSpinBox->blockSignals( b );
644658
mLayerSpaceSpinBox->blockSignals( b );
645659
mSymbolSpaceSpinBox->blockSignals( b );
646660
mIconLabelSpaceSpinBox->blockSignals( b );

src/app/composer/qgscomposerlegendwidget.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class QgsComposerLegendWidget: public QWidget, private Ui::QgsComposerLegendWidg
4242
void on_mTitleLineEdit_textChanged( const QString& text );
4343
void on_mSymbolWidthSpinBox_valueChanged( double d );
4444
void on_mSymbolHeightSpinBox_valueChanged( double d );
45+
void on_mGroupSpaceSpinBox_valueChanged( double d );
4546
void on_mLayerSpaceSpinBox_valueChanged( double d );
4647
void on_mSymbolSpaceSpinBox_valueChanged( double d );
4748
void on_mIconLabelSpaceSpinBox_valueChanged( double d );

src/core/composer/qgscomposeritemcommand.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class CORE_EXPORT QgsComposerMergeCommand: public QgsComposerItemCommand
7979
ComposerLegendText,
8080
LegendSymbolWidth,
8181
LegendSymbolHeight,
82+
LegendGroupSpace,
8283
LegendLayerSpace,
8384
LegendSymbolSpace,
8485
LegendIconSymbolSpace,

src/core/composer/qgscomposerlegend.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ QgsComposerLegend::QgsComposerLegend( QgsComposition* composition )
3232
: QgsComposerItem( composition )
3333
, mTitle( tr( "Legend" ) )
3434
, mBoxSpace( 2 )
35+
, mGroupSpace( 2 )
3536
, mLayerSpace( 2 )
3637
, mSymbolSpace( 2 )
3738
, mIconLabelSpace( 2 ), mComposerMap( 0 )
@@ -165,7 +166,7 @@ void QgsComposerLegend::drawGroupItem( QPainter* p, QgsComposerGroupItem* groupI
165166
return;
166167
}
167168

168-
currentYCoord += mLayerSpace;
169+
currentYCoord += mGroupSpace;
169170
currentYCoord += fontAscentMillimeters( mGroupFont );
170171

171172
p->setPen( QColor( 0, 0, 0 ) );
@@ -642,6 +643,7 @@ bool QgsComposerLegend::writeXML( QDomElement& elem, QDomDocument & doc ) const
642643
composerLegendElem.setAttribute( "layerFont", mLayerFont.toString() );
643644
composerLegendElem.setAttribute( "itemFont", mItemFont.toString() );
644645
composerLegendElem.setAttribute( "boxSpace", QString::number( mBoxSpace ) );
646+
composerLegendElem.setAttribute( "groupSpace", QString::number( mGroupSpace ) );
645647
composerLegendElem.setAttribute( "layerSpace", QString::number( mLayerSpace ) );
646648
composerLegendElem.setAttribute( "symbolSpace", QString::number( mSymbolSpace ) );
647649
composerLegendElem.setAttribute( "iconLabelSpace", QString::number( mIconLabelSpace ) );
@@ -697,6 +699,7 @@ bool QgsComposerLegend::readXML( const QDomElement& itemElem, const QDomDocument
697699

698700
//spaces
699701
mBoxSpace = itemElem.attribute( "boxSpace", "2.0" ).toDouble();
702+
mGroupSpace = itemElem.attribute( "groupSpace", "3.0" ).toDouble();
700703
mLayerSpace = itemElem.attribute( "layerSpace", "3.0" ).toDouble();
701704
mSymbolSpace = itemElem.attribute( "symbolSpace", "2.0" ).toDouble();
702705
mIconLabelSpace = itemElem.attribute( "iconLabelSpace", "2.0" ).toDouble();

src/core/composer/qgscomposerlegend.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ class CORE_EXPORT QgsComposerLegend: public QgsComposerItem
7272
double boxSpace() const {return mBoxSpace;}
7373
void setBoxSpace( double s ) {mBoxSpace = s;}
7474

75+
double groupSpace() const {return mGroupSpace;}
76+
void setGroupSpace( double s ) {mGroupSpace = s;}
77+
7578
double layerSpace() const {return mLayerSpace;}
7679
void setLayerSpace( double s ) {mLayerSpace = s;}
7780

@@ -122,6 +125,8 @@ class CORE_EXPORT QgsComposerLegend: public QgsComposerItem
122125

123126
/**Space between item box and contents*/
124127
double mBoxSpace;
128+
/**Vertical space between group entries*/
129+
double mGroupSpace;
125130
/**Vertical space between layer entries*/
126131
double mLayerSpace;
127132
/**Vertical space between symbol entries*/

src/ui/qgscomposerlegendwidgetbase.ui

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@
4444
<item row="0" column="0">
4545
<widget class="QToolBox" name="toolBox">
4646
<property name="currentIndex">
47-
<number>1</number>
47+
<number>0</number>
4848
</property>
4949
<widget class="QWidget" name="page">
5050
<property name="geometry">
5151
<rect>
5252
<x>0</x>
53-
<y>-26</y>
53+
<y>0</y>
5454
<width>370</width>
55-
<height>440</height>
55+
<height>471</height>
5656
</rect>
5757
</property>
5858
<attribute name="label">
@@ -116,7 +116,7 @@
116116
</property>
117117
</widget>
118118
</item>
119-
<item row="9" column="0">
119+
<item row="10" column="0">
120120
<widget class="QDoubleSpinBox" name="mLayerSpaceSpinBox">
121121
<property name="prefix">
122122
<string>Layer space </string>
@@ -126,7 +126,7 @@
126126
</property>
127127
</widget>
128128
</item>
129-
<item row="10" column="0">
129+
<item row="12" column="0">
130130
<widget class="QDoubleSpinBox" name="mSymbolSpaceSpinBox">
131131
<property name="prefix">
132132
<string>Symbol space </string>
@@ -136,7 +136,7 @@
136136
</property>
137137
</widget>
138138
</item>
139-
<item row="11" column="0">
139+
<item row="13" column="0">
140140
<widget class="QDoubleSpinBox" name="mIconLabelSpaceSpinBox">
141141
<property name="prefix">
142142
<string>Icon label space </string>
@@ -146,7 +146,7 @@
146146
</property>
147147
</widget>
148148
</item>
149-
<item row="12" column="0">
149+
<item row="14" column="0">
150150
<widget class="QDoubleSpinBox" name="mBoxSpaceSpinBox">
151151
<property name="prefix">
152152
<string>Box space </string>
@@ -156,7 +156,7 @@
156156
</property>
157157
</widget>
158158
</item>
159-
<item row="15" column="0">
159+
<item row="17" column="0">
160160
<spacer name="verticalSpacer">
161161
<property name="orientation">
162162
<enum>Qt::Vertical</enum>
@@ -169,10 +169,10 @@
169169
</property>
170170
</spacer>
171171
</item>
172-
<item row="14" column="0">
172+
<item row="16" column="0">
173173
<widget class="QComboBox" name="mMapComboBox"/>
174174
</item>
175-
<item row="13" column="0">
175+
<item row="15" column="0">
176176
<widget class="QLabel" name="mMapLabel">
177177
<property name="text">
178178
<string>Map</string>
@@ -189,6 +189,16 @@
189189
</property>
190190
</widget>
191191
</item>
192+
<item row="9" column="0">
193+
<widget class="QDoubleSpinBox" name="mGroupSpaceSpinBox">
194+
<property name="prefix">
195+
<string>Group Space </string>
196+
</property>
197+
<property name="suffix">
198+
<string> mm</string>
199+
</property>
200+
</widget>
201+
</item>
192202
</layout>
193203
</widget>
194204
<widget class="QWidget" name="page_2">

0 commit comments

Comments
 (0)