Krita Source Code Documentation
Loading...
Searching...
No Matches
KoSvgTextProperties.cpp File Reference
#include "KoSvgTextProperties.h"
#include <QFontMetrics>
#include <QGlobalStatic>
#include <QMap>
#include <QRegularExpression>
#include <fontconfig/fontconfig.h>
#include <SvgGraphicContext.h>
#include <SvgLoadingContext.h>
#include <SvgUtil.h>
#include <kis_dom_utils.h>
#include <kis_global.h>
#include "KoSvgText.h"
#include "KoFontRegistry.h"

Go to the source code of this file.

Classes

struct  KoSvgTextProperties::Private
 

Functions

QVariantMap parseFeatureSettingsStringList (const QStringList features)
 
QPair< QString, QString > parseTag (QString taggedValue)
 
QVariantMap parseVariantStringList (const QStringList features)
 
qreal roundToStraightAngle (qreal value)
 

Function Documentation

◆ parseFeatureSettingsStringList()

QVariantMap parseFeatureSettingsStringList ( const QStringList features)

Definition at line 296 of file KoSvgTextProperties.cpp.

296 {
297 QVariantMap settings;
298 for (int i = 0; i < features.size(); i++) {
299 QString feature = features.at(i).trimmed();
300 if ((!feature.startsWith('\'') && !feature.startsWith('\"')) || feature.isEmpty()) {
301 continue;
302 }
303 QPair<QString, QString> tag = parseTag(feature);
304 if (tag.second.isEmpty()) {
305 settings.insert(tag.first, QVariant(1));
306 } else {
307 bool ok = false;
308 int featureVal = tag.second.toInt(&ok);
309 if (tag.second.toLower() == "on") {
310 featureVal = 1;
311 ok = true;
312 } else if (tag.second.toLower() == "off") {
313 featureVal = 0;
314 ok = true;
315 }
316 if (ok && !tag.first.isEmpty()) {
317 settings.insert(tag.first, QVariant(featureVal));
318 }
319 }
320 }
321 return settings;
322}
QPair< QString, QString > parseTag(QString taggedValue)

References parseTag().

◆ parseTag()

QPair< QString, QString > parseTag ( QString taggedValue)

Definition at line 269 of file KoSvgTextProperties.cpp.

269 {
270 QPair<QString, QString> tag;
271 tag.first = taggedValue.mid(1, 4);
272 if (taggedValue.length() > 6) {
273 tag.second = taggedValue.remove(0, 6).trimmed();
274 }
275 return tag;
276}

◆ parseVariantStringList()

QVariantMap parseVariantStringList ( const QStringList features)

Definition at line 278 of file KoSvgTextProperties.cpp.

278 {
279 QVariantMap settings;
280 for (int i = 0; i < features.size(); i++) {
281 QString feature = features.at(i).trimmed();
282 if ((!feature.startsWith('\'') && !feature.startsWith('\"')) || feature.isEmpty()) {
283 continue;
284 }
285 QPair<QString, QString> tag = parseTag(feature);
286 bool ok = false;
287 double featureVal = tag.second.toDouble(&ok);
288
289 if (ok && !tag.first.isEmpty()) {
290 settings.insert(tag.first, QVariant(featureVal));
291 }
292 }
293 return settings;
294}

References parseTag().

◆ roundToStraightAngle()

qreal roundToStraightAngle ( qreal value)
inline

Definition at line 264 of file KoSvgTextProperties.cpp.

265{
266 return normalizeAngle(int((value + M_PI_4) / M_PI_2) * M_PI_2);
267}
float value(const T *src, size_t ch)
std::enable_if< std::is_floating_point< T >::value, T >::type normalizeAngle(T a)
Definition kis_global.h:121

References normalizeAngle(), and value().