sc/source/ui/inc/tpcalc.hxx              |   16 ++
 sc/source/ui/optdlg/tpcalc.cxx           |  104 ++++++++++++-
 sc/uiconfig/scalc/ui/optcalculatepage.ui |  240 +++++++++++++++++++++++++++----
 3 files changed, 321 insertions(+), 39 deletions(-)

New commits:
commit a6ead255af6efaede730a980c3a4a80ff193c8e5
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Fri Dec 8 12:33:08 2023 +0100
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Sun Dec 10 17:56:31 2023 +0100

    tdf#158467 - UI: Part 50 - Unify lockdown behavior of Options dialog
    
    for Calc - Calculate Page.
    
    Change-Id: Ibe728e2ffc122879ee66abb88927be355d41348a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160462
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>

diff --git a/sc/source/ui/inc/tpcalc.hxx b/sc/source/ui/inc/tpcalc.hxx
index 87b4f903684d..6bfacaee3c30 100644
--- a/sc/source/ui/inc/tpcalc.hxx
+++ b/sc/source/ui/inc/tpcalc.hxx
@@ -21,6 +21,8 @@
 
 #include <sfx2/tabdlg.hxx>
 #include "editfield.hxx"
+#include <com/sun/star/configuration/ReadWriteAccess.hpp>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
 
 class ScDocOptions;
 
@@ -38,32 +40,46 @@ public:
     virtual DeactivateRC   DeactivatePage  ( SfxItemSet* pSet ) override;
 
 private:
+    css::uno::Reference<css::configuration::XReadWriteAccess> 
m_xReadWriteAccess;
+
     std::unique_ptr<ScDocOptions> pOldOptions;
     std::unique_ptr<ScDocOptions> pLocalOptions;
 
     std::unique_ptr<weld::CheckButton> m_xBtnIterate;
+    std::unique_ptr<weld::Widget> m_xBtnIterateImg;
     std::unique_ptr<weld::Label> m_xFtSteps;
     std::unique_ptr<weld::SpinButton> m_xEdSteps;
+    std::unique_ptr<weld::Widget> m_xEdStepsImg;
     std::unique_ptr<weld::Label> m_xFtEps;
     std::unique_ptr<ScDoubleField> m_xEdEps;
+    std::unique_ptr<weld::Widget> m_xEdEpsImg;
 
     std::unique_ptr<weld::RadioButton> m_xBtnDateStd;
     std::unique_ptr<weld::RadioButton> m_xBtnDateSc10;
     std::unique_ptr<weld::RadioButton> m_xBtnDate1904;
+    std::unique_ptr<weld::Widget> m_xDateImg;
 
     std::unique_ptr<weld::CheckButton> m_xBtnCase;
+    std::unique_ptr<weld::Widget> m_xBtnCaseImg;
     std::unique_ptr<weld::CheckButton> m_xBtnCalc;
+    std::unique_ptr<weld::Widget> m_xBtnCalcImg;
     std::unique_ptr<weld::CheckButton> m_xBtnMatch;
+    std::unique_ptr<weld::Widget> m_xBtnMatchImg;
     std::unique_ptr<weld::RadioButton> m_xBtnWildcards;
     std::unique_ptr<weld::RadioButton> m_xBtnRegex;
     std::unique_ptr<weld::RadioButton> m_xBtnLiteral;
+    std::unique_ptr<weld::Widget> m_xFormulaImg;
     std::unique_ptr<weld::CheckButton> m_xBtnLookUp;
+    std::unique_ptr<weld::Widget> m_xBtnLookUpImg;
     std::unique_ptr<weld::CheckButton> m_xBtnGeneralPrec;
+    std::unique_ptr<weld::Widget> m_xBtnGeneralPrecImg;
 
     std::unique_ptr<weld::Label> m_xFtPrec;
     std::unique_ptr<weld::SpinButton> m_xEdPrec;
+    std::unique_ptr<weld::Widget> m_xEdPrecImg;
 
     std::unique_ptr<weld::CheckButton> m_xBtnThread;
+    std::unique_ptr<weld::Widget> m_xBtnThreadImg;
 
 private:
     void            Init();
diff --git a/sc/source/ui/optdlg/tpcalc.cxx b/sc/source/ui/optdlg/tpcalc.cxx
index 356fcd9bd1fb..edeb306b668d 100644
--- a/sc/source/ui/optdlg/tpcalc.cxx
+++ b/sc/source/ui/optdlg/tpcalc.cxx
@@ -38,27 +38,42 @@ ScTpCalcOptions::ScTpCalcOptions(weld::Container* pPage, 
weld::DialogController*
         rCoreAttrs.Get(SID_SCDOCOPTIONS).GetDocOptions()))
     , pLocalOptions(new ScDocOptions)
     , m_xBtnIterate(m_xBuilder->weld_check_button("iterate"))
+    , m_xBtnIterateImg(m_xBuilder->weld_widget("lockiterate"))
     , m_xFtSteps(m_xBuilder->weld_label("stepsft"))
     , m_xEdSteps(m_xBuilder->weld_spin_button("steps"))
+    , m_xEdStepsImg(m_xBuilder->weld_widget("locksteps"))
     , m_xFtEps(m_xBuilder->weld_label("minchangeft"))
     , m_xEdEps(new ScDoubleField(m_xBuilder->weld_entry("minchange")))
+    , m_xEdEpsImg(m_xBuilder->weld_widget("lockminchange"))
     , m_xBtnDateStd(m_xBuilder->weld_radio_button("datestd"))
     , m_xBtnDateSc10(m_xBuilder->weld_radio_button("datesc10"))
     , m_xBtnDate1904(m_xBuilder->weld_radio_button("date1904"))
+    , m_xDateImg(m_xBuilder->weld_widget("lockdate"))
     , m_xBtnCase(m_xBuilder->weld_check_button("case"))
+    , m_xBtnCaseImg(m_xBuilder->weld_widget("lockcase"))
     , m_xBtnCalc(m_xBuilder->weld_check_button("calc"))
+    , m_xBtnCalcImg(m_xBuilder->weld_widget("lockcalc"))
     , m_xBtnMatch(m_xBuilder->weld_check_button("match"))
+    , m_xBtnMatchImg(m_xBuilder->weld_widget("lockmatch"))
     , m_xBtnWildcards(m_xBuilder->weld_radio_button("formulawildcards"))
     , m_xBtnRegex(m_xBuilder->weld_radio_button("formularegex"))
     , m_xBtnLiteral(m_xBuilder->weld_radio_button("formulaliteral"))
+    , m_xFormulaImg(m_xBuilder->weld_widget("lockformulawild"))
     , m_xBtnLookUp(m_xBuilder->weld_check_button("lookup"))
+    , m_xBtnLookUpImg(m_xBuilder->weld_widget("locklookup"))
     , m_xBtnGeneralPrec(m_xBuilder->weld_check_button("generalprec"))
+    , m_xBtnGeneralPrecImg(m_xBuilder->weld_widget("lockgeneralprec"))
     , m_xFtPrec(m_xBuilder->weld_label("precft"))
     , m_xEdPrec(m_xBuilder->weld_spin_button("prec"))
+    , m_xEdPrecImg(m_xBuilder->weld_widget("lockprec"))
     , m_xBtnThread(m_xBuilder->weld_check_button("threadingenabled"))
+    , m_xBtnThreadImg(m_xBuilder->weld_widget("lockthreadingenabled"))
 {
     Init();
     SetExchangeSupport();
+
+    css::uno::Reference < css::uno::XComponentContext > 
xContext(::comphelper::getProcessComponentContext());
+    m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(xContext, 
"*");
 }
 
 ScTpCalcOptions::~ScTpCalcOptions()
@@ -90,12 +105,21 @@ void ScTpCalcOptions::Reset(const SfxItemSet* rCoreAttrs)
 
     *pLocalOptions = *pOldOptions;
 
+    bool bReadOnly = 
officecfg::Office::Calc::Calculate::Other::CaseSensitive::isReadOnly();
     m_xBtnCase->set_active( !pLocalOptions->IsIgnoreCase() );
-    m_xBtnCase->set_sensitive( 
!officecfg::Office::Calc::Calculate::Other::CaseSensitive::isReadOnly() );
+    m_xBtnCase->set_sensitive(!bReadOnly);
+    m_xBtnCaseImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Calc::Calculate::Other::Precision::isReadOnly();
     m_xBtnCalc->set_active( pLocalOptions->IsCalcAsShown() );
-    m_xBtnCalc->set_sensitive( 
!officecfg::Office::Calc::Calculate::Other::Precision::isReadOnly() );
+    m_xBtnCalc->set_sensitive(!bReadOnly);
+    m_xBtnCalcImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Calc::Calculate::Other::SearchCriteria::isReadOnly();
     m_xBtnMatch->set_active( pLocalOptions->IsMatchWholeCell() );
-    m_xBtnMatch->set_sensitive( 
!officecfg::Office::Calc::Calculate::Other::SearchCriteria::isReadOnly() );
+    m_xBtnMatch->set_sensitive(!bReadOnly);
+    m_xBtnMatchImg->set_visible(bReadOnly);
+
     bool bWildcards = pLocalOptions->IsFormulaWildcardsEnabled();
     bool bRegex = pLocalOptions->IsFormulaRegexEnabled();
     // If both, Wildcards and Regex, are set then Wildcards shall take
@@ -116,9 +140,20 @@ void ScTpCalcOptions::Reset(const SfxItemSet* rCoreAttrs)
         m_xBtnRegex->set_sensitive( false );
         m_xBtnLiteral->set_sensitive( false );
     }
+    bReadOnly = 
officecfg::Office::Calc::Calculate::Other::Wildcards::isReadOnly() ||
+        
officecfg::Office::Calc::Calculate::Other::RegularExpressions::isReadOnly();
+    m_xFormulaImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Calc::Calculate::Other::FindLabel::isReadOnly();
     m_xBtnLookUp->set_active( pLocalOptions->IsLookUpColRowNames() );
-    m_xBtnLookUp->set_sensitive( 
!officecfg::Office::Calc::Calculate::Other::FindLabel::isReadOnly() );
+    m_xBtnLookUp->set_sensitive(!bReadOnly);
+    m_xBtnLookUpImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Calc::Calculate::IterativeReference::Iteration::isReadOnly();
     m_xBtnIterate->set_active( pLocalOptions->IsIter() );
+    m_xBtnIterate->set_sensitive(!bReadOnly);
+    m_xBtnIterateImg->set_visible(bReadOnly);
+
     m_xEdSteps->set_value( pLocalOptions->GetIterCount() );
     m_xEdEps->SetValue( pLocalOptions->GetIterEps(), 6 );
 
@@ -137,7 +172,45 @@ void ScTpCalcOptions::Reset(const SfxItemSet* rCoreAttrs)
             break;
     }
 
+    // TODO: these option settings need to be simplified.
+    bReadOnly = false;
+    OUString aDateConfPath = officecfg::Office::Calc::Calculate::Other::path() 
+ "/Date/DD";
+    if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aDateConfPath))
+    {
+        css::beans::Property aProperty = 
m_xReadWriteAccess->getPropertyByHierarchicalName(aDateConfPath);
+        bReadOnly = (aProperty.Attributes & 
css::beans::PropertyAttribute::READONLY) != 0;
+    }
+
+    if (!bReadOnly)
+    {
+        aDateConfPath = officecfg::Office::Calc::Calculate::Other::path() + 
"/Date/MM";
+        if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aDateConfPath))
+        {
+            css::beans::Property aProperty = 
m_xReadWriteAccess->getPropertyByHierarchicalName(aDateConfPath);
+            bReadOnly = (aProperty.Attributes & 
css::beans::PropertyAttribute::READONLY) != 0;
+        }
+    }
+
+    if (!bReadOnly)
+    {
+        aDateConfPath = officecfg::Office::Calc::Calculate::Other::path() + 
"/Date/YY";
+        if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aDateConfPath))
+        {
+            css::beans::Property aProperty = 
m_xReadWriteAccess->getPropertyByHierarchicalName(aDateConfPath);
+            bReadOnly = (aProperty.Attributes & 
css::beans::PropertyAttribute::READONLY) != 0;
+        }
+    }
+
+    if (bReadOnly)
+    {
+        m_xBtnDateStd->set_sensitive(false);
+        m_xBtnDateSc10->set_sensitive(false);
+        m_xBtnDate1904->set_sensitive(false);
+        m_xDateImg->set_visible(true);
+    }
+
     sal_uInt16 nPrec = pLocalOptions->GetStdPrecision();
+    bReadOnly = 
officecfg::Office::Calc::Calculate::Other::DecimalPlaces::isReadOnly();
     if (nPrec == SvNumberFormatter::UNLIMITED_PRECISION)
     {
         m_xFtPrec->set_sensitive(false);
@@ -149,11 +222,24 @@ void ScTpCalcOptions::Reset(const SfxItemSet* rCoreAttrs)
     {
         m_xBtnGeneralPrec->set_active(true);
         m_xFtPrec->set_sensitive(true);
-        m_xEdPrec->set_sensitive(true);
+        m_xEdPrec->set_sensitive(!bReadOnly);
         m_xEdPrec->set_value(nPrec);
     }
+    m_xBtnGeneralPrec->set_sensitive(!bReadOnly);
+    m_xBtnGeneralPrecImg->set_visible(bReadOnly);
+    m_xEdPrecImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Calc::Calculate::IterativeReference::Steps::isReadOnly();
+    m_xEdSteps->set_sensitive(!bReadOnly);
+    m_xEdStepsImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Calc::Calculate::IterativeReference::MinimumChange::isReadOnly();
+    m_xEdEps->set_sensitive(!bReadOnly);
+    m_xEdEpsImg->set_visible(bReadOnly);
 
-    m_xBtnThread->set_sensitive( 
!officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::isReadOnly()
 );
+    bReadOnly = 
officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::isReadOnly();
+    m_xBtnThread->set_sensitive(!bReadOnly);
+    m_xBtnThreadImg->set_visible(bReadOnly);
     m_xBtnThread->set_active( 
officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::get()
 );
 
     CheckClickHdl(*m_xBtnIterate);
@@ -281,7 +367,7 @@ IMPL_LINK(ScTpCalcOptions, CheckClickHdl, 
weld::Toggleable&, rBtn, void)
     {
         if (rBtn.get_active())
         {
-            m_xEdPrec->set_sensitive(true);
+            
m_xEdPrec->set_sensitive(!officecfg::Office::Calc::Calculate::Other::DecimalPlaces::isReadOnly());
             m_xFtPrec->set_sensitive(true);
         }
         else
@@ -295,8 +381,8 @@ IMPL_LINK(ScTpCalcOptions, CheckClickHdl, 
weld::Toggleable&, rBtn, void)
         if (rBtn.get_active())
         {
             pLocalOptions->SetIter( true );
-            m_xFtSteps->set_sensitive(true);  m_xEdSteps->set_sensitive(true);
-            m_xFtEps->set_sensitive(true);  m_xEdEps->set_sensitive(true);
+            m_xFtSteps->set_sensitive(true);  
m_xEdSteps->set_sensitive(!officecfg::Office::Calc::Calculate::IterativeReference::Steps::isReadOnly());
+            m_xFtEps->set_sensitive(true);  
m_xEdEps->set_sensitive(!officecfg::Office::Calc::Calculate::IterativeReference::MinimumChange::isReadOnly());
         }
         else
         {
diff --git a/sc/uiconfig/scalc/ui/optcalculatepage.ui 
b/sc/uiconfig/scalc/ui/optcalculatepage.ui
index c88fbdec09a3..f7073fbea926 100644
--- a/sc/uiconfig/scalc/ui/optcalculatepage.ui
+++ b/sc/uiconfig/scalc/ui/optcalculatepage.ui
@@ -28,7 +28,7 @@
         <property name="label-xalign">0</property>
         <property name="shadow-type">none</property>
         <child>
-          <!-- n-columns=2 n-rows=1 -->
+          <!-- n-columns=3 n-rows=1 -->
           <object class="GtkGrid" id="grid4">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
@@ -48,11 +48,24 @@
                 <property name="draw-indicator">True</property>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">0</property>
                 <property name="width">2</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkImage" id="lockthreadingenabled">
+                <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>
           </object>
         </child>
         <child type="label">
@@ -79,7 +92,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>
@@ -102,7 +115,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">0</property>
               </packing>
             </child>
@@ -121,7 +134,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">1</property>
               </packing>
             </child>
@@ -141,7 +154,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">2</property>
               </packing>
             </child>
@@ -160,7 +173,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">3</property>
               </packing>
             </child>
@@ -179,7 +192,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">4</property>
               </packing>
             </child>
@@ -223,6 +236,84 @@
                   </packing>
                 </child>
               </object>
+              <packing>
+                <property name="left-attach">1</property>
+                <property name="top-attach">5</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkImage" id="lockcase">
+                <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="lockcalc">
+                <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="lockmatch">
+                <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="locklookup">
+                <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">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkImage" id="lockgeneralprec">
+                <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="lockprec">
+                <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>
@@ -262,17 +353,42 @@
             <property name="orientation">vertical</property>
             <property name="spacing">3</property>
             <child>
-              <object class="GtkCheckButton" id="iterate">
-                <property name="label" translatable="yes" 
context="optcalculatepage|iterate">_Iterations</property>
+              <object class="GtkBox">
                 <property name="visible">True</property>
-                <property name="can-focus">True</property>
-                <property name="receives-default">False</property>
-                <property name="use-underline">True</property>
-                <property name="draw-indicator">True</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="iterate-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="extended_tip|iterate">Specifies whether formulas 
with iterative references (formulas that are continuously repeated until the 
problem is solved) are calculated after a specific number of 
repetitions.</property>
+                <property name="can-focus">False</property>
+                <child>
+                  <object class="GtkImage" id="lockiterate">
+                    <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="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkCheckButton" id="iterate">
+                    <property name="label" translatable="yes" 
context="optcalculatepage|iterate">_Iterations</property>
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">False</property>
+                    <property name="use-underline">True</property>
+                    <property name="draw-indicator">True</property>
+                    <child internal-child="accessible">
+                      <object class="AtkObject" id="iterate-atkobject">
+                        <property name="AtkObject::accessible-description" 
translatable="yes" context="extended_tip|iterate">Specifies whether formulas 
with iterative references (formulas that are continuously repeated until the 
problem is solved) are calculated after a specific number of 
repetitions.</property>
+                      </object>
+                    </child>
                   </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </object>
               <packing>
@@ -282,7 +398,7 @@
               </packing>
             </child>
             <child>
-              <!-- n-columns=2 n-rows=2 -->
+              <!-- n-columns=3 n-rows=2 -->
               <object class="GtkGrid" id="grid1">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
@@ -299,7 +415,7 @@
                     <property name="xalign">0</property>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">0</property>
                   </packing>
                 </child>
@@ -313,7 +429,7 @@
                     <property name="xalign">0</property>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">1</property>
                   </packing>
                 </child>
@@ -331,7 +447,7 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">1</property>
+                    <property name="left-attach">2</property>
                     <property name="top-attach">0</property>
                   </packing>
                 </child>
@@ -349,7 +465,33 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">1</property>
+                    <property name="left-attach">2</property>
+                    <property name="top-attach">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="locksteps">
+                    <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="lockminchange">
+                    <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>
@@ -386,7 +528,7 @@
         <property name="label-xalign">0</property>
         <property name="shadow-type">none</property>
         <child>
-          <!-- n-columns=1 n-rows=3 -->
+          <!-- n-columns=2 n-rows=3 -->
           <object class="GtkGrid" id="grid2">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
@@ -409,7 +551,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">0</property>
               </packing>
             </child>
@@ -430,7 +572,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">1</property>
               </packing>
             </child>
@@ -451,10 +593,29 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">2</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkImage" id="lockdate">
+                <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>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
           </object>
         </child>
         <child type="label">
@@ -480,7 +641,7 @@
         <property name="label-xalign">0</property>
         <property name="shadow-type">none</property>
         <child>
-          <!-- n-columns=1 n-rows=3 -->
+          <!-- n-columns=2 n-rows=3 -->
           <object class="GtkGrid" id="grid5">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
@@ -503,7 +664,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">0</property>
               </packing>
             </child>
@@ -523,7 +684,7 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">1</property>
               </packing>
             </child>
@@ -543,10 +704,29 @@
                 </child>
               </object>
               <packing>
-                <property name="left-attach">0</property>
+                <property name="left-attach">1</property>
                 <property name="top-attach">2</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkImage" id="lockformulawild">
+                <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>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
           </object>
         </child>
         <child type="label">

Reply via email to