diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 33a5a091..c616ae66 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -29,6 +29,7 @@ #include "domain/UBGraphicsTextItem.h" #include "domain/UBAbstractWidget.h" #include "domain/UBGraphicsStroke.h" +#include "domain/UBGraphicsStrokesGroup.h" #include "domain/UBItem.h" #include "tools/UBGraphicsRuler.h" @@ -42,6 +43,7 @@ #include "board/UBBoardView.h" #include "board/UBBoardController.h" +#include "board/UBDrawingController.h" #include "frameworks/UBFileSystemUtils.h" #include "frameworks/UBStringUtils.h" @@ -311,6 +313,8 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mFileVersion = 40100; // default to 4.1.0 UBGraphicsStroke* annotationGroup = 0; + UBGraphicsStrokesGroup* strokesGroup = 0; + UBDrawingController* dc = UBDrawingController::drawingController(); while (!mXmlReader.atEnd()) { @@ -433,6 +437,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else annotationGroup = new UBGraphicsStroke(); + if(eDrawingMode_Vector == dc->drawingMode()){ + strokesGroup = new UBGraphicsStrokesGroup(); + } + QStringRef ubZValue = mXmlReader.attributes().value(mNamespaceUri, "z-value"); if (!ubZValue.isNull()) @@ -475,7 +483,13 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() polygonItem->setStroke(annotationGroup); } - scene->addItem(polygonItem); + if(eDrawingMode_Vector == dc->drawingMode()){ + if(strokesGroup){ + strokesGroup->addToGroup(polygonItem); + } + }else{ + scene->addItem(polygonItem); + } polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); @@ -494,7 +508,13 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() polygonItem->setStroke(annotationGroup); } - scene->addItem(polygonItem); + if(eDrawingMode_Vector == dc->drawingMode()){ + if(strokesGroup){ + strokesGroup->addToGroup(polygonItem); + } + }else{ + scene->addItem(polygonItem); + } polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); polygonItem->show(); @@ -816,6 +836,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() { if (mXmlReader.name() == "g") { + if(strokesGroup && scene){ + scene->addItem(strokesGroup); + } + if (annotationGroup) { if (!annotationGroup->polygons().empty()) @@ -931,7 +955,6 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene() { QGraphicsItem *item = items.takeFirst(); - UBGraphicsPolygonItem *polygonItem = qgraphicsitem_cast (item); if (polygonItem && polygonItem->isVisible()) diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index 59efb4e5..8c3b6b1e 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -621,7 +621,6 @@ void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, mSceneCache.insert(pDocumentProxy, pSceneIndex, pScene); emit documentCommitted(pDocumentProxy); - }