From a5e041b46b675c1f42fc83920be45345662e0376 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 30 Sep 2016 10:42:30 +0100 Subject: [PATCH] Reverse order of jobs in the batch converter view. --- ChangeLog | 4 ++++ src/tools/dcpomatic.cc | 2 +- src/tools/dcpomatic_batch.cc | 2 +- src/wx/job_manager_view.cc | 12 +++++++++--- src/wx/job_manager_view.h | 3 ++- src/wx/job_view.cc | 5 +++-- src/wx/job_view.h | 2 +- src/wx/job_view_dialog.cc | 2 +- 8 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index ad3447b9a..366b85433 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2016-09-30 c.hetherington + + * Order jobs from first-to-execute to last in the batch converter. + 2016-09-28 c.hetherington * Fix crash on "report a problem" in the KDM creator. diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 6c16457af..cb4927ad0 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -245,7 +245,7 @@ public: _film_viewer = new FilmViewer (overall_panel); _film_editor = new FilmEditor (overall_panel, _film_viewer); - JobManagerView* job_manager_view = new JobManagerView (overall_panel); + JobManagerView* job_manager_view = new JobManagerView (overall_panel, false); wxBoxSizer* right_sizer = new wxBoxSizer (wxVERTICAL); right_sizer->Add (_film_viewer, 2, wxEXPAND | wxALL, 6); diff --git a/src/tools/dcpomatic_batch.cc b/src/tools/dcpomatic_batch.cc index 9e2d6969d..64eb46af2 100644 --- a/src/tools/dcpomatic_batch.cc +++ b/src/tools/dcpomatic_batch.cc @@ -109,7 +109,7 @@ public: s->Add (panel, 1, wxEXPAND); SetSizer (s); - JobManagerView* job_manager_view = new JobManagerView (panel); + JobManagerView* job_manager_view = new JobManagerView (panel, false); _sizer->Add (job_manager_view, 1, wxALL | wxEXPAND, 6); wxSizer* buttons = new wxBoxSizer (wxHORIZONTAL); diff --git a/src/wx/job_manager_view.cc b/src/wx/job_manager_view.cc index cd6918b72..dcef5f4fd 100644 --- a/src/wx/job_manager_view.cc +++ b/src/wx/job_manager_view.cc @@ -40,9 +40,15 @@ using std::cout; using boost::shared_ptr; using boost::weak_ptr; -/** Must be called in the GUI thread */ -JobManagerView::JobManagerView (wxWindow* parent) +/** @param parent Parent window. + * @param latest_at_top true to put the last-added job at the top of the view, + * false to put it at the bottom. + * + * Must be called in the GUI thread. + */ +JobManagerView::JobManagerView (wxWindow* parent, bool latest_at_top) : wxScrolledWindow (parent) + , _latest_at_top (latest_at_top) { _panel = new wxPanel (this); wxSizer* sizer = new wxBoxSizer (wxVERTICAL); @@ -68,7 +74,7 @@ JobManagerView::job_added (weak_ptr j) { shared_ptr job = j.lock (); if (job) { - _job_records.push_back (shared_ptr (new JobView (job, this, _panel, _table))); + _job_records.push_back (shared_ptr (new JobView (job, this, _panel, _table, _latest_at_top))); } } diff --git a/src/wx/job_manager_view.h b/src/wx/job_manager_view.h index 7624678c2..d887718d3 100644 --- a/src/wx/job_manager_view.h +++ b/src/wx/job_manager_view.h @@ -35,7 +35,7 @@ class JobView; class JobManagerView : public wxScrolledWindow { public: - JobManagerView (wxWindow *); + JobManagerView (wxWindow *, bool latest_at_top); private: void job_added (boost::weak_ptr); @@ -44,6 +44,7 @@ private: wxPanel* _panel; wxFlexGridSizer* _table; boost::shared_ptr _timer; + bool _latest_at_top; std::list > _job_records; }; diff --git a/src/wx/job_view.cc b/src/wx/job_view.cc index 136b18ed3..83d3159b0 100644 --- a/src/wx/job_view.cc +++ b/src/wx/job_view.cc @@ -28,11 +28,12 @@ using std::string; using std::min; using boost::shared_ptr; -JobView::JobView (shared_ptr job, wxWindow* parent, wxWindow* container, wxFlexGridSizer* table) +/** @param top Put this view at the top of table, otherwise put it at the bottom */ +JobView::JobView (shared_ptr job, wxWindow* parent, wxWindow* container, wxFlexGridSizer* table, bool top) : _job (job) , _parent (parent) { - int n = 0; + int n = top ? 0 : (table->GetEffectiveRowsCount() * table->GetEffectiveColsCount()); _gauge_message = new wxBoxSizer (wxVERTICAL); _gauge = new wxGauge (container, wxID_ANY, 100); diff --git a/src/wx/job_view.h b/src/wx/job_view.h index ee254f2a4..96233f732 100644 --- a/src/wx/job_view.h +++ b/src/wx/job_view.h @@ -35,7 +35,7 @@ class wxButton; class JobView : public boost::noncopyable { public: - JobView (boost::shared_ptr job, wxWindow* parent, wxWindow* container, wxFlexGridSizer* table); + JobView (boost::shared_ptr job, wxWindow* parent, wxWindow* container, wxFlexGridSizer* table, bool top); void maybe_pulse (); diff --git a/src/wx/job_view_dialog.cc b/src/wx/job_view_dialog.cc index b4dcd271f..e629cce62 100644 --- a/src/wx/job_view_dialog.cc +++ b/src/wx/job_view_dialog.cc @@ -26,7 +26,7 @@ using boost::shared_ptr; JobViewDialog::JobViewDialog (wxWindow* parent, wxString title, shared_ptr job) : TableDialog (parent, title, 4, 0, false) { - _view = new JobView (job, this, this, _table); + _view = new JobView (job, this, this, _table, true); layout (); SetMinSize (wxSize (960, -1)); -- 2.30.2