Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qcocoaprintersupport.mm
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include <AppKit/AppKit.h>
5
7
8#ifndef QT_NO_PRINTER
9
10#include <AppKit/AppKit.h>
11
12#include <QtCore/private/qcore_mac_p.h>
13
14#include "qcocoaprintdevice_p.h"
15#include "qprintengine_mac_p.h"
16
17#include <private/qprinterinfo_p.h>
18
19#define QT_STATICPLUGIN
20#include <qpa/qplatformprintplugin.h>
21
23
24using namespace Qt::StringLiterals;
25
28
31
33{
34 return new QMacPrintEngine(printerMode, deviceId);
35}
36
38{
39 Q_UNUSED(printerMode);
40 /*
41 QMacPrintEngine multiply inherits from QPrintEngine and QPaintEngine,
42 the cast here allows conversion of QMacPrintEngine* to QPaintEngine*
43 */
44 return static_cast<QMacPrintEngine *>(printEngine);
45}
46
51
53{
55 QCFType<CFArrayRef> printerList;
56 if (PMServerCreatePrinterList(kPMServerLocal, &printerList) == noErr) {
57 CFIndex count = CFArrayGetCount(printerList);
58 for (CFIndex i = 0; i < count; ++i) {
59 PMPrinter printer = static_cast<PMPrinter>(const_cast<void *>(CFArrayGetValueAtIndex(printerList, i)));
60 list.append(QString::fromCFString(PMPrinterGetID(printer)));
61 }
62 }
63 return list;
64}
65
67{
68 QCFType<CFArrayRef> printerList;
69 if (PMServerCreatePrinterList(kPMServerLocal, &printerList) == noErr) {
70 CFIndex count = CFArrayGetCount(printerList);
71 for (CFIndex i = 0; i < count; ++i) {
72 PMPrinter printer = static_cast<PMPrinter>(const_cast<void *>(CFArrayGetValueAtIndex(printerList, i)));
73 if (PMPrinterIsDefault(printer))
74 return QString::fromCFString(PMPrinterGetID(printer));
75 }
76 }
77 return QString();
78}
79
88
90{
91 if (key.compare(key, "cocoaprintersupport"_L1, Qt::CaseInsensitive) != 0)
92 return 0;
93
94 return new QCocoaPrinterSupport();
95}
96
98
99#include "qcocoaprintersupport.moc"
100
101#endif //QT_NO_PRINTER
QPlatformPrinterSupport * create(const QString &)
QPrintEngine * createNativePrintEngine(QPrinter::PrinterMode printerMode, const QString &deviceId=QString()) override
QPaintEngine * createPaintEngine(QPrintEngine *, QPrinter::PrinterMode printerMode) override
QStringList availablePrintDeviceIds() const override
QPrintDevice createPrintDevice(const QString &id) override
QString defaultPrintDeviceId() const override
void append(parameter_type t)
Definition qlist.h:458
\inmodule QtGui
The QPlatformPrinterSupport class provides an abstraction for print support.
virtual QPrintDevice createPrintDevice(const QString &id)
\reentrant
PrinterMode
This enum describes the mode the printer should work in.
Definition qprinter.h:31
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
Combined button and popup list for selecting options.
@ CaseInsensitive
GLuint64 key
GLenum GLenum GLsizei count
#define QPlatformPrinterSupportFactoryInterface_iid
#define Q_OBJECT
#define Q_PLUGIN_METADATA(x)
#define Q_UNUSED(x)
QList< int > list
[14]
view create()