QGIS API Documentation
2.0.1-Dufour
|
Map canvas is a class for displaying all GIS data types on a canvas. More...
#include <qgsmapcanvas.h>
Classes | |
class | CanvasProperties |
Public Types | |
enum | WheelAction { WheelZoom, WheelZoomAndRecenter, WheelZoomToMouseCursor, WheelNothing } |
Public Slots | |
void | refresh () |
Repaints the canvas map. | |
void | selectionChangedSlot () |
Receives signal about selection change, and pass it on with layer info. | |
void | saveAsImage (QString theFileName, QPixmap *QPixmap=0, QString="PNG") |
Save the convtents of the map canvas to disk as an image. | |
void | layerStateChange () |
This slot is connected to the visibility change of one or more layers. | |
void | setRenderFlag (bool theFlag) |
Whether to suppress rendering or not. | |
bool | renderFlag () |
State of render suppression flag. | |
bool | hasCrsTransformEnabled () |
A simple helper method to find out if on the fly projections are enabled or not. | |
void | mapUnitsChanged () |
The map units may have changed, so cope with that. | |
void | updateMap () |
updates pixmap on render progress | |
void | showError (QgsMapLayer *mapLayer) |
show whatever error is exposed by the QgsMapLayer. | |
void | readProject (const QDomDocument &) |
called to read map canvas settings from project | |
void | writeProject (QDomDocument &) |
called to write map canvas settings to project |
Signals | |
void | setProgress (int, int) |
Let the owner know how far we are with render operations. | |
void | xyCoordinates (const QgsPoint &p) |
emits current mouse position | |
void | scaleChanged (double) |
Emitted when the scale of the map changes. | |
void | extentsChanged () |
Emitted when the extents of the map change. | |
void | renderComplete (QPainter *) |
Emitted when the canvas has rendered. | |
void | mapCanvasRefreshed () |
Emitted when canvas finished a refresh request. | |
void | renderStarting () |
Emitted when the canvas is about to be rendered. | |
void | layersChanged () |
Emitted when a new set of layers has been received. | |
void | keyPressed (QKeyEvent *e) |
Emit key press event. | |
void | keyReleased (QKeyEvent *e) |
Emit key release event. | |
void | mapToolSet (QgsMapTool *tool) |
Emit map tool changed event. | |
void | selectionChanged (QgsMapLayer *layer) |
Emitted when selection in any layer gets changed. | |
void | zoomLastStatusChanged (bool) |
Emitted when zoom last status changed. | |
void | zoomNextStatusChanged (bool) |
Emitted when zoom next status changed. |
Public Member Functions | |
QgsMapCanvas (QWidget *parent=0, const char *name=0) | |
Constructor. | |
~QgsMapCanvas () | |
Destructor. | |
void | setLayerSet (QList< QgsMapCanvasLayer > &layers) |
void | setCurrentLayer (QgsMapLayer *layer) |
void | updateOverview () |
void | enableOverviewMode (QgsMapOverviewCanvas *overview) |
QgsMapCanvasMap * | map () |
QgsMapRenderer * | mapRenderer () |
QPaintDevice & | canvasPaintDevice () |
Accessor for the canvas paint device. | |
double | scale () |
Get the last reported scale of the canvas. | |
void | clear () |
Clear the map canvas. | |
double | mapUnitsPerPixel () const |
Returns the mapUnitsPerPixel (map units per pixel) for the canvas. | |
QgsRectangle | extent () const |
Returns the current zoom exent of the map canvas. | |
QgsRectangle | fullExtent () const |
Returns the combined exent for all layers on the map canvas. | |
void | setExtent (const QgsRectangle &r) |
Set the extent of the map canvas. | |
void | zoomToFullExtent () |
Zoom to the full extent of all layers. | |
void | zoomToPreviousExtent () |
Zoom to the previous extent (view) | |
void | zoomToNextExtent () |
Zoom to the next extent (view) | |
void | clearExtentHistory () |
void | zoomToSelected (QgsVectorLayer *layer=NULL) |
Zoom to the extent of the selected features of current (vector) layer. | |
void | panToSelected (QgsVectorLayer *layer=NULL) |
Pan to the selected features of current (vector) layer keeping same extent. | |
void | setMapTool (QgsMapTool *mapTool) |
Sets the map tool currently being used on the canvas. | |
void | unsetMapTool (QgsMapTool *mapTool) |
Unset the current map tool or last non zoom tool. | |
QgsMapTool * | mapTool () |
Returns the currently active tool. | |
virtual void | setCanvasColor (const QColor &_newVal) |
Write property of QColor bgColor. | |
virtual QColor | canvasColor () const |
Read property of QColor bgColor. | |
void | updateScale () |
Emits signal scaleChanged to update scale in main window. | |
void | updateFullExtent () |
Updates the full extent. | |
QgsMapLayer * | layer (int index) |
return the map layer at position index in the layer stack | |
int | layerCount () const |
return number of layers on the map | |
QList< QgsMapLayer * > | layers () const |
return list of layers within map canvas. Added in v1.5 | |
void | freeze (bool frz=true) |
bool | isFrozen () |
void | setDirty (bool _dirty) |
Flag the canvas as dirty and needed a refresh. | |
bool | isDirty () const |
Return the state of the canvas (dirty or not) | |
void | setMapUnits (QGis::UnitType mapUnits) |
Set map units (needed by project properties dialog) | |
QGis::UnitType | mapUnits () const |
Get the current canvas map units. | |
const QgsMapToPixel * | getCoordinateTransform () |
Get the current coordinate transform. | |
bool | isDrawing () |
true if canvas currently drawing | |
QgsMapLayer * | currentLayer () |
returns current layer (set by legend widget) | |
void | setWheelAction (WheelAction action, double factor=2) |
set wheel action and zoom factor (should be greater than 1) | |
void | zoomIn () |
Zoom in with fixed factor. | |
void | zoomOut () |
Zoom out with fixed factor. | |
void | zoomScale (double scale) |
Zoom to a specific scale. | |
void | zoomByFactor (double scaleFactor) |
Zoom with the factor supplied. Factor > 1 zooms out, interval (0,1) zooms in. | |
void | zoomWithCenter (int x, int y, bool zoomIn) |
Zooms in/out with a given center. | |
void | enableAntiAliasing (bool theFlag) |
used to determine if anti-aliasing is enabled or not | |
bool | antiAliasingEnabled () const |
true if antialising is enabled | |
void | useImageToRender (bool theFlag) |
Select which Qt class to render with. | |
void | panActionEnd (QPoint releasePoint) |
Ends pan action and redraws the canvas. | |
void | panAction (QMouseEvent *event) |
Called when mouse is moving and pan is activated. | |
QPoint | mouseLastXY () |
returns last position of mouse cursor |
Protected Member Functions | |
void | keyPressEvent (QKeyEvent *e) |
Overridden key press event. | |
void | keyReleaseEvent (QKeyEvent *e) |
Overridden key release event. | |
void | mouseDoubleClickEvent (QMouseEvent *e) |
Overridden mouse double click event. | |
void | mouseMoveEvent (QMouseEvent *e) |
Overridden mouse move event. | |
void | mousePressEvent (QMouseEvent *e) |
Overridden mouse press event. | |
void | mouseReleaseEvent (QMouseEvent *e) |
Overridden mouse release event. | |
void | wheelEvent (QWheelEvent *e) |
Overridden mouse wheel event. | |
void | resizeEvent (QResizeEvent *e) |
Overridden resize event. | |
void | paintEvent (QPaintEvent *e) |
Overridden paint event. | |
void | dragEnterEvent (QDragEnterEvent *e) |
Overridden drag enter event. | |
void | moveCanvasContents (bool reset=false) |
called when panning is in action, reset indicates end of panning | |
void | updateCanvasItemPositions () |
called on resize or changed extent to notify canvas items to change their rectangle | |
void | connectNotify (const char *signal) |
debugging member invoked when a connect() is made to this object |
Protected Attributes | |
std::auto_ptr< CanvasProperties > | mCanvasProperties |
Handle pattern for implementation object. |
Private Slots | |
void | mapToolDestroyed () |
called when current maptool is destroyed | |
void | crsTransformEnabled (bool) |
Private Member Functions | |
QgsMapCanvas (QgsMapCanvas const &) | |
this class is non-copyable |
Private Attributes | |
QgsMapRenderer * | mMapRenderer |
all map rendering is done in this class | |
QgsMapCanvasMap * | mMap |
owns pixmap with rendered map and controls rendering | |
QgsMapOverviewCanvas * | mMapOverview |
map overview widget - it's controlled by QgsMapCanvas | |
bool | mBackbufferEnabled |
If backbuffering is currently enabled. | |
bool | mDrawing |
Flag indicating a map refresh is in progress. | |
bool | mFrozen |
Flag indicating if the map canvas is frozen. | |
bool | mDirty |
Flag to track the state of the Map canvas. | |
bool | mRenderFlag |
determines whether user has requested to suppress rendering | |
QList< QPair< int, int > > | mResizeQueue |
Resize events that have been ignored because the canvas is busy with rendering may put their sizes into this list. | |
QgsMapLayer * | mCurrentLayer |
current layer in legend | |
QGraphicsScene * | mScene |
graphics scene manages canvas items | |
QgsMapTool * | mMapTool |
pointer to current map tool | |
QgsMapTool * | mLastNonZoomMapTool |
previous tool if current is for zooming/panning | |
QList< QgsRectangle > | mLastExtent |
recently used extent | |
int | mLastExtentIndex |
double | mWheelZoomFactor |
Scale factor multiple for default zoom in/out. | |
WheelAction | mWheelAction |
Mouse wheel action. | |
QSize | mNewSize |
resize canvas size | |
bool | mPainting |
currently in paint event | |
bool | mAntiAliasing |
indicates whether antialiasing will be used for rendering |
Map canvas is a class for displaying all GIS data types on a canvas.
Definition at line 99 of file qgsmapcanvas.h.
Definition at line 105 of file qgsmapcanvas.h.
QgsMapCanvas::QgsMapCanvas | ( | QWidget * | parent = 0 , |
const char * | name = 0 |
||
) |
Constructor.
Definition at line 81 of file qgsmapcanvas.cpp.
References crsTransformEnabled(), hasCrsTransformEnabled(), QgsProject::instance(), mBackbufferEnabled, mCurrentLayer, mDirty, mDrawing, mFrozen, mLastExtentIndex, mLastNonZoomMapTool, mMap, mMapOverview, mMapRenderer, mMapTool, moveCanvasContents(), mRenderFlag, mScene, readProject(), QgsMapCanvasMap::resize(), setWheelAction(), showError(), size, WheelZoom, and writeProject().
QgsMapCanvas::~QgsMapCanvas | ( | ) |
Destructor.
Definition at line 142 of file qgsmapcanvas.cpp.
References QgsMapTool::deactivate(), mLastNonZoomMapTool, mMapRenderer, mMapTool, and mScene.
|
private |
this class is non-copyable
Otherwise std::auto_ptr would pass the object responsiblity on to the copy like a hot potato leaving the copyer in a weird state.
|
inline |
true if antialising is enabled
Definition at line 253 of file qgsmapcanvas.h.
Referenced by QgsMapCanvasItem::paint().
|
virtual |
Read property of QColor bgColor.
Definition at line 1290 of file qgsmapcanvas.cpp.
References mScene.
QPaintDevice & QgsMapCanvas::canvasPaintDevice | ( | ) |
Accessor for the canvas paint device.
Definition at line 1335 of file qgsmapcanvas.cpp.
References mMap, and QgsMapCanvasMap::paintDevice().
void QgsMapCanvas::clear | ( | ) |
Clear the map canvas.
Definition at line 605 of file qgsmapcanvas.cpp.
References setDirty().
Referenced by refresh().
void QgsMapCanvas::clearExtentHistory | ( | ) |
Definition at line 683 of file qgsmapcanvas.cpp.
References extent(), mLastExtent, mLastExtentIndex, zoomLastStatusChanged(), and zoomNextStatusChanged().
Referenced by readProject().
|
protected |
debugging member invoked when a connect() is made to this object
Definition at line 1377 of file qgsmapcanvas.cpp.
References QgsDebugMsg.
|
privateslot |
Definition at line 1575 of file qgsmapcanvas.cpp.
References mMapRenderer, QgsDebugMsg, and refresh().
Referenced by QgsMapCanvas().
QgsMapLayer * QgsMapCanvas::currentLayer | ( | ) |
returns current layer (set by legend widget)
Definition at line 367 of file qgsmapcanvas.cpp.
References mCurrentLayer.
Referenced by QgsMapToolIdentify::identify(), setLayerSet(), QgsMapCanvasSnapper::snapToBackgroundLayers(), and QgsMapCanvasSnapper::snapToCurrentLayer().
|
protected |
Overridden drag enter event.
Definition at line 1567 of file qgsmapcanvas.cpp.
void QgsMapCanvas::enableAntiAliasing | ( | bool | theFlag | ) |
used to determine if anti-aliasing is enabled or not
Definition at line 171 of file qgsmapcanvas.cpp.
References QgsMapCanvasMap::enableAntiAliasing(), QgsMapOverviewCanvas::enableAntiAliasing(), mAntiAliasing, mMap, and mMapOverview.
void QgsMapCanvas::enableOverviewMode | ( | QgsMapOverviewCanvas * | overview | ) |
Definition at line 331 of file qgsmapcanvas.cpp.
References hasCrsTransformEnabled(), mMapOverview, and mMapRenderer.
QgsRectangle QgsMapCanvas::extent | ( | ) | const |
Returns the current zoom exent of the map canvas.
Definition at line 524 of file qgsmapcanvas.cpp.
References QgsMapRenderer::extent(), and mMapRenderer.
Referenced by QgsMapToolZoom::canvasReleaseEvent(), clearExtentHistory(), QgsMapOverviewCanvas::drawExtentRect(), QgsMapTip::fetchFeature(), QgsAttributeTableFilterModel::generateListOfVisibleFeatures(), QgsMapToolIdentify::identify(), QgsMapToolIdentify::identifyVectorLayer(), QgsMapOverviewCanvas::mouseReleaseEvent(), QgsHighlight::paintPoint(), QgsMapToolTouch::pinchTriggered(), setExtent(), QgsFormAnnotationItem::setFeatureForMapPosition(), QgsHtmlAnnotationItem::setFeatureForMapPosition(), QgsHighlight::updateRect(), wheelEvent(), zoomToFullExtent(), and zoomToSelected().
|
signal |
Emitted when the extents of the map change.
Referenced by paintEvent(), setExtent(), zoomToNextExtent(), and zoomToPreviousExtent().
void QgsMapCanvas::freeze | ( | bool | frz = true | ) |
Freeze/thaw the map canvas. This is used to prevent the canvas from responding to events while layers are being added/removed etc.
frz | Boolean specifying if the canvas should be frozen (true) or thawed (false). Default is true. |
Definition at line 1324 of file qgsmapcanvas.cpp.
References mFrozen.
QgsRectangle QgsMapCanvas::fullExtent | ( | ) | const |
Returns the combined exent for all layers on the map canvas.
Definition at line 529 of file qgsmapcanvas.cpp.
References QgsMapRenderer::fullExtent(), and mMapRenderer.
Referenced by zoomToFullExtent().
const QgsMapToPixel * QgsMapCanvas::getCoordinateTransform | ( | ) |
Get the current coordinate transform.
Definition at line 236 of file qgsmapcanvas.cpp.
References QgsMapRenderer::coordinateTransform(), and mMapRenderer.
Referenced by QgsMapToolPan::canvasReleaseEvent(), QgsMapToolZoom::canvasReleaseEvent(), QgsMapToolTouch::canvasReleaseEvent(), QgsMapToolIdentify::identify(), mouseMoveEvent(), panActionEnd(), QgsMapToolTouch::pinchTriggered(), QgsRubberBand::setToCanvasRectangle(), QgsMapCanvasItem::toCanvasCoordinates(), QgsMapTool::toCanvasCoordinates(), QgsMapCanvasItem::toMapCoordinates(), QgsMapTool::toMapCoordinates(), wheelEvent(), and zoomWithCenter().
|
slot |
A simple helper method to find out if on the fly projections are enabled or not.
Definition at line 694 of file qgsmapcanvas.cpp.
References QgsMapRenderer::hasCrsTransformEnabled(), and mMapRenderer.
Referenced by enableOverviewMode(), QgsMapToolIdentify::featureDerivedAttributes(), QgsMapToolIdentify::identifyRasterLayer(), and QgsMapCanvas().
bool QgsMapCanvas::isDirty | ( | ) | const |
Return the state of the canvas (dirty or not)
Definition at line 221 of file qgsmapcanvas.cpp.
References mDirty.
bool QgsMapCanvas::isDrawing | ( | ) |
true if canvas currently drawing
Definition at line 228 of file qgsmapcanvas.cpp.
References mDrawing.
Referenced by QgsMapToolIdentify::identify().
bool QgsMapCanvas::isFrozen | ( | ) |
Accessor for frozen status of canvas
Definition at line 1329 of file qgsmapcanvas.cpp.
References mFrozen.
|
signal |
Emit key press event.
Referenced by keyPressEvent().
|
protected |
Overridden key press event.
Definition at line 792 of file qgsmapcanvas.cpp.
References QgsMapRenderer::extent(), keyPressed(), QgsMapTool::keyPressEvent(), mCanvasProperties, mDrawing, mMapRenderer, mMapTool, QgsDebugMsg, refresh(), setExtent(), QgsRectangle::setXMaximum(), QgsRectangle::setXMinimum(), QgsRectangle::setYMaximum(), QgsRectangle::setYMinimum(), QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), QgsRectangle::yMinimum(), zoomIn(), and zoomOut().
|
signal |
Emit key release event.
Referenced by keyReleaseEvent().
|
protected |
Overridden key release event.
Definition at line 892 of file qgsmapcanvas.cpp.
References keyReleased(), QgsMapTool::keyReleaseEvent(), mCanvasProperties, mDrawing, mMapTool, panActionEnd(), and QgsDebugMsg.
QgsMapLayer * QgsMapCanvas::layer | ( | int | index | ) |
return the map layer at position index in the layer stack
Definition at line 196 of file qgsmapcanvas.cpp.
References QgsMapLayerRegistry::instance(), layers(), QgsMapRenderer::layerSet(), QgsMapLayerRegistry::mapLayer(), and mMapRenderer.
Referenced by QgsMapToolIdentify::identify(), layers(), selectionChangedSlot(), setCurrentLayer(), and setLayerSet().
int QgsMapCanvas::layerCount | ( | ) | const |
return number of layers on the map
Definition at line 1295 of file qgsmapcanvas.cpp.
References QgsMapRenderer::layerSet(), and mMapRenderer.
Referenced by QgsMapToolIdentify::identify(), and setLayerSet().
QList< QgsMapLayer * > QgsMapCanvas::layers | ( | ) | const |
return list of layers within map canvas. Added in v1.5
Definition at line 1301 of file qgsmapcanvas.cpp.
References QgsMapLayerRegistry::instance(), layer(), QgsMapRenderer::layerSet(), QgsMapLayerRegistry::mapLayer(), and mMapRenderer.
Referenced by layer(), QgsFormAnnotationItem::updateVisibility(), and QgsHtmlAnnotationItem::updateVisibility().
|
signal |
Emitted when a new set of layers has been received.
Referenced by setLayerSet().
|
slot |
This slot is connected to the visibility change of one or more layers.
Definition at line 1314 of file qgsmapcanvas.cpp.
References refresh().
QgsMapCanvasMap * QgsMapCanvas::map | ( | ) |
Definition at line 185 of file qgsmapcanvas.cpp.
References mMap.
|
signal |
QgsMapRenderer * QgsMapCanvas::mapRenderer | ( | ) |
Definition at line 190 of file qgsmapcanvas.cpp.
References mMapRenderer.
Referenced by QgsRubberBand::addGeometry(), QgsMapOverviewCanvas::destinationSrsChanged(), QgsMapToolIdentify::featureDerivedAttributes(), QgsMapTip::fetchFeature(), QgsAttributeTableFilterModel::generateListOfVisibleFeatures(), QgsMapToolIdentify::identifyRasterLayer(), QgsMapToolIdentify::identifyVectorLayer(), QgsHighlight::QgsHighlight(), QgsMapCanvasSnapper::QgsMapCanvasSnapper(), QgsMapCanvasMap::render(), QgsMapCanvasMap::resize(), QgsMapCanvasSnapper::setMapCanvas(), QgsMapCanvasItem::setRenderContextVariables(), QgsMapCanvasSnapper::snapToBackgroundLayers(), QgsMapCanvasSnapper::snapToCurrentLayer(), QgsMapTool::toLayerCoordinates(), and QgsMapTool::toMapCoordinates().
QgsMapTool * QgsMapCanvas::mapTool | ( | ) |
Returns the currently active tool.
Definition at line 1385 of file qgsmapcanvas.cpp.
References mMapTool.
|
privateslot |
called when current maptool is destroyed
Definition at line 1587 of file qgsmapcanvas.cpp.
References mMapTool, and QgsDebugMsg.
Referenced by setMapTool().
|
signal |
Emit map tool changed event.
Referenced by setMapTool(), and unsetMapTool().
QGis::UnitType QgsMapCanvas::mapUnits | ( | ) | const |
Get the current canvas map units.
Definition at line 1353 of file qgsmapcanvas.cpp.
References QgsMapRenderer::mapUnits(), and mMapRenderer.
Referenced by QgsMapToolIdentify::convertMeasurement(), and QgsMapToolIdentify::displayUnits().
|
slot |
The map units may have changed, so cope with that.
Definition at line 699 of file qgsmapcanvas.cpp.
References refresh(), and updateScale().
double QgsMapCanvas::mapUnitsPerPixel | ( | ) | const |
Returns the mapUnitsPerPixel (map units per pixel) for the canvas.
Definition at line 1340 of file qgsmapcanvas.cpp.
References QgsMapRenderer::mapUnitsPerPixel(), and mMapRenderer.
Referenced by QgsMapToolIdentify::identify(), saveAsImage(), and QgsRubberBand::updateRect().
|
protected |
Overridden mouse double click event.
Definition at line 930 of file qgsmapcanvas.cpp.
References QgsMapTool::canvasDoubleClickEvent(), mDrawing, and mMapTool.
QPoint QgsMapCanvas::mouseLastXY | ( | ) |
returns last position of mouse cursor
Definition at line 1509 of file qgsmapcanvas.cpp.
References mCanvasProperties.
|
protected |
Overridden mouse move event.
Definition at line 1192 of file qgsmapcanvas.cpp.
References QgsMapTool::canvasMoveEvent(), getCoordinateTransform(), mCanvasProperties, mDrawing, mMapTool, panAction(), QgsMapToPixel::toMapCoordinates(), and xyCoordinates().
|
protected |
Overridden mouse press event.
Definition at line 943 of file qgsmapcanvas.cpp.
References QgsMapTool::canvasPressEvent(), mCanvasProperties, mDrawing, and mMapTool.
|
protected |
Overridden mouse release event.
Definition at line 975 of file qgsmapcanvas.cpp.
References QgsMapTool::canvasReleaseEvent(), QgsVectorLayer::isEditable(), QgsMapTool::isEditTool(), QgsMapTool::isTransient(), mCanvasProperties, mCurrentLayer, mDrawing, mLastNonZoomMapTool, mMapTool, panActionEnd(), QgsDebugMsg, and setMapTool().
|
protected |
called when panning is in action, reset indicates end of panning
Definition at line 1454 of file qgsmapcanvas.cpp.
References mCanvasProperties, mDrawing, mMap, mScene, QgsMapCanvasMap::setPanningOffset(), QgsMapCanvasItem::setPanningOffset(), and updateCanvasItemPositions().
Referenced by panAction(), panActionEnd(), and QgsMapCanvas().
|
protected |
Overridden paint event.
Definition at line 1028 of file qgsmapcanvas.cpp.
References extentsChanged(), mDrawing, mMap, mMapRenderer, mNewSize, mPainting, mScene, refresh(), QgsMapRenderer::rendererContext(), QgsMapCanvasMap::resize(), QgsRenderContext::setRenderingStopped(), updateCanvasItemPositions(), and updateScale().
void QgsMapCanvas::panAction | ( | QMouseEvent * | event | ) |
Called when mouse is moving and pan is activated.
Definition at line 1438 of file qgsmapcanvas.cpp.
References mDrawing, and moveCanvasContents().
Referenced by QgsMapToolPan::canvasMoveEvent(), QgsMapToolTouch::canvasMoveEvent(), and mouseMoveEvent().
void QgsMapCanvas::panActionEnd | ( | QPoint | releasePoint | ) |
Ends pan action and redraws the canvas.
Definition at line 1390 of file qgsmapcanvas.cpp.
References QgsMapRenderer::extent(), getCoordinateTransform(), mCanvasProperties, mDrawing, mMapRenderer, moveCanvasContents(), refresh(), setExtent(), QgsRectangle::setXMinimum(), QgsMapToPixel::toMapCoordinates(), QgsPoint::x(), and QgsPoint::y().
Referenced by QgsMapToolPan::canvasReleaseEvent(), QgsMapToolTouch::canvasReleaseEvent(), keyReleaseEvent(), and mouseReleaseEvent().
void QgsMapCanvas::panToSelected | ( | QgsVectorLayer * | layer = NULL | ) |
Pan to the selected features of current (vector) layer keeping same extent.
Definition at line 764 of file qgsmapcanvas.cpp.
References QgsVectorLayer::boundingBoxOfSelected(), QgsRectangle::center(), QgsMapRenderer::layerExtentToOutputExtent(), mCurrentLayer, mDrawing, mMapRenderer, refresh(), QgsVectorLayer::selectedFeatureCount(), and setExtent().
|
slot |
called to read map canvas settings from project
Definition at line 1514 of file qgsmapcanvas.cpp.
References clearExtentHistory(), mMapRenderer, QgsDebugMsg, and QgsMapRenderer::readXML().
Referenced by QgsMapCanvas().
|
slot |
Repaints the canvas map.
Definition at line 373 of file qgsmapcanvas.cpp.
References clear(), QgsMessageLog::logMessage(), mapCanvasRefreshed(), mBackbufferEnabled, mDirty, mDrawing, mFrozen, mMap, mMapTool, mRenderFlag, QgsMapCanvasMap::paintDevice(), QgsMapCanvasMap::render(), QgsMapTool::renderComplete(), renderComplete(), renderStarting(), and tr.
Referenced by QgsMapToolPan::canvasReleaseEvent(), QgsMapToolZoom::canvasReleaseEvent(), QgsMapToolTouch::canvasReleaseEvent(), crsTransformEnabled(), keyPressEvent(), layerStateChange(), mapUnitsChanged(), QgsMapOverviewCanvas::mouseReleaseEvent(), paintEvent(), panActionEnd(), panToSelected(), QgsMapToolTouch::pinchTriggered(), selectionChangedSlot(), setLayerSet(), setRenderFlag(), updateFullExtent(), useImageToRender(), wheelEvent(), zoomByFactor(), zoomToFullExtent(), zoomToNextExtent(), zoomToPreviousExtent(), zoomToSelected(), and zoomWithCenter().
|
signal |
Emitted when the canvas has rendered.
Passes a pointer to the painter on which the map was drawn. This is useful for plugins that wish to draw on the map after it has been rendered. Passing the painter allows plugins to work when the map is being rendered onto a pixmap other than the mapCanvas own pixmap member.
Referenced by refresh(), and saveAsImage().
|
inlineslot |
State of render suppression flag.
Definition at line 286 of file qgsmapcanvas.h.
|
signal |
|
protected |
|
slot |
Save the convtents of the map canvas to disk as an image.
Definition at line 469 of file qgsmapcanvas.cpp.
References QgsMapRenderer::extent(), mapUnitsPerPixel(), mMap, mMapRenderer, QgsMapCanvasMap::paintDevice(), qgsDoubleToString(), QgsMapRenderer::render(), renderComplete(), QgsRectangle::xMinimum(), and QgsRectangle::yMaximum().
double QgsMapCanvas::scale | ( | ) |
Get the last reported scale of the canvas.
Definition at line 211 of file qgsmapcanvas.cpp.
References mMapRenderer, and QgsMapRenderer::scale().
Referenced by QgsMapCanvasItem::setRenderContextVariables(), updateScale(), and zoomScale().
|
signal |
Emitted when the scale of the map changes.
Referenced by updateScale().
|
signal |
Emitted when selection in any layer gets changed.
Referenced by selectionChangedSlot(), and setLayerSet().
|
slot |
Receives signal about selection change, and pass it on with layer info.
Definition at line 1559 of file qgsmapcanvas.cpp.
References layer(), refresh(), and selectionChanged().
Referenced by setLayerSet().
|
virtual |
Write property of QColor bgColor.
Definition at line 1272 of file qgsmapcanvas.cpp.
References mMap, mScene, and QgsMapCanvasMap::setBackgroundColor().
void QgsMapCanvas::setCurrentLayer | ( | QgsMapLayer * | layer | ) |
Definition at line 206 of file qgsmapcanvas.cpp.
References layer(), and mCurrentLayer.
void QgsMapCanvas::setDirty | ( | bool | _dirty | ) |
Flag the canvas as dirty and needed a refresh.
Definition at line 216 of file qgsmapcanvas.cpp.
References mDirty.
Referenced by clear().
void QgsMapCanvas::setExtent | ( | const QgsRectangle & | r | ) |
Set the extent of the map canvas.
Definition at line 544 of file qgsmapcanvas.cpp.
References QgsRectangle::center(), QgsMapOverviewCanvas::drawExtentRect(), extent(), extentsChanged(), QgsRectangle::height(), QgsRectangle::isEmpty(), mDrawing, mLastExtent, mLastExtentIndex, mMapOverview, mMapRenderer, QgsDebugMsg, QgsMapRenderer::setExtent(), updateCanvasItemPositions(), updateScale(), QgsRectangle::width(), QgsPoint::x(), QgsPoint::y(), zoomLastStatusChanged(), and zoomNextStatusChanged().
Referenced by QgsMapToolPan::canvasReleaseEvent(), QgsMapToolZoom::canvasReleaseEvent(), QgsMapToolTouch::canvasReleaseEvent(), keyPressEvent(), QgsMapOverviewCanvas::mouseReleaseEvent(), panActionEnd(), panToSelected(), QgsMapToolTouch::pinchTriggered(), wheelEvent(), zoomByFactor(), zoomToFullExtent(), zoomToSelected(), and zoomWithCenter().
void QgsMapCanvas::setLayerSet | ( | QList< QgsMapCanvasLayer > & | layers | ) |
Definition at line 241 of file qgsmapcanvas.cpp.
References currentLayer(), QgsMapLayer::id(), QgsMapCanvasLayer::isInOverview(), QgsMapCanvasLayer::isVisible(), QgsMapCanvasLayer::layer(), layer(), layerCount(), layersChanged(), QgsMapOverviewCanvas::layerSet(), QgsMapRenderer::layerSet(), mDrawing, mMapOverview, mMapRenderer, QgsDebugMsg, refresh(), selectionChanged(), selectionChangedSlot(), QgsMapOverviewCanvas::setLayerSet(), QgsMapRenderer::setLayerSet(), updateMap(), and updateOverview().
void QgsMapCanvas::setMapTool | ( | QgsMapTool * | mapTool | ) |
Sets the map tool currently being used on the canvas.
Definition at line 1221 of file qgsmapcanvas.cpp.
References QgsMapTool::activate(), QgsMapTool::deactivate(), QgsMapTool::isTransient(), mapToolDestroyed(), mapToolSet(), mLastNonZoomMapTool, and mMapTool.
Referenced by mouseReleaseEvent().
void QgsMapCanvas::setMapUnits | ( | QGis::UnitType | mapUnits | ) |
Set map units (needed by project properties dialog)
Definition at line 1346 of file qgsmapcanvas.cpp.
References mMapRenderer, QgsDebugMsg, and QgsMapRenderer::setMapUnits().
|
signal |
Let the owner know how far we are with render operations.
|
slot |
Whether to suppress rendering or not.
Definition at line 1359 of file qgsmapcanvas.cpp.
References mMapRenderer, mRenderFlag, refresh(), QgsMapRenderer::rendererContext(), and QgsRenderContext::setRenderingStopped().
void QgsMapCanvas::setWheelAction | ( | WheelAction | action, |
double | factor = 2 |
||
) |
set wheel action and zoom factor (should be greater than 1)
Definition at line 1154 of file qgsmapcanvas.cpp.
References mWheelAction, and mWheelZoomFactor.
Referenced by QgsMapCanvas().
|
slot |
show whatever error is exposed by the QgsMapLayer.
Definition at line 1489 of file qgsmapcanvas.cpp.
References QgsMapLayer::lastError(), QgsMapLayer::lastErrorTitle(), QgsMapLayer::name(), QgsMessageViewer::setMessageAsPlainText(), and tr.
Referenced by QgsMapCanvas().
void QgsMapCanvas::unsetMapTool | ( | QgsMapTool * | mapTool | ) |
Unset the current map tool or last non zoom tool.
This is called from destructor of map tools to make sure that this map tool won't be used any more. You don't have to call it manualy, QgsMapTool takes care of it.
Definition at line 1255 of file qgsmapcanvas.cpp.
References QgsMapTool::deactivate(), mapToolSet(), mLastNonZoomMapTool, and mMapTool.
Referenced by QgsMapTool::~QgsMapTool().
|
protected |
called on resize or changed extent to notify canvas items to change their rectangle
Definition at line 1074 of file qgsmapcanvas.cpp.
References mScene, and QgsMapCanvasItem::updatePosition().
Referenced by moveCanvasContents(), paintEvent(), setExtent(), zoomToNextExtent(), and zoomToPreviousExtent().
void QgsMapCanvas::updateFullExtent | ( | ) |
Updates the full extent.
Definition at line 534 of file qgsmapcanvas.cpp.
References mMapRenderer, QgsDebugMsg, refresh(), and QgsMapRenderer::updateFullExtent().
|
slot |
updates pixmap on render progress
Definition at line 460 of file qgsmapcanvas.cpp.
References mMap, and QgsMapCanvasMap::updateContents().
Referenced by setLayerSet().
void QgsMapCanvas::updateOverview | ( | ) |
Definition at line 357 of file qgsmapcanvas.cpp.
References mMapOverview, and QgsMapOverviewCanvas::refresh().
Referenced by setLayerSet().
void QgsMapCanvas::updateScale | ( | ) |
Emits signal scaleChanged to update scale in main window.
Definition at line 597 of file qgsmapcanvas.cpp.
References mMapRenderer, scale(), QgsMapRenderer::scale(), and scaleChanged().
Referenced by mapUnitsChanged(), paintEvent(), setExtent(), zoomToNextExtent(), and zoomToPreviousExtent().
void QgsMapCanvas::useImageToRender | ( | bool | theFlag | ) |
Select which Qt class to render with.
Definition at line 179 of file qgsmapcanvas.cpp.
References mMap, refresh(), and QgsMapCanvasMap::useImageToRender().
|
protected |
Overridden mouse wheel event.
Definition at line 1092 of file qgsmapcanvas.cpp.
References QgsRectangle::center(), extent(), QgsMapRenderer::extent(), getCoordinateTransform(), mDrawing, mMapRenderer, mMapTool, mWheelAction, mWheelZoomFactor, QgsDebugMsg, refresh(), QgsRectangle::scale(), setExtent(), QgsMapTool::wheelEvent(), WheelNothing, WheelZoom, WheelZoomAndRecenter, WheelZoomToMouseCursor, zoomIn(), zoomOut(), and zoomWithCenter().
|
slot |
called to write map canvas settings to project
Definition at line 1529 of file qgsmapcanvas.cpp.
References mMapRenderer, QgsDebugMsg, and QgsMapRenderer::writeXML().
Referenced by QgsMapCanvas().
|
signal |
void QgsMapCanvas::zoomByFactor | ( | double | scaleFactor | ) |
Zoom with the factor supplied. Factor > 1 zooms out, interval (0,1) zooms in.
Definition at line 1546 of file qgsmapcanvas.cpp.
References QgsMapRenderer::extent(), mDrawing, mMapRenderer, refresh(), QgsRectangle::scale(), and setExtent().
Referenced by zoomIn(), zoomOut(), and zoomScale().
void QgsMapCanvas::zoomIn | ( | ) |
Zoom in with fixed factor.
Definition at line 1160 of file qgsmapcanvas.cpp.
References mWheelZoomFactor, and zoomByFactor().
Referenced by keyPressEvent(), and wheelEvent().
|
signal |
Emitted when zoom last status changed.
Referenced by clearExtentHistory(), setExtent(), zoomToNextExtent(), and zoomToPreviousExtent().
|
signal |
Emitted when zoom next status changed.
Referenced by clearExtentHistory(), setExtent(), zoomToNextExtent(), and zoomToPreviousExtent().
void QgsMapCanvas::zoomOut | ( | ) |
Zoom out with fixed factor.
Definition at line 1165 of file qgsmapcanvas.cpp.
References mWheelZoomFactor, and zoomByFactor().
Referenced by keyPressEvent(), QgsMapToolTouch::pinchTriggered(), and wheelEvent().
void QgsMapCanvas::zoomScale | ( | double | scale | ) |
Zoom to a specific scale.
Definition at line 1170 of file qgsmapcanvas.cpp.
References scale(), and zoomByFactor().
void QgsMapCanvas::zoomToFullExtent | ( | ) |
Zoom to the full extent of all layers.
Definition at line 614 of file qgsmapcanvas.cpp.
References extent(), fullExtent(), QgsRectangle::isEmpty(), mDrawing, refresh(), QgsRectangle::scale(), and setExtent().
void QgsMapCanvas::zoomToNextExtent | ( | ) |
Zoom to the next extent (view)
Definition at line 660 of file qgsmapcanvas.cpp.
References QgsMapOverviewCanvas::drawExtentRect(), extentsChanged(), mDrawing, mLastExtent, mLastExtentIndex, mMapOverview, mMapRenderer, refresh(), QgsMapRenderer::setExtent(), updateCanvasItemPositions(), updateScale(), zoomLastStatusChanged(), and zoomNextStatusChanged().
void QgsMapCanvas::zoomToPreviousExtent | ( | ) |
Zoom to the previous extent (view)
Definition at line 635 of file qgsmapcanvas.cpp.
References QgsMapOverviewCanvas::drawExtentRect(), extentsChanged(), mDrawing, mLastExtent, mLastExtentIndex, mMapOverview, mMapRenderer, refresh(), QgsMapRenderer::setExtent(), updateCanvasItemPositions(), updateScale(), zoomLastStatusChanged(), and zoomNextStatusChanged().
void QgsMapCanvas::zoomToSelected | ( | QgsVectorLayer * | layer = NULL | ) |
Zoom to the extent of the selected features of current (vector) layer.
Added in version 1.2: optionally specify different than current layer
Definition at line 717 of file qgsmapcanvas.cpp.
References QgsVectorLayer::boundingBoxOfSelected(), QgsRectangle::center(), extent(), QgsRectangle::isEmpty(), QgsMapRenderer::layerExtentToOutputExtent(), mCurrentLayer, mDrawing, mMapRenderer, refresh(), QgsRectangle::scale(), QgsVectorLayer::selectedFeatureCount(), and setExtent().
void QgsMapCanvas::zoomWithCenter | ( | int | x, |
int | y, | ||
bool | zoomIn | ||
) |
Zooms in/out with a given center.
Definition at line 1175 of file qgsmapcanvas.cpp.
References QgsMapRenderer::extent(), getCoordinateTransform(), mDrawing, mMapRenderer, mWheelZoomFactor, refresh(), QgsRectangle::scale(), setExtent(), and QgsMapToPixel::toMapPoint().
Referenced by QgsMapToolTouch::canvasDoubleClickEvent(), QgsMapToolZoom::canvasReleaseEvent(), and wheelEvent().
|
private |
indicates whether antialiasing will be used for rendering
Definition at line 496 of file qgsmapcanvas.h.
Referenced by enableAntiAliasing().
|
private |
If backbuffering is currently enabled.
Definition at line 441 of file qgsmapcanvas.h.
Referenced by QgsMapCanvas(), and refresh().
|
protected |
Handle pattern for implementation object.
Definition at line 408 of file qgsmapcanvas.h.
Referenced by keyPressEvent(), keyReleaseEvent(), mouseLastXY(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveCanvasContents(), and panActionEnd().
|
private |
current layer in legend
Definition at line 468 of file qgsmapcanvas.h.
Referenced by currentLayer(), mouseReleaseEvent(), panToSelected(), QgsMapCanvas(), setCurrentLayer(), and zoomToSelected().
|
private |
Flag to track the state of the Map canvas.
The canvas is flagged as dirty by any operation that changes the state of the layers or the view extent. If the canvas is not dirty, paint events are handled by bit-blitting the stored canvas bitmap to the canvas. This improves performance by not reading the data source when no real change has occurred
Definition at line 457 of file qgsmapcanvas.h.
Referenced by isDirty(), QgsMapCanvas(), refresh(), and setDirty().
|
private |
Flag indicating a map refresh is in progress.
Definition at line 443 of file qgsmapcanvas.h.
Referenced by isDrawing(), keyPressEvent(), keyReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveCanvasContents(), paintEvent(), panAction(), panActionEnd(), panToSelected(), QgsMapCanvas(), refresh(), setExtent(), setLayerSet(), wheelEvent(), zoomByFactor(), zoomToFullExtent(), zoomToNextExtent(), zoomToPreviousExtent(), zoomToSelected(), and zoomWithCenter().
|
private |
Flag indicating if the map canvas is frozen.
Definition at line 446 of file qgsmapcanvas.h.
Referenced by freeze(), isFrozen(), QgsMapCanvas(), and refresh().
|
private |
recently used extent
Definition at line 480 of file qgsmapcanvas.h.
Referenced by clearExtentHistory(), setExtent(), zoomToNextExtent(), and zoomToPreviousExtent().
|
private |
Definition at line 481 of file qgsmapcanvas.h.
Referenced by clearExtentHistory(), QgsMapCanvas(), setExtent(), zoomToNextExtent(), and zoomToPreviousExtent().
|
private |
previous tool if current is for zooming/panning
Definition at line 477 of file qgsmapcanvas.h.
Referenced by mouseReleaseEvent(), QgsMapCanvas(), setMapTool(), unsetMapTool(), and ~QgsMapCanvas().
|
private |
owns pixmap with rendered map and controls rendering
Definition at line 435 of file qgsmapcanvas.h.
Referenced by canvasPaintDevice(), enableAntiAliasing(), map(), moveCanvasContents(), paintEvent(), QgsMapCanvas(), refresh(), saveAsImage(), setCanvasColor(), updateMap(), and useImageToRender().
|
private |
map overview widget - it's controlled by QgsMapCanvas
Definition at line 438 of file qgsmapcanvas.h.
Referenced by enableAntiAliasing(), enableOverviewMode(), QgsMapCanvas(), setExtent(), setLayerSet(), updateOverview(), zoomToNextExtent(), and zoomToPreviousExtent().
|
private |
all map rendering is done in this class
Definition at line 432 of file qgsmapcanvas.h.
Referenced by crsTransformEnabled(), enableOverviewMode(), extent(), fullExtent(), getCoordinateTransform(), hasCrsTransformEnabled(), keyPressEvent(), layer(), layerCount(), layers(), mapRenderer(), mapUnits(), mapUnitsPerPixel(), paintEvent(), panActionEnd(), panToSelected(), QgsMapCanvas(), readProject(), saveAsImage(), scale(), setExtent(), setLayerSet(), setMapUnits(), setRenderFlag(), updateFullExtent(), updateScale(), wheelEvent(), writeProject(), zoomByFactor(), zoomToNextExtent(), zoomToPreviousExtent(), zoomToSelected(), zoomWithCenter(), and ~QgsMapCanvas().
|
private |
pointer to current map tool
Definition at line 474 of file qgsmapcanvas.h.
Referenced by keyPressEvent(), keyReleaseEvent(), mapTool(), mapToolDestroyed(), mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), QgsMapCanvas(), refresh(), setMapTool(), unsetMapTool(), wheelEvent(), and ~QgsMapCanvas().
|
private |
resize canvas size
Definition at line 490 of file qgsmapcanvas.h.
Referenced by paintEvent(), and resizeEvent().
|
private |
|
private |
determines whether user has requested to suppress rendering
Definition at line 460 of file qgsmapcanvas.h.
Referenced by QgsMapCanvas(), refresh(), and setRenderFlag().
|
private |
Resize events that have been ignored because the canvas is busy with rendering may put their sizes into this list.
The canvas then picks up the last entry in case a lot of resize events arrive in short time
Definition at line 465 of file qgsmapcanvas.h.
|
private |
graphics scene manages canvas items
Definition at line 471 of file qgsmapcanvas.h.
Referenced by canvasColor(), moveCanvasContents(), paintEvent(), QgsMapCanvas(), setCanvasColor(), updateCanvasItemPositions(), and ~QgsMapCanvas().
|
private |
Mouse wheel action.
Definition at line 487 of file qgsmapcanvas.h.
Referenced by setWheelAction(), and wheelEvent().
|
private |
Scale factor multiple for default zoom in/out.
Definition at line 484 of file qgsmapcanvas.h.
Referenced by setWheelAction(), wheelEvent(), zoomIn(), zoomOut(), and zoomWithCenter().