Create icon themes for the framework
All icon themes currently delivered with qooxdoo are generated from some original open-source icon themes. The basic steps to include an existing icon theme (e.g. from KDE or Gnome) into qooxdoo (which follows the Freedesktop Icon Naming Specification) are:
- Converting original names (e.g. KDE → Freedesktop, Gnome → Freedesktop, ...)
- Generating a whitelist
- Copying common icons which are mentioned in the whitelist to a qooxdoo icon folder.
Tools
The relevant tools and resources are available inside framework/tool/icon, where you should find the following scripts:
- [a]
freedesktop-to-qooxdoo.sh: Use the user-supplied whitelist to copy the icons themes offreedesktop/usetoqooxdoo/use. - [b]
generate-whitelist.sh: Create a whitelist of the common icons insidefreedesktop/use. This whitelist is used by [a]. - [c]
kde-to-freedesktop.sh: Convert KDE icon themes using the mapping defined bydata/kde_freedesktop.dat. Generally this only copies some of the available images. (Many icons in KDE have no match in the current freedesktop specification). - [d]
normalize-kde-themes.sh: Normalize KDE themes inkde/use. This corrects some names of icons using symlinks. - [e]
prepare-kde-themes.sh: Check the icons which exist inkde/useagainst the mapping indata/kde_freedesktop.dat. - [f]
scaleable-to-png.sh: Convert SVG images to the various supported icon sizes by rendering them.
Create theme
Please be sure to execute all scripts after you have changed your current working directory:
cd framework/tool/icon
The typical process to add a new theme (in this example a KDE theme) to qooxdoo is:
- Copy KDE theme(s) to
kde/useand/or copy Freedesktop themes tofreedesktop/use. Put SVG themes intofreedesktop/scalableinstead. - Execute [d]
- Execute [e] and check the output for missing images.
- Execute [c] to convert KDE themes
- Convert SVG freedesktop themes using [f]
- Finally use [b] to update the whitelist. //Important note:// Please make sure that the whitelist does not remove previously existing icons by issuing the following command:
svn diff data/qooxdoo_whitelist.dat. Otherwise, you would need migration support. - Execute [a] to create a icon theme copy for qooxdoo.
- Sync the icons of
qooxdoo/usetoframework/source/resource/iconand update the README there.
