summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga.extern@allotropia.de>2023-11-23 10:45:24 +0100
committerBalazs Varga <balazs.varga.extern@allotropia.de>2023-11-24 14:17:47 +0100
commit256ec735299e95f03f87a1356a30147c67388d24 (patch)
tree6d196ec946545ca4df40837816f4f286c2178ba6 /sd
parentda0ca6a060e7df6fec65af502484ae0fda0d3033 (diff)
tdf#158222 - UI: Part 39 - Unify lockdown behavior of Options dialog
for Impress - General Page. Change-Id: Idd7240b6c0ccfec8929e2f224a63ec5c0a8ad331 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159854 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/dlg/tpoption.cxx55
-rw-r--r--sd/source/ui/inc/tpoption.hxx9
-rw-r--r--sd/uiconfig/simpress/ui/optimpressgeneralpage.ui140
3 files changed, 193 insertions, 11 deletions
diff --git a/sd/source/ui/dlg/tpoption.cxx b/sd/source/ui/dlg/tpoption.cxx
index c7ee0843a42b..b177c8e94064 100644
--- a/sd/source/ui/dlg/tpoption.cxx
+++ b/sd/source/ui/dlg/tpoption.cxx
@@ -23,6 +23,7 @@
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <com/sun/star/uno/Exception.hpp>
+#include <officecfg/Office/Impress.hxx>
#include <sfx2/module.hxx>
#include <svx/svxids.hrc>
#include <svx/strarray.hxx>
@@ -197,15 +198,24 @@ SdTpOptionsMisc::SdTpOptionsMisc(weld::Container* pPage, weld::DialogController*
, nWidth(0)
, nHeight(0)
, m_xCbxQuickEdit(m_xBuilder->weld_check_button("qickedit"))
+ , m_xCbxQuickEditImg(m_xBuilder->weld_widget("lockqickedit"))
, m_xCbxPickThrough(m_xBuilder->weld_check_button("textselected"))
+ , m_xCbxPickThroughImg(m_xBuilder->weld_widget("locktextselected"))
, m_xNewDocumentFrame(m_xBuilder->weld_frame("newdocumentframe"))
, m_xCbxStartWithTemplate(m_xBuilder->weld_check_button("startwithwizard"))
+ , m_xCbxStartWithTemplateImg(m_xBuilder->weld_widget("lockstartwithwizard"))
, m_xCbxMasterPageCache(m_xBuilder->weld_check_button("backgroundback"))
+ , m_xCbxMasterPageCacheImg(m_xBuilder->weld_widget("lockbackgroundback"))
, m_xCbxCopy(m_xBuilder->weld_check_button("copywhenmove"))
+ , m_xCbxCopyImg(m_xBuilder->weld_widget("lockcopywhenmove"))
, m_xCbxMarkedHitMovesAlways(m_xBuilder->weld_check_button("objalwymov"))
+ , m_xCbxMarkedHitMovesAlwaysImg(m_xBuilder->weld_widget("lockobjalwymov"))
, m_xLbMetric(m_xBuilder->weld_combo_box("units"))
+ , m_xLbMetricImg(m_xBuilder->weld_widget("lockunits"))
, m_xMtrFldTabstop(m_xBuilder->weld_metric_spin_button("metricFields", FieldUnit::MM))
+ , m_xMtrFldTabstopImg(m_xBuilder->weld_widget("locktabstop"))
, m_xCbxCompatibility(m_xBuilder->weld_check_button("cbCompatibility"))
+ , m_xCbxCompatibilityImg(m_xBuilder->weld_widget("lockcbCompatibility"))
, m_xScaleFrame(m_xBuilder->weld_frame("scaleframe"))
, m_xCbScale(m_xBuilder->weld_combo_box("scaleBox"))
, m_xNewDocLb(m_xBuilder->weld_label("newdoclbl"))
@@ -432,13 +442,41 @@ void SdTpOptionsMisc::Reset( const SfxItemSet* rAttrs )
{
SdOptionsMiscItem aOptsItem( rAttrs->Get( ATTR_OPTIONS_MISC ) );
+ bool bReadOnly = officecfg::Office::Impress::Misc::NewDoc::AutoPilot::isReadOnly();
m_xCbxStartWithTemplate->set_active( aOptsItem.GetOptionsMisc().IsStartWithTemplate() );
+ m_xCbxStartWithTemplate->set_sensitive(!bReadOnly);
+ m_xCbxStartWithTemplateImg->set_visible(bReadOnly);
+
+ bReadOnly = officecfg::Office::Impress::Misc::ObjectMoveable::isReadOnly();
m_xCbxMarkedHitMovesAlways->set_active( aOptsItem.GetOptionsMisc().IsMarkedHitMovesAlways() );
+ m_xCbxMarkedHitMovesAlways->set_sensitive(!bReadOnly);
+ m_xCbxMarkedHitMovesAlwaysImg->set_visible(bReadOnly);
+
+ bReadOnly = officecfg::Office::Impress::Misc::TextObject::QuickEditing::isReadOnly();
m_xCbxQuickEdit->set_active( aOptsItem.GetOptionsMisc().IsQuickEdit() );
+ m_xCbxQuickEdit->set_sensitive(!bReadOnly);
+ m_xCbxQuickEditImg->set_visible(bReadOnly);
+
+ bReadOnly = officecfg::Office::Impress::Misc::TextObject::Selectable::isReadOnly();
m_xCbxPickThrough->set_active( aOptsItem.GetOptionsMisc().IsPickThrough() );
+ m_xCbxPickThrough->set_sensitive(!bReadOnly);
+ m_xCbxPickThroughImg->set_visible(bReadOnly);
+
+ bReadOnly = officecfg::Office::Impress::Misc::BackgroundCache::isReadOnly();
m_xCbxMasterPageCache->set_active( aOptsItem.GetOptionsMisc().IsMasterPagePaintCaching() );
+ m_xCbxMasterPageCache->set_sensitive(!bReadOnly);
+ m_xCbxMasterPageCacheImg->set_visible(bReadOnly);
+
+ bReadOnly = officecfg::Office::Impress::Misc::CopyWhileMoving::isReadOnly();
m_xCbxCopy->set_active( aOptsItem.GetOptionsMisc().IsDragWithCopy() );
+ m_xCbxCopy->set_sensitive(!bReadOnly);
+ m_xCbxCopyImg->set_visible(bReadOnly);
+
+ bReadOnly = officecfg::Office::Impress::Misc::Compatibility::AddBetween::isReadOnly();
m_xCbxCompatibility->set_active( aOptsItem.GetOptionsMisc().IsSummationOfParagraphs() );
+ m_xCbxCompatibility->set_sensitive(!bReadOnly);
+ m_xCbxCompatibilityImg->set_visible(bReadOnly);
+
m_xCbxDistort->set_active( aOptsItem.GetOptionsMisc().IsCrookNoContortion() );
m_xCbxStartWithTemplate->save_state();
m_xCbxMarkedHitMovesAlways->save_state();
@@ -477,6 +515,21 @@ void SdTpOptionsMisc::Reset( const SfxItemSet* rAttrs )
const SfxUInt16Item& rItem = rAttrs->Get( nWhich2 );
SetMetricValue( *m_xMtrFldTabstop, rItem.GetValue(), eUnit );
}
+
+ if (SdOptionsGeneric::isMetricSystem())
+ bReadOnly = officecfg::Office::Impress::Layout::Other::MeasureUnit::Metric::isReadOnly();
+ else
+ bReadOnly = officecfg::Office::Impress::Layout::Other::MeasureUnit::NonMetric::isReadOnly();
+ m_xLbMetric->set_sensitive(!bReadOnly);
+ m_xLbMetricImg->set_visible(bReadOnly);
+
+ if (SdOptionsGeneric::isMetricSystem())
+ bReadOnly = officecfg::Office::Impress::Layout::Other::TabStop::Metric::isReadOnly();
+ else
+ bReadOnly = officecfg::Office::Impress::Layout::Other::TabStop::NonMetric::isReadOnly();
+ m_xMtrFldTabstop->set_sensitive(!bReadOnly);
+ m_xMtrFldTabstopImg->set_visible(bReadOnly);
+
m_xLbMetric->save_value();
m_xMtrFldTabstop->save_value();
//Scale
@@ -613,7 +666,7 @@ void SdTpOptionsMisc::UpdateCompatibilityControls()
// bIsEnabled and disable the controls.
}
- m_xCbxCompatibility->set_sensitive(bIsEnabled);
+ m_xCbxCompatibility->set_sensitive(bIsEnabled && !officecfg::Office::Impress::Misc::Compatibility::AddBetween::isReadOnly());
}
void SdTpOptionsMisc::PageCreated(const SfxAllItemSet& aSet)
diff --git a/sd/source/ui/inc/tpoption.hxx b/sd/source/ui/inc/tpoption.hxx
index 5ba80c3842ed..4184cd7400d5 100644
--- a/sd/source/ui/inc/tpoption.hxx
+++ b/sd/source/ui/inc/tpoption.hxx
@@ -75,19 +75,28 @@ private:
MapUnit ePoolUnit;
std::unique_ptr<weld::CheckButton> m_xCbxQuickEdit;
+ std::unique_ptr<weld::Widget> m_xCbxQuickEditImg;
std::unique_ptr<weld::CheckButton> m_xCbxPickThrough;
+ std::unique_ptr<weld::Widget> m_xCbxPickThroughImg;
std::unique_ptr<weld::Frame> m_xNewDocumentFrame;
std::unique_ptr<weld::CheckButton> m_xCbxStartWithTemplate;
+ std::unique_ptr<weld::Widget> m_xCbxStartWithTemplateImg;
std::unique_ptr<weld::CheckButton> m_xCbxMasterPageCache;
+ std::unique_ptr<weld::Widget> m_xCbxMasterPageCacheImg;
std::unique_ptr<weld::CheckButton> m_xCbxCopy;
+ std::unique_ptr<weld::Widget> m_xCbxCopyImg;
std::unique_ptr<weld::CheckButton> m_xCbxMarkedHitMovesAlways;
+ std::unique_ptr<weld::Widget> m_xCbxMarkedHitMovesAlwaysImg;
std::unique_ptr<weld::ComboBox> m_xLbMetric;
+ std::unique_ptr<weld::Widget> m_xLbMetricImg;
std::unique_ptr<weld::MetricSpinButton> m_xMtrFldTabstop;
+ std::unique_ptr<weld::Widget> m_xMtrFldTabstopImg;
std::unique_ptr<weld::CheckButton> m_xCbxCompatibility;
+ std::unique_ptr<weld::Widget> m_xCbxCompatibilityImg;
//Scale
std::unique_ptr<weld::Frame> m_xScaleFrame;
diff --git a/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui b/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui
index 5566cab92cdd..60f023ea7881 100644
--- a/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui
+++ b/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui
@@ -50,7 +50,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -74,6 +74,19 @@
</child>
</object>
<packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockstartwithwizard">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
@@ -106,7 +119,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=6 -->
+ <!-- n-columns=2 n-rows=6 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -131,7 +144,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -172,7 +185,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">4</property>
</packing>
</child>
@@ -220,7 +233,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">5</property>
</packing>
</child>
@@ -240,7 +253,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
@@ -255,7 +268,7 @@
<property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">3</property>
</packing>
</child>
@@ -275,10 +288,78 @@
</child>
</object>
<packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcopywhenmove">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockbackgroundback">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="lockobjalwymov">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockunits">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locktabstop">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
@@ -306,7 +387,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid6">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -329,6 +410,19 @@
</child>
</object>
<packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcbCompatibility">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
@@ -375,7 +469,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=2 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -399,7 +493,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -418,6 +512,32 @@
</child>
</object>
<packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockqickedit">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locktextselected">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>