<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The layer name can be stored in subLayers() for conveniency, since it has usually a short life. And for subLayers() / askUserForOGRSublayers() make the layer id what is used.</blockquote></blockquote><div>subLayers is not used when read from a project, only when a new source is added. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Not sure to what you are refering too, since I can see the layerName returned here:</blockquote></blockquote><div>Between  subLayers() and QgsOgrProvider the data runs through other functions in other classes</div><div>- in one the layername is removed<br></div><div><br></div><div><div>void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )</div><div>    Q_FOREACH ( const QgsSublayersDialog::LayerDefinition& def, chooseSublayersDialog.selection() )</div><div>    {</div><div>      QString layerGeometryType = def.type;</div><div> -    QString composedURI = uri + "|layerid=" + QString::number( def.layerId );</div><div> -</div><div> +    QString composedURI = uri + "|layerid=" + QString::number( def.layerId ) + "|layername=" + def.layerName;</div></div></div>