@@ -230,6 +230,7 @@ void QgsLegendModel::removeAllSymbols()
230
230
mSymbols .clear ();
231
231
}
232
232
233
+ #if 0
233
234
void QgsLegendModel::updateLayerEntries( const QStringList& newLayerIds )
234
235
{
235
236
if ( !invisibleRootItem() )
@@ -276,6 +277,57 @@ void QgsLegendModel::updateLayerEntries( const QStringList& newLayerIds )
276
277
277
278
mLayerIds = newLayerIds;
278
279
}
280
+ #endif // 0
281
+
282
+ void QgsLegendModel::updateLayer (const QString& layerId)
283
+ {
284
+ // find layer item
285
+ QStandardItem* layerItem = 0 ;
286
+ QStandardItem* currentLayerItem = 0 ;
287
+
288
+ int numRootItems = rowCount ();
289
+ for ( int i = 0 ; i < numRootItems ; ++i )
290
+ {
291
+ currentLayerItem = item ( i );
292
+ if ( !currentLayerItem )
293
+ {
294
+ continue ;
295
+ }
296
+
297
+ QString currentId = currentLayerItem->data ().toString ();
298
+ if ( currentId == layerId )
299
+ {
300
+ layerItem = currentLayerItem;
301
+ break ;
302
+ }
303
+ }
304
+
305
+ if (layerItem)
306
+ {
307
+ QgsMapLayer* mapLayer = QgsMapLayerRegistry::instance ()->mapLayer (layerId);
308
+ if (mapLayer)
309
+ {
310
+ // delete all the entries under layer item
311
+ for (int i = rowCount () - 1 ; i >= 0 ; --i)
312
+ {
313
+ layerItem->removeRow (i);
314
+ }
315
+
316
+ // and add the new ones...
317
+ switch (mapLayer->type ())
318
+ {
319
+ case QgsMapLayer::VECTOR:
320
+ addVectorLayerItems (layerItem, mapLayer);
321
+ break ;
322
+ case QgsMapLayer::RASTER:
323
+ addRasterLayerItem (layerItem, mapLayer);
324
+ break ;
325
+ default :
326
+ break ;
327
+ }
328
+ }
329
+ }
330
+ }
279
331
280
332
void QgsLegendModel::removeLayer ( const QString& layerId )
281
333
{
0 commit comments