mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			120 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/gui/qgsabstractmaptoolhandler.h                                  *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsAbstractMapToolHandler
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
An abstract base class for map tool handlers, implementing application
 | 
						|
level UI logic.
 | 
						|
 | 
						|
:py:class:`QgsAbstractMapToolHandler` subclasses 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.py again   *
 | 
						|
 ************************************************************************/
 |