Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.0:Staging:A
libqt5-qtbase
0008-Allow-access-to-ppd-file-and-ppdMarkOption...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0008-Allow-access-to-ppd-file-and-ppdMarkOption-via-QPpdP.patch of Package libqt5-qtbase
From e79efe94e3e77ee035ff7d046158a577759f8c7c Mon Sep 17 00:00:00 2001 From: Albert Astals Cid <albert.astals.cid@kdab.com> Date: Mon, 4 Dec 2017 14:05:55 +0100 Subject: [PATCH 38/54] Allow access to ppd file and ppdMarkOption via QPpdPrintDevice::property/setProperty Change-Id: I47b49b52121950fa8e3ea7a056974d9f3033490f Reviewed-by: Liang Qi <liang.qi@qt.io> --- src/plugins/printsupport/cups/qppdprintdevice.cpp | 21 +++++++++++++++++++++ src/plugins/printsupport/cups/qppdprintdevice.h | 3 +++ src/printsupport/kernel/qcups_p.h | 3 +++ src/printsupport/kernel/qprint_p.h | 1 + 4 files changed, 28 insertions(+) diff --git a/src/plugins/printsupport/cups/qppdprintdevice.cpp b/src/plugins/printsupport/cups/qppdprintdevice.cpp index 9efa83d409..ad829df23d 100644 --- a/src/plugins/printsupport/cups/qppdprintdevice.cpp +++ b/src/plugins/printsupport/cups/qppdprintdevice.cpp @@ -42,6 +42,8 @@ #include <QtCore/QMimeDatabase> #include <qdebug.h> +#include "private/qcups_p.h" // Only needed for PDPK_* + #ifndef QT_LINUXBASE // LSB merges everything into cups.h #include <cups/language.h> #endif @@ -421,6 +423,25 @@ QPrint::ColorMode QPpdPrintDevice::defaultColorMode() const return QPrint::GrayScale; } +QVariant QPpdPrintDevice::property(QPrintDevice::PrintDevicePropertyKey key) const +{ + if (key == PDPK_PpdFile) + return QVariant::fromValue<ppd_file_t *>(m_ppd); + + return QVariant(); +} + +bool QPpdPrintDevice::setProperty(QPrintDevice::PrintDevicePropertyKey key, const QVariant &value) +{ + if (key == PDPK_PpdOption) { + const QStringList values = value.toStringList(); + if (values.count() == 2) + return ppdMarkOption(m_ppd, values[0].toLatin1(), values[1].toLatin1()) == 0; + } + + return false; +} + #ifndef QT_NO_MIMETYPE void QPpdPrintDevice::loadMimeTypes() const { diff --git a/src/plugins/printsupport/cups/qppdprintdevice.h b/src/plugins/printsupport/cups/qppdprintdevice.h index 3cd7518b14..2e4dd3ab3b 100644 --- a/src/plugins/printsupport/cups/qppdprintdevice.h +++ b/src/plugins/printsupport/cups/qppdprintdevice.h @@ -89,6 +89,9 @@ public: QPrint::ColorMode defaultColorMode() const Q_DECL_OVERRIDE; + QVariant property(QPrintDevice::PrintDevicePropertyKey key) const Q_DECL_OVERRIDE; + bool setProperty(QPrintDevice::PrintDevicePropertyKey key, const QVariant &value) Q_DECL_OVERRIDE; + protected: void loadPageSizes() const Q_DECL_OVERRIDE; void loadResolutions() const Q_DECL_OVERRIDE; diff --git a/src/printsupport/kernel/qcups_p.h b/src/printsupport/kernel/qcups_p.h index 780115e350..b67390c4ed 100644 --- a/src/printsupport/kernel/qcups_p.h +++ b/src/printsupport/kernel/qcups_p.h @@ -67,6 +67,9 @@ QT_BEGIN_NAMESPACE // removed from the dialogs. #define PPK_CupsOptions QPrintEngine::PrintEnginePropertyKey(0xfe00) +#define PDPK_PpdFile QPrintDevice::PrintDevicePropertyKey(QPrintDevice::PDPK_CustomBase) +#define PDPK_PpdOption QPrintDevice::PrintDevicePropertyKey(QPrintDevice::PDPK_CustomBase + 1) + class Q_PRINTSUPPORT_EXPORT QCUPSSupport { public: diff --git a/src/printsupport/kernel/qprint_p.h b/src/printsupport/kernel/qprint_p.h index 280c2d7608..4956775461 100644 --- a/src/printsupport/kernel/qprint_p.h +++ b/src/printsupport/kernel/qprint_p.h @@ -59,6 +59,7 @@ #if (defined Q_OS_MACOS) || (defined Q_OS_UNIX && QT_CONFIG(cups)) #include <cups/ppd.h> // Use for type defs only, don't want to actually link in main module +Q_DECLARE_METATYPE(ppd_file_t *) #endif QT_BEGIN_NAMESPACE -- 2.15.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor