void LVL_ModeCircle::mouseMove(QGraphicsSceneMouseEvent *mouseEvent) { if(!scene) return; LvlScene *s = dynamic_cast<LvlScene *>(scene); if(!LvlPlacingItems::layer.isEmpty() && LvlPlacingItems::layer!="Default") s->setLabelBoxItem(true, mouseEvent->scenePos(), LvlPlacingItems::layer + ", " + QString::number( mouseEvent->scenePos().toPoint().x() ) + "x" + QString::number( mouseEvent->scenePos().toPoint().y() ) ); else s->setLabelBoxItem(false); if(s->m_cursorItemImg && s->m_cursorItemImg->isVisible()) { QGraphicsEllipseItem * cur = dynamic_cast<QGraphicsEllipseItem *>(s->m_cursorItemImg); QPoint hw = s->applyGrid( mouseEvent->scenePos().toPoint(), LvlPlacingItems::gridSz, LvlPlacingItems::gridOffset); QSize hs = QSize( (long)fabs(drawStartPos.x() - hw.x()), (long)fabs( drawStartPos.y() - hw.y() ) ); cur->setRect(0,0, hs.width(), hs.height()); cur->setPos(((hw.x() < drawStartPos.x() )? hw.x() : drawStartPos.x()), ((hw.y() < drawStartPos.y() )? hw.y() : drawStartPos.y())); } }
void LVL_ModeFill::mouseMove(QGraphicsSceneMouseEvent *mouseEvent) { if(!scene) return; LvlScene *s = dynamic_cast<LvlScene *>(scene); s->clearSelection(); if((!LvlPlacingItems::layer.isEmpty() && LvlPlacingItems::layer!="Default")|| (mouseEvent->modifiers() & Qt::ControlModifier) ) s->setMessageBoxItem(true, mouseEvent->scenePos(), ((!LvlPlacingItems::layer.isEmpty() && LvlPlacingItems::layer!="Default")? LvlPlacingItems::layer + ", ":"") + (s->cursor? ( QString::number( s->cursor->scenePos().toPoint().x() ) + "x" + QString::number( s->cursor->scenePos().toPoint().y() ) ) :"") ); else s->setMessageBoxItem(false); if(s->cursor) { s->cursor->setPos( QPointF(s->applyGrid( QPointF(mouseEvent->scenePos()- QPointF(LvlPlacingItems::c_offset_x, LvlPlacingItems::c_offset_y)).toPoint(), LvlPlacingItems::gridSz, LvlPlacingItems::gridOffset))); s->cursor->show(); } }
void LVL_ModeCircle::mousePress(QGraphicsSceneMouseEvent *mouseEvent) { if(!scene) return; LvlScene *s = dynamic_cast<LvlScene *>(scene); MainWindow* mw = s->m_mw; if( mouseEvent->buttons() & Qt::RightButton ) { item_rectangles::clearArray(); QMetaObject::invokeMethod(mw, "on_actionSelect_triggered"); dontCallEvent = true; s->m_mouseIsMovedAfterKey = true; return; } s->m_lastBlockArrayID=s->m_data->blocks_array_id; s->m_lastBgoArrayID=s->m_data->bgo_array_id; s->m_lastNpcArrayID=s->m_data->npc_array_id; LogDebug(QString("Circle mode %1").arg(s->m_editMode)); if(s->m_cursorItemImg) { drawStartPos = QPointF(s->applyGrid( mouseEvent->scenePos().toPoint(), LvlPlacingItems::gridSz, LvlPlacingItems::gridOffset)); s->m_cursorItemImg->setPos( drawStartPos ); s->m_cursorItemImg->setVisible(true); QPoint hw = s->applyGrid( mouseEvent->scenePos().toPoint(), LvlPlacingItems::gridSz, LvlPlacingItems::gridOffset); QSize hs = QSize( (long)fabs(drawStartPos.x() - hw.x()), (long)fabs( drawStartPos.y() - hw.y() ) ); dynamic_cast<QGraphicsEllipseItem *>(s->m_cursorItemImg)->setRect(0,0, hs.width(), hs.height()); } }
void LVL_ModePlace::mousePress(QGraphicsSceneMouseEvent *mouseEvent) { if(!scene) return; LvlScene *s = dynamic_cast<LvlScene *>(scene); if( mouseEvent->buttons() & Qt::RightButton ) { item_rectangles::clearArray(); MainWinConnect::pMainWin->on_actionSelect_triggered(); dontCallEvent = true; s->IsMoved = true; return; } s->last_block_arrayID=s->LvlData->blocks_array_id; s->last_bgo_arrayID=s->LvlData->bgo_array_id; s->last_npc_arrayID=s->LvlData->npc_array_id; if(LvlPlacingItems::npcSpecialAutoIncrement) s->IncrementingNpcSpecialSpin = LvlPlacingItems::npcSpecialAutoIncrement_begin; if(s->cursor) { s->cursor->setPos( QPointF(s->applyGrid( mouseEvent->scenePos().toPoint()- QPoint(LvlPlacingItems::c_offset_x, LvlPlacingItems::c_offset_y), LvlPlacingItems::gridSz, LvlPlacingItems::gridOffset))); } s->placeItemUnderCursor(); s->Debugger_updateItemList(); s->MousePressEventOnly = true; s->mousePressEvent(mouseEvent); dontCallEvent = true; }