/** \ingroup gui * Extension of QgsTracer that provides extra functionality: * - automatic updates of own configuration based on canvas settings * - reporting of issues to the user via message bar * - determines whether tracing is currently enabled by the user * * A simple registry of tracer instances associated to map canvas instances * is kept for convenience. (Map tools do not need to create their local * tracer instances and map canvas API is not "polluted" by this optional * functionality). * * @note added in QGIS 2.14 */ class QgsMapCanvasTracer : QgsTracer { %TypeHeaderCode #include %End public: //! Create tracer associated with a particular map canvas, optionally message bar for reporting explicit QgsMapCanvasTracer( QgsMapCanvas *canvas, QgsMessageBar *messageBar = 0 ); ~QgsMapCanvasTracer(); //! Access to action that user may use to toggle tracing on/off. May be null if no action was associated QAction *actionEnableTracing() const; //! Assign "enable tracing" checkable action to the tracer. //! The action is used to determine whether tracing is currently enabled by the user void setActionEnableTracing( QAction *action ); //! Retrieve instance of this class associated with given canvas (if any). //! The class keeps a simple registry of tracers associated with map canvas //! instances for easier access to the common tracer by various map tools static QgsMapCanvasTracer *tracerForCanvas( QgsMapCanvas *canvas ); //! Report a path finding error to the user void reportError( QgsTracer::PathError err, bool addingVertex ); protected: //! Sets configuration from current snapping settings and canvas settings virtual void configure(); };