QGIS API Documentation  2.4.0-Chugiak
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Slots | List of all members
QgsMapTool Class Reference

Abstract base class for all map tools. More...

#include <qgsmaptool.h>

Inheritance diagram for QgsMapTool:
Inheritance graph
[legend]
Collaboration diagram for QgsMapTool:
Collaboration graph
[legend]

Signals

void messageEmitted (QString message, QgsMessageBar::MessageLevel=QgsMessageBar::INFO)
 emit a message More...
 
void messageDiscarded ()
 emit signal to clear previous message More...
 

Public Member Functions

virtual ~QgsMapTool ()
 virtual destructor More...
 
virtual void canvasMoveEvent (QMouseEvent *e)
 Mouse move event for overriding. Default implementation does nothing. More...
 
virtual void canvasDoubleClickEvent (QMouseEvent *e)
 Mouse double click event for overriding. Default implementation does nothing. More...
 
virtual void canvasPressEvent (QMouseEvent *e)
 Mouse press event for overriding. Default implementation does nothing. More...
 
virtual void canvasReleaseEvent (QMouseEvent *e)
 Mouse release event for overriding. Default implementation does nothing. More...
 
virtual void wheelEvent (QWheelEvent *e)
 Mouse wheel event for overriding. More...
 
virtual void keyPressEvent (QKeyEvent *e)
 Key event for overriding. Default implementation does nothing. More...
 
virtual void keyReleaseEvent (QKeyEvent *e)
 Key event for overriding. More...
 
virtual Q_DECL_DEPRECATED void renderComplete ()
 Called when rendering has finished. More...
 
void setAction (QAction *action)
 Use this to associate a QAction to this maptool. More...
 
QAction * action ()
 Return associated action with map tool or NULL if no action is associated. More...
 
void setButton (QAbstractButton *button)
 Use this to associate a button to this maptool. More...
 
QAbstractButton * button ()
 Return associated button with map tool or NULL if no button is associated. More...
 
virtual void setCursor (QCursor cursor)
 Set a user defined cursor. More...
 
virtual bool isTransient ()
 Check whether this MapTool performs a zoom or pan operation. More...
 
virtual bool isEditTool ()
 Check whether this MapTool performs an edit operation. More...
 
virtual void activate ()
 called when set as currently active map tool More...
 
virtual void deactivate ()
 called when map tool is being deactivated More...
 
QgsMapCanvascanvas ()
 returns pointer to the tool's map canvas More...
 
QString toolName ()
 Emit map tool changed with the old tool. More...
 

Static Public Member Functions

static double searchRadiusMM ()
 Get search radius in mm. More...
 
static double searchRadiusMU (const QgsRenderContext &context)
 Get search radius in map units for given context. More...
 
static double searchRadiusMU (QgsMapCanvas *canvas)
 Get search radius in map units for given canvas. More...
 

Protected Member Functions

 QgsMapTool (QgsMapCanvas *canvas)
 constructor takes map canvas as a parameter More...
 
QgsPoint toMapCoordinates (const QPoint &point)
 transformation from screen coordinates to map coordinates More...
 
QgsPoint toLayerCoordinates (QgsMapLayer *layer, const QPoint &point)
 transformation from screen coordinates to layer's coordinates More...
 
QgsPoint toLayerCoordinates (QgsMapLayer *layer, const QgsPoint &point)
 transformation from map coordinates to layer's coordinates More...
 
QgsPoint toMapCoordinates (QgsMapLayer *layer, const QgsPoint &point)
 transformation from layer's coordinates to map coordinates (which is different in case reprojection is used) More...
 
QgsRectangle toLayerCoordinates (QgsMapLayer *layer, const QgsRectangle &rect)
 trnasformation of the rect from map coordinates to layer's coordinates More...
 
QPoint toCanvasCoordinates (const QgsPoint &point)
 transformation from map coordinates to screen coordinates More...
 

Protected Attributes

QgsMapCanvasmCanvas
 pointer to map canvas More...
 
QCursor mCursor
 cursor used in map tool More...
 
QAction * mAction
 optionally map tool can have pointer to action which will be used to set that action as active More...
 
QAbstractButton * mButton
 optionally map tool can have pointer to a button which will be used to set that action as active More...
 
QString mToolName
 translated name of the map tool More...
 

Private Slots

void actionDestroyed ()
 clear pointer when action is destroyed More...
 

Detailed Description

Abstract base class for all map tools.

Map tools are user interactive tools for manipulating the map canvas. For example map pan and zoom features are implemented as map tools.

Definition at line 48 of file qgsmaptool.h.

Constructor & Destructor Documentation

QgsMapTool::~QgsMapTool ( )
virtual

virtual destructor

Definition at line 36 of file qgsmaptool.cpp.

References mCanvas, and QgsMapCanvas::unsetMapTool().

QgsMapTool::QgsMapTool ( QgsMapCanvas canvas)
protected

constructor takes map canvas as a parameter

Definition at line 25 of file qgsmaptool.cpp.

Member Function Documentation

QAction * QgsMapTool::action ( )

Return associated action with map tool or NULL if no action is associated.

Definition at line 113 of file qgsmaptool.cpp.

References mAction.

Referenced by QgsMapToolIdentify::identify(), and setAction().

void QgsMapTool::actionDestroyed ( )
privateslot

clear pointer when action is destroyed

Definition at line 107 of file qgsmaptool.cpp.

References mAction.

Referenced by setAction().

void QgsMapTool::activate ( )
virtual

called when set as currently active map tool

Reimplemented in QgsMapToolIdentify, and QgsMapToolTouch.

Definition at line 77 of file qgsmaptool.cpp.

References mAction, mButton, mCanvas, mCursor, and QgsDebugMsg.

Referenced by QgsMapToolTouch::activate(), QgsMapToolIdentify::activate(), and QgsMapCanvas::setMapTool().

QAbstractButton * QgsMapTool::button ( )

Return associated button with map tool or NULL if no button is associated.

Definition at line 123 of file qgsmaptool.cpp.

References mButton.

Referenced by setButton().

QgsMapCanvas * QgsMapTool::canvas ( )

returns pointer to the tool's map canvas

Definition at line 191 of file qgsmaptool.cpp.

References mCanvas.

void QgsMapTool::canvasDoubleClickEvent ( QMouseEvent *  e)
virtual

Mouse double click event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolTouch.

Definition at line 139 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::mouseDoubleClickEvent().

void QgsMapTool::canvasMoveEvent ( QMouseEvent *  e)
virtual

Mouse move event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolIdentify, QgsMapToolTouch, QgsMapToolEmitPoint, QgsMapToolZoom, and QgsMapToolPan.

Definition at line 134 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::mouseMoveEvent().

void QgsMapTool::canvasPressEvent ( QMouseEvent *  e)
virtual

Mouse press event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolIdentify, QgsMapToolEmitPoint, and QgsMapToolZoom.

Definition at line 144 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::mousePressEvent().

void QgsMapTool::canvasReleaseEvent ( QMouseEvent *  e)
virtual

Mouse release event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolIdentify, QgsMapToolTouch, QgsMapToolEmitPoint, QgsMapToolZoom, and QgsMapToolPan.

Definition at line 149 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::mouseReleaseEvent().

void QgsMapTool::deactivate ( )
virtual
bool QgsMapTool::isEditTool ( )
virtual

Check whether this MapTool performs an edit operation.

If it does, we will deactivate it when editing is turned off

Definition at line 186 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::mouseReleaseEvent().

bool QgsMapTool::isTransient ( )
virtual

Check whether this MapTool performs a zoom or pan operation.

If it does, we will be able to perform the zoom and then resume operations with the original / previously used tool.

Reimplemented in QgsMapToolTouch, QgsMapToolZoom, and QgsMapToolPan.

Definition at line 181 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::mouseReleaseEvent(), and QgsMapCanvas::setMapTool().

void QgsMapTool::keyPressEvent ( QKeyEvent *  e)
virtual

Key event for overriding. Default implementation does nothing.

Definition at line 159 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::keyPressEvent().

void QgsMapTool::keyReleaseEvent ( QKeyEvent *  e)
virtual

Key event for overriding.

Default implementation does nothing. Added in version 1.1

Definition at line 164 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::keyReleaseEvent().

void QgsMapTool::messageDiscarded ( )
signal

emit signal to clear previous message

void QgsMapTool::messageEmitted ( QString  message,
QgsMessageBar::MessageLevel  = QgsMessageBar::INFO 
)
signal

emit a message

void QgsMapTool::renderComplete ( )
virtual

Called when rendering has finished.

Default implementation does nothing.

Deprecated:
since 2.4 - not called anymore - map tools must not directly depend on rendering progress

Definition at line 177 of file qgsmaptool.cpp.

double QgsMapTool::searchRadiusMM ( )
static

Get search radius in mm.

Used by identify, tip etc. The values is currently set in identify tool options (move somewhere else?) and defaults to QGis::DEFAULT_SEARCH_RADIUS_MM.

Note
added in 2.3

Definition at line 196 of file qgsmaptool.cpp.

References QGis::DEFAULT_SEARCH_RADIUS_MM.

Referenced by searchRadiusMU().

double QgsMapTool::searchRadiusMU ( const QgsRenderContext context)
static
double QgsMapTool::searchRadiusMU ( QgsMapCanvas canvas)
static

Get search radius in map units for given canvas.

Used by identify, tip etc. The values is calculated from searchRadiusMM().

Note
added in 2.3

Definition at line 213 of file qgsmaptool.cpp.

References QgsRenderContext::fromMapSettings(), QgsMapCanvas::mapSettings(), and searchRadiusMU().

void QgsMapTool::setAction ( QAction *  action)

Use this to associate a QAction to this maptool.

Then when the setMapTool method of mapcanvas is called the action state will be set to on. Usually this will cause e.g. a toolbutton to appear pressed in and the previously used toolbutton to pop out.

Definition at line 99 of file qgsmaptool.cpp.

References action(), actionDestroyed(), and mAction.

void QgsMapTool::setButton ( QAbstractButton *  button)

Use this to associate a button to this maptool.

It has the same meaning as setAction() function except it works with a button instead of an QAction.

Definition at line 118 of file qgsmaptool.cpp.

References button(), and mButton.

void QgsMapTool::setCursor ( QCursor  cursor)
virtual

Set a user defined cursor.

Definition at line 128 of file qgsmaptool.cpp.

References mCursor.

QPoint QgsMapTool::toCanvasCoordinates ( const QgsPoint point)
protected

transformation from map coordinates to screen coordinates

Definition at line 69 of file qgsmaptool.cpp.

References QgsMapCanvas::getCoordinateTransform(), mCanvas, QgsMapToPixel::transformInPlace(), QgsPoint::x(), and QgsPoint::y().

QgsPoint QgsMapTool::toLayerCoordinates ( QgsMapLayer layer,
const QPoint &  point 
)
protected

transformation from screen coordinates to layer's coordinates

Definition at line 48 of file qgsmaptool.cpp.

References toMapCoordinates().

Referenced by QgsMapToolIdentify::identifyRasterLayer(), and QgsMapToolIdentify::identifyVectorLayer().

QgsPoint QgsMapTool::toLayerCoordinates ( QgsMapLayer layer,
const QgsPoint point 
)
protected

transformation from map coordinates to layer's coordinates

Definition at line 54 of file qgsmaptool.cpp.

References QgsMapCanvas::mapSettings(), QgsMapSettings::mapToLayerCoordinates(), and mCanvas.

QgsRectangle QgsMapTool::toLayerCoordinates ( QgsMapLayer layer,
const QgsRectangle rect 
)
protected

trnasformation of the rect from map coordinates to layer's coordinates

Definition at line 64 of file qgsmaptool.cpp.

References QgsMapCanvas::mapSettings(), QgsMapSettings::mapToLayerCoordinates(), and mCanvas.

QgsPoint QgsMapTool::toMapCoordinates ( const QPoint &  point)
protected

transformation from screen coordinates to map coordinates

Definition at line 42 of file qgsmaptool.cpp.

References QgsMapCanvas::getCoordinateTransform(), mCanvas, and QgsMapToPixel::toMapCoordinates().

Referenced by QgsMapToolEmitPoint::canvasPressEvent(), and toLayerCoordinates().

QgsPoint QgsMapTool::toMapCoordinates ( QgsMapLayer layer,
const QgsPoint point 
)
protected

transformation from layer's coordinates to map coordinates (which is different in case reprojection is used)

Definition at line 59 of file qgsmaptool.cpp.

References QgsMapSettings::layerToMapCoordinates(), QgsMapCanvas::mapSettings(), and mCanvas.

QString QgsMapTool::toolName ( )
inline

Emit map tool changed with the old tool.

Note
added in 2.3

Definition at line 131 of file qgsmaptool.h.

void QgsMapTool::wheelEvent ( QWheelEvent *  e)
virtual

Mouse wheel event for overriding.

Default implementation does nothing. Added in version 2.0

Definition at line 154 of file qgsmaptool.cpp.

Referenced by QgsMapCanvas::wheelEvent().

Member Data Documentation

QAction* QgsMapTool::mAction
protected

optionally map tool can have pointer to action which will be used to set that action as active

Definition at line 191 of file qgsmaptool.h.

Referenced by action(), actionDestroyed(), activate(), deactivate(), and setAction().

QAbstractButton* QgsMapTool::mButton
protected

optionally map tool can have pointer to a button which will be used to set that action as active

Definition at line 195 of file qgsmaptool.h.

Referenced by activate(), button(), deactivate(), and setButton().

QgsMapCanvas* QgsMapTool::mCanvas
protected
QCursor QgsMapTool::mCursor
protected
QString QgsMapTool::mToolName
protected

translated name of the map tool

Definition at line 198 of file qgsmaptool.h.


The documentation for this class was generated from the following files: