diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-07-24 22:26:01 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-07-24 22:26:01 +0100 |
| commit | 4b4faedc4d6b41f1daf913a4540c977b3dbf6a4c (patch) | |
| tree | 5392b46ebf5aeb8eb8a6776ae4b4f7fa530b1937 /src | |
| parent | 9ee95f058263c03f5f88a6db31becb8788ee47e8 (diff) | |
Pulse jobs with no progress reports.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/job_manager_view.cc | 26 | ||||
| -rw-r--r-- | src/wx/job_manager_view.h | 2 |
2 files changed, 25 insertions, 3 deletions
diff --git a/src/wx/job_manager_view.cc b/src/wx/job_manager_view.cc index d45d6e65d..20f885a9b 100644 --- a/src/wx/job_manager_view.cc +++ b/src/wx/job_manager_view.cc @@ -43,6 +43,7 @@ public: , _window (window) , _panel (panel) , _table (table) + , _needs_pulse (false) { int n = 0; @@ -83,6 +84,15 @@ public: panel->FitInside (); } + void maybe_pulse () + { + if (_job->running() && _needs_pulse) { + _gauge->Pulse (); + } + + _needs_pulse = true; + } + private: void progress () @@ -91,9 +101,7 @@ private: if (p >= 0) { checked_set (_message, _job->status ()); _gauge->SetValue (p * 100); - } else { - checked_set (_message, wx_to_std (_("Running"))); - _gauge->Pulse (); + _needs_pulse = false; } _table->Layout (); @@ -148,6 +156,7 @@ private: wxButton* _cancel; wxButton* _pause; wxButton* _details; + bool _needs_pulse; }; /** Must be called in the GUI thread */ @@ -171,6 +180,10 @@ JobManagerView::JobManagerView (wxWindow* parent, Buttons buttons) SetScrollRate (0, 32); + Bind (wxEVT_TIMER, boost::bind (&JobManagerView::periodic, this)); + _timer.reset (new wxTimer (this)); + _timer->Start (1000); + JobManager::instance()->JobAdded.connect (bind (&JobManagerView::job_added, this, _1)); } @@ -183,3 +196,10 @@ JobManagerView::job_added (weak_ptr<Job> j) } } +void +JobManagerView::periodic () +{ + for (list<shared_ptr<JobRecord> >::iterator i = _job_records.begin(); i != _job_records.end(); ++i) { + (*i)->maybe_pulse (); + } +} diff --git a/src/wx/job_manager_view.h b/src/wx/job_manager_view.h index 465311837..c4bb1e218 100644 --- a/src/wx/job_manager_view.h +++ b/src/wx/job_manager_view.h @@ -42,9 +42,11 @@ public: private: void job_added (boost::weak_ptr<Job>); + void periodic (); wxPanel* _panel; wxFlexGridSizer* _table; + boost::shared_ptr<wxTimer> _timer; std::list<boost::shared_ptr<JobRecord> > _job_records; Buttons _buttons; |
