if it's all "fake" anyway, what exactly is the point of having that struct in the first place? is it just to have an "anchor" in the pre-processed code / AST?

The idea is that you can use the same name as getter and for assignment/binding/subscribe etc:

something = item->width();
item->width.onValueChanged([]() { qDebug() << "changed"; });
item->width = 44;
item->width.setBinding([]() { return otherItem->height(); });
[...]

We could instead establish a convention of using different names for all of these, but (at least to me) it feels ugly. The result would look like this:

auto something = item->width();
item->widthOnValueChanged([]() { qDebug() << "changed"; });
item->widthAssign = 44; // drop in favor of classic setWidth()?
item->widthSetBinding([]() { return otherItem->height(); });
bool hasBinding = item->widthHasBinding();
auto binding = item->widthBinding();
item->takeWidthBinding();
[...]

See the definition of Q_PRIVATE_QPROPERTY for the different methods we generate into the structs.

best,
Ulf
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to