This is a list of random changes to do in KDE 4 with the various KCM* classes. * TDECModuleinfo; - Make it inherit KService; saves a lot of code, simplifies ctors/overloads in surrounding classes - Implement docPath in KService - Get rid of loadAll() and do lazy loading in each getter * Merge TDECModuleProxy and its DCOP Object class(MI) * Get rid of `QStringlist arguments` in TDECModule and all the helper classes(simplify API) * Move stuff to d pointers.. Too much hackish solutions otherwise * Get rid of bool fallback argument in helper classes(never fails, simplify API) * Re-implement the QScrollView(d->view) in TDECModuleProxy; the protection against violation of HIG-clause. It needs kde-core-devel approval. * The API in TDECModule, TDECModuleProxy, and the various desktop entries, concerning root loading are butt ugly. It needs cleaning and simplification. * There's big confusion regarding /when/ the changed(bool) signal should be emitted, abd by /whom/. This can't be fixed properly in 3.x since it means breaking behavior. In KDE 4 it must be made clear if TDECModuleProxy should take care of emitting appropriate signals for load()/save()/defaults, or if modules manually should handle it(is there a reason?). * Root modules in TDECModuleProxy doesn't support D&D, or it is perhaps implemented in QXEmbed? Anyway, this is what the XEmbed Protocol Specification says: Solving the drag-and-drop problem, however, is quite easy, since the XDND protocol was carefully designed in a way that makes it possible to support embedded windows. Basically, the embedder has to operate as drag-and-drop proxy for the client. Any XDND messages like XdndEnter, Xdnd,Leave, etc. simply have to be passed through. A toolkit's XDND implementation has to take this situation in consideration.