diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index c8ca813f..e021ffde 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -596,13 +596,25 @@ void UBPersistenceManager::duplicateDocumentScene(UBDocumentProxy* proxy, int in UBGraphicsPixmapItem* pixmapItem = qgraphicsitem_cast(item); if(pixmapItem){ - pixmapItem->setUuid(QUuid::createUuid()); + QString source = proxy->persistencePath() + "/" + UBPersistenceManager::imageDirectory + "/" + pixmapItem->uuid() + ".png"; + QString destination = source; + QUuid newUuid = QUuid::createUuid(); + QString fileName = QFileInfo(source).completeBaseName(); + destination = destination.replace(fileName,newUuid.toString()); + Q_ASSERT(QFile::copy(source,destination)); + pixmapItem->setUuid(newUuid); continue; } UBGraphicsSvgItem* svgItem = qgraphicsitem_cast(item); if(svgItem){ - svgItem->setUuid(QUuid::createUuid()); + QString source = proxy->persistencePath() + "/" + UBPersistenceManager::imageDirectory + "/" + svgItem->uuid() + ".svg"; + QString destination = source; + QUuid newUuid = QUuid::createUuid(); + QString fileName = QFileInfo(source).completeBaseName(); + destination = destination.replace(fileName,newUuid.toString()); + Q_ASSERT(QFile::copy(source,destination)); + svgItem->setUuid(newUuid); continue; }