Show embedded layers in italic

This commit is contained in:
Marco Hugentobler 2011-05-31 11:39:45 +02:00
parent e3197a6365
commit 57aca16c4b
4 changed files with 19 additions and 3 deletions

View File

@ -636,6 +636,12 @@ void QgsLegend::addLayer( QgsMapLayer * layer )
}
QgsLegendLayer* llayer = new QgsLegendLayer( layer );
if( !QgsProject::instance()->layerIsEmbedded( layer->id() ).isEmpty() )
{
QFont itemFont;
itemFont.setItalic( true );
llayer->setFont( 0, itemFont );
}
//set the correct check states
blockSignals( true );

View File

@ -5055,7 +5055,7 @@ void QgisApp::embedLayers()
//hardcoded for debugging
QString filepath="/home/marco/geodaten/projekte/composertest.qgs";
QString id="komb113320110516093016594";
QString id="komb113320110531113659299";
QList<QDomNode> brokenNodes;
QList< QPair< QgsVectorLayer*, QDomElement > > vectorLayerList;

View File

@ -1653,7 +1653,16 @@ bool QgsProject::createEmbeddedLayer( const QString& layerId, const QString& pro
QString id = mapLayerElem.firstChildElement("id").text();
if( id == layerId )
{
return addLayer( mapLayerElem, brokenNodes, vectorLayerList );
mEmbeddedLayers.insert( layerId, projectFilePath );
if( addLayer( mapLayerElem, brokenNodes, vectorLayerList ) )
{
return true;
}
else
{
mEmbeddedLayers.remove( layerId );
return false;
}
#if 0
QString type = mapLayerElem.attribute("type");
QgsMapLayer* layer = 0;

View File

@ -337,7 +337,8 @@ class CORE_EXPORT QgsProject : public QObject
QgsProjectBadLayerHandler* mBadLayerHandler;
/**Embeded layers which are defined in other projects. Key: layer id, value: project file path*/
/**Embeded layers which are defined in other projects. Key: layer id, value: project file path.
If the project file path is empty, QgsProject is going to ignore the layer for saving (e.g. because it is part and managed by an embedded group)*/
QHash< QString, QString > mEmbeddedLayers;
}; // QgsProject