summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp')
-rw-r--r--Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp17
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();
}