summaryrefslogtreecommitdiffstats
path: root/src/plugins/printsupport
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/printsupport')
-rw-r--r--src/plugins/printsupport/cocoa/cocoa.json3
-rw-r--r--src/plugins/printsupport/cocoa/cocoa.pro13
-rw-r--r--src/plugins/printsupport/cocoa/main.cpp84
-rw-r--r--src/plugins/printsupport/printsupport.pro1
4 files changed, 101 insertions, 0 deletions
diff --git a/src/plugins/printsupport/cocoa/cocoa.json b/src/plugins/printsupport/cocoa/cocoa.json
new file mode 100644
index 0000000000..85c38c42be
--- /dev/null
+++ b/src/plugins/printsupport/cocoa/cocoa.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "cocoaprintersupport" ]
+}
diff --git a/src/plugins/printsupport/cocoa/cocoa.pro b/src/plugins/printsupport/cocoa/cocoa.pro
new file mode 100644
index 0000000000..353094cbae
--- /dev/null
+++ b/src/plugins/printsupport/cocoa/cocoa.pro
@@ -0,0 +1,13 @@
+TARGET = cocoaprintersupport
+load(qt_plugin)
+DESTDIR = $$QT.gui.plugins/printsupport
+
+QT += printsupport
+LIBS += -framework Cocoa
+
+SOURCES += main.cpp
+
+OTHER_FILES += cocoa.json
+
+target.path += $$[QT_INSTALL_PLUGINS]/printsupport
+INSTALLS += target
diff --git a/src/plugins/printsupport/cocoa/main.cpp b/src/plugins/printsupport/cocoa/main.cpp
new file mode 100644
index 0000000000..bc8f2e072c
--- /dev/null
+++ b/src/plugins/printsupport/cocoa/main.cpp
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the QtPrintSupport 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 <QtCore/QMetaMethod>
+#include <QtGui/QGuiApplication>
+#include <QtGui/QPlatformNativeInterface>
+#include <QtPrintSupport/QPlatformPrinterSupportPlugin>
+
+QT_BEGIN_NAMESPACE
+
+class QCocoaPrinterSupportPlugin : public QPlatformPrinterSupportPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.QPlatformPrinterSupportFactoryInterface" FILE "cocoa.json")
+
+public:
+ QStringList keys() const;
+ QPlatformPrinterSupport *create(const QString &);
+};
+
+QStringList QCocoaPrinterSupportPlugin::keys() const
+{
+ return QStringList(QStringLiteral("cocoaprintersupport"));
+}
+
+QPlatformPrinterSupport *QCocoaPrinterSupportPlugin::create(const QString &key)
+{
+ if (key.compare(key, QStringLiteral("cocoaprintersupport"), Qt::CaseInsensitive) != 0)
+ return 0;
+ QGuiApplication *app = qobject_cast<QGuiApplication *>(QCoreApplication::instance());
+ if (!app)
+ return 0;
+ QPlatformNativeInterface *platformNativeInterface = app->platformNativeInterface();
+ int at = platformNativeInterface->metaObject()->indexOfMethod("createPlatformPrinterSupport()");
+ if (at == -1)
+ return 0;
+ QMetaMethod createPlatformPrinterSupport = platformNativeInterface->metaObject()->method(at);
+ QPlatformPrinterSupport *platformPrinterSupport = 0;
+ if (!createPlatformPrinterSupport.invoke(platformNativeInterface, Q_RETURN_ARG(QPlatformPrinterSupport *, platformPrinterSupport)))
+ return 0;
+ return platformPrinterSupport;
+}
+
+QT_END_NAMESPACE
+
+#include "main.moc"
diff --git a/src/plugins/printsupport/printsupport.pro b/src/plugins/printsupport/printsupport.pro
index 9298e7981f..547ac42c9e 100644
--- a/src/plugins/printsupport/printsupport.pro
+++ b/src/plugins/printsupport/printsupport.pro
@@ -1,3 +1,4 @@
TEMPLATE = subdirs
+mac: SUBDIRS += cocoa
win32: SUBDIRS += windows