sw/source/ui/config/optpage.cxx  |   40 ++++++++++++++++++++++++++-------------
 sw/source/uibase/inc/optpage.hxx |    1 
 2 files changed, 28 insertions(+), 13 deletions(-)

New commits:
commit edf05194527e596e8b32956f7f3f34357f6e4a27
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Tue Nov 21 14:32:21 2023 +0100
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Tue Nov 21 21:03:25 2023 +0100

    tdf#158141 - UI: Part 34 - Unify lockdown behavior of Options dialog
    
    for Writer/Web - Formatting Aids Page.
    
    Change-Id: I8e67ac65add2aab50fe1db2d071ce731be80f946
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159783
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>

diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx
index 90ea14acf64f..7062a68716c8 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -1560,6 +1560,7 @@ void SwTableOptionsTabPage::PageCreated( const 
SfxAllItemSet& aSet)
 SwShdwCursorOptionsTabPage::SwShdwCursorOptionsTabPage(weld::Container* pPage, 
weld::DialogController* pController, const SfxItemSet& rSet)
     : SfxTabPage(pPage, pController, 
"modules/swriter/ui/optformataidspage.ui", "OptFormatAidsPage", &rSet)
     , m_pWrtShell(nullptr)
+    , m_bHTMLMode(false)
     , m_xParaCB(m_xBuilder->weld_check_button("paragraph"))
     , m_xParaImg(m_xBuilder->weld_widget("lockparagraph"))
     , m_xSHyphCB(m_xBuilder->weld_check_button("hyphens"))
@@ -1607,6 +1608,8 @@ 
SwShdwCursorOptionsTabPage::SwShdwCursorOptionsTabPage(weld::Container* pPage, w
     if(!pHtmlModeItem || !(pHtmlModeItem->GetValue() & HTMLMODE_ON))
         return;
 
+    m_bHTMLMode = true;
+
     m_xTabCB->hide();
     m_xTabLabel->hide();
     m_xCharHiddenCB->hide();
@@ -1721,18 +1724,23 @@ void SwShdwCursorOptionsTabPage::Reset( const 
SfxItemSet* rSet )
         eMode = pItem->GetMode();
         bIsOn = pItem->IsOn();
     }
+
+    bool bReadOnly = 
officecfg::Office::Writer::Cursor::DirectCursor::UseDirectCursor::isReadOnly();
     m_xOnOffCB->set_active( bIsOn );
-    
m_xOnOffCB->set_sensitive(!officecfg::Office::Writer::Cursor::DirectCursor::UseDirectCursor::isReadOnly());
-    
m_xOnOffImg->set_visible(officecfg::Office::Writer::Cursor::DirectCursor::UseDirectCursor::isReadOnly());
+    m_xOnOffCB->set_sensitive(!bReadOnly);
+    m_xOnOffImg->set_visible(bReadOnly);
 
+    bReadOnly = 
officecfg::Office::Writer::Cursor::DirectCursor::Insert::isReadOnly();
     m_xDirectCursorFillMode->set_active( static_cast<int>(eMode) );
-    
m_xDirectCursorFillMode->set_sensitive(!officecfg::Office::Writer::Cursor::DirectCursor::Insert::isReadOnly());
-    
m_xDirectCursorFillModeImg->set_visible(officecfg::Office::Writer::Cursor::DirectCursor::Insert::isReadOnly());
+    m_xDirectCursorFillMode->set_sensitive(!bReadOnly);
+    m_xDirectCursorFillModeImg->set_visible(bReadOnly);
 
     if (m_pWrtShell) {
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Layout::Other::IsAlignMathObjectsToBaseline::isReadOnly()
 :
+            
officecfg::Office::WriterWeb::Layout::Other::IsAlignMathObjectsToBaseline::isReadOnly();
         m_xMathBaselineAlignmentCB->set_active( 
m_pWrtShell->GetDoc()->getIDocumentSettingAccess().get( 
DocumentSettingId::MATH_BASELINE_ALIGNMENT ) );
-        
m_xMathBaselineAlignmentCB->set_sensitive(!officecfg::Office::Writer::Layout::Other::IsAlignMathObjectsToBaseline::isReadOnly());
-        
m_xMathBaselineAlignmentImg->set_visible(officecfg::Office::Writer::Layout::Other::IsAlignMathObjectsToBaseline::isReadOnly());
+        m_xMathBaselineAlignmentCB->set_sensitive(!bReadOnly);
+        m_xMathBaselineAlignmentImg->set_visible(bReadOnly);
         m_xMathBaselineAlignmentCB->save_state();
     } else {
         m_xMathBaselineAlignmentCB->hide();
@@ -1740,14 +1748,16 @@ void SwShdwCursorOptionsTabPage::Reset( const 
SfxItemSet* rSet )
 
     if( const SfxBoolItem* pItem = rSet->GetItemIfSet( 
FN_PARAM_CRSR_IN_PROTECTED, false ) )
         m_xCursorInProtCB->set_active(pItem->GetValue());
-    
m_xCursorInProtCB->set_sensitive(!officecfg::Office::Writer::Cursor::Option::ProtectedArea::isReadOnly());
-    
m_xCursorInProtImg->set_visible(officecfg::Office::Writer::Cursor::Option::ProtectedArea::isReadOnly());
+    bReadOnly = 
officecfg::Office::Writer::Cursor::Option::ProtectedArea::isReadOnly();
+    m_xCursorInProtCB->set_sensitive(!bReadOnly);
+    m_xCursorInProtImg->set_visible(bReadOnly);
     m_xCursorInProtCB->save_state();
 
     const SwDocDisplayItem* pDocDisplayAttr = rSet->GetItemIfSet( 
FN_PARAM_DOCDISP, false );
     if(pDocDisplayAttr)
     {
-        bool bReadOnly = 
officecfg::Office::Writer::Content::NonprintingCharacter::ParagraphEnd::isReadOnly();
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Content::NonprintingCharacter::ParagraphEnd::isReadOnly()
 :
+            
officecfg::Office::WriterWeb::Content::NonprintingCharacter::ParagraphEnd::isReadOnly();
         m_xParaCB->set_active( pDocDisplayAttr->m_bParagraphEnd );
         m_xParaCB->set_sensitive(!bReadOnly);
         m_xParaImg->set_visible(bReadOnly);
@@ -1757,17 +1767,20 @@ void SwShdwCursorOptionsTabPage::Reset( const 
SfxItemSet* rSet )
         m_xTabCB->set_sensitive(!bReadOnly);
         m_xTabImg->set_visible(bReadOnly);
 
-        bReadOnly = 
officecfg::Office::Writer::Content::NonprintingCharacter::Space::isReadOnly();
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Content::NonprintingCharacter::Space::isReadOnly() :
+            
officecfg::Office::WriterWeb::Content::NonprintingCharacter::Space::isReadOnly();
         m_xSpacesCB->set_active( pDocDisplayAttr->m_bSpace );
         m_xSpacesCB->set_sensitive(!bReadOnly);
         m_xSpacesImg->set_visible(bReadOnly);
 
-        bReadOnly = 
officecfg::Office::Writer::Content::NonprintingCharacter::ProtectedSpace::isReadOnly();
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Content::NonprintingCharacter::ProtectedSpace::isReadOnly()
 :
+            
officecfg::Office::WriterWeb::Content::NonprintingCharacter::ProtectedSpace::isReadOnly();
         m_xHSpacesCB->set_active( pDocDisplayAttr->m_bNonbreakingSpace );
         m_xHSpacesCB->set_sensitive(!bReadOnly);
         m_xHSpacesImg->set_visible(bReadOnly);
 
-        bReadOnly = 
officecfg::Office::Writer::Content::NonprintingCharacter::OptionalHyphen::isReadOnly();
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Content::NonprintingCharacter::OptionalHyphen::isReadOnly()
 :
+            
officecfg::Office::WriterWeb::Content::NonprintingCharacter::OptionalHyphen::isReadOnly();
         m_xSHyphCB->set_active( pDocDisplayAttr->m_bSoftHyphen );
         m_xSHyphCB->set_sensitive(!bReadOnly);
         m_xSHyphImg->set_visible(bReadOnly);
@@ -1782,7 +1795,8 @@ void SwShdwCursorOptionsTabPage::Reset( const SfxItemSet* 
rSet )
         m_xBookmarkCB->set_sensitive(!bReadOnly);
         m_xBookmarkImg->set_visible(bReadOnly);
 
-        bReadOnly = 
officecfg::Office::Writer::Content::NonprintingCharacter::Break::isReadOnly();
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Content::NonprintingCharacter::Break::isReadOnly() :
+            
officecfg::Office::WriterWeb::Content::NonprintingCharacter::Break::isReadOnly();
         m_xBreakCB->set_active( pDocDisplayAttr->m_bManualBreak );
         m_xBreakCB->set_sensitive(!bReadOnly);
         m_xBreakImg->set_visible(bReadOnly);
diff --git a/sw/source/uibase/inc/optpage.hxx b/sw/source/uibase/inc/optpage.hxx
index 4c5734253d35..949861f37101 100644
--- a/sw/source/uibase/inc/optpage.hxx
+++ b/sw/source/uibase/inc/optpage.hxx
@@ -278,6 +278,7 @@ public:
 class SwShdwCursorOptionsTabPage final : public SfxTabPage
 {
     SwWrtShell *    m_pWrtShell;
+    bool            m_bHTMLMode;
 
     //nonprinting characters
     std::unique_ptr<weld::CheckButton> m_xParaCB;

Reply via email to