Subversion Repositories Scribus

Rev

Rev 15065 | Rev 15081 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
13761 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
7
 
14448 cbradney 8
#include "ui/prefs_pdfexport.h"
14451 cbradney 9
#include "ui/createrange.h"
14448 cbradney 10
#include "prefsstructs.h"
13761 cbradney 11
 
14451 cbradney 12
#include "scribuscore.h"
13
#include "scribusdoc.h"
14
#include "ui/scrspinbox.h"
15
#include "units.h"
15065 cbradney 16
#include "util.h"
14451 cbradney 17
#include "util_icon.h"
18
 
15021 cbradney 19
Prefs_PDFExport::Prefs_PDFExport(QWidget* parent, ScribusDoc* doc)
14451 cbradney 20
        : Prefs_Pane(parent),
21
        cmsEnabled(false),
15065 cbradney 22
        m_doc(doc),
23
        exportingPDF(false)
13761 cbradney 24
{
25
        setupUi(this);
14451 cbradney 26
        pageMirrorHorizontalToolButton->setIcon(QIcon(loadIcon("16/flip-object-horizontal.png")));
27
        pageMirrorVerticalToolButton->setIcon(QIcon(loadIcon("16/flip-object-vertical.png")));
28
        unitChange(0);
29
        languageChange();
13761 cbradney 30
 
14451 cbradney 31
        connect(exportChosenPagesRadioButton, SIGNAL(toggled(bool)), this, SLOT(enableRangeControls(bool)));
32
        connect(exportRangeMorePushButton, SIGNAL(clicked()), this, SLOT(createPageNumberRange()));
14736 cbradney 33
        connect(maxResolutionLimitCheckBox, SIGNAL(clicked()), this, SLOT(setMaximumResolution()));
14451 cbradney 34
//      connect(MirrorH, SIGNAL(clicked()), this, SLOT(PDFMirror()));
35
//      connect(MirrorV, SIGNAL(clicked()), this, SLOT(PDFMirror()));
36
//      connect(RotateDeg, SIGNAL(activated(int)), this, SLOT(Rotation(int)));
14736 cbradney 37
        connect(outputIntentionComboBox, SIGNAL(activated(int)), this, SLOT(enableProfiles(int)));
38
        connect(useSolidColorProfileCheckBox, SIGNAL(clicked()), this, SLOT(enablePG()));
39
        connect(useImageProfileCheckBox, SIGNAL(clicked()), this, SLOT(enablePGI()));
40
        connect(doNotUseEmbeddedImageProfileCheckBox, SIGNAL(clicked()), this, SLOT(enablePGI2()));
41
        connect(pdfVersionComboBox, SIGNAL(activated(int)), this, SLOT(enablePDFX(int)));
14451 cbradney 42
        connect(useEncryptionCheckBox, SIGNAL(clicked(bool)), this, SLOT(enableSecurityControls(bool)));
13761 cbradney 43
}
44
 
45
Prefs_PDFExport::~Prefs_PDFExport()
46
{
47
}
48
 
14451 cbradney 49
 
50
void Prefs_PDFExport::unitChange(int unitIndex)
51
{
14752 cbradney 52
        unitRatio = unitGetRatioFromIndex(unitIndex);
14451 cbradney 53
        registrationMarkOffsetSpinBox->setNewUnit(unitIndex);
54
        registrationMarkOffsetSpinBox->setMinimum(0);
55
        registrationMarkOffsetSpinBox->setMaximum(3000 * unitRatio);
56
}
57
 
14448 cbradney 58
void Prefs_PDFExport::languageChange()
59
{
14451 cbradney 60
        int i=0;
61
        i = rotationComboBox->currentIndex();
62
        rotationComboBox->clear();
63
        rotationComboBox->addItem(QString::fromUtf8("0 °"));
64
        rotationComboBox->addItem(QString::fromUtf8("90 °"));
65
        rotationComboBox->addItem(QString::fromUtf8("180 °"));
66
        rotationComboBox->addItem(QString::fromUtf8("270 °"));
67
        rotationComboBox->setCurrentIndex(i);
68
 
69
        i = imageCompressionMethodComboBox->currentIndex();
70
        imageCompressionMethodComboBox->clear();
71
        imageCompressionMethodComboBox->addItem( tr( "Automatic" ) );
72
        imageCompressionMethodComboBox->addItem( tr( "Lossy - JPEG" ) );
73
        imageCompressionMethodComboBox->addItem( tr( "Lossless - Zip" ) );
74
        imageCompressionMethodComboBox->addItem( tr( "None" ) );
75
        imageCompressionMethodComboBox->setCurrentIndex(i);
76
 
77
        i = imageCompressionQualityComboBox->currentIndex();
78
        imageCompressionQualityComboBox->clear();
79
        imageCompressionQualityComboBox->addItem( tr( "Maximum" ) );
80
        imageCompressionQualityComboBox->addItem( tr( "High" ) );
81
        imageCompressionQualityComboBox->addItem( tr( "Medium" ) );
82
        imageCompressionQualityComboBox->addItem( tr( "Low" ) );
83
        imageCompressionQualityComboBox->addItem( tr( "Minimum" ) );
84
        imageCompressionQualityComboBox->setCurrentIndex(i);
85
 
14745 cbradney 86
        addPDFVersions(true);//if (cmsEnabled)// && (!PDFXProfiles.isEmpty()))
14451 cbradney 87
 
88
        i = pageBindingComboBox->currentIndex();
89
        pageBindingComboBox->clear();
90
        pageBindingComboBox->addItem( tr("Left Margin"));
91
        pageBindingComboBox->addItem( tr("Right Margin"));
92
        pageBindingComboBox->setCurrentIndex(i);
93
 
14736 cbradney 94
        i = outputIntentionComboBox->currentIndex();
95
        outputIntentionComboBox->clear();
96
        outputIntentionComboBox->addItem( tr( "Screen / Web" ) );
97
        outputIntentionComboBox->addItem( tr( "Printer" ) );
98
        outputIntentionComboBox->addItem( tr( "Grayscale" ) );
99
        outputIntentionComboBox->setCurrentIndex(i);
14451 cbradney 100
 
14736 cbradney 101
        i = customRenderingSpotFunctionComboBox->currentIndex();
102
        customRenderingSpotFunctionComboBox->clear();
103
        customRenderingSpotFunctionComboBox->addItem( tr( "Simple Dot" ) );
104
        customRenderingSpotFunctionComboBox->addItem( tr( "Line" ) );
105
        customRenderingSpotFunctionComboBox->addItem( tr( "Round" ) );
106
        customRenderingSpotFunctionComboBox->addItem( tr( "Ellipse" ) );
107
        customRenderingSpotFunctionComboBox->setCurrentIndex(i);
14451 cbradney 108
 
14736 cbradney 109
        i = solidColorRenderingIntentComboBox->currentIndex();
110
        int j=imageRenderingIntentComboBox->currentIndex();
111
        solidColorRenderingIntentComboBox->clear();
112
        imageRenderingIntentComboBox->clear();
113
        QString tmp_ip[] = { tr("Perceptual"), tr("Relative Colorimetric"), tr("Saturation"), tr("Absolute Colorimetric")};
114
        size_t ar_ip = sizeof(tmp_ip) / sizeof(*tmp_ip);
115
        for (uint a = 0; a < ar_ip; ++a)
116
                solidColorRenderingIntentComboBox->addItem(tmp_ip[a]);
117
        for (uint a = 0; a < ar_ip; ++a)
118
                imageRenderingIntentComboBox->addItem(tmp_ip[a]);
119
        solidColorRenderingIntentComboBox->setCurrentIndex(i);
120
        imageRenderingIntentComboBox->setCurrentIndex(j);
14448 cbradney 121
}
122
 
123
void Prefs_PDFExport::restoreDefaults(struct ApplicationPrefs *prefsData)
124
{
14737 cbradney 125
}
126
 
15065 cbradney 127
void Prefs_PDFExport::restoreDefaults(struct ApplicationPrefs *prefsData, const ProfilesL & PDFXProfiles, bool exporting)
14737 cbradney 128
{
15065 cbradney 129
        exportingPDF=exporting;
130
        enablePDFExportTabs(exportingPDF);
131
        AllFonts=prefsData->fontPrefs.AvailFonts;
14451 cbradney 132
        int unitIndex = prefsData->docSetupPrefs.docUnitIndex;
14752 cbradney 133
        unitRatio = unitGetRatioFromIndex(unitIndex);
14451 cbradney 134
        unitChange(unitIndex);
14736 cbradney 135
        Opts=prefsData->pdfPrefs;
136
        defaultSolidColorRGBProfile=prefsData->colorPrefs.DCMSset.DefaultSolidColorRGBProfile;
14737 cbradney 137
        defaultPrinterProfile=prefsData->colorPrefs.DCMSset.DefaultPrinterProfile;
14451 cbradney 138
        exportAllPagesRadioButton->setChecked(true);
139
        enableRangeControls(false);
140
        rotationComboBox->setCurrentIndex(prefsData->pdfPrefs.RotateDeg / 90);
141
        pageMirrorHorizontalToolButton->setChecked(prefsData->pdfPrefs.MirrorH);
142
        pageMirrorVerticalToolButton->setChecked(prefsData->pdfPrefs.MirrorV);
143
        clipToPrinterMarginsCheckBox->setChecked(prefsData->pdfPrefs.doClip);
144
        bool cmsUse = m_doc ? (ScCore->haveCMS() && m_doc->HasCMS) : false;
145
        int newCMSIndex=0;
146
        if (cmsUse)
147
        {
148
                if (prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_X1a)
149
                        newCMSIndex=3;
150
                if (prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_X3)
151
                        newCMSIndex=4;
152
                if (prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_X4)
153
                        newCMSIndex=5;
154
        }
155
        if (prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_13)
156
                newCMSIndex=0;
157
        if (prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_14)
158
                newCMSIndex=1;
159
        if (prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_15)
160
                newCMSIndex=2;
161
        pdfVersionComboBox->setCurrentIndex(newCMSIndex);
162
        pageBindingComboBox->setCurrentIndex(prefsData->pdfPrefs.Binding);
163
        generateThumbnailsCheckBox->setChecked(prefsData->pdfPrefs.Thumbnails);
164
        saveLinkedTextFramesAsArticlesCheckBox->setChecked(prefsData->pdfPrefs.Articles);
165
        includeBookmarksCheckBox->setChecked(prefsData->pdfPrefs.Bookmarks);
166
        includeLayersCheckBox->setChecked(prefsData->pdfPrefs.useLayers);
167
        includeLayersCheckBox->setEnabled(prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_15 || prefsData->pdfPrefs.Version == PDFOptions::PDFVersion_X4);
168
 
169
        epsExportResolutionSpinBox->setValue(prefsData->pdfPrefs.Resolution);
170
        embedPDFAndEPSFiles->setChecked(prefsData->pdfPrefs.embedPDF);
171
        compressTextAndVectorGraphicsCheckBox->setChecked( prefsData->pdfPrefs.Compress );
172
        imageCompressionMethodComboBox->setCurrentIndex(prefsData->pdfPrefs.CompressMethod);
173
        imageCompressionQualityComboBox->setCurrentIndex(prefsData->pdfPrefs.Quality);
174
        maxResolutionLimitCheckBox->setChecked(prefsData->pdfPrefs.RecalcPic);
175
        maxExportResolutionSpinBox->setValue(prefsData->pdfPrefs.PicRes);
176
        maxExportResolutionSpinBox->setEnabled(prefsData->pdfPrefs.RecalcPic);
15065 cbradney 177
 
178
        if (m_doc != 0 && exportingPDF)
14737 cbradney 179
        {
180
//      Build a list of all Fonts used in Annotations;
181
                PageItem *pgit;
15065 cbradney 182
                for (int c = 0; c < m_doc->FrameItems.count(); ++c)
14737 cbradney 183
                {
15065 cbradney 184
                        pgit=m_doc->FrameItems.at(c);
14737 cbradney 185
                        if (((pgit->itemType() == PageItem::TextFrame) || (pgit->itemType() == PageItem::PathText)) && (pgit->isAnnotation()) && (pgit->itemText.length() > 0))
186
                                AnnotationFonts.insert(pgit->itemText.defaultStyle().charStyle().font().replacementName(), "");
187
                }
15065 cbradney 188
                for (int c = 0; c < m_doc->MasterItems.count(); ++c)
14737 cbradney 189
                {
15065 cbradney 190
                        pgit=m_doc->MasterItems.at(c);
14737 cbradney 191
                        if (((pgit->itemType() == PageItem::TextFrame) || (pgit->itemType() == PageItem::PathText)) && (pgit->isAnnotation()) && (pgit->itemText.length() > 0))
192
                                AnnotationFonts.insert(pgit->itemText.defaultStyle().charStyle().font().replacementName(), "");
193
                }
15065 cbradney 194
                for (int c = 0; c < m_doc->DocItems.count(); ++c)
14737 cbradney 195
                {
15065 cbradney 196
                        pgit=m_doc->DocItems.at(c);
14737 cbradney 197
                        if (((pgit->itemType() == PageItem::TextFrame) || (pgit->itemType() == PageItem::PathText)) && (pgit->isAnnotation()) && (pgit->itemText.length() > 0))
198
                                AnnotationFonts.insert(pgit->itemText.defaultStyle().charStyle().font().replacementName(), "");
199
                }
200
                QMap<QString,int>::const_iterator it;
15065 cbradney 201
                availableFontsListWidget->clear();
202
                for (it = m_doc->usedFonts().constBegin(); it != m_doc->usedFonts().constEnd(); ++it)
14737 cbradney 203
                {
204
                        if (AllFonts[it.key()].isReplacement())
15065 cbradney 205
                                new QListWidgetItem( QIcon(loadIcon("font_subst16.png")), it.key(), availableFontsListWidget );
14737 cbradney 206
                        else if (AllFonts[it.key()].type() == ScFace::TYPE1)
15065 cbradney 207
                                new QListWidgetItem( QIcon(loadIcon("font_type1_16.png")), it.key(), availableFontsListWidget );
14737 cbradney 208
                        else if (AllFonts[it.key()].type() == ScFace::TTF)
15065 cbradney 209
                                new QListWidgetItem( QIcon(loadIcon("font_truetype16.png")), it.key(), availableFontsListWidget );
14737 cbradney 210
                        else if (AllFonts[it.key()].type() == ScFace::OTF)
15065 cbradney 211
                                new QListWidgetItem( QIcon(loadIcon("font_otf16.png")), it.key(), availableFontsListWidget );
14737 cbradney 212
                }
15065 cbradney 213
                toEmbedButton->setEnabled(false);
214
                fromEmbedButton->setEnabled(false);
215
                toOutlineButton->setEnabled(false);
216
                fromOutlineButton->setEnabled(false);
14737 cbradney 217
                if ((Opts.EmbedList.count() == 0) && (Opts.SubsetList.count() == 0) && (Opts.firstUse))
218
                        EmbedAll();
219
                else
220
                {
15065 cbradney 221
                        embeddedFontsListWidget->clear();
14737 cbradney 222
                        FontsToEmbed.clear();
223
                        for (int fe = 0; fe < Opts.EmbedList.count(); ++fe)
224
                        {
15065 cbradney 225
                                embeddedFontsListWidget->addItem(Opts.EmbedList[fe]);
14737 cbradney 226
                                FontsToEmbed.append(Opts.EmbedList[fe]);
227
                        }
228
                        if (Opts.SubsetList.count() != 0)
229
                        {
15065 cbradney 230
                                outlinedFontsListWidget->clear();
14737 cbradney 231
                                FontsToOutline.clear();
232
                                for (int fe = 0; fe < Opts.SubsetList.count(); ++fe)
233
                                {
15065 cbradney 234
                                        outlinedFontsListWidget->addItem(Opts.SubsetList[fe]);
14737 cbradney 235
                                        FontsToOutline.append(Opts.SubsetList[fe]);
236
                                }
237
                        }
238
                        QMap<QString, QString>::Iterator itAnn;
239
                        for (itAnn = AnnotationFonts.begin(); itAnn != AnnotationFonts.end(); ++itAnn)
240
                        {
241
                                if (FontsToEmbed.contains(itAnn.key()) == 0)
242
                                {
15065 cbradney 243
                                        embeddedFontsListWidget->addItem(itAnn.key());
244
                                        embeddedFontsListWidget->item(embeddedFontsListWidget->count()-1)->setFlags(Qt::ItemIsEnabled);
14737 cbradney 245
                                        FontsToEmbed.append(itAnn.key());
246
                                }
247
                                if (FontsToOutline.contains(itAnn.key()) != 0)
248
                                {
249
                                        FontsToOutline.removeAll(itAnn.key());
15065 cbradney 250
                                        QList<QListWidgetItem *> itR = outlinedFontsListWidget->findItems(itAnn.key(), Qt::MatchExactly);
251
                                        delete outlinedFontsListWidget->takeItem(outlinedFontsListWidget->row(itR.at(0)));
14737 cbradney 252
                                }
253
                        }
254
                }
15065 cbradney 255
                enabledEffectsCheckBox->setChecked(Opts.PresentMode);
256
                showPagePreviewsCheckBox->setChecked(false);
257
                effectsPageListWidget->clear();
14737 cbradney 258
                QString tmp;
259
                struct PDFPresentationData ef;
260
                if (EffVal.count() != 0)
261
                {
15065 cbradney 262
                        for (int pg2 = 0; pg2 < m_doc->Pages->count(); ++pg2)
14737 cbradney 263
                        {
15065 cbradney 264
                                effectsPageListWidget->addItem( tr("Page")+" "+tmp.setNum(pg2+1));
14737 cbradney 265
                                if (EffVal.count()-1 < pg2)
266
                                {
267
                                        ef.pageEffectDuration = 1;
268
                                        ef.pageViewDuration = 1;
269
                                        ef.effectType = 0;
270
                                        ef.Dm = 0;
271
                                        ef.M = 0;
272
                                        ef.Di = 0;
273
                                        EffVal.append(ef);
274
                                }
275
                        }
276
                }
277
                else
278
                {
15065 cbradney 279
                        for (int pg = 0; pg < m_doc->Pages->count(); ++pg)
14737 cbradney 280
                        {
15065 cbradney 281
                                effectsPageListWidget->addItem( tr("Page")+" "+tmp.setNum(pg+1));
14737 cbradney 282
                                ef.pageEffectDuration = 1;
283
                                ef.pageViewDuration = 1;
284
                                ef.effectType = 0;
285
                                ef.Dm = 0;
286
                                ef.M = 0;
287
                                ef.Di = 0;
288
                                EffVal.append(ef);
289
                        }
290
                }
15065 cbradney 291
                displayDurationSpinBox->setValue(EffVal[0].pageViewDuration);
292
                effectDurationSpinBox->setValue(EffVal[0].pageEffectDuration);
14737 cbradney 293
                bool df = true;
294
                if ((Opts.displayBookmarks) || (Opts.displayFullscreen) || (Opts.displayLayers) || (Opts.displayThumbs))
295
                        df = false;
296
                if (df)
15065 cbradney 297
                        useViewerDefaultsRadioButton->setChecked(df);
298
                useFullScreenRadioButton->setChecked(Opts.displayFullscreen);
299
                useBookmarksRadioButton->setChecked(Opts.displayBookmarks);
300
                useThumbnailsRadioButton->setChecked(Opts.displayThumbs);
301
                useLayersRadioButton->setChecked(Opts.displayLayers);
302
                hideViewerToolBarCheckBox->setChecked(Opts.hideToolBar);
303
                hideViewerMenuBarCheckBox->setChecked(Opts.hideMenuBar);
304
                fitViewerWindowCheckBox->setChecked(Opts.fitWindow);
14737 cbradney 305
                QMap<QString,QString>::Iterator itja;
15065 cbradney 306
                startupJavascriptComboBox->clear();
307
                startupJavascriptComboBox->addItem( tr("No Script"));
308
                for (itja = m_doc->JavaScripts.begin(); itja != m_doc->JavaScripts.end(); ++itja)
309
                        startupJavascriptComboBox->addItem(itja.key());
310
                if (m_doc->JavaScripts.contains(Opts.openAction))
311
                        setCurrentComboItem(startupJavascriptComboBox, Opts.openAction);
14737 cbradney 312
                if (Opts.PageLayout == PDFOptions::SinglePage)
15065 cbradney 313
                        singlePageRadioButton->setChecked(true);
14737 cbradney 314
                else if (Opts.PageLayout == PDFOptions::OneColumn)
15065 cbradney 315
                        continuousPagesRadioButton->setChecked(true);
14737 cbradney 316
                else if (Opts.PageLayout == PDFOptions::TwoColumnLeft)
15065 cbradney 317
                        doublePageLeftRadioButton->setChecked(true);
14737 cbradney 318
                else if (Opts.PageLayout == PDFOptions::TwoColumnRight)
15065 cbradney 319
                        doublePageRightRadioButton->setChecked(true);
14737 cbradney 320
                if ((Opts.Version == PDFOptions::PDFVersion_15) || (Opts.Version == PDFOptions::PDFVersion_X4))
15065 cbradney 321
                        useLayersRadioButton->setEnabled(true);
14737 cbradney 322
                else
15065 cbradney 323
                        useLayersRadioButton->setEnabled(false);
14737 cbradney 324
        }
15065 cbradney 325
 
14451 cbradney 326
        useEncryptionCheckBox->setChecked( prefsData->pdfPrefs.Encrypt );
327
        passwordOwnerLineEdit->setText(prefsData->pdfPrefs.PassOwner);
328
        passwordUserLineEdit->setText(prefsData->pdfPrefs.PassUser);
329
        allowPrintingCheckBox->setChecked( prefsData->pdfPrefs.Permissions & 4 );
330
        allowChangingCheckBox->setChecked( prefsData->pdfPrefs.Permissions & 8 );
331
        allowCopyingCheckBox->setChecked( prefsData->pdfPrefs.Permissions & 16 );
332
        allowAnnotatingCheckBox->setChecked( prefsData->pdfPrefs.Permissions & 32 );
333
        enableSecurityControls(prefsData->pdfPrefs.Encrypt);
334
 
335
        if (prefsData->pdfPrefs.UseRGB)
14736 cbradney 336
                outputIntentionComboBox->setCurrentIndex(0);
14451 cbradney 337
        else
338
        {
339
                if (prefsData->pdfPrefs.isGrayscale)
14736 cbradney 340
                        outputIntentionComboBox->setCurrentIndex(2);
14451 cbradney 341
                else
14736 cbradney 342
                        outputIntentionComboBox->setCurrentIndex(1);
14451 cbradney 343
        }
344
        convertSpotsToProcessCheckBox->setChecked(!prefsData->pdfPrefs.UseSpotColors);
345
 
346
        bleedsWidget->setup(prefsData->pdfPrefs.bleeds, prefsData->docSetupPrefs.pagePositioning, prefsData->docSetupPrefs.docUnitIndex, false, false);
347
        bleedsWidget->setPageWidth(prefsData->docSetupPrefs.pageWidth);
348
        bleedsWidget->setPageHeight(prefsData->docSetupPrefs.pageHeight);
349
        bleedsWidget->setPageSize(prefsData->docSetupPrefs.pageSize);
350
        bleedsWidget->setMarginPreset(prefsData->docSetupPrefs.marginPreset);
14737 cbradney 351
//
352
        useCustomRenderingCheckBox->setChecked(prefsData->pdfPrefs.UseLPI);
353
        QMap<QString,LPIData>::Iterator itlp;
354
        customRenderingColorComboBox->clear();
355
        for (itlp = prefsData->pdfPrefs.LPISettings.begin(); itlp != prefsData->pdfPrefs.LPISettings.end(); ++itlp)
356
                customRenderingColorComboBox->addItem( itlp.key() );
357
        customRenderingColorComboBox->setCurrentIndex(0);
14451 cbradney 358
 
14737 cbradney 359
        customRenderingFrequencySpinBox->setValue(prefsData->pdfPrefs.LPISettings[customRenderingColorComboBox->currentText()].Frequency);
360
        customRenderingAngleSpinBox->setValue(prefsData->pdfPrefs.LPISettings[customRenderingColorComboBox->currentText()].Angle);
361
        customRenderingSpotFunctionComboBox->setCurrentIndex(prefsData->pdfPrefs.LPISettings[customRenderingColorComboBox->currentText()].SpotFunc);
362
        useSolidColorProfileCheckBox->setChecked(prefsData->pdfPrefs.UseProfiles);
363
        useImageProfileCheckBox->setChecked(prefsData->pdfPrefs.UseProfiles2);
364
        doNotUseEmbeddedImageProfileCheckBox->setChecked(prefsData->pdfPrefs.EmbeddedI);
365
        if ((prefsData->pdfPrefs.UseRGB) || (prefsData->pdfPrefs.isGrayscale))
366
        {
15080 cbradney 367
                //enableSolidsImagesWidgets(false);
14737 cbradney 368
                enableProfiles(0);
369
        }
370
        else
371
                enableProfiles(1);
372
        enablePG();
373
        enablePGI();
374
        QString tp(prefsData->pdfPrefs.SolidProf);
375
        if (!ScCore->InputProfiles.contains(tp))
376
        {
15065 cbradney 377
                if (m_doc != 0 && exportingPDF)
378
                        tp = m_doc->cmsSettings().DefaultSolidColorRGBProfile;
379
                else
14737 cbradney 380
                        tp = defaultSolidColorRGBProfile;
381
        }
382
        ProfilesL::Iterator itp;
383
        ProfilesL::Iterator itpend=ScCore->InputProfiles.end();
384
        solidColorProfileComboBox->clear();
385
        for (itp = ScCore->InputProfiles.begin(); itp != itpend; ++itp)
386
        {
387
                solidColorProfileComboBox->addItem(itp.key());
388
                if (itp.key() == tp)
389
                {
390
                        if (cmsUse)
391
                                solidColorProfileComboBox->setCurrentIndex(solidColorProfileComboBox->count()-1);
392
                }
393
        }
394
        if (cmsUse)
395
                solidColorRenderingIntentComboBox->setCurrentIndex(Opts.Intent);
396
        QString tp1 = Opts.ImageProf;
397
        if (!ScCore->InputProfiles.contains(tp1))
398
        {
15065 cbradney 399
                if (m_doc != 0 && exportingPDF)
400
                        tp1 = m_doc->cmsSettings().DefaultSolidColorRGBProfile;
401
                else
14737 cbradney 402
                        tp1 = defaultSolidColorRGBProfile;
403
        }
404
        ProfilesL::Iterator itp2;
405
        ProfilesL::Iterator itp2end=ScCore->InputProfiles.end();
406
        imageProfileComboBox->clear();
407
        for (itp2 = ScCore->InputProfiles.begin(); itp2 != itp2end; ++itp2)
408
        {
409
                imageProfileComboBox->addItem(itp2.key());
410
                if (itp2.key() == tp1)
411
                {
412
                        if (cmsUse)
413
                                imageProfileComboBox->setCurrentIndex(imageProfileComboBox->count()-1);
414
                }
415
        }
416
        if (cmsUse)
417
                imageRenderingIntentComboBox->setCurrentIndex(Opts.Intent2);
418
        if (!cmsUse)
419
        {
420
                //Disabling vis hiding
421
                //setSolidsImagesWidgetsShown(false);
422
                enableSolidsImagesWidgets(false);
423
        }
424
 
425
        ProfilesL::const_iterator itp3;
426
        QString tp3(Opts.PrintProf);
427
        if (!PDFXProfiles.contains(tp3))
428
        {
15065 cbradney 429
                if (m_doc != 0 && exportingPDF)
430
                        tp3 = m_doc->cmsSettings().DefaultPrinterProfile;
431
                else
14737 cbradney 432
                        tp3 = defaultPrinterProfile;
433
        }
434
        pdfx3OutputProfileComboBox->clear();
435
        for (itp3 = PDFXProfiles.constBegin(); itp3 != PDFXProfiles.constEnd(); ++itp3)
436
        {
437
                pdfx3OutputProfileComboBox->addItem(itp3.key());
438
                if (itp3.key() == tp3)
439
                        pdfx3OutputProfileComboBox->setCurrentIndex(pdfx3OutputProfileComboBox->count()-1);
440
        }
441
        pdfx3InfoStringLineEdit->setText(Opts.Info);
442
 
443
 
15065 cbradney 444
 
445
        if (m_doc != 0 && exportingPDF)
14737 cbradney 446
        {
15065 cbradney 447
                useDocumentBleedsCheckBox->setChecked(Opts.useDocBleeds);
14737 cbradney 448
                doDocBleeds();
449
        }
15065 cbradney 450
 
14451 cbradney 451
        registrationMarkOffsetSpinBox->setValue(prefsData->pdfPrefs.markOffset*unitRatio);
452
        printCropMarksCheckBox->setChecked(prefsData->pdfPrefs.cropMarks);
453
        printBleedMarksCheckBox->setChecked(prefsData->pdfPrefs.bleedMarks);
454
        printRegistrationMarksCheckBox->setChecked(prefsData->pdfPrefs.registrationMarks);
455
        printColorBarsCheckBox->setChecked(prefsData->pdfPrefs.colorMarks);
456
        printPageInfoCheckBox->setChecked(prefsData->pdfPrefs.docInfoMarks);
14737 cbradney 457
        if (!cmsUse)
458
                enablePDFXWidgets(false);
459
        if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X1a) && (!PDFXProfiles.isEmpty()))
460
                enablePDFX(3);
461
        else if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X3) && (!PDFXProfiles.isEmpty()))
462
                enablePDFX(4);
463
        else if (cmsUse && (Opts.Version == PDFOptions::PDFVersion_X4) && (!PDFXProfiles.isEmpty()))
464
                enablePDFX(5);
465
        else
466
                enablePDFXWidgets(false);
15065 cbradney 467
 
468
        if (m_doc != 0  && exportingPDF)
14737 cbradney 469
        {
15065 cbradney 470
                effectTypeComboBox->clear();
471
                effectTypeComboBox->addItem( tr("No Effect"));
472
                effectTypeComboBox->addItem( tr("Blinds"));
473
                effectTypeComboBox->addItem( tr("Box"));
474
                effectTypeComboBox->addItem( tr("Dissolve"));
475
                effectTypeComboBox->addItem( tr("Glitter"));
476
                effectTypeComboBox->addItem( tr("Split"));
477
                effectTypeComboBox->addItem( tr("Wipe"));
14737 cbradney 478
                if (Opts.Version == PDFOptions::PDFVersion_15)
479
                {
15065 cbradney 480
                        effectTypeComboBox->addItem( tr("Push"));
481
                        effectTypeComboBox->addItem( tr("Cover"));
482
                        effectTypeComboBox->addItem( tr("Uncover"));
483
                        effectTypeComboBox->addItem( tr("Fade"));
14737 cbradney 484
                }
485
                PgSel = 0;
15065 cbradney 486
                effectsPageListWidget->setCurrentRow(0);
14737 cbradney 487
                SetEffOpts(0);
15065 cbradney 488
                effectsPageListWidget->setEnabled(false);
489
                enableEffects(false);
490
                showPagePreviewsCheckBox->setEnabled(false);
14737 cbradney 491
                DoEffects();
15065 cbradney 492
                if (enabledEffectsCheckBox->isChecked())
14737 cbradney 493
                {
15065 cbradney 494
                        displayDurationSpinBox->setValue(EffVal[0].pageViewDuration);
495
                        effectDurationSpinBox->setValue(EffVal[0].pageEffectDuration);
496
                        effectTypeComboBox->setCurrentIndex(EffVal[0].effectType);
497
                        effectMovingDirectionComboBox->setCurrentIndex(EffVal[0].Dm);
498
                        effectInOutComboBox->setCurrentIndex(EffVal[0].M);
499
                        effectDirectionComboBox->setCurrentIndex(EffVal[0].Di);
500
                        SetEffOpts(effectTypeComboBox->currentIndex());
14737 cbradney 501
                }
15065 cbradney 502
                /* Using margin widget, is this necessary?
503
                if (m_doc->currentPageLayout != 0)
14737 cbradney 504
                {
505
                        BleedTxt3->setText( tr( "Inside:" ) );
506
                        BleedTxt4->setText( tr( "Outside:" ) );
507
                }
15065 cbradney 508
                */
14737 cbradney 509
        }
14448 cbradney 510
}
511
 
512
 
513
void Prefs_PDFExport::saveGuiToPrefs(struct ApplicationPrefs *prefsData) const
514
{
14752 cbradney 515
        prefsData->pdfPrefs.Thumbnails = generateThumbnailsCheckBox->isChecked();
516
        prefsData->pdfPrefs.Compress = compressTextAndVectorGraphicsCheckBox->isChecked();
517
        prefsData->pdfPrefs.CompressMethod = (PDFOptions::PDFCompression) imageCompressionMethodComboBox->currentIndex();
518
        prefsData->pdfPrefs.Quality = imageCompressionQualityComboBox->currentIndex();
519
        prefsData->pdfPrefs.Resolution = epsExportResolutionSpinBox->value();
520
        prefsData->pdfPrefs.RecalcPic = maxResolutionLimitCheckBox->isChecked();
521
        prefsData->pdfPrefs.PicRes = maxExportResolutionSpinBox->value();
522
        prefsData->pdfPrefs.Bookmarks = includeBookmarksCheckBox->isChecked();
523
        prefsData->pdfPrefs.Binding = pageBindingComboBox->currentIndex();
524
        prefsData->pdfPrefs.MirrorH = pageMirrorHorizontalToolButton->isChecked();
525
        prefsData->pdfPrefs.MirrorV = pageMirrorVerticalToolButton->isChecked();
526
        prefsData->pdfPrefs.RotateDeg = rotationComboBox->currentIndex() * 90;
527
        prefsData->pdfPrefs.Articles = saveLinkedTextFramesAsArticlesCheckBox->isChecked();
528
        prefsData->pdfPrefs.Encrypt = useEncryptionCheckBox->isChecked();
529
        prefsData->pdfPrefs.UseLPI = useCustomRenderingCheckBox->isChecked();
530
        prefsData->pdfPrefs.UseSpotColors = !convertSpotsToProcessCheckBox->isChecked();
531
        prefsData->pdfPrefs.doMultiFile = false;
532
        prefsData->pdfPrefs.cropMarks  = printCropMarksCheckBox->isChecked();
533
        prefsData->pdfPrefs.bleedMarks = printBleedMarksCheckBox->isChecked();
534
        prefsData->pdfPrefs.registrationMarks = printRegistrationMarksCheckBox->isChecked();
535
        prefsData->pdfPrefs.colorMarks = printColorBarsCheckBox->isChecked();
536
        prefsData->pdfPrefs.docInfoMarks = printPageInfoCheckBox->isChecked();
537
        prefsData->pdfPrefs.markOffset = registrationMarkOffsetSpinBox->value() / unitRatio;
15065 cbradney 538
        prefsData->pdfPrefs.useDocBleeds = useDocumentBleedsCheckBox->isChecked();
14752 cbradney 539
        prefsData->pdfPrefs.bleeds=bleedsWidget->margins();
540
        prefsData->pdfPrefs.doClip = clipToPrinterMarginsCheckBox->isChecked();
541
        if (useEncryptionCheckBox->isChecked())
542
        {
543
                int Perm = -64;
544
                if (pdfVersionComboBox->currentIndex() == 1)
545
                        Perm &= ~0x00240000;
546
                if (allowPrintingCheckBox->isChecked())
547
                        Perm += 4;
548
                if (allowChangingCheckBox->isChecked())
549
                        Perm += 8;
550
                if (allowCopyingCheckBox->isChecked())
551
                        Perm += 16;
552
                if (allowAnnotatingCheckBox->isChecked())
553
                        Perm += 32;
554
                prefsData->pdfPrefs.Permissions = Perm;
555
                prefsData->pdfPrefs.PassOwner = passwordOwnerLineEdit->text();
556
                prefsData->pdfPrefs.PassUser = passwordUserLineEdit->text();
557
        }
558
        if (pdfVersionComboBox->currentIndex() == 0)
559
                prefsData->pdfPrefs.Version = PDFOptions::PDFVersion_13;
560
        if (pdfVersionComboBox->currentIndex() == 1)
561
                prefsData->pdfPrefs.Version = PDFOptions::PDFVersion_14;
562
        if (pdfVersionComboBox->currentIndex() == 2)
563
                prefsData->pdfPrefs.Version = PDFOptions::PDFVersion_15;
564
        if (pdfVersionComboBox->currentIndex() == 3)
565
                prefsData->pdfPrefs.Version = PDFOptions::PDFVersion_X1a;
566
        if (pdfVersionComboBox->currentIndex() == 4)
567
                prefsData->pdfPrefs.Version = PDFOptions::PDFVersion_X3;
568
        if (pdfVersionComboBox->currentIndex() == 5)
569
                prefsData->pdfPrefs.Version = PDFOptions::PDFVersion_X4;
570
        if (outputIntentionComboBox->currentIndex() == 0)
571
        {
572
                prefsData->pdfPrefs.isGrayscale = false;
573
                prefsData->pdfPrefs.UseRGB = true;
574
                prefsData->pdfPrefs.UseProfiles = false;
575
                prefsData->pdfPrefs.UseProfiles2 = false;
576
        }
577
        else
578
        {
579
                if (outputIntentionComboBox->currentIndex() == 2)
580
                {
581
                        prefsData->pdfPrefs.isGrayscale = true;
582
                        prefsData->pdfPrefs.UseRGB = false;
583
                        prefsData->pdfPrefs.UseProfiles = false;
584
                        prefsData->pdfPrefs.UseProfiles2 = false;
585
                }
586
                else
587
                {
588
                        prefsData->pdfPrefs.isGrayscale = false;
589
                        prefsData->pdfPrefs.UseRGB = false;
590
                        if (/*CMSuse*/ ScCore->haveCMS())
591
                        {
592
                                prefsData->pdfPrefs.UseProfiles = useSolidColorProfileCheckBox->isChecked();
593
                                prefsData->pdfPrefs.UseProfiles2 = useImageProfileCheckBox->isChecked();
594
                                prefsData->pdfPrefs.Intent = solidColorRenderingIntentComboBox->currentIndex();
595
                                prefsData->pdfPrefs.Intent2 = imageRenderingIntentComboBox->currentIndex();
596
                                prefsData->pdfPrefs.EmbeddedI = doNotUseEmbeddedImageProfileCheckBox->isChecked();
597
                                prefsData->pdfPrefs.SolidProf = solidColorProfileComboBox->currentText();
598
                                prefsData->pdfPrefs.ImageProf = imageProfileComboBox->currentText();
599
                                prefsData->pdfPrefs.PrintProf = pdfx3OutputProfileComboBox->currentText();
600
                        }
601
                }
602
        }
14448 cbradney 603
}
14451 cbradney 604
 
605
void Prefs_PDFExport::enableRangeControls(bool enabled)
606
{
607
        exportPageListLineEdit->setEnabled( enabled );
608
        exportRangeMorePushButton->setEnabled( enabled );
609
        if (enabled == false)
610
                includeBookmarksCheckBox->setChecked(false);
611
}
612
 
613
void Prefs_PDFExport::enableSecurityControls(bool enabled)
614
{
615
        passwordOwnerLineEdit->setEnabled(enabled);
616
        passwordUserLineEdit->setEnabled(enabled);
617
        allowPrintingCheckBox->setEnabled(enabled);
618
        allowChangingCheckBox->setEnabled(enabled);
619
        allowCopyingCheckBox->setEnabled(enabled);
620
        allowAnnotatingCheckBox->setEnabled(enabled);
621
}
622
 
14745 cbradney 623
 
624
void Prefs_PDFExport::enableCMS(bool enabled)
625
{
626
        cmsEnabled=enabled;
627
        addPDFVersions(enabled);
15080 cbradney 628
        enableProfiles(enabled);
14745 cbradney 629
}
630
 
15065 cbradney 631
void Prefs_PDFExport::enablePDFExportTabs(bool enabled)
632
{
633
        if (!enabled)
634
        {
635
                tabWidget->removeTab(tabWidget->indexOf(tabFonts));//Fonts
636
                tabWidget->removeTab(tabWidget->indexOf(tabExtras));//Extras
637
                tabWidget->removeTab(tabWidget->indexOf(tabViewer));//Viewer
638
        }
639
}
640
 
14451 cbradney 641
void Prefs_PDFExport::createPageNumberRange()
642
{
643
        if (m_doc!=0)
644
        {
645
                CreateRange cr(exportPageListLineEdit->text(), m_doc->DocPages.count(), this);
646
                if (cr.exec())
647
                {
648
                        CreateRangeData crData;
649
                        cr.getCreateRangeData(crData);
650
                        exportPageListLineEdit->setText(crData.pageRange);
651
                        return;
652
                }
653
        }
654
        exportPageListLineEdit->setText(QString::null);
655
}
14736 cbradney 656
 
657
void Prefs_PDFExport::setMaximumResolution()
658
{
659
        if (maxResolutionLimitCheckBox->isChecked())
660
        {
661
                maxExportResolutionSpinBox->setEnabled(true);
662
                if (maxExportResolutionSpinBox->value() > epsExportResolutionSpinBox->value())
663
                        maxExportResolutionSpinBox->setValue(epsExportResolutionSpinBox->value());
664
        }
665
        else
666
                maxExportResolutionSpinBox->setEnabled(false);
667
}
668
 
669
void Prefs_PDFExport::enableProfiles(int i)
670
{
671
        enableLPI(i);
672
        bool setter = false;
673
        if (i == 1 && pdfVersionComboBox->currentIndex() != 3)
674
                setter = true;
14737 cbradney 675
        enableSolidsImagesWidgets(setter);
14736 cbradney 676
}
677
 
678
void Prefs_PDFExport::enableLPI(int i)
679
{
680
        if (i == 1)
681
        {
682
                QString tp(Opts.SolidProf);
683
                if (!ScCore->InputProfiles.contains(tp))
684
                {
685
                        if (m_doc != 0)
15001 cbradney 686
                                tp = m_doc->cmsSettings().DefaultSolidColorRGBProfile;
14736 cbradney 687
                        else
688
                                tp = defaultSolidColorRGBProfile;
689
                }
690
                solidColorProfileComboBox->clear();
691
                ProfilesL::Iterator itp;
692
                ProfilesL::Iterator itpend=ScCore->InputProfiles.end();
693
                for (itp = ScCore->InputProfiles.begin(); itp != itpend; ++itp)
694
                {
695
                        solidColorProfileComboBox->addItem(itp.key());
696
                        if (itp.key() == tp)
697
                        {
698
                                if (cmsEnabled)
699
                                        solidColorProfileComboBox->setCurrentIndex(solidColorProfileComboBox->count()-1);
700
                        }
701
                }
702
                if (cmsEnabled)
703
                        solidColorRenderingIntentComboBox->setCurrentIndex(Opts.Intent);
704
                QString tp1 = Opts.ImageProf;
705
                if (!ScCore->InputProfiles.contains(tp1))
706
                {
707
                        if (m_doc != 0)
15001 cbradney 708
                                tp1 = m_doc->cmsSettings().DefaultSolidColorRGBProfile;
14736 cbradney 709
                        else
710
                                tp1 = defaultSolidColorRGBProfile;
711
                }
712
                imageProfileComboBox->clear();
713
                ProfilesL::Iterator itp2;
714
                ProfilesL::Iterator itp2end=ScCore->InputProfiles.end();
715
                for (itp2 = ScCore->InputProfiles.begin(); itp2 != itp2end; ++itp2)
716
                {
717
                        imageProfileComboBox->addItem(itp2.key());
718
                        if (itp2.key() == tp1)
719
                        {
720
                                if (cmsEnabled)
721
                                        imageProfileComboBox->setCurrentIndex(imageProfileComboBox->count()-1);
722
                        }
723
                }
724
                if (cmsEnabled)
725
                        imageRenderingIntentComboBox->setCurrentIndex(Opts.Intent2);
14737 cbradney 726
                //Disabling vis hiding
727
                enableSolidsImagesWidgets(cmsEnabled);
15080 cbradney 728
                convertSpotsToProcessCheckBox->setEnabled(true);
14736 cbradney 729
                if (m_doc!=0)
730
                {
731
                        useCustomRenderingCheckBox->show();
14737 cbradney 732
                        enableCustomRenderingWidgets(useCustomRenderingCheckBox->isChecked());
14736 cbradney 733
                }
734
        }
735
        else
736
        {
15080 cbradney 737
                convertSpotsToProcessCheckBox->setEnabled(false);
14736 cbradney 738
                useCustomRenderingCheckBox->hide();
14737 cbradney 739
                enableCustomRenderingWidgets(false);
14736 cbradney 740
        }
741
}
742
 
743
void Prefs_PDFExport::setCustomRenderingWidgetsShown(bool visible)
744
{
745
        useCustomRenderingCheckBox->setShown(visible);
746
        customRenderingColorComboBox->setShown(visible);
747
        customRenderingFrequencySpinBox->setShown(visible);
748
        customRenderingAngleSpinBox->setShown(visible);
749
        customRenderingSpotFunctionComboBox->setShown(visible);
750
}
751
 
14737 cbradney 752
void Prefs_PDFExport::enableCustomRenderingWidgets(bool enabled)
753
{
754
        useCustomRenderingCheckBox->setEnabled(enabled);
755
        customRenderingColorComboBox->setEnabled(enabled);
756
        customRenderingFrequencySpinBox->setEnabled(enabled);
757
        customRenderingAngleSpinBox->setEnabled(enabled);
758
        customRenderingSpotFunctionComboBox->setEnabled(enabled);
759
}
14736 cbradney 760
 
761
void Prefs_PDFExport::setSolidsImagesWidgetsShown(bool visible)
762
{
14737 cbradney 763
        solidColorsLabel->setShown(visible);
764
        solidColorsLine->setShown(visible);
14736 cbradney 765
        useSolidColorProfileCheckBox->setShown(visible);
766
        solidColorProfileComboBox->setShown(visible);
767
        solidColorRenderingIntentComboBox->setShown(visible);
14737 cbradney 768
        imagesLabel->setShown(visible);
769
        imagesLine->setShown(visible);
14736 cbradney 770
        useImageProfileCheckBox->setShown(visible);
771
        doNotUseEmbeddedImageProfileCheckBox->setShown(visible);
772
        imageProfileComboBox->setShown(visible);
773
        imageRenderingIntentComboBox->setShown(visible);
774
}
14737 cbradney 775
void Prefs_PDFExport::enableSolidsImagesWidgets(bool enabled)
14736 cbradney 776
{
15080 cbradney 777
        //if we want to show/hide instead
778
        //setSolidsImagesWidgetsShown(enabled);
14736 cbradney 779
        useSolidColorProfileCheckBox->setEnabled(enabled);
780
        solidColorProfileComboBox->setEnabled(enabled);
781
        solidColorRenderingIntentComboBox->setEnabled(enabled);
782
        useImageProfileCheckBox->setEnabled(enabled);
783
        doNotUseEmbeddedImageProfileCheckBox->setEnabled(enabled);
784
        imageProfileComboBox->setEnabled(enabled);
785
        imageRenderingIntentComboBox->setEnabled(enabled);
786
}
787
 
14737 cbradney 788
void Prefs_PDFExport::enablePDFXWidgets(bool enabled)
789
{
790
        pdfx3OutputProfileComboBox->setEnabled(enabled);
791
        pdfx3InfoStringLineEdit->setEnabled(enabled);
792
}
14736 cbradney 793
 
14737 cbradney 794
 
14736 cbradney 795
void Prefs_PDFExport::enablePGI()
796
{
797
        bool setter=false;
798
        if (useImageProfileCheckBox->isChecked())
799
                setter = doNotUseEmbeddedImageProfileCheckBox->isChecked() ? true : false;
800
        imageProfileComboBox->setEnabled(setter);
801
        imageRenderingIntentComboBox->setEnabled(setter);
802
        doNotUseEmbeddedImageProfileCheckBox->setEnabled(useImageProfileCheckBox->isChecked());
803
}
804
 
805
void Prefs_PDFExport::enablePGI2()
806
{
807
        bool setter = doNotUseEmbeddedImageProfileCheckBox->isChecked() ? true : false;
808
        imageProfileComboBox->setEnabled(setter);
809
        imageRenderingIntentComboBox->setEnabled(setter);
810
}
811
 
812
void Prefs_PDFExport::enablePG()
813
{
814
        bool setter = useSolidColorProfileCheckBox->isChecked() ? true : false;
815
 
816
        solidColorProfileComboBox->setEnabled(setter);
817
        solidColorRenderingIntentComboBox->setEnabled(setter);
818
}
819
 
820
void Prefs_PDFExport::enablePDFX(int i)
821
{
822
        includeLayersCheckBox->setEnabled((i == 2) || (i == 5));
15065 cbradney 823
        if (useLayersRadioButton)
824
                useLayersRadioButton->setEnabled((i == 2) || (i == 5));
825
        if (m_doc != 0 && exportingPDF)
14736 cbradney 826
        {
15065 cbradney 827
                int currentEff = effectTypeComboBox->currentIndex();
828
                disconnect(effectTypeComboBox, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
829
                effectTypeComboBox->clear();
830
                effectTypeComboBox->addItem( tr("No Effect"));
831
                effectTypeComboBox->addItem( tr("Blinds"));
832
                effectTypeComboBox->addItem( tr("Box"));
833
                effectTypeComboBox->addItem( tr("Dissolve"));
834
                effectTypeComboBox->addItem( tr("Glitter"));
835
                effectTypeComboBox->addItem( tr("Split"));
836
                effectTypeComboBox->addItem( tr("Wipe"));
14736 cbradney 837
                if (i == 2)
838
                {
15065 cbradney 839
                        effectTypeComboBox->addItem( tr("Push"));
840
                        effectTypeComboBox->addItem( tr("Cover"));
841
                        effectTypeComboBox->addItem( tr("Uncover"));
842
                        effectTypeComboBox->addItem( tr("Fade"));
843
                        effectTypeComboBox->setCurrentIndex(currentEff);
14736 cbradney 844
                }
845
                else
846
                {
847
                        if (currentEff > 6)
848
                        {
849
                                currentEff = 0;
15065 cbradney 850
                                effectTypeComboBox->setCurrentIndex(0);
14736 cbradney 851
                                SetEffOpts(0);
15065 cbradney 852
                                for (int pg = 0; pg<m_doc->Pages->count(); ++pg)
14736 cbradney 853
                                {
854
                                        if (EffVal[pg].effectType > 6)
855
                                                EffVal[pg].effectType = 0;
856
                                }
857
                        }
858
                        else
15065 cbradney 859
                                effectTypeComboBox->setCurrentIndex(currentEff);
14736 cbradney 860
                }
15065 cbradney 861
                connect(effectTypeComboBox, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
14736 cbradney 862
        }
15065 cbradney 863
 
14736 cbradney 864
        if (i < 3)  // not PDF/X
865
        {
14737 cbradney 866
                enablePDFXWidgets(false);
14736 cbradney 867
                tabWidget->setTabEnabled(2, true);
868
                outputIntentionComboBox->setEnabled(true);
869
                useImageProfileCheckBox->setEnabled(true);
870
                emit hasInfo();
15065 cbradney 871
                if (m_doc != 0 && exportingPDF)
14736 cbradney 872
                {
15065 cbradney 873
                        enabledEffectsCheckBox->setEnabled(true);
874
                        embedAllButton->setEnabled(true);
875
                        if (embeddedFontsListWidget->count() != 0)
876
                                fromEmbedButton->setEnabled(true);
877
                        toEmbedButton->setEnabled(true);
14736 cbradney 878
                }
15065 cbradney 879
 
14736 cbradney 880
                return;
881
        }
882
        // PDF/X is selected
883
        disconnect(outputIntentionComboBox, SIGNAL(activated(int)), this, SLOT(enableProfiles(int)));
884
        outputIntentionComboBox->setCurrentIndex(1);
885
        outputIntentionComboBox->setEnabled(false);
886
        enableProfiles(1);
887
        if ((i == 4) || (i == 5)) // X3 or X4, enforcing color profiles on images
888
        {
889
                useImageProfileCheckBox->setChecked(true);
890
                useImageProfileCheckBox->setEnabled(false);
891
        }
15065 cbradney 892
        if (m_doc != 0 && exportingPDF)
14736 cbradney 893
        {
894
//              EmbedFonts->setChecked(true);
895
                EmbedAll();
15065 cbradney 896
                enabledEffectsCheckBox->setChecked(false);
897
                enabledEffectsCheckBox->setEnabled(false);
14736 cbradney 898
//              EmbedFonts->setEnabled(false);
15065 cbradney 899
                fromEmbedButton->setEnabled(false);
900
                toEmbedButton->setEnabled(false);
901
                if (pdfx3InfoStringLineEdit->text().isEmpty())
14736 cbradney 902
                        emit noInfo();
903
                else
904
                        emit hasInfo();
905
        }
906
        enablePGI();
907
        pdfx3OutputProfileComboBox->setEnabled(true);
908
        pdfx3InfoStringLineEdit->setEnabled(true);
909
        tabWidget->setTabEnabled(2, false);
910
        connect(outputIntentionComboBox, SIGNAL(activated(int)), this, SLOT(enableProfiles(int)));
911
}
14745 cbradney 912
 
913
void Prefs_PDFExport::addPDFVersions(bool addPDFXStrings)
914
{
915
        disconnect(pdfVersionComboBox, SIGNAL(activated(int)), this, SLOT(enablePDFX(int)));
916
        int i = pdfVersionComboBox->currentIndex();
917
        pdfVersionComboBox->clear();
918
        pdfVersionComboBox->addItem("PDF 1.3 (Acrobat 4)");
919
        pdfVersionComboBox->addItem("PDF 1.4 (Acrobat 5)");
920
        pdfVersionComboBox->addItem("PDF 1.5 (Acrobat 6)");
921
        if (addPDFXStrings)
922
        {
923
                pdfVersionComboBox->addItem("PDF/X-1a");
924
                pdfVersionComboBox->addItem("PDF/X-3");
925
                pdfVersionComboBox->addItem("PDF/X-4");
926
        }
927
        else
928
                i=qMin(i,2);
929
        pdfVersionComboBox->setCurrentIndex(i);
930
        connect(pdfVersionComboBox, SIGNAL(activated(int)), this, SLOT(enablePDFX(int)));
931
}
15065 cbradney 932
 
933
 
934
void Prefs_PDFExport::enableEffects(bool enabled)
935
{
936
        effectsPageListWidget->setEnabled(enabled);
937
        showPagePreviewsCheckBox->setEnabled(enabled);
938
        displayDurationSpinBox->setEnabled(enabled);
939
        effectDurationSpinBox->setEnabled(enabled);
940
        effectTypeComboBox->setEnabled(enabled);
941
        if (enabled)
942
                SetEffOpts(effectTypeComboBox->currentIndex());
943
        else
944
        {
945
                effectMovingDirectionComboBox->setEnabled(false);
946
                effectInOutComboBox->setEnabled(false);
947
                effectDirectionComboBox->setEnabled(false);
948
                applyEffectToAllPagesPushButton->setEnabled(false);
949
        }
950
}