1 // xlsxabstractooxmlfile.cpp
2 
3 #include <QtGlobal>
4 #include <QBuffer>
5 #include <QByteArray>
6 
7 #include "xlsxabstractooxmlfile.h"
8 #include "xlsxabstractooxmlfile_p.h"
9 
10 QT_BEGIN_NAMESPACE_XLSX
11 
AbstractOOXmlFilePrivate(AbstractOOXmlFile * q,AbstractOOXmlFile::CreateFlag flag=AbstractOOXmlFile::F_NewFromScratch)12 AbstractOOXmlFilePrivate::AbstractOOXmlFilePrivate(AbstractOOXmlFile *q, AbstractOOXmlFile::CreateFlag flag=AbstractOOXmlFile::F_NewFromScratch)
13     : relationships(new Relationships), flag(flag), q_ptr(q)
14 {
15 
16 }
17 
~AbstractOOXmlFilePrivate()18 AbstractOOXmlFilePrivate::~AbstractOOXmlFilePrivate()
19 {
20 
21 }
22 
23 /*!
24  * \internal
25  *
26  * \class AbstractOOXmlFile
27  *
28  * Base class of all the ooxml part file.
29  */
30 
AbstractOOXmlFile(CreateFlag flag)31 AbstractOOXmlFile::AbstractOOXmlFile(CreateFlag flag)
32     :d_ptr(new AbstractOOXmlFilePrivate(this, flag))
33 {
34 }
35 
AbstractOOXmlFile(AbstractOOXmlFilePrivate * d)36 AbstractOOXmlFile::AbstractOOXmlFile(AbstractOOXmlFilePrivate *d)
37     :d_ptr(d)
38 {
39 
40 }
41 
~AbstractOOXmlFile()42 AbstractOOXmlFile::~AbstractOOXmlFile()
43 {
44     if (d_ptr->relationships)
45         delete d_ptr->relationships;
46     delete d_ptr;
47 }
48 
saveToXmlData() const49 QByteArray AbstractOOXmlFile::saveToXmlData() const
50 {
51     QByteArray data;
52     QBuffer buffer(&data);
53     buffer.open(QIODevice::WriteOnly);
54     saveToXmlFile(&buffer);
55 
56     return data;
57 }
58 
loadFromXmlData(const QByteArray & data)59 bool AbstractOOXmlFile::loadFromXmlData(const QByteArray &data)
60 {
61     QBuffer buffer;
62     buffer.setData(data);
63     buffer.open(QIODevice::ReadOnly);
64 
65     return loadFromXmlFile(&buffer);
66 }
67 
68 /*!
69  * \internal
70  */
setFilePath(const QString path)71 void AbstractOOXmlFile::setFilePath(const QString path)
72 {
73     Q_D(AbstractOOXmlFile);
74     d->filePathInPackage = path;
75 }
76 
77 /*!
78  * \internal
79  */
filePath() const80 QString AbstractOOXmlFile::filePath() const
81 {
82     Q_D(const AbstractOOXmlFile);
83     return d->filePathInPackage;
84 }
85 
86 
87 /*!
88  * \internal
89  */
relationships() const90 Relationships *AbstractOOXmlFile::relationships() const
91 {
92     Q_D(const AbstractOOXmlFile);
93     return d->relationships;
94 }
95 
96 
97 QT_END_NAMESPACE_XLSX
98