From: Carl Hetherington Date: Mon, 5 Oct 2015 22:36:57 +0000 (+0100) Subject: Split KDM from/until into KDMTimingPanel. X-Git-Tag: v2.4.6~56 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=bdd2c3396318d64a7c1c2ad870e1ba7a1352c16d;p=dcpomatic.git Split KDM from/until into KDMTimingPanel. --- diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index 836480808..e9ad96b8d 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -22,6 +22,7 @@ #include "screen_dialog.h" #include "wx_util.h" #include "screens_panel.h" +#include "kdm_timing_panel.h" #include "lib/cinema.h" #include "lib/config.h" #include "lib/film.h" @@ -33,8 +34,6 @@ #include #endif #include -#include -#include #include #include #include @@ -69,27 +68,8 @@ KDMDialog::KDMDialog (wxWindow* parent, boost::shared_ptr film) h = new wxStaticText (this, wxID_ANY, S_("KDM|Timing")); h->SetFont (subheading_font); vertical->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxTOP, DCPOMATIC_SIZER_Y_GAP * 2); - - wxFlexGridSizer* table = new wxFlexGridSizer (3, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); - add_label_to_sizer (table, this, _("From"), true); - wxDateTime from; - from.SetToCurrent (); - _from_date = new wxDatePickerCtrl (this, wxID_ANY, from); - table->Add (_from_date, 1, wxEXPAND); - _from_time = new wxTimePickerCtrl (this, wxID_ANY, from); - table->Add (_from_time, 1, wxEXPAND); - - add_label_to_sizer (table, this, _("Until"), true); - wxDateTime to = from; - /* 1 week from now */ - to.Add (wxDateSpan (0, 0, 1, 0)); - _until_date = new wxDatePickerCtrl (this, wxID_ANY, to); - table->Add (_until_date, 1, wxEXPAND); - _until_time = new wxTimePickerCtrl (this, wxID_ANY, to); - table->Add (_until_time, 1, wxEXPAND); - - vertical->Add (table, 0, wxEXPAND | wxTOP, DCPOMATIC_SIZER_GAP); - + _timing = new KDMTimingPanel (this); + vertical->Add (_timing); /* Sub-heading: CPL */ h = new wxStaticText (this, wxID_ANY, _("CPL")); @@ -106,7 +86,7 @@ KDMDialog::KDMDialog (wxWindow* parent, boost::shared_ptr film) vertical->Add (s, 0, wxEXPAND | wxTOP, DCPOMATIC_SIZER_GAP + 2); /* CPL details */ - table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); + wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); add_label_to_sizer (table, this, _("DCP directory"), true); _dcp_directory = new wxStaticText (this, wxID_ANY, ""); table->Add (_dcp_directory); @@ -202,29 +182,6 @@ KDMDialog::setup_sensitivity () _folder->Enable (_write_to->GetValue ()); } -boost::posix_time::ptime -KDMDialog::from () const -{ - return posix_time (_from_date, _from_time); -} - -boost::posix_time::ptime -KDMDialog::posix_time (wxDatePickerCtrl* date_picker, wxTimePickerCtrl* time_picker) -{ - wxDateTime const date = date_picker->GetValue (); - wxDateTime const time = time_picker->GetValue (); - return boost::posix_time::ptime ( - boost::gregorian::date (date.GetYear(), date.GetMonth() + 1, date.GetDay()), - boost::posix_time::time_duration (time.GetHour(), time.GetMinute(), time.GetSecond()) - ); -} - -boost::posix_time::ptime -KDMDialog::until () const -{ - return posix_time (_until_date, _until_time); -} - boost::filesystem::path KDMDialog::cpl () const { @@ -322,3 +279,15 @@ KDMDialog::screens () const { return _screens->screens (); } + +boost::posix_time::ptime +KDMDialog::from () const +{ + return _timing->from (); +} + +boost::posix_time::ptime +KDMDialog::until () const +{ + return _timing->until (); +} diff --git a/src/wx/kdm_dialog.h b/src/wx/kdm_dialog.h index 5588aa9f2..365d05a99 100644 --- a/src/wx/kdm_dialog.h +++ b/src/wx/kdm_dialog.h @@ -26,8 +26,6 @@ #include class wxTreeCtrl; -class wxDatePickerCtrl; -class wxTimePickerCtrl; class wxDirPickerCtrl; class DirPickerCtrl; @@ -35,6 +33,7 @@ class Cinema; class Screen; class Film; class ScreensPanel; +class KDMTimingPanel; struct CPLSummary; class KDMDialog : public wxDialog @@ -43,7 +42,6 @@ public: KDMDialog (wxWindow *, boost::shared_ptr); std::list > screens () const; - /** @return KDM from time in local time */ boost::posix_time::ptime from () const; /** @return KDM until time in local time */ @@ -60,13 +58,8 @@ private: void update_cpl_summary (); void cpl_browse_clicked (); - static boost::posix_time::ptime posix_time (wxDatePickerCtrl *, wxTimePickerCtrl *); - ScreensPanel* _screens; - wxDatePickerCtrl* _from_date; - wxDatePickerCtrl* _until_date; - wxTimePickerCtrl* _from_time; - wxTimePickerCtrl* _until_time; + KDMTimingPanel* _timing; wxChoice* _cpl; wxButton* _cpl_browse; wxStaticText* _dcp_directory; diff --git a/src/wx/kdm_timing_panel.cc b/src/wx/kdm_timing_panel.cc new file mode 100644 index 000000000..02b4a9426 --- /dev/null +++ b/src/wx/kdm_timing_panel.cc @@ -0,0 +1,70 @@ +/* + Copyright (C) 2015 Carl Hetherington + + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "kdm_timing_panel.h" +#include "wx_util.h" +#include +#include + +KDMTimingPanel::KDMTimingPanel (wxWindow* parent) + : wxPanel (parent, wxID_ANY) +{ + wxFlexGridSizer* table = new wxFlexGridSizer (3, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); + add_label_to_sizer (table, this, _("From"), true); + wxDateTime from; + from.SetToCurrent (); + _from_date = new wxDatePickerCtrl (this, wxID_ANY, from); + table->Add (_from_date, 1, wxEXPAND); + _from_time = new wxTimePickerCtrl (this, wxID_ANY, from); + table->Add (_from_time, 1, wxEXPAND); + + add_label_to_sizer (table, this, _("Until"), true); + wxDateTime to = from; + /* 1 week from now */ + to.Add (wxDateSpan (0, 0, 1, 0)); + _until_date = new wxDatePickerCtrl (this, wxID_ANY, to); + table->Add (_until_date, 1, wxEXPAND); + _until_time = new wxTimePickerCtrl (this, wxID_ANY, to); + table->Add (_until_time, 1, wxEXPAND); + + SetSizer (table); +} + +boost::posix_time::ptime +KDMTimingPanel::from () const +{ + return posix_time (_from_date, _from_time); +} + +boost::posix_time::ptime +KDMTimingPanel::posix_time (wxDatePickerCtrl* date_picker, wxTimePickerCtrl* time_picker) +{ + wxDateTime const date = date_picker->GetValue (); + wxDateTime const time = time_picker->GetValue (); + return boost::posix_time::ptime ( + boost::gregorian::date (date.GetYear(), date.GetMonth() + 1, date.GetDay()), + boost::posix_time::time_duration (time.GetHour(), time.GetMinute(), time.GetSecond()) + ); +} + +boost::posix_time::ptime +KDMTimingPanel::until () const +{ + return posix_time (_until_date, _until_time); +} diff --git a/src/wx/kdm_timing_panel.h b/src/wx/kdm_timing_panel.h new file mode 100644 index 000000000..7e607296f --- /dev/null +++ b/src/wx/kdm_timing_panel.h @@ -0,0 +1,43 @@ +/* + Copyright (C) 2015 Carl Hetherington + + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include +#include + +class wxDatePickerCtrl; +class wxTimePickerCtrl; + +class KDMTimingPanel : public wxPanel +{ +public: + KDMTimingPanel (wxWindow* parent); + + /** @return KDM from time in local time */ + boost::posix_time::ptime from () const; + /** @return KDM until time in local time */ + boost::posix_time::ptime until () const; + +private: + static boost::posix_time::ptime posix_time (wxDatePickerCtrl *, wxTimePickerCtrl *); + + wxDatePickerCtrl* _from_date; + wxDatePickerCtrl* _until_date; + wxTimePickerCtrl* _from_time; + wxTimePickerCtrl* _until_time; +}; diff --git a/src/wx/wscript b/src/wx/wscript index 094962ed5..551ec20f9 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -54,6 +54,7 @@ sources = """ hints_dialog.cc job_manager_view.cc kdm_dialog.cc + kdm_timing_panel.cc key_dialog.cc make_chain_dialog.cc new_film_dialog.cc