Subversion Repositories Scribus

Rev

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