Skip to content
Permalink
Browse files
Added QgsMapToolEmitPoint which emits a signal when a point on map ca…
…nvas is clicked.

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@6989 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
wonder committed Jun 9, 2007
1 parent 4e8c14e commit 5d7545c622a300c2b8c53b2927dc5792f1778c6b
Showing with 118 additions and 0 deletions.
  1. +1 −0 python/gui/gui.sip
  2. +2 −0 python/gui/qgsmaptool.sip
  3. +25 −0 python/gui/qgsmaptoolemitpoint.sip
  4. +3 −0 src/gui/CMakeLists.txt
  5. +39 −0 src/gui/qgsmaptoolemitpoint.cpp
  6. +48 −0 src/gui/qgsmaptoolemitpoint.h
@@ -15,6 +15,7 @@
%Include qgsmapcanvasitem.sip
%Include qgsmapcanvasmap.sip
%Include qgsmaptool.sip
%Include qgsmaptoolemitpoint.sip
%Include qgsmaptoolpan.sip
%Include qgsmaptoolzoom.sip
%Include qgsmapoverviewcanvas.sip
@@ -10,6 +10,8 @@ class QgsMapTool : QObject
sipClass = sipClass_QgsMapToolZoom;
else if (dynamic_cast<QgsMapToolPan*>(sipCpp) != NULL)
sipClass = sipClass_QgsMapToolPan;
else if (dynamic_cast<QgsMapToolEmitPoint*>(sipCpp) != NULL)
sipClass = sipClass_QgsMapToolEmitPoint;
else
sipClass = NULL;
%End
@@ -0,0 +1,25 @@

class QgsMapToolEmitPoint : QgsMapTool
{
%TypeHeaderCode
#include <qgsmaptoolemitpoint.h>
%End

public:
//! constructor
QgsMapToolEmitPoint(QgsMapCanvas* canvas);

//! Overridden mouse move event
virtual void canvasMoveEvent(QMouseEvent * e);

//! Overridden mouse press event - emits the signal
virtual void canvasPressEvent(QMouseEvent * e);

//! Overridden mouse release event
virtual void canvasReleaseEvent(QMouseEvent * e);

signals:

//! signal emitted on canvas click
void gotPoint(QgsPoint& point, Qt::MouseButton button);
};
@@ -12,6 +12,7 @@ qgsmapcanvasitem.cpp
qgsmapcanvasmap.cpp
qgsmapoverviewcanvas.cpp
qgsmaptool.cpp
qgsmaptoolemitpoint.cpp
qgsmaptoolpan.cpp
qgsmaptoolzoom.cpp
qgsmessageviewer.cpp
@@ -26,6 +27,7 @@ qgsencodingfiledialog.h
qgslayerprojectionselector.h
qgsmapcanvas.h
qgsmapoverviewcanvas.h
qgsmaptoolemitpoint.h
qgsprojectionselector.h
)

@@ -81,6 +83,7 @@ qgsmapcanvasitem.h
qgsmapcanvasmap.h
qgsmapoverviewcanvas.h
qgsmaptool.h
qgsmaptoolemitpoint.h
qgsmaptoolpan.h
qgsmaptoolzoom.h
qgsmessageviewer.h
@@ -0,0 +1,39 @@
/***************************************************************************
qgsmaptoolemitpoint.cpp - map tool that emits a signal on click
---------------------
begin : June 2007
copyright : (C) 2007 by Martin Dobias
email : wonder.sk at gmail dot 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. *
* *
***************************************************************************/
/* $Id$ */


#include "qgsmaptoolemitpoint.h"
#include "qgsmapcanvas.h"


QgsMapToolEmitPoint::QgsMapToolEmitPoint(QgsMapCanvas* canvas)
: QgsMapTool(canvas)
{
}

void QgsMapToolEmitPoint::canvasMoveEvent(QMouseEvent * e)
{
}

void QgsMapToolEmitPoint::canvasPressEvent(QMouseEvent * e)
{
QgsPoint pnt = toMapCoords(e->pos());
emit gotPoint(pnt, e->button());
}

void QgsMapToolEmitPoint::canvasReleaseEvent(QMouseEvent * e)
{
}
@@ -0,0 +1,48 @@
/***************************************************************************
qgsmaptoolemitpoint.h - map tool that emits a signal on click
---------------------
begin : June 2007
copyright : (C) 2007 by Martin Dobias
email : wonder.sk at gmail dot 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. *
* *
***************************************************************************/
/* $Id$ */

#ifndef QGSMAPTOOLEMITPOINT_H
#define QGSMAPTOOLEMITPOINT_H

#include "qgspoint.h"
#include "qgsmaptool.h"
class QgsMapCanvas;


class GUI_EXPORT QgsMapToolEmitPoint : public QgsMapTool
{
Q_OBJECT

public:
//! constructor
QgsMapToolEmitPoint(QgsMapCanvas* canvas);

//! Overridden mouse move event
virtual void canvasMoveEvent(QMouseEvent * e);

//! Overridden mouse press event - emits the signal
virtual void canvasPressEvent(QMouseEvent * e);

//! Overridden mouse release event
virtual void canvasReleaseEvent(QMouseEvent * e);

signals:

//! signal emitted on canvas click
void gotPoint(QgsPoint& point, Qt::MouseButton button);
};

#endif

0 comments on commit 5d7545c

Please sign in to comment.