summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Piekos <mateuszpiekos@gmail.com>2012-07-26 15:46:45 (GMT)
committerMateusz Piekos <mateuszpiekos@gmail.com>2012-07-26 15:46:45 (GMT)
commit2e9ba0fb5a68abd8fa44d9996ea321a77876af14 (patch)
tree23a1bdf024045ad619af906bf2438dd05fa3c8fe /Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp
parent833e544490a0e3ff5eeebe44fae2b9a8f98d4a78 (diff)
downloadswift-contrib-2e9ba0fb5a68abd8fa44d9996ea321a77876af14.zip
swift-contrib-2e9ba0fb5a68abd8fa44d9996ea321a77876af14.tar.bz2
Improved handling of operations IDs and transformations
Diffstat (limited to 'Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp')
-rw-r--r--Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp23
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);
}