diff options
Diffstat (limited to 'Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp')
-rw-r--r-- | Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp index add9802..6df68f3 100644 --- a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp +++ b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp @@ -17,6 +17,7 @@ #include <Swiften/Whiteboard/Elements/WhiteboardRectElement.h> #include <Swiften/Whiteboard/Operations/WhiteboardInsertOperation.h> #include <Swiften/Whiteboard/Operations/WhiteboardUpdateOperation.h> +#include <Swiften/Whiteboard/Operations/WhiteboardDeleteOperation.h> #include <Swift/QtUI/Whiteboard/WhiteboardElementDrawingVisitor.h> #include <QMessageBox> @@ -38,6 +39,7 @@ namespace Swift { graphicsView = new GView(scene, this); graphicsView->setMode(GView::Line); connect(graphicsView, SIGNAL(lastItemChanged(QGraphicsItem*, int, GView::Type)), this, SLOT(handleLastItemChanged(QGraphicsItem*, int, GView::Type))); + connect(graphicsView, SIGNAL(itemDeleted(QString, int)), this, SLOT(handleItemDeleted(QString, int))); widthBox = new QSpinBox(this); connect(widthBox, SIGNAL(valueChanged(int)), this, SLOT(changeLineWidth(int))); @@ -147,6 +149,12 @@ namespace Swift { 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(); + } } void QtWhiteboardWindow::changeLineWidth(int i) @@ -357,6 +365,15 @@ namespace Swift { } } + void QtWhiteboardWindow::handleItemDeleted(QString id, int pos) { + WhiteboardDeleteOperation::ref deleteOp = boost::make_shared<WhiteboardDeleteOperation>(); + deleteOp->setID(Q2PSTRING(id)); + deleteOp->setPos(pos); + deleteOp->setParentID(lastOpID); + lastOpID = Q2PSTRING(id); + whiteboardSession_->sendOperation(deleteOp); + } + void QtWhiteboardWindow::handleSessionTerminate() { hide(); } |