b37e348604b75f346c8b423dd6b67a4663102871 from master; tweak job view.
authorCarl Hetherington <cth@carlh.net>
Mon, 25 May 2015 13:48:57 +0000 (14:48 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 25 May 2015 13:48:57 +0000 (14:48 +0100)
TO_PORT
src/wx/job_manager_view.cc
src/wx/job_manager_view.h

diff --git a/TO_PORT b/TO_PORT
index 4ba5dfaa33c7874be8eda014a073cc92feef5314..121eab049cbd86580479dd801a06b097557a063e 100644 (file)
--- a/TO_PORT
+++ b/TO_PORT
@@ -1,6 +1,3 @@
-2bf46f7c75c59e4cd3d91f1ddd322bdabb19b6f4
-f952568be9c4438d5b024c133b18b2590de968e7
-349e2950e5541d41e5491c2865734cf6a86e2cbd
 dd843f32f8f915a2fe984126ac338b26fa83546d
 c13575f0483d6e92956fa7fb2e424572702236dc
 33a2bece96b7875134c99a2053a2fc59e828ae33
 dd843f32f8f915a2fe984126ac338b26fa83546d
 c13575f0483d6e92956fa7fb2e424572702236dc
 33a2bece96b7875134c99a2053a2fc59e828ae33
@@ -9,4 +6,5 @@ c040b70eb777630ef0fdbb80cd419f6b3da4b46e
 ea2becf3a859bc38c783d15f165d71f2ccb8c1d6
 21cb435ed5eb250a7f94887ddd75f6b367ea231f
 Multi-stream audio stuff.
 ea2becf3a859bc38c783d15f165d71f2ccb8c1d6
 21cb435ed5eb250a7f94887ddd75f6b367ea231f
 Multi-stream audio stuff.
+f952568be9c4438d5b024c133b18b2590de968e7
 77d7a03cf0785140caf37276edac9a1a0c9a8799
 77d7a03cf0785140caf37276edac9a1a0c9a8799
index ec58607af6eed724489d4d1b18fbad6947762543..72efae59385270747d77c48e1327234bbe3588a6 100644 (file)
@@ -46,44 +46,37 @@ public:
                , _table (table)
        {
                int n = 0;
                , _table (table)
        {
                int n = 0;
-               
-               _name = new wxStaticText (panel, wxID_ANY, "");
-               string const jn = "<b>" + _job->name () + "</b>";
-               _name->SetLabelMarkup (std_to_wx (jn));
-               table->Insert (n, _name, 0, wxALIGN_CENTER_VERTICAL | wxALL, 6);
-               ++n;
-       
+
+               wxBoxSizer* gauge_message = new wxBoxSizer (wxVERTICAL);
                _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));
                _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;
-               
-               _message = new wxStaticText (panel, wxID_ANY, std_to_wx (""));
-               table->Insert (n, _message, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+               gauge_message->Add (_gauge, 1, wxEXPAND | wxLEFT | wxRIGHT);
+               _message = new wxStaticText (panel, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
+               gauge_message->Add (_message, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL | wxALL, 6);
+               table->Insert (n, gauge_message, 1, wxEXPAND | wxLEFT | wxRIGHT);
                ++n;
        
                _cancel = new wxButton (panel, wxID_ANY, _("Cancel"));
                _cancel->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::cancel_clicked, this);
                ++n;
        
                _cancel = new wxButton (panel, wxID_ANY, _("Cancel"));
                _cancel->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::cancel_clicked, this);
-               table->Insert (n, _cancel, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+               table->Insert (n, _cancel, 1, wxALIGN_CENTER_VERTICAL | wxALL, 3);
                ++n;
        
                _pause = new wxButton (_panel, wxID_ANY, _("Pause"));
                _pause->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::pause_clicked, this);
                ++n;
        
                _pause = new wxButton (_panel, wxID_ANY, _("Pause"));
                _pause->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::pause_clicked, this);
-               table->Insert (n, _pause, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+               table->Insert (n, _pause, 1, wxALIGN_CENTER_VERTICAL | wxALL, 3);
                ++n;
        
                _details = new wxButton (_panel, wxID_ANY, _("Details..."));
                _details->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::details_clicked, this);
                _details->Enable (false);
                ++n;
        
                _details = new wxButton (_panel, wxID_ANY, _("Details..."));
                _details->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::details_clicked, this);
                _details->Enable (false);
-               table->Insert (n, _details, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
+               table->Insert (n, _details, 1, wxALIGN_CENTER_VERTICAL | wxALL, 3);
                ++n;
        
                _progress_connection = job->Progress.connect (boost::bind (&JobRecord::progress, this));
                _finished_connection = job->Finished.connect (boost::bind (&JobRecord::finished, this));
        
                table->Layout ();
                ++n;
        
                _progress_connection = job->Progress.connect (boost::bind (&JobRecord::progress, this));
                _finished_connection = job->Finished.connect (boost::bind (&JobRecord::finished, this));
        
                table->Layout ();
-               panel->FitInside ();
        }
 
        void maybe_pulse ()
        }
 
        void maybe_pulse ()
@@ -95,43 +88,21 @@ public:
 
 private:
 
 
 private:
 
-       void update_job_name ()
-       {
-               string n = "<b>" + _job->name () + "</b>";
-               if (!_job->sub_name().empty ()) {
-                       n += "\n" + _job->sub_name ();
-               }
-               
-               if (n != _last_name) {
-                       _name->SetLabelMarkup (std_to_wx (n));
-                       _last_name = n;
-               }
-       }
-
-       void update_status ()
-       {
-               string s = _job->status ();
-               if (s.length() > 25) {
-                       s = s.substr (0, 25) + "...";
-               }
-               checked_set (_message, s);
-       }
-
        void progress ()
        {
        void progress ()
        {
-               update_status ();
-               update_job_name ();
+               string whole = "<b>" + _job->name () + "</b>: " + _job->sub_name() + " " + _job->status ();
+               if (whole != _last_message) {
+                       _message->SetLabelMarkup (whole);
+                       _last_message = whole;
+               }
                if (_job->progress ()) {
                        _gauge->SetValue (min (100.0f, _job->progress().get() * 100));
                if (_job->progress ()) {
                        _gauge->SetValue (min (100.0f, _job->progress().get() * 100));
-               }
-               _table->Layout ();
-               _window->FitInside ();
+               }
        }
 
        void finished ()
        {
        }
 
        void finished ()
        {
-               update_status ();
-               update_job_name ();
+               progress ();
                
                if (!_job->finished_cancelled ()) {
                        _gauge->SetValue (100);
                
                if (!_job->finished_cancelled ()) {
                        _gauge->SetValue (100);
@@ -142,9 +113,6 @@ private:
                if (!_job->error_details().empty ()) {
                        _details->Enable (true);
                }
                if (!_job->error_details().empty ()) {
                        _details->Enable (true);
                }
-               
-               _table->Layout ();
-               _window->FitInside ();
        }
 
        void details_clicked (wxCommandEvent &)
        }
 
        void details_clicked (wxCommandEvent &)
@@ -174,13 +142,12 @@ private:
        wxScrolledWindow* _window;
        wxPanel* _panel;
        wxFlexGridSizer* _table;
        wxScrolledWindow* _window;
        wxPanel* _panel;
        wxFlexGridSizer* _table;
-       wxStaticText* _name;
        wxGauge* _gauge;
        wxStaticText* _message;
        wxButton* _cancel;
        wxButton* _pause;
        wxButton* _details;
        wxGauge* _gauge;
        wxStaticText* _message;
        wxButton* _cancel;
        wxButton* _pause;
        wxButton* _details;
-       std::string _last_name;
+       std::string _last_message;
 
        boost::signals2::scoped_connection _progress_connection;
        boost::signals2::scoped_connection _finished_connection;
 
        boost::signals2::scoped_connection _progress_connection;
        boost::signals2::scoped_connection _finished_connection;
@@ -195,8 +162,8 @@ JobManagerView::JobManagerView (wxWindow* parent)
        sizer->Add (_panel, 1, wxEXPAND);
        SetSizer (sizer);
 
        sizer->Add (_panel, 1, wxEXPAND);
        SetSizer (sizer);
 
-       _table = new wxFlexGridSizer (6, 6, 6);
-       _table->AddGrowableCol (1, 1);
+       _table = new wxFlexGridSizer (4, 4, 6);
+       _table->AddGrowableCol (0, 1);
        _panel->SetSizer (_table);
 
        SetScrollRate (0, 32);
        _panel->SetSizer (_table);
 
        SetScrollRate (0, 32);
@@ -206,18 +173,9 @@ JobManagerView::JobManagerView (wxWindow* parent)
        _timer.reset (new wxTimer (this));
        _timer->Start (1000);
 
        _timer.reset (new wxTimer (this));
        _timer->Start (1000);
 
-       Bind (wxEVT_SIZE, boost::bind (&JobManagerView::sized, this, _1));
        JobManager::instance()->JobAdded.connect (bind (&JobManagerView::job_added, this, _1));
 }
 
        JobManager::instance()->JobAdded.connect (bind (&JobManagerView::job_added, this, _1));
 }
 
-void
-JobManagerView::sized (wxSizeEvent& ev)
-{
-       _table->FitInside (_panel);
-       _table->Layout ();
-       ev.Skip ();
-}
-
 void
 JobManagerView::job_added (weak_ptr<Job> j)
 {
 void
 JobManagerView::job_added (weak_ptr<Job> j)
 {
index fde9199ffb80d5890e0397a08e006d719a07c414..244299a400a7bbf411f4575738eddf53fb4a6d71 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
-    Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -39,7 +39,6 @@ public:
 private:
        void job_added (boost::weak_ptr<Job>);
        void periodic ();
 private:
        void job_added (boost::weak_ptr<Job>);
        void periodic ();
-       void sized (wxSizeEvent &);
 
        wxPanel* _panel;
        wxFlexGridSizer* _table;
 
        wxPanel* _panel;
        wxFlexGridSizer* _table;