From 80f6d818e43d3ce2bd2d81f1bd3bbd4160c28aea Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 6 Feb 2017 10:37:31 +0000 Subject: Fix display of progress meter (and crash) when sending emails from the KDM creator (#1045). --- src/wx/job_view.cc | 3 ++- src/wx/job_view_dialog.cc | 15 +++++++++++++++ src/wx/job_view_dialog.h | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/wx/job_view.cc b/src/wx/job_view.cc index 13c3bc7ab..4aa2e3c2b 100644 --- a/src/wx/job_view.cc +++ b/src/wx/job_view.cc @@ -33,6 +33,7 @@ JobView::JobView (shared_ptr job, wxWindow* parent, wxWindow* container, wx , _table (table) , _parent (parent) , _container (container) + , _gauge (0) { } @@ -78,7 +79,7 @@ JobView::setup () void JobView::maybe_pulse () { - if (_job->running() && !_job->progress ()) { + if (_gauge && _job->running() && !_job->progress()) { _gauge->Pulse (); } } diff --git a/src/wx/job_view_dialog.cc b/src/wx/job_view_dialog.cc index c1c1c0c55..a49818cc8 100644 --- a/src/wx/job_view_dialog.cc +++ b/src/wx/job_view_dialog.cc @@ -20,19 +20,28 @@ #include "job_view_dialog.h" #include "normal_job_view.h" +#include "lib/job.h" using boost::shared_ptr; JobViewDialog::JobViewDialog (wxWindow* parent, wxString title, shared_ptr job) : TableDialog (parent, title, 4, 0, false) + , _job (job) { _view = new NormalJobView (job, this, this, _table); + _view->setup (); layout (); SetMinSize (wxSize (960, -1)); Bind (wxEVT_TIMER, boost::bind (&JobViewDialog::periodic, this)); _timer.reset (new wxTimer (this)); _timer->Start (1000); + + /* Start off with OK disabled and it will be enabled when the job is finished */ + wxButton* ok = dynamic_cast (FindWindowById (wxID_OK, this)); + if (ok) { + ok->Enable (false); + } } JobViewDialog::~JobViewDialog () @@ -44,4 +53,10 @@ void JobViewDialog::periodic () { _view->maybe_pulse (); + + shared_ptr job = _job.lock (); + wxButton* ok = dynamic_cast (FindWindowById (wxID_OK, this)); + if (job && ok) { + ok->Enable (job->finished ()); + } } diff --git a/src/wx/job_view_dialog.h b/src/wx/job_view_dialog.h index ae22aba73..54a6c1636 100644 --- a/src/wx/job_view_dialog.h +++ b/src/wx/job_view_dialog.h @@ -20,6 +20,7 @@ #include "table_dialog.h" #include +#include class JobView; class Job; @@ -34,5 +35,6 @@ private: void periodic (); JobView* _view; + boost::weak_ptr _job; boost::shared_ptr _timer; }; -- cgit v1.2.3