sw/source/ui/config/optpage.cxx  |   97 ++++++++++++++++++++++++---------------
 sw/source/uibase/inc/optpage.hxx |    1 
 2 files changed, 63 insertions(+), 35 deletions(-)

New commits:
commit 1f94a89429c665104bdf21b5ac48171850fa5afb
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Tue Nov 21 16:31:00 2023 +0100
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Tue Nov 21 21:04:01 2023 +0100

    tdf#158144 - UI: Part 36 - Unify lockdown behavior of Options dialog
    
    for Writer/Web - Print Page.
    
    Change-Id: I1fb2f52966843297fcb415c02946d7ce38097332
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159788
    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 7062a68716c8..063d353da0ee 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -415,6 +415,7 @@ SwAddPrinterTabPage::SwAddPrinterTabPage(weld::Container* 
pPage, weld::DialogCon
     , m_sNone(SwResId(SW_STR_NONE))
     , m_bAttrModified(false)
     , m_bPreview(false)
+    , m_bHTMLMode(false)
     , m_xGrfCB(m_xBuilder->weld_check_button("graphics"))
     , m_xGrfImg(m_xBuilder->weld_widget("lockgraphics"))
     , m_xCtrlFieldCB(m_xBuilder->weld_check_button("formcontrols"))
@@ -473,6 +474,7 @@ SwAddPrinterTabPage::SwAddPrinterTabPage(weld::Container* 
pPage, weld::DialogCon
     const SfxUInt16Item* pItem = rCoreSet.GetItemIfSet(SID_HTML_MODE, false );
     if(pItem && pItem->GetValue() & HTMLMODE_ON)
     {
+        m_bHTMLMode = true;
         m_xLeftPageCB->hide();
         m_xRightPageCB->hide();
         m_xPrintHiddenTextCB->hide();
@@ -577,56 +579,76 @@ bool    SwAddPrinterTabPage::FillItemSet( SfxItemSet* 
rCoreSet )
 void    SwAddPrinterTabPage::Reset( const SfxItemSet*  )
 {
     const   SfxItemSet&         rSet = GetItemSet();
+    bool bReadOnly = false;
 
     if( const SwAddPrinterItem* pAddPrinterAttr = rSet.GetItemIfSet( 
FN_PARAM_ADDPRINTER , false ) )
     {
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Content::Graphic::isReadOnly() :
+            
officecfg::Office::WriterWeb::Print::Content::Graphic::isReadOnly();
         m_xGrfCB->set_active(pAddPrinterAttr->m_bPrintGraphic || 
pAddPrinterAttr->m_bPrintDraw);
-        
m_xGrfCB->set_sensitive(!officecfg::Office::Writer::Print::Content::Graphic::isReadOnly());
-        
m_xGrfImg->set_visible(officecfg::Office::Writer::Print::Content::Graphic::isReadOnly());
+        m_xGrfCB->set_sensitive(!bReadOnly);
+        m_xGrfImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Content::Control::isReadOnly() :
+            
officecfg::Office::WriterWeb::Print::Content::Control::isReadOnly();
         m_xCtrlFieldCB->set_active(       pAddPrinterAttr->m_bPrintControl);
-        
m_xCtrlFieldCB->set_sensitive(!officecfg::Office::Writer::Print::Content::Control::isReadOnly());
-        
m_xCtrlFieldImg->set_visible(officecfg::Office::Writer::Print::Content::Control::isReadOnly());
+        m_xCtrlFieldCB->set_sensitive(!bReadOnly);
+        m_xCtrlFieldImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Content::Background::isReadOnly() :
+            
officecfg::Office::WriterWeb::Print::Content::Background::isReadOnly();
         m_xBackgroundCB->set_active(    
pAddPrinterAttr->m_bPrintPageBackground);
-        
m_xBackgroundCB->set_sensitive(!officecfg::Office::Writer::Print::Content::Background::isReadOnly());
-        
m_xBackgroundImg->set_visible(officecfg::Office::Writer::Print::Content::Background::isReadOnly());
+        m_xBackgroundCB->set_sensitive(!bReadOnly);
+        m_xBackgroundImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Content::PrintBlack::isReadOnly() :
+            
officecfg::Office::WriterWeb::Print::Content::PrintBlack::isReadOnly();
         m_xBlackFontCB->set_active(     pAddPrinterAttr->m_bPrintBlackFont);
-        
m_xBlackFontCB->set_sensitive(!officecfg::Office::Writer::Print::Content::PrintBlack::isReadOnly());
-        
m_xBlackFontImg->set_visible(officecfg::Office::Writer::Print::Content::PrintBlack::isReadOnly());
+        m_xBlackFontCB->set_sensitive(!bReadOnly);
+        m_xBlackFontImg->set_visible(bReadOnly);
 
+        bReadOnly = 
officecfg::Office::Writer::Print::Content::PrintHiddenText::isReadOnly();
         m_xPrintHiddenTextCB->set_active( pAddPrinterAttr->m_bPrintHiddenText);
-        
m_xPrintHiddenTextCB->set_sensitive(!officecfg::Office::Writer::Print::Content::PrintHiddenText::isReadOnly());
-        
m_xPrintHiddenTextImg->set_visible(officecfg::Office::Writer::Print::Content::PrintHiddenText::isReadOnly());
+        m_xPrintHiddenTextCB->set_sensitive(!bReadOnly);
+        m_xPrintHiddenTextImg->set_visible(bReadOnly);
 
+        bReadOnly = 
officecfg::Office::Writer::Print::Content::PrintPlaceholders::isReadOnly();
         
m_xPrintTextPlaceholderCB->set_active(pAddPrinterAttr->m_bPrintTextPlaceholder);
-        
m_xPrintTextPlaceholderCB->set_sensitive(!officecfg::Office::Writer::Print::Content::PrintPlaceholders::isReadOnly());
-        
m_xPrintTextPlaceholderImg->set_visible(officecfg::Office::Writer::Print::Content::PrintPlaceholders::isReadOnly());
+        m_xPrintTextPlaceholderCB->set_sensitive(!bReadOnly);
+        m_xPrintTextPlaceholderImg->set_visible(bReadOnly);
 
+        bReadOnly = 
officecfg::Office::Writer::Print::Page::LeftPage::isReadOnly();
         m_xLeftPageCB->set_active(      pAddPrinterAttr->m_bPrintLeftPages);
-        
m_xLeftPageCB->set_sensitive(!officecfg::Office::Writer::Print::Page::LeftPage::isReadOnly());
-        
m_xLeftPageImg->set_visible(officecfg::Office::Writer::Print::Page::LeftPage::isReadOnly());
+        m_xLeftPageCB->set_sensitive(!bReadOnly);
+        m_xLeftPageImg->set_visible(bReadOnly);
 
+        bReadOnly = 
officecfg::Office::Writer::Print::Page::RightPage::isReadOnly();
         m_xRightPageCB->set_active(     pAddPrinterAttr->m_bPrintRightPages);
-        
m_xRightPageCB->set_sensitive(!officecfg::Office::Writer::Print::Page::RightPage::isReadOnly());
-        
m_xRightPageImg->set_visible(officecfg::Office::Writer::Print::Page::RightPage::isReadOnly());
+        m_xRightPageCB->set_sensitive(!bReadOnly);
+        m_xRightPageImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Papertray::FromPrinterSetup::isReadOnly() :
+            
officecfg::Office::WriterWeb::Print::Papertray::FromPrinterSetup::isReadOnly();
         m_xPaperFromSetupCB->set_active(pAddPrinterAttr->m_bPaperFromSetup);
-        
m_xPaperFromSetupCB->set_sensitive(!officecfg::Office::Writer::Print::Papertray::FromPrinterSetup::isReadOnly());
-        
m_xPaperFromSetupImg->set_visible(officecfg::Office::Writer::Print::Papertray::FromPrinterSetup::isReadOnly());
+        m_xPaperFromSetupCB->set_sensitive(!bReadOnly);
+        m_xPaperFromSetupImg->set_visible(bReadOnly);
 
+        bReadOnly = officecfg::Office::Writer::Print::EmptyPages::isReadOnly();
         m_xPrintEmptyPagesCB->set_active(pAddPrinterAttr->m_bPrintEmptyPages);
-        
m_xPrintEmptyPagesCB->set_sensitive(!officecfg::Office::Writer::Print::EmptyPages::isReadOnly());
-        
m_xPrintEmptyPagesImg->set_visible(officecfg::Office::Writer::Print::EmptyPages::isReadOnly());
+        m_xPrintEmptyPagesCB->set_sensitive(!bReadOnly);
+        m_xPrintEmptyPagesImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Page::Brochure::isReadOnly() :
+            officecfg::Office::WriterWeb::Print::Page::Brochure::isReadOnly();
         m_xProspectCB->set_active(      pAddPrinterAttr->m_bPrintProspect);
-        
m_xProspectCB->set_sensitive(!officecfg::Office::Writer::Print::Page::Brochure::isReadOnly());
-        
m_xProspectImg->set_visible(officecfg::Office::Writer::Print::Page::Brochure::isReadOnly());
+        m_xProspectCB->set_sensitive(!bReadOnly);
+        m_xProspectImg->set_visible(bReadOnly);
 
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Page::BrochureRightToLeft::isReadOnly() :
+            
officecfg::Office::WriterWeb::Print::Page::BrochureRightToLeft::isReadOnly();
         m_xProspectCB_RTL->set_active(      
pAddPrinterAttr->m_bPrintProspectRTL);
-        
m_xProspectCB_RTL->set_sensitive(!officecfg::Office::Writer::Print::Page::BrochureRightToLeft::isReadOnly());
-        
m_xProspectImg_RTL->set_visible(officecfg::Office::Writer::Print::Page::BrochureRightToLeft::isReadOnly());
+        m_xProspectCB_RTL->set_sensitive(!bReadOnly);
+        m_xProspectImg_RTL->set_visible(bReadOnly);
 
         m_xNoRB->set_active(pAddPrinterAttr->m_nPrintPostIts== 
SwPostItMode::NONE ) ;
         m_xOnlyRB->set_active(pAddPrinterAttr->m_nPrintPostIts== 
SwPostItMode::Only ) ;
@@ -634,13 +656,14 @@ void    SwAddPrinterTabPage::Reset( const SfxItemSet*  )
         m_xEndPageRB->set_active(pAddPrinterAttr->m_nPrintPostIts== 
SwPostItMode::EndPage ) ;
         m_xInMarginsRB->set_active(pAddPrinterAttr->m_nPrintPostIts== 
SwPostItMode::InMargins ) ;
 
-        bool bNotesReadOnly = 
officecfg::Office::Writer::Print::Content::Note::isReadOnly();
-        m_xNoRB->set_sensitive(!bNotesReadOnly);
-        m_xOnlyRB->set_sensitive(!bNotesReadOnly);
-        m_xEndRB->set_sensitive(!bNotesReadOnly);
-        m_xEndPageRB->set_sensitive(!bNotesReadOnly);
-        m_xInMarginsRB->set_sensitive(!bNotesReadOnly);
-        m_xMarginsImg->set_visible(bNotesReadOnly);
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Content::Note::isReadOnly() :
+            officecfg::Office::WriterWeb::Print::Content::Note::isReadOnly();
+        m_xNoRB->set_sensitive(!bReadOnly);
+        m_xOnlyRB->set_sensitive(!bReadOnly);
+        m_xEndRB->set_sensitive(!bReadOnly);
+        m_xEndPageRB->set_sensitive(!bReadOnly);
+        m_xInMarginsRB->set_sensitive(!bReadOnly);
+        m_xMarginsImg->set_visible(bReadOnly);
 
         auto nFound = m_xFaxLB->find_text(pAddPrinterAttr->m_sFaxName);
         if (nFound != -1)
@@ -648,12 +671,16 @@ void    SwAddPrinterTabPage::Reset( const SfxItemSet*  )
         else if (m_xFaxLB->get_count())
             m_xFaxLB->set_active(0);
 
-        
m_xFaxLB->set_sensitive(!officecfg::Office::Writer::Print::Output::Fax::isReadOnly());
-        
m_xFaxImg->set_visible(officecfg::Office::Writer::Print::Output::Fax::isReadOnly());
+        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Output::Fax::isReadOnly() :
+            officecfg::Office::WriterWeb::Print::Output::Fax::isReadOnly();
+        m_xFaxLB->set_sensitive(!bReadOnly);
+        m_xFaxImg->set_visible(bReadOnly);
     }
+    bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Print::Page::BrochureRightToLeft::isReadOnly() :
+        
officecfg::Office::WriterWeb::Print::Page::BrochureRightToLeft::isReadOnly();
     if (m_xProspectCB->get_active())
     {
-        
m_xProspectCB_RTL->set_sensitive(!officecfg::Office::Writer::Print::Page::BrochureRightToLeft::isReadOnly());
+        m_xProspectCB_RTL->set_sensitive(!bReadOnly);
         m_xNoRB->set_sensitive( false );
         m_xOnlyRB->set_sensitive( false );
         m_xEndRB->set_sensitive( false );
@@ -662,7 +689,7 @@ void    SwAddPrinterTabPage::Reset( const SfxItemSet*  )
     else
         m_xProspectCB_RTL->set_sensitive( false );
 
-    
m_xProspectImg_RTL->set_visible(officecfg::Office::Writer::Print::Page::BrochureRightToLeft::isReadOnly());
+    m_xProspectImg_RTL->set_visible(bReadOnly);
 }
 
 IMPL_LINK_NOARG(SwAddPrinterTabPage, AutoClickHdl, weld::Toggleable&, void)
diff --git a/sw/source/uibase/inc/optpage.hxx b/sw/source/uibase/inc/optpage.hxx
index 949861f37101..e2641fd7fc2b 100644
--- a/sw/source/uibase/inc/optpage.hxx
+++ b/sw/source/uibase/inc/optpage.hxx
@@ -95,6 +95,7 @@ class SwAddPrinterTabPage final : public SfxTabPage
     OUString m_sNone;
     bool m_bAttrModified;
     bool m_bPreview;
+    bool m_bHTMLMode;
 
     std::unique_ptr<weld::CheckButton>  m_xGrfCB;
     std::unique_ptr<weld::Widget>  m_xGrfImg;

Reply via email to