Browse Source

Change static member of SharedStrings to normal member

master
Debao Zhang 12 years ago
parent
commit
d0cb3e6301
  1. 17
      src/xlsx/xlsxsharedstrings.cpp
  2. 4
      src/xlsx/xlsxsharedstrings_p.h
  3. 3
      tests/auto/sharedstrings/tst_sharedstringstest.cpp

17
src/xlsx/xlsxsharedstrings.cpp

@ -146,10 +146,8 @@ QByteArray SharedStrings::saveToXmlData() const
return data; return data;
} }
QSharedPointer<SharedStrings> SharedStrings::loadFromXmlFile(QIODevice *device) bool SharedStrings::loadFromXmlFile(QIODevice *device)
{ {
QSharedPointer<SharedStrings> sst(new SharedStrings);
XmlStreamReader reader(device); XmlStreamReader reader(device);
int count = 0; int count = 0;
while(!reader.atEnd()) { while(!reader.atEnd()) {
@ -163,23 +161,24 @@ QSharedPointer<SharedStrings> SharedStrings::loadFromXmlFile(QIODevice *device)
if (reader.name() == QLatin1String("t")) { if (reader.name() == QLatin1String("t")) {
// QXmlStreamAttributes attributes = reader.attributes(); // QXmlStreamAttributes attributes = reader.attributes();
QString string = reader.readElementText(); QString string = reader.readElementText();
int idx = sst->m_stringList.size(); int idx = m_stringList.size();
sst->m_stringTable[string] = XlsxSharedStringInfo(idx, 0); m_stringTable[string] = XlsxSharedStringInfo(idx, 0);
sst->m_stringList.append(string); m_stringList.append(string);
} }
} }
} }
} }
} }
if (sst->m_stringTable.size() != count) { if (m_stringTable.size() != count) {
qDebug("Error: Shared string count"); qDebug("Error: Shared string count");
return false;
} }
return sst; return true;
} }
QSharedPointer<SharedStrings> SharedStrings::loadFromXmlData(const QByteArray &data) bool SharedStrings::loadFromXmlData(const QByteArray &data)
{ {
QBuffer buffer; QBuffer buffer;
buffer.setData(data); buffer.setData(data);

4
src/xlsx/xlsxsharedstrings_p.h

@ -62,8 +62,8 @@ public:
void saveToXmlFile(QIODevice *device) const; void saveToXmlFile(QIODevice *device) const;
QByteArray saveToXmlData() const; QByteArray saveToXmlData() const;
static QSharedPointer<SharedStrings> loadFromXmlFile(QIODevice *device); bool loadFromXmlFile(QIODevice *device);
static QSharedPointer<SharedStrings> loadFromXmlData(const QByteArray &data); bool loadFromXmlData(const QByteArray &data);
private: private:
QHash<QString, XlsxSharedStringInfo> m_stringTable; //for fast lookup QHash<QString, XlsxSharedStringInfo> m_stringTable; //for fast lookup

3
tests/auto/sharedstrings/tst_sharedstringstest.cpp

@ -92,7 +92,8 @@ void SharedStringsTest::testLoadXmlData()
sst.addSharedString("Hello Qt!"); sst.addSharedString("Hello Qt!");
QByteArray xmlData = sst.saveToXmlData(); QByteArray xmlData = sst.saveToXmlData();
QSharedPointer<QXlsx::SharedStrings> sst2 = QXlsx::SharedStrings::loadFromXmlData(xmlData); QSharedPointer<QXlsx::SharedStrings> sst2(new QXlsx::SharedStrings);
sst2->loadFromXmlData(xmlData);
QCOMPARE(sst2->getSharedString(0), QStringLiteral("Hello Qt!")); QCOMPARE(sst2->getSharedString(0), QStringLiteral("Hello Qt!"));
QCOMPARE(sst2->getSharedString(2), QStringLiteral("Hello World")); QCOMPARE(sst2->getSharedString(2), QStringLiteral("Hello World"));

Loading…
Cancel
Save