mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
116 lines
3.8 KiB
Plaintext
116 lines
3.8 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsabstractmaptoolhandler.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
class QgsAbstractMapToolHandler
|
|
{
|
|
%Docstring(signature="appended")
|
|
An abstract base class for map tool handlers which automatically handle all the necessary
|
|
logic for toggling the map tool and enabling/disabling the associated action
|
|
when the QGIS application is in a state permissible for the tool.
|
|
|
|
Creating these handlers avoids a lot of complex setup code and manual connections
|
|
which are otherwise necessary to ensure that a map tool is correctly activated and
|
|
deactivated when the state of the QGIS application changes (e.g. when the active
|
|
layer is changed, when edit modes are toggled, when other map tools are switched
|
|
to, etc).
|
|
|
|
- ### Example
|
|
|
|
.. code-block:: python
|
|
|
|
class MyMapTool(QgsMapTool):
|
|
...
|
|
|
|
class MyMapToolHandler(QgsAbstractMapToolHandler):
|
|
|
|
def __init__(self, tool, action):
|
|
super().__init__(tool, action)
|
|
|
|
def isCompatibleWithLayer(self, layer, context):
|
|
# this tool can only be activated when an editable vector layer is selected
|
|
return isinstance(layer, QgsVectorLayer) and layer.isEditable()
|
|
|
|
my_tool = MyMapTool()
|
|
my_action = QAction('My Map Tool')
|
|
|
|
my_handler = MyMapToolHandler(my_tool, my_action)
|
|
iface.registerMapToolHandler(my_handler)
|
|
|
|
.. versionadded:: 3.16
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsabstractmaptoolhandler.h"
|
|
%End
|
|
public:
|
|
|
|
struct Context
|
|
{
|
|
bool dummy;
|
|
};
|
|
|
|
QgsAbstractMapToolHandler( QgsMapTool *tool, QAction *action );
|
|
%Docstring
|
|
Constructor for a map tool handler for the specified ``tool``.
|
|
|
|
The ``action`` argument must be set to the action associated with switching
|
|
to the tool.
|
|
|
|
The ownership of neither ``tool`` nor ``action`` is transferred, and the caller
|
|
is responsible for ensuring that these objects exist for the lifetime of the
|
|
handler.
|
|
|
|
.. warning::
|
|
|
|
The handler will be responsible for creating the appropriate
|
|
connections between the ``action`` and the ``tool``. These should NOT be
|
|
manually connected elsewhere!
|
|
%End
|
|
|
|
virtual ~QgsAbstractMapToolHandler();
|
|
|
|
QgsMapTool *mapTool();
|
|
%Docstring
|
|
Returns the tool associated with this handler.
|
|
%End
|
|
|
|
QAction *action();
|
|
%Docstring
|
|
Returns the action associated with toggling the tool.
|
|
%End
|
|
|
|
virtual bool isCompatibleWithLayer( QgsMapLayer *layer, const QgsAbstractMapToolHandler::Context &context ) = 0;
|
|
%Docstring
|
|
Returns ``True`` if the associated map tool is compatible with the specified ``layer``.
|
|
|
|
Additional information is available through the ``context`` argument.
|
|
%End
|
|
|
|
virtual void setLayerForTool( QgsMapLayer *layer );
|
|
%Docstring
|
|
Sets the ``layer`` to use for the tool.
|
|
|
|
Called whenever a new layer should be associated with the tool, e.g. as a result of the
|
|
user selecting a different active layer.
|
|
|
|
The default implementation does nothing.
|
|
%End
|
|
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsabstractmaptoolhandler.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|