2010/6/11 Marco Martin <[email protected]> > Hi all, > > Since i've been working a bit in the Plasma Qml bindings I want to share > some > of the problems i encountered, hoping there is still time to have a soluion > to > it. > Since is something that -iff done right- could be a qiute important part of > plasma, is something i want got right from all parts involved before is too > late(tm) (even if maybe already is for some things). > So what's the status of QML plama bindings right now: > > * graphics: > -qml has some primitive shae of its own, like rectangles, circles, with > gradients and whatnot, they are QGraphicsDeclarativeItems, this means you > don't get a decent api if ever accessed by "real" language, have to > reimplement all from scratch, don't have the usual properties we're > accustomed > to since qgraphicswidgets (sucks for using our animations, sucks even for > using its -internal- javascript bindings) > -it has also its idea of anchor-based layouts: while it's quite nice to use > forget any meaningful size hints, so forget it will ever work correctly > when a > qml plasmoid is in qml layouts > > But the situation is not ugly as it seems (greatly due Alexis, yay!) now is > possible to use quite conveniently any QGraphicsWidget from QML, it's > possible > to position them with the weird anchor based qml thng, or with > QGraphicsLayouts. > > Now as QGraphicsLayouts there is a little problem, because there aren't > bindings for them by default, they a re just shipped as examples, i had to > include them in the plasma bindings code (with potential licensing problems > since thy are BSD) they were in the default api for a while, then removed > :/ > Anyways, the result works quite good (well, as buggy as the usual > qgrahicslayouts, so uaual administration, yay:) and is actually possible to > have a QML root item with a real proper size hint:p > > Another problem is colors: it is possible to bind/access Plasma colors > somehow? probably by binding an object that exposes just that? or could be > the > SystemPalette element used? (i.e. could it be written to with Plasma theme > colors intead?) > > For graphics i think that's it, once those 2 problems are solved, tha's > good > to go :) > > * data: > In playground right now there is a working implementation of dataengine > bindings: there are a clock and a rss reader that use dataengines and ar > written in qml. > However there is a (big) problem: in orderto work, it makes use of a > private > Qt object: QDeclarativeOpenMetaObject: is this going to be private forever? > and if yes, there should be -really- another way to export dataengine data, > otherwise is not possible for it to go in libplasma, -really- > > Listviews: the qml rss feed reader in playground uses a qml item view to > show > the single rss items. Is a thing is really important to me because as i > like > to repeat every like 3.23 seconds, we don't have a real item view in > plasma: > while the standard qt views are old ugly and a disaster in proxy widget, on > the other hand our implementations again and again are a bunch of duplicate > code, quite inefficient and hard to maintain. > The one that goes more near to a real item view is the netbook sal,
There's also the one from PMC actually :p > but i > really don't want to export it in libplasma, like never ever, because > should > become feature complete (code way bigger than it is) and would have to be > maintained for years. > Now while QML views a are quite limited, they are a good looking, not too > bad > working, easy maintainance compromise, so i would like to use those until > (and > if) a real graphicsscene based item view will be in Qt. > > now, common of many engines, when the result is intended for an item view > the > data is done like that: > the engine calls setData with a data in this form: a key whose value is a > qvariant that contains a -list- of Data, that would be the news items, the > microblog entries, the opendesktop list of people, whatever... > > in my example qml news reader the binding to a qml list is quite rough and > ugly, to say the least, but it works, a good way i think would be to map > those > lists to models or something like that, or find at least some way to make > it > less ugly, but the current way would be already prettier than the current > completely by hand way :p > > > ok, those were my concerns, i hope you made it till there, what i'm > interested > is to understand what is possible to do by ourselves, and what would still > require modifications to Qt (like now, or maybe too late anyways or never > ever) > > Cheers, > Marco Martin > _______________________________________________ > Plasma-devel mailing list > [email protected] > https://mail.kde.org/mailman/listinfo/plasma-devel > -- Alessandro Diaferia KDE Developer KDE e.V. member
_______________________________________________ Plasma-devel mailing list [email protected] https://mail.kde.org/mailman/listinfo/plasma-devel
