QtPrintSupport: Remove remaining LPR specific code
authorJohn Layt <jlayt@kde.org>
Sun, 29 Apr 2012 13:13:10 +0000 (14:13 +0100)
committerQt by Nokia <qt-info@nokia.com>
Mon, 7 May 2012 18:26:43 +0000 (20:26 +0200)
CUPS is the only supported print system on UNIX, LPR/PS support has
already been dropped but some LPR specific code still remains.

* Move qt_getCupsPrinterPaperSizes from qprinterinfo_unix to
  QCUPSSupport
* Remove qprinterinfo_unix as no longer used
* Remove LPR related code from QPdfPrintEngine
* Remove all QT_NO_LPR uses
* Remove most QT_NO_CUPS uses, use QT_NO_PRINTER where necessary

Some QT_NO_CUPS uses remain in QPdfPrintEngine, these will be removed
in a following change implementing a CUPS plugin.

Change-Id: I439b6fad9cf88c3d24aa48e49475f49ad310dbad
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
23 files changed:
src/corelib/global/qconfig-large.h
src/corelib/global/qconfig-medium.h
src/corelib/global/qconfig-minimal.h
src/corelib/global/qconfig-nacl.h
src/corelib/global/qconfig-small.h
src/corelib/global/qfeatures.h
src/corelib/global/qglobal.h
src/gui/painting/qpdf_p.h
src/platformsupport/printersupport/genericunix/qgenericunixprintersupport.cpp
src/printsupport/dialogs/qpagesetupdialog_unix.cpp
src/printsupport/dialogs/qprintdialog_unix.cpp
src/printsupport/kernel/kernel.pri
src/printsupport/kernel/qcups.cpp
src/printsupport/kernel/qcups_p.h
src/printsupport/kernel/qplatformprintersupport_qpa.cpp
src/printsupport/kernel/qprintengine_pdf.cpp
src/printsupport/kernel/qprintengine_pdf_p.h
src/printsupport/kernel/qprinter.cpp
src/printsupport/kernel/qprinterinfo_p.h
src/printsupport/kernel/qprinterinfo_unix.cpp [deleted file]
src/printsupport/kernel/qprinterinfo_unix_p.h [deleted file]
tests/auto/printsupport/kernel/qprinterinfo/tst_qprinterinfo.cpp
tools/configure/configureapp.cpp

index a3d241f..264ed27 100644 (file)
 #ifndef QT_NO_PRINTER
 #  define QT_NO_PRINTER
 #endif
-#ifndef QT_NO_CUPS
-#  define QT_NO_CUPS
-#endif
 
 /* Qt for Embedded Linux */
 #ifndef QT_NO_QWS_SOUNDSERVER
index ba91303..4b417f3 100644 (file)
 #ifndef QT_NO_PRINTER
 #  define QT_NO_PRINTER
 #endif
-#ifndef QT_NO_CUPS
-#  define QT_NO_CUPS
-#endif
 
 /* Qt for Embedded Linux */
 #ifndef QT_NO_QWSEMBEDWIDGET
index 57aa26b..5fa6c87 100644 (file)
 #ifndef QT_NO_PRINTER
 #  define QT_NO_PRINTER
 #endif
-#ifndef QT_NO_CUPS
-#  define QT_NO_CUPS
-#endif
 
 /* Qt for Embedded Linux */
 #ifndef QT_NO_QWSEMBEDWIDGET
index 7e48afa..083fc33 100644 (file)
 #ifndef QT_NO_PRINTER
 #  define QT_NO_PRINTER
 #endif
-#ifndef QT_NO_CUPS
-#  define QT_NO_CUPS
-#endif
 
 /* Qt for Embedded Linux */
 #ifndef QT_NO_QWSEMBEDWIDGET
index 0c0e6aa..f0b95fe 100644 (file)
 #ifndef QT_NO_PRINTER
 #  define QT_NO_PRINTER
 #endif
-#ifndef QT_NO_CUPS
-#  define QT_NO_CUPS
-#endif
 
 /* Qt for Embedded Linux */
 #ifndef QT_NO_QWS_SOUNDSERVER
index 54c1be8..d0774c5 100644 (file)
 #endif
 
 // Common UNIX Printing System
-#if !defined(QT_NO_CUPS) && (defined(QT_NO_PRINTER) || defined(QT_NO_LIBRARY))
-#define QT_NO_CUPS
+#if !defined(QT_NO_PRINTER) && defined(QT_NO_LIBRARY) && defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+#define QT_NO_PRINTER
 #endif
 
 // QErrorMessage
index a8547a3..061793c 100644 (file)
@@ -451,7 +451,6 @@ class QDataStream;
 #if defined(Q_OS_VXWORKS)
 #  define QT_NO_CRASHHANDLER     // no popen
 #  define QT_NO_PROCESS          // no exec*, no fork
-#  define QT_NO_LPR
 #  define QT_NO_SHAREDMEMORY     // only POSIX, no SysV and in the end...
 #  define QT_NO_SYSTEMSEMAPHORE  // not needed at all in a flat address space
 #endif
index b175b57..87f400c 100644 (file)
@@ -283,8 +283,6 @@ public:
     QSizeF paperSize;
     qreal leftMargin, topMargin, rightMargin, bottomMargin;
 
-    QString cupsTempFile;
-
 private:
 #ifdef USE_NATIVE_GRADIENTS
     int gradientBrush(const QBrush &b, const QMatrix &matrix, int *gStateObject);
index 2fb9562..f60bba2 100644 (file)
@@ -48,23 +48,17 @@ QT_BEGIN_NAMESPACE
 
 QList<QPrinter::PaperSize> QGenericUnixPrinterSupport::supportedPaperSizes(const QPrinterInfo &printerInfo) const
 {
-#ifndef QT_NO_CUPS
     return QCUPSSupport::getCupsPrinterPaperSizes(QPlatformPrinterSupport::printerInfoCupsPrinterIndex(printerInfo));
-#else
-    return QList<QPrinter::PaperSize>();
-#endif
 }
 
 QList<QPrinterInfo> QGenericUnixPrinterSupport::availablePrinters()
 {
     QList<QPrinterInfo> printers;
-#ifndef QT_NO_CUPS
     foreach (const QCUPSSupport::Printer &p,  QCUPSSupport::availableUnixPrinters()) {
         QPrinterInfo printer(QPlatformPrinterSupport::printerInfo(p.name, p.isDefault));
         QPlatformPrinterSupport::setPrinterInfoCupsPrinterIndex(&printer, p.cupsPrinterIndex);
         printers.append(printer);
     }
-#endif
     return printers;
 }
 
index 90fb3ef..a1e7d55 100644 (file)
 #include <private/qabstractpagesetupdialog_p.h>
 #include <private/qprinter_p.h>
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-#  include <private/qcups_p.h>
-#  include <cups/cups.h>
-#  include <private/qprintengine_pdf_p.h>
-#endif
+#include <private/qcups_p.h>
+#include <private/qprintengine_pdf_p.h>
 
 
 QT_BEGIN_NAMESPACE
@@ -224,16 +221,12 @@ public:
     void init();
 
     QPageSetupWidget *widget;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     QCUPSSupport *cups;
-#endif
 };
 
 QPageSetupDialogPrivate::~QPageSetupDialogPrivate()
 {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     delete cups;
-#endif
 }
 
 void QPageSetupDialogPrivate::init()
@@ -242,14 +235,12 @@ void QPageSetupDialogPrivate::init()
 
     widget = new QPageSetupWidget(q);
     widget->setPrinter(printer);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     if (printer->outputFormat() == QPrinter::NativeFormat && QCUPSSupport::isAvailable()) {
         cups = new QCUPSSupport;
         widget->selectPrinter(cups);
     } else {
         cups = 0;
     }
-#endif
 
     QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok
                                                      | QDialogButtonBox::Cancel,
@@ -353,9 +344,7 @@ void QPageSetupWidget::setupPrinter() const
     int ps = m_printer->pageSize();
     if (val.type() == QVariant::Int) {
         ps = val.toInt();
-    }
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-    else if (m_cups && QCUPSSupport::isAvailable() && m_cups->currentPPD()) {
+    } else if (m_cups && QCUPSSupport::isAvailable() && m_cups->currentPPD()) {
         QByteArray cupsPageSize = val.toByteArray();
         QPrintEngine *engine = m_printer->printEngine();
         engine->setProperty(PPK_CupsStringPageSize, QString::fromLatin1(cupsPageSize));
@@ -373,7 +362,7 @@ void QPageSetupWidget::setupPrinter() const
                 break;
         }
     }
-#endif
+
     if (ps == QPrinter::Custom)
         m_printer->setPaperSize(sizeForOrientation(orientation, m_paperSize), QPrinter::Point);
     else
@@ -390,7 +379,7 @@ void QPageSetupWidget::selectPrinter(QCUPSSupport *cups)
 {
     m_cups = cups;
     widget.paperSize->clear();
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+
     if (m_cups && QCUPSSupport::isAvailable()) {
         const ppd_option_t* pageSizes = m_cups->pageSizes();
         const int numChoices = pageSizes ? pageSizes->num_choices : 0;
@@ -426,7 +415,7 @@ void QPageSetupWidget::selectPrinter(QCUPSSupport *cups)
             m_bottomMargin = paper.bottom() - content.bottom();
         }
     }
-#endif
+
     if (widget.paperSize->count() == 0) {
         populatePaperSizes(widget.paperSize);
         widget.paperSize->setCurrentIndex(widget.paperSize->findData(
@@ -471,9 +460,7 @@ void QPageSetupWidget::_q_paperSizeChanged()
 
     bool custom = size == QPrinter::Custom;
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     custom = custom ? !m_cups : custom;
-#endif
 
     widget.paperWidth->setEnabled(custom);
     widget.paperHeight->setEnabled(custom);
@@ -485,16 +472,14 @@ void QPageSetupWidget::_q_paperSizeChanged()
         m_pagePreview->setPaperSize(m_paperSize);
     } else {
         Q_ASSERT(m_printer);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
         if (m_cups) { // combobox is filled with cups based data
             QByteArray cupsPageSize = widget.paperSize->itemData(widget.paperSize->currentIndex()).toByteArray();
             m_paperSize = m_cups->paperRect(cupsPageSize).size();
             if (orientation == QPrinter::Landscape)
                 m_paperSize = QSizeF(m_paperSize.height(), m_paperSize.width()); // swap
-        }
-        else
-#endif
+        } else {
             m_paperSize = qt_printerPaperSize(orientation, size, QPrinter::Point, 1);
+        }
 
         m_pagePreview->setPaperSize(m_paperSize);
         widget.paperWidth->setValue(m_paperSize.width() / m_currentMultiplier);
index f7689c1..4ba04be 100644 (file)
 #include "ui_qprintsettingsoutput.h"
 #include "ui_qprintwidget.h"
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-#  include <private/qcups_p.h>
-#  include <cups/cups.h>
-#  include <private/qprintengine_pdf_p.h>
-#else
-#  include <QtCore/qlibrary.h>
-#endif
-
-#include <private/qprinterinfo_unix_p.h>
+#include <private/qcups_p.h>
+#include <private/qprintengine_pdf_p.h>
 
 QT_BEGIN_NAMESPACE
 
@@ -82,10 +75,8 @@ public:
     QPrintPropertiesDialog(QAbstractPrintDialog *parent = 0);
     ~QPrintPropertiesDialog();
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     void setCups(QCUPSSupport *cups) { m_cups = cups; }
     void addItemToOptions(QOptionTreeItem *parent, QList<const ppd_option_t*>& options, QList<const char*>& markedOptions) const;
-#endif
 
     void selectPrinter();
     void selectPdfPsPrinter(const QPrinter *p);
@@ -100,10 +91,8 @@ protected:
 private:
     Ui::QPrintPropertiesWidget widget;
     QDialogButtonBox *m_buttons;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     QCUPSSupport *m_cups;
     QPPDOptionsModel *m_cupsOptionsModel;
-#endif
 };
 
 class QPrintDialogPrivate : public QAbstractPrintDialogPrivate
@@ -118,9 +107,7 @@ public:
     /// copy printer properties to the widget
     void applyPrinterProperties(QPrinter *p);
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     void selectPrinter(QCUPSSupport *cups);
-#endif
 
     void _q_chbPrintLastFirstToggled(bool);
 #ifndef QT_NO_MESSAGEBOX
@@ -151,9 +138,7 @@ public:
     bool checkFields();
     void setupPrinter();
     void setOptionsPane(QPrintDialogPrivate *pane);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     void setCupsProperties();
-#endif
 
 // slots
     void _q_printerChanged(int index);
@@ -165,21 +150,17 @@ public:
     Ui::QPrintWidget widget;
     QAbstractPrintDialog * q;
     QPrinter *printer;
-    QList<QPrinterDescription> lprPrinters;
     void updateWidget();
 
 private:
     QPrintDialogPrivate *optionsPane;
     bool filePrintersAdded;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     QCUPSSupport* cups;
     int cupsPrinterCount;
     const cups_dest_t* cupsPrinters;
     const ppd_file_t* cupsPPD;
-#endif
 };
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
 class QOptionTreeItem
 {
 public:
@@ -249,15 +230,10 @@ private slots:
 
 };
 
-#endif
-
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 QPrintPropertiesDialog::QPrintPropertiesDialog(QAbstractPrintDialog *parent)
-    : QDialog(parent)
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-    , m_cups(0), m_cupsOptionsModel(0)
-#endif
+    : QDialog(parent), m_cups(0), m_cupsOptionsModel(0)
 {
     QVBoxLayout *lay = new QVBoxLayout(this);
     this->setLayout(lay);
@@ -273,11 +249,7 @@ QPrintPropertiesDialog::QPrintPropertiesDialog(QAbstractPrintDialog *parent)
 
 QPrintPropertiesDialog::~QPrintPropertiesDialog()
 {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     delete m_cupsOptionsModel;
-#else
-    delete widget.cupsPropertiesPage;
-#endif
 }
 
 void QPrintPropertiesDialog::applyPrinterProperties(QPrinter *p)
@@ -289,7 +261,6 @@ void QPrintPropertiesDialog::setupPrinter() const
 {
     widget.pageSetup->setupPrinter();
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     QPPDOptionsModel* model = static_cast<QPPDOptionsModel*>(widget.treeView->model());
     if (model) {
         QOptionTreeItem* rootItem = model->rootItem;
@@ -299,12 +270,10 @@ void QPrintPropertiesDialog::setupPrinter() const
         addItemToOptions(rootItem, options, markedOptions);
         model->cups->saveOptions(options, markedOptions);
     }
-#endif
 }
 
 void QPrintPropertiesDialog::selectPrinter()
 {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     widget.pageSetup->selectPrinter(m_cups);
     widget.treeView->setModel(0);
     if (m_cups && QCUPSSupport::isAvailable()) {
@@ -329,9 +298,7 @@ void QPrintPropertiesDialog::selectPrinter()
             widget.tabs->setTabEnabled(1, false);
         }
 
-    } else
-#endif
-    {
+    } else {
         widget.cupsPropertiesPage->setEnabled(false);
         widget.pageSetup->selectPrinter(0);
     }
@@ -350,7 +317,6 @@ void QPrintPropertiesDialog::showEvent(QShowEvent* event)
     event->accept();
 }
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
 void QPrintPropertiesDialog::addItemToOptions(QOptionTreeItem *parent, QList<const ppd_option_t*>& options, QList<const char*>& markedOptions) const
 {
     for (int i = 0; i < parent->childItems.count(); ++i) {
@@ -366,7 +332,6 @@ void QPrintPropertiesDialog::addItemToOptions(QOptionTreeItem *parent, QList<con
         }
     }
 }
-#endif
 
 QPrintDialogPrivate::QPrintDialogPrivate()
     : top(0), bottom(0), buttons(0), collapseButton(0)
@@ -573,12 +538,10 @@ void QPrintDialogPrivate::setTabs(const QList<QWidget*> &tabWidgets)
     }
 }
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
 void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups)
 {
     options.duplex->setEnabled(cups && cups->ppdOption("Duplex"));
 }
-#endif
 
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -630,10 +593,8 @@ void QPrintDialog::accept()
 /*! \internal
 */
 QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p)
-    : parent(p), propertiesDialog(0), printer(0), optionsPane(0), filePrintersAdded(false)
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-    , cups(0), cupsPrinterCount(0), cupsPrinters(0), cupsPPD(0)
-#endif
+    : parent(p), propertiesDialog(0), printer(0), optionsPane(0), filePrintersAdded(false),
+      cups(0), cupsPrinterCount(0), cupsPrinters(0), cupsPPD(0)
 {
     q = 0;
     if (parent)
@@ -642,7 +603,6 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p)
     widget.setupUi(parent);
 
     int currentPrinterIndex = 0;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     cups = new QCUPSSupport;
     if (QCUPSSupport::isAvailable()) {
         cupsPPD = cups->currentPPD();
@@ -664,16 +624,7 @@ QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p)
             widget.properties->setEnabled(true);
         }
         currentPrinterIndex = cups->currentPrinterIndex();
-    } else {
-#endif
-        currentPrinterIndex = qt_getLprPrinters(lprPrinters);
-        // populating printer combo
-        QList<QPrinterDescription>::const_iterator i = lprPrinters.constBegin();
-        for(; i != lprPrinters.constEnd(); ++i)
-            widget.printers->addItem((*i).name);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     }
-#endif
 
 #if !defined(QT_NO_FILESYSTEMMODEL) && !defined(QT_NO_COMPLETER)
     QFileSystemModel *fsm = new QFileSystemModel(widget.filename);
@@ -725,9 +676,7 @@ void QUnixPrintWidgetPrivate::updateWidget()
 
 QUnixPrintWidgetPrivate::~QUnixPrintWidgetPrivate()
 {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     delete cups;
-#endif
 }
 
 void QUnixPrintWidgetPrivate::_q_printerChanged(int index)
@@ -751,16 +700,13 @@ void QUnixPrintWidgetPrivate::_q_printerChanged(int index)
             widget.lOutput->setEnabled(true);
             if (propertiesDialog)
                 propertiesDialog->selectPdfPsPrinter(printer);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
             if (optionsPane)
                 optionsPane->selectPrinter(0);
-#endif
             return;
         }
     }
 
     widget.location->setText(QString());
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     if (QCUPSSupport::isAvailable()) {
         cups->setCurrentPrinter(index);
 
@@ -780,21 +726,7 @@ void QUnixPrintWidgetPrivate::_q_printerChanged(int index)
             propertiesDialog->selectPrinter();
         if (optionsPane)
             optionsPane->selectPrinter(cups);
-    } else {
-        if (optionsPane)
-            optionsPane->selectPrinter(0);
-#endif
-        if (lprPrinters.count() > 0) {
-            QString type = lprPrinters.at(index).name + QLatin1Char('@') + lprPrinters.at(index).host;
-            if (!lprPrinters.at(index).comment.isEmpty())
-            type += QLatin1String(", ") + lprPrinters.at(index).comment;
-            widget.type->setText(type);
-            if (propertiesDialog)
-                propertiesDialog->selectPrinter();
-        }
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     }
-#endif
 }
 
 void QUnixPrintWidgetPrivate::setOptionsPane(QPrintDialogPrivate *pane)
@@ -908,9 +840,7 @@ void QUnixPrintWidgetPrivate::_q_btnPropertiesClicked()
     }
 
     if (propertiesDialog->result() == QDialog::Rejected) {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
         propertiesDialog->setCups(cups);
-#endif
         propertiesDialog->applyPrinterProperties(q->printer());
 
         if (q->isOptionEnabled(QPrintDialog::PrintToFile)
@@ -922,7 +852,6 @@ void QUnixPrintWidgetPrivate::_q_btnPropertiesClicked()
     propertiesDialog->exec();
 }
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
 void QUnixPrintWidgetPrivate::setCupsProperties()
 {
     if (cups && QCUPSSupport::isAvailable() && cups->pageSizes()) {
@@ -949,7 +878,6 @@ void QUnixPrintWidgetPrivate::setCupsProperties()
         }
     }
 }
-#endif
 
 void QUnixPrintWidgetPrivate::setupPrinter()
 {
@@ -972,10 +900,8 @@ void QUnixPrintWidgetPrivate::setupPrinter()
 
     if (propertiesDialog && propertiesDialog->result() == QDialog::Accepted)
         propertiesDialog->setupPrinter();
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     if (!propertiesDialog)
         setCupsProperties();
-#endif
 }
 
 
@@ -1004,7 +930,6 @@ void QUnixPrintWidget::updatePrinter()
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
 
 QPPDOptionsModel::QPPDOptionsModel(QCUPSSupport *c, QObject *parent)
     : QAbstractItemModel(parent), rootItem(0), cups(c), ppd(c->currentPPD())
@@ -1244,7 +1169,6 @@ void QPPDOptionsEditor::cbChanged(int)
 */
 }
 
-#endif // !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
 #endif // defined (Q_OS_UNIX)
 
 QT_END_NAMESPACE
index 10d9f87..d3a48b8 100644 (file)
@@ -18,13 +18,6 @@ SOURCES += \
         $$PWD/qplatformprintplugin.cpp \
         $$PWD/qplatformprintersupport_qpa.cpp
 
-unix:!mac {
-        HEADERS += \
-                $$PWD/qprinterinfo_unix_p.h
-        SOURCES += \
-                $$PWD/qprinterinfo_unix.cpp
-}
-
 win32 {
         HEADERS += \
                 $$PWD/qprintengine_win_p.h
@@ -34,7 +27,7 @@ win32 {
 }
 
 mac|win32 {
-        DEFINES += QT_NO_CUPS QT_NO_LPR
+        DEFINES += QT_NO_CUPS
 } else {
         SOURCES += $$PWD/qcups.cpp
         HEADERS += $$PWD/qcups_p.h
index 1f8bed5..98aecd8 100644 (file)
@@ -40,9 +40,8 @@
 ****************************************************************************/
 #include <qdebug.h>
 #include "qcups_p.h"
-#include "qprinterinfo_unix_p.h"
 
-#ifndef QT_NO_CUPS
+#ifndef QT_NO_PRINTER
 
 #ifndef QT_LINUXBASE // LSB merges everything into cups.h
 # include <cups/language.h>
@@ -405,7 +404,6 @@ QList<QCUPSSupport::Printer> QCUPSSupport::availableUnixPrinters()
 {
     QList<Printer> printers;
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     if (QCUPSSupport::isAvailable()) {
         QCUPSSupport cups;
         int cupsPrinterCount = cups.availablePrintersCount();
@@ -421,26 +419,85 @@ QList<QCUPSSupport::Printer> QCUPSSupport::availableUnixPrinters()
             p.cupsPrinterIndex = i;
             printers.append(p);
         }
-    } else
-#endif
-           {
-        QList<QPrinterDescription> lprPrinters;
-        int defprn = qt_getLprPrinters(lprPrinters);
-        // populating printer combo
-        foreach (const QPrinterDescription &description, lprPrinters)
-            printers.append(Printer(description.name));
-        if (defprn >= 0 && defprn < printers.size())
-            printers[defprn].isDefault = true;
     }
 
     return printers;
 }
 
+// preserve names in ascending order for the binary search
+static const struct NamedPaperSize {
+    const char *const name;
+    QPrinter::PaperSize size;
+} named_sizes_map[QPrinter::NPageSize] = {
+    { "A0", QPrinter::A0 },
+    { "A1", QPrinter::A1 },
+    { "A2", QPrinter::A2 },
+    { "A3", QPrinter::A3 },
+    { "A4", QPrinter::A4 },
+    { "A5", QPrinter::A5 },
+    { "A6", QPrinter::A6 },
+    { "A7", QPrinter::A7 },
+    { "A8", QPrinter::A8 },
+    { "A9", QPrinter::A9 },
+    { "B0", QPrinter::B0 },
+    { "B1", QPrinter::B1 },
+    { "B10", QPrinter::B10 },
+    { "B2", QPrinter::B2 },
+    { "B4", QPrinter::B4 },
+    { "B5", QPrinter::B5 },
+    { "B6", QPrinter::B6 },
+    { "B7", QPrinter::B7 },
+    { "B8", QPrinter::B8 },
+    { "B9", QPrinter::B9 },
+    { "C5E", QPrinter::C5E },
+    { "Comm10E", QPrinter::Comm10E },
+    { "Custom", QPrinter::Custom },
+    { "DLE", QPrinter::DLE },
+    { "Executive", QPrinter::Executive },
+    { "Folio", QPrinter::Folio },
+    { "Ledger", QPrinter::Ledger },
+    { "Legal", QPrinter::Legal },
+    { "Letter", QPrinter::Letter },
+    { "Tabloid", QPrinter::Tabloid }
+};
+
+inline bool operator<(const char *name, const NamedPaperSize &data)
+{ return qstrcmp(name, data.name) < 0; }
+inline bool operator<(const NamedPaperSize &data, const char *name)
+{ return qstrcmp(data.name, name) < 0; }
+
+static inline QPrinter::PaperSize string2PaperSize(const char *name)
+{
+    const NamedPaperSize *r = qBinaryFind(named_sizes_map, named_sizes_map + QPrinter::NPageSize, name);
+    if (r - named_sizes_map != QPrinter::NPageSize)
+        return r->size;
+    return QPrinter::Custom;
+}
+
+static inline const char *paperSize2String(QPrinter::PaperSize size)
+{
+    for (int i = 0; i < QPrinter::NPageSize; ++i) {
+        if (size == named_sizes_map[i].size)
+            return named_sizes_map[i].name;
+    }
+    return 0;
+}
+
 QList<QPrinter::PaperSize> QCUPSSupport::getCupsPrinterPaperSizes(int cupsPrinterIndex)
 {
-    return qt_getCupsPrinterPaperSizes(cupsPrinterIndex);
+    QList<QPrinter::PaperSize> result;
+    if (!QCUPSSupport::isAvailable() || cupsPrinterIndex < 0)
+        return result;
+    // Find paper sizes from CUPS.
+    QCUPSSupport cups;
+    cups.setCurrentPrinter(cupsPrinterIndex);
+    if (const ppd_option_t* size = cups.pageSizes()) {
+        for (int j = 0; j < size->num_choices; ++j)
+            result.append(string2PaperSize(size->choices[j].choice));
+    }
+    return result;
 }
 
 QT_END_NAMESPACE
 
-#endif // QT_NO_CUPS
+#endif // QT_NO_PRINTER
index cbf153f..0e61975 100644 (file)
@@ -57,7 +57,7 @@
 #include "QtCore/qpair.h"
 #include "QtPrintSupport/qprinter.h"
 
-#ifndef QT_NO_CUPS
+#ifndef QT_NO_PRINTER
 #include <QtCore/qlibrary.h>
 #include <cups/cups.h>
 #include <cups/ppd.h>
@@ -128,6 +128,6 @@ private:
 
 QT_END_NAMESPACE
 
-#endif // QT_NO_CUPS
+#endif // QT_NO_PRINTER
 
 #endif
index 9c0c3f1..2680e28 100644 (file)
@@ -116,22 +116,12 @@ bool QPlatformPrinterSupport::printerInfoIsDefault(const QPrinterInfo &p)
 
 int QPlatformPrinterSupport::printerInfoCupsPrinterIndex(const QPrinterInfo &p)
 {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     return p.isNull() ? -1 : p.d_func()->cupsPrinterIndex;
-#else
-    Q_UNUSED(p)
-    return -1;
-#endif
 }
 
 void QPlatformPrinterSupport::setPrinterInfoCupsPrinterIndex(QPrinterInfo *p, int index)
 {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     p->d_func()->cupsPrinterIndex = index;
-#else
-    Q_UNUSED(p)
-    Q_UNUSED(index)
-#endif
 }
 
 /*
index 9c2e209..a1690aa 100644 (file)
 **
 ****************************************************************************/
 
-#include <QtPrintSupport/qprintengine.h>
+#include "qprintengine_pdf_p.h"
+
+#ifndef QT_NO_PRINTER
 
 #include <qiodevice.h>
 #include <qfile.h>
 #include <qdebug.h>
 #include <qbuffer.h>
+#if !defined(QT_NO_CUPS)
 #include "private/qcups_p.h"
+#endif
 #include "qprinterinfo.h"
 
-#ifndef QT_NO_PRINTER
 #include <limits.h>
 #include <math.h>
 
-#include "qprintengine_pdf_p.h"
 
 #ifdef Q_OS_UNIX
 #include "private/qcore_unix_p.h" // overrides QT_OPEN
@@ -96,7 +98,7 @@ QPdfPrintEngine::QPdfPrintEngine(QPrinter::PrinterMode m)
     : QPdfEngine(*new QPdfPrintEnginePrivate(m))
 {
     Q_D(QPdfPrintEngine);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+#if !defined(QT_NO_CUPS)
     if (QCUPSSupport::isAvailable()) {
         QCUPSSupport cups;
         const cups_dest_t* printers = cups.availablePrinters();
@@ -109,17 +111,8 @@ QPdfPrintEngine::QPdfPrintEngine(QPrinter::PrinterMode m)
             }
         }
 
-    } else
-#endif
-    {
-        d->printerName = QString::fromLocal8Bit(qgetenv("PRINTER"));
-        if (d->printerName.isEmpty())
-            d->printerName = QString::fromLocal8Bit(qgetenv("LPDEST"));
-        if (d->printerName.isEmpty())
-            d->printerName = QString::fromLocal8Bit(qgetenv("NPRINTER"));
-        if (d->printerName.isEmpty())
-            d->printerName = QString::fromLocal8Bit(qgetenv("NGPRINTER"));
     }
+#endif // QT_NO_CUPS
 
     state = QPrinter::Idle;
 }
@@ -278,19 +271,19 @@ QVariant QPdfPrintEngine::property(PrintEnginePropertyKey key) const
         ret = d->copies;
         break;
     case PPK_SupportsMultipleCopies:
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+#if !defined(QT_NO_CUPS)
         if (QCUPSSupport::isAvailable())
             ret = true;
         else
-#endif
+#endif // QT_NO_CUPS
             ret = false;
         break;
     case PPK_NumberOfCopies:
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+#if !defined(QT_NO_CUPS)
         if (QCUPSSupport::isAvailable())
             ret = 1;
         else
-#endif
+#endif // QT_NO_CUPS
             ret = d->copies;
         break;
     case PPK_Orientation:
@@ -365,28 +358,6 @@ QVariant QPdfPrintEngine::property(PrintEnginePropertyKey key) const
 }
 
 
-#ifndef QT_NO_LPR
-static void closeAllOpenFds()
-{
-    // hack time... getting the maximum number of open
-    // files, if possible.  if not we assume it's the
-    // larger of 256 and the fd we got
-    int i;
-#if defined(_SC_OPEN_MAX)
-    i = (int)sysconf(_SC_OPEN_MAX);
-#elif defined(_POSIX_OPEN_MAX)
-    i = (int)_POSIX_OPEN_MAX;
-#elif defined(OPEN_MAX)
-    i = (int)OPEN_MAX;
-#else
-    i = 256;
-#endif
-    // leave stdin/out/err untouched
-    while(--i > 2)
-        QT_CLOSE(i);
-}
-#endif
-
 bool QPdfPrintEnginePrivate::openPrintDevice()
 {
     if (outDevice)
@@ -399,7 +370,7 @@ bool QPdfPrintEnginePrivate::openPrintDevice()
             return false;
         }
         outDevice = file;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+#if !defined(QT_NO_CUPS)
     } else if (QCUPSSupport::isAvailable()) {
         QCUPSSupport cups;
         QPair<int, QString> ret = cups.tempFd();
@@ -410,119 +381,7 @@ bool QPdfPrintEnginePrivate::openPrintDevice()
         cupsTempFile = ret.second;
         outDevice = new QFile();
         static_cast<QFile *>(outDevice)->open(ret.first, QIODevice::WriteOnly);
-#endif
-#ifndef QT_NO_LPR
-    } else {
-        QString pr;
-        if (!printerName.isEmpty())
-            pr = printerName;
-        int fds[2];
-        if (qt_safe_pipe(fds) != 0) {
-            qWarning("QPdfPrinter: Could not open pipe to print");
-            return false;
-        }
-
-        pid_t pid = fork();
-        if (pid == 0) {       // child process
-            // if possible, exit quickly, so the actual lp/lpr
-            // becomes a child of init, and ::waitpid() is
-            // guaranteed not to wait.
-            if (fork() > 0) {
-                closeAllOpenFds();
-
-                // try to replace this process with "true" - this prevents
-                // global destructors from being called (that could possibly
-                // do wrong things to the parent process)
-                (void)execlp("true", "true", (char *)0);
-                (void)execl("/bin/true", "true", (char *)0);
-                (void)execl("/usr/bin/true", "true", (char *)0);
-                ::_exit(0);
-            }
-            qt_safe_dup2(fds[0], 0, 0);
-
-            closeAllOpenFds();
-
-            if (!printProgram.isEmpty()) {
-                if (!selectionOption.isEmpty())
-                    pr.prepend(selectionOption);
-                else
-                    pr.prepend(QLatin1String("-P"));
-                (void)execlp(printProgram.toLocal8Bit().data(), printProgram.toLocal8Bit().data(),
-                             pr.toLocal8Bit().data(), (char *)0);
-            } else {
-                // if no print program has been specified, be smart
-                // about the option string too.
-                QList<QByteArray> lprhack;
-                QList<QByteArray> lphack;
-                QByteArray media;
-                if (!pr.isEmpty() || !selectionOption.isEmpty()) {
-                    if (!selectionOption.isEmpty()) {
-                        QStringList list = selectionOption.split(QLatin1Char(' '));
-                        for (int i = 0; i < list.size(); ++i)
-                            lprhack.append(list.at(i).toLocal8Bit());
-                        lphack = lprhack;
-                    } else {
-                        lprhack.append("-P");
-                        lphack.append("-d");
-                    }
-                    lprhack.append(pr.toLocal8Bit());
-                    lphack.append(pr.toLocal8Bit());
-                }
-                lphack.append("-s");
-
-                char ** lpargs = new char *[lphack.size()+6];
-                char lp[] = "lp";
-                lpargs[0] = lp;
-                int i;
-                for (i = 0; i < lphack.size(); ++i)
-                    lpargs[i+1] = (char *)lphack.at(i).constData();
-#ifndef Q_OS_OSF
-                if (QPdf::paperSizeToString(printerPaperSize)) {
-                    char dash_o[] = "-o";
-                    lpargs[++i] = dash_o;
-                    lpargs[++i] = const_cast<char *>(QPdf::paperSizeToString(printerPaperSize));
-                    lpargs[++i] = dash_o;
-                    media = "media=";
-                    media += QPdf::paperSizeToString(printerPaperSize);
-                    lpargs[++i] = media.data();
-                }
-#endif
-                lpargs[++i] = 0;
-                char **lprargs = new char *[lprhack.size()+2];
-                char lpr[] = "lpr";
-                lprargs[0] = lpr;
-                for (int i = 0; i < lprhack.size(); ++i)
-                    lprargs[i+1] = (char *)lprhack[i].constData();
-                lprargs[lprhack.size() + 1] = 0;
-                (void)execvp("lp", lpargs);
-                (void)execvp("lpr", lprargs);
-                (void)execv("/bin/lp", lpargs);
-                (void)execv("/bin/lpr", lprargs);
-                (void)execv("/usr/bin/lp", lpargs);
-                (void)execv("/usr/bin/lpr", lprargs);
-
-                delete []lpargs;
-                delete []lprargs;
-            }
-            // if we couldn't exec anything, close the fd,
-            // wait for a second so the parent process (the
-            // child of the GUI process) has exited.  then
-            // exit.
-            QT_CLOSE(0);
-            (void)::sleep(1);
-            ::_exit(0);
-        }
-        // parent process
-        QT_CLOSE(fds[0]);
-        fd = fds[1];
-        (void)qt_safe_waitpid(pid, 0, 0);
-
-        if (fd < 0)
-            return false;
-
-        outDevice = new QFile();
-        static_cast<QFile *>(outDevice)->open(fd, QIODevice::WriteOnly);
-#endif
+#endif // QT_NO_CUPS
     }
 
     return true;
@@ -543,7 +402,7 @@ void QPdfPrintEnginePrivate::closePrintDevice()
         outDevice = 0;
     }
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+#if !defined(QT_NO_CUPS)
     if (!cupsTempFile.isEmpty()) {
         QString tempFile = cupsTempFile;
         cupsTempFile.clear();
@@ -620,7 +479,7 @@ void QPdfPrintEnginePrivate::closePrintDevice()
 
         QFile::remove(tempFile);
     }
-#endif
+#endif // QT_NO_CUPS
 }
 
 
index 52ade83..83f952a 100644 (file)
@@ -156,6 +156,9 @@ private:
     QSizeF customPaperSize; // in postscript points
 
     int fd;
+#if !defined(QT_NO_CUPS)
+    QString cupsTempFile;
+#endif // QT_NO_CUPS
 };
 
 QT_END_NAMESPACE
index 4929b33..a0033aa 100644 (file)
 
 #include "qprinter_p.h"
 #include "qprinter.h"
+
+#ifndef QT_NO_PRINTER
+
 #include "qprintengine.h"
 #include "qprinterinfo.h"
 #include "qlist.h"
 #include <qcoreapplication.h>
 #include <qfileinfo.h>
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+#if !defined(QT_NO_CUPS)
 #include "private/qcups_p.h"
 #endif
 
-#ifndef QT_NO_PRINTER
-
 #include <qpa/qplatformprintplugin.h>
 #include <qpa/qplatformprintersupport.h>
 #include <private/qpagedpaintdevice_p.h>
@@ -236,7 +237,7 @@ void QPrinterPrivate::addToManualSetList(QPrintEngine::PrintEnginePropertyKey ke
 
   When printing directly to a printer on Windows or Mac OS X, QPrinter uses
   the built-in printer drivers. On X11, QPrinter uses the
-  \l{Common Unix Printing System (CUPS)} or the standard Unix \l lpr utility
+  \l{Common Unix Printing System (CUPS)}
   to send PDF output to the printer. As an alternative,
   the printProgram() function can be used to specify the command or utility
   to use instead of the system default.
@@ -554,7 +555,7 @@ void QPrinterPrivate::init(QPrinter::PrinterMode mode)
     realPrintEngine = 0;
     realPaintEngine = 0;
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+#if !defined(QT_NO_CUPS)
     if (QCUPSSupport::cupsVersion() >= 10200 && QCUPSSupport().currentPPD()) {
         q_func()->setOutputFormat(QPrinter::PdfFormat);
         outputFormat = QPrinter::NativeFormat;
index ee13976..c025de7 100644 (file)
@@ -66,9 +66,7 @@ class QPrinterInfoPrivate
 public:
     QPrinterInfoPrivate(const QString& name = QString()) :
         name(name), isDefault(false)
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
         , cupsPrinterIndex(0)
-#endif
         , hasPaperSizes(false)
     {}
     ~QPrinterInfoPrivate()
@@ -79,9 +77,7 @@ public:
     QString name;
     bool isDefault;
 
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
     int cupsPrinterIndex;
-#endif
     mutable bool hasPaperSizes;
     mutable QList<QPrinter::PaperSize> paperSizes;
 };
diff --git a/src/printsupport/kernel/qprinterinfo_unix.cpp b/src/printsupport/kernel/qprinterinfo_unix.cpp
deleted file mode 100644 (file)
index 05908dc..0000000
+++ /dev/null
@@ -1,858 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qprinterinfo.h"
-#include "qprinterinfo_p.h"
-
-#include <qfile.h>
-#include <qfileinfo.h>
-#include <qdir.h>
-#include <qlibrary.h>
-#include <qtextstream.h>
-#include <qcoreapplication.h>
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-#  include <private/qcups_p.h>
-#  include <cups/cups.h>
-#  include <private/qpdf_p.h>
-#endif
-
-#include <private/qprinterinfo_unix_p.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_NO_PRINTER
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-// preserver names in ascending order for the binary search
-static const struct NamedPaperSize {
-    const char *const name;
-    QPrinter::PaperSize size;
-} named_sizes_map[QPrinter::NPageSize] = {
-    { "A0", QPrinter::A0 },
-    { "A1", QPrinter::A1 },
-    { "A2", QPrinter::A2 },
-    { "A3", QPrinter::A3 },
-    { "A4", QPrinter::A4 },
-    { "A5", QPrinter::A5 },
-    { "A6", QPrinter::A6 },
-    { "A7", QPrinter::A7 },
-    { "A8", QPrinter::A8 },
-    { "A9", QPrinter::A9 },
-    { "B0", QPrinter::B0 },
-    { "B1", QPrinter::B1 },
-    { "B10", QPrinter::B10 },
-    { "B2", QPrinter::B2 },
-    { "B4", QPrinter::B4 },
-    { "B5", QPrinter::B5 },
-    { "B6", QPrinter::B6 },
-    { "B7", QPrinter::B7 },
-    { "B8", QPrinter::B8 },
-    { "B9", QPrinter::B9 },
-    { "C5E", QPrinter::C5E },
-    { "Comm10E", QPrinter::Comm10E },
-    { "Custom", QPrinter::Custom },
-    { "DLE", QPrinter::DLE },
-    { "Executive", QPrinter::Executive },
-    { "Folio", QPrinter::Folio },
-    { "Ledger", QPrinter::Ledger },
-    { "Legal", QPrinter::Legal },
-    { "Letter", QPrinter::Letter },
-    { "Tabloid", QPrinter::Tabloid }
-};
-
-inline bool operator<(const char *name, const NamedPaperSize &data)
-{ return qstrcmp(name, data.name) < 0; }
-inline bool operator<(const NamedPaperSize &data, const char *name)
-{ return qstrcmp(data.name, name) < 0; }
-
-static inline QPrinter::PaperSize string2PaperSize(const char *name)
-{
-    const NamedPaperSize *r = qBinaryFind(named_sizes_map, named_sizes_map + QPrinter::NPageSize, name);
-    if (r - named_sizes_map != QPrinter::NPageSize)
-        return r->size;
-    return QPrinter::Custom;
-}
-
-static inline const char *paperSize2String(QPrinter::PaperSize size)
-{
-    for (int i = 0; i < QPrinter::NPageSize; ++i) {
-        if (size == named_sizes_map[i].size)
-            return named_sizes_map[i].name;
-    }
-    return 0;
-}
-#endif
-
-void qt_perhapsAddPrinter(QList<QPrinterDescription> *printers, const QString &name,
-                               QString host, QString comment,
-                               QStringList aliases)
-{
-    for (int i = 0; i < printers->size(); ++i)
-        if (printers->at(i).samePrinter(name))
-            return;
-
-    if (host.isEmpty())
-        host = QCoreApplication::translate("QPrinter", "locally connected");
-    printers->append(QPrinterDescription(name.simplified(), host.simplified(), comment.simplified(), aliases));
-}
-
-void qt_parsePrinterDesc(QString printerDesc, QList<QPrinterDescription> *printers)
-{
-    if (printerDesc.length() < 1)
-        return;
-
-    printerDesc = printerDesc.simplified();
-    int i = printerDesc.indexOf(QLatin1Char(':'));
-    QString printerName, printerComment, printerHost;
-    QStringList aliases;
-
-    if (i >= 0) {
-        // have ':' want '|'
-        int j = printerDesc.indexOf(QLatin1Char('|'));
-        if (j > 0 && j < i) {
-            printerName = printerDesc.left(j);
-            aliases = printerDesc.mid(j + 1, i - j - 1).split(QLatin1Char('|'));
-            // try extracting a comment from the aliases
-            printerComment = QCoreApplication::translate("QPrinter", "Aliases: %1")
-                             .arg(aliases.join(QLatin1String(", ")));
-        } else {
-            printerName = printerDesc.left(i);
-        }
-        // look for lprng pseudo all printers entry
-        i = printerDesc.indexOf(QRegExp(QLatin1String(": *all *=")));
-        if (i >= 0)
-            printerName = QString();
-        // look for signs of this being a remote printer
-        i = printerDesc.indexOf(QRegExp(QLatin1String(": *rm *=")));
-        if (i >= 0) {
-            // point k at the end of remote host name
-            while (printerDesc[i] != QLatin1Char('='))
-                i++;
-            while (printerDesc[i] == QLatin1Char('=') || printerDesc[i].isSpace())
-                i++;
-            j = i;
-            while (j < (int)printerDesc.length() && printerDesc[j] != QLatin1Char(':'))
-                j++;
-
-            // and stuff that into the string
-            printerHost = printerDesc.mid(i, j - i);
-        }
-    }
-    if (printerName.length())
-        qt_perhapsAddPrinter(printers, printerName, printerHost, printerComment,
-                             aliases);
-}
-
-int qt_parsePrintcap(QList<QPrinterDescription> *printers, const QString& fileName)
-{
-    QFile printcap(fileName);
-    if (!printcap.open(QIODevice::ReadOnly))
-        return NotFound;
-
-    char *line_ascii = new char[1025];
-    line_ascii[1024] = '\0';
-
-    QString printerDesc;
-    bool atEnd = false;
-
-    while (!atEnd) {
-        if (printcap.atEnd() || printcap.readLine(line_ascii, 1024) <= 0)
-            atEnd = true;
-        QString line = QString::fromLocal8Bit(line_ascii);
-        line = line.trimmed();
-        if (line.length() >= 1 && line[int(line.length()) - 1] == QLatin1Char('\\'))
-            line.chop(1);
-        if (line[0] == QLatin1Char('#')) {
-            if (!atEnd)
-                continue;
-        } else if (line[0] == QLatin1Char('|') || line[0] == QLatin1Char(':')
-                || line.isEmpty()) {
-            printerDesc += line;
-            if (!atEnd)
-                continue;
-        }
-
-        qt_parsePrinterDesc(printerDesc, printers);
-
-        // add the first line of the new printer definition
-        printerDesc = line;
-    }
-    delete[] line_ascii;
-    return Success;
-}
-
-/*!
-  \internal
-
-  Checks $HOME/.printers for a line matching '_default <name>' (where
-  <name> does not contain any white space). The first such match
-  results in <name> being returned.
-  If no lines match then an empty string is returned.
-*/
-QString qt_getDefaultFromHomePrinters()
-{
-    QFile file(QDir::homePath() + QLatin1String("/.printers"));
-    if (!file.open(QIODevice::ReadOnly))
-        return QString();
-    QString all(QLatin1String(file.readAll()));
-    QStringList words = all.split(QRegExp(QLatin1String("\\W+")), QString::SkipEmptyParts);
-    const int i = words.indexOf(QLatin1String("_default"));
-    if (i != -1 && i < words.size() - 1)
-        return words.at(i + 1);
-    return QString();
-}
-
-// solaris, not 2.6
-void qt_parseEtcLpPrinters(QList<QPrinterDescription> *printers)
-{
-    QDir lp(QLatin1String("/etc/lp/printers"));
-    QFileInfoList dirs = lp.entryInfoList();
-    if (dirs.isEmpty())
-        return;
-
-    QString tmp;
-    for (int i = 0; i < dirs.size(); ++i) {
-        QFileInfo printer = dirs.at(i);
-        if (printer.isDir()) {
-            tmp.sprintf("/etc/lp/printers/%s/configuration",
-                         QFile::encodeName(printer.fileName()).data());
-            QFile configuration(tmp);
-            char *line = new char[1025];
-            QString remote(QLatin1String("Remote:"));
-            QString contentType(QLatin1String("Content types:"));
-            QString printerHost;
-            bool canPrintPostscript = false;
-            if (configuration.open(QIODevice::ReadOnly)) {
-                while (!configuration.atEnd() &&
-                        configuration.readLine(line, 1024) > 0) {
-                    if (QString::fromLatin1(line).startsWith(remote)) {
-                        const char *p = line;
-                        while (*p != ':')
-                            p++;
-                        p++;
-                        while (isspace((uchar) *p))
-                            p++;
-                        printerHost = QString::fromLocal8Bit(p);
-                        printerHost = printerHost.simplified();
-                    } else if (QString::fromLatin1(line).startsWith(contentType)) {
-                        char *p = line;
-                        while (*p != ':')
-                            p++;
-                        p++;
-                        char *e;
-                        while (*p) {
-                            while (isspace((uchar) *p))
-                                p++;
-                            if (*p) {
-                                char s;
-                                e = p;
-                                while (isalnum((uchar) *e))
-                                    e++;
-                                s = *e;
-                                *e = '\0';
-                                if (!qstrcmp(p, "postscript") ||
-                                     !qstrcmp(p, "any"))
-                                    canPrintPostscript = true;
-                                *e = s;
-                                if (s == ',')
-                                    e++;
-                                p = e;
-                            }
-                        }
-                    }
-                }
-                if (canPrintPostscript)
-                    qt_perhapsAddPrinter(printers, printer.fileName(),
-                                         printerHost, QLatin1String(""));
-            }
-            delete[] line;
-        }
-    }
-}
-
-// solaris 2.6
-char *qt_parsePrintersConf(QList<QPrinterDescription> *printers, bool *found)
-{
-    QFile pc(QLatin1String("/etc/printers.conf"));
-    if (!pc.open(QIODevice::ReadOnly)) {
-        if (found)
-            *found = false;
-        return 0;
-    }
-    if (found)
-        *found = true;
-
-    char *line = new char[1025];
-    line[1024] = '\0';
-
-    QString printerDesc;
-    int lineLength = 0;
-
-    char *defaultPrinter = 0;
-
-    while (!pc.atEnd() &&
-            (lineLength=pc.readLine(line, 1024)) > 0) {
-        if (*line == '#') {
-            *line = '\0';
-            lineLength = 0;
-        }
-        if (lineLength >= 2 && line[lineLength-2] == '\\') {
-            line[lineLength-2] = '\0';
-            printerDesc += QString::fromLocal8Bit(line);
-        } else {
-            printerDesc += QString::fromLocal8Bit(line);
-            printerDesc = printerDesc.simplified();
-            int i = printerDesc.indexOf(QLatin1Char(':'));
-            QString printerName, printerHost, printerComment;
-            QStringList aliases;
-            if (i >= 0) {
-                // have : want |
-                int j = printerDesc.indexOf(QLatin1Char('|'));
-                if (j >= i)
-                    j = -1;
-                printerName = printerDesc.mid(0, j < 0 ? i : j);
-                if (printerName == QLatin1String("_default")) {
-                    i = printerDesc.indexOf(
-                        QRegExp(QLatin1String(": *use *=")));
-                    while (printerDesc[i] != QLatin1Char('='))
-                        i++;
-                    while (printerDesc[i] == QLatin1Char('=') || printerDesc[i].isSpace())
-                        i++;
-                    j = i;
-                    while (j < (int)printerDesc.length() &&
-                            printerDesc[j] != QLatin1Char(':') && printerDesc[j] != QLatin1Char(','))
-                        j++;
-                    // that's our default printer
-                    defaultPrinter =
-                        qstrdup(printerDesc.mid(i, j-i).toLatin1().data());
-                    printerName = QString();
-                    printerDesc = QString();
-                } else if (printerName == QLatin1String("_all")) {
-                    // skip it.. any other cases we want to skip?
-                    printerName = QString();
-                    printerDesc = QString();
-                }
-
-                if (j > 0) {
-                    // try extracting a comment from the aliases
-                    aliases = printerDesc.mid(j + 1, i - j - 1).split(QLatin1Char('|'));
-                    printerComment = QCoreApplication::translate("QPrinter", "Aliases: %1")
-                                     .arg(aliases.join(QLatin1String(", ")));
-                }
-                // look for signs of this being a remote printer
-                i = printerDesc.indexOf(
-                    QRegExp(QLatin1String(": *bsdaddr *=")));
-                if (i >= 0) {
-                    // point k at the end of remote host name
-                    while (printerDesc[i] != QLatin1Char('='))
-                        i++;
-                    while (printerDesc[i] == QLatin1Char('=') || printerDesc[i].isSpace())
-                        i++;
-                    j = i;
-                    while (j < (int)printerDesc.length() &&
-                            printerDesc[j] != QLatin1Char(':') && printerDesc[j] != QLatin1Char(','))
-                        j++;
-                    // and stuff that into the string
-                    printerHost = printerDesc.mid(i, j-i);
-                    // maybe stick the remote printer name into the comment
-                    if (printerDesc[j] == QLatin1Char(',')) {
-                        i = ++j;
-                        while (printerDesc[i].isSpace())
-                            i++;
-                        j = i;
-                        while (j < (int)printerDesc.length() &&
-                                printerDesc[j] != QLatin1Char(':') && printerDesc[j] != QLatin1Char(','))
-                            j++;
-                        if (printerName != printerDesc.mid(i, j-i)) {
-                            printerComment =
-                                QLatin1String("Remote name: ");
-                            printerComment += printerDesc.mid(i, j-i);
-                        }
-                    }
-                }
-            }
-            if (printerComment == QLatin1String(":"))
-                printerComment = QString(); // for cups
-            if (printerName.length())
-                qt_perhapsAddPrinter(printers, printerName, printerHost,
-                                     printerComment, aliases);
-            // chop away the line, for processing the next one
-            printerDesc = QString();
-        }
-    }
-    delete[] line;
-    return defaultPrinter;
-}
-
-#ifndef QT_NO_NIS
-
-#if defined(Q_C_CALLBACKS)
-extern "C" {
-#endif
-
-int qt_pd_foreach(int /*status */, char * /*key */, int /*keyLen */,
-                    char *val, int valLen, char *data)
-{
-    qt_parsePrinterDesc(QString::fromLatin1(val, valLen), (QList<QPrinterDescription> *)data);
-    return 0;
-}
-
-#if defined(Q_C_CALLBACKS)
-}
-#endif
-
-int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers)
-{
-#ifndef QT_NO_LIBRARY
-    typedef int (*WildCast)(int, char *, int, char *, int, char *);
-    char printersConfByname[] = "printers.conf.byname";
-    char *domain;
-    int err;
-
-    QLibrary lib(QLatin1String("nsl"));
-    typedef int (*ypGetDefaultDomain)(char **);
-    ypGetDefaultDomain _ypGetDefaultDomain = (ypGetDefaultDomain)lib.resolve("yp_get_default_domain");
-    typedef int (*ypAll)(const char *, const char *, const struct ypall_callback *);
-    ypAll _ypAll = (ypAll)lib.resolve("yp_all");
-
-    if (_ypGetDefaultDomain && _ypAll) {
-        err = _ypGetDefaultDomain(&domain);
-        if (err == 0) {
-            ypall_callback cb;
-            // wild cast to support K&R-style system headers
-            (WildCast &) cb.foreach = (WildCast) qt_pd_foreach;
-            cb.data = (char *) printers;
-            err = _ypAll(domain, printersConfByname, &cb);
-        }
-        if (!err)
-            return Success;
-    }
-#endif //QT_NO_LIBRARY
-    return Unavail;
-}
-
-#endif // QT_NO_NIS
-
-char *qt_parseNsswitchPrintersEntry(QList<QPrinterDescription> *printers, char *line)
-{
-#define skipSpaces() \
-    while (line[k] != '\0' && isspace((uchar) line[k])) \
-        k++
-
-    char *defaultPrinter = 0;
-    bool stop = false;
-    int lastStatus = NotFound;
-
-    int k = 8;
-    skipSpaces();
-    if (line[k] != ':')
-        return 0;
-    k++;
-
-    char *cp = strchr(line, '#');
-    if (cp != 0)
-        *cp = '\0';
-
-    while (line[k] != '\0') {
-        if (isspace((uchar) line[k])) {
-            k++;
-        } else if (line[k] == '[') {
-            k++;
-            skipSpaces();
-            while (line[k] != '\0') {
-                char status = tolower(line[k]);
-                char action = '?';
-
-                while (line[k] != '=' && line[k] != ']' && line[k] != '\0')
-                    k++;
-                if (line[k] == '=') {
-                    k++;
-                    skipSpaces();
-                    action = tolower(line[k]);
-                    while (line[k] != '\0' && !isspace((uchar) line[k]) && line[k] != ']')
-                        k++;
-                } else if (line[k] == ']') {
-                    k++;
-                    break;
-                }
-                skipSpaces();
-
-                if (lastStatus == status)
-                    stop = (action == (char) Return);
-            }
-        } else {
-            if (stop)
-                break;
-
-            QByteArray source;
-            while (line[k] != '\0' && !isspace((uchar) line[k]) && line[k] != '[') {
-                source += line[k];
-                k++;
-            }
-
-            if (source == "user") {
-                lastStatus = qt_parsePrintcap(printers,
-                        QDir::homePath() + QLatin1String("/.printers"));
-            } else if (source == "files") {
-                bool found;
-                defaultPrinter = qt_parsePrintersConf(printers, &found);
-                if (found)
-                    lastStatus = Success;
-#ifndef QT_NO_NIS
-            } else if (source == "nis") {
-                lastStatus = qt_retrieveNisPrinters(printers);
-#endif
-            } else {
-                // nisplus, dns, etc., are not implemented yet
-                lastStatus = NotFound;
-            }
-            stop = (lastStatus == Success);
-        }
-    }
-    return defaultPrinter;
-}
-
-char *qt_parseNsswitchConf(QList<QPrinterDescription> *printers)
-{
-    QFile nc(QLatin1String("/etc/nsswitch.conf"));
-    if (!nc.open(QIODevice::ReadOnly))
-        return 0;
-
-    char *defaultPrinter = 0;
-
-    char *line = new char[1025];
-    line[1024] = '\0';
-
-    while (!nc.atEnd() &&
-            nc.readLine(line, 1024) > 0) {
-        if (qstrncmp(line, "printers", 8) == 0) {
-            defaultPrinter = qt_parseNsswitchPrintersEntry(printers, line);
-            delete[] line;
-            return defaultPrinter;
-        }
-    }
-
-    strcpy(line, "printers: user files nis nisplus xfn");
-    defaultPrinter = qt_parseNsswitchPrintersEntry(printers, line);
-    delete[] line;
-    return defaultPrinter;
-}
-
-// HP-UX
-void qt_parseEtcLpMember(QList<QPrinterDescription> *printers)
-{
-    QDir lp(QLatin1String("/etc/lp/member"));
-    if (!lp.exists())
-        return;
-    QFileInfoList dirs = lp.entryInfoList();
-    if (dirs.isEmpty())
-        return;
-
-    for (int i = 0; i < dirs.size(); ++i) {
-        QFileInfo printer = dirs.at(i);
-        // I haven't found any real documentation, so I'm guessing that
-        // since lpstat uses /etc/lp/member rather than one of the
-        // other directories, it's the one to use.  I did not find a
-        // decent way to locate aliases and remote printers.
-        if (printer.isFile())
-            qt_perhapsAddPrinter(printers, printer.fileName(),
-                                 QCoreApplication::translate("QPrinter", "unknown"),
-                                 QLatin1String(""));
-    }
-}
-
-// IRIX 6.x
-void qt_parseSpoolInterface(QList<QPrinterDescription> *printers)
-{
-    QDir lp(QLatin1String("/usr/spool/lp/interface"));
-    if (!lp.exists())
-        return;
-    QFileInfoList files = lp.entryInfoList();
-    if(files.isEmpty())
-        return;
-
-    for (int i = 0; i < files.size(); ++i) {
-        QFileInfo printer = files.at(i);
-
-        if (!printer.isFile())
-            continue;
-
-        // parse out some information
-        QFile configFile(printer.filePath());
-        if (!configFile.open(QIODevice::ReadOnly))
-            continue;
-
-        QByteArray line;
-        line.resize(1025);
-        QString namePrinter;
-        QString hostName;
-        QString hostPrinter;
-        QString printerType;
-
-        QString nameKey(QLatin1String("NAME="));
-        QString typeKey(QLatin1String("TYPE="));
-        QString hostKey(QLatin1String("HOSTNAME="));
-        QString hostPrinterKey(QLatin1String("HOSTPRINTER="));
-
-        while (!configFile.atEnd() &&
-                (configFile.readLine(line.data(), 1024)) > 0) {
-            QString uline = QString::fromLocal8Bit(line);
-            if (uline.startsWith(typeKey) ) {
-                printerType = uline.mid(nameKey.length());
-                printerType = printerType.simplified();
-            } else if (uline.startsWith(hostKey)) {
-                hostName = uline.mid(hostKey.length());
-                hostName = hostName.simplified();
-            } else if (uline.startsWith(hostPrinterKey)) {
-                hostPrinter = uline.mid(hostPrinterKey.length());
-                hostPrinter = hostPrinter.simplified();
-            } else if (uline.startsWith(nameKey)) {
-                namePrinter = uline.mid(nameKey.length());
-                namePrinter = namePrinter.simplified();
-            }
-        }
-        configFile.close();
-
-        printerType = printerType.trimmed();
-        if (printerType.indexOf(QLatin1String("postscript"), 0, Qt::CaseInsensitive) < 0)
-            continue;
-
-        int ii = 0;
-        while ((ii = namePrinter.indexOf(QLatin1Char('"'), ii)) >= 0)
-            namePrinter.remove(ii, 1);
-
-        if (hostName.isEmpty() || hostPrinter.isEmpty()) {
-            qt_perhapsAddPrinter(printers, printer.fileName(),
-                                 QLatin1String(""), namePrinter);
-        } else {
-            QString comment;
-            comment = namePrinter;
-            comment += QLatin1String(" (");
-            comment += hostPrinter;
-            comment += QLatin1Char(')');
-            qt_perhapsAddPrinter(printers, printer.fileName(),
-                                 hostName, comment);
-        }
-    }
-}
-
-
-// Every unix must have its own.  It's a standard.  Here is AIX.
-void qt_parseQconfig(QList<QPrinterDescription> *printers)
-{
-    QFile qconfig(QLatin1String("/etc/qconfig"));
-    if (!qconfig.open(QIODevice::ReadOnly))
-        return;
-
-    QTextStream ts(&qconfig);
-    QString line;
-
-    QString stanzaName; // either a queue or a device name
-    bool up = true; // queue up?  default true, can be false
-    QString remoteHost; // null if local
-    QString deviceName; // null if remote
-
-    QRegExp newStanza(QLatin1String("^[0-z\\-]*:$"));
-
-    // our basic strategy here is to process each line, detecting new
-    // stanzas.  each time we see a new stanza, we check if the
-    // previous stanza was a valid queue for a) a remote printer or b)
-    // a local printer.  if it wasn't, we assume that what we see is
-    // the start of the first stanza, or that the previous stanza was
-    // a device stanza, or that there is some syntax error (we don't
-    // report those).
-
-    do {
-        line = ts.readLine();
-        bool indented = line[0].isSpace();
-        line = line.simplified();
-
-        int i = line.indexOf(QLatin1Char('='));
-        if (indented && i != -1) { // line in stanza
-            QString variable = line.left(i).simplified();
-            QString value=line.mid(i+1, line.length()).simplified();
-            if (variable == QLatin1String("device"))
-                deviceName = value;
-            else if (variable == QLatin1String("host"))
-                remoteHost = value;
-            else if (variable == QLatin1String("up"))
-                up = !(value.toLower() == QLatin1String("false"));
-        } else if (line[0] == QLatin1Char('*')) { // comment
-            // nothing to do
-        } else if (ts.atEnd() || // end of file, or beginning of new stanza
-                    (!indented && line.contains(newStanza))) {
-            if (up && stanzaName.length() > 0 && stanzaName.length() < 21) {
-                if (remoteHost.length()) // remote printer
-                    qt_perhapsAddPrinter(printers, stanzaName, remoteHost,
-                                         QString());
-                else if (deviceName.length()) // local printer
-                    qt_perhapsAddPrinter(printers, stanzaName, QString(),
-                                         QString());
-            }
-            line.chop(1);
-            if (line.length() >= 1 && line.length() <= 20)
-                stanzaName = line;
-            up = true;
-            remoteHost.clear();
-            deviceName.clear();
-        } else {
-            // syntax error?  ignore.
-        }
-    } while (!ts.atEnd());
-}
-
-Q_PRINTSUPPORT_EXPORT int qt_getLprPrinters(QList<QPrinterDescription>& printers)
-{
-    QByteArray etcLpDefault;
-    qt_parsePrintcap(&printers, QLatin1String("/etc/printcap"));
-    qt_parseEtcLpMember(&printers);
-    qt_parseSpoolInterface(&printers);
-    qt_parseQconfig(&printers);
-
-    QFileInfo f;
-    f.setFile(QLatin1String("/etc/lp/printers"));
-    if (f.isDir()) {
-        qt_parseEtcLpPrinters(&printers);
-        QFile def(QLatin1String("/etc/lp/default"));
-        if (def.open(QIODevice::ReadOnly)) {
-            etcLpDefault.resize(1025);
-            if (def.readLine(etcLpDefault.data(), 1024) > 0) {
-                QRegExp rx(QLatin1String("^(\\S+)"));
-                if (rx.indexIn(QString::fromLatin1(etcLpDefault)) != -1)
-                    etcLpDefault = rx.cap(1).toLatin1();
-            }
-        }
-    }
-
-    char *def = 0;
-    f.setFile(QLatin1String("/etc/nsswitch.conf"));
-    if (f.isFile()) {
-        def = qt_parseNsswitchConf(&printers);
-    } else {
-        f.setFile(QLatin1String("/etc/printers.conf"));
-        if (f.isFile())
-            def = qt_parsePrintersConf(&printers);
-    }
-
-    if (def) {
-        etcLpDefault = def;
-        delete [] def;
-    }
-
-    QString homePrintersDefault = qt_getDefaultFromHomePrinters();
-
-    // all printers hopefully known.  try to find a good default
-    QString dollarPrinter;
-    {
-        dollarPrinter = QString::fromLocal8Bit(qgetenv("PRINTER"));
-        if (dollarPrinter.isEmpty())
-            dollarPrinter = QString::fromLocal8Bit(qgetenv("LPDEST"));
-        if (dollarPrinter.isEmpty())
-            dollarPrinter = QString::fromLocal8Bit(qgetenv("NPRINTER"));
-        if (dollarPrinter.isEmpty())
-            dollarPrinter = QString::fromLocal8Bit(qgetenv("NGPRINTER"));
-        if (!dollarPrinter.isEmpty())
-            qt_perhapsAddPrinter(&printers, dollarPrinter,
-                                 QCoreApplication::translate("QPrinter", "unknown"),
-                                 QLatin1String(""));
-    }
-
-    QRegExp ps(QLatin1String("[^a-z]ps(?:[^a-z]|$)"));
-    QRegExp lp(QLatin1String("[^a-z]lp(?:[^a-z]|$)"));
-
-    int quality = 0;
-    int best = 0;
-    for (int i = 0; i < printers.size(); ++i) {
-        QString name = printers.at(i).name;
-        QString comment = printers.at(i).comment;
-        if (quality < 5 && name == dollarPrinter) {
-            best = i;
-            quality = 5;
-        } else if (quality < 4 && !homePrintersDefault.isEmpty() &&
-                   name == homePrintersDefault) {
-            best = i;
-            quality = 4;
-        } else if (quality < 3 && !etcLpDefault.isEmpty() &&
-                    name == QLatin1String(etcLpDefault)) {
-            best = i;
-            quality = 3;
-        } else if (quality < 2 &&
-                    (name == QLatin1String("ps") ||
-                     ps.indexIn(comment) != -1)) {
-            best = i;
-            quality = 2;
-        } else if (quality < 1 &&
-                    (name == QLatin1String("lp") ||
-                     lp.indexIn(comment) > -1)) {
-            best = i;
-            quality = 1;
-        }
-    }
-
-    return best;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-QList<QPrinter::PaperSize> qt_getCupsPrinterPaperSizes(int cupsPrinterIndex)
-{
-    QList<QPrinter::PaperSize> result;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-    if (!QCUPSSupport::isAvailable() || cupsPrinterIndex < 0)
-        return result;
-    // Find paper sizes from CUPS.
-    QCUPSSupport cups;
-    cups.setCurrentPrinter(cupsPrinterIndex);
-    if (const ppd_option_t* size = cups.pageSizes()) {
-        for (int j = 0; j < size->num_choices; ++j)
-            result.append(string2PaperSize(size->choices[j].choice));
-    }
-#else
-    Q_UNUSED(cupsPrinterIndex)
-#endif
-    return result;
-}
-
-#endif // QT_NO_PRINTER
-
-QT_END_NAMESPACE
diff --git a/src/printsupport/kernel/qprinterinfo_unix_p.h b/src/printsupport/kernel/qprinterinfo_unix_p.h
deleted file mode 100644 (file)
index 8e6f3d3..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPRINTERINFO_UNIX_P_H
-#define QPRINTERINFO_UNIX_P_H
-
-#include <QtPrintSupport/qprinter.h>
-#include <QtCore/qstringlist.h>
-
-#ifndef QT_NO_NIS
-#  ifndef BOOL_DEFINED
-#    define BOOL_DEFINED
-#  endif
-
-#  include <sys/types.h>
-#  include <rpc/rpc.h>
-#  include <rpcsvc/ypclnt.h>
-#  include <rpcsvc/yp_prot.h>
-#endif // QT_NO_NIS
-
-#ifdef Success
-#  undef Success
-#endif
-
-#include <ctype.h>
-
-QT_BEGIN_NAMESPACE
-
-//
-//  W A R N I N G
-//  -------------
-//
-// This file is not part of the Qt API.  It exists purely as an
-// implementation detail.  This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#ifndef QT_NO_PRINTER
-
-struct QPrinterDescription {
-    QPrinterDescription(const QString &n, const QString &h, const QString &c, const QStringList &a)
-    : name(n), host(h), comment(c), aliases(a) {}
-    QString name;
-    QString host;
-    QString comment;
-    QStringList aliases;
-    bool samePrinter(const QString& printer) const {
-        return name == printer || aliases.contains(printer);
-    }
-};
-
-enum { Success = 's', Unavail = 'u', NotFound = 'n', TryAgain = 't' };
-enum { Continue = 'c', Return = 'r' };
-
-void qt_perhapsAddPrinter(QList<QPrinterDescription> *printers, const QString &name,
-                          QString host, QString comment,
-                          QStringList aliases = QStringList());
-void qt_parsePrinterDesc(QString printerDesc, QList<QPrinterDescription> *printers);
-
-int qt_parsePrintcap(QList<QPrinterDescription> *printers, const QString& fileName);
-QString qt_getDefaultFromHomePrinters();
-void qt_parseEtcLpPrinters(QList<QPrinterDescription> *printers);
-char *qt_parsePrintersConf(QList<QPrinterDescription> *printers, bool *found = 0);
-
-#ifndef QT_NO_NIS
-#if defined(Q_C_CALLBACKS)
-extern "C" {
-#endif
-int qt_pd_foreach(int /*status */, char * /*key */, int /*keyLen */,
-                  char *val, int valLen, char *data);
-
-#if defined(Q_C_CALLBACKS)
-}
-#endif
-int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers);
-#endif // QT_NO_NIS
-char *qt_parseNsswitchPrintersEntry(QList<QPrinterDescription> *printers, char *line);
-char *qt_parseNsswitchConf(QList<QPrinterDescription> *printers);
-void qt_parseEtcLpMember(QList<QPrinterDescription> *printers);
-void qt_parseSpoolInterface(QList<QPrinterDescription> *printers);
-void qt_parseQconfig(QList<QPrinterDescription> *printers);
-int qt_getLprPrinters(QList<QPrinterDescription>& printers);
-
-QList<QPrinter::PaperSize> qt_getCupsPrinterPaperSizes(int cupsPrinterIndex);
-
-#endif // QT_NO_PRINTER
-
-QT_END_NAMESPACE
-
-#endif // QPRINTERINFO_UNIX_P_H
index 404aa06..90aff47 100644 (file)
@@ -246,6 +246,9 @@ void tst_QPrinterInfo::testForDefaultPrinter()
 
 void tst_QPrinterInfo::testForPrinters()
 {
+#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+    QSKIP("Test doesn't work on Unix, plugin not yet enabled");
+# endif
 #if defined(Q_OS_UNIX) || defined(Q_OS_WIN32)
 # ifdef Q_OS_WIN32
     if (QHostInfo::localHostName() == "fantomet" || QHostInfo::localHostName() == "bobo") {
index d3084e1..7ddc0ec 100644 (file)
@@ -1392,8 +1392,6 @@ void Configure::applySpecSpecifics()
         dictionary[ "QT_QWS_DEPTH" ]        = "4 8 16 24 32";
         dictionary[ "QT_SXE" ]              = "no";
         dictionary[ "QT_INOTIFY" ]          = "no";
-        dictionary[ "QT_LPR" ]              = "no";
-        dictionary[ "QT_CUPS" ]             = "no";
         dictionary[ "QT_GLIB" ]             = "no";
         dictionary[ "QT_ICONV" ]            = "no";
 
@@ -2851,18 +2849,12 @@ void Configure::generateConfigfiles()
               tmpStream<<"#define QT_QWS_DEPTH_"+depth<<endl;
         }
 
-        if (dictionary[ "QT_CUPS" ] == "no")
-          tmpStream<<"#define QT_NO_CUPS"<<endl;
-
         if (dictionary[ "QT_ICONV" ]  == "no")
           tmpStream<<"#define QT_NO_ICONV"<<endl;
 
         if (dictionary[ "QT_GLIB" ] == "no")
           tmpStream<<"#define QT_NO_GLIB"<<endl;
 
-        if (dictionary[ "QT_LPR" ] == "no")
-          tmpStream<<"#define QT_NO_LPR"<<endl;
-
         if (dictionary[ "QT_INOTIFY" ] == "no")
           tmpStream<<"#define QT_NO_INOTIFY"<<endl;