X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fwx_util.cc;h=933d303d145bb8e531b75c5216bcddaac8812a35;hb=716f05c1301bc5cd811df687875cafaf0d37ffd2;hp=493743d4afebb92eb7d64e8b562fa60f0ed4795d;hpb=d311043bf3c1e3e7f41b314f7ab7c91ed7e5aa7f;p=dcpomatic.git diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index 493743d4a..933d303d1 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -25,7 +25,9 @@ #include "file_picker_ctrl.h" +#include "language_tag_widget.h" #include "password_entry.h" +#include "region_subtag_widget.h" #include "static_text.h" #include "wx_util.h" #include "lib/config.h" @@ -34,15 +36,15 @@ #include "lib/job_manager.h" #include "lib/util.h" #include "lib/version.h" -#include "lib/warnings.h" #include -DCPOMATIC_DISABLE_WARNINGS +#include +LIBDCP_DISABLE_WARNINGS #include #include #include #include #include -DCPOMATIC_ENABLE_WARNINGS +LIBDCP_ENABLE_WARNINGS #include @@ -101,7 +103,7 @@ add_label_to_sizer (wxSizer* s, wxWindow* p, wxString t, bool left, int prop, in setup_osx_flags (s, left, flags); #endif auto m = create_label (p, t, left); - s->Add (m, prop, flags, 6); + s->Add (m, prop, flags, DCPOMATIC_SIZER_GAP); return m; } @@ -116,7 +118,7 @@ add_label_to_sizer (wxSizer* s, wxStaticText* t, bool, int prop, int flags) #ifdef __WXOSX__ setup_osx_flags (s, left, flags); #endif - s->Add (t, prop, flags, 6); + s->Add (t, prop, flags, DCPOMATIC_SIZER_GAP); return t; } @@ -304,7 +306,7 @@ checked_set (wxChoice* widget, vector> items) current.push_back ( make_pair( wx_to_std(widget->GetString(i)), - string_client_data(widget->GetClientObject(i)) + widget->GetClientData() ? string_client_data(widget->GetClientObject(i)) : "" ) ); } @@ -383,6 +385,33 @@ checked_set (wxRadioButton* widget, bool value) } +void +checked_set(LanguageTagWidget* widget, dcp::LanguageTag value) +{ + if (widget->get() != value) { + widget->set(value); + } +} + + +void +checked_set(LanguageTagWidget* widget, optional value) +{ + if (widget->get() != value) { + widget->set(value); + } +} + + +void +checked_set(RegionSubtagWidget* widget, optional value) +{ + if (widget->get() != value) { + widget->set(value); + } +} + + void dcpomatic_setup_i18n () { @@ -517,7 +546,7 @@ maybe_show_splash () wxSplashScreen* splash = nullptr; try { wxBitmap bitmap; - if (bitmap.LoadFile(bitmap_path("splash"), wxBITMAP_TYPE_PNG)) { + if (bitmap.LoadFile(bitmap_path("splash.png"), wxBITMAP_TYPE_PNG)) { { /* This wxMemoryDC must be destroyed before bitmap can be used elsewhere */ wxMemoryDC dc(bitmap); @@ -646,11 +675,18 @@ bitmap_path (string name) base = resources_path(); #endif - auto p = base / String::compose("%1.png", name); + auto p = base / name; return std_to_wx (p.string()); } +wxString +icon_path(string name) +{ + return gui_is_dark() ? bitmap_path(String::compose("%1_white.png", name)) : bitmap_path(String::compose("%1_black.png", name)); +} + + wxSize small_button_size (wxWindow* parent, wxString text) { @@ -700,3 +736,28 @@ search_ctrl_height () #endif } + +void +report_config_load_failure(wxWindow* parent, Config::LoadFailure what) +{ + switch (what) { + case Config::LoadFailure::CONFIG: + message_dialog(parent, _("The existing configuration failed to load. Default values will be used instead. These may take a short time to create.")); + break; + case Config::LoadFailure::CINEMAS: + message_dialog( + parent, + _(wxString::Format("The cinemas list for creating KDMs (cinemas.xml) failed to load. Please check the numbered backup files in %s", + std_to_wx(Config::instance()->cinemas_file().parent_path().string()))) + ); + break; + case Config::LoadFailure::DKDM_RECIPIENTS: + message_dialog( + parent, + _(wxString::Format("The recipients list for creating DKDMs (dkdm_recipients.xml) failed to load. Please check the numbered backup files in %s", + std_to_wx(Config::instance()->dkdm_recipients_file().parent_path().string()))) + ); + break; + } +} +