@@ -163,37 +163,50 @@ int QgsLegendModel::addVectorLayerItemsV2( QStandardItem* layerItem, QgsVectorLa
163
163
int row = 0 ;
164
164
for ( ; symbolIt != lst.constEnd (); ++symbolIt )
165
165
{
166
- QgsComposerSymbolV2Item* currentSymbolItem = new QgsComposerSymbolV2Item ( " " );
167
-
168
- // Get userText from old item if exists
169
- QgsComposerSymbolV2Item* oldSymbolItem = dynamic_cast <QgsComposerSymbolV2Item*>( layerItem->child ( row, 0 ) );
170
- if ( oldSymbolItem )
166
+ if ( scaleDenominator == -1 )
171
167
{
172
- currentSymbolItem-> setUserText ( oldSymbolItem-> userText () );
168
+ QgsComposerSymbolV2Item* currentSymbolItem = new QgsComposerSymbolV2Item ( " " );
173
169
174
- }
170
+ // Get userText from old item if exists
171
+ QgsComposerSymbolV2Item* oldSymbolItem = dynamic_cast <QgsComposerSymbolV2Item*>( layerItem->child ( row, 0 ) );
172
+ if ( oldSymbolItem )
173
+ {
174
+ currentSymbolItem->setUserText ( oldSymbolItem->userText () );
175
+ }
175
176
176
- currentSymbolItem->setFlags ( Qt::ItemIsEnabled | Qt::ItemIsSelectable );
177
- if ( symbolIt->second )
178
- {
179
- if ( mHasTopLevelWindow ) // only use QIcon / QPixmap if we have a running x-server
177
+ currentSymbolItem->setFlags ( Qt::ItemIsEnabled | Qt::ItemIsSelectable );
178
+ if ( symbolIt->second )
180
179
{
181
- currentSymbolItem->setIcon ( QgsSymbolLayerV2Utils::symbolPreviewIcon ( symbolIt->second , QSize ( 30 , 30 ) ) );
180
+ if ( mHasTopLevelWindow ) // only use QIcon / QPixmap if we have a running x-server
181
+ {
182
+ currentSymbolItem->setIcon ( QgsSymbolLayerV2Utils::symbolPreviewIcon ( symbolIt->second , QSize ( 30 , 30 ) ) );
183
+ }
184
+ currentSymbolItem->setSymbolV2 ( symbolIt->second ->clone () );
182
185
}
183
- currentSymbolItem->setSymbolV2 ( symbolIt->second ->clone () );
184
- }
185
- layerItem->setChild ( row, 0 , currentSymbolItem );
186
+ layerItem->setChild ( row, 0 , currentSymbolItem );
186
187
187
- // updateSymbolV2ItemText needs layer set
188
- updateSymbolV2ItemText ( currentSymbolItem );
188
+ // updateSymbolV2ItemText needs layer set
189
+ updateSymbolV2ItemText ( currentSymbolItem );
189
190
190
- row++;
191
+ row++;
192
+ }
193
+ else
194
+ {
195
+ QgsComposerSymbolV2Item* currentSymbolItem = new QgsComposerSymbolV2Item ( " " );
196
+ currentSymbolItem->setIcon ( QgsSymbolLayerV2Utils::symbolPreviewIcon ( symbolIt->second , QSize ( 30 , 30 ) ) );
197
+ currentSymbolItem->setSymbolV2 ( symbolIt->second );
198
+ layerItem->setChild ( 0 , 0 , currentSymbolItem );
199
+ currentSymbolItem->setText ( symbolIt->first );
200
+ }
191
201
}
192
202
193
- // Delete following old items (if current number of items decreased)
194
- for ( int i = layerItem->rowCount () - 1 ; i >= row; --i )
203
+ if ( scaleDenominator == -1 )
195
204
{
196
- layerItem->removeRow ( i );
205
+ // Delete following old items (if current number of items decreased)
206
+ for ( int i = layerItem->rowCount () - 1 ; i >= row; --i )
207
+ {
208
+ layerItem->removeRow ( i );
209
+ }
197
210
}
198
211
199
212
return 0 ;
0 commit comments