Author: jghali
Date: Thu Jun  4 10:31:21 2020
New Revision: 23873

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23873
Log:
Some refactoring related to print engines

Modified:
    trunk/Scribus/scribus/plugins/scriptplugin/objprinter.cpp
    trunk/Scribus/scribus/plugins/scriptplugin_py2x/objprinter.cpp
    trunk/Scribus/scribus/scprintengine.h
    trunk/Scribus/scribus/scprintengine_gdi.cpp
    trunk/Scribus/scribus/scprintengine_gdi.h
    trunk/Scribus/scribus/scprintengine_ps.cpp
    trunk/Scribus/scribus/scprintengine_ps.h
    trunk/Scribus/scribus/scribus.cpp
    trunk/Scribus/scribus/ui/printpreview.cpp

Modified: trunk/Scribus/scribus/plugins/scriptplugin/objprinter.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/plugins/scriptplugin/objprinter.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/objprinter.cpp   (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/objprinter.cpp   Thu Jun  4 
10:31:21 2020
@@ -442,8 +442,8 @@
                bool printDone = false;
                if (PrinterUtil::getDefaultSettings(prn, options.devMode))
                {
-                       ScPrintEngine_GDI winPrint;
-                       printDone = winPrint.print(*currentDoc, options);
+                       ScPrintEngine_GDI winPrint(*currentDoc);
+                       printDone = winPrint.print(options);
                }
                if (!printDone)
                        PyErr_SetString(PyExc_SystemError, "Printing failed");

Modified: trunk/Scribus/scribus/plugins/scriptplugin_py2x/objprinter.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/plugins/scriptplugin_py2x/objprinter.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin_py2x/objprinter.cpp      
(original)
+++ trunk/Scribus/scribus/plugins/scriptplugin_py2x/objprinter.cpp      Thu Jun 
 4 10:31:21 2020
@@ -442,8 +442,8 @@
                bool printDone = false;
                if (PrinterUtil::getDefaultSettings(prn, options.devMode))
                {
-                       ScPrintEngine_GDI winPrint;
-                       printDone = winPrint.print(*currentDoc, options);
+                       ScPrintEngine_GDI winPrint(*currentDoc);
+                       printDone = winPrint.print(options);
                }
                if (!printDone)
                        PyErr_SetString(PyExc_SystemError, "Printing failed");

Modified: trunk/Scribus/scribus/scprintengine.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/scprintengine.h
==============================================================================
--- trunk/Scribus/scribus/scprintengine.h       (original)
+++ trunk/Scribus/scribus/scprintengine.h       Thu Jun  4 10:31:21 2020
@@ -16,19 +16,19 @@
 {
        Q_OBJECT
 
-protected:
+public:
+       ScPrintEngine(ScribusDoc& doc) : m_doc(doc) {}
+       virtual ~ScPrintEngine() {}
 
-       bool    m_abort;
-       QString m_errorMessage;
-
-       ScPrintEngine() { m_abort = false; }
-
-public:
-       virtual ~ScPrintEngine() {}
-       virtual bool print(ScribusDoc& doc, PrintOptions& options) = 0;
+       virtual bool print(PrintOptions& options) = 0;
        virtual const QString& errorMessage(void) { return m_errorMessage; }
 
 public slots:
        void cancelRequested(void) { m_abort = true; }
+
+protected:
+       ScribusDoc& m_doc;
+       bool    m_abort { false };
+       QString m_errorMessage;
 };
 #endif

Modified: trunk/Scribus/scribus/scprintengine_gdi.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/scprintengine_gdi.cpp
==============================================================================
--- trunk/Scribus/scribus/scprintengine_gdi.cpp (original)
+++ trunk/Scribus/scribus/scprintengine_gdi.cpp Thu Jun  4 10:31:21 2020
@@ -62,7 +62,7 @@
        BYTE  data[32768];
 } sPSPassthrough;
 
-ScPrintEngine_GDI::ScPrintEngine_GDI(void) : ScPrintEngine()
+ScPrintEngine_GDI::ScPrintEngine_GDI(ScribusDoc& doc) : ScPrintEngine(doc)
 {
        m_abort = false;
        m_forceGDI = false;
@@ -79,7 +79,7 @@
        //m_forceGDI = false;
 }
 
-bool ScPrintEngine_GDI::print(ScribusDoc& doc, PrintOptions& options)
+bool ScPrintEngine_GDI::print(PrintOptions& options)
 {
        bool toFile;
        bool success;
@@ -96,7 +96,7 @@
        toFile = printerUseFilePort(options.printer);
        if (toFile)
        {
-               QString docName = doc.documentFileName();
+               QString docName = m_doc.documentFileName();
                diaSelection = docName.right(docName.length() - 
docName.lastIndexOf("/") - 1);
                diaSelection = diaSelection.left(diaSelection.indexOf("."));
                diaSelection += ".prn";
@@ -106,12 +106,12 @@
                        docDir = dirs->get("winprn", prefsDocDir);
                else
                        docDir = ".";
-               CustomFDialog dia(doc.scMW()->view, docDir, QObject::tr("Save 
As"), "Spool Files (*.prn *.ps);;All Files (*)", fdNone);
+               CustomFDialog dia(m_doc.scMW()->view, docDir, QObject::tr("Save 
As"), "Spool Files (*.prn *.ps);;All Files (*)", fdNone);
                dia.setSelection(diaSelection);
                if (dia.exec() == QDialog::Accepted)
                {
                        QString selectedFile = dia.selectedFile();
-                       if (overwrite(doc.scMW()->view, selectedFile))
+                       if (overwrite(m_doc.scMW()->view, selectedFile))
                        {
                                dirs->set("winprn", 
selectedFile.left(selectedFile.lastIndexOf("/")));
                                fileName = 
QDir::toNativeSeparators(selectedFile);
@@ -122,13 +122,13 @@
        }
 
        // Set user options in the DEVmode structure
-       setDeviceParams(&doc, options, (DEVMODEW*) devMode.data());
+       setDeviceParams(options, (DEVMODEW*) devMode.data());
                
        // Create the device context
        printerDC = CreateDCW(nullptr, (LPCWSTR) printerName.utf16(), nullptr, 
(DEVMODEW*) devMode.data());
        if (printerDC)
        {
-               success = printPages(&doc, options, printerDC, (DEVMODEW*) 
devMode.data(), fileName);
+               success = printPages(options, printerDC, (DEVMODEW*) 
devMode.data(), fileName);
                DeleteDC(printerDC);
        }
        else
@@ -140,7 +140,7 @@
        return success;
 }
 
-bool ScPrintEngine_GDI::gdiPrintPreview(ScribusDoc* doc, ScPage* page, QImage* 
image, PrintOptions& options, double scale)
+bool ScPrintEngine_GDI::gdiPrintPreview(ScPage* page, QImage* image, 
PrintOptions& options, double scale)
 {
        bool success = true;
        HCOLORSPACE hColorSpace  = nullptr;
@@ -148,7 +148,7 @@
        double scalex = 1, scaley = 1;
        bool rotate = false;
 
-       if (!doc || !page || !image)
+       if (!page || !image)
                return false;
        resetData();
 
@@ -174,7 +174,7 @@
        if (options.mirrorV) dy += cliph;
         
        // Create the GDI painters
-       ScPageOutput pageOutput(doc, false);
+       ScPageOutput pageOutput(&m_doc, false);
        QRect drawRect(0, 0, imagew, imageh);
 
        cairo_surface_t* surface = 
cairo_image_surface_create_for_data(image->bits(), CAIRO_FORMAT_ARGB32, imagew, 
imageh, imagew*4);
@@ -186,7 +186,7 @@
                cairo_surface_destroy(surface);
                return false;
        }
-       ScPainterEx_Cairo painter(context, drawRect, doc, !options.useColor);
+       ScPainterEx_Cairo painter(context, drawRect, &m_doc, !options.useColor);
        
        scalex *= scale;
        scaley *= scale;
@@ -203,7 +203,7 @@
        return success;
 }
 
-bool ScPrintEngine_GDI::printPages(ScribusDoc* doc, PrintOptions& options, HDC 
printerDC, DEVMODEW* devMode, QString& fileName)
+bool ScPrintEngine_GDI::printPages(PrintOptions& options, HDC printerDC, 
DEVMODEW* devMode, QString& fileName)
 {
        int  jobId;
        QScopedPointer<MultiProgressDialog> progress;
@@ -220,7 +220,7 @@
        printPageFunc = (useGDI) ? &ScPrintEngine_GDI::printPage_GDI : 
&ScPrintEngine_GDI::printPage_PS;
 
        // Setup document infos structure
-       wcsncpy (docName, (const WCHAR*) doc->documentFileName().utf16(), 511);
+       wcsncpy (docName, (const WCHAR*) m_doc.documentFileName().utf16(), 511);
        ZeroMemory(&docInfo, sizeof(docInfo));
        docInfo.cbSize = sizeof(docInfo);
        docInfo.lpszDocName = docName;
@@ -255,7 +255,7 @@
        bool usingGui = ScCore->usingGUI();
        if (usingGui)
        {
-               progress.reset(new 
MultiProgressDialog(QObject::tr("Printing..."), CommonStrings::tr_Cancel, 
doc->scMW()));
+               progress.reset(new 
MultiProgressDialog(QObject::tr("Printing..."), CommonStrings::tr_Cancel, 
m_doc.scMW()));
                progress->setOverallTotalSteps(options.pageNumbers.size());
                progress->setOverallProgress(0);
                connect(progress.data(), SIGNAL(canceled()), this, 
SLOT(cancelRequested()));
@@ -266,8 +266,8 @@
        {
                if (usingGui)
                        progress->setOverallProgress(index);
-               docPage = doc->Pages->at(options.pageNumbers[index] - 1);
-               success = (this->*printPageFunc)(doc, docPage, options, 
printerDC, context);
+               docPage = m_doc.Pages->at(options.pageNumbers[index] - 1);
+               success = (this->*printPageFunc)(docPage, options, printerDC, 
context);
                ScQApp->processEvents();
                if (!success || m_abort)
                        break;
@@ -288,7 +288,7 @@
        return success;
 }
 
-bool ScPrintEngine_GDI::printPage_GDI(ScribusDoc* doc, ScPage* page, 
PrintOptions& options, HDC printerDC, cairo_t* context)
+bool ScPrintEngine_GDI::printPage_GDI(ScPage* page, PrintOptions& options, HDC 
printerDC, cairo_t* context)
 {
        int logPixelsX;
        int logPixelsY;
@@ -311,8 +311,8 @@
        if (isPostscriptPrinter(printerDC))
        {
                success = false;
-               QString mProf = 
doc->prefsData().colorPrefs.DCMSset.DefaultSolidColorRGBProfile;
-               QString pProf = 
doc->prefsData().colorPrefs.DCMSset.DefaultPrinterProfile;
+               QString mProf = 
m_doc.prefsData().colorPrefs.DCMSset.DefaultSolidColorRGBProfile;
+               QString pProf = 
m_doc.prefsData().colorPrefs.DCMSset.DefaultPrinterProfile;
                if (ScCore->MonitorProfiles.contains(mProf) && 
ScCore->PrinterProfiles.contains(pProf))
                {
                        inputProfile   = 
QDir::toNativeSeparators(ScCore->InputProfiles[mProf]);
@@ -400,11 +400,11 @@
         
        // Create the GDI painter
        MarksOptions marksOptions(options);
-       ScPageOutput pageOutput(doc, true, 300, true);
+       ScPageOutput pageOutput(&m_doc, true, 300, true);
        pageOutput.setMarksOptions(marksOptions);
        
        QRect drawRect(0, 0, physicalWidth, physicalHeight);
-       ScPainterEx_Cairo painter(context, drawRect, doc, !options.useColor);
+       ScPainterEx_Cairo painter(context, drawRect, &m_doc, !options.useColor);
        painter.clear();
        
        scalex *= (logPixelsX / 72.0);
@@ -425,7 +425,7 @@
        return success;
 }
 
-bool ScPrintEngine_GDI::printPage_PS(ScribusDoc* doc, ScPage* page, 
PrintOptions& options, HDC printerDC, cairo_t* /*context*/)
+bool ScPrintEngine_GDI::printPage_PS(ScPage* page, PrintOptions& options, HDC 
printerDC, cairo_t* /*context*/)
 {
        bool succeed = false;
        PrintOptions options2 = options;
@@ -437,7 +437,7 @@
        options2.includePDFMarks = false;
 
        tempFilePath = ScPaths::tempFileDir() + "/tmp.ps";
-       PSLib *dd = new PSLib(doc, options2, PSLib::OutputEPS);
+       PSLib *dd = new PSLib(&m_doc, options2, PSLib::OutputEPS);
        ret = dd->createPS(tempFilePath);
        delete dd;
        if (ret != 0) return false;
@@ -447,8 +447,8 @@
                QString tmp;
                QStringList opts;
                QString tempFilePath2 = ScPaths::tempFileDir() + "/tmp2.ps";
-               opts.append( 
QString("-dDEVICEWIDTHPOINTS=%1").arg(tmp.setNum(doc->pageWidth())));
-               opts.append( 
QString("-dDEVICEHEIGHTPOINTS=%1").arg(tmp.setNum(doc->pageHeight())));
+               opts.append( 
QString("-dDEVICEWIDTHPOINTS=%1").arg(tmp.setNum(m_doc.pageWidth())));
+               opts.append( 
QString("-dDEVICEHEIGHTPOINTS=%1").arg(tmp.setNum(m_doc.pageHeight())));
                if (QFile::exists(tempFilePath2))
                        QFile::remove(tempFilePath2);
                ret = convertPS2PS(tempFilePath, tempFilePath2, opts, 
options.prnEngine);
@@ -476,7 +476,7 @@
        return succeed;
 }
 
-bool ScPrintEngine_GDI::printPage_PS_Sep(ScribusDoc* doc, ScPage* page, 
PrintOptions& options, HDC printerDC, cairo_t* context)
+bool ScPrintEngine_GDI::printPage_PS_Sep(ScPage* page, PrintOptions& options, 
HDC printerDC, cairo_t* context)
 {
        bool succeed = true;
        QStringList separations;
@@ -488,7 +488,7 @@
        {
                PrintOptions tempOptions = options;
                tempOptions.separationName = separations.at(i);
-               succeed &= printPage_PS(doc, page, tempOptions, printerDC, 
context);
+               succeed &= printPage_PS(page, tempOptions, printerDC, context);
                if (!succeed) break;
        }
        return succeed;
@@ -616,7 +616,7 @@
        return ((fileSize == bw) && (br >= 0));
 }
 
-void ScPrintEngine_GDI::setDeviceParams(ScribusDoc* doc, PrintOptions& 
options, DEVMODEW* devMode)
+void ScPrintEngine_GDI::setDeviceParams(PrintOptions& options, DEVMODEW* 
devMode)
 {
        HANDLE handle;
        QString printer = options.printer;
@@ -633,7 +633,7 @@
        }
 
        OpenPrinterW((LPWSTR) printer.utf16(), &handle, nullptr);
-       DocumentPropertiesW((HWND) doc->scMW()->winId(), handle, (LPWSTR) 
printer.utf16(), devMode, devMode, DM_IN_BUFFER | DM_OUT_BUFFER);
+       DocumentPropertiesW((HWND) m_doc.scMW()->winId(), handle, (LPWSTR) 
printer.utf16(), devMode, devMode, DM_IN_BUFFER | DM_OUT_BUFFER);
        ClosePrinter(handle);
 }
 

Modified: trunk/Scribus/scribus/scprintengine_gdi.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/scprintengine_gdi.h
==============================================================================
--- trunk/Scribus/scribus/scprintengine_gdi.h   (original)
+++ trunk/Scribus/scribus/scprintengine_gdi.h   Thu Jun  4 10:31:21 2020
@@ -22,7 +22,7 @@
 {
 
 public:
-       ScPrintEngine_GDI(void);
+       ScPrintEngine_GDI(ScribusDoc& doc);
 
        /*! \brief Force use of gdi even on ps printers
        \param force if gdi should be forced
@@ -36,7 +36,7 @@
        \retval bool return true if no error occurred 
        \author Jean Ghali
        */
-       virtual bool print(ScribusDoc& doc, PrintOptions& options);
+       bool print(PrintOptions& options) override;
 
        /*! \brief Draw print preview to an image using gdi method
        \param doc the document whose page is to be preview
@@ -47,7 +47,7 @@
        \retval bool true on success 
        \author Jean Ghali
        */
-       bool gdiPrintPreview( ScribusDoc* doc, ScPage* page, QImage* image, 
PrintOptions& options, double scale = 1.0 );
+       bool gdiPrintPreview(ScPage* page, QImage* image, PrintOptions& 
options, double scale = 1.0);
 
        /*! \brief Get the default printer name
        \retval QString the default printer name on success or an empty string 
@@ -57,11 +57,11 @@
 
 protected:
 
-       bool m_forceGDI;
+       bool m_forceGDI { false };
 
        void resetData(void);
 
-       typedef bool (ScPrintEngine_GDI::*PrintPageFunc) (ScribusDoc* doc, 
ScPage* page, PrintOptions& options, HDC printerDC, cairo_t* context);
+       typedef bool (ScPrintEngine_GDI::*PrintPageFunc) (ScPage* page, 
PrintOptions& options, HDC printerDC, cairo_t* context);
 
        /*! \brief Print selected pages to a printer or a file
        \param doc the document whose pages are to be printer
@@ -72,7 +72,7 @@
        \retval bool true on success 
        \author Jean Ghali
        */
-       bool printPages(ScribusDoc* doc, PrintOptions& options, HDC printerDC, 
DEVMODEW* devMode, QString& fileName);
+       bool printPages(PrintOptions& options, HDC printerDC, DEVMODEW* 
devMode, QString& fileName);
 
        /*! \brief Print a page to a gdi printer
        Print a page using GDI drawing code ( works on all printers : PS, PCL, 
GDI... )
@@ -84,7 +84,7 @@
        \retval bool true on success 
        \author Jean Ghali
        */
-       bool printPage_GDI(ScribusDoc* doc, ScPage* page, PrintOptions& 
options, HDC printerDC, cairo_t* context);
+       bool printPage_GDI(ScPage* page, PrintOptions& options, HDC printerDC, 
cairo_t* context);
 
        /*! \brief Print a page to a PostScript printer using passthroughs
        Print a page using PS drawing code and PS passthroughs ( works on PS 
printers only )
@@ -96,7 +96,7 @@
        \retval bool true on success 
        \author Jean Ghali
        */
-       bool printPage_PS (ScribusDoc* doc, ScPage* page, PrintOptions& 
options, HDC printerDC, cairo_t* context);
+       bool printPage_PS (ScPage* page, PrintOptions& options, HDC printerDC, 
cairo_t* context);
 
        /*! \brief Print a page separations to a PostScript printer using 
passthroughs
        Print a page using PS drawing code and PS passthroughs ( works on PS 
printers only )
@@ -108,7 +108,7 @@
        \retval bool true on success 
        \author Jean Ghali
        */
-       bool printPage_PS_Sep(ScribusDoc* doc, ScPage* page, PrintOptions& 
options, HDC printerDC, cairo_t* context);
+       bool printPage_PS_Sep(ScPage* page, PrintOptions& options, HDC 
printerDC, cairo_t* context);
 
        /*! \brief Send a file to printer using PostScript Passthrough
        Send a postscript file to a printer using ps passthrough ( works on PS 
printers only )
@@ -128,7 +128,7 @@
        \param devMode pointer to a DEVMODE structure
        \author Jean Ghali
        */
-       void setDeviceParams(ScribusDoc* doc, PrintOptions& options, DEVMODEW* 
devMode);
+       void setDeviceParams(PrintOptions& options, DEVMODEW* devMode);
 
        /*! \brief Get support for PostScript Passthrough
        Get ps passthrough support and escape code

Modified: trunk/Scribus/scribus/scprintengine_ps.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/scprintengine_ps.cpp
==============================================================================
--- trunk/Scribus/scribus/scprintengine_ps.cpp  (original)
+++ trunk/Scribus/scribus/scprintengine_ps.cpp  Thu Jun  4 10:31:21 2020
@@ -14,11 +14,16 @@
 #include "util_file.h"
 #include "util_ghostscript.h"
 
-bool ScPrintEngine_PS::print(ScribusDoc& doc, PrintOptions& options)
+ScPrintEngine_PS::ScPrintEngine_PS(ScribusDoc& doc)
+       : ScPrintEngine(doc)
 {
-       bool retw = false;
+
+}
+
+bool ScPrintEngine_PS::print(PrintOptions& options)
+{
        QString filename(options.filename);
-       PSLib *dd = new PSLib(&doc, options, PSLib::OutputPS);
+       PSLib *dd = new PSLib(&m_doc, options, PSLib::OutputPS);
        if (dd == nullptr)
                return false;
 
@@ -42,39 +47,38 @@
                // use gs to convert our PS to a lower version
                QString tmp;
                QStringList opts;
-               opts.append( 
QString("-dDEVICEWIDTHPOINTS=%1").arg(tmp.setNum(doc.pageWidth())) );
-               opts.append( 
QString("-dDEVICEHEIGHTPOINTS=%1").arg(tmp.setNum(doc.pageHeight())) );
+               opts.append( 
QString("-dDEVICEWIDTHPOINTS=%1").arg(tmp.setNum(m_doc.pageWidth())) );
+               opts.append( 
QString("-dDEVICEHEIGHTPOINTS=%1").arg(tmp.setNum(m_doc.pageHeight())) );
                convertPS2PS(filename, filename + ".tmp", opts, 
options.prnEngine);
                moveFile(filename + ".tmp", filename);
        }
-       if (!options.toFile)
+       if (options.toFile)
+               return true;
+
+       // Print and delete the PS file
+       QByteArray cmd;
+       if (options.useAltPrintCommand)
        {
-               // print and delete the PS file
-               QByteArray cmd;
-               if (options.useAltPrintCommand)
-               {
-                       cmd += options.printerCommand;
-                       cmd += " ";
-                       cmd += filename;
-                       system(cmd.data());
-               }
-               else
-               {
-                       QByteArray cc;
-                       cmd += "lpr -P '";
-                       cmd += options.printer;
-                       cmd += "'";
-                       if (options.copies > 1)
-                               cmd += " -#" + cc.setNum(options.copies);
-                       cmd += options.printerOptions;
-                       cmd += " "+filename;
-                       system(cmd.data());
-               }
-               // Disabled that for now, as kprinter won't work otherwise
-               // leaving that file around doesn't harm, as it will be 
overwritten the next time.
-               // unlink(filename);
+               cmd += options.printerCommand;
+               cmd += " ";
+               cmd += filename;
+               system(cmd.data());
        }
+       else
+       {
+               QByteArray cc;
+               cmd += "lpr -P '";
+               cmd += options.printer;
+               cmd += "'";
+               if (options.copies > 1)
+                       cmd += " -#" + cc.setNum(options.copies);
+               cmd += options.printerOptions;
+               cmd += " " + filename;
+               system(cmd.data());
+       }
+       // Disabled that for now, as kprinter won't work otherwise
+       // leaving that file around doesn't harm, as it will be overwritten the 
next time.
+       // unlink(filename);
 
-       retw = true;
-       return retw;
+       return true;
 }

Modified: trunk/Scribus/scribus/scprintengine_ps.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/scprintengine_ps.h
==============================================================================
--- trunk/Scribus/scribus/scprintengine_ps.h    (original)
+++ trunk/Scribus/scribus/scprintengine_ps.h    Thu Jun  4 10:31:21 2020
@@ -12,8 +12,10 @@
 class ScPrintEngine_PS : public ScPrintEngine
 {
 public:
+       ScPrintEngine_PS(ScribusDoc& doc);
        ~ScPrintEngine_PS() {}
-       virtual bool print(ScribusDoc& doc, PrintOptions& options);
+
+       bool print(PrintOptions& options) override;
 };
 
 #endif

Modified: trunk/Scribus/scribus/scribus.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp   (original)
+++ trunk/Scribus/scribus/scribus.cpp   Thu Jun  4 10:31:21 2020
@@ -4595,10 +4595,10 @@
        SHORT shiftState = GetKeyState( VK_SHIFT );
        bool  forceGDI = ( shiftState & 0x8000 ) ? true : false;
        if (doc->Print_Options.toFile)
-               prnEngine = dynamic_cast<ScPrintEngine*>(new 
ScPrintEngine_PS());
+               prnEngine = dynamic_cast<ScPrintEngine*>(new 
ScPrintEngine_PS(*doc));
        else
        {
-               ScPrintEngine_GDI* gdiEngine = new ScPrintEngine_GDI();
+               ScPrintEngine_GDI* gdiEngine = new ScPrintEngine_GDI(*doc);
                gdiEngine->setForceGDI( forceGDI );
                prnEngine = dynamic_cast<ScPrintEngine*>(gdiEngine);
        }
@@ -4607,7 +4607,7 @@
 #endif
        if (prnEngine)
        {
-               printDone = prnEngine->print(*doc, options);
+               printDone = prnEngine->print(options);
                if (!printDone)
                        error = prnEngine->errorMessage();
                delete prnEngine;

Modified: trunk/Scribus/scribus/ui/printpreview.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23873&path=/trunk/Scribus/scribus/ui/printpreview.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/printpreview.cpp   (original)
+++ trunk/Scribus/scribus/ui/printpreview.cpp   Thu Jun  4 10:31:21 2020
@@ -482,7 +482,7 @@
        {
                QImage image;
                ScPage* page;
-               ScPrintEngine_GDI winPrint;
+               ScPrintEngine_GDI winPrint(*doc);
                PrintOptions options;
                page = doc->Pages->at(pageIndex);
                options.copies = 1;
@@ -496,7 +496,7 @@
                options.toFile = false;
                options.useColor = !useGray->isChecked();
                options.useSpotColors = false;
-               bool done = winPrint.gdiPrintPreview(doc, page, &image, 
options, res / 72.0);
+               bool done = winPrint.gdiPrintPreview(page, &image, options, res 
/ 72.0);
                if (done)
                        image.save( ScPaths::tempFileDir() + "/sc.png", "PNG" );
                return (done ? 0 : 1);


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to