Relationships code refactoring: Don't use static member
This commit is contained in:
@@ -104,7 +104,8 @@ bool Package::parsePackage(QIODevice *packageDevice)
|
|||||||
if (!filePaths.contains(QLatin1String("_rels/.rels")))
|
if (!filePaths.contains(QLatin1String("_rels/.rels")))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Relationships rootRels = Relationships::loadFromXmlData(zipReader.fileData(QStringLiteral("_rels/.rels")));
|
Relationships rootRels;
|
||||||
|
rootRels.loadFromXmlData(zipReader.fileData(QStringLiteral("_rels/.rels")));
|
||||||
|
|
||||||
//load core property
|
//load core property
|
||||||
QList<XlsxRelationship> rels_core = rootRels.packageRelationships(QStringLiteral("/metadata/core-properties"));
|
QList<XlsxRelationship> rels_core = rootRels.packageRelationships(QStringLiteral("/metadata/core-properties"));
|
||||||
@@ -141,8 +142,8 @@ bool Package::parsePackage(QIODevice *packageDevice)
|
|||||||
QString xlworkbook_Name = xlworkbook_PathList[1];
|
QString xlworkbook_Name = xlworkbook_PathList[1];
|
||||||
m_document->workbook()->loadFromXmlData(zipReader.fileData(xlworkbook_Path));
|
m_document->workbook()->loadFromXmlData(zipReader.fileData(xlworkbook_Path));
|
||||||
QList<XlsxSheetItemInfo> sheetNameIdPairList = m_document->workbook()->d_func()->sheetItemInfoList;
|
QList<XlsxSheetItemInfo> sheetNameIdPairList = m_document->workbook()->d_func()->sheetItemInfoList;
|
||||||
Relationships xlworkbook_Rels = Relationships::loadFromXmlData(
|
Relationships xlworkbook_Rels;
|
||||||
zipReader.fileData(xlworkbook_Dir+QStringLiteral("/_rels/")+xlworkbook_Name+QStringLiteral(".rels")));
|
xlworkbook_Rels.loadFromXmlData(zipReader.fileData(xlworkbook_Dir+QStringLiteral("/_rels/")+xlworkbook_Name+QStringLiteral(".rels")));
|
||||||
|
|
||||||
//load styles
|
//load styles
|
||||||
QList<XlsxRelationship> rels_styles = xlworkbook_Rels.documentRelationships(QStringLiteral("/styles"));
|
QList<XlsxRelationship> rels_styles = xlworkbook_Rels.documentRelationships(QStringLiteral("/styles"));
|
||||||
|
|||||||
@@ -130,10 +130,9 @@ QByteArray Relationships::saveToXmlData()
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
Relationships Relationships::loadFromXmlFile(QIODevice *device)
|
bool Relationships::loadFromXmlFile(QIODevice *device)
|
||||||
{
|
{
|
||||||
Relationships rels;
|
clear();
|
||||||
|
|
||||||
QXmlStreamReader reader(device);
|
QXmlStreamReader reader(device);
|
||||||
while (!reader.atEnd()) {
|
while (!reader.atEnd()) {
|
||||||
QXmlStreamReader::TokenType token = reader.readNext();
|
QXmlStreamReader::TokenType token = reader.readNext();
|
||||||
@@ -145,18 +144,17 @@ Relationships Relationships::loadFromXmlFile(QIODevice *device)
|
|||||||
relationship.type = attributes.value(QLatin1String("Type")).toString();
|
relationship.type = attributes.value(QLatin1String("Type")).toString();
|
||||||
relationship.target = attributes.value(QLatin1String("Target")).toString();
|
relationship.target = attributes.value(QLatin1String("Target")).toString();
|
||||||
relationship.targetMode = attributes.value(QLatin1String("TargetMode")).toString();
|
relationship.targetMode = attributes.value(QLatin1String("TargetMode")).toString();
|
||||||
rels.m_relationships.append(relationship);
|
m_relationships.append(relationship);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reader.hasError()) {
|
if (reader.hasError())
|
||||||
|
return false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return rels;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Relationships Relationships::loadFromXmlData(const QByteArray &data)
|
bool Relationships::loadFromXmlData(const QByteArray &data)
|
||||||
{
|
{
|
||||||
QBuffer buffer;
|
QBuffer buffer;
|
||||||
buffer.setData(data);
|
buffer.setData(data);
|
||||||
@@ -173,4 +171,19 @@ XlsxRelationship Relationships::getRelationshipById(const QString &id) const
|
|||||||
return XlsxRelationship();
|
return XlsxRelationship();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Relationships::clear()
|
||||||
|
{
|
||||||
|
m_relationships.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
int Relationships::count() const
|
||||||
|
{
|
||||||
|
return m_relationships.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Relationships::isEmpty() const
|
||||||
|
{
|
||||||
|
return m_relationships.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
} //namespace
|
} //namespace
|
||||||
|
|||||||
@@ -68,10 +68,14 @@ public:
|
|||||||
|
|
||||||
void saveToXmlFile(QIODevice *device);
|
void saveToXmlFile(QIODevice *device);
|
||||||
QByteArray saveToXmlData();
|
QByteArray saveToXmlData();
|
||||||
static Relationships loadFromXmlFile(QIODevice *device);
|
bool loadFromXmlFile(QIODevice *device);
|
||||||
static Relationships loadFromXmlData(const QByteArray &data);
|
bool loadFromXmlData(const QByteArray &data);
|
||||||
XlsxRelationship getRelationshipById(const QString &id) const;
|
XlsxRelationship getRelationshipById(const QString &id) const;
|
||||||
|
|
||||||
|
void clear();
|
||||||
|
int count() const;
|
||||||
|
bool isEmpty() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<XlsxRelationship> relationships(const QString &type) const;
|
QList<XlsxRelationship> relationships(const QString &type) const;
|
||||||
void addRelationship(const QString &type, const QString &target, const QString &targetMode=QString());
|
void addRelationship(const QString &type, const QString &target, const QString &targetMode=QString());
|
||||||
|
|||||||
Reference in New Issue
Block a user