src/gui/dialogs/qprintdialog_unix.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
   694 #endif
   694 #endif
   695 
   695 
   696 #ifndef QT_NO_FILESYSTEMMODEL
   696 #ifndef QT_NO_FILESYSTEMMODEL
   697     QFileSystemModel *fsm = new QFileSystemModel(widget.filename);
   697     QFileSystemModel *fsm = new QFileSystemModel(widget.filename);
   698     fsm->setRootPath(QDir::homePath());
   698     fsm->setRootPath(QDir::homePath());
   699 #if !defined(QT_NO_COMPLETER) && !defined(QT_NO_FILEDIALOG)
   699 #if !defined(QT_NO_FSCOMPLETER) && !defined(QT_NO_FILEDIALOG)
   700     widget.filename->setCompleter(new QFSCompleter(fsm, widget.filename));
   700     widget.filename->setCompleter(new QFSCompleter(fsm, widget.filename));
   701 #endif
   701 #endif
   702 #endif
   702 #endif
   703     _q_printerChanged(currentPrinterIndex);
   703     _q_printerChanged(currentPrinterIndex);
   704 
   704 
   833         _q_printerChanged(widget.printers->currentIndex());
   833         _q_printerChanged(widget.printers->currentIndex());
   834 }
   834 }
   835 
   835 
   836 void QUnixPrintWidgetPrivate::_q_btnBrowseClicked()
   836 void QUnixPrintWidgetPrivate::_q_btnBrowseClicked()
   837 {
   837 {
   838     const int prevPrinter = widget.printers->currentIndex();
       
   839     widget.printers->setCurrentIndex(widget.printers->count() - 2); // the pdf one
       
   840 
       
   841     QString filename = widget.filename->text();
   838     QString filename = widget.filename->text();
   842 #ifndef QT_NO_FILEDIALOG
   839 #ifndef QT_NO_FILEDIALOG
   843     filename = QFileDialog::getSaveFileName(parent, QPrintDialog::tr("Print To File ..."), filename,
   840     filename = QFileDialog::getSaveFileName(parent, QPrintDialog::tr("Print To File ..."), filename,
   844                                             QString(), 0, QFileDialog::DontConfirmOverwrite);
   841                                             QString(), 0, QFileDialog::DontConfirmOverwrite);
   845 #else
   842 #else
   847 #endif
   844 #endif
   848     if (!filename.isEmpty()) {
   845     if (!filename.isEmpty()) {
   849         widget.filename->setText(filename);
   846         widget.filename->setText(filename);
   850         if (filename.endsWith(QString::fromLatin1(".ps"), Qt::CaseInsensitive))
   847         if (filename.endsWith(QString::fromLatin1(".ps"), Qt::CaseInsensitive))
   851             widget.printers->setCurrentIndex(widget.printers->count() - 1); // the postscript one
   848             widget.printers->setCurrentIndex(widget.printers->count() - 1); // the postscript one
   852     }
   849         else if (filename.endsWith(QString::fromLatin1(".pdf"), Qt::CaseInsensitive))
   853     else
   850             widget.printers->setCurrentIndex(widget.printers->count() - 2); // the pdf one
   854         widget.printers->setCurrentIndex(prevPrinter);
   851         else if (widget.printers->currentIndex() != widget.printers->count() - 1) // if ps is not selected, pdf is default
       
   852             widget.printers->setCurrentIndex(widget.printers->count() - 2); // the pdf one
       
   853     }
   855 }
   854 }
   856 
   855 
   857 void QUnixPrintWidgetPrivate::applyPrinterProperties(QPrinter *p)
   856 void QUnixPrintWidgetPrivate::applyPrinterProperties(QPrinter *p)
   858 {
   857 {
   859     if (p == 0)
   858     if (p == 0)