X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fconfig_dialog.cc;h=85ff0a9a3361efd9d5a3d3f72850a15288aeb309;hb=08f96200aacf9f91ef3e3f5b80224a5b2437f279;hp=55d387528e9d42c55a0974d99fe094b2428bbf86;hpb=0de70cc4c83ebc5e4a8eb620b5d46a2aad2046b7;p=dcpomatic.git diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 55d387528..85ff0a9a3 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -711,7 +711,7 @@ KeysPage::setup () } wxButton* signing_advanced = new Button (_panel, _("Advanced...")); - sizer->Add (signing_advanced, 0, wxLEFT, _border); + sizer->Add (signing_advanced, 0, wxLEFT | wxBOTTOM, _border); signing_advanced->Bind (wxEVT_BUTTON, bind (&KeysPage::signing_advanced, this)); } @@ -1029,3 +1029,119 @@ SoundPage::get_sound_output () return wx_to_std (_sound_output->GetString (sel)); } + + +LocationsPage::LocationsPage (wxSize panel_size, int border) + : StandardPage (panel_size, border) +{ + +} + +wxString +LocationsPage::GetName () const +{ + return _("Locations"); +} + +#ifdef DCPOMATIC_OSX +wxBitmap +LocationsPage::GetLargeIcon () const +{ + return wxBitmap ("locations", wxBITMAP_TYPE_PNG_RESOURCE); +} +#endif + +void +LocationsPage::setup () +{ + + int r = 0; + + wxGridBagSizer* table = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); + _panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border); + + add_label_to_sizer (table, _panel, _("Content directory"), true, wxGBPosition (r, 0)); + _content_directory = new wxDirPickerCtrl (_panel, wxID_ANY, wxEmptyString, wxDirSelectorPromptStr, wxDefaultPosition, wxSize (300, -1)); + table->Add (_content_directory, wxGBPosition (r, 1)); + ++r; + + add_label_to_sizer (table, _panel, _("Playlist directory"), true, wxGBPosition (r, 0)); + _playlist_directory = new wxDirPickerCtrl (_panel, wxID_ANY, wxEmptyString, wxDirSelectorPromptStr, wxDefaultPosition, wxSize (300, -1)); + table->Add (_playlist_directory, wxGBPosition (r, 1)); + ++r; + + add_label_to_sizer (table, _panel, _("KDM directory"), true, wxGBPosition (r, 0)); + _kdm_directory = new wxDirPickerCtrl (_panel, wxID_ANY, wxEmptyString, wxDirSelectorPromptStr, wxDefaultPosition, wxSize (300, -1)); + table->Add (_kdm_directory, wxGBPosition (r, 1)); + ++r; + +#ifdef DCPOMATIC_VARIANT_SWAROOP + add_label_to_sizer (table, _panel, _("Background image"), true, wxGBPosition (r, 0)); + _background_image = new FilePickerCtrl (_panel, _("Select image file"), "*.png;*.jpg;*.jpeg;*.tif;*.tiff", true, false); + table->Add (_background_image, wxGBPosition (r, 1)); + ++r; +#endif + + _content_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&LocationsPage::content_directory_changed, this)); + _playlist_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&LocationsPage::playlist_directory_changed, this)); + _kdm_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&LocationsPage::kdm_directory_changed, this)); +#ifdef DCPOMATIC_VARIANT_SWAROOP + _background_image->Bind (wxEVT_FILEPICKER_CHANGED, bind(&LocationsPage::background_image_changed, this)); +#endif +} + +void +LocationsPage::config_changed () +{ + Config* config = Config::instance (); + + if (config->player_content_directory()) { + checked_set (_content_directory, *config->player_content_directory()); + } + if (config->player_playlist_directory()) { + checked_set (_playlist_directory, *config->player_playlist_directory()); + } + if (config->player_kdm_directory()) { + checked_set (_kdm_directory, *config->player_kdm_directory()); + } +#ifdef DCPOMATIC_VARIANT_SWAROOP + if (config->player_background_image()) { + checked_set (_background_image, *config->player_background_image()); + } +#endif +} + +void +LocationsPage::content_directory_changed () +{ + Config::instance()->set_player_content_directory(wx_to_std(_content_directory->GetPath())); +} + +void +LocationsPage::playlist_directory_changed () +{ + Config::instance()->set_player_playlist_directory(wx_to_std(_playlist_directory->GetPath())); +} + +void +LocationsPage::kdm_directory_changed () +{ + Config::instance()->set_player_kdm_directory(wx_to_std(_kdm_directory->GetPath())); +} + +#ifdef DCPOMATIC_VARIANT_SWAROOP +void +LocationsPage::background_image_changed () +{ + boost::filesystem::path const f = wx_to_std(_background_image->GetPath()); + if (!boost::filesystem::is_regular_file(f) || !wxImage::CanRead(std_to_wx(f.string()))) { + error_dialog (0, _("Could not load image file.")); + if (Config::instance()->player_background_image()) { + checked_set (_background_image, *Config::instance()->player_background_image()); + } + return; + } + + Config::instance()->set_player_background_image(f); +} +#endif