Subversion Repositories Scribus

Rev

Rev 1365 | Rev 1738 | 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"
14
 
15
#ifdef _MSC_VER
16
 #if (_MSC_VER >= 1200)
17
  #include "win-config.h"
18
 #endif
19
#else
20
 #include "config.h"
21
#endif
22
 
23
extern QPixmap loadIcon(QString nam);
24
extern ProfilesL InputProfiles;
25
#ifdef HAVE_CMS
26
extern bool CMSuse;
27
#endif
28
extern bool CMSavail;
29
#include "scribus.h"
30
extern ScribusApp* ScApp;
31
 
32
 
33
TabPDFOptions::TabPDFOptions(   QWidget* parent,
34
                                                                                                                                PDFOptions *Optionen,
35
                                                                                                                                SCFonts &AllFonts,
36
                                                                                                                                ProfilesL *PDFXProfiles,
37
                                                                                                                                QMap<QString,QFont> DocFonts,
38
                                                                                                                                QValueList<PDFPresentationData> Eff,
39
                                                                                                                                double unitBase,
40
                                                                                                                                QString unit,
41
                                                                                                                                double PageH,
42
                                                                                                                                double PageB,
43
                                                                                                                                ScribusView *vie )
44
                : QTabWidget( parent, "pdf" )
45
{
46
        FontsToEmbed.clear();
47
        view = vie;
48
        EffVal = Eff;
49
        Opts = Optionen;
50
        pageH = PageH;
51
        pageB = PageB;
52
        unitConv = unitBase;
53
        tabGeneral = new QWidget( this, "tabGeneral" );
54
        tabLayout = new QVBoxLayout( tabGeneral );
55
        tabLayout->setSpacing( 5 );
56
        tabLayout->setMargin( 10 );
57
        Layout13 = new QHBoxLayout( 0, 0, 5, "Layout13");
58
        RangeGroup = new QButtonGroup( tabGeneral, "RangeGroup" );
59
        RangeGroup->setTitle( tr( "Export Range" ) );
60
        RangeGroup->setColumnLayout(0, Qt::Vertical );
61
        RangeGroup->layout()->setSpacing( 5 );
62
        RangeGroup->layout()->setMargin( 10 );
63
        RangeGroupLayout = new QVBoxLayout( RangeGroup->layout() );
64
        RangeGroupLayout->setAlignment( Qt::AlignTop );
65
        AllPages = new QRadioButton( tr( "&All Pages" ), RangeGroup, "AllPages" );
66
        AllPages->setChecked( true );
67
        RangeGroupLayout->addWidget( AllPages );
68
        Layout11 = new QGridLayout( 0, 1, 1, 0, 5, "Layout11");
69
        OnlySome = new QRadioButton( tr( "C&hoose Pages" ), RangeGroup, "OnlySome" );
70
        Layout11->addWidget( OnlySome, 0, 0 );
71
        PageNr = new QLineEdit( RangeGroup, "PageNr" );
72
        PageNr->setEnabled(false);
73
        Layout11->addWidget( PageNr, 1, 0 );
74
        RangeGroupLayout->addLayout( Layout11 );
75
        TextLabel3 = new QLabel( tr( "&Rotation:" ), RangeGroup, "TextLabel3" );
76
        RangeGroupLayout->addWidget( TextLabel3 );
77
        RotateDeg = new QComboBox( true, RangeGroup, "RotateDeg" );
78
        RotateDeg->insertItem(QString::fromUtf8("0 °"));
79
        RotateDeg->insertItem(QString::fromUtf8("90 °"));
80
        RotateDeg->insertItem(QString::fromUtf8("180 °"));
81
        RotateDeg->insertItem(QString::fromUtf8("270 °"));
82
        RotateDeg->setEditable(false);
83
        TextLabel3->setBuddy(RotateDeg);
84
        RotateDeg->setCurrentItem(Optionen->RotateDeg / 90);
85
        RangeGroupLayout->addWidget( RotateDeg );
86
        Layout11a = new QGridLayout( 0, 1, 1, 0, 5, "Layout11a");
87
        MirrorH = new QToolButton( RangeGroup, "MirrorH" );
88
        MirrorH->setPixmap(loadIcon("FlipH.xpm"));
89
        MirrorH->setToggleButton( true );
90
        MirrorH->setOn(Optionen->MirrorH);
91
        Layout11a->addWidget( MirrorH, 0, 0 );
92
        MirrorV = new QToolButton( RangeGroup, "MirrorH" );
93
        MirrorV->setPixmap(loadIcon("FlipV.xpm"));
94
        MirrorV->setToggleButton( true );
95
        MirrorV->setOn(Optionen->MirrorV);
96
        Layout11a->addWidget( MirrorV, 0, 1 );
97
        RangeGroupLayout->addLayout( Layout11a );
98
        Layout13->addWidget( RangeGroup );
99
 
100
        GroupBox1 = new QGroupBox( tr( "File Options" ), tabGeneral, "GroupBox1" );
101
        GroupBox1->setColumnLayout(0, Qt::Vertical );
102
        GroupBox1->layout()->setSpacing( 0 );
103
        GroupBox1->layout()->setMargin( 0 );
104
        GroupBox1Layout = new QGridLayout( GroupBox1->layout() );
105
        GroupBox1Layout->setAlignment( Qt::AlignTop );
106
        GroupBox1Layout->setSpacing( 5 );
107
        GroupBox1Layout->setMargin( 10 );
108
        TextLabel1 = new QLabel( tr( "Compatibilit&y:" ), GroupBox1, "TextLabel1" );
109
        TextLabel1->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
110
        GroupBox1Layout->addWidget( TextLabel1, 0, 0 );
111
        ComboBox1 = new QComboBox( true, GroupBox1, "ComboBox1" );
112
        ComboBox1->insertItem("Acrobat 4.0");
113
        ComboBox1->insertItem("Acrobat 5.0");
114
#ifdef HAVE_CMS
115
        if ((CMSuse) && (CMSavail) && (!PDFXProfiles->isEmpty()))
116
                ComboBox1->insertItem("PDF/X-3");
117
#endif
118
        ComboBox1->setEditable(false);
119
        TextLabel1->setBuddy(ComboBox1);
120
#ifdef HAVE_CMS
121
        if ((CMSuse) && (CMSavail))
122
        {
123
                if (Optionen->Version == 12)
124
                        ComboBox1->setCurrentItem(2);
125
        }
126
        else
127
                ComboBox1->setCurrentItem(0);
1365 cbradney 128
        cms = CMSuse && CMSavail;
129
#else
130
        cms = false;
1307 fschmid 131
#endif
132
        if (Optionen->Version == 13)
133
                ComboBox1->setCurrentItem(0);
134
        if (Optionen->Version == 14)
135
                ComboBox1->setCurrentItem(1);
136
        GroupBox1Layout->addMultiCellWidget( ComboBox1, 0, 0, 1, 2, AlignLeft );
137
        TextLabel1x = new QLabel( tr( "&Binding:" ), GroupBox1, "TextLabel1" );
138
        TextLabel1x->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
139
        GroupBox1Layout->addWidget( TextLabel1x, 1, 0 );
140
        ComboBind = new QComboBox( true, GroupBox1, "ComboBind" );
141
        ComboBind->insertItem( tr("Left Margin"));
142
        ComboBind->insertItem( tr("Right Margin"));
143
        ComboBind->setEditable(false);
144
        ComboBind->setCurrentItem(Optionen->Binding);
145
        TextLabel1x->setBuddy(ComboBind);
146
        GroupBox1Layout->addMultiCellWidget( ComboBind, 1, 1, 1, 2, AlignLeft );
147
        CheckBox1 = new QCheckBox( tr( "Generate &Thumbnails" ), GroupBox1, "CheckBox1" );
148
        CheckBox1->setChecked(Optionen->Thumbnails);
149
        GroupBox1Layout->addMultiCellWidget( CheckBox1, 2, 2, 0, 2 );
150
        Article = new QCheckBox( tr( "Save &Linked Text Frames as PDF Articles" ), GroupBox1, "CheckBox1" );
151
        Article->setChecked(Optionen->Articles);
152
        GroupBox1Layout->addMultiCellWidget( Article, 3, 3, 0, 2 );
153
        CheckBM = new QCheckBox( tr( "&Include Bookmarks" ), GroupBox1, "E" );
154
        CheckBM->setChecked(Optionen->Bookmarks);
155
        GroupBox1Layout->addMultiCellWidget( CheckBM, 4, 4, 0, 2 );
156
        Resolution = new QSpinBox( GroupBox1, "Resolution" );
157
        Resolution->setMaxValue( 4000 );
158
        Resolution->setMinValue( 35 );
159
        Resolution->setValue(Optionen->Resolution);
160
        Resolution->setSuffix( tr( " dpi" ) );
161
        TextLabel2 = new QLabel( Resolution, tr( "&Resolution:" ), GroupBox1, "TextLabel2" );
162
        TextLabel2->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
163
        GroupBox1Layout->addWidget( TextLabel2, 5, 0 );
164
        GroupBox1Layout->addWidget( Resolution, 5, 1, AlignLeft );
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);
184
        TextCom1 = new QLabel( CMethod, tr( "&Method:" ), CBox, "TextCom1" );
185
        CBoxLayout->addWidget( TextCom1, 0, 0 );        CBoxLayout->addWidget( CMethod, 0, 1 );
186
        TextCom2 = new QLabel( tr( "&Quality:" ), CBox, "TextCom2" );
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 );
199
        DSColor = new QCheckBox( tr( "&Downsample Images to:" ), CBox, "DSColor" );
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" );
235
                QMap<QString,QFont>::Iterator it;
236
                for (it = DocFonts.begin(); it != DocFonts.end(); ++it)
237
                {
1321 fschmid 238
                        if (AllFonts[it.key()]->typeCode == 1)
1338 fschmid 239
                                AvailFlist->insertItem(loadIcon("font_type1_16.png"), it.key());
1321 fschmid 240
                        else if (AllFonts[it.key()]->typeCode == 2)
1338 fschmid 241
                                AvailFlist->insertItem(loadIcon("font_truetype16.png"), it.key());
1321 fschmid 242
                        else if (AllFonts[it.key()]->typeCode == 3)
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
 
515
        UseLPI = new QCheckBox( tr( "&Use Custom Rendering Settings" ), tabColor, "UseLPI" );
516
        UseLPI->setChecked(Optionen->UseLPI);
517
        tabColorLayout->addWidget( UseLPI );
518
        LPIgroup = new QGroupBox( tr( "Rendering Settings" ), tabColor, "LPIgroup" );
519
        LPIgroup->setColumnLayout(0, Qt::Vertical );
520
        LPIgroup->layout()->setSpacing( 5 );
521
        LPIgroup->layout()->setMargin( 10 );
522
        LPIgroupLayout = new QGridLayout( LPIgroup->layout() );
523
        LPIgroupLayout->setAlignment( Qt::AlignTop );
524
        LPIcolor = new QComboBox( true, LPIgroup, "LPIcolor" );
525
        LPIcolor->setEditable(false);
526
        QMap<QString,LPIData>::Iterator itlp;
527
        for (itlp = Optionen->LPISettings.begin(); itlp != Optionen->LPISettings.end(); ++itlp)
528
        {
529
                LPIcolor->insertItem( itlp.key() );
530
        }
531
        LPIcolor->setCurrentItem(0);
532
        LPIgroupLayout->addWidget( LPIcolor, 0, 0 );
533
        textLPI1 = new QLabel( tr( "Fre&quency:" ), LPIgroup, "textLPI1" );
534
        LPIgroupLayout->addWidget( textLPI1, 0, 1 );
535
        LPIfreq = new QSpinBox( LPIgroup, "LPIfreq" );
536
        LPIfreq->setMinValue(10);
537
        LPIfreq->setMaxValue(1000);
538
        LPIfreq->setValue(Optionen->LPISettings[LPIcolor->currentText()].Frequency);
539
        textLPI1->setBuddy(LPIfreq);
540
        LPIgroupLayout->addWidget( LPIfreq, 0, 2 );
541
        textLPI2 = new QLabel( tr( "&Angle:" ), LPIgroup, "textLPI2" );
542
        LPIgroupLayout->addWidget( textLPI2, 1, 1 );
543
        LPIangle = new QSpinBox( LPIgroup, "LPIangle" );
544
        LPIangle->setSuffix( QString::fromUtf8(" °"));
545
        LPIangle->setMinValue(-180);
546
        LPIangle->setMaxValue(180);
547
        LPIangle->setValue(Optionen->LPISettings[LPIcolor->currentText()].Angle);
548
        textLPI2->setBuddy(LPIangle);
549
        LPIgroupLayout->addWidget( LPIangle, 1, 2 );
550
        textLPI3 = new QLabel( tr( "S&pot Function:" ), LPIgroup, "textLPI3" );
551
        LPIgroupLayout->addWidget( textLPI3, 2, 1 );
552
        LPIfunc = new QComboBox( true, LPIgroup, "LPIfunc" );
553
        LPIfunc->setEditable(false);
554
        LPIfunc->insertItem( tr( "Simple Dot" ) );
555
        LPIfunc->insertItem( tr( "Line" ) );
556
        LPIfunc->insertItem( tr( "Round" ) );
557
        LPIfunc->insertItem( tr( "Ellipse" ) );
558
        LPIfunc->setCurrentItem(Optionen->LPISettings[LPIcolor->currentText()].SpotFunc);
559
        textLPI3->setBuddy(LPIfunc);
560
        LPIgroupLayout->addWidget( LPIfunc, 2, 2 );
561
        tabColorLayout->addWidget( LPIgroup );
562
        SelLPIcolor = LPIcolor->currentText();
563
 
564
        GroupBox9 = new QGroupBox( tr( "Solid Colors:" ), tabColor, "GroupBox9" );
565
        GroupBox9->setColumnLayout(0, Qt::Vertical );
566
        GroupBox9->layout()->setSpacing( 5 );
567
        GroupBox9->layout()->setMargin( 10 );
568
        GroupBox9Layout = new QGridLayout( GroupBox9->layout() );
569
        GroupBox9Layout->setAlignment( Qt::AlignTop );
570
        EmbedProfs = new QCheckBox( GroupBox9, "EmbedProfs" );
571
        EmbedProfs->setText( tr( "Use ICC Profile" ) );
572
        EmbedProfs->setChecked(Optionen->UseProfiles);
573
        GroupBox9Layout->addMultiCellWidget( EmbedProfs, 0, 0, 0, 1 );
574
        ProfsTxt1 = new QLabel(GroupBox9, "ProfsTxt1");
575
        ProfsTxt1->setText( tr( "Profile:" ) );
576
        GroupBox9Layout->addWidget( ProfsTxt1, 1, 0 );
577
        ProfsTxt2 = new QLabel( GroupBox9, "ProfsTxt2_2" );
578
        ProfsTxt2->setText( tr( "Rendering-Intent:" ) );
579
        GroupBox9Layout->addWidget( ProfsTxt2, 1, 1 );
580
        SolidPr = new QComboBox(true, GroupBox9, "SolidPr" );
581
        SolidPr->setEditable(false);
582
        GroupBox9Layout->addWidget( SolidPr, 2, 0 );
583
        IntendS = new QComboBox( true, GroupBox9, "IntendS" );
584
        QString tmp_ip[] = { tr("Perceptual"), tr("Relative Colorimetric"), tr("Saturation"), tr("Absolute Colorimetric")};
585
        size_t ar_ip = sizeof(tmp_ip) / sizeof(*tmp_ip);
586
        for (uint a = 0; a < ar_ip; ++a)
587
                IntendS->insertItem(tmp_ip[a]);
588
        IntendS->setEditable(false);
589
        GroupBox9Layout->addWidget( IntendS, 2, 1 );
590
        tabColorLayout->addWidget( GroupBox9 );
591
        ProfsGroup = new QGroupBox( tr( "Images:" ), tabColor, "ProfsGroup" );
592
        ProfsGroup->setColumnLayout(0, Qt::Vertical );
593
        ProfsGroup->layout()->setSpacing( 5 );
594
        ProfsGroup->layout()->setMargin( 10 );
595
        ProfsGroupLayout = new QGridLayout( ProfsGroup->layout() );
596
        ProfsGroupLayout->setAlignment( Qt::AlignTop );
597
        EmbedProfs2 = new QCheckBox( tr( "Use ICC Profile" ), ProfsGroup, "EmbedProfs" );
598
        EmbedProfs2->setChecked(Optionen->UseProfiles2);
599
        ProfsGroupLayout->addMultiCellWidget( EmbedProfs2, 0, 0, 0, 1 );
600
        NoEmbedded = new QCheckBox( ProfsGroup, "NoEmbedded" );
601
        NoEmbedded->setText( tr( "Don't use embedded ICC profiles" ) );
602
        NoEmbedded->setChecked(Optionen->EmbeddedI);
603
        ProfsGroupLayout->addMultiCellWidget( NoEmbedded, 1, 1, 0, 1 );
604
        ProfsTxt3 = new QLabel( ProfsGroup, "ProfsTxt3" );
605
        ProfsTxt3->setText( tr( "Profile:" ) );
606
        ProfsGroupLayout->addWidget( ProfsTxt3, 2, 0 );
607
        ProfsTxt4 = new QLabel( ProfsGroup, "ProfsTxt2_2" );
608
        ProfsTxt4->setText( tr( "Rendering-Intent:" ) );
609
        ProfsGroupLayout->addWidget( ProfsTxt4, 2, 1 );
610
        ImageP = new QComboBox( true, ProfsGroup, "ImageP" );
611
        ImageP->setEditable(false);
612
        ProfsGroupLayout->addWidget( ImageP, 3, 0 );
613
        IntendI = new QComboBox( true, ProfsGroup, "IntendS" );
614
        for (uint a = 0; a < ar_ip; ++a)
615
                IntendI->insertItem(tmp_ip[a]);
616
        IntendI->setEditable(false);
617
        ProfsGroupLayout->addWidget( IntendI, 3, 1 );
618
        tabColorLayout->addWidget( ProfsGroup );
1476 fschmid 619
        if ((Optionen->UseRGB) || (Optionen->isGrayscale))
1307 fschmid 620
        {
621
                ProfsGroup->setEnabled(false);
622
                GroupBox9->setEnabled(false);
1476 fschmid 623
                EnablePr(0);
1307 fschmid 624
        }
1476 fschmid 625
        else
626
                EnablePr(1);
1307 fschmid 627
        EnablePG();
628
        EnablePGI();
629
#ifdef HAVE_CMS
630
 
631
        QString tp = Optionen->SolidProf;
632
        if (!InputProfiles.contains(tp))
633
        {
634
                if (vie != 0)
635
                        tp = vie->Doc->CMSSettings.DefaultInputProfile2;
636
                else
637
                        tp = ScApp->Prefs.DCMSset.DefaultInputProfile2;
638
        }
639
        ProfilesL::Iterator itp;
640
        for (itp = InputProfiles.begin(); itp != InputProfiles.end(); ++itp)
641
        {
642
                SolidPr->insertItem(itp.key());
643
                if (itp.key() == tp)
644
                {
645
                        if ((CMSuse) && (CMSavail))
646
                                SolidPr->setCurrentItem(SolidPr->count()-1);
647
                }
648
        }
649
        if ((CMSuse) && (CMSavail))
650
                IntendS->setCurrentItem(Optionen->Intent);
651
        ProfilesL::Iterator itp2;
652
        QString tp1 = Optionen->ImageProf;
653
        if (!InputProfiles.contains(tp1))
654
        {
655
                if (vie != 0)
656
                        tp1 = vie->Doc->CMSSettings.DefaultInputProfile2;
657
                else
658
                        tp1 = ScApp->Prefs.DCMSset.DefaultInputProfile2;
659
        }
660
        for (itp2 = InputProfiles.begin(); itp2 != InputProfiles.end(); ++itp2)
661
        {
662
                ImageP->insertItem(itp2.key());
663
                if (itp2.key() == tp1)
664
                {
665
                        if ((CMSuse) && (CMSavail))
666
                                ImageP->setCurrentItem(ImageP->count()-1);
667
                }
668
        }
669
        if ((CMSuse) && (CMSavail))
670
                IntendI->setCurrentItem(Optionen->Intent2);
671
        if ((!CMSuse) || (!CMSavail))
672
        {
673
                GroupBox9->hide();
674
                ProfsGroup->hide();
675
        }
676
#else
677
        GroupBox9->hide();
678
        ProfsGroup->hide();
679
#endif
680
 
681
        QSpacerItem* spacerCG = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding );
682
        tabColorLayout->addItem( spacerCG );
683
        insertTab( tabColor, tr( "C&olor" ) );
684
 
685
        tabPDFX = new QWidget( this, "tabPDFX" );
686
        tabPDFXLayout = new QVBoxLayout( tabPDFX, 11, 5, "tabPDFXLayout");
687
        X3Group = new QGroupBox( tabPDFX, "X3Group" );
688
        X3Group->setTitle( tr( "PDF/X-3 Output Intent" ) );
689
        X3Group->setColumnLayout(0, Qt::Vertical );
690
        X3Group->layout()->setSpacing( 5 );
691
        X3Group->layout()->setMargin( 10 );
692
        X3GroupLayout = new QGridLayout( X3Group->layout() );
693
        X3GroupLayout->setAlignment( Qt::AlignTop );
694
        PrintProfC = new QComboBox( true, X3Group, "PrintProfC" );
695
        PrintProfC->setEditable(false);
696
#ifdef HAVE_CMS
697
 
698
        ProfilesL::Iterator itp3;
699
        QString tp3 = Optionen->PrintProf;
700
        if (!PDFXProfiles->contains(tp3))
701
        {
702
                if (vie != 0)
703
                        tp3 = vie->Doc->CMSSettings.DefaultPrinterProfile;
704
                else
705
                        tp3 = ScApp->Prefs.DCMSset.DefaultPrinterProfile;
706
        }
707
        for (itp3 = PDFXProfiles->begin(); itp3 != PDFXProfiles->end(); ++itp3)
708
        {
709
                PrintProfC->insertItem(itp3.key());
710
                if (itp3.key() == tp3)
711
                        PrintProfC->setCurrentItem(PrintProfC->count()-1);
712
        }
713
#endif
714
        X3GroupLayout->addWidget( PrintProfC, 0, 1 );
715
        InfoString = new QLineEdit( X3Group, "InfoString" );
716
        InfoString->setText(Optionen->Info);
717
        X3GroupLayout->addWidget( InfoString, 1, 1 );
718
        PDFX2 = new QLabel( InfoString, tr( "&Info String:" ), X3Group, "PDFX2" );
719
        X3GroupLayout->addWidget( PDFX2, 1, 0 );
720
        PDFX1 = new QLabel( PrintProfC, tr( "Output &Profile:" ), X3Group, "PDFX1" );
721
        X3GroupLayout->addWidget( PDFX1, 0, 0 );
722
        tabPDFXLayout->addWidget( X3Group );
723
        BleedGroup = new QGroupBox( tabPDFX, "BleedGroup" );
724
        BleedGroup->setTitle( tr( "Trim Box" ) );
725
        BleedGroup->setColumnLayout(0, Qt::Vertical );
726
        BleedGroup->layout()->setSpacing( 5 );
727
        BleedGroup->layout()->setMargin( 11 );
728
        BleedGroupLayout = new QGridLayout( BleedGroup->layout() );
729
        BleedGroupLayout->setAlignment( Qt::AlignTop );
730
        BleedIcon = new QLabel( BleedGroup, "BleedIcon" );
731
        BleedIcon->setMinimumSize( QSize( 74, 84 ) );
732
        BleedIcon->setMaximumSize( QSize( 74, 84 ) );
733
        BleedIcon->setFrameShape( QLabel::Panel );
734
        BleedIcon->setFrameShadow( QLabel::Sunken );
735
        BleedIcon->setScaledContents( false );
736
        BleedIcon->setAlignment( static_cast<int>( QLabel::AlignCenter ) );
737
        BleedGroupLayout->addWidget( BleedIcon, 1, 2 );
738
        BleedTop = new MSpinBox( BleedGroup, 2 );
739
        BleedGroupLayout->addWidget( BleedTop, 0, 2 );
740
        BleedBottom = new MSpinBox( BleedGroup, 2 );
741
        BleedGroupLayout->addWidget( BleedBottom, 2, 2 );
742
        BleedRight = new MSpinBox( BleedGroup, 2 );
743
        BleedGroupLayout->addWidget( BleedRight, 1, 3 );
744
        BleedLeft = new MSpinBox( BleedGroup, 2 );
745
        BleedGroupLayout->addWidget( BleedLeft, 1, 1 );
746
        QSpacerItem* spacerPX = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
747
        BleedGroupLayout->addItem( spacerPX, 1, 0 );
748
        QSpacerItem* spacerPX2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
749
        BleedGroupLayout->addItem( spacerPX2, 1, 4 );
750
        tabPDFXLayout->addWidget( BleedGroup );
751
        insertTab( tabPDFX, tr( "PDF/X-&3" ) );
752
        BleedTop->setSuffix( unit );
753
        BleedTop->setMinValue(0);
754
        BleedTop->setMaxValue(PageH*unitBase);
755
        BleedTop->setValue(Optionen->BleedTop*unitBase);
756
        BleedBottom->setSuffix( unit );
757
        BleedBottom->setMinValue(0);
758
        BleedBottom->setMaxValue(PageH*unitBase);
759
        BleedBottom->setValue(Optionen->BleedBottom*unitBase);
760
        BleedRight->setSuffix( unit );
761
        BleedRight->setMinValue(0);
762
        BleedRight->setMaxValue(PageB*unitBase);
763
        BleedRight->setValue(Optionen->BleedRight*unitBase);
764
        BleedLeft->setSuffix( unit );
765
        BleedLeft->setMinValue(0);
766
        BleedLeft->setMaxValue(PageB*unitBase);
767
        BleedLeft->setValue(Optionen->BleedLeft*unitBase);
768
#ifdef HAVE_CMS
769
        if ((!CMSuse) || (!CMSavail))
770
                setTabEnabled(tabPDFX, false);
771
        if ((CMSuse) && (CMSavail) && (Optionen->Version == 12) && (!PDFXProfiles->isEmpty()))
772
                EnablePDFX(2);
773
        else
774
                setTabEnabled(tabPDFX, false);
775
#else
776
        setTabEnabled(tabPDFX, false);
777
#endif
778
        BleedChanged();
779
        if (vie != 0)
780
        {
781
                PgSel = 0;
782
                Pages->setCurrentItem(0);
783
                SetEffOpts(0);
784
                Pages->setEnabled(false);
785
                Effects->setEnabled(false);
786
                PagePrev->setEnabled(false);
787
                DoEffects();
788
                if (CheckBox10->isChecked())
789
                {
790
                        PageTime->setValue(EffVal[0].pageViewDuration);
791
                        EffectTime->setValue(EffVal[0].pageEffectDuration);
792
                        EffectType->setCurrentItem(EffVal[0].effectType);
793
                        EDirection->setCurrentItem(EffVal[0].Dm);
794
                        EDirection_2->setCurrentItem(EffVal[0].M);
795
                        EDirection_2_2->setCurrentItem(EffVal[0].Di);
796
                        SetEffOpts(EffectType->currentItem());
797
                }
798
                connect(EmbedFonts, SIGNAL(clicked()), this, SLOT(EmbedAll()));
799
                connect(AvailFlist, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelAFont(QListBoxItem*)));
800
                connect(EmbedList, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelEFont(QListBoxItem*)));
801
                connect(ToEmbed, SIGNAL(clicked()), this, SLOT(PutToEmbed()));
802
                connect(FromEmbed, SIGNAL(clicked()), this, SLOT(RemoveEmbed()));
803
                connect(SubsetFonts, SIGNAL(clicked()), this, SLOT(SubsetAll()));
804
                connect(SubsetList, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelSFont(QListBoxItem*)));
805
                connect(ToSubset, SIGNAL(clicked()), this, SLOT(PutToSubset()));
806
                connect(FromSubset, SIGNAL(clicked()), this, SLOT(RemoveSubset()));
807
                connect(PagePrev, SIGNAL(clicked()), this, SLOT(PagePr()));
808
                connect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
809
                connect(EffectType, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
810
                connect(EDirection_2_2, SIGNAL(activated(int)), this, SLOT(ValidDI(int)));
811
                connect(CheckBox10, SIGNAL(clicked()), this, SLOT(DoEffects()));
812
                connect(EonAllPg, SIGNAL(clicked()), this, SLOT(EffectOnAll()));
813
                QToolTip::add( EmbedFonts, tr( "Embed fonts into the PDF. Embedding the fonts\nwill preserve the layout and appearance of your document." ) );
814
                QToolTip::add( CheckBox10, tr( "Enables presentation effects when using Acrobat Reader in full screen mode." ) );
815
                QToolTip::add( PagePrev, tr( "Show page previews of each page listed above." ) );
816
                QToolTip::add( PageTime, tr( "Length of time the page is shown before the presentation starts on the selected page." ) );
817
                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." ) );
818
                QToolTip::add( EffectType, tr( "Type of the display effect." ) );
819
                QToolTip::add( EDirection, tr( "Direction of the effect of moving lines for the split and blind effects." ) );
820
                QToolTip::add( EDirection_2, tr( "Starting position for the box and split effects." ) );
821
                QToolTip::add( EDirection_2_2, tr( "Direction of the glitter or wipe effects." ) );
822
                QToolTip::add( EonAllPg, tr( "Apply the selected effect to all pages." ) );
823
        }
824
        connect(AllPages, SIGNAL(toggled(bool)), this, SLOT(SelRange(bool)));
825
        connect(DSColor, SIGNAL(clicked()), this, SLOT(DoDownsample()));
826
        connect(MirrorH, SIGNAL(clicked()), this, SLOT(PDFMirror()));
827
        connect(MirrorV, SIGNAL(clicked()), this, SLOT(PDFMirror()));
828
        connect(RotateDeg, SIGNAL(activated(int)), this, SLOT(Rotation(int)));
829
        connect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
830
        connect(EmbedProfs, SIGNAL(clicked()), this, SLOT(EnablePG()));
831
        connect(EmbedProfs2, SIGNAL(clicked()), this, SLOT(EnablePGI()));
832
        connect(NoEmbedded, SIGNAL(clicked()), this, SLOT(EnablePGI2()));
833
        connect(ComboBox1, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
834
        connect(BleedTop, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
835
        connect(BleedBottom, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
836
        connect(BleedLeft, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
837
        connect(BleedRight, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
838
        connect(Encry, SIGNAL(clicked()), this, SLOT(ToggleEncr()));
839
        connect(UseLPI, SIGNAL(clicked()), this, SLOT(EnableLPI2()));
840
        connect(LPIcolor, SIGNAL(activated(int)), this, SLOT(SelLPIcol(int)));
841
        //tooltips
842
        QToolTip::add( AllPages, tr( "Export all pages to PDF" ) );
843
        QToolTip::add( OnlySome, tr( "Export a range of pages to PDF" ) );
844
        QToolTip::add( PageNr, tr( "Insert a comma separated list of tokens where\n"
845
                                      "a token can be * for all the pages, 1-5 for\n"
846
                                      "a range of pages or a single page number.") );
847
 
848
        QToolTip::add( ComboBox1, tr( "Determines the PDF compatibility. The default is Acrobat 4.0 which gives the widest compatibility.\nChoose Acrobat 5.0 if your file has PDF 1.4 features such as transparency or you require 128 bit encryption.\nPDF/X-3 is for exporting the PDF for commercial printing and is selectable when you have activated color management." ) );
849
        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." ) );
850
        QToolTip::add( CheckBox1, tr( "Generates thumbnails of each page in the PDF.\nSome viewers can use the thumbnails for navigation." ) );
851
        QToolTip::add( Article, tr( "Generate PDF Articles, which is useful for navigating linked articles in a PDF." ) );
852
        QToolTip::add( CheckBM, tr( "Embed the bookmarks you created in your document.\nThese are useful for navigating long PDF documents." ) );
853
        QToolTip::add( Resolution, tr( "Export resolution of text and vector graphics.\nThis does not affect the resolution of bitmap images like photos." ) );
854
        QToolTip::add( Compression, tr( "Compression of text and graphics.\nUnless you have a reason, leave this checked. This reduces PDF size." ) );
855
        QToolTip::add( CMethod, tr( "Version of compression for images.\nAutomatic allows Scribus to choose the best method.\nZIP is good for images with solid colors.\nJPEG is better at creating smaller PDF files which have many photos (with slight image loss possible).\nLeave it set to automatic, unless you have a need for special compression options." ) );
856
        QToolTip::add( CQuality, tr( "Compression levels: Minimum (25%), Low (50%), Medium (75%), High (85%), Maximum (95%)" ) );
857
        QToolTip::add( DSColor, tr( "Downsample your bitmap images to the selected DPI.\nLeaving this unchecked will render them at their native resolution." ) );
858
        QToolTip::add( ValC, tr( "DPI (Dots Per Inch) for image export.") );
859
        QToolTip::add( Encry, tr( "Enable the security features in your exported PDF.\nIf you selected Acrobat 4.0, the PDF will be protected by 40 bit encryption.\nIf you selected Acrobat 5.0, 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." ) );
860
        QToolTip::add( PassOwner, tr( "Choose a master password which enables or disables all the\nsecurity features in your exported PDF" ) );
861
        QToolTip::add( PassUser, tr( "Choose a password for users to be able to read your PDF." ) );
862
        QToolTip::add( PrintSec, tr( "Allow printing of the PDF. If un-checked, printing is prevented. " ) );
863
        QToolTip::add( ModifySec, tr( "Allow modifying of the PDF. If un-checked, modifying the PDF is prevented." ) );
864
        QToolTip::add( CopySec, tr( "Allow copying of text or graphics from the PDF. \nIf un-checked, text and graphics cannot be copied." ) );
865
        QToolTip::add( AddSec, tr( "Allow adding annotations and fields to the PDF. \nIf un-checked, editing annotations and fileds is prevented." ) );
866
        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." ) );
867
        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." ) );
868
        QToolTip::add( EmbedProfs, tr( "Embed a color profile for solid colors" ) );
869
        QToolTip::add( SolidPr, tr( "Color profile for solid colors" ) );
870
        QToolTip::add( IntendS, tr( "Rendering intent for solid colors" ) );
871
        QToolTip::add( EmbedProfs2, tr( "Embed a color profile for images" ) );
872
        QToolTip::add( NoEmbedded, tr( "Do not use color profiles that are embedded in source images" ) );
873
        QToolTip::add( ImageP, tr( "Color profile for images" ) );
874
        QToolTip::add( IntendI, tr( "Rendering intent for images" ) );
875
        QToolTip::add( PrintProfC, tr( "Output profile for printing. If possible, get some guidance from your printer on profile selection." ) );
876
        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." ) );
877
        QToolTip::add( BleedTop, tr( "Distance for bleed from the top of the physical page" ) );
878
        QToolTip::add( BleedBottom, tr( "Distance for bleed from the bottom of the physical page" ) );
879
        QToolTip::add( BleedLeft, tr( "Distance for bleed from the left of the physical page" ) );
880
        QToolTip::add( BleedRight, tr( "Distance for bleed from the right of the physical page" ) );
881
        QToolTip::add( MirrorH, tr( "Mirror Page(s) horizontally" ) );
882
        QToolTip::add( MirrorV, tr( "Mirror Page(s) vertically" ) );
883
}
884
 
885
void TabPDFOptions::ToggleEncr()
886
{
887
        bool setter = Encry->isChecked() ? true : false;
888
        GroupSecSet->setEnabled(setter);
889
        GroupPass->setEnabled(setter);
890
}
891
 
892
void TabPDFOptions::BleedChanged()
893
{
894
        BleedTop->setMaxValue(pageH*unitConv-BleedBottom->value());
895
        BleedBottom->setMaxValue(pageH*unitConv-BleedTop->value());
896
        BleedRight->setMaxValue(pageB*unitConv-BleedLeft->value());
897
        BleedLeft->setMaxValue(pageB*unitConv-BleedRight->value());
898
        QPixmap pm = QPixmap(70,80);
899
        pm.fill(white);
900
        QPainter p;
901
        p.begin(&pm);
902
        p.setBrush(NoBrush);
903
        p.setPen(black);
904
        p.drawRect(0, 0, pm.width(), pm.height());
905
        p.setPen(QPen(black, 1, DotLine, FlatCap, MiterJoin));
906
        int x = qRound((BleedLeft->value() / unitConv) * (70.0 / pageB));
907
        int y = qRound((BleedTop->value() / unitConv) * (80.0 / pageH));
908
        int w =qRound((pageB-((BleedLeft->value()+BleedRight->value())/unitConv))*(70.0/pageB));
909
        int h = qRound((pageH-((BleedTop->value()+BleedBottom->value())/unitConv))*(80.0/pageH));
910
        p.drawRect(x, y, w, h);
911
        BleedIcon->setPixmap(pm);
912
        p.end();
913
}
914
 
915
void TabPDFOptions::enableCMS(bool enable)
916
{
917
        disconnect(ComboBox1, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
918
        int a = ComboBox1->currentItem();
919
        ComboBox1->clear();
920
        ComboBox1->insertItem("Acrobat 4.0");
921
        ComboBox1->insertItem("Acrobat 5.0");
922
        if (enable)
923
        {
924
                cms = true;
925
                ComboBox1->insertItem("PDF/X-3");
926
        }
927
        else
928
        {
929
                cms = false;
930
                a = QMIN(a, 2);
931
        }
932
        ComboBox1->setCurrentItem(a);
933
        EnablePr(1);
934
        connect(ComboBox1, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
935
}
936
 
937
void TabPDFOptions::EnablePDFX(int a)
938
{
939
        if (a != 2)
940
        {
941
                setTabEnabled(tabPDFX, false);
942
                setTabEnabled(tabSecurity, true);
943
                OutCombo->setEnabled(true);
944
                EmbedProfs2->setEnabled(true);
945
                if (view != 0)
946
                {
947
                        CheckBox10->setEnabled(true);
948
                        EmbedFonts->setEnabled(true);
949
                }
950
                return;
951
        }
952
        disconnect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
953
        OutCombo->setCurrentItem(1);
954
        OutCombo->setEnabled(false);
955
        EnablePr(1);
956
        EmbedProfs2->setChecked(true);
957
        EmbedProfs2->setEnabled(false);
958
        if (view != 0)
959
        {
960
                EmbedFonts->setChecked(true);
961
                EmbedAll();
962
                CheckBox10->setChecked(false);
963
                CheckBox10->setEnabled(false);
964
                EmbedFonts->setEnabled(false);
965
        }
966
        EnablePGI();
967
        setTabEnabled(tabPDFX, true);
968
        setTabEnabled(tabSecurity, false);
969
        connect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
970
}
971
 
972
void TabPDFOptions::EnablePGI()
973
{
974
        if (EmbedProfs2->isChecked())
975
        {
976
                NoEmbedded->setEnabled(true);
977
                bool setter = NoEmbedded->isChecked() ? true : false;
978
                ProfsTxt3->setEnabled(setter);
979
                ProfsTxt4->setEnabled(setter);
980
                ImageP->setEnabled(setter);
981
                IntendI->setEnabled(setter);
982
        }
983
        else
984
        {
985
                ProfsTxt3->setEnabled(false);
986
                ProfsTxt4->setEnabled(false);
987
                ImageP->setEnabled(false);
988
                IntendI->setEnabled(false);
989
                NoEmbedded->setEnabled(false);
990
        }
991
}
992
 
993
void TabPDFOptions::EnablePGI2()
994
{
995
        bool setter = NoEmbedded->isChecked() ? true : false;
996
        ProfsTxt3->setEnabled(setter);
997
        ProfsTxt4->setEnabled(setter);
998
        ImageP->setEnabled(setter);
999
        IntendI->setEnabled(setter);
1000
}
1001
 
1002
void TabPDFOptions::EnablePG()
1003
{
1004
        bool setter = EmbedProfs->isChecked() ? true : false;
1005
        ProfsTxt1->setEnabled(setter);
1006
        ProfsTxt2->setEnabled(setter);
1007
        SolidPr->setEnabled(setter);
1008
        IntendS->setEnabled(setter);
1009
}
1010
 
1011
void TabPDFOptions::EnablePr(int a)
1012
{
1013
        EnableLPI(a);
1014
        bool setter = a == 1 ? true : false;
1015
        GroupBox9->setEnabled(setter);
1016
        ProfsGroup->setEnabled(setter);
1017
}
1018
 
1019
void TabPDFOptions::EnableLPI(int a)
1020
{
1021
        if (a == 1)
1022
        {
1023
#ifdef HAVE_CMS
1024
                QString tp = Opts->SolidProf;
1025
                if (!InputProfiles.contains(tp))
1026
                {
1027
                        if (view != 0)
1028
                                tp = view->Doc->CMSSettings.DefaultInputProfile2;
1029
                        else
1030
                                tp = ScApp->Prefs.DCMSset.DefaultInputProfile2;
1031
                }
1032
                ProfilesL::Iterator itp;
1033
                SolidPr->clear();
1034
                for (itp = InputProfiles.begin(); itp != InputProfiles.end(); ++itp)
1035
                {
1036
                        SolidPr->insertItem(itp.key());
1037
                        if (itp.key() == tp)
1038
                        {
1039
                                if (cms)
1040
                                        SolidPr->setCurrentItem(SolidPr->count()-1);
1041
                        }
1042
                }
1043
                if (cms)
1044
                        IntendS->setCurrentItem(Opts->Intent);
1045
                ProfilesL::Iterator itp2;
1046
                QString tp1 = Opts->ImageProf;
1047
                if (!InputProfiles.contains(tp1))
1048
                {
1049
                        if (view != 0)
1050
                                tp1 = view->Doc->CMSSettings.DefaultInputProfile2;
1051
                        else
1052
                                tp1 = ScApp->Prefs.DCMSset.DefaultInputProfile2;
1053
                }
1054
                ImageP->clear();
1055
                for (itp2 = InputProfiles.begin(); itp2 != InputProfiles.end(); ++itp2)
1056
                {
1057
                        ImageP->insertItem(itp2.key());
1058
                        if (itp2.key() == tp1)
1059
                        {
1060
                                if (cms)
1061
                                        ImageP->setCurrentItem(ImageP->count()-1);
1062
                        }
1063
                }
1064
                if (cms)
1065
                        IntendI->setCurrentItem(Opts->Intent2);
1066
#endif
1067
                if (cms)
1068
                {
1069
                        GroupBox9->show();
1070
                        ProfsGroup->show();
1476 fschmid 1071
                        UseLPI->hide();
1307 fschmid 1072
                }
1073
                else
1074
                {
1075
                        GroupBox9->hide();
1076
                        ProfsGroup->hide();
1077
                        UseLPI->show();
1078
                        if (UseLPI->isChecked())
1079
                                LPIgroup->show();
1080
                        else
1081
                                LPIgroup->hide();
1082
                }
1083
        }
1084
        else
1085
        {
1086
                UseLPI->hide();
1087
                LPIgroup->hide();
1088
        }
1089
}
1090
 
1091
void TabPDFOptions::EnableLPI2()
1092
{
1093
        if (UseLPI->isChecked())
1094
                LPIgroup->show();
1095
        else
1096
                LPIgroup->hide();
1097
}
1098
 
1099
void TabPDFOptions::SelLPIcol(int c)
1100
{
1101
        Opts->LPISettings[SelLPIcolor].Frequency = LPIfreq->value();
1102
        Opts->LPISettings[SelLPIcolor].Angle = LPIangle->value();
1103
        Opts->LPISettings[SelLPIcolor].SpotFunc = LPIfunc->currentItem();
1104
        LPIfreq->setValue(Opts->LPISettings[LPIcolor->text(c)].Frequency);
1105
        LPIangle->setValue(Opts->LPISettings[LPIcolor->text(c)].Angle);
1106
        LPIfunc->setCurrentItem(Opts->LPISettings[LPIcolor->text(c)].SpotFunc);
1107
        SelLPIcolor = LPIcolor->text(c);
1108
}
1109
 
1110
void TabPDFOptions::SelRange(bool e)
1111
{
1112
        bool setter = e ? false : true;
1113
        PageNr->setEnabled( setter );
1114
        if (setter == false)
1115
                CheckBM->setChecked(false);
1116
}
1117
 
1118
void TabPDFOptions::EffectOnAll()
1119
{
1120
        for (uint pg = 0; pg < view->Doc->Pages.count(); ++pg)
1121
        {
1122
                EffVal[pg].pageViewDuration = PageTime->value();
1123
                EffVal[pg].pageEffectDuration = EffectTime->value();
1124
                EffVal[pg].effectType = EffectType->currentItem();
1125
                EffVal[pg].Dm = EDirection->currentItem();
1126
                EffVal[pg].M = EDirection_2->currentItem();
1127
                EffVal[pg].Di = EDirection_2_2->currentItem();
1128
        }
1129
}
1130
 
1131
void TabPDFOptions::PDFMirror()
1132
{
1133
        Opts->MirrorH = MirrorH->isOn();
1134
        Opts->MirrorV = MirrorV->isOn();
1135
}
1136
 
1137
void TabPDFOptions::Rotation( int value )
1138
{
1139
        Opts->RotateDeg = value * 90;
1140
}
1141
 
1142
void TabPDFOptions::DoEffects()
1143
{
1144
        bool setter = CheckBox10->isChecked() ? true : false;
1145
        Pages->setEnabled(setter);
1146
        Effects->setEnabled(setter);
1147
        PagePrev->setEnabled(setter);
1148
}
1149
 
1150
void TabPDFOptions::ValidDI(int nr)
1151
{
1152
        if (!EDirection_2_2->listBox()->item(nr)->isSelectable())
1153
                EDirection_2_2->setCurrentItem(0);
1154
}
1155
 
1156
void TabPDFOptions::SetPgEff(int nr)
1157
{
1158
        if (nr < 0)
1159
                return;
1160
        EffVal[PgSel].pageViewDuration = PageTime->value();
1161
        EffVal[PgSel].pageEffectDuration = EffectTime->value();
1162
        EffVal[PgSel].effectType = EffectType->currentItem();
1163
        EffVal[PgSel].Dm = EDirection->currentItem();
1164
        EffVal[PgSel].M = EDirection_2->currentItem();
1165
        EffVal[PgSel].Di = EDirection_2_2->currentItem();
1166
        SetEffOpts(EffVal[nr].effectType);
1167
        PageTime->setValue(EffVal[nr].pageViewDuration);
1168
        EffectTime->setValue(EffVal[nr].pageEffectDuration);
1169
        EffectType->setCurrentItem(EffVal[nr].effectType);
1170
        EDirection->setCurrentItem(EffVal[nr].Dm);
1171
        EDirection_2->setCurrentItem(EffVal[nr].M);
1172
        EDirection_2_2->setCurrentItem(EffVal[nr].Di);
1173
        PgSel = nr;
1174
}
1175
 
1176
void TabPDFOptions::SetEffOpts(int nr)
1177
{
1178
        EDirection_2_2->listBox()->item(2)->setSelectable(false);
1179
        EDirection_2_2->listBox()->item(3)->setSelectable(false);
1180
        EDirection_2_2->listBox()->item(4)->setSelectable(false);
1181
        switch (nr)
1182
        {
1183
        case 0:
1184
        case 3:
1185
                EDirection->setEnabled(false);
1186
                EDirection_2->setEnabled(false);
1187
                EDirection_2_2->setEnabled(false);
1188
                break;
1189
        case 1:
1190
                EDirection->setEnabled(true);
1191
                EDirection_2->setEnabled(false);
1192
                EDirection_2_2->setEnabled(false);
1193
                break;
1194
        case 2:
1195
                EDirection->setEnabled(false);
1196
                EDirection_2->setEnabled(true);
1197
                EDirection_2_2->setEnabled(false);
1198
                break;
1199
        case 4:
1200
        case 6:
1201
                EDirection->setEnabled(false);
1202
                EDirection_2->setEnabled(false);
1203
                EDirection_2_2->setEnabled(true);
1204
                if (nr == 6)
1205
                {
1206
                        EDirection_2_2->listBox()->item(2)->setSelectable(true);
1207
                        EDirection_2_2->listBox()->item(3)->setSelectable(true);
1208
                }
1209
                else
1210
                        EDirection_2_2->listBox()->item(4)->setSelectable(true);
1211
                break;
1212
        case 5:
1213
                EDirection->setEnabled(true);
1214
                EDirection_2->setEnabled(true);
1215
                EDirection_2_2->setEnabled(false);
1216
                break;
1217
        }
1218
}
1219
 
1220
void TabPDFOptions::PagePr()
1221
{
1222
        disconnect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
1223
        QString tmp;
1224
        int ci = Pages->currentItem();
1225
        if (PagePrev->isChecked())
1226
        {
1227
                for (uint pg = 0; pg < view->Doc->Pages.count(); ++pg)
1228
                        Pages->changeItem(view->PageToPixmap(pg, 70), tr("Page")+" "+tmp.setNum(pg+1), pg);
1229
        }
1230
        else
1231
        {
1232
                for (uint pg = 0; pg < view->Doc->Pages.count(); ++pg)
1233
                        Pages->changeItem( tr("Page")+" "+tmp.setNum(pg+1), pg);
1234
        }
1235
        if (ci != -1)
1236
        {
1237
                PgSel = ci;
1238
                Pages->setCurrentItem(ci);
1239
        }
1240
        else
1241
        {
1242
                PgSel = 0;
1243
                Pages->clearSelection();
1244
        }
1245
        connect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
1246
}
1247
 
1248
void TabPDFOptions::DoDownsample()
1249
{
1250
        if (DSColor->isChecked())
1251
        {
1252
                ValC->setEnabled(true);
1253
                if (ValC->value() > Resolution->value())
1254
                        ValC->setValue(Resolution->value());
1255
                ValC->setMaxValue(Resolution->value());
1256
                ValC->setMinValue(35);
1257
        }
1258
        else
1259
                ValC->setEnabled(false);
1260
}
1261
 
1262
void TabPDFOptions::RemoveEmbed()
1263
{
1264
        FontsToEmbed.remove(EmbedList->currentText());
1265
        EmbedList->removeItem(EmbedList->currentItem());
1266
        EmbedList->clearSelection();
1267
        if (EmbedList->count() == 0)
1268
        {
1269
                FromEmbed->setEnabled(false);
1270
                ToSubset->setEnabled(false);
1271
        }
1272
}
1273
 
1274
void TabPDFOptions::PutToEmbed()
1275
{
1276
        if (EmbedList->count() != 0)
1277
        {
1278
                if (EmbedList->findItem(AvailFlist->currentText()) == NULL)
1279
                {
1280
                        FontsToEmbed.append(AvailFlist->currentText());
1281
                        EmbedList->insertItem(AvailFlist->currentText());
1282
                }
1283
        }
1284
        else
1285
        {
1286
                FontsToEmbed.append(AvailFlist->currentText());
1287
                EmbedList->insertItem(AvailFlist->currentText());
1288
        }
1289
}
1290
 
1291
void TabPDFOptions::RemoveSubset()
1292
{
1293
        FontsToSubset.remove(SubsetList->currentText());
1294
        FontsToEmbed.append(SubsetList->currentText());
1295
        EmbedList->insertItem(SubsetList->currentText());
1296
        SubsetList->removeItem(SubsetList->currentItem());
1297
        SubsetList->clearSelection();
1298
        if (SubsetList->count() == 0)
1299
                FromSubset->setEnabled(false);
1300
}
1301
 
1302
void TabPDFOptions::PutToSubset()
1303
{
1304
        if (SubsetList->count() != 0)
1305
        {
1306
                if (SubsetList->findItem(EmbedList->currentText()) == NULL)
1307
                {
1308
                        FontsToSubset.append(EmbedList->currentText());
1309
                        SubsetList->insertItem(EmbedList->currentText());
1310
                }
1311
        }
1312
        else
1313
        {
1314
                FontsToSubset.append(EmbedList->currentText());
1315
                SubsetList->insertItem(EmbedList->currentText());
1316
        }
1317
        FontsToEmbed.remove(EmbedList->currentText());
1318
        EmbedList->removeItem(EmbedList->currentItem());
1319
        EmbedList->clearSelection();
1320
        if (EmbedList->count() == 0)
1321
        {
1322
                FromEmbed->setEnabled(false);
1323
                ToSubset->setEnabled(false);
1324
        }
1325
}
1326
 
1327
void TabPDFOptions::SelAFont(QListBoxItem *c)
1328
{
1329
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1330
        {
1331
                FromEmbed->setEnabled(false);
1332
                if (c->isSelectable())
1333
                        ToEmbed->setEnabled(true);
1334
                ToSubset->setEnabled(false);
1335
                FromSubset->setEnabled(false);
1336
                EmbedList->clearSelection();
1337
                SubsetList->clearSelection();
1338
        }
1339
}
1340
 
1341
void TabPDFOptions::SelEFont(QListBoxItem *c)
1342
{
1343
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1344
        {
1345
                FromEmbed->setEnabled(true);
1346
                ToEmbed->setEnabled(false);
1347
                ToSubset->setEnabled(true);
1348
                FromSubset->setEnabled(false);
1349
                AvailFlist->clearSelection();
1350
                SubsetList->clearSelection();
1351
        }
1352
}
1353
 
1354
void TabPDFOptions::SelSFont(QListBoxItem *c)
1355
{
1356
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1357
        {
1358
                FromSubset->setEnabled(true);
1359
                ToSubset->setEnabled(false);
1360
                ToEmbed->setEnabled(false);
1361
                FromEmbed->setEnabled(false);
1362
                EmbedList->clearSelection();
1363
                AvailFlist->clearSelection();
1364
        }
1365
}
1366
 
1367
void TabPDFOptions::EmbedAll()
1368
{
1369
        if (EmbedFonts->isChecked())
1370
        {
1371
                SubsetFonts->setChecked(false);
1372
                EmbedList->clear();
1373
                FontsToEmbed.clear();
1374
                SubsetList->clear();
1375
                FontsToSubset.clear();
1376
                FromEmbed->setEnabled(false);
1377
                ToEmbed->setEnabled(false);
1378
                ToSubset->setEnabled(false);
1379
                FromSubset->setEnabled(false);
1380
                for (uint a=0; a < AvailFlist->count(); ++a)
1381
                {
1382
                        if (AvailFlist->item(a)->isSelectable())
1383
                        {
1384
                                FontsToEmbed.append(AvailFlist->item(a)->text());
1385
                                EmbedList->insertItem(AvailFlist->item(a)->text());
1386
                        }
1387
                }
1388
        }
1389
}
1390
 
1391
void TabPDFOptions::SubsetAll()
1392
{
1393
        if (SubsetFonts->isChecked())
1394
        {
1395
                EmbedFonts->setChecked(false);
1396
                EmbedList->clear();
1397
                FontsToEmbed.clear();
1398
                SubsetList->clear();
1399
                FontsToSubset.clear();
1400
                FromEmbed->setEnabled(false);
1401
                ToEmbed->setEnabled(false);
1402
                ToSubset->setEnabled(false);
1403
                FromSubset->setEnabled(false);
1404
                for (uint a=0; a < AvailFlist->count(); ++a)
1405
                {
1406
                        if (AvailFlist->item(a)->isSelectable())
1407
                        {
1408
                                FontsToSubset.append(AvailFlist->item(a)->text());
1409
                                SubsetList->insertItem(AvailFlist->item(a)->text());
1410
                        }
1411
                }
1412
        }
1413
}