diff --git a/src/xlsx/xlsxpackage.cpp b/src/xlsx/xlsxpackage.cpp index e267eb4..982e3c3 100644 --- a/src/xlsx/xlsxpackage.cpp +++ b/src/xlsx/xlsxpackage.cpp @@ -337,11 +337,7 @@ void Package::writeStylesFiles(ZipWriter &zipWriter) void Package::writeThemeFile(ZipWriter &zipWriter) { - QByteArray data; - QBuffer buffer(&data); - buffer.open(QIODevice::WriteOnly); - m_workbook->theme()->saveToXmlFile(&buffer); - zipWriter.addFile(QStringLiteral("xl/theme/theme1.xml"), data); + zipWriter.addFile(QStringLiteral("xl/theme/theme1.xml"), m_workbook->theme()->saveToXmlData()); } void Package::writeRootRelsFile(ZipWriter &zipWriter) diff --git a/src/xlsx/xlsxtheme.cpp b/src/xlsx/xlsxtheme.cpp index b08eb62..2029771 100755 --- a/src/xlsx/xlsxtheme.cpp +++ b/src/xlsx/xlsxtheme.cpp @@ -213,6 +213,14 @@ void Theme::saveToXmlFile(QIODevice *device) device->write(xmlData); } +QByteArray Theme::saveToXmlData() const +{ + if (xmlData.isEmpty()) + return defaultXmlData; + else + return xmlData; +} + void Theme::loadFromXmlData(const QByteArray &data) { xmlData = data; diff --git a/src/xlsx/xlsxtheme_p.h b/src/xlsx/xlsxtheme_p.h index 28a94c7..f67a4da 100755 --- a/src/xlsx/xlsxtheme_p.h +++ b/src/xlsx/xlsxtheme_p.h @@ -47,6 +47,7 @@ public: Theme(); void saveToXmlFile(QIODevice *device); + QByteArray saveToXmlData() const; void loadFromXmlData(const QByteArray &data); QByteArray xmlData;