Add <PlayerRestrictedMenus> option to config.xml (#2725).
authorCarl Hetherington <cth@carlh.net>
Fri, 8 Mar 2024 22:24:31 +0000 (23:24 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 8 Mar 2024 22:24:32 +0000 (23:24 +0100)
This hides all player menus except "File".

src/lib/config.cc
src/lib/config.h
src/tools/dcpomatic_player.cc

index 8dce6237a0f2b9339abea394aa852fed2861a77f..56870145a6b5e62c873446a2d8877e80d9855efa 100644 (file)
@@ -177,6 +177,7 @@ Config::set_defaults ()
        _gdc_username = optional<string>();
        _gdc_password = optional<string>();
        _player_mode = PLAYER_MODE_WINDOW;
+       _player_restricted_menus = false;
        _image_display = 0;
        _video_view_type = VIDEO_VIEW_SIMPLE;
        _respect_kdm_validity_periods = true;
@@ -592,6 +593,8 @@ try
                _player_mode = PLAYER_MODE_DUAL;
        }
 
+       _player_restricted_menus = f.optional_bool_child("PlayerRestrictedMenus").get_value_or(false);
+
        _image_display = f.optional_number_child<int>("ImageDisplay").get_value_or(0);
        auto vc = f.optional_string_child("VideoViewType");
        if (vc && *vc == "opengl") {
@@ -1075,6 +1078,10 @@ Config::write_config () const
                break;
        }
 
+       if (_player_restricted_menus) {
+               root->add_child("PlayerRestrictedMenus")->add_child_text("1");
+       }
+
        /* [XML] ImageDisplay Screen number to put image on in dual-screen player mode. */
        root->add_child("ImageDisplay")->add_child_text(raw_convert<string>(_image_display));
        switch (_video_view_type) {
index 74b4316d2740086a890fc378769104a43303d7d4..a6383055264698586ba22adbaacfc4e915eb1af5 100644 (file)
@@ -534,6 +534,10 @@ public:
                return _player_mode;
        }
 
+       bool player_restricted_menus() const {
+               return _player_restricted_menus;
+       }
+
        int image_display () const {
                return _image_display;
        }
@@ -1449,6 +1453,7 @@ private:
        boost::optional<std::string> _gdc_username;
        boost::optional<std::string> _gdc_password;
        PlayerMode _player_mode;
+       bool _player_restricted_menus = false;
        int _image_display;
        VideoViewType _video_view_type;
        bool _respect_kdm_validity_periods;
index e658395211c5b040cce4b191518b641ea477ab9d..a68cc074ae61a8d7baf83cf35ec5b008b4429025 100644 (file)
@@ -616,12 +616,14 @@ private:
                help->Append (ID_help_report_a_problem, _("Report a problem..."));
 
                m->Append (_file_menu, _("&File"));
+               if (!Config::instance()->player_restricted_menus()) {
 #ifndef __WXOSX__
-               m->Append (edit, _("&Edit"));
+                       m->Append (edit, _("&Edit"));
 #endif
-               m->Append (view, _("&View"));
-               m->Append (tools, _("&Tools"));
-               m->Append (help, _("&Help"));
+                       m->Append (view, _("&View"));
+                       m->Append (tools, _("&Tools"));
+                       m->Append (help, _("&Help"));
+               }
        }
 
        void file_open ()