From 34c645ed7632319b563fa0c83b97bc2605b71e49 Mon Sep 17 00:00:00 2001 From: Debao Zhang Date: Thu, 27 Feb 2014 14:07:38 +0800 Subject: [PATCH] Introduce CreateFlag for all the ooxmlfile --- src/xlsx/xlsxabstractooxmlfile.cpp | 8 ++-- src/xlsx/xlsxabstractooxmlfile.h | 9 +++- src/xlsx/xlsxabstractooxmlfile_p.h | 3 +- src/xlsx/xlsxabstractsheet.cpp | 4 +- src/xlsx/xlsxabstractsheet_p.h | 2 +- src/xlsx/xlsxchart.cpp | 8 ++-- src/xlsx/xlsxchart.h | 2 +- src/xlsx/xlsxchart_p.h | 2 +- src/xlsx/xlsxchartsheet.cpp | 10 ++-- src/xlsx/xlsxchartsheet.h | 2 +- src/xlsx/xlsxchartsheet_p.h | 2 +- src/xlsx/xlsxcontenttypes.cpp | 3 +- src/xlsx/xlsxcontenttypes_p.h | 2 +- src/xlsx/xlsxdocpropsapp.cpp | 3 +- src/xlsx/xlsxdocpropsapp_p.h | 2 +- src/xlsx/xlsxdocpropscore.cpp | 3 +- src/xlsx/xlsxdocpropscore_p.h | 2 +- src/xlsx/xlsxdocument.cpp | 47 +++++++++++-------- src/xlsx/xlsxdocument_p.h | 2 +- src/xlsx/xlsxdrawing.cpp | 4 +- src/xlsx/xlsxdrawing_p.h | 2 +- src/xlsx/xlsxdrawinganchor.cpp | 2 +- src/xlsx/xlsxsharedstrings.cpp | 3 +- src/xlsx/xlsxsharedstrings_p.h | 2 +- src/xlsx/xlsxsimpleooxmlfile.cpp | 3 +- src/xlsx/xlsxsimpleooxmlfile_p.h | 2 +- src/xlsx/xlsxstyles.cpp | 6 +-- src/xlsx/xlsxstyles_p.h | 2 +- src/xlsx/xlsxtheme.cpp | 3 +- src/xlsx/xlsxtheme_p.h | 2 +- src/xlsx/xlsxworkbook.cpp | 20 ++++---- src/xlsx/xlsxworkbook.h | 2 +- src/xlsx/xlsxworkbook_p.h | 2 +- src/xlsx/xlsxworksheet.cpp | 20 ++++---- src/xlsx/xlsxworksheet.h | 2 +- src/xlsx/xlsxworksheet_p.h | 2 +- tests/auto/propsapp/tst_docpropsapptest.cpp | 4 +- tests/auto/propscore/tst_propscoretest.cpp | 4 +- .../sharedstrings/tst_sharedstringstest.cpp | 10 ++-- tests/auto/styles/tst_stylestest.cpp | 18 +++---- tests/auto/worksheet/tst_worksheet.cpp | 28 +++++------ 41 files changed, 140 insertions(+), 119 deletions(-) diff --git a/src/xlsx/xlsxabstractooxmlfile.cpp b/src/xlsx/xlsxabstractooxmlfile.cpp index 5523d07..59550c6 100644 --- a/src/xlsx/xlsxabstractooxmlfile.cpp +++ b/src/xlsx/xlsxabstractooxmlfile.cpp @@ -31,8 +31,8 @@ QT_BEGIN_NAMESPACE_XLSX -AbstractOOXmlFilePrivate::AbstractOOXmlFilePrivate(AbstractOOXmlFile *q) - :relationships(new Relationships), q_ptr(q) +AbstractOOXmlFilePrivate::AbstractOOXmlFilePrivate(AbstractOOXmlFile *q, AbstractOOXmlFile::CreateFlag flag=AbstractOOXmlFile::F_NewFromScratch) + :relationships(new Relationships), flag(flag), q_ptr(q) { } @@ -50,8 +50,8 @@ AbstractOOXmlFilePrivate::~AbstractOOXmlFilePrivate() * Base class of all the ooxml part file. */ -AbstractOOXmlFile::AbstractOOXmlFile() - :d_ptr(new AbstractOOXmlFilePrivate(this)) +AbstractOOXmlFile::AbstractOOXmlFile(CreateFlag flag) + :d_ptr(new AbstractOOXmlFilePrivate(this, flag)) { } diff --git a/src/xlsx/xlsxabstractooxmlfile.h b/src/xlsx/xlsxabstractooxmlfile.h index 57c9aad..a5a791c 100644 --- a/src/xlsx/xlsxabstractooxmlfile.h +++ b/src/xlsx/xlsxabstractooxmlfile.h @@ -39,6 +39,12 @@ class Q_XLSX_EXPORT AbstractOOXmlFile { Q_DECLARE_PRIVATE(AbstractOOXmlFile) public: + enum CreateFlag + { + F_NewFromScratch, + F_LoadFromExists + }; + virtual ~AbstractOOXmlFile(); virtual void saveToXmlFile(QIODevice *device) const = 0; @@ -51,8 +57,9 @@ public: void setFilePath(const QString path); QString filePath() const; + protected: - AbstractOOXmlFile(); + AbstractOOXmlFile(CreateFlag flag); AbstractOOXmlFile(AbstractOOXmlFilePrivate *d); AbstractOOXmlFilePrivate *d_ptr; diff --git a/src/xlsx/xlsxabstractooxmlfile_p.h b/src/xlsx/xlsxabstractooxmlfile_p.h index f6f3fe9..a1a2e60 100644 --- a/src/xlsx/xlsxabstractooxmlfile_p.h +++ b/src/xlsx/xlsxabstractooxmlfile_p.h @@ -49,12 +49,13 @@ class XLSX_AUTOTEST_EXPORT AbstractOOXmlFilePrivate Q_DECLARE_PUBLIC(AbstractOOXmlFile) public: - AbstractOOXmlFilePrivate(AbstractOOXmlFile *q); + AbstractOOXmlFilePrivate(AbstractOOXmlFile *q, AbstractOOXmlFile::CreateFlag flag); virtual ~AbstractOOXmlFilePrivate(); QString filePathInPackage;//such as "xl/worksheets/sheet1.xml" //used when load the .xlsx file Relationships *relationships; + AbstractOOXmlFile::CreateFlag flag; AbstractOOXmlFile *q_ptr; }; diff --git a/src/xlsx/xlsxabstractsheet.cpp b/src/xlsx/xlsxabstractsheet.cpp index 37e773a..ca43e85 100644 --- a/src/xlsx/xlsxabstractsheet.cpp +++ b/src/xlsx/xlsxabstractsheet.cpp @@ -28,8 +28,8 @@ QT_BEGIN_NAMESPACE_XLSX -AbstractSheetPrivate::AbstractSheetPrivate(AbstractSheet *p) - : AbstractOOXmlFilePrivate(p) +AbstractSheetPrivate::AbstractSheetPrivate(AbstractSheet *p, AbstractSheet::CreateFlag flag) + : AbstractOOXmlFilePrivate(p, flag) { hidden = false; type = AbstractSheet::ST_WorkSheet; diff --git a/src/xlsx/xlsxabstractsheet_p.h b/src/xlsx/xlsxabstractsheet_p.h index e580ec5..89c1202 100644 --- a/src/xlsx/xlsxabstractsheet_p.h +++ b/src/xlsx/xlsxabstractsheet_p.h @@ -48,7 +48,7 @@ class XLSX_AUTOTEST_EXPORT AbstractSheetPrivate : public AbstractOOXmlFilePrivat { Q_DECLARE_PUBLIC(AbstractSheet) public: - AbstractSheetPrivate(AbstractSheet *p); + AbstractSheetPrivate(AbstractSheet *p, AbstractSheet::CreateFlag flag); ~AbstractSheetPrivate(); Workbook *workbook; diff --git a/src/xlsx/xlsxchart.cpp b/src/xlsx/xlsxchart.cpp index 774f583..f637a14 100644 --- a/src/xlsx/xlsxchart.cpp +++ b/src/xlsx/xlsxchart.cpp @@ -35,8 +35,8 @@ QT_BEGIN_NAMESPACE_XLSX -ChartPrivate::ChartPrivate(Chart *q) - :AbstractOOXmlFilePrivate(q), chartType(static_cast(0)) +ChartPrivate::ChartPrivate(Chart *q, Chart::CreateFlag flag) + :AbstractOOXmlFilePrivate(q, flag), chartType(static_cast(0)) { } @@ -77,8 +77,8 @@ ChartPrivate::~ChartPrivate() /*! * \internal */ -Chart::Chart(AbstractSheet *parent) - :AbstractOOXmlFile(new ChartPrivate(this)) +Chart::Chart(AbstractSheet *parent, CreateFlag flag) + :AbstractOOXmlFile(new ChartPrivate(this, flag)) { d_func()->sheet = parent; } diff --git a/src/xlsx/xlsxchart.h b/src/xlsx/xlsxchart.h index 6db7c1b..86febeb 100644 --- a/src/xlsx/xlsxchart.h +++ b/src/xlsx/xlsxchart.h @@ -80,7 +80,7 @@ private: friend class Chartsheet; friend class DrawingAnchor; - Chart(AbstractSheet *parent); + Chart(AbstractSheet *parent, CreateFlag flag); }; QT_END_NAMESPACE_XLSX diff --git a/src/xlsx/xlsxchart_p.h b/src/xlsx/xlsxchart_p.h index c5ce01b..c87c182 100644 --- a/src/xlsx/xlsxchart_p.h +++ b/src/xlsx/xlsxchart_p.h @@ -92,7 +92,7 @@ class ChartPrivate : public AbstractOOXmlFilePrivate Q_DECLARE_PUBLIC(Chart) public: - ChartPrivate(Chart *q); + ChartPrivate(Chart *q, Chart::CreateFlag flag); ~ChartPrivate(); bool loadXmlChart(QXmlStreamReader &reader); diff --git a/src/xlsx/xlsxchartsheet.cpp b/src/xlsx/xlsxchartsheet.cpp index 30db0ef..61b6dc3 100644 --- a/src/xlsx/xlsxchartsheet.cpp +++ b/src/xlsx/xlsxchartsheet.cpp @@ -35,8 +35,8 @@ QT_BEGIN_NAMESPACE_XLSX -ChartsheetPrivate::ChartsheetPrivate(Chartsheet *p) - : AbstractSheetPrivate(p) +ChartsheetPrivate::ChartsheetPrivate(Chartsheet *p, Chartsheet::CreateFlag flag) + : AbstractSheetPrivate(p, flag) { } @@ -53,8 +53,8 @@ ChartsheetPrivate::~ChartsheetPrivate() /*! * \internal */ -Chartsheet::Chartsheet(const QString &name, int id, Workbook *workbook) - :AbstractSheet(name, id, workbook, new ChartsheetPrivate(this)) +Chartsheet::Chartsheet(const QString &name, int id, Workbook *workbook, CreateFlag flag) + :AbstractSheet(name, id, workbook, new ChartsheetPrivate(this, flag)) { setSheetType(ST_ChartSheet); } @@ -130,7 +130,7 @@ bool Chartsheet::loadFromXmlFile(QIODevice *device) QString rId = reader.attributes().value(QStringLiteral("r:id")).toString(); QString name = d->relationships->getRelationshipById(rId).target; QString path = QDir::cleanPath(splitPath(filePath())[0] + QLatin1String("/") + name); - d->drawing = QSharedPointer(new Drawing(this)); + d->drawing = QSharedPointer(new Drawing(this, F_LoadFromExists)); d->drawing->setFilePath(path); } } diff --git a/src/xlsx/xlsxchartsheet.h b/src/xlsx/xlsxchartsheet.h index 2400a27..6c5ee98 100644 --- a/src/xlsx/xlsxchartsheet.h +++ b/src/xlsx/xlsxchartsheet.h @@ -45,7 +45,7 @@ public: private: friend class DocumentPrivate; friend class Workbook; - Chartsheet(const QString &sheetName, int sheetId, Workbook *book); + Chartsheet(const QString &sheetName, int sheetId, Workbook *book, CreateFlag flag); Chartsheet *copy(const QString &distName, int distId) const; void saveToXmlFile(QIODevice *device) const; diff --git a/src/xlsx/xlsxchartsheet_p.h b/src/xlsx/xlsxchartsheet_p.h index 709091b..817da88 100644 --- a/src/xlsx/xlsxchartsheet_p.h +++ b/src/xlsx/xlsxchartsheet_p.h @@ -46,7 +46,7 @@ class XLSX_AUTOTEST_EXPORT ChartsheetPrivate : public AbstractSheetPrivate { Q_DECLARE_PUBLIC(Chartsheet) public: - ChartsheetPrivate(Chartsheet *p); + ChartsheetPrivate(Chartsheet *p, Chartsheet::CreateFlag flag); ~ChartsheetPrivate(); Chart *chart; diff --git a/src/xlsx/xlsxcontenttypes.cpp b/src/xlsx/xlsxcontenttypes.cpp index 0546ce0..8a500ac 100755 --- a/src/xlsx/xlsxcontenttypes.cpp +++ b/src/xlsx/xlsxcontenttypes.cpp @@ -32,7 +32,8 @@ namespace QXlsx { -ContentTypes::ContentTypes() +ContentTypes::ContentTypes(CreateFlag flag) + :AbstractOOXmlFile(flag) { m_package_prefix = QStringLiteral("application/vnd.openxmlformats-package."); m_document_prefix = QStringLiteral("application/vnd.openxmlformats-officedocument."); diff --git a/src/xlsx/xlsxcontenttypes_p.h b/src/xlsx/xlsxcontenttypes_p.h index dc826c1..0da71b9 100755 --- a/src/xlsx/xlsxcontenttypes_p.h +++ b/src/xlsx/xlsxcontenttypes_p.h @@ -49,7 +49,7 @@ namespace QXlsx { class ContentTypes : public AbstractOOXmlFile { public: - ContentTypes(); + ContentTypes(CreateFlag flag); void addDefault(const QString &key, const QString &value); void addOverride(const QString &key, const QString &value); diff --git a/src/xlsx/xlsxdocpropsapp.cpp b/src/xlsx/xlsxdocpropsapp.cpp index 3fb8ec9..49ad9b2 100755 --- a/src/xlsx/xlsxdocpropsapp.cpp +++ b/src/xlsx/xlsxdocpropsapp.cpp @@ -34,7 +34,8 @@ namespace QXlsx { -DocPropsApp::DocPropsApp() +DocPropsApp::DocPropsApp(CreateFlag flag) + :AbstractOOXmlFile(flag) { } diff --git a/src/xlsx/xlsxdocpropsapp_p.h b/src/xlsx/xlsxdocpropsapp_p.h index 77cf9da..433731e 100755 --- a/src/xlsx/xlsxdocpropsapp_p.h +++ b/src/xlsx/xlsxdocpropsapp_p.h @@ -50,7 +50,7 @@ namespace QXlsx { class XLSX_AUTOTEST_EXPORT DocPropsApp : public AbstractOOXmlFile { public: - DocPropsApp(); + DocPropsApp(CreateFlag flag); void addPartTitle(const QString &title); void addHeadingPair(const QString &name, int value); diff --git a/src/xlsx/xlsxdocpropscore.cpp b/src/xlsx/xlsxdocpropscore.cpp index 459d342..7e955f8 100644 --- a/src/xlsx/xlsxdocpropscore.cpp +++ b/src/xlsx/xlsxdocpropscore.cpp @@ -34,7 +34,8 @@ namespace QXlsx { -DocPropsCore::DocPropsCore() +DocPropsCore::DocPropsCore(CreateFlag flag) + :AbstractOOXmlFile(flag) { } diff --git a/src/xlsx/xlsxdocpropscore_p.h b/src/xlsx/xlsxdocpropscore_p.h index 397ce6b..0ef6114 100644 --- a/src/xlsx/xlsxdocpropscore_p.h +++ b/src/xlsx/xlsxdocpropscore_p.h @@ -48,7 +48,7 @@ namespace QXlsx { class XLSX_AUTOTEST_EXPORT DocPropsCore : public AbstractOOXmlFile { public: - explicit DocPropsCore(); + explicit DocPropsCore(CreateFlag flag); bool setProperty(const QString &name, const QString &value); QString property(const QString &name) const; diff --git a/src/xlsx/xlsxdocument.cpp b/src/xlsx/xlsxdocument.cpp index 949d064..270a19d 100644 --- a/src/xlsx/xlsxdocument.cpp +++ b/src/xlsx/xlsxdocument.cpp @@ -87,11 +87,16 @@ QT_BEGIN_NAMESPACE_XLSX DocumentPrivate::DocumentPrivate(Document *p) : q_ptr(p), defaultPackageName(QStringLiteral("Book1.xlsx")) { - workbook = QSharedPointer(new Workbook); } void DocumentPrivate::init() { + if (contentTypes.isNull()) + contentTypes = QSharedPointer(new ContentTypes(ContentTypes::F_NewFromScratch)); + + if (workbook.isNull()) + workbook = QSharedPointer(new Workbook(Workbook::F_NewFromScratch)); + if (workbook->sheetCount() == 0) workbook->addSheet(); } @@ -105,7 +110,8 @@ bool DocumentPrivate::loadPackage(QIODevice *device) //Load the Content_Types file if (!filePaths.contains(QLatin1String("[Content_Types].xml"))) return false; - contentTypes.loadFromXmlData(zipReader.fileData(QStringLiteral("[Content_Types].xml"))); + contentTypes = QSharedPointer(new ContentTypes(ContentTypes::F_LoadFromExists)); + contentTypes->loadFromXmlData(zipReader.fileData(QStringLiteral("[Content_Types].xml"))); //Load root rels file if (!filePaths.contains(QLatin1String("_rels/.rels"))) @@ -120,7 +126,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device) //In normal case, this should be "docProps/core.xml" QString docPropsCore_Name = rels_core[0].target; - DocPropsCore props; + DocPropsCore props(DocPropsCore::F_LoadFromExists); props.loadFromXmlData(zipReader.fileData(docPropsCore_Name)); foreach (QString name, props.propertyNames()) q->setDocumentProperty(name, props.property(name)); @@ -133,7 +139,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device) //In normal case, this should be "docProps/app.xml" QString docPropsApp_Name = rels_app[0].target; - DocPropsApp props; + DocPropsApp props(DocPropsApp::F_LoadFromExists); props.loadFromXmlData(zipReader.fileData(docPropsApp_Name)); foreach (QString name, props.propertyNames()) q->setDocumentProperty(name, props.property(name)); @@ -141,6 +147,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device) //load workbook now, Get the workbook file path from the root rels file //In normal case, this should be "xl/workbook.xml" + workbook = QSharedPointer(new Workbook(Workbook::F_LoadFromExists)); QList rels_xl = rootRels.documentRelationships(QStringLiteral("/officeDocument")); if (rels_xl.isEmpty()) return false; @@ -156,7 +163,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device) //In normal case this should be styles.xml which in xl QString name = rels_styles[0].target; QString path = xlworkbook_Dir + QLatin1String("/") + name; - QSharedPointer styles (new Styles(true)); + QSharedPointer styles (new Styles(Styles::F_LoadFromExists)); styles->loadFromXmlData(zipReader.fileData(path)); workbook->d_func()->styles = styles; } @@ -234,16 +241,16 @@ bool DocumentPrivate::savePackage(QIODevice *device) const if (zipWriter.error()) return false; - contentTypes.clearOverrides(); + contentTypes->clearOverrides(); - DocPropsApp docPropsApp; - DocPropsCore docPropsCore; + DocPropsApp docPropsApp(DocPropsApp::F_NewFromScratch); + DocPropsCore docPropsCore(DocPropsCore::F_NewFromScratch); // save sheet xml files for (int i=0; isheetCount(); ++i) { AbstractSheet *sheet = workbook->sheet(i); if (sheet->sheetType() == AbstractSheet::ST_WorkSheet) { - contentTypes.addWorksheetName(QStringLiteral("sheet%1").arg(i+1)); + contentTypes->addWorksheetName(QStringLiteral("sheet%1").arg(i+1)); docPropsApp.addPartTitle(sheet->sheetName()); zipWriter.addFile(QStringLiteral("xl/worksheets/sheet%1.xml").arg(i+1), sheet->saveToXmlData()); @@ -256,7 +263,7 @@ bool DocumentPrivate::savePackage(QIODevice *device) const // save external links xml files for (int i=0; id_func()->externalLinks.count(); ++i) { SimpleOOXmlFile *link = workbook->d_func()->externalLinks[i].data(); - contentTypes.addExternalLinkName(QStringLiteral("externalLink%1").arg(i+1)); + contentTypes->addExternalLinkName(QStringLiteral("externalLink%1").arg(i+1)); zipWriter.addFile(QStringLiteral("xl/externalLinks/externalLink%1.xml").arg(i+1), link->saveToXmlData()); Relationships *rel = link->relationships(); @@ -265,13 +272,13 @@ bool DocumentPrivate::savePackage(QIODevice *device) const } // save workbook xml file - contentTypes.addWorkbook(); + contentTypes->addWorkbook(); zipWriter.addFile(QStringLiteral("xl/workbook.xml"), workbook->saveToXmlData()); zipWriter.addFile(QStringLiteral("xl/_rels/workbook.xml.rels"), workbook->relationships()->saveToXmlData()); // save drawing xml files for (int i=0; idrawings().size(); ++i) { - contentTypes.addDrawingName(QStringLiteral("drawing%1").arg(i+1)); + contentTypes->addDrawingName(QStringLiteral("drawing%1").arg(i+1)); Drawing *drawing = workbook->drawings()[i]; zipWriter.addFile(QStringLiteral("xl/drawings/drawing%1.xml").arg(i+1), drawing->saveToXmlData()); @@ -286,28 +293,28 @@ bool DocumentPrivate::savePackage(QIODevice *device) const } if (workbook->sheetCount()) docPropsApp.addHeadingPair(QStringLiteral("Worksheets"), workbook->sheetCount()); - contentTypes.addDocPropApp(); - contentTypes.addDocPropCore(); + contentTypes->addDocPropApp(); + contentTypes->addDocPropCore(); zipWriter.addFile(QStringLiteral("docProps/app.xml"), docPropsApp.saveToXmlData()); zipWriter.addFile(QStringLiteral("docProps/core.xml"), docPropsCore.saveToXmlData()); // save sharedStrings xml file if (!workbook->sharedStrings()->isEmpty()) { - contentTypes.addSharedString(); + contentTypes->addSharedString(); zipWriter.addFile(QStringLiteral("xl/sharedStrings.xml"), workbook->sharedStrings()->saveToXmlData()); } // save styles xml file - contentTypes.addStyles(); + contentTypes->addStyles(); zipWriter.addFile(QStringLiteral("xl/styles.xml"), workbook->styles()->saveToXmlData()); // save theme xml file - contentTypes.addTheme(); + contentTypes->addTheme(); zipWriter.addFile(QStringLiteral("xl/theme/theme1.xml"), workbook->theme()->saveToXmlData()); // save chart xml files for (int i=0; ichartFiles().size(); ++i) { - contentTypes.addChartName(QStringLiteral("chart%1").arg(i+1)); + contentTypes->addChartName(QStringLiteral("chart%1").arg(i+1)); QSharedPointer cf = workbook->chartFiles()[i]; zipWriter.addFile(QStringLiteral("xl/charts/chart%1.xml").arg(i+1), cf->saveToXmlData()); } @@ -316,7 +323,7 @@ bool DocumentPrivate::savePackage(QIODevice *device) const for (int i=0; imediaFiles().size(); ++i) { QSharedPointer mf = workbook->mediaFiles()[i]; if (!mf->mimeType().isEmpty()) - contentTypes.addDefault(mf->suffix(), mf->mimeType()); + contentTypes->addDefault(mf->suffix(), mf->mimeType()); zipWriter.addFile(QStringLiteral("xl/media/image%1.%2").arg(i+1).arg(mf->suffix()), mf->contents()); } @@ -329,7 +336,7 @@ bool DocumentPrivate::savePackage(QIODevice *device) const zipWriter.addFile(QStringLiteral("_rels/.rels"), rootrels.saveToXmlData()); // save content types xml file - zipWriter.addFile(QStringLiteral("[Content_Types].xml"), contentTypes.saveToXmlData()); + zipWriter.addFile(QStringLiteral("[Content_Types].xml"), contentTypes->saveToXmlData()); zipWriter.close(); return true; diff --git a/src/xlsx/xlsxdocument_p.h b/src/xlsx/xlsxdocument_p.h index e57a473..736a678 100644 --- a/src/xlsx/xlsxdocument_p.h +++ b/src/xlsx/xlsxdocument_p.h @@ -61,7 +61,7 @@ public: QMap documentProperties; //core, app and custom properties QSharedPointer workbook; - mutable ContentTypes contentTypes; + QSharedPointer contentTypes; }; } diff --git a/src/xlsx/xlsxdrawing.cpp b/src/xlsx/xlsxdrawing.cpp index 504b1b9..ae7d2d7 100644 --- a/src/xlsx/xlsxdrawing.cpp +++ b/src/xlsx/xlsxdrawing.cpp @@ -33,8 +33,8 @@ namespace QXlsx { -Drawing::Drawing(AbstractSheet *sheet) - :sheet(sheet) +Drawing::Drawing(AbstractSheet *sheet, CreateFlag flag) + :AbstractOOXmlFile(flag), sheet(sheet) { workbook = sheet->workbook(); } diff --git a/src/xlsx/xlsxdrawing_p.h b/src/xlsx/xlsxdrawing_p.h index 21bcb4c..3afad4d 100644 --- a/src/xlsx/xlsxdrawing_p.h +++ b/src/xlsx/xlsxdrawing_p.h @@ -57,7 +57,7 @@ class MediaFile; class Drawing : public AbstractOOXmlFile { public: - Drawing(AbstractSheet *sheet); + Drawing(AbstractSheet *sheet, CreateFlag flag); ~Drawing(); void saveToXmlFile(QIODevice *device) const; bool loadFromXmlFile(QIODevice *device); diff --git a/src/xlsx/xlsxdrawinganchor.cpp b/src/xlsx/xlsxdrawinganchor.cpp index 601a740..be12dc0 100644 --- a/src/xlsx/xlsxdrawinganchor.cpp +++ b/src/xlsx/xlsxdrawinganchor.cpp @@ -206,7 +206,7 @@ void DrawingAnchor::loadXmlObjectGraphicFrame(QXmlStreamReader &reader) } } if (!exist) { - m_chartFile = QSharedPointer (new Chart(m_drawing->sheet)); + m_chartFile = QSharedPointer (new Chart(m_drawing->sheet, Chart::F_LoadFromExists)); m_chartFile->setFilePath(path); m_drawing->workbook->addChartFile(m_chartFile); } diff --git a/src/xlsx/xlsxsharedstrings.cpp b/src/xlsx/xlsxsharedstrings.cpp index 302a1eb..c2e3622 100755 --- a/src/xlsx/xlsxsharedstrings.cpp +++ b/src/xlsx/xlsxsharedstrings.cpp @@ -37,7 +37,8 @@ namespace QXlsx { -SharedStrings::SharedStrings() +SharedStrings::SharedStrings(CreateFlag flag) + :AbstractOOXmlFile(flag) { m_stringCount = 0; } diff --git a/src/xlsx/xlsxsharedstrings_p.h b/src/xlsx/xlsxsharedstrings_p.h index bbd2840..eb002fa 100755 --- a/src/xlsx/xlsxsharedstrings_p.h +++ b/src/xlsx/xlsxsharedstrings_p.h @@ -64,7 +64,7 @@ public: class XLSX_AUTOTEST_EXPORT SharedStrings : public AbstractOOXmlFile { public: - SharedStrings(); + SharedStrings(CreateFlag flag); int count() const; bool isEmpty() const; diff --git a/src/xlsx/xlsxsimpleooxmlfile.cpp b/src/xlsx/xlsxsimpleooxmlfile.cpp index ef96d84..76855bb 100644 --- a/src/xlsx/xlsxsimpleooxmlfile.cpp +++ b/src/xlsx/xlsxsimpleooxmlfile.cpp @@ -26,7 +26,8 @@ #include namespace QXlsx { -SimpleOOXmlFile::SimpleOOXmlFile() +SimpleOOXmlFile::SimpleOOXmlFile(CreateFlag flag) + :AbstractOOXmlFile(flag) { } diff --git a/src/xlsx/xlsxsimpleooxmlfile_p.h b/src/xlsx/xlsxsimpleooxmlfile_p.h index d845008..3ee875a 100644 --- a/src/xlsx/xlsxsimpleooxmlfile_p.h +++ b/src/xlsx/xlsxsimpleooxmlfile_p.h @@ -45,7 +45,7 @@ namespace QXlsx { class SimpleOOXmlFile : public AbstractOOXmlFile { public: - SimpleOOXmlFile(); + SimpleOOXmlFile(CreateFlag flag); void saveToXmlFile(QIODevice *device) const; QByteArray saveToXmlData() const; diff --git a/src/xlsx/xlsxstyles.cpp b/src/xlsx/xlsxstyles.cpp index afa031e..cd780eb 100755 --- a/src/xlsx/xlsxstyles.cpp +++ b/src/xlsx/xlsxstyles.cpp @@ -41,12 +41,12 @@ namespace QXlsx { otherwise, default formats should be added. */ -Styles::Styles(bool createEmpty) - : m_nextCustomNumFmtId(176), m_emptyFormatAdded(false) +Styles::Styles(CreateFlag flag) + : AbstractOOXmlFile(flag), m_nextCustomNumFmtId(176), m_emptyFormatAdded(false) { //!Fix me. Should the custom num fmt Id starts with 164 or 176 or others?? - if (!createEmpty) { + if (flag == F_NewFromScratch) { //Add default Format Format defaultFmt; addXfFormat(defaultFmt); diff --git a/src/xlsx/xlsxstyles_p.h b/src/xlsx/xlsxstyles_p.h index 2a0d335..9da10cc 100755 --- a/src/xlsx/xlsxstyles_p.h +++ b/src/xlsx/xlsxstyles_p.h @@ -67,7 +67,7 @@ struct XlsxFormatNumberData class XLSX_AUTOTEST_EXPORT Styles : public AbstractOOXmlFile { public: - Styles(bool createEmpty=false); + Styles(CreateFlag flag); ~Styles(); void addXfFormat(const Format &format, bool force=false); Format xfFormat(int idx) const; diff --git a/src/xlsx/xlsxtheme.cpp b/src/xlsx/xlsxtheme.cpp index 80de6de..d0c0758 100755 --- a/src/xlsx/xlsxtheme.cpp +++ b/src/xlsx/xlsxtheme.cpp @@ -201,7 +201,8 @@ const char *defaultXmlData = "" ; -Theme::Theme() +Theme::Theme(CreateFlag flag) + :AbstractOOXmlFile(flag) { } diff --git a/src/xlsx/xlsxtheme_p.h b/src/xlsx/xlsxtheme_p.h index 374265b..0b183b2 100755 --- a/src/xlsx/xlsxtheme_p.h +++ b/src/xlsx/xlsxtheme_p.h @@ -45,7 +45,7 @@ namespace QXlsx { class Theme : public AbstractOOXmlFile { public: - Theme(); + Theme(CreateFlag flag); void saveToXmlFile(QIODevice *device) const; QByteArray saveToXmlData() const; diff --git a/src/xlsx/xlsxworkbook.cpp b/src/xlsx/xlsxworkbook.cpp index fba1c23..e1ce433 100755 --- a/src/xlsx/xlsxworkbook.cpp +++ b/src/xlsx/xlsxworkbook.cpp @@ -41,12 +41,12 @@ QT_BEGIN_NAMESPACE_XLSX -WorkbookPrivate::WorkbookPrivate(Workbook *q) : - AbstractOOXmlFilePrivate(q) +WorkbookPrivate::WorkbookPrivate(Workbook *q, Workbook::CreateFlag flag) : + AbstractOOXmlFilePrivate(q, flag) { - sharedStrings = QSharedPointer (new SharedStrings); - styles = QSharedPointer(new Styles); - theme = QSharedPointer(new Theme); + sharedStrings = QSharedPointer (new SharedStrings(flag)); + styles = QSharedPointer(new Styles(flag)); + theme = QSharedPointer(new Theme(flag)); x_window = 240; y_window = 15; @@ -65,8 +65,8 @@ WorkbookPrivate::WorkbookPrivate(Workbook *q) : last_sheet_id = 0; } -Workbook::Workbook() - : AbstractOOXmlFile(new WorkbookPrivate(this)) +Workbook::Workbook(CreateFlag flag) + : AbstractOOXmlFile(new WorkbookPrivate(this, flag)) { } @@ -196,7 +196,7 @@ AbstractSheet *Workbook::addSheet(const QString &name, int sheetId, AbstractShee if (sheetId > d->last_sheet_id) d->last_sheet_id = sheetId; - Worksheet *sheet = new Worksheet(name, sheetId, this); + Worksheet *sheet = new Worksheet(name, sheetId, this, F_LoadFromExists); d->sheets.append(QSharedPointer(sheet)); d->sheetNames.append(name); return sheet; @@ -218,7 +218,7 @@ AbstractSheet *Workbook::insertSheet(int index, const QString &name, AbstractShe } ++d->last_sheet_id; - Worksheet *sheet = new Worksheet(worksheetName, d->last_sheet_id, this); + Worksheet *sheet = new Worksheet(worksheetName, d->last_sheet_id, this, F_NewFromScratch); d->sheets.insert(index, QSharedPointer(sheet)); d->sheetNames.insert(index, worksheetName); d->activesheetIndex = index; @@ -545,7 +545,7 @@ bool Workbook::loadFromXmlFile(QIODevice *device) const QString rId = attributes.value(QLatin1String("r:id")).toString(); XlsxRelationship relationship = d->relationships->getRelationshipById(rId); - QSharedPointer link(new SimpleOOXmlFile); + QSharedPointer link(new SimpleOOXmlFile(F_LoadFromExists)); const QString fullPath = QDir::cleanPath(splitPath(filePath())[0] +QLatin1String("/")+ relationship.target); link->setFilePath(fullPath); d->externalLinks.append(link); diff --git a/src/xlsx/xlsxworkbook.h b/src/xlsx/xlsxworkbook.h index 97fbdcd..7420434 100755 --- a/src/xlsx/xlsxworkbook.h +++ b/src/xlsx/xlsxworkbook.h @@ -92,7 +92,7 @@ private: friend class Document; friend class DocumentPrivate; - Workbook(); + Workbook(Workbook::CreateFlag flag); void saveToXmlFile(QIODevice *device) const; bool loadFromXmlFile(QIODevice *device); diff --git a/src/xlsx/xlsxworkbook_p.h b/src/xlsx/xlsxworkbook_p.h index 77008f3..d8ccfbd 100644 --- a/src/xlsx/xlsxworkbook_p.h +++ b/src/xlsx/xlsxworkbook_p.h @@ -69,7 +69,7 @@ class WorkbookPrivate : public AbstractOOXmlFilePrivate { Q_DECLARE_PUBLIC(Workbook) public: - WorkbookPrivate(Workbook *q); + WorkbookPrivate(Workbook *q, Workbook::CreateFlag flag); QSharedPointer sharedStrings; QList > sheets; diff --git a/src/xlsx/xlsxworksheet.cpp b/src/xlsx/xlsxworksheet.cpp index 0f71f5e..5d5d501 100755 --- a/src/xlsx/xlsxworksheet.cpp +++ b/src/xlsx/xlsxworksheet.cpp @@ -56,8 +56,8 @@ QT_BEGIN_NAMESPACE_XLSX -WorksheetPrivate::WorksheetPrivate(Worksheet *p) - : AbstractSheetPrivate(p) +WorksheetPrivate::WorksheetPrivate(Worksheet *p, Worksheet::CreateFlag flag) + : AbstractSheetPrivate(p, flag) , windowProtection(false), showFormulas(false), showGridLines(true), showRowColHeaders(true) , showZeros(true), rightToLeft(false), tabSelected(false), showRuler(false) , showOutlineSymbols(true), showWhiteSpace(true) @@ -171,11 +171,11 @@ int WorksheetPrivate::checkDimensions(int row, int col, bool ignore_row, bool ig /*! * \internal */ -Worksheet::Worksheet(const QString &name, int id, Workbook *workbook) - :AbstractSheet(name, id, workbook, new WorksheetPrivate(this)) +Worksheet::Worksheet(const QString &name, int id, Workbook *workbook, CreateFlag flag) + :AbstractSheet(name, id, workbook, new WorksheetPrivate(this, flag)) { if (!workbook) //For unit test propose only. Ignore the memery leak. - d_func()->workbook = new Workbook; + d_func()->workbook = new Workbook(flag); } /*! @@ -187,7 +187,7 @@ Worksheet::Worksheet(const QString &name, int id, Workbook *workbook) Worksheet *Worksheet::copy(const QString &distName, int distId) const { Q_D(const Worksheet); - Worksheet *sheet = new Worksheet(distName, distId, d->workbook); + Worksheet *sheet = new Worksheet(distName, distId, d->workbook, F_NewFromScratch); WorksheetPrivate *sheet_d = sheet->d_func(); sheet_d->dimension = d->dimension; @@ -1028,7 +1028,7 @@ bool Worksheet::insertImage(int row, int column, const QImage &image) return false; if (!d->drawing) - d->drawing = QSharedPointer(new Drawing(this)); + d->drawing = QSharedPointer(new Drawing(this, F_NewFromScratch)); DrawingOneCellAnchor *anchor = new DrawingOneCellAnchor(d->drawing.data(), DrawingAnchor::Picture); @@ -1054,7 +1054,7 @@ Chart *Worksheet::insertChart(int row, int column, const QSize &size) Q_D(Worksheet); if (!d->drawing) - d->drawing = QSharedPointer(new Drawing(this)); + d->drawing = QSharedPointer(new Drawing(this, F_NewFromScratch)); DrawingOneCellAnchor *anchor = new DrawingOneCellAnchor(d->drawing.data(), DrawingAnchor::Picture); @@ -1066,7 +1066,7 @@ Chart *Worksheet::insertChart(int row, int column, const QSize &size) anchor->from = XlsxMarker(row, column, 0, 0); anchor->ext = size * 9525; - QSharedPointer chart = QSharedPointer(new Chart(this)); + QSharedPointer chart = QSharedPointer(new Chart(this, F_NewFromScratch)); anchor->setObjectGraphicFrame(chart); return chart.data(); @@ -2116,7 +2116,7 @@ bool Worksheet::loadFromXmlFile(QIODevice *device) QString rId = reader.attributes().value(QStringLiteral("r:id")).toString(); QString name = d->relationships->getRelationshipById(rId).target; QString path = QDir::cleanPath(splitPath(filePath())[0] + QLatin1String("/") + name); - d->drawing = QSharedPointer(new Drawing(this)); + d->drawing = QSharedPointer(new Drawing(this, F_LoadFromExists)); d->drawing->setFilePath(path); } } diff --git a/src/xlsx/xlsxworksheet.h b/src/xlsx/xlsxworksheet.h index 0eb2cbb..59a04d6 100755 --- a/src/xlsx/xlsxworksheet.h +++ b/src/xlsx/xlsxworksheet.h @@ -133,7 +133,7 @@ private: friend class DocumentPrivate; friend class Workbook; friend class ::WorksheetTest; - Worksheet(const QString &sheetName, int sheetId, Workbook *book); + Worksheet(const QString &sheetName, int sheetId, Workbook *book, CreateFlag flag); Worksheet *copy(const QString &distName, int distId) const; void saveToXmlFile(QIODevice *device) const; diff --git a/src/xlsx/xlsxworksheet_p.h b/src/xlsx/xlsxworksheet_p.h index 816875e..5507eeb 100644 --- a/src/xlsx/xlsxworksheet_p.h +++ b/src/xlsx/xlsxworksheet_p.h @@ -115,7 +115,7 @@ class XLSX_AUTOTEST_EXPORT WorksheetPrivate : public AbstractSheetPrivate { Q_DECLARE_PUBLIC(Worksheet) public: - WorksheetPrivate(Worksheet *p); + WorksheetPrivate(Worksheet *p, Worksheet::CreateFlag flag); ~WorksheetPrivate(); int checkDimensions(int row, int col, bool ignore_row=false, bool ignore_col=false); Format cellFormat(int row, int col) const; diff --git a/tests/auto/propsapp/tst_docpropsapptest.cpp b/tests/auto/propsapp/tst_docpropsapptest.cpp index e0bf37a..211c471 100644 --- a/tests/auto/propsapp/tst_docpropsapptest.cpp +++ b/tests/auto/propsapp/tst_docpropsapptest.cpp @@ -20,7 +20,7 @@ DocPropsAppTest::DocPropsAppTest() void DocPropsAppTest::testCase1() { - QXlsx::DocPropsApp props; + QXlsx::DocPropsApp props(QXlsx::DocPropsApp::F_NewFromScratch); props.setProperty("company", "HMI CN"); props.setProperty("manager", "Debao"); @@ -31,7 +31,7 @@ void DocPropsAppTest::testCase1() f1.close(); f1.open(QFile::ReadOnly); - QXlsx::DocPropsApp props2; + QXlsx::DocPropsApp props2(QXlsx::DocPropsApp::F_LoadFromExists); props2.loadFromXmlFile(&f1); QCOMPARE(props2.property("company"), QString("HMI CN")); diff --git a/tests/auto/propscore/tst_propscoretest.cpp b/tests/auto/propscore/tst_propscoretest.cpp index ae511cf..2a2c445 100644 --- a/tests/auto/propscore/tst_propscoretest.cpp +++ b/tests/auto/propscore/tst_propscoretest.cpp @@ -20,7 +20,7 @@ DocPropsCoreTest::DocPropsCoreTest() void DocPropsCoreTest::testCase1() { - QXlsx::DocPropsCore props; + QXlsx::DocPropsCore props(QXlsx::DocPropsCore::F_NewFromScratch); props.setProperty("creator", "Debao"); props.setProperty("keywords", "Test, test, TEST"); @@ -32,7 +32,7 @@ void DocPropsCoreTest::testCase1() f1.close(); f1.open(QFile::ReadOnly); - QXlsx::DocPropsCore props2; + QXlsx::DocPropsCore props2(QXlsx::DocPropsCore::F_LoadFromExists); props2.loadFromXmlFile(&f1); QCOMPARE(props2.property("creator"), QString("Debao")); diff --git a/tests/auto/sharedstrings/tst_sharedstringstest.cpp b/tests/auto/sharedstrings/tst_sharedstringstest.cpp index 6a40fb9..138bb30 100644 --- a/tests/auto/sharedstrings/tst_sharedstringstest.cpp +++ b/tests/auto/sharedstrings/tst_sharedstringstest.cpp @@ -27,7 +27,7 @@ SharedStringsTest::SharedStringsTest() void SharedStringsTest::testAddSharedString() { - QXlsx::SharedStrings sst; + QXlsx::SharedStrings sst(QXlsx::SharedStrings::F_NewFromScratch); sst.addSharedString("Hello Qt!"); sst.addSharedString("Xlsx Writer"); @@ -68,7 +68,7 @@ void SharedStringsTest::testAddSharedString() void SharedStringsTest::testRemoveSharedString() { - QXlsx::SharedStrings sst; + QXlsx::SharedStrings sst(QXlsx::SharedStrings::F_NewFromScratch); sst.addSharedString("Hello Qt!"); sst.addSharedString("Xlsx Writer"); sst.addSharedString("Hello World"); @@ -101,7 +101,7 @@ void SharedStringsTest::testRemoveSharedString() void SharedStringsTest::testLoadXmlData() { - QXlsx::SharedStrings sst; + QXlsx::SharedStrings sst(QXlsx::SharedStrings::F_NewFromScratch); sst.addSharedString("Hello Qt!"); sst.addSharedString("Xlsx Writer"); @@ -119,7 +119,7 @@ void SharedStringsTest::testLoadXmlData() sst.addSharedString("Hello Qt!"); QByteArray xmlData = sst.saveToXmlData(); - QSharedPointer sst2(new QXlsx::SharedStrings); + QSharedPointer sst2(new QXlsx::SharedStrings(QXlsx::SharedStrings::F_LoadFromExists)); sst2->loadFromXmlData(xmlData); QCOMPARE(sst2->getSharedString(0).toPlainString(), QStringLiteral("Hello Qt!")); @@ -147,7 +147,7 @@ void SharedStringsTest::testLoadRichStringXmlData() "" ""; - QSharedPointer sst(new QXlsx::SharedStrings); + QSharedPointer sst(new QXlsx::SharedStrings(QXlsx::SharedStrings::F_LoadFromExists)); sst->loadFromXmlData(xmlData); QXlsx::RichString rs = sst->getSharedString(0); QVERIFY(rs.fragmentText(0) == "e=mc"); diff --git a/tests/auto/styles/tst_stylestest.cpp b/tests/auto/styles/tst_stylestest.cpp index ae49317..9e5020f 100644 --- a/tests/auto/styles/tst_stylestest.cpp +++ b/tests/auto/styles/tst_stylestest.cpp @@ -32,7 +32,7 @@ StylesTest::StylesTest() void StylesTest::testEmptyStyle() { - QXlsx::Styles styles; + QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch); QByteArray xmlData = styles.saveToXmlData(); QVERIFY2(xmlData.contains(""), "Must have one cell style"); @@ -41,7 +41,7 @@ void StylesTest::testEmptyStyle() void StylesTest::testAddXfFormat() { - QXlsx::Styles styles; + QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch); for (int i=0; i<10; ++i) { QXlsx::Format format; @@ -55,7 +55,7 @@ void StylesTest::testAddXfFormat() void StylesTest::testAddXfFormat2() { - QXlsx::Styles styles; + QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch); QXlsx::Format format; format.setNumberFormat("h:mm:ss AM/PM"); //builtin 19 @@ -73,7 +73,7 @@ void StylesTest::testAddXfFormat2() // For a solid fill, Excel reverses the role of foreground and background colours void StylesTest::testSolidFillBackgroundColor() { - QXlsx::Styles styles; + QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch); QXlsx::Format format; format.setPatternBackgroundColor(QColor(Qt::red)); styles.addXfFormat(format); @@ -85,7 +85,7 @@ void StylesTest::testSolidFillBackgroundColor() void StylesTest::testWriteBorders() { - QXlsx::Styles styles; + QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch); QXlsx::Format format; format.setRightBorderStyle(QXlsx::Format::BorderThin); styles.addXfFormat(format); @@ -103,7 +103,7 @@ void StylesTest::testReadFonts() "" "" ""; - QXlsx::Styles styles(true); + QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists); QXmlStreamReader reader(xmlData); reader.readNextStartElement();//So current node is fonts styles.readFonts(reader); @@ -122,7 +122,7 @@ void StylesTest::testReadFills() "" "" ""; - QXlsx::Styles styles(true); + QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists); QXmlStreamReader reader(xmlData); reader.readNextStartElement();//So current node is fills styles.readFills(reader); @@ -139,7 +139,7 @@ void StylesTest::testReadBorders() "" ""; - QXlsx::Styles styles(true); + QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists); QXmlStreamReader reader(xmlData); reader.readNextStartElement();//So current node is borders styles.readBorders(reader); @@ -154,7 +154,7 @@ void StylesTest::testReadNumFmts() "" ""; - QXlsx::Styles styles(true); + QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists); QXmlStreamReader reader(xmlData); reader.readNextStartElement();//So current node is numFmts styles.readNumFmts(reader); diff --git a/tests/auto/worksheet/tst_worksheet.cpp b/tests/auto/worksheet/tst_worksheet.cpp index 1a58534..0f8cdae 100644 --- a/tests/auto/worksheet/tst_worksheet.cpp +++ b/tests/auto/worksheet/tst_worksheet.cpp @@ -42,7 +42,7 @@ WorksheetTest::WorksheetTest() void WorksheetTest::testEmptySheet() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); sheet.write("B1", 123); QByteArray xmldata = sheet.saveToXmlData(); @@ -51,7 +51,7 @@ void WorksheetTest::testEmptySheet() void WorksheetTest::testDimension() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); QCOMPARE(sheet.dimension(), QXlsx::CellRange()); //Default sheet.write("C3", "Test"); @@ -70,7 +70,7 @@ void WorksheetTest::testDimension() void WorksheetTest::testSheetView() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); sheet.setGridLinesVisible(false); sheet.setWindowProtected(true); QByteArray xmldata = sheet.saveToXmlData(); @@ -81,7 +81,7 @@ void WorksheetTest::testSheetView() void WorksheetTest::testSetColumn() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); sheet.setColumn(1, 11, 20.0); //"A:K" sheet.setColumn(4, 8, 10.0); //"D:H" sheet.setColumn(6, 6, 15.0); //"F:F" @@ -100,7 +100,7 @@ void WorksheetTest::testSetColumn() void WorksheetTest::testWriteCells() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); sheet.write("A1", 123); sheet.write("A2", "Hello"); sheet.writeInlineString(3, 1, "Hello inline"); //A3 @@ -122,7 +122,7 @@ void WorksheetTest::testWriteCells() void WorksheetTest::testWriteHyperlinks() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); sheet.write("A1", QUrl::fromUserInput("http://qt-project.org")); sheet.write("B1", QUrl::fromUserInput("http://qt-project.org/abc")); sheet.write("C1", QUrl::fromUserInput("http://qt-project.org/abc.html#test")); @@ -146,7 +146,7 @@ void WorksheetTest::testWriteHyperlinks() void WorksheetTest::testWriteDataValidations() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); QXlsx::DataValidation validation(QXlsx::DataValidation::Whole); validation.setFormula1("10"); validation.setFormula2("100"); @@ -160,7 +160,7 @@ void WorksheetTest::testWriteDataValidations() void WorksheetTest::testMerge() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); sheet.write("B1", 123); sheet.mergeCells("B1:B5"); QByteArray xmldata = sheet.saveToXmlData(); @@ -170,7 +170,7 @@ void WorksheetTest::testMerge() void WorksheetTest::testUnMerge() { - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch); sheet.write("B1", 123); sheet.mergeCells("B1:B5"); sheet.unmergeCells("B1:B5"); @@ -197,7 +197,7 @@ void WorksheetTest::testReadSheetData() QXmlStreamReader reader(xmlData); reader.readNextStartElement();//current node is sheetData - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists); sheet.d_func()->sharedStrings()->addSharedString("Hello"); sheet.d_func()->loadXmlSheetData(reader); @@ -238,7 +238,7 @@ void WorksheetTest::testReadColsInfo() QXmlStreamReader reader(xmlData); reader.readNextStartElement();//current node is cols - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists); sheet.d_func()->loadXmlColumnsInfo(reader); QCOMPARE(sheet.d_func()->colsInfo.size(), 1); @@ -258,7 +258,7 @@ void WorksheetTest::testReadRowsInfo() QXmlStreamReader reader(xmlData); reader.readNextStartElement();//current node is sheetData - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists); sheet.d_func()->loadXmlSheetData(reader); QCOMPARE(sheet.d_func()->rowsInfo.size(), 1); @@ -272,7 +272,7 @@ void WorksheetTest::testReadMergeCells() QXmlStreamReader reader(xmlData); reader.readNextStartElement();//current node is mergeCells - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists); sheet.d_func()->loadXmlMergeCells(reader); QCOMPARE(sheet.d_func()->merges.size(), 2); @@ -289,7 +289,7 @@ void WorksheetTest::testReadDataValidations() QXmlStreamReader reader(xmlData); reader.readNextStartElement();//current node is dataValidations - QXlsx::Worksheet sheet("", 1, 0); + QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists); sheet.d_func()->loadXmlDataValidations(reader); QCOMPARE(sheet.d_func()->dataValidationsList.size(), 2);