From c5bc41bacb2a412178a30b4b335ad30647f410bd Mon Sep 17 00:00:00 2001 From: Debao Zhang Date: Fri, 13 Sep 2013 14:02:55 +0800 Subject: [PATCH] Make that QXlsx::Document is the only subclass of QObject --- src/xlsx/xlsxdocument.cpp | 4 ++-- src/xlsx/xlsxdocument_p.h | 2 +- src/xlsx/xlsxdrawing.cpp | 3 +-- src/xlsx/xlsxdrawing_p.h | 7 +++---- src/xlsx/xlsxrelationships_p.h | 2 +- src/xlsx/xlsxstyles_p.h | 2 +- src/xlsx/xlsxworkbook.cpp | 5 +++-- src/xlsx/xlsxworkbook.h | 6 ++---- src/xlsx/xlsxworksheet.h | 1 - src/xlsx/xlsxzipwriter.cpp | 6 ++---- src/xlsx/xlsxzipwriter_p.h | 9 ++++----- 11 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/xlsx/xlsxdocument.cpp b/src/xlsx/xlsxdocument.cpp index de0ab60..db57d52 100644 --- a/src/xlsx/xlsxdocument.cpp +++ b/src/xlsx/xlsxdocument.cpp @@ -12,7 +12,7 @@ namespace QXlsx { DocumentPrivate::DocumentPrivate(Document *p) : q_ptr(p), defaultPackageName(QStringLiteral("Book1.xlsx")) { - workbook = new Workbook(p); + workbook = QSharedPointer(new Workbook); } void DocumentPrivate::init() @@ -147,7 +147,7 @@ QStringList Document::documentPropertyNames() const Workbook *Document::workbook() const { Q_D(const Document); - return d->workbook; + return d->workbook.data(); } bool Document::addWorksheet(const QString &name) diff --git a/src/xlsx/xlsxdocument_p.h b/src/xlsx/xlsxdocument_p.h index 733a87a..656ccdd 100644 --- a/src/xlsx/xlsxdocument_p.h +++ b/src/xlsx/xlsxdocument_p.h @@ -22,7 +22,7 @@ public: QString packageName; //name of the .xlsx file QMap documentProperties; //core, app and custom properties - Workbook *workbook; + QSharedPointer workbook; }; } diff --git a/src/xlsx/xlsxdrawing.cpp b/src/xlsx/xlsxdrawing.cpp index f4f8cfa..b7e5442 100644 --- a/src/xlsx/xlsxdrawing.cpp +++ b/src/xlsx/xlsxdrawing.cpp @@ -3,8 +3,7 @@ namespace QXlsx { -Drawing::Drawing(QObject *parent) : - QObject(parent) +Drawing::Drawing() { embedded = false; orientation = 0; diff --git a/src/xlsx/xlsxdrawing_p.h b/src/xlsx/xlsxdrawing_p.h index 546b295..0919fa5 100644 --- a/src/xlsx/xlsxdrawing_p.h +++ b/src/xlsx/xlsxdrawing_p.h @@ -1,8 +1,8 @@ #ifndef QXLSX_DRAWING_H #define QXLSX_DRAWING_H -#include #include +#include class QIODevice; @@ -28,11 +28,10 @@ struct XlsxDrawingDimensionData int shape; }; -class Drawing : public QObject +class Drawing { - Q_OBJECT public: - explicit Drawing(QObject *parent = 0); + Drawing(); void saveToXmlFile(QIODevice *device); bool embedded; diff --git a/src/xlsx/xlsxrelationships_p.h b/src/xlsx/xlsxrelationships_p.h index ee0bab6..89816c3 100755 --- a/src/xlsx/xlsxrelationships_p.h +++ b/src/xlsx/xlsxrelationships_p.h @@ -26,8 +26,8 @@ #define XLSXRELATIONSHIPS_H #include "xlsxglobal.h" -#include #include +#include class QIODevice; namespace QXlsx { diff --git a/src/xlsx/xlsxstyles_p.h b/src/xlsx/xlsxstyles_p.h index 7ec65f9..49b9d10 100755 --- a/src/xlsx/xlsxstyles_p.h +++ b/src/xlsx/xlsxstyles_p.h @@ -40,7 +40,7 @@ struct FillData; struct BorderData; class XmlStreamWriter; -class XLSX_AUTOTEST_EXPORT Styles : public QObject +class XLSX_AUTOTEST_EXPORT Styles { public: Styles(); diff --git a/src/xlsx/xlsxworkbook.cpp b/src/xlsx/xlsxworkbook.cpp index 73676ac..f51f1b2 100755 --- a/src/xlsx/xlsxworkbook.cpp +++ b/src/xlsx/xlsxworkbook.cpp @@ -55,14 +55,15 @@ WorkbookPrivate::WorkbookPrivate(Workbook *q) : table_count = 0; } -Workbook::Workbook(QObject *parent) : - QObject(parent), d_ptr(new WorkbookPrivate(this)) +Workbook::Workbook() : + d_ptr(new WorkbookPrivate(this)) { } Workbook::~Workbook() { + qDeleteAll(d_ptr->worksheets); delete d_ptr; } diff --git a/src/xlsx/xlsxworkbook.h b/src/xlsx/xlsxworkbook.h index d56fd90..742ee42 100755 --- a/src/xlsx/xlsxworkbook.h +++ b/src/xlsx/xlsxworkbook.h @@ -26,7 +26,6 @@ #define XLSXWORKBOOK_H #include "xlsxglobal.h" -#include #include #include #include @@ -45,9 +44,8 @@ class Document; class DocumentPrivate; class WorkbookPrivate; -class Q_XLSX_EXPORT Workbook : public QObject +class Q_XLSX_EXPORT Workbook { - Q_OBJECT Q_DECLARE_PRIVATE(Workbook) public: ~Workbook(); @@ -72,7 +70,7 @@ private: friend class Document; friend class DocumentPrivate; - Workbook(QObject *parent=0); + Workbook(); void saveToXmlFile(QIODevice *device); QByteArray saveToXmlData(); diff --git a/src/xlsx/xlsxworksheet.h b/src/xlsx/xlsxworksheet.h index abf5ade..4acde49 100755 --- a/src/xlsx/xlsxworksheet.h +++ b/src/xlsx/xlsxworksheet.h @@ -26,7 +26,6 @@ #define XLSXWORKSHEET_H #include "xlsxglobal.h" -#include #include #include #include diff --git a/src/xlsx/xlsxzipwriter.cpp b/src/xlsx/xlsxzipwriter.cpp index 66f7118..0dc55f5 100644 --- a/src/xlsx/xlsxzipwriter.cpp +++ b/src/xlsx/xlsxzipwriter.cpp @@ -28,15 +28,13 @@ namespace QXlsx { -ZipWriter::ZipWriter(const QString &filePath, QObject *parent) : - QObject(parent) +ZipWriter::ZipWriter(const QString &filePath) { m_writer = new QZipWriter(filePath, QIODevice::WriteOnly); m_writer->setCompressionPolicy(QZipWriter::NeverCompress); } -ZipWriter::ZipWriter(QIODevice *device, QObject *parent) : - QObject(parent) +ZipWriter::ZipWriter(QIODevice *device) { m_writer = new QZipWriter(device); m_writer->setCompressionPolicy(QZipWriter::NeverCompress); diff --git a/src/xlsx/xlsxzipwriter_p.h b/src/xlsx/xlsxzipwriter_p.h index 1302ebc..5ad54cc 100644 --- a/src/xlsx/xlsxzipwriter_p.h +++ b/src/xlsx/xlsxzipwriter_p.h @@ -25,18 +25,17 @@ #ifndef QXLSX_ZIPWRITER_H #define QXLSX_ZIPWRITER_H -#include +#include class QIODevice; class QZipWriter; namespace QXlsx { -class ZipWriter : public QObject +class ZipWriter { - Q_OBJECT public: - explicit ZipWriter(const QString &filePath, QObject *parent = 0); - explicit ZipWriter(QIODevice *device, QObject *parent = 0); + explicit ZipWriter(const QString &filePath); + explicit ZipWriter(QIODevice *device); ~ZipWriter(); void addFile(const QString &filePath, QIODevice *device);