src/gui/dialogs/qprintdialog_unix.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
--- a/src/gui/dialogs/qprintdialog_unix.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/gui/dialogs/qprintdialog_unix.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -696,7 +696,7 @@
 #ifndef QT_NO_FILESYSTEMMODEL
     QFileSystemModel *fsm = new QFileSystemModel(widget.filename);
     fsm->setRootPath(QDir::homePath());
-#if !defined(QT_NO_COMPLETER) && !defined(QT_NO_FILEDIALOG)
+#if !defined(QT_NO_FSCOMPLETER) && !defined(QT_NO_FILEDIALOG)
     widget.filename->setCompleter(new QFSCompleter(fsm, widget.filename));
 #endif
 #endif
@@ -835,9 +835,6 @@
 
 void QUnixPrintWidgetPrivate::_q_btnBrowseClicked()
 {
-    const int prevPrinter = widget.printers->currentIndex();
-    widget.printers->setCurrentIndex(widget.printers->count() - 2); // the pdf one
-
     QString filename = widget.filename->text();
 #ifndef QT_NO_FILEDIALOG
     filename = QFileDialog::getSaveFileName(parent, QPrintDialog::tr("Print To File ..."), filename,
@@ -849,9 +846,11 @@
         widget.filename->setText(filename);
         if (filename.endsWith(QString::fromLatin1(".ps"), Qt::CaseInsensitive))
             widget.printers->setCurrentIndex(widget.printers->count() - 1); // the postscript one
+        else if (filename.endsWith(QString::fromLatin1(".pdf"), Qt::CaseInsensitive))
+            widget.printers->setCurrentIndex(widget.printers->count() - 2); // the pdf one
+        else if (widget.printers->currentIndex() != widget.printers->count() - 1) // if ps is not selected, pdf is default
+            widget.printers->setCurrentIndex(widget.printers->count() - 2); // the pdf one
     }
-    else
-        widget.printers->setCurrentIndex(prevPrinter);
 }
 
 void QUnixPrintWidgetPrivate::applyPrinterProperties(QPrinter *p)