summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Piekos <mateuszpiekos@gmail.com>2012-06-29 07:32:51 (GMT)
committerMateusz Piekos <mateuszpiekos@gmail.com>2012-06-29 07:33:48 (GMT)
commita8f57139d663a176af87d7bc71dd85c62f6274cf (patch)
treee1c4def39b63d64e6f4ad7baefceae0f154789ce /Swift/QtUI/Whiteboard/GView.cpp
parentdc04410eb678b8db257dc04b04662f974f6b3b83 (diff)
downloadswift-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.cpp36
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 {