BoxItem *GroupScene::createBlockItem(AbstractBlock *block) {
- BoxItem* blockItem = new BoxItem(block,dispatcher,params,groupItem);
- blockItem->setZValue(1);
- addBlockItem(blockItem);
- return blockItem;
-}
-
-void GroupScene::addBlockItem(BoxItem* item) {
- // add item from the viewport
- //addItem(item);
+ BoxItem* item = new BoxItem(block,dispatcher,params,groupItem);
+ item->setZValue(1);
// add item from the QList
blockItems.append(item);
// repainting the group
// center the new block
QPointF newPos((groupItem->getWidth()-item->getTotalWidth())/2.0, (groupItem->getHeight()-item->getTotalHeight())/2.0);
newPos = newPos-item->getOriginPoint();
- item->moveTo(newPos);
+ item->moveTo(newPos);
+
+ return item;
+}
+
+void GroupScene::addBlockItem(BoxItem* item) {
+ // add item from the QList
+ blockItems.append(item);
+ // repainting the group
+ groupItem->updateShape();
}
void GroupScene::removeBlockItem(BoxItem* item) {
void GroupScene::save(QXmlStreamWriter &writer) {
writer.writeStartElement("scene");
writer.writeAttribute("id",QString::number(id));
+ if (parentScene == NULL) {
+ writer.writeAttribute("upper_scene",QString::number(-1));
+ }
+ else {
+ writer.writeAttribute("upper_scene",QString::number(parentScene->getId()));
+ }
groupItem->save(writer);
writer.writeStartElement("block_items");