Qt Complex 2.0 and other stuff (the shortest long article I can do about these arguments :( )

Enrico Miglino enrico.miglino at gmail.com
Sat Nov 12 09:11:10 UTC 2011


Hi to all,

before announcing myself and this proposal to the necessitas devel ml I
have already discssed the various options with BogDan that got me also good
advices on the ways that can be followed.

I have developed a framework - Qt Complex - that was distributed some
months ago for symbian, desktop, Harmattan and other platforms. It aims to
support the QML development of efficient and customized interfaces for Qt
applications with QML UIs. This was Qt Complex 1.1.0 that you can find
(information and usage notes) on projects.development.nokia.com/Qt_Complex

Then - after starting some developments for Android platforms with
Necessitas - I am releasing Qt Complex 2.0 that is in the final test phase.
Qt Complex 2.0 release candidate preview is on gitorious:
https://gitorious.org/qt-complex The most important aspect of this new
version is the renewed style for the grapic elements, the addition of some
components and some C++ classes imported in QML as usable elements. The
most important elements are the following:

1. Sliding multi-level toolbars
2. Various customizable buttons for menus, icons graphic interfaces etc.
3. All the elements interface can be managed via embedded themes
4. External configuration files for a more efficient localization of the
resources (text and more)

Then, on of the most interesting behaviors - I think - is that all the
objects of Qt Complex 2.0 are maneged through a Loader. This means that
with a single property change an element con be loaded and unloaded for
memory saving and resource optimization.

The QML elements from Qt Complex C++ classes are three:

<AccessData> To manage any kind of json file in utf-8 and unicode format
(this is for text multi-language support) that are returned to the QML
environment ad a QString datastream (a property of the element). This works
in conjunction with a set of js functions converting the datastream
QStrings from files to a json java object in a single-instruction at a very
high speed.

<WebQuery> To manage any kind of web requests with the option of file
downloading, data only (returning a datastream in a property), parameter
setting for path, url, filename to save and more, zip compressed downloaded
files (including zip navigation and file compress/uncompress) and custom
header setting before the http or https get(). WebQuery element can manage
the common web get via download or php engines but has also the ability to
manage the json web servers serving data queries via rpc json post.

<QuaZip> Qt Complex integrates the original porting of QuaZip library
integrated with the other classes. - @todo: the final release will include
a QML element for independend zip-compressed files -

In addition to these classes there are other classes - and related QML
elements - as follows:

1. <FileAccess> To manage various system folders for simplified access to
files in all the devices i.e. temp folder, application folder, current
folder and /sdcard/custom_user_folders, creating folders tree, get the file
existence timestamp, get the byte file size and check for a file existence.

2. <PlatformConstants> This is a class that defines a set of constants i.e.
the colors coded following the most recent UI design styles. Most important
the class includes a set of methods that can be called by its QML instance
based on the device pysical sizes and orientation for a full
device-independend UI.

The idea that I have discussed with BodDan is to include in some manner Qt
Complex 2.0 in one of the next Qt Necessitas version - 4 or more -
initially including this, for example, as a "lab" components that can be
optionally installed from Necessitas or a similar way. The most reliable
idea of BogDan as I see will be the following:

BogDan wrote: I don't know if we have enough time to integrate it in alpha
4, first we need
to decide how we do it, most probably we need to create a new QtCreator
plugin, which will download qml plugins on demand, as you may know
somebody announce his intention to port qt qml components to android,
so, probably a new QtCreator plugin is the best solution ... also Ministro
needs some changes in order to handle this plugins, I'll do the best to

At this point, I need some advices on how we can proceed - I think best -
in this direction.

Regarding the documentation all the components are documented with Doxygen.
You can see a preview of Qt Complex 2.0 documentation (not yet with the
Usage guidelines) here:
http://ec2-50-16-63-40.compute-1.amazonaws.com/qtc.2.0 (it will become
http://www.qtcomplex.net in few days :) )

Then as BogDan proposed

BogDan wrote:
There are a few things where we really need help (I'll list them by
importance) :
 - make all qt tests and benchmarks run ! These tests validates our
work, so they are very important ! use need to use
"./android/runtests.pl" script to run them.
 - Android Style plugin, this is another important task, this plugin
will make your apps to look native ! Check "style-plugin" branch.
 - Menus.
 - QtMobility, most of plugins work well but some of them have a few
problems.
 - QtCreator android documentation.

I can support the documentation of the Qt Necessitas with the help of my
wife Anto (who has already done the small job of translating some strings
of Necessitas and Ministro). I can work on the English documentation - that
she provide with a serious proofreading - and, with the help of some other
if any volunteers is there, the localiation in Italian and Spanish
languages. To start this job I will discuss the way you have in mind to
create the documentation support. At the moment I know Doxygen and
Linux-doc tools - already used for some linux kernel versions I have done
in past -. It is also possible the creation of the Qt documentation using
Qt-Doc but about this - before deciding to document Qt Complex with Doxygen
- I have already discussed with some trolls (the guys from Nokia, n.d.a.)
that explained me that this documentation method is only used for their
internal development and it is not stable for a documentation support.
Please let me know what have you in mind and what do you think about this
step.

I need to use QtMobility in a development I am working on, so also this
section maybe useful for me helping for full working. Please let me know
what I should do to take the current version and search for the actually
open tickets .

Usually I wok on Mac but I huse also linux and Windows platforms. Thus to
manage the necessitas 3 I amd setting a VM with Ubuntu 10.04 LT on it. Tell
me what are the other guys that are working for the Mac version release so
we can work in conjunction with these problems.

Last, but not least, before starting any plugin development I need to
understand clear what does it means the "Android style". In my mind I am
thinking as a question of graphics and design but it seems a wrong
questions. Thank you for your help.

That's all I think. Hope we can start asap on these jobs.

Cheers, Enrico
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/necessitas-devel/attachments/20111112/4358645c/attachment.html>


More information about the Necessitas-devel mailing list