Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
1307 fschmid 7
/***************************************************************************
8
 *                                                                         *
9
 *   This program is free software; you can redistribute it and/or modify  *
10
 *   it under the terms of the GNU General Public License as published by  *
11
 *   the Free Software Foundation; either version 2 of the License, or     *
12
 *   (at your option) any later version.                                   *
13
 *                                                                         *
14
 ***************************************************************************/
15
#include "tabpdfoptions.h"
16
#include "tabpdfoptions.moc"
17
 
18
#include <qpainter.h>
6657 cbradney 19
#include "createrange.h"
1972 craig 20
#include "pdfoptions.h"
2834 cbradney 21
#include "prefsmanager.h"
5880 jghali 22
#include "scribuscore.h"
2688 craig 23
#include "scconfig.h"
6657 cbradney 24
#include "units.h"
25
#include "usertaskstructs.h"
1307 fschmid 26
 
27
extern QPixmap loadIcon(QString nam);
5243 cbradney 28
#include "scribuscore.h"
1307 fschmid 29
 
4260 craig 30
TabPDFOptions::TabPDFOptions(   QWidget* parent, PDFOptions & Optionen,
31
                                const SCFonts &AllFonts,
32
                                const ProfilesL & PDFXProfiles,
5387 avox 33
                                const QMap<QString, int> & DocFonts,
4260 craig 34
                                const QValueList<PDFPresentationData> & Eff,
35
                                int unitIndex, double PageH, double PageB,
5881 jghali 36
                                ScribusDoc * mdoc, bool exporting )
4252 craig 37
        : QTabWidget( parent, "pdf" ),
4253 craig 38
        // Initialize all those darn pointer members so we catch unitialized
4255 craig 39
        // accesses. I (CR) use the following command to generate these based on
40
        // the header excerpt:
41
        //    !cut -d \* -f 2 | sed -r 's/ ?(.*);/\t\1\(0\),/g'
42
        // Public GUI member pointers:
4253 craig 43
        AddSec(0),
44
        Article(0),
45
        BleedBottom(0),
46
        BleedLeft(0),
47
        BleedRight(0),
48
        BleedTop(0),
49
        CheckBM(0),
50
        CheckBox1(0),
51
        CMethod(0),
4649 fschmid 52
        ClipMarg(0),
4253 craig 53
        ComboBind(0),
54
        Compression(0),
55
        continuousPages(0),
56
        CopySec(0),
57
        CQuality(0),
58
        doublePageLeft(0),
59
        doublePageRight(0),
60
        DSColor(0),
61
        EmbedProfs(0),
62
        EmbedProfs2(0),
63
        Encry(0),
64
        ImageP(0),
65
        IntendI(0),
66
        IntendS(0),
67
        MirrorH(0),
68
        MirrorV(0),
69
        ModifySec(0),
70
        NoEmbedded(0),
71
        OutCombo(0),
72
        Pages(0),
73
        PassOwner(0),
74
        PassUser(0),
75
        PDFVersionCombo(0),
4255 craig 76
        PrintProfC(0),
77
        PrintSec(0),
78
        Resolution(0),
79
        RotateDeg(0),
80
        singlePage(0),
81
        SolidPr(0),
82
        useBookmarks(0),
83
        useFullScreen(0),
84
        useLayers(0),
85
        useLayers2(0),
86
        UseLPI(0),
87
        useSpot(0),
5320 fschmid 88
        overprintMode(0),
4255 craig 89
        useThumbnails(0),
90
        ValC(0),
4258 craig 91
        // Protected members other than GUI member pointers
92
        // End GUI member pointers
4259 craig 93
        // Protected non-gui members
94
        PgSel(0),
95
        EffVal(Eff),
96
        // Protected GUI member pointers
97
        actionCombo(0),
98
        AllPages(0),
99
        CheckBox10(0),
100
        EDirection(0),
101
        EDirection_2(0),
102
        EDirection_2_2(0),
103
        EffectTime(0),
104
        EffectType(0),
105
        fitWindow(0),
106
        hideMenuBar(0),
107
        hideToolBar(0),
108
        InfoString(0),
109
        LPIangle(0),
110
        LPIfreq(0),
111
        LPIfunc(0),
112
        PageNr(0),
113
        PageTime(0),
114
        // End protected gui member pointers
115
        // Private member gui pointers
4255 craig 116
        actionLabel(0),
117
        AvailFlist(0),
118
        BleedGroup(0),
119
        BleedGroupLayout(0),
120
        BleedIcon(0),
121
        CBox(0),
122
        CBoxLayout(0),
123
        ColorGroup(0),
124
        ColorGroupLayout(0),
125
        ColorText1(0),
126
        Effects(0),
127
        EffectsLayout(0),
128
        EmbedFonts(0),
129
        EmbedList(0),
130
        EonAllPg(0),
131
        FromEmbed(0),
132
        FromSubset(0),
133
        GroupBox1(0),
134
        GroupBox1Layout(0),
135
        GroupBox2Layout(0),
136
        GroupBox9(0),
137
        GroupBox9Layout(0),
138
        groupDisplay(0),
139
        groupDisplayLayout(0),
140
        GroupFont(0),
141
        GroupFontLayout(0),
142
        groupJava(0),
143
        groupJavaLayout(0),
144
        groupNavigation(0),
145
        groupNavigationLayout(0),
146
        GroupPass(0),
147
        GroupPassLayout(0),
148
        GroupSecSet(0),
149
        GroupSecSetLayout(0),
6657 cbradney 150
        pageNumberSelectorLayout(0),
4255 craig 151
        Layout11(0),
152
        Layout11a(0),
153
        Layout13(0),
154
        Layout2(0),
155
        Layout3(0),
156
        Layout4_2(0),
157
        Layout5_2(0),
158
        Layout5_2a(0),
159
        Layout6(0),
160
        LayoutSpecial(0),
161
        LPIcolor(0),
162
        LPIgroup(0),
163
        LPIgroupLayout(0),
164
        OnlySome(0),
165
        pageLayout(0),
166
        pageLayoutLayout(0),
167
        PagePrev(0),
4253 craig 168
        PDFX1(0),
169
        PDFX2(0),
170
        PrintSec2(0),
171
        ProfsGroup(0),
4255 craig 172
        ProfsGroupLayout(0),
4253 craig 173
        ProfsTxt1(0),
174
        ProfsTxt2(0),
175
        ProfsTxt3(0),
176
        ProfsTxt4(0),
177
        RangeGroup(0),
4255 craig 178
        RangeGroupLayout(0),
4253 craig 179
        SubsetFonts(0),
180
        SubsetList(0),
181
        tabColor(0),
4255 craig 182
        tabColorLayout(0),
4253 craig 183
        tabFonts(0),
184
        tabGeneral(0),
4255 craig 185
        tabLayout(0),
186
        tabLayout_3(0),
187
        tabLayout_5(0),
188
        tabOptionsGridLayout(0),
4253 craig 189
        tabPDFX(0),
4255 craig 190
        tabPDFXLayout(0),
4253 craig 191
        tabPresentation(0),
192
        tabSecurity(0),
4255 craig 193
        tabSecurityLayout(0),
4253 craig 194
        tabSpecial(0),
4255 craig 195
        tabSpecialLayout(0),
4253 craig 196
        TextCom1(0),
197
        TextCom2(0),
198
        TextFont1(0),
199
        TextFont1_2(0),
200
        TextFont1_2a(0),
201
        TextLabel1(0),
202
        TextLabel1e(0),
203
        TextLabel1x(0),
204
        TextLabel2(0),
205
        TextLabel2e(0),
206
        TextLabel3(0),
207
        TextLabel3e(0),
208
        TextLabel4e(0),
209
        TextLabel5e(0),
210
        TextLabel6e(0),
211
        textLPI1(0),
212
        textLPI2(0),
213
        textLPI3(0),
214
        TextSec1(0),
215
        TextSec2(0),
6657 cbradney 216
        pageNrButton(0),
4253 craig 217
        ToEmbed(0),
218
        ToSubset(0),
219
        useViewDefault(0),
220
        X3Group(0),
4259 craig 221
        X3GroupLayout(0),
4255 craig 222
        // end protected member gui pointers
4259 craig 223
        // Private members
224
        unit(unitGetSuffixFromIndex(unitIndex)),
225
        precision(unitGetPrecisionFromIndex(unitIndex)),
226
        unitRatio(unitGetRatioFromIndex(unitIndex)),
5882 mrdocs 227
        pdfExport(exporting),
5880 jghali 228
        doc(mdoc),
4260 craig 229
        AllFonts(AllFonts),
4259 craig 230
        Opts(Optionen),
231
        pageH(PageH),
232
        pageB(PageB),
233
        cms(false)
1307 fschmid 234
{
1792 cbradney 235
 
1307 fschmid 236
        tabGeneral = new QWidget( this, "tabGeneral" );
237
        tabLayout = new QVBoxLayout( tabGeneral );
238
        tabLayout->setSpacing( 5 );
1878 cbradney 239
        tabLayout->setMargin( 0 );
1307 fschmid 240
        Layout13 = new QHBoxLayout( 0, 0, 5, "Layout13");
241
        RangeGroup = new QButtonGroup( tabGeneral, "RangeGroup" );
242
        RangeGroup->setTitle( tr( "Export Range" ) );
243
        RangeGroup->setColumnLayout(0, Qt::Vertical );
244
        RangeGroup->layout()->setSpacing( 5 );
245
        RangeGroup->layout()->setMargin( 10 );
246
        RangeGroupLayout = new QVBoxLayout( RangeGroup->layout() );
247
        RangeGroupLayout->setAlignment( Qt::AlignTop );
248
        AllPages = new QRadioButton( tr( "&All Pages" ), RangeGroup, "AllPages" );
5711 subik 249
//      AllPages->setChecked( true );
1307 fschmid 250
        RangeGroupLayout->addWidget( AllPages );
251
        Layout11 = new QGridLayout( 0, 1, 1, 0, 5, "Layout11");
252
        OnlySome = new QRadioButton( tr( "C&hoose Pages" ), RangeGroup, "OnlySome" );
253
        Layout11->addWidget( OnlySome, 0, 0 );
6657 cbradney 254
        pageNumberSelectorLayout = new QHBoxLayout( 0, 0, 5, "pageNumberSelectorLayout" );
1307 fschmid 255
        PageNr = new QLineEdit( RangeGroup, "PageNr" );
5711 subik 256
//      PageNr->setEnabled(false);
6657 cbradney 257
        pageNumberSelectorLayout->addWidget( PageNr );
258
        pageNrButton = new QPushButton( QString::fromUtf8("…"), RangeGroup, "PageNrButton" );
259
//      pageNrButton->setMaximumWidth(pageNrButton->minimumSizeHint().width());
6662 cbradney 260
        pageNrButton->setPixmap(loadIcon("ellipsis.png"));
6657 cbradney 261
//      PageNr->setEnabled(false);
262
        pageNumberSelectorLayout->addWidget( pageNrButton );
263
        Layout11->addLayout( pageNumberSelectorLayout, 1, 0 );
1307 fschmid 264
        RangeGroupLayout->addLayout( Layout11 );
265
        TextLabel3 = new QLabel( tr( "&Rotation:" ), RangeGroup, "TextLabel3" );
266
        RangeGroupLayout->addWidget( TextLabel3 );
267
        RotateDeg = new QComboBox( true, RangeGroup, "RotateDeg" );
268
        RotateDeg->insertItem(QString::fromUtf8("0 °"));
269
        RotateDeg->insertItem(QString::fromUtf8("90 °"));
270
        RotateDeg->insertItem(QString::fromUtf8("180 °"));
271
        RotateDeg->insertItem(QString::fromUtf8("270 °"));
272
        RotateDeg->setEditable(false);
273
        TextLabel3->setBuddy(RotateDeg);
5711 subik 274
//      RotateDeg->setCurrentItem(Opts.RotateDeg / 90);
1307 fschmid 275
        RangeGroupLayout->addWidget( RotateDeg );
276
        Layout11a = new QGridLayout( 0, 1, 1, 0, 5, "Layout11a");
277
        MirrorH = new QToolButton( RangeGroup, "MirrorH" );
278
        MirrorH->setPixmap(loadIcon("FlipH.xpm"));
279
        MirrorH->setToggleButton( true );
5711 subik 280
//      MirrorH->setOn(Opts.MirrorH);
1307 fschmid 281
        Layout11a->addWidget( MirrorH, 0, 0 );
282
        MirrorV = new QToolButton( RangeGroup, "MirrorH" );
283
        MirrorV->setPixmap(loadIcon("FlipV.xpm"));
284
        MirrorV->setToggleButton( true );
5711 subik 285
//      MirrorV->setOn(Opts.MirrorV);
1307 fschmid 286
        Layout11a->addWidget( MirrorV, 0, 1 );
287
        RangeGroupLayout->addLayout( Layout11a );
4649 fschmid 288
        ClipMarg = new QCheckBox( tr( "Clip to Page Margins" ), RangeGroup, "ClipMarg" );
5711 subik 289
//      ClipMarg->setChecked(Opts.doClip);
4649 fschmid 290
        RangeGroupLayout->addWidget( ClipMarg );
1307 fschmid 291
        Layout13->addWidget( RangeGroup );
292
 
293
        GroupBox1 = new QGroupBox( tr( "File Options" ), tabGeneral, "GroupBox1" );
294
        GroupBox1->setColumnLayout(0, Qt::Vertical );
295
        GroupBox1->layout()->setSpacing( 0 );
296
        GroupBox1->layout()->setMargin( 0 );
297
        GroupBox1Layout = new QGridLayout( GroupBox1->layout() );
298
        GroupBox1Layout->setAlignment( Qt::AlignTop );
299
        GroupBox1Layout->setSpacing( 5 );
300
        GroupBox1Layout->setMargin( 10 );
301
        TextLabel1 = new QLabel( tr( "Compatibilit&y:" ), GroupBox1, "TextLabel1" );
302
        TextLabel1->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
303
        GroupBox1Layout->addWidget( TextLabel1, 0, 0 );
1973 craig 304
        PDFVersionCombo = new QComboBox( true, GroupBox1, "PDFVersionCombo" );
305
        PDFVersionCombo->setEditable(false);
306
        TextLabel1->setBuddy(PDFVersionCombo);
5839 cbradney 307
        PDFVersionCombo->insertItem("PDF 1.3 (Acrobat 4)");
308
        PDFVersionCombo->insertItem("PDF 1.4 (Acrobat 5)");
309
        PDFVersionCombo->insertItem("PDF 1.5 (Acrobat 6)");
5880 jghali 310
        cms = doc ? (ScCore->haveCMS() && doc->HasCMS) : false;
311
        if (cms && (!PDFXProfiles.isEmpty()))
1973 craig 312
                PDFVersionCombo->insertItem("PDF/X-3");
5711 subik 313
/*      if ((CMSuse) && (CMSavail))
1307 fschmid 314
        {
4260 craig 315
                if (Opts.Version == PDFOptions::PDFVersion_X3)
1973 craig 316
                        PDFVersionCombo->setCurrentItem(3);
1307 fschmid 317
        }
318
        else
5711 subik 319
                PDFVersionCombo->setCurrentItem(0);*/
320
/*      if (Opts.Version == PDFOptions::PDFVersion_13)
1973 craig 321
                PDFVersionCombo->setCurrentItem(0);
4260 craig 322
        if (Opts.Version == PDFOptions::PDFVersion_14)
1973 craig 323
                PDFVersionCombo->setCurrentItem(1);
4260 craig 324
        if (Opts.Version == PDFOptions::PDFVersion_15)
5711 subik 325
                PDFVersionCombo->setCurrentItem(2);*/
2439 cbradney 326
        GroupBox1Layout->addMultiCellWidget( PDFVersionCombo, 0, 0, 1, 2 );
1307 fschmid 327
        TextLabel1x = new QLabel( tr( "&Binding:" ), GroupBox1, "TextLabel1" );
328
        TextLabel1x->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
329
        GroupBox1Layout->addWidget( TextLabel1x, 1, 0 );
330
        ComboBind = new QComboBox( true, GroupBox1, "ComboBind" );
331
        ComboBind->insertItem( tr("Left Margin"));
332
        ComboBind->insertItem( tr("Right Margin"));
333
        ComboBind->setEditable(false);
5711 subik 334
//      ComboBind->setCurrentItem(Opts.Binding);
1307 fschmid 335
        TextLabel1x->setBuddy(ComboBind);
2439 cbradney 336
        GroupBox1Layout->addMultiCellWidget( ComboBind, 1, 1, 1, 2 );
1307 fschmid 337
        CheckBox1 = new QCheckBox( tr( "Generate &Thumbnails" ), GroupBox1, "CheckBox1" );
5711 subik 338
//      CheckBox1->setChecked(Opts.Thumbnails);
1307 fschmid 339
        GroupBox1Layout->addMultiCellWidget( CheckBox1, 2, 2, 0, 2 );
340
        Article = new QCheckBox( tr( "Save &Linked Text Frames as PDF Articles" ), GroupBox1, "CheckBox1" );
5711 subik 341
//      Article->setChecked(Opts.Articles);
1307 fschmid 342
        GroupBox1Layout->addMultiCellWidget( Article, 3, 3, 0, 2 );
343
        CheckBM = new QCheckBox( tr( "&Include Bookmarks" ), GroupBox1, "E" );
5711 subik 344
//      CheckBM->setChecked(Opts.Bookmarks);
1307 fschmid 345
        GroupBox1Layout->addMultiCellWidget( CheckBM, 4, 4, 0, 2 );
4014 cbradney 346
        useLayers = new QCheckBox( tr( "Include La&yers" ), GroupBox1, "LI" );
5711 subik 347
//      useLayers->setChecked(Opts.useLayers);
1738 fschmid 348
        GroupBox1Layout->addMultiCellWidget( useLayers, 5, 5, 0, 2 );
5711 subik 349
/*      if (Opts.Version == 15)
1738 fschmid 350
                useLayers->setEnabled(true);
351
        else
5711 subik 352
                useLayers->setEnabled(false);*/
1307 fschmid 353
        Resolution = new QSpinBox( GroupBox1, "Resolution" );
354
        Resolution->setMaxValue( 4000 );
355
        Resolution->setMinValue( 35 );
5711 subik 356
//      Resolution->setValue(Opts.Resolution);
1307 fschmid 357
        Resolution->setSuffix( tr( " dpi" ) );
1799 cbradney 358
        TextLabel2 = new QLabel( Resolution, tr( "&Resolution for EPS Graphics:" ), GroupBox1, "TextLabel2" );
1307 fschmid 359
        TextLabel2->setAlignment( static_cast<int>( QLabel::AlignVCenter | QLabel::AlignLeft ) );
1738 fschmid 360
        GroupBox1Layout->addWidget( TextLabel2, 6, 0 );
361
        GroupBox1Layout->addWidget( Resolution, 6, 1, AlignLeft );
1307 fschmid 362
        Layout13->addWidget( GroupBox1 );
363
        tabLayout->addLayout( Layout13 );
364
        Compression = new QCheckBox( tr( "Com&press Text and Vector Graphics" ), tabGeneral, "Compression" );
5711 subik 365
//      Compression->setChecked( Opts.Compress );
1307 fschmid 366
        tabLayout->addWidget( Compression );
4824 mrdocs 367
        CBox = new QGroupBox( tr( "Image Compression Method" ), tabGeneral, "CBox" );
1307 fschmid 368
        CBox->setColumnLayout(0, Qt::Vertical );
369
        CBox->layout()->setSpacing( 5 );
370
        CBox->layout()->setMargin( 11 );
371
        CBoxLayout = new QGridLayout( CBox->layout() );
372
        CBoxLayout->setAlignment( Qt::AlignTop );
373
        CMethod = new QComboBox( true, CBox, "CMethod" );
374
        CMethod->clear();
375
        CMethod->insertItem( tr( "Automatic" ) );
4576 mrdocs 376
        CMethod->insertItem( tr( "Lossy - JPEG" ) );
377
        CMethod->insertItem( tr( "Lossless - Zip" ) );
1307 fschmid 378
        CMethod->insertItem( tr( "None" ) );
379
        CMethod->setEditable(false);
5711 subik 380
//      CMethod->setCurrentItem(Opts.CompressMethod);
4014 cbradney 381
        TextCom1 = new QLabel( CMethod, tr( "Compression Metho&d:" ), CBox, "TextCom1" );
3849 subik 382
        CBoxLayout->addWidget( TextCom1, 0, 0 );
3798 cbradney 383
        CBoxLayout->addWidget( CMethod, 0, 1 );
1307 fschmid 384
        CQuality = new QComboBox( true, CBox, "CQuality" );
385
        CQuality->clear();
386
        CQuality->insertItem( tr( "Maximum" ) );
387
        CQuality->insertItem( tr( "High" ) );
388
        CQuality->insertItem( tr( "Medium" ) );
389
        CQuality->insertItem( tr( "Low" ) );
390
        CQuality->insertItem( tr( "Minimum" ) );
391
        CQuality->setEditable(false);
5711 subik 392
//      CQuality->setCurrentItem(Opts.Quality);
3798 cbradney 393
        TextCom2 = new QLabel( CQuality, tr( "Compression &Quality:" ), CBox, "TextCom2" );
394
        CBoxLayout->addWidget( TextCom2, 1, 0 );
1307 fschmid 395
        CBoxLayout->addWidget( CQuality, 1, 1 );
4014 cbradney 396
        DSColor = new QCheckBox( tr( "Resa&mple Images to:" ), CBox, "DSColor" );
5711 subik 397
//      DSColor->setChecked(Opts.RecalcPic);
1307 fschmid 398
        CBoxLayout->addWidget( DSColor, 2, 0 );
399
        ValC = new QSpinBox( CBox, "ValC" );
400
        ValC->setSuffix( tr( " dpi" ) );
401
        ValC->setMaxValue( 4000 );
402
        ValC->setMinValue( 35 );
5711 subik 403
//      ValC->setValue(Opts.PicRes);
404
//      ValC->setEnabled(DSColor->isChecked() ? true : false);
1307 fschmid 405
        CBoxLayout->addWidget( ValC, 2, 1, AlignLeft );
406
        tabLayout->addWidget( CBox );
407
        insertTab( tabGeneral, tr( "&General" ) );
5881 jghali 408
        if (doc != 0 && exporting)
1307 fschmid 409
        {
410
                tabFonts = new QWidget( this, "tabFonts" );
411
                tabLayout_3 = new QVBoxLayout( tabFonts );
412
                tabLayout_3->setSpacing( 5 );
413
                tabLayout_3->setMargin( 11 );
414
                EmbedFonts = new QCheckBox( tr( "&Embed all Fonts" ), tabFonts, "EmbedFonts" );
415
                tabLayout_3->addWidget( EmbedFonts );
416
                SubsetFonts = new QCheckBox( tr( "&Subset all Fonts" ), tabFonts, "SubsetFonts" );
417
                tabLayout_3->addWidget( SubsetFonts );
418
                GroupFont = new QGroupBox( tr( "Embedding" ), tabFonts, "GroupFont" );
419
                GroupFont->setColumnLayout(0, Qt::Vertical );
420
                GroupFont->layout()->setSpacing( 0 );
421
                GroupFont->layout()->setMargin( 0 );
422
                GroupFontLayout = new QHBoxLayout( GroupFont->layout() );
423
                GroupFontLayout->setAlignment( Qt::AlignTop );
424
                GroupFontLayout->setSpacing( 5 );
425
                GroupFontLayout->setMargin( 10 );
426
                Layout4_2 = new QVBoxLayout;
427
                Layout4_2->setSpacing( 5 );
428
                Layout4_2->setMargin( 0 );
429
                TextFont1 = new QLabel( tr( "Available Fonts:" ), GroupFont, "TextFont1" );
430
                Layout4_2->addWidget( TextFont1 );
431
                AvailFlist = new QListBox( GroupFont, "AvailFlist" );
5711 subik 432
//              QMap<QString,int>::const_iterator it;
433
//              for (it = DocFonts.constBegin(); it != DocFonts.constEnd(); ++it)
434
//              {
5980 avox 435
//                      if (AllFonts[it.key()]->type() == ScFace::TYPE1)
5711 subik 436
//                              AvailFlist->insertItem(loadIcon("font_type1_16.png"), it.key());
5980 avox 437
//                      else if (AllFonts[it.key()]->type() == ScFace::TTF)
5711 subik 438
//                              AvailFlist->insertItem(loadIcon("font_truetype16.png"), it.key());
5980 avox 439
//                      else if (AllFonts[it.key()]->type() == ScFace::OTF)
5711 subik 440
//                              AvailFlist->insertItem(loadIcon("font_otf16.png"), it.key());
441
//              }
1307 fschmid 442
                AvailFlist->setMinimumSize(QSize(150, 140));
443
                Layout4_2->addWidget( AvailFlist );
444
                GroupFontLayout->addLayout( Layout4_2 );
445
                Layout5_2 = new QVBoxLayout;
446
                Layout5_2->setSpacing( 5 );
447
                Layout5_2->setMargin( 0 );
1321 fschmid 448
                QSpacerItem* spacerS3a = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Minimum );
449
                Layout5_2->addItem( spacerS3a );
1307 fschmid 450
                ToEmbed = new QPushButton( tr( "&>>" ), GroupFont, "ToEmbed" );
5711 subik 451
//              ToEmbed->setEnabled(false);
1307 fschmid 452
                Layout5_2->addWidget( ToEmbed );
453
                FromEmbed = new QPushButton( tr( "&<<" ), GroupFont, "FromEmbed" );
5711 subik 454
//              FromEmbed->setEnabled(false);
1307 fschmid 455
                Layout5_2->addWidget( FromEmbed );
1321 fschmid 456
                QSpacerItem* spacerS3 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
457
                Layout5_2->addItem( spacerS3 );
1307 fschmid 458
                GroupFontLayout->addLayout( Layout5_2 );
459
                Layout6 = new QVBoxLayout;
460
                Layout6->setSpacing( 5 );
461
                Layout6->setMargin( 0 );
462
                TextFont1_2 = new QLabel( tr( "Fonts to embed:" ), GroupFont, "TextFont1_2" );
463
                Layout6->addWidget( TextFont1_2 );
464
                EmbedList = new QListBox( GroupFont, "EmbedList" );
465
                EmbedList->setMinimumSize(QSize(150, 40));
466
                Layout6->addWidget( EmbedList );
3849 subik 467
 
1307 fschmid 468
                Layout5_2a = new QHBoxLayout;
469
                Layout5_2a->setSpacing( 5 );
470
                Layout5_2a->setMargin( 0 );
471
                QSpacerItem* spacerS1 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
472
                Layout5_2a->addItem( spacerS1 );
473
                ToSubset = new QPushButton( "", GroupFont, "ToSubset" );
474
                ToSubset->setPixmap(loadIcon("down.png"));
5711 subik 475
//              ToSubset->setEnabled(false);
1307 fschmid 476
                Layout5_2a->addWidget( ToSubset );
477
                FromSubset = new QPushButton( "", GroupFont, "FromSubset" );
478
                FromSubset->setPixmap(loadIcon("up.png"));
5711 subik 479
//              FromSubset->setEnabled(false);
1307 fschmid 480
                Layout5_2a->addWidget( FromSubset );
481
                QSpacerItem* spacerS2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
482
                Layout5_2a->addItem( spacerS2 );
483
                Layout6->addLayout( Layout5_2a );
484
                TextFont1_2a = new QLabel( tr( "Fonts to subset:" ), GroupFont, "TextFont1_2a" );
485
                Layout6->addWidget( TextFont1_2a );
486
                SubsetList = new QListBox( GroupFont, "SubsetList" );
487
                SubsetList->setMinimumSize(QSize(150, 40));
488
                Layout6->addWidget( SubsetList );
5711 subik 489
/*              if ((Opts.EmbedList.count() == 0) && (Opts.SubsetList.count() == 0))
1307 fschmid 490
                {
491
                        EmbedFonts->setChecked(true);
492
                        EmbedAll();
493
                }
494
                else
495
                {
4260 craig 496
                        for (uint fe = 0; fe < Opts.EmbedList.count(); ++fe)
1307 fschmid 497
                        {
4260 craig 498
                                EmbedList->insertItem(Opts.EmbedList[fe]);
499
                                FontsToEmbed.append(Opts.EmbedList[fe]);
1307 fschmid 500
                        }
5711 subik 501
                }*/
502
/*              if (Opts.SubsetList.count() != 0)
1307 fschmid 503
                {
4260 craig 504
                        for (uint fe = 0; fe < Opts.SubsetList.count(); ++fe)
1307 fschmid 505
                        {
4260 craig 506
                                SubsetList->insertItem(Opts.SubsetList[fe]);
507
                                FontsToSubset.append(Opts.SubsetList[fe]);
1307 fschmid 508
                        }
5711 subik 509
                }*/
1307 fschmid 510
                GroupFontLayout->addLayout( Layout6 );
511
                tabLayout_3->addWidget( GroupFont );
512
                insertTab( tabFonts, tr( "&Fonts" ) );
513
                tabPresentation = new QWidget( this, "tabPresentation" );
514
                tabLayout_5 = new QGridLayout( tabPresentation );
515
                tabLayout_5->setSpacing( 5 );
516
                tabLayout_5->setMargin( 11 );
517
                CheckBox10 = new QCheckBox( tr( "Enable &Presentation Effects" ), tabPresentation, "CheckBox10" );
5711 subik 518
//              CheckBox10->setChecked(Opts.PresentMode);
1307 fschmid 519
                tabLayout_5->addMultiCellWidget( CheckBox10, 0, 0, 0, 1 );
520
                Pages = new QListBox( tabPresentation, "Pages" );
521
                Pages->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, Pages->sizePolicy().hasHeightForWidth() ) );
5711 subik 522
/*              QString tmp;
1307 fschmid 523
                struct PDFPresentationData ef;
524
                if (EffVal.count() != 0)
525
                {
5880 jghali 526
                        for (uint pg2 = 0; pg2 < doc->Pages->count(); ++pg2)
1307 fschmid 527
                        {
528
                                Pages->insertItem( tr("Page")+" "+tmp.setNum(pg2+1));
529
                                if (EffVal.count()-1 < pg2)
530
                                {
531
                                        ef.pageEffectDuration = 1;
532
                                        ef.pageViewDuration = 1;
533
                                        ef.effectType = 0;
534
                                        ef.Dm = 0;
535
                                        ef.M = 0;
536
                                        ef.Di = 0;
537
                                        EffVal.append(ef);
538
                                }
539
                        }
540
                }
541
                else
542
                {
5880 jghali 543
                        for (uint pg = 0; pg < doc->Pages->count(); ++pg)
1307 fschmid 544
                        {
545
                                Pages->insertItem( tr("Page")+" "+tmp.setNum(pg+1));
546
                                ef.pageEffectDuration = 1;
547
                                ef.pageViewDuration = 1;
548
                                ef.effectType = 0;
549
                                ef.Dm = 0;
550
                                ef.M = 0;
551
                                ef.Di = 0;
552
                                EffVal.append(ef);
553
                        }
5711 subik 554
                }*/
1307 fschmid 555
                tabLayout_5->addWidget( Pages, 1, 0 );
556
                PagePrev = new QCheckBox( tr( "Show Page Pre&views" ), tabPresentation, "CheckBox10" );
5711 subik 557
//              PagePrev->setChecked(false);
1307 fschmid 558
                tabLayout_5->addWidget( PagePrev, 2, 0 );
559
                Effects = new QGroupBox( tr( "Effects" ), tabPresentation, "Effects" );
560
                Effects->setColumnLayout(0, Qt::Vertical );
561
                Effects->layout()->setSpacing( 0 );
562
                Effects->layout()->setMargin( 0 );
563
                EffectsLayout = new QGridLayout( Effects->layout() );
564
                EffectsLayout->setAlignment( Qt::AlignTop );
565
                EffectsLayout->setSpacing( 5 );
566
                EffectsLayout->setMargin( 11 );
567
                TextLabel1e = new QLabel( tr( "&Display Duration:" ), Effects, "TextLabel1_2" );
568
                EffectsLayout->addWidget( TextLabel1e, 0, 0 );
569
                TextLabel2e = new QLabel( tr( "Effec&t Duration:" ), Effects, "TextLabel2_2" );
570
                EffectsLayout->addWidget( TextLabel2e, 1, 0 );
571
                TextLabel3e = new QLabel( tr( "Effect T&ype:" ), Effects, "TextLabel3_2" );
572
                EffectsLayout->addWidget( TextLabel3e, 2, 0 );
573
                TextLabel4e = new QLabel( tr( "&Moving Lines:" ), Effects, "TextLabel4_2" );
574
                EffectsLayout->addWidget( TextLabel4e, 3, 0 );
575
                TextLabel5e = new QLabel( tr( "F&rom the:" ), Effects, "TextLabel6" );
576
                EffectsLayout->addWidget( TextLabel5e, 4, 0 );
577
                TextLabel6e = new QLabel( tr( "D&irection:" ), Effects, "TextLabel5" );
578
                EffectsLayout->addWidget( TextLabel6e, 5, 0 );
579
                PageTime = new QSpinBox( Effects, "PageTime" );
580
                PageTime->setSuffix( tr( " sec" ) );
581
                PageTime->setMaxValue( 3600 );
4932 fschmid 582
                PageTime->setMinValue( 0 );
5711 subik 583
//              PageTime->setValue(EffVal[0].pageViewDuration);
1307 fschmid 584
                TextLabel1e->setBuddy(PageTime);
585
                EffectsLayout->addWidget( PageTime, 0, 1 );
586
                EffectTime = new QSpinBox( Effects, "EffectTime" );
587
                EffectTime->setSuffix( tr( " sec" ) );
588
                EffectTime->setMaxValue( 3600 );
589
                EffectTime->setMinValue( 1 );
5711 subik 590
//              EffectTime->setValue(EffVal[0].pageEffectDuration);
1307 fschmid 591
                TextLabel2e->setBuddy(EffectTime);
592
                EffectsLayout->addWidget( EffectTime, 1, 1 );
593
                EffectType = new QComboBox( true, Effects, "EffectType" );
594
                QString tmpc[] = { tr("No Effect"), tr("Blinds"), tr("Box"), tr("Dissolve"), tr("Glitter"), tr("Split"), tr("Wipe")};
595
                size_t ar = sizeof(tmpc) / sizeof(*tmpc);
596
                for (uint a = 0; a < ar; ++a)
597
                        EffectType->insertItem(tmpc[a]);
598
                EffectType->setEditable(false);
599
                TextLabel3e->setBuddy(EffectType);
600
                EffectsLayout->addWidget( EffectType, 2, 1 );
601
                EDirection = new QComboBox( true, Effects, "EDirection" );
602
                EDirection->insertItem( tr( "Horizontal" ) );
603
                EDirection->insertItem( tr( "Vertical" ) );
604
                EDirection->setEditable(false);
605
                TextLabel4e->setBuddy(EDirection);
606
                EffectsLayout->addWidget( EDirection, 3, 1 );
607
                EDirection_2 = new QComboBox( true, Effects, "EDirection_2" );
608
                EDirection_2->insertItem( tr( "Inside" ) );
609
                EDirection_2->insertItem( tr( "Outside" ) );
610
                EDirection_2->setEditable(false);
611
                TextLabel5e->setBuddy(EDirection_2);
612
                EffectsLayout->addWidget( EDirection_2, 4, 1 );
613
                EDirection_2_2 = new QComboBox( true, Effects, "EDirection_2_2" );
614
                QString tmp_ed[] = { tr("Left to Right"), tr("Top to Bottom"), tr("Bottom to Top"), tr("Right to Left"),
4197 fschmid 615
                                     tr("Top-left to Bottom-Right")};
1307 fschmid 616
                size_t ar_ed = sizeof(tmp_ed) / sizeof(*tmp_ed);
617
                for (uint a = 0; a < ar_ed; ++a)
618
                        EDirection_2_2->insertItem(tmp_ed[a]);
619
                EDirection_2_2->setEditable(false);
620
                TextLabel6e->setBuddy(EDirection_2_2);
621
                EffectsLayout->addWidget( EDirection_2_2, 5, 1 );
622
                EonAllPg = new QPushButton( tr( "&Apply Effect on all Pages" ), Effects, "Eon" );
623
                EffectsLayout->addMultiCellWidget( EonAllPg, 6, 6, 0, 1 );
624
                tabLayout_5->addMultiCellWidget( Effects, 1, 2, 1, 1 );
625
                insertTab( tabPresentation, tr( "E&xtras" ) );
4197 fschmid 626
 
4260 craig 627
                // XXX Optionen or Opts Changed here
5880 jghali 628
/*              if (doc->currentPageLayout == doublePage)
4256 craig 629
                {
5880 jghali 630
                        if (doc->pageSets[doc->currentPageLayout].FirstPage == 0)
4260 craig 631
                                Opts.PageLayout = PDFOptions::TwoColumnLeft;
4256 craig 632
                        else
4260 craig 633
                                Opts.PageLayout = PDFOptions::TwoColumnRight;
4256 craig 634
                }
4197 fschmid 635
                else
5711 subik 636
                        Opts.PageLayout = PDFOptions::SinglePage;*/
637
/*              if (Opts.PresentMode)
4260 craig 638
                        Opts.displayFullscreen = true;
4256 craig 639
                else
640
                {
4260 craig 641
                        if ((Opts.Version == 15) && (Opts.useLayers))
642
                                Opts.displayLayers = true;
5711 subik 643
                }*/
4256 craig 644
                tabSpecial = new QWidget( this, "tabSpecial" );
645
                tabSpecialLayout = new QVBoxLayout( tabSpecial, 11, 6, "tabSpecialLayout");
646
                groupDisplay = new QGroupBox( tabSpecial, "groupDisplay" );
647
                groupDisplay->setTitle( tr( "Display Settings" ) );
648
                groupDisplay->setColumnLayout(0, Qt::Vertical );
649
                groupDisplay->layout()->setSpacing( 5 );
650
                groupDisplay->layout()->setMargin( 10 );
651
                groupDisplayLayout = new QVBoxLayout( groupDisplay->layout() );
652
                groupDisplayLayout->setAlignment( Qt::AlignTop );
653
                LayoutSpecial = new QHBoxLayout( 0, 0, 5, "LayoutSpecial");
654
                pageLayout = new QButtonGroup( groupDisplay, "pageLayout" );
655
                pageLayout->setTitle( tr( "Page Layout" ) );
656
                pageLayout->setColumnLayout(0, Qt::Vertical );
657
                pageLayout->layout()->setSpacing( 5 );
658
                pageLayout->layout()->setMargin( 10 );
659
                pageLayoutLayout = new QVBoxLayout( pageLayout->layout() );
660
                pageLayoutLayout->setAlignment( Qt::AlignTop );
661
                singlePage = new QRadioButton( pageLayout, "singlePage" );
662
                singlePage->setText( tr( "Single Page" ) );
663
                pageLayoutLayout->addWidget( singlePage );
664
                continuousPages = new QRadioButton( pageLayout, "continuousPages" );
665
                continuousPages->setText( tr( "Continuous" ) );
666
                pageLayoutLayout->addWidget( continuousPages );
667
                doublePageLeft = new QRadioButton( pageLayout, "doublePageLeft" );
668
                doublePageLeft->setText( tr( "Double Page Left" ) );
669
                pageLayoutLayout->addWidget( doublePageLeft );
670
                doublePageRight = new QRadioButton( pageLayout, "doublePageRight" );
671
                doublePageRight->setText( tr( "Double Page Right" ) );
672
                pageLayoutLayout->addWidget( doublePageRight );
673
                LayoutSpecial->addWidget( pageLayout );
674
                groupNavigation = new QButtonGroup( groupDisplay, "groupNavigation" );
6063 fschmid 675
                groupNavigation->setRadioButtonExclusive(true);
4256 craig 676
                groupNavigation->setTitle( tr( "Visual Appearance" ) );
677
                groupNavigation->setColumnLayout(0, Qt::Vertical );
678
                groupNavigation->layout()->setSpacing( 5 );
679
                groupNavigation->layout()->setMargin( 10 );
680
                groupNavigationLayout = new QVBoxLayout( groupNavigation->layout() );
681
                groupNavigationLayout->setAlignment( Qt::AlignTop );
682
                useViewDefault = new QRadioButton( groupNavigation, "useViewDefault" );
5711 subik 683
/*              bool df = true;
4260 craig 684
                if ((Opts.displayBookmarks) || (Opts.displayFullscreen) || (Opts.displayLayers) || (Opts.displayThumbs))
5711 subik 685
                        df = false;*/
686
//              useViewDefault->setChecked(df);
4256 craig 687
                useViewDefault->setText( tr( "Use Viewers Defaults" ) );
688
                groupNavigationLayout->addWidget( useViewDefault );
689
                useFullScreen = new QRadioButton( groupNavigation, "useFullScreen" );
5711 subik 690
//              useFullScreen->setChecked(Opts.displayFullscreen);
4256 craig 691
                useFullScreen->setText( tr( "Use Full Screen Mode" ) );
692
                groupNavigationLayout->addWidget( useFullScreen );
693
                useBookmarks = new QRadioButton( groupNavigation, "useBookmarks" );
694
                useBookmarks->setText( tr( "Display Bookmarks Tab" ) );
5711 subik 695
//              useBookmarks->setChecked(Opts.displayBookmarks);
4256 craig 696
                groupNavigationLayout->addWidget( useBookmarks );
697
                useThumbnails = new QRadioButton( groupNavigation, "useThumbnails" );
698
                useThumbnails->setText( tr( "Display Thumbnails" ) );
5711 subik 699
//              useThumbnails->setChecked(Opts.displayThumbs);
4256 craig 700
                groupNavigationLayout->addWidget( useThumbnails );
701
                useLayers2 = new QRadioButton( groupNavigation, "useLayers" );
702
                useLayers2->setText( tr( "Display Layers Tab" ) );
5711 subik 703
//              useLayers2->setChecked(Opts.displayLayers);
4256 craig 704
                groupNavigationLayout->addWidget( useLayers2 );
705
                hideToolBar = new QCheckBox( tr( "Hide Viewers Toolbar" ), groupNavigation, "hideToolBar" );
5711 subik 706
//              hideToolBar->setChecked(Opts.hideToolBar);
4256 craig 707
                groupNavigationLayout->addWidget( hideToolBar );
708
                hideMenuBar = new QCheckBox( tr( "Hide Viewers Menubar" ), groupNavigation, "hideMenuBar" );
5711 subik 709
//              hideMenuBar->setChecked(Opts.hideMenuBar);
4256 craig 710
                groupNavigationLayout->addWidget( hideMenuBar );
711
                fitWindow = new QCheckBox( tr( "Zoom Pages to fit Viewer Window" ), groupNavigation, "fitWindow" );
5711 subik 712
//              fitWindow->setChecked(Opts.fitWindow);
4256 craig 713
                groupNavigationLayout->addWidget( fitWindow );
6063 fschmid 714
                groupNavigation->setRadioButtonExclusive(true);
4256 craig 715
                LayoutSpecial->addWidget( groupNavigation );
716
                groupDisplayLayout->addLayout( LayoutSpecial );
717
                tabSpecialLayout->addWidget( groupDisplay );
718
                groupJava = new QGroupBox( tabSpecial, "groupJava" );
719
                groupJava->setTitle( tr( "Special Actions" ) );
720
                groupJava->setColumnLayout(0, Qt::Vertical );
721
                groupJava->layout()->setSpacing( 5 );
722
                groupJava->layout()->setMargin( 10 );
723
                groupJavaLayout = new QHBoxLayout( groupJava->layout() );
724
                groupJavaLayout->setAlignment( Qt::AlignTop );
725
                actionLabel = new QLabel( groupJava, "actionLabel" );
4810 mrdocs 726
                actionLabel->setText( tr( "Javascript to be executed\nwhen PDF document is opened:" ) );
4256 craig 727
                groupJavaLayout->addWidget( actionLabel );
728
                actionCombo = new QComboBox( true, groupJava, "actionCombo" );
729
                actionCombo->setEditable(false);
730
                actionCombo->insertItem( tr("No Script"));
5711 subik 731
/*              QMap<QString,QString>::Iterator itja;
5880 jghali 732
                for (itja = doc->JavaScripts.begin(); itja != doc->JavaScripts.end(); ++itja)
4256 craig 733
                        actionCombo->insertItem(itja.key());
5880 jghali 734
                if (doc->JavaScripts.contains(Opts.openAction))
5711 subik 735
                        actionCombo->setCurrentText(Opts.openAction);*/
4256 craig 736
                groupJavaLayout->addWidget( actionCombo );
737
                tabSpecialLayout->addWidget( groupJava );
5711 subik 738
/*              if (Opts.PageLayout == PDFOptions::SinglePage)
4256 craig 739
                        singlePage->setChecked(true);
4260 craig 740
                else if (Opts.PageLayout == PDFOptions::OneColumn)
4256 craig 741
                        continuousPages->setChecked(true);
4260 craig 742
                else if (Opts.PageLayout == PDFOptions::TwoColumnLeft)
4256 craig 743
                        doublePageLeft->setChecked(true);
4260 craig 744
                else if (Opts.PageLayout == PDFOptions::TwoColumnRight)
4256 craig 745
                        doublePageRight->setChecked(true);
4260 craig 746
                if (Opts.Version == 15)
4256 craig 747
                        useLayers2->setEnabled(true);
748
                else
5711 subik 749
                        useLayers2->setEnabled(false);*/
4256 craig 750
                insertTab( tabSpecial, tr("Viewer") );
1307 fschmid 751
        }
4197 fschmid 752
 
4256 craig 753
 
1307 fschmid 754
        tabSecurity = new QWidget( this, "tabSecurity" );
755
        tabSecurityLayout = new QVBoxLayout( tabSecurity, 11, 5, "tabSecurityLayout");
756
        Encry = new QCheckBox( tr( "&Use Encryption" ), tabSecurity, "Enc" );
5711 subik 757
//      Encry->setChecked( Opts.Encrypt );
1307 fschmid 758
        tabSecurityLayout->addWidget( Encry );
759
        GroupPass = new QGroupBox( tr( "Passwords" ), tabSecurity, "GroupPass" );
760
        GroupPass->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)1, 0, 0,
761
                                               GroupPass->sizePolicy().hasHeightForWidth() ) );
762
        GroupPass->setColumnLayout(0, Qt::Vertical );
763
        GroupPass->layout()->setSpacing( 5 );
764
        GroupPass->layout()->setMargin( 10 );
765
        GroupPassLayout = new QGridLayout( GroupPass->layout() );
766
        GroupPassLayout->setAlignment( Qt::AlignTop );
767
        TextSec2 = new QLabel( tr( "&User:" ), GroupPass, "TextSec2" );
768
        GroupPassLayout->addWidget( TextSec2, 1, 0 );
769
        TextSec1 = new QLabel( tr( "&Owner:" ), GroupPass, "TextSec1" );
770
        GroupPassLayout->addWidget( TextSec1, 0, 0 );
771
        PassOwner = new QLineEdit( GroupPass, "PassOwner" );
772
        PassOwner->setEchoMode( QLineEdit::Password );
5711 subik 773
//      PassOwner->setText(Opts.PassOwner);
1307 fschmid 774
        TextSec1->setBuddy(PassOwner);
775
        GroupPassLayout->addWidget( PassOwner, 0, 1 );
776
        PassUser = new QLineEdit( GroupPass, "PassUser" );
777
        PassUser->setEchoMode( QLineEdit::Password );
5711 subik 778
//      PassUser->setText(Opts.PassUser);
1307 fschmid 779
        TextSec2->setBuddy(PassUser);
780
        GroupPassLayout->addWidget( PassUser, 1, 1 );
781
        tabSecurityLayout->addWidget( GroupPass );
782
 
783
        GroupSecSet = new QGroupBox( tr( "Settings" ), tabSecurity, "GroupSecSet" );
784
        GroupSecSet->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0,
785
                                    GroupSecSet->sizePolicy().hasHeightForWidth() ) );
786
        GroupSecSet->setColumnLayout(0, Qt::Vertical );
787
        GroupSecSet->layout()->setSpacing( 5 );
788
        GroupSecSet->layout()->setMargin( 10 );
789
        GroupSecSetLayout = new QVBoxLayout( GroupSecSet->layout() );
790
        GroupSecSetLayout->setAlignment( Qt::AlignTop );
791
        PrintSec = new QCheckBox( tr( "Allow &Printing the Document" ), GroupSecSet, "PrintSec" );
5711 subik 792
//      PrintSec->setChecked( Opts.Permissions & 4 );
1307 fschmid 793
        GroupSecSetLayout->addWidget( PrintSec );
794
        ModifySec = new QCheckBox( tr( "Allow &Changing the Document" ), GroupSecSet, "ModifySec" );
5711 subik 795
//      ModifySec->setChecked( Opts.Permissions & 8 );
1307 fschmid 796
        GroupSecSetLayout->addWidget( ModifySec );
797
        CopySec = new QCheckBox( tr( "Allow Cop&ying Text and Graphics" ), GroupSecSet, "CopySec" );
5711 subik 798
//      CopySec->setChecked( Opts.Permissions & 16 );
1307 fschmid 799
        GroupSecSetLayout->addWidget( CopySec );
800
        AddSec = new QCheckBox( tr( "Allow Adding &Annotations and Fields" ), GroupSecSet, "AddSec" );
5711 subik 801
//      AddSec->setChecked( Opts.Permissions & 32 );
1307 fschmid 802
        GroupSecSetLayout->addWidget( AddSec );
803
        tabSecurityLayout->addWidget( GroupSecSet );
5711 subik 804
/*      if (!Encry->isChecked())
1307 fschmid 805
        {
806
                GroupSecSet->setEnabled(false);
807
                GroupPass->setEnabled(false);
5711 subik 808
        }*/
1307 fschmid 809
        insertTab( tabSecurity, tr( "S&ecurity" ) );
810
 
811
        tabColor = new QWidget( this, "tabColor" );
812
        tabColorLayout = new QVBoxLayout( tabColor, 11, 5, "tabColorLayout");
813
        ColorGroup = new QGroupBox( tr( "General" ), tabColor, "ColorGroup" );
814
        ColorGroup->setColumnLayout(0, Qt::Vertical );
815
        ColorGroup->layout()->setSpacing( 5 );
816
        ColorGroup->layout()->setMargin( 10 );
817
        ColorGroupLayout = new QHBoxLayout( ColorGroup->layout() );
818
        ColorGroupLayout->setAlignment( Qt::AlignTop );
819
        ColorText1 = new QLabel( tr( "Output &Intended For:" ), ColorGroup, "ColorText1" );
820
        ColorGroupLayout->addWidget( ColorText1 );
821
        OutCombo = new QComboBox( true, ColorGroup, "OutCombo" );
822
        OutCombo->insertItem( tr( "Screen / Web" ) );
823
        OutCombo->insertItem( tr( "Printer" ) );
1476 fschmid 824
        OutCombo->insertItem( tr( "Grayscale" ) );
1307 fschmid 825
        OutCombo->setEditable(false);
5711 subik 826
/*      if (Opts.UseRGB)
1476 fschmid 827
                OutCombo->setCurrentItem(0);
828
        else
829
        {
4260 craig 830
                if (Opts.isGrayscale)
1476 fschmid 831
                        OutCombo->setCurrentItem(2);
832
                else
833
                        OutCombo->setCurrentItem(1);
5711 subik 834
        }*/
1307 fschmid 835
        ColorText1->setBuddy(OutCombo);
836
        ColorGroupLayout->addWidget( OutCombo );
837
        tabColorLayout->addWidget( ColorGroup );
838
 
3079 fschmid 839
        useSpot = new QCheckBox( tr( "Convert Spot Colors to Process Colors" ), tabColor, "useSpot" );
5711 subik 840
//      useSpot->setChecked(!Opts.UseSpotColors);
3079 fschmid 841
        tabColorLayout->addWidget( useSpot );
842
 
5320 fschmid 843
        overprintMode = new QCheckBox( tr( "Force Overprint Mode" ), tabColor, "overprintMode" );
5711 subik 844
//      overprintMode->setChecked(Opts.doOverprint);
5320 fschmid 845
        tabColorLayout->addWidget( overprintMode );
846
 
1307 fschmid 847
        UseLPI = new QCheckBox( tr( "&Use Custom Rendering Settings" ), tabColor, "UseLPI" );
5711 subik 848
//      UseLPI->setChecked(Opts.UseLPI);
1307 fschmid 849
        tabColorLayout->addWidget( UseLPI );
850
        LPIgroup = new QGroupBox( tr( "Rendering Settings" ), tabColor, "LPIgroup" );
851
        LPIgroup->setColumnLayout(0, Qt::Vertical );
852
        LPIgroup->layout()->setSpacing( 5 );
853
        LPIgroup->layout()->setMargin( 10 );
854
        LPIgroupLayout = new QGridLayout( LPIgroup->layout() );
855
        LPIgroupLayout->setAlignment( Qt::AlignTop );
856
        LPIcolor = new QComboBox( true, LPIgroup, "LPIcolor" );
857
        LPIcolor->setEditable(false);
5711 subik 858
/*      QMap<QString,LPIData>::Iterator itlp;
4260 craig 859
        for (itlp = Opts.LPISettings.begin(); itlp != Opts.LPISettings.end(); ++itlp)
1307 fschmid 860
        {
861
                LPIcolor->insertItem( itlp.key() );
862
        }
5711 subik 863
        LPIcolor->setCurrentItem(0);*/
1307 fschmid 864
        LPIgroupLayout->addWidget( LPIcolor, 0, 0 );
865
        textLPI1 = new QLabel( tr( "Fre&quency:" ), LPIgroup, "textLPI1" );
866
        LPIgroupLayout->addWidget( textLPI1, 0, 1 );
867
        LPIfreq = new QSpinBox( LPIgroup, "LPIfreq" );
868
        LPIfreq->setMinValue(10);
869
        LPIfreq->setMaxValue(1000);
5711 subik 870
//      LPIfreq->setValue(Opts.LPISettings[LPIcolor->currentText()].Frequency);
1307 fschmid 871
        textLPI1->setBuddy(LPIfreq);
872
        LPIgroupLayout->addWidget( LPIfreq, 0, 2 );
873
        textLPI2 = new QLabel( tr( "&Angle:" ), LPIgroup, "textLPI2" );
874
        LPIgroupLayout->addWidget( textLPI2, 1, 1 );
875
        LPIangle = new QSpinBox( LPIgroup, "LPIangle" );
876
        LPIangle->setSuffix( QString::fromUtf8(" °"));
877
        LPIangle->setMinValue(-180);
878
        LPIangle->setMaxValue(180);
5711 subik 879
//      LPIangle->setValue(Opts.LPISettings[LPIcolor->currentText()].Angle);
1307 fschmid 880
        textLPI2->setBuddy(LPIangle);
881
        LPIgroupLayout->addWidget( LPIangle, 1, 2 );
882
        textLPI3 = new QLabel( tr( "S&pot Function:" ), LPIgroup, "textLPI3" );
883
        LPIgroupLayout->addWidget( textLPI3, 2, 1 );
884
        LPIfunc = new QComboBox( true, LPIgroup, "LPIfunc" );
885
        LPIfunc->setEditable(false);
886
        LPIfunc->insertItem( tr( "Simple Dot" ) );
887
        LPIfunc->insertItem( tr( "Line" ) );
888
        LPIfunc->insertItem( tr( "Round" ) );
889
        LPIfunc->insertItem( tr( "Ellipse" ) );
5711 subik 890
//      LPIfunc->setCurrentItem(Opts.LPISettings[LPIcolor->currentText()].SpotFunc);
1307 fschmid 891
        textLPI3->setBuddy(LPIfunc);
892
        LPIgroupLayout->addWidget( LPIfunc, 2, 2 );
893
        tabColorLayout->addWidget( LPIgroup );
894
        SelLPIcolor = LPIcolor->currentText();
895
 
896
        GroupBox9 = new QGroupBox( tr( "Solid Colors:" ), tabColor, "GroupBox9" );
897
        GroupBox9->setColumnLayout(0, Qt::Vertical );
898
        GroupBox9->layout()->setSpacing( 5 );
899
        GroupBox9->layout()->setMargin( 10 );
900
        GroupBox9Layout = new QGridLayout( GroupBox9->layout() );
901
        GroupBox9Layout->setAlignment( Qt::AlignTop );
902
        EmbedProfs = new QCheckBox( GroupBox9, "EmbedProfs" );
903
        EmbedProfs->setText( tr( "Use ICC Profile" ) );
5711 subik 904
//      EmbedProfs->setChecked(Opts.UseProfiles);
1307 fschmid 905
        GroupBox9Layout->addMultiCellWidget( EmbedProfs, 0, 0, 0, 1 );
906
        ProfsTxt1 = new QLabel(GroupBox9, "ProfsTxt1");
907
        ProfsTxt1->setText( tr( "Profile:" ) );
908
        GroupBox9Layout->addWidget( ProfsTxt1, 1, 0 );
909
        ProfsTxt2 = new QLabel( GroupBox9, "ProfsTxt2_2" );
910
        ProfsTxt2->setText( tr( "Rendering-Intent:" ) );
911
        GroupBox9Layout->addWidget( ProfsTxt2, 1, 1 );
912
        SolidPr = new QComboBox(true, GroupBox9, "SolidPr" );
913
        SolidPr->setEditable(false);
914
        GroupBox9Layout->addWidget( SolidPr, 2, 0 );
915
        IntendS = new QComboBox( true, GroupBox9, "IntendS" );
916
        QString tmp_ip[] = { tr("Perceptual"), tr("Relative Colorimetric"), tr("Saturation"), tr("Absolute Colorimetric")};
917
        size_t ar_ip = sizeof(tmp_ip) / sizeof(*tmp_ip);
918
        for (uint a = 0; a < ar_ip; ++a)
919
                IntendS->insertItem(tmp_ip[a]);
920
        IntendS->setEditable(false);
921
        GroupBox9Layout->addWidget( IntendS, 2, 1 );
922
        tabColorLayout->addWidget( GroupBox9 );
923
        ProfsGroup = new QGroupBox( tr( "Images:" ), tabColor, "ProfsGroup" );
924
        ProfsGroup->setColumnLayout(0, Qt::Vertical );
925
        ProfsGroup->layout()->setSpacing( 5 );
926
        ProfsGroup->layout()->setMargin( 10 );
927
        ProfsGroupLayout = new QGridLayout( ProfsGroup->layout() );
928
        ProfsGroupLayout->setAlignment( Qt::AlignTop );
929
        EmbedProfs2 = new QCheckBox( tr( "Use ICC Profile" ), ProfsGroup, "EmbedProfs" );
5711 subik 930
//      EmbedProfs2->setChecked(Opts.UseProfiles2);
1307 fschmid 931
        ProfsGroupLayout->addMultiCellWidget( EmbedProfs2, 0, 0, 0, 1 );
932
        NoEmbedded = new QCheckBox( ProfsGroup, "NoEmbedded" );
933
        NoEmbedded->setText( tr( "Don't use embedded ICC profiles" ) );
5711 subik 934
//      NoEmbedded->setChecked(Opts.EmbeddedI);
1307 fschmid 935
        ProfsGroupLayout->addMultiCellWidget( NoEmbedded, 1, 1, 0, 1 );
936
        ProfsTxt3 = new QLabel( ProfsGroup, "ProfsTxt3" );
937
        ProfsTxt3->setText( tr( "Profile:" ) );
938
        ProfsGroupLayout->addWidget( ProfsTxt3, 2, 0 );
939
        ProfsTxt4 = new QLabel( ProfsGroup, "ProfsTxt2_2" );
940
        ProfsTxt4->setText( tr( "Rendering-Intent:" ) );
941
        ProfsGroupLayout->addWidget( ProfsTxt4, 2, 1 );
942
        ImageP = new QComboBox( true, ProfsGroup, "ImageP" );
943
        ImageP->setEditable(false);
944
        ProfsGroupLayout->addWidget( ImageP, 3, 0 );
945
        IntendI = new QComboBox( true, ProfsGroup, "IntendS" );
946
        for (uint a = 0; a < ar_ip; ++a)
947
                IntendI->insertItem(tmp_ip[a]);
948
        IntendI->setEditable(false);
949
        ProfsGroupLayout->addWidget( IntendI, 3, 1 );
950
        tabColorLayout->addWidget( ProfsGroup );
951
 
952
        QSpacerItem* spacerCG = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding );
953
        tabColorLayout->addItem( spacerCG );
954
        insertTab( tabColor, tr( "C&olor" ) );
955
 
956
        tabPDFX = new QWidget( this, "tabPDFX" );
957
        tabPDFXLayout = new QVBoxLayout( tabPDFX, 11, 5, "tabPDFXLayout");
958
        X3Group = new QGroupBox( tabPDFX, "X3Group" );
959
        X3Group->setTitle( tr( "PDF/X-3 Output Intent" ) );
960
        X3Group->setColumnLayout(0, Qt::Vertical );
961
        X3Group->layout()->setSpacing( 5 );
962
        X3Group->layout()->setMargin( 10 );
963
        X3GroupLayout = new QGridLayout( X3Group->layout() );
964
        X3GroupLayout->setAlignment( Qt::AlignTop );
965
        PrintProfC = new QComboBox( true, X3Group, "PrintProfC" );
966
        PrintProfC->setEditable(false);
967
        X3GroupLayout->addWidget( PrintProfC, 0, 1 );
968
        InfoString = new QLineEdit( X3Group, "InfoString" );
5711 subik 969
//      InfoString->setText(Opts.Info);
1307 fschmid 970
        X3GroupLayout->addWidget( InfoString, 1, 1 );
971
        PDFX2 = new QLabel( InfoString, tr( "&Info String:" ), X3Group, "PDFX2" );
972
        X3GroupLayout->addWidget( PDFX2, 1, 0 );
973
        PDFX1 = new QLabel( PrintProfC, tr( "Output &Profile:" ), X3Group, "PDFX1" );
974
        X3GroupLayout->addWidget( PDFX1, 0, 0 );
975
        tabPDFXLayout->addWidget( X3Group );
976
        BleedGroup = new QGroupBox( tabPDFX, "BleedGroup" );
977
        BleedGroup->setTitle( tr( "Trim Box" ) );
978
        BleedGroup->setColumnLayout(0, Qt::Vertical );
979
        BleedGroup->layout()->setSpacing( 5 );
980
        BleedGroup->layout()->setMargin( 11 );
981
        BleedGroupLayout = new QGridLayout( BleedGroup->layout() );
982
        BleedGroupLayout->setAlignment( Qt::AlignTop );
983
        BleedIcon = new QLabel( BleedGroup, "BleedIcon" );
984
        BleedIcon->setMinimumSize( QSize( 74, 84 ) );
985
        BleedIcon->setMaximumSize( QSize( 74, 84 ) );
986
        BleedIcon->setFrameShape( QLabel::Panel );
987
        BleedIcon->setFrameShadow( QLabel::Sunken );
988
        BleedIcon->setScaledContents( false );
989
        BleedIcon->setAlignment( static_cast<int>( QLabel::AlignCenter ) );
990
        BleedGroupLayout->addWidget( BleedIcon, 1, 2 );
1792 cbradney 991
        BleedTop = new MSpinBox( BleedGroup, precision );
1307 fschmid 992
        BleedGroupLayout->addWidget( BleedTop, 0, 2 );
1792 cbradney 993
        BleedBottom = new MSpinBox( BleedGroup, precision );
1307 fschmid 994
        BleedGroupLayout->addWidget( BleedBottom, 2, 2 );
1792 cbradney 995
        BleedRight = new MSpinBox( BleedGroup, precision );
1307 fschmid 996
        BleedGroupLayout->addWidget( BleedRight, 1, 3 );
1792 cbradney 997
        BleedLeft = new MSpinBox( BleedGroup, precision );
1307 fschmid 998
        BleedGroupLayout->addWidget( BleedLeft, 1, 1 );
999
        QSpacerItem* spacerPX = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
1000
        BleedGroupLayout->addItem( spacerPX, 1, 0 );
1001
        QSpacerItem* spacerPX2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
1002
        BleedGroupLayout->addItem( spacerPX2, 1, 4 );
1003
        tabPDFXLayout->addWidget( BleedGroup );
1004
        insertTab( tabPDFX, tr( "PDF/X-&3" ) );
1005
        BleedTop->setSuffix( unit );
1006
        BleedTop->setMinValue(0);
1792 cbradney 1007
        BleedTop->setMaxValue(PageH*unitRatio);
5711 subik 1008
//      BleedTop->setValue(Opts.BleedTop*unitRatio);
1307 fschmid 1009
        BleedBottom->setSuffix( unit );
1010
        BleedBottom->setMinValue(0);
1792 cbradney 1011
        BleedBottom->setMaxValue(PageH*unitRatio);
5711 subik 1012
//      BleedBottom->setValue(Opts.BleedBottom*unitRatio);
1307 fschmid 1013
        BleedRight->setSuffix( unit );
1014
        BleedRight->setMinValue(0);
1792 cbradney 1015
        BleedRight->setMaxValue(PageB*unitRatio);
5711 subik 1016
//      BleedRight->setValue(Opts.BleedRight*unitRatio);
1307 fschmid 1017
        BleedLeft->setSuffix( unit );
1018
        BleedLeft->setMinValue(0);
1792 cbradney 1019
        BleedLeft->setMaxValue(PageB*unitRatio);
5711 subik 1020
 
5770 jghali 1021
        restoreDefaults(Optionen, AllFonts, PDFXProfiles, DocFonts,
5880 jghali 1022
                                        Eff, unitIndex, PageH, PageB, doc, pdfExport);
5711 subik 1023
 
5881 jghali 1024
        if (doc != 0 && exporting)
1307 fschmid 1025
        {
1026
                connect(EmbedFonts, SIGNAL(clicked()), this, SLOT(EmbedAll()));
1027
                connect(AvailFlist, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelAFont(QListBoxItem*)));
1028
                connect(EmbedList, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelEFont(QListBoxItem*)));
1029
                connect(ToEmbed, SIGNAL(clicked()), this, SLOT(PutToEmbed()));
1030
                connect(FromEmbed, SIGNAL(clicked()), this, SLOT(RemoveEmbed()));
1031
                connect(SubsetFonts, SIGNAL(clicked()), this, SLOT(SubsetAll()));
1032
                connect(SubsetList, SIGNAL(clicked(QListBoxItem*)), this, SLOT(SelSFont(QListBoxItem*)));
1033
                connect(ToSubset, SIGNAL(clicked()), this, SLOT(PutToSubset()));
1034
                connect(FromSubset, SIGNAL(clicked()), this, SLOT(RemoveSubset()));
1035
                connect(PagePrev, SIGNAL(clicked()), this, SLOT(PagePr()));
1036
                connect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
1037
                connect(EffectType, SIGNAL(activated(int)), this, SLOT(SetEffOpts(int)));
1038
                connect(EDirection_2_2, SIGNAL(activated(int)), this, SLOT(ValidDI(int)));
1039
                connect(CheckBox10, SIGNAL(clicked()), this, SLOT(DoEffects()));
1040
                connect(EonAllPg, SIGNAL(clicked()), this, SLOT(EffectOnAll()));
3388 fschmid 1041
                connect(InfoString, SIGNAL(textChanged(const QString &)), this, SLOT(checkInfo()));
1042
                connect(InfoString, SIGNAL(returnPressed()), this, SLOT(checkInfo()));
1043
                connect(InfoString, SIGNAL(lostFocus()), this, SLOT(checkInfo()));
3849 subik 1044
                QToolTip::add( EmbedFonts, "<qt>" + tr( "Embed fonts into the PDF. Embedding the fonts will preserve the layout and appearance of your document." ) + "</qt>");
4824 mrdocs 1045
                QToolTip::add( CheckBox10, "<qt>" + tr( "Enables presentation effects when using Adobe&#174; Reader&#174; and other PDF viewers which support this in full screen mode." ) + "</qt>");
3849 subik 1046
                QToolTip::add( PagePrev, "<qt>" + tr( "Show page previews of each page listed above." ) + "</qt>");
4964 cbradney 1047
                QToolTip::add( PageTime, "<qt>" + tr( "Length of time the page is shown before the presentation starts on the selected page. Setting 0 will disable automatic page transition." ) + "</qt>" );
3849 subik 1048
                QToolTip::add( EffectTime, "<qt>" + tr( "Length of time the effect runs. A shorter time will speed up the effect, a longer one will slow it down." ) + "</qt>" );
1049
                QToolTip::add( EffectType, "<qt>" + tr( "Type of the display effect." ) + "</qt>" );
1050
                QToolTip::add( EDirection, "<qt>" + tr( "Direction of the effect of moving lines for the split and blind effects." ) + "</qt>" );
1051
                QToolTip::add( EDirection_2, "<qt>" + tr( "Starting position for the box and split effects." ) + "</qt>" );
1052
                QToolTip::add( EDirection_2_2, "<qt>" + tr( "Direction of the glitter or wipe effects." ) + "</qt>" );
1053
                QToolTip::add( EonAllPg, "<qt>" + tr( "Apply the selected effect to all pages." ) + "</qt>" );
1307 fschmid 1054
        }
1055
        connect(AllPages, SIGNAL(toggled(bool)), this, SLOT(SelRange(bool)));
6657 cbradney 1056
        connect(pageNrButton, SIGNAL(clicked()), this, SLOT(createPageNumberRange()));
1307 fschmid 1057
        connect(DSColor, SIGNAL(clicked()), this, SLOT(DoDownsample()));
1058
        connect(MirrorH, SIGNAL(clicked()), this, SLOT(PDFMirror()));
1059
        connect(MirrorV, SIGNAL(clicked()), this, SLOT(PDFMirror()));
1060
        connect(RotateDeg, SIGNAL(activated(int)), this, SLOT(Rotation(int)));
1061
        connect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
1062
        connect(EmbedProfs, SIGNAL(clicked()), this, SLOT(EnablePG()));
1063
        connect(EmbedProfs2, SIGNAL(clicked()), this, SLOT(EnablePGI()));
1064
        connect(NoEmbedded, SIGNAL(clicked()), this, SLOT(EnablePGI2()));
1973 craig 1065
        connect(PDFVersionCombo, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
1307 fschmid 1066
        connect(BleedTop, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
1067
        connect(BleedBottom, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
1068
        connect(BleedLeft, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
1069
        connect(BleedRight, SIGNAL(valueChanged(int)), this, SLOT(BleedChanged()));
1070
        connect(Encry, SIGNAL(clicked()), this, SLOT(ToggleEncr()));
1071
        connect(UseLPI, SIGNAL(clicked()), this, SLOT(EnableLPI2()));
1072
        connect(LPIcolor, SIGNAL(activated(int)), this, SLOT(SelLPIcol(int)));
1073
        //tooltips
3849 subik 1074
        QToolTip::add( AllPages, "<qt>" + tr( "Export all pages to PDF" ) + "</qt>" );
1075
        QToolTip::add( OnlySome, "<qt>" + tr( "Export a range of pages to PDF" ) );
1076
        QToolTip::add( PageNr, "<qt>" + tr( "Insert a comma separated list of tokens where "
4197 fschmid 1077
                                                    "a token can be * for all the pages, 1-5 for "
1078
                                                    "a range of pages or a single page number.") + "</qt>" );
1307 fschmid 1079
 
5839 cbradney 1080
        QToolTip::add( PDFVersionCombo, "<qt>" + tr( "Determines the PDF compatibility.<br/>The default is <b>PDF 1.3</b> which gives the widest compatibility.<br/>Choose <b>PDF 1.4</b> if your file uses features such as transparency or you require 128 bit encryption.<br/><b>PDF 1.5</b> is necessary when you wish to preserve objects in separate layers within the PDF.<br/><b>PDF/X-3</b> 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>");
3849 subik 1081
        QToolTip::add( ComboBind, "<qt>" + tr( "Determines the binding of pages in the PDF. Unless you know you need to change it leave the default choice - Left." ) + "</qt>" );
1082
        QToolTip::add( CheckBox1, "<qt>" + tr( "Generates thumbnails of each page in the PDF. Some viewers can use the thumbnails for navigation." ) + "</qt>" );
1083
        QToolTip::add( Article, "<qt>" + tr( "Generate PDF Articles, which is useful for navigating linked articles in a PDF." ) + "</qt>" );
4810 mrdocs 1084
        QToolTip::add( useLayers, "<qt>" + tr( "Layers in your document are exported to the PDF Only available if PDF 1.5 is chosen." ) + "</qt>" );
3849 subik 1085
        QToolTip::add( CheckBM, "<qt>" + tr( "Embed the bookmarks you created in your document. These are useful for navigating long PDF documents." ) + "</qt>" );
1086
        QToolTip::add( Resolution, "<qt>" + tr( "Export resolution of text and vector graphics. This does not affect the resolution of bitmap images like photos." ) + "</qt>" );
1087
        QToolTip::add( Compression, "<qt>" + tr( "Enables lossless compression of text and graphics. Unless you have a reason, leave this checked. This reduces PDF file size." ) + "</qt>" );
4824 mrdocs 1088
        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. This only affects JPEG images" ) + "</qt>");
3671 craig 1089
        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>");
4824 mrdocs 1090
        QToolTip::add( DSColor, "<qt>" + tr( "Re-sample your bitmap images to the selected DPI. Leaving this unchecked will render them at their native resolution. Enabling this will increase memory usage and slow down export." ) + "</qt>" );
3849 subik 1091
        QToolTip::add( ValC, "<qt>" + tr( "DPI (Dots Per Inch) for image export.") + "</qt>" );
1092
        QToolTip::add( Encry, "<qt>" + tr( "Enable the security features in your exported PDF. If you selected PDF 1.3, the PDF will be protected by 40 bit encryption. If you selected PDF 1.4, the PDF will be protected by 128 bit encryption. Disclaimer: PDF encryption is not as reliable as GPG or PGP encryption and does have some limitations." ) + "</qt>" );
1093
        QToolTip::add( PassOwner, "<qt>" + tr( "Choose a master password which enables or disables all the security features in your exported PDF" ) + "</qt>" );
1094
        QToolTip::add( PassUser, "<qt>" + tr( "Choose a password for users to be able to read your PDF." ) + "</qt>" );
1095
        QToolTip::add( PrintSec, "<qt>" + tr( "Allow printing of the PDF. If un-checked, printing is prevented. " ) + "</qt>" );
1096
        QToolTip::add( ModifySec, "<qt>" + tr( "Allow modifying of the PDF. If un-checked, modifying the PDF is prevented." ) + "</qt>" );
3798 cbradney 1097
        QToolTip::add( CopySec, "<qt>" + tr( "Allow copying of text or graphics from the PDF. If unchecked, text and graphics cannot be copied." ) + "</qt>" );
1098
        QToolTip::add( AddSec, "<qt>" + tr( "Allow adding annotations and fields to the PDF. If unchecked, editing annotations and fields is prevented." ) + "</qt>" );
4810 mrdocs 1099
        QToolTip::add( OutCombo, "<qt>" + tr( "Color model for the output of your PDF. Choose Screen/Web for PDFs which are used for screen display and for printing on typical inkjets. Choose Printer when printing to a true 4 color CMYK printer. Choose Grayscale when you want a grey scale PDF." ) + "</qt>" );
3849 subik 1100
        QToolTip::add( UseLPI, "<qt>" + tr( "This is an advanced setting which is not enabled by default. This should only be enabled when specifically requested by your printer and they have given you the exact details needed. Otherwise, your exported PDF may not print properly and is truly not portable across systems." ) + "</qt>" );
1101
        QToolTip::add( EmbedProfs, "<qt>" + tr( "Embed a color profile for solid colors" ) + "</qt>" );
1102
        QToolTip::add( SolidPr, "<qt>" + tr( "Color profile for solid colors" ) + "</qt>" );
1103
        QToolTip::add( IntendS, "<qt>" + tr( "Rendering intent for solid colors" ) + "</qt>" );
1104
        QToolTip::add( EmbedProfs2, "<qt>" + tr( "Embed a color profile for images" ) + "</qt>" );
1105
        QToolTip::add( NoEmbedded, "<qt>" + tr( "Do not use color profiles that are embedded in source images" ) + "</qt>" );
1106
        QToolTip::add( ImageP, "<qt>" + tr( "Color profile for images" ) + "</qt>" );
1107
        QToolTip::add( IntendI, "<qt>" + tr( "Rendering intent for images" ) + "</qt>" );
1108
        QToolTip::add( PrintProfC, "<qt>" + tr( "Output profile for printing. If possible, get some guidance from your printer on profile selection." ) + "</qt>" );
1109
        QToolTip::add( InfoString, "<qt>" + tr( "Mandatory string for PDF/X-3 or the PDF will fail PDF/X-3 conformance. We recommend you use the title of the document." ) + "</qt>" );
1110
        QToolTip::add( BleedTop, "<qt>" + tr( "Distance for bleed from the top of the physical page" ) + "</qt>" );
1111
        QToolTip::add( BleedBottom, "<qt>" + tr( "Distance for bleed from the bottom of the physical page" ) + "</qt>" );
1112
        QToolTip::add( BleedLeft, "<qt>" + tr( "Distance for bleed from the left of the physical page" ) + "</qt>" );
1113
        QToolTip::add( BleedRight, "<qt>" + tr( "Distance for bleed from the right of the physical page" )  + "</qt>");
1114
        QToolTip::add( MirrorH, "<qt>" + tr( "Mirror Page(s) horizontally" ) + "</qt>" );
1115
        QToolTip::add( MirrorV, "<qt>" + tr( "Mirror Page(s) vertically" ) + "</qt>" );
5320 fschmid 1116
        QToolTip::add(overprintMode, "<qt>"+ tr("Enables global Overprint Mode for this document, overrides object settings") + "<qt>");
4197 fschmid 1117
        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>");
4836 cbradney 1118
        QToolTip::add( ClipMarg, "<qt>" + tr( "Do not show objects outside the margins in the exported file" ) + "</qt>" );
1307 fschmid 1119
}
1120
 
5553 subik 1121
void TabPDFOptions::restoreDefaults(PDFOptions & Optionen,
1122
                                                                        const SCFonts &AllFonts,
1123
                                                                        const ProfilesL & PDFXProfiles,
1124
                                                                        const QMap<QString, int> & DocFonts,
1125
                                                                        const QValueList<PDFPresentationData> & Eff,
1126
                                                                        int unitIndex, double PageH, double PageB,
5881 jghali 1127
                                                                        ScribusDoc * mdoc, bool exporting)
5553 subik 1128
{
1129
        AllPages->setChecked( true );
1130
        PageNr->setEnabled(false);
6657 cbradney 1131
        pageNrButton->setEnabled(false);
5553 subik 1132
        RotateDeg->setCurrentItem(Opts.RotateDeg / 90);
1133
        MirrorH->setOn(Opts.MirrorH);
1134
        MirrorV->setOn(Opts.MirrorV);
1135
        ClipMarg->setChecked(Opts.doClip);
5880 jghali 1136
        bool cmsUse = mdoc ? (ScCore->haveCMS() && mdoc->HasCMS) : false;
1137
        if (cmsUse)
5553 subik 1138
        {
1139
                if (Opts.Version == PDFOptions::PDFVersion_X3)
1140
                        PDFVersionCombo->setCurrentItem(3);
1141
        }
1142
        else
1143
                PDFVersionCombo->setCurrentItem(0);
1144
        if (Opts.Version == PDFOptions::PDFVersion_13)
1145
                PDFVersionCombo->setCurrentItem(0);
1146
        if (Opts.Version == PDFOptions::PDFVersion_14)
1147
                PDFVersionCombo->setCurrentItem(1);
1148
        if (Opts.Version == PDFOptions::PDFVersion_15)
1149
                PDFVersionCombo->setCurrentItem(2);
1150
        ComboBind->setCurrentItem(Opts.Binding);
1151
        CheckBox1->setChecked(Opts.Thumbnails);
1152
        Article->setChecked(Opts.Articles);
1153
        CheckBM->setChecked(Opts.Bookmarks);
1154
        useLayers->setChecked(Opts.useLayers);
1155
        if (Opts.Version == 15)
1156
                useLayers->setEnabled(true);
1157
        else
1158
                useLayers->setEnabled(false);
1159
        Resolution->setValue(Opts.Resolution);
1160
        Compression->setChecked( Opts.Compress );
1161
        CMethod->setCurrentItem(Opts.CompressMethod);
1162
        CQuality->setCurrentItem(Opts.Quality);
1163
        DSColor->setChecked(Opts.RecalcPic);
1164
        ValC->setValue(Opts.PicRes);
1165
        ValC->setEnabled(DSColor->isChecked() ? true : false);
5881 jghali 1166
        if (mdoc != 0 && exporting)
5553 subik 1167
        {
1168
                QMap<QString,int>::const_iterator it;
1169
                AvailFlist->clear();
1170
                for (it = DocFonts.constBegin(); it != DocFonts.constEnd(); ++it)
1171
                {
5980 avox 1172
                        if (AllFonts[it.key()].type() == ScFace::TYPE1)
5553 subik 1173
                                AvailFlist->insertItem(loadIcon("font_type1_16.png"), it.key());
5980 avox 1174
                        else if (AllFonts[it.key()].type() == ScFace::TTF)
5553 subik 1175
                                AvailFlist->insertItem(loadIcon("font_truetype16.png"), it.key());
5980 avox 1176
                        else if (AllFonts[it.key()].type() == ScFace::OTF)
5553 subik 1177
                                AvailFlist->insertItem(loadIcon("font_otf16.png"), it.key());
1178
                }
1179
                ToEmbed->setEnabled(false);
1180
                FromEmbed->setEnabled(false);
1181
                ToSubset->setEnabled(false);
1182
                FromSubset->setEnabled(false);
6493 fschmid 1183
                if ((Opts.EmbedList.count() == 0) && (Opts.SubsetList.count() == 0) && (Opts.firstUse))
5553 subik 1184
                {
1185
                        EmbedFonts->setChecked(true);
1186
                        EmbedAll();
1187
                }
1188
                else
1189
                {
1190
                        EmbedList->clear();
1191
                        FontsToEmbed.clear();
1192
                        for (uint fe = 0; fe < Opts.EmbedList.count(); ++fe)
1193
                        {
1194
                                EmbedList->insertItem(Opts.EmbedList[fe]);
1195
                                FontsToEmbed.append(Opts.EmbedList[fe]);
1196
                        }
6493 fschmid 1197
                        if (Opts.SubsetList.count() != 0)
5553 subik 1198
                        {
6493 fschmid 1199
                                SubsetList->clear();
1200
                                FontsToSubset.clear();
1201
                                for (uint fe = 0; fe < Opts.SubsetList.count(); ++fe)
1202
                                {
1203
                                        SubsetList->insertItem(Opts.SubsetList[fe]);
1204
                                        FontsToSubset.append(Opts.SubsetList[fe]);
1205
                                }
5553 subik 1206
                        }
1207
                }
1208
                CheckBox10->setChecked(Opts.PresentMode);
1209
                QString tmp;
1210
                struct PDFPresentationData ef;
1211
                Pages->clear();
1212
                EffVal.clear();
1213
                if (EffVal.count() != 0)
1214
                {
5880 jghali 1215
                        for (uint pg2 = 0; pg2 < doc->Pages->count(); ++pg2)
5553 subik 1216
                        {
1217
                                Pages->insertItem( tr("Page")+" "+tmp.setNum(pg2+1));
1218
                                if (EffVal.count()-1 < pg2)
1219
                                {
1220
                                        ef.pageEffectDuration = 1;
1221
                                        ef.pageViewDuration = 1;
1222
                                        ef.effectType = 0;
1223
                                        ef.Dm = 0;
1224
                                        ef.M = 0;
1225
                                        ef.Di = 0;
1226
                                        EffVal.append(ef);
1227
                                }
1228
                        }
1229
                }
1230
                else
1231
                {
5880 jghali 1232
                        for (uint pg = 0; pg < doc->Pages->count(); ++pg)
5553 subik 1233
                        {
1234
                                Pages->insertItem( tr("Page")+" "+tmp.setNum(pg+1));
1235
                                ef.pageEffectDuration = 1;
1236
                                ef.pageViewDuration = 1;
1237
                                ef.effectType = 0;
1238
                                ef.Dm = 0;
1239
                                ef.M = 0;
1240
                                ef.Di = 0;
1241
                                EffVal.append(ef);
1242
                        }
1243
                }
1244
                PagePrev->setChecked(false);
1245
                PageTime->setValue(EffVal[0].pageViewDuration);
1246
                EffectTime->setValue(EffVal[0].pageEffectDuration);
1247
                // XXX Optionen or Opts Changed here
6055 fschmid 1248
/*              if (doc->currentPageLayout == doublePage)
5553 subik 1249
                {
5880 jghali 1250
                        if (doc->pageSets[doc->currentPageLayout].FirstPage == 0)
5553 subik 1251
                                Opts.PageLayout = PDFOptions::TwoColumnLeft;
1252
                        else
1253
                                Opts.PageLayout = PDFOptions::TwoColumnRight;
1254
                }
1255
                else
1256
                        Opts.PageLayout = PDFOptions::SinglePage;
1257
                if (Opts.PresentMode)
1258
                        Opts.displayFullscreen = true;
1259
                else
1260
                {
1261
                        if ((Opts.Version == 15) && (Opts.useLayers))
1262
                                Opts.displayLayers = true;
6055 fschmid 1263
                } */
5553 subik 1264
                bool df = true;
1265
                if ((Opts.displayBookmarks) || (Opts.displayFullscreen) || (Opts.displayLayers) || (Opts.displayThumbs))
1266
                        df = false;
6063 fschmid 1267
                if (df)
1268
                        useViewDefault->setChecked(df);
5553 subik 1269
                useFullScreen->setChecked(Opts.displayFullscreen);
1270
                useBookmarks->setChecked(Opts.displayBookmarks);
1271
                useThumbnails->setChecked(Opts.displayThumbs);
1272
                useLayers2->setChecked(Opts.displayLayers);
1273
                hideToolBar->setChecked(Opts.hideToolBar);
1274
                hideMenuBar->setChecked(Opts.hideMenuBar);
1275
                fitWindow->setChecked(Opts.fitWindow);
1276
                QMap<QString,QString>::Iterator itja;
1277
                actionCombo->clear();
5880 jghali 1278
                for (itja = doc->JavaScripts.begin(); itja != doc->JavaScripts.end(); ++itja)
5553 subik 1279
                        actionCombo->insertItem(itja.key());
5880 jghali 1280
                if (doc->JavaScripts.contains(Opts.openAction))
5553 subik 1281
                        actionCombo->setCurrentText(Opts.openAction);
1282
                if (Opts.PageLayout == PDFOptions::SinglePage)
1283
                        singlePage->setChecked(true);
1284
                else if (Opts.PageLayout == PDFOptions::OneColumn)
1285
                        continuousPages->setChecked(true);
1286
                else if (Opts.PageLayout == PDFOptions::TwoColumnLeft)
1287
                        doublePageLeft->setChecked(true);
1288
                else if (Opts.PageLayout == PDFOptions::TwoColumnRight)
1289
                        doublePageRight->setChecked(true);
1290
                if (Opts.Version == 15)
1291
                        useLayers2->setEnabled(true);
1292
                else
1293
                        useLayers2->setEnabled(false);
1294
        }
1828 fschmid 1295
 
5553 subik 1296
        Encry->setChecked( Opts.Encrypt );
1297
        PassOwner->setText(Opts.PassOwner);
1298
        PassUser->setText(Opts.PassUser);
1299
        PrintSec->setChecked( Opts.Permissions & 4 );
1300
        ModifySec->setChecked( Opts.Permissions & 8 );
1301
        CopySec->setChecked( Opts.Permissions & 16 );
1302
        AddSec->setChecked( Opts.Permissions & 32 );
1303
        if (!Encry->isChecked())
1304
        {
1305
                GroupSecSet->setEnabled(false);
1306
                GroupPass->setEnabled(false);
1307
        }
1308
 
1309
        if (Opts.UseRGB)
1310
                OutCombo->setCurrentItem(0);
1311
        else
1312
        {
1313
                if (Opts.isGrayscale)
1314
                        OutCombo->setCurrentItem(2);
1315
                else
1316
                        OutCombo->setCurrentItem(1);
1317
        }
1318
        useSpot->setChecked(!Opts.UseSpotColors);
1319
        overprintMode->setChecked(Opts.doOverprint);
1320
        UseLPI->setChecked(Opts.UseLPI);
1321
        QMap<QString,LPIData>::Iterator itlp;
1322
        LPIcolor->clear();
1323
        for (itlp = Opts.LPISettings.begin(); itlp != Opts.LPISettings.end(); ++itlp)
1324
                LPIcolor->insertItem( itlp.key() );
1325
        LPIcolor->setCurrentItem(0);
5711 subik 1326
 
5553 subik 1327
        LPIfreq->setValue(Opts.LPISettings[LPIcolor->currentText()].Frequency);
1328
        LPIangle->setValue(Opts.LPISettings[LPIcolor->currentText()].Angle);
1329
        LPIfunc->setCurrentItem(Opts.LPISettings[LPIcolor->currentText()].SpotFunc);
1330
        EmbedProfs->setChecked(Opts.UseProfiles);
1331
        EmbedProfs2->setChecked(Opts.UseProfiles2);
1332
        NoEmbedded->setChecked(Opts.EmbeddedI);
1333
        if ((Opts.UseRGB) || (Opts.isGrayscale))
1334
        {
1335
                ProfsGroup->setEnabled(false);
1336
                GroupBox9->setEnabled(false);
1337
                EnablePr(0);
1338
        }
1339
        else
1340
                EnablePr(1);
1341
        EnablePG();
1342
        EnablePGI();
1343
        QString tp = Opts.SolidProf;
1344
        if (!ScCore->InputProfiles.contains(tp))
1345
        {
5881 jghali 1346
                if (mdoc != 0 && exporting)
5880 jghali 1347
                        tp = mdoc->CMSSettings.DefaultSolidColorRGBProfile;
5553 subik 1348
                else
1349
                        tp = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorRGBProfile;
1350
        }
1351
        ProfilesL::Iterator itp;
1352
        ProfilesL::Iterator itpend=ScCore->InputProfiles.end();
1353
        SolidPr->clear();
1354
        for (itp = ScCore->InputProfiles.begin(); itp != itpend; ++itp)
1355
        {
1356
                SolidPr->insertItem(itp.key());
1357
                if (itp.key() == tp)
1358
                {
5880 jghali 1359
                        if (cmsUse)
5553 subik 1360
                                SolidPr->setCurrentItem(SolidPr->count()-1);
1361
                }
1362
        }
5880 jghali 1363
        if (cmsUse)
5553 subik 1364
                IntendS->setCurrentItem(Opts.Intent);
1365
        QString tp1 = Opts.ImageProf;
1366
        if (!ScCore->InputProfiles.contains(tp1))
1367
        {
5881 jghali 1368
                if (mdoc != 0 && exporting)
5880 jghali 1369
                        tp1 = mdoc->CMSSettings.DefaultSolidColorRGBProfile;
5553 subik 1370
                else
1371
                        tp1 = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorRGBProfile;
1372
        }
1373
        ProfilesL::Iterator itp2;
1374
        ProfilesL::Iterator itp2end=ScCore->InputProfiles.end();
1375
        ImageP->clear();
1376
        for (itp2 = ScCore->InputProfiles.begin(); itp2 != itp2end; ++itp2)
1377
        {
1378
                ImageP->insertItem(itp2.key());
1379
                if (itp2.key() == tp1)
1380
                {
5880 jghali 1381
                        if (cmsUse)
5553 subik 1382
                                ImageP->setCurrentItem(ImageP->count()-1);
1383
                }
1384
        }
5880 jghali 1385
        if (cmsUse)
5553 subik 1386
                IntendI->setCurrentItem(Opts.Intent2);
5880 jghali 1387
        if (!cmsUse)
5553 subik 1388
        {
1389
                GroupBox9->hide();
1390
                ProfsGroup->hide();
1391
        }
1392
 
1393
        ProfilesL::const_iterator itp3;
1394
        QString tp3 = Opts.PrintProf;
1395
        if (!PDFXProfiles.contains(tp3))
1396
        {
5881 jghali 1397
                if (mdoc != 0 && exporting)
5880 jghali 1398
                        tp3 = mdoc->CMSSettings.DefaultPrinterProfile;
5553 subik 1399
                else
1400
                        tp3 = PrefsManager::instance()->appPrefs.DCMSset.DefaultPrinterProfile;
1401
        }
1402
        PrintProfC->clear();
1403
        for (itp3 = PDFXProfiles.constBegin(); itp3 != PDFXProfiles.constEnd(); ++itp3)
1404
        {
1405
                PrintProfC->insertItem(itp3.key());
1406
                if (itp3.key() == tp3)
1407
                        PrintProfC->setCurrentItem(PrintProfC->count()-1);
1408
        }
1409
        InfoString->setText(Opts.Info);
1410
        BleedTop->setValue(Opts.BleedTop*unitRatio);
1411
        BleedBottom->setValue(Opts.BleedBottom*unitRatio);
1412
        BleedRight->setValue(Opts.BleedRight*unitRatio);
1413
        BleedLeft->setValue(Opts.BleedLeft*unitRatio);
5880 jghali 1414
        if (!cmsUse)
5553 subik 1415
                setTabEnabled(tabPDFX, false);
5880 jghali 1416
        if (cmsUse && (Opts.Version == 12) && (!PDFXProfiles.isEmpty()))
5553 subik 1417
                EnablePDFX(3);
1418
        else
1419
                setTabEnabled(tabPDFX, false);
1420
        BleedChanged();
5881 jghali 1421
        if (mdoc != 0  && exporting)
5553 subik 1422
        {
1423
                PgSel = 0;
1424
                Pages->setCurrentItem(0);
1425
                SetEffOpts(0);
1426
                Pages->setEnabled(false);
1427
                Effects->setEnabled(false);
1428
                PagePrev->setEnabled(false);
1429
                DoEffects();
1430
                if (CheckBox10->isChecked())
1431
                {
1432
                        PageTime->setValue(EffVal[0].pageViewDuration);
1433
                        EffectTime->setValue(EffVal[0].pageEffectDuration);
1434
                        EffectType->setCurrentItem(EffVal[0].effectType);
1435
                        EDirection->setCurrentItem(EffVal[0].Dm);
1436
                        EDirection_2->setCurrentItem(EffVal[0].M);
1437
                        EDirection_2_2->setCurrentItem(EffVal[0].Di);
1438
                        SetEffOpts(EffectType->currentItem());
1439
                }
1440
 
1441
        }
1442
}
1443
 
3388 fschmid 1444
void TabPDFOptions::checkInfo()
1445
{
1446
        if ((PDFVersionCombo->currentItem() == 3) && (InfoString->text().isEmpty()))
1447
                emit noInfo();
1448
        else
1449
                emit hasInfo();
1450
}
1451
 
1307 fschmid 1452
void TabPDFOptions::ToggleEncr()
1453
{
1454
        bool setter = Encry->isChecked() ? true : false;
1455
        GroupSecSet->setEnabled(setter);
1456
        GroupPass->setEnabled(setter);
1457
}
1458
 
1459
void TabPDFOptions::BleedChanged()
1460
{
1792 cbradney 1461
        BleedTop->setMaxValue(pageH*unitRatio-BleedBottom->value());
1462
        BleedBottom->setMaxValue(pageH*unitRatio-BleedTop->value());
1463
        BleedRight->setMaxValue(pageB*unitRatio-BleedLeft->value());
1464
        BleedLeft->setMaxValue(pageB*unitRatio-BleedRight->value());
3333 avox 1465
        QPixmap pm(70,80);
1307 fschmid 1466
        pm.fill(white);
1467
        QPainter p;
1468
        p.begin(&pm);
1469
        p.setBrush(NoBrush);
1470
        p.setPen(black);
1471
        p.drawRect(0, 0, pm.width(), pm.height());
1472
        p.setPen(QPen(black, 1, DotLine, FlatCap, MiterJoin));
1792 cbradney 1473
        int x = qRound((BleedLeft->value() / unitRatio) * (70.0 / pageB));
1474
        int y = qRound((BleedTop->value() / unitRatio) * (80.0 / pageH));
1475
        int w =qRound((pageB-((BleedLeft->value()+BleedRight->value())/unitRatio))*(70.0/pageB));
1476
        int h = qRound((pageH-((BleedTop->value()+BleedBottom->value())/unitRatio))*(80.0/pageH));
1307 fschmid 1477
        p.drawRect(x, y, w, h);
1478
        BleedIcon->setPixmap(pm);
1479
        p.end();
1480
}
1481
 
1482
void TabPDFOptions::enableCMS(bool enable)
1483
{
1973 craig 1484
        disconnect(PDFVersionCombo, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
1485
        int a = PDFVersionCombo->currentItem();
1486
        PDFVersionCombo->clear();
5840 cbradney 1487
        PDFVersionCombo->insertItem("PDF 1.3 (Acrobat 4)");
1488
        PDFVersionCombo->insertItem("PDF 1.4 (Acrobat 5)");
1489
        PDFVersionCombo->insertItem("PDF 1.5 (Acrobat 6)");
1843 cbradney 1490
        cms=enable;
1307 fschmid 1491
        if (enable)
1973 craig 1492
                PDFVersionCombo->insertItem("PDF/X-3");
1307 fschmid 1493
        else
1738 fschmid 1494
                a = QMIN(a, 3);
1973 craig 1495
        PDFVersionCombo->setCurrentItem(a);
1307 fschmid 1496
        EnablePr(1);
1973 craig 1497
        connect(PDFVersionCombo, SIGNAL(activated(int)), this, SLOT(EnablePDFX(int)));
1307 fschmid 1498
}
1499
 
1500
void TabPDFOptions::EnablePDFX(int a)
1501
{
1843 cbradney 1502
        useLayers->setEnabled(a == 2);
4252 craig 1503
        if (useLayers2)
1504
                useLayers2->setEnabled(a == 2);
1738 fschmid 1505
        if (a != 3)
1307 fschmid 1506
        {
1507
                setTabEnabled(tabPDFX, false);
1508
                setTabEnabled(tabSecurity, true);
1509
                OutCombo->setEnabled(true);
1510
                EmbedProfs2->setEnabled(true);
3564 fschmid 1511
                emit hasInfo();
5880 jghali 1512
                if (doc != 0 && pdfExport)
1307 fschmid 1513
                {
1514
                        CheckBox10->setEnabled(true);
1515
                        EmbedFonts->setEnabled(true);
1781 fschmid 1516
                        if (EmbedList->count() != 0)
1517
                                FromEmbed->setEnabled(true);
1518
                        ToEmbed->setEnabled(true);
1307 fschmid 1519
                }
1520
                return;
1521
        }
1522
        disconnect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
1523
        OutCombo->setCurrentItem(1);
1524
        OutCombo->setEnabled(false);
1525
        EnablePr(1);
1526
        EmbedProfs2->setChecked(true);
1527
        EmbedProfs2->setEnabled(false);
5880 jghali 1528
        if (doc != 0 && pdfExport)
1307 fschmid 1529
        {
1530
                EmbedFonts->setChecked(true);
1531
                EmbedAll();
1532
                CheckBox10->setChecked(false);
1533
                CheckBox10->setEnabled(false);
1534
                EmbedFonts->setEnabled(false);
1781 fschmid 1535
                FromEmbed->setEnabled(false);
1536
                ToEmbed->setEnabled(false);
3388 fschmid 1537
                if (InfoString->text().isEmpty())
1538
                        emit noInfo();
1539
                else
1540
                        emit hasInfo();
1307 fschmid 1541
        }
1542
        EnablePGI();
1543
        setTabEnabled(tabPDFX, true);
1544
        setTabEnabled(tabSecurity, false);
1545
        connect(OutCombo, SIGNAL(activated(int)), this, SLOT(EnablePr(int)));
1546
}
1547
 
1548
void TabPDFOptions::EnablePGI()
1549
{
1550
        if (EmbedProfs2->isChecked())
1551
        {
1552
                NoEmbedded->setEnabled(true);
1553
                bool setter = NoEmbedded->isChecked() ? true : false;
1554
                ProfsTxt3->setEnabled(setter);
1555
                ProfsTxt4->setEnabled(setter);
1556
                ImageP->setEnabled(setter);
1557
                IntendI->setEnabled(setter);
1558
        }
1559
        else
1560
        {
1561
                ProfsTxt3->setEnabled(false);
1562
                ProfsTxt4->setEnabled(false);
1563
                ImageP->setEnabled(false);
1564
                IntendI->setEnabled(false);
1565
                NoEmbedded->setEnabled(false);
1566
        }
1567
}
1568
 
1569
void TabPDFOptions::EnablePGI2()
1570
{
1571
        bool setter = NoEmbedded->isChecked() ? true : false;
1572
        ProfsTxt3->setEnabled(setter);
1573
        ProfsTxt4->setEnabled(setter);
1574
        ImageP->setEnabled(setter);
1575
        IntendI->setEnabled(setter);
1576
}
1577
 
1578
void TabPDFOptions::EnablePG()
1579
{
1580
        bool setter = EmbedProfs->isChecked() ? true : false;
1581
        ProfsTxt1->setEnabled(setter);
1582
        ProfsTxt2->setEnabled(setter);
1583
        SolidPr->setEnabled(setter);
1584
        IntendS->setEnabled(setter);
1585
}
1586
 
1587
void TabPDFOptions::EnablePr(int a)
1588
{
1589
        EnableLPI(a);
1590
        bool setter = a == 1 ? true : false;
1591
        GroupBox9->setEnabled(setter);
1592
        ProfsGroup->setEnabled(setter);
1593
}
1594
 
1595
void TabPDFOptions::EnableLPI(int a)
1596
{
1597
        if (a == 1)
1598
        {
4260 craig 1599
                QString tp = Opts.SolidProf;
5243 cbradney 1600
                if (!ScCore->InputProfiles.contains(tp))
1307 fschmid 1601
                {
5880 jghali 1602
                        if (doc != 0)
1603
                                tp = doc->CMSSettings.DefaultSolidColorRGBProfile;
1307 fschmid 1604
                        else
5345 mrdocs 1605
                                tp = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorRGBProfile;
1307 fschmid 1606
                }
2891 cbradney 1607
                SolidPr->clear();
1307 fschmid 1608
                ProfilesL::Iterator itp;
5243 cbradney 1609
                ProfilesL::Iterator itpend=ScCore->InputProfiles.end();
1610
                for (itp = ScCore->InputProfiles.begin(); itp != itpend; ++itp)
1307 fschmid 1611
                {
1612
                        SolidPr->insertItem(itp.key());
1613
                        if (itp.key() == tp)
1614
                        {
1615
                                if (cms)
1616
                                        SolidPr->setCurrentItem(SolidPr->count()-1);
1617
                        }
1618
                }
1619
                if (cms)
4260 craig 1620
                        IntendS->setCurrentItem(Opts.Intent);
1621
                QString tp1 = Opts.ImageProf;
5243 cbradney 1622
                if (!ScCore->InputProfiles.contains(tp1))
1307 fschmid 1623
                {
5880 jghali 1624
                        if (doc != 0)
1625
                                tp1 = doc->CMSSettings.DefaultSolidColorRGBProfile;
1307 fschmid 1626
                        else
5345 mrdocs 1627
                                tp1 = PrefsManager::instance()->appPrefs.DCMSset.DefaultSolidColorRGBProfile;
1307 fschmid 1628
                }
1629
                ImageP->clear();
2891 cbradney 1630
                ProfilesL::Iterator itp2;
5243 cbradney 1631
                ProfilesL::Iterator itp2end=ScCore->InputProfiles.end();
1632
                for (itp2 = ScCore->InputProfiles.begin(); itp2 != itp2end; ++itp2)
1307 fschmid 1633
                {
1634
                        ImageP->insertItem(itp2.key());
1635
                        if (itp2.key() == tp1)
1636
                        {
1637
                                if (cms)
1638
                                        ImageP->setCurrentItem(ImageP->count()-1);
1639
                        }
1640
                }
1641
                if (cms)
4260 craig 1642
                        IntendI->setCurrentItem(Opts.Intent2);
1307 fschmid 1643
                if (cms)
1644
                {
1645
                        GroupBox9->show();
1646
                        ProfsGroup->show();
6239 fschmid 1647
//                      UseLPI->hide();
1648
//                      useSpot->hide();
1649
//                      overprintMode->hide();
1307 fschmid 1650
                }
1651
                else
1652
                {
1653
                        GroupBox9->hide();
1654
                        ProfsGroup->hide();
1655
                }
6239 fschmid 1656
                useSpot->show();
1657
                overprintMode->show();
1658
                UseLPI->show();
1659
                if (UseLPI->isChecked())
1660
                        LPIgroup->show();
1661
                else
1662
                        LPIgroup->hide();
1307 fschmid 1663
        }
1664
        else
1665
        {
3079 fschmid 1666
                useSpot->hide();
5320 fschmid 1667
                overprintMode->hide();
1307 fschmid 1668
                UseLPI->hide();
1669
                LPIgroup->hide();
1670
        }
1671
}
1672
 
1673
void TabPDFOptions::EnableLPI2()
1674
{
1675
        if (UseLPI->isChecked())
1676
                LPIgroup->show();
1677
        else
1678
                LPIgroup->hide();
1679
}
1680
 
1681
void TabPDFOptions::SelLPIcol(int c)
1682
{
4260 craig 1683
        // XXX Optionen or Opts changed here
1684
        Opts.LPISettings[SelLPIcolor].Frequency = LPIfreq->value();
1685
        Opts.LPISettings[SelLPIcolor].Angle = LPIangle->value();
1686
        Opts.LPISettings[SelLPIcolor].SpotFunc = LPIfunc->currentItem();
1687
        LPIfreq->setValue(Opts.LPISettings[LPIcolor->text(c)].Frequency);
1688
        LPIangle->setValue(Opts.LPISettings[LPIcolor->text(c)].Angle);
1689
        LPIfunc->setCurrentItem(Opts.LPISettings[LPIcolor->text(c)].SpotFunc);
1307 fschmid 1690
        SelLPIcolor = LPIcolor->text(c);
1691
}
1692
 
1693
void TabPDFOptions::SelRange(bool e)
1694
{
1695
        bool setter = e ? false : true;
1696
        PageNr->setEnabled( setter );
6657 cbradney 1697
        pageNrButton->setEnabled( setter );
1307 fschmid 1698
        if (setter == false)
1699
                CheckBM->setChecked(false);
1700
}
1701
 
1702
void TabPDFOptions::EffectOnAll()
1703
{
5880 jghali 1704
        for (uint pg = 0; pg < doc->Pages->count(); ++pg)
1307 fschmid 1705
        {
1706
                EffVal[pg].pageViewDuration = PageTime->value();
1707
                EffVal[pg].pageEffectDuration = EffectTime->value();
1708
                EffVal[pg].effectType = EffectType->currentItem();
1709
                EffVal[pg].Dm = EDirection->currentItem();
1710
                EffVal[pg].M = EDirection_2->currentItem();
1711
                EffVal[pg].Di = EDirection_2_2->currentItem();
1712
        }
1713
}
1714
 
1715
void TabPDFOptions::PDFMirror()
1716
{
4260 craig 1717
        // XXX Optionen or Opts changed here
1718
        Opts.MirrorH = MirrorH->isOn();
1719
        Opts.MirrorV = MirrorV->isOn();
1307 fschmid 1720
}
1721
 
1722
void TabPDFOptions::Rotation( int value )
1723
{
4260 craig 1724
        Opts.RotateDeg = value * 90;
1307 fschmid 1725
}
1726
 
1727
void TabPDFOptions::DoEffects()
1728
{
1729
        bool setter = CheckBox10->isChecked() ? true : false;
1730
        Pages->setEnabled(setter);
1731
        Effects->setEnabled(setter);
1732
        PagePrev->setEnabled(setter);
6063 fschmid 1733
//      useFullScreen->setChecked(setter);
1307 fschmid 1734
}
1735
 
1736
void TabPDFOptions::ValidDI(int nr)
1737
{
1738
        if (!EDirection_2_2->listBox()->item(nr)->isSelectable())
1739
                EDirection_2_2->setCurrentItem(0);
1740
}
1741
 
1742
void TabPDFOptions::SetPgEff(int nr)
1743
{
1744
        if (nr < 0)
1745
                return;
1746
        EffVal[PgSel].pageViewDuration = PageTime->value();
1747
        EffVal[PgSel].pageEffectDuration = EffectTime->value();
1748
        EffVal[PgSel].effectType = EffectType->currentItem();
1749
        EffVal[PgSel].Dm = EDirection->currentItem();
1750
        EffVal[PgSel].M = EDirection_2->currentItem();
1751
        EffVal[PgSel].Di = EDirection_2_2->currentItem();
1752
        SetEffOpts(EffVal[nr].effectType);
1753
        PageTime->setValue(EffVal[nr].pageViewDuration);
1754
        EffectTime->setValue(EffVal[nr].pageEffectDuration);
1755
        EffectType->setCurrentItem(EffVal[nr].effectType);
1756
        EDirection->setCurrentItem(EffVal[nr].Dm);
1757
        EDirection_2->setCurrentItem(EffVal[nr].M);
1758
        EDirection_2_2->setCurrentItem(EffVal[nr].Di);
1759
        PgSel = nr;
1760
}
1761
 
1762
void TabPDFOptions::SetEffOpts(int nr)
1763
{
1764
        EDirection_2_2->listBox()->item(2)->setSelectable(false);
1765
        EDirection_2_2->listBox()->item(3)->setSelectable(false);
1766
        EDirection_2_2->listBox()->item(4)->setSelectable(false);
1767
        switch (nr)
1768
        {
1769
        case 0:
1770
        case 3:
1771
                EDirection->setEnabled(false);
1772
                EDirection_2->setEnabled(false);
1773
                EDirection_2_2->setEnabled(false);
1774
                break;
1775
        case 1:
1776
                EDirection->setEnabled(true);
1777
                EDirection_2->setEnabled(false);
1778
                EDirection_2_2->setEnabled(false);
1779
                break;
1780
        case 2:
1781
                EDirection->setEnabled(false);
1782
                EDirection_2->setEnabled(true);
1783
                EDirection_2_2->setEnabled(false);
1784
                break;
1785
        case 4:
1786
        case 6:
1787
                EDirection->setEnabled(false);
1788
                EDirection_2->setEnabled(false);
1789
                EDirection_2_2->setEnabled(true);
1790
                if (nr == 6)
1791
                {
1792
                        EDirection_2_2->listBox()->item(2)->setSelectable(true);
1793
                        EDirection_2_2->listBox()->item(3)->setSelectable(true);
1794
                }
1795
                else
1796
                        EDirection_2_2->listBox()->item(4)->setSelectable(true);
1797
                break;
1798
        case 5:
1799
                EDirection->setEnabled(true);
1800
                EDirection_2->setEnabled(true);
1801
                EDirection_2_2->setEnabled(false);
1802
                break;
1803
        }
1804
}
1805
 
1806
void TabPDFOptions::PagePr()
1807
{
1808
        disconnect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
1809
        QString tmp;
1815 fschmid 1810
        QPixmap pm;
1307 fschmid 1811
        int ci = Pages->currentItem();
1812
        if (PagePrev->isChecked())
1813
        {
5880 jghali 1814
                for (uint pg = 0; pg < doc->Pages->count(); ++pg)
1815 fschmid 1815
                {
5880 jghali 1816
                        pm.convertFromImage(doc->view()->PageToPixmap(pg, 70));
1815 fschmid 1817
                        Pages->changeItem(pm, tr("Page")+" "+tmp.setNum(pg+1), pg);
1818
                }
1307 fschmid 1819
        }
1820
        else
1821
        {
5880 jghali 1822
                for (uint pg = 0; pg < doc->Pages->count(); ++pg)
1307 fschmid 1823
                        Pages->changeItem( tr("Page")+" "+tmp.setNum(pg+1), pg);
1824
        }
1825
        if (ci != -1)
1826
        {
1827
                PgSel = ci;
1828
                Pages->setCurrentItem(ci);
1829
        }
1830
        else
1831
        {
1832
                PgSel = 0;
1833
                Pages->clearSelection();
1834
        }
1835
        connect(Pages, SIGNAL(highlighted(int)), this, SLOT(SetPgEff(int)));
1836
}
1837
 
1838
void TabPDFOptions::DoDownsample()
1839
{
1840
        if (DSColor->isChecked())
1841
        {
1842
                ValC->setEnabled(true);
1843
                if (ValC->value() > Resolution->value())
1844
                        ValC->setValue(Resolution->value());
1845
                ValC->setMaxValue(Resolution->value());
1846
                ValC->setMinValue(35);
1847
        }
1848
        else
1849
                ValC->setEnabled(false);
1850
}
1851
 
1852
void TabPDFOptions::RemoveEmbed()
1853
{
1854
        FontsToEmbed.remove(EmbedList->currentText());
1855
        EmbedList->removeItem(EmbedList->currentItem());
1856
        EmbedList->clearSelection();
1857
        if (EmbedList->count() == 0)
1858
        {
1859
                FromEmbed->setEnabled(false);
1860
                ToSubset->setEnabled(false);
1861
        }
1862
}
1863
 
1864
void TabPDFOptions::PutToEmbed()
1865
{
1866
        if (EmbedList->count() != 0)
1867
        {
5980 avox 1868
                if (!AllFonts[AvailFlist->currentText()].subset())
1307 fschmid 1869
                {
3633 fschmid 1870
                        if (EmbedList->findItem(AvailFlist->currentText()) == NULL)
1871
                        {
1872
                                FontsToEmbed.append(AvailFlist->currentText());
1873
                                EmbedList->insertItem(AvailFlist->currentText());
1874
                        }
1307 fschmid 1875
                }
3633 fschmid 1876
                else
1877
                {
1878
                        if (SubsetList->count() != 0)
1879
                        {
1880
                                if (SubsetList->findItem(AvailFlist->currentText()) == NULL)
1881
                                {
1882
                                        FontsToSubset.append(AvailFlist->currentText());
1883
                                        SubsetList->insertItem(AvailFlist->currentText());
1884
                                }
1885
                        }
1886
                        else
1887
                        {
1888
                                FontsToSubset.append(AvailFlist->currentText());
1889
                                SubsetList->insertItem(AvailFlist->currentText());
1890
                        }
1891
                }
1307 fschmid 1892
        }
1893
        else
1894
        {
5980 avox 1895
                if (!AllFonts[AvailFlist->currentText()].subset())
3633 fschmid 1896
                {
1897
                        FontsToEmbed.append(AvailFlist->currentText());
1898
                        EmbedList->insertItem(AvailFlist->currentText());
1899
                }
1900
                else
1901
                {
1902
                        if (SubsetList->count() != 0)
1903
                        {
1904
                                if (SubsetList->findItem(AvailFlist->currentText()) == NULL)
1905
                                {
1906
                                        FontsToSubset.append(AvailFlist->currentText());
1907
                                        SubsetList->insertItem(AvailFlist->currentText());
1908
                                }
1909
                        }
1910
                        else
1911
                        {
1912
                                FontsToSubset.append(AvailFlist->currentText());
1913
                                SubsetList->insertItem(AvailFlist->currentText());
1914
                        }
1915
                }
1307 fschmid 1916
        }
1917
}
1918
 
1919
void TabPDFOptions::RemoveSubset()
1920
{
5980 avox 1921
        if (!AllFonts[SubsetList->currentText()].subset())
3633 fschmid 1922
        {
1923
                FontsToSubset.remove(SubsetList->currentText());
1924
                FontsToEmbed.append(SubsetList->currentText());
1925
                EmbedList->insertItem(SubsetList->currentText());
1926
                SubsetList->removeItem(SubsetList->currentItem());
1927
                SubsetList->clearSelection();
1928
                if (SubsetList->count() == 0)
1929
                        FromSubset->setEnabled(false);
1930
        }
1307 fschmid 1931
}
1932
 
1933
void TabPDFOptions::PutToSubset()
1934
{
1935
        if (SubsetList->count() != 0)
1936
        {
1937
                if (SubsetList->findItem(EmbedList->currentText()) == NULL)
1938
                {
1939
                        FontsToSubset.append(EmbedList->currentText());
1940
                        SubsetList->insertItem(EmbedList->currentText());
1941
                }
1942
        }
1943
        else
1944
        {
1945
                FontsToSubset.append(EmbedList->currentText());
1946
                SubsetList->insertItem(EmbedList->currentText());
1947
        }
1948
        FontsToEmbed.remove(EmbedList->currentText());
1949
        EmbedList->removeItem(EmbedList->currentItem());
1950
        EmbedList->clearSelection();
1951
        if (EmbedList->count() == 0)
1952
        {
1953
                FromEmbed->setEnabled(false);
1954
                ToSubset->setEnabled(false);
1955
        }
1956
}
1957
 
1958
void TabPDFOptions::SelAFont(QListBoxItem *c)
1959
{
1960
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1961
        {
1962
                FromEmbed->setEnabled(false);
1963
                if (c->isSelectable())
1964
                        ToEmbed->setEnabled(true);
1965
                ToSubset->setEnabled(false);
1966
                FromSubset->setEnabled(false);
1967
                EmbedList->clearSelection();
1968
                SubsetList->clearSelection();
1969
        }
1970
}
1971
 
1972
void TabPDFOptions::SelEFont(QListBoxItem *c)
1973
{
1974
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1975
        {
1781 fschmid 1976
                if (!isTabEnabled(tabPDFX))
1977
                        FromEmbed->setEnabled(true);
1307 fschmid 1978
                ToEmbed->setEnabled(false);
1979
                ToSubset->setEnabled(true);
1980
                FromSubset->setEnabled(false);
1981
                AvailFlist->clearSelection();
1982
                SubsetList->clearSelection();
1983
        }
1984
}
1985
 
1986
void TabPDFOptions::SelSFont(QListBoxItem *c)
1987
{
1988
        if ((c != NULL) && (!EmbedFonts->isChecked()))
1989
        {
1990
                FromSubset->setEnabled(true);
1991
                ToSubset->setEnabled(false);
1992
                ToEmbed->setEnabled(false);
1993
                FromEmbed->setEnabled(false);
1994
                EmbedList->clearSelection();
1995
                AvailFlist->clearSelection();
1996
        }
1997
}
1998
 
1999
void TabPDFOptions::EmbedAll()
2000
{
2001
        if (EmbedFonts->isChecked())
2002
        {
2003
                SubsetFonts->setChecked(false);
2004
                EmbedList->clear();
2005
                FontsToEmbed.clear();
2006
                SubsetList->clear();
2007
                FontsToSubset.clear();
2008
                FromEmbed->setEnabled(false);
2009
                ToEmbed->setEnabled(false);
2010
                ToSubset->setEnabled(false);
2011
                FromSubset->setEnabled(false);
2012
                for (uint a=0; a < AvailFlist->count(); ++a)
2013
                {
2014
                        if (AvailFlist->item(a)->isSelectable())
2015
                        {
5980 avox 2016
                                if (!AllFonts[AvailFlist->item(a)->text()].subset())
3633 fschmid 2017
                                {
2018
                                        FontsToEmbed.append(AvailFlist->item(a)->text());
2019
                                        EmbedList->insertItem(AvailFlist->item(a)->text());
2020
                                }
2021
                                else
2022
                                {
2023
                                        FontsToSubset.append(AvailFlist->item(a)->text());
2024
                                        SubsetList->insertItem(AvailFlist->item(a)->text());
2025
                                }
1307 fschmid 2026
                        }
2027
                }
2028
        }
2029
}
2030
 
2031
void TabPDFOptions::SubsetAll()
2032
{
2033
        if (SubsetFonts->isChecked())
2034
        {
2035
                EmbedFonts->setChecked(false);