This is an overview of how the code is situated and a very brief overview of what the classes do.  See the header files for a more indepth overview of what the classes do.

-- System Settings classes --

mainwindow - The KMainWindow contains KActions, the stack of the iconlist and the current module(s) view.

modulesview - The widget that is the icon view that users see when the first enter the app.
kcmsearch - Search widget that can search ModulesView and enable/disable items.

modulesiconitem - The individual modules items.  Used for loading enabled/disabled images and storing the list of modules acosiated with the item.

kcmodulemenu - Class that reads in a freedesktop.org .menu file into a QValueList.

kcmultiwidget - A basterdized kcmultidialog from kdelibs/kutil that provides info about the current shown dialog so the about dialog and caption can be updated and prompts for unsaved changes. 

-- INSTALL --

To install a new menu you have to install three files.

(if you have debian, if you have another system use locate to determine where kde-system.* is installed and install in the same place.

-/etc/xdg/menus/system-settings.menu
-/etc/xdg/menus/applications-merged/system-settings-merge.menu
-/usr/share/desktop-directories/system-settings.directory

Also don't forget to install the ui file.
-/share/apps/systemsettings/systempreferencesui.rc
And the desktop file.
-share/applications/kde/systemsettings.desktop

When you change (or install) any of the first three files make sure to run kbuildsycoca to re-generate the cache files or log out and back in.
