QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgsmapcanvastracer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmapcanvastracer.h
3 ---------------------
4 begin : January 2016
5 copyright : (C) 2016 by Martin Dobias
6 email : wonder dot sk at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15#ifndef QGSMAPCANVASTRACER_H
16#define QGSMAPCANVASTRACER_H
17
18#include "qgstracer.h"
19#include "qgis_gui.h"
20
21class QAction;
22class QgsMapCanvas;
23class QgsMessageBar;
25
41class GUI_EXPORT QgsMapCanvasTracer : public QgsTracer
42{
43 Q_OBJECT
44
45 public:
47 explicit QgsMapCanvasTracer( QgsMapCanvas *canvas, QgsMessageBar *messageBar = nullptr );
48 ~QgsMapCanvasTracer() override;
49
51 QAction *actionEnableTracing() const { return mActionEnableTracing; }
52
57 void setActionEnableTracing( QAction *action ) { mActionEnableTracing = action; }
58
63 QAction *actionEnableSnapping() const { return mActionEnableSnapping; }
64
70 void setActionEnableSnapping( QAction *action ) { mActionEnableSnapping = action; }
71
77 static QgsMapCanvasTracer *tracerForCanvas( QgsMapCanvas *canvas );
78
80 void reportError( PathError err, bool addingVertex );
81
82 protected:
84 void configure() override;
85
86 private slots:
87 void onCurrentLayerChanged();
88
89 private:
90 QgsMapCanvas *mCanvas = nullptr;
91 QgsMessageBar *mMessageBar = nullptr;
92 QgsMessageBarItem *mLastMessage = nullptr;
93
94 QAction *mActionEnableTracing = nullptr;
95 QAction *mActionEnableSnapping = nullptr;
96};
97
98#endif // QGSMAPCANVASTRACER_H
Extension of QgsTracer that provides extra functionality:
void setActionEnableTracing(QAction *action)
Assign "enable tracing" checkable action to the tracer.
QAction * actionEnableSnapping() const
Access to action that user may use to toggle snapping on/off.
QAction * actionEnableTracing() const
Access to action that user may use to toggle tracing on/off. May be nullptr if no action was associat...
void setActionEnableSnapping(QAction *action)
Assign "enable snapping" checkable action to the tracer.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:90
Represents an item shown within a QgsMessageBar widget.
A bar for displaying non-blocking messages to the user.
Definition: qgsmessagebar.h:61
Utility class that construct a planar graph from the input vector layers and provides shortest path s...
Definition: qgstracer.h:45
virtual void configure()
Allows derived classes to setup the settings just before the tracer is initialized.
Definition: qgstracer.h:163