Monday, September 29, 2008

QEdje

During the weekend I tested briefly QEdje 0.3.0, here are my thoughts:
  • QZion canvas which is used for graphics rendering in QEdje has two implementations: QPainter based and QGraphicsView based, former being currently faster in embedded environments lacking FPU power. QZion API is still very light, containing basic canvas objects (rectangle, image, text) with under 2kLOC / implementation.
  • QEdje is the real beef, containing parser for Edje theme files. What I like about Edje format is that it's not based on XML and it still gets compiled into binary mode when deploying, which should minimize the theming performance hit. I tested now only with provided samples, have to check how QEdje handles more complicated Edje themes.
  • Thinking why Edje, Evas, E17 etc. haven't become more popular, is the reason technical, just (lack of) community or what?
  • My ideas for QEdje developers would be to concentrate more on QGraphicsView backend as it offers more features and should get nice boost with performance improvements in Qt 4.5. Think if inheriting QGraphicsWidgets as QZion objects would offer more than current QGraphicsItems, like layouts and native QWidgets with QGraphicsProxyWidget. IMO Clutter API is currently a good compromize between features and simplicity, so analyze it and copy all suitable ideas into QZion ;-)

I have to study some more Edje format and whether QZion is already providing "enough" features for it, please comment if I have missed something obvious here.

5 comments:

Khertan said...

Comment from a developper ...

I found edje really hard to use, around 30 min to make a simple gui with a button and a label.

Too much complex, and it s really lack of an editor which permit to design ui quickly ...

Kaitsu said...

Hi Khertan, I was watching your mCalendar presentation in summit, pretty cool =)

About Edje complexity: Even though Rasterman has tried to keep Edje as an "simple" theming language, it has a bit learning curve for us mortals...

Gustavo Sverzut Barbieri said...

Well, it's quite close to CSS, but it provides states.

As for editor, try edje_editor in SVN, it's basic but may serve.

At ProFUSION we do not start typing from scratch, we convert[1] from SVG using inkscape2edc or gimp export, then we edit using Emacs + custom mode[2].

[1] http://blog.gustavobarbieri.com.br/2008/09/16/generating-edje-files-using-inkscape-and-gimp/

[2] http://svn.enlightenment.org/svn/e/trunk/edje/data/

Khertan said...

I was not able to use edje_editor ... it segfault many time ...

Gustavo Sverzut Barbieri said...

@khertan: edje_editor is evolving fast and it's adding "editor" api to Edje library as needed, that is, you must compile: evas, edje, etk and edje_editor using last svn.

That's inconvenient, I know. That's IMHO one of the reasons e17 is not a major player, it's difficult to get up & running (aka: no pre-built packages, releases...)

Thanks for trying!