diff options
author | Pino Toscano <pino@kde.org> | 2011-05-25 16:12:02 +0200 |
---|---|---|
committer | Pino Toscano <pino@kde.org> | 2011-05-25 16:12:02 +0200 |
commit | a264e5385b2d0fee5126b3d0e57d42d34cafa45d (patch) | |
tree | de887cae1996b40cad1a0a331579aca50efe6431 /qt4 | |
parent | 232bfa1c59013637fd7e858e22194becb636ad21 (diff) |
[qt4] create EmbeddedFile by EmbeddedFileData only
- create the private class and pass it to the EmbeddedFile ctor, reducing the amount of poppler code API exposed to the outside
- turn the old private EmbeddedFile(EmbFile*) ctor in a death machine
Diffstat (limited to 'qt4')
-rw-r--r-- | qt4/src/poppler-embeddedfile-private.h | 3 | ||||
-rw-r--r-- | qt4/src/poppler-embeddedfile.cc | 21 | ||||
-rw-r--r-- | qt4/src/poppler-private.h | 3 | ||||
-rw-r--r-- | qt4/src/poppler-qt4.h | 2 |
4 files changed, 25 insertions, 4 deletions
diff --git a/qt4/src/poppler-embeddedfile-private.h b/qt4/src/poppler-embeddedfile-private.h index 7cc16586..d64b0d19 100644 --- a/qt4/src/poppler-embeddedfile-private.h +++ b/qt4/src/poppler-embeddedfile-private.h @@ -29,6 +29,9 @@ namespace Poppler class EmbeddedFileData { public: + EmbeddedFileData(EmbFile *ef); + ~EmbeddedFileData(); + EmbFile *embfile; }; diff --git a/qt4/src/poppler-embeddedfile.cc b/qt4/src/poppler-embeddedfile.cc index e44bccb5..6166bbd3 100644 --- a/qt4/src/poppler-embeddedfile.cc +++ b/qt4/src/poppler-embeddedfile.cc @@ -33,15 +33,30 @@ namespace Poppler { +EmbeddedFileData::EmbeddedFileData(EmbFile *ef) + : embfile(ef) +{ +} + +EmbeddedFileData::~EmbeddedFileData() +{ + delete embfile; +} + + EmbeddedFile::EmbeddedFile(EmbFile *embfile) + : m_embeddedFile(0) +{ + assert(!"You must not use this private constructor!"); +} + +EmbeddedFile::EmbeddedFile(EmbeddedFileData &dd) + : m_embeddedFile(&dd) { - m_embeddedFile = new EmbeddedFileData(); - m_embeddedFile->embfile = embfile; } EmbeddedFile::~EmbeddedFile() { - delete m_embeddedFile->embfile; delete m_embeddedFile; } diff --git a/qt4/src/poppler-private.h b/qt4/src/poppler-private.h index a104bf87..ea36e7e3 100644 --- a/qt4/src/poppler-private.h +++ b/qt4/src/poppler-private.h @@ -41,6 +41,7 @@ #endif #include "poppler-qt4.h" +#include "poppler-embeddedfile-private.h" class LinkDest; class FormWidget; @@ -164,7 +165,7 @@ namespace Poppler { // we have some embedded documents, build the list for (int yalv = 0; yalv < numEmb; ++yalv) { EmbFile *ef = doc->getCatalog()->embeddedFile(yalv); - m_embeddedFiles.append(new EmbeddedFile(ef)); + m_embeddedFiles.append(new EmbeddedFile(*new EmbeddedFileData(ef))); } } } diff --git a/qt4/src/poppler-qt4.h b/qt4/src/poppler-qt4.h index b43a3dd7..8119a251 100644 --- a/qt4/src/poppler-qt4.h +++ b/qt4/src/poppler-qt4.h @@ -305,6 +305,7 @@ delete it; Container class for an embedded file with a PDF document */ class POPPLER_QT4_EXPORT EmbeddedFile { + friend class DocumentData; public: /// \cond PRIVATE EmbeddedFile(EmbFile *embfile); @@ -377,6 +378,7 @@ delete it; private: Q_DISABLE_COPY(EmbeddedFile) + EmbeddedFile(EmbeddedFileData &dd); EmbeddedFileData *m_embeddedFile; }; |