/*
* This file is part of the KDE libraries
* Copyright (c) 2001 Michael Goffioul Page Selection Here you can control if you print a certain selection only out of all"
" the pages from the complete document."
"
Note: this field is disabled if you print from" " non-KDE applications like Mozilla or OpenOffice.org, since here KDEPrint has no" " means to determine which document page you are currently viewing.
Example: \"4,6,10-13,17,20,23-25\" will print" " the pages 4, 6, 10, 11, 12, 13, 17, 20, 23, 24, 25 of your document.
" "Additional hint for power users: This KDEPrint GUI element matches " " with the CUPS commandline job option parameter: " "
" " -o page-ranges=... # example: \"4,6,10-13,17,20,23-25\" " "" " " "
Choose \"All Pages\", \"Even Pages\" or" " \"Odd Pages\"" " if you want to print a page selection matching one of these terms. The default" " is \"All Pages\".
" "Note: If you combine a selection of a \"Page Range\" with a" " \"Page Set\" of \"Odd\" or \"Even\", you will only get the" " odd or even pages from the originally selected page range. This is useful if you" " odd or even pages from the originally selected page range. This is useful if you" " want to print a page range in duplex on a simplex-only printer. In this case you" " can feed the paper to the printer twice; in the first pass, select \"Odd\" or" " \"Even\" (depending on your printer model), in second pass select the other" " option. You may need to \"Reverse\" the output in one of the passes (depending" " on your printer model).
" "Additional hint for power users: This KDEPrint GUI element matches " " with the CUPS commandline job option parameter: " "
" " -o page-set=... # example: \"odd\" or \"even\" " "" " " "
The 'Copies' setting defaults to 1.
" "Additional hint for power users: This KDEPrint GUI element matches " " with the CUPS commandline job option parameter: " "
" " -o copies=... # examples: \"5\" or \"42\" " "" " " ".
" " -o outputorder=... # example: \"reverse\"" "
" " -o Collate=... # example: \"true\" or \"false\" " "
Additional hint for power users: This KDEPrint GUI element matches " " with the CUPS commandline job option parameter: " "
" " -o copies=... # examples: \"5\" or \"42\" " "" " " "
If the \"Collate\" checkbox is enabled (default), the output order for" " multiple copies of a multi-page document will be \"1-2-3-..., 1-2-3-..., 1-2-3-...\".
" "If the \"Collate\" checkbox is disabled, the output order for" " multiple copies of a multi-page document will be \"1-1-1-..., 2-2-2-..., 3-3-3-...\".
" "Additional hint for power users: This KDEPrint GUI element matches " " with the CUPS commandline job option parameter: " "
" " -o Collate=... # example: \"true\" or \"false\" " "" " " "
If the \"Reverse\" checkbox is enabled, the output order for" " multiple copies of a multi-page document will be \"...-3-2-1, ...-3-2-1, ...-3-2-1\", if you" " also have enabled the \"Collate\" checkbox at the same time" " (the usual usecase).
" "If the \"Reverse\" checkbox is enabled, the output order for" " multiple copies of a multi-page document will be \"...-3-3-3, ...-2-2-2, ...-1-1-1\", if you" " have disabled the \"Collate\" checkbox at the same time.
" "Additional hint for power users: This KDEPrint GUI element matches " " with the CUPS commandline job option parameter: " "
" " -o outputorder=... # example: \"reverse\"" " " "" " " "
Enter pages or group of pages to print separated by commas (1,2-5,8).
")); // QWhatsThis::add(m_rangeedit, i18n("Enter pages or group of pages to print separated by commas (1,2-5,8).
")); //QLabel *m_rangeexpl = new QLabel(m_pagebox); //m_rangeexpl->setText(i18n("Enter pages or group of pages to print separated by commas (1,2-5,8).
")); QGroupBox *m_copybox = new QGroupBox(0, Qt::Vertical, i18n("Output Settings"), this); QWhatsThis::add(m_copybox, whatsThisCopiesLabel); m_collate = new QCheckBox(i18n("Co&llate"), m_copybox); QWhatsThis::add(m_collate, whatsThisCollateLabel); m_order = new QCheckBox(i18n("Re&verse"), m_copybox); QWhatsThis::add(m_order, whatsThisReverseLabel); m_collatepix = new QLabel(m_copybox); m_collatepix->setAlignment(Qt::AlignCenter); m_collatepix->setMinimumHeight(70); QLabel *m_copieslabel = new QLabel(i18n("Cop&ies:"), m_copybox); m_copies = new QSpinBox(m_copybox); m_copies->setRange(1,999); QWhatsThis::add(m_copies, whatsThisNumberOfCopiesLabel); m_copieslabel->setBuddy(m_copies); QWhatsThis::add(m_copieslabel, whatsThisNumberOfCopiesLabel); m_pageset = new QComboBox(m_pagebox); m_pageset->insertItem(i18n("All Pages")); m_pageset->insertItem(i18n("Odd Pages")); m_pageset->insertItem(i18n("Even Pages")); QWhatsThis::add(m_pageset, whatsThisPageSetLabel); QLabel *m_pagesetlabel = new QLabel(i18n("Page &set:"), m_pagebox); m_pagesetlabel->setBuddy(m_pageset); QWhatsThis::add(m_pagesetlabel, whatsThisPageSetLabel); KSeparator *sepline = new KSeparator(Horizontal, m_pagebox); sepline->setMinimumHeight(10); QWidget::setTabOrder( m_all, m_current ); QWidget::setTabOrder( m_current, m_range ); QWidget::setTabOrder( m_range, m_rangeedit ); QWidget::setTabOrder( m_rangeedit, m_pageset ); QWidget::setTabOrder( m_pageset, m_copies ); QWidget::setTabOrder( m_copies, m_collate ); QWidget::setTabOrder( m_collate, m_order ); // layout creation QGridLayout *l1 = new QGridLayout(this, 2, 2, 0, 5); l1->setRowStretch(1,1); l1->setColStretch(0,1); l1->setColStretch(1,1); l1->addWidget(m_pagebox,0,0); l1->addWidget(m_copybox,0,1); QVBoxLayout *l3 = new QVBoxLayout(m_pagebox->layout(), 5); l3->addWidget(m_all); l3->addWidget(m_current); QHBoxLayout *l4 = new QHBoxLayout(0, 0, 5); l3->addLayout(l4); l4->addWidget(m_range,0); l4->addWidget(m_rangeedit,1); //l3->addWidget(m_rangeexpl); l3->addWidget(sepline); QHBoxLayout *l2 = new QHBoxLayout(0, 0, 5); l3->addLayout(l2); l2->addWidget(m_pagesetlabel,0); l2->addWidget(m_pageset,1); QGridLayout *l5 = new QGridLayout(m_copybox->layout(), 4, 2, 10); l5->setRowStretch(4,1); l5->addWidget(m_copieslabel,0,0); l5->addWidget(m_copies,0,1); l5->addMultiCellWidget(m_collatepix,1,2,0,0); l5->addWidget(m_collate,1,1); l5->addWidget(m_order,2,1); // some initialization m_all->setChecked(true); m_copies->setValue(1); initialize(m_useplugin); slotCollateClicked(); // connections connect(m_rangeedit,SIGNAL(textChanged(const QString&)),SLOT(slotRangeEntered())); connect(m_collate,SIGNAL(clicked()),SLOT(slotCollateClicked())); connect(m_order,SIGNAL(clicked()),SLOT(slotCollateClicked())); if (!kapp->authorize("print/copies")) { setTitle(i18n("Pages")); m_copybox->hide(); } } KPCopiesPage::~KPCopiesPage() { } void KPCopiesPage::slotRangeEntered() { m_range->setChecked(true); } void KPCopiesPage::slotCollateClicked() { QString s("kdeprint_"); s.append((m_collate->isChecked() ? "collate" : "uncollate")); if (m_order->isChecked()) s.append("_reverse"); m_collatepix->setPixmap(UserIcon(s)); } void KPCopiesPage::initialize(bool usePlugin) { m_useplugin = usePlugin; int f = KMFactory::self()->uiManager()->copyFlags(m_printer, m_useplugin); m_current->setEnabled((f & KMUiManager::Current)); m_range->setEnabled((f & KMUiManager::Range)); m_rangeedit->setEnabled((f & KMUiManager::Range)); m_collate->setEnabled((f & KMUiManager::Collate)); m_order->setEnabled((f & KMUiManager::Order)); m_pageset->setEnabled((f & KMUiManager::PageSet)); // by default, if collate disabled, set it to true m_collate->setChecked(!(f & KMUiManager::NoAutoCollate)); slotCollateClicked(); } void KPCopiesPage::setOptions(const QMap