For fill colors and gradients there needs to be be a 'custom palette', so that the user can "bookmark" particular colors or gradients for future use. Twelve small buttons should be added in the Color paint area of the Object Style Dialog, and should show up to twelve custom colors/gradients. When a button is clicked, the color or gradient settings in other widgets should be changed to match. There should also be a straightforward way for users to add/remove/change items in the color palette.
Each document has its own custom palette, which is initially blank. The user can load or save palettes to palette files, in standard formats consistent with other graphics software.
A global palette.svg file should be installed with Sodipodi, that provides the default palette settings for a blank document. This can include colors as well as any gradients listed in the global gradients.svg file (see the Object Style Gradients task). We must build a reasonably complete palette (e.g. all named HTML colors), along with the most common gradients (e.g. black-to-white, black-to-transparent, white-to-transparent, both vertical and horizontal).
Optionally, the user can have a palette.svg file in their home ~/.sodipodi directory. If present, this will be loaded instead of the global default file, overriding it. This file may refer to gradients in both the global gradients.svg file, as well as a gradients.svg file in the user's ~/.sodipodi directory.
Status: Halfway implemented, needs more work.
If the current palette has one or more undefined entries, then when one selects colors with the dropper, then they are automatically added to the palette, unless the user is holding the 'ctrl' key.
See also CurrentColorWidget
Color Defaults Indicator
In GIMP, there is an indicator showing the current foreground and background colors. If the user clicks on them, color selectors pop up to allow making different selections.
Sodipodi needs an analogous mechanism, but it should include current fill and stroke color settings.
It would be really nice if we could use the same color palette format as The GIMP. I know that it ruins the nice XML/SVG consitency thing - but it means we get lots of palettes for free and potentially a website could have one palette that they use across all tools. --Ted