summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Piekos <mateuszpiekos@gmail.com>2012-07-17 14:36:22 (GMT)
committerMateusz Piekos <mateuszpiekos@gmail.com>2012-07-17 14:36:22 (GMT)
commit7a14385acccd599438a274d421735a7d0c4bc9fa (patch)
treecfdb97325d00cd552fa03d80cc882aebaf3b5424 /Swift/QtUI/Whiteboard/GView.cpp
parent1f8e319e256ac15438d63080d11a860dfa16431c (diff)
downloadswift-contrib-7a14385acccd599438a274d421735a7d0c4bc9fa.zip
swift-contrib-7a14385acccd599438a274d421735a7d0c4bc9fa.tar.bz2
Added handling of items deletions
Diffstat (limited to 'Swift/QtUI/Whiteboard/GView.cpp')
-rw-r--r--Swift/QtUI/Whiteboard/GView.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/Swift/QtUI/Whiteboard/GView.cpp b/Swift/QtUI/Whiteboard/GView.cpp
index 4e7e006..1e77b62 100644
--- a/Swift/QtUI/Whiteboard/GView.cpp
+++ b/Swift/QtUI/Whiteboard/GView.cpp
@@ -92,6 +92,14 @@ namespace Swift {
return itemsMap_.value(id);
}
+ void GView::deleteItem(QString id) {
+ QGraphicsItem* item = itemsMap_.value(id);
+ items_.removeOne(item);
+ itemsMap_.remove(id);
+ scene()->removeItem(item);
+ delete item;
+ }
+
QString GView::getNewID() {
return idPrefix + P2QSTRING(idGenerator.generateID());
}
@@ -237,8 +245,17 @@ namespace Swift {
if (!list.isEmpty())
{
QGraphicsItem* item = scene()->items(rect).first();
- scene()->removeItem(item);
- delete item;
+ QString id = item->data(100).toString();
+ deleteItem(id);
+ int i = 1;
+ QList<QGraphicsItem*>::const_iterator it;
+ for (it = items_.begin(); it != items_.end(); ++it) {
+ if (*it == item) {
+ break;
+ }
+ i++;
+ }
+ itemDeleted(id, i);
}
}
else if (mode == Circle) {