mirror of
https://github.com/QtExcel/QXlsx.git
synced 2025-01-16 04:42:53 +08:00
set check point of EG_Anchor and sub-objects
This commit is contained in:
parent
78001b33de
commit
1ba38b370c
@ -62,19 +62,38 @@ void Drawing::saveToXmlFile(QIODevice *device) const
|
|||||||
writer.writeEndDocument();
|
writer.writeEndDocument();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check point
|
||||||
bool Drawing::loadFromXmlFile(QIODevice *device)
|
bool Drawing::loadFromXmlFile(QIODevice *device)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
<xsd:group name="EG_Anchor">
|
||||||
|
<xsd:choice>
|
||||||
|
<xsd:element name="twoCellAnchor" type="CT_TwoCellAnchor"/>
|
||||||
|
<xsd:element name="oneCellAnchor" type="CT_OneCellAnchor"/>
|
||||||
|
<xsd:element name="absoluteAnchor" type="CT_AbsoluteAnchor"/>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:group>
|
||||||
|
*/
|
||||||
|
|
||||||
QXmlStreamReader reader(device);
|
QXmlStreamReader reader(device);
|
||||||
while (!reader.atEnd()) {
|
|
||||||
|
while (!reader.atEnd())
|
||||||
|
{
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement)
|
||||||
if (reader.name() == QLatin1String("absoluteAnchor")) {
|
{
|
||||||
|
if (reader.name() == QLatin1String("absoluteAnchor")) // CT_AbsoluteAnchor
|
||||||
|
{
|
||||||
DrawingAbsoluteAnchor * anchor = new DrawingAbsoluteAnchor(this);
|
DrawingAbsoluteAnchor * anchor = new DrawingAbsoluteAnchor(this);
|
||||||
anchor->loadFromXml(reader);
|
anchor->loadFromXml(reader);
|
||||||
} else if (reader.name() == QLatin1String("oneCellAnchor")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("oneCellAnchor")) // CT_OneCellAnchor
|
||||||
|
{
|
||||||
DrawingOneCellAnchor * anchor = new DrawingOneCellAnchor(this);
|
DrawingOneCellAnchor * anchor = new DrawingOneCellAnchor(this);
|
||||||
anchor->loadFromXml(reader);
|
anchor->loadFromXml(reader);
|
||||||
} else if (reader.name() == QLatin1String("twoCellAnchor")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("twoCellAnchor")) // CT_TwoCellAnchor
|
||||||
|
{
|
||||||
DrawingTwoCellAnchor * anchor = new DrawingTwoCellAnchor(this);
|
DrawingTwoCellAnchor * anchor = new DrawingTwoCellAnchor(this);
|
||||||
anchor->loadFromXml(reader);
|
anchor->loadFromXml(reader);
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,4 @@
|
|||||||
/****************************************************************************
|
//
|
||||||
** Copyright (c) 2013-2014 Debao Zhang <hello@debao.me>
|
|
||||||
** All right reserved.
|
|
||||||
**
|
|
||||||
** Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
** a copy of this software and associated documentation files (the
|
|
||||||
** "Software"), to deal in the Software without restriction, including
|
|
||||||
** without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
** distribute, sublicense, and/or sell copies of the Software, and to
|
|
||||||
** permit persons to whom the Software is furnished to do so, subject to
|
|
||||||
** the following conditions:
|
|
||||||
**
|
|
||||||
** The above copyright notice and this permission notice shall be
|
|
||||||
** included in all copies or substantial portions of the Software.
|
|
||||||
**
|
|
||||||
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
||||||
** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
||||||
** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "xlsxdrawinganchor_p.h"
|
#include "xlsxdrawinganchor_p.h"
|
||||||
#include "xlsxdrawing_p.h"
|
#include "xlsxdrawing_p.h"
|
||||||
@ -30,6 +7,8 @@
|
|||||||
#include "xlsxworkbook.h"
|
#include "xlsxworkbook.h"
|
||||||
#include "xlsxutility_p.h"
|
#include "xlsxutility_p.h"
|
||||||
|
|
||||||
|
#include <QtGlobal>
|
||||||
|
#include <QDebug>
|
||||||
#include <QXmlStreamReader>
|
#include <QXmlStreamReader>
|
||||||
#include <QXmlStreamWriter>
|
#include <QXmlStreamWriter>
|
||||||
#include <QBuffer>
|
#include <QBuffer>
|
||||||
@ -148,20 +127,31 @@ XlsxMarker DrawingAnchor::loadXmlMarker(QXmlStreamReader &reader, const QString
|
|||||||
int colOffset = 0;
|
int colOffset = 0;
|
||||||
int row = 0;
|
int row = 0;
|
||||||
int rowOffset = 0;
|
int rowOffset = 0;
|
||||||
while (!reader.atEnd()) {
|
while (!reader.atEnd())
|
||||||
|
{
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement)
|
||||||
if (reader.name() == QLatin1String("col")) {
|
{
|
||||||
|
if (reader.name() == QLatin1String("col"))
|
||||||
|
{
|
||||||
col = reader.readElementText().toInt();
|
col = reader.readElementText().toInt();
|
||||||
} else if (reader.name() == QLatin1String("colOff")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("colOff"))
|
||||||
|
{
|
||||||
colOffset = reader.readElementText().toInt();
|
colOffset = reader.readElementText().toInt();
|
||||||
} else if (reader.name() == QLatin1String("row")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("row"))
|
||||||
|
{
|
||||||
row = reader.readElementText().toInt();
|
row = reader.readElementText().toInt();
|
||||||
} else if (reader.name() == QLatin1String("rowOff")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("rowOff"))
|
||||||
|
{
|
||||||
rowOffset = reader.readElementText().toInt();
|
rowOffset = reader.readElementText().toInt();
|
||||||
}
|
}
|
||||||
} else if (reader.tokenType() == QXmlStreamReader::EndElement
|
}
|
||||||
&& reader.name() == node) {
|
else if (reader.tokenType() == QXmlStreamReader::EndElement
|
||||||
|
&& reader.name() == node)
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -171,38 +161,72 @@ XlsxMarker DrawingAnchor::loadXmlMarker(QXmlStreamReader &reader, const QString
|
|||||||
|
|
||||||
void DrawingAnchor::loadXmlObject(QXmlStreamReader &reader)
|
void DrawingAnchor::loadXmlObject(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
if (reader.name() == QLatin1String("sp")) {
|
/*
|
||||||
//Shape
|
<xsd:group name="EG_ObjectChoices">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:choice minOccurs="1" maxOccurs="1">
|
||||||
|
<xsd:element name="sp" type="CT_Shape"/>
|
||||||
|
<xsd:element name="grpSp" type="CT_GroupShape"/>
|
||||||
|
<xsd:element name="graphicFrame" type="CT_GraphicalObjectFrame"/>
|
||||||
|
<xsd:element name="cxnSp" type="CT_Connector"/>
|
||||||
|
<xsd:element name="pic" type="CT_Picture"/>
|
||||||
|
<xsd:element name="contentPart" type="CT_Rel"/>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:group>
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (reader.name() == QLatin1String("sp")) // <xsd:element name="sp" type="CT_Shape"/>
|
||||||
|
{
|
||||||
|
// Shape
|
||||||
m_objectType = Shape;
|
m_objectType = Shape;
|
||||||
|
|
||||||
//{{ liufeijin
|
//{{ liufeijin
|
||||||
sp_textlink=reader.attributes().value(QLatin1String("textlink")).toString();
|
sp_textlink = reader.attributes().value(QLatin1String("textlink")).toString();
|
||||||
sp_macro=reader.attributes().value(QLatin1String("macro")).toString();
|
sp_macro = reader.attributes().value(QLatin1String("macro")).toString();
|
||||||
//}}
|
//}}
|
||||||
|
|
||||||
loadXmlObjectShape(reader);
|
// <xsd:attribute name="macro" type="xsd:string" use="optional"/>
|
||||||
} else if (reader.name() == QLatin1String("grpSp")) {
|
// <xsd:attribute name="textlink" type="xsd:string" use="optional"/>
|
||||||
|
// <xsd:attribute name="fLocksText" type="xsd:boolean" use="optional" default="true"/>
|
||||||
|
// <xsd:attribute name="fPublished" type="xsd:boolean" use="optional" default="false"/>
|
||||||
|
|
||||||
|
loadXmlObjectShape(reader); // CT_Shape
|
||||||
|
}
|
||||||
|
else if (reader.name() == QLatin1String("grpSp")) // <xsd:element name="grpSp" type="CT_GroupShape"/>
|
||||||
|
{
|
||||||
//Group Shape
|
//Group Shape
|
||||||
m_objectType = GroupShape;
|
m_objectType = GroupShape;
|
||||||
loadXmlObjectGroupShape(reader);
|
loadXmlObjectGroupShape(reader);
|
||||||
} else if (reader.name() == QLatin1String("graphicFrame")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("graphicFrame")) // <xsd:element name="graphicFrame" type="CT_GraphicalObjectFrame"/>
|
||||||
|
{
|
||||||
//Graphic Frame
|
//Graphic Frame
|
||||||
m_objectType = GraphicFrame;
|
m_objectType = GraphicFrame;
|
||||||
loadXmlObjectGraphicFrame(reader);
|
loadXmlObjectGraphicFrame(reader);
|
||||||
} else if (reader.name() == QLatin1String("cxnSp")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("cxnSp")) // <xsd:element name="cxnSp" type="CT_Connector"/>
|
||||||
|
{
|
||||||
//Connection Shape
|
//Connection Shape
|
||||||
m_objectType = ConnectionShape;
|
m_objectType = ConnectionShape;
|
||||||
|
|
||||||
// {{ liufeijin
|
// {{ liufeijin
|
||||||
cxnSp_macro=reader.attributes().value(QLatin1String("macro")).toString();
|
cxnSp_macro = reader.attributes().value(QLatin1String("macro")).toString();
|
||||||
// }}
|
// }}
|
||||||
|
|
||||||
loadXmlObjectConnectionShape(reader);
|
loadXmlObjectConnectionShape(reader);
|
||||||
} else if (reader.name() == QLatin1String("pic")) {
|
}
|
||||||
//Picture
|
else if (reader.name() == QLatin1String("pic")) // <xsd:element name="pic" type="CT_Picture"/>
|
||||||
|
{
|
||||||
|
// Picture
|
||||||
m_objectType = Picture;
|
m_objectType = Picture;
|
||||||
loadXmlObjectPicture(reader);
|
loadXmlObjectPicture(reader);
|
||||||
}
|
}
|
||||||
|
else if (reader.name() == QLatin1String("contentPart")) // <xsd:element name="contentPart" type="CT_Rel"/>
|
||||||
|
{
|
||||||
|
// contentPart
|
||||||
|
/// TODO:
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawingAnchor::loadXmlObjectConnectionShape(QXmlStreamReader &reader)
|
void DrawingAnchor::loadXmlObjectConnectionShape(QXmlStreamReader &reader)
|
||||||
@ -362,12 +386,77 @@ void DrawingAnchor::loadXmlObjectPicture(QXmlStreamReader &reader)
|
|||||||
|
|
||||||
void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
<xsd:complexType name="CT_Shape">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="nvSpPr" type="CT_ShapeNonVisual" minOccurs="1" maxOccurs="1"/>
|
||||||
|
<xsd:element name="spPr" type="a:CT_ShapeProperties" minOccurs="1" maxOccurs="1"/>
|
||||||
|
<xsd:element name="style" type="a:CT_ShapeStyle" minOccurs="0" maxOccurs="1"/>
|
||||||
|
<xsd:element name="txBody" type="a:CT_TextBody" minOccurs="0" maxOccurs="1"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="macro" type="xsd:string" use="optional"/>
|
||||||
|
<xsd:attribute name="textlink" type="xsd:string" use="optional"/>
|
||||||
|
<xsd:attribute name="fLocksText" type="xsd:boolean" use="optional" default="true"/>
|
||||||
|
<xsd:attribute name="fPublished" type="xsd:boolean" use="optional" default="false"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
<xsd:complexType name="CT_ShapeNonVisual">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="cNvPr" type="a:CT_NonVisualDrawingProps" minOccurs="1" maxOccurs="1"/>
|
||||||
|
<xsd:element name="cNvSpPr" type="a:CT_NonVisualDrawingShapeProps" minOccurs="1" maxOccurs="1"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
*/
|
||||||
|
|
||||||
Q_ASSERT(reader.name() == QLatin1String("sp"));
|
Q_ASSERT(reader.name() == QLatin1String("sp"));
|
||||||
bool hasoffext=false;
|
|
||||||
while (!reader.atEnd()) {
|
bool hasoffext = false;
|
||||||
|
while (!reader.atEnd())
|
||||||
|
{
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
|
||||||
if (reader.name() == QLatin1String("blip")) {
|
// qDebug() << __FUNCTION__ << reader.name().toString();
|
||||||
|
|
||||||
|
if (reader.tokenType() == QXmlStreamReader::StartElement)
|
||||||
|
{
|
||||||
|
if (reader.name() == QLatin1String("nvSpPr"))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (reader.name() == QLatin1String("spPr"))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (reader.name() == QLatin1String("style"))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (reader.name() == QLatin1String("txBody"))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (reader.tokenType() == QXmlStreamReader::EndElement
|
||||||
|
&& reader.name() == QLatin1String("sp"))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
bool hasoffext = false;
|
||||||
|
while (!reader.atEnd())
|
||||||
|
{
|
||||||
|
reader.readNextStartElement();
|
||||||
|
|
||||||
|
// qDebug() << __FUNCTION__ << reader.name().toString();
|
||||||
|
|
||||||
|
if (reader.tokenType() == QXmlStreamReader::StartElement)
|
||||||
|
{
|
||||||
|
if (reader.name() == QLatin1String("blip"))
|
||||||
|
{
|
||||||
QString rId;
|
QString rId;
|
||||||
sp_blip_rembed= reader.attributes().value(QLatin1String("r:embed")).toString();
|
sp_blip_rembed= reader.attributes().value(QLatin1String("r:embed")).toString();
|
||||||
sp_blip_cstate=reader.attributes().value(QLatin1String("cstate")).toString();
|
sp_blip_cstate=reader.attributes().value(QLatin1String("cstate")).toString();
|
||||||
@ -376,8 +465,10 @@ void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
|||||||
QString path = QDir::cleanPath(splitPath(m_drawing->filePath())[0] + QLatin1String("/") + name);
|
QString path = QDir::cleanPath(splitPath(m_drawing->filePath())[0] + QLatin1String("/") + name);
|
||||||
bool exist = false;
|
bool exist = false;
|
||||||
QList<QSharedPointer<MediaFile> > mfs = m_drawing->workbook->mediaFiles();
|
QList<QSharedPointer<MediaFile> > mfs = m_drawing->workbook->mediaFiles();
|
||||||
for (int i=0; i<mfs.size(); ++i) {
|
for (int i=0; i<mfs.size(); ++i)
|
||||||
if (mfs[i]->fileName() == path) {
|
{
|
||||||
|
if (mfs[i]->fileName() == path)
|
||||||
|
{
|
||||||
//already exist
|
//already exist
|
||||||
exist = true;
|
exist = true;
|
||||||
m_pictureFile = mfs[i];
|
m_pictureFile = mfs[i];
|
||||||
@ -387,14 +478,19 @@ void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
|||||||
m_pictureFile = QSharedPointer<MediaFile> (new MediaFile(path));
|
m_pictureFile = QSharedPointer<MediaFile> (new MediaFile(path));
|
||||||
m_drawing->workbook->addMediaFile(m_pictureFile, true);
|
m_drawing->workbook->addMediaFile(m_pictureFile, true);
|
||||||
}
|
}
|
||||||
}else if (reader.name() == QLatin1String("off")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("off"))
|
||||||
|
{
|
||||||
posTA = loadXmlPos(reader);
|
posTA = loadXmlPos(reader);
|
||||||
hasoffext=true;
|
hasoffext=true;
|
||||||
} else if (reader.name() == QLatin1String("ext")&&hasoffext) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("ext")&&hasoffext)
|
||||||
|
{
|
||||||
extTA = loadXmlExt(reader);
|
extTA = loadXmlExt(reader);
|
||||||
hasoffext=false;
|
hasoffext=false;
|
||||||
}else if(reader.name() == QLatin1String("blipFill")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("blipFill"))
|
||||||
|
{
|
||||||
// dev24 : fixed for old Qt 5
|
// dev24 : fixed for old Qt 5
|
||||||
|
|
||||||
rotWithShapeTA = reader.attributes().value(QLatin1String("rotWithShape")).toString().toInt();
|
rotWithShapeTA = reader.attributes().value(QLatin1String("rotWithShape")).toString().toInt();
|
||||||
@ -403,27 +499,40 @@ void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
|||||||
// rotWithShapeTA = reader.attributes().value(QLatin1String("rotWithShape")).toInt();
|
// rotWithShapeTA = reader.attributes().value(QLatin1String("rotWithShape")).toInt();
|
||||||
// dpiTA = reader.attributes().value(QLatin1String("dpi")).toInt();
|
// dpiTA = reader.attributes().value(QLatin1String("dpi")).toInt();
|
||||||
|
|
||||||
}else if(reader.name() == QLatin1String("cNvPr")){
|
}else if(reader.name() == QLatin1String("cNvPr"))
|
||||||
|
{
|
||||||
xsp_cNvPR_name= reader.attributes().value(QLatin1String("name")).toString();
|
xsp_cNvPR_name= reader.attributes().value(QLatin1String("name")).toString();
|
||||||
xsp_cNvPR_id= reader.attributes().value(QLatin1String("id")).toString();
|
xsp_cNvPR_id= reader.attributes().value(QLatin1String("id")).toString();
|
||||||
}else if(reader.name() == QLatin1String("spPr")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("spPr"))
|
||||||
|
{
|
||||||
xbwMode= reader.attributes().value(QLatin1String("bwMode")).toString();
|
xbwMode= reader.attributes().value(QLatin1String("bwMode")).toString();
|
||||||
}else if(reader.name() == QLatin1String("prstGeom")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("prstGeom"))
|
||||||
|
{
|
||||||
xprstGeom_prst= reader.attributes().value(QLatin1String("prst")).toString();
|
xprstGeom_prst= reader.attributes().value(QLatin1String("prst")).toString();
|
||||||
}else if(reader.name() == QLatin1String("ln")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("ln"))
|
||||||
|
{
|
||||||
xIn_algn= reader.attributes().value(QLatin1String("algn")).toString();
|
xIn_algn= reader.attributes().value(QLatin1String("algn")).toString();
|
||||||
xIn_cmpd= reader.attributes().value(QLatin1String("cmpd")).toString();
|
xIn_cmpd= reader.attributes().value(QLatin1String("cmpd")).toString();
|
||||||
xIn_cap= reader.attributes().value(QLatin1String("cap")).toString();
|
xIn_cap= reader.attributes().value(QLatin1String("cap")).toString();
|
||||||
xIn_w= reader.attributes().value(QLatin1String("w")).toString();
|
xIn_w= reader.attributes().value(QLatin1String("w")).toString();
|
||||||
}else if(reader.name() == QLatin1String("headEnd")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("headEnd"))
|
||||||
|
{
|
||||||
x_headEnd_w= reader.attributes().value(QLatin1String("w")).toString();
|
x_headEnd_w= reader.attributes().value(QLatin1String("w")).toString();
|
||||||
x_headEnd_len= reader.attributes().value(QLatin1String("len")).toString();
|
x_headEnd_len= reader.attributes().value(QLatin1String("len")).toString();
|
||||||
x_headEnd_tyep= reader.attributes().value(QLatin1String("type")).toString();
|
x_headEnd_tyep= reader.attributes().value(QLatin1String("type")).toString();
|
||||||
}else if(reader.name() == QLatin1String("tailEnd")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("tailEnd"))
|
||||||
|
{
|
||||||
x_tailEnd_w= reader.attributes().value(QLatin1String("w")).toString();
|
x_tailEnd_w= reader.attributes().value(QLatin1String("w")).toString();
|
||||||
x_tailEnd_len= reader.attributes().value(QLatin1String("len")).toString();
|
x_tailEnd_len= reader.attributes().value(QLatin1String("len")).toString();
|
||||||
x_tailEnd_tyep= reader.attributes().value(QLatin1String("type")).toString();
|
x_tailEnd_tyep= reader.attributes().value(QLatin1String("type")).toString();
|
||||||
}else if(reader.name() == QLatin1String("lnRef")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("lnRef"))
|
||||||
|
{
|
||||||
Style_inref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
Style_inref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
||||||
@ -431,15 +540,21 @@ void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
|||||||
Style_inref_val=reader.attributes().value(QLatin1String("val")).toString().trimmed();
|
Style_inref_val=reader.attributes().value(QLatin1String("val")).toString().trimmed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else if(reader.name() == QLatin1String("fillRef")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("fillRef"))
|
||||||
|
{
|
||||||
style_fillref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
style_fillref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement)
|
||||||
if(reader.name() == QLatin1String("schemeClr")){
|
{
|
||||||
|
if(reader.name() == QLatin1String("schemeClr"))
|
||||||
|
{
|
||||||
style_fillref_val=reader.attributes().value(QLatin1String("val")).toString().trimmed();
|
style_fillref_val=reader.attributes().value(QLatin1String("val")).toString().trimmed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else if(reader.name() == QLatin1String("effectRef")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("effectRef"))
|
||||||
|
{
|
||||||
style_effectref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
style_effectref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
||||||
@ -447,7 +562,9 @@ void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
|||||||
style_effectref_val=reader.attributes().value(QLatin1String("val")).toString().trimmed();
|
style_effectref_val=reader.attributes().value(QLatin1String("val")).toString().trimmed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else if(reader.name() == QLatin1String("fontRef")){
|
}
|
||||||
|
else if(reader.name() == QLatin1String("fontRef"))
|
||||||
|
{
|
||||||
style_forntref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
style_forntref_idx= reader.attributes().value(QLatin1String("idx")).toString().trimmed();
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
||||||
@ -457,12 +574,16 @@ void DrawingAnchor::loadXmlObjectShape(QXmlStreamReader &reader)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (reader.tokenType() == QXmlStreamReader::EndElement
|
}
|
||||||
&& reader.name() == QLatin1String("sp")) {
|
else if (reader.tokenType() == QXmlStreamReader::EndElement
|
||||||
|
&& reader.name() == QLatin1String("sp"))
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//*/
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -832,6 +953,7 @@ DrawingAbsoluteAnchor::DrawingAbsoluteAnchor(Drawing *drawing, ObjectType object
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check point
|
||||||
bool DrawingAbsoluteAnchor::loadFromXml(QXmlStreamReader &reader)
|
bool DrawingAbsoluteAnchor::loadFromXml(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
Q_ASSERT(reader.name() == QLatin1String("absoluteAnchor"));
|
Q_ASSERT(reader.name() == QLatin1String("absoluteAnchor"));
|
||||||
@ -839,15 +961,22 @@ bool DrawingAbsoluteAnchor::loadFromXml(QXmlStreamReader &reader)
|
|||||||
while (!reader.atEnd()) {
|
while (!reader.atEnd()) {
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
||||||
if (reader.name() == QLatin1String("pos")) {
|
if (reader.name() == QLatin1String("pos"))
|
||||||
|
{
|
||||||
pos = loadXmlPos(reader);
|
pos = loadXmlPos(reader);
|
||||||
} else if (reader.name() == QLatin1String("ext")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("ext"))
|
||||||
|
{
|
||||||
ext = loadXmlExt(reader);
|
ext = loadXmlExt(reader);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
loadXmlObject(reader);
|
loadXmlObject(reader);
|
||||||
}
|
}
|
||||||
} else if (reader.tokenType() == QXmlStreamReader::EndElement
|
}
|
||||||
&& reader.name() == QLatin1String("absoluteAnchor")) {
|
else if (reader.tokenType() == QXmlStreamReader::EndElement
|
||||||
|
&& reader.name() == QLatin1String("absoluteAnchor"))
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -874,21 +1003,32 @@ DrawingOneCellAnchor::DrawingOneCellAnchor(Drawing *drawing, ObjectType objectTy
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check point
|
||||||
bool DrawingOneCellAnchor::loadFromXml(QXmlStreamReader &reader)
|
bool DrawingOneCellAnchor::loadFromXml(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
Q_ASSERT(reader.name() == QLatin1String("oneCellAnchor"));
|
Q_ASSERT(reader.name() == QLatin1String("oneCellAnchor"));
|
||||||
while (!reader.atEnd()) {
|
|
||||||
|
while (!reader.atEnd())
|
||||||
|
{
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement)
|
||||||
if (reader.name() == QLatin1String("from")) {
|
{
|
||||||
|
if (reader.name() == QLatin1String("from"))
|
||||||
|
{
|
||||||
from = loadXmlMarker(reader, QLatin1String("from"));
|
from = loadXmlMarker(reader, QLatin1String("from"));
|
||||||
} else if (reader.name() == QLatin1String("ext")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("ext"))
|
||||||
|
{
|
||||||
ext = loadXmlExt(reader);
|
ext = loadXmlExt(reader);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
loadXmlObject(reader);
|
loadXmlObject(reader);
|
||||||
}
|
}
|
||||||
} else if (reader.tokenType() == QXmlStreamReader::EndElement
|
}
|
||||||
&& reader.name() == QLatin1String("oneCellAnchor")) {
|
else if (reader.tokenType() == QXmlStreamReader::EndElement
|
||||||
|
&& reader.name() == QLatin1String("oneCellAnchor"))
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -921,27 +1061,69 @@ DrawingTwoCellAnchor::DrawingTwoCellAnchor(Drawing *drawing, ObjectType objectTy
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check point
|
||||||
bool DrawingTwoCellAnchor::loadFromXml(QXmlStreamReader &reader)
|
bool DrawingTwoCellAnchor::loadFromXml(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
Q_ASSERT(reader.name() == QLatin1String("twoCellAnchor"));
|
Q_ASSERT(reader.name() == QLatin1String("twoCellAnchor"));
|
||||||
|
|
||||||
|
/*
|
||||||
|
<xsd:complexType name="CT_TwoCellAnchor">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="from" type="CT_Marker"/>
|
||||||
|
<xsd:element name="to" type="CT_Marker"/>
|
||||||
|
<xsd:group ref="EG_ObjectChoices"/>
|
||||||
|
<xsd:element name="clientData" type="CT_AnchorClientData" minOccurs="1" maxOccurs="1"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="editAs" type="ST_EditAs" use="optional" default="twoCell"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
*/
|
||||||
|
|
||||||
//{{ liufeijin
|
//{{ liufeijin
|
||||||
QXmlStreamAttributes attrs = reader.attributes(); // for absolute twocell aadd by liufeijin 20181024
|
QXmlStreamAttributes attrs = reader.attributes(); // for absolute twocell aadd by liufeijin 20181024
|
||||||
editASName=attrs.value(QLatin1String("editAs")).toString();
|
editASName = attrs.value(QLatin1String("editAs")).toString();
|
||||||
//}}
|
//}}
|
||||||
|
|
||||||
while (!reader.atEnd()) {
|
while (!reader.atEnd())
|
||||||
|
{
|
||||||
reader.readNextStartElement();
|
reader.readNextStartElement();
|
||||||
if (reader.tokenType() == QXmlStreamReader::StartElement) {
|
|
||||||
if (reader.name() == QLatin1String("from")) {
|
if (reader.tokenType() == QXmlStreamReader::StartElement)
|
||||||
|
{
|
||||||
|
if (reader.name() == QLatin1String("from"))
|
||||||
|
{
|
||||||
from = loadXmlMarker(reader, QLatin1String("from"));
|
from = loadXmlMarker(reader, QLatin1String("from"));
|
||||||
} else if (reader.name() == QLatin1String("to")) {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("to"))
|
||||||
|
{
|
||||||
to = loadXmlMarker(reader, QLatin1String("to"));
|
to = loadXmlMarker(reader, QLatin1String("to"));
|
||||||
} else {
|
}
|
||||||
|
else if (reader.name() == QLatin1String("clientData"))
|
||||||
|
{
|
||||||
|
// clientData
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
<xsd:group name="EG_ObjectChoices">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:choice minOccurs="1" maxOccurs="1">
|
||||||
|
<xsd:element name="sp" type="CT_Shape"/>
|
||||||
|
<xsd:element name="grpSp" type="CT_GroupShape"/>
|
||||||
|
<xsd:element name="graphicFrame" type="CT_GraphicalObjectFrame"/>
|
||||||
|
<xsd:element name="cxnSp" type="CT_Connector"/>
|
||||||
|
<xsd:element name="pic" type="CT_Picture"/>
|
||||||
|
<xsd:element name="contentPart" type="CT_Rel"/>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:group>
|
||||||
|
*/
|
||||||
|
|
||||||
loadXmlObject(reader);
|
loadXmlObject(reader);
|
||||||
}
|
}
|
||||||
} else if (reader.tokenType() == QXmlStreamReader::EndElement
|
}
|
||||||
&& reader.name() == QLatin1String("twoCellAnchor")) {
|
else if (reader.tokenType() == QXmlStreamReader::EndElement
|
||||||
|
&& reader.name() == QLatin1String("twoCellAnchor"))
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user