diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-03-02 12:07:29 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-03-02 19:22:59 +0100 |
| commit | 5950dd7e8de1a50f6b22760ab8811239dacd84cb (patch) | |
| tree | 614e238b5dc354cfdb3adee1e1550f27f901cd55 /src | |
| parent | e4537bfa1592674bc4838e4b9b2a72f0adeecc99 (diff) | |
Move Locations preferences to its own file.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/config_dialog.cc | 81 | ||||
| -rw-r--r-- | src/wx/config_dialog.h | 25 | ||||
| -rw-r--r-- | src/wx/locations_preferences_page.cc | 113 | ||||
| -rw-r--r-- | src/wx/locations_preferences_page.h | 55 | ||||
| -rw-r--r-- | src/wx/player_config_dialog.cc | 3 | ||||
| -rw-r--r-- | src/wx/playlist_editor_config_dialog.cc | 1 | ||||
| -rw-r--r-- | src/wx/wscript | 1 |
7 files changed, 172 insertions, 107 deletions
diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index a011dbe15..e36608fd0 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -490,84 +490,3 @@ SoundPage::get_sound_output() } -LocationsPage::LocationsPage(wxSize panel_size, int border) - : Page(panel_size, border) -{ - -} - -wxString -LocationsPage::GetName() const -{ - return _("Locations"); -} - -#ifdef DCPOMATIC_OSX -wxBitmap -LocationsPage::GetLargeIcon() const -{ - return wxBitmap(icon_path("locations"), wxBITMAP_TYPE_PNG); -} -#endif - -void -LocationsPage::setup() -{ - int r = 0; - - auto 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, char_to_wx(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, char_to_wx(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, char_to_wx(wxDirSelectorPromptStr), wxDefaultPosition, wxSize(300, -1)); - table->Add(_kdm_directory, wxGBPosition(r, 1)); - ++r; - - _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)); -} - -void -LocationsPage::config_changed() -{ - auto 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()); - } -} - -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())); -} diff --git a/src/wx/config_dialog.h b/src/wx/config_dialog.h index 2f1a363b7..d810ead5d 100644 --- a/src/wx/config_dialog.h +++ b/src/wx/config_dialog.h @@ -155,31 +155,6 @@ private: Button* _reset_to_default; }; - -class LocationsPage : public Page -{ -public: - LocationsPage(wxSize panel_size, int border); - - wxString GetName() const override; - -#ifdef DCPOMATIC_OSX - wxBitmap GetLargeIcon() const override; -#endif - -private: - void setup() override; - void config_changed() override; - void content_directory_changed(); - void playlist_directory_changed(); - void kdm_directory_changed(); - - wxDirPickerCtrl* _content_directory; - wxDirPickerCtrl* _playlist_directory; - wxDirPickerCtrl* _kdm_directory; -}; - - } } diff --git a/src/wx/locations_preferences_page.cc b/src/wx/locations_preferences_page.cc new file mode 100644 index 000000000..a992b2ed8 --- /dev/null +++ b/src/wx/locations_preferences_page.cc @@ -0,0 +1,113 @@ +/* + Copyright (C) 2025 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "locations_preferences_page.h" + + +using boost::bind; +#if BOOST_VERSION >= 106100 +using namespace boost::placeholders; +#endif +using namespace dcpomatic::preferences; + + + +LocationsPage::LocationsPage(wxSize panel_size, int border) + : Page(panel_size, border) +{ + +} + +wxString +LocationsPage::GetName() const +{ + return _("Locations"); +} + +#ifdef DCPOMATIC_OSX +wxBitmap +LocationsPage::GetLargeIcon() const +{ + return wxBitmap(icon_path("locations"), wxBITMAP_TYPE_PNG); +} +#endif + +void +LocationsPage::setup() +{ + int r = 0; + + auto 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, char_to_wx(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, char_to_wx(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, char_to_wx(wxDirSelectorPromptStr), wxDefaultPosition, wxSize(300, -1)); + table->Add(_kdm_directory, wxGBPosition(r, 1)); + ++r; + + _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)); +} + +void +LocationsPage::config_changed() +{ + auto 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()); + } +} + +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())); +} diff --git a/src/wx/locations_preferences_page.h b/src/wx/locations_preferences_page.h new file mode 100644 index 000000000..de73b8074 --- /dev/null +++ b/src/wx/locations_preferences_page.h @@ -0,0 +1,55 @@ +/* + Copyright (C) 2025 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "config_dialog.h" + + +namespace dcpomatic { +namespace preferences { + + +class LocationsPage : public Page +{ +public: + LocationsPage(wxSize panel_size, int border); + + wxString GetName() const override; + +#ifdef DCPOMATIC_OSX + wxBitmap GetLargeIcon() const override; +#endif + +private: + void setup() override; + void config_changed() override; + void content_directory_changed(); + void playlist_directory_changed(); + void kdm_directory_changed(); + + wxDirPickerCtrl* _content_directory; + wxDirPickerCtrl* _playlist_directory; + wxDirPickerCtrl* _kdm_directory; +}; + + +} +} + diff --git a/src/wx/player_config_dialog.cc b/src/wx/player_config_dialog.cc index 3f4c3f864..30b7ebfeb 100644 --- a/src/wx/player_config_dialog.cc +++ b/src/wx/player_config_dialog.cc @@ -31,8 +31,9 @@ #include "email_dialog.h" #include "file_picker_ctrl.h" #include "filter_dialog.h" -#include "make_chain_dialog.h" #include "keys_preferences_page.h" +#include "locations_preferences_page.h" +#include "make_chain_dialog.h" #include "nag_dialog.h" #include "name_format_editor.h" #include "server_dialog.h" diff --git a/src/wx/playlist_editor_config_dialog.cc b/src/wx/playlist_editor_config_dialog.cc index 84e7f537f..73b44ebe0 100644 --- a/src/wx/playlist_editor_config_dialog.cc +++ b/src/wx/playlist_editor_config_dialog.cc @@ -25,6 +25,7 @@ #include "config_dialog.h" +#include "locations_preferences_page.h" #include "playlist_editor_config_dialog.h" #include "wx_variant.h" diff --git a/src/wx/wscript b/src/wx/wscript index ab345f0ea..17cf1ad9e 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -117,6 +117,7 @@ sources = """ language_tag_dialog.cc language_tag_widget.cc load_config_from_zip_dialog.cc + locations_preferences_page.cc kdm_choice.cc make_chain_dialog.cc markers.cc |
