Author: jghali
Date: Sun Aug 12 11:36:52 2018
New Revision: 22624

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22624
Log:
Backport r22573: simplify Ghostscript versions handling by concatenating major 
and minor versions into a single number

Modified:
    branches/Version14x/Scribus/scribus/preview.cpp
    branches/Version14x/Scribus/scribus/preview.h
    branches/Version14x/Scribus/scribus/scimgdataloader_ps.cpp
    branches/Version14x/Scribus/scribus/util_ghostscript.cpp
    branches/Version14x/Scribus/scribus/util_ghostscript.h

Modified: branches/Version14x/Scribus/scribus/preview.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22624&path=/branches/Version14x/Scribus/scribus/preview.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/preview.cpp     (original)
+++ branches/Version14x/Scribus/scribus/preview.cpp     Sun Aug 12 11:36:52 2018
@@ -105,7 +105,7 @@
        fGray = false;
        scaleFactor = 1.0;
        SMode = 1;
-       getNumericGSVersion(GsMajor, GsMinor);
+       getNumericGSVersion(GsVersion);
        PLayout = new QVBoxLayout(this);
        PLayout->setMargin(0);
        PLayout->setSpacing(0);
@@ -627,7 +627,7 @@
                args.append( "-dTextAlphaBits=4" );
                args.append( "-dGraphicsAlphaBits=4" );
        }
-       if ((doc->HasCMS) && (GsMinor >= 0) && (GsMajor >= 9))
+       if ((doc->HasCMS) && (GsVersion >= 900))
        {
                args.append("-sDefaultCMYKProfile=" + 
QDir::toNativeSeparators(doc->DocPrinterProf.profilePath()));
                if (EnableCMYK->isChecked() && HaveTiffSep)
@@ -635,7 +635,7 @@
                else
                        args.append("-sOutputICCProfile=" + 
QDir::toNativeSeparators(doc->DocOutputProf.profilePath()));
        }
-       else if (ScCore->haveCMS() && (GsMinor >= 0) && (GsMajor >= 9))
+       else if (ScCore->haveCMS() && (GsVersion >= 900))
        {
                args.append("-sDefaultCMYKProfile=" + 
QDir::toNativeSeparators(ScCore->defaultCMYKProfile.profilePath()));
                if (EnableCMYK->isChecked() && HaveTiffSep)
@@ -727,12 +727,12 @@
                args1.append("-dTextAlphaBits=4");
                args1.append("-dGraphicsAlphaBits=4");
        }
-       if ((doc->HasCMS) && (GsMinor >= 0) && (GsMajor >= 9))
+       if ((doc->HasCMS) && (GsVersion >= 900))
        {
                args1.append("-sDefaultCMYKProfile=" + 
QDir::toNativeSeparators(doc->DocPrinterProf.profilePath()));
                args1.append("-sOutputICCProfile=" + 
QDir::toNativeSeparators(doc->DocPrinterProf.profilePath()));
        }
-       else if (ScCore->haveCMS() && (GsMinor >= 0) && (GsMajor >= 9))
+       else if (ScCore->haveCMS() && (GsVersion >= 900))
        {
                args1.append("-sDefaultCMYKProfile=" + 
QDir::toNativeSeparators(ScCore->defaultCMYKProfile.profilePath()));
                args1.append("-sOutputICCProfile=" + 
QDir::toNativeSeparators(ScCore->defaultCMYKProfile.profilePath()));
@@ -965,9 +965,9 @@
                        CMSettings cms(doc, "", Intent_Perceptual);
                        if (flagsVisible["Cyan"]->isChecked())
                        {
-                               if ((GsMinor < 54) && (GsMajor < 9))
+                               if (GsVersion < 854)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.tif.Cyan.tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
-                               else if ((GsMajor < 9) || ((GsMajor == 9) && 
(GsMinor <= 5)))
+                               else if (GsVersion <= 905)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.Cyan.tif", 1, cms, false, false, 
ScImage::RGBData, 72, &mode);
                                else
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc(Cyan).tif", 1, cms, false, false, 
ScImage::RGBData, 72, &mode);
@@ -983,9 +983,9 @@
                        }
                        if (flagsVisible["Magenta"]->isChecked())
                        {
-                               if ((GsMinor < 54) && (GsMajor < 9))
+                               if (GsVersion < 854)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.tif.Magenta.tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
-                               else if ((GsMajor < 9) || ((GsMajor == 9) && 
(GsMinor <= 5)))
+                               else if (GsVersion <= 905)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.Magenta.tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
                                else
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc(Magenta).tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
@@ -1001,9 +1001,9 @@
                        }
                        if (flagsVisible["Yellow"]->isChecked())
                        {
-                               if ((GsMinor < 54) && (GsMajor < 9))
+                               if (GsVersion < 854)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.tif.Yellow.tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
-                               else if ((GsMajor < 9) || ((GsMajor == 9) && 
(GsMinor <= 5)))
+                               else if (GsVersion <= 905)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.Yellow.tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
                                else
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc(Yellow).tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
@@ -1026,9 +1026,9 @@
                                        if (checkBox && checkBox->isChecked())
                                        {
                                                QString fnam;
-                                               if ((GsMinor < 54) && (GsMajor 
< 9))
+                                               if (GsVersion < 854)
                                                        fnam = 
QString(ScPaths::getTempFileDir()+"/sc.tif.s%1.tif").arg(sepit.value());
-                                               else if ((GsMajor < 9) || 
((GsMajor == 9) && (GsMinor <= 5)))
+                                               else if (GsVersion <= 905)
                                                        fnam = 
QString(ScPaths::getTempFileDir()+"/sc.s%1.tif").arg(sepit.value());
                                                else
                                                        fnam = 
QString(ScPaths::getTempFileDir()+"/sc(%1).tif").arg(sepit.key());
@@ -1047,9 +1047,9 @@
                        if (flagsVisible["Black"]->isChecked())
                        {
                                CMSettings cms(doc, "", Intent_Perceptual);
-                               if ((GsMinor < 54) && (GsMajor < 9))
+                               if (GsVersion < 854)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.tif.Black.tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);
-                               else if ((GsMajor < 9) || ((GsMajor == 9) && 
(GsMinor <= 5)))
+                               else if (GsVersion <= 905)
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc.Black.tif", 1, cms, false, false, 
ScImage::RGBData, 72, &mode);
                                else
                                        loaderror = 
im.LoadPicture(ScPaths::getTempFileDir()+"/sc(Black).tif", 1, cms, false, 
false, ScImage::RGBData, 72, &mode);

Modified: branches/Version14x/Scribus/scribus/preview.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22624&path=/branches/Version14x/Scribus/scribus/preview.h
==============================================================================
--- branches/Version14x/Scribus/scribus/preview.h       (original)
+++ branches/Version14x/Scribus/scribus/preview.h       Sun Aug 12 11:36:52 2018
@@ -103,8 +103,7 @@
        int APage;
        int MPage;
        int SMode;
-       int GsMajor;
-       int GsMinor;
+       int GsVersion;
        int inkMax;
        bool CMode;
        bool GsAl;

Modified: branches/Version14x/Scribus/scribus/scimgdataloader_ps.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22624&path=/branches/Version14x/Scribus/scribus/scimgdataloader_ps.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/scimgdataloader_ps.cpp  (original)
+++ branches/Version14x/Scribus/scribus/scimgdataloader_ps.cpp  Sun Aug 12 
11:36:52 2018
@@ -727,9 +727,8 @@
        QString ext = fi.suffix().toLower();
        QString tmpFile = QDir::toNativeSeparators(ScPaths::getTempFileDir() + 
"sc1.png");
        int retg;
-       int GsMajor;
-       int GsMinor;
-       getNumericGSVersion(GsMajor, GsMinor);
+       int GsVersion;
+       getNumericGSVersion(GsVersion);
        ScTextStream ts2(&BBox, QIODevice::ReadOnly);
        ts2 >> x >> y >> b >> h;
        h = h * gsRes / 72.0;
@@ -737,7 +736,7 @@
                args.append("-dEPSCrop");
        if (psMode == 4)
                args.append("-dGrayValues=256");
-       if ((GsMajor >= 8) && (GsMinor >= 53))
+       if (GsVersion >= 853)
                args.append("-dNOPSICC");               // prevent GS from 
applying an embedded ICC profile as it will be applied later on in ScImage.
        args.append("-r"+QString::number(gsRes));
        args.append("-sOutputFile=" + tmpFile);

Modified: branches/Version14x/Scribus/scribus/util_ghostscript.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22624&path=/branches/Version14x/Scribus/scribus/util_ghostscript.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/util_ghostscript.cpp    (original)
+++ branches/Version14x/Scribus/scribus/util_ghostscript.cpp    Sun Aug 12 
11:36:52 2018
@@ -148,25 +148,24 @@
        args.append( "-dNOPAUSE" );
        args.append( "-dPARANOIDSAFER" );
        args.append( "-dBATCH" );
-       if( level == 2 )
-       {
-               int major = 0, minor = 0;
+       if (level == 2)
+       {
+               int gsVersion = 0;
                // ps2write cannot be detected with testGSAvailability()
                // so determine availability according to gs version.
-               getNumericGSVersion(major, minor);
-               if ((major >=8 && minor >= 53) || major > 8)
+               getNumericGSVersion(gsVersion);
+               if (gsVersion >= 853)
                        args.append( "-sDEVICE=ps2write" );
                else
                {
                        args.append( "-sDEVICE=pswrite" );
                        args.append( QString("-dLanguageLevel=%1").arg(level) );
-               }
-                       
+               }       
        }
        else
        {
                args.append( "-sDEVICE=pswrite" );
-               if(level <= 3)
+               if (level <= 3)
                        args.append( QString("-dLanguageLevel=%1").arg(level) );
        }
        args += opts;
@@ -242,6 +241,18 @@
        if (proc.exitStatus()==QProcess::NormalExit)
                gsVer = proc.readAllStandardOutput();
        return gsVer;
+}
+
+bool getNumericGSVersion(int &version)
+{
+       int gsMajor(0), gsMinor(0);
+       version = 0;
+       if (getNumericGSVersion(gsMajor, gsMinor))
+       {
+               version = 100 * gsMajor + gsMinor;
+               return true;
+       }
+       return false;
 }
 
 // Return the GhostScript major and minor version numbers.
@@ -376,9 +387,9 @@
                                {
                                        // We now have GhostScript dll path, 
but we want gswin32c.exe
                                        // Normally gswin32c.exe and gsdll.dll 
are in the same directory
-                                       if ( 
getNumericGSVersion(QString::fromUtf16((const ushort*) regVersion), gsMajor, 
gsMinor) )
+                                       if 
(getNumericGSVersion(QString::fromUtf16((const ushort*) regVersion), gsMajor, 
gsMinor))
                                        {
-                                               gsNumericVer = gsMajor * 1000 + 
gsMinor;
+                                               gsNumericVer = gsMajor * 100 + 
gsMinor;
                                                gsName = 
QString::fromUtf16((const ushort*) gsPath);
                                                size   = 
gsName.lastIndexOf("\\");
                                                if (size > 0)
@@ -401,7 +412,7 @@
        PrefsManager* prefsManager=PrefsManager::instance();
        if (getNumericGSVersion(gsMajor, gsMinor))
        {
-               gsNumericVer = gsMajor * 1000 + gsMinor;
+               gsNumericVer = gsMajor * 100 + gsMinor;
                gsVersions.insert(gsNumericVer, 
prefsManager->ghostscriptExecutable());
        }
 #endif

Modified: branches/Version14x/Scribus/scribus/util_ghostscript.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22624&path=/branches/Version14x/Scribus/scribus/util_ghostscript.h
==============================================================================
--- branches/Version14x/Scribus/scribus/util_ghostscript.h      (original)
+++ branches/Version14x/Scribus/scribus/util_ghostscript.h      Sun Aug 12 
11:36:52 2018
@@ -49,6 +49,7 @@
  (in which case minor and major have undefined values).
  \retval QString version or false on error */
 QString SCRIBUS_API getGSVersion();
+bool    SCRIBUS_API getNumericGSVersion(int &version);
 bool    SCRIBUS_API getNumericGSVersion(int & major, int & minor);
 bool    SCRIBUS_API getNumericGSVersion(const QString& ver, int&major, int& 
minor);
 QString SCRIBUS_API getGSDefaultExeName(void);


_______________________________________________
scribus-commit mailing list
scribus-commit@lists.scribus.net
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to