diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-05-22 15:05:10 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-06-04 15:58:02 +0200 |
commit | 4497cb3d85ae5be0765c1a1dc0916e7f6deb7e70 (patch) | |
tree | 98e8f7bb799a68311893d741fa59859560df86ea /src/printsupport/platform | |
parent | 1cee9cc5870b475b141dfa6ad84de2038a28d5b8 (diff) |
macOS: Build print support plugin directly into QtPrintSupport
Task-number: QTBUG-83259
Change-Id: I74f60519fbccfa5f208397bf3d65f0a4f64cb6f0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/printsupport/platform')
-rw-r--r-- | src/printsupport/platform/macos/cocoa.json | 3 | ||||
-rw-r--r-- | src/printsupport/platform/macos/macos.pri | 6 | ||||
-rw-r--r-- | src/printsupport/platform/macos/qcocoaprintersupport.mm | 24 |
3 files changed, 32 insertions, 1 deletions
diff --git a/src/printsupport/platform/macos/cocoa.json b/src/printsupport/platform/macos/cocoa.json new file mode 100644 index 0000000000..85c38c42be --- /dev/null +++ b/src/printsupport/platform/macos/cocoa.json @@ -0,0 +1,3 @@ +{ + "Keys": [ "cocoaprintersupport" ] +} diff --git a/src/printsupport/platform/macos/macos.pri b/src/printsupport/platform/macos/macos.pri index fc5c5c9b93..06a7c6a683 100644 --- a/src/printsupport/platform/macos/macos.pri +++ b/src/printsupport/platform/macos/macos.pri @@ -1,7 +1,6 @@ SOURCES += \ $$PWD/qprintengine_mac.mm \ $$PWD/qpaintengine_mac.mm \ - $$PWD/qcocoaprintersupport.mm \ $$PWD/qcocoaprintdevice.mm HEADERS += \ @@ -10,4 +9,9 @@ HEADERS += \ $$PWD/qprintengine_mac_p.h \ $$PWD/qpaintengine_mac_p.h +# Disable PCH to allow selectively enabling QT_STATICPLUGIN +NO_PCH_SOURCES += $$PWD/qcocoaprintersupport.mm + LIBS += -framework ApplicationServices -lcups + +OTHER_FILES += cocoa.json diff --git a/src/printsupport/platform/macos/qcocoaprintersupport.mm b/src/printsupport/platform/macos/qcocoaprintersupport.mm index 0a285dddc6..64a63241e7 100644 --- a/src/printsupport/platform/macos/qcocoaprintersupport.mm +++ b/src/printsupport/platform/macos/qcocoaprintersupport.mm @@ -52,6 +52,9 @@ #include <private/qprinterinfo_p.h> +#define QT_STATICPLUGIN +#include <qpa/qplatformprintplugin.h> + QT_BEGIN_NAMESPACE QCocoaPrinterSupport::QCocoaPrinterSupport() @@ -108,6 +111,27 @@ QString QCocoaPrinterSupport::defaultPrintDeviceId() const return QString(); } +class QCocoaPrinterSupportPlugin : public QPlatformPrinterSupportPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QPlatformPrinterSupportFactoryInterface_iid FILE "cocoa.json") + +public: + QPlatformPrinterSupport *create(const QString &); +}; + +QPlatformPrinterSupport *QCocoaPrinterSupportPlugin::create(const QString &key) +{ + if (key.compare(key, QLatin1String("cocoaprintersupport"), Qt::CaseInsensitive) != 0) + return 0; + + return new QCocoaPrinterSupport(); +} + +Q_IMPORT_PLUGIN(QCocoaPrinterSupportPlugin) + +#include "qcocoaprintersupport.moc" + QT_END_NAMESPACE #endif //QT_NO_PRINTER |