Krita Source Code Documentation
Loading...
Searching...
No Matches
KoFontFamily.cpp File Reference
#include "KoFontFamily.h"
#include <KoMD5Generator.h>
#include <KoSvgTextShape.h>
#include <KoColorBackground.h>
#include <SvgWriter.h>
#include <QPainter>
#include <QBuffer>
#include <KoShapePainter.h>

Go to the source code of this file.

Classes

struct  KoFontFamily::Private
 

Functions

QImage generateImage (const QString &sample, const QString &fontFamily, bool isColor)
 
QString generateSVG (const QString &sample, const QString &fontFamily, QRectF &layoutBox, const QString &lang)
 
QMap< QString, QVariant > localeHashtoVariantMap (QHash< QLocale, QString > names)
 

Variables

const QString AXES = "axes"
 
const QString COLOR_BITMAP = "color_bitmap"
 
const QString COLOR_CLRV0 = "color_clrv0"
 
const QString COLOR_CLRV1 = "color_clrv1"
 
const QString COLOR_SVG = "color_svg"
 
const QString FONT_TYPE = "font_type"
 
const QString IS_VARIABLE = "is_variable"
 
const QString LAST_MODIFIED = "last_modified"
 
const QString LOCALIZED_FONT_FAMILY = "localized_font_family"
 
const QString LOCALIZED_TYPOGRAPHIC_NAME = "localized_typographic_name"
 
const QString LOCALIZED_TYPOGRAPHIC_STYLE = "localized_typographic_style"
 
const QString SAMPLE_BBOX = "sample_bbox"
 
const QString SAMPLE_STRING = "sample_string"
 
const QString SAMPLE_SVG = "sample_svg"
 
const QString STYLES = "styles"
 
const QString SUPPORTED_LANGUAGES = "supported_languages"
 
const QString TYPOGRAPHIC_NAME = "typographic_name"
 

Function Documentation

◆ generateImage()

QImage generateImage ( const QString & sample,
const QString & fontFamily,
bool isColor )

Definition at line 36 of file KoFontFamily.cpp.

36 {
38 shape->setResolution(300, 300);
39 shape->setBackground(QSharedPointer<KoColorBackground>(new KoColorBackground(Qt::black)));
40 KoSvgTextProperties props = shape->textProperties();
41 KoSvgText::CssLengthPercentage fontSize(12.0);
42 props.setProperty(KoSvgTextProperties::FontSizeId, QVariant::fromValue(fontSize));
44 shape->setPropertiesAtPos(-1, props);
45 shape->insertText(0, sample);
46
47 QImage img(256,
48 256,
49 isColor? QImage::Format_ARGB32: QImage::Format_Grayscale8);
50 img.fill(Qt::white);
51
52 KoShapePainter painter;
53 painter.setShapes({shape.data()});
54 painter.paint(img);
55
56 return img;
57}
A simple solid color shape background.
void setShapes(const QList< KoShape * > &shapes)
void paint(QPainter &painter)
void setProperty(PropertyId id, const QVariant &value)

References KoSvgTextProperties::FontFamiliesId, KoSvgTextProperties::FontSizeId, KoShapePainter::paint(), KoSvgTextProperties::setProperty(), and KoShapePainter::setShapes().

◆ generateSVG()

QString generateSVG ( const QString & sample,
const QString & fontFamily,
QRectF & layoutBox,
const QString & lang )

Definition at line 59 of file KoFontFamily.cpp.

59 {
61 shape->setResolution(300, 300);
62 shape->setBackground(QSharedPointer<KoColorBackground>(new KoColorBackground(Qt::black)));
63 KoSvgTextProperties props = shape->textProperties();
65 KoSvgText::CssLengthPercentage fontSize(12.0);
66 props.setProperty(KoSvgTextProperties::FontSizeId, QVariant::fromValue(fontSize));
67 if (!lang.isEmpty()) {
69 }
70 shape->setPropertiesAtPos(-1, props);
71 shape->insertText(0, sample);
72
73 layoutBox = shape->selectionBoxes(0, shape->posDown(0)).boundingRect();
74
75 SvgWriter writer({shape->textOutline()});
76 QBuffer buffer;
77 buffer.open(QIODevice::WriteOnly);
78 writer.save(buffer, shape->boundingRect().size());
79 buffer.close();
80
81 return QString::fromUtf8(buffer.data());
82}
@ TextLanguage
a language string.
Implements exporting shapes to SVG.
Definition SvgWriter.h:33
bool save(QIODevice &outputDevice, const QSizeF &pageSize)
Writes svg to specified output device.
Definition SvgWriter.cpp:82

References KoSvgTextProperties::FontFamiliesId, KoSvgTextProperties::FontSizeId, SvgWriter::save(), KoSvgTextProperties::setProperty(), and KoSvgTextProperties::TextLanguage.

◆ localeHashtoVariantMap()

QMap< QString, QVariant > localeHashtoVariantMap ( QHash< QLocale, QString > names)

Definition at line 84 of file KoFontFamily.cpp.

84 {
85 // Needs to be a map to be accessible in qml (see https://bugreports.qt.io/browse/QTBUG-62014)
86 QMap<QString, QVariant> newNames;
87 Q_FOREACH(const QLocale key, names.keys()) {
88 newNames.insert(key.bcp47Name(), QVariant::fromValue(names.value(key)));
89 }
90 return newNames;
91}

Variable Documentation

◆ AXES

const QString AXES = "axes"

Definition at line 19 of file KoFontFamily.cpp.

◆ COLOR_BITMAP

const QString COLOR_BITMAP = "color_bitmap"

Definition at line 23 of file KoFontFamily.cpp.

◆ COLOR_CLRV0

const QString COLOR_CLRV0 = "color_clrv0"

Definition at line 24 of file KoFontFamily.cpp.

◆ COLOR_CLRV1

const QString COLOR_CLRV1 = "color_clrv1"

Definition at line 25 of file KoFontFamily.cpp.

◆ COLOR_SVG

const QString COLOR_SVG = "color_svg"

Definition at line 26 of file KoFontFamily.cpp.

◆ FONT_TYPE

const QString FONT_TYPE = "font_type"

Definition at line 21 of file KoFontFamily.cpp.

◆ IS_VARIABLE

const QString IS_VARIABLE = "is_variable"

Definition at line 22 of file KoFontFamily.cpp.

◆ LAST_MODIFIED

const QString LAST_MODIFIED = "last_modified"

Definition at line 30 of file KoFontFamily.cpp.

◆ LOCALIZED_FONT_FAMILY

const QString LOCALIZED_FONT_FAMILY = "localized_font_family"

Definition at line 18 of file KoFontFamily.cpp.

◆ LOCALIZED_TYPOGRAPHIC_NAME

const QString LOCALIZED_TYPOGRAPHIC_NAME = "localized_typographic_name"

Definition at line 16 of file KoFontFamily.cpp.

◆ LOCALIZED_TYPOGRAPHIC_STYLE

const QString LOCALIZED_TYPOGRAPHIC_STYLE = "localized_typographic_style"

Definition at line 17 of file KoFontFamily.cpp.

◆ SAMPLE_BBOX

const QString SAMPLE_BBOX = "sample_bbox"

Definition at line 29 of file KoFontFamily.cpp.

◆ SAMPLE_STRING

const QString SAMPLE_STRING = "sample_string"

Definition at line 27 of file KoFontFamily.cpp.

◆ SAMPLE_SVG

const QString SAMPLE_SVG = "sample_svg"

Definition at line 28 of file KoFontFamily.cpp.

◆ STYLES

const QString STYLES = "styles"

Definition at line 20 of file KoFontFamily.cpp.

◆ SUPPORTED_LANGUAGES

const QString SUPPORTED_LANGUAGES = "supported_languages"

Definition at line 31 of file KoFontFamily.cpp.

◆ TYPOGRAPHIC_NAME

const QString TYPOGRAPHIC_NAME = "typographic_name"

Definition at line 15 of file KoFontFamily.cpp.