diff --git a/gui/previewgenerator.h b/gui/previewgenerator.h index 515f9c0..07a923b 100644 --- a/gui/previewgenerator.h +++ b/gui/previewgenerator.h @@ -9,7 +9,7 @@ class PreviewGenerator { public: - virtual PreviewResult *generate(RenderConfig config, QString documentPath, unsigned int page) = 0; + virtual QSharedPointer generate(RenderConfig config, QString documentPath, unsigned int page) = 0; virtual ~PreviewGenerator() { } diff --git a/gui/previewgeneratormapfunctor.cpp b/gui/previewgeneratormapfunctor.cpp index 02ecb3c..4645525 100644 --- a/gui/previewgeneratormapfunctor.cpp +++ b/gui/previewgeneratormapfunctor.cpp @@ -10,16 +10,15 @@ void PreviewGeneratorMapFunctor::setRenderConfig(RenderConfig config) this->renderConfig = config; } -QSharedPointer PreviewGeneratorMapFunctor::operator()(const QSharedPointer &renderResult) +QByteArray PreviewGeneratorMapFunctor::operator()(const RenderTarget &renderTarget) { - QFileInfo info{renderResult->getDocumentPath()}; + QFileInfo info{renderTarget.path}; PreviewGenerator *previewGenerator = PreviewGenerator::get(info); if(previewGenerator == nullptr) { - return QSharedPointer(); + return QByteArray{}; } - auto preview = - previewGenerator->generate(this->renderConfig, renderResult->getDocumentPath(), renderResult->getPage()); + auto preview = previewGenerator->generate(this->renderConfig, renderTarget.path, renderTarget.page); - return QSharedPointer(preview); + return preview->serialize(); } diff --git a/gui/previewgeneratormapfunctor.h b/gui/previewgeneratormapfunctor.h index b390df3..0825d6a 100644 --- a/gui/previewgeneratormapfunctor.h +++ b/gui/previewgeneratormapfunctor.h @@ -2,8 +2,9 @@ #define PREVIEWGENERATORMAPFUNCTOR_H #include "renderconfig.h" -#include "previewgenerator.h" +#include "rendertarget.h" +#include "previewgenerator.h" class PreviewGeneratorMapFunctor { @@ -16,13 +17,13 @@ class PreviewGeneratorMapFunctor RenderConfig renderConfig; public: - typedef QSharedPointer result_type; + typedef QByteArray result_type; PreviewGeneratorMapFunctor(); void setRenderConfig(RenderConfig config); - QSharedPointer operator()(const QSharedPointer &renderResult); + QByteArray operator()(const RenderTarget &renderTarget); }; #endif // PREVIEWGENERATORMAPFUNCTOR_H diff --git a/gui/previewgeneratorpdf.cpp b/gui/previewgeneratorpdf.cpp index 092d5c6..be81f1e 100644 --- a/gui/previewgeneratorpdf.cpp +++ b/gui/previewgeneratorpdf.cpp @@ -1,6 +1,5 @@ #include #include - #include "previewgeneratorpdf.h" static QMutex cacheMutex; @@ -24,18 +23,18 @@ Poppler::Document *PreviewGeneratorPdf::document(QString path) return result; } -PreviewResult *PreviewGeneratorPdf::generate(RenderConfig config, QString documentPath, unsigned int page) +QSharedPointer PreviewGeneratorPdf::generate(RenderConfig config, QString documentPath, + unsigned int page) { PreviewResultPdf *result = new PreviewResultPdf(documentPath, page); - Poppler::Document *doc = document(documentPath); if(doc == nullptr) { - return result; + return QSharedPointer(result); } if(doc->isLocked()) { - return result; + return QSharedPointer(result); } int p = (int)page - 1; if(p < 0) @@ -55,5 +54,5 @@ PreviewResult *PreviewGeneratorPdf::generate(RenderConfig config, QString docume } } result->previewImage = img; - return result; + return QSharedPointer(result); } diff --git a/gui/previewgeneratorpdf.h b/gui/previewgeneratorpdf.h index 29bd586..74c63ff 100644 --- a/gui/previewgeneratorpdf.h +++ b/gui/previewgeneratorpdf.h @@ -13,7 +13,7 @@ class PreviewGeneratorPdf : public PreviewGenerator public: using PreviewGenerator::PreviewGenerator; - PreviewResult *generate(RenderConfig config, QString documentPath, unsigned int page); + QSharedPointer generate(RenderConfig config, QString documentPath, unsigned int page); ~PreviewGeneratorPdf() { diff --git a/gui/previewgeneratorplaintext.cpp b/gui/previewgeneratorplaintext.cpp index a0e4656..4fcaac7 100644 --- a/gui/previewgeneratorplaintext.cpp +++ b/gui/previewgeneratorplaintext.cpp @@ -3,13 +3,14 @@ #include "previewgeneratorplaintext.h" #include "previewresultplaintext.h" -PreviewResult *PreviewGeneratorPlainText::generate(RenderConfig config, QString documentPath, unsigned int page) +QSharedPointer PreviewGeneratorPlainText::generate(RenderConfig config, QString documentPath, + unsigned int page) { PreviewResultPlainText *result = new PreviewResultPlainText(documentPath, page); QFile file(documentPath); if(!file.open(QFile::ReadOnly | QFile::Text)) { - return result; + return QSharedPointer(result); } QTextStream in(&file); @@ -77,5 +78,5 @@ PreviewResult *PreviewGeneratorPlainText::generate(RenderConfig config, QString header += "
"; result->setText(header + resulText.replace("\n", "
")); - return result; + return QSharedPointer(result); } diff --git a/gui/previewgeneratorplaintext.h b/gui/previewgeneratorplaintext.h index be7cc00..49c62bb 100644 --- a/gui/previewgeneratorplaintext.h +++ b/gui/previewgeneratorplaintext.h @@ -6,7 +6,7 @@ class PreviewGeneratorPlainText : public PreviewGenerator { public: using PreviewGenerator::PreviewGenerator; - PreviewResult *generate(RenderConfig config, QString documentPath, unsigned int page); + QSharedPointer generate(RenderConfig config, QString documentPath, unsigned int page); }; #endif // PREVIEWGENERATORPLAINTEXT_H