hi ... this one is probably more for Marco and Chani as they are the two other people who have touched the action and toolbox code the most :)
right now it's impossible to order the actions shown in toolboxes in any sane fashion since we don't know what the actions do and therefore how to order them. the actions added to the toolboxes come from all over the place and are sometimes added by code very far from that which created the actions, meaning that the knowledge of what the action is no longer exists at the moment it is added to the toolbox. after playing around with a few different approaches this evening (with the first two attempts running into brick walls due to the rather crazy nature of "actions created by various plugins/classes" combined with "actions assembled by various other plugins/classes"), i settled on an enum in AbstractToolBox: enum ToolType { AddTool = 0, ConfigureTool = 100, ControlTool = 200, MiscTool = 300, DestructiveTool = 400, LastToolType = DestructiveTool + 1 }; then one sets the data on a QAction with one of these values and the toolbox can use it to figure out what to do. this prevents any changes in the Plasma API, does not require a QAction subclass and seems to work pretty well. i now have an orderly toolbox on my desktop. i am not overly satisfied with using QAction::data() as such a metadata dumping ground but i couldn't think of another more elegant solution. anyone else have ideas? i'd like this to go into 4.4 as the desktop toolbox is a right mess at the moment. (as a side bonus, i've removed a number of uses of the deprecatd Plasma::Animator API from the desktop toolbox :) -- Aaron J. Seigo humru othro a kohnu se GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43 KDE core developer sponsored by Qt Development Frameworks _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel