Author: jghali
Date: Sat May 26 11:40:14 2018
New Revision: 22559
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22559
Log:
Remove CMYK print preview support for Ghostscript versions without tiffsep
device
The CMYK print preview code not using tiffsep device was written at a time
where Scribus was not supporting spot colors. The old CMYK separation preview
supporting code cannot provide accurate results if document use any spot
colors. As tiffsep device is now provided by Ghostscript since years, we now
require it for CMYK print preview in order to ensure accuracy of result for
document containing spot colors.
Modified:
trunk/Scribus/scribus/scribus.cpp
trunk/Scribus/scribus/ui/preview.cpp
trunk/Scribus/scribus/ui/preview.h
Modified: trunk/Scribus/scribus/scribus.cpp
URL:
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22559&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp (original)
+++ trunk/Scribus/scribus/scribus.cpp Sat May 26 11:40:14 2018
@@ -6938,14 +6938,7 @@
prefsManager->appPrefs.printPreviewPrefs.PrPr_Mode =
dia->EnableCMYK->isChecked();
prefsManager->appPrefs.printPreviewPrefs.PrPr_AntiAliasing =
dia->AntiAlias->isChecked();
prefsManager->appPrefs.printPreviewPrefs.PrPr_Transparency =
dia->AliasTr->isChecked();
- if ( !ScCore->haveTIFFSep() || !dia->postscriptPreview )
- {
- prefsManager->appPrefs.printPreviewPrefs.PrPr_C =
dia->EnableCMYK_C->isChecked();
- prefsManager->appPrefs.printPreviewPrefs.PrPr_M =
dia->EnableCMYK_M->isChecked();
- prefsManager->appPrefs.printPreviewPrefs.PrPr_Y =
dia->EnableCMYK_Y->isChecked();
- prefsManager->appPrefs.printPreviewPrefs.PrPr_K =
dia->EnableCMYK_K->isChecked();
- }
- else
+ if (ScCore->haveTIFFSep() && dia->postscriptPreview)
{
prefsManager->appPrefs.printPreviewPrefs.PrPr_C =
dia->flagsVisible["Cyan"]->isChecked();
prefsManager->appPrefs.printPreviewPrefs.PrPr_M =
dia->flagsVisible["Magenta"]->isChecked();
Modified: trunk/Scribus/scribus/ui/preview.cpp
URL:
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22559&path=/trunk/Scribus/scribus/ui/preview.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/preview.cpp (original)
+++ trunk/Scribus/scribus/ui/preview.cpp Sat May 26 11:40:14 2018
@@ -136,8 +136,8 @@
Layout2->addWidget(AliasTr);
EnableCMYK = new QCheckBox(devTitle);
EnableCMYK->setText( tr("&Display CMYK"));
- EnableCMYK->setChecked( postscriptPreview ?
prefsManager->appPrefs.printPreviewPrefs.PrPr_Mode : false);
- EnableCMYK->setEnabled( postscriptPreview );
+ EnableCMYK->setChecked((HaveTiffSep && postscriptPreview) ?
prefsManager->appPrefs.printPreviewPrefs.PrPr_Mode : false);
+ EnableCMYK->setEnabled(HaveTiffSep && postscriptPreview);
Layout2->addWidget(EnableCMYK);
if (HaveTiffSep)
{
@@ -228,29 +228,6 @@
Layout2->addLayout(Layout7);
connect(Table, SIGNAL(cellDoubleClicked(int, int)), this,
SLOT(doSpotTable(int)));
connect(header, SIGNAL(sectionClicked(int)), this,
SLOT(toggleAllfromHeader()));
- }
- else
- {
- EnableCMYK_C = new QCheckBox(devTitle);
- EnableCMYK_C->setText( tr("&C"));
- EnableCMYK_C->setChecked(postscriptPreview ?
prefsManager->appPrefs.printPreviewPrefs.PrPr_C : true);
- EnableCMYK_C->setEnabled(postscriptPreview);
- Layout2->addWidget(EnableCMYK_C);
- EnableCMYK_M = new QCheckBox(devTitle);
- EnableCMYK_M->setText( tr("&M"));
- EnableCMYK_M->setChecked(postscriptPreview ?
prefsManager->appPrefs.printPreviewPrefs.PrPr_M : true);
- EnableCMYK_M->setEnabled(postscriptPreview);
- Layout2->addWidget(EnableCMYK_M);
- EnableCMYK_Y = new QCheckBox(devTitle);
- EnableCMYK_Y->setText( tr("&Y"));
- EnableCMYK_Y->setChecked(postscriptPreview ?
prefsManager->appPrefs.printPreviewPrefs.PrPr_Y : true);
- EnableCMYK_Y->setEnabled(postscriptPreview);
- Layout2->addWidget(EnableCMYK_Y);
- EnableCMYK_K = new QCheckBox(devTitle);
- EnableCMYK_K->setText( tr("&K"));
- EnableCMYK_K->setChecked(postscriptPreview ?
prefsManager->appPrefs.printPreviewPrefs.PrPr_K : true);
- EnableCMYK_K->setEnabled(postscriptPreview);
- Layout2->addWidget(EnableCMYK_K);
}
settingsBarLayout->addWidget(devTitle);
@@ -336,13 +313,6 @@
{
if (HaveTiffSep)
Table->setEnabled(false);
- else
- {
- EnableCMYK_C->setEnabled(false);
- EnableCMYK_M->setEnabled(false);
- EnableCMYK_Y->setEnabled(false);
- EnableCMYK_K->setEnabled(false);
- }
}
PGSel->setGUIForPage(doc->currentPage()->pageNr());
// tooltips
@@ -363,17 +333,6 @@
connect(ClipMarg, SIGNAL(clicked()), this, SLOT(redisplay()));
connect(spotColors, SIGNAL(clicked()), this, SLOT(redisplay()));
connect(useGray, SIGNAL(clicked()), this, SLOT(redisplay()));
- if (!HaveTiffSep)
- {
- connect(EnableCMYK_C, SIGNAL(clicked()), this,
SLOT(ToggleCMYK_Colour()));
- connect(EnableCMYK_M, SIGNAL(clicked()), this,
SLOT(ToggleCMYK_Colour()));
- connect(EnableCMYK_Y, SIGNAL(clicked()), this,
SLOT(ToggleCMYK_Colour()));
- connect(EnableCMYK_K, SIGNAL(clicked()), this,
SLOT(ToggleCMYK_Colour()));
- EnableCMYK_C->setToolTip( tr( "Enable/disable the C (Cyan) ink
plate" ) );
- EnableCMYK_M->setToolTip( tr( "Enable/disable the M (Magenta)
ink plate" ) );
- EnableCMYK_Y->setToolTip( tr( "Enable/disable the Y (Yellow)
ink plate" ) );
- EnableCMYK_K->setToolTip( tr( "Enable/disable the K (Black) ink
plate" ) );
- }
connect(PGSel, SIGNAL(GotoPage(int)), this, SLOT(ToSeite(int)));
connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
connect(printButton, SIGNAL(clicked()), this, SIGNAL(doPrint()));
@@ -432,13 +391,6 @@
EnableInkCover->setEnabled(c);
if (EnableInkCover->isChecked())
CoverThresholdValue->setEnabled(c);
- }
- else
- {
- EnableCMYK_C->setEnabled(c);
- EnableCMYK_M->setEnabled(c);
- EnableCMYK_Y->setEnabled(c);
- EnableCMYK_K->setEnabled(c);
}
Anz->setPixmap(CreatePreview(APage, qRound(72 * scaleFactor)));
@@ -605,11 +557,6 @@
{
if (HaveTiffSep)
args.append( "-sDEVICE=tiffsep" );
- else
- {
- args.append( "-sDEVICE=bitcmyk" );
- args.append( "-dGrayValues=256" );
- }
}
else
{
@@ -626,7 +573,7 @@
if ((doc->HasCMS) && (GsMinor >= 0) && (GsMajor >= 9))
{
args.append("-sDefaultCMYKProfile=" +
QDir::toNativeSeparators(doc->DocPrinterProf.profilePath()));
- if (EnableCMYK->isChecked() && HaveTiffSep)
+ if (EnableCMYK->isChecked())
args.append("-sOutputICCProfile=" +
QDir::toNativeSeparators(doc->DocPrinterProf.profilePath()));
else
args.append("-sOutputICCProfile=" +
QDir::toNativeSeparators(doc->DocDisplayProf.profilePath()));
@@ -634,7 +581,7 @@
else if (ScCore->haveCMS() && (GsMinor >= 0) && (GsMajor >= 9))
{
args.append("-sDefaultCMYKProfile=" +
QDir::toNativeSeparators(ScCore->defaultCMYKProfile.profilePath()));
- if (EnableCMYK->isChecked() && HaveTiffSep)
+ if (EnableCMYK->isChecked())
args.append("-sOutputICCProfile=" +
QDir::toNativeSeparators(ScCore->defaultCMYKProfile.profilePath()));
else
args.append("-sOutputICCProfile=" +
QDir::toNativeSeparators(ScCore->defaultRGBProfile.profilePath()));
@@ -650,7 +597,7 @@
if (!cmd1.isEmpty())
args.append( cmd1 );
// then add any final args and call gs
- if ((EnableCMYK->isChecked()) && HaveTiffSep)
+ if (EnableCMYK->isChecked())
args.append(
QString("-sOutputFile=%1").arg(QDir::toNativeSeparators(ScPaths::tempFileDir()+"/sc.tif"))
);
else
args.append(
QString("-sOutputFile=%1").arg(QDir::toNativeSeparators(ScPaths::tempFileDir()+"/sc.png"))
);
@@ -928,9 +875,8 @@
QImage image;
if (EnableCMYK->isChecked())
{
- int cyan, magenta, yellow, black, alpha;
- uint *p;
bool loaderror;
+ int cyan, magenta, yellow, black;
if (HaveTiffSep)
{
if ((Seite != APage) || (EnableCMYK->isChecked() !=
CMode) || (SMode != scaleBox->currentIndex())
@@ -1156,104 +1102,6 @@
}
}
}
- else
- {
- int w = qRound(b);
- int h2 = qRound(h);
- if (doc->Pages->at(Seite)->orientation() == 1)
- std::swap(w, h2);
- int w2 = 4 * w;
- image = QImage(w, h2, QImage::Format_ARGB32);
- QByteArray imgc(w2, ' ');
- QFile f(ScPaths::tempFileDir()+"/sc.png");
- if (f.open(QIODevice::ReadOnly))
- {
- if (doc->HasCMS || ScCore->haveCMS())
- {
- QRgb alphaFF = qRgba(0,0,0,255);
- QRgb alphaOO = qRgba(255,255,255,0);
- ScColorMgmtEngine engine =
doc->colorEngine;
- ScColorProfile cmykProfile =
doc->HasCMS ? doc->DocPrinterProf : ScCore->defaultCMYKProfile;
- ScColorProfile rgbProfile =
doc->HasCMS ? doc->DocDisplayProf : ScCore->defaultRGBProfile;
- ScColorTransform transCMYK =
engine.createTransform(cmykProfile, Format_YMCK_8, rgbProfile, Format_BGRA_8,
Intent_Relative_Colorimetric, 0);
- for (int y=0; y < h2; ++y )
- {
- uchar* ptr = image.scanLine( y
);
- f.read(imgc.data(), w2);
- p = (uint *)image.scanLine( y );
- for (int x=0; x < w2; x += 4 )
- {
- cyan = uchar(imgc[x]);
- magenta = uchar(imgc[x
+ 1]);
- yellow = uchar(imgc[x +
2]);
- black = uchar(imgc[x +
3]);
- if
(!EnableCMYK_C->isChecked())
- cyan = 0;
- if
(!EnableCMYK_M->isChecked())
- magenta = 0;
- if
(!EnableCMYK_Y->isChecked())
- yellow = 0;
- if
(!EnableCMYK_K->isChecked())
- black = 0;
- *p = qRgba(cyan,
magenta, yellow, black);
- p++;
- }
- transCMYK.apply(ptr, ptr,
image.width());
- QRgb *q = (QRgb *) ptr;
- for (int xi = 0; xi <
image.width(); xi++, q++)
- {
- if
(AliasTr->isChecked())
- {
- cyan = qRed(*q);
- magenta =
qGreen(*q);
- yellow =
qBlue(*q);
- if ((cyan
== 255) && (magenta == 255) && (yellow == 255))
- *q =
alphaOO;
- else
- *q |=
alphaFF;
- }
- else
- *q |= alphaFF;
- }
- }
- }
- else
- {
- for (int y=0; y < h2; ++y )
- {
- p = (uint *)image.scanLine( y );
- f.read(imgc.data(), w2);
- for (int x=0; x < w2; x += 4 )
- {
- cyan = uchar(imgc[x]);
- magenta = uchar(imgc[x
+ 1]);
- yellow = uchar(imgc[x +
2]);
- black = uchar(imgc[x +
3]);
- if
(!EnableCMYK_C->isChecked())
- cyan = 0;
- if
(!EnableCMYK_M->isChecked())
- magenta = 0;
- if
(!EnableCMYK_Y->isChecked())
- yellow = 0;
- if
(!EnableCMYK_K->isChecked())
- black = 0;
- if
(AliasTr->isChecked() && ((cyan == 0) && (magenta == 0) && (yellow == 0 ) &&
(black == 0)))
- alpha = 0;
- else
- alpha = 255;
- *p =
qRgba(255-qMin(255, cyan+black), 255-qMin(255,magenta+black),
255-qMin(255,yellow+black), alpha);
- p++;
- }
- }
- }
- f.close();
- }
- else
- {
- imageLoadError(Bild, Seite);
- return Bild;
- }
- }
}
else
{
Modified: trunk/Scribus/scribus/ui/preview.h
URL:
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22559&path=/trunk/Scribus/scribus/ui/preview.h
==============================================================================
--- trunk/Scribus/scribus/ui/preview.h (original)
+++ trunk/Scribus/scribus/ui/preview.h Sat May 26 11:40:14 2018
@@ -74,10 +74,6 @@
QCheckBox* AntiAlias;
QCheckBox* AliasTr;
QCheckBox* EnableCMYK;
- QCheckBox* EnableCMYK_C;
- QCheckBox* EnableCMYK_M;
- QCheckBox* EnableCMYK_Y;
- QCheckBox* EnableCMYK_K;
QCheckBox* EnableGCR;
QCheckBox* MirrorHor;
QCheckBox* MirrorVert;
_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit