Author: jghali
Date: Fri May 22 01:17:58 2020
New Revision: 23825

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23825
Log:
Simplify handling of some PDF export parameters related to PDF/X output profile

Modified:
    trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.cpp
    trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.h
    trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp
    trunk/Scribus/scribus/colormgmt/sccolorprofile.h
    trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h
    trunk/Scribus/scribus/colormgmt/sclcms2colormgmtengineimpl.h
    trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp
    trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h
    trunk/Scribus/scribus/pdflib.cpp
    trunk/Scribus/scribus/pdflib.h
    trunk/Scribus/scribus/pdflib_core.cpp
    trunk/Scribus/scribus/pdflib_core.h
    trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp
    trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp
    trunk/Scribus/scribus/scribus.cpp
    trunk/Scribus/scribus/scribus.h
    trunk/Scribus/scribus/ui/pdfexportdialog.cpp
    trunk/Scribus/scribus/ui/pdfexportdialog.h
    trunk/Scribus/scribus/ui/tabpdfoptions.cpp

Modified: trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.cpp
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.cpp   (original)
+++ trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.cpp   Fri May 22 
01:17:58 2020
@@ -68,3 +68,33 @@
        }
        return colorSpace;
 }
+
+int ScColorMgmtEngineData::channelsOfColorspace(eColorSpaceType colorspace)
+{
+       if (colorspace == ColorSpace_Unknown)
+               return 0;
+       if (colorspace == ColorSpace_XYZ)
+               return 3;
+       if (colorspace == ColorSpace_Lab)
+               return 3;
+       if (colorspace == ColorSpace_Luv)
+               return 3;
+       if (colorspace == ColorSpace_YCbCr)
+               return 3;
+       if (colorspace == ColorSpace_Yxy)
+               return 3;
+       if (colorspace == ColorSpace_Rgb)
+               return 3;
+       if (colorspace == ColorSpace_Gray)
+               return 1;
+       if (colorspace == ColorSpace_Hsv)
+               return 3;
+       if (colorspace == ColorSpace_Hls)
+               return 3;
+       if (colorspace == ColorSpace_Cmyk)
+               return 4;
+       if (colorspace == ColorSpace_Cmy)
+               return 3;
+
+       return 0;
+}

Modified: trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.h     (original)
+++ trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.h     Fri May 22 
01:17:58 2020
@@ -64,6 +64,8 @@
                                                 eRenderIntent proofingIntent, 
long transformFlags) = 0;
 
        virtual ScColorSpace createColorSpace(ScColorProfile& profile, 
eColorFormat colorFormat);
+
+       static int channelsOfColorspace(eColorSpaceType colorspace);
 };
 
 #endif

Modified: trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp  (original)
+++ trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp  Fri May 22 01:17:58 2020
@@ -26,11 +26,32 @@
        return ColorSpace_Unknown;
 }
 
+eColorSpaceType ScColorProfile::connectionSpace() const
+{
+       if (m_data)
+               return m_data->connectionSpace();
+       return ColorSpace_Unknown;
+}
+
 eProfileClass ScColorProfile::deviceClass() const
 {
        if (m_data)
                return m_data->deviceClass();
        return Class_Unknown;
+}
+
+int ScColorProfile::channelsOfColorSpace() const
+{
+       if (m_data)
+               return m_data->channelsOfColorSpace();
+       return 0;
+}
+
+int ScColorProfile::channelsOfConnectionSpace() const
+{
+       if (m_data)
+               return m_data->channelsOfConnectionSpace();
+       return 0;
 }
 
 QString ScColorProfile::dataHash() const

Modified: trunk/Scribus/scribus/colormgmt/sccolorprofile.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sccolorprofile.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolorprofile.h    (original)
+++ trunk/Scribus/scribus/colormgmt/sccolorprofile.h    Fri May 22 01:17:58 2020
@@ -36,7 +36,11 @@
        QString productDescription() const;
        
        eColorSpaceType colorSpace()  const;
+       eColorSpaceType connectionSpace()  const;
        eProfileClass   deviceClass() const;
+
+       int channelsOfColorSpace() const;
+       int channelsOfConnectionSpace() const;
        
        const ScColorProfileData* data() const { return m_data.data(); }
        QString dataHash() const;

Modified: trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h        (original)
+++ trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h        Fri May 22 
01:17:58 2020
@@ -30,7 +30,12 @@
 
        virtual bool isNull() const = 0;
        virtual eColorSpaceType colorSpace()  const = 0;
+       virtual eColorSpaceType connectionSpace() const = 0;
        virtual eProfileClass   deviceClass() const = 0;
+
+       virtual int channelsOfColorSpace() const = 0;
+       virtual int channelsOfConnectionSpace() const = 0;
+
        virtual bool    isSuitableForOutput() const = 0;
        virtual QString productDescription() const = 0;
        virtual bool    save(QByteArray& profileData) const = 0;

Modified: trunk/Scribus/scribus/colormgmt/sclcms2colormgmtengineimpl.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sclcms2colormgmtengineimpl.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sclcms2colormgmtengineimpl.h        
(original)
+++ trunk/Scribus/scribus/colormgmt/sclcms2colormgmtengineimpl.h        Fri May 
22 01:17:58 2020
@@ -47,7 +47,7 @@
                                                                                
         const ScColorProfile& proofProfile , eRenderIntent renderIntent,
                                                                                
         eRenderIntent proofingIntent, long transformFlags) override;
 
-       protected:
+protected:
 
        // Color profile cache
        static QSharedPointer<ScColorProfileCache> m_profileCache;

Modified: trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp (original)
+++ trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp Fri May 22 
01:17:58 2020
@@ -32,11 +32,38 @@
        return ColorSpace_Unknown;
 }
 
+eColorSpaceType ScLcms2ColorProfileImpl::connectionSpace()  const
+{
+       if (m_profileHandle)
+               return ScLcms2ColorMgmtEngineImpl::translateLcmsColorSpaceType( 
cmsGetPCS(m_profileHandle) );
+       return ColorSpace_Unknown;
+}
+
 eProfileClass ScLcms2ColorProfileImpl::deviceClass() const
 {
        if (m_profileHandle)
                return ScLcms2ColorMgmtEngineImpl::translateLcmsProfileClass( 
cmsGetDeviceClass(m_profileHandle) );
        return Class_Unknown;
+}
+
+int ScLcms2ColorProfileImpl::channelsOfColorSpace() const
+{
+       if (m_profileHandle)
+       {
+               eColorSpaceType colorspace = 
ScLcms2ColorMgmtEngineImpl::translateLcmsColorSpaceType( 
cmsGetColorSpace(m_profileHandle) );
+               return 
ScLcms2ColorMgmtEngineImpl::channelsOfColorspace(colorspace);
+       }
+       return 0;
+}
+
+int ScLcms2ColorProfileImpl::channelsOfConnectionSpace() const
+{
+       if (m_profileHandle)
+       {
+               eColorSpaceType colorspace = 
ScLcms2ColorMgmtEngineImpl::translateLcmsColorSpaceType( 
cmsGetPCS(m_profileHandle) );
+               return 
ScLcms2ColorMgmtEngineImpl::channelsOfColorspace(colorspace);
+       }
+       return 0;
 }
 
 bool ScLcms2ColorProfileImpl::isSuitableForOutput() const

Modified: trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h   (original)
+++ trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h   Fri May 22 
01:17:58 2020
@@ -24,8 +24,13 @@
 
        bool isNull() const override;
 
-       eColorSpaceType colorSpace()  const override;
+       eColorSpaceType colorSpace() const override;
+       eColorSpaceType connectionSpace() const override;
        eProfileClass   deviceClass() const override;
+
+       int channelsOfColorSpace() const override;
+       int channelsOfConnectionSpace() const override;
+
        bool            isSuitableForOutput() const override;
        QString         productDescription() const override;
        bool            save(QByteArray& profileData) const override;

Modified: trunk/Scribus/scribus/pdflib.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/pdflib.cpp
==============================================================================
--- trunk/Scribus/scribus/pdflib.cpp    (original)
+++ trunk/Scribus/scribus/pdflib.cpp    Fri May 22 01:17:58 2020
@@ -8,15 +8,20 @@
        Q_ASSERT(m_impl);
 }
 
+PDFlib::PDFlib(ScribusDoc & docu, const PDFOptions& options)
+        : m_impl( new PDFLibCore(docu, options) )
+{
+
+}
+
 PDFlib::~PDFlib()
 {
        delete static_cast<PDFLibCore*>(m_impl);
 }
 
-bool PDFlib::doExport(const QString& fn, const QString& nam, int Components,
-                         const std::vector<int> & pageNs, const QMap<int, 
QImage>& thumbs)
+bool PDFlib::doExport(const QString& fn, const std::vector<int> & pageNs, 
const QMap<int, QImage>& thumbs)
 {
-       return static_cast<PDFLibCore*>(m_impl)->doExport(fn, nam, Components, 
pageNs, thumbs);
+       return static_cast<PDFLibCore*>(m_impl)->doExport(fn, pageNs, thumbs);
 }
 
 const QString& PDFlib::errorMessage()

Modified: trunk/Scribus/scribus/pdflib.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/pdflib.h
==============================================================================
--- trunk/Scribus/scribus/pdflib.h      (original)
+++ trunk/Scribus/scribus/pdflib.h      Fri May 22 01:17:58 2020
@@ -39,6 +39,7 @@
         * \param docu Document to use in export process
         */
        explicit PDFlib(ScribusDoc & docu);
+       explicit PDFlib(ScribusDoc & docu, const PDFOptions& options);
 
        ~PDFlib();
 
@@ -46,13 +47,10 @@
         * Perform an export.
         *
         * \param fn Output file name
-        * \param nam ??
-        * \param Components ??
         * \param pageNs List of pages from document to be exported as 
sequential PDF pages
         * \param thumbs A mapping of input (document) page numbers to 
pre-rendered thumbnails.
         */
-       bool doExport(const QString& fn, const QString& nam, int Components,
-                                 const std::vector<int> & pageNs, const 
QMap<int, QImage>& thumbs);
+       bool doExport(const QString& fn, const std::vector<int> & pageNs, const 
QMap<int, QImage>& thumbs);
 
        /**
         * Return an error message in case export has failed.

Modified: trunk/Scribus/scribus/pdflib_core.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/pdflib_core.cpp
==============================================================================
--- trunk/Scribus/scribus/pdflib_core.cpp       (original)
+++ trunk/Scribus/scribus/pdflib_core.cpp       Fri May 22 01:17:58 2020
@@ -525,10 +525,16 @@
 };
 
 PDFLibCore::PDFLibCore(ScribusDoc & docu)
+       : PDFLibCore(docu, docu.pdfOptions())
+{
+       
+}
+
+PDFLibCore::PDFLibCore(ScribusDoc & docu, const PDFOptions& options)
        : QObject(&docu),
        doc(docu),
        ActPageP(nullptr),
-       Options(doc.pdfOptions()),
+       Options(options),
        Bvie(nullptr),
        ucs2Codec(nullptr),
        ResNam("RE"),
@@ -543,11 +549,6 @@
        bleedDisplacementX(0),
        bleedDisplacementY(0)
 {
-//     KeyGen.resize(32);
-//     OwnerKey.resize(32);
-//     UserKey.resize(32);
-//     FileID.resize(16);
-//     EncryKey.resize(5);
        Catalog.Outlines = 2;
        Catalog.PageTree = 3;
        Catalog.Dest = 4;
@@ -556,11 +557,7 @@
        Outlines.Count = 0;
        pageData.ObjNum = 0;
        pageData.Thumb = 0;
-//     int kg_array[] = {0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 
0x00, 0x4e, 0x56, 0xff, 0xfa,
-//                       0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 
0x80, 0x2f, 0x0c, 0xa9, 0xfe,
-//                       0x64, 0x53, 0x69, 0x7a};
-//     for (int a = 0; a < 32; ++a)
-//             KeyGen[a] = kg_array[a];
+
        if (usingGUI)
        {
                progressDialog = new MultiProgressDialog( tr("Saving PDF"), 
CommonStrings::tr_Cancel, doc.scMW());
@@ -603,8 +600,7 @@
        return false;
 }
 
-bool PDFLibCore::doExport(const QString& fn, const QString& nam, int 
Components,
-                                         const std::vector<int> & pageNs, 
const QMap<int, QImage> & thumbs)
+bool PDFLibCore::doExport(const QString& fn, const std::vector<int> & pageNs, 
const QMap<int, QImage> & thumbs)
 {
        QImage thumb;
        bool ret = false, error = false;
@@ -687,7 +683,7 @@
                if (!abortExport)
                {
                        if (PDF_IsPDFX(doc.pdfOptions().Version))
-                               ret = 
PDF_End_Doc(ScCore->PrinterProfiles[doc.pdfOptions().PrintProf], nam, 
Components);
+                               ret = 
PDF_End_Doc(ScCore->PrinterProfiles[doc.pdfOptions().PrintProf]);
                        else
                                ret = PDF_End_Doc();
                }
@@ -1004,8 +1000,6 @@
        delete rc4Encode;
        return (succeed ? bytesWritten : 0);
 }
-
-
 
 bool PDFLibCore::PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, const 
QMap<QString, QMap<uint, FPointArray> >& DocFonts, BookMView* vi)
 {
@@ -10911,7 +10905,7 @@
        return true;
 }
 
-bool PDFLibCore::PDF_End_Doc(const QString& PrintPr, const QString& Name, int 
Components)
+bool PDFLibCore::PDF_End_Doc(const QString& outputProfilePath)
 {
        PDF_End_Bookmarks();
        PDF_End_Resources();
@@ -10922,7 +10916,9 @@
        PDF_End_JavaScripts();
        PDF_End_Articles();
        PDF_End_Layers();
-       PDF_End_OutputProfile(PrintPr, Name, Components);
+       bool success = PDF_End_OutputProfile(outputProfilePath);
+       if (!success)
+               return false;
        PDF_End_Metadata();
        return PDF_End_XRefAndTrailer();
 }
@@ -11304,51 +11300,50 @@
        }
 }
 
-void PDFLibCore::PDF_End_OutputProfile(const QString& PrintPr, const QString& 
Name, int Components)
-{
-       if (PDF_IsPDFX())
-       {
-               PdfId profileObj =writer.startObj();
-               QByteArray dataP;
-               loadRawBytes(PrintPr, dataP);
-               PutDoc("<<\n");
-               if (Options.Compress)
-               {
-                       QByteArray compData = CompressArray(dataP);
-                       if (compData.size() > 0)
-                       {
-                               PutDoc("/Filter /FlateDecode\n");
-                               dataP = compData;
-                       }
-               }
-               PutDoc("/Length " + Pdf::toPdf(dataP.size() + 1) + "\n");
-               PutDoc("/N " + Pdf::toPdf(Components) + "\n");
-               PutDoc(">>\nstream\n");
-               PutDoc(dataP);
-               PutDoc("\nendstream");
-               writer.endObj(profileObj);
-
-//             if ((Options.Version == PDFVersion::PDF_X4) && 
(Options.useLayers))
-//             {
-//                     XRef[9] = bytesWritten();
-//                     PutDoc("10 0 obj\n");
-//             }
-//             if ((Options.Version == PDFVersion::PDF_X3) || (Options.Version 
== PDFVersion::PDF_X1a) || ((Options.Version == PDFVersion::PDF_X4) && 
!(Options.useLayers)))
-//             {
-//                     XRef[8] = bytesWritten();
-//                     PutDoc("9 0 obj\n");
-//             }
+bool PDFLibCore::PDF_End_OutputProfile(const QString& profilePath)
+{
+       if (!PDF_IsPDFX())
+               return true;
+
+       PdfId profileObj = writer.startObj();
+       QByteArray dataP;
+       if (!loadRawBytes(profilePath, dataP))
+               return false;
+
+       ScColorProfile colorProfile = doc.colorEngine.openProfileFromMem(dataP);
+       if (colorProfile.isNull())
+               return false;
+       QString profileDesc = colorProfile.productDescription();
+       int components = colorProfile.channelsOfColorSpace();
+
+       PutDoc("<<\n");
+       if (Options.Compress)
+       {
+               QByteArray compData = CompressArray(dataP);
+               if (compData.size() > 0)
+               {
+                       PutDoc("/Filter /FlateDecode\n");
+                       dataP = compData;
+               }
+       }
+       PutDoc("/Length " + Pdf::toPdf(dataP.size() + 1) + "\n");
+       PutDoc("/N " + Pdf::toPdf(components) + "\n");
+       PutDoc(">>\nstream\n");
+       PutDoc(dataP);
+       PutDoc("\nendstream");
+       writer.endObj(profileObj);
                
-               writer.startObj(writer.OutputIntentObj);
-
-               PutDoc("<<\n/Type /OutputIntent\n/S /GTS_PDFX\n");
-               PutDoc("/DestOutputProfile " + Pdf::toObjRef(profileObj) + 
"\n");
-               PutDoc("/OutputConditionIdentifier (Custom)\n");
-               PutDoc("/Info " + Pdf::toLiteralString(Options.Info) + "\n");
-               PutDoc("/OutputCondition " + Pdf::toLiteralString(Name) + "\n");
-               PutDoc(">>");
-               writer.endObj(writer.OutputIntentObj);
-       }
+       writer.startObj(writer.OutputIntentObj);
+
+       PutDoc("<<\n/Type /OutputIntent\n/S /GTS_PDFX\n");
+       PutDoc("/DestOutputProfile " + Pdf::toObjRef(profileObj) + "\n");
+       PutDoc("/OutputConditionIdentifier (Custom)\n");
+       PutDoc("/Info " + Pdf::toLiteralString(Options.Info) + "\n");
+       PutDoc("/OutputCondition " + Pdf::toLiteralString(profileDesc) + "\n");
+       PutDoc(">>");
+       writer.endObj(writer.OutputIntentObj);
+
+       return true;
 }
 
 void PDFLibCore::PDF_End_Metadata()

Modified: trunk/Scribus/scribus/pdflib_core.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/pdflib_core.h
==============================================================================
--- trunk/Scribus/scribus/pdflib_core.h (original)
+++ trunk/Scribus/scribus/pdflib_core.h Fri May 22 01:17:58 2020
@@ -65,8 +65,10 @@
 
 public:
        explicit PDFLibCore(ScribusDoc & docu);
+       explicit PDFLibCore(ScribusDoc & docu, const PDFOptions& options);
        ~PDFLibCore();
-       bool doExport(const QString& fn, const QString& nam, int Components, 
const std::vector<int> & pageNs, const QMap<int, QImage> & thumbs);
+
+       bool doExport(const QString& fn, const std::vector<int> & pageNs, const 
QMap<int, QImage> & thumbs);
 
        const QString& errorMessage() const;
        bool  exportAborted() const;
@@ -125,7 +127,7 @@
        bool PDF_ProcessMasterElements(const ScLayer& layer, const ScPage* 
page, uint PNr);
        bool PDF_ProcessPageElements(const ScLayer& layer, const ScPage* page, 
uint PNr);
        
-       bool PDF_End_Doc(const QString& PrintPr = "", const QString& Name = "", 
int Components = 0);
+       bool PDF_End_Doc(const QString& outputProfilePath = QString());
        void PDF_End_Bookmarks();
        void PDF_End_Resources();
        void PDF_End_Outlines();
@@ -135,7 +137,7 @@
        void PDF_End_JavaScripts();
        void PDF_End_Articles();
        void PDF_End_Layers();
-       void PDF_End_OutputProfile(const QString& PrintPr, const QString& Name, 
int Components);
+       bool PDF_End_OutputProfile(const QString& profilePath);
        void PDF_End_Metadata();
        bool PDF_End_XRefAndTrailer();
        bool closeAndCleanup();

Modified: trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp   (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp   Fri May 22 
01:17:58 2020
@@ -1261,8 +1261,6 @@
 
 // copied from file scribus.cpp
 //void ScribusMainWindow::SaveAsPDF()
-       int Components = 3;
-       QString nam = "";
        if 
(ScCore->primaryMainWindow()->bookmarkPalette->BView->topLevelItemCount() == 0)
                pdfOptions.Bookmarks = false;
 
@@ -1457,15 +1455,6 @@
                                pdfOptions.Version == PDFVersion::PDF_X3 ||
                                pdfOptions.Version == PDFVersion::PDF_X4)
                        {
-                               ScColorProfile profile;
-                               profile = 
ScCore->defaultEngine.openProfileFromFile(ScCore->PrinterProfiles[pdfOptions.PrintProf]);
-                               nam = profile.productDescription();
-                               if (profile.colorSpace() == ColorSpace_Rgb)
-                                       Components = 3;
-                               if (profile.colorSpace() == ColorSpace_Cmyk)
-                                       Components = 4;
-                               if (profile.colorSpace() == ColorSpace_Cmy)
-                                       Components = 3;
                                pdfOptions.Info = 
PyUnicode_asQString(self->info);
                                pdfOptions.Encrypt = false;
                                pdfOptions.PresentMode = false;
@@ -1523,7 +1512,7 @@
        pdfOptions.firstUse = false;
 
        QString errorMessage;
-       bool success = ScCore->primaryMainWindow()->getPDFDriver(fn, nam, 
Components, pageNs, thumbs, errorMessage);
+       bool success = ScCore->primaryMainWindow()->getPDFDriver(fn, pageNs, 
thumbs, errorMessage);
        if (!success) {
                fn  = "Cannot write the File: " + fn;
                if (!errorMessage.isEmpty())

Modified: trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp      
(original)
+++ trunk/Scribus/scribus/plugins/scriptplugin_py2x/objpdffile.cpp      Fri May 
22 01:17:58 2020
@@ -336,7 +336,7 @@
        QString tf = pdfOptions.fileName;
        if (tf.isEmpty()) {
                QFileInfo fi = QFileInfo(currentDoc->documentFileName());
-               tf = fi.path()+"/"+fi.baseName()+".pdf";
+               tf = fi.path() + "/" + fi.baseName() + ".pdf";
        }
        PyObject *file = nullptr;
        file = PyString_FromString(tf.toLatin1());
@@ -414,10 +414,9 @@
 
 // set to print all pages
        PyObject *pages = nullptr;
-       int num = 0;
        // which one should I use ???
        // new = ScCore->primaryMainWindow()->view->Pages.count()
-       num = currentDoc->Pages->count();
+       int num = currentDoc->Pages->count();
        pages = PyList_New(num);
        if (!pages){
                PyErr_SetString(PyExc_SystemError, "Can not initialize 'pages' 
attribute");
@@ -485,7 +484,6 @@
        self->presentation = pdfOptions.PresentMode;
        // set effects values for all pages
        PyObject *effval = nullptr;
-       num = 0;
        // which one should I use ???
        // new = ScCore->primaryMainWindow()->view->Pages.count();
        num = currentDoc->Pages->count();
@@ -933,7 +931,7 @@
                return -1;
        }
        int n = PyInt_AsLong(value);
-       if (n!=0 && (n<35 || n>PyInt_AsLong(self->resolution))) {
+       if (n != 0 && (n < 35 || n > PyInt_AsLong(self->resolution))) {
                PyErr_SetString(PyExc_TypeError, "'downsample' value must be 0 
or in interval from 35 to value of 'resolution'");
                return -1;
        }
@@ -1263,8 +1261,6 @@
 
 // copied from file scribus.cpp
 //void ScribusMainWindow::SaveAsPDF()
-       int Components = 3;
-       QString nam = "";
        if 
(ScCore->primaryMainWindow()->bookmarkPalette->BView->topLevelItemCount() == 0)
                pdfOptions.Bookmarks = false;
 
@@ -1330,7 +1326,7 @@
        pdfOptions.fileName = fn;
 // apply pages attribute
        std::vector<int> pageNs;
-       int nn=PyList_Size(self->pages);
+       int nn = PyList_Size(self->pages);
        for (int i = 0; i < nn; ++i) {
                pageNs.push_back((int)PyInt_AsLong(PyList_GetItem(self->pages, 
i)));
        }
@@ -1404,8 +1400,7 @@
 //                     return nullptr;
 //             }
 //             pdfOptions.LPISettings[QString(s)]=lpi;
-               QString st;
-               st = QString(PyString_AsString(PyList_GetItem(t,0)));
+               QString st = QString(PyString_AsString(PyList_GetItem(t,0)));
                lpi.Frequency = PyInt_AsLong(PyList_GetItem(t, 1));
                lpi.Angle = PyInt_AsLong(PyList_GetItem(t, 2));
                lpi.SpotFunc = PyInt_AsLong(PyList_GetItem(t, 3));
@@ -1460,15 +1455,6 @@
                                pdfOptions.Version == PDFVersion::PDF_X3 ||
                                pdfOptions.Version == PDFVersion::PDF_X4)
                        {
-                               ScColorProfile profile;
-                               profile = 
ScCore->defaultEngine.openProfileFromFile(ScCore->PrinterProfiles[pdfOptions.PrintProf]);
-                               nam = profile.productDescription();
-                               if (profile.colorSpace() == ColorSpace_Rgb)
-                                       Components = 3;
-                               if (profile.colorSpace() == ColorSpace_Cmyk)
-                                       Components = 4;
-                               if (profile.colorSpace() == ColorSpace_Cmy)
-                                       Components = 3;
                                pdfOptions.Info = PyString_AsString(self->info);
                                pdfOptions.Encrypt = false;
                                pdfOptions.PresentMode = false;
@@ -1526,7 +1512,7 @@
        pdfOptions.firstUse = false;
 
        QString errorMessage;
-       bool success = ScCore->primaryMainWindow()->getPDFDriver(fn, nam, 
Components, pageNs, thumbs, errorMessage);
+       bool success = ScCore->primaryMainWindow()->getPDFDriver(fn, pageNs, 
thumbs, errorMessage);
        if (!success) {
                fn  = "Cannot write the File: " + fn;
                if (!errorMessage.isEmpty())

Modified: trunk/Scribus/scribus/scribus.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp   (original)
+++ trunk/Scribus/scribus/scribus.cpp   Fri May 22 01:17:58 2020
@@ -7156,13 +7156,13 @@
        }
 }
 
-bool ScribusMainWindow::getPDFDriver(const QString &filename, const QString 
&name, int components, const std::vector<int> & pageNumbers,
+bool ScribusMainWindow::getPDFDriver(const QString &filename, const 
std::vector<int> & pageNumbers,
                                                                         const 
QMap<int, QImage>& thumbs, QString& error, bool* cancelled)
 {
        ScCore->fileWatcher->forceScan();
        ScCore->fileWatcher->stop();
        PDFlib pdflib(*doc);
-       bool ret = pdflib.doExport(filename, name, components, pageNumbers, 
thumbs);
+       bool ret = pdflib.doExport(filename, pageNumbers, thumbs);
        if (!ret)
                error = pdflib.errorMessage();
        if (cancelled)
@@ -7248,8 +7248,6 @@
        std::vector<int> pageNs;
        uint pageNumbersSize;
        QMap<int, QImage> allThumbs, thumbs;
-       int components = dia.colorSpaceComponents();
-       QString nam(dia.cmsDescriptor());
        QString fileName = doc->pdfOptions().fileName;
        QString errorMsg;
        parsePagesString(pageString, &pageNs, doc->DocPages.count());
@@ -7305,8 +7303,8 @@
                        if (doc->pdfOptions().Thumbnails)
                                thumb = allThumbs[pageNs[aa]];
                        thumbs.insert(1, thumb);
-                       QString realName = 
QDir::toNativeSeparators(path+"/"+name+ tr("-Page%1").arg(pageNs[aa], 3, 10, 
QChar('0'))+"."+ext);
-                       if (!getPDFDriver(realName, nam, components, pageNs2, 
thumbs, errorMsg, &cancelled))
+                       QString realName = QDir::toNativeSeparators(path + "/" 
+ name + tr("-Page%1").arg(pageNs[aa], 3, 10, QChar('0')) + "." + ext);
+                       if (!getPDFDriver(realName, pageNs2, thumbs, errorMsg, 
&cancelled))
                        {
                                qApp->restoreOverrideCursor();
                                QString message = tr("Cannot write the file: 
\n%1").arg(doc->pdfOptions().fileName);
@@ -7320,7 +7318,7 @@
        }
        else
        {
-               if (!getPDFDriver(fileName, nam, components, pageNs, allThumbs, 
errorMsg))
+               if (!getPDFDriver(fileName, pageNs, allThumbs, errorMsg))
                {
                        qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor));
                        QString message = tr("Cannot write the file: 
\n%1").arg(doc->pdfOptions().fileName);

Modified: trunk/Scribus/scribus/scribus.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/scribus.h
==============================================================================
--- trunk/Scribus/scribus/scribus.h     (original)
+++ trunk/Scribus/scribus/scribus.h     Fri May 22 01:17:58 2020
@@ -164,7 +164,7 @@
        void applyNewMaster(const QString& name);
        void updateRecent(const QString& fn);
        void doPasteRecent(const QString& data);
-       bool getPDFDriver(const QString & filename, const QString & name, int 
components, const std::vector<int> & pageNumbers, const QMap<int, QImage> & 
thumbs, QString& error, bool* cancelled = nullptr);
+       bool getPDFDriver(const QString & filename, const std::vector<int> & 
pageNumbers, const QMap<int, QImage> & thumbs, QString& error, bool* cancelled 
= nullptr);
        bool DoSaveAsEps(const QString& fn, QString& error);
        QString CFileDialog(const QString& workingDirectory = ".", const 
QString& dialogCaption = "", const QString& fileFilter = "", const QString& 
defNa = "",
                                                int optionFlags = 
fdExistingFiles, bool *useCompression = 0, bool *useFonts = 0, bool 
*useProfiles = 0);

Modified: trunk/Scribus/scribus/ui/pdfexportdialog.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/ui/pdfexportdialog.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/pdfexportdialog.cpp        (original)
+++ trunk/Scribus/scribus/ui/pdfexportdialog.cpp        Fri May 22 01:17:58 2020
@@ -56,8 +56,6 @@
        m_doc(currView->m_doc),
        m_opts(pdfOptions),
        m_unitRatio(currView->m_doc->unitRatio()),
-       m_cmsDescriptor(""),
-       m_components(3),
        m_printerProfiles(printerProfiles)
 {
        setModal(true);
@@ -386,14 +384,6 @@
                                m_opts.PrintProf = 
Options->PrintProfC->currentText();
                                if ((m_opts.Version == PDFVersion::PDF_X3) || 
(m_opts.Version == PDFVersion::PDF_X1a) || (m_opts.Version == 
PDFVersion::PDF_X4))
                                {
-                                       ScColorProfile hIn = 
m_doc->colorEngine.openProfileFromFile( m_printerProfiles[m_opts.PrintProf] );
-                                       m_cmsDescriptor = 
hIn.productDescription();
-                                       if (hIn.colorSpace() == ColorSpace_Rgb)
-                                               m_components = 3;
-                                       if (hIn.colorSpace() == ColorSpace_Cmyk)
-                                               m_components = 4;
-                                       if (hIn.colorSpace() == ColorSpace_Cmy)
-                                               m_components = 3;
                                        m_opts.Info = 
Options->InfoString->text();
                                        m_opts.Encrypt = false;
                                        m_opts.MirrorH = false;
@@ -412,16 +402,6 @@
        }
 }
 
-const QString& PDFExportDialog::cmsDescriptor()
-{
-       return m_cmsDescriptor;
-}
-
-int PDFExportDialog::colorSpaceComponents()
-{
-       return m_components;
-}
-
 QString PDFExportDialog::getPagesString()
 {
        if (Options->AllPages->isChecked())

Modified: trunk/Scribus/scribus/ui/pdfexportdialog.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/ui/pdfexportdialog.h
==============================================================================
--- trunk/Scribus/scribus/ui/pdfexportdialog.h  (original)
+++ trunk/Scribus/scribus/ui/pdfexportdialog.h  Fri May 22 01:17:58 2020
@@ -50,8 +50,6 @@
        ~PDFExportDialog() {};
 
        void updateDocOptions();
-       const QString &cmsDescriptor();
-       int colorSpaceComponents();
        QString getPagesString();
 
 protected slots:
@@ -80,8 +78,6 @@
        QList<PDFPresentationData> m_presEffects;
        PDFOptions & m_opts;
        double m_unitRatio;
-       QString m_cmsDescriptor;
-       int m_components;
        const ProfilesL & m_printerProfiles;
 };
 

Modified: trunk/Scribus/scribus/ui/tabpdfoptions.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23825&path=/trunk/Scribus/scribus/ui/tabpdfoptions.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/tabpdfoptions.cpp  (original)
+++ trunk/Scribus/scribus/ui/tabpdfoptions.cpp  Fri May 22 01:17:58 2020
@@ -462,10 +462,9 @@
        hideToolBar->setChecked(Opts.hideToolBar);
        hideMenuBar->setChecked(Opts.hideMenuBar);
        fitWindow->setChecked(Opts.fitWindow);
-       QMap<QString,QString>::Iterator itja;
        actionCombo->clear();
        actionCombo->addItem( tr("No Script"));
-       for (itja = m_Doc->JavaScripts.begin(); itja != 
m_Doc->JavaScripts.end(); ++itja)
+       for (auto itja = m_Doc->JavaScripts.begin(); itja != 
m_Doc->JavaScripts.end(); ++itja)
                actionCombo->addItem(itja.key());
        if (m_Doc->JavaScripts.contains(Opts.openAction))
                setCurrentComboItem(actionCombo, Opts.openAction);


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

Reply via email to