[Development] Behaviour change in QML in Qt 5.8 regarding null
Simon Hausmann
Simon.Hausmann at qt.io
Wed Sep 28 10:54:10 CEST 2016
Hi,
Ok, let me clarify: When the JavaScript engine wants to map a JS null value to a QVariant, it used to use
QVariant(QMetaType::VoidStar, (void *)0);
and now uses
QVariant::fromValue(nullptr);
If a string is to be converted to a QVariant, it will naturally use QVariant(thatString). I think if that
string happens to be a null QString, then QVariant isNull() will return true, right?
If that is unsufficient for the pim code here (or generally any other code), then my recommendation
would be to change the signature to take a QJSValue instead of a QVariant. The engine supports that
transparently and the QJSValue API allows distinguishing between a JavaScript null and a string, etc.
So that is another option.
Simon
________________________________
From: Development <development-bounces+simon.hausmann=qt.io at qt-project.org> on behalf of Thiago Macieira <thiago.macieira at intel.com>
Sent: Tuesday, September 27, 2016 11:59:50 PM
To: development at qt-project.org
Subject: Re: [Development] Behaviour change in QML in Qt 5.8 regarding null
On terça-feira, 27 de setembro de 2016 18:22:34 PDT Simon Hausmann wrote:
> I'm fairly sure we used QVariant(QMetaType::VoidStar);
Can you guarantee that the only time the QML engine generates null QVariants
is for null JS Values? That is, no null QStrings, null QVariantLists, null
QVariantMaps/Hahes, null doubles, etc.?
If that's the case, I'd recommend a doc update and unit tests. Chris can fix
his code for isNull().
Note:
QVariant::fromValue(nullptr).isNull() == false
QVariant(QMetaType::Nullptr).isNull() == true
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
_______________________________________________
Development mailing list
Development at qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
Development Info Page - Qt<http://lists.qt-project.org/mailman/listinfo/development>
lists.qt-project.org
To see the collection of prior postings to the list, visit the Development Archives. Using Development: To post a message to all the list members ...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20160928/b4d029fd/attachment.html>
More information about the Development
mailing list