andre@1: /****************************************************************************
andre@1: ** Copyright (c) 2013-2014 Debao Zhang <hello@debao.me>
andre@1: ** All right reserved.
andre@1: **
andre@1: ** Permission is hereby granted, free of charge, to any person obtaining
andre@1: ** a copy of this software and associated documentation files (the
andre@1: ** "Software"), to deal in the Software without restriction, including
andre@1: ** without limitation the rights to use, copy, modify, merge, publish,
andre@1: ** distribute, sublicense, and/or sell copies of the Software, and to
andre@1: ** permit persons to whom the Software is furnished to do so, subject to
andre@1: ** the following conditions:
andre@1: **
andre@1: ** The above copyright notice and this permission notice shall be
andre@1: ** included in all copies or substantial portions of the Software.
andre@1: **
andre@1: ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
andre@1: ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
andre@1: ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
andre@1: ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
andre@1: ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
andre@1: ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
andre@1: ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
andre@1: **
andre@1: ****************************************************************************/
andre@1: 
andre@1: #include "xlsxabstractooxmlfile.h"
andre@1: #include "xlsxabstractooxmlfile_p.h"
andre@1: 
andre@1: #include <QBuffer>
andre@1: #include <QByteArray>
andre@1: 
andre@1: QT_BEGIN_NAMESPACE_XLSX
andre@1: 
andre@1: AbstractOOXmlFilePrivate::AbstractOOXmlFilePrivate(AbstractOOXmlFile *q, AbstractOOXmlFile::CreateFlag flag=AbstractOOXmlFile::F_NewFromScratch)
andre@1:     :relationships(new Relationships), flag(flag), q_ptr(q)
andre@1: {
andre@1: 
andre@1: }
andre@1: 
andre@1: AbstractOOXmlFilePrivate::~AbstractOOXmlFilePrivate()
andre@1: {
andre@1: 
andre@1: }
andre@1: 
andre@1: /*!
andre@1:  * \internal
andre@1:  *
andre@1:  * \class AbstractOOXmlFile
andre@1:  *
andre@1:  * Base class of all the ooxml part file.
andre@1:  */
andre@1: 
andre@1: AbstractOOXmlFile::AbstractOOXmlFile(CreateFlag flag)
andre@1:     :d_ptr(new AbstractOOXmlFilePrivate(this, flag))
andre@1: {
andre@1: }
andre@1: 
andre@1: AbstractOOXmlFile::AbstractOOXmlFile(AbstractOOXmlFilePrivate *d)
andre@1:     :d_ptr(d)
andre@1: {
andre@1: 
andre@1: }
andre@1: 
andre@1: AbstractOOXmlFile::~AbstractOOXmlFile()
andre@1: {
andre@1:     if (d_ptr->relationships)
andre@1:         delete d_ptr->relationships;
andre@1:     delete d_ptr;
andre@1: }
andre@1: 
andre@1: QByteArray AbstractOOXmlFile::saveToXmlData() const
andre@1: {
andre@1:     QByteArray data;
andre@1:     QBuffer buffer(&data);
andre@1:     buffer.open(QIODevice::WriteOnly);
andre@1:     saveToXmlFile(&buffer);
andre@1: 
andre@1:     return data;
andre@1: }
andre@1: 
andre@1: bool AbstractOOXmlFile::loadFromXmlData(const QByteArray &data)
andre@1: {
andre@1:     QBuffer buffer;
andre@1:     buffer.setData(data);
andre@1:     buffer.open(QIODevice::ReadOnly);
andre@1: 
andre@1:     return loadFromXmlFile(&buffer);
andre@1: }
andre@1: 
andre@1: /*!
andre@1:  * \internal
andre@1:  */
andre@1: void AbstractOOXmlFile::setFilePath(const QString path)
andre@1: {
andre@1:     Q_D(AbstractOOXmlFile);
andre@1:     d->filePathInPackage = path;
andre@1: }
andre@1: 
andre@1: /*!
andre@1:  * \internal
andre@1:  */
andre@1: QString AbstractOOXmlFile::filePath() const
andre@1: {
andre@1:     Q_D(const AbstractOOXmlFile);
andre@1:     return d->filePathInPackage;
andre@1: }
andre@1: 
andre@1: 
andre@1: /*!
andre@1:  * \internal
andre@1:  */
andre@1: Relationships *AbstractOOXmlFile::relationships() const
andre@1: {
andre@1:     Q_D(const AbstractOOXmlFile);
andre@1:     return d->relationships;
andre@1: }
andre@1: 
andre@1: 
andre@1: QT_END_NAMESPACE_XLSX