X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Finterthread_progress_window.cc;h=c74f12914f3d37a62720e16edee0f44d6af56d09;hb=456596bced4a3647cde4613792002142f9fea4d7;hp=6cd1d8686a9eaeec120948eae579aedbed5a58e0;hpb=74c69114bc99fceff7e59c51d5bbd7b18949e8dd;p=ardour.git diff --git a/gtk2_ardour/interthread_progress_window.cc b/gtk2_ardour/interthread_progress_window.cc index 6cd1d8686a..c74f12914f 100644 --- a/gtk2_ardour/interthread_progress_window.cc +++ b/gtk2_ardour/interthread_progress_window.cc @@ -19,9 +19,10 @@ #include #include +#include "gtkmm2ext/utils.h" #include "ardour/import_status.h" #include "interthread_progress_window.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; using namespace Gtk; @@ -49,10 +50,21 @@ InterthreadProgressWindow::InterthreadProgressWindow (ARDOUR::InterThreadInfo* i set_default_size (200, 100); show_all (); + hide (); + _interthread_info->cancel = false; // override on_hide Glib::signal_timeout().connect (sigc::mem_fun (*this, &InterthreadProgressWindow::update), 100); } +void +InterthreadProgressWindow::on_hide () +{ + if (_interthread_info && !_interthread_info->done) { + //catch user pressing 'esc' or WM close + _interthread_info->cancel = true; + } +} + void InterthreadProgressWindow::cancel_clicked () { @@ -86,7 +98,7 @@ bool ImportProgressWindow::update () { _cancel_button.set_sensitive (!_import_status->freeze); - _label.set_markup ("" + _import_status->doing_what + ""); + _label.set_markup ("" + Gtkmm2ext::markup_escape_text (_import_status->doing_what) + ""); /* use overall progress for the bar, rather than that for individual files */ _bar.set_fraction ((_import_status->current - 1 + _import_status->progress) / _import_status->total); @@ -98,7 +110,7 @@ ImportProgressWindow::update () if (c > _import_status->total) { c = _import_status->total; } - + _bar.set_text (string_compose (_("Importing file: %1 of %2"), c, _import_status->total)); return !(_import_status->all_done || _import_status->cancel);