void QgsMapCanvasTracer::configure() { setCrsTransformEnabled( mCanvas->mapSettings().hasCrsTransformEnabled() ); setDestinationCrs( mCanvas->mapSettings().destinationCrs() ); setExtent( mCanvas->extent() ); QList<QgsVectorLayer*> layers; QStringList visibleLayerIds = mCanvas->mapSettings().layers(); switch ( mCanvas->snappingUtils()->snapToMapMode() ) { default: case QgsSnappingUtils::SnapCurrentLayer: { QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( mCanvas->currentLayer() ); if ( vl && visibleLayerIds.contains( vl->id() ) ) layers << vl; } break; case QgsSnappingUtils::SnapAllLayers: Q_FOREACH ( const QString& layerId, visibleLayerIds ) { QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( QgsMapLayerRegistry::instance()->mapLayer( layerId ) ); if ( vl ) layers << vl; } break; case QgsSnappingUtils::SnapAdvanced: Q_FOREACH ( const QgsSnappingUtils::LayerConfig& cfg, mCanvas->snappingUtils()->layers() ) { if ( visibleLayerIds.contains( cfg.layer->id() ) ) layers << cfg.layer; } break; }
void QgsMapSettings::readXML( QDomNode& theNode ) { // set units QDomNode mapUnitsNode = theNode.namedItem( "units" ); QGis::UnitType units = QgsXmlUtils::readMapUnits( mapUnitsNode.toElement() ); setMapUnits( units ); // set projections flag QDomNode projNode = theNode.namedItem( "projections" ); setCrsTransformEnabled( projNode.toElement().text().toInt() ); // set destination CRS QgsCoordinateReferenceSystem srs; QDomNode srsNode = theNode.namedItem( "destinationsrs" ); srs.readXML( srsNode ); setDestinationCrs( srs ); // set extent QDomNode extentNode = theNode.namedItem( "extent" ); QgsRectangle aoi = QgsXmlUtils::readRectangle( extentNode.toElement() ); setExtent( aoi ); // set rotation QDomNode rotationNode = theNode.namedItem( "rotation" ); QString rotationVal = rotationNode.toElement().text(); if ( ! rotationVal.isEmpty() ) { double rot = rotationVal.toDouble(); setRotation( rot ); } //render map tile QDomElement renderMapTileElem = theNode.firstChildElement( "rendermaptile" ); if ( !renderMapTileElem.isNull() ) { setFlag( QgsMapSettings::RenderMapTile, renderMapTileElem.text() == "1" ? true : false ); } mDatumTransformStore.readXML( theNode ); }
void QgsMapCanvas::readProject( const QDomDocument & doc ) { QDomNodeList nodes = doc.elementsByTagName( "mapcanvas" ); if ( nodes.count() ) { QDomNode node = nodes.item( 0 ); QgsMapSettings tmpSettings; tmpSettings.readXML( node ); setMapUnits( tmpSettings.mapUnits() ); setCrsTransformEnabled( tmpSettings.hasCrsTransformEnabled() ); setDestinationCrs( tmpSettings.destinationCrs() ); setExtent( tmpSettings.extent() ); setRotation( tmpSettings.rotation() ); mSettings.datumTransformStore() = tmpSettings.datumTransformStore(); clearExtentHistory(); // clear the extent history on project load } else { QgsDebugMsg( "Couldn't read mapcanvas information from project" ); } }