diff options
author | Mateusz Piekos <mateuszpiekos@gmail.com> | 2012-06-29 07:32:51 (GMT) |
---|---|---|
committer | Mateusz Piekos <mateuszpiekos@gmail.com> | 2012-06-29 07:33:48 (GMT) |
commit | a8f57139d663a176af87d7bc71dd85c62f6274cf (patch) | |
tree | e1c4def39b63d64e6f4ad7baefceae0f154789ce /Swift/QtUI/Whiteboard/GView.cpp | |
parent | dc04410eb678b8db257dc04b04662f974f6b3b83 (diff) | |
download | swift-contrib-a8f57139d663a176af87d7bc71dd85c62f6274cf.zip swift-contrib-a8f57139d663a176af87d7bc71dd85c62f6274cf.tar.bz2 |
Improved handling of IDs
Added ID parsing to every element and added function to get prefixes from
session to be able to distinguish elements between clients
Diffstat (limited to 'Swift/QtUI/Whiteboard/GView.cpp')
-rw-r--r-- | Swift/QtUI/Whiteboard/GView.cpp | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/Swift/QtUI/Whiteboard/GView.cpp b/Swift/QtUI/Whiteboard/GView.cpp index 588f369..fe0e5f9 100644 --- a/Swift/QtUI/Whiteboard/GView.cpp +++ b/Swift/QtUI/Whiteboard/GView.cpp @@ -55,6 +55,14 @@ namespace Swift { items_.insert(id, item); } + void GView::setIDPrefix(QString prefix) { + idPrefix = prefix; + } + + QString GView::getNewID() { + return idPrefix + P2QSTRING(idGenerator.generateID()); + } + void GView::mouseMoveEvent(QMouseEvent* event) { if (!mousePressed) { @@ -168,20 +176,20 @@ namespace Swift { if (mode == Line) { QPointF point = this->mapToScene(event->pos()); QGraphicsItem* item = scene()->addLine(point.x(), point.y(), point.x(), point.y(), pen); - QString id = P2QSTRING(idGenerator.generateID()); + QString id = getNewID(); items_.insert(id, item); item->setZValue(zValue++); - item->setData(0, id); + item->setData(100, id); lastItem = item; } else if (mode == Rect) { QPointF point = this->mapToScene(event->pos()); QGraphicsRectItem* item = scene()->addRect(point.x(), point.y(), 0, 0, pen, brush); - QString id = P2QSTRING(idGenerator.generateID()); + QString id = getNewID(); items_.insert(id, item); item->setZValue(zValue++); item->setData(0, point); - item->setData(1, id); + item->setData(100, id); lastItem = item; } else if (mode == Rubber) { @@ -199,22 +207,22 @@ namespace Swift { else if (mode == Circle) { QPointF point = this->mapToScene(event->pos()); QGraphicsEllipseItem* item = scene()->addEllipse(point.x(), point.y(), 0, 0, pen, brush); - QString id = P2QSTRING(idGenerator.generateID()); + QString id = getNewID(); items_.insert(id, item); item->setZValue(zValue++); item->setData(0, point); - item->setData(1, id); + item->setData(100, id); lastItem = item; } else if (mode == HandLine) { QPointF point = this->mapToScene(event->pos()); FreehandLineItem* item = new FreehandLineItem; - QString id = P2QSTRING(idGenerator.generateID()); + QString id = getNewID(); items_.insert(id, item); item->setPen(pen); item->setStartPoint(point); item->setZValue(zValue++); - item->setData(0, id); + item->setData(100, id); scene()->addItem(item); lastItem = item; } @@ -222,20 +230,20 @@ namespace Swift { QPointF point = this->mapToScene(event->pos()); QPainterPath path; QGraphicsPathItem* item = scene()->addPath(path, pen, brush); - QString id = P2QSTRING(idGenerator.generateID()); + QString id = getNewID(); items_.insert(id, item); item->setZValue(zValue++); item->setData(0, point); - item->setData(1, id); + item->setData(100, id); lastItem = item; } else if (mode == Text) { QPointF point = this->mapToScene(event->pos()); QGraphicsTextItem* item = scene()->addText(""); - QString id = P2QSTRING(idGenerator.generateID()); + QString id = getNewID(); items_.insert(id, item); item->setZValue(zValue++); - item->setData(0, id); + item->setData(100, id); item->setDefaultTextColor(pen.color()); textDialog = new TextDialog(item, this); connect(textDialog, SIGNAL(accepted(QGraphicsItem*)), this, SIGNAL(lastItemChanged(QGraphicsItem*))); @@ -252,10 +260,10 @@ namespace Swift { polygon.append(point); polygon.append(point); item = scene()->addPolygon(polygon, pen, brush); - QString id = P2QSTRING(idGenerator.generateID()); + QString id = getNewID(); items_.insert(id, item); item->setZValue(zValue++); - item->setData(0, id); + item->setData(100, id); lastItem = item; } else { |