This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Doric/doric-Qt/example/doric/shader/DoricTextNode.cpp

37 lines
1.1 KiB
C++
Raw Normal View History

2021-02-25 19:04:14 +08:00
#include "DoricTextNode.h"
2021-03-16 16:01:38 +08:00
#include "../utils/DoricUtils.h"
2021-02-25 19:04:14 +08:00
QQuickItem *DoricTextNode::build() {
QQmlComponent component(getContext()->getQmlEngine());
const QUrl url(QStringLiteral("qrc:/doric/qml/text.qml"));
component.loadUrl(url);
if (component.isError()) {
qCritical() << component.errorString();
}
QQuickItem *item = qobject_cast<QQuickItem *>(component.create());
2021-04-13 21:14:17 +08:00
this->createLayouts(item);
2021-04-06 16:14:43 +08:00
item->setProperty("wrapper", QString::number((qint64)this));
2021-02-25 19:04:14 +08:00
return item;
}
2021-04-02 20:47:15 +08:00
void DoricTextNode::blend(QQuickItem *view, QString name, QJsonValue prop) {
2021-02-25 19:04:14 +08:00
if (name == "text") {
view->setProperty("text", prop.toString());
2021-03-16 16:01:38 +08:00
} else if (name == "textColor") {
2021-04-02 20:47:15 +08:00
QString color = DoricUtils::doricColor(prop.toInt()).name();
view->setProperty("color", color);
2021-03-16 16:01:38 +08:00
} else if (name == "textSize") {
QFont font = view->property("font").value<QFont>();
2021-04-02 20:47:15 +08:00
font.setPixelSize(prop.toInt());
view->setProperty("font", QVariant(font));
2021-03-18 11:27:26 +08:00
} else if (name == "textAlignment") {
view->setProperty("textAlignment", prop.toInt());
2021-02-25 19:04:14 +08:00
} else {
DoricViewNode::blend(view, name, prop);
}
}