Subversion Repositories Scribus

Rev

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