QgsMapCanvasTracer::QgsMapCanvasTracer( QgsMapCanvas *canvas, QgsMessageBar *messageBar ) : mCanvas( canvas ) , mMessageBar( messageBar ) { sTracers.insert( canvas, this ); // when things change we just invalidate the graph - and set up new parameters again only when necessary connect( canvas, &QgsMapCanvas::destinationCrsChanged, this, &QgsMapCanvasTracer::invalidateGraph ); connect( canvas, &QgsMapCanvas::layersChanged, this, &QgsMapCanvasTracer::invalidateGraph ); connect( canvas, &QgsMapCanvas::extentsChanged, this, &QgsMapCanvasTracer::invalidateGraph ); connect( canvas, &QgsMapCanvas::currentLayerChanged, this, &QgsMapCanvasTracer::onCurrentLayerChanged ); connect( canvas->snappingUtils(), &QgsSnappingUtils::configChanged, this, &QgsMapCanvasTracer::invalidateGraph ); // arbitrarily chosen limit that should allow for fairly fast initialization // of the underlying graph structure setMaxFeatureCount( QgsSettings().value( QStringLiteral( "/qgis/digitizing/tracing_max_feature_count" ), 10000 ).toInt() ); }
QgsMapCanvasTracer::QgsMapCanvasTracer( QgsMapCanvas* canvas, QgsMessageBar* messageBar ) : mCanvas( canvas ) , mMessageBar( messageBar ) , mLastMessage( nullptr ) , mActionEnableTracing( nullptr ) { sTracers.insert( canvas, this ); // when things change we just invalidate the graph - and set up new parameters again only when necessary connect( canvas, SIGNAL( destinationCrsChanged() ), this, SLOT( invalidateGraph() ) ); connect( canvas, SIGNAL( layersChanged() ), this, SLOT( invalidateGraph() ) ); connect( canvas, SIGNAL( extentsChanged() ), this, SLOT( invalidateGraph() ) ); connect( canvas, SIGNAL( currentLayerChanged( QgsMapLayer* ) ), this, SLOT( onCurrentLayerChanged() ) ); connect( canvas->snappingUtils(), SIGNAL( configChanged() ), this, SLOT( invalidateGraph() ) ); // arbitrarily chosen limit that should allow for fairly fast initialization // of the underlying graph structure setMaxFeatureCount( QSettings().value( "/qgis/digitizing/tracing_max_feature_count", 10000 ).toInt() ); }