mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 19:16:40 +01:00
major, substantive reworking of how we store GUI information (visibility, height) for automation data. old design stored (insufficient) identifying information plus actual data in a GUI-only XML node; new scheme adds GUI data via extra_xml node to each AutomationControl object. reworked public/private methods for showing/hiding TimeAxisView objects; changed labelling of automation tracks to just show the name of the controlled parameter - more info can be viewed in the tooltip for the track headers. NOTE: Session file format ALTERED. No data loss but track visibility may be different than previous ardour3 versions
git-svn-id: svn://localhost/ardour2/branches/3.0@9703 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
7468fdb9ca
commit
1060243302
30 changed files with 284 additions and 499 deletions
|
|
@ -68,22 +68,37 @@ Stateful::add_extra_xml (XMLNode& node)
|
|||
}
|
||||
|
||||
XMLNode *
|
||||
Stateful::extra_xml (const string& str)
|
||||
Stateful::extra_xml (const string& str, bool add_if_missing)
|
||||
{
|
||||
if (_extra_xml == 0) {
|
||||
return 0;
|
||||
XMLNode* node = 0;
|
||||
|
||||
if (_extra_xml) {
|
||||
node = _extra_xml->child (str.c_str());
|
||||
}
|
||||
|
||||
const XMLNodeList& nlist = _extra_xml->children();
|
||||
XMLNodeConstIterator i;
|
||||
if (!node && add_if_missing) {
|
||||
node = new XMLNode (str);
|
||||
add_extra_xml (*node);
|
||||
}
|
||||
|
||||
for (i = nlist.begin(); i != nlist.end(); ++i) {
|
||||
if ((*i)->name() == str) {
|
||||
return (*i);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
void
|
||||
Stateful::save_extra_xml (const XMLNode& node)
|
||||
{
|
||||
/* Looks for the child node called "Extra" and makes _extra_xml
|
||||
point to a copy of it. Will delete any existing node pointed
|
||||
to by _extra_xml if a new Extra node is found, but not
|
||||
otherwise.
|
||||
*/
|
||||
|
||||
const XMLNode* xtra = node.child ("Extra");
|
||||
|
||||
if (xtra) {
|
||||
delete _extra_xml;
|
||||
_extra_xml = new XMLNode (*xtra);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue