[arch-commits] Commit in qt/trunk (PKGBUILD improve-cups-support.patch)
Andrea Scarpino
andrea at archlinux.org
Thu Mar 8 08:51:48 UTC 2012
Date: Thursday, March 8, 2012 @ 03:51:48
Author: andrea
Revision: 152663
Apply non upstream patch to improve cups support in Qt/Kde apps (FS#28381)
Added:
qt/trunk/improve-cups-support.patch
Modified:
qt/trunk/PKGBUILD
----------------------------+
PKGBUILD | 11 ++++-
improve-cups-support.patch | 84 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 92 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2012-03-08 01:36:52 UTC (rev 152662)
+++ PKGBUILD 2012-03-08 08:51:48 UTC (rev 152663)
@@ -5,7 +5,7 @@
pkgbase=qt
pkgname=('qt' 'qt-private-headers')
pkgver=4.8.0
-pkgrel=5
+pkgrel=6
arch=('i686' 'x86_64')
url='http://qt-project.org/'
license=('GPL3' 'LGPL')
@@ -20,7 +20,8 @@
'qtconfig.desktop'
'fix-qgraphicsscene-regression.patch'
'improved-filter-event.patch'
- 'qurl-backward-compatibility.patch')
+ 'qurl-backward-compatibility.patch'
+ 'improve-cups-support')
md5sums=('e8a5fdbeba2927c948d9f477a6abe904'
'fc211414130ab2764132e7370f8e5caa'
'85179f5e0437514f8639957e1d8baf62'
@@ -28,7 +29,8 @@
'6b771c8a81dd90b45e8a79afa0e5bbfd'
'c2e91fc028250a590e76effe234468e2'
'444ebeb716d7c7379835efb8aa88e6c8'
- '7bc255a36733d0fbc80c1902ade4beca')
+ '7bc255a36733d0fbc80c1902ade4beca'
+ 'c439c7731c25387352d8453ca7574971')
build() {
cd "${srcdir}"/${_pkgfqn}
@@ -39,6 +41,9 @@
patch -p1 -i "${srcdir}"/improved-filter-event.patch
patch -p1 -i "${srcdir}"/qurl-backward-compatibility.patch
+ # (FS#28381) (KDEBUG#180051)
+ patch -p1 -i "${srcdir}"/improve-cups-support.patch
+
export QT4DIR="${srcdir}"/${_pkgfqn}
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
Added: improve-cups-support.patch
===================================================================
--- improve-cups-support.patch (rev 0)
+++ improve-cups-support.patch 2012-03-08 08:51:48 UTC (rev 152663)
@@ -0,0 +1,84 @@
+diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp
+--- qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-11 16:55:22.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-28 04:34:16.000000000 +0100
+@@ -569,6 +569,32 @@
+ void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups)
+ {
+ options.duplex->setEnabled(cups && cups->ppdOption("Duplex"));
++
++ if (cups) {
++ const ppd_option_t* duplex = cups->ppdOption("Duplex");
++ if (duplex) {
++ // copy default ppd duplex to qt dialog
++ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
++ options.duplexShort->setChecked(true);
++ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
++ options.duplexLong->setChecked(true);
++ else
++ options.noDuplex->setChecked(true);
++ }
++
++ if (cups->currentPPD()) {
++ // set default color
++ if (cups->currentPPD()->color_device)
++ options.color->setChecked(true);
++ else
++ options.grayscale->setChecked(true);
++ }
++
++ // set collation
++ const ppd_option_t *collate = cups->ppdOption("Collate");
++ if (collate)
++ options.collate->setChecked(qstrcmp(collate->defchoice, "True")==0);
++ }
+ }
+ #endif
+
+diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp
+--- qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp 2010-02-11 16:55:22.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp 2010-02-28 04:55:15.000000000 +0100
+@@ -627,6 +627,44 @@
+ && d_ptr->paintEngine->type() != QPaintEngine::MacPrinter) {
+ setOutputFormat(QPrinter::PdfFormat);
+ }
++
++#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
++ // fill in defaults from ppd file
++ QCUPSSupport cups;
++
++ int printernum = -1;
++ for (int i = 0; i < cups.availablePrintersCount(); i++) {
++ if (printerName().toLocal8Bit() == cups.availablePrinters()[i].name)
++ printernum = i;
++ }
++ if (printernum >= 0) {
++ cups.setCurrentPrinter(printernum);
++
++ const ppd_option_t* duplex = cups.ppdOption("Duplex");
++ if (duplex) {
++ // copy default ppd duplex to qt dialog
++ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
++ setDuplex(DuplexShortSide);
++ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
++ setDuplex(DuplexLongSide);
++ else
++ setDuplex(DuplexNone);
++ }
++
++ if (cups.currentPPD()) {
++ // set default color
++ if (cups.currentPPD()->color_device)
++ setColorMode(Color);
++ else
++ setColorMode(GrayScale);
++ }
++
++ // set collation
++ const ppd_option_t *collate = cups.ppdOption("Collate");
++ if (collate)
++ setCollateCopies(qstrcmp(collate->defchoice, "True")==0);
++ }
++#endif
+ }
+
+ /*!
More information about the arch-commits
mailing list