From: Chris C. <ca...@al...> - 2003-02-14 13:01:47
|
Richard Bown wrote: > On Friday 14 February 2003 08:24, Silvan wrote: > >>So what we really need is a dialog box where users can change the >>header info, set the toggles, and then export. (Or maybe two >>different dialogs...) I can see this coming up after File -> Export >>-> pick name, and I can also see it as a tab on Settings -> Configure >>Rosegarden. I'm not sure which would be a better fit in the overall >>design of the GUI. > > It sounds like it might be better off in Configure The header info is already there and editable in Edit -> Document Properties (second tab). Guillaume implemented this a couple of weeks ago. It allows you to enter arbitrary name/value pairs for whatever purpose you like. I suggest we include a handful of them (date, copyright and author at least) in the autoload.rg file, with empty values (or "<edit me>" values). See also http://sourceforge.net/tracker/index.php?func=detail&aid=663103&group_id=4932&atid=354932 for some other current limitations. We have a basic problem at the moment that the presentation name (on the dialog) for each property is the same as the property name stored in the file and presumably used literally for Lilypond output, which could stuff up i18n a bit. However, I suggest you go ahead and do the most obvious naive mapping of metadata names onto Lilypond headers that you can think of, just try to get something working, and we'll take it from there. To get the metadata associated with the current composition, just do something like Rosegarden::Configuration &metadata = composition->getMetadata(); std::vector<std::string> propertyNames = metadata.getPropertyNames(); and then get the value of a property with metadata.get<String>(name). All the metadata properties are strings. For some vague reason I defined three constants for basic properties in the Rosegarden:: CompositionMetadataKeys namespace, though I'm not certain we want to use those. As for toggle options for Lilypond output, they should go in a new tab in the Notation page of the Configure Rosegarden dialog. That involves messing about in rosegardenconfigurationpage.h and rosegardenconfiguredialog.cpp. There are plenty of examples to copy, but the basic layout is usually just a QGridLayout within a QFrame. Advise disregarding most of the rest of Bownie's email. I don't think you should have to create a new dialog for anything. Chris |