Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
3 paul 1
/****************************************************************************
2
** Form implementation generated from reading ui file 'Druck.ui'
3
**
4
** Created: Mon Sep 17 21:42:19 2001
5
**      by:  The User Interface Compiler (uic)
6
**
7
** WARNING! All changes made in this file will be lost!
8
****************************************************************************/
9
#include "druck.h"
10
#include "druck.moc"
128 Franz 11
 
2688 craig 12
#include "scconfig.h"
128 Franz 13
 
2952 cbradney 14
#include "commonstrings.h"
2856 cbradney 15
#include "prefsmanager.h"
3252 craig 16
#include "prefscontext.h"
415 Franz 17
#include "prefsfile.h"
3 paul 18
#include "customfdialog.h"
19
#include "cupsoptions.h"
20
#include <qtextstream.h>
21
#include <qstringlist.h>
22
#include <qdir.h>
23
#include <qfileinfo.h>
24
#include <qmap.h>
25
#ifdef HAVE_CUPS
26
#include <cups/cups.h>
27
#endif
28
#ifdef HAVE_CMS
29
extern bool CMSuse;
30
#endif
2534 craig 31
#include <util.h>
3234 fschmid 32
extern bool previewDinUse;
3 paul 33
 
3068 fschmid 34
Druck::Druck( QWidget* parent, QString PDatei, QString PDev, QString PCom, bool gcr, QStringList spots)
248 Franz 35
                : QDialog( parent, "Dr", true, 0)
3 paul 36
{
2856 cbradney 37
        prefs = PrefsManager::instance()->prefsFile->getContext("print_options");
3234 fschmid 38
        ToSeparation = false;
161 Franz 39
        PrinterOpts = "";
248 Franz 40
        setCaption( tr( "Setup Printer" ) );
41
        setIcon(loadIcon("AppIcon.png"));
42
        DruckLayout = new QVBoxLayout( this );
3234 fschmid 43
        DruckLayout->setSpacing( 5 );
248 Franz 44
        DruckLayout->setMargin( 10 );
3 paul 45
 
248 Franz 46
        Drucker = new QGroupBox( this, "Drucker" );
348 Franz 47
        Drucker->setTitle( tr( "Print Destination" ) );
248 Franz 48
        Drucker->setColumnLayout(0, Qt::Vertical );
49
        Drucker->layout()->setSpacing( 0 );
50
        Drucker->layout()->setMargin( 0 );
51
        DruckerLayout = new QGridLayout( Drucker->layout() );
52
        DruckerLayout->setAlignment( Qt::AlignTop );
3234 fschmid 53
        DruckerLayout->setSpacing( 5 );
248 Franz 54
        DruckerLayout->setMargin( 10 );
3 paul 55
 
248 Franz 56
        Layout1x = new QHBoxLayout;
3234 fschmid 57
        Layout1x->setSpacing( 5 );
248 Franz 58
        Layout1x->setMargin( 0 );
59
        PrintDest = new QComboBox( true, Drucker, "PrintDest" );
60
        PrintDest->setMinimumSize( QSize( 250, 22 ) );
3068 fschmid 61
        PrintDest->setMaximumSize( QSize( 260, 30 ) );
248 Franz 62
        PrintDest->setEditable(false);
63
        QString Pcap;
64
        QString tmp;
65
        QStringList wt;
3 paul 66
#ifdef HAVE_CUPS
161 Franz 67
        cups_dest_t *dests;
68
        int num_dests = cupsGetDests(&dests);
69
        for (int pr = 0; pr < num_dests; ++pr)
70
        {
71
                tmp = QString(dests[pr].name);
248 Franz 72
                PrintDest->insertItem(tmp);
73
                if (tmp == PDev)
74
                {
75
                        PrintDest->setCurrentItem(PrintDest->count()-1);
76
                        ToFile = false;
77
                }
161 Franz 78
        }
79
        cupsFreeDests(num_dests, dests);
3 paul 80
#else
248 Franz 81
        if (loadText("/etc/printcap", &Pcap))
82
        {
83
                QTextStream ts(&Pcap, IO_ReadOnly);
84
                while(!ts.atEnd())
85
                {
86
                        tmp = ts.readLine();
87
                        if (tmp.isEmpty())
88
                                continue;
89
                        if ((tmp[0] != '#') && (tmp[0] != ' ') && (tmp[0] != '\n') && (tmp[0] != '\t'))
90
                        {
91
                                tmp = tmp.stripWhiteSpace();
92
                                tmp = tmp.left(tmp.length() - (tmp.right(2) == ":\\" ? 2 : 1));
161 Franz 93
                                wt = QStringList::split("|", tmp);
248 Franz 94
                                PrintDest->insertItem(wt[0]);
95
                                if (wt[0] == PDev)
96
                                {
97
                                        PrintDest->setCurrentItem(PrintDest->count()-1);
98
                                        ToFile = false;
99
                                }
100
                        }
101
                }
102
        }
3 paul 103
#endif
248 Franz 104
        PrintDest->insertItem( tr("File"));
2877 cbradney 105
        if (PDev.isEmpty())
248 Franz 106
        {
107
                Geraet = PrintDest->text(0);
108
                ToFile = false;
109
        }
110
        else
111
                Geraet = PDev;
451 tsoots 112
 
248 Franz 113
        Layout1x->addWidget( PrintDest );
3 paul 114
 
115
#ifdef HAVE_CUPS
348 Franz 116
        OptButton = new QPushButton( tr( "&Options..." ), Drucker, "Optionen" );
248 Franz 117
        Layout1x->addWidget( OptButton );
3 paul 118
#endif
248 Franz 119
        QSpacerItem* spacerDR = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
120
        Layout1x->addItem( spacerDR );
121
        DruckerLayout->addLayout( Layout1x, 0, 0);
122
        Layout1 = new QHBoxLayout;
3234 fschmid 123
        Layout1->setSpacing( 5 );
248 Franz 124
        Layout1->setMargin( 0 );
348 Franz 125
        LineEdit1 = new QLineEdit( PDatei, Drucker, "LineEdit1" );
126
        LineEdit1->setMinimumSize( QSize( 240, 22 ) );
127
        LineEdit1->setEnabled(false);
128
        DateiT = new QLabel( LineEdit1, tr( "&File:" ), Drucker, "DateiT" );
248 Franz 129
        DateiT->setEnabled( false );
130
        Layout1->addWidget( DateiT );
131
        Layout1->addWidget( LineEdit1 );
132
        ToolButton1 = new QToolButton( Drucker, "ToolButton1" );
348 Franz 133
        ToolButton1->setText( tr( "C&hange..." ) );
248 Franz 134
        ToolButton1->setMinimumSize( QSize( 80, 22 ) );
135
        ToolButton1->setEnabled(false);
261 Franz 136
        ToolButton1->setFocusPolicy( QToolButton::TabFocus );
248 Franz 137
        Layout1->addWidget( ToolButton1 );
138
        DruckerLayout->addLayout( Layout1, 1, 0 );
3 paul 139
 
2397 cbradney 140
        OtherCom = new QCheckBox( tr("A&lternative Printer Command"), Drucker, "Dc");
248 Franz 141
        OtherCom->setChecked(false);
142
        DruckerLayout->addWidget( OtherCom, 2, 0, Qt::AlignLeft);
143
        LayoutCC = new QHBoxLayout;
3234 fschmid 144
        LayoutCC->setSpacing( 5 );
248 Franz 145
        LayoutCC->setMargin( 0 );
348 Franz 146
        Command = new QLineEdit( PCom, Drucker, "LineEdit12" );
147
        Command->setMinimumSize( QSize( 240, 22 ) );
148
        Command->setEnabled(false);
149
        OthText = new QLabel( Command, tr( "Co&mmand:" ), Drucker, "DateiTc" );
248 Franz 150
        OthText->setEnabled( false );
151
        LayoutCC->addWidget( OthText );
152
        LayoutCC->addWidget( Command );
153
        DruckerLayout->addLayout( LayoutCC, 3, 0 );
154
        DruckLayout->addWidget( Drucker );
3 paul 155
 
3234 fschmid 156
        rangeGroup = new QButtonGroup( tr( "Range" ), this, "rangeGroup" );
157
        rangeGroup->setColumnLayout(0, Qt::Vertical );
158
        rangeGroup->layout()->setSpacing( 5 );
159
        rangeGroup->layout()->setMargin( 10 );
160
        rangeGroupLayout = new QGridLayout( rangeGroup->layout() );
161
        rangeGroupLayout->setAlignment( Qt::AlignTop );
162
        RadioButton1 = new QRadioButton( tr( "Print &All" ), rangeGroup, "RadioButton1" );
163
        rangeGroupLayout->addMultiCellWidget( RadioButton1, 0, 0, 0, 1 );
164
        CurrentPage = new QRadioButton( tr( "Print Current Pa&ge" ), rangeGroup, "CurrentPage" );
165
        rangeGroupLayout->addMultiCellWidget( CurrentPage, 1, 1, 0, 1 );
166
        RadioButton2 = new QRadioButton( tr( "Print &Range" ), rangeGroup, "RadioButton2" );
167
        rangeGroupLayout->addWidget( RadioButton2, 2, 0 );
168
        PageNr = new QLineEdit( rangeGroup, "PageNr" );
169
        rangeGroupLayout->addWidget( PageNr, 2, 1 );
328 Franz 170
        PageNr->setEnabled(false);
3234 fschmid 171
        Copies = new QSpinBox( rangeGroup, "Copies" );
248 Franz 172
        Copies->setEnabled( true );
173
        Copies->setMinimumSize( QSize( 70, 22 ) );
174
        Copies->setMinValue( 1 );
175
        Copies->setMaxValue(1000);
176
        Copies->setValue(1);
3234 fschmid 177
        rangeGroupLayout->addWidget( Copies, 0, 3 );
178
        TextLabel3 = new QLabel( Copies, tr( "N&umber of Copies:" ), rangeGroup, "TextLabel3" );
179
        rangeGroupLayout->addWidget( TextLabel3, 0, 2 );
180
        DruckLayout->addWidget( rangeGroup );
3 paul 181
 
3234 fschmid 182
        printOptions = new QTabWidget( this, "printOptions" );
183
        tab = new QWidget( printOptions, "tab" );
184
        tabLayout = new QGridLayout( tab, 1, 1, 10, 5, "tabLayout");
185
        PrintSep = new QComboBox( true, tab, "PrintSep" );
186
        PrintSep->setEditable(false);
187
        PrintSep->insertItem( tr( "Print Normal" ) );
188
        PrintSep->insertItem( tr( "Print Separations" ) );
189
        tabLayout->addWidget( PrintSep, 0, 0 );
190
        colorType = new QComboBox( true, tab, "colorType" );
191
        colorType->setEditable(false);
192
        colorType->insertItem( tr( "Print in Color if Available" ) );
193
        colorType->insertItem( tr( "Print in Grayscale" ) );
194
        colorType->setCurrentItem(0);
195
        tabLayout->addWidget( colorType, 0, 1 );
196
        SepArt = new QComboBox( true, tab, "SepArt" );
248 Franz 197
        QString sep[] =
198
            {
199
                tr("All"), tr("Cyan"), tr("Magenta"), tr("Yellow"),
200
                tr("Black")
201
            };
223 Franz 202
        size_t sepArray = sizeof(sep) / sizeof(*sep);
203
        for (uint prop = 0; prop < sepArray; ++prop)
204
                SepArt->insertItem(sep[prop]);
3068 fschmid 205
        SepArt->insertStringList(spots);
248 Franz 206
        SepArt->setEnabled( false );
207
        SepArt->setEditable( false );
3234 fschmid 208
        tabLayout->addWidget( SepArt, 1, 0 );
209
        psLevel = new QComboBox( true, tab, "psLevel" );
210
        psLevel->insertItem( tr( "PostScript Level 1" ) );
211
        psLevel->insertItem( tr( "PostScript Level 2" ) );
212
        psLevel->insertItem( tr( "PostScript Level 3" ) );
213
        psLevel->setEditable( false );
214
        tabLayout->addWidget( psLevel, 1, 1 );
215
        printOptions->insertTab( tab, tr( "Options" ) );
216
        tab_2 = new QWidget( printOptions, "tab_2" );
217
        tabLayout_2 = new QHBoxLayout( tab_2, 10, 5, "tabLayout_2");
218
        pageOpts = new QGroupBox( tab_2, "pageOpts" );
219
        pageOpts->setTitle( tr( "Page" ) );
220
        pageOpts->setColumnLayout(0, Qt::Vertical );
221
        pageOpts->layout()->setSpacing( 5 );
222
        pageOpts->layout()->setMargin( 10 );
223
        pageOptsLayout = new QVBoxLayout( pageOpts->layout() );
224
        pageOptsLayout->setAlignment( Qt::AlignTop );
225
        MirrorHor = new QCheckBox( pageOpts, "MirrorH" );
226
        MirrorHor->setText( tr( "Mirror Page(s) Horizontal" ) );
227
        pageOptsLayout->addWidget( MirrorHor );
228
        MirrorVert = new QCheckBox( pageOpts, "MirrorV" );
229
        MirrorVert->setText( tr( "Mirror Page(s) Vertical" ) );
230
        pageOptsLayout->addWidget( MirrorVert );
231
        devPar = new QCheckBox( pageOpts, "devPar" );
232
        devPar->setText( tr( "Set Media Size" ) );
233
        pageOptsLayout->addWidget( devPar );
234
        tabLayout_2->addWidget( pageOpts );
235
        colorOpts = new QButtonGroup( tab_2, "colorOpts" );
236
        colorOpts->setTitle( tr( "Color" ) );
237
        colorOpts->setColumnLayout(0, Qt::Vertical );
238
        colorOpts->layout()->setSpacing( 5 );
239
        colorOpts->layout()->setMargin( 10 );
240
        colorOptsLayout = new QVBoxLayout( colorOpts->layout() );
241
        colorOptsLayout->setAlignment( Qt::AlignTop );
242
        GcR = new QCheckBox( colorOpts, "GcR" );
243
        GcR->setText( tr( "Apply Under Color Removal" ) );
244
        colorOptsLayout->addWidget( GcR );
245
        spotColors = new QCheckBox( colorOpts, "spotColors" );
246
        spotColors->setText( tr( "Convert Spot Colors to Process Colors" ) );
247
        colorOptsLayout->addWidget( spotColors );
248
#ifdef HAVE_CMS
249
        if (CMSuse)
250
        {
251
                UseICC = new QCheckBox( colorOpts, "UseICC" );
252
                UseICC->setText( tr( "Apply ICC Profiles" ) );
253
                colorOptsLayout->addWidget( UseICC );
254
        }
255
#endif
256
        tabLayout_2->addWidget( colorOpts );
257
        printOptions->insertTab( tab_2, tr( "Advanced Options" ) );
258
        DruckLayout->addWidget( printOptions );
3 paul 259
 
248 Franz 260
        Layout2 = new QHBoxLayout;
3234 fschmid 261
        Layout2->setSpacing( 5 );
248 Franz 262
        Layout2->setMargin( 0 );
263
        QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
264
        Layout2->addItem( spacer );
3234 fschmid 265
 
266
        previewButton = new QPushButton( tr( "Preview..." ), this, "previewButton" );
267
        previewButton->setDefault( false );
268
        previewButton->setEnabled(!previewDinUse);
269
        Layout2->addWidget( previewButton );
3 paul 270
 
348 Franz 271
        OKButton = new QPushButton( tr( "&Print" ), this, "OKButton" );
248 Franz 272
        OKButton->setDefault( true );
273
        Layout2->addWidget( OKButton );
2952 cbradney 274
        OKButton_2 = new QPushButton( CommonStrings::tr_Cancel, this, "OKButton_2" );
248 Franz 275
        OKButton_2->setDefault( false );
276
        Layout2->addWidget( OKButton_2 );
3 paul 277
 
248 Franz 278
        DruckLayout->addLayout( Layout2 );
279
        if ((PDev== tr("File")) || (PrintDest->count() == 1))
280
        {
281
                PrintDest->setCurrentItem(PrintDest->count()-1);
282
                DateiT->setEnabled(true);
283
                LineEdit1->setEnabled(true);
284
                ToolButton1->setEnabled(true);
285
                ToFile = true;
286
        }
287
        setMaximumSize(sizeHint());
260 Franz 288
        PrintDest->setFocus();
3234 fschmid 289
        QToolTip::add( PageNr, tr( "Insert a comma separated list of tokens where\n"
290
                                           "a token can be * for all the pages, 1-5 for\n"
291
                                           "a range of pages or a single page number.") );
3666 mrdocs 292
        QToolTip::add( OtherCom,"<qt>" + tr( "Use an alternative print manager, such as kprinter or gtklp, to utilize additional printing options") + "</qt>" );
293
        QToolTip::add( psLevel,"<qt>" +  tr( "Sets the PostScript Level.\n Setting to Level 1 or 2 can create huge files" ) + "</qt>" );
294
        QToolTip::add( GcR, "<qt>" + tr( "A way of switching off some of the gray shades which are composed of cyan, yellow and magenta and using black instead. UCR most affects parts of images which are neutral and/or dark tones which are close to the gray. Use of this may improve printing some images and some experimentation and testing is need on a case by case basis.UCR reduces the possibility of over saturation with CMY inks." ) + "</qt>");
295
        QToolTip::add(spotColors,"<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>");
296
        QToolTip::add(UseICC,"<qt>" + tr( "When color management is enabled, allows you to embed ICC profiles in the print stream." ) + "</qt>");
297
        QToolTip::add(devPar, "<qt>" + tr( "This enables you to explicitely set, the media size of the PostScript file. Not recommended unless requested by your printer." ) + "</qt>");
248 Franz 298
        // signals and slots connections
451 tsoots 299
        connect( OKButton, SIGNAL( clicked() ), this, SLOT( okButtonClicked() ) );
248 Franz 300
        connect( OKButton_2, SIGNAL( clicked() ), this, SLOT( reject() ) );
301
        connect( PrintDest, SIGNAL(activated(const QString&)), this, SLOT(SelPrinter(const QString&)));
302
        connect( RadioButton1, SIGNAL(toggled(bool)), this, SLOT(SelRange(bool)));
307 Franz 303
        connect( CurrentPage, SIGNAL(toggled(bool)), this, SLOT(SelRange(bool)));
3234 fschmid 304
        connect( PrintSep, SIGNAL(activated(int)), this, SLOT(SelMode(int)));
248 Franz 305
        connect( ToolButton1, SIGNAL(clicked()), this, SLOT(SelFile()));
306
        connect( OtherCom, SIGNAL(clicked()), this, SLOT(SelComm()));
3234 fschmid 307
        connect( previewButton, SIGNAL(clicked()), this, SIGNAL(doPreview()));
3 paul 308
#ifdef HAVE_CUPS
248 Franz 309
        connect( OptButton, SIGNAL( clicked() ), this, SLOT( SetOptions() ) );
3 paul 310
#endif
3234 fschmid 311
        setStoredValues(gcr);
3 paul 312
}
313
 
314
void Druck::SetOptions()
315
{
316
        PrinterOpts = "";
317
        CupsOptions* dia = new CupsOptions(this, Geraet);
318
        if (dia->exec())
161 Franz 319
        {
3 paul 320
                struct CupsOptions::OpData daten;
321
                QMap<QString,CupsOptions::OpData>::Iterator it;
322
                for (it = dia->KeyToText.begin(); it != dia->KeyToText.end(); ++it)
161 Franz 323
                {
324
                        if (dia->KeyToDefault[it.key()] != dia->FlagsOpt.at(it.data().Cnum)->currentText())
3 paul 325
                        {
326
                                if (it.data().KeyW == "mirror")
327
                                        PrinterOpts += " -o mirror";
328
                                else
161 Franz 329
                                {
330
                                        if (it.data().KeyW == "page-set")
3 paul 331
                                        {
332
                                                PrinterOpts += " -o "+it.data().KeyW+"=";
333
                                                if (dia->FlagsOpt.at(it.data().Cnum)->currentItem() == 1)
334
                                                        PrinterOpts += "even";
335
                                                else
336
                                                        PrinterOpts += "odd";
161 Franz 337
                                        }
3 paul 338
                                        else
161 Franz 339
                                        {
340
                                                if (it.data().KeyW == "number-up")
3 paul 341
                                                {
342
                                                        PrinterOpts += " -o "+it.data().KeyW+"=";
343
                                                        switch (dia->FlagsOpt.at(it.data().Cnum)->currentItem())
161 Franz 344
                                                        {
248 Franz 345
                                                        case 1:
346
                                                                PrinterOpts += "2";
347
                                                                break;
348
                                                        case 2:
349
                                                                PrinterOpts += "4";
350
                                                                break;
351
                                                        case 3:
352
                                                                PrinterOpts += "6";
353
                                                                break;
354
                                                        case 4:
355
                                                                PrinterOpts += "9";
356
                                                                break;
357
                                                        case 5:
358
                                                                PrinterOpts += "16";
359
                                                                break;
3 paul 360
                                                        }
161 Franz 361
                                                }
3 paul 362
                                                else
161 Franz 363
                                                {
55 Franz 364
                                                        if (it.data().KeyW == "orientation")
365
                                                                PrinterOpts += " -o landscape";
366
                                                        else
248 Franz 367
                                                                PrinterOpts += " -o " +
368
                                                                               it.data().KeyW+"="+dia->FlagsOpt.at(it.data().Cnum)->currentText();
3 paul 369
                                                }
370
                                        }
371
                                }
161 Franz 372
                        }
248 Franz 373
                }
161 Franz 374
        }
3 paul 375
        delete dia;
376
}
377
 
378
void Druck::SelComm()
379
{
223 Franz 380
        /* PFJ - 29.02.04 - removed OthText, Command and PrintDest from switch */
381
        bool test = OtherCom->isChecked() ? true : false;
382
        OthText->setEnabled(test);
383
        Command->setEnabled(test);
384
        PrintDest->setEnabled(!test);
3 paul 385
        if (OtherCom->isChecked())
161 Franz 386
        {
248 Franz 387
                DateiT->setEnabled(false);
388
                LineEdit1->setEnabled(false);
389
                ToolButton1->setEnabled(false);
390
                ToFile = false;
3 paul 391
#ifdef HAVE_CUPS
392
                OptButton->setEnabled(false);
393
#endif
248 Franz 394
 
395
        }
3 paul 396
        else
161 Franz 397
        {
3 paul 398
                SelPrinter(PrintDest->currentText());
399
#ifdef HAVE_CUPS
400
                if (Geraet != tr("File"))
401
                        OptButton->setEnabled(true);
402
#endif
248 Franz 403
 
161 Franz 404
        }
3 paul 405
}
406
 
407
void Druck::SelPrinter(const QString& prn)
408
{
80 Franz 409
        bool setter = prn == tr("File") ? true : false;
161 Franz 410
        DateiT->setEnabled(setter);
411
        LineEdit1->setEnabled(setter);
412
        ToolButton1->setEnabled(setter);
413
        ToFile = setter;
3 paul 414
#ifdef HAVE_CUPS
85 Franz 415
        OptButton->setEnabled(!setter);
3 paul 416
#endif
417
        Geraet = prn;
418
}
419
 
420
void Druck::SelRange(bool e)
421
{
328 Franz 422
        PageNr->setEnabled(!e);
3 paul 423
}
424
 
3234 fschmid 425
void Druck::SelMode(int e)
3 paul 426
{
3234 fschmid 427
        if (e == 0)
428
        {
429
                SepArt->setEnabled( false );
430
                ToSeparation = false;
431
        }
432
        else
433
        {
434
                SepArt->setEnabled( true );
435
                ToSeparation = true;
436
        }
3 paul 437
}
438
 
439
void Druck::SelFile()
440
{
2856 cbradney 441
        PrefsContext* dirs = PrefsManager::instance()->prefsFile->getContext("dirs");
415 Franz 442
        QString wdir = dirs->get("druck", ".");
3142 cbradney 443
        CustomFDialog dia(this, wdir, tr("Save as"), tr("PostScript Files (*.ps);;All Files (*)"), false, false);
2877 cbradney 444
        if (!LineEdit1->text().isEmpty())
3 paul 445
                dia.setSelection(LineEdit1->text());
446
        if (dia.exec() == QDialog::Accepted)
415 Franz 447
        {
448
                QString selectedFile = dia.selectedFile();
449
                dirs->set("druck", selectedFile.left(selectedFile.findRev("/")));
450
                LineEdit1->setText(selectedFile);
451
        }
3 paul 452
}
453
 
307 Franz 454
void Druck::setMinMax(int min, int max, int cur)
3 paul 455
{
329 Franz 456
        QString tmp, tmp2;
2397 cbradney 457
        CurrentPage->setText( tr( "Print Current Pa&ge" )+" ("+tmp.setNum(cur)+")");
329 Franz 458
        PageNr->setText(tmp.setNum(min)+"-"+tmp2.setNum(max));
3 paul 459
}
460
 
451 tsoots 461
void Druck::okButtonClicked()
462
{
463
        prefs->set("PrintDest", PrintDest->currentItem());
464
        prefs->set("OtherCom", OtherCom->isChecked());
465
        prefs->set("PrintAll", RadioButton1->isChecked());
466
        prefs->set("CurrentPage", CurrentPage->isChecked());
467
        prefs->set("PrintRange", RadioButton2->isChecked());
468
        prefs->set("PageNr", PageNr->text());
469
        prefs->set("Copies", Copies->value());
3234 fschmid 470
        prefs->set("Separations", PrintSep->currentItem());
471
        prefs->set("PrintColor", colorType->currentItem());
451 tsoots 472
        prefs->set("SepArt", SepArt->currentItem());
3234 fschmid 473
        prefs->set("MirrorH", MirrorHor->isChecked());
474
        prefs->set("MirrorV", MirrorVert->isChecked());
475
        prefs->set("DoGCR", GcR->isChecked());
476
        prefs->set("PSLevel", psLevel->currentItem() + 1);
477
        prefs->set("doDev", devPar->isChecked());
478
        prefs->set("doSpot", !spotColors->isChecked());
479
#ifdef HAVE_CMS
480
        if (CMSuse)
481
                prefs->set("ICCinUse", UseICC->isChecked());
482
#endif
483
        accept();
451 tsoots 484
}
485
 
3234 fschmid 486
void Druck::setStoredValues(bool gcr)
451 tsoots 487
{
488
        int selectedDest = prefs->getInt("PrintDest", 0);
489
        if ((selectedDest > -1) && (selectedDest < PrintDest->count()))
490
        {
491
                PrintDest->setCurrentItem(selectedDest);
492
                if (PrintDest->currentText() == tr("File"))
2397 cbradney 493
                        SelPrinter( tr("File"));
451 tsoots 494
        }
495
        OtherCom->setChecked(prefs->getBool("OtherCom", false));
496
        if (OtherCom->isChecked())
497
                SelComm();
498
        RadioButton1->setChecked(prefs->getBool("PrintAll", true));
499
        CurrentPage->setChecked(prefs->getBool("CurrentPage", false));
500
        RadioButton2->setChecked(prefs->getBool("PrintRange", false));
501
        PageNr->setText(prefs->get("PageNr", "1-1"));
502
        Copies->setValue(prefs->getInt("Copies", 1));
3234 fschmid 503
        PrintSep->setCurrentItem(prefs->getInt("Separations", 0));
504
        colorType->setCurrentItem(prefs->getInt("PrintColor", 0));
451 tsoots 505
        int selectedSep = prefs->getInt("SepArt", 0);
506
        if ((selectedSep > -1) && (selectedSep < 5))
507
                SepArt->setCurrentItem(selectedSep);
3234 fschmid 508
        if (PrintSep->currentItem() == 1)
509
                SepArt->setEnabled(true);
510
        psLevel->setCurrentItem(prefs->getInt("PSLevel", 3)-1);
511
        MirrorHor->setChecked(prefs->getBool("MirrorH", false));
512
        MirrorHor->setChecked(prefs->getBool("MirrorV", false));
513
        devPar->setChecked(prefs->getBool("doDev", false));
514
        GcR->setChecked(prefs->getBool("DoGCR", gcr));
515
        spotColors->setChecked(!prefs->getBool("doSpot", true));
516
#ifdef HAVE_CMS
517
        if (CMSuse)
518
                UseICC->setChecked(prefs->getBool("ICCinUse", false));
519
#endif
451 tsoots 520
}
521
 
3 paul 522
QString Druck::printerName()
523
{
524
        return Geraet;
525
}
526
 
527
QString Druck::outputFileName()
528
{
529
        return LineEdit1->text();
530
}
531
 
532
bool Druck::outputToFile()
533
{
534
        return ToFile;
535
}
536
 
537
int Druck::numCopies()
538
{
539
        return Copies->value();
540
}
541
 
542
bool Druck::outputSeparations()
543
{
544
        return ToSeparation;
545
}
546
 
547
QString Druck::separationName()
548
{
549
        return SepArt->currentText();
550
}
551
 
3068 fschmid 552
QStringList Druck::allSeparations()
553
{
554
        QStringList ret;
555
        for (int a = 1; a < SepArt->count(); ++a)
556
        {
557
                ret.append(SepArt->text(a));
558
        }
559
        return ret;
560
}
3234 fschmid 561
 
3 paul 562
bool Druck::color()
563
{
3234 fschmid 564
        if (colorType->currentItem() == 0)
565
                return true;
566
        else
567
                return false;
3 paul 568
}
3234 fschmid 569
 
570
bool Druck::mirrorHorizontal()
571
{
572
        return MirrorHor->isChecked();
573
}
574
 
575
bool Druck::mirrorVertical()
576
{
577
        return MirrorVert->isChecked();
578
}
579
 
580
bool Druck::doGCR()
581
{
582
        return GcR->isChecked();
583
}
584
 
585
int Druck::PSLevel()
586
{
587
        return psLevel->currentItem() + 1;
588
}
589
 
590
bool Druck::doDev()
591
{
592
        return devPar->isChecked();
593
}
594
 
595
bool Druck::doSpot()
596
{
597
        return !spotColors->isChecked();
598
}
599
 
600
bool Druck::ICCinUse()
601
{
602
#ifdef HAVE_CMS
603
        if (CMSuse)
604
                return UseICC->isChecked();
605
        else
606
                return false;
607
#else
608
        return false;
609
#endif
610
}