diff options
author | Balazs Varga <balazs.varga.extern@allotropia.de> | 2023-11-08 12:33:56 +0100 |
---|---|---|
committer | Balazs Varga <balazs.varga.extern@allotropia.de> | 2023-11-09 20:29:02 +0100 |
commit | 51f4cadfdd50e757e593c3166d4e54c6b2634af9 (patch) | |
tree | ef83d3929c067845ce13d233a2f6ec3859634725 /sw/source/ui | |
parent | 38a4672bdb55314edc9ce2cd5224b879d8df007f (diff) |
tdf#158006 - UI: Part 21 - Unify lockdown behavior of Options dialog
for Writer - View Page.
Change-Id: Icbca23d3ec1dd95bbf703227b9479291a978a426
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159126
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Diffstat (limited to 'sw/source/ui')
-rw-r--r-- | sw/source/ui/config/optpage.cxx | 84 |
1 files changed, 82 insertions, 2 deletions
diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx index b1f24d671a92..6fb499f455ad 100644 --- a/sw/source/ui/config/optpage.cxx +++ b/sw/source/ui/config/optpage.cxx @@ -51,6 +51,7 @@ #include <editeng/langitem.hxx> #include <editeng/svxenum.hxx> #include <officecfg/Office/Common.hxx> +#include <officecfg/Office/Writer.hxx> #include <sal/macros.h> #include <sfx2/dialoghelper.hxx> #include <sfx2/printer.hxx> @@ -86,25 +87,40 @@ void drawRect(vcl::RenderContext& rRenderContext, const tools::Rectangle &rRect, SwContentOptPage::SwContentOptPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreSet) : SfxTabPage(pPage, pController, "modules/swriter/ui/viewoptionspage.ui", "ViewOptionsPage", &rCoreSet) , m_xCrossCB(m_xBuilder->weld_check_button("helplines")) + , m_xCrossImg(m_xBuilder->weld_widget("lockhelplines")) , m_xHMetric(m_xBuilder->weld_combo_box("hrulercombobox")) + , m_xHMetricImg(m_xBuilder->weld_widget("lockhruler")) , m_xVRulerCBox(m_xBuilder->weld_check_button("vruler")) + , m_xVRulerImg(m_xBuilder->weld_widget("lockvruler")) , m_xVRulerRightCBox(m_xBuilder->weld_check_button("vrulerright")) + , m_xVRulerRightImg(m_xBuilder->weld_widget("lockvrulerright")) , m_xVMetric(m_xBuilder->weld_combo_box("vrulercombobox")) , m_xSmoothCBox(m_xBuilder->weld_check_button("smoothscroll")) + , m_xSmoothImg(m_xBuilder->weld_widget("locksmoothscroll")) , m_xGrfCB(m_xBuilder->weld_check_button("graphics")) + , m_xGrfImg(m_xBuilder->weld_widget("lockgraphics")) , m_xTableCB(m_xBuilder->weld_check_button("tables")) + , m_xTableImg(m_xBuilder->weld_widget("locktables")) , m_xDrwCB(m_xBuilder->weld_check_button("drawings")) + , m_xDrwImg(m_xBuilder->weld_widget("lockdrawings")) , m_xPostItCB(m_xBuilder->weld_check_button("comments")) + , m_xPostItImg(m_xBuilder->weld_widget("lockcomments")) , m_xSettingsFrame(m_xBuilder->weld_frame("settingsframe")) , m_xSettingsLabel(m_xBuilder->weld_label("settingslabel")) , m_xMetricLabel(m_xBuilder->weld_label("measureunitlabel")) , m_xMetricLB(m_xBuilder->weld_combo_box("measureunit")) , m_xShowInlineTooltips(m_xBuilder->weld_check_button("changestooltip")) + , m_xShowInlineTooltipsImg(m_xBuilder->weld_widget("lockchangestooltip")) , m_xShowOutlineContentVisibilityButton(m_xBuilder->weld_check_button("outlinecontentvisibilitybutton")) + , m_xShowOutlineContentVImg(m_xBuilder->weld_widget("lockoutlinecontentvisibility")) , m_xTreatSubOutlineLevelsAsContent(m_xBuilder->weld_check_button("suboutlinelevelsascontent")) + , m_xTreatSubOutlineLevelsImg(m_xBuilder->weld_widget("locksuboutlinelevels")) , m_xShowChangesInMargin(m_xBuilder->weld_check_button("changesinmargin")) + , m_xShowChangesInMarginImg(m_xBuilder->weld_widget("lockchangesinmargin")) , m_xFieldHiddenCB(m_xBuilder->weld_check_button("hiddentextfield")) + , m_xFieldHiddenImg(m_xBuilder->weld_widget("lockhiddentextfield")) , m_xFieldHiddenParaCB(m_xBuilder->weld_check_button("hiddenparafield")) + , m_xFieldHiddenParaImg(m_xBuilder->weld_widget("lockhiddenparafield")) { m_xShowOutlineContentVisibilityButton->connect_toggled(LINK(this, SwContentOptPage, ShowOutlineContentVisibilityButtonHdl)); @@ -187,25 +203,88 @@ static void lcl_SelectMetricLB(weld::ComboBox& rMetric, TypedWhichId<SfxUInt16It void SwContentOptPage::Reset(const SfxItemSet* rSet) { + bool bReadOnly = false; const SwElemItem* pElemAttr = rSet->GetItemIfSet( FN_PARAM_ELEM , false ); if(pElemAttr) { + bReadOnly = officecfg::Office::Writer::Content::Display::Table::isReadOnly(); m_xTableCB->set_active(pElemAttr->m_bTable); + m_xTableCB->set_sensitive(!bReadOnly); + m_xTableImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::Display::GraphicObject::isReadOnly(); m_xGrfCB->set_active(pElemAttr->m_bGraphic); + m_xGrfCB->set_sensitive(!bReadOnly); + m_xGrfImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::Display::DrawingControl::isReadOnly(); m_xDrwCB->set_active(pElemAttr->m_bDrawing); + m_xDrwCB->set_sensitive(!bReadOnly); + m_xDrwImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::Display::Note::isReadOnly(); m_xPostItCB->set_active(pElemAttr->m_bNotes); + m_xPostItCB->set_sensitive(!bReadOnly); + m_xPostItCB->set_visible(pElemAttr->m_bNotes); + + bReadOnly = officecfg::Office::Writer::Layout::Line::Guide::isReadOnly(); m_xCrossCB->set_active(pElemAttr->m_bCrosshair); + m_xCrossCB->set_sensitive(!bReadOnly); + m_xCrossImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Layout::Window::VerticalRuler::isReadOnly(); m_xVRulerCBox->set_active(pElemAttr->m_bVertRuler); + m_xVRulerCBox->set_sensitive(!bReadOnly); + m_xVRulerImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Layout::Window::IsVerticalRulerRight::isReadOnly(); m_xVRulerRightCBox->set_active(pElemAttr->m_bVertRulerRight); + m_xVRulerRightCBox->set_sensitive(!bReadOnly); + m_xVRulerRightImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Layout::Window::SmoothScroll::isReadOnly(); m_xSmoothCBox->set_active(pElemAttr->m_bSmoothScroll); + m_xSmoothCBox->set_sensitive(!bReadOnly); + m_xSmoothImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::Display::ShowInlineTooltips::isReadOnly(); m_xShowInlineTooltips->set_active(pElemAttr->m_bShowInlineTooltips); + m_xShowInlineTooltips->set_sensitive(!bReadOnly); + m_xShowInlineTooltipsImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::Display::ShowOutlineContentVisibilityButton::isReadOnly(); m_xShowOutlineContentVisibilityButton->set_active(pElemAttr->m_bShowOutlineContentVisibilityButton); + m_xShowOutlineContentVisibilityButton->set_sensitive(!bReadOnly); + m_xShowOutlineContentVImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::Display::TreatSubOutlineLevelsAsContent::isReadOnly(); m_xTreatSubOutlineLevelsAsContent->set_active(pElemAttr->m_bTreatSubOutlineLevelsAsContent); - m_xTreatSubOutlineLevelsAsContent->set_sensitive(pElemAttr->m_bShowOutlineContentVisibilityButton); + m_xTreatSubOutlineLevelsAsContent->set_sensitive(pElemAttr->m_bShowOutlineContentVisibilityButton && !bReadOnly); + m_xTreatSubOutlineLevelsImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::Display::ShowChangesInMargin::isReadOnly(); m_xShowChangesInMargin->set_active(pElemAttr->m_bShowChangesInMargin); + m_xShowChangesInMargin->set_sensitive(!bReadOnly); + m_xShowChangesInMarginImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::NonprintingCharacter::HiddenText::isReadOnly(); m_xFieldHiddenCB->set_active( pElemAttr->m_bFieldHiddenText ); + m_xFieldHiddenCB->set_sensitive(!bReadOnly); + m_xFieldHiddenImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Content::NonprintingCharacter::HiddenParagraph::isReadOnly(); m_xFieldHiddenParaCB->set_active( pElemAttr->m_bShowHiddenPara ); + m_xFieldHiddenParaCB->set_sensitive(!bReadOnly); + m_xFieldHiddenParaImg->set_visible(bReadOnly); } + + bReadOnly = officecfg::Office::Writer::Layout::Window::HorizontalRulerUnit::isReadOnly(); + m_xHMetric->set_sensitive(!bReadOnly); + m_xHMetricImg->set_visible(bReadOnly); + + bReadOnly = officecfg::Office::Writer::Layout::Window::VerticalRulerUnit::isReadOnly(); + m_xVMetric->set_sensitive(!bReadOnly); + m_xMetricLB->set_active(-1); lcl_SelectMetricLB(*m_xMetricLB, SID_ATTR_METRIC, *rSet); lcl_SelectMetricLB(*m_xHMetric, FN_HSCROLL_METRIC, *rSet); @@ -303,7 +382,8 @@ bool SwContentOptPage::FillItemSet(SfxItemSet* rSet) IMPL_LINK(SwContentOptPage, VertRulerHdl, weld::Toggleable&, rBox, void) { - m_xVRulerRightCBox->set_sensitive(rBox.get_sensitive() && rBox.get_active()); + m_xVRulerRightCBox->set_sensitive(rBox.get_sensitive() && rBox.get_active() && + !officecfg::Office::Writer::Layout::Window::IsVerticalRulerRight::isReadOnly()); } IMPL_LINK(SwContentOptPage, ShowOutlineContentVisibilityButtonHdl, weld::Toggleable&, rBox, void) |