440 case QPrinter::DuplexAuto: |
438 case QPrinter::DuplexAuto: |
441 options.duplexLong->setChecked(true); break; |
439 options.duplexLong->setChecked(true); break; |
442 case QPrinter::DuplexShortSide: |
440 case QPrinter::DuplexShortSide: |
443 options.duplexShort->setChecked(true); break; |
441 options.duplexShort->setChecked(true); break; |
444 } |
442 } |
445 options.copies->setValue(qt_printerRealNumCopies(p->paintEngine())); |
443 options.copies->setValue(p->copyCount()); |
446 options.collate->setChecked(p->collateCopies()); |
444 options.collate->setChecked(p->collateCopies()); |
447 options.reverse->setChecked(p->pageOrder() == QPrinter::LastPageFirst); |
445 options.reverse->setChecked(p->pageOrder() == QPrinter::LastPageFirst); |
448 top->d->applyPrinterProperties(p); |
446 top->d->applyPrinterProperties(p); |
449 } |
447 } |
450 |
448 |
505 p->setPrintRange(QPrinter::AllPages); |
503 p->setPrintRange(QPrinter::AllPages); |
506 p->setFromTo(0,0); |
504 p->setFromTo(0,0); |
507 } else if (options.printSelection->isChecked()) { |
505 } else if (options.printSelection->isChecked()) { |
508 p->setPrintRange(QPrinter::Selection); |
506 p->setPrintRange(QPrinter::Selection); |
509 p->setFromTo(0,0); |
507 p->setFromTo(0,0); |
|
508 } else if (options.printCurrentPage->isChecked()) { |
|
509 p->setPrintRange(QPrinter::CurrentPage); |
|
510 p->setFromTo(0,0); |
510 } else if (options.printRange->isChecked()) { |
511 } else if (options.printRange->isChecked()) { |
511 p->setPrintRange(QPrinter::PageRange); |
512 p->setPrintRange(QPrinter::PageRange); |
512 p->setFromTo(options.from->value(), qMax(options.from->value(), options.to->value())); |
513 p->setFromTo(options.from->value(), qMax(options.from->value(), options.to->value())); |
513 } |
514 } |
514 |
515 |
515 // copies |
516 // copies |
516 p->setNumCopies(options.copies->value()); |
517 p->setCopyCount(options.copies->value()); |
517 p->setCollateCopies(options.collate->isChecked()); |
518 p->setCollateCopies(options.collate->isChecked()); |
518 |
519 |
519 top->d->setupPrinter(); |
520 top->d->setupPrinter(); |
520 } |
521 } |
521 |
522 |
522 void QPrintDialogPrivate::updateWidgets() |
523 void QPrintDialogPrivate::updateWidgets() |
523 { |
524 { |
524 Q_Q(QPrintDialog); |
525 Q_Q(QPrintDialog); |
525 options.gbPrintRange->setVisible(q->isOptionEnabled(QPrintDialog::PrintPageRange) || |
526 options.gbPrintRange->setVisible(q->isOptionEnabled(QPrintDialog::PrintPageRange) || |
526 q->isOptionEnabled(QPrintDialog::PrintSelection)); |
527 q->isOptionEnabled(QPrintDialog::PrintSelection) || |
|
528 q->isOptionEnabled(QPrintDialog::PrintCurrentPage)); |
527 |
529 |
528 options.printRange->setEnabled(q->isOptionEnabled(QPrintDialog::PrintPageRange)); |
530 options.printRange->setEnabled(q->isOptionEnabled(QPrintDialog::PrintPageRange)); |
529 options.printSelection->setVisible(q->isOptionEnabled(QPrintDialog::PrintSelection)); |
531 options.printSelection->setVisible(q->isOptionEnabled(QPrintDialog::PrintSelection)); |
|
532 options.printCurrentPage->setVisible(q->isOptionEnabled(QPrintDialog::PrintCurrentPage)); |
530 options.collate->setVisible(q->isOptionEnabled(QPrintDialog::PrintCollateCopies)); |
533 options.collate->setVisible(q->isOptionEnabled(QPrintDialog::PrintCollateCopies)); |
531 |
534 |
532 switch (q->printRange()) { |
535 switch (q->printRange()) { |
533 case QPrintDialog::AllPages: |
536 case QPrintDialog::AllPages: |
534 options.printAll->setChecked(true); |
537 options.printAll->setChecked(true); |
537 options.printSelection->setChecked(true); |
540 options.printSelection->setChecked(true); |
538 break; |
541 break; |
539 case QPrintDialog::PageRange: |
542 case QPrintDialog::PageRange: |
540 options.printRange->setChecked(true); |
543 options.printRange->setChecked(true); |
541 break; |
544 break; |
|
545 case QPrintDialog::CurrentPage: |
|
546 if (q->isOptionEnabled(QPrintDialog::PrintCurrentPage)) |
|
547 options.printCurrentPage->setChecked(true); |
|
548 break; |
542 default: |
549 default: |
543 break; |
550 break; |
544 } |
551 } |
545 const int minPage = qMax(1, qMin(q->minPage() , q->maxPage())); |
552 const int minPage = qMax(1, qMin(q->minPage() , q->maxPage())); |
546 const int maxPage = qMax(1, q->maxPage() == INT_MAX ? 9999 : q->maxPage()); |
553 const int maxPage = qMax(1, q->maxPage() == INT_MAX ? 9999 : q->maxPage()); |
694 widget.printers->addItem((*i).name); |
701 widget.printers->addItem((*i).name); |
695 #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) |
702 #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) |
696 } |
703 } |
697 #endif |
704 #endif |
698 |
705 |
699 #ifndef QT_NO_FILESYSTEMMODEL |
706 #if !defined(QT_NO_FILESYSTEMMODEL) && !defined(QT_NO_COMPLETER) |
700 QFileSystemModel *fsm = new QFileSystemModel(widget.filename); |
707 QFileSystemModel *fsm = new QFileSystemModel(widget.filename); |
701 fsm->setRootPath(QDir::homePath()); |
708 fsm->setRootPath(QDir::homePath()); |
702 #if !defined(QT_NO_FSCOMPLETER) && !defined(QT_NO_FILEDIALOG) |
709 widget.filename->setCompleter(new QCompleter(fsm, widget.filename)); |
703 widget.filename->setCompleter(new QFSCompleter(fsm, widget.filename)); |
|
704 #endif |
|
705 #endif |
710 #endif |
706 _q_printerChanged(currentPrinterIndex); |
711 _q_printerChanged(currentPrinterIndex); |
707 |
712 |
708 QObject::connect(widget.printers, SIGNAL(currentIndexChanged(int)), |
713 QObject::connect(widget.printers, SIGNAL(currentIndexChanged(int)), |
709 parent, SLOT(_q_printerChanged(int))); |
714 parent, SLOT(_q_printerChanged(int))); |