sd/source/ui/dlg/tpoption.cxx         |   20 ++++++++
 sd/source/ui/inc/tpoption.hxx         |    4 +
 sd/uiconfig/simpress/ui/sdviewpage.ui |   78 +++++++++++++++++++++++++++-------
 3 files changed, 87 insertions(+), 15 deletions(-)

New commits:
commit b1a866caccb322ec6e88eac67710310160e72b58
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Thu Nov 23 11:39:09 2023 +0100
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Fri Nov 24 14:18:23 2023 +0100

    tdf#158238 - UI: Part 40 - Unify lockdown behavior of Options dialog
    
    for Impress - View Page.
    
    Change-Id: Icc3c4fc9dd3800ef454cbddb06e569e03c08967a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159856
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>

diff --git a/sd/source/ui/dlg/tpoption.cxx b/sd/source/ui/dlg/tpoption.cxx
index b177c8e94064..fabf76255bd7 100644
--- a/sd/source/ui/dlg/tpoption.cxx
+++ b/sd/source/ui/dlg/tpoption.cxx
@@ -110,9 +110,13 @@ std::unique_ptr<SfxTabPage> SdTpOptionsSnap::Create( 
weld::Container* pPage, wel
 SdTpOptionsContents::SdTpOptionsContents(weld::Container* pPage, 
weld::DialogController* pController, const SfxItemSet& rInAttrs)
     : SfxTabPage(pPage, pController, "modules/simpress/ui/sdviewpage.ui", 
"SdViewPage", &rInAttrs)
     , m_xCbxRuler(m_xBuilder->weld_check_button("ruler"))
+    , m_xCbxRulerImg(m_xBuilder->weld_widget("lockruler"))
     , m_xCbxDragStripes(m_xBuilder->weld_check_button("dragstripes"))
+    , m_xCbxDragStripesImg(m_xBuilder->weld_widget("lockdragstripes"))
     , m_xCbxHandlesBezier(m_xBuilder->weld_check_button("handlesbezier"))
+    , m_xCbxHandlesBezierImg(m_xBuilder->weld_widget("lockhandlesbezier"))
     , m_xCbxMoveOutline(m_xBuilder->weld_check_button("moveoutline"))
+    , m_xCbxMoveOutlineImg(m_xBuilder->weld_widget("lockmoveoutline"))
 {
 }
 
@@ -173,6 +177,22 @@ void SdTpOptionsContents::Reset( const SfxItemSet* rAttrs )
     m_xCbxDragStripes->set_active( 
aLayoutItem.GetOptionsLayout().IsDragStripes() );
     m_xCbxHandlesBezier->set_active( 
aLayoutItem.GetOptionsLayout().IsHandlesBezier() );
 
+    bool bReadOnly = 
officecfg::Office::Impress::Layout::Display::Ruler::isReadOnly();
+    m_xCbxRuler->set_sensitive(!bReadOnly);
+    m_xCbxRulerImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Layout::Display::Contour::isReadOnly();
+    m_xCbxMoveOutline->set_sensitive(!bReadOnly);
+    m_xCbxMoveOutlineImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Layout::Display::Guide::isReadOnly();
+    m_xCbxDragStripes->set_sensitive(!bReadOnly);
+    m_xCbxDragStripesImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Layout::Display::Bezier::isReadOnly();
+    m_xCbxHandlesBezier->set_sensitive(!bReadOnly);
+    m_xCbxHandlesBezierImg->set_visible(bReadOnly);
+
     m_xCbxRuler->save_state();
     m_xCbxMoveOutline->save_state();
     m_xCbxDragStripes->save_state();
diff --git a/sd/source/ui/inc/tpoption.hxx b/sd/source/ui/inc/tpoption.hxx
index 4184cd7400d5..79735e6a3f81 100644
--- a/sd/source/ui/inc/tpoption.hxx
+++ b/sd/source/ui/inc/tpoption.hxx
@@ -43,9 +43,13 @@ class SdTpOptionsContents final : public SfxTabPage
 {
 private:
     std::unique_ptr<weld::CheckButton> m_xCbxRuler;
+    std::unique_ptr<weld::Widget> m_xCbxRulerImg;
     std::unique_ptr<weld::CheckButton> m_xCbxDragStripes;
+    std::unique_ptr<weld::Widget> m_xCbxDragStripesImg;
     std::unique_ptr<weld::CheckButton> m_xCbxHandlesBezier;
+    std::unique_ptr<weld::Widget> m_xCbxHandlesBezierImg;
     std::unique_ptr<weld::CheckButton> m_xCbxMoveOutline;
+    std::unique_ptr<weld::Widget> m_xCbxMoveOutlineImg;
 
 public:
     SdTpOptionsContents(weld::Container* pPage, weld::DialogController* 
pController, const SfxItemSet& rInAttrs);
diff --git a/sd/uiconfig/simpress/ui/sdviewpage.ui 
b/sd/uiconfig/simpress/ui/sdviewpage.ui
index 52193b075c1e..608114e88fa9 100644
--- a/sd/uiconfig/simpress/ui/sdviewpage.ui
+++ b/sd/uiconfig/simpress/ui/sdviewpage.ui
@@ -10,13 +10,13 @@
     <property name="label-xalign">0</property>
     <property name="shadow-type">none</property>
     <child>
-      <object class="GtkBox" id="box1">
+      <!-- n-columns=2 n-rows=4 -->
+      <object class="GtkGrid">
         <property name="visible">True</property>
         <property name="can-focus">False</property>
         <property name="margin-start">12</property>
         <property name="margin-top">6</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">6</property>
+        <property name="row-spacing">6</property>
         <child>
           <object class="GtkCheckButton" id="ruler">
             <property name="label" translatable="yes" 
context="sdviewpage|ruler">_Rulers visible</property>
@@ -32,9 +32,8 @@
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
+            <property name="left-attach">1</property>
+            <property name="top-attach">0</property>
           </packing>
         </child>
         <child>
@@ -52,9 +51,8 @@
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="left-attach">1</property>
+            <property name="top-attach">1</property>
           </packing>
         </child>
         <child>
@@ -72,9 +70,8 @@
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">2</property>
+            <property name="left-attach">1</property>
+            <property name="top-attach">2</property>
           </packing>
         </child>
         <child>
@@ -92,9 +89,60 @@
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">3</property>
+            <property name="left-attach">1</property>
+            <property name="top-attach">3</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkImage" id="lockruler">
+            <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>
+        <child>
+          <object class="GtkImage" id="lockdragstripes">
+            <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">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkImage" id="lockhandlesbezier">
+            <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">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkImage" id="lockmoveoutline">
+            <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">3</property>
           </packing>
         </child>
       </object>

Reply via email to