Subversion Repositories Scribus

Rev

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

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