12-08-2012 11:08 AM - edited 12-08-2012 11:12 AM
Rejoice ! QtInfo (your swiss army knife info-tool for everything Qt on any platform) is now available for BB10. I'm having some issues with appworld so not quite downloadable from where it should be, but you can already get the .bar from the project home at https://projects.developer.nokia.com/qtinfo until the appworld submission goes through.
Known issues (=not shown for now in QtInfo):
- FontDatabase support is broken on BB10 cascades apps
- QtOpenGL support is broken on BB10 cascades apps
- Multimediakit seems to be broken in BB10 cascades apps
- Some Qt.Labs modules present but unusable/unsupported
Here is what it shows currently on a Dev Alpha with 10.0.9.1103

12-10-2012 10:34 AM
Is this app build using Qt or Cascades UI?
12-10-2012 12:16 PM - edited 12-10-2012 12:19 PM
Qt Info is special - it doesn't really have a "native" UI tech, the beauty of it is that it identifies the options at runtime and chooses the best available one (it can have literally all of QWidgets, QtQuick, QQC and Cascades UIs in a single binary). In the case of the QNX build the default choice *is* cascades and I'm still working on how to make it possible to be able to fall back to something else.
PS: If you scroll down on https://projects.developer.nokia.com/qtinfo you'll see a few screenshots of how it looks like on various platforms - and I emphasize this is NOT a compile-time choice, but runtime checking and loading of various modules.
12-10-2012 12:24 PM
Thank you for this information but how do you (technically) compile a binary with both Qt's
QApplication app(argc, argv);
app.exec();
and Cascades':
Applicationapp(argc,argv); Application::exec();
is that possible?
12-10-2012 03:11 PM - edited 12-10-2012 03:12 PM
In theory, the same mechanism I'm using for dynamic UI loading could be used for that, too. You would have a main() with neither QApplication nor Application but a bootstrap loader that tries to load a .so that instantiates Application, and if that fails, loads a .so with QApplication. I think someone actually worked on something similar for Symbian (there the use-case was to pop-up an avkon "You don't have Qt installed" dialog if QApplication instantiation failed). I simply didn't do it that way currently because I haven't made up my mind if I want to adopt that as a general approach in QtInfo or not...
12-11-2012 01:54 AM
Come to think of it, there *is* one real world use-case for such a setup - if you want to run the same binary on the Playbook and the BB10 devices. Even if you bundle the Qt libs for your Playbook app, you'd still be missing cascades. This way at least you avoid #ifdeffing between PlaybookOS and BB10. And the black magic: when BB10 does come to Playbook, such an app will automagically use cascades without a recompile/reupload/QA/certify cycle. Ta-da !
12-11-2012 09:29 AM
Then your binary would include in this case tons of Qt libraries that are not needed for BB10. I prefer #ifdefing. Matter of taste of course.
12-11-2012 02:00 PM
Well, not necessarily Qt and not necessarily tons
The same principle applies if you have a pure OpenGL or SDL based UIs (so you choose between that and cascades, not necessarily QtWidgets). On the other hand, even if it is plain Qt you're using, it really depends on which ones you are using as you don't need to link/package/build ALL Qt libs (this is especially true for Qt5)
12-12-2012 05:01 PM
Differences in the 10.0.9.1675 firmware (too lazy to transfer and highlight in screenshots):
- 2012 Dec 8 build of Qt 4.8.4
- Model name available ("BlackBerry 10 Dev Alpha")
- Model number available ("PRO100-2")
- New QML plugin: bb.network.1
- New QML plugin: bb.utility.i18n.1
- New QML plugin: QtMobilitySubset.location
01-17-2013 02:58 PM
Differences in the 10.0.9.2320 firmware (too lazy to transfer and highlight in screenshots):
- 2013 Jan 8 build of Qt 4.8.4
- Qt modules - QtConnectivity added
- Model name changed ("10 Dev Alpha")
- New QML plugin: bb.cascades.pickers.1
- New QML plugin: bb.data.1
- New QML plugin: QtMobility.connectivity