X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fmetadata_dialog.h;h=b77b14a996216746d37d719834f3e78eba425df2;hb=84107d835469974b514d6cab702a770e11a9cd75;hp=892aa89dfb3ccd14dddc81c0a05a4d22ab40e415;hpb=3dfe3b92df03eee932f3c92336197559c11a5913;p=dcpomatic.git diff --git a/src/wx/metadata_dialog.h b/src/wx/metadata_dialog.h index 892aa89df..b77b14a99 100644 --- a/src/wx/metadata_dialog.h +++ b/src/wx/metadata_dialog.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2019 Carl Hetherington + Copyright (C) 2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,27 +18,91 @@ */ + +#ifndef DCPOMATIC_METADATA_DIALOG_H +#define DCPOMATIC_METADATA_DIALOG_H + + #include "editable_list.h" -#include +#include "lib/change_signaller.h" +#include "lib/film.h" +#include "lib/weak_film.h" +#include +LIBDCP_DISABLE_WARNINGS #include -#include -#include -#include +LIBDCP_ENABLE_WARNINGS +#include + -class Film; +class Button; +class CheckBox; +class Choice; +class LanguageTagWidget; class RatingDialog; +class RegionSubtagWidget; +class wxSpinCtrlDouble; -class MetadataDialog : public wxDialog + +class MetadataDialog : public wxDialog, public WeakFilm { public: - MetadataDialog (wxWindow* parent, boost::weak_ptr film); + MetadataDialog (wxWindow* parent, std::weak_ptr film); + + virtual void setup (); + +protected: + virtual void setup_standard (wxPanel*, wxSizer*); + virtual void setup_advanced (wxPanel*, wxSizer*); + virtual void film_changed (ChangeType type, Film::Property property); + virtual void setup_sensitivity (); + + EditableList* _ratings; + std::unordered_map _rating_system_agency_to_name; private: + void sign_language_video_language_changed (); + void release_territory_changed(boost::optional tag); + void enable_release_territory_changed (); + void facility_changed (); + void enable_facility_changed (); + void studio_changed (); + void enable_studio_changed (); + void temp_version_changed (); + void pre_release_changed (); + void red_band_changed (); + void two_d_version_of_three_d_changed (); + void chain_changed (); + void enable_chain_changed (); + void enable_luminance_changed (); + void luminance_changed (); std::vector ratings () const; void set_ratings (std::vector r); - void content_version_changed (); - boost::weak_ptr _film; - EditableList* _ratings; - wxTextCtrl* _content_version; + CheckBox* _enable_release_territory; + /** The current release territory displayed in the UI; since we can't easily convert + * the string in _release_territory_text to a RegionSubtag we just store the RegionSubtag + * alongside. + */ + boost::optional _release_territory_copy; + RegionSubtagWidget* _release_territory; + LanguageTagWidget* _sign_language_video_language = nullptr; + CheckBox* _enable_facility; + wxTextCtrl* _facility; + CheckBox* _enable_chain; + wxTextCtrl* _chain; + CheckBox* _enable_studio; + wxTextCtrl* _studio; + CheckBox* _temp_version; + CheckBox* _pre_release; + CheckBox* _red_band; + CheckBox* _two_d_version_of_three_d; + CheckBox* _enable_luminance; + wxSpinCtrlDouble* _luminance_value; + Choice* _luminance_unit; + + boost::signals2::scoped_connection _film_changed_connection; }; + + +#endif +