include/svx/optgrid.hxx       |    2 +
 svx/source/dialog/optgrid.cxx |   48 +++++++++++++++++++++++++++++-------------
 2 files changed, 36 insertions(+), 14 deletions(-)

New commits:
commit b4350fd9c3f1873ead892c6baeb7f7c0fc1c7d80
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Tue Nov 21 15:32:11 2023 +0100
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Tue Nov 21 21:03:41 2023 +0100

    tdf#158143 - UI: Part 35 - Unify lockdown behavior of Options dialog
    
    for Writer/Web - Grid Page.
    
    Change-Id: I8b3cc4f75e613691840edc6456fb8ea2c4314282
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159784
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>

diff --git a/include/svx/optgrid.hxx b/include/svx/optgrid.hxx
index f27a4bf78d29..c033d001871c 100644
--- a/include/svx/optgrid.hxx
+++ b/include/svx/optgrid.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_SVX_OPTGRID_HXX
 
 #include <sfx2/tabdlg.hxx>
+#include <sfx2/htmlmode.hxx>
 #include <svx/svxdllapi.h>
 
 namespace weld { class CheckButton; }
@@ -104,6 +105,7 @@ public:
 
 private:
     bool                bAttrModified;
+    bool                m_bHTMLMode;
 
     std::unique_ptr<weld::CheckButton> m_xCbxUseGridsnap;
     std::unique_ptr<weld::Widget> m_xCbxUseGridsnapImg;
diff --git a/svx/source/dialog/optgrid.cxx b/svx/source/dialog/optgrid.cxx
index cd73ae223961..a5607755fd3f 100644
--- a/svx/source/dialog/optgrid.cxx
+++ b/svx/source/dialog/optgrid.cxx
@@ -20,6 +20,7 @@
 #include <svl/intitem.hxx>
 #include <svtools/unitconv.hxx>
 #include <officecfg/Office/Writer.hxx>
+#include <officecfg/Office/WriterWeb.hxx>
 
 #include <svx/svxids.hrc>
 #include <svx/optgrid.hxx>
@@ -91,6 +92,7 @@ bool  SvxGridItem::GetPresentation
 SvxGridTabPage::SvxGridTabPage(weld::Container* pPage, weld::DialogController* 
pController, const SfxItemSet& rCoreSet)
     : SfxTabPage(pPage, pController, "svx/ui/optgridpage.ui", "OptGridPage", 
&rCoreSet)
     , bAttrModified(false)
+    , m_bHTMLMode(false)
     , m_xCbxUseGridsnap(m_xBuilder->weld_check_button("usegridsnap"))
     , m_xCbxUseGridsnapImg(m_xBuilder->weld_widget("lockusegridsnap"))
     , m_xCbxGridVisible(m_xBuilder->weld_check_button("gridvisible"))
@@ -132,6 +134,10 @@ SvxGridTabPage::SvxGridTabPage(weld::Container* pPage, 
weld::DialogController* p
     SetFieldUnit( *m_xMtrFldDrawY, eFUnit, true );
     lcl_SetMinMax(*m_xMtrFldDrawY, nMin, nMax);
 
+    if (const SfxUInt16Item* pItem = rCoreSet.GetItemIfSet(SID_HTML_MODE, 
false))
+    {
+        m_bHTMLMode = 0 != (pItem->GetValue() & HTMLMODE_ON);
+    }
 
     m_xCbxRotate->connect_toggled(LINK(this, SvxGridTabPage, 
ClickRotateHdl_Impl));
     Link<weld::Toggleable&,void> aLink = LINK(this, SvxGridTabPage, 
ChangeGridsnapHdl_Impl);
@@ -213,36 +219,50 @@ void SvxGridTabPage::Reset( const SfxItemSet* rSet )
 
     if( (pGridAttr = rSet->GetItemIfSet( SID_ATTR_GRID_OPTIONS , false )) )
     {
+        bool bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Option::SnapToGrid::isReadOnly() :
+            
officecfg::Office::WriterWeb::Grid::Option::SnapToGrid::isReadOnly();
         m_xCbxUseGridsnap->set_active(pGridAttr->bUseGridsnap);
-        
m_xCbxUseGridsnap->set_sensitive(!officecfg::Office::Writer::Grid::Option::SnapToGrid::isReadOnly());
-        
m_xCbxUseGridsnapImg->set_visible(officecfg::Office::Writer::Grid::Option::SnapToGrid::isReadOnly());
+        m_xCbxUseGridsnap->set_sensitive(!bReadOnly);
+        m_xCbxUseGridsnapImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Option::Synchronize::isReadOnly() :
+            
officecfg::Office::WriterWeb::Grid::Option::Synchronize::isReadOnly();
         m_xCbxSynchronize->set_active(pGridAttr->bSynchronize);
-        
m_xCbxSynchronize->set_sensitive(!officecfg::Office::Writer::Grid::Option::Synchronize::isReadOnly());
-        
m_xCbxSynchronizeImg->set_visible(officecfg::Office::Writer::Grid::Option::Synchronize::isReadOnly());
+        m_xCbxSynchronize->set_sensitive(!bReadOnly);
+        m_xCbxSynchronizeImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Option::VisibleGrid::isReadOnly() :
+            
officecfg::Office::WriterWeb::Grid::Option::VisibleGrid::isReadOnly();
         m_xCbxGridVisible->set_active(pGridAttr->bGridVisible);
-        
m_xCbxGridVisible->set_sensitive(!officecfg::Office::Writer::Grid::Option::VisibleGrid::isReadOnly());
-        
m_xCbxGridVisibleImg->set_visible(officecfg::Office::Writer::Grid::Option::VisibleGrid::isReadOnly());
+        m_xCbxGridVisible->set_sensitive(!bReadOnly);
+        m_xCbxGridVisibleImg->set_visible(bReadOnly);
 
         MapUnit eUnit = rSet->GetPool()->GetMetric( SID_ATTR_GRID_OPTIONS );
         SetMetricValue( *m_xMtrFldDrawX , pGridAttr->nFldDrawX, eUnit );
         SetMetricValue( *m_xMtrFldDrawY , pGridAttr->nFldDrawY, eUnit );
 
-        
m_xMtrFldDrawX->set_sensitive(!officecfg::Office::Writer::Grid::Resolution::XAxis::isReadOnly());
-        
m_xMtrFldDrawXImg->set_visible(officecfg::Office::Writer::Grid::Resolution::XAxis::isReadOnly());
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Resolution::XAxis::isReadOnly() :
+            
officecfg::Office::WriterWeb::Grid::Resolution::XAxis::isReadOnly();
+        m_xMtrFldDrawX->set_sensitive(!bReadOnly);
+        m_xMtrFldDrawXImg->set_visible(bReadOnly);
 
-        
m_xMtrFldDrawY->set_sensitive(!officecfg::Office::Writer::Grid::Resolution::YAxis::isReadOnly());
-        
m_xMtrFldDrawYImg->set_visible(officecfg::Office::Writer::Grid::Resolution::YAxis::isReadOnly());
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Resolution::YAxis::isReadOnly() :
+            
officecfg::Office::WriterWeb::Grid::Resolution::YAxis::isReadOnly();
+        m_xMtrFldDrawY->set_sensitive(!bReadOnly);
+        m_xMtrFldDrawYImg->set_visible(bReadOnly);
 
         m_xNumFldDivisionX->set_value(pGridAttr->nFldDivisionX + 1);
         m_xNumFldDivisionY->set_value(pGridAttr->nFldDivisionY + 1);
 
-        
m_xNumFldDivisionX->set_sensitive(!officecfg::Office::Writer::Grid::Subdivision::XAxis::isReadOnly());
-        
m_xNumFldDivisionXImg->set_visible(officecfg::Office::Writer::Grid::Subdivision::XAxis::isReadOnly());
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Subdivision::XAxis::isReadOnly() :
+            
officecfg::Office::WriterWeb::Grid::Subdivision::XAxis::isReadOnly();
+        m_xNumFldDivisionX->set_sensitive(!bReadOnly);
+        m_xNumFldDivisionXImg->set_visible(bReadOnly);
 
-        
m_xNumFldDivisionY->set_sensitive(!officecfg::Office::Writer::Grid::Subdivision::YAxis::isReadOnly());
-        
m_xNumFldDivisionYImg->set_visible(officecfg::Office::Writer::Grid::Subdivision::YAxis::isReadOnly());
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Subdivision::YAxis::isReadOnly() :
+            
officecfg::Office::WriterWeb::Grid::Subdivision::YAxis::isReadOnly();
+        m_xNumFldDivisionY->set_sensitive(!bReadOnly);
+        m_xNumFldDivisionYImg->set_visible(bReadOnly);
     }
 
     ChangeGridsnapHdl_Impl(*m_xCbxUseGridsnap);

Reply via email to