Subversion Repositories Scribus

Rev

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