本文整理汇总了C++中WldScene类的典型用法代码示例。如果您正苦于以下问题:C++ WldScene类的具体用法?C++ WldScene怎么用?C++ WldScene使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WldScene类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: mousePress
void WLD_ModeSetPoint::mousePress(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if( (!s->isSelectionDialog) && ((mouseEvent->buttons() & Qt::RightButton)!=0) )
{
MainWinConnect::pMainWin->on_actionSelect_triggered();
dontCallEvent = true;
s->IsMoved = true;
return;
}
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->setPoint(s->cursor->scenePos().toPoint());
emit s->pointSelected(s->selectedPoint);
dontCallEvent=true;
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:26,代码来源:wld_mode_setpoint.cpp
示例2: 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;
}
}
开发者ID:Wohlhabend-Networks,项目名称:PGE-Project,代码行数:30,代码来源:wld_mode_erase.cpp
示例3: mouseMove
void WLD_ModeSetPoint::mouseMove(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
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();
s->setMessageBoxItem(true, mouseEvent->scenePos(),
(s->cursor?
(
QString::number( s->cursor->scenePos().toPoint().x() ) + "x" +
QString::number( s->cursor->scenePos().toPoint().y() )
)
:""));
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:25,代码来源:wld_mode_setpoint.cpp
示例4: 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;
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:35,代码来源:wld_mode_place.cpp
示例5: mouseMove
void WLD_ModeSquare::mouseMove(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if(s->cursor)
{
if(s->cursor->isVisible())
{
QPoint hw = s->applyGrid( mouseEvent->scenePos().toPoint(),
WldPlacingItems::gridSz,
WldPlacingItems::gridOffset);
QSize hs = QSize( (long)fabs(drawStartPos.x() - hw.x()), (long)fabs( drawStartPos.y() - hw.y() ) );
((QGraphicsRectItem *)s->cursor)->setRect(0,0, hs.width(), hs.height());
((QGraphicsRectItem *)s->cursor)->setPos(
((hw.x() < drawStartPos.x() )? hw.x() : drawStartPos.x()),
((hw.y() < drawStartPos.y() )? hw.y() : drawStartPos.y())
);
item_rectangles::drawMatrix(s, QRect (((QGraphicsRectItem *)s->cursor)->x(),
((QGraphicsRectItem *)s->cursor)->y(),
((QGraphicsRectItem *)s->cursor)->rect().width(),
((QGraphicsRectItem *)s->cursor)->rect().height()),
QSize(WldPlacingItems::itemW, WldPlacingItems::itemH)
);
}
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:32,代码来源:wld_mode_square.cpp
示例6: mousePress
void WLD_ModeSquare::mousePress(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_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){
drawStartPos = QPointF(s->applyGrid( mouseEvent->scenePos().toPoint(),
WldPlacingItems::gridSz,
WldPlacingItems::gridOffset));
s->cursor->setPos( drawStartPos );
s->cursor->setVisible(true);
QPoint hw = s->applyGrid( mouseEvent->scenePos().toPoint(),
WldPlacingItems::gridSz,
WldPlacingItems::gridOffset);
QSize hs = QSize( (long)fabs(drawStartPos.x() - hw.x()), (long)fabs( drawStartPos.y() - hw.y() ) );
((QGraphicsRectItem *)(s->cursor))->setRect(0,0, hs.width(), hs.height());
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:35,代码来源:wld_mode_square.cpp
示例7: Q_UNUSED
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;
}
开发者ID:Wohlhabend-Networks,项目名称:PGE-Project,代码行数:32,代码来源:wld_mode_erase.cpp
示例8: Q_UNUSED
void WLD_ModeResize::mousePress(QGraphicsSceneMouseEvent *mouseEvent)
{
Q_UNUSED(mouseEvent);
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
s->MousePressEventOnly = true;
s->mousePressEvent(mouseEvent);
dontCallEvent = true;
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:10,代码来源:wld_mode_resize.cpp
示例9: mousePress
void WLD_ModeSelect::mousePress(QGraphicsSceneMouseEvent *mouseEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if(s->EditingMode == WldScene::MODE_PasteFromClip)
{
if( mouseEvent->buttons() & Qt::RightButton )
{
MainWinConnect::pMainWin->on_actionSelect_triggered();
dontCallEvent = true;
s->IsMoved = true;
return;
}
s->PasteFromBuffer = true;
dontCallEvent = true;
s->IsMoved = true;
return;
}
if((s->disableMoveItems) && (mouseEvent->buttons() & Qt::LeftButton)
&& (Qt::ControlModifier != QApplication::keyboardModifiers()))
{ return; }
if( mouseEvent->buttons() & Qt::MiddleButton )
{
if(GlobalSettings::MidMouse_allowSwitchToPlace)
{
if(s->selectedItems().size()==1)
{
QGraphicsItem * it = s->selectedItems().first();
QString itp = it->data(0).toString();
long itd = it->data(1).toInt();
if(itp=="TILE")
{MainWinConnect::pMainWin->SwitchPlacingItem(ItemTypes::WLD_Tile, itd); return;}
else if(itp=="SCENERY")
{MainWinConnect::pMainWin->SwitchPlacingItem(ItemTypes::WLD_Scenery, itd); return;}
else if(itp=="PATH")
{MainWinConnect::pMainWin->SwitchPlacingItem(ItemTypes::WLD_Path, itd); return;}
else if(itp=="LEVEL")
{MainWinConnect::pMainWin->SwitchPlacingItem(ItemTypes::WLD_Level, itd); return;}
else if(itp=="MUSICBOX")
{MainWinConnect::pMainWin->SwitchPlacingItem(ItemTypes::WLD_MusicBox, itd); return;}
}
}
if(GlobalSettings::MidMouse_allowDuplicate)
{
if(!s->selectedItems().isEmpty())
{
s->WldBuffer = s->copy();
s->PasteFromBuffer=true;
}
}
}
}
开发者ID:hacheipe399,项目名称:PlatGEnWohl,代码行数:55,代码来源:wld_mode_select.cpp
示例10: 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();
}
}
开发者ID:Wohlhabend-Networks,项目名称:PGE-Project,代码行数:12,代码来源:wld_mode_erase.cpp
示例11: Q_UNUSED
void WLD_ModeSetPoint::mouseRelease(QGraphicsSceneMouseEvent *mouseEvent)
{
Q_UNUSED(mouseEvent);
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
if(!s->isSelectionDialog)
{
MainWinConnect::pMainWin->on_actionSelect_triggered();
MainWinConnect::pMainWin->dock_WldItemProps->WLD_returnPointToLevelProperties(s->selectedPoint);
s->openProps();
//s->MouseReleaseEventOnly = true;
//s->mouseReleaseEvent(mouseEvent);
dontCallEvent=true;
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:17,代码来源:wld_mode_setpoint.cpp
示例12: 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();
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:33,代码来源:wld_mode_place.cpp
示例13: set
void WLD_ModeSelect::set()
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
s->resetCursor();
s->resetResizers();
s->m_pointSelector.unserPointSelector();
s->m_eraserIsEnabled = false;
s->m_pastingMode = false;
s->m_busyMode = false;
s->m_disableMoveItems = false;
s->m_viewPort->setInteractive(true);
s->m_viewPort->setCursor(Themes::Cursor(Themes::cursor_normal));
s->m_viewPort->setDragMode(QGraphicsView::RubberBandDrag);
}
开发者ID:Wohlhabend-Networks,项目名称:PGE-Project,代码行数:18,代码来源:wld_mode_select.cpp
示例14: keyRelease
void WLD_ModeSelect::keyRelease(QKeyEvent *keyEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
switch(keyEvent->key())
{
case (Qt::Key_Delete): //Delete action
s->removeSelectedWldItems();
break;
case (Qt::Key_Escape):
if(!s->mouseMoved)
s->clearSelection();
break;
default:
break;
}
}
开发者ID:hacheipe399,项目名称:PlatGEnWohl,代码行数:18,代码来源:wld_mode_select.cpp
示例15: set
void WLD_ModeSelect::set()
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
s->EraserEnabled=false;
s->PasteFromBuffer=false;
s->DrawMode=false;
s->disableMoveItems=false;
s->resetCursor();
s->resetResizers();
s->unserPointSelector();
s->_viewPort->setInteractive(true);
s->_viewPort->setCursor(Themes::Cursor(Themes::cursor_normal));
s->_viewPort->setDragMode(QGraphicsView::RubberBandDrag);
}
开发者ID:hacheipe399,项目名称:PlatGEnWohl,代码行数:18,代码来源:wld_mode_select.cpp
示例16: set
void WLD_ModeSetPoint::set()
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
s->resetResizers();
s->EraserEnabled=false;
s->PasteFromBuffer=false;
s->DrawMode=true;
s->disableMoveItems=false;
s->_viewPort->setInteractive(true);
s->_viewPort->setCursor(Themes::Cursor(Themes::cursor_placing));
s->_viewPort->setDragMode(QGraphicsView::NoDrag);
s->_viewPort->setRenderHint(QPainter::Antialiasing, true);
s->_viewPort->viewport()->setMouseTracking(true);
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:18,代码来源:wld_mode_setpoint.cpp
示例17: set
void WLD_ModeResize::set()
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
s->clearSelection();
s->resetCursor();
s->unserPointSelector();
s->EraserEnabled=false;
s->PasteFromBuffer=false;
s->DrawMode=true;
s->disableMoveItems=true;
s->_viewPort->setInteractive(true);
s->_viewPort->setCursor(Themes::Cursor(Themes::cursor_resizing));
s->_viewPort->setDragMode(QGraphicsView::NoDrag);
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:18,代码来源:wld_mode_resize.cpp
示例18: keyRelease
void WLD_ModeResize::keyRelease(QKeyEvent *keyEvent)
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
switch(keyEvent->key())
{
case (Qt::Key_Escape):
s->resetResizers();
break;
case (Qt::Key_Enter):
case (Qt::Key_Return):
s->applyResizers();
//setSectionResizer(false, true);
break;
default:
break;
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:19,代码来源:wld_mode_resize.cpp
示例19: set
void WLD_ModeHand::set()
{
if(!scene) return;
WldScene *s = dynamic_cast<WldScene *>(scene);
s->clearSelection();
s->resetCursor();
s->resetResizers();
s->m_pointSelector.unserPointSelector();
s->m_eraserIsEnabled=false;
s->m_pastingMode=false;
s->m_busyMode=false;
s->m_disableMoveItems=false;
s->m_viewPort->setCursor(Qt::ArrowCursor);
s->m_viewPort->setInteractive(false);
s->m_viewPort->setDragMode(QGraphicsView::ScrollHandDrag);
}
开发者ID:Wohlhabend-Networks,项目名称:PGE-Project,代码行数:19,代码来源:wld_mode_hand.cpp
示例20: Q_UNUSED
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();
}
}
开发者ID:tcvicio,项目名称:PGE-Project,代码行数:39,代码来源:wld_mode_square.cpp
注:本文中的WldScene类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论