X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fdownload_certificate_dialog.cc;h=8f4720252f09975d0854b3cd614c682699335335;hb=8c63fa8715a408c12983d3fd7480781354bf7b24;hp=dfafee36c48a9455b271ea00ca7566cbd007a3ea;hpb=89abe02431bd8d885197883a3ffafdc8d836dce4;p=dcpomatic.git diff --git a/src/wx/download_certificate_dialog.cc b/src/wx/download_certificate_dialog.cc index dfafee36c..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,28 +18,36 @@ */ -#include "dolby_doremi_certificate_panel.h" + #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); - _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); @@ -47,12 +55,15 @@ DownloadCertificateDialog::DownloadCertificateDialog (wxWindow* parent) _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"))); - BOOST_FOREACH (DownloadCertificatePanel* i, _pages) { + for (auto i: _pages) { _notebook->AddPage (i, i->name(), true); } - wxSizer* buttons = CreateSeparatedButtonSizer (wxOK | wxCANCEL); + auto buttons = CreateSeparatedButtonSizer (wxOK | wxCANCEL); if (buttons) { sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder()); } @@ -65,41 +76,58 @@ DownloadCertificateDialog::DownloadCertificateDialog (wxWindow* parent) _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 (); } + 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) { setup_sensitivity (); + ev.Skip (); }