From e10c0a7602c612993e6b99348bab507b7def0881 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 25 Feb 2012 16:56:25 +0000 Subject: Add entity manipulator widget, added support for editing entity angles. --- src/entitywidget.cc | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'src/entitywidget.cc') diff --git a/src/entitywidget.cc b/src/entitywidget.cc index c903ea8..b589063 100644 --- a/src/entitywidget.cc +++ b/src/entitywidget.cc @@ -11,6 +11,8 @@ #include #include +#include + namespace editor { @@ -34,10 +36,30 @@ void EntityWidget::paintEvent(QPaintEvent *event) if (is_selected) { pen.setColor(Qt::red); painter.setPen(pen); + + painter.setClipping(false); + } else { + painter.setClipping(true); } painter.setPen(pen); painter.drawEllipse(0, 0, width() - 1 , height() - 1); + + float r = width() / 2; + if (r < 12) + r = 12; + + /* + float dx = r * sin(entitywidget_entityproperties.yaw()); + float dy = r * cos(entitywidget_entityproperties.yaw()); + + if (!is_selected) { + pen.setColor(Qt::yellow); + } + painter.setPen(pen); + + painter.drawLine(width() /2, height() /2, width() /2 - dx, height() /2 - dy); + */ } void EntityWidget::mousePressEvent(QMouseEvent *event) @@ -45,8 +67,10 @@ void EntityWidget::mousePressEvent(QMouseEvent *event) if (event->button() == Qt::LeftButton) { //qDebug() << "clicked entity " << name(); event->accept(); - if (is_selected) + if (is_selected) { is_dragging = true; + emit dragStart(); + } emit clicked(this); } else { event->ignore(); @@ -57,6 +81,8 @@ void EntityWidget::mousePressEvent(QMouseEvent *event) void EntityWidget::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { + if (is_dragging) + emit dragStop(); is_dragging = false; } } @@ -64,8 +90,7 @@ void EntityWidget::mouseReleaseEvent(QMouseEvent *event) void EntityWidget::mouseMoveEvent(QMouseEvent *event) { if (is_dragging) { - // TODO add delay - emit dragged(this, event->pos().x(), event->pos().y()); + emit dragMove(this, event->pos().x(), event->pos().y()); } } -- cgit v1.2.3