Thursday, 19 February 2015

Re: [Ubuntu-phone] Qt 5.4 QVariant change and module news

Version: GnuPG v1

On 02/19/2015 02:19 AM, Christian Dywan wrote:
> I confirm that several unit tests don't pass.
Hmm, can these tests be run as autopkgtests? That should've blocked Qt 5.4 from
hitting vivid-proposed.

> On 18.02.2015 19:51, Bogdan Cuza wrote:
>> I have just received a vivid-proposed image and noticed that U1db no
>> longer loads the defaults (which was probably a processed QVariantMap
>> from JS). Did this change break it/could it break even more components?
>>> Date: Tue, 17 Feb 2015 09:37:38 +0200
>>> From:
>>> To:
>>> CC:
>>> Subject: [Ubuntu-phone] Qt 5.4 QVariant change and module news
>>> Qt 5.4 is now in vivid, powering Ubuntu Phone starting with devel
>>> image #102, Kubuntu's Plasma 5 and also the Unity 8 desktop preview.
>>> No app changes are generally needed, but there is a change in QVariant
>>> that may be relevant to C++ using apps.
>>> == QVariant change in Qt 5.4 ==
>>> QVariant has changed a bit in Qt 5.4, although in a way that fixing
>>> its use does not affect negatively use in Qt 5.3 either.
>>> Quote: "When a JavaScript object/array is passed to C++ through a
>>> QVariant, the engine no longer immediately converts the object
>>> recursively into a QVariantMap or QVariantList but instead stores a
>>> QJSValue in the QVariant. This prevents a loss of data when the JS
>>> object contains non-primitive types such as function objects for
>>> example. Code that expects the variant type to be exactly
>>> QVariant::Map or QVariant::List may need to be adapted. Registered
>>> conversion functions however ensure that code that merely calls
>>> toMap() or toList() continues to work." [QTBUG-40431]
>>> Examples of fixes:
>>> - Oxide:
>>> - Ubuntu UI Toolkit:
>>> Another noted small difference:
>>> "In Qt 5.4 an alias to a null variable is correctly null instead of
>>> undefined like it was in Qt 5.3"
>>> == Status of less supported Qt modules ==
>>> It's useful to remember that not all of Qt we have in Ubuntu is
>>> supported by the Qt Project:
>>> - qtlocation: Upstream releases this as part of their releases, but
>>> they emphasize that Qt Positioning is API stable while Qt Location
>>> might change. Still, this should be pretty safe to use and will
>>> probably be declared stable soon.
>>> - qt3d: The original module has not been developed for two years. A
>>> complete rewrite has been in development during that time. Qt 3D 2.0
>>> will be available as a preview with Qt 5.5.
>>> - qtsystems: Semi-active development. Qt 5.4 absorbed QStorageInfo to
>>> be official part of qtbase, but it is a bit different and oddly does
>>> not have QML support at this point. We include the SystemInfo module
>>> on the phone images, but currently not the Publish Subscribe or
>>> Service Framework modules from the same source.
>>> - qtpim: Semi-active development, but can be considered supported
>>> since our Renato is one of the upstream developers. Ubuntu uses the
>>> Contacts/Organizer extensively in phone/scheduling apps.
>>> - qtfeedback: Stable in the sense that there is no development
>>> happening. It's also a very small module. If you are interested in the
>>> module, consider taking an active role in the Qt Project where
>>> contributions would surely be welcome.
>>> -Timo

Jamie Strandboge