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-03-19 16:13:02 +08:00
|
|
|
item->setProperty("wrapper", (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") {
|
2021-03-04 17:44:54 +08:00
|
|
|
view->childItems().at(0)->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();
|
2021-03-16 16:01:38 +08:00
|
|
|
view->childItems().at(0)->setProperty("color", color);
|
|
|
|
} else if (name == "textSize") {
|
|
|
|
QFont font = view->childItems().at(0)->property("font").value<QFont>();
|
2021-04-02 20:47:15 +08:00
|
|
|
font.setPixelSize(prop.toInt());
|
2021-03-16 16:01:38 +08:00
|
|
|
view->childItems().at(0)->setProperty("font", QVariant(font));
|
2021-03-18 11:27:26 +08:00
|
|
|
} else if (name == "textAlignment") {
|
|
|
|
view->childItems().at(0)->setProperty("textAlignment", prop.toInt());
|
2021-02-25 19:04:14 +08:00
|
|
|
} else {
|
|
|
|
DoricViewNode::blend(view, name, prop);
|
|
|
|
}
|
|
|
|
}
|