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
qpdfdocumentrenderoptions.h
Go to the documentation of this file.
1// Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Tobias König <tobias.koenig@kdab.com>
2// Copyright (C) 2020 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#ifndef QPDFDOCUMENTRENDEROPTIONS_H
6#define QPDFDOCUMENTRENDEROPTIONS_H
7
8#include <QtPdf/qtpdfglobal.h>
9#include <QtCore/qobject.h>
10#include <QtCore/qrect.h>
11
13
15{
16public:
17 enum class Rotation {
18 None,
22 };
23
24 enum class RenderFlag {
25 None = 0x000,
26 Annotations = 0x001,
27 OptimizedForLcd = 0x002,
28 Grayscale = 0x004,
29 ForceHalftone = 0x008,
30 TextAliased = 0x010,
31 ImageAliased = 0x020,
32 PathAliased = 0x040
33 };
34 Q_DECLARE_FLAGS(RenderFlags, RenderFlag)
35
36 constexpr QPdfDocumentRenderOptions() noexcept : m_renderFlags(0), m_rotation(0), m_reserved(0) {}
37
38 constexpr Rotation rotation() const noexcept { return static_cast<Rotation>(m_rotation); }
39 constexpr void setRotation(Rotation r) noexcept { m_rotation = quint32(r); }
40
41 constexpr RenderFlags renderFlags() const noexcept { return static_cast<RenderFlags>(m_renderFlags); }
42 constexpr void setRenderFlags(RenderFlags r) noexcept { m_renderFlags = quint32(r.toInt()); }
43
44 constexpr QRect scaledClipRect() const noexcept { return m_clipRect; }
45 constexpr void setScaledClipRect(const QRect &r) noexcept { m_clipRect = r; }
46
47 constexpr QSize scaledSize() const noexcept { return m_scaledSize; }
48 constexpr void setScaledSize(const QSize &s) noexcept { m_scaledSize = s; }
49
50private:
51 friend constexpr inline bool operator==(const QPdfDocumentRenderOptions &lhs, const QPdfDocumentRenderOptions &rhs) noexcept;
52
53 QRect m_clipRect;
54 QSize m_scaledSize;
55
56 quint32 m_renderFlags : 8;
57 quint32 m_rotation : 3;
58 quint32 m_reserved : 21;
59 quint32 m_reserved2 = 0;
60};
61
63Q_DECLARE_OPERATORS_FOR_FLAGS(QPdfDocumentRenderOptions::RenderFlags)
64
65constexpr inline bool operator==(const QPdfDocumentRenderOptions &lhs, const QPdfDocumentRenderOptions &rhs) noexcept
66{
67 return lhs.m_clipRect == rhs.m_clipRect && lhs.m_scaledSize == rhs.m_scaledSize &&
68 lhs.m_renderFlags == rhs.m_renderFlags && lhs.m_rotation == rhs.m_rotation &&
69 lhs.m_reserved == rhs.m_reserved && lhs.m_reserved2 == rhs.m_reserved2; // fix -Wunused-private-field
70}
71
72constexpr inline bool operator!=(const QPdfDocumentRenderOptions &lhs, const QPdfDocumentRenderOptions &rhs) noexcept
73{
74 return !operator==(lhs, rhs);
75}
76
78
80
81#endif // QPDFDOCUMENTRENDEROPTIONS_H
constexpr RenderFlags renderFlags() const noexcept
constexpr void setScaledClipRect(const QRect &r) noexcept
constexpr void setRenderFlags(RenderFlags r) noexcept
constexpr Rotation rotation() const noexcept
constexpr void setRotation(Rotation r) noexcept
constexpr QSize scaledSize() const noexcept
friend constexpr bool operator==(const QPdfDocumentRenderOptions &lhs, const QPdfDocumentRenderOptions &rhs) noexcept
constexpr QRect scaledClipRect() const noexcept
constexpr void setScaledSize(const QSize &s) noexcept
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore
Definition qsize.h:25
Combined button and popup list for selecting options.
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
#define Q_DECLARE_METATYPE(TYPE)
Definition qmetatype.h:1525
GLboolean r
[2]
GLdouble s
[6]
Definition qopenglext.h:235
constexpr bool operator!=(const QPdfDocumentRenderOptions &lhs, const QPdfDocumentRenderOptions &rhs) noexcept
constexpr bool operator==(const QPdfDocumentRenderOptions &lhs, const QPdfDocumentRenderOptions &rhs) noexcept
@ Q_PRIMITIVE_TYPE
Definition qtypeinfo.h:157
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)
Definition qtypeinfo.h:180
unsigned int quint32
Definition qtypes.h:50