本文整理汇总了C++中WldScene::Debugger_updateItemList方法的典型用法代码示例。如果您正苦于以下问题:C++ WldScene::Debugger_updateItemList方法的具体用法?C++ WldScene::Debugger_updateItemList怎么用?C++ WldScene::Debugger_updateItemList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WldScene
的用法示例。
在下文中一共展示了WldScene::Debugger_updateItemList方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mousePress
void WLD_ModePlace::mousePress(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = qobject_cast<WldScene *>(scene);
if( mouseEvent->buttons() & Qt::RightButton )
{
item_rectangles::clearArray();
MainWinConnect::pMainWin->on_actionSelect_triggered();
dontCallEvent = true;
s->IsMoved = true;
return;
}
s->last_tile_arrayID=s->WldData->tile_array_id;
s->last_scene_arrayID=s->WldData->scene_array_id;
s->last_path_arrayID=s->WldData->path_array_id;
s->last_level_arrayID=s->WldData->level_array_id;
s->last_musicbox_arrayID=s->WldData->musicbox_array_id;
if(s->cursor){
s->cursor->setPos( QPointF(s->applyGrid( mouseEvent->scenePos().toPoint()-
QPoint(WldPlacingItems::c_offset_x,
WldPlacingItems::c_offset_y),
WldPlacingItems::gridSz,
WldPlacingItems::gridOffset)));
}
s->placeItemUnderCursor();
s->Debugger_updateItemList();
s->MousePressEventOnly = true;
s->mousePressEvent(mouseEvent);
dontCallEvent = true;
}
示例2: mouseMove
void WLD_ModePlace::mouseMove(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = qobject_cast<WldScene *>(scene);
s->clearSelection();
if(mouseEvent->modifiers() & Qt::ControlModifier )
s->setMessageBoxItem(true, mouseEvent->scenePos(),
(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( mouseEvent->scenePos().toPoint()-
QPoint(WldPlacingItems::c_offset_x,
WldPlacingItems::c_offset_y),
WldPlacingItems::gridSz,
WldPlacingItems::gridOffset)));
s->cursor->show();
}
if( mouseEvent->buttons() & Qt::LeftButton )
{
s->placeItemUnderCursor();
s->Debugger_updateItemList();
}
}
示例3: mousePress
void WLD_ModeErase::mousePress(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if( mouseEvent->buttons() & Qt::RightButton )
{
MainWinConnect::pMainWin->on_actionSelect_triggered();
dontCallEvent = true;
s->m_mouseIsMovedAfterKey = true;
return;
}
if(s->m_cursorItemImg){
s->m_cursorItemImg->show();
s->m_cursorItemImg->setPos(mouseEvent->scenePos());
}
s->m_skipChildMousePressEvent = true;
s->mousePressEvent(mouseEvent);
dontCallEvent = true;
QList<QGraphicsItem*> selectedList = s->selectedItems();
if (!selectedList.isEmpty())
{
s->removeItemUnderCursor();
s->Debugger_updateItemList();
s->m_eraserIsEnabled=true;
}
}
示例4: mouseRelease
void WLD_ModeErase::mouseRelease(QGraphicsSceneMouseEvent *mouseEvent)
{
Q_UNUSED(mouseEvent);
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if(!s->m_overwritedItems.tiles.isEmpty()||
!s->m_overwritedItems.scenery.isEmpty()||
!s->m_overwritedItems.paths.isEmpty()||
!s->m_overwritedItems.levels.isEmpty()||
!s->m_overwritedItems.music.isEmpty() )
{
s->m_history->addRemoveHistory(s->m_overwritedItems);
s->m_overwritedItems.tiles.clear();
s->m_overwritedItems.scenery.clear();
s->m_overwritedItems.paths.clear();
s->m_overwritedItems.levels.clear();
s->m_overwritedItems.music.clear();
}
QList<QGraphicsItem*> selectedList = s->selectedItems();
// check for grid snap
if ((!selectedList.isEmpty())&&(s->m_mouseIsMoved))
{
s->removeWldItems(selectedList);
selectedList = s->selectedItems();
s->Debugger_updateItemList();
}
s->m_eraserIsEnabled = false;
}
示例5: mouseMove
void WLD_ModeErase::mouseMove(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if(s->m_cursorItemImg) s->m_cursorItemImg->setPos(mouseEvent->scenePos());
if (s->m_eraserIsEnabled)// Remove All items, placed under Cursor
{
s->removeItemUnderCursor();
s->Debugger_updateItemList();
}
}
示例6: mouseRelease
void WLD_ModeSquare::mouseRelease(QGraphicsSceneMouseEvent *mouseEvent)
{
Q_UNUSED(mouseEvent);
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if(s->cursor)
{
// /////////// Don't draw with zero width or height //////////////
if( (((QGraphicsRectItem *)s->cursor)->rect().width()==0) ||
(((QGraphicsRectItem *)s->cursor)->rect().height()==0))
{
s->cursor->hide();
return;
}
//QPointF p = ((QGraphicsRectItem *)s->cursor)->scenePos();
//QSizeF sz = ((QGraphicsRectItem *)s->cursor)->rect().size();
// s->collisionCheckBuffer = s->items(QRectF(
// p.x()-10, p.y()-10,
// sz.width()+20, sz.height()+20),
// Qt::IntersectsItemBoundingRect);
// if(s->collisionCheckBuffer.isEmpty())
// s->emptyCollisionCheck = true;
// else
// s->prepareCollisionBuffer();
s->placeItemsByRectArray();
s->Debugger_updateItemList();
s->emptyCollisionCheck = false;
s->collisionCheckBuffer.clear();
s->WldData->modified = true;
s->cursor->hide();
}
}
示例7: mouseRelease
void WLD_ModeSelect::mouseRelease(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if( mouseEvent->button() != Qt::LeftButton )
{
dontCallEvent = true;
return;
}
s->cursor->hide();
s->haveSelected = false;
QString ObjType;
bool collisionPassed = false;
//History
WorldData historyBuffer;// bool deleted=false;
WorldData historySourceBuffer;
if(s->PasteFromBuffer)
{
s->paste( s->WldBuffer, mouseEvent->scenePos().toPoint() );
s->Debugger_updateItemList();
s->PasteFromBuffer = false;
s->mouseMoved=false;
MainWinConnect::pMainWin->on_actionSelect_triggered();
}
QList<QGraphicsItem*> selectedList = s->selectedItems();
// check for grid snap
if ((!selectedList.isEmpty())&&(s->mouseMoved))
{
//Set Grid Size/Offset, sourcePosition
setItemSourceData(selectedList.first(), selectedList.first()->data(0).toString());
//Check first selected element is it was moved
if( (sourcePos == QPoint(
(long)(selectedList.first()->scenePos().x()),
((long)selectedList.first()->scenePos().y())
) ) )
{
s->mouseMoved=false;
return; //break fetch when items is not moved
}
s->applyGroupGrid(selectedList);
// Check collisions
//Only if collision ckecking enabled
if(!s->PasteFromBuffer)
{
if(s->opts.collisionsEnabled && s->checkGroupCollisions(&selectedList))
{
collisionPassed = false;
s->returnItemBackGroup(selectedList);
}
else
{
collisionPassed = true;
//applyArrayForItemGroup(selectedList);
s->WldData->modified=true;
}
}
if((collisionPassed) || (!s->opts.collisionsEnabled))
for (QList<QGraphicsItem*>::iterator it = selectedList.begin();
it != selectedList.end(); it++)
{ ////////////////////////SECOND FETCH///////////////////////
ObjType = (*it)->data(0).toString();
/////////////////////////GET DATA///////////////
setItemSourceData((*it), (*it)->data(0).toString()); //Set Grid Size/Offset, sourcePosition
/////////////////////////GET DATA/////////////////////
//Check position
if( (sourcePos == QPoint((long)((*it)->scenePos().x()), ((long)(*it)->scenePos().y()))))
{
s->mouseMoved=false;
break; //break fetch when items is not moved
}
if( ObjType == "TILE")
{
//Applay move into main array
historySourceBuffer.tiles.push_back(((ItemTile *)(*it))->tileData);
((ItemTile *)(*it))->tileData.x = (long)(*it)->scenePos().x();
((ItemTile *)(*it))->tileData.y = (long)(*it)->scenePos().y();
((ItemTile *)(*it))->arrayApply();
historyBuffer.tiles.push_back(((ItemTile *)(*it))->tileData);
s->WldData->modified = true;
}
else
if( ObjType == "SCENERY")
{
//.........这里部分代码省略.........