That’s great! Nevertheless, I think addition new “format” will not be useless, e.g. to give a possibility to save CML with or without Avogadro’s metadata. CML is widely used, some programs (e.g., MarvinSketch) allow to write extended CML files and manages them as separate format.
Part of the idea of CML (and XML in general) is that they are extensible, and that programs like Marvin or Avogadro can add metadata in their own namespaces. Other programs can either ignore this or attempt to read it as appropriate. Consider, for example, other programs which use libavogadro – wouldn’t they benefit from automatically reading our settings? Or what about Jmol? They might want to support custom colors.
Here’s another example… some computational chemistry packages are working on CML output. Obviously, not all programs would understand all of the data/metadata in the file. The point of using CML, however, is that you don’t need to write another output parser in Open Babel. 
As the lead developer on Open Babel, I’m also against the idea of creating new quasi-formats. CML is up to the task – it’s designed for exactly this purpose.
- Global settings which can only be changed by the Settings window and Plugin manager
- Document-level settings like the camera viewpoint, etc.
- Per-atom level settings?
IMHO, per-atom settings must be in document level. For example, in one molecule, where Co(II) has tetrahedral coordination sphere, I’d like to fill it with violet, in another with octahedral coordination I’d like to use pink, another compound is yellow because it contains Co(III), etc.
I agree completely. My point, was that my previous code didn’t support per-atom (or other) settings. It stored everything in QSettings and the OBMol. Obviously, you might want to have per-atom settings, and those should be stored in the Atom/OBAtom code. It’s not a big code modification, it’s just that nothing in Avogadro supported per-atom customization at that point.
In any case, I’d be thrilled to help you get this working.
Hope that helps,
-Geoff