KD Reports API Documentation  2.1
KDReportsTextElement.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** This file is part of the KD Reports library.
4 **
5 ** SPDX-FileCopyrightText: 2007-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
6 **
7 ** SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDAB-KDReports OR LicenseRef-KDAB-KDReports-US
8 **
9 ** Licensees holding valid commercial KD Reports licenses may use this file in
10 ** accordance with the KD Reports Commercial License Agreement provided with
11 ** the Software.
12 **
13 ** Contact info@kdab.com if any conditions of this licensing are not clear to you.
14 **
15 ****************************************************************************/
16 
17 #include "KDReportsTextElement.h"
18 #include "KDReportsHeader_p.h" // for cleanupVariableProperties
20 #include <QDebug>
21 
22 class KDReports::TextElementPrivate
23 {
24 public:
25  QString m_string;
26  QString m_id;
27 
28  QString m_fontFamily;
29  bool m_bold = false;
30  bool m_boldIsSet = false;
31  bool m_italic = false;
32  bool m_italicIsSet = false;
33  bool m_underline = false;
34  bool m_underlineIsSet = false;
35  bool m_strikeout = false;
36  bool m_strikeoutIsSet = false;
37  bool m_fontSet = false;
38  qreal m_pointSize = 0;
39  QColor m_foreground;
40  QFont m_font;
41 };
42 
44  : Element()
45  , d(new TextElementPrivate)
46 {
47  d->m_string = string;
48 }
49 
51  : Element(other)
52  , d(new TextElementPrivate(*other.d))
53 {
54 }
55 
57 {
58  if (&other == this)
59  return *this;
60  Element::operator=(other);
61  *d = *other.d;
62  return *this;
63 }
64 
66 {
67 }
68 
70 {
71  QTextCursor &cursor = builder.cursor();
72  const int charPosition = cursor.position();
73  QTextCharFormat charFormat = cursor.charFormat();
75  if (d->m_fontSet) {
76 #if QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)
78 #else
79  charFormat.setFont(d->m_font);
80 #endif
81  }
82  if (d->m_boldIsSet)
83  charFormat.setFontWeight(d->m_bold ? QFont::Bold : QFont::Normal);
84  if (d->m_italicIsSet)
85  charFormat.setFontItalic(d->m_italic);
86  if (d->m_underlineIsSet)
87  charFormat.setFontUnderline(d->m_underline);
88  if (d->m_strikeoutIsSet)
89  charFormat.setFontStrikeOut(d->m_strikeout);
90  if (d->m_pointSize > 0)
91  charFormat.setFontPointSize(d->m_pointSize);
92  if (!d->m_fontFamily.isEmpty())
93  charFormat.setFontFamily(d->m_fontFamily);
94  if (d->m_foreground.isValid())
95  charFormat.setForeground(d->m_foreground);
96  else
97  charFormat.clearForeground();
98  if (background().style() != Qt::NoBrush)
99  charFormat.setBackground(background());
100  else
101  charFormat.clearBackground();
102  cursor.setCharFormat(charFormat);
103  cursor.insertText(d->m_string);
104  if (!d->m_id.isEmpty())
105  builder.currentDocumentData().setTextValueMarker(charPosition, d->m_id, d->m_string.length(), false);
106 }
107 
109 {
110  d->m_string.append(str);
111  return *this;
112 }
113 
115 {
116  d->m_string = text;
117 }
118 
120 {
121  d->m_fontFamily = family;
122 }
123 
125 {
126  d->m_bold = bold;
127  d->m_boldIsSet = true;
128 }
129 
131 {
132  d->m_italic = italic;
133  d->m_italicIsSet = true;
134 }
135 
137 {
138  d->m_underline = underline;
139  d->m_underlineIsSet = true;
140 }
141 
143 {
144  d->m_strikeout = strikeout;
145  d->m_strikeoutIsSet = true;
146 }
147 
149 {
150  d->m_pointSize = size;
151 }
152 
154 {
155  d->m_font = font;
156  d->m_fontSet = true;
157 }
158 
160 {
161  d->m_foreground = color;
162 }
163 
165 {
166  return d->m_foreground;
167 }
168 
170 {
171  return new TextElement(*this);
172 }
173 
175 {
176  d->m_id = id;
177 }
178 
180 {
181  return d->m_id;
182 }
183 
185 {
186  return d->m_string;
187 }
188 
190 {
191  return d->m_font;
192 }
KDReports::TextElement::font
QFont font() const
Definition: KDReportsTextElement.cpp:189
QColor
KDReports::ReportBuilder
Definition: KDReportsReportBuilder_p.h:42
KDReports::ReportBuilder::currentDocumentData
TextDocumentData & currentDocumentData()
Definition: KDReportsReportBuilder_p.h:69
QTextCharFormat
QTextCharFormat::setFontPointSize
void setFontPointSize(qreal size)
KDReports::cleanupVariableProperties
void cleanupVariableProperties(QTextCharFormat &charFormat)
Definition: KDReportsHeader.cpp:107
KDReports::TextElement::id
QString id() const
Definition: KDReportsTextElement.cpp:179
KDReports::TextElement::operator=
TextElement & operator=(const TextElement &other)
Definition: KDReportsTextElement.cpp:56
QTextCharFormat::setFontWeight
void setFontWeight(int weight)
KDReports::TextElement::TextElement
TextElement(const QString &string=QString())
Definition: KDReportsTextElement.cpp:43
KDReports::TextDocumentData::setTextValueMarker
void setTextValueMarker(int pos, const QString &id, int valueLength, bool html)
Definition: KDReportsTextDocumentData.cpp:87
KDReports::TextElement::build
void build(ReportBuilder &builder) const override
Definition: KDReportsTextElement.cpp:69
KDReports::TextElement
Definition: KDReportsTextElement.h:37
KDReports::TextElement::setBold
void setBold(bool bold)
Set font attribute: bold.
Definition: KDReportsTextElement.cpp:124
KDReportsTextElement.h
KDReports::Element
Definition: KDReportsElement.h:41
KDReports::TextElement::setFont
void setFont(const QFont &)
Definition: KDReportsTextElement.cpp:153
QTextCharFormat::setFontStrikeOut
void setFontStrikeOut(bool strikeOut)
QTextFormat::setBackground
void setBackground(const QBrush &brush)
KDReports::TextElement::setItalic
void setItalic(bool italic)
Set font attribute: italic.
Definition: KDReportsTextElement.cpp:130
KDReports::TextElement::operator<<
TextElement & operator<<(const QString &)
Definition: KDReportsTextElement.cpp:108
KDReports::TextElement::setTextColor
void setTextColor(const QColor &color)
Definition: KDReportsTextElement.cpp:159
QTextCharFormat::setFontItalic
void setFontItalic(bool italic)
QTextCursor::setCharFormat
void setCharFormat(const QTextCharFormat &format)
QTextFormat::setForeground
void setForeground(const QBrush &brush)
KDReports::TextElement::~TextElement
~TextElement() override
Definition: KDReportsTextElement.cpp:65
KDReports::TextElement::clone
Element * clone() const override
Definition: KDReportsTextElement.cpp:169
QString
QTextCharFormat::setFontFamily
void setFontFamily(const QString &family)
KDReports::Element::operator=
Element & operator=(const Element &other)
Definition: KDReportsElement.cpp:36
KDReportsHeader_p.h
KDReports::TextElement::setFontFamily
void setFontFamily(const QString &family)
Set font attribute: family.
Definition: KDReportsTextElement.cpp:119
KDReports::TextElement::setId
void setId(const QString &id)
Definition: KDReportsTextElement.cpp:174
KDReportsReportBuilder_p.h
QFont::Bold
Bold
QTextCharFormat::setFont
void setFont(const QFont &font, QTextCharFormat::FontPropertiesInheritanceBehavior behavior)
KDReports::TextElement::setStrikeOut
void setStrikeOut(bool strikeout)
Set font attribute: strike out.
Definition: KDReportsTextElement.cpp:142
QTextFormat::clearBackground
void clearBackground()
QTextCursor::insertText
void insertText(const QString &text)
KDReports::ReportBuilder::cursor
QTextCursor & cursor()
Definition: KDReportsReportBuilder_p.h:48
KDReports::TextElement::text
QString text() const
Definition: KDReportsTextElement.cpp:184
QTextFormat::clearForeground
void clearForeground()
QTextCharFormat::setFontUnderline
void setFontUnderline(bool underline)
QTextCharFormat::FontPropertiesSpecifiedOnly
FontPropertiesSpecifiedOnly
KDReports::TextElement::setPointSize
void setPointSize(qreal size)
Set font attribute: size in points. Can be integer or decimal.
Definition: KDReportsTextElement.cpp:148
KDReports::TextElement::textColor
QColor textColor() const
Definition: KDReportsTextElement.cpp:164
QFont
Qt::NoBrush
NoBrush
KDReports::TextElement::setUnderline
void setUnderline(bool underline)
Set font attribute: underline.
Definition: KDReportsTextElement.cpp:136
QTextCursor::position
int position() const const
QTextCursor
QTextCursor::charFormat
QTextCharFormat charFormat() const const
KDReports::TextElement::setText
void setText(const QString &text)
Definition: KDReportsTextElement.cpp:114

© 2007-2021 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-reports/
Generated on Fri Jul 15 2022 13:09:07 for KD Reports API Documentation by doxygen 1.8.20