summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-10-07 19:34:21 +0100
committerCarl Hetherington <cth@carlh.net>2015-10-09 13:44:58 +0100
commitdd7ba98abf729061e30c0b0fbb4cb6fd0485f16a (patch)
treebef392fe07cd7eca5c9e51ed317d0923d0db5f84 /src
parentf29f405000752ad568de1e304640a4edac8214bc (diff)
Various JobView fixes.
Diffstat (limited to 'src')
-rw-r--r--src/tools/dcpomatic_kdm.cc18
-rw-r--r--src/wx/file_picker_ctrl.cc16
-rw-r--r--src/wx/file_picker_ctrl.h3
-rw-r--r--src/wx/job_view_dialog.cc10
-rw-r--r--src/wx/job_view_dialog.h3
5 files changed, 33 insertions, 17 deletions
diff --git a/src/tools/dcpomatic_kdm.cc b/src/tools/dcpomatic_kdm.cc
index dd2c09bb0..bc58be914 100644
--- a/src/tools/dcpomatic_kdm.cc
+++ b/src/tools/dcpomatic_kdm.cc
@@ -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;
diff --git a/src/wx/file_picker_ctrl.cc b/src/wx/file_picker_ctrl.cc
index 4e2f97618..8de1596a9 100644
--- a/src/wx/file_picker_ctrl.cc
+++ b/src/wx/file_picker_ctrl.cc
@@ -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);
diff --git a/src/wx/file_picker_ctrl.h b/src/wx/file_picker_ctrl.h
index 4c721af48..51f11cf61 100644
--- a/src/wx/file_picker_ctrl.h
+++ b/src/wx/file_picker_ctrl.h
@@ -30,8 +30,7 @@ public:
private:
void browse_clicked ();
- wxStaticText* _file;
- wxButton* _browse;
+ wxButton* _file;
wxString _path;
wxSizer* _sizer;
wxString _prompt;
diff --git a/src/wx/job_view_dialog.cc b/src/wx/job_view_dialog.cc
index a2e3cfe27..1a0c4d526 100644
--- a/src/wx/job_view_dialog.cc
+++ b/src/wx/job_view_dialog.cc
@@ -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 ();
+}
diff --git a/src/wx/job_view_dialog.h b/src/wx/job_view_dialog.h
index 0282d9848..4ec00e896 100644
--- a/src/wx/job_view_dialog.h
+++ b/src/wx/job_view_dialog.h
@@ -30,5 +30,8 @@ public:
~JobViewDialog ();
private:
+ void periodic ();
+
JobView* _view;
+ boost::shared_ptr<wxTimer> _timer;
};