diff --git a/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp b/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp index 9a029ec25..bbb1cbbc5 100644 --- a/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp +++ b/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp @@ -687,7 +687,7 @@ void Scribus150Format::writeBookmarks(ScXmlStreamWriter & docu) docu.writeAttribute("Text", itbm->Text); docu.writeAttribute("Aktion", itbm->Aktion); docu.writeAttribute("ItemNr", itbm->ItemNr); - docu.writeAttribute("Element", qHash(itbm->PageObject) & 0x7FFFFFFF); + docu.writeAttribute("Element", qHash(itbm->PageObject->itemName()) & 0x7FFFFFFF); docu.writeAttribute("First", itbm->First); docu.writeAttribute("Last", itbm->Last); docu.writeAttribute("Prev", itbm->Prev); @@ -1466,7 +1466,7 @@ void Scribus150Format::writeMarks(ScXmlStreamWriter & docu) { const PageItem* item = mrk->getItemPtr(); assert(item != nullptr); - docu.writeAttribute("ItemID", qHash(item) & 0x7FFFFFFF); + docu.writeAttribute("ItemID", qHash(item->itemName()) & 0x7FFFFFFF); //docu.writeAttribute("itemName", item->itemName()); } else if (mrk->isType(MARKVariableTextType) && mrk->hasString()) @@ -1595,18 +1595,18 @@ void Scribus150Format::writeNotesFrames(ScXmlStreamWriter & docu, const QListname()); docu.writeAttribute("range", (int) noteStyle->range()); - docu.writeAttribute("myID", qHash(noteFrame) & 0x7FFFFFFF); + docu.writeAttribute("myID", qHash(noteFrame->itemName()) & 0x7FFFFFFF); rangeItem rI = m_Doc->m_docEndNotesFramesMap.value(noteFrame); if (noteStyle->range() == NSRstory) - docu.writeAttribute("ItemID", qHash(rI.firstStoryFrame) & 0x7FFFFFFF); + docu.writeAttribute("ItemID", qHash(rI.firstStoryFrame->itemName()) & 0x7FFFFFFF); } else //footnotes frame { docu.writeEmptyElement("FOOTNOTEFRAME"); docu.writeAttribute("NSname", noteStyle->name()); - docu.writeAttribute("myID", qHash(noteFrame) & 0x7FFFFFFF); - docu.writeAttribute("MasterID", qHash(noteFrame->masterFrame()) & 0x7FFFFFFF); + docu.writeAttribute("myID", qHash(noteFrame->itemName()) & 0x7FFFFFFF); + docu.writeAttribute("MasterID", qHash(noteFrame->masterFrame()->itemName()) & 0x7FFFFFFF); } } docu.writeEndElement(); @@ -2180,7 +2180,7 @@ void Scribus150Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co if (item->isTextFrame() || item->isPathText() || item->isImageFrame()) { if (item->nextInChain() != nullptr) - docu.writeAttribute("NEXTITEM", qHash(item->nextInChain()) & 0x7FFFFFFF); + docu.writeAttribute("NEXTITEM", qHash(item->nextInChain()->itemName()) & 0x7FFFFFFF); else docu.writeAttribute("NEXTITEM", -1); @@ -2194,7 +2194,7 @@ void Scribus150Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co } if (item->prevInChain() != nullptr && prevTopParentCheck) - docu.writeAttribute("BACKITEM", qHash(item->prevInChain()) & 0x7FFFFFFF); + docu.writeAttribute("BACKITEM", qHash(item->prevInChain()->itemName()) & 0x7FFFFFFF); else { docu.writeAttribute("BACKITEM", -1); @@ -2220,7 +2220,7 @@ void Scribus150Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co if (pIt->isAutoNoteFrame()) continue; docu.writeEmptyElement("WeldEntry"); - docu.writeAttribute("Target", qHash(wInf.weldItem) & 0x7FFFFFFF); + docu.writeAttribute("Target", qHash(wInf.weldItem->itemName()) & 0x7FFFFFFF); docu.writeAttribute("WX", wInf.weldPoint.x()); docu.writeAttribute("WY", wInf.weldPoint.y()); } @@ -2649,7 +2649,7 @@ void Scribus150Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co void Scribus150Format::SetItemProps(ScXmlStreamWriter& docu, PageItem* item, const QString& baseDir) { docu.writeAttribute("OwnPage", item->OwnPage); - docu.writeAttribute("ItemID", qHash(item) & 0x7FFFFFFF); + docu.writeAttribute("ItemID", qHash(item->itemName()) & 0x7FFFFFFF); docu.writeAttribute("PTYPE", item->realItemType()); docu.writeAttribute("WIDTH", item->width()); docu.writeAttribute("HEIGHT", item->height()); @@ -2706,7 +2706,7 @@ void Scribus150Format::SetItemProps(ScXmlStreamWriter& docu, PageItem* item, con if (isWelded) { docu.writeAttribute("isWeldItem", 1); - docu.writeAttribute("WeldSource", qHash(item) & 0x7FFFFFFF); + docu.writeAttribute("WeldSource", qHash(item->itemName()) & 0x7FFFFFFF); } } if (item->isRegularPolygon()) diff --git a/scribus/plugins/fileloader/scribus170format/scribus170format_save.cpp b/scribus/plugins/fileloader/scribus170format/scribus170format_save.cpp index 3368812b6..2d997be39 100644 --- a/scribus/plugins/fileloader/scribus170format/scribus170format_save.cpp +++ b/scribus/plugins/fileloader/scribus170format/scribus170format_save.cpp @@ -688,7 +688,7 @@ void Scribus170Format::writeBookmarks(ScXmlStreamWriter & docu) docu.writeAttribute("Text", itbm->Text); docu.writeAttribute("Aktion", itbm->Aktion); docu.writeAttribute("ItemNr", itbm->ItemNr); - docu.writeAttribute("Element", qHash(itbm->PageObject) & 0x7FFFFFFF); + docu.writeAttribute("Element", qHash(itbm->PageObject->itemName()) & 0x7FFFFFFF); docu.writeAttribute("First", itbm->First); docu.writeAttribute("Last", itbm->Last); docu.writeAttribute("Prev", itbm->Prev); @@ -1515,7 +1515,7 @@ void Scribus170Format::writeMarks(ScXmlStreamWriter & docu) { const PageItem* item = mrk->getItemPtr(); assert(item != nullptr); - docu.writeAttribute("ItemID", qHash(item) & 0x7FFFFFFF); + docu.writeAttribute("ItemID", qHash(item->itemName()) & 0x7FFFFFFF); //docu.writeAttribute("itemName", item->itemName()); } else if ((mrk->isType(MARKVariableTextType) || mrk->isType(MARKIndexType)) && mrk->hasString()) @@ -1644,18 +1644,18 @@ void Scribus170Format::writeNotesFrames(ScXmlStreamWriter & docu, const QListname()); docu.writeAttribute("range", (int) noteStyle->range()); - docu.writeAttribute("myID", qHash(noteFrame) & 0x7FFFFFFF); + docu.writeAttribute("myID", qHash(noteFrame->itemName()) & 0x7FFFFFFF); rangeItem rI = m_Doc->m_docEndNotesFramesMap.value(noteFrame); if (noteStyle->range() == NSRstory) - docu.writeAttribute("ItemID", qHash(rI.firstStoryFrame) & 0x7FFFFFFF); + docu.writeAttribute("ItemID", qHash(rI.firstStoryFrame->itemName()) & 0x7FFFFFFF); } else //footnotes frame { docu.writeEmptyElement("FOOTNOTEFRAME"); docu.writeAttribute("NSname", noteStyle->name()); - docu.writeAttribute("myID", qHash(noteFrame) & 0x7FFFFFFF); - docu.writeAttribute("MasterID", qHash(noteFrame->masterFrame()) & 0x7FFFFFFF); + docu.writeAttribute("myID", qHash(noteFrame->itemName()) & 0x7FFFFFFF); + docu.writeAttribute("MasterID", qHash(noteFrame->masterFrame()->itemName()) & 0x7FFFFFFF); } } docu.writeEndElement(); @@ -2229,7 +2229,7 @@ void Scribus170Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co if (item->isTextFrame() || item->isPathText() || item->isImageFrame()) { if (item->nextInChain() != nullptr) - docu.writeAttribute("NEXTITEM", qHash(item->nextInChain()) & 0x7FFFFFFF); + docu.writeAttribute("NEXTITEM", qHash(item->nextInChain()->itemName()) & 0x7FFFFFFF); else docu.writeAttribute("NEXTITEM", -1); @@ -2243,7 +2243,7 @@ void Scribus170Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co } if (item->prevInChain() != nullptr && prevTopParentCheck) - docu.writeAttribute("BACKITEM", qHash(item->prevInChain()) & 0x7FFFFFFF); + docu.writeAttribute("BACKITEM", qHash(item->prevInChain()->itemName()) & 0x7FFFFFFF); else { docu.writeAttribute("BACKITEM", -1); @@ -2269,7 +2269,7 @@ void Scribus170Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co if (pIt->isAutoNoteFrame()) continue; docu.writeEmptyElement("WeldEntry"); - docu.writeAttribute("Target", qHash(wInf.weldItem) & 0x7FFFFFFF); + docu.writeAttribute("Target", qHash(wInf.weldItem->itemName()) & 0x7FFFFFFF); docu.writeAttribute("WX", wInf.weldPoint.x()); docu.writeAttribute("WY", wInf.weldPoint.y()); } @@ -2698,7 +2698,7 @@ void Scribus170Format::WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, co void Scribus170Format::SetItemProps(ScXmlStreamWriter& docu, PageItem* item, const QString& baseDir) { docu.writeAttribute("OwnPage", item->OwnPage); - docu.writeAttribute("ItemID", qHash(item) & 0x7FFFFFFF); + docu.writeAttribute("ItemID", qHash(item->itemName()) & 0x7FFFFFFF); docu.writeAttribute("PTYPE", item->realItemType()); docu.writeAttribute("WIDTH", item->width()); docu.writeAttribute("HEIGHT", item->height()); @@ -2755,7 +2755,7 @@ void Scribus170Format::SetItemProps(ScXmlStreamWriter& docu, PageItem* item, con if (isWelded) { docu.writeAttribute("isWeldItem", 1); - docu.writeAttribute("WeldSource", qHash(item) & 0x7FFFFFFF); + docu.writeAttribute("WeldSource", qHash(item->itemName()) & 0x7FFFFFFF); } } if (item->isRegularPolygon())