Subversion Repositories Scribus

Compare Revisions

Ignore whitespace Rev 22726 → Rev 22727

/trunk/Scribus/scribus/plugins/import/xps/importxps.cpp
441,7 → 441,7
bool parsed = false;
QString DocumentReference = "";
QDomElement docElem = designMapDom.documentElement();
for(QDomNode drawPag = docElem.firstChild(); !drawPag.isNull(); drawPag = drawPag.nextSibling())
for (QDomNode drawPag = docElem.firstChild(); !drawPag.isNull(); drawPag = drawPag.nextSibling())
{
QDomElement dpg = drawPag.toElement();
if (dpg.tagName() == "DocumentReference")
572,120 → 572,119
QByteArray f;
QFileInfo fi(designMap);
QString path = fi.path();
if (uz->read(designMap, f))
if (!uz->read(designMap, f))
return;
 
QDomDocument designMapDom;
if (!designMapDom.setContent(f))
return;
 
QDomElement docElem = designMapDom.documentElement();
docWidth = docElem.attribute("Width", QString("%1").arg(PrefsManager::instance()->appPrefs.docSetupPrefs.pageWidth)).toDouble() * conversionFactor;
docHeight = docElem.attribute("Height", QString("%1").arg(PrefsManager::instance()->appPrefs.docSetupPrefs.pageHeight)).toDouble() * conversionFactor;
if (importerFlags & LoadSavePlugin::lfCreateDoc)
{
QDomDocument designMapDom;
if (designMapDom.setContent(f))
if (firstPage)
{
QDomElement docElem = designMapDom.documentElement();
docWidth = docElem.attribute("Width", QString("%1").arg(PrefsManager::instance()->appPrefs.docSetupPrefs.pageWidth)).toDouble() * conversionFactor;
docHeight = docElem.attribute("Height", QString("%1").arg(PrefsManager::instance()->appPrefs.docSetupPrefs.pageHeight)).toDouble() * conversionFactor;
if (importerFlags & LoadSavePlugin::lfCreateDoc)
topMargin = m_Doc->marginsVal().top();
leftMargin = m_Doc->marginsVal().left();
rightMargin = m_Doc->marginsVal().right();
bottomMargin = m_Doc->marginsVal().bottom();
double pgCols = m_Doc->PageSp;
double pgGap = m_Doc->PageSpa;
m_Doc->setPage(docWidth, docHeight, topMargin, leftMargin, rightMargin, bottomMargin, pgCols, pgGap, false, false);
m_Doc->setPageSize("Custom");
m_Doc->currentPage()->m_pageSize = "Custom";
m_Doc->currentPage()->setInitialHeight(docHeight);
m_Doc->currentPage()->setInitialWidth(docWidth);
m_Doc->currentPage()->setHeight(docHeight);
m_Doc->currentPage()->setWidth(docWidth);
m_Doc->currentPage()->initialMargins.setTop(topMargin);
m_Doc->currentPage()->initialMargins.setBottom(bottomMargin);
m_Doc->currentPage()->initialMargins.setLeft(leftMargin);
m_Doc->currentPage()->initialMargins.setRight(rightMargin);
m_Doc->reformPages(true);
}
else
{
m_Doc->addPage(pagecount);
m_Doc->currentPage()->m_pageSize = "Custom";
m_Doc->currentPage()->setInitialHeight(docHeight);
m_Doc->currentPage()->setInitialWidth(docWidth);
m_Doc->currentPage()->setHeight(docHeight);
m_Doc->currentPage()->setWidth(docWidth);
m_Doc->currentPage()->initialMargins.setTop(topMargin);
m_Doc->currentPage()->initialMargins.setBottom(bottomMargin);
m_Doc->currentPage()->initialMargins.setLeft(leftMargin);
m_Doc->currentPage()->initialMargins.setRight(rightMargin);
m_Doc->currentPage()->MPageNam = CommonStrings::trMasterPageNormal;
m_Doc->view()->addPage(pagecount, true);
pagecount++;
}
}
firstPage = false;
baseX = m_Doc->currentPage()->xOffset();
baseY = m_Doc->currentPage()->yOffset();
for (QDomNode drawPag = docElem.firstChild(); !drawPag.isNull(); drawPag = drawPag.nextSibling())
{
QDomElement dpg = drawPag.toElement();
if ((dpg.tagName() == "Path") || (dpg.tagName() == "Glyphs") || (dpg.tagName() == "Canvas"))
{
PageItem* item = parseObjectXML(dpg, path);
if (item != nullptr)
{
if (firstPage)
{
topMargin = m_Doc->marginsVal().top();
leftMargin = m_Doc->marginsVal().left();
rightMargin = m_Doc->marginsVal().right();
bottomMargin = m_Doc->marginsVal().bottom();
double pgCols = m_Doc->PageSp;
double pgGap = m_Doc->PageSpa;
m_Doc->setPage(docWidth, docHeight, topMargin, leftMargin, rightMargin, bottomMargin, pgCols, pgGap, false, false);
m_Doc->setPageSize("Custom");
m_Doc->currentPage()->m_pageSize = "Custom";
m_Doc->currentPage()->setInitialHeight(docHeight);
m_Doc->currentPage()->setInitialWidth(docWidth);
m_Doc->currentPage()->setHeight(docHeight);
m_Doc->currentPage()->setWidth(docWidth);
m_Doc->currentPage()->initialMargins.setTop(topMargin);
m_Doc->currentPage()->initialMargins.setBottom(bottomMargin);
m_Doc->currentPage()->initialMargins.setLeft(leftMargin);
m_Doc->currentPage()->initialMargins.setRight(rightMargin);
m_Doc->reformPages(true);
}
else
{
m_Doc->addPage(pagecount);
m_Doc->currentPage()->m_pageSize = "Custom";
m_Doc->currentPage()->setInitialHeight(docHeight);
m_Doc->currentPage()->setInitialWidth(docWidth);
m_Doc->currentPage()->setHeight(docHeight);
m_Doc->currentPage()->setWidth(docWidth);
m_Doc->currentPage()->initialMargins.setTop(topMargin);
m_Doc->currentPage()->initialMargins.setBottom(bottomMargin);
m_Doc->currentPage()->initialMargins.setLeft(leftMargin);
m_Doc->currentPage()->initialMargins.setRight(rightMargin);
m_Doc->currentPage()->MPageNam = CommonStrings::trMasterPageNormal;
m_Doc->view()->addPage(pagecount, true);
pagecount++;
}
m_Doc->Items->append(item);
Elements.append(item);
}
firstPage = false;
baseX = m_Doc->currentPage()->xOffset();
baseY = m_Doc->currentPage()->yOffset();
for (QDomNode drawPag = docElem.firstChild(); !drawPag.isNull(); drawPag = drawPag.nextSibling())
}
else if (dpg.tagName() == "FixedPage.Resources")
{
for (QDomNode sp = dpg.firstChild(); !sp.isNull(); sp = sp.nextSibling())
{
QDomElement dpg = drawPag.toElement();
if ((dpg.tagName() == "Path") || (dpg.tagName() == "Glyphs") || (dpg.tagName() == "Canvas"))
QDomElement spe = sp.toElement();
if (spe.tagName() != "ResourceDictionary")
continue;
if (spe.hasAttribute("Source"))
{
PageItem* item = parseObjectXML(dpg, path);
if (item != nullptr)
QString resFile = spe.attribute("Source", "");
if (resFile.startsWith("/"))
{
m_Doc->Items->append(item);
Elements.append(item);
resFile = resFile.mid(1);
parseResourceFile(resFile);
}
else
{
if (!resFile.startsWith(path))
{
resFile = path + "/" + resFile;
resFile = QDir::cleanPath(resFile);
}
parseResourceFile(resFile);
}
}
else if (dpg.tagName() == "FixedPage.Resources")
else if (spe.hasChildNodes())
{
for (QDomNode sp = dpg.firstChild(); !sp.isNull(); sp = sp.nextSibling())
for (QDomElement dpgp = spe.firstChildElement(); !dpgp.isNull(); dpgp = dpgp.nextSiblingElement())
{
QDomElement spe = sp.toElement();
if (spe.tagName() == "ResourceDictionary")
if (dpgp.tagName() == "PathGeometry")
{
if (spe.hasAttribute("Source"))
Coords.resize(0);
Coords.svgInit();
QString pdata = "";
QString key = dpg.attribute("x:Key");
if (dpg.hasAttribute("Figures"))
pdata = dpg.attribute("Figures");
else if (dpg.hasChildNodes())
pdata = parsePathGeometryXML(dpg);
if (!pdata.isEmpty())
{
QString resFile = spe.attribute("Source", "");
if (resFile.startsWith("/"))
{
resFile = resFile.mid(1);
parseResourceFile(resFile);
}
else
{
if (!resFile.startsWith(path))
{
resFile = path + "/" + resFile;
resFile = QDir::cleanPath(resFile);
}
parseResourceFile(resFile);
}
bool currentPathClosed = Coords.parseSVG(pdata);
Coords.scale(conversionFactor, conversionFactor);
QPainterPath path = Coords.toQPainterPath(!currentPathClosed);
if (dpg.attribute("FillRule") == "NonZero")
path.setFillRule(Qt::WindingFill);
pathResources.insert(key, path);
}
else if (spe.hasChildNodes())
{
for (QDomElement dpgp = spe.firstChildElement(); !dpgp.isNull(); dpgp = dpgp.nextSiblingElement())
{
if (dpgp.tagName() == "PathGeometry")
{
Coords.resize(0);
Coords.svgInit();
QString pdata = "";
QString key = dpg.attribute("x:Key");
if (dpg.hasAttribute("Figures"))
pdata = dpg.attribute("Figures");
else if (dpg.hasChildNodes())
pdata = parsePathGeometryXML(dpg);
if (!pdata.isEmpty())
{
bool currentPathClosed = Coords.parseSVG(pdata);
Coords.scale(conversionFactor, conversionFactor);
QPainterPath path = Coords.toQPainterPath(!currentPathClosed);
if (dpg.attribute("FillRule") == "NonZero")
path.setFillRule(Qt::WindingFill);
pathResources.insert(key, path);
}
}
}
}
}
}
}
1457,45 → 1456,41
double vh = (Viewport_y2 * conversionFactor) / (Viewbox_y2 - Viewbox_y1);
for (QDomElement grs = eog.firstChildElement(); !grs.isNull(); grs = grs.nextSiblingElement())
{
if (grs.tagName() == "VisualBrush.Visual")
if (grs.tagName() != "VisualBrush.Visual")
continue;
for (QDomElement eo = grs.firstChildElement(); !eo.isNull(); eo = eo.nextSiblingElement())
{
for (QDomElement eo = grs.firstChildElement(); !eo.isNull(); eo = eo.nextSiblingElement())
{
if ((eo.tagName() == "Path") || (eo.tagName() == "Glyphs") || (eo.tagName() == "Canvas"))
{
PageItem* item = parseObjectXML(eo, path);
if (item != nullptr)
{
m_Doc->sizeItem((item->width() / conversionFactor) * vw, (item->height() / conversionFactor) * vh, item, false, true, false);
ScPattern pat = ScPattern();
pat.setDoc(m_Doc);
m_Doc->DoDrawing = true;
QImage tmpImg = item->DrawObj_toImage(qMin(qMax(item->width(), item->height()), 500.0));
if (!tmpImg.isNull())
{
QImage retImg = QImage(qRound(Viewport_x2 * conversionFactor), qRound(Viewport_y2 * conversionFactor), QImage::Format_ARGB32_Premultiplied);
retImg.fill( qRgba(0, 0, 0, 0) );
QPainter p;
p.begin(&retImg);
p.drawImage(0, 0, tmpImg);
p.end();
pat.pattern = retImg;
pat.xoffset = 0;
pat.yoffset = 0;
m_Doc->DoDrawing = false;
pat.width = Viewport_x2 * conversionFactor;
pat.height = Viewport_y2 * conversionFactor;
item->gXpos = 0;
item->gYpos = 0;
item->setXYPos(item->gXpos, item->gYpos, true);
pat.items.append(item);
obState.patternName = QString("Pattern_from_XPS_%1").arg(m_Doc->docPatterns.count() + 1);
m_Doc->addPattern(obState.patternName, pat);
importedPatterns.append(obState.patternName);
}
}
}
}
if ((eo.tagName() != "Path") && (eo.tagName() != "Glyphs") && (eo.tagName() != "Canvas"))
continue;
PageItem* item = parseObjectXML(eo, path);
if (!item)
continue;
m_Doc->sizeItem((item->width() / conversionFactor) * vw, (item->height() / conversionFactor) * vh, item, false, true, false);
ScPattern pat = ScPattern();
pat.setDoc(m_Doc);
m_Doc->DoDrawing = true;
QImage tmpImg = item->DrawObj_toImage(qMin(qMax(item->width(), item->height()), 500.0));
if (tmpImg.isNull())
continue;
QImage retImg = QImage(qRound(Viewport_x2 * conversionFactor), qRound(Viewport_y2 * conversionFactor), QImage::Format_ARGB32_Premultiplied);
retImg.fill( qRgba(0, 0, 0, 0) );
QPainter p;
p.begin(&retImg);
p.drawImage(0, 0, tmpImg);
p.end();
pat.pattern = retImg;
pat.xoffset = 0;
pat.yoffset = 0;
m_Doc->DoDrawing = false;
pat.width = Viewport_x2 * conversionFactor;
pat.height = Viewport_y2 * conversionFactor;
item->gXpos = 0;
item->gYpos = 0;
item->setXYPos(item->gXpos, item->gYpos, true);
pat.items.append(item);
obState.patternName = QString("Pattern_from_XPS_%1").arg(m_Doc->docPatterns.count() + 1);
m_Doc->addPattern(obState.patternName, pat);
importedPatterns.append(obState.patternName);
}
}
}
1537,45 → 1532,45
QString svgString = "";
for (QDomElement dpg = spe.firstChildElement(); !dpg.isNull(); dpg = dpg.nextSiblingElement())
{
if (dpg.tagName() == "PathFigure")
if (dpg.tagName() != "PathFigure")
continue;
 
if (dpg.hasAttribute("StartPoint"))
svgString += "M " + dpg.attribute("StartPoint") + " ";
for (QDomElement dp = dpg.firstChildElement(); !dp.isNull(); dp = dp.nextSiblingElement())
{
if (dpg.hasAttribute("StartPoint"))
svgString += "M " + dpg.attribute("StartPoint") + " ";
for (QDomElement dp = dpg.firstChildElement(); !dp.isNull(); dp = dp.nextSiblingElement())
if (dp.tagName() == "PolyLineSegment")
svgString += "L " + dp.attribute("Points") + " ";
else if (dp.tagName() == "PolyQuadraticBezierSegment")
svgString += "Q " + dp.attribute("Points") + " ";
else if (dp.tagName() == "PolyBezierSegment")
svgString += "C " + dp.attribute("Points") + " ";
else if (dp.tagName() == "ArcSegment")
{
if (dp.tagName() == "PolyLineSegment")
svgString += "L " + dp.attribute("Points") + " ";
else if (dp.tagName() == "PolyQuadraticBezierSegment")
svgString += "Q " + dp.attribute("Points") + " ";
else if (dp.tagName() == "PolyBezierSegment")
svgString += "C " + dp.attribute("Points") + " ";
else if (dp.tagName() == "ArcSegment")
svgString += "A " + dp.attribute("Size") + " " + dp.attribute("RotationAngle") + " ";
if (dp.hasAttribute("IsLargeArc"))
{
svgString += "A " + dp.attribute("Size") + " " + dp.attribute("RotationAngle") + " ";
if (dp.hasAttribute("IsLargeArc"))
{
if (dp.attribute("IsLargeArc").toLower() == "true")
svgString += "1 ";
else
svgString += "0 ";
}
if (dp.attribute("IsLargeArc").toLower() == "true")
svgString += "1 ";
else
svgString += "0 ";
if (dp.hasAttribute("SweepDirection"))
{
if (dp.attribute("SweepDirection").toLower() == "counterclockwise")
svgString += "0 ";
else
svgString += "1 ";
}
}
else
svgString += "0 ";
if (dp.hasAttribute("SweepDirection"))
{
if (dp.attribute("SweepDirection").toLower() == "counterclockwise")
svgString += "0 ";
else
svgString += "0 ";
svgString += dp.attribute("Point") + " ";
svgString += "1 ";
}
else
svgString += "0 ";
svgString += dp.attribute("Point") + " ";
}
if (dpg.hasAttribute("IsClosed") && (dpg.attribute("IsClosed").toLower() == "true"))
svgString += "Z ";
}
if (dpg.hasAttribute("IsClosed") && (dpg.attribute("IsClosed").toLower() == "true"))
svgString += "Z ";
}
return svgString;
}
1583,36 → 1578,35
void XpsPlug::parseResourceFile(const QString& resFile)
{
QByteArray f;
if (uz->read(resFile, f))
if (!uz->read(resFile, f))
return;
 
QDomDocument designMapDom;
if (!designMapDom.setContent(f))
return;
 
QDomElement docElem = designMapDom.documentElement();
for (QDomNode drawPag = docElem.firstChild(); !drawPag.isNull(); drawPag = drawPag.nextSibling())
{
QDomDocument designMapDom;
if (designMapDom.setContent(f))
QDomElement dpg = drawPag.toElement();
if (dpg.tagName() != "PathGeometry")
continue;
Coords.resize(0);
Coords.svgInit();
QString pdata = "";
QString key = dpg.attribute("x:Key");
if (dpg.hasAttribute("Figures"))
pdata = dpg.attribute("Figures");
else if (dpg.hasChildNodes())
pdata = parsePathGeometryXML(dpg);
if (!pdata.isEmpty())
{
QDomElement docElem = designMapDom.documentElement();
for (QDomNode drawPag = docElem.firstChild(); !drawPag.isNull(); drawPag = drawPag.nextSibling())
{
QDomElement dpg = drawPag.toElement();
if (dpg.tagName() == "PathGeometry")
{
Coords.resize(0);
Coords.svgInit();
QString pdata = "";
QString key = dpg.attribute("x:Key");
if (dpg.hasAttribute("Figures"))
pdata = dpg.attribute("Figures");
else if (dpg.hasChildNodes())
pdata = parsePathGeometryXML(dpg);
if (!pdata.isEmpty())
{
bool currentPathClosed = Coords.parseSVG(pdata);
Coords.scale(conversionFactor, conversionFactor);
QPainterPath path = Coords.toQPainterPath(!currentPathClosed);
if (dpg.attribute("FillRule") == "NonZero")
path.setFillRule(Qt::WindingFill);
pathResources.insert(key, path);
}
}
}
bool currentPathClosed = Coords.parseSVG(pdata);
Coords.scale(conversionFactor, conversionFactor);
QPainterPath path = Coords.toQPainterPath(!currentPathClosed);
if (dpg.attribute("FillRule") == "NonZero")
path.setFillRule(Qt::WindingFill);
pathResources.insert(key, path);
}
}
}
1619,59 → 1613,60
 
void XpsPlug::resolveLinks()
{
if (!linkSources.isEmpty())
if (linkSources.isEmpty())
return;
 
for (auto it = linkSources.begin(); it != linkSources.end(); ++it)
{
for (auto it = linkSources.begin(); it != linkSources.end(); ++it)
{
PageItem* linkS = it.key();
QString target = it.value();
if (linkTargets.contains(target))
{
PageItem* linkT = linkTargets[target];
if (linkT != nullptr)
{
int op = linkT->OwnPage;
if (op > -1)
{
QTransform tf = linkT->getTransform();
double xp = tf.dx() - m_Doc->Pages->at(op)->xOffset();
double yp = tf.dy() - m_Doc->Pages->at(op)->yOffset();
linkS->annotation().setZiel(linkT->OwnPage);
linkS->annotation().setActionType(2);
linkS->annotation().setAction(QString("%0 %1").arg(qRound(xp)).arg(qRound(m_Doc->Pages->at(op)->height() - yp)));
}
}
}
}
PageItem* linkS = it.key();
QString target = it.value();
if (!linkTargets.contains(target))
continue;
 
PageItem* linkT = linkTargets[target];
if (!linkT)
continue;
 
int op = linkT->OwnPage;
if (op < 0)
continue;
 
QTransform tf = linkT->getTransform();
double xp = tf.dx() - m_Doc->Pages->at(op)->xOffset();
double yp = tf.dy() - m_Doc->Pages->at(op)->yOffset();
linkS->annotation().setZiel(linkT->OwnPage);
linkS->annotation().setActionType(2);
linkS->annotation().setAction(QString("%0 %1").arg(qRound(xp)).arg(qRound(m_Doc->Pages->at(op)->height() - yp)));
}
}
 
PageItem* XpsPlug::addClip(PageItem* retObj, ObjState &obState)
{
if (!obState.clipPath.isEmpty())
{
int z = m_Doc->itemAdd(PageItem::Group, PageItem::Rectangle, baseX, baseY, 10, 10, 0, CommonStrings::None, CommonStrings::None);
PageItem *itemg = m_Doc->Items->at(z);
itemg->PoLine.fromQPainterPath(obState.clipPath);
FPoint wh = getMaxClipF(&itemg->PoLine);
itemg->setWidthHeight(wh.x(),wh.y());
m_Doc->adjustItemSize(itemg, true);
itemg->ClipEdited = true;
itemg->FrameType = 3;
itemg->setFillEvenOdd(false);
itemg->OldB2 = itemg->width();
itemg->OldH2 = itemg->height();
itemg->updateClip();
itemg->OwnPage = m_Doc->OnPage(itemg);
itemg->ContourLine = itemg->PoLine.copy();
QList<PageItem*> GElements;
GElements.append(retObj);
m_Doc->groupObjectsToItem(itemg, GElements);
m_Doc->resizeGroupToContents(itemg);
m_Doc->GroupOnPage(itemg);
retObj = itemg;
m_Doc->Items->removeLast();
}
if (obState.clipPath.isEmpty())
return retObj;
 
int z = m_Doc->itemAdd(PageItem::Group, PageItem::Rectangle, baseX, baseY, 10, 10, 0, CommonStrings::None, CommonStrings::None);
PageItem *itemg = m_Doc->Items->at(z);
itemg->PoLine.fromQPainterPath(obState.clipPath);
FPoint wh = getMaxClipF(&itemg->PoLine);
itemg->setWidthHeight(wh.x(),wh.y());
m_Doc->adjustItemSize(itemg, true);
itemg->ClipEdited = true;
itemg->FrameType = 3;
itemg->setFillEvenOdd(false);
itemg->OldB2 = itemg->width();
itemg->OldH2 = itemg->height();
itemg->updateClip();
itemg->OwnPage = m_Doc->OnPage(itemg);
itemg->ContourLine = itemg->PoLine.copy();
QList<PageItem*> GElements;
GElements.append(retObj);
m_Doc->groupObjectsToItem(itemg, GElements);
m_Doc->resizeGroupToContents(itemg);
m_Doc->GroupOnPage(itemg);
retObj = itemg;
m_Doc->Items->removeLast();
 
return retObj;
}
 
1679,57 → 1674,59
{
int z = -1;
PageItem* retObj = nullptr;
if (!obState.currentPath.isEmpty())
 
if (obState.currentPath.isEmpty())
return nullptr;
 
if (obState.itemType == 0)
{
if (obState.itemType == 0)
if (dpg.hasAttribute("FixedPage.NavigateUri"))
z = m_Doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, CommonStrings::None);
else
{
if (dpg.hasAttribute("FixedPage.NavigateUri"))
z = m_Doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, CommonStrings::None);
if (!obState.currentPathClosed)
z = m_Doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, obState.CurrColorStroke);
else
{
if (!obState.currentPathClosed)
z = m_Doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, obState.CurrColorStroke);
else
z = m_Doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, obState.CurrColorStroke);
}
retObj = m_Doc->Items->at(z);
finishItem(retObj, obState);
retObj = m_Doc->Items->takeAt(z);
z = m_Doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, obState.CurrColorStroke);
}
else if (obState.itemType == 1)
retObj = m_Doc->Items->at(z);
finishItem(retObj, obState);
retObj = m_Doc->Items->takeAt(z);
}
else if (obState.itemType == 1)
{
z = m_Doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, obState.CurrColorStroke);
retObj = m_Doc->Items->at(z);
finishItem(retObj, obState);
if (!obState.imagePath.isEmpty())
{
z = m_Doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, baseX, baseY, 10, 10, obState.LineW, obState.CurrColorFill, obState.CurrColorStroke);
retObj = m_Doc->Items->at(z);
finishItem(retObj, obState);
if (!obState.imagePath.isEmpty())
QByteArray f;
if (uz->read(obState.imagePath, f))
{
QByteArray f;
if (uz->read(obState.imagePath, f))
QFileInfo fi(obState.imagePath);
QTemporaryFile *tempFile = new QTemporaryFile(QDir::tempPath() + "/scribus_temp_xps_XXXXXX." + fi.suffix());
tempFile->setAutoRemove(false);
if (tempFile->open())
{
QFileInfo fi(obState.imagePath);
QTemporaryFile *tempFile = new QTemporaryFile(QDir::tempPath() + "/scribus_temp_xps_XXXXXX." + fi.suffix());
tempFile->setAutoRemove(false);
if (tempFile->open())
QString fileName = getLongPathName(tempFile->fileName());
if (!fileName.isEmpty())
{
QString fileName = getLongPathName(tempFile->fileName());
if (!fileName.isEmpty())
{
tempFile->write(f);
tempFile->close();
retObj->isInlineImage = true;
retObj->isTempFile = true;
retObj->AspectRatio = false;
retObj->ScaleType = false;
m_Doc->loadPict(fileName, retObj);
retObj->AdjustPictScale();
}
tempFile->write(f);
tempFile->close();
retObj->isInlineImage = true;
retObj->isTempFile = true;
retObj->AspectRatio = false;
retObj->ScaleType = false;
m_Doc->loadPict(fileName, retObj);
retObj->AdjustPictScale();
}
delete tempFile;
}
delete tempFile;
}
retObj = m_Doc->Items->takeAt(z);
}
retObj = m_Doc->Items->takeAt(z);
}
 
return retObj;
}