summaryrefslogtreecommitdiff
path: root/qt4
diff options
context:
space:
mode:
authorPino Toscano <pino@kde.org>2011-05-25 16:12:02 +0200
committerPino Toscano <pino@kde.org>2011-05-25 16:12:02 +0200
commita264e5385b2d0fee5126b3d0e57d42d34cafa45d (patch)
treede887cae1996b40cad1a0a331579aca50efe6431 /qt4
parent232bfa1c59013637fd7e858e22194becb636ad21 (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.h3
-rw-r--r--qt4/src/poppler-embeddedfile.cc21
-rw-r--r--qt4/src/poppler-private.h3
-rw-r--r--qt4/src/poppler-qt4.h2
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;
};