19const QString
AXES =
"axes";
36QImage
generateImage(
const QString &sample,
const QString &fontFamily,
bool isColor) {
38 shape->setResolution(300, 300);
44 shape->setPropertiesAtPos(-1, props);
45 shape->insertText(0, sample);
49 isColor? QImage::Format_ARGB32: QImage::Format_Grayscale8);
59QString
generateSVG(
const QString &sample,
const QString &fontFamily, QRectF &layoutBox,
const QString &lang) {
61 shape->setResolution(300, 300);
67 if (!lang.isEmpty()) {
70 shape->setPropertiesAtPos(-1, props);
71 shape->insertText(0, sample);
73 layoutBox = shape->selectionBoxes(0, shape->posDown(0)).boundingRect();
77 buffer.open(QIODevice::WriteOnly);
78 writer.
save(buffer, shape->boundingRect().size());
81 return QString::fromUtf8(buffer.data());
86 QMap<QString, QVariant> newNames;
87 Q_FOREACH(
const QLocale key, names.keys()) {
88 newNames.insert(key.bcp47Name(), QVariant::fromValue(names.value(key)));
106 QMap<QString, QVariant> samples;
107 Q_FOREACH(
const QString key, representation.
sampleStrings.keys()) {
108 samples.insert(key, QVariant::fromValue(representation.
sampleStrings.value(key)));
113 QString val = l.bcp47Name();
114 val.replace(
"_",
"-");
115 supportedLanguages.append(QVariant::fromValue(val));
126 Q_FOREACH(
const QString key, representation.
axes.keys()) {
127 axes.insert(key, QVariant::fromValue(representation.
axes.value(key)));
132 styles.append(QVariant::fromValue(style));
155 QMap<QString, QVariant> meta =
metadata();
156 Q_FOREACH(
const QString key, meta.keys()) {
170 Q_UNUSED(resourcesInterface);
187 QMap<QString, QVariant> sampleSVG;
188 QMap<QString, QVariant> sampleSVGBbox;
190 Q_FOREACH (
const QString key, samples.keys()) {
191 QString sample = samples.value(key).toString();
193 QString lang = key.startsWith(
"l_")? key.right(key.size() - 2):
"";
194 sampleSVG.insert(key, QVariant::fromValue(
generateSVG(sample,
filename(), sampleBBox, lang)));
195 sampleSVGBbox.insert(key, QVariant::fromValue(sampleBBox));
200 const QString sample = samples.isEmpty()?
"AaBbGg"
201 : samples.value(
"s_Latn", samples.values().first()).toString();
215 Q_FOREACH(
const QString locale, locales) {
216 if (names.keys().contains(locale)) {
217 name = names.value(locale).toString();
253 Q_FOREACH(
const QString key,
axes.keys()) {
263 Q_FOREACH(
const QVariant val,
styles) {
QString generateSVG(const KoSvgTextShape *shape)
const QString SAMPLE_BBOX
const QString SUPPORTED_LANGUAGES
const QString TYPOGRAPHIC_NAME
const QString COLOR_BITMAP
const QString LOCALIZED_TYPOGRAPHIC_STYLE
const QString LOCALIZED_TYPOGRAPHIC_NAME
QString generateSVG(const QString &sample, const QString &fontFamily, QRectF &layoutBox, const QString &lang)
const QString COLOR_CLRV0
const QString IS_VARIABLE
QMap< QString, QVariant > localeHashtoVariantMap(QHash< QLocale, QString > names)
const QString LOCALIZED_FONT_FAMILY
const QString LAST_MODIFIED
const QString SAMPLE_STRING
QImage generateImage(const QString &sample, const QString &fontFamily, bool isColor)
const QString COLOR_CLRV1
A simple solid color shape background.
The KoFontFamily class Abstract representation of a Weight/Width/Slant font family,...
bool isSerializable() const override
QString translatedFontName(QStringList locales) const
Return the translated name for a given locale...
QList< KoSvgText::FontFamilyAxis > axes() const
bool colorBitmap() const
Font has color bitmaps.
QString typographicFamily() const
Returns the typographic family name, if any.
QList< KoSvgText::FontFamilyStyleInfo > styles() const
KoResourceSP clone() const override
bool colorClrV0() const
Font has colrv0 layers.
bool colorClrV1() const
Font has colrv1 layers – doesn't yet work.
bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override
bool colorSVG() const
Font is SVG.
QPair< QString, QString > resourceType() const override
QDateTime lastModified() const
KoFontFamily(KoFontFamilyWWSRepresentation representation)
bool isVariable() const
Font is variable.
void updateThumbnail() override
updateThumbnail updates the thumbnail for this resource. Reimplement if your thumbnail is something e...
static QString generateHash(const QString &filename)
generateHash reads the given file and generates a hex-encoded md5sum for the file.
void setShapes(const QList< KoShape * > &shapes)
void paint(QPainter &painter)
@ FontFamiliesId
QStringList.
@ TextLanguage
a language string.
void setProperty(PropertyId id, const QVariant &value)
Implements exporting shapes to SVG.
bool save(QIODevice &outputDevice, const QSizeF &pageSize)
Writes svg to specified output device.
QSharedPointer< KoResource > KoResourceSP
const QString FontFamilies
QList< KoSvgText::FontFamilyStyleInfo > styles
QHash< QString, KoSvgText::FontFamilyAxis > axes
KoSvgText::FontFormatType type
QDateTime lastModified
Value of the most recently modified font family. Used for updates.
QHash< QLocale, QString > localizedTypographicStyles
QList< QLocale > supportedLanguages
sample string used to generate the preview;
QHash< QString, QString > sampleStrings
QString typographicFamilyName
QHash< QLocale, QString > localizedTypographicFamily
QHash< QLocale, QString > localizedFontFamilyNames
void setValid(bool valid)
void setName(const QString &name)
void addMetaData(QString key, QVariant value)
store the given key, value pair in the resource
void setMD5Sum(const QString &md5sum)
Set the md5sum of this resource. It must be in hex-encoded string format.
void setFilename(const QString &filename)
void setImage(const QImage &image)
QMap< QString, QVariant > metadata