[QGIS Commit] r13543 - trunk/qgis/src/core/composer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri May 21 02:32:09 EDT 2010
Author: mhugent
Date: 2010-05-21 02:32:06 -0400 (Fri, 21 May 2010)
New Revision: 13543
Modified:
trunk/qgis/src/core/composer/qgslegendmodel.cpp
Log:
Fix for crash with composer legend during project file save
Modified: trunk/qgis/src/core/composer/qgslegendmodel.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgslegendmodel.cpp 2010-05-20 23:11:17 UTC (rev 13542)
+++ trunk/qgis/src/core/composer/qgslegendmodel.cpp 2010-05-21 06:32:06 UTC (rev 13543)
@@ -108,40 +108,8 @@
for ( ; idIter != mLayerIds.constEnd(); ++idIter )
{
currentLayer = QgsMapLayerRegistry::instance()->mapLayer( *idIter );
-
- //addItem for layer
- QgsComposerLayerItem* layerItem = new QgsComposerLayerItem( currentLayer->name() );
- layerItem->setLayerID( currentLayer->getLayerID() );
- layerItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable );
-
- invisibleRootItem()->setChild( invisibleRootItem()->rowCount(), layerItem );
-
- switch ( currentLayer->type() )
- {
- case QgsMapLayer::VectorLayer:
- {
- QgsVectorLayer* vl = dynamic_cast<QgsVectorLayer*>( currentLayer );
- if ( vl )
- {
- if ( vl->isUsingRendererV2() )
- {
- addVectorLayerItemsV2( layerItem, vl );
- }
- else
- {
- addVectorLayerItems( layerItem, vl );
- }
- }
- break;
- }
- case QgsMapLayer::RasterLayer:
- addRasterLayerItem( layerItem, currentLayer );
- break;
- default:
- break;
- }
+ addLayer( currentLayer );
}
-
}
QStandardItem* QgsLegendModel::addGroup( QString text, int position )
@@ -360,14 +328,12 @@
return;
}
- //append new layer item
- QStandardItem* layerItem = new QStandardItem( theMapLayer->name() );
- layerItem->setData( QgsLegendModel::LayerItem, Qt::UserRole + 1 ); //first user data stores the item type
- layerItem->setData( QVariant( theMapLayer->getLayerID() ), Qt::UserRole + 2 );
+ QgsComposerLayerItem* layerItem = new QgsComposerLayerItem( theMapLayer->name() );
+ layerItem->setLayerID( theMapLayer->getLayerID() );
layerItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable );
+
invisibleRootItem()->setChild( invisibleRootItem()->rowCount(), layerItem );
- //and child items of layer
switch ( theMapLayer->type() )
{
case QgsMapLayer::VectorLayer:
@@ -486,7 +452,7 @@
{
currentItem = invisibleRootItem()->child( i, 0 );
currentLegendItem = dynamic_cast<QgsComposerLegendItem*>( currentItem );
- if ( currentItem )
+ if ( currentLegendItem )
{
currentLegendItem->writeXML( legendModelElem, doc );
}
More information about the QGIS-commit
mailing list