mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
Now all classes and members are either exposed to bindings or marked as "not available in Python bindings" in the docs. Drop test thresholds to 0. Now it should be much easier to determine what missing members have been added which are causing test failures.
95 lines
3.6 KiB
Plaintext
95 lines
3.6 KiB
Plaintext
/***************************************************************************
|
|
qgsmapmouseevent.h - mouse event in map coordinates and ability to snap
|
|
----------------------
|
|
begin : October 2014
|
|
copyright : (C) Denis Rouzaud
|
|
email : denis.rouzaud@gmail.com
|
|
***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
/**
|
|
* A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas.
|
|
* It is sent whenever the user moves, clicks, releases or double clicks the mouse.
|
|
* In addition to the coordiantes in pixel space it also knows the coordinates in the mapcanvas' CRS
|
|
* as well as it knows the concept of snapping.
|
|
*/
|
|
class QgsMapMouseEvent : QMouseEvent
|
|
{
|
|
%TypeHeaderCode
|
|
#include "qgsmapmouseevent.h"
|
|
%End
|
|
|
|
%ConvertToSubClassCode
|
|
if ( dynamic_cast<QgsMapMouseEvent*>( sipCpp ) )
|
|
sipType = sipType_QgsMapMouseEvent;
|
|
else
|
|
sipType = 0;
|
|
%End
|
|
|
|
public:
|
|
|
|
enum SnappingMode
|
|
{
|
|
NoSnapping,
|
|
SnapProjectConfig, //!< snap according to the configuration set in the snapping settings
|
|
SnapAllLayers, //!< snap to all rendered layers (tolerance and type from defaultSettings())
|
|
};
|
|
|
|
/**
|
|
* Creates a new QgsMapMouseEvent. Should only be required to be called from the QgsMapCanvas.
|
|
*
|
|
* @param mapCanvas The map canvas on which the event occured
|
|
* @param event The original mouse event
|
|
*/
|
|
QgsMapMouseEvent( QgsMapCanvas* mapCanvas, QMouseEvent* event );
|
|
|
|
/**
|
|
* @brief snapPoint will snap the points using the map canvas snapping utils configuration
|
|
* @note if snapping did not succeeded, the map point will be reset to its original position
|
|
*/
|
|
QgsPoint snapPoint( SnappingMode snappingMode );
|
|
|
|
/**
|
|
* returns the first snapped segment. If the cached snapped match is a segment, it will simply return it.
|
|
* Otherwise it will try to snap a segment according to the event's snapping mode. In this case the cache
|
|
* will not be overwritten.
|
|
* @param snapped if given, determines if a segment has been snapped
|
|
* @param allLayers if true, override snapping mode
|
|
*/
|
|
QList<QgsPoint> snapSegment( SnappingMode snappingMode, bool* snapped = 0, bool allLayers = false ) const;
|
|
|
|
/**
|
|
* Returns true if there is a snapped point cached.
|
|
* Will only be useful after snapPoint has previously been called.
|
|
*
|
|
* @return True if there is a snapped point cached.
|
|
*/
|
|
bool isSnapped() const;
|
|
|
|
/**
|
|
* @brief mapPoint returns the point in coordinates
|
|
* @return the point in map coordinates, after snapping if requested in the event.
|
|
*/
|
|
QgsPoint mapPoint() const;
|
|
|
|
/**
|
|
* Set the (snapped) point this event points to in map coordinates.
|
|
* The point in pixel coordinates will be calculated accordingly.
|
|
*
|
|
* @param point The point in map coordinates
|
|
*/
|
|
void setMapPoint( const QgsPoint& point );
|
|
|
|
QgsPoint originalMapPoint() const;
|
|
|
|
QPoint pixelPoint() const;
|
|
|
|
QPoint originalPixelPoint() const;
|
|
};
|