summaryrefslogtreecommitdiff
path: root/sw/source/ui/config
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga.extern@allotropia.de>2023-11-17 19:03:51 +0100
committerBalazs Varga <balazs.varga.extern@allotropia.de>2023-11-20 12:55:55 +0100
commit3e81415f7f71b7fe99342c82b3c54011fbcb2dbb (patch)
treea42a4d196d52bb361f9603e46db07acb2815447c /sw/source/ui/config
parent72928fa459f8e67c30a2e2357424ab75d3105a26 (diff)
tdf#158136 - UI: Part 31 - Unify lockdown behavior of Options dialog
for Writer - AutoCaption Page. Change-Id: Ia3c37510477542556c3302d2013fe10a4ae00545 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159594 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Diffstat (limited to 'sw/source/ui/config')
-rw-r--r--sw/source/ui/config/optload.cxx503
1 files changed, 502 insertions, 1 deletions
diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx
index 675a2d48e8d6..3adf4dce4e34 100644
--- a/sw/source/ui/config/optload.cxx
+++ b/sw/source/ui/config/optload.cxx
@@ -55,6 +55,436 @@
using namespace ::com::sun::star;
+static bool lcl_isPropertyReadOnly(const SwCapObjType eType, const CapConfigProp ePropType, const SvGlobalName& rOleId)
+{
+ bool bReadOnly = false;
+
+ switch (ePropType)
+ {
+ case PROP_CAP_OBJECT_ENABLE:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Enable::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Enable::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Enable::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Enable::isReadOnly();
+ } else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_CATEGORY:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Category::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Category::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Category::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Category::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Category::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Category::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Category::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Category::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Category::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_NUMBERING:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Numbering::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Numbering::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Numbering::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Numbering::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Numbering::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Numbering::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Numbering::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Numbering::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Numbering::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_NUMBERINGSEPARATOR:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::NumberingSeparator::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::NumberingSeparator::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::NumberingSeparator::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::NumberingSeparator::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::NumberingSeparator::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::NumberingSeparator::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::NumberingSeparator::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::NumberingSeparator::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::NumberingSeparator::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_CAPTIONTEXT:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::CaptionText::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::CaptionText::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::CaptionText::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::CaptionText::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::CaptionText::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::CaptionText::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::CaptionText::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::CaptionText::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::CaptionText::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_DELIMITER:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Delimiter::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Delimiter::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Delimiter::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Delimiter::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Delimiter::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Delimiter::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Delimiter::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Delimiter::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Delimiter::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_LEVEL:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Level::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Level::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Level::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Level::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Level::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Level::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Level::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Level::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Level::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_POSITION:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Position::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Position::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Position::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Position::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Position::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Position::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Position::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Position::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Position::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_CHARACTERSTYLE:
+ {
+ switch (eType)
+ {
+ case TABLE_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::CharacterStyle::isReadOnly();
+ break;
+ case FRAME_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::CharacterStyle::isReadOnly();
+ break;
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::CharacterStyle::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::CharacterStyle::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::CharacterStyle::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::CharacterStyle::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::CharacterStyle::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::CharacterStyle::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::CharacterStyle::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case PROP_CAP_OBJECT_APPLYATTRIBUTES:
+ {
+ switch (eType)
+ {
+ case GRAPHIC_CAP:
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::ApplyAttributes::isReadOnly();
+ break;
+ case OLE_CAP:
+ {
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::ApplyAttributes::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::ApplyAttributes::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::ApplyAttributes::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::ApplyAttributes::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::ApplyAttributes::isReadOnly();
+ }
+ else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::ApplyAttributes::isReadOnly();
+ }
+ else {
+ // Should not reach it.
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ return bReadOnly;
+}
sal_uInt32 SwFieldUnitTable::Count()
{
@@ -516,21 +946,31 @@ SwCaptionOptPage::SwCaptionOptPage(weld::Container* pPage, weld::DialogControlle
, m_aTextFilter(m_sNone)
, m_xCheckLB(m_xBuilder->weld_tree_view("objects"))
, m_xLbCaptionOrder(m_xBuilder->weld_combo_box("captionorder"))
+ , m_xLbCaptionOrderImg(m_xBuilder->weld_widget("lockcaptionorder"))
, m_xSettingsGroup(m_xBuilder->weld_widget("settings"))
, m_xCategoryBox(m_xBuilder->weld_combo_box("category"))
+ , m_xCategoryBoxImg(m_xBuilder->weld_widget("lockcategory"))
, m_xFormatText(m_xBuilder->weld_label("numberingft"))
, m_xFormatBox(m_xBuilder->weld_combo_box("numbering"))
+ , m_xFormatBoxImg(m_xBuilder->weld_widget("locknumbering"))
, m_xNumberingSeparatorFT(m_xBuilder->weld_label("numseparatorft"))
, m_xNumberingSeparatorED(m_xBuilder->weld_entry("numseparator"))
+ , m_xNumberingSeparatorImg(m_xBuilder->weld_widget("locknumseparator"))
, m_xTextText(m_xBuilder->weld_label("separatorft"))
, m_xTextEdit(m_xBuilder->weld_entry("separator"))
+ , m_xTextEditImg(m_xBuilder->weld_widget("lockseparator"))
, m_xPosBox(m_xBuilder->weld_combo_box("position"))
+ , m_xPosBoxImg(m_xBuilder->weld_widget("lockposition"))
, m_xNumCapt(m_xBuilder->weld_widget("numcaption"))
, m_xLbLevel(m_xBuilder->weld_combo_box("level"))
+ , m_xLbLevelImg(m_xBuilder->weld_widget("locklevel"))
, m_xEdDelim(m_xBuilder->weld_entry("chapseparator"))
+ , m_xEdDelimImg(m_xBuilder->weld_widget("lockchapseparator"))
, m_xCategory(m_xBuilder->weld_widget("categoryformat"))
, m_xCharStyleLB(m_xBuilder->weld_combo_box("charstyle"))
+ , m_xCharStyleImg(m_xBuilder->weld_widget("lockcharstyle"))
, m_xApplyBorderCB(m_xBuilder->weld_check_button("applyborder"))
+ , m_xApplyBorderImg(m_xBuilder->weld_widget("lockapplyborder"))
, m_xPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreview))
{
m_xCategoryBox->connect_entry_insert_text(LINK(this, SwCaptionOptPage, TextFilterHdl));
@@ -674,17 +1114,24 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet)
// Writer objects
int nPos = 0;
+ bool bReadOnly = false;
m_xCheckLB->append();
m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
m_xCheckLB->set_text(nPos, m_sSWTable, 0);
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Enable::isReadOnly();
+ m_xCheckLB->set_sensitive(nPos, !bReadOnly);
SetOptions(nPos++, TABLE_CAP);
m_xCheckLB->append();
m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
m_xCheckLB->set_text(nPos, m_sSWFrame, 0);
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Enable::isReadOnly();
+ m_xCheckLB->set_sensitive(nPos, !bReadOnly);
SetOptions(nPos++, FRAME_CAP);
m_xCheckLB->append();
m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
m_xCheckLB->set_text(nPos, m_sSWGraphic, 0);
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Enable::isReadOnly();
+ m_xCheckLB->set_sensitive(nPos, !bReadOnly);
SetOptions(nPos++, GRAPHIC_CAP);
// get Productname and -version
@@ -710,10 +1157,29 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet)
m_xCheckLB->append();
m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
m_xCheckLB->set_text(nPos, sClass, 0);
+ if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Enable::isReadOnly();
+ } else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
+ bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Enable::isReadOnly();
+ }
+ else {
+ //
+ }
+ m_xCheckLB->set_sensitive(nPos, !bReadOnly);
SetOptions( nPos++, OLE_CAP, &rOleId );
}
m_xLbCaptionOrder->set_active(
SW_MOD()->GetModuleConfig()->IsCaptionOrderNumberingFirst() ? 1 : 0);
+ m_xLbCaptionOrder->set_sensitive(!officecfg::Office::Writer::Insert::Caption::CaptionOrderNumberingFirst::isReadOnly());
+ m_xLbCaptionOrderImg->set_visible(officecfg::Office::Writer::Insert::Caption::CaptionOrderNumberingFirst::isReadOnly());
m_xCheckLB->select(0);
ShowEntryHdl(*m_xCheckLB);
}
@@ -810,6 +1276,38 @@ void SwCaptionOptPage::UpdateEntry(int nSelEntry)
m_xCategoryBox->set_active(nPos);
}
+ bool bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_CATEGORY, pOpt->GetOleId());
+ m_xCategoryBox->set_sensitive(bChecked && !bReadOnly);
+ m_xCategoryBoxImg->set_visible(bReadOnly);
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_NUMBERING, pOpt->GetOleId());
+ m_xFormatBox->set_sensitive(bChecked && !bReadOnly);
+ m_xFormatBoxImg->set_visible(bReadOnly);
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_NUMBERINGSEPARATOR, pOpt->GetOleId());
+ m_xNumberingSeparatorED->set_sensitive(bNumSep && !bReadOnly);
+ m_xNumberingSeparatorImg->set_visible(bReadOnly);
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_CAPTIONTEXT, pOpt->GetOleId());
+ m_xTextEdit->set_sensitive(bChecked && !bReadOnly);
+ m_xTextEditImg->set_visible(bReadOnly);
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_DELIMITER, pOpt->GetOleId());
+ m_xPosBox->set_sensitive(bChecked && !bReadOnly);
+ m_xPosBoxImg->set_visible(bReadOnly);
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_LEVEL, pOpt->GetOleId());
+ m_xLbLevel->set_sensitive(bChecked && !bReadOnly);
+ m_xLbLevelImg->set_visible(bReadOnly);
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_POSITION, pOpt->GetOleId());
+ m_xEdDelim->set_sensitive(bChecked && !bReadOnly);
+ m_xEdDelimImg->set_visible(bReadOnly);
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_CHARACTERSTYLE, pOpt->GetOleId());
+ m_xCharStyleLB->set_sensitive(bChecked && !bReadOnly);
+ m_xCharStyleImg->set_visible(bReadOnly);
+
for (sal_Int32 i = 0; i < m_xFormatBox->get_count(); i++)
{
if (pOpt->GetNumType() == m_xFormatBox->get_id(i).toUInt32())
@@ -844,8 +1342,11 @@ void SwCaptionOptPage::UpdateEntry(int nSelEntry)
m_xCharStyleLB->set_active_text(pOpt->GetCharacterStyle());
else
m_xCharStyleLB->set_active(0);
- m_xApplyBorderCB->set_sensitive(m_xCategoryBox->get_sensitive() &&
+
+ bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_APPLYATTRIBUTES, pOpt->GetOleId());
+ m_xApplyBorderCB->set_sensitive(m_xCategoryBox->get_sensitive() && !bReadOnly &&
pOpt->GetObjType() != TABLE_CAP && pOpt->GetObjType() != FRAME_CAP );
+ m_xApplyBorderImg->set_visible(bReadOnly);
m_xApplyBorderCB->set_active(pOpt->CopyAttributes());
}