summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp')
-rw-r--r--Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp
index 960254c..5654c06 100644
--- a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp
+++ b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp
@@ -34,7 +34,7 @@ namespace Swift {
scene->setSceneRect(0, 0, 400, 400);
//BspTreeIndex is buggy, there are problems after removing items
//from scene
- scene->setItemIndexMethod(QGraphicsScene::NoIndex);
+ //scene->setItemIndexMethod(QGraphicsScene::NoIndex);
graphicsView = new GView(scene, this);
graphicsView->setMode(GView::Line);
@@ -147,6 +147,9 @@ namespace Swift {
if (updateOp) {
WhiteboardElementDrawingVisitor visitor(graphicsView, operation->getPos(), GView::Update);
updateOp->getElement()->accept(visitor);
+ if (updateOp->getPos() != updateOp->getNewPos()) {
+ graphicsView->move(graphicsView->getItem(P2QSTRING(updateOp->getElement()->getID())), updateOp->getNewPos());
+ }
}
WhiteboardDeleteOperation::ref deleteOp = boost::dynamic_pointer_cast<WhiteboardDeleteOperation>(operation);
@@ -343,7 +346,6 @@ namespace Swift {
if (type == GView::New) {
WhiteboardInsertOperation::ref insertOp = boost::make_shared<WhiteboardInsertOperation>();
-// insertOp->setID(el->getID());
insertOp->setID(Q2PSTRING(graphicsView->getNewID()));
insertOp->setPos(pos);
insertOp->setElement(el);
@@ -352,9 +354,15 @@ namespace Swift {
whiteboardSession_->sendOperation(insertOp);
} else {
WhiteboardUpdateOperation::ref updateOp = boost::make_shared<WhiteboardUpdateOperation>();
-// updateOp->setID(el->getID());
updateOp->setID(Q2PSTRING(graphicsView->getNewID()));
updateOp->setPos(pos);
+ if (type == GView::Update) {
+ updateOp->setNewPos(pos);
+ } else if (type == GView::MoveUp) {
+ updateOp->setNewPos(pos+1);
+ } else if (type == GView::MoveDown) {
+ updateOp->setNewPos(pos-1);
+ }
updateOp->setElement(el);
updateOp->setParentID(lastOpID);
lastOpID = updateOp->getID();