Krita Source Code Documentation
Loading...
Searching...
No Matches
CssFontStyleModel.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#include "CssFontStyleModel.h"
7
8namespace {
9
10auto getValue = lager::lenses::getset(
11 [](const KoSvgText::CssFontStyleData &data) -> qreal {
12 if (data.style == QFont::StyleOblique) {
13 if (data.slantValue.isAuto) {
14 return 14;
15 } else {
16 return data.slantValue.customValue;
17 }
18 }
19 return 0;
20 },
21 [](KoSvgText::CssFontStyleData data, const qreal &val) -> KoSvgText::CssFontStyleData {
22 if (data.style == QFont::StyleOblique) {
23 data.slantValue.isAuto = false;
24 data.slantValue = val;
25 }
26 return data;
27 });
28
29auto getStyle = lager::lenses::getset(
32 },
34 data.style = QFont::Style(val);
35 if (data.style != QFont::StyleOblique) {
36 data.slantValue.isAuto = true;
37 data.slantValue = 0;
38 }
39 return data;
40 });
41
42} // namespace
43
44CssFontStyleModel::CssFontStyleModel(lager::cursor<KoSvgText::CssFontStyleData> _data)
45 : data(_data)
46 , LAGER_QT(style) {data.zoom(getStyle)}
47 , LAGER_QT(value) {data.zoom(getValue)}
48{
49
50}
LAGER_QT(value)
float value(const T *src, size_t ch)
CssFontStyleModel(lager::cursor< KoSvgText::CssFontStyleData > _data=lager::make_state(KoSvgText::CssFontStyleData(), lager::automatic_tag{}))
lager::cursor< KoSvgText::CssFontStyleData > data
When style is oblique, a custom slant value can be specified for variable fonts.
Definition KoSvgText.h:475
KoSvgText::AutoValue slantValue
Definition KoSvgText.h:479