From 6bfdd0f45927a4dfecf10e851b1902a899de5aa2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 9 Jan 2013 23:18:28 +0000 Subject: [PATCH] Some more KDM hacking. --- src/lib/film.cc | 12 ++++++++++++ src/lib/film.h | 8 ++++++++ src/tools/dvdomatic.cc | 10 +++++++++- src/wx/kdm_dialog.cc | 41 +++++++++++++++++++++++++++++++++++++++++ src/wx/kdm_dialog.h | 5 +++++ 5 files changed, 75 insertions(+), 1 deletion(-) diff --git a/src/lib/film.cc b/src/lib/film.cc index 6e49dd4ea..1b53b3d3e 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -1384,3 +1384,15 @@ Film::audio_stream () const return _external_audio_stream; } + +void +Film::make_kdms ( + list >, + boost::locale::date_time from, + boost::locale::date_time until, + string directory + ) const +{ + +} + diff --git a/src/lib/film.h b/src/lib/film.h index b2f57eac8..c9d99dae3 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -45,6 +45,7 @@ class Filter; class Log; class ExamineContentJob; class ExternalAudioStream; +class Screen; /** @class Film * @brief A representation of a video with sound. @@ -100,6 +101,13 @@ public: void set_dci_date_today (); + void make_kdms ( + std::list >, + boost::locale::date_time from, + boost::locale::date_time until, + std::string directory + ); + enum Property { NONE, NAME, diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index cfdd03a30..7d7adcce8 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -338,7 +338,15 @@ public: void jobs_make_kdms (wxCommandEvent &) { KDMDialog* d = new KDMDialog (this); - d->ShowModal (); + if (d->ShowModal () == wxID_OK) { + _film->make_kdms ( + d->screens (), + d->from (), + d->until (), + d->directory () + ); + } + d->Destroy (); } diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index 34004902b..43d904d90 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -321,3 +321,44 @@ KDMDialog::remove_screen_clicked (wxCommandEvent &) Config::instance()->write (); } + +list > +KDMDialog::screens () const +{ + list > s; + + list > > cinemas = selected_cinemas (); + for (list > >::iterator i = cinemas.begin(); i != cinemas.end(); ++i) { + for (list::iterator j = i->second->screens.begin(); j != i->second->screens.end(); ++j) { + s.push_back (*j); + } + } + + list > > screens = selected_screens (); + for (list > >::iterator i = screens.begin(); i != screens.end(); ++i) { + s.push_back (i->second); + } + + s.sort (); + s.uniq (); + + return s; +} + +boost::locale::date_time +KDMDialog::from () const +{ + +} + +boost::locale::date_time +KDMDialog::until () const +{ + +} + +string +KDMDialog::directory () const +{ + return wx_to_std (_folder->GetPath ()); +} diff --git a/src/wx/kdm_dialog.h b/src/wx/kdm_dialog.h index 99e260338..d161223a8 100644 --- a/src/wx/kdm_dialog.h +++ b/src/wx/kdm_dialog.h @@ -36,6 +36,11 @@ class KDMDialog : public wxDialog public: KDMDialog (wxWindow *); + std::list > screens () const; + boost::local::date_time from () const; + boost::local::date_time until () const; + std::string directory () const; + private: void add_cinema (boost::shared_ptr); void add_screen (boost::shared_ptr, boost::shared_ptr); -- 2.30.2