get state saving working again
This was being bypassed due to misssing UI components in livetrax
This commit is contained in:
parent
3767754ec9
commit
55041ecd26
@ -940,16 +940,14 @@ ARDOUR_UI::use_menubar_as_top_menubar ()
|
|||||||
void
|
void
|
||||||
ARDOUR_UI::save_ardour_state ()
|
ARDOUR_UI::save_ardour_state ()
|
||||||
{
|
{
|
||||||
if (!keyboard || !mixer || !editor || !meterbridge) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* XXX this is all a bit dubious. add_extra_xml() uses
|
/* XXX this is all a bit dubious. add_extra_xml() uses
|
||||||
a different lifetime model from add_instant_xml().
|
a different lifetime model from add_instant_xml().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
XMLNode* node = new XMLNode (keyboard->get_state());
|
if (keyboard) {
|
||||||
Config->add_extra_xml (*node);
|
XMLNode* node = new XMLNode (keyboard->get_state());
|
||||||
|
Config->add_extra_xml (*node);
|
||||||
|
}
|
||||||
|
|
||||||
XMLNode* window_node = new XMLNode (X_("UI"));
|
XMLNode* window_node = new XMLNode (X_("UI"));
|
||||||
window_node->set_property (_status_bar_visibility.get_state_name().c_str(), _status_bar_visibility.get_state_value ());
|
window_node->set_property (_status_bar_visibility.get_state_name().c_str(), _status_bar_visibility.get_state_value ());
|
||||||
@ -996,13 +994,6 @@ ARDOUR_UI::save_ardour_state ()
|
|||||||
|
|
||||||
window_node->add_child_nocopy (*tearoff_node);
|
window_node->add_child_nocopy (*tearoff_node);
|
||||||
|
|
||||||
XMLNode& enode (editor->get_state());
|
|
||||||
XMLNode& mnode (mixer->get_state());
|
|
||||||
XMLNode& bnode (meterbridge->get_state());
|
|
||||||
XMLNode& pnode (rc_option_editor->get_state());
|
|
||||||
XMLNode& rnode (recorder->get_state());
|
|
||||||
XMLNode& tnode (trigger_page->get_state());
|
|
||||||
|
|
||||||
/* store clock modes */
|
/* store clock modes */
|
||||||
XMLNode* cnode = new XMLNode(X_("ClockModes"));
|
XMLNode* cnode = new XMLNode(X_("ClockModes"));
|
||||||
for (auto const& i: AudioClock::clocks) {
|
for (auto const& i: AudioClock::clocks) {
|
||||||
@ -1022,14 +1013,54 @@ ARDOUR_UI::save_ardour_state ()
|
|||||||
|
|
||||||
UIConfiguration::instance().save_state ();
|
UIConfiguration::instance().save_state ();
|
||||||
|
|
||||||
|
XMLNode* enode (nullptr);
|
||||||
|
XMLNode* mnode (nullptr);
|
||||||
|
XMLNode* bnode (nullptr);
|
||||||
|
XMLNode* pnode (nullptr);
|
||||||
|
XMLNode* rnode (nullptr);
|
||||||
|
XMLNode* tnode (nullptr);
|
||||||
|
|
||||||
|
if (editor) {
|
||||||
|
enode = &editor->get_state();
|
||||||
|
}
|
||||||
|
if (mixer) {
|
||||||
|
mnode = &mixer->get_state();
|
||||||
|
}
|
||||||
|
if (meterbridge) {
|
||||||
|
bnode = &meterbridge->get_state();
|
||||||
|
}
|
||||||
|
if (rc_option_editor) {
|
||||||
|
pnode = &rc_option_editor->get_state();
|
||||||
|
}
|
||||||
|
if (recorder) {
|
||||||
|
rnode = &recorder->get_state();
|
||||||
|
}
|
||||||
|
if (trigger_page) {
|
||||||
|
tnode = &trigger_page->get_state();
|
||||||
|
}
|
||||||
|
|
||||||
if (_session) {
|
if (_session) {
|
||||||
|
|
||||||
_session->add_instant_xml (main_window_node);
|
_session->add_instant_xml (main_window_node);
|
||||||
_session->add_instant_xml (enode);
|
|
||||||
_session->add_instant_xml (mnode);
|
if (enode) {
|
||||||
_session->add_instant_xml (pnode);
|
_session->add_instant_xml (*enode);
|
||||||
_session->add_instant_xml (bnode);
|
}
|
||||||
_session->add_instant_xml (rnode);
|
if (mnode) {
|
||||||
_session->add_instant_xml (tnode);
|
_session->add_instant_xml (*mnode);
|
||||||
|
}
|
||||||
|
if (bnode) {
|
||||||
|
_session->add_instant_xml (*bnode);
|
||||||
|
}
|
||||||
|
if (pnode) {
|
||||||
|
_session->add_instant_xml (*pnode);
|
||||||
|
}
|
||||||
|
if (rnode) {
|
||||||
|
_session->add_instant_xml (*rnode);
|
||||||
|
}
|
||||||
|
if (tnode) {
|
||||||
|
_session->add_instant_xml (*tnode);
|
||||||
|
}
|
||||||
_session->add_instant_xml (*cnode);
|
_session->add_instant_xml (*cnode);
|
||||||
if (location_ui) {
|
if (location_ui) {
|
||||||
_session->add_instant_xml (location_ui->ui().get_state ());
|
_session->add_instant_xml (location_ui->ui().get_state ());
|
||||||
@ -1044,13 +1075,26 @@ ARDOUR_UI::save_ardour_state ()
|
|||||||
/* save current Window settings and sizes for new sessions */
|
/* save current Window settings and sizes for new sessions */
|
||||||
{
|
{
|
||||||
Config->add_instant_xml (main_window_node);
|
Config->add_instant_xml (main_window_node);
|
||||||
Config->add_instant_xml (enode);
|
|
||||||
Config->add_instant_xml (mnode);
|
if (enode) {
|
||||||
Config->add_instant_xml (pnode);
|
Config->add_instant_xml (*enode);
|
||||||
Config->add_instant_xml (bnode);
|
}
|
||||||
Config->add_instant_xml (rnode);
|
if (mnode) {
|
||||||
Config->add_instant_xml (tnode);
|
Config->add_instant_xml (*mnode);
|
||||||
Config->add_instant_xml (*cnode);
|
}
|
||||||
|
if (bnode) {
|
||||||
|
Config->add_instant_xml (*bnode);
|
||||||
|
}
|
||||||
|
if (pnode) {
|
||||||
|
Config->add_instant_xml (*pnode);
|
||||||
|
}
|
||||||
|
if (rnode) {
|
||||||
|
Config->add_instant_xml (*rnode);
|
||||||
|
}
|
||||||
|
if (tnode) {
|
||||||
|
Config->add_instant_xml (*tnode);
|
||||||
|
}
|
||||||
|
|
||||||
if (location_ui) {
|
if (location_ui) {
|
||||||
Config->add_instant_xml (location_ui->ui().get_state ());
|
Config->add_instant_xml (location_ui->ui().get_state ());
|
||||||
}
|
}
|
||||||
@ -1061,13 +1105,12 @@ ARDOUR_UI::save_ardour_state ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete &enode;
|
delete enode;
|
||||||
delete &mnode;
|
delete mnode;
|
||||||
delete &bnode;
|
delete bnode;
|
||||||
delete &pnode;
|
delete pnode;
|
||||||
delete &rnode;
|
delete rnode;
|
||||||
delete &tnode;
|
delete tnode;
|
||||||
delete cnode;
|
|
||||||
|
|
||||||
Keyboard::save_keybindings ();
|
Keyboard::save_keybindings ();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user