diff options
Diffstat (limited to 'Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp')
-rw-r--r-- | Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp index a2440ba..960254c 100644 --- a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp +++ b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp @@ -141,21 +141,21 @@ namespace Swift { if (insertOp) { WhiteboardElementDrawingVisitor visitor(graphicsView, operation->getPos(), GView::New); insertOp->getElement()->accept(visitor); - lastOpID = insertOp->getID(); } WhiteboardUpdateOperation::ref updateOp = boost::dynamic_pointer_cast<WhiteboardUpdateOperation>(operation); if (updateOp) { WhiteboardElementDrawingVisitor visitor(graphicsView, operation->getPos(), GView::Update); updateOp->getElement()->accept(visitor); - lastOpID = updateOp->getID(); } WhiteboardDeleteOperation::ref deleteOp = boost::dynamic_pointer_cast<WhiteboardDeleteOperation>(operation); if (deleteOp) { - graphicsView->deleteItem(P2QSTRING(deleteOp->getID())); - lastOpID = deleteOp->getID(); + if (deleteOp->getPos() != -1) { + graphicsView->deleteItem(P2QSTRING(deleteOp->getElementID())); + } } + lastOpID = operation->getID(); } void QtWhiteboardWindow::changeLineWidth(int i) @@ -343,29 +343,32 @@ namespace Swift { if (type == GView::New) { WhiteboardInsertOperation::ref insertOp = boost::make_shared<WhiteboardInsertOperation>(); - insertOp->setID(el->getID()); +// insertOp->setID(el->getID()); + insertOp->setID(Q2PSTRING(graphicsView->getNewID())); insertOp->setPos(pos); insertOp->setElement(el); insertOp->setParentID(lastOpID); - lastOpID = el->getID(); + lastOpID = insertOp->getID(); whiteboardSession_->sendOperation(insertOp); } else { WhiteboardUpdateOperation::ref updateOp = boost::make_shared<WhiteboardUpdateOperation>(); - updateOp->setID(el->getID()); +// updateOp->setID(el->getID()); + updateOp->setID(Q2PSTRING(graphicsView->getNewID())); updateOp->setPos(pos); updateOp->setElement(el); updateOp->setParentID(lastOpID); - lastOpID = el->getID(); + lastOpID = updateOp->getID(); whiteboardSession_->sendOperation(updateOp); } } void QtWhiteboardWindow::handleItemDeleted(QString id, int pos) { WhiteboardDeleteOperation::ref deleteOp = boost::make_shared<WhiteboardDeleteOperation>(); - deleteOp->setID(Q2PSTRING(id)); + deleteOp->setID(Q2PSTRING(graphicsView->getNewID())); + deleteOp->setElementID(Q2PSTRING(id)); deleteOp->setPos(pos); deleteOp->setParentID(lastOpID); - lastOpID = Q2PSTRING(id); + lastOpID = deleteOp->getID(); whiteboardSession_->sendOperation(deleteOp); } |