> On 2009-03-17 10:02:31, Aaron Seigo wrote: > > /trunk/KDE/kdelibs/plasma/extenderitem.h, line 187 > > <http://reviewboard.kde.org/r/344/diff/1/?file=3132#file3132line187> > > > > need apidox :) > > > > but do we even need this? one should be able to qobject_cast as needed?
Yeah, that is certainly a possibility. I like this way because it's analog to for example isWidget(). Shorter and more readable. If you think this is needless api bloat I am willing to remove this function though. > On 2009-03-17 10:02:31, Aaron Seigo wrote: > > /trunk/KDE/kdelibs/plasma/extender.cpp, line 213 > > <http://reviewboard.kde.org/r/344/diff/1/?file=3129#file3129line213> > > > > how about: > > > > foreach (ExtenderItem *item, attachedItems()) { > > if (item->isGroup()) { > > .. > > } > > } Oops, you're right, I missed that one. > On 2009-03-17 10:02:31, Aaron Seigo wrote: > > /trunk/KDE/kdelibs/plasma/extendergroup.cpp, line 118 > > <http://reviewboard.kde.org/r/344/diff/1/?file=3131#file3131line118> > > > > seems a bit of a shame to have to go through all the items in an > > extender like this. i suppose, however, there won't ever be that many items > > so the overhead will be low and the cost of bookkeeping with an internal > > QList in ExtenderGroup would not pay off at all while increasing memory > > usage and complexity. bleh. Yeah, that was exactly what I was thinking when I decided to do this the way I did. If it turns out applets start using such large amount of items that this becomes a problem, we can always change to using a QList instead. > On 2009-03-17 10:02:31, Aaron Seigo wrote: > > /trunk/KDE/kdelibs/plasma/extenderitem.cpp, line 109 > > <http://reviewboard.kde.org/r/344/diff/1/?file=3133#file3133line109> > > > > would make sense to have an ExtenderPrivate::findGroup(const QString&) > > for this to prevent cycling through all items, creating a list, then > > cycling through that list when its returned. doesn't need to be in the > > public api imho, but we can make the internals more efficient here. Agreed. I'll update the patch soon. - Rob ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviewboard.kde.org/r/344/#review512 ----------------------------------------------------------- On 2009-03-16 12:38:12, Rob Scheepmaker wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviewboard.kde.org/r/344/ > ----------------------------------------------------------- > > (Updated 2009-03-16 12:38:12) > > > Review request for Plasma. > > > Summary > ------- > > I've been working on adding support for grouping to extenders and using this > to group jobs in the plasma systemtray: a useful feature we already discussed > at Tokamak. I've already discussed the extender api bit at Tokamak with > Aaron, but changed a couple of things about it while implementing because > they could have been more elegant. There are still some relatively minor > problems I know of, and it hasn't been that thoroughly tested yet, but I > wanted to see if you think I'm going in the right direction here. > > The basic idea is that to group extender items, you'll instantiate an > ExtenderGroup, which is a subclass of ExtenderItem. The thing this class > adds, are expand and collapse buttons, to show/hide the items that belong to > this group, and the ability to let the group automatically hide itself > whenever it becomes empty. To add items to a group you'll have to call > setGroup on each ExtenderItem you wish to add to that group. This association > with a group will get stored in the item's config(). For the rest it behaves > like any other extender item. > > I will still have to add behavior that automatically moves all items > belonging to this group with it, whenever you detach the ExtenderGroup. Also, > the usage of groups in systemtray could still use improvement. > > Screenshot showing the job grouping in action: > http://quartz.student.utwente.nl/~rob/extendergrouping.png Clicking the > arrow-down here would collapse this group (keeping only the total progress > item) > > > Diffs > ----- > > /trunk/KDE/kdebase/workspace/plasma/applets/systemtray/CMakeLists.txt > 939911 > /trunk/KDE/kdebase/workspace/plasma/applets/systemtray/core/job.h 939911 > /trunk/KDE/kdebase/workspace/plasma/applets/systemtray/core/manager.h > 939911 > /trunk/KDE/kdebase/workspace/plasma/applets/systemtray/core/manager.cpp > 939911 > /trunk/KDE/kdebase/workspace/plasma/applets/systemtray/ui/applet.cpp 939911 > /trunk/KDE/kdebase/workspace/plasma/applets/systemtray/ui/jobwidget.cpp > 939911 > /trunk/KDE/kdelibs/plasma/CMakeLists.txt 939911 > /trunk/KDE/kdelibs/plasma/applet.h 939911 > /trunk/KDE/kdelibs/plasma/extender.h 939911 > /trunk/KDE/kdelibs/plasma/extender.cpp 939911 > /trunk/KDE/kdelibs/plasma/extendergroup.h PRE-CREATION > /trunk/KDE/kdelibs/plasma/extendergroup.cpp PRE-CREATION > /trunk/KDE/kdelibs/plasma/extenderitem.h 939911 > /trunk/KDE/kdelibs/plasma/extenderitem.cpp 939911 > /trunk/KDE/kdelibs/plasma/private/extenderitem_p.h 939911 > > Diff: http://reviewboard.kde.org/r/344/diff > > > Testing > ------- > > > Thanks, > > Rob > > _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel