X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_dialog.cc;h=26e2b9a68887628f64560848f7f491f453784ffc;hb=7db39a206e6ab9f43299e6b8ae148d90b2ee6c4d;hp=ad8873d6dc0d2c262762cdbbffa28f329ee1320a;hpb=88d500b28ac2bcab6fd7b6c830a1e6ae84c36b15;p=ardour.git diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index ad8873d6dc..26e2b9a688 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -26,8 +26,10 @@ #include "ardour/audioregion.h" #include "ardour/export_status.h" #include "ardour/export_handler.h" +#include "ardour/profile.h" #include "export_dialog.h" +#include "export_report.h" #include "gui_thread.h" #include "nag.h" @@ -186,7 +188,7 @@ ExportDialog::notify_errors (bool force) void ExportDialog::close_dialog () { - if (status->running) { + if (status->running ()) { status->abort(); } @@ -299,7 +301,7 @@ ExportDialog::do_export () void ExportDialog::show_progress () { - status->running = true; + export_notebook.set_sensitive (false); cancel_button->set_label (_("Stop Export")); export_button->set_sensitive (false); @@ -312,7 +314,7 @@ ExportDialog::show_progress () gtk_main_iteration (); - while (status->running) { + while (status->running ()) { if (gtk_events_pending()) { gtk_main_iteration (); } else { @@ -320,35 +322,58 @@ ExportDialog::show_progress () } } - if (!status->aborted()) { + status->finish (); - NagScreen* ns = NagScreen::maybe_nag (_("export")); + if (!status->aborted() && status->result_map.size() > 0) { + hide(); + ExportReport er (_session, status); + er.run(); + } - if (ns) { - ns->nag (); - delete ns; + if (!status->aborted()) { + hide(); + if (!ARDOUR::Profile->get_mixbus()) { + NagScreen* ns = NagScreen::maybe_nag (_("export")); + if (ns) { + ns->nag (); + delete ns; + } } } else { notify_errors (); } - - status->finish (); + export_notebook.set_sensitive (true); } gint ExportDialog::progress_timeout () { std::string status_text; - float progress = 0.0; - if (status->normalizing) { + float progress = -1; + switch (status->active_job) { + case ExportStatus::Exporting: + status_text = string_compose (_("Exporting '%3' (timespan %1 of %2)"), + status->timespan, status->total_timespans, status->timespan_name); + progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan; + break; + case ExportStatus::Normalizing: status_text = string_compose (_("Normalizing '%3' (timespan %1 of %2)"), status->timespan, status->total_timespans, status->timespan_name); progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles; - } else { - status_text = string_compose (_("Exporting '%3' (timespan %1 of %2)"), + break; + case ExportStatus::Tagging: + status_text = string_compose (_("Tagging '%3' (timespan %1 of %2)"), status->timespan, status->total_timespans, status->timespan_name); - progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan; + break; + case ExportStatus::Uploading: + status_text = string_compose (_("Uploading '%3' (timespan %1 of %2)"), + status->timespan, status->total_timespans, status->timespan_name); + break; + case ExportStatus::Command: + status_text = string_compose (_("Running Post Export Command for '%1'"), status->timespan_name); + break; } + progress_bar.set_text (status_text); if (progress < previous_progress) { @@ -358,7 +383,12 @@ ExportDialog::progress_timeout () } previous_progress = progress; - progress_bar.set_fraction (progress); + if (progress >= 0) { + progress_bar.set_fraction (progress); + } else { + progress_bar.set_pulse_step(.1); + progress_bar.pulse(); + } return TRUE; }