QGIS API Documentation  3.13.0-Master (788156190c)
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 
21 class QAction;
22 class QgsMapCanvas;
23 class QgsMessageBar;
24 class QgsMessageBarItem;
25 
40 class GUI_EXPORT QgsMapCanvasTracer : public QgsTracer
41 {
42  Q_OBJECT
43 
44  public:
46  explicit QgsMapCanvasTracer( QgsMapCanvas *canvas, QgsMessageBar *messageBar = nullptr );
47  ~QgsMapCanvasTracer() override;
48 
50  QAction *actionEnableTracing() const { return mActionEnableTracing; }
51 
56  void setActionEnableTracing( QAction *action ) { mActionEnableTracing = action; }
57 
62  QAction *actionEnableSnapping() const { return mActionEnableSnapping; }
63 
69  void setActionEnableSnapping( QAction *action ) { mActionEnableSnapping = action; }
70 
76  static QgsMapCanvasTracer *tracerForCanvas( QgsMapCanvas *canvas );
77 
79  void reportError( PathError err, bool addingVertex );
80 
81  protected:
83  void configure() override;
84 
85  private slots:
86  void onCurrentLayerChanged();
87 
88  private:
89  QgsMapCanvas *mCanvas = nullptr;
90  QgsMessageBar *mMessageBar = nullptr;
91  QgsMessageBarItem *mLastMessage = nullptr;
92 
93  QAction *mActionEnableTracing = nullptr;
94  QAction *mActionEnableSnapping = nullptr;
95 };
96 
97 #endif // QGSMAPCANVASTRACER_H
QgsTracer
Definition: qgstracer.h:43
QgsMapCanvasTracer::setActionEnableTracing
void setActionEnableTracing(QAction *action)
Assign "enable tracing" checkable action to the tracer.
Definition: qgsmapcanvastracer.h:56
QgsMapCanvas
Definition: qgsmapcanvas.h:78
QgsMapCanvasTracer::actionEnableTracing
QAction * actionEnableTracing() const
Access to action that user may use to toggle tracing on/off. May be nullptr if no action was associat...
Definition: qgsmapcanvastracer.h:50
QgsMessageBarItem
Definition: qgsmessagebaritem.h:36
QgsMapCanvasTracer
Definition: qgsmapcanvastracer.h:40
QgsMessageBar
Definition: qgsmessagebar.h:45
QgsMapCanvasTracer::actionEnableSnapping
QAction * actionEnableSnapping() const
Access to action that user may use to toggle snapping on/off.
Definition: qgsmapcanvastracer.h:62
QgsMapCanvasTracer::setActionEnableSnapping
void setActionEnableSnapping(QAction *action)
Assign "enable snapping" checkable action to the tracer.
Definition: qgsmapcanvastracer.h:69
QgsTracer::configure
virtual void configure()
Allows derived classes to setup the settings just before the tracer is initialized.
Definition: qgstracer.h:158
qgstracer.h