46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
#include "maptooldrawarea.h"
|
|
#include "mapcanvas.h"
|
|
#include "maparea.h"
|
|
#include "maplayer.h"
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
void LAMPMainWidget::MapToolDrawarea::execute(QMouseEvent *event)
|
|
{
|
|
QPointF scene_point=this->mMapCanvas->mapToScene(event->pos());
|
|
QPointF mkt_point=scene_point*this->mMapCanvas->currentLayer()->resolution();
|
|
if(event->type()==QEvent::MouseMove&&isDrawing){
|
|
this->current_area->lastMktpoint()=mkt_point;
|
|
qDebug()<<"mouse move";
|
|
}
|
|
|
|
if( event->type() != QEvent::MouseButtonPress) return;
|
|
if(event->button()==Qt::LeftButton){
|
|
if(!isDrawing){
|
|
qDebug()<<"begin drawarea";
|
|
isDrawing=true;
|
|
this->current_area=new Maparea(this->mMapCanvas->currentLayer());
|
|
this->mMapCanvas->scene()->addItem(current_area);
|
|
this->current_area->append(mkt_point);
|
|
}
|
|
this->current_area->append(mkt_point);
|
|
}
|
|
if(event->button()==Qt::RightButton){
|
|
isDrawing=false;
|
|
}
|
|
}
|
|
|
|
void LAMPMainWidget::MapToolDrawarea::setup()
|
|
{
|
|
mMapCanvas->setCursor(Qt::CrossCursor);
|
|
}
|
|
|
|
void LAMPMainWidget::MapToolDrawarea::deSetup()
|
|
{
|
|
mMapCanvas->setCursor(Qt::ArrowCursor);
|
|
}
|
|
|
|
QString LAMPMainWidget::MapToolDrawarea::id()
|
|
{
|
|
return QString("drawarea_tool");
|
|
}
|