X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fdownload_certificate_dialog.cc;h=8f4720252f09975d0854b3cd614c682699335335;hb=865316f0129c85cdd0248b87502fe97dec94b3f0;hp=e18723a4a08213a4e59e42c0431b592a8393e5ba;hpb=ad5c8849fc3ef5aad88201f28db5474a60db4436;p=dcpomatic.git diff --git a/src/wx/download_certificate_dialog.cc b/src/wx/download_certificate_dialog.cc index e18723a4a..8f4720252 100644 --- a/src/wx/download_certificate_dialog.cc +++ b/src/wx/download_certificate_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2015 Carl Hetherington + Copyright (C) 2014-2022 Carl Hetherington This file is part of DCP-o-matic. @@ -18,35 +18,52 @@ */ + +#include "barco_alchemy_certificate_panel.h" +#include "christie_certificate_panel.h" +#include "dcpomatic_button.h" #include "dolby_doremi_certificate_panel.h" #include "download_certificate_dialog.h" +#include "gdc_certificate_panel.h" +#include "qube_certificate_panel.h" +#include "static_text.h" #include "wx_util.h" + +using std::string; using boost::optional; + DownloadCertificateDialog::DownloadCertificateDialog (wxWindow* parent) : wxDialog (parent, wxID_ANY, _("Download certificate")) { - wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); + auto sizer = new wxBoxSizer (wxVERTICAL); _notebook = new wxNotebook (this, wxID_ANY); sizer->Add (_notebook, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER); - _pages.push_back (new DolbyDoremiCertificatePanel (_notebook, this)); - _setup.push_back (false); - _notebook->AddPage (_pages.back(), _("Dolby / Doremi"), true); - - _download = new wxButton (this, wxID_ANY, _("Download")); + _download = new Button (this, _("Download")); sizer->Add (_download, 0, wxEXPAND | wxALL, DCPOMATIC_SIZER_GAP); - _message = new wxStaticText (this, wxID_ANY, wxT ("")); + _message = new StaticText (this, wxT ("")); sizer->Add (_message, 0, wxALL, DCPOMATIC_SIZER_GAP); - wxFont font = _message->GetFont(); + auto font = _message->GetFont(); font.SetStyle (wxFONTSTYLE_ITALIC); font.SetPointSize (font.GetPointSize() - 1); _message->SetFont (font); - wxSizer* buttons = CreateSeparatedButtonSizer (wxOK | wxCANCEL); + _pages.push_back (new DolbyDoremiCertificatePanel (this)); + _pages.push_back (new BarcoAlchemyCertificatePanel (this)); + _pages.push_back (new ChristieCertificatePanel (this)); + _pages.push_back (new GDCCertificatePanel (this)); + _pages.push_back (new QubeCertificatePanel (this, N_("QXI"))); + _pages.push_back (new QubeCertificatePanel (this, N_("QXPD"))); + + for (auto i: _pages) { + _notebook->AddPage (i, i->name(), true); + } + + auto buttons = CreateSeparatedButtonSizer (wxOK | wxCANCEL); if (buttons) { sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder()); } @@ -57,49 +74,60 @@ DownloadCertificateDialog::DownloadCertificateDialog (wxWindow* parent) _download->Bind (wxEVT_BUTTON, boost::bind (&DownloadCertificateDialog::download, this)); _download->Enable (false); - wxNotebookEvent ev; - page_changed (ev); + _notebook->SetSelection (0); + + SetMinSize (wxSize(640, -1)); + + setup_sensitivity (); } + DownloadCertificateDialog::~DownloadCertificateDialog () { _notebook->Unbind (wxEVT_NOTEBOOK_PAGE_CHANGED, &DownloadCertificateDialog::page_changed, this); } + void DownloadCertificateDialog::download () { - _pages[_notebook->GetSelection()]->download (_message); + _pages[_notebook->GetSelection()]->download (); } + dcp::Certificate DownloadCertificateDialog::certificate () const { - optional c = _pages[_notebook->GetSelection()]->certificate (); + auto c = _pages[_notebook->GetSelection()]->certificate (); DCPOMATIC_ASSERT (c); - return c.get (); + return *c; +} + + +string +DownloadCertificateDialog::url () const +{ + auto u = _pages[_notebook->GetSelection()]->url(); + DCPOMATIC_ASSERT (u); + return *u; } + void DownloadCertificateDialog::setup_sensitivity () { - DownloadCertificatePanel* p = _pages[_notebook->GetSelection()]; + auto p = _pages[_notebook->GetSelection()]; _download->Enable (p->ready_to_download ()); - wxButton* ok = dynamic_cast (FindWindowById (wxID_OK, this)); + auto ok = dynamic_cast (FindWindowById (wxID_OK, this)); if (ok) { ok->Enable (static_cast(p->certificate ())); } - } + void -DownloadCertificateDialog::page_changed (wxNotebookEvent &) +DownloadCertificateDialog::page_changed (wxNotebookEvent& ev) { - int const n = _notebook->GetSelection(); - if (!_setup[n]) { - _pages[n]->setup (); - _setup[n] = true; - } - setup_sensitivity (); + ev.Skip (); }