summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/Whiteboard/GView.cpp')
-rw-r--r--Swift/QtUI/Whiteboard/GView.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/Swift/QtUI/Whiteboard/GView.cpp b/Swift/QtUI/Whiteboard/GView.cpp
index 478dee0..e904b32 100644
--- a/Swift/QtUI/Whiteboard/GView.cpp
+++ b/Swift/QtUI/Whiteboard/GView.cpp
@@ -45,6 +45,10 @@ namespace Swift {
lastItem = 0;
}
+ QGraphicsItem* GView::getItem(const QString id) const {
+ return items_.value(id);
+ }
+
void GView::mouseMoveEvent(QMouseEvent* event)
{
if (!mousePressed) {
@@ -144,17 +148,19 @@ namespace Swift {
QPointF point = this->mapToScene(event->pos());
QGraphicsItem* item = scene()->addLine(point.x(), point.y(), point.x(), point.y(), pen);
QString id = QString::fromStdString(idGenerator.generateID());
+ items_.insert(id, item);
item->setZValue(zValue++);
item->setData(0, id);
- items_.insert(id, item);
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 = QString::fromStdString(idGenerator.generateID());
+ items_.insert(id, item);
item->setZValue(zValue++);
item->setData(0, point);
+ item->setData(1, id);
lastItem = item;
}
else if (mode == Rubber) {
@@ -172,16 +178,22 @@ namespace Swift {
else if (mode == Circle) {
QPointF point = this->mapToScene(event->pos());
QGraphicsPathItem* item = scene()->addPath(QPainterPath(), pen, brush);
+ QString id = QString::fromStdString(idGenerator.generateID());
+ items_.insert(id, item);
item->setZValue(zValue++);
item->setData(0, point);
+ item->setData(1, id);
lastItem = item;
}
else if (mode == HandLine) {
QPointF point = this->mapToScene(event->pos());
FreehandLineItem* item = new FreehandLineItem;
+ QString id = QString::fromStdString(idGenerator.generateID());
+ items_.insert(id, item);
item->setPen(pen);
item->setStartPoint(point);
item->setZValue(zValue++);
+ item->setData(0, id);
scene()->addItem(item);
lastItem = item;
}
@@ -189,19 +201,26 @@ namespace Swift {
QPointF point = this->mapToScene(event->pos());
QPainterPath path;
QGraphicsPathItem* item = scene()->addPath(path, pen, brush);
+ QString id = QString::fromStdString(idGenerator.generateID());
+ items_.insert(id, item);
item->setZValue(zValue++);
item->setData(0, point);
+ item->setData(1, id);
lastItem = item;
}
else if (mode == Text) {
QPointF point = this->mapToScene(event->pos());
QGraphicsTextItem* item = scene()->addText("");
+ QString id = QString::fromStdString(idGenerator.generateID());
+ items_.insert(id, item);
item->setZValue(zValue++);
+ item->setData(0, id);
item->setDefaultTextColor(pen.color());
textDialog = new TextDialog(item, this);
textDialog->setAttribute(Qt::WA_DeleteOnClose);
textDialog->show();
item->setPos(point);
+ lastItem = item;
}
else if (mode == Polygon) {
QPointF point = this->mapToScene(event->pos());
@@ -211,7 +230,10 @@ namespace Swift {
polygon.append(point);
polygon.append(point);
item = scene()->addPolygon(polygon, pen, brush);
+ QString id = QString::fromStdString(idGenerator.generateID());
+ items_.insert(id, item);
item->setZValue(zValue++);
+ item->setData(0, id);
lastItem = item;
}
else {