diff options
Diffstat (limited to 'src/plugins/printsupport/windows/qwindowsprintdevice.h')
-rw-r--r-- | src/plugins/printsupport/windows/qwindowsprintdevice.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/plugins/printsupport/windows/qwindowsprintdevice.h b/src/plugins/printsupport/windows/qwindowsprintdevice.h index 6b51ee8785..166f0f65b2 100644 --- a/src/plugins/printsupport/windows/qwindowsprintdevice.h +++ b/src/plugins/printsupport/windows/qwindowsprintdevice.h @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2014 John Layt <jlayt@kde.org> +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. @@ -57,6 +58,43 @@ QT_BEGIN_NAMESPACE +class QWindowsPrinterInfo +{ +public: + bool operator==(const QWindowsPrinterInfo &other) const + { + // We only need to check if these are the same for matching up + return m_id == other.m_id && m_name == other.m_name && + m_location == other.m_location && + m_makeAndModel == other.m_makeAndModel && + m_isRemote == other.m_isRemote; + } + QString m_id; + QString m_name; + QString m_location; + QString m_makeAndModel; + QList<QPageSize> m_pageSizes; + QList<int> m_resolutions; + QVector<QPrint::InputSlot> m_inputSlots; + QVector<QPrint::OutputBin> m_outputBins; + QVector<QPrint::DuplexMode> m_duplexModes; + QVector<QPrint::ColorMode> m_colorModes; + QSize m_minimumPhysicalPageSize; + QSize m_maximumPhysicalPageSize; + bool m_isRemote = false; + bool m_havePageSizes = false; + bool m_haveResolutions = false; + bool m_haveCopies = false; + bool m_supportsMultipleCopies = false; + bool m_supportsCollateCopies = false; + bool m_haveMinMaxPageSizes = false; + bool m_supportsCustomPageSizes = false; + bool m_haveInputSlots = false; + bool m_haveOutputBins = false; + bool m_haveDuplexModes = false; + bool m_haveColorModes = false; +}; + class QWindowsPrintDevice : public QPlatformPrintDevice { public: @@ -85,6 +123,12 @@ public: static QStringList availablePrintDeviceIds(); static QString defaultPrintDeviceId(); + bool supportsCollateCopies() const override; + bool supportsMultipleCopies() const override; + bool supportsCustomPageSizes() const override; + QSize minimumPhysicalPageSize() const override; + QSize maximumPhysicalPageSize() const override; + protected: void loadPageSizes() const override; void loadResolutions() const override; @@ -92,9 +136,16 @@ protected: void loadOutputBins() const override; void loadDuplexModes() const override; void loadColorModes() const override; + void loadCopiesSupport() const; + void loadMinMaxPageSizes() const; private: + LPCWSTR wcharId() const { return reinterpret_cast<LPCWSTR>(m_id.utf16()); } + HANDLE m_hPrinter; + mutable bool m_haveCopies; + mutable bool m_haveMinMaxPageSizes; + int m_infoIndex; }; QT_END_NAMESPACE |