summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/options/optinet2.cxx37
-rw-r--r--cui/source/options/optinet2.hxx8
-rw-r--r--cui/uiconfig/ui/optsecuritypage.ui299
3 files changed, 262 insertions, 82 deletions
diff --git a/cui/source/options/optinet2.cxx b/cui/source/options/optinet2.cxx
index 29fe7d758d8d..90801955edaa 100644
--- a/cui/source/options/optinet2.cxx
+++ b/cui/source/options/optinet2.cxx
@@ -497,19 +497,27 @@ SvxSecurityTabPage::SvxSecurityTabPage(weld::Container* pPage, weld::DialogContr
: SfxTabPage(pPage, pController, "cui/ui/optsecuritypage.ui", "OptSecurityPage", &rSet)
, m_xSecurityOptionsPB(m_xBuilder->weld_button("options"))
, m_xSavePasswordsCB(m_xBuilder->weld_check_button("savepassword"))
+ , m_xSavePasswordsImg(m_xBuilder->weld_widget("locksavepassword"))
, m_xShowConnectionsPB(m_xBuilder->weld_button("connections"))
, m_xMasterPasswordCB(m_xBuilder->weld_check_button("usemasterpassword"))
+ , m_xMasterPasswordImg(m_xBuilder->weld_widget("lockusemasterpassword"))
, m_xMasterPasswordFT(m_xBuilder->weld_label("masterpasswordtext"))
, m_xMasterPasswordPB(m_xBuilder->weld_button("masterpassword"))
, m_xMacroSecFrame(m_xBuilder->weld_container("macrosecurity"))
, m_xMacroSecPB(m_xBuilder->weld_button("macro"))
, m_xCertFrame(m_xBuilder->weld_container("certificatepath"))
, m_xCertPathPB(m_xBuilder->weld_button("cert"))
+ , m_xCertPathImg(m_xBuilder->weld_widget("lockcertipath"))
+ , m_xCertPathLabel(m_xBuilder->weld_label("label7"))
, m_xTSAURLsFrame(m_xBuilder->weld_container("tsaurls"))
, m_xTSAURLsPB(m_xBuilder->weld_button("tsas"))
+ , m_xTSAURLsImg(m_xBuilder->weld_widget("locktsas"))
+ , m_xTSAURLsLabel(m_xBuilder->weld_label("label9"))
, m_xNoPasswordSaveFT(m_xBuilder->weld_label("nopasswordsave"))
, m_xCertMgrPathLB(m_xBuilder->weld_button("browse"))
, m_xParameterEdit(m_xBuilder->weld_entry("parameterfield"))
+ , m_xCertMgrPathImg(m_xBuilder->weld_widget("lockcertimanager"))
+ , m_xCertMgrPathLabel(m_xBuilder->weld_label("label11"))
{
//fdo#65595, we need height-for-width support here, but for now we can
//bodge it
@@ -798,6 +806,16 @@ void SvxSecurityTabPage::InitControls()
m_xMasterPasswordFT->set_sensitive(true);
}
}
+
+ if (officecfg::Office::Common::Passwords::UseStorage::isReadOnly())
+ {
+ m_xSavePasswordsCB->set_sensitive(false);
+ m_xShowConnectionsPB->set_sensitive(false);
+ m_xSavePasswordsImg->set_visible(true);
+ m_xMasterPasswordCB->set_sensitive(false);
+ m_xMasterPasswordPB->set_sensitive(false);
+ m_xMasterPasswordImg->set_visible(true);
+ }
}
catch (const Exception&)
{
@@ -810,6 +828,25 @@ void SvxSecurityTabPage::InitControls()
if (!sCurCertMgr.isEmpty())
m_xParameterEdit->set_text(sCurCertMgr);
+
+ bool bEnable = !officecfg::Office::Common::Security::Scripting::CertMgrPath::isReadOnly();
+ m_xCertMgrPathLB->set_sensitive(bEnable);
+ m_xParameterEdit->set_sensitive(bEnable);
+ m_xCertMgrPathLabel->set_sensitive(bEnable);
+ m_xCertMgrPathImg->set_visible(!bEnable);
+
+ bEnable = !officecfg::Office::Common::Security::Scripting::TSAURLs::isReadOnly();
+ m_xTSAURLsPB->set_sensitive(bEnable);
+ m_xTSAURLsLabel->set_sensitive(bEnable);
+ m_xTSAURLsImg->set_visible(!bEnable);
+
+#ifndef UNX
+ bEnable = !officecfg::Office::Common::Security::Scripting::CertDir::isReadOnly() ||
+ !officecfg::Office::Common::Security::Scripting::ManualCertDir::isReadOnly();
+ m_xCertPathPB->set_sensitive(bEnable);
+ m_xCertPathLabel->set_sensitive(bEnable);
+ m_xCertPathImg->set_visible(!bEnable);
+#endif
}
catch (const uno::Exception&)
{
diff --git a/cui/source/options/optinet2.hxx b/cui/source/options/optinet2.hxx
index f99c30b0b12b..1ad30723f758 100644
--- a/cui/source/options/optinet2.hxx
+++ b/cui/source/options/optinet2.hxx
@@ -90,9 +90,11 @@ private:
std::unique_ptr<weld::Button> m_xSecurityOptionsPB;
std::unique_ptr<weld::CheckButton> m_xSavePasswordsCB;
+ std::unique_ptr<weld::Widget> m_xSavePasswordsImg;
std::unique_ptr<weld::Button> m_xShowConnectionsPB;
std::unique_ptr<weld::CheckButton> m_xMasterPasswordCB;
+ std::unique_ptr<weld::Widget> m_xMasterPasswordImg;
std::unique_ptr<weld::Label> m_xMasterPasswordFT;
std::unique_ptr<weld::Button> m_xMasterPasswordPB;
@@ -101,14 +103,20 @@ private:
std::unique_ptr<weld::Container> m_xCertFrame;
std::unique_ptr<weld::Button> m_xCertPathPB;
+ std::unique_ptr<weld::Widget> m_xCertPathImg;
+ std::unique_ptr<weld::Label> m_xCertPathLabel;
std::unique_ptr<weld::Container> m_xTSAURLsFrame;
std::unique_ptr<weld::Button> m_xTSAURLsPB;
+ std::unique_ptr<weld::Widget> m_xTSAURLsImg;
+ std::unique_ptr<weld::Label> m_xTSAURLsLabel;
std::unique_ptr<weld::Label> m_xNoPasswordSaveFT;
std::unique_ptr<weld::Button> m_xCertMgrPathLB;
std::unique_ptr<weld::Entry> m_xParameterEdit;
+ std::unique_ptr<weld::Widget> m_xCertMgrPathImg;
+ std::unique_ptr<weld::Label> m_xCertMgrPathLabel;
DECL_LINK(SecurityOptionsHdl, weld::Button&, void);
DECL_LINK(SavePasswordHdl, weld::Toggleable&, void);
diff --git a/cui/uiconfig/ui/optsecuritypage.ui b/cui/uiconfig/ui/optsecuritypage.ui
index 9003cbacce3b..200f63a3f7af 100644
--- a/cui/uiconfig/ui/optsecuritypage.ui
+++ b/cui/uiconfig/ui/optsecuritypage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.40.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<!-- n-columns=1 n-rows=6 -->
@@ -25,22 +25,6 @@
<property name="hexpand">True</property>
<property name="column-spacing">24</property>
<child>
- <object class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes" context="optsecuritypage|label9">Maintain a list of Time Stamping Authority (TSA) URLs to be used for digital signatures in PDF export.</property>
- <property name="wrap">True</property>
- <property name="width-chars">56</property>
- <property name="max-width-chars">56</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
<object class="GtkButton" id="tsas">
<property name="label" translatable="yes" context="optsecuritypage|tsas">_TSAs...</property>
<property name="visible">True</property>
@@ -59,6 +43,48 @@
<property name="top-attach">0</property>
</packing>
</child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="optsecuritypage|label9">Maintain a list of Time Stamping Authority (TSA) URLs to be used for digital signatures in PDF export.</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locktsas">
+ <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>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
@@ -94,22 +120,6 @@
<property name="hexpand">True</property>
<property name="column-spacing">24</property>
<child>
- <object class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes" context="optsecuritypage|label7">Select the Network Security Services certificate directory to use for digital signatures.</property>
- <property name="wrap">True</property>
- <property name="width-chars">56</property>
- <property name="max-width-chars">56</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
<object class="GtkButton" id="cert">
<property name="label" translatable="yes" context="optsecuritypage|cert">_Certificate...</property>
<property name="visible">True</property>
@@ -128,6 +138,48 @@
<property name="top-attach">0</property>
</packing>
</child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="optsecuritypage|label7">Select the Network Security Services certificate directory to use for digital signatures.</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcertipath">
+ <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>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
@@ -239,25 +291,6 @@
<property name="hexpand">True</property>
<property name="row-spacing">12</property>
<child>
- <object class="GtkCheckButton" id="savepassword">
- <property name="label" translatable="yes" context="optsecuritypage|savepassword">Persistently _save passwords for web connections</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="savepassword-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|savepassword">If enabled, all passwords that you use to access files from web servers will be securely stored. You can retrieve the passwords from the list after you enter the master password.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
<!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
@@ -266,20 +299,6 @@
<property name="hexpand">True</property>
<property name="row-spacing">6</property>
<child>
- <object class="GtkCheckButton" id="usemasterpassword">
- <property name="label" translatable="yes" context="optsecuritypage|usemasterpassword">Protected _by a master password (recommended)</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>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
<object class="GtkLabel" id="masterpasswordtext">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -316,12 +335,97 @@ Do you want to delete password list and reset master password?</property>
<property name="top-attach">2</property>
</packing>
</child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="usemasterpassword">
+ <property name="label" translatable="yes" context="optsecuritypage|usemasterpassword">Protected _by a master password (recommended)</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>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockusemasterpassword">
+ <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>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="savepassword">
+ <property name="label" translatable="yes" context="optsecuritypage|savepassword">Persistently _save passwords for web connections</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="savepassword-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|savepassword">If enabled, all passwords that you use to access files from web servers will be securely stored. You can retrieve the passwords from the list after you enter the master password.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksavepassword">
+ <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>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="left-attach">0</property>
@@ -504,22 +608,6 @@ Do you want to delete password list and reset master password?</property>
<property name="row-spacing">8</property>
<property name="column-spacing">24</property>
<child>
- <object class="GtkLabel" id="label11">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes" context="optsecuritypage|label11">Select custom certificate manager executable. Note that %PRODUCTNAME tries to locate installed ones automatically.</property>
- <property name="wrap">True</property>
- <property name="width-chars">56</property>
- <property name="max-width-chars">56</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
<object class="GtkButton" id="browse">
<property name="label" translatable="yes" context="optsecuritypage|browse">_Browse...</property>
<property name="visible">True</property>
@@ -552,6 +640,53 @@ Do you want to delete password list and reset master password?</property>
</packing>
</child>
<child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label11">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="optsecuritypage|label11">Select custom certificate manager executable. Note that %PRODUCTNAME tries to locate installed ones automatically.</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcertimanager">
+ <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>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="lockcertimanager-atkobject">
+ <property name="AtkObject::accessible-description">Enter the executable of the certificate manager path is readonly.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
<placeholder/>
</child>
</object>