Various JobView fixes.
authorCarl Hetherington <cth@carlh.net>
Wed, 7 Oct 2015 18:34:21 +0000 (19:34 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 9 Oct 2015 12:44:58 +0000 (13:44 +0100)
src/tools/dcpomatic_kdm.cc
src/wx/file_picker_ctrl.cc
src/wx/file_picker_ctrl.h
src/wx/job_view_dialog.cc
src/wx/job_view_dialog.h

index dd2c09bb0eab6c35e7bdeda5aaf66beb8679fcda..bc58be914a93ae1c13ad243748a9f9f1b9004908 100644 (file)
@@ -20,6 +20,7 @@
 #include "wx/config_dialog.h"
 #include "wx/about_dialog.h"
 #include "wx/report_problem_dialog.h"
+#include "wx/file_picker_ctrl.h"
 #include "wx/wx_util.h"
 #include "wx/wx_signal_manager.h"
 #include "wx/screens_panel.h"
@@ -101,11 +102,7 @@ public:
                vertical->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxTOP, DCPOMATIC_SIZER_Y_GAP * 2);
                wxSizer* dkdm = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
                add_label_to_sizer (dkdm, overall_panel, _("DKDM file"), true);
-#ifdef DCPOMATIC_USE_OWN_PICKER
-               _dkdm = new FilePicker (overall_panel, _("Select a DKDM XML file..."), "*.xml");
-#else
-               _dkdm = new wxFilePickerCtrl (overall_panel, wxID_ANY, wxEmptyString, _("Select a DKDM XML file..."), "*.xml", wxDefaultPosition, wxSize (300, -1));
-#endif
+               _dkdm = new FilePickerCtrl (overall_panel, _("Select a DKDM XML file..."), "*.xml");
                dkdm->Add (_dkdm, 1, wxEXPAND);
                add_label_to_sizer (dkdm, overall_panel, _("Annotation"), true);
                _annotation_text = new wxStaticText (overall_panel, wxID_ANY, wxT(""));
@@ -206,6 +203,10 @@ private:
 
        void dkdm_changed ()
        {
+               if (_dkdm->GetPath().IsEmpty()) {
+                       return;
+               }
+
                try {
                        dcp::EncryptedKDM encrypted (dcp::file_to_string (wx_to_std (_dkdm->GetPath())));
                        dcp::DecryptedKDM decrypted (encrypted, Config::instance()->decryption_chain()->key().get());
@@ -306,11 +307,8 @@ private:
        wxPreferencesEditor* _config_dialog;
        ScreensPanel* _screens;
        KDMTimingPanel* _timing;
-#ifdef DCPOMATIC_USE_OWN_PICKER
-       FilePicker* _dkdm;
-#else
-       wxFilePickerCtrl* _dkdm;
-#endif
+       /* I can't seem to clear the value in a wxFilePickerCtrl, so use our own */
+       FilePickerCtrl* _dkdm;
        wxStaticText* _annotation_text;
        wxStaticText* _content_title_text;
        wxStaticText* _issue_date;
index 4e2f97618452b5d12d27223dbe0846da589df6e6..8de1596a9dc725840f2ab2a6c9fb95fd202ceae1 100644 (file)
@@ -34,14 +34,16 @@ FilePickerCtrl::FilePickerCtrl (wxWindow* parent, wxString prompt, wxString wild
 {
        _sizer = new wxBoxSizer (wxHORIZONTAL);
 
-       _file = new wxStaticText (this, wxID_ANY, wxT ("This is the length of the file label"));
+        wxClientDC dc (parent);
+        wxSize size = dc.GetTextExtent (wxT ("This is the length of the file label it should be quite long"));
+        size.SetHeight (-1);
+
+       _file = new wxButton (this, wxID_ANY, _("(None)"), wxDefaultPosition, size, wxBU_LEFT);
        _sizer->Add (_file, 1, wxEXPAND | wxALL, 6);
-       _browse = new wxButton (this, wxID_ANY, _("Browse..."));
-       _sizer->Add (_browse, 0);
 
        SetSizerAndFit (_sizer);
 
-       _browse->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&FilePickerCtrl::browse_clicked, this));
+       _file->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&FilePickerCtrl::browse_clicked, this));
 }
 
 void
@@ -49,7 +51,11 @@ FilePickerCtrl::SetPath (wxString p)
 {
        _path = p;
 
-       _file->SetLabel (std_to_wx (filesystem::path (wx_to_std (_path)).leaf().string()));
+       if (!_path.IsEmpty ()) {
+               _file->SetLabel (std_to_wx (filesystem::path (wx_to_std (_path)).leaf().string()));
+       } else {
+               _file->SetLabel (_("(None)"));
+       }
 
        wxCommandEvent ev (wxEVT_COMMAND_FILEPICKER_CHANGED, wxID_ANY);
        GetEventHandler()->ProcessEvent (ev);
index 4c721af48d0a4d8a1fd18b978d0340102a4b81dc..51f11cf61ee8db7fe7c9e745afa13dc18afba83c 100644 (file)
@@ -30,8 +30,7 @@ public:
 private:
        void browse_clicked ();
 
-       wxStaticText* _file;
-       wxButton* _browse;
+       wxButton* _file;
        wxString _path;
        wxSizer* _sizer;
        wxString _prompt;
index a2e3cfe279673395129b27bf4583fe1b28841f0c..1a0c4d526804bd72e7f2bb6e47b113f0da815d53 100644 (file)
@@ -28,9 +28,19 @@ JobViewDialog::JobViewDialog (wxWindow* parent, wxString title, shared_ptr<Job>
        _view = new JobView (job, this, this, _table);
        layout ();
        SetMinSize (wxSize (960, -1));
+
+       Bind (wxEVT_TIMER, boost::bind (&JobViewDialog::periodic, this));
+       _timer.reset (new wxTimer (this));
+       _timer->Start (1000);
 }
 
 JobViewDialog::~JobViewDialog ()
 {
        delete _view;
 }
+
+void
+JobViewDialog::periodic ()
+{
+       _view->maybe_pulse ();
+}
index 0282d984863bb5425ce76b08ddc4e9d0631bde4e..4ec00e8961031309f4dbedf5d05221f47aa337b8 100644 (file)
@@ -30,5 +30,8 @@ public:
        ~JobViewDialog ();
 
 private:
+       void periodic ();
+
        JobView* _view;
+       boost::shared_ptr<wxTimer> _timer;
 };