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")))
|
||||
return false;
|
||||
|
||||
Relationships rootRels = Relationships::loadFromXmlData(zipReader.fileData(QStringLiteral("_rels/.rels")));
|
||||
Relationships rootRels;
|
||||
rootRels.loadFromXmlData(zipReader.fileData(QStringLiteral("_rels/.rels")));
|
||||
|
||||
//load core property
|
||||
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];
|
||||
m_document->workbook()->loadFromXmlData(zipReader.fileData(xlworkbook_Path));
|
||||
QList<XlsxSheetItemInfo> sheetNameIdPairList = m_document->workbook()->d_func()->sheetItemInfoList;
|
||||
Relationships xlworkbook_Rels = Relationships::loadFromXmlData(
|
||||
zipReader.fileData(xlworkbook_Dir+QStringLiteral("/_rels/")+xlworkbook_Name+QStringLiteral(".rels")));
|
||||
Relationships xlworkbook_Rels;
|
||||
xlworkbook_Rels.loadFromXmlData(zipReader.fileData(xlworkbook_Dir+QStringLiteral("/_rels/")+xlworkbook_Name+QStringLiteral(".rels")));
|
||||
|
||||
//load styles
|
||||
QList<XlsxRelationship> rels_styles = xlworkbook_Rels.documentRelationships(QStringLiteral("/styles"));
|
||||
|
||||
@@ -130,10 +130,9 @@ QByteArray Relationships::saveToXmlData()
|
||||
return data;
|
||||
}
|
||||
|
||||
Relationships Relationships::loadFromXmlFile(QIODevice *device)
|
||||
bool Relationships::loadFromXmlFile(QIODevice *device)
|
||||
{
|
||||
Relationships rels;
|
||||
|
||||
clear();
|
||||
QXmlStreamReader reader(device);
|
||||
while (!reader.atEnd()) {
|
||||
QXmlStreamReader::TokenType token = reader.readNext();
|
||||
@@ -145,18 +144,17 @@ Relationships Relationships::loadFromXmlFile(QIODevice *device)
|
||||
relationship.type = attributes.value(QLatin1String("Type")).toString();
|
||||
relationship.target = attributes.value(QLatin1String("Target")).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;
|
||||
buffer.setData(data);
|
||||
@@ -173,4 +171,19 @@ XlsxRelationship Relationships::getRelationshipById(const QString &id) const
|
||||
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
|
||||
|
||||
@@ -68,10 +68,14 @@ public:
|
||||
|
||||
void saveToXmlFile(QIODevice *device);
|
||||
QByteArray saveToXmlData();
|
||||
static Relationships loadFromXmlFile(QIODevice *device);
|
||||
static Relationships loadFromXmlData(const QByteArray &data);
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
XlsxRelationship getRelationshipById(const QString &id) const;
|
||||
|
||||
void clear();
|
||||
int count() const;
|
||||
bool isEmpty() const;
|
||||
|
||||
private:
|
||||
QList<XlsxRelationship> relationships(const QString &type) const;
|
||||
void addRelationship(const QString &type, const QString &target, const QString &targetMode=QString());
|
||||
|
||||
Reference in New Issue
Block a user