QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsabstractmaptoolhandler.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsabstractmaptoolhandler.h
3  ---------------------
4  begin : October 2020
5  copyright : (C) 2020 by Nyall Dawson
6  email : nyall dot dawson 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 
16 #ifndef QGSABSTRACTMAPTOOLHANDLER_H
17 #define QGSABSTRACTMAPTOOLHANDLER_H
18 
19 #include "qgis_gui.h"
20 
21 class QgsMapLayer;
22 class QgsMapTool;
23 class QAction;
24 
61 class GUI_EXPORT QgsAbstractMapToolHandler
62 {
63 
64  public:
65 
71  struct Context
72  {
74  bool dummy = false;
75  };
76 
91  QgsAbstractMapToolHandler( QgsMapTool *tool, QAction *action );
92 
94 
98  QgsMapTool *mapTool();
99 
103  QAction *action();
104 
110  virtual bool isCompatibleWithLayer( QgsMapLayer *layer, const QgsAbstractMapToolHandler::Context &context ) = 0;
111 
120  virtual void setLayerForTool( QgsMapLayer *layer );
121 
122  private:
123 
124  QgsMapTool *mMapTool = nullptr;
125  QAction *mAction = nullptr;
126 };
127 
128 #endif // QGSABSTRACTMAPTOOLHANDLER_H
QgsAbstractMapToolHandler
An abstract base class for map tool handlers which automatically handle all the necessary logic for t...
Definition: qgsabstractmaptoolhandler.h:62
QgsAbstractMapToolHandler::~QgsAbstractMapToolHandler
virtual ~QgsAbstractMapToolHandler()
QgsAbstractMapToolHandler::Context
Context of a QgsAbstractMapToolHandler call.
Definition: qgsabstractmaptoolhandler.h:72
QgsAbstractMapToolHandler::isCompatibleWithLayer
virtual bool isCompatibleWithLayer(QgsMapLayer *layer, const QgsAbstractMapToolHandler::Context &context)=0
Returns true if the associated map tool is compatible with the specified layer.
QgsMapTool
Abstract base class for all map tools.
Definition: qgsmaptool.h:64
QgsMapLayer
Base class for all map layer types.
Definition: qgsmaplayer.h:83