Announcing a new Qt codedrop for the BlackBerry PlayBook

I’m pleased to announce a new code drop today in our public github repository for the BlackBerry PlayBook port of the Qt toolkit. This new drop features many fixes, features and improvements over the initial one that was released at DevCon in October.

The first main improvement is general stability; lots of crashes have been fixed and the new code should work properly on the PlayBook simulator as well as on the actual device.

Secondly, an experimental fully OpenGLES2-backed rendering architecture has been implemented and can be enabled at runtime. This can be done by setting the environment variable QBB_USE_OPENGL to 1 before launching your app. Please note that this is very immature right now.

Finally, the XmlPatterns module, conspicuously not present in the previous drop, is now built by default.

We have also taken the opportunity to rebase our branch on top of the upstream 4.8 branch maintained by Nokia, and this is why we had to create a new branch for this new drop, as history has been rewritten.

And last but not least, many thanks to all the community members who have been working with us and submitting bug reports and patches – your feedback is what makes open source so great, and we look forward to hearing any suggestions you have in the future!

About these ads
This entry was posted in Native and tagged , . Bookmark the permalink.

23 Responses to Announcing a new Qt codedrop for the BlackBerry PlayBook

  1. Guillem says:

    Hi,

    nice to hear those good news about QT and PlayBook. Any chance for you to provide som instructions on how to use Qt with Momentics? I’ve been able to compile apps from the console and then package them and run them on the PlayBook, but no way to do the same on Momentics on projects with more than one file (when really a project file isn’t needed). I even tried installing Nokia’s Qt integration plugin but as soon as i create a Qt project most of the BlackBerry Momentics features are missing.

    Thank you!

    • pelegri says:

      Hi Guillem
      I talked with George about the status of the code before the post, and he did mention this was an interim drop, but it seemed fleshed out enough to show progress and to be useful, but I’ve not had time yet to try it out. I’ll ping George for a proper answer.
      At some point, I want to post some step-by-step instructions, like we did for TunnelTilt and for the Samples-for-AIR.

  2. Guillem says:

    Hi Pelegri,

    Thank you for your fast answer! Nice to know everything is showing progress.

    I really tried to use the github Qt with Eclipse with no luck. I could do it from console, creating the .pro file, but it’s pretty uncomfortable because you lose some of the nice functionalities of Momentics (debug on a nice IDE, really easy packaging and deploying…)

    Would be nice if any of you could provide step-by-step instructions or maybe just even a short do this-do that, and probably i’ll be able to manage to get it running by myself with that guidance.

    Thank you!

  3. gwright280 says:

    Hi Guillem,

    Unfortunately we haven’t yet worked on integrating with Momentics and as all of us on the team porting this are command line junkies, we’ve not got round to testing it yet.

    Once we’re in a more complete state, we’ll sort out a blog post detailing how to develop Qt apps.

    Thansk,

    George

    • Guillem says:

      Hi George,

      Thanks for the info and your work on Qt. I have been able to compile some apps using the command line, but the momentics interface just makes it easier to pack, deploy and debug and so my will to have some way to build Qt apps directly from Momentics.

      Happy to know there are still a lot of command line junkies left. I love command line also :)

      Thanks again for your awesome job.

      Guillem

  4. BGmot says:

    Hello,
    what is the best way to communicate with you guys (people porting qt to playbook)? I have good progress in doing this in Momentics but have minor (theoretical) questions I see other people looking answers for too. So is there any forum, board or irc to get in touch with you?
    Thanks.

    • pelegri says:

      I’ll double-check before replying, but it may take a few days because many folks in Canada are still away for the holidays.

  5. Hi,

    I’ve managed to compile and build a small hello world program for Qt on the playbook (NDK 2 and (after the hints given by http://hecgeek.blogspot.com/2011/10/qt-for-blackberry-playbook.html). However, after starting the program on the playbook I get the following error:
    QFactoryLoader::QFactoryLoader() looking at “/apps/org.demo.helloworld.testDev__helloworld32a49fe1/native/lib/platforms/libblackberry.so”
    keys (“blackberry”)
    imf_client_init failed – IMF services will be unavailable
    QFontDatabase: Cannot find font directory /Users/bakkerv/temp/Qt/stage/nto/armle-v7/usr/lib/qt4/lib/fonts – is Qt installed correctly?

    It seems Qt is searching in hard coded paths for fonts. Any hints on how to fix this?

    • BGmot says:

      When you ran configure-qsk did you get this:
      “FontConfig support cannot be enabled due to functionality tests!”
      with a hint to run with -continue to ignore this error ?

      • No, the configure-gsk script ran flawlessly. Perhaps I did not get this error because there is no -fontconfig flag passed to configure in the configure-gsk script..

        (i’ve cloned commit 6fdc2baf67d42154d1838b1e6fcc271fff488659 btw)

        this is part of the output from the script:

        Building on: macx-g++
        Building for: unsupported/blackberry-armv7le-g++
        Architecture: arm
        Host architecture: macosx

        Build ……………… libs demos docs translations
        Configuration ………. cross_compile release shared dll qpa stl minimal-config small-config medium-config large-config full-config no-pkg-config accessibility opengl opengles2 qpa ipv6 clock-gettime clock-monotonic getaddrinfo ipv6ifname getifaddrs system-jpeg system-png png freetype system-zlib gnu-libiconv-noconst openssl icu xmlpatterns multimedia audio-backend svg script scripttools declarative release

    • qnxnick says:

      libblackberry should prevent the plugin framework from looking for the font directory (the font directory is unused by our platform plugin). Are you sure that you are building the correct branch? (use git branch -v to check).

      • bgmott says:

        I am positive codedrop_20120109 looks for font directory.
        The error is generated in src/gui/text/qplatformfontdatabase_qpa.cpp function void QPlatformFontDatabase::populateFontDatabase()
        Workaround – put in your QT code :
        qputenv(“QT_QPA_FONTDIR”, “/usr/fonts/font_repository/liberation”);
        … and the error disappears.
        By the way still puzzled why it works as there are not font qpf2 files on Playbook. Do you know which font is used by QT app?

  6. BGmot says:

    I use the same commit and in configure-qsk I do see -fontconfig passed to configure. *puzzled*
    BTW I built it on Mac using NDK 1, had to add this line
    INSTALL_ROOT=$STAGE_DIR
    +USE_NDK_ONLY=”yes”
    if [ ! -z “$USE_NDK_ONLY” ] ; then
    to configure-qsk to be able to successfully build QT for PB.

    • Many thanks. I’ve changed to NDK 1, added the USE_NDK_ONLY line as suggested and manually (perhaps unnecessary) passed the -fontconfig argument to configure.. The ‘hello world’ app i was testing works perfectly on my playbook!

      • BGmot says:

        Glad it worked for you. -) Though it’s very weird. I’ve checked github and indeed there is no -fontconfig on the other hand I am pretty sure I haven’t modified this in my configure-qsk and if you looked at the first post here http://supportforums.blackberry.com/t5/Native-SDK-for-BlackBerry-Tablet/Momentics-and-QT-on-OSX/m-p/1451945/highlight/true#M686 you would see that I am not the only one who had this problem.
        Need to install 2.0 and play with it as well. Most beautiful thing about QT is (I think) that you can easily build user’s interface of your program with QT Creator and then transfer it to NDK/Playbook. This is kind of UI builder NDK is currently missing.

      • Vincent Bakker says:

        Indeed, the designer is a nice and fast way to create your GUI. The only thing I now have figure out is how to handle the rotation of the device and the required GUI changes accordingly…

  7. pelegri says:

    I’ll mail a note to the folks working on the Qt port; please do post more about your experiences and experiments. There are more changes to the Qt port in the pipeline; we will post about them when they become available.

  8. pelegri says:

    New codedrop from 4.8 sources. This is in a separate branch; check out https://github.com/blackberry/Qt/commits/codedrop_20120109. We will provide some more details in a post in a bit.

  9. I played with the things on github (went for https://github.com/blackberry/Qt/downloads ), and while I managed to get myself a helloworld.bar (with my binary, respective QMLs and libQt*so-s) and deploy it on the simulator without too much effort, it doesn’t seems to hang/break immediately on startup – Helloworld QMLs don’t seem to load, and qDebug/stdout output does not appear anywhere (hard to tell what I’m doing wrong). Any tips ?

  10. pelegri says:

    Check out Matthews post today on this and let us know there if you still have issues.

  11. I don’t see anything new in the post – I did go through those the pdf-s and the sources, that’s how i got to build my project in the first place. The docs seems to be scarce on the simulator (and x86 builds in general) so it might be that, but without getting stderr output there I don’t see how one can tell what is going wrong (and yes, I’m a total noob when it comes to BB and without actual hardware at hand, but plenty of Qt experience :)

  12. All is well that ends well – after a bit of log snooping it turns out it’s just a path issue. The default QtCreator template is a bit off, what you want in there is something like

    viewer.setMainQmlFile(QLatin1String(“app/native/qml/helloworld/main.qml”));

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s