handle input on text change & padding
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user