future proofing and cross-platform assurances seem to be pretty high on the kde4 list of things to accomplish. take phonon for instance: it's giving us an API that allows kde4 apps to use different media backends without backend-specific code polluting them. so as media backends change both between platforms and over time, kde4 apps are protected.
i think this can be extended to other scenarios, including much more trivial ones. i have two classes on disk right now that fall into this category: KAutoStart and KPresentationControls. the latter's name sucks; i just haven't thought of something better yet.
KAutoStart allows apps to, you guessed it, register an app to autostart or not in a platform independent way. well, right now it only contains code appropriate to unix/linux systems following the xdg specs with some extra kde goodness sprinkled in there, but it hides it all behind an API. this guy will be making it into svn (pending necessary blessing) on monday; i just have to finish the unit tests for it.
KPresentationControls right now wraps screensaver deactiviation and eventually will be extended to cover other things one might want to deactivate when showing a video, fullscreen audio visualizations or a slide presentation (as three examples that leap to mind right now). these "other things" would include turning off desktop notifications (e.g. passive popups), network messaging services (so you don't get potentially embarrassing IM popups when in front of a crowd *rolls eyes*), etc.. not only are the ways to do this different from platform to platform, but they even change on our "home" platform of X11: frederikh just recently contributed a patch to x.org that adds an api for screensaver activation. for x.org's that have these, we'll be able to use that (more efficient and correct) way of doing it and for those that don't we just fall back to the usual "send a fake key event every 55 seconds" approach.
i wonder what other sort of system services need wrapping ala phonon, solid or these two classes? and i wonder if these "system services" classes should be in a separate library or wrapped into kdecore or...? hrm.