summaryrefslogtreecommitdiffstats
path: root/src/printsupport
diff options
context:
space:
mode:
Diffstat (limited to 'src/printsupport')
-rw-r--r--src/printsupport/CMakeLists.txt2
-rw-r--r--src/printsupport/platform/macos/cocoa.json3
-rw-r--r--src/printsupport/platform/macos/macos.pri6
-rw-r--r--src/printsupport/platform/macos/qcocoaprintersupport.mm24
4 files changed, 34 insertions, 1 deletions
diff --git a/src/printsupport/CMakeLists.txt b/src/printsupport/CMakeLists.txt
index e032845cae..698875e1f3 100644
--- a/src/printsupport/CMakeLists.txt
+++ b/src/printsupport/CMakeLists.txt
@@ -149,6 +149,8 @@ qt_extend_target(PrintSupport CONDITION MACOS AND TARGET Qt::Widgets
platform/macos/qcocoaprintdevice_p.h platform/macos/qcocoaprintdevice.mm
platform/macos/qcocoaprintersupport_p.h platform/macos/qcocoaprintersupport.mm
platform/macos/qprintengine_mac.mm platform/macos/qprintengine_mac_p.h
+ NO_PCH_SOURCES
+ "platform/macos/qcocoaprintersupport.mm"
PUBLIC_LIBRARIES
Qt::WidgetsPrivate
Cups::Cups
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