diff options
-rw-r--r-- | cui/source/options/optinet2.cxx | 37 | ||||
-rw-r--r-- | cui/source/options/optinet2.hxx | 8 | ||||
-rw-r--r-- | cui/uiconfig/ui/optsecuritypage.ui | 299 |
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> |