Move _state_timer into VideoView.
[dcpomatic.git] / src / wx / job_view.cc
index 5d3cc0f9cf74ad2c0eabb5ea2824d268168f9fa1..b61da04f84da3ff1dd6dbba67f3c1e0187c1a7d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -21,6 +21,9 @@
 #include "job_view.h"
 #include "wx_util.h"
 #include "message_dialog.h"
+#include "static_text.h"
+#include "check_box.h"
+#include "dcpomatic_button.h"
 #include "lib/job.h"
 #include "lib/job_manager.h"
 #include "lib/compose.hpp"
@@ -29,6 +32,7 @@
 #include "lib/transcode_job.h"
 #include "lib/analyse_audio_job.h"
 #include <wx/wx.h>
+#include <boost/algorithm/string.hpp>
 
 using std::string;
 using std::min;
@@ -56,18 +60,18 @@ JobView::setup ()
        /* This seems to be required to allow the gauge to shrink under OS X */
        _gauge->SetMinSize (wxSize (0, -1));
        _gauge_message->Add (_gauge, 0, wxEXPAND | wxLEFT | wxRIGHT);
-       _message = new wxStaticText (_container, wxID_ANY, wxT (" \n "), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_MIDDLE);
+       _message = new StaticText (_container, wxT(" \n "), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_MIDDLE);
        _gauge_message->Add (_message, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6);
        _table->Insert (n, _gauge_message, 1, wxEXPAND | wxLEFT | wxRIGHT);
        ++n;
 
        _buttons = new wxBoxSizer (wxHORIZONTAL);
 
-       _cancel = new wxButton (_container, wxID_ANY, _("Cancel"));
+       _cancel = new Button (_container, _("Cancel"));
        _cancel->Bind (wxEVT_BUTTON, &JobView::cancel_clicked, this);
        _buttons->Add (_cancel, 1, wxALIGN_CENTER_VERTICAL);
 
-       _details = new wxButton (_container, wxID_ANY, _("Details..."));
+       _details = new Button (_container, _("Details..."));
        _details->Bind (wxEVT_BUTTON, &JobView::details_clicked, this);
        _details->Enable (false);
        _buttons->Add (_details, 1, wxALIGN_CENTER_VERTICAL);
@@ -76,7 +80,7 @@ JobView::setup ()
 
        _controls = new wxBoxSizer (wxVERTICAL);
        _controls->Add (_buttons);
-       _notify = new wxCheckBox (_container, wxID_ANY, _("Notify when complete"));
+       _notify = new CheckBox (_container, _("Notify when complete"));
        _notify->Bind (wxEVT_CHECKBOX, bind (&JobView::notify_clicked, this));
        _notify->SetValue (Config::instance()->default_notify());
        _controls->Add (_notify);
@@ -106,7 +110,11 @@ JobView::progress ()
        if (!_job->sub_name().empty ()) {
                whole += _job->sub_name() + " ";
        }
-       whole += _job->status ();
+       string s = _job->status ();
+       /* Watch out for < > in the error string */
+       boost::algorithm::replace_all (s, "<", "&lt;");
+       boost::algorithm::replace_all (s, ">", "&gt;");
+       whole += s;
        if (whole != _last_message) {
                _message->SetLabelMarkup (std_to_wx (whole));
                /* This hack fixes the size of _message on OS X */