#include "gui_thread.h"
#include "utils.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace ARDOUR;
using namespace ARDOUR_UI_UTILS;
ExportFileNotebook::FilePage::analysis_changed ()
{
format_state->format->set_analyse (analysis_button.get_active ());
+ profile_manager->save_format_to_disk (format_state->format);
+}
+
+void
+ExportFileNotebook::FilePage::update_analysis_button ()
+{
+ analysis_button.set_active (format_state->format->analyse());
}
void
ExportFileNotebook::FilePage::FilePage (Session * s, ManagerPtr profile_manager, ExportFileNotebook * parent, uint32_t number,
ExportProfileManager::FormatStatePtr format_state,
ExportProfileManager::FilenameStatePtr filename_state) :
- format_state (format_state),
- filename_state (filename_state),
- profile_manager (profile_manager),
-
- format_label (_("Format"), Gtk::ALIGN_LEFT),
- filename_label (_("Location"), Gtk::ALIGN_LEFT),
- soundcloud_upload_button (_("Upload to Soundcloud")),
- analysis_button (_("Analyze Exported Audio")),
- tab_number (number)
+ format_state (format_state),
+ filename_state (filename_state),
+ profile_manager (profile_manager),
+
+ format_label (_("Format"), Gtk::ALIGN_LEFT),
+ filename_label (_("Location"), Gtk::ALIGN_LEFT),
+ soundcloud_upload_button (_("Upload to Soundcloud")),
+ analysis_button (_("Analyze Exported Audio")),
+ tab_number (number)
{
set_border_width (12);
Gtk::HBox *hbox = Gtk::manage (new Gtk::HBox());
hbox->set_spacing (6);
+#ifndef NDEBUG // SoundCloud upload is currently b0rked, needs debugging
hbox->pack_start (soundcloud_upload_button, false, false, 0);
+#endif
hbox->pack_start (analysis_button, false, false, 0);
pack_start (*hbox, false, false, 0);
format_selector.set_state (format_state, s);
filename_selector.set_state (filename_state, s);
analysis_button.set_active (format_state->format->analyse());
+ soundcloud_upload_button.set_active (format_state->format->soundcloud_upload());
/* Signals */
format_selector.FormatEdited.connect (sigc::mem_fun (*this, &ExportFileNotebook::FilePage::save_format_to_manager));
format_selector.FormatRemoved.connect (sigc::mem_fun (*profile_manager, &ExportProfileManager::remove_format_profile));
format_selector.NewFormat.connect (sigc::mem_fun (*profile_manager, &ExportProfileManager::get_new_format));
+ format_selector.FormatReverted.connect (sigc::mem_fun (*profile_manager, &ExportProfileManager::revert_format_profile));
format_selector.CriticalSelectionChanged.connect (
sigc::mem_fun (*this, &ExportFileNotebook::FilePage::critical_selection_changed));
sigc::mem_fun (*this, &ExportFileNotebook::FilePage::critical_selection_changed));
soundcloud_upload_button.signal_toggled().connect (sigc::mem_fun (*parent, &ExportFileNotebook::update_soundcloud_upload));
+ soundcloud_upload_button.signal_toggled().connect (sigc::mem_fun (*this, &ExportFileNotebook::FilePage::soundcloud_upload_changed));
analysis_button.signal_toggled().connect (sigc::mem_fun (*this, &ExportFileNotebook::FilePage::analysis_changed));
/* Tab widget */
bool
ExportFileNotebook::FilePage::get_soundcloud_upload () const
{
+#ifdef NDEBUG // SoundCloud upload is currently b0rked, needs debugging
+ return false;
+#endif
return soundcloud_upload_button.get_active ();
}
+void
+ExportFileNotebook::FilePage::soundcloud_upload_changed ()
+{
+ profile_manager->save_format_to_disk (format_state->format);
+}
+
+void
+ExportFileNotebook::FilePage::update_soundcloud_upload_button ()
+{
+ soundcloud_upload_button.set_active (format_state->format->soundcloud_upload());
+}
+
void
ExportFileNotebook::FilePage::save_format_to_manager (FormatPtr format)
{
ExportFileNotebook::FilePage::update_example_filename()
{
if (profile_manager) {
+ if (profile_manager->get_timespans().size() > 1
+ || profile_manager->get_timespans().front()->timespans->size() > 1) {
+ filename_selector.require_timespan (true);
+ } else {
+ filename_selector.require_timespan (false);
+ }
std::string example;
if (format_state->format) {
{
update_tab_label();
update_example_filename();
+ update_analysis_button();
+ update_soundcloud_upload_button();
CriticalSelectionChanged();
}