bool QgsMeshLayer::readXml( const QDomNode &layer_node, QgsReadWriteContext &context ) { Q_UNUSED( context ); QgsDebugMsgLevel( QStringLiteral( "Datasource in QgsMeshLayer::readXml: %1" ).arg( mDataSource.toLocal8Bit().data() ), 3 ); //process provider key QDomNode pkeyNode = layer_node.namedItem( QStringLiteral( "provider" ) ); if ( pkeyNode.isNull() ) { mProviderKey.clear(); } else { QDomElement pkeyElt = pkeyNode.toElement(); mProviderKey = pkeyElt.text(); } QgsDataProvider::ProviderOptions providerOptions; if ( !setDataProvider( mProviderKey, providerOptions ) ) { return false; } return mValid; // should be true if read successfully }
/****************************************************************************** * Applies a modifier by appending it to the end of the node's modification * pipeline. ******************************************************************************/ void ObjectNode::applyModifier(Modifier* modifier) { if(!dataProvider()) throw Exception("Cannot insert modifier into a modification pipeline without a data source."); PipelineObject* pipelineObj = dynamic_object_cast<PipelineObject>(dataProvider()); if(!pipelineObj) { OORef<PipelineObject> p = new PipelineObject(dataset()); p->setSourceObject(dataProvider()); setDataProvider(p); pipelineObj = p; } pipelineObj->insertModifier(modifier, pipelineObj->modifierApplications().size()); }
QgsMeshLayer::QgsMeshLayer( const QString &meshLayerPath, const QString &baseName, const QString &providerKey, const LayerOptions & ) : QgsMapLayer( MeshLayer, baseName, meshLayerPath ) , mProviderKey( providerKey ) { // load data QgsDataProvider::ProviderOptions providerOptions; setDataProvider( providerKey, providerOptions ); // show at least the mesh by default so we render something mRendererNativeMeshSettings.setEnabled( true ); } // QgsMeshLayer ctor
bool QgsMeshLayer::readXml( const QDomNode &layer_node, QgsReadWriteContext &context ) { QgsDebugMsgLevel( QStringLiteral( "Datasource in QgsMeshLayer::readXml: %1" ).arg( mDataSource.toLocal8Bit().data() ), 3 ); //process provider key QDomNode pkeyNode = layer_node.namedItem( QStringLiteral( "provider" ) ); if ( pkeyNode.isNull() ) { mProviderKey.clear(); } else { QDomElement pkeyElt = pkeyNode.toElement(); mProviderKey = pkeyElt.text(); } QgsDataProvider::ProviderOptions providerOptions; if ( !setDataProvider( mProviderKey, providerOptions ) ) { return false; } QDomElement elemExtraDatasets = layer_node.firstChildElement( QStringLiteral( "extra-datasets" ) ); if ( !elemExtraDatasets.isNull() ) { QDomElement elemUri = elemExtraDatasets.firstChildElement( QStringLiteral( "uri" ) ); while ( !elemUri.isNull() ) { QString uri = context.pathResolver().readPath( elemUri.text() ); bool res = mDataProvider->addDataset( uri ); #ifdef QGISDEBUG QgsDebugMsg( QStringLiteral( "extra dataset (res %1): %2" ).arg( res ).arg( uri ) ); #else ( void )res; // avoid unused warning in release builds #endif elemUri = elemUri.nextSiblingElement( QStringLiteral( "uri" ) ); } } QString errorMsg; readSymbology( layer_node, errorMsg, context ); return mValid; // should be true if read successfully }
QgsMeshLayer::QgsMeshLayer( const QString &meshLayerPath, const QString &baseName, const QString &providerKey ) : QgsMapLayer( MeshLayer, baseName, meshLayerPath ) , mProviderKey( providerKey ) { // load data setDataProvider( providerKey ); QgsSymbolLayerList l1; l1 << new QgsSimpleFillSymbolLayer( Qt::white, Qt::NoBrush, Qt::black, Qt::SolidLine, 1.0 ); mNativeMeshSymbol.reset( new QgsFillSymbol( l1 ) ); toggleTriangularMeshRendering( false ); } // QgsMeshLayer ctor