Subversion Repositories Scribus

Rev

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