diff options
Diffstat (limited to 'src/entitywidget.cc')
-rw-r--r-- | src/entitywidget.cc | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/entitywidget.cc b/src/entitywidget.cc index 6878b28..70be280 100644 --- a/src/entitywidget.cc +++ b/src/entitywidget.cc @@ -18,21 +18,21 @@ namespace editor EntityWidget::EntityWidget(QWidget *parent) : QWidget(parent) { - is_selected = false; + entitywidget_selected = SelectNone; is_dragging = false; } EntityWidget::EntityWidget(EntityWidget &entity_widget, QWidget *parent) : QWidget(parent) { - is_selected = false; + entitywidget_selected = SelectNone; is_dragging = false; assign(entity_widget); } -void EntityWidget::set_selected(const bool selected) +void EntityWidget::set_selected(const Selected selected) { - is_selected = selected; + entitywidget_selected = selected; update(); } @@ -47,13 +47,20 @@ void EntityWidget::paintEvent(QPaintEvent *event) QPen pen(Qt::black, 1, Qt::SolidLine); QPainter painter(this); - if (is_selected) { - pen.setColor(Qt::red); - painter.setPen(pen); - - painter.setClipping(false); - } else { - painter.setClipping(true); + switch (entitywidget_selected) { + case SelectNone: + painter.setClipping(true); + break; + case SelectHighlight: + pen.setColor(QColor(191, 0, 0)); + painter.setPen(pen); + painter.setClipping(false); + break; + case SelectActive: + pen.setColor(QColor(255, 0, 0)); + painter.setPen(pen); + painter.setClipping(false); + break; } painter.setPen(pen); @@ -81,7 +88,7 @@ void EntityWidget::mousePressEvent(QMouseEvent *event) if (event->button() == Qt::LeftButton) { //qDebug() << "clicked entity " << name(); event->accept(); - if (is_selected) { + if ((selected() == SelectHighlight) || (selected() == SelectActive)) { is_dragging = true; emit dragStart(); } |