Krita Source Code Documentation
Loading...
Searching...
No Matches
KoSvgTextProperties.cpp File Reference
#include "KoSvgTextProperties.h"
#include <QFontMetrics>
#include <QGlobalStatic>
#include <QMap>
#include <QRegExp>
#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 293 of file KoSvgTextProperties.cpp.

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

References parseTag().

◆ parseTag()

QPair< QString, QString > parseTag ( QString taggedValue)

Definition at line 266 of file KoSvgTextProperties.cpp.

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

◆ parseVariantStringList()

QVariantMap parseVariantStringList ( const QStringList features)

Definition at line 275 of file KoSvgTextProperties.cpp.

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

References parseTag().

◆ roundToStraightAngle()

qreal roundToStraightAngle ( qreal value)
inline

Definition at line 261 of file KoSvgTextProperties.cpp.

262{
263 return normalizeAngle(int((value + M_PI_4) / M_PI_2) * M_PI_2);
264}
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().