]> git.lyx.org Git - features.git/commitdiff
add print dialog back
authorJohn Levon <levon@movementarian.org>
Wed, 29 Aug 2001 21:11:30 +0000 (21:11 +0000)
committerJohn Levon <levon@movementarian.org>
Wed, 29 Aug 2001 21:11:30 +0000 (21:11 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2622 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt2/ChangeLog
src/frontends/qt2/Dialogs.C
src/frontends/qt2/QPrint.C
src/frontends/qt2/QPrint.h
src/frontends/qt2/QPrintDialog.C
src/frontends/qt2/QPrintDialog.h
src/frontends/qt2/ui/QPrintDialog.ui

index 1d636525121516f24eb851168bd6aa129bcc1fe8..62e381dfd3918c63316996e43658a87ded972295 100644 (file)
@@ -1,3 +1,10 @@
+2001-08-29  John Levon  <moz@compsoc.man.ac.uk>
+
+       * Dialogs.C:
+       * QPrint.[Ch]:
+       * QPrintDialog.[Ch]:
+       * ui/QPrintDialog.ui: add print dialog back
 2001-08-29  John Levon  <moz@compsoc.man.ac.uk>
 
        * Makefile.am:
index afbf87d3c5b5b4de0821af059302eec8b1d90a33..629f992e289b4efa67863e418bb8adc319c059c3 100644 (file)
@@ -26,6 +26,7 @@
 #include "QLogDialog.h"
 #include "QMinipageDialog.h"
 #include "QPreambleDialog.h"
+#include "QPrintDialog.h"
 #include "QRefDialog.h"
 #include "QTabularCreateDialog.h"
 #include "QThesaurusDialog.h"
@@ -77,6 +78,7 @@
 #include "controllers/ControlLog.h"
 #include "controllers/ControlMinipage.h"
 #include "controllers/ControlPreamble.h"
+#include "controllers/ControlPrint.h"
 #include "controllers/ControlRef.h"
 #include "controllers/ControlSplash.h"
 #include "controllers/ControlTabularCreate.h"
@@ -88,7 +90,6 @@
 #include "controllers/ControlCitation.h"
 #include "controllers/ControlFloat.h"
 #include "controllers/ControlLabel.h"
-#include "controllers/ControlPrint.h"
 #include "controllers/ControlRef.h"
 #include "controllers/ControlSearch.h"
 #include "controllers/ControlSpellchecker.h"
@@ -120,6 +121,7 @@ Dialogs::Dialogs(LyXView * lv)
        add(new GUILog<QLog, Qt2BC>(*lv, *this));
        add(new GUIMinipage<QMinipage, Qt2BC>(*lv, *this));
        add(new GUIPreamble<QPreamble, Qt2BC>(*lv, *this)); 
+       add(new GUIPrint<QPrint, Qt2BC>(*lv, *this));
        add(new GUIRef<QRef, Qt2BC>(*lv, *this));
        add(new GUITabularCreate<QTabularCreate, Qt2BC>(*lv, *this));
        add(new GUIThesaurus<QThesaurus, Qt2BC>(*lv, *this));
index 52a3080333ad42761cd9c7feff940bc76541cff3..0a0ad259cd279c3c4850cca450d64b9ebb3e35e0 100644 (file)
 /**
  * \file QPrint.C
- * Copyright 2001 LyX Team
- * see the file COPYING
+ * Copyright 2001 the LyX Team
+ * Read the file COPYING
  *
- * \author John Levon, moz@compsoc.man.ac.uk
+ * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author Edwin Leuven, leuven@fee.uva.nl
  */
 
 #include <config.h>
 
+#ifdef __GNUG__
+#pragma implementation
+#endif
+
+#include <qlineedit.h>
+#include <qcheckbox.h>
+#include <qradiobutton.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
 #include "QPrintDialog.h"
 #include "QPrint.h"
-#include "Dialogs.h"
+#include "Qt2BC.h"
 #include "gettext.h"
-#include "buffer.h"
-#include "lyxrc.h" 
-#include "QtLyXView.h" 
+#include "QtLyXView.h"
+#include "ControlPrint.h"
 
-#include "PrinterParams.h" 
-#include "Liason.h" 
-#include "BufferView.h" 
 #include "support/lstrings.h"
-#include "qmessagebox.h"
-
-using Liason::printBuffer;
-using Liason::getPrinterParams;
-using std::max;
+typedef Qt2CB<ControlPrint, Qt2DB<QPrintDialog> > base_class;
 
-QPrint::QPrint(LyXView *v, Dialogs *d)
-       : dialog_(0), lv_(v), d_(d), h_(0), u_(0)
+QPrint::QPrint(ControlPrint & c)
+       : base_class(c, _("Print"))
 {
-       d->showPrint.connect(SigC::slot(this, &QPrint::show));
 }
 
 
-QPrint::~QPrint()
+void QPrint::build_dialog()
 {
-       delete dialog_;
+       dialog_.reset(new QPrintDialog(this));
+
+       bc().setOK(dialog_->printPB); 
+       bc().setCancel(dialog_->closePB);
 }
 
 
-// we can safely ignore the parameter because we can always update
-void QPrint::update(bool)
+void QPrint::update_contents()
 {
-       if (!lv_->view()->available())
-              return;
-
-       PrinterParams pp(getPrinterParams(lv_->buffer()));
-
-       dialog_->setTarget(pp.target);
-               dialog_->setPrinter(pp.printer_name.c_str());
-               dialog_->setFile(pp.file_name.c_str());
-       dialog_->setWhichPages(pp.which_pages);
-        dialog_->setReverse(pp.reverse_order);
-       dialog_->setSort(pp.unsorted_copies);
-       dialog_->setCount(pp.count_copies);
-       
-               if (!pp.from_page.empty()) {
-               dialog_->setFrom(pp.from_page.c_str());
-               if (pp.to_page)
-                       dialog_->setTo(tostr(pp.to_page).c_str());
-               else
-                       dialog_->setTo("");
-       } else {
-               dialog_->setFrom("");
-               dialog_->setTo("");
-       }
-}
+       PrinterParams & pp = controller().params();
 
+       dialog_->printerED->setText(pp.printer_name.c_str());
+       dialog_->fileED->setText(pp.file_name.c_str());
  
-void QPrint::print()
-{
-       if (!lv_->view()->available())
-              return;
-
-       string from;
-       int to(0);
+       dialog_->printerRB->setChecked(true);
+       if (pp.target == PrinterParams::FILE)
+               dialog_->fileRB->setChecked(true);
+       dialog_->reverseCB->setChecked(pp.reverse_order);
 
-       if (strlen(dialog_->getFrom())) {
-               from = dialog_->getFrom();
-               if (strlen(dialog_->getTo()))
-                       to = strToInt(dialog_->getTo());
+       QRadioButton * button;
+       switch (pp.which_pages) {
+               case PrinterParams::ALL: button = dialog_->allRB; break;
+               case PrinterParams::ODD: button = dialog_->oddRB; break;
+               case PrinterParams::EVEN: button = dialog_->evenRB; break;
        }
-       
-       int retval = printBuffer(lv_->buffer(), PrinterParams(dialog_->getTarget(),
-               string(dialog_->getPrinter()), string(dialog_->getFile()), 
-               dialog_->getWhichPages(), from, to, dialog_->getReverse(), 
-               dialog_->getSort(), max(strToInt(dialog_->getCount()),1)));
-
-       if (!retval) {
-               // FIXME: should have a utility class for this
-               string message(_("An error occured while printing.\n\n"));
-               message += _("Check the parameters are correct.\n");
-               QMessageBox msg( _("LyX: Print Error"), message.c_str(), QMessageBox::Warning, 1,0,0);
-               msg.raise();
-               msg.setActiveWindow();
-               msg.show();
-       }
-}
-
-
-void QPrint::show()
-{
-       if (!dialog_)
-               dialog_ = new QPrintDialog(this, 0, _("LyX: Print"));
+       button->setChecked(true);
  
-       if (!dialog_->isVisible()) {
-               h_ = d_->hideBufferDependent.connect(SigC::slot(this, &QPrint::hide));
-               u_ = d_->updateBufferDependent.connect(SigC::slot(this, &QPrint::update));
+       // hmmm... maybe a bit weird but maybe not
+       // we might just be remembering the last
+       // time this was printed.
+       if (!pp.from_page.empty()) {
+               dialog_->fromED->setText(pp.from_page.c_str());
+
+               dialog_->toED->setText("");
+               if (pp.to_page) 
+                       dialog_->toED->setText(tostr(pp.to_page).c_str());
+       } else {
+               dialog_->fromED->setText("");
+               dialog_->toED->setText("");
        }
 
-       dialog_->raise();
-       dialog_->setActiveWindow();
-       update();
-       dialog_->show();
+       dialog_->copiesSB->setValue(pp.count_copies);
 }
 
 
-void QPrint::close()
+void QPrint::apply()
 {
-       h_.disconnect();
-       u_.disconnect();
-}
+       PrinterParams::WhichPages wp;
+
+       if (dialog_->allRB->isChecked())
+               wp = PrinterParams::ALL;
+       else if (dialog_->oddRB->isChecked())
+               wp = PrinterParams::ODD;
+       else
+               wp = PrinterParams::EVEN;
 
+       string from;
+       int to(0);
+       if (!dialog_->fromED->text().isEmpty()) {
+               // we have at least one page requested
+               from = dialog_->fromED->text().latin1();
+               if (!dialog_->toED->text().isEmpty())
+                       to = strToInt(dialog_->toED->text().latin1());
+       }
+
+       PrinterParams::Target t = PrinterParams::PRINTER;
+       if (dialog_->fileRB->isChecked())
+               t = PrinterParams::FILE;
+
+       PrinterParams const pp(t,
+               dialog_->printerED->text().latin1(),
+               dialog_->fileED->text().latin1(),
+               wp, from, to,
+               dialog_->reverseCB->isChecked(),
+               !dialog_->collateCB->isChecked(),
+               strToInt(dialog_->copiesSB->text().latin1()));
  
-void QPrint::hide()
-{
-       dialog_->hide();
-       close();
+       controller().params() = pp;
 }
index 18630dddc501ff336fe2dbe7f6d7a7c01aadcd6f..e6606deb8427c4bfd48ea5658dc5be80602f94c0 100644 (file)
@@ -1,54 +1,42 @@
 // -*- C++ -*-
 /**
  * \file QPrint.h
- * Copyright 2001 LyX Team
- * see the file COPYING
+ * Copyright 2001 the LyX Team
+ * Read the file COPYING
  *
- * \author John Levon, moz@compsoc.man.ac.uk
+ * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author Edwin Leuven, leuven@fee.uva.nl
  */
+
 #ifndef QPRINT_H
 #define QPRINT_H
 
-#include "DialogBase.h"
-#include "boost/utility.hpp"
-
-class Dialogs;
-class LyXView;
-class QPrintDialog;
+#ifdef __GNUG__
+#pragma interface
+#endif
 
-class QPrint : public DialogBase {
-public: 
-       QPrint(LyXView *, Dialogs *);
-       ~QPrint();
+#include "Qt2Base.h"
 
-       /// start print
-       void print();
-       /// close
-       void close();
-private: 
-       /// Create the dialog if necessary, update it and display it.
-       void show();
-       /// Hide the dialog.
-       void hide();
-       /// Update the dialog.
-       void update(bool = false);
+class ControlPrint;
+class QPrintDialog;
 
-       /// Real GUI implementation.
-       QPrintDialog * dialog_;
+///
+class QPrint
+       : public Qt2CB<ControlPrint, Qt2DB<QPrintDialog> > 
+{
+public:
+       ///
+       friend class QPrintDialog;
+       ///
+       QPrint(ControlPrint &);
 
-       /// the LyXView we belong to
-       LyXView * lv_;
-       /** Which Dialogs do we belong to?
-           Used so we can get at the signals we have to connect to.
-       */
-       Dialogs * d_;
-       
-       /// Hide connection.
-       SigC::Connection h_;
-       /// Update connection.
-       SigC::Connection u_;
+private:
+       /// Apply changes
+       virtual void apply();
+       /// update
+       virtual void update_contents();
+       /// build the dialog
+       virtual void build_dialog();
 };
 
 #endif // QPRINT_H
index 859a8c5779a963e0307a56af2e86acfbafab74b6..19831a61b78578051edaab561a944c5bea311b5a 100644 (file)
 
 #include "support/filetools.h"
 #include "support/lstrings.h"
-#include "lyxrc.h" 
-#include "PrinterParams.h"
 
 #include <gettext.h>
-#include <cstring>
 
 
-QPrintDialog::QPrintDialog(QPrint * f, QWidget * parent,  const char * name, bool modal, WFlags fl)
-       : QPrintDialogBase(parent, name, modal, fl), 
+QPrintDialog::QPrintDialog(QPrint * f)
+       : QPrintDialogBase(0, 0, false, 0),
        form_(f)
 {
-       setCaption(name);
+       connect(printPB, SIGNAL(clicked()),
+               form_, SLOT(slotOK()));
+       connect(closePB, SIGNAL(clicked()),
+               form_, SLOT(slotClose()));
 }
 
-QPrintDialog::~QPrintDialog()
+void QPrintDialog::change_adaptor()
 {
+       form_->changed();
 }
-
-
-const char * QPrintDialog::getFrom() {
-       return fromPage->text();
-}
-
-
-const char * QPrintDialog::getTo() {
-       return toPage->text();
-}
-
-       
-PrinterParams::Target QPrintDialog::getTarget() {
-       if (toPrinter->isChecked())
-               return PrinterParams::PRINTER;
-       else
-               return PrinterParams::FILE;
-}
-
-
-const char * QPrintDialog::getPrinter() {
-       return printerName->text();
-}
-
-
-const char * QPrintDialog::getFile() {
-       return fileName->text();
-}
-
-
-PrinterParams::WhichPages QPrintDialog::getWhichPages() {
-       if (oddPages->isChecked())
-               return PrinterParams::ODD;
-       else if (evenPages->isChecked())
-               return PrinterParams::EVEN;
-       else
-               return PrinterParams::ALL;
-}
-
-
-bool QPrintDialog::getReverse() {
-       return reverse->isChecked();
-}
-
-
-bool QPrintDialog::getSort() {
-       return collate->isChecked();
-}
-
-
-const char * QPrintDialog::getCount() {
-       return copies->text();
-}
-
-
-void QPrintDialog::setTarget(PrinterParams::Target t) {
-       toPrinter->setChecked(t==PrinterParams::PRINTER);
-       toFile->setChecked(t!=PrinterParams::PRINTER);
-}
-
-
-void QPrintDialog::setPrinter(const char * name) {
-       printerName->setText(name);
-}
-
-
-void QPrintDialog::setFile(const char * name) {
-       fileName->setText(name);
-}       
-
-
-void QPrintDialog::setWhichPages(PrinterParams::WhichPages wp) {
-       switch (wp) {
-               case PrinterParams::ALL:
-                       allPages->setChecked(true);
-                       break;
-               case PrinterParams::EVEN:
-                       evenPages->setChecked(true);
-                       break;
-               case PrinterParams::ODD:
-                       oddPages->setChecked(true);
-                       break;
+void QPrintDialog::browseClicked()
+{
+       QString file = QFileDialog::getOpenFileName(QString::null, 
+               _("PostScript files (*.ps)"), this, 0, _("Select a file to print to"));
+       if (!file.isNull()) {
+               fileED->setText(file);
+               form_->changed();
        }
 }
 
-
-void QPrintDialog::setReverse(bool on) {
-       reverse->setChecked(on);
-}
-
-
-void QPrintDialog::setSort(bool on) {
-       collate->setChecked(on);
-}
-
-
-void QPrintDialog::setCount(int num) {
-       copies->setValue(num);
-       collate->setEnabled(num > 1);
-}
-
-
-void QPrintDialog::setFrom(const char * text) {
-       fromPage->setText(text);
-}
-
-
-void QPrintDialog::setTo(const char * text) {
-       toPage->setText(text);
-}
-
  
-void QPrintDialog::browse_file()
+void QPrintDialog::fileChanged()
 {
-       QString d( OnlyPath(tostr(fileName->text())).c_str());
-       QString s( QFileDialog::getOpenFileName(d, "PostScript Files (*.ps)", this));
-       if (!s.isNull()) 
-               fileName->setText(s);
+       if (!fileED->text().isEmpty())
+               fileRB->setChecked(true);
+       form_->changed();
 }
 
  
-void QPrintDialog::print()
+void QPrintDialog::copiesChanged(int i)
 {
-       form_->print();
-       form_->close();
-       hide();
+       collateCB->setEnabled(i != 1);
+       form_->changed();
 }
 
  
-void QPrintDialog::cancel_adaptor()
+void QPrintDialog::printerChanged()
 {
-       form_->close();
-       hide();
+       printerRB->setChecked(true);
+       form_->changed();
 }
 
  
-void QPrintDialog::set_collate(int copies)
+void QPrintDialog::pagerangeChanged()
 {
-       collate->setEnabled(copies > 1);
+       int from = strToUnsignedInt(fromED->text().latin1());
+       int to = strToUnsignedInt(toED->text().latin1());
+       if (!toED->text().isEmpty() && from > to)
+               fromED->setText(toED->text());
+       form_->changed();
 }
index 6c951f2ad913b40d8e11985604a0d7c2f4ffe0b3..524d344aeffdd818481f168f8c5b70e748dbe75a 100644 (file)
@@ -22,35 +22,15 @@ class QPrintDialog : public QPrintDialogBase
 { Q_OBJECT
 
 public:
-       QPrintDialog(QPrint * f, QWidget * parent = 0, const char * name = 0, bool modal = FALSE, WFlags fl = 0);
-       ~QPrintDialog();
+       QPrintDialog(QPrint * f);
        
-       // FIXME: these should return std::string !
-       const char * getFrom();
-       const char * getTo();
-       const char * getPrinter();
-       const char * getFile();
-       const char * getCount();
-       PrinterParams::Target getTarget();
-       PrinterParams::WhichPages getWhichPages();
-       bool getReverse();
-       bool getSort();
-       void setFrom(const char *);
-       void setTo(const char *);
-       void setPrinter(const char *);
-       void setFile(const char *);
-       void setCount(int);
-       void setTarget(PrinterParams::Target);
-       void setWhichPages(PrinterParams::WhichPages);
-       void setReverse(bool);
-       void setSort(bool);
-         
-
 protected slots:
-       void cancel_adaptor();
-       void browse_file();
-       void print();
-       void set_collate(int);
+       virtual void change_adaptor();
+       virtual void browseClicked();
+       virtual void fileChanged();
+       virtual void copiesChanged(int);
+       virtual void printerChanged();
+       virtual void pagerangeChanged();
 
 private:
        QPrint * form_;
index b27f2537407602385a05a50733426fd291b24ed4..caa594664b29d4306778342d4eb86006b6f91df0 100644 (file)
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>359</width>
+            <width>331</width>
             <height>342</height>
         </rect>
     </property>
     <property stdset="1">
         <name>caption</name>
-        <string>Form1</string>
+        <string>Print</string>
     </property>
     <vbox>
         <property stdset="1">
                     <class>QRadioButton</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>toPrinter</cstring>
+                        <cstring>printerRB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>&amp;Printer</string>
+                        <string>P&amp;rinter</string>
                     </property>
                     <property stdset="1">
                         <name>checked</name>
                         <bool>true</bool>
                     </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Send output to the printer</string>
+                    </property>
                 </widget>
                 <widget row="1"  column="0" >
                     <class>QRadioButton</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>toFile</cstring>
+                        <cstring>fileRB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
                         <string>&amp;File</string>
                     </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Send output to a file</string>
+                    </property>
                 </widget>
                 <widget row="0"  column="1" >
                     <class>QLineEdit</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>printerName</cstring>
+                        <cstring>printerED</cstring>
+                    </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Send output to the given printer</string>
                     </property>
                 </widget>
                 <widget row="1"  column="1" >
                     <class>QLineEdit</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>fileName</cstring>
+                        <cstring>fileED</cstring>
                     </property>
                     <property stdset="1">
                         <name>enabled</name>
-                        <bool>false</bool>
+                        <bool>true</bool>
+                    </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Send output to a file</string>
                     </property>
                 </widget>
                 <widget row="1"  column="2" >
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>&amp;Browse...</string>
+                        <string>&amp;Browse ...</string>
                     </property>
                     <property stdset="1">
                         <name>enabled</name>
-                        <bool>false</bool>
+                        <bool>true</bool>
                     </property>
                 </widget>
             </grid>
                 </property>
                 <property stdset="1">
                     <name>spacing</name>
-                    <number>3</number>
+                    <number>6</number>
                 </property>
                 <widget row="0"  column="0" >
                     <class>QRadioButton</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>allPages</cstring>
+                        <cstring>allRB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>All</string>
+                        <string>&amp;All</string>
                     </property>
                     <property stdset="1">
                         <name>checked</name>
                         <bool>true</bool>
                     </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Print all pages</string>
+                    </property>
                 </widget>
                 <widget row="1"  column="0" >
                     <class>QRadioButton</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>oddPages</cstring>
+                        <cstring>oddRB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>Odd</string>
+                        <string>&amp;Odd</string>
+                    </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Print odd pages only</string>
                     </property>
                 </widget>
                 <widget row="2"  column="0" >
                     <class>QRadioButton</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>evenPages</cstring>
-                    </property>
-                    <property stdset="1">
-                        <name>text</name>
-                        <string>Even</string>
-                    </property>
-                </widget>
-                <widget row="3"  column="1" >
-                    <class>QLabel</class>
-                    <property stdset="1">
-                        <name>name</name>
-                        <cstring>fromPageL</cstring>
+                        <cstring>evenRB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>Starting range:</string>
+                        <string>&amp;Even</string>
                     </property>
-                    <property stdset="1">
-                        <name>enabled</name>
-                        <bool>false</bool>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Print even pages only</string>
                     </property>
                 </widget>
                 <widget row="3"  column="2" >
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>Last page:</string>
+                        <string>&amp;Last page:</string>
                     </property>
                     <property stdset="1">
                         <name>enabled</name>
-                        <bool>false</bool>
+                        <bool>true</bool>
+                    </property>
+                    <property>
+                        <name>buddy</name>
+                        <cstring>toED</cstring>
                     </property>
                 </widget>
                 <widget row="4"  column="2" >
                     <class>QLineEdit</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>toPage</cstring>
+                        <cstring>toED</cstring>
                     </property>
                     <property stdset="1">
                         <name>enabled</name>
-                        <bool>false</bool>
+                        <bool>true</bool>
+                    </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Page number to print to</string>
                     </property>
                 </widget>
                 <widget row="0"  column="2" >
                     <class>QCheckBox</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>reverse</cstring>
+                        <cstring>reverseCB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>&amp;Reverse order</string>
+                        <string>Re&amp;verse order</string>
+                    </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Print in reverse order</string>
                     </property>
                 </widget>
                 <widget row="4"  column="1" >
                     <class>QLineEdit</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>fromPage</cstring>
+                        <cstring>fromED</cstring>
                     </property>
                     <property stdset="1">
                         <name>enabled</name>
-                        <bool>false</bool>
+                        <bool>true</bool>
+                    </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Page number to print from</string>
                     </property>
                 </widget>
                 <widget row="4"  column="0" >
-                    <class>QRadioButton</class>
+                    <class>QLabel</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>customPages</cstring>
+                        <cstring>rangeLA</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>Pages:</string>
+                        <string>Ran&amp;ge</string>
+                    </property>
+                    <property>
+                        <name>buddy</name>
+                        <cstring>fromED</cstring>
+                    </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Set a range of pages to print</string>
+                    </property>
+                </widget>
+                <widget row="3"  column="1" >
+                    <class>QLabel</class>
+                    <property stdset="1">
+                        <name>name</name>
+                        <cstring>fromPageL</cstring>
+                    </property>
+                    <property stdset="1">
+                        <name>text</name>
+                        <string>&amp;Starting range:</string>
+                    </property>
+                    <property stdset="1">
+                        <name>enabled</name>
+                        <bool>true</bool>
+                    </property>
+                    <property>
+                        <name>buddy</name>
+                        <cstring>fromED</cstring>
                     </property>
                 </widget>
             </grid>
                     <class>QSpinBox</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>copies</cstring>
+                        <cstring>copiesSB</cstring>
                     </property>
                     <property stdset="1">
                         <name>minValue</name>
                         <name>value</name>
                         <number>1</number>
                     </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Number of copies</string>
+                    </property>
                 </widget>
                 <widget>
                     <class>QCheckBox</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>collate</cstring>
+                        <cstring>collateCB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>Co&amp;llate</string>
+                        <string>&amp;Collate</string>
                     </property>
                     <property stdset="1">
                         <name>enabled</name>
                         <bool>false</bool>
                     </property>
+                    <property>
+                        <name>toolTip</name>
+                        <string>Collate copies</string>
+                    </property>
                 </widget>
                 <spacer>
                     <property>
                     <class>QPushButton</class>
                     <property stdset="1">
                         <name>name</name>
-                        <cstring>cancelPB</cstring>
+                        <cstring>closePB</cstring>
                     </property>
                     <property stdset="1">
                         <name>text</name>
-                        <string>&amp;Cancel</string>
+                        <string>Close</string>
                     </property>
                     <property stdset="1">
                         <name>default</name>
 </widget>
 <connections>
     <connection>
-        <sender>toFile</sender>
-        <signal>toggled(bool)</signal>
-        <receiver>browsePB</receiver>
-        <slot>setEnabled(bool)</slot>
+        <sender>copiesSB</sender>
+        <signal>valueChanged(int)</signal>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>copiesChanged(int)</slot>
     </connection>
     <connection>
-        <sender>toFile</sender>
-        <signal>toggled(bool)</signal>
-        <receiver>fileName</receiver>
-        <slot>setEnabled(bool)</slot>
+        <sender>printerED</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>printerChanged()</slot>
     </connection>
     <connection>
-        <sender>toFile</sender>
-        <signal>toggled(bool)</signal>
-        <receiver>printerName</receiver>
-        <slot>setDisabled(bool)</slot>
+        <sender>fileED</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>fileChanged()</slot>
     </connection>
     <connection>
-        <sender>printPB</sender>
+        <sender>browsePB</sender>
         <signal>clicked()</signal>
         <receiver>QPrintDialogBase</receiver>
-        <slot>print()</slot>
+        <slot>browseClicked()</slot>
     </connection>
     <connection>
-        <sender>cancelPB</sender>
-        <signal>clicked()</signal>
+        <sender>allRB</sender>
+        <signal>toggled(bool)</signal>
         <receiver>QPrintDialogBase</receiver>
-        <slot>cancel_adaptor()</slot>
+        <slot>change_adaptor()</slot>
     </connection>
     <connection>
-        <sender>copies</sender>
-        <signal>valueChanged(int)</signal>
+        <sender>oddRB</sender>
+        <signal>toggled(bool)</signal>
         <receiver>QPrintDialogBase</receiver>
-        <slot>set_collate(int)</slot>
+        <slot>change_adaptor()</slot>
     </connection>
     <connection>
-        <sender>browsePB</sender>
-        <signal>clicked()</signal>
+        <sender>evenRB</sender>
+        <signal>toggled(bool)</signal>
         <receiver>QPrintDialogBase</receiver>
-        <slot>browse_file()</slot>
+        <slot>change_adaptor()</slot>
     </connection>
     <connection>
-        <sender>customPages</sender>
+        <sender>reverseCB</sender>
         <signal>toggled(bool)</signal>
-        <receiver>fromPage</receiver>
-        <slot>setEnabled(bool)</slot>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>change_adaptor()</slot>
     </connection>
     <connection>
-        <sender>customPages</sender>
+        <sender>collateCB</sender>
         <signal>toggled(bool)</signal>
-        <receiver>fromPageL</receiver>
-        <slot>setEnabled(bool)</slot>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>change_adaptor()</slot>
     </connection>
     <connection>
-        <sender>customPages</sender>
+        <sender>fromED</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>pagerangeChanged()</slot>
+    </connection>
+    <connection>
+        <sender>fromED</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>change_adaptor()</slot>
+    </connection>
+    <connection>
+        <sender>toED</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>pagerangeChanged()</slot>
+    </connection>
+    <connection>
+        <sender>toED</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>change_adaptor()</slot>
+    </connection>
+    <connection>
+        <sender>fileRB</sender>
         <signal>toggled(bool)</signal>
-        <receiver>toPage</receiver>
-        <slot>setEnabled(bool)</slot>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>change_adaptor()</slot>
     </connection>
     <connection>
-        <sender>customPages</sender>
+        <sender>printerRB</sender>
         <signal>toggled(bool)</signal>
-        <receiver>toPageL</receiver>
-        <slot>setEnabled(bool)</slot>
+        <receiver>QPrintDialogBase</receiver>
+        <slot>change_adaptor()</slot>
     </connection>
-    <slot access="protected">cancel_adaptor()</slot>
-    <slot access="protected">enable_pagerange(int)</slot>
-    <slot access="protected">browse_file()</slot>
-    <slot access="protected">print()</slot>
-    <slot access="protected">set_collate(int)</slot>
+    <slot access="protected">browseClicked()</slot>
+    <slot access="public">change_adaptor()</slot>
+    <slot access="public">copiesChanged(int)</slot>
+    <slot access="public">fileChanged()</slot>
+    <slot access="protected">pagerangeChanged()</slot>
+    <slot access="public">printerChanged()</slot>
 </connections>
+<tabstops>
+    <tabstop>printerRB</tabstop>
+    <tabstop>printerED</tabstop>
+    <tabstop>fileRB</tabstop>
+    <tabstop>fileED</tabstop>
+    <tabstop>browsePB</tabstop>
+    <tabstop>allRB</tabstop>
+    <tabstop>oddRB</tabstop>
+    <tabstop>evenRB</tabstop>
+    <tabstop>fromED</tabstop>
+    <tabstop>toED</tabstop>
+    <tabstop>reverseCB</tabstop>
+    <tabstop>copiesSB</tabstop>
+    <tabstop>collateCB</tabstop>
+    <tabstop>printPB</tabstop>
+    <tabstop>closePB</tabstop>
+</tabstops>
 </UI>