[Interest] Binding based on typeof doesn't work any more
mail at herrdiel.de
mail at herrdiel.de
Fri Oct 18 10:47:35 CEST 2019
Thank you all - the problem is probably solved!
@Fabrice Mousset:
> @
>
> text: !!Controller ? Controller.triedSteps : “”
>
> @
shows the content but prints out a "ReferenceError: Controller is not
defined". I'll yet have to try this solution in 5.13.1 (see below), it
sounds interesting and better than the "typeof"-way!
@Grecko/Pierre-Yves Siret:
You are absolutely right. The best solution, of course, would be to load
the QML page *after* the contextProperty is set to the engine. I can and
will do that with my current and future code, but I can't do that for my
legacy code base. Your syntax suggestion is ubercool, btw.!
@Ulf Hermann:
You were right, it actually *is* a bug. Or rather was: it has
apparently been fixed in 5.12.5 / 5.13.1.
Sorry for not finding this before.
It had been introduced with 5.12.0 and I have tested with 12.1 and 13.0
- bad luck :-)
Here's the bug:
https://bugreports.qt.io/browse/QTBUG-76796
Here's the fix:
https://codereview.qt-project.org/c/qt/qtdeclarative/+/266776
I'll upgrade to 13.1, that should just work. I haven't yet tested
because of some difficulties with the upgrade, my maintenanceTool does
strange things - but that's another story (told on
https://forum.qt.io/topic/107881/maintenancetool-crashes).
Thank you for time, effort and creative input!
Sebastian
Am 17.10.2019 um 14:25 schrieb Fabrice Mousset | GEOCEPT GmbH:
>
> Hi Sebastian,
>
>
>
> Can you try this (I preferred using !! to verify if a variable is
> defined and not null):
>
> @
>
> text: !!Controller ? Controller.triedSteps : “”
>
> @
>
>
>
> BR
>
>
>
> Fabrice
>
>
>
> *Von:*Interest <interest-bounces at qt-project.org> *Im Auftrag von
> *mail at herrdiel.de
> *Gesendet:* Donnerstag, 17. Oktober 2019 12:41
> *An:* interest at qt-project.org
> *Betreff:* Re: [Interest] Binding based on typeof doesn't work any more
>
>
>
> Hi again,
>
> I've found a better (JavaScript-) workaround without a dummy property:
>
> @
>
> text: { return ((Controller === "undefined" || !Controller) ? "" :
> Controller.triedSteps) }
>
> @
>
> But still: Why has the behavior been (apparently) changed at all in
> the first place? Or is it a bug after all?
>
>
>
> BR
>
> Sebastian
>
>
>
> Am 17.10.2019 um 09:20 schrieb mail at herrdiel.de <mailto:mail at herrdiel.de>:
>
> Hi,
>
>
>
> I have a simple Label that has to show a property of a rootProperty, the latter not yet being created when the qml is loaded/created. Quite frequently I use this construct and it did work perfectly in older Qt versions (something before 12.1 - that's the earliest I have installed now):
>
> @
>
> //[main.qml, inside a Label]
>
> text: typeof Controller === "undefined" ? "" : Controller.successfulSteps
>
> @
>
> Now this doesn't show anything anymore. The following workaround does show the desired result:
>
> @
>
> property string dummy: ""
>
> text: dummy+(typeof Controller === "undefined" ? "" : Controller.successfulSteps)
>
> @
>
> This seems very hackish. Is there a better way to achieve this? Why has the behavior been (apparently) changed at all in the first place?
>
> The Controller has been set as a root property after loading the QML page:
>
> @
>
> //[main.cpp]
>
> QQmlApplicationEngine engine;
>
> engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
>
> Controller controller(&engine);
>
> engine.rootContext()->setContextProperty("Controller", QVariant::fromValue<Controller*>(&controller));
>
> @
>
>
>
> I've asked this in forum.qt.io before (https://forum.qt.io/topic/107828/binding-based-on-typeof-doesn-t-work-any-more)
>
>
>
> BR
>
> Sebastian
>
> --
>
> http://www.classintouch.de - Tablet-Software für Lehrer
>
>
>
> _______________________________________________
>
> Interest mailing list
>
> Interest at qt-project.org <mailto:Interest at qt-project.org>
>
> https://lists.qt-project.org/listinfo/interest
>
> --
> http://www.classintouch.de - Tablet-Software für Lehrer
--
http://www.classintouch.de - Tablet-Software für Lehrer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20191018/18258baa/attachment.html>
More information about the Interest
mailing list