Hi Martin, On Saturday, October 27, 2012 19:23:46 Martin Klapetek wrote: > I've just pushed my port of Microblog declarative plasmoid in a branch - > mklapetek/akonadi_port (kde:declarative-plasmoids). Setting this up needs > kdepim-libs from master, kde:libkfacebook (currently in kdereview), > kdepim-runtime from master with this[1] patch, SocialFeed qml plugin from > kde:scratch/mklapetek/socialfeed and this Microblog branch. If you want to > try microblog too, you can get the new microblog resource from > kde:scratch/mklapetek/akonadi-microblog-ng - I'm not aiming to have the > microblog-ng resource in 4.10 though, but it might be finished by then and > just released separately. > > It's not yet finished, but it's fairly usable already. Here is what works: > * listing stuff > * facebook goes 3 days back (limit 400 posts) with number of likes and > comments > * microblog for now goes 20 posts only > * displaying facebook comments by clicking on the status (probably needs > better discoverability) > * posting to networks
Very nice. I've tried to build it and am looking at it (well, the microblog parts at least, I don't have a fb account). The build of the microblog resource fails, complaining about akonadi-microblog-ng/libkmicroblog/microblogjob.h:27:30: fatal error: libkoauth/koauth.h: No such file or directory I don't have that lib. Where can I find it? SocialFeed wouldn't compile, missing the onShowPost(...) declaration, I've added it and pushed it to master as you asked. :) > Issues: > * the scrollbar is baaad, unusable even (because of the non-uniform > delegate height), not sure what to do about it I've seen that as well, once the model refreshes with all the differently sized widgets, the scrollbar position vs contentHeight seems to get screwed up. We'll need to create an as simple as possible test case (maybe using a timer to add different text items to a ListView?) and debug the scrollbar code, or maybe even deeper. :/ > * when using mouse wheel to scroll, sometimes it just stops scrolling and > you have to either scroll the wheel /really/ fast or drag the list, I'm > unsure why that happens, I suspect it's the item snapping to the list edge, > but I don't understand qml that deeply to see how it works exactly Have you tried changing the snap to item property of the ListView? > * sometimes the plasmoid can get really really slow or even freeze when > scrolling very fast as it tries to fetch all the avatars and post images, > this might need some optimizations We should be able to limit that through KIO somehow, in fact KIO should not slow down the system in that way. Are you using the preview dataengine for this? Using this with the microblog plasmoid, I've not seen any problems with that in scrolling performance. (It downloads, caches the images, but still has to copy them at least twice (KImageCache -> DataEngine -> QML Runtime). > * actions on posts do not currently work (liking, replying and sharing), > I'll try to have them working for 4.10, in the worst case, we can have just > "read-only" version shipped (if we're going to ship it by default) and just > hide those buttons What's the actual problem? > * refreshing the list pushes garbage/no data into qml, I'm not yet sure > where this problem originates, simple reloading of the applet fixes it Maybe again a setRoleNames() in the DeclarativeModel screwing up? Where's that happening, does it still happen if you don't use PlasmaCore.SortFilterProxyModel? > * clicking the status fetches all the comments, but the list is not > updated (even though the model emits dataChanged) > * there's no user info yet, but the facebook contacts are in Akonadi, so > should be easy to just fetch the info and display it > * there's still some code that's unneeded, will be removed > * post times do not get updated, I'm not sure how to refresh the post > times in the whole model Why would you want that? Posts are one-off items, they don't change posting date all the time. If you want to display things like "3 minutes ago", and you do it like this it will "refresh' during scrolling (since the delegate is destroyed when going off-view and when becoming visible it's recreated. Label { text: fancyDateFormatter(postDate) } >From a UI point of view, a possible solution without too many timers is to display "Posted just a moment ago" for "really new" posts and using a single shot timer to change that into the posting time (4:41pm which is not relative to $now, and therefore you don't have to change). For single delegates that only refresh once that is I think an acceptable trade-off between usability and wake-ups. For most posts (all that are older than "just a moment ago", we don't need to start the timer at all). > I'll be more than glad if anyone can help with any of the issues :) Feel > free to hack directly on the branch to make it more awesome. Or just > awesome. > > [1] - https://git.reviewboard.kde.org/r/107021/ Mighty cool stuff, by the way. :) -- sebas http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9 _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel