Krita Source Code Documentation
Loading...
Searching...
No Matches
CssQmlUnitConverter Class Reference

The CssQmlUnitConverter class. More...

#include <CssQmlUnitConverter.h>

+ Inheritance diagram for CssQmlUnitConverter:

Classes

struct  Private
 

Public Types

enum  UserUnits {
  Px , Pt , Mm , Cm ,
  Inch , Percentage , Em , Ex ,
  Cap , Ch , Ic , Lh ,
  Lines , Spaces
}
 

Signals

void dataMultiplierChanged ()
 
void dataUnitChanged ()
 
void dataValueChanged ()
 
void dpiChanged ()
 
void percentageReferenceChanged ()
 
void userUnitChanged ()
 
void userUnitModelChanged ()
 
void userValueChanged ()
 

Public Member Functions

 CssQmlUnitConverter (QObject *parent=nullptr)
 
qreal dataMultiplier () const
 
int dataUnit () const
 
qreal dataValue () const
 
qreal dpi () const
 
qreal percentageReference () const
 
void setDataMultiplier (qreal newDataMultiplier)
 
void setDataUnit (int newDataUnit)
 
Q_INVOKABLE void setDataUnitMap (const QVariantList &unitMap)
 setDataUnitMap
 
void setDataValue (qreal newDataValue)
 
Q_INVOKABLE void setDataValueAndUnit (const qreal value, const int unit)
 setDataValueAndUnit set data unit and value in one go.
 
void setDpi (qreal newDpi)
 
Q_INVOKABLE void setFontMetricsFromTextPropertiesModel (KoSvgTextPropertiesModel *textPropertiesModel, bool isFontSize=false, bool isLineHeight=false)
 setFontMetricsFromTextPropertiesModel Set the current font metrics from the text properties model.
 
Q_INVOKABLE void setFromNormalLineHeight ()
 setFromNormalLineHeight set the current value from line-height:normal metrics.
 
void setPercentageReference (qreal newPercentageReference)
 
void setUserUnit (int newUserUnit)
 
void setUserValue (qreal newUserValue)
 
QString symbol () const
 
int userUnit () const
 
QVariantList userUnitModel () const
 
qreal userValue () const
 
 ~CssQmlUnitConverter ()
 

Properties

qreal dataMultiplier
 Data multiplier is used if for some reason the user-value needs to be multiplied by a certain factor.
 
int dataUnit
 
qreal dataValue
 dataValue and dataUnit represent the data as used by the text properties.
 
qreal dpi
 The DPI used to calculate pixel to physical properties.
 
qreal percentageReference
 value to represent 100%
 
QString symbol
 The symbol.
 
int userUnit
 
QVariantList userUnitModel
 A model for the available user units.
 
qreal userValue
 userValue and userUnit represent the user-visible data. This can include synthetic units like px and mm from pt.
 

Private Member Functions

qreal convertFromRelativeValue (const qreal value, const UserUnits type) const
 
qreal convertToRelativeValue (const qreal value, const UserUnits type) const
 

Private Attributes

const QScopedPointer< Privated
 

Detailed Description

The CssQmlUnitConverter class.

This handles converter to and from various units. For the absolute units, KoUnit is used internally. For the font-relative units, it will use the fontMetrics;

Definition at line 19 of file CssQmlUnitConverter.h.

Member Enumeration Documentation

◆ UserUnits

Enumerator
Px 

Pixels, dpi relative.

Pt 

Points, 1/72th.

Mm 

Millimeters.

Cm 

Centimeters.

Inch 

Inches.

Percentage 
Em 

FontSize.

Ex 

Font x-height.

Cap 

Cap height.

Ch 

average proportional advance

Ic 

average full-width advance

Lh 

line-height

Lines 

Used by lineHeight.

Spaces 

Used by tabs.

Definition at line 51 of file CssQmlUnitConverter.h.

51 {
52 Px,
53 Pt,
54 Mm,
55 Cm,
56 Inch,
57 //
59 // Font Relative
60 Em,
61 Ex,
62 Cap,
63 Ch,
64 Ic,
65 Lh,
66 // unique for certain properties
67 Lines,
68 Spaces,
69 };
@ Ic
average full-width advance
@ Lines
Used by lineHeight.
@ Px
Pixels, dpi relative.
@ Ch
average proportional advance

Constructor & Destructor Documentation

◆ CssQmlUnitConverter()

CssQmlUnitConverter::CssQmlUnitConverter ( QObject * parent = nullptr)

Definition at line 44 of file CssQmlUnitConverter.cpp.

45 : QObject(parent)
46 , d(new Private)
47{
48 d->absoluteUnitConverter = KoUnit(KoUnit::Point, d->dpi);
51}
const QScopedPointer< Private > d
static const KoSvgTextProperties & defaultProperties()
KoCSSFontInfo cssFontInfo() const
cssFontInfo
KoSvgText::FontMetrics metrics(const bool withResolvedLineHeight=true) const
metrics Return the metrics of the first available font.
@ Point
Postscript point, 1/72th of an Inco.
Definition KoUnit.h:76

References KoSvgTextProperties::cssFontInfo(), d, KoSvgTextProperties::defaultProperties(), KoSvgTextProperties::metrics(), and KoUnit::Point.

◆ ~CssQmlUnitConverter()

CssQmlUnitConverter::~CssQmlUnitConverter ( )

Definition at line 53 of file CssQmlUnitConverter.cpp.

54{
55}

Member Function Documentation

◆ convertFromRelativeValue()

qreal CssQmlUnitConverter::convertFromRelativeValue ( const qreal value,
const UserUnits type ) const
private

Definition at line 365 of file CssQmlUnitConverter.cpp.

366{
367 return value * metricsMultiplier(type, d->metrics, d->fontInfo.size, d->percentageReference);
368}
qreal metricsMultiplier(const CssQmlUnitConverter::UserUnits type, const KoSvgText::FontMetrics metrics, const qreal fontSize, const qreal percentageReference)
float value(const T *src, size_t ch)

References d, metricsMultiplier(), and value().

◆ convertToRelativeValue()

qreal CssQmlUnitConverter::convertToRelativeValue ( const qreal value,
const UserUnits type ) const
private

Definition at line 360 of file CssQmlUnitConverter.cpp.

361{
362 return value / metricsMultiplier(type, d->metrics, d->fontInfo.size, d->percentageReference);
363}

References d, metricsMultiplier(), and value().

◆ dataMultiplier()

qreal CssQmlUnitConverter::dataMultiplier ( ) const

Definition at line 155 of file CssQmlUnitConverter.cpp.

156{
157 return d->dataMultiplier;
158}

References d.

◆ dataMultiplierChanged

void CssQmlUnitConverter::dataMultiplierChanged ( )
signal

◆ dataUnit()

int CssQmlUnitConverter::dataUnit ( ) const

Definition at line 182 of file CssQmlUnitConverter.cpp.

183{
184 return d->dataUnit;
185}

References d.

◆ dataUnitChanged

void CssQmlUnitConverter::dataUnitChanged ( )
signal

◆ dataValue()

qreal CssQmlUnitConverter::dataValue ( ) const

Definition at line 168 of file CssQmlUnitConverter.cpp.

169{
170 return d->dataValue;
171}

References d.

◆ dataValueChanged

void CssQmlUnitConverter::dataValueChanged ( )
signal

◆ dpi()

qreal CssQmlUnitConverter::dpi ( ) const

Definition at line 140 of file CssQmlUnitConverter.cpp.

141{
142 return d->dpi;
143}

References d.

◆ dpiChanged

void CssQmlUnitConverter::dpiChanged ( )
signal

◆ percentageReference()

qreal CssQmlUnitConverter::percentageReference ( ) const

Definition at line 323 of file CssQmlUnitConverter.cpp.

324{
325 return d->percentageReference;
326}

References d.

◆ percentageReferenceChanged

void CssQmlUnitConverter::percentageReferenceChanged ( )
signal

◆ setDataMultiplier()

void CssQmlUnitConverter::setDataMultiplier ( qreal newDataMultiplier)

Definition at line 160 of file CssQmlUnitConverter.cpp.

161{
162 if (qFuzzyCompare(d->dataMultiplier, newDataMultiplier))
163 return;
164 d->dataMultiplier = newDataMultiplier;
166}
void dataMultiplierChanged()
static bool qFuzzyCompare(half p1, half p2)

References d, dataMultiplierChanged(), and qFuzzyCompare().

◆ setDataUnit()

void CssQmlUnitConverter::setDataUnit ( int newDataUnit)

Definition at line 187 of file CssQmlUnitConverter.cpp.

188{
189 if (d->dataUnit == newDataUnit)
190 return;
191 if (d->dataUnitMap.key(d->dataUnit) == d->userUnit)
192 return;
193 setUserUnit(d->dataUnitMap.key(d->dataUnit));
194}
void setUserUnit(int newUserUnit)

References d, and setUserUnit().

◆ setDataUnitMap()

void CssQmlUnitConverter::setDataUnitMap ( const QVariantList & unitMap)

setDataUnitMap

Parameters
map– variant list of VariantMaps, where "data" is an int representing a dataUnit, and "user" is an int representing a value in the UserUnits enum.

Definition at line 57 of file CssQmlUnitConverter.cpp.

58{
59 QMap<int, int> map;
60 Q_FOREACH(QVariant var, unitMap) {
61 QVariantMap m = var.toMap();
62 bool ok = false;
63 const int user = m.value("user").toInt(&ok);
64 const int data = m.value("data").toInt(&ok);
65 if (!ok) {
66 qWarning() << Q_FUNC_INFO << "unitMap has wrong format";
67 return;
68 }
69 map.insert(user, data);
70 }
71
72 if (d->dataUnitMap != map) {
73 d->dataUnitMap = map;
75 }
76}

References d, and userUnitModelChanged().

◆ setDataValue()

void CssQmlUnitConverter::setDataValue ( qreal newDataValue)

Definition at line 173 of file CssQmlUnitConverter.cpp.

174{
175 if (qFuzzyCompare(d->dataValue, newDataValue))
176 return;
177 d->dataValue = newDataValue;
178 emit dataValueChanged();
179 emit userValueChanged();
180}

References d, dataValueChanged(), qFuzzyCompare(), and userValueChanged().

◆ setDataValueAndUnit()

void CssQmlUnitConverter::setDataValueAndUnit ( const qreal value,
const int unit )

setDataValueAndUnit set data unit and value in one go.

Definition at line 119 of file CssQmlUnitConverter.cpp.

120{
121 const bool updateVal = !qFuzzyCompare(d->dataValue, value);
122 const bool updateUnit = d->dataUnit != unit;
123 if (!updateVal && !updateUnit) {
124 return;
125 }
126
127 d->dataUnit = unit;
128 d->dataValue = value;
129 d->userUnit = d->dataUnitMap.key(d->dataUnit, UserUnits::Pt);
130 if (koUnitMap.values().contains(UserUnits(d->userUnit))) {
131 d->absoluteUnitConverter = KoUnit(koUnitMap.key(UserUnits(d->userUnit)), d->dpi * koUnitFactor);
132 }
133
134 emit dataUnitChanged();
135 emit userUnitChanged();
136 emit dataValueChanged();
137 emit userValueChanged();
138}
const qreal koUnitFactor
const QMap< KoUnit::Type, CssQmlUnitConverter::UserUnits > koUnitMap

References d, dataUnitChanged(), dataValueChanged(), koUnitFactor, koUnitMap, Pt, qFuzzyCompare(), userUnitChanged(), userValueChanged(), and value().

◆ setDpi()

void CssQmlUnitConverter::setDpi ( qreal newDpi)

Definition at line 145 of file CssQmlUnitConverter.cpp.

146{
147 if (qFuzzyCompare(d->dpi, newDpi))
148 return;
149 d->dpi = newDpi;
150 d->absoluteUnitConverter.setFactor(newDpi * koUnitFactor);
151 emit dpiChanged();
152 emit userValueChanged();
153}

References d, dpiChanged(), koUnitFactor, qFuzzyCompare(), and userValueChanged().

◆ setFontMetricsFromTextPropertiesModel()

void CssQmlUnitConverter::setFontMetricsFromTextPropertiesModel ( KoSvgTextPropertiesModel * textPropertiesModel,
bool isFontSize = false,
bool isLineHeight = false )

setFontMetricsFromTextPropertiesModel Set the current font metrics from the text properties model.

Parameters
textPropertiesModel

Definition at line 78 of file CssQmlUnitConverter.cpp.

79{
81 int parentLineHeight = -1;
82 if (textPropertiesModel) {
83 KoSvgTextPropertyData data = textPropertiesModel->textData.get();
84 // remove fontsize or lineheight for those specific properties, so the calculation is normal.
85 if (isFontSize) {
88 } else {
91 }
92 if (isLineHeight) {
93 KoSvgText::FontMetrics m = main.metrics(true);
94 parentLineHeight = m.ascender-m.descender + m.lineGap;
95 }
96 }
97 KoCSSFontInfo info = main.cssFontInfo();
98 if (info.size < 0) return;
99 if (d->fontInfo == info) {
100 return;
101 }
102 d->fontInfo = main.cssFontInfo();
103 d->metrics = main.metrics(false);
104 d->fontLineGap = d->metrics.lineGap;
105 if (isLineHeight) {
106 d->metrics = main.applyLineHeight(d->metrics);
107 } else {
108 d->metrics.lineGap = parentLineHeight - (d->metrics.ascender-d->metrics.descender);
109 }
110}
lager::cursor< KoSvgTextPropertyData > textData
void inheritFrom(const KoSvgTextProperties &parentProperties, bool resolve=false)
int main(int argc, char **argv)
Definition main.cpp:26
The KoCSSFontInfo class Convenience struct to make it easier to use KoFontRegistry....
The KoSvgTextPropertyData struct.
KoSvgTextProperties commonProperties
The properties common between all the selected text.
KoSvgTextProperties inheritedProperties
The properties that are inherited, so that widgets may be set correctly.
The FontMetrics class A class to keep track of a variety of font metrics. Note that values are in Fre...
Definition KoSvgText.h:327
qint32 lineGap
additional linegap between consecutive lines.
Definition KoSvgText.h:341
qint32 descender
distance for origin to bottom.
Definition KoSvgText.h:340
qint32 ascender
distance from origin to top.
Definition KoSvgText.h:339

References KoSvgText::FontMetrics::ascender, KoSvgTextPropertyData::commonProperties, d, KoSvgTextProperties::defaultProperties(), KoSvgText::FontMetrics::descender, KoSvgTextPropertyData::inheritedProperties, KoSvgTextProperties::inheritFrom(), KoSvgText::FontMetrics::lineGap, main(), KoCSSFontInfo::size, and KoSvgTextPropertiesModel::textData.

◆ setFromNormalLineHeight()

void CssQmlUnitConverter::setFromNormalLineHeight ( )

setFromNormalLineHeight set the current value from line-height:normal metrics.

Definition at line 112 of file CssQmlUnitConverter.cpp.

113{
114 const qreal multiplier = d->fontInfo.size / d->metrics.fontSize;
115 qreal normalLineHeight = (d->metrics.ascender - d->metrics.descender + d->fontLineGap)*multiplier;
116 setDataValue(convertToRelativeValue(normalLineHeight, UserUnits(d->dataUnitMap.key(d->dataUnit))));
117}
qreal convertToRelativeValue(const qreal value, const UserUnits type) const
void setDataValue(qreal newDataValue)

References convertToRelativeValue(), d, setDataValue(), and KoCSSFontInfo::size.

◆ setPercentageReference()

void CssQmlUnitConverter::setPercentageReference ( qreal newPercentageReference)

Definition at line 328 of file CssQmlUnitConverter.cpp.

329{
330 if (qFuzzyCompare(d->percentageReference, newPercentageReference))
331 return;
332 d->percentageReference = newPercentageReference;
334}
void percentageReferenceChanged()

References d, percentageReferenceChanged(), and qFuzzyCompare().

◆ setUserUnit()

void CssQmlUnitConverter::setUserUnit ( int newUserUnit)

Definition at line 217 of file CssQmlUnitConverter.cpp.

218{
219 if (d->userUnit == newUserUnit)
220 return;
221 UserUnits newType = UserUnits(newUserUnit);
222 const bool newIsAbsolute = koUnitMap.values().contains(newType);
223 const bool oldIsAbsolute = koUnitMap.values().contains(UserUnits(d->userUnit));
224
225 const qreal currentAbsoluteValue = oldIsAbsolute?
226 d->absoluteUnitConverter.fromUserValue(d->dataValue):
227 convertFromRelativeValue(d->dataValue, UserUnits(d->userUnit));
228
229 if (newIsAbsolute && oldIsAbsolute) {
230 KoUnit newUnitConverter(koUnitMap.key(newType), d->dpi * koUnitFactor);
231 d->absoluteUnitConverter = newUnitConverter;
232 emit userValueChanged();
233 } else if (newIsAbsolute) {
234 KoUnit newUnitConverter(koUnitMap.key(newType), d->dpi* koUnitFactor);
235 d->absoluteUnitConverter = newUnitConverter;
236 d->dataUnit = d->dataUnitMap.value(UserUnits::Pt);
237 emit dataUnitChanged();
238 setDataValue(currentAbsoluteValue);
239 } else { // old value was absolute, and new value is relative, or both values are relative.
240 d->dataUnit = d->dataUnitMap.value(newUserUnit);
241 emit dataUnitChanged();
242 setDataValue(convertToRelativeValue(currentAbsoluteValue, newType));
243 }
244
245 d->userUnit = newUserUnit;
246 emit userUnitChanged();
247}
qreal convertFromRelativeValue(const qreal value, const UserUnits type) const

References convertFromRelativeValue(), convertToRelativeValue(), d, dataUnitChanged(), koUnitFactor, koUnitMap, Pt, setDataValue(), userUnitChanged(), and userValueChanged().

◆ setUserValue()

void CssQmlUnitConverter::setUserValue ( qreal newUserValue)

Definition at line 202 of file CssQmlUnitConverter.cpp.

203{
204 if (qFuzzyCompare(userValue(), newUserValue))
205 return;
206 const bool isAbsolute = koUnitMap.values().contains(UserUnits(d->userUnit));
207 d->dataValue = isAbsolute? d->absoluteUnitConverter.fromUserValue(newUserValue/d->dataMultiplier): (newUserValue/d->dataMultiplier);
208 emit userValueChanged();
209 emit dataValueChanged();
210}
qreal userValue
userValue and userUnit represent the user-visible data. This can include synthetic units like px and ...

References d, dataValueChanged(), koUnitMap, qFuzzyCompare(), userValue, and userValueChanged().

◆ symbol()

QString CssQmlUnitConverter::symbol ( ) const

Definition at line 294 of file CssQmlUnitConverter.cpp.

295{
296 UserUnits unit = UserUnits(d->userUnit);
297 const bool isAbsolute = koUnitMap.values().contains(unit);
298 if (isAbsolute) {
299 return d->absoluteUnitConverter.symbol();
300 }
301 if (unit == Em) {
302 return QString("em");
303 } else if (unit == Ex) {
304 return QString("ex");
305 } else if (unit == Cap) {
306 return QString("cap");
307 } else if (unit == Ch) {
308 return QString("ch");
309 } else if (unit == Ic) {
310 return QString("ic");
311 } else if (unit == Lh) {
312 return QString("lh");
313 } else if (unit == Lines) {
314 return QString("Ln");
315 } else if (unit == Spaces) {
316 return QString("Sp");
317 } else if (unit == Percentage) {
318 return QString("%");
319 }
320 return QString();
321}

References Cap, Ch, d, Em, Ex, Ic, koUnitMap, Lh, Lines, Percentage, and Spaces.

◆ userUnit()

int CssQmlUnitConverter::userUnit ( ) const

Definition at line 212 of file CssQmlUnitConverter.cpp.

213{
214 return d->userUnit;
215}

References d.

◆ userUnitChanged

void CssQmlUnitConverter::userUnitChanged ( )
signal

◆ userUnitModel()

QVariantList CssQmlUnitConverter::userUnitModel ( ) const

Definition at line 249 of file CssQmlUnitConverter.cpp.

250{
251 QVariantList userUnitModel;
252
253 const QString descriptionKey = "description";
254 const QString valueKey = "value";
255 Q_FOREACH(const int key, d->dataUnitMap.keys()) {
256 UserUnits keyUnit = UserUnits(key);
257
258 if (keyUnit == Pt) {
259 Q_FOREACH(KoUnit::Type koUnitKey, koUnitMap.keys()) {
260 QVariantMap unit;
261 unit.insert(descriptionKey, KoUnit::unitDescription(koUnitKey));
262 unit.insert(valueKey, koUnitMap.value(koUnitKey));
263 userUnitModel.append(unit);
264 }
265 } else {
266 QVariantMap unit;
267 if (keyUnit == Em) {
268 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Font Size (em)"));
269 } else if (keyUnit == Ex) {
270 unit.insert(descriptionKey, i18nc("@label:inlistbox", "X Height (ex)"));
271 } else if (keyUnit == Cap) {
272 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Cap Height (cap)"));
273 } else if (keyUnit == Ch) {
274 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Proportional Advance (ch)"));
275 } else if (keyUnit == Ic) {
276 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Ideographic Advance (ic)"));
277 } else if (keyUnit == Lh) {
278 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Line Height (lh)"));
279 } else if (keyUnit == Spaces) {
280 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Spaces (Sp)"));
281 } else if (keyUnit == Lines) {
282 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Lines (Ln)"));
283 } else if (keyUnit == Percentage) {
284 unit.insert(descriptionKey, i18nc("@label:inlistbox", "Percentage (%)"));
285 }
286 unit.insert(valueKey, keyUnit);
287 userUnitModel.append(unit);
288 }
289 }
290
291 return userUnitModel;
292}
QVariantList userUnitModel
A model for the available user units.
static QString unitDescription(KoUnit::Type type)
Get the description string of the given unit.
Definition KoUnit.cpp:32

References Cap, Ch, d, Em, Ex, Ic, koUnitMap, Lh, Lines, Percentage, Pt, Spaces, KoUnit::unitDescription(), and userUnitModel.

◆ userUnitModelChanged

void CssQmlUnitConverter::userUnitModelChanged ( )
signal

◆ userValue()

qreal CssQmlUnitConverter::userValue ( ) const

Definition at line 196 of file CssQmlUnitConverter.cpp.

197{
198 const bool isAbsolute = koUnitMap.values().contains(UserUnits(d->userUnit));
199 return (isAbsolute? d->absoluteUnitConverter.toUserValue(d->dataValue): d->dataValue) * d->dataMultiplier;
200}
qreal dataMultiplier
Data multiplier is used if for some reason the user-value needs to be multiplied by a certain factor.
qreal dataValue
dataValue and dataUnit represent the data as used by the text properties.

References d, and koUnitMap.

◆ userValueChanged

void CssQmlUnitConverter::userValueChanged ( )
signal

Member Data Documentation

◆ d

const QScopedPointer<Private> CssQmlUnitConverter::d
private

Definition at line 148 of file CssQmlUnitConverter.h.

Property Documentation

◆ dataMultiplier

qreal CssQmlUnitConverter::dataMultiplier
readwrite

Data multiplier is used if for some reason the user-value needs to be multiplied by a certain factor.

Definition at line 27 of file CssQmlUnitConverter.h.

◆ dataUnit

int CssQmlUnitConverter::dataUnit
readwrite

Definition at line 31 of file CssQmlUnitConverter.h.

◆ dataValue

qreal CssQmlUnitConverter::dataValue
readwrite

dataValue and dataUnit represent the data as used by the text properties.

Definition at line 30 of file CssQmlUnitConverter.h.

◆ dpi

qreal CssQmlUnitConverter::dpi
readwrite

The DPI used to calculate pixel to physical properties.

Definition at line 24 of file CssQmlUnitConverter.h.

◆ percentageReference

qreal CssQmlUnitConverter::percentageReference
readwrite

value to represent 100%

Definition at line 44 of file CssQmlUnitConverter.h.

◆ symbol

QString CssQmlUnitConverter::symbol
read

The symbol.

Definition at line 41 of file CssQmlUnitConverter.h.

◆ userUnit

int CssQmlUnitConverter::userUnit
readwrite

Definition at line 35 of file CssQmlUnitConverter.h.

◆ userUnitModel

QVariantList CssQmlUnitConverter::userUnitModel
read

A model for the available user units.

Definition at line 38 of file CssQmlUnitConverter.h.

◆ userValue

qreal CssQmlUnitConverter::userValue
readwrite

userValue and userUnit represent the user-visible data. This can include synthetic units like px and mm from pt.

Definition at line 34 of file CssQmlUnitConverter.h.


The documentation for this class was generated from the following files: