Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
1307 fschmid 1
/***************************************************************************
2
 *                                                                         *
3
 *   This program is free software; you can redistribute it and/or modify  *
4
 *   it under the terms of the GNU General Public License as published by  *
5
 *   the Free Software Foundation; either version 2 of the License, or     *
6
 *   (at your option) any later version.                                   *
7
 *                                                                         *
8
 ***************************************************************************/
9
#include "tabpdfoptions.h"
10
#include "tabpdfoptions.moc"
11
 
12
#include <qpainter.h>
13
#include "units.h"
1972 craig 14
#include "pdfoptions.h"
2834 cbradney 15
#include "prefsmanager.h"
2688 craig 16
#include "scconfig.h"
1307 fschmid 17
 
18
extern QPixmap loadIcon(QString nam);
19
#ifdef HAVE_CMS
20
extern bool CMSuse;
21
#endif
22
extern bool CMSavail;
23
#include "scribus.h"
24
 
25
 
2834 cbradney 26
 
3205 craig 27
 
1792 cbradney 28
TabPDFOptions::TabPDFOptions(   QWidget* parent, PDFOptions *Optionen, SCFonts &AllFonts,
3544 avox 29
                                                                ProfilesL *PDFXProfiles, QMap<QString,int> DocFonts,
1792 cbradney 30
                                                                QValueList<PDFPresentationData> Eff, int unitIndex,
31
                                                                double PageH, double PageB, ScribusView *vie ) : QTabWidget( parent, "pdf" )
1307 fschmid 32
{
1792 cbradney 33
 
34
        unit = unitGetSuffixFromIndex(unitIndex);
35
        precision = unitGetPrecisionFromIndex(unitIndex);
36
        unitRatio = unitGetRatioFromIndex(unitIndex);
37
 
1307 fschmid 38
        FontsToEmbed.clear();
3633 fschmid 39
        AllFontsP = &AllFonts;
1307 fschmid 40
        view = vie;
41
        EffVal = Eff;
42
        Opts = Optionen;
43
        pageH = PageH;
44
        pageB = PageB;
45
        tabGeneral = new QWidget( this, "tabGeneral" );
46
        tabLayout = new QVBoxLayout( tabGeneral );
47
        tabLayout->setSpacing( 5 );
1878 cbradney 48
        tabLayout->setMargin( 0 );
1307 fschmid 49
        Layout13 = new QHBoxLayout( 0, 0, 5, "Layout13");
50
        RangeGroup = new QButtonGroup( tabGeneral, "RangeGroup" );
51
        RangeGroup->setTitle( tr( "Export Range" ) );
52
        RangeGroup->setColumnLayout(0, Qt::Vertical );
53
        RangeGroup->layout()->setSpacing( 5 );
54
        RangeGroup->layout()->setMargin( 10 );
55
        RangeGroupLayout = new QVBoxLayout( RangeGroup->layout() );
56
        RangeGroupLayout->setAlignment( Qt::AlignTop );
57
        AllPages = new QRadioButton( tr( "&All Pages" ), RangeGroup, "AllPages" );
58
        AllPages->setChecked( true );
59
        RangeGroupLayout->addWidget( AllPages );
60
        Layout11 = new QGridLayout( 0, 1, 1, 0, 5, "Layout11");
61
        OnlySome = new QRadioButton( tr( "C&hoose Pages" ), RangeGroup, "OnlySome" );
62
        Layout11->addWidget( OnlySome, 0, 0 );
63
        PageNr = new QLineEdit( RangeGroup, "PageNr" );
64
        PageNr->setEnabled(false);
65
        Layout11->addWidget( PageNr, 1, 0 );
66
        RangeGroupLayout->addLayout( Layout11 );
67
        TextLabel3 = new QLabel( tr( "&Rotation:" ), RangeGroup, "TextLabel3" );
68
        RangeGroupLayout->addWidget( TextLabel3 );
69
        RotateDeg = new QComboBox( true, RangeGroup, "RotateDeg" );
70
        RotateDeg->insertItem(QString::fromUtf8("0 °"));
71
        RotateDeg->insertItem(QString::fromUtf8("90 °"));
72
        RotateDeg->insertItem(QString::fromUtf8("180 °"));
73
        RotateDeg->insertItem(QString::fromUtf8("270 °"));
74
        RotateDeg->setEditable(false);
75
        TextLabel3->setBuddy(RotateDeg);
76
        RotateDeg->setCurrentItem(Optionen->RotateDeg / 90);
77
        RangeGroupLayout->addWidget( RotateDeg );
78
        Layout11a = new QGridLayout( 0, 1, 1, 0, 5, "Layout11a");
79
        MirrorH = new QToolButton( RangeGroup, "MirrorH" );
80
        MirrorH->setPixmap(loadIcon("FlipH.xpm"));
81
        MirrorH->setToggleButton( true );
82
        MirrorH->setOn(Optionen->MirrorH);
83
        Layout11a->addWidget( MirrorH, 0, 0 );
84
        MirrorV = new QToolButton( RangeGroup, "MirrorH" );
85
        MirrorV->setPixmap(loadIcon("FlipV.xpm"));
86
        MirrorV->setToggleButton( true );
87
        MirrorV->setOn(Optionen->MirrorV);
88
        Layout11a->addWidget( MirrorV, 0, 1 );
89
        RangeGroupLayout->addLayout( Layout11a );
90
        Layout13->addWidget( RangeGroup );
91
 
92
        GroupBox1 = new QGroupBox( tr( "File Options" ), tabGeneral, "GroupBox1" );
93
        GroupBox1->setColumnLayout(0, Qt::Vertical );
94
        GroupBox1->layout()->setSpacing( 0 );
95
        GroupBox1->layout()->setMargin( 0 );
96
        GroupBox1Layout = new QGridLayout( GroupBox1->layout() );
97
        GroupBox1Layout->setAlignment( Qt::AlignTop );
98
        GroupBox1Layout->setSpacing( 5 );
99
        GroupBox1Layout->setMargin( 10 );
100
        TextLabel1 = new QLabel( tr( "Compatibilit&y:" ), GroupBox1, "TextLabel1" );
101
        TextLabel1->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
102
        GroupBox1Layout->addWidget( TextLabel1, 0, 0 );
1973 craig 103
        PDFVersionCombo = new QComboBox( true, GroupBox1, "PDFVersionCombo" );
104
        PDFVersionCombo->setEditable(false);
105
        TextLabel1->setBuddy(PDFVersionCombo);
2578 craig 106
        PDFVersionCombo->insertItem("PDF 1.3");
107
        PDFVersionCombo->insertItem("PDF 1.4");
108
        PDFVersionCombo->insertItem("PDF 1.5");
1307 fschmid 109
#ifdef HAVE_CMS
110
        if ((CMSuse) && (CMSavail) && (!PDFXProfiles->isEmpty()))
1973 craig 111
                PDFVersionCombo->insertItem("PDF/X-3");
1307 fschmid 112
        if ((CMSuse) && (CMSavail))
113
        {
1973 craig 114
                if (Optionen->Version == PDFOptions::PDFVersion_X3)
115
                        PDFVersionCombo->setCurrentItem(3);
1307 fschmid 116
        }
117
        else
1973 craig 118
                PDFVersionCombo->setCurrentItem(0);
1365 cbradney 119
        cms = CMSuse && CMSavail;
120
#else
121
        cms = false;
1307 fschmid 122
#endif
1973 craig 123
        if (Optionen->Version == PDFOptions::PDFVersion_13)
124
                PDFVersionCombo->setCurrentItem(0);
125
        if (Optionen->Version == PDFOptions::PDFVersion_14)
126
                PDFVersionCombo->setCurrentItem(1);
127
        if (Optionen->Version == PDFOptions::PDFVersion_15)
128
                PDFVersionCombo->setCurrentItem(2);
2439 cbradney 129
        GroupBox1Layout->addMultiCellWidget( PDFVersionCombo, 0, 0, 1, 2 );
1307 fschmid 130
        TextLabel1x = new QLabel( tr( "&Binding:" ), GroupBox1, "TextLabel1" );
131
        TextLabel1x->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
132
        GroupBox1Layout->addWidget( TextLabel1x, 1, 0 );
133
        ComboBind = new QComboBox( true, GroupBox1, "ComboBind" );
134
        ComboBind->insertItem( tr("Left Margin"));
135
        ComboBind->insertItem( tr("Right Margin"));
136
        ComboBind->setEditable(false);
137
        ComboBind->setCurrentItem(Optionen->Binding);
138
        TextLabel1x->setBuddy(ComboBind);
2439 cbradney 139
        GroupBox1Layout->addMultiCellWidget( ComboBind, 1, 1, 1, 2 );
1307 fschmid 140
        CheckBox1 = new QCheckBox( tr( "Generate &Thumbnails" ), GroupBox1, "CheckBox1" );
141
        CheckBox1->setChecked(Optionen->Thumbnails);
142
        GroupBox1Layout->addMultiCellWidget( CheckBox1, 2, 2, 0, 2 );
143
        Article = new QCheckBox( tr( "Save &Linked Text Frames as PDF Articles" ), GroupBox1, "CheckBox1" );
144
        Article->setChecked(Optionen->Articles);
145
        GroupBox1Layout->addMultiCellWidget( Article, 3, 3, 0, 2 );
146
        CheckBM = new QCheckBox( tr( "&Include Bookmarks" ), GroupBox1, "E" );
147
        CheckBM->setChecked(Optionen->Bookmarks);
148
        GroupBox1Layout->addMultiCellWidget( CheckBM, 4, 4, 0, 2 );
1738 fschmid 149
        useLayers = new QCheckBox( tr( "Include Layers" ), GroupBox1, "LI" );
150
        useLayers->setChecked(Optionen->useLayers);
151
        GroupBox1Layout->addMultiCellWidget( useLayers, 5, 5, 0, 2 );
152
        if (Optionen->Version == 15)
153
                useLayers->setEnabled(true);
154
        else
155
                useLayers->setEnabled(false);
1307 fschmid 156
        Resolution = new QSpinBox( GroupBox1, "Resolution" );
157
        Resolution->setMaxValue( 4000 );
158
        Resolution->setMinValue( 35 );
159
        Resolution->setValue(Optionen->Resolution);
160
        Resolution->setSuffix( tr( " dpi" ) );
1799 cbradney 161
        TextLabel2 = new QLabel( Resolution, tr( "&Resolution for EPS Graphics:" ), GroupBox1, "TextLabel2" );
1307 fschmid 162
        TextLabel2->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
1738 fschmid 163
        GroupBox1Layout->addWidget( TextLabel2, 6, 0 );
164
        GroupBox1Layout->addWidget( Resolution, 6, 1, AlignLeft );
1307 fschmid 165
        Layout13->addWidget( GroupBox1 );
166
        tabLayout->addLayout( Layout13 );
167
        Compression = new QCheckBox( tr( "Com&press Text and Vector Graphics" ), tabGeneral, "Compression" );
168
        Compression->setChecked( Optionen->Compress );
169
        tabLayout->addWidget( Compression );
170
        CBox = new QGroupBox( tr( "Image Settings" ), tabGeneral, "CBox" );
171
        CBox->setColumnLayout(0, Qt::Vertical );
172
        CBox->layout()->setSpacing( 5 );
173
        CBox->layout()->setMargin( 11 );
174
        CBoxLayout = new QGridLayout( CBox->layout() );
175
        CBoxLayout->setAlignment( Qt::AlignTop );
176
        CMethod = new QComboBox( true, CBox, "CMethod" );
177
        CMethod->clear();
178
        CMethod->insertItem( tr( "Automatic" ) );
179
        CMethod->insertItem( tr( "JPEG" ) );
180
        CMethod->insertItem( tr( "Zip" ) );
181
        CMethod->insertItem( tr( "None" ) );
182
        CMethod->setEditable(false);
183
        CMethod->setCurrentItem(Optionen->CompressMethod);
3661 craig 184
        TextCom1 = new QLabel( CMethod, tr( "&Compression Method:" ), CBox, "TextCom1" );
1307 fschmid 185
        CBoxLayout->addWidget( TextCom1, 0, 0 );        CBoxLayout->addWidget( CMethod, 0, 1 );
3661 craig 186
        TextCom2 = new QLabel( tr( "&Compression Quality:" ), CBox, "TextCom2" );
1307 fschmid 187
        CBoxLayout->addWidget( TextCom2, 1, 0 );
188
        CQuality = new QComboBox( true, CBox, "CQuality" );
189
        CQuality->clear();
190
        CQuality->insertItem( tr( "Maximum" ) );
191
        CQuality->insertItem( tr( "High" ) );
192
        CQuality->insertItem( tr( "Medium" ) );
193
        CQuality->insertItem( tr( "Low" ) );
194
        CQuality->insertItem( tr( "Minimum" ) );
195
        CQuality->setEditable(false);
196
        CQuality->setCurrentItem(Optionen->Quality);
197
        TextCom2->setBuddy(CQuality);
198
        CBoxLayout->addWidget( CQuality, 1, 1 );
1798 fschmid 199
        DSColor = new QCheckBox( tr( "Resample Images to:" ), CBox, "DSColor" );
1307 fschmid 200
        DSColor->setChecked(Optionen->RecalcPic);
201
        CBoxLayout->addWidget( DSColor, 2, 0 );
202
        ValC = new QSpinBox( CBox, "ValC" );
203
        ValC->setSuffix( tr( " dpi" ) );
204
        ValC->setMaxValue( 4000 );
205
        ValC->setMinValue( 35 );
206
        ValC->setValue(Optionen->PicRes);
207
        ValC->setEnabled(DSColor->isChecked() ? true : false);
208
        CBoxLayout->addWidget( ValC, 2, 1, AlignLeft );
209
        tabLayout->addWidget( CBox );
210
        insertTab( tabGeneral, tr( "&General" ) );
211
        if (vie != 0)
212
        {
213
                tabFonts = new QWidget( this, "tabFonts" );
214
                tabLayout_3 = new QVBoxLayout( tabFonts );
215
                tabLayout_3->setSpacing( 5 );
216
                tabLayout_3->setMargin( 11 );
217
                EmbedFonts = new QCheckBox( tr( "&Embed all Fonts" ), tabFonts, "EmbedFonts" );
218
                tabLayout_3->addWidget( EmbedFonts );
219
                SubsetFonts = new QCheckBox( tr( "&Subset all Fonts" ), tabFonts, "SubsetFonts" );
220
                tabLayout_3->addWidget( SubsetFonts );
221
                GroupFont = new QGroupBox( tr( "Embedding" ), tabFonts, "GroupFont" );
222
                GroupFont->setColumnLayout(0, Qt::Vertical );
223
                GroupFont->layout()->setSpacing( 0 );
224
                GroupFont->layout()->setMargin( 0 );
225
                GroupFontLayout = new QHBoxLayout( GroupFont->layout() );
226
                GroupFontLayout->setAlignment( Qt::AlignTop );
227
                GroupFontLayout->setSpacing( 5 );
228
                GroupFontLayout->setMargin( 10 );
229
                Layout4_2 = new QVBoxLayout;
230
                Layout4_2->setSpacing( 5 );
231
                Layout4_2->setMargin( 0 );
232
                TextFont1 = new QLabel( tr( "Available Fonts:" ), GroupFont, "TextFont1" );
233
                Layout4_2->addWidget( TextFont1 );
234
                AvailFlist = new QListBox( GroupFont, "AvailFlist" );
3544 avox 235
                QMap<QString,int>::Iterator it;
1307 fschmid 236
                for (it = DocFonts.begin(); it != DocFonts.end(); ++it)
237
                {
2295 cbradney 238
                        if (AllFonts[it.key()]->typeCode == Foi::TYPE1)
1338 fschmid 239
                                AvailFlist->insertItem(loadIcon("font_type1_16.png"), it.key());
2295 cbradney 240
                        else if (AllFonts[it.key()]->typeCode == Foi::TTF)
1338 fschmid 241
                                AvailFlist->insertItem(loadIcon("font_truetype16.png"), it.key());
2295 cbradney 242
                        else if (AllFonts[it.key()]->typeCode == Foi::OTF)
1338 fschmid 243
                                AvailFlist->insertItem(loadIcon("font_otf16.png"), it.key());
1307 fschmid 244
                }
245
                AvailFlist->setMinimumSize(QSize(150, 140));
246
                Layout4_2->addWidget( AvailFlist );
247
                GroupFontLayout->addLayout( Layout4_2 );
248
                Layout5_2 = new QVBoxLayout;
249
                Layout5_2->setSpacing( 5 );
250
                Layout5_2->setMargin( 0 );
1321 fschmid 251
                QSpacerItem* spacerS3a = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Minimum );
252
                Layout5_2->addItem( spacerS3a );
1307 fschmid 253
                ToEmbed = new QPushButton( tr( "&>>" ), GroupFont, "ToEmbed" );
254
                ToEmbed->setEnabled(false);
255
                Layout5_2->addWidget( ToEmbed );
256
                FromEmbed = new QPushButton( tr( "&<<" ), GroupFont, "FromEmbed" );
257
                FromEmbed->setEnabled(false);
258
                Layout5_2->addWidget( FromEmbed );
1321 fschmid 259
                QSpacerItem* spacerS3 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
260
                Layout5_2->addItem( spacerS3 );
1307 fschmid 261
                GroupFontLayout->addLayout( Layout5_2 );
262
                Layout6 = new QVBoxLayout;
263
                Layout6->setSpacing( 5 );
264
                Layout6->setMargin( 0 );
265
                TextFont1_2 = new QLabel( tr( "Fonts to embed:" ), GroupFont, "TextFont1_2" );
266
                Layout6->addWidget( TextFont1_2 );
267
                EmbedList = new QListBox( GroupFont, "EmbedList" );
268
                EmbedList->setMinimumSize(QSize(150, 40));
269
                Layout6->addWidget( EmbedList );
270
 
271
                Layout5_2a = new QHBoxLayout;
272
                Layout5_2a->setSpacing( 5 );
273
                Layout5_2a->setMargin( 0 );
274
                QSpacerItem* spacerS1 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
275
                Layout5_2a->addItem( spacerS1 );
276
                ToSubset = new QPushButton( "", GroupFont, "ToSubset" );
277
                ToSubset->setPixmap(loadIcon("down.png"));
278
                ToSubset->setEnabled(false);
279
                Layout5_2a->addWidget( ToSubset );
280
                FromSubset = new QPushButton( "", GroupFont, "FromSubset" );
281
                FromSubset->setPixmap(loadIcon("up.png"));
282
                FromSubset->setEnabled(false);
283
                Layout5_2a->addWidget( FromSubset );
284
                QSpacerItem* spacerS2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
285
                Layout5_2a->addItem( spacerS2 );
286
                Layout6->addLayout( Layout5_2a );
287
                TextFont1_2a = new QLabel( tr( "Fonts to subset:" ), GroupFont, "TextFont1_2a" );
288
                Layout6->addWidget( TextFont1_2a );
289
                SubsetList = new QListBox( GroupFont, "SubsetList" );
290
                SubsetList->setMinimumSize(QSize(150, 40));
291
                Layout6->addWidget( SubsetList );
292
                if ((Optionen->EmbedList.count() == 0) && (Optionen->SubsetList.count() == 0))
293
                {
294
                        EmbedFonts->setChecked(true);
295
                        EmbedAll();
296
                }
297
                else
298
                {
299
                        for (uint fe = 0; fe < Optionen->EmbedList.count(); ++fe)
300
                        {
301
                                EmbedList->insertItem(Optionen->EmbedList[fe]);
302
                                FontsToEmbed.append(Optionen->EmbedList[fe]);
303
                        }
304
                }
305
                if (Optionen->SubsetList.count() != 0)
306
                {
307
                        for (uint fe = 0; fe < Optionen->SubsetList.count(); ++fe)
308
                        {
309
                                SubsetList->insertItem(Optionen->SubsetList[fe]);
310
                                FontsToSubset.append(Optionen->SubsetList[fe]);
311
                        }
312
                }
313
                GroupFontLayout->addLayout( Layout6 );
314
                tabLayout_3->addWidget( GroupFont );
315
                insertTab( tabFonts, tr( "&Fonts" ) );
316
                tabPresentation = new QWidget( this, "tabPresentation" );
317
                tabLayout_5 = new QGridLayout( tabPresentation );
318
                tabLayout_5->setSpacing( 5 );
319
                tabLayout_5->setMargin( 11 );
320
                CheckBox10 = new QCheckBox( tr( "Enable &Presentation Effects" ), tabPresentation, "CheckBox10" );
321
                CheckBox10->setChecked(Optionen->PresentMode);
322
                tabLayout_5->addMultiCellWidget( CheckBox10, 0, 0, 0, 1 );
323
                Pages = new QListBox( tabPresentation, "Pages" );
324
                Pages->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, Pages->sizePolicy().hasHeightForWidth() ) );
325
                QString tmp;
326
                struct PDFPresentationData ef;
327
                if (EffVal.count() != 0)
328
                {
329
                        for (uint pg2 = 0; pg2 < view->Doc->Pages.count(); ++pg2)
330
                        {
331
                                Pages->insertItem( tr("Page")+" "+tmp.setNum(pg2+1));
332
                                if (EffVal.count()-1 < pg2)
333
                                {
334
                                        ef.pageEffectDuration = 1;
335
                                        ef.pageViewDuration = 1;
336
                                        ef.effectType = 0;
337
                                        ef.Dm = 0;
338
                                        ef.M = 0;
339
                                        ef.Di = 0;
340
                                        EffVal.append(ef);
341
                                }
342
                        }
343
                }
344
                else
345
                {
346
                        for (uint pg = 0; pg < view->Doc->Pages.count(); ++pg)
347
                        {
348
                                Pages->insertItem( tr("Page")+" "+tmp.setNum(pg+1));
349
                                ef.pageEffectDuration = 1;
350
                                ef.pageViewDuration = 1;
351
                                ef.effectType = 0;
352
                                ef.Dm = 0;
353
                                ef.M = 0;
354
                                ef.Di = 0;
355
                                EffVal.append(ef);
356
                        }
357
                }
358
                tabLayout_5->addWidget( Pages, 1, 0 );
359
                PagePrev = new QCheckBox( tr( "Show Page Pre&views" ), tabPresentation, "CheckBox10" );
360
                PagePrev->setChecked(false);
361
                tabLayout_5->addWidget( PagePrev, 2, 0 );
362
                Effects = new QGroupBox( tr( "Effects" ), tabPresentation, "Effects" );
363
                Effects->setColumnLayout(0, Qt::Vertical );
364
                Effects->layout()->setSpacing( 0 );
365
                Effects->layout()->setMargin( 0 );
366
                EffectsLayout = new QGridLayout( Effects->layout() );
367
                EffectsLayout->setAlignment( Qt::AlignTop );
368
                EffectsLayout->setSpacing( 5 );
369
                EffectsLayout->setMargin( 11 );
370
                TextLabel1e = new QLabel( tr( "&Display Duration:" ), Effects, "TextLabel1_2" );
371
                EffectsLayout->addWidget( TextLabel1e, 0, 0 );
372
                TextLabel2e = new QLabel( tr( "Effec&t Duration:" ), Effects, "TextLabel2_2" );
373
                EffectsLayout->addWidget( TextLabel2e, 1, 0 );
374
                TextLabel3e = new QLabel( tr( "Effect T&ype:" ), Effects, "TextLabel3_2" );
375
                EffectsLayout->addWidget( TextLabel3e, 2, 0 );
376
                TextLabel4e = new QLabel( tr( "&Moving Lines:" ), Effects, "TextLabel4_2" );
377
                EffectsLayout->addWidget( TextLabel4e, 3, 0 );
378
                TextLabel5e = new QLabel( tr( "F&rom the:" ), Effects, "TextLabel6" );
379
                EffectsLayout->addWidget( TextLabel5e, 4, 0 );
380
                TextLabel6e = new QLabel( tr( "D&irection:" ), Effects, "TextLabel5" );
381
                EffectsLayout->addWidget( TextLabel6e, 5, 0 );
382
                PageTime = new QSpinBox( Effects, "PageTime" );
383
                PageTime->setSuffix( tr( " sec" ) );
384
                PageTime->setMaxValue( 3600 );
385
                PageTime->setMinValue( 1 );
386
                PageTime->setValue(EffVal[0].pageViewDuration);
387
                TextLabel1e->setBuddy(PageTime);
388
                EffectsLayout->addWidget( PageTime, 0, 1 );
389
                EffectTime = new QSpinBox( Effects, "EffectTime" );
390
                EffectTime->setSuffix( tr( " sec" ) );
391
                EffectTime->setMaxValue( 3600 );
392
                EffectTime->setMinValue( 1 );
393
                EffectTime->setValue(EffVal[0].pageEffectDuration);
394
                TextLabel2e->setBuddy(EffectTime);
395
                EffectsLayout->addWidget( EffectTime, 1, 1 );
396
                EffectType = new QComboBox( true, Effects, "EffectType" );
397
                QString tmpc[] = { tr("No Effect"), tr("Blinds"), tr("Box"), tr("Dissolve"), tr("Glitter"), tr("Split"), tr("Wipe")};
398
                size_t ar = sizeof(tmpc) / sizeof(*tmpc);
399
                for (uint a = 0; a < ar; ++a)
400
                        EffectType->insertItem(tmpc[a]);
401
                EffectType->setEditable(false);
402
                TextLabel3e->setBuddy(EffectType);
403
                EffectsLayout->addWidget( EffectType, 2, 1 );
404
                EDirection = new QComboBox( true, Effects, "EDirection" );
405
                EDirection->insertItem( tr( "Horizontal" ) );
406
                EDirection->insertItem( tr( "Vertical" ) );
407
                EDirection->setEditable(false);
408
                TextLabel4e->setBuddy(EDirection);
409
                EffectsLayout->addWidget( EDirection, 3, 1 );
410
                EDirection_2 = new QComboBox( true, Effects, "EDirection_2" );
411
                EDirection_2->insertItem( tr( "Inside" ) );
412
                EDirection_2->insertItem( tr( "Outside" ) );
413
                EDirection_2->setEditable(false);
414
                TextLabel5e->setBuddy(EDirection_2);
415
                EffectsLayout->addWidget( EDirection_2, 4, 1 );
416
                EDirection_2_2 = new QComboBox( true, Effects, "EDirection_2_2" );
417
                QString tmp_ed[] = { tr("Left to Right"), tr("Top to Bottom"), tr("Bottom to Top"), tr("Right to Left"),
418
                                                        tr("Top-left to Bottom-Right")};
419
                size_t ar_ed = sizeof(tmp_ed) / sizeof(*tmp_ed);
420
                for (uint a = 0; a < ar_ed; ++a)
421
                        EDirection_2_2->insertItem(tmp_ed[a]);
422
                EDirection_2_2->setEditable(false);
423
                TextLabel6e->setBuddy(EDirection_2_2);
424
                EffectsLayout->addWidget( EDirection_2_2, 5, 1 );
425
                EonAllPg = new QPushButton( tr( "&Apply Effect on all Pages" ), Effects, "Eon" );
426
                EffectsLayout->addMultiCellWidget( EonAllPg, 6, 6, 0, 1 );
427
                tabLayout_5->addMultiCellWidget( Effects, 1, 2, 1, 1 );
428
                insertTab( tabPresentation, tr( "E&xtras" ) );
429
        }
430
        tabSecurity = new QWidget( this, "tabSecurity" );
431
        tabSecurityLayout = new QVBoxLayout( tabSecurity, 11, 5, "tabSecurityLayout");
432
        Encry = new QCheckBox( tr( "&Use Encryption" ), tabSecurity, "Enc" );
433
        Encry->setChecked( Optionen->Encrypt );
434
        tabSecurityLayout->addWidget( Encry );
435
        GroupPass = new QGroupBox( tr( "Passwords" ), tabSecurity, "GroupPass" );
436
        GroupPass->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)1, 0, 0,
437
                                               GroupPass->sizePolicy().hasHeightForWidth() ) );
438
        GroupPass->setColumnLayout(0, Qt::Vertical );
439
        GroupPass->layout()->setSpacing( 5 );
440
        GroupPass->layout()->setMargin( 10 );
441
        GroupPassLayout = new QGridLayout( GroupPass->layout() );
442
        GroupPassLayout->setAlignment( Qt::AlignTop );
443
        TextSec2 = new QLabel( tr( "&User:" ), GroupPass, "TextSec2" );
444
        GroupPassLayout->addWidget( TextSec2, 1, 0 );
445
        TextSec1 = new QLabel( tr( "&Owner:" ), GroupPass, "TextSec1" );
446
        GroupPassLayout->addWidget( TextSec1, 0, 0 );
447
        PassOwner = new QLineEdit( GroupPass, "PassOwner" );
448
        PassOwner->setEchoMode( QLineEdit::Password );
449
        PassOwner->setText(Optionen->PassOwner);
450
        TextSec1->setBuddy(PassOwner);
451
        GroupPassLayout->addWidget( PassOwner, 0, 1 );
452
        PassUser = new QLineEdit( GroupPass, "PassUser" );
453
        PassUser->setEchoMode( QLineEdit::Password );
454
        PassUser->setText(Optionen->PassUser);
455
        TextSec2->setBuddy(PassUser);
456
        GroupPassLayout->addWidget( PassUser, 1, 1 );
457
        tabSecurityLayout->addWidget( GroupPass );
458
 
459
        GroupSecSet = new QGroupBox( tr( "Settings" ), tabSecurity, "GroupSecSet" );
460
        GroupSecSet->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0,
461
                                    GroupSecSet->sizePolicy().hasHeightForWidth() ) );
462
        GroupSecSet->setColumnLayout(0, Qt::Vertical );
463
        GroupSecSet->layout()->setSpacing( 5 );
464
        GroupSecSet->layout()->setMargin( 10 );
465
        GroupSecSetLayout = new QVBoxLayout( GroupSecSet->layout() );
466
        GroupSecSetLayout->setAlignment( Qt::AlignTop );
467
        PrintSec = new QCheckBox( tr( "Allow &Printing the Document" ), GroupSecSet, "PrintSec" );
468
        PrintSec->setChecked( Optionen->Permissions & 4 );
469
        GroupSecSetLayout->addWidget( PrintSec );
470
        ModifySec = new QCheckBox( tr( "Allow &Changing the Document" ), GroupSecSet, "ModifySec" );
471
        ModifySec->setChecked( Optionen->Permissions & 8 );
472
        GroupSecSetLayout->addWidget( ModifySec );
473
        CopySec = new QCheckBox( tr( "Allow Cop&ying Text and Graphics" ), GroupSecSet, "CopySec" );
474
        CopySec->setChecked( Optionen->Permissions & 16 );
475
        GroupSecSetLayout->addWidget( CopySec );
476
        AddSec = new QCheckBox( tr( "Allow Adding &Annotations and Fields" ), GroupSecSet, "AddSec" );
477
        AddSec->setChecked( Optionen->Permissions & 32 );
478
        GroupSecSetLayout->addWidget( AddSec );
479
        tabSecurityLayout->addWidget( GroupSecSet );
480
        if (!Encry->isChecked())
481
        {
482
                GroupSecSet->setEnabled(false);
483
                GroupPass->setEnabled(false);
484
        }
485
        insertTab( tabSecurity, tr( "S&ecurity" ) );
486
 
487
        tabColor = new QWidget( this, "tabColor" );
488
        tabColorLayout = new QVBoxLayout( tabColor, 11, 5, "tabColorLayout");
489
        ColorGroup = new QGroupBox( tr( "General" ), tabColor, "ColorGroup" );
490
        ColorGroup->setColumnLayout(0, Qt::Vertical );
491
        ColorGroup->layout()->setSpacing( 5 );
492
        ColorGroup->layout()->setMargin( 10 );
493
        ColorGroupLayout = new QHBoxLayout( ColorGroup->layout() );
494
        ColorGroupLayout->setAlignment( Qt::AlignTop );
495
        ColorText1 = new QLabel( tr( "Output &Intended For:" ), ColorGroup, "ColorText1" );
496
        ColorGroupLayout->addWidget( ColorText1 );
497
        OutCombo = new QComboBox( true, ColorGroup, "OutCombo" );
498
        OutCombo->insertItem( tr( "Screen / Web" ) );
499
        OutCombo->insertItem( tr( "Printer" ) );
1476 fschmid 500
        OutCombo->insertItem( tr( "Grayscale" ) );
1307 fschmid 501
        OutCombo->setEditable(false);
1476 fschmid 502
        if (Optionen->UseRGB)
503
                OutCombo->setCurrentItem(0);
504
        else
505
        {
506
                if (Optionen->isGrayscale)
507
                        OutCombo->setCurrentItem(2);
508
                else
509
                        OutCombo->setCurrentItem(1);
510
        }
1307 fschmid 511
        ColorText1->setBuddy(OutCombo);
512
        ColorGroupLayout->addWidget( OutCombo );
513
        tabColorLayout->addWidget( ColorGroup );
514
 
3079 fschmid 515
        useSpot = new QCheckBox( tr( "Convert Spot Colors to Process Colors" ), tabColor, "useSpot" );
516
        useSpot->setChecked(!Optionen->UseSpotColors);
517
        tabColorLayout->addWidget( useSpot );
518
 
1307 fschmid 519
        UseLPI = new QCheckBox( tr( "&Use Custom Rendering Settings" ), tabColor, "UseLPI" );
520
        UseLPI->setChecked(Optionen->UseLPI);
521
        tabColorLayout->addWidget( UseLPI );
522
        LPIgroup = new QGroupBox( tr( "Rendering Settings" ), tabColor, "LPIgroup" );
523
        LPIgroup->setColumnLayout(0, Qt::Vertical );
524
        LPIgroup->layout()->setSpacing( 5 );
525
        LPIgroup->layout()->setMargin( 10 );
526
        LPIgroupLayout = new QGridLayout( LPIgroup->layout() );
527
        LPIgroupLayout->setAlignment( Qt::AlignTop );
528
        LPIcolor = new QComboBox( true, LPIgroup, "LPIcolor" );
529
        LPIcolor->setEditable(false);
530
        QMap<QString,LPIData>::Iterator itlp;
531
        for (itlp = Optionen->LPISettings.begin(); itlp != Optionen->LPISettings.end(); ++itlp)
532
        {
533
                LPIcolor->insertItem( itlp.key() );
534
        }
535
        LPIcolor->setCurrentItem(0);
536
        LPIgroupLayout->addWidget( LPIcolor, 0, 0 );
537
        textLPI1 = new QLabel( tr( "Fre&quency:" ), LPIgroup, "textLPI1" );
538
        LPIgroupLayout->addWidget( textLPI1, 0, 1 );
539
        LPIfreq = new QSpinBox( LPIgroup, "LPIfreq" );
540
        LPIfreq->setMinValue(10);
541
        LPIfreq->setMaxValue(1000);
542
        LPIfreq->setValue(Optionen->LPISettings[LPIcolor->currentText()].Frequency);
543
        textLPI1->setBuddy(LPIfreq);
544
        LPIgroupLayout->addWidget( LPIfreq, 0, 2 );
545
        textLPI2 = new QLabel( tr( "&Angle:" ), LPIgroup, "textLPI2" );
546
        LPIgroupLayout->addWidget( textLPI2, 1, 1 );
547
        LPIangle = new QSpinBox( LPIgroup, "LPIangle" );
548
        LPIangle->setSuffix( QString::fromUtf8(" °"));
549
        LPIangle->setMinValue(-180);
550
        LPIangle->setMaxValue(180);
551
        LPIangle->setValue(Optionen->LPISettings[LPIcolor->currentText()].Angle);
552
        textLPI2->setBuddy(LPIangle);
553
        LPIgroupLayout->addWidget( LPIangle, 1, 2 );
554
        textLPI3 = new QLabel( tr( "S&pot Function:" ), LPIgroup, "textLPI3" );
555
        LPIgroupLayout->addWidget( textLPI3, 2, 1 );
556
        LPIfunc = new QComboBox( true, LPIgroup, "LPIfunc" );
557
        LPIfunc->setEditable(false);
558
        LPIfunc->insertItem( tr( "Simple Dot" ) );
559
        LPIfunc->insertItem( tr( "Line" ) );
560
        LPIfunc->insertItem( tr( "Round" ) );
561
        LPIfunc->insertItem( tr( "Ellipse" ) );
562
        LPIfunc->setCurrentItem(Optionen->LPISettings[LPIcolor->currentText()].SpotFunc);
563
        textLPI3->setBuddy(LPIfunc);
564
        LPIgroupLayout->addWidget( LPIfunc, 2, 2 );
565
        tabColorLayout->addWidget( LPIgroup );
566
        SelLPIcolor = LPIcolor->currentText();
567
 
568
        GroupBox9 = new QGroupBox( tr( "Solid Colors:" ), tabColor, "GroupBox9" );
569
        GroupBox9->setColumnLayout(0, Qt::Vertical );
570
        GroupBox9->layout()->setSpacing( 5 );
571
        GroupBox9->layout()->setMargin( 10 );
572
        GroupBox9Layout = new QGridLayout( GroupBox9->layout() );
573
        GroupBox9Layout->setAlignment( Qt::AlignTop );
574
        EmbedProfs = new QCheckBox( GroupBox9, "EmbedProfs" );
575
        EmbedProfs->setText( tr( "Use ICC Profile" ) );
576
        EmbedProfs->setChecked(Optionen->UseProfiles);
577
        GroupBox9Layout->addMultiCellWidget( EmbedProfs, 0, 0, 0, 1 );
578
        ProfsTxt1 = new QLabel(GroupBox9, "ProfsTxt1");
579
        ProfsTxt1->setText( tr( "Profile:" ) );
580
        GroupBox9Layout->addWidget( ProfsTxt1, 1, 0 );
581
        ProfsTxt2 = new QLabel( GroupBox9, "ProfsTxt2_2" );
582
        ProfsTxt2->setText( tr( "Rendering-Intent:" ) );
583
        GroupBox9Layout->addWidget( ProfsTxt2, 1, 1 );
584
        SolidPr = new QComboBox(true, GroupBox9, "SolidPr" );
585
        SolidPr->setEditable(false);
586
        GroupBox9Layout->addWidget( SolidPr, 2, 0 );
587
        IntendS = new QComboBox( true, GroupBox9, "IntendS" );
588
        QString tmp_ip[] = { tr("Perceptual"), tr("Relative Colorimetric"), tr("Saturation"), tr("Absolute Colorimetric")};
589
        size_t ar_ip = sizeof(tmp_ip) / sizeof(*tmp_ip);
590
        for (uint a = 0; a < ar_ip; ++a)
591
                IntendS->insertItem(tmp_ip[a]);
592
        IntendS->setEditable(false);
593
        GroupBox9Layout->addWidget( IntendS, 2, 1 );
594
        tabColorLayout->addWidget( GroupBox9 );
595
        ProfsGroup = new QGroupBox( tr( "Images:" ), tabColor, "ProfsGroup" );
596
        ProfsGroup->setColumnLayout(0, Qt::Vertical );
597
        ProfsGroup->layout()->setSpacing( 5 );
598
        ProfsGroup->layout()->setMargin( 10 );
599
        ProfsGroupLayout = new QGridLayout( ProfsGroup->layout() );
600
        ProfsGroupLayout->setAlignment( Qt::AlignTop );
601
        EmbedProfs2 = new QCheckBox( tr( "Use ICC Profile" ), ProfsGroup, "EmbedProfs" );
602
        EmbedProfs2->setChecked(Optionen->UseProfiles2);
603
        ProfsGroupLayout->addMultiCellWidget( EmbedProfs2, 0, 0, 0, 1 );
604
        NoEmbedded = new QCheckBox( ProfsGroup, "NoEmbedded" );
605
        NoEmbedded->setText( tr( "Don't use embedded ICC profiles" ) );
606
        NoEmbedded->setChecked(Optionen->EmbeddedI);
607
        ProfsGroupLayout->addMultiCellWidget( NoEmbedded, 1, 1, 0, 1 );
608
        ProfsTxt3 = new QLabel( ProfsGroup, "ProfsTxt3" );
609
        ProfsTxt3->setText( tr( "Profile:" ) );
610
        ProfsGroupLayout->addWidget( ProfsTxt3, 2, 0 );
611
        ProfsTxt4 = new QLabel( ProfsGroup, "ProfsTxt2_2" );
612
        ProfsTxt4->setText( tr( "Rendering-Intent:" ) );
613
        ProfsGroupLayout->addWidget( ProfsTxt4, 2, 1 );
614
        ImageP = new QComboBox( true, ProfsGroup, "ImageP" );
615
        ImageP->setEditable(false);
616
        ProfsGroupLayout->addWidget( ImageP, 3, 0 );
617
        IntendI = new QComboBox( true, ProfsGroup, "IntendS" );
618
        for (uint a = 0; a < ar_ip; ++a)
619
                IntendI->insertItem(tmp_ip[a]);
620
        IntendI->setEditable(false);
621
        ProfsGroupLayout->addWidget( IntendI, 3, 1 );
622
        tabColorLayout->addWidget( ProfsGroup );
1476 fschmid 623
        if ((Optionen->UseRGB) || (Optionen->isGrayscale))
1307 fschmid 624
        {
625
                ProfsGroup->setEnabled(false);
626
                GroupBox9->setEnabled(false);
1476 fschmid 627
                EnablePr(0);
1307 fschmid 628
        }
1476 fschmid 629
        else
630
                EnablePr(1);
1307 fschmid 631
        EnablePG();
632
        EnablePGI();
633
#ifdef HAVE_CMS
634
 
635
        QString tp = Optionen->SolidProf;
2891 cbradney 636
        if (!ScApp->InputProfiles.contains(tp))
1307 fschmid 637
        {
638
                if (vie != 0)
2984 fschmid 639
                        tp = vie->Doc->CMSSettings.DefaultSolidColorProfile;
1307 fschmid 640
                else
2984 fschmid 641
                        tp = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorProfile;
1307 fschmid 642
        }
643
        ProfilesL::Iterator itp;
2891 cbradney 644
        ProfilesL::Iterator itpend=ScApp->InputProfiles.end();
645
        for (itp = ScApp->InputProfiles.begin(); itp != itpend; ++itp)
1307 fschmid 646
        {
647
                SolidPr->insertItem(itp.key());
648
                if (itp.key() == tp)
649
                {
650
                        if ((CMSuse) && (CMSavail))
651
                                SolidPr->setCurrentItem(SolidPr->count()-1);
652
                }
653
        }
654
        if ((CMSuse) && (CMSavail))
655
                IntendS->setCurrentItem(Optionen->Intent);
656
        QString tp1 = Optionen->ImageProf;
2891 cbradney 657
        if (!ScApp->InputProfiles.contains(tp1))
1307 fschmid 658
        {
659
                if (vie != 0)
2984 fschmid 660
                        tp1 = vie->Doc->CMSSettings.DefaultSolidColorProfile;
1307 fschmid 661
                else
2984 fschmid 662
                        tp1 = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorProfile;
1307 fschmid 663
        }
2891 cbradney 664
        ProfilesL::Iterator itp2;
665
        ProfilesL::Iterator itp2end=ScApp->InputProfiles.end();
666
        for (itp2 = ScApp->InputProfiles.begin(); itp2 != itp2end; ++itp2)
1307 fschmid 667
        {
668
                ImageP->insertItem(itp2.key());
669
                if (itp2.key() == tp1)
670
                {
671
                        if ((CMSuse) && (CMSavail))
672
                                ImageP->setCurrentItem(ImageP->count()-1);
673
                }
674
        }
675
        if ((CMSuse) && (CMSavail))
676
                IntendI->setCurrentItem(Optionen->Intent2);
677
        if ((!CMSuse) || (!CMSavail))
678
        {
679
                GroupBox9->hide();
680
                ProfsGroup->hide();
681
        }
682
#else
683
        GroupBox9->hide();
684
        ProfsGroup->hide();
685
#endif
686
 
687
        QSpacerItem* spacerCG = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding );
688
        tabColorLayout->addItem( spacerCG );
689
        insertTab( tabColor, tr( "C&olor" ) );
690
 
691
        tabPDFX = new QWidget( this, "tabPDFX" );
692
        tabPDFXLayout = new QVBoxLayout( tabPDFX, 11, 5, "tabPDFXLayout");
693
        X3Group = new QGroupBox( tabPDFX, "X3Group" );
694
        X3Group->setTitle( tr( "PDF/X-3 Output Intent" ) );
695
        X3Group->setColumnLayout(0, Qt::Vertical );
696
        X3Group->layout()->setSpacing( 5 );
697
        X3Group->layout()->setMargin( 10 );
698
        X3GroupLayout = new QGridLayout( X3Group->layout() );
699
        X3GroupLayout->setAlignment( Qt::AlignTop );
700
        PrintProfC = new QComboBox( true, X3Group, "PrintProfC" );
701
        PrintProfC->setEditable(false);
702
#ifdef HAVE_CMS
703
 
704
        ProfilesL::Iterator itp3;
705
        QString tp3 = Optionen->PrintProf;
706
        if (!PDFXProfiles->contains(tp3))
707
        {
708
                if (vie != 0)
709
                        tp3 = vie->Doc->CMSSettings.DefaultPrinterProfile;
710
                else
2834 cbradney 711
                        tp3 = PrefsManager::instance()->appPrefs.DCMSset.DefaultPrinterProfile;
1307 fschmid 712
        }
713
        for (itp3 = PDFXProfiles->begin(); itp3 != PDFXProfiles->end(); ++itp3)
714
        {
715
                PrintProfC->insertItem(itp3.key());
716
                if (itp3.key() == tp3)
717
                        PrintProfC->setCurrentItem(PrintProfC->count()-1);
718
        }
719
#endif
720
        X3GroupLayout->addWidget( PrintProfC, 0, 1 );
721
        InfoString = new QLineEdit( X3Group, "InfoString" );
722
        InfoString->setText(Optionen->Info);
723
        X3GroupLayout->addWidget( InfoString, 1, 1 );
724
        PDFX2 = new QLabel( InfoString, tr( "&Info String:" ), X3Group, "PDFX2" );
725
        X3GroupLayout->addWidget( PDFX2, 1, 0 );
726
        PDFX1 = new QLabel( PrintProfC, tr( "Output &Profile:" ), X3Group, "PDFX1" );
727
        X3GroupLayout->addWidget( PDFX1, 0, 0 );
728
        tabPDFXLayout->addWidget( X3Group );
729
        BleedGroup = new QGroupBox( tabPDFX, "BleedGroup" );
730
        BleedGroup->setTitle( tr( "Trim Box" ) );
731
        BleedGroup->setColumnLayout(0, Qt::Vertical );
732
        BleedGroup->layout()->setSpacing( 5 );
733
        BleedGroup->layout()->setMargin( 11 );
734
        BleedGroupLayout = new QGridLayout( BleedGroup->layout() );
735
        BleedGroupLayout->setAlignment( Qt::AlignTop );
736
        BleedIcon = new QLabel( BleedGroup, "BleedIcon" );
737
        BleedIcon->setMinimumSize( QSize( 74, 84 ) );
738
        BleedIcon->setMaximumSize( QSize( 74, 84 ) );
739
        BleedIcon->setFrameShape( QLabel::Panel );
740
        BleedIcon->setFrameShadow( QLabel::Sunken );
741
        BleedIcon->setScaledContents( false );
742
        BleedIcon->setAlignment( static_cast<int>( QLabel::AlignCenter ) );
743
        BleedGroupLayout->addWidget( BleedIcon, 1, 2 );
1792 cbradney 744
        BleedTop = new MSpinBox( BleedGroup, precision );
1307 fschmid 745
        BleedGroupLayout->addWidget( BleedTop, 0, 2 );
1792 cbradney 746
        BleedBottom = new MSpinBox( BleedGroup, precision );
1307 fschmid 747
        BleedGroupLayout->addWidget( BleedBottom, 2, 2 );
1792 cbradney 748
        BleedRight = new MSpinBox( BleedGroup, precision );
1307 fschmid 749
        BleedGroupLayout->addWidget( BleedRight, 1, 3 );
1792 cbradney 750
        BleedLeft = new MSpinBox( BleedGroup, precision );
1307 fschmid 751
        BleedGroupLayout->addWidget( BleedLeft, 1, 1 );
752
        QSpacerItem* spacerPX = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
753
        BleedGroupLayout->addItem( spacerPX, 1, 0 );
754
        QSpacerItem* spacerPX2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
755
        BleedGroupLayout->addItem( spacerPX2, 1, 4 );
756
        tabPDFXLayout->addWidget( BleedGroup );
757
        insertTab( tabPDFX, tr( "PDF/X-&3" ) );
758
        BleedTop->setSuffix( unit );
759
        BleedTop->setMinValue(0);
1792 cbradney 760
        BleedTop->setMaxValue(PageH*unitRatio);
761
        BleedTop->setValue(Optionen->BleedTop*unitRatio);
1307 fschmid 762
        BleedBottom->setSuffix( unit );
763
        BleedBottom->setMinValue(0);
1792 cbradney 764
        BleedBottom->setMaxValue(PageH*unitRatio);
765
        BleedBottom->setValue(Optionen->BleedBottom*unitRatio);
1307 fschmid 766
        BleedRight->setSuffix( unit );
767
        BleedRight->setMinValue(0);
1792 cbradney 768
        BleedRight->setMaxValue(PageB*unitRatio);
769
        BleedRight->setValue(Optionen->BleedRight*unitRatio);
1307 fschmid 770
        BleedLeft->setSuffix( unit );
771
        BleedLeft->setMinValue(0);
1792 cbradney 772
        BleedLeft->setMaxValue(PageB*unitRatio);
773
        BleedLeft->setValue(Optionen->BleedLeft*unitRatio);
1307 fschmid 774
#ifdef HAVE_CMS
775
        if ((!CMSuse) || (!CMSavail))
776
                setTabEnabled(tabPDFX, false);
777
        if ((CMSuse) && (CMSavail) && (Optionen->Version == 12) && (!PDFXProfiles->isEmpty()))
1738 fschmid 778
                EnablePDFX(3);
1307 fschmid 779
        else
780
                setTabEnabled(tabPDFX, false);
781
#else
782
        setTabEnabled(tabPDFX, false);
783
#endif
784
        BleedChanged();
785
        if (vie != 0)
786
        {
787
                PgSel = 0;
788
                Pages->setCurrentItem(0);
789
                SetEffOpts(0);
790
                Pages->setEnabled(false);
791
                Effects->setEnabled(false);
792
                PagePrev->setEnabled(false);
793
                DoEffects();
794
                if (CheckBox10->isChecked())
795
                {
796
                        PageTime->setValue(EffVal[0].pageViewDuration);
797
                        EffectTime->setValue(EffVal[0].pageEffectDuration);
798
                        EffectType->setCurrentItem(EffVal[0].effectType);
799
                        EDirection->setCurrentItem(EffVal[0].Dm);
800
                        EDirection_2->setCurrentItem(EffVal[0].M);
801
                        EDirection_2_2->setCurrentItem(EffVal[0].Di);
802
                        SetEffOpts(EffectType->currentItem());
803
                }
804
                connect(EmbedFonts, SIGNAL(clicked()), this, SLOT(EmbedAll()));
805
                connect(AvailFlist, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelAFont(QListBoxItem*)));
806
                connect(EmbedList, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelEFont(QListBoxItem*)));
807
                connect(ToEmbed, SIGNAL(clicked()), this, SLOT(PutToEmbed()));
808
                connect(FromEmbed, SIGNAL(clicked()), this, SLOT(RemoveEmbed()));
809
                connect(SubsetFonts, SIGNAL(clicked()), this, SLOT(SubsetAll()));
810
                connect(SubsetList, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelSFont(QListBoxItem*)));
811
                connect(ToSubset, SIGNAL(clicked()), this, SLOT(PutToSubset()));
812
                connect(FromSubset, SIGNAL(clicked()), this, SLOT(RemoveSubset()));
813
                connect(PagePrev, SIGNAL(clicked()), this, SLOT(PagePr()));
814
                connect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
815
                connect(EffectType, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
816
                connect(EDirection_2_2, SIGNAL(activated(int)), this, SLOT(ValidDI(int)));
817
                connect(CheckBox10, SIGNAL(clicked()), this, SLOT(DoEffects()));
818
                connect(EonAllPg, SIGNAL(clicked()), this, SLOT(EffectOnAll()));
3388 fschmid 819
                connect(InfoString, SIGNAL(textChanged(const QString &)), this, SLOT(checkInfo()));
820
                connect(InfoString, SIGNAL(returnPressed()), this, SLOT(checkInfo()));
821
                connect(InfoString, SIGNAL(lostFocus()), this, SLOT(checkInfo()));
1307 fschmid 822
                QToolTip::add( EmbedFonts, tr( "Embed fonts into the PDF. Embedding the fonts\nwill preserve the layout and appearance of your document." ) );
2217 cbradney 823
                QToolTip::add( CheckBox10, "<qt>" + tr( "Enables presentation effects when using Adobe&#174; Reader&#174; in full screen mode." ) + "</qt>");
1307 fschmid 824
                QToolTip::add( PagePrev, tr( "Show page previews of each page listed above." ) );
825
                QToolTip::add( PageTime, tr( "Length of time the page is shown before the presentation starts on the selected page." ) );
826
                QToolTip::add( EffectTime, tr( "Length of time the effect runs.\nA shorter time will speed up the effect, a longer one will slow it down." ) );
827
                QToolTip::add( EffectType, tr( "Type of the display effect." ) );
828
                QToolTip::add( EDirection, tr( "Direction of the effect of moving lines for the split and blind effects." ) );
829
                QToolTip::add( EDirection_2, tr( "Starting position for the box and split effects." ) );
830
                QToolTip::add( EDirection_2_2, tr( "Direction of the glitter or wipe effects." ) );
831
                QToolTip::add( EonAllPg, tr( "Apply the selected effect to all pages." ) );
832
        }
833
        connect(AllPages, SIGNAL(toggled(bool)), this, SLOT(SelRange(bool)));
834
        connect(DSColor, SIGNAL(clicked()), this, SLOT(DoDownsample()));
835
        connect(MirrorH, SIGNAL(clicked()), this, SLOT(PDFMirror()));
836
        connect(MirrorV, SIGNAL(clicked()), this, SLOT(PDFMirror()));
837
        connect(RotateDeg, SIGNAL(activated(int)), this, SLOT(Rotation(int)));
838
        connect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
839
        connect(EmbedProfs, SIGNAL(clicked()), this, SLOT(EnablePG()));
840
        connect(EmbedProfs2, SIGNAL(clicked()), this, SLOT(EnablePGI()));
841
        connect(NoEmbedded, SIGNAL(clicked()), this, SLOT(EnablePGI2()));
1973 craig 842
        connect(PDFVersionCombo, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
1307 fschmid 843
        connect(BleedTop, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
844
        connect(BleedBottom, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
845
        connect(BleedLeft, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
846
        connect(BleedRight, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
847
        connect(Encry, SIGNAL(clicked()), this, SLOT(ToggleEncr()));
848
        connect(UseLPI, SIGNAL(clicked()), this, SLOT(EnableLPI2()));
849
        connect(LPIcolor, SIGNAL(activated(int)), this, SLOT(SelLPIcol(int)));
850
        //tooltips
851
        QToolTip::add( AllPages, tr( "Export all pages to PDF" ) );
852
        QToolTip::add( OnlySome, tr( "Export a range of pages to PDF" ) );
853
        QToolTip::add( PageNr, tr( "Insert a comma separated list of tokens where\n"
854
                                      "a token can be * for all the pages, 1-5 for\n"
855
                                      "a range of pages or a single page number.") );
856
 
3495 cbradney 857
        QToolTip::add( PDFVersionCombo, "<qt>" + tr( "Determines the PDF compatibility. The default is PDF 1.3 which gives the widest compatibility. Choose PDF 1.4 if your file uses features such as transparency or you require 128 bit encryption. PDF/X-3 is for exporting the PDF when you want color managed RGB for commercial printing and is selectable when you have activated color management. Use only when advised by your printer or in some cases printing to a 4 color digital color laser printer." ) + "</qt>");
1307 fschmid 858
        QToolTip::add( ComboBind, tr( "Determines the binding of pages in the PDF. Unless you know\nyou need to change it leave the default choice - Left." ) );
859
        QToolTip::add( CheckBox1, tr( "Generates thumbnails of each page in the PDF.\nSome viewers can use the thumbnails for navigation." ) );
860
        QToolTip::add( Article, tr( "Generate PDF Articles, which is useful for navigating linked articles in a PDF." ) );
1801 cbradney 861
        QToolTip::add( useLayers, tr( "Layers in your document are exported to the PDF\nOnly available if PDF 1.5 is choosen." ) );
1307 fschmid 862
        QToolTip::add( CheckBM, tr( "Embed the bookmarks you created in your document.\nThese are useful for navigating long PDF documents." ) );
863
        QToolTip::add( Resolution, tr( "Export resolution of text and vector graphics.\nThis does not affect the resolution of bitmap images like photos." ) );
2896 mrdocs 864
        QToolTip::add( Compression, tr( "Enable lossless compression of text and graphics.\nUnless you have a reason, leave this checked. This reduces PDF size." ) );
2899 mrdocs 865
        QToolTip::add( CMethod, "<qt>" + tr( "Method of compression to use for images. Automatic allows Scribus to choose the best method. ZIP is lossless and good for images with solid colors. JPEG is better at creating smaller PDF files which have many photos (with slight image quality loss possible). Leave it set to Automatic, unless you have a need for special compression options." ) + "</qt>");
3661 craig 866
        QToolTip::add( CQuality, tr( "<qt>Compression quality levels: Minimum (25%), Low (50%), Medium (75%), High (85%), Maximum (95%). Note that a quality level does not directly determine the size of the resulting image - both size and quality loss vary from image to image at any given quality level.</qt>" ) );
2844 mrdocs 867
        QToolTip::add( DSColor, tr( "Re-sample your bitmap images to the selected DPI.\nLeaving this unchecked will render them at their native resolution.\nThis can increase memory usage and slow down export." ) );
1307 fschmid 868
        QToolTip::add( ValC, tr( "DPI (Dots Per Inch) for image export.") );
1801 cbradney 869
        QToolTip::add( Encry, tr( "Enable the security features in your exported PDF.\nIf you selected PDF 1.3, the PDF will be protected by 40 bit encryption.\nIf you selected PDF 1.4, the PDF will be protected by 128 bit encryption.\nDisclaimer: PDF encryption is not as reliable as GPG or PGP encryption and does have some limitations." ) );
1307 fschmid 870
        QToolTip::add( PassOwner, tr( "Choose a master password which enables or disables all the\nsecurity features in your exported PDF" ) );
871
        QToolTip::add( PassUser, tr( "Choose a password for users to be able to read your PDF." ) );
872
        QToolTip::add( PrintSec, tr( "Allow printing of the PDF. If un-checked, printing is prevented. " ) );
873
        QToolTip::add( ModifySec, tr( "Allow modifying of the PDF. If un-checked, modifying the PDF is prevented." ) );
874
        QToolTip::add( CopySec, tr( "Allow copying of text or graphics from the PDF. \nIf un-checked, text and graphics cannot be copied." ) );
875
        QToolTip::add( AddSec, tr( "Allow adding annotations and fields to the PDF. \nIf un-checked, editing annotations and fileds is prevented." ) );
876
        QToolTip::add( OutCombo, tr( "Color model for the output of your PDF.\nChoose Screen/Web for PDFs which are used for screen display and for printing on typical inkjets.\nChoose Printer when printing to a true 4 color CMYK printer." ) );
877
        QToolTip::add( UseLPI, tr( "This is an advanced setting which is not enabled by default. This should only be enabled\nwhen specifically requested by your printer and they have given you the exact details needed.\nOtherwise, your exported PDF may not print properly and is truly not portable across systems." ) );
878
        QToolTip::add( EmbedProfs, tr( "Embed a color profile for solid colors" ) );
879
        QToolTip::add( SolidPr, tr( "Color profile for solid colors" ) );
880
        QToolTip::add( IntendS, tr( "Rendering intent for solid colors" ) );
881
        QToolTip::add( EmbedProfs2, tr( "Embed a color profile for images" ) );
882
        QToolTip::add( NoEmbedded, tr( "Do not use color profiles that are embedded in source images" ) );
883
        QToolTip::add( ImageP, tr( "Color profile for images" ) );
884
        QToolTip::add( IntendI, tr( "Rendering intent for images" ) );
885
        QToolTip::add( PrintProfC, tr( "Output profile for printing. If possible, get some guidance from your printer on profile selection." ) );
886
        QToolTip::add( InfoString, tr( "Mandatory string for PDF/X-3 or the PDF will fail\nPDF/X-3 conformance. We recommend you use the title of the document." ) );
887
        QToolTip::add( BleedTop, tr( "Distance for bleed from the top of the physical page" ) );
888
        QToolTip::add( BleedBottom, tr( "Distance for bleed from the bottom of the physical page" ) );
889
        QToolTip::add( BleedLeft, tr( "Distance for bleed from the left of the physical page" ) );
890
        QToolTip::add( BleedRight, tr( "Distance for bleed from the right of the physical page" ) );
891
        QToolTip::add( MirrorH, tr( "Mirror Page(s) horizontally" ) );
892
        QToolTip::add( MirrorV, tr( "Mirror Page(s) vertically" ) );
893
}
894
 
1828 fschmid 895
void TabPDFOptions::restoreDefaults()
896
{
897
}
898
 
3388 fschmid 899
void TabPDFOptions::checkInfo()
900
{
901
        if ((PDFVersionCombo->currentItem() == 3) && (InfoString->text().isEmpty()))
902
                emit noInfo();
903
        else
904
                emit hasInfo();
905
}
906
 
1307 fschmid 907
void TabPDFOptions::ToggleEncr()
908
{
909
        bool setter = Encry->isChecked() ? true : false;
910
        GroupSecSet->setEnabled(setter);
911
        GroupPass->setEnabled(setter);
912
}
913
 
914
void TabPDFOptions::BleedChanged()
915
{
1792 cbradney 916
        BleedTop->setMaxValue(pageH*unitRatio-BleedBottom->value());
917
        BleedBottom->setMaxValue(pageH*unitRatio-BleedTop->value());
918
        BleedRight->setMaxValue(pageB*unitRatio-BleedLeft->value());
919
        BleedLeft->setMaxValue(pageB*unitRatio-BleedRight->value());
3333 avox 920
        QPixmap pm(70,80);
1307 fschmid 921
        pm.fill(white);
922
        QPainter p;
923
        p.begin(&pm);
924
        p.setBrush(NoBrush);
925
        p.setPen(black);
926
        p.drawRect(0, 0, pm.width(), pm.height());
927
        p.setPen(QPen(black, 1, DotLine, FlatCap, MiterJoin));
1792 cbradney 928
        int x = qRound((BleedLeft->value() / unitRatio) * (70.0 / pageB));
929
        int y = qRound((BleedTop->value() / unitRatio) * (80.0 / pageH));
930
        int w =qRound((pageB-((BleedLeft->value()+BleedRight->value())/unitRatio))*(70.0/pageB));
931
        int h = qRound((pageH-((BleedTop->value()+BleedBottom->value())/unitRatio))*(80.0/pageH));
1307 fschmid 932
        p.drawRect(x, y, w, h);
933
        BleedIcon->setPixmap(pm);
934
        p.end();
935
}
936
 
937
void TabPDFOptions::enableCMS(bool enable)
938
{
1973 craig 939
        disconnect(PDFVersionCombo, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
940
        int a = PDFVersionCombo->currentItem();
941
        PDFVersionCombo->clear();
2578 craig 942
        PDFVersionCombo->insertItem("PDF 1.3");
943
        PDFVersionCombo->insertItem("PDF 1.4");
944
        PDFVersionCombo->insertItem("PDF 1.5");
1843 cbradney 945
        cms=enable;
1307 fschmid 946
        if (enable)
1973 craig 947
                PDFVersionCombo->insertItem("PDF/X-3");
1307 fschmid 948
        else
1738 fschmid 949
                a = QMIN(a, 3);
1973 craig 950
        PDFVersionCombo->setCurrentItem(a);
1307 fschmid 951
        EnablePr(1);
1973 craig 952
        connect(PDFVersionCombo, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
1307 fschmid 953
}
954
 
955
void TabPDFOptions::EnablePDFX(int a)
956
{
1843 cbradney 957
        useLayers->setEnabled(a == 2);
1738 fschmid 958
        if (a != 3)
1307 fschmid 959
        {
960
                setTabEnabled(tabPDFX, false);
961
                setTabEnabled(tabSecurity, true);
962
                OutCombo->setEnabled(true);
963
                EmbedProfs2->setEnabled(true);
3564 fschmid 964
                emit hasInfo();
1307 fschmid 965
                if (view != 0)
966
                {
967
                        CheckBox10->setEnabled(true);
968
                        EmbedFonts->setEnabled(true);
1781 fschmid 969
                        if (EmbedList->count() != 0)
970
                                FromEmbed->setEnabled(true);
971
                        ToEmbed->setEnabled(true);
1307 fschmid 972
                }
973
                return;
974
        }
975
        disconnect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
976
        OutCombo->setCurrentItem(1);
977
        OutCombo->setEnabled(false);
978
        EnablePr(1);
979
        EmbedProfs2->setChecked(true);
980
        EmbedProfs2->setEnabled(false);
981
        if (view != 0)
982
        {
983
                EmbedFonts->setChecked(true);
984
                EmbedAll();
985
                CheckBox10->setChecked(false);
986
                CheckBox10->setEnabled(false);
987
                EmbedFonts->setEnabled(false);
1781 fschmid 988
                FromEmbed->setEnabled(false);
989
                ToEmbed->setEnabled(false);
3388 fschmid 990
                if (InfoString->text().isEmpty())
991
                        emit noInfo();
992
                else
993
                        emit hasInfo();
1307 fschmid 994
        }
995
        EnablePGI();
996
        setTabEnabled(tabPDFX, true);
997
        setTabEnabled(tabSecurity, false);
998
        connect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
999
}
1000
 
1001
void TabPDFOptions::EnablePGI()
1002
{
1003
        if (EmbedProfs2->isChecked())
1004
        {
1005
                NoEmbedded->setEnabled(true);
1006
                bool setter = NoEmbedded->isChecked() ? true : false;
1007
                ProfsTxt3->setEnabled(setter);
1008
                ProfsTxt4->setEnabled(setter);
1009
                ImageP->setEnabled(setter);
1010
                IntendI->setEnabled(setter);
1011
        }
1012
        else
1013
        {
1014
                ProfsTxt3->setEnabled(false);
1015
                ProfsTxt4->setEnabled(false);
1016
                ImageP->setEnabled(false);
1017
                IntendI->setEnabled(false);
1018
                NoEmbedded->setEnabled(false);
1019
        }
1020
}
1021
 
1022
void TabPDFOptions::EnablePGI2()
1023
{
1024
        bool setter = NoEmbedded->isChecked() ? true : false;
1025
        ProfsTxt3->setEnabled(setter);
1026
        ProfsTxt4->setEnabled(setter);
1027
        ImageP->setEnabled(setter);
1028
        IntendI->setEnabled(setter);
1029
}
1030
 
1031
void TabPDFOptions::EnablePG()
1032
{
1033
        bool setter = EmbedProfs->isChecked() ? true : false;
1034
        ProfsTxt1->setEnabled(setter);
1035
        ProfsTxt2->setEnabled(setter);
1036
        SolidPr->setEnabled(setter);
1037
        IntendS->setEnabled(setter);
1038
}
1039
 
1040
void TabPDFOptions::EnablePr(int a)
1041
{
1042
        EnableLPI(a);
1043
        bool setter = a == 1 ? true : false;
1044
        GroupBox9->setEnabled(setter);
1045
        ProfsGroup->setEnabled(setter);
1046
}
1047
 
1048
void TabPDFOptions::EnableLPI(int a)
1049
{
1050
        if (a == 1)
1051
        {
1052
#ifdef HAVE_CMS
1053
                QString tp = Opts->SolidProf;
2891 cbradney 1054
                if (!ScApp->InputProfiles.contains(tp))
1307 fschmid 1055
                {
1056
                        if (view != 0)
2984 fschmid 1057
                                tp = view->Doc->CMSSettings.DefaultSolidColorProfile;
1307 fschmid 1058
                        else
2984 fschmid 1059
                                tp = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorProfile;
1307 fschmid 1060
                }
2891 cbradney 1061
                SolidPr->clear();
1307 fschmid 1062
                ProfilesL::Iterator itp;
2891 cbradney 1063
                ProfilesL::Iterator itpend=ScApp->InputProfiles.end();
1064
                for (itp = ScApp->InputProfiles.begin(); itp != itpend; ++itp)
1307 fschmid 1065
                {
1066
                        SolidPr->insertItem(itp.key());
1067
                        if (itp.key() == tp)
1068
                        {
1069
                                if (cms)
1070
                                        SolidPr->setCurrentItem(SolidPr->count()-1);
1071
                        }
1072
                }
1073
                if (cms)
1074
                        IntendS->setCurrentItem(Opts->Intent);
1075
                QString tp1 = Opts->ImageProf;
2891 cbradney 1076
                if (!ScApp->InputProfiles.contains(tp1))
1307 fschmid 1077
                {
1078
                        if (view != 0)
2984 fschmid 1079
                                tp1 = view->Doc->CMSSettings.DefaultSolidColorProfile;
1307 fschmid 1080
                        else
2984 fschmid 1081
                                tp1 = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorProfile;
1307 fschmid 1082
                }
1083
                ImageP->clear();
2891 cbradney 1084
                ProfilesL::Iterator itp2;
1085
                ProfilesL::Iterator itp2end=ScApp->InputProfiles.end();
1086
                for (itp2 = ScApp->InputProfiles.begin(); itp2 != itp2end; ++itp2)
1307 fschmid 1087
                {
1088
                        ImageP->insertItem(itp2.key());
1089
                        if (itp2.key() == tp1)
1090
                        {
1091
                                if (cms)
1092
                                        ImageP->setCurrentItem(ImageP->count()-1);
1093
                        }
1094
                }
1095
                if (cms)
1096
                        IntendI->setCurrentItem(Opts->Intent2);
1097
#endif
1098
                if (cms)
1099
                {
1100
                        GroupBox9->show();
1101
                        ProfsGroup->show();
1476 fschmid 1102
                        UseLPI->hide();
3079 fschmid 1103
                        useSpot->hide();
1307 fschmid 1104
                }
1105
                else
1106
                {
1107
                        GroupBox9->hide();
1108
                        ProfsGroup->hide();
3079 fschmid 1109
                        useSpot->show();
1307 fschmid 1110
                        UseLPI->show();
1111
                        if (UseLPI->isChecked())
1112
                                LPIgroup->show();
1113
                        else
1114
                                LPIgroup->hide();
1115
                }
1116
        }
1117
        else
1118
        {
3079 fschmid 1119
                useSpot->hide();
1307 fschmid 1120
                UseLPI->hide();
1121
                LPIgroup->hide();
1122
        }
1123
}
1124
 
1125
void TabPDFOptions::EnableLPI2()
1126
{
1127
        if (UseLPI->isChecked())
1128
                LPIgroup->show();
1129
        else
1130
                LPIgroup->hide();
1131
}
1132
 
1133
void TabPDFOptions::SelLPIcol(int c)
1134
{
1135
        Opts->LPISettings[SelLPIcolor].Frequency = LPIfreq->value();
1136
        Opts->LPISettings[SelLPIcolor].Angle = LPIangle->value();
1137
        Opts->LPISettings[SelLPIcolor].SpotFunc = LPIfunc->currentItem();
1138
        LPIfreq->setValue(Opts->LPISettings[LPIcolor->text(c)].Frequency);
1139
        LPIangle->setValue(Opts->LPISettings[LPIcolor->text(c)].Angle);
1140
        LPIfunc->setCurrentItem(Opts->LPISettings[LPIcolor->text(c)].SpotFunc);
1141
        SelLPIcolor = LPIcolor->text(c);
1142
}
1143
 
1144
void TabPDFOptions::SelRange(bool e)
1145
{
1146
        bool setter = e ? false : true;
1147
        PageNr->setEnabled( setter );
1148
        if (setter == false)
1149
                CheckBM->setChecked(false);
1150
}
1151
 
1152
void TabPDFOptions::EffectOnAll()
1153
{
1154
        for (uint pg = 0; pg < view->Doc->Pages.count(); ++pg)
1155
        {
1156
                EffVal[pg].pageViewDuration = PageTime->value();
1157
                EffVal[pg].pageEffectDuration = EffectTime->value();
1158
                EffVal[pg].effectType = EffectType->currentItem();
1159
                EffVal[pg].Dm = EDirection->currentItem();
1160
                EffVal[pg].M = EDirection_2->currentItem();
1161
                EffVal[pg].Di = EDirection_2_2->currentItem();
1162
        }
1163
}
1164
 
1165
void TabPDFOptions::PDFMirror()
1166
{
1167
        Opts->MirrorH = MirrorH->isOn();
1168
        Opts->MirrorV = MirrorV->isOn();
1169
}
1170
 
1171
void TabPDFOptions::Rotation( int value )
1172
{
1173
        Opts->RotateDeg = value * 90;
1174
}
1175
 
1176
void TabPDFOptions::DoEffects()
1177
{
1178
        bool setter = CheckBox10->isChecked() ? true : false;
1179
        Pages->setEnabled(setter);
1180
        Effects->setEnabled(setter);
1181
        PagePrev->setEnabled(setter);
1182
}
1183
 
1184
void TabPDFOptions::ValidDI(int nr)
1185
{
1186
        if (!EDirection_2_2->listBox()->item(nr)->isSelectable())
1187
                EDirection_2_2->setCurrentItem(0);
1188
}
1189
 
1190
void TabPDFOptions::SetPgEff(int nr)
1191
{
1192
        if (nr < 0)
1193
                return;
1194
        EffVal[PgSel].pageViewDuration = PageTime->value();
1195
        EffVal[PgSel].pageEffectDuration = EffectTime->value();
1196
        EffVal[PgSel].effectType = EffectType->currentItem();
1197
        EffVal[PgSel].Dm = EDirection->currentItem();
1198
        EffVal[PgSel].M = EDirection_2->currentItem();
1199
        EffVal[PgSel].Di = EDirection_2_2->currentItem();
1200
        SetEffOpts(EffVal[nr].effectType);
1201
        PageTime->setValue(EffVal[nr].pageViewDuration);
1202
        EffectTime->setValue(EffVal[nr].pageEffectDuration);
1203
        EffectType->setCurrentItem(EffVal[nr].effectType);
1204
        EDirection->setCurrentItem(EffVal[nr].Dm);
1205
        EDirection_2->setCurrentItem(EffVal[nr].M);
1206
        EDirection_2_2->setCurrentItem(EffVal[nr].Di);
1207
        PgSel = nr;
1208
}
1209
 
1210
void TabPDFOptions::SetEffOpts(int nr)
1211
{
1212
        EDirection_2_2->listBox()->item(2)->setSelectable(false);
1213
        EDirection_2_2->listBox()->item(3)->setSelectable(false);
1214
        EDirection_2_2->listBox()->item(4)->setSelectable(false);
1215
        switch (nr)
1216
        {
1217
        case 0:
1218
        case 3:
1219
                EDirection->setEnabled(false);
1220
                EDirection_2->setEnabled(false);
1221
                EDirection_2_2->setEnabled(false);
1222
                break;
1223
        case 1:
1224
                EDirection->setEnabled(true);
1225
                EDirection_2->setEnabled(false);
1226
                EDirection_2_2->setEnabled(false);
1227
                break;
1228
        case 2:
1229
                EDirection->setEnabled(false);
1230
                EDirection_2->setEnabled(true);
1231
                EDirection_2_2->setEnabled(false);
1232
                break;
1233
        case 4:
1234
        case 6:
1235
                EDirection->setEnabled(false);
1236
                EDirection_2->setEnabled(false);
1237
                EDirection_2_2->setEnabled(true);
1238
                if (nr == 6)
1239
                {
1240
                        EDirection_2_2->listBox()->item(2)->setSelectable(true);
1241
                        EDirection_2_2->listBox()->item(3)->setSelectable(true);
1242
                }
1243
                else
1244
                        EDirection_2_2->listBox()->item(4)->setSelectable(true);
1245
                break;
1246
        case 5:
1247
                EDirection->setEnabled(true);
1248
                EDirection_2->setEnabled(true);
1249
                EDirection_2_2->setEnabled(false);
1250
                break;
1251
        }
1252
}
1253
 
1254
void TabPDFOptions::PagePr()
1255
{
1256
        disconnect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
1257
        QString tmp;
1815 fschmid 1258
        QPixmap pm;
1307 fschmid 1259
        int ci = Pages->currentItem();
1260
        if (PagePrev->isChecked())
1261
        {
1262
                for (uint pg = 0; pg < view->Doc->Pages.count(); ++pg)
1815 fschmid 1263
                {
1264
                        pm.convertFromImage(view->PageToPixmap(pg, 70));
1265
                        Pages->changeItem(pm, tr("Page")+" "+tmp.setNum(pg+1), pg);
1266
                }
1307 fschmid 1267
        }
1268
        else
1269
        {
1270
                for (uint pg = 0; pg < view->Doc->Pages.count(); ++pg)
1271
                        Pages->changeItem( tr("Page")+" "+tmp.setNum(pg+1), pg);
1272
        }
1273
        if (ci != -1)
1274
        {
1275
                PgSel = ci;
1276
                Pages->setCurrentItem(ci);
1277
        }
1278
        else
1279
        {
1280
                PgSel = 0;
1281
                Pages->clearSelection();
1282
        }
1283
        connect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
1284
}
1285
 
1286
void TabPDFOptions::DoDownsample()
1287
{
1288
        if (DSColor->isChecked())
1289
        {
1290
                ValC->setEnabled(true);
1291
                if (ValC->value() > Resolution->value())
1292
                        ValC->setValue(Resolution->value());
1293
                ValC->setMaxValue(Resolution->value());
1294
                ValC->setMinValue(35);
1295
        }
1296
        else
1297
                ValC->setEnabled(false);
1298
}
1299
 
1300
void TabPDFOptions::RemoveEmbed()
1301
{
1302
        FontsToEmbed.remove(EmbedList->currentText());
1303
        EmbedList->removeItem(EmbedList->currentItem());
1304
        EmbedList->clearSelection();
1305
        if (EmbedList->count() == 0)
1306
        {
1307
                FromEmbed->setEnabled(false);
1308
                ToSubset->setEnabled(false);
1309
        }
1310
}
1311
 
1312
void TabPDFOptions::PutToEmbed()
1313
{
1314
        if (EmbedList->count() != 0)
1315
        {
3633 fschmid 1316
                if (!(*AllFontsP)[AvailFlist->currentText()]->Subset)
1307 fschmid 1317
                {
3633 fschmid 1318
                        if (EmbedList->findItem(AvailFlist->currentText()) == NULL)
1319
                        {
1320
                                FontsToEmbed.append(AvailFlist->currentText());
1321
                                EmbedList->insertItem(AvailFlist->currentText());
1322
                        }
1307 fschmid 1323
                }
3633 fschmid 1324
                else
1325
                {
1326
                        if (SubsetList->count() != 0)
1327
                        {
1328
                                if (SubsetList->findItem(AvailFlist->currentText()) == NULL)
1329
                                {
1330
                                        FontsToSubset.append(AvailFlist->currentText());
1331
                                        SubsetList->insertItem(AvailFlist->currentText());
1332
                                }
1333
                        }
1334
                        else
1335
                        {
1336
                                FontsToSubset.append(AvailFlist->currentText());
1337
                                SubsetList->insertItem(AvailFlist->currentText());
1338
                        }
1339
                }
1307 fschmid 1340
        }
1341
        else
1342
        {
3633 fschmid 1343
                if (!(*AllFontsP)[AvailFlist->currentText()]->Subset)
1344
                {
1345
                        FontsToEmbed.append(AvailFlist->currentText());
1346
                        EmbedList->insertItem(AvailFlist->currentText());
1347
                }
1348
                else
1349
                {
1350
                        if (SubsetList->count() != 0)
1351
                        {
1352
                                if (SubsetList->findItem(AvailFlist->currentText()) == NULL)
1353
                                {
1354
                                        FontsToSubset.append(AvailFlist->currentText());
1355
                                        SubsetList->insertItem(AvailFlist->currentText());
1356
                                }
1357
                        }
1358
                        else
1359
                        {
1360
                                FontsToSubset.append(AvailFlist->currentText());
1361
                                SubsetList->insertItem(AvailFlist->currentText());
1362
                        }
1363
                }
1307 fschmid 1364
        }
1365
}
1366
 
1367
void TabPDFOptions::RemoveSubset()
1368
{
3633 fschmid 1369
        if (!(*AllFontsP)[SubsetList->currentText()]->Subset)
1370
        {
1371
                FontsToSubset.remove(SubsetList->currentText());
1372
                FontsToEmbed.append(SubsetList->currentText());
1373
                EmbedList->insertItem(SubsetList->currentText());
1374
                SubsetList->removeItem(SubsetList->currentItem());
1375
                SubsetList->clearSelection();
1376
                if (SubsetList->count() == 0)
1377
                        FromSubset->setEnabled(false);
1378
        }
1307 fschmid 1379
}
1380
 
1381
void TabPDFOptions::PutToSubset()
1382
{
1383
        if (SubsetList->count() != 0)
1384
        {
1385
                if (SubsetList->findItem(EmbedList->currentText()) == NULL)
1386
                {
1387
                        FontsToSubset.append(EmbedList->currentText());
1388
                        SubsetList->insertItem(EmbedList->currentText());
1389
                }
1390
        }
1391
        else
1392
        {
1393
                FontsToSubset.append(EmbedList->currentText());
1394
                SubsetList->insertItem(EmbedList->currentText());
1395
        }
1396
        FontsToEmbed.remove(EmbedList->currentText());
1397
        EmbedList->removeItem(EmbedList->currentItem());
1398
        EmbedList->clearSelection();
1399
        if (EmbedList->count() == 0)
1400
        {
1401
                FromEmbed->setEnabled(false);
1402
                ToSubset->setEnabled(false);
1403
        }
1404
}
1405
 
1406
void TabPDFOptions::SelAFont(QListBoxItem *c)
1407
{
1408
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1409
        {
1410
                FromEmbed->setEnabled(false);
1411
                if (c->isSelectable())
1412
                        ToEmbed->setEnabled(true);
1413
                ToSubset->setEnabled(false);
1414
                FromSubset->setEnabled(false);
1415
                EmbedList->clearSelection();
1416
                SubsetList->clearSelection();
1417
        }
1418
}
1419
 
1420
void TabPDFOptions::SelEFont(QListBoxItem *c)
1421
{
1422
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1423
        {
1781 fschmid 1424
                if (!isTabEnabled(tabPDFX))
1425
                        FromEmbed->setEnabled(true);
1307 fschmid 1426
                ToEmbed->setEnabled(false);
1427
                ToSubset->setEnabled(true);
1428
                FromSubset->setEnabled(false);
1429
                AvailFlist->clearSelection();
1430
                SubsetList->clearSelection();
1431
        }
1432
}
1433
 
1434
void TabPDFOptions::SelSFont(QListBoxItem *c)
1435
{
1436
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1437
        {
1438
                FromSubset->setEnabled(true);
1439
                ToSubset->setEnabled(false);
1440
                ToEmbed->setEnabled(false);
1441
                FromEmbed->setEnabled(false);
1442
                EmbedList->clearSelection();
1443
                AvailFlist->clearSelection();
1444
        }
1445
}
1446
 
1447
void TabPDFOptions::EmbedAll()
1448
{
1449
        if (EmbedFonts->isChecked())
1450
        {
1451
                SubsetFonts->setChecked(false);
1452
                EmbedList->clear();
1453
                FontsToEmbed.clear();
1454
                SubsetList->clear();
1455
                FontsToSubset.clear();
1456
                FromEmbed->setEnabled(false);
1457
                ToEmbed->setEnabled(false);
1458
                ToSubset->setEnabled(false);
1459
                FromSubset->setEnabled(false);
1460
                for (uint a=0; a < AvailFlist->count(); ++a)
1461
                {
1462
                        if (AvailFlist->item(a)->isSelectable())
1463
                        {
3633 fschmid 1464
                                if (!(*AllFontsP)[AvailFlist->item(a)->text()]->Subset)
1465
                                {
1466
                                        FontsToEmbed.append(AvailFlist->item(a)->text());
1467
                                        EmbedList->insertItem(AvailFlist->item(a)->text());
1468
                                }
1469
                                else
1470
                                {
1471
                                        FontsToSubset.append(AvailFlist->item(a)->text());
1472
                                        SubsetList->insertItem(AvailFlist->item(a)->text());
1473
                                }
1307 fschmid 1474
                        }
1475
                }
1476
        }
1477
}
1478
 
1479
void TabPDFOptions::SubsetAll()
1480
{
1481
        if (SubsetFonts->isChecked())
1482
        {
1483
                EmbedFonts->setChecked(false);
1484
                EmbedList->clear();
1485
                FontsToEmbed.clear();
1486
                SubsetList->clear();
1487
                FontsToSubset.clear();
1488
                FromEmbed->setEnabled(false);
1489
                ToEmbed->setEnabled(false);
1490
                ToSubset->setEnabled(false);
1491
                FromSubset->setEnabled(false);
1492
                for (uint a=0; a < AvailFlist->count(); ++a)
1493
                {
1494
                        if (AvailFlist->item(a)->isSelectable())
1495
                        {
1496
                                FontsToSubset.append(AvailFlist->item(a)->text());
1497
                                SubsetList->insertItem(AvailFlist->item(a)->text());
1498
                        }
1499
                }
1500
        }
1501
}