diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.12.4/qt4/src/poppler-embeddedfile.cc')
-rw-r--r-- | Build/source/libs/poppler/poppler-0.12.4/qt4/src/poppler-embeddedfile.cc | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt4/src/poppler-embeddedfile.cc b/Build/source/libs/poppler/poppler-0.12.4/qt4/src/poppler-embeddedfile.cc new file mode 100644 index 00000000000..d54cf1e25f0 --- /dev/null +++ b/Build/source/libs/poppler/poppler-0.12.4/qt4/src/poppler-embeddedfile.cc @@ -0,0 +1,113 @@ +/* poppler-document.cc: qt interface to poppler + * Copyright (C) 2005, 2008, 2009, Albert Astals Cid <aacid@kde.org> + * Copyright (C) 2005, Brad Hards <bradh@frogmouth.net> + * Copyright (C) 2008, Pino Toscano <pino@kde.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "poppler-qt4.h" + +#include <QtCore/QString> +#include <QtCore/QDateTime> + +#include "Object.h" +#include "Stream.h" +#include "Catalog.h" + +#include "poppler-private.h" + +namespace Poppler +{ + +class EmbeddedFileData +{ +public: + EmbFile *embfile; +}; + +EmbeddedFile::EmbeddedFile(EmbFile *embfile) +{ + m_embeddedFile = new EmbeddedFileData(); + m_embeddedFile->embfile = embfile; +} + +EmbeddedFile::~EmbeddedFile() +{ + delete m_embeddedFile->embfile; + delete m_embeddedFile; +} + +QString EmbeddedFile::name() const +{ + return QString(m_embeddedFile->embfile->name()->getCString()); +} + +QString EmbeddedFile::description() const +{ + return UnicodeParsedString(m_embeddedFile->embfile->description()); +} + +int EmbeddedFile::size() const +{ + return m_embeddedFile->embfile->size(); +} + +QDateTime EmbeddedFile::modDate() const +{ + return convertDate(m_embeddedFile->embfile->modDate()->getCString()); +} + +QDateTime EmbeddedFile::createDate() const +{ + return convertDate(m_embeddedFile->embfile->createDate()->getCString()); +} + +QByteArray EmbeddedFile::checksum() const +{ + GooString *goo_checksum = m_embeddedFile->embfile->checksum(); + return QByteArray::fromRawData(goo_checksum->getCString(), goo_checksum->getLength()); +} + +QString EmbeddedFile::mimeType() const +{ + return QString(m_embeddedFile->embfile->mimeType()->getCString()); +} + +QByteArray EmbeddedFile::data() +{ + if (!isValid()) + return QByteArray(); + + Object obj; + Stream *stream = m_embeddedFile->embfile->streamObject().getStream(); + stream->reset(); + int dataLen = 0; + QByteArray fileArray; + int i; + while ( (i = stream->getChar()) != EOF) { + fileArray[dataLen] = (char)i; + ++dataLen; + } + fileArray.resize(dataLen); + return fileArray; +} + +bool EmbeddedFile::isValid() const +{ + return m_embeddedFile->embfile->isOk(); +} + +} |