handle input on text change & padding

This commit is contained in:
王劲鹏
2021-05-27 10:56:58 +08:00
committed by osborn
parent 143e52ab63
commit 2782552b41
11 changed files with 108 additions and 0 deletions

View File

@@ -32,7 +32,35 @@ void DoricInputNode::blend(QQuickItem *view, QString name, QJsonValue prop) {
view->setProperty("placeholderText", prop.toString());
} else if (name == "textAlignment") {
view->setProperty("textAlignment", prop.toInt());
} else if (name == "onTextChange") {
this->onTextChangeId = prop.toString();
} else if (name == "onFocusChange") {
this->onFocusChangeId = prop.toString();
} else if (name == "padding") {
DoricViewNode::blend(view, name, prop);
view->setProperty("leftPadding", prop["left"].toDouble());
view->setProperty("rightPadding", prop["right"].toDouble());
view->setProperty("topPadding", prop["top"].toDouble());
view->setProperty("bottomPadding", prop["bottom"].toDouble());
} else {
DoricViewNode::blend(view, name, prop);
}
}
QSizeF DoricInputNode::sizeThatFits(QSizeF size) {
DoricLayouts *layout =
(DoricLayouts *)mView->property("doricLayout").toULongLong();
QSizeF ret = DoricViewNode::sizeThatFits(size);
return QSizeF(
ret.width() - layout->getPaddingLeft() - layout->getPaddingRight(),
ret.height() - layout->getPaddingTop() - layout->getPaddingBottom());
}
void DoricInputNode::onTextChange(QString text) {
if (!onTextChangeId.isEmpty()) {
QVariantList args;
args.append(text);
callJSResponse(onTextChangeId, args);
}
}