Actually, now I have a few interesting questions about Kickoff, because I see that the menu is run through qStableSort at the very end of fillNode; if that is so, why does it never seem to be in order?  And there's a slot for updating the list dynamically, yet I've never seen it updated dynamically this way in either KDE 4.0 or KDE 4.1 alpha...

On Wed, May 21, 2008 at 5:27 AM, Aaron J. Seigo <aseigo@kde.org> wrote:
> (though mine probably won't be
> called that, for sake of avoiding confusion), and I'm curious as to
> whether kdelibs/kdebase has a function for generating the menu structure
> from the XML files already.  Does it?

yes: KServiceGroup, and KService. you can see an example of its use in
kdebase/workspace/plasma/applets/kickoff/core/applicationmodel.cpp,
particularly in the fillNode method.