Krita Source Code Documentation
Loading...
Searching...
No Matches
KoCssTextUtils.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KOCSSTEXTUTILS_H
7#define KOCSSTEXTUTILS_H
8
9#include <KoSvgText.h>
10#include <QDebug>
11#include <QLocale>
12#include <QString>
13
14#include "kritaflake_export.h"
21class KRITAFLAKE_EXPORT KoCssTextUtils
22{
23public:
35 static QString transformTextToUpperCase(const QString &text, const QString &langCode, QVector<QPair<int, int>> &positions);
36
48 static QString transformTextToLowerCase(const QString &text, const QString &langCode, QVector<QPair<int, int>> &positions);
49
63 static QString transformTextCapitalize(const QString &text, QString langCode, QVector<QPair<int, int>> &positions);
64
74 static QString transformTextFullWidth(const QString &text);
84 static QString transformTextFullSizeKana(const QString &text);
85
99 static QVector<bool> collapseSpaces(QString *text, QMap<int, KoSvgText::TextSpaceCollapse> collapseMethods);
100
112 static bool collapseLastSpace(QChar c, KoSvgText::TextSpaceCollapse collapseMethod);
113
125 static bool hangLastSpace(const QChar c,
126 KoSvgText::TextSpaceCollapse collapseMethod,
127 KoSvgText::TextWrap wrapMethod,
128 bool &force, bool nextCharIsHardBreak);
129
139 static bool characterCanHang(QChar c, KoSvgText::HangingPunctuations hangType);
140
150 static bool IsCssWordSeparator(QString grapheme);
151
165 static QStringList textToUnicodeGraphemeClusters(const QString &text, const QString &langCode);
166
177 static QVector<QPair<bool, bool>> justificationOpportunities(QString text, QString langCode);
178
187 static QString getBidiOpening(bool ltr, KoSvgText::UnicodeBidi bidi);
188
195 static QString getBidiClosing(KoSvgText::UnicodeBidi bidi);
196
211 static void removeText(QString &text, int &start, int length);
212
227 static qreal cssSelectFontStyleValue(const QVector<qreal> &values,
228 const qreal targetValue,
229 const qreal defaultValue,
230 const qreal defaultValueUpper,
231 const bool shouldNotReturnDefault);
232};
233
234#endif // KOCSSTEXTUTILS_H
qreal length(const QPointF &vec)
Definition Ellipse.cc:82
The KoCssTextUtils class.
TextWrap
Part of "white-space", in practice we only support wrap and nowrap.
Definition KoSvgText.h:109
TextSpaceCollapse
Definition KoSvgText.h:96