From d9aa870e5d509cc7309ab82dd102a937ab58613a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Thu, 9 Feb 2017 04:36:04 -0500 Subject: Imported Upstream version 3.1.1+dfsg1 --- Plugins/PdfExport/pdfexport.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'Plugins/PdfExport/pdfexport.cpp') diff --git a/Plugins/PdfExport/pdfexport.cpp b/Plugins/PdfExport/pdfexport.cpp index 38389a1..f47f5a6 100644 --- a/Plugins/PdfExport/pdfexport.cpp +++ b/Plugins/PdfExport/pdfexport.cpp @@ -21,11 +21,12 @@ void PdfExport::deinit() safe_delete(textOption); } -QPagedPaintDevice* PdfExport::createPaintDevice(const QString& documentTitle) +QPagedPaintDevice* PdfExport::createPaintDevice(const QString& documentTitle, bool &takeOwnership) { QPdfWriter* pdfWriter = new QPdfWriter(output); pdfWriter->setTitle(documentTitle); pdfWriter->setCreator(tr("SQLiteStudio v%1").arg(SQLITESTUDIO->getVersionString())); + takeOwnership = true; return pdfWriter; } @@ -309,8 +310,11 @@ bool PdfExport::isBinaryData() const bool PdfExport::beginDoc(const QString& title) { safe_delete(painter); - safe_delete(pagedWriter); - pagedWriter = createPaintDevice(title); + + if (takeDeviceOwnership) + safe_delete(pagedWriter); + + pagedWriter = createPaintDevice(title, takeDeviceOwnership); if (!pagedWriter) return false; @@ -330,7 +334,8 @@ void PdfExport::endDoc() void PdfExport::cleanupAfterExport() { safe_delete(painter); - safe_delete(pagedWriter); + if (takeDeviceOwnership) + safe_delete(pagedWriter); } void PdfExport::setupConfig() -- cgit v1.2.3