diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2016-09-11 08:39:08 +1000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2016-09-11 09:29:53 +1000 |
commit | dab6e8a2d33b7ab6127d3916d253f2c41b51b6a0 (patch) | |
tree | 33c79c5398cebdbebed5c212202162474e15918f | |
parent | 3f95b5ac194d680f01af026482bc999c61ad036c (diff) |
Fix #7003, Store/Restore state of checkboxes in Export dialog
-rw-r--r-- | gtk2_ardour/export_file_notebook.cc | 43 | ||||
-rw-r--r-- | gtk2_ardour/export_file_notebook.h | 5 |
2 files changed, 48 insertions, 0 deletions
diff --git a/gtk2_ardour/export_file_notebook.cc b/gtk2_ardour/export_file_notebook.cc index 8e37356d0d..ad590ad18c 100644 --- a/gtk2_ardour/export_file_notebook.cc +++ b/gtk2_ardour/export_file_notebook.cc @@ -113,12 +113,55 @@ ExportFileNotebook::update_soundcloud_upload () } void +ExportFileNotebook::FilePage::on_show () +{ + VBox::on_show (); + restore_state (); +} + +void +ExportFileNotebook::FilePage::on_hide () +{ + VBox::on_hide (); + store_state (); +} + +void ExportFileNotebook::FilePage::analysis_changed () { format_state->format->set_analyse (analysis_button.get_active ()); } void +ExportFileNotebook::FilePage::store_state () +{ + XMLNode node (X_("ExportFile")); + node.add_property ("analyze-audio", analysis_button.get_active () ? "yes" : "no"); + node.add_property ("soundcloud-upload", soundcloud_upload_button.get_active () ? "yes" : "no"); + Config->add_instant_xml (node); +} + +void +ExportFileNotebook::FilePage::restore_state () +{ + XMLNode* node = Config->instant_xml (X_("ExportFile")); + + if (!node) { + return; + } + + XMLProperty const* prop; + + if ((prop = node->property ("analyze-audio")) != 0) { + analysis_button.set_active (string_is_affirmative (prop->value())); + } + + if ((prop = node->property ("soundcloud-upload")) != 0) { + soundcloud_upload_button.set_active (string_is_affirmative (prop->value())); + } +} + +void ExportFileNotebook::update_example_filenames () { int i = 0; diff --git a/gtk2_ardour/export_file_notebook.h b/gtk2_ardour/export_file_notebook.h index 43f64bf87e..b39620b72f 100644 --- a/gtk2_ardour/export_file_notebook.h +++ b/gtk2_ardour/export_file_notebook.h @@ -96,6 +96,11 @@ class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr void critical_selection_changed (); void analysis_changed (); + void on_show (); + void on_hide (); + void store_state (); + void restore_state (); + ARDOUR::ExportProfileManager::FormatStatePtr format_state; ARDOUR::ExportProfileManager::FilenameStatePtr filename_state; ManagerPtr profile_manager; |