cui/source/options/optopencl.cxx       |    3 
 cui/source/options/optopencl.hxx       |    1 
 cui/source/options/personalization.cxx |   12 +
 cui/source/options/personalization.hxx |    2 
 cui/uiconfig/ui/optopenclpage.ui       |   70 +++++++----
 cui/uiconfig/ui/personalization_tab.ui |  206 +++++++++++++++++++--------------
 6 files changed, 189 insertions(+), 105 deletions(-)

New commits:
commit ee368cc3f97886b9574e22fdf8a15c8225e785d5
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Wed Oct 25 14:07:56 2023 +0200
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Thu Oct 26 09:22:53 2023 +0200

    tdf#157843 - UI: Part 8 - Unify lockdown behavior of Options dialog
    
    for OpenCL Page.
    
    Change-Id: I94c4a1afc7703de378ae65c0173d178954f647a9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158424
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>

diff --git a/cui/source/options/optopencl.cxx b/cui/source/options/optopencl.cxx
index c3e154083c97..129cbc1b01b7 100644
--- a/cui/source/options/optopencl.cxx
+++ b/cui/source/options/optopencl.cxx
@@ -30,11 +30,13 @@ SvxOpenCLTabPage::SvxOpenCLTabPage(weld::Container* pPage, 
weld::DialogControlle
     : SfxTabPage(pPage, pController, "cui/ui/optopenclpage.ui", 
"OptOpenCLPage", &rSet)
     , maConfig(OpenCLConfig::get())
     , mxUseOpenCL(m_xBuilder->weld_check_button("useopencl"))
+    , mxUseOpenImg(m_xBuilder->weld_widget("lockuseopencl"))
     , mxOclUsed(m_xBuilder->weld_label("openclused"))
     , mxOclNotUsed(m_xBuilder->weld_label("openclnotused"))
 {
     mxUseOpenCL->set_active(maConfig.mbUseOpenCL);
     
mxUseOpenCL->set_sensitive(!officecfg::Office::Common::Misc::UseOpenCL::isReadOnly());
+    
mxUseOpenImg->set_visible(officecfg::Office::Common::Misc::UseOpenCL::isReadOnly());
 
     bool bCLUsed = openclwrapper::GPUEnv::isOpenCLEnabled();
     mxOclUsed->set_visible(bCLUsed);
@@ -97,6 +99,7 @@ void SvxOpenCLTabPage::Reset( const SfxItemSet* )
     maConfig = OpenCLConfig::get();
 
     mxUseOpenCL->set_active(maConfig.mbUseOpenCL);
+    
mxUseOpenImg->set_visible(officecfg::Office::Common::Misc::UseOpenCL::isReadOnly());
     mxUseOpenCL->save_state();
 }
 
diff --git a/cui/source/options/optopencl.hxx b/cui/source/options/optopencl.hxx
index 1fce5e3ea9aa..e6414245da8f 100644
--- a/cui/source/options/optopencl.hxx
+++ b/cui/source/options/optopencl.hxx
@@ -27,6 +27,7 @@ private:
     OpenCLConfig maConfig;
 
     std::unique_ptr<weld::CheckButton> mxUseOpenCL;
+    std::unique_ptr<weld::Widget> mxUseOpenImg;
     std::unique_ptr<weld::Label> mxOclUsed;
     std::unique_ptr<weld::Label> mxOclNotUsed;
 
diff --git a/cui/uiconfig/ui/optopenclpage.ui b/cui/uiconfig/ui/optopenclpage.ui
index ac5cac268df2..8014e3711e1c 100644
--- a/cui/uiconfig/ui/optopenclpage.ui
+++ b/cui/uiconfig/ui/optopenclpage.ui
@@ -1,32 +1,58 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.38.2 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.20"/>
   <object class="GtkFrame" id="OptOpenCLPage">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
+    <property name="can-focus">False</property>
     <property name="hexpand">True</property>
-    <property name="border_width">6</property>
-    <property name="label_xalign">0</property>
-    <property name="shadow_type">none</property>
+    <property name="border-width">6</property>
+    <property name="label-xalign">0</property>
+    <property name="shadow-type">none</property>
     <child>
       <object class="GtkBox" id="denylistbox">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can-focus">False</property>
+        <property name="margin-start">12</property>
+        <property name="margin-top">6</property>
         <property name="hexpand">True</property>
         <property name="vexpand">True</property>
         <property name="orientation">vertical</property>
         <property name="spacing">12</property>
-        <property name="margin-start">12</property>
-        <property name="margin-top">6</property>
         <child>
-          <object class="GtkCheckButton" id="useopencl">
-            <property name="label" translatable="yes" 
context="optopenclpage|useopencl">Allow use of OpenCL</property>
+          <!-- n-columns=2 n-rows=1 -->
+          <object class="GtkGrid">
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">False</property>
-            <property name="use_underline">True</property>
-            <property name="draw_indicator">True</property>
+            <property name="can-focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="column-spacing">6</property>
+            <child>
+              <object class="GtkCheckButton" id="useopencl">
+                <property name="label" translatable="yes" 
context="optopenclpage|useopencl">Allow use of OpenCL</property>
+                <property name="visible">True</property>
+                <property name="can-focus">True</property>
+                <property name="receives-default">False</property>
+                <property name="use-underline">True</property>
+                <property name="draw-indicator">True</property>
+              </object>
+              <packing>
+                <property name="left-attach">1</property>
+                <property name="top-attach">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkImage" id="lockuseopencl">
+                <property name="can-focus">False</property>
+                <property name="no-show-all">True</property>
+                <property name="halign">center</property>
+                <property name="valign">center</property>
+                <property name="icon-name">res/lock.png</property>
+              </object>
+              <packing>
+                <property name="left-attach">0</property>
+                <property name="top-attach">0</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -35,10 +61,9 @@
           </packing>
         </child>
         <child>
-          <object class="GtkLabel" id="openclused">
-            <property name="visible">False</property>
-            <property name="can_focus">False</property>
-            <property name="label" translatable="yes" 
context="optopenclpage|openclused">OpenCL is available for use.</property>
+          <object class="GtkLabel" id="openclnotused">
+            <property name="can-focus">False</property>
+            <property name="label" translatable="yes" 
context="optopenclpage|openclnotused">OpenCL is not used.</property>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -47,10 +72,9 @@
           </packing>
         </child>
         <child>
-          <object class="GtkLabel" id="openclnotused">
-            <property name="visible">False</property>
-            <property name="can_focus">False</property>
-            <property name="label" translatable="yes" 
context="optopenclpage|openclnotused">OpenCL is not used.</property>
+          <object class="GtkLabel" id="openclused">
+            <property name="can-focus">False</property>
+            <property name="label" translatable="yes" 
context="optopenclpage|openclused">OpenCL is available for use.</property>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -63,7 +87,7 @@
     <child type="label">
       <object class="GtkLabel" id="label1">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
+        <property name="can-focus">False</property>
         <property name="label" translatable="yes" 
context="optopenclpage|label1">OpenCL Options</property>
         <attributes>
           <attribute name="weight" value="bold"/>
commit 54aa9a9cb7f283d2ed2853e064573564f16e353b
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Wed Oct 25 10:31:47 2023 +0200
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Thu Oct 26 09:22:40 2023 +0200

    tdf#157842 - UI: Part 7 - Unify lockdown behavior of Options dialog
    
    for Personalization Page.
    
    Change-Id: I5f2b674b9548610be8f918e6713e6ea91be7442e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158418
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>

diff --git a/cui/source/options/personalization.cxx 
b/cui/source/options/personalization.cxx
index 49974a90eef2..6311fd491141 100644
--- a/cui/source/options/personalization.cxx
+++ b/cui/source/options/personalization.cxx
@@ -33,7 +33,9 @@ 
SvxPersonalizationTabPage::SvxPersonalizationTabPage(weld::Container* pPage,
     : SfxTabPage(pPage, pController, "cui/ui/personalization_tab.ui", 
"PersonalizationTabPage",
                  &rSet)
     , m_xNoPersona(m_xBuilder->weld_radio_button("no_persona"))
+    , m_xPersonaImg(m_xBuilder->weld_widget("lockpersona"))
     , m_xDefaultPersona(m_xBuilder->weld_radio_button("default_persona"))
+    , m_xContentGrid(m_xBuilder->weld_container("gridpersonasetting"))
 {
     for (sal_uInt32 i = 0; i < MAX_DEFAULT_PERSONAS; ++i)
     {
@@ -116,6 +118,16 @@ void SvxPersonalizationTabPage::Reset(const SfxItemSet*)
         m_xNoPersona->set_active(true);
     else
         m_xDefaultPersona->set_active(true);
+
+    if (officecfg::Office::Common::Misc::Persona::isReadOnly())
+    {
+        m_xNoPersona->set_sensitive(false);
+        m_xDefaultPersona->set_sensitive(false);
+        m_xPersonaImg->set_visible(true);
+    }
+
+    if (officecfg::Office::Common::Misc::PersonaSettings::isReadOnly())
+        m_xContentGrid->set_sensitive(false);
 }
 
 void SvxPersonalizationTabPage::LoadDefaultImages()
diff --git a/cui/source/options/personalization.hxx 
b/cui/source/options/personalization.hxx
index b86653fc5d75..786b22c7d7b3 100644
--- a/cui/source/options/personalization.hxx
+++ b/cui/source/options/personalization.hxx
@@ -18,7 +18,9 @@ class SvxPersonalizationTabPage : public SfxTabPage
 {
 private:
     std::unique_ptr<weld::RadioButton> m_xNoPersona; ///< Just the default 
look, without any bitmap
+    std::unique_ptr<weld::Widget> m_xPersonaImg;
     std::unique_ptr<weld::RadioButton> m_xDefaultPersona; ///< Use the 
built-in bitmap
+    std::unique_ptr<weld::Container> m_xContentGrid;
     std::unique_ptr<weld::ToggleButton> m_vDefaultPersonaImages
         [MAX_DEFAULT_PERSONAS]; ///< Buttons to show the default persona images
     OUString m_aPersonaSettings; ///< Header and footer images + color to be 
set in the settings.
diff --git a/cui/uiconfig/ui/personalization_tab.ui 
b/cui/uiconfig/ui/personalization_tab.ui
index 9e483780bb4f..fc89951f2cb4 100644
--- a/cui/uiconfig/ui/personalization_tab.ui
+++ b/cui/uiconfig/ui/personalization_tab.ui
@@ -1,38 +1,93 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.20"/>
   <object class="GtkBox" id="PersonalizationTabPage">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="border_width">6</property>
+    <property name="can-focus">False</property>
+    <property name="border-width">6</property>
     <property name="orientation">vertical</property>
     <property name="spacing">12</property>
     <child>
       <object class="GtkFrame" id="frame2">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label_xalign">0</property>
-        <property name="shadow_type">none</property>
+        <property name="can-focus">False</property>
+        <property name="label-xalign">0</property>
+        <property name="shadow-type">none</property>
         <child>
           <object class="GtkBox" id="vbox2">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="orientation">vertical</property>
-            <property name="spacing">12</property>
+            <property name="can-focus">False</property>
             <property name="margin-start">12</property>
+            <property name="margin-end">6</property>
             <property name="margin-top">6</property>
             <property name="margin-bottom">6</property>
-            <property name="margin-end">6</property>
+            <property name="orientation">vertical</property>
+            <property name="spacing">12</property>
             <child>
-              <object class="GtkRadioButton" id="no_persona">
-                <property name="label" translatable="yes" 
context="personalization_tab|no_persona">Default look, do not use 
Themes</property>
+              <!-- n-columns=2 n-rows=1 -->
+              <object class="GtkGrid">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <property name="active">True</property>
-                <property name="draw_indicator">True</property>
+                <property name="can-focus">False</property>
+                <property name="hexpand">True</property>
+                <child>
+                  <!-- n-columns=1 n-rows=2 -->
+                  <object class="GtkGrid">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="row-spacing">12</property>
+                    <child>
+                      <object class="GtkRadioButton" id="no_persona">
+                        <property name="label" translatable="yes" 
context="personalization_tab|no_persona">Default look, do not use 
Themes</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
+                        <property name="active">True</property>
+                        <property name="draw-indicator">True</property>
+                        <property name="group">default_persona</property>
+                      </object>
+                      <packing>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkRadioButton" id="default_persona">
+                        <property name="label" translatable="yes" 
context="personalization_tab|default_persona">Preinstalled Theme</property>
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="use-underline">True</property>
+                        <property name="active">True</property>
+                        <property name="draw-indicator">True</property>
+                        <property name="group">no_persona</property>
+                      </object>
+                      <packing>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="lockpersona">
+                    <property name="can-focus">False</property>
+                    <property name="no-show-all">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="icon-name">res/lock.png</property>
+                  </object>
+                  <packing>
+                    <property name="left-attach">0</property>
+                    <property name="top-attach">0</property>
+                  </packing>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -41,128 +96,115 @@
               </packing>
             </child>
             <child>
-              <object class="GtkRadioButton" id="default_persona">
-                <property name="label" translatable="yes" 
context="personalization_tab|default_persona">Preinstalled Theme</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-                <property name="draw_indicator">True</property>
-                <property name="group">no_persona</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
+              <placeholder/>
             </child>
             <child>
-              <!-- n-columns=1 n-rows=1 -->
-              <object class="GtkGrid">
+              <!-- n-columns=3 n-rows=3 -->
+              <object class="GtkGrid" id="gridpersonasetting">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
+                <property name="can-focus">False</property>
                 <property name="halign">center</property>
                 <property name="margin-start">24</property>
                 <property name="margin-end">6</property>
-                <property name="row_spacing">6</property>
-                <property name="column_spacing">6</property>
+                <property name="row-spacing">6</property>
+                <property name="column-spacing">6</property>
                 <child>
                   <object class="GtkToggleButton" id="default1">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">0</property>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">0</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default0">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">0</property>
+                    <property name="left-attach">0</property>
+                    <property name="top-attach">0</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default2">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">2</property>
-                    <property name="top_attach">0</property>
+                    <property name="left-attach">2</property>
+                    <property name="top-attach">0</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default3">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">1</property>
+                    <property name="left-attach">0</property>
+                    <property name="top-attach">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default4">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">1</property>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default5">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">2</property>
-                    <property name="top_attach">1</property>
+                    <property name="left-attach">2</property>
+                    <property name="top-attach">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default6">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">2</property>
+                    <property name="left-attach">0</property>
+                    <property name="top-attach">2</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default7">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">2</property>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">2</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkToggleButton" id="default8">
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="always_show_image">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">True</property>
+                    <property name="always-show-image">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">2</property>
-                    <property name="top_attach">2</property>
+                    <property name="left-attach">2</property>
+                    <property name="top-attach">2</property>
                   </packing>
                 </child>
               </object>
@@ -177,7 +219,7 @@
         <child type="label">
           <object class="GtkLabel" id="personas_label">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
+            <property name="can-focus">False</property>
             <property name="label" translatable="yes" 
context="personalization_tab|personas_label">LibreOffice Themes</property>
             <attributes>
               <attribute name="weight" value="bold"/>

Reply via email to