QGIS API Documentation 3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
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
21class QgsMapLayer;
22class QgsMapTool;
23class QAction;
24
64{
65 public:
66
72 struct Context
73 {
75 bool dummy = false;
76 };
77
93
95
100
104 QAction *action();
105
111 virtual bool isCompatibleWithLayer( QgsMapLayer *layer, const QgsAbstractMapToolHandler::Context &context ) = 0;
112
121 virtual void setLayerForTool( QgsMapLayer *layer );
122
123 private:
124 QgsMapTool *mMapTool = nullptr;
125 QAction *mAction = nullptr;
126};
127
128#endif // QGSABSTRACTMAPTOOLHANDLER_H
virtual ~QgsAbstractMapToolHandler()
virtual void setLayerForTool(QgsMapLayer *layer)
Sets the layer to use for the tool.
virtual bool isCompatibleWithLayer(QgsMapLayer *layer, const QgsAbstractMapToolHandler::Context &context)=0
Returns true if the associated map tool is compatible with the specified layer.
QgsMapTool * mapTool()
Returns the tool associated with this handler.
QgsAbstractMapToolHandler(QgsMapTool *tool, QAction *action)
Constructor for a map tool handler for the specified tool.
QAction * action()
Returns the action associated with toggling the tool.
Base class for all map layer types.
Definition qgsmaplayer.h:80
Abstract base class for all map tools.
Definition qgsmaptool.h:72
Context of a QgsAbstractMapToolHandler call.