Add a configuration dialog for schema registration

Registered by Stephan Kramer on 2011-05-18

Although diamond is designed to be user-friendly from the start, one of the things new users of diamond often have to be helped with is registrating the schema they want to use. Currently this is done by adding a file in the ~/.diamond/schemata/ directory whose filename is equal to the extension used by options files adhering to this schema. This blueprint proposes to implement a user-friendly configuration dialog to perform this registration.

The current behaviour of diamond when it is opened up with no schema registered (and no file specified to be opened) is to
automatically download an flml from the following location:

This is obviously not a sustainable/schema-agnostic solution. A user-friendly solution would be for the diamond to open up the new configuration dialog whenever diamond is started without any schemas registered at all, or when an option file is opened with an extension for which no schema is registered.

The configuration dialog should also be accessible from diamond's top menu. This should hopefully make it easier to change the schema registration afterwards and make it more obvious to the user what schema is currently used - this is a thing that quite often confuses users: they forget their initial registration of the schema, then change the location of their code checkout and diamond stops working (or keeps using an out-of-date schema).

A possible layout for the configuration dialog would be similar to for instance the NetworkManager/"Edit Connections" dialog. So it would have a list of registered schemas represented in three columns: schema name, file extension and schema path, e.g.

Fluidity Markup Language | flml | /home/joe/bzr/fluidity/schemas/fluidity_options.rng

and a Add, Delete and Edit button. The schema path could be chosen via a "open file" dialog.

Blueprint information

Not started
Patrick Farrell
Stephan Kramer
Needs approval
Series goal:
Milestone target:



Work Items

This blueprint contains Public information 
Everyone can see this information.