Merge branch '1.0' of /home/carl/git/dvdomatic into 1.0
[dcpomatic.git] / src / wx / job_manager_view.cc
index b627edc2f31be8b7cc20b71a503bf90765f35787..7cfcf3423ce9d2fdaba23d90290a1920011c32a9 100644 (file)
@@ -31,6 +31,7 @@
 using std::string;
 using std::list;
 using std::map;
+using std::min;
 using std::cout;
 using boost::shared_ptr;
 using boost::weak_ptr;
@@ -46,11 +47,14 @@ public:
        {
                int n = 0;
                
-               wxStaticText* m = new wxStaticText (panel, wxID_ANY, std_to_wx (_job->name ()));
-               table->Insert (n, m, 0, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+               _name = new wxStaticText (panel, wxID_ANY, "");
+               _name->SetLabelMarkup ("<b>" + _job->name () + "</b>");
+               table->Insert (n, _name, 0, wxALIGN_CENTER_VERTICAL | wxALL, 6);
                ++n;
        
                _gauge = new wxGauge (panel, wxID_ANY, 100);
+               /* This seems to be required to allow the gauge to shrink under OS X */
+               _gauge->SetMinSize (wxSize (0, -1));
                table->Insert (n, _gauge, 1, wxEXPAND | wxLEFT | wxRIGHT);
                ++n;
                
@@ -94,10 +98,16 @@ private:
 
        void progress ()
        {
-               float const p = _job->overall_progress ();
+               float const p = _job->progress ();
                if (p >= 0) {
                        checked_set (_message, _job->status ());
-                       _gauge->SetValue (p * 100);
+                       string const n = "<b>" + _job->name () + "</b>\n" + _job->sub_name ();
+                       if (n != _last_name) {
+                               _name->SetLabelMarkup (std_to_wx (n));
+                               _last_name = n;
+                       }
+                       int const pp = min (100.0f, p * 100);
+                       _gauge->SetValue (pp);
                }
 
                _table->Layout ();
@@ -147,11 +157,13 @@ private:
        wxScrolledWindow* _window;
        wxPanel* _panel;
        wxFlexGridSizer* _table;
+       wxStaticText* _name;
        wxGauge* _gauge;
        wxStaticText* _message;
        wxButton* _cancel;
        wxButton* _pause;
        wxButton* _details;
+       std::string _last_name;
 };
 
 /** Must be called in the GUI thread */