cui/uiconfig/ui/securityoptionsdialog.ui | 214 +++++++++++++++---------------- vcl/CustomTarget_qt5_moc.mk | 3 vcl/CustomTarget_qt6_moc.mk | 1 vcl/Library_vclplug_qt5.mk | 3 vcl/Library_vclplug_qt6.mk | 1 vcl/inc/qt5/QtInstanceBuilder.hxx | 2 vcl/inc/qt5/QtInstanceProgressBar.hxx | 32 ++++ vcl/inc/qt6/QtInstanceProgressBar.hxx | 12 + vcl/qt5/QtBuilder.cxx | 4 vcl/qt5/QtInstanceBuilder.cxx | 10 + vcl/qt5/QtInstanceProgressBar.cxx | 45 ++++++ vcl/qt6/QtInstanceProgressBar.cxx | 12 + 12 files changed, 224 insertions(+), 115 deletions(-)
New commits: commit c8da0e06f7b3e5122826dda24167adc0688cee33 Author: Michael Weghorn <[email protected]> AuthorDate: Wed Oct 30 09:57:01 2024 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Wed Oct 30 12:08:36 2024 +0100 tdf#130857 qt weld: Declare support for print progress dialog Add .ui file for the print progress dialog that gets shown when starting a print job from the print dialog (Ctrl+P) to list of files supported by QtInstanceBuilder, so that native Qt widgets are used for that dialog now when using the qt5/qt6 VCL plugins, unless environment variable SAL_VCL_QT_NO_WELDED_WIDGETS=1 is set. Change-Id: I4bfdd34fcdb6d5844e04d99235fbf3ad5ef9f66c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175817 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/qt5/QtInstanceBuilder.cxx b/vcl/qt5/QtInstanceBuilder.cxx index 9101e5509f47..298f1f921333 100644 --- a/vcl/qt5/QtInstanceBuilder.cxx +++ b/vcl/qt5/QtInstanceBuilder.cxx @@ -59,6 +59,7 @@ bool QtInstanceBuilder::IsUIFileSupported(const OUString& rUIFile) u"sfx/ui/safemodequerydialog.ui"_ustr, u"svt/ui/printersetupdialog.ui"_ustr, u"svt/ui/restartdialog.ui"_ustr, + u"vcl/ui/printprogressdialog.ui"_ustr, u"writerperfect/ui/exportepub.ui"_ustr, }; commit ef1eaad00f3bd2c7536c0b8bcb37f9e3201ced11 Author: Michael Weghorn <[email protected]> AuthorDate: Wed Oct 30 09:54:55 2024 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Wed Oct 30 12:08:30 2024 +0100 tdf#130857 qt weld: Add a QtInstanceProgressBar Add a new QtInstanceProgressBar class that is the weld::ProgressBar implementation using a native Qt widget. The widget used is a QProgressBar. This will be used e.g. by the print progress dialog, for which support will be declared in an upcoming commit. Change-Id: Ic4b162014cd3a09801096cebd38dbdc923f5dbfa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175816 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/CustomTarget_qt5_moc.mk b/vcl/CustomTarget_qt5_moc.mk index 7c451ea8e834..0072fa3883ad 100644 --- a/vcl/CustomTarget_qt5_moc.mk +++ b/vcl/CustomTarget_qt5_moc.mk @@ -17,10 +17,11 @@ $(call gb_CustomTarget_get_target,vcl/qt5) : \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceComboBox.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceDialog.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceEntry.moc \ + $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceLevelBar.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceLinkButton.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceMessageDialog.moc \ + $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceProgressBar.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceRadioButton.moc \ - $(gb_CustomTarget_workdir)/vcl/qt5/QtInstanceLevelBar.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtMainWindow.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtMenu.moc \ $(gb_CustomTarget_workdir)/vcl/qt5/QtTransferable.moc \ diff --git a/vcl/CustomTarget_qt6_moc.mk b/vcl/CustomTarget_qt6_moc.mk index ac1890a3d090..33e185e4c962 100644 --- a/vcl/CustomTarget_qt6_moc.mk +++ b/vcl/CustomTarget_qt6_moc.mk @@ -20,6 +20,7 @@ $(call gb_CustomTarget_get_target,vcl/qt6) : \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceLevelBar.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceLinkButton.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceMessageDialog.moc \ + $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceProgressBar.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtInstanceRadioButton.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtMainWindow.moc \ $(gb_CustomTarget_workdir)/vcl/qt6/QtMenu.moc \ diff --git a/vcl/Library_vclplug_qt5.mk b/vcl/Library_vclplug_qt5.mk index 66801a8041b3..a5c96989fba9 100644 --- a/vcl/Library_vclplug_qt5.mk +++ b/vcl/Library_vclplug_qt5.mk @@ -105,10 +105,11 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt5,\ vcl/qt5/QtInstanceEntry \ vcl/qt5/QtInstanceFrame \ vcl/qt5/QtInstanceImage \ + vcl/qt5/QtInstanceLabel \ vcl/qt5/QtInstanceLevelBar \ vcl/qt5/QtInstanceLinkButton \ vcl/qt5/QtInstanceMessageDialog \ - vcl/qt5/QtInstanceLabel \ + vcl/qt5/QtInstanceProgressBar \ vcl/qt5/QtInstanceRadioButton \ vcl/qt5/QtInstanceTextView \ vcl/qt5/QtInstanceWidget \ diff --git a/vcl/Library_vclplug_qt6.mk b/vcl/Library_vclplug_qt6.mk index 764b6d9a9a89..4beecca87c71 100644 --- a/vcl/Library_vclplug_qt6.mk +++ b/vcl/Library_vclplug_qt6.mk @@ -108,6 +108,7 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_qt6,\ vcl/qt6/QtInstanceLevelBar \ vcl/qt6/QtInstanceLinkButton \ vcl/qt6/QtInstanceMessageDialog \ + vcl/qt6/QtInstanceProgressBar \ vcl/qt6/QtInstanceRadioButton \ vcl/qt6/QtInstanceTextView \ vcl/qt6/QtInstanceWidget \ diff --git a/vcl/inc/qt5/QtInstanceBuilder.hxx b/vcl/inc/qt5/QtInstanceBuilder.hxx index fecea026c818..704d47a01cd8 100644 --- a/vcl/inc/qt5/QtInstanceBuilder.hxx +++ b/vcl/inc/qt5/QtInstanceBuilder.hxx @@ -50,7 +50,7 @@ public: virtual std::unique_ptr<weld::RadioButton> weld_radio_button(const OUString& rId) override; virtual std::unique_ptr<weld::CheckButton> weld_check_button(const OUString& rId) override; virtual std::unique_ptr<weld::Scale> weld_scale(const OUString&) override; - virtual std::unique_ptr<weld::ProgressBar> weld_progress_bar(const OUString&) override; + virtual std::unique_ptr<weld::ProgressBar> weld_progress_bar(const OUString& rId) override; virtual std::unique_ptr<weld::LevelBar> weld_level_bar(const OUString& rId) override; virtual std::unique_ptr<weld::Spinner> weld_spinner(const OUString&) override; virtual std::unique_ptr<weld::Image> weld_image(const OUString& rId) override; diff --git a/vcl/inc/qt5/QtInstanceProgressBar.hxx b/vcl/inc/qt5/QtInstanceProgressBar.hxx new file mode 100644 index 000000000000..b6a8615ccc6f --- /dev/null +++ b/vcl/inc/qt5/QtInstanceProgressBar.hxx @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include "QtInstanceWidget.hxx" + +#include <QtWidgets/QProgressBar> + +class QtInstanceProgressBar : public QObject, + public QtInstanceWidget, + public virtual weld::ProgressBar +{ + Q_OBJECT + + QProgressBar* m_pProgressBar; + +public: + QtInstanceProgressBar(QProgressBar* pProgressBar); + + virtual void set_percentage(int nValue) override; + virtual OUString get_text() const override; + virtual void set_text(const OUString& rText) override; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/qt6/QtInstanceProgressBar.hxx b/vcl/inc/qt6/QtInstanceProgressBar.hxx new file mode 100644 index 000000000000..5eef0213ea86 --- /dev/null +++ b/vcl/inc/qt6/QtInstanceProgressBar.hxx @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "../qt5/QtInstanceProgressBar.hxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx index 2abc2208e64f..88a26661bbad 100644 --- a/vcl/qt5/QtBuilder.cxx +++ b/vcl/qt5/QtBuilder.cxx @@ -207,10 +207,10 @@ QObject* QtBuilder::makeObject(QObject* pParent, std::u16string_view sName, cons extractMnemonicWidget(sID, rMap); pObject = new QLabel(pParentWidget); } - else if (sName == u"GtkLevelBar") + else if (sName == u"GtkLevelBar" || sName == u"GtkProgressBar") { QProgressBar* pProgressBar = new QProgressBar(pParentWidget); - // don't show progress in percent as text + // don't show text (progress in percent) by default pProgressBar->setTextVisible(false); pObject = pProgressBar; } diff --git a/vcl/qt5/QtInstanceBuilder.cxx b/vcl/qt5/QtInstanceBuilder.cxx index 5831683f11a4..9101e5509f47 100644 --- a/vcl/qt5/QtInstanceBuilder.cxx +++ b/vcl/qt5/QtInstanceBuilder.cxx @@ -21,6 +21,7 @@ #include <QtInstanceLevelBar.hxx> #include <QtInstanceLinkButton.hxx> #include <QtInstanceMessageDialog.hxx> +#include <QtInstanceProgressBar.hxx> #include <QtInstanceRadioButton.hxx> #include <QtInstanceTextView.hxx> @@ -194,10 +195,12 @@ std::unique_ptr<weld::Scale> QtInstanceBuilder::weld_scale(const OUString&) return nullptr; } -std::unique_ptr<weld::ProgressBar> QtInstanceBuilder::weld_progress_bar(const OUString&) +std::unique_ptr<weld::ProgressBar> QtInstanceBuilder::weld_progress_bar(const OUString& rId) { - assert(false && "Not implemented yet"); - return nullptr; + QProgressBar* pProgressBar = m_xBuilder->get<QProgressBar>(rId); + std::unique_ptr<weld::ProgressBar> xRet( + pProgressBar ? std::make_unique<QtInstanceProgressBar>(pProgressBar) : nullptr); + return xRet; } std::unique_ptr<weld::LevelBar> QtInstanceBuilder::weld_level_bar(const OUString& rId) diff --git a/vcl/qt5/QtInstanceProgressBar.cxx b/vcl/qt5/QtInstanceProgressBar.cxx new file mode 100644 index 000000000000..5c177d5faf52 --- /dev/null +++ b/vcl/qt5/QtInstanceProgressBar.cxx @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <QtInstanceProgressBar.hxx> +#include <QtInstanceProgressBar.moc> + +#include <vcl/qt/QtUtils.hxx> + +QtInstanceProgressBar::QtInstanceProgressBar(QProgressBar* pProgressBar) + : QtInstanceWidget(pProgressBar) + , m_pProgressBar(pProgressBar) +{ + assert(pProgressBar); +} + +void QtInstanceProgressBar::set_percentage(int nValue) +{ + SolarMutexGuard g; + GetQtInstance().RunInMainThread([&] { m_pProgressBar->setValue(nValue); }); +} + +OUString QtInstanceProgressBar::get_text() const +{ + SolarMutexGuard g; + OUString sText; + GetQtInstance().RunInMainThread([&] { sText = toOUString(m_pProgressBar->text()); }); + return sText; +} + +void QtInstanceProgressBar::set_text(const OUString& rText) +{ + SolarMutexGuard g; + GetQtInstance().RunInMainThread([&] { + m_pProgressBar->setFormat(toQString(rText)); + m_pProgressBar->setTextVisible(!rText.isEmpty()); + }); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/qt6/QtInstanceProgressBar.cxx b/vcl/qt6/QtInstanceProgressBar.cxx new file mode 100644 index 000000000000..25e0fd4685f1 --- /dev/null +++ b/vcl/qt6/QtInstanceProgressBar.cxx @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "../qt5/QtInstanceProgressBar.cxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit af4bc7e3923c1aa7d47c050a6c3ab98523361e62 Author: Michael Weghorn <[email protected]> AuthorDate: Wed Oct 30 09:30:16 2024 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Wed Oct 30 12:08:23 2024 +0100 tdf#130857 securityoptionsdialog.ui Define grid children in order Switch the order in which the children of the "grid3" grid in the .ui file are defined so that the order matches the visual appearance, which makes sure that tab focus order with the Qt-based VCL plugins is correct as well in the "Tools" -> "Options" -> "LibreOfficeDev" -> "Security" -> "Options..." dialog. See commit 02692566ad9fc7c3484f8581ffa0004cd4e43987 Author: Michael Weghorn <[email protected]> Date: Thu Oct 24 17:43:35 2024 +0200 tdf#130857 optnewdictionarydialog.ui: Define focusable widgets in order for more background. Change-Id: Iffba59ba04ecfd3fcb900e09ad013e6f498beff8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175815 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/cui/uiconfig/ui/securityoptionsdialog.ui b/cui/uiconfig/ui/securityoptionsdialog.ui index dd09839d8335..dc811fda26cf 100644 --- a/cui/uiconfig/ui/securityoptionsdialog.ui +++ b/cui/uiconfig/ui/securityoptionsdialog.ui @@ -283,6 +283,19 @@ <property name="margin-top">6</property> <property name="row-spacing">6</property> <property name="column-spacing">12</property> + <child> + <object class="GtkImage" id="lockremovepersonal"> + <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="GtkCheckButton" id="removepersonal"> <property name="label" translatable="yes" context="securityoptionsdialog|removepersonal">_Remove personal information on saving</property> @@ -304,117 +317,112 @@ </packing> </child> <child> - <object class="GtkImage" id="lockremovepersonal"> + <object class="GtkImage" id="lockredlineinfo"> <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="margin-start">20</property> <property name="icon-name">res/lock.png</property> </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">0</property> + <property name="top-attach">1</property> </packing> </child> <child> - <object class="GtkCheckButton" id="blockuntrusted"> - <property name="label" translatable="yes" context="securityoptionsdialog|blockuntrusted">Block any links from documents not among the trusted locations (see Macro Security)</property> + <object class="GtkCheckButton" id="redlineinfo"> + <property name="label" translatable="yes" context="securityoptionsdialog|redlineinfo">Keep track changes information</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="margin-start">20</property> <property name="hexpand">True</property> <property name="use-underline">True</property> <property name="draw-indicator">True</property> - <child internal-child="accessible"> - <object class="AtkObject" id="blockuntrusted-atkobject"> - <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|blockuntrusted">Blocks the use of linked images by documents not in the trusted locations defined on the Trusted Sources tab of the Macro Security dialog.</property> - </object> - </child> </object> <packing> <property name="left-attach">1</property> - <property name="top-attach">8</property> + <property name="top-attach">1</property> </packing> </child> <child> - <object class="GtkImage" id="lockblockuntrusted"> + <object class="GtkImage" id="lockdocproperties"> <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="margin-start">20</property> <property name="icon-name">res/lock.png</property> </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">8</property> + <property name="top-attach">2</property> </packing> </child> <child> - <object class="GtkCheckButton" id="ctrlclick"> - <property name="label" translatable="yes" context="securityoptionsdialog|ctrlclick">Ctrl-click required _to open hyperlinks</property> + <object class="GtkCheckButton" id="docproperties"> + <property name="label" translatable="yes" context="securityoptionsdialog|docproperties">Keep document user information</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="margin-start">20</property> <property name="hexpand">True</property> <property name="use-underline">True</property> <property name="draw-indicator">True</property> - <child internal-child="accessible"> - <object class="AtkObject" id="ctrlclick-atkobject"> - <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ctrlclick">If enabled, you must hold down the Ctrl key while clicking a hyperlink to follow that link. If not enabled, a click opens the hyperlink.</property> - </object> - </child> </object> <packing> <property name="left-attach">1</property> - <property name="top-attach">7</property> + <property name="top-attach">2</property> </packing> </child> <child> - <object class="GtkImage" id="lockctrlclick"> + <object class="GtkImage" id="locknoteauthor"> <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="margin-start">20</property> <property name="icon-name">res/lock.png</property> </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">7</property> + <property name="top-attach">3</property> </packing> </child> <child> - <object class="GtkCheckButton" id="password"> - <property name="label" translatable="yes" context="securityoptionsdialog|password">Recommend password protection on sa_ving</property> + <object class="GtkCheckButton" id="noteauthor"> + <property name="label" translatable="yes" context="securityoptionsdialog|noteauthor">Keep author name and date of notes</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> + <property name="margin-start">20</property> <property name="hexpand">True</property> <property name="use-underline">True</property> <property name="draw-indicator">True</property> - <child internal-child="accessible"> - <object class="AtkObject" id="password-atkobject"> - <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|password">Select to always enable the Save with password option in the file save dialogs. Deselect the option to save files by default without password.</property> - </object> - </child> </object> <packing> <property name="left-attach">1</property> - <property name="top-attach">6</property> + <property name="top-attach">3</property> </packing> </child> <child> - <object class="GtkImage" id="lockpassword"> + <object class="GtkImage" id="lockdocumentversion"> <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="margin-start">20</property> <property name="icon-name">res/lock.png</property> </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">6</property> + <property name="top-attach">4</property> </packing> </child> <child> - <object class="GtkCheckButton" id="redlineinfo"> - <property name="label" translatable="yes" context="securityoptionsdialog|redlineinfo">Keep track changes information</property> + <object class="GtkCheckButton" id="documentversion"> + <property name="label" translatable="yes" context="securityoptionsdialog|documentversion">Keep document version information</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> @@ -425,28 +433,24 @@ </object> <packing> <property name="left-attach">1</property> - <property name="top-attach">1</property> + <property name="top-attach">4</property> </packing> </child> <child> - <object class="GtkCheckButton" id="docproperties"> - <property name="label" translatable="yes" context="securityoptionsdialog|docproperties">Keep document user information</property> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">False</property> - <property name="margin-start">20</property> - <property name="hexpand">True</property> - <property name="use-underline">True</property> - <property name="draw-indicator">True</property> + <object class="GtkImage" id="lockprintersettings"> + <property name="can-focus">False</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">1</property> - <property name="top-attach">2</property> + <property name="left-attach">0</property> + <property name="top-attach">5</property> </packing> </child> <child> - <object class="GtkCheckButton" id="noteauthor"> - <property name="label" translatable="yes" context="securityoptionsdialog|noteauthor">Keep author name and date of notes</property> + <object class="GtkCheckButton" id="printersettings"> + <property name="label" translatable="yes" context="securityoptionsdialog|printersettings">Keep printer settings</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> @@ -457,79 +461,103 @@ </object> <packing> <property name="left-attach">1</property> - <property name="top-attach">3</property> + <property name="top-attach">5</property> </packing> </child> <child> - <object class="GtkCheckButton" id="documentversion"> - <property name="label" translatable="yes" context="securityoptionsdialog|documentversion">Keep document version information</property> + <object class="GtkImage" id="lockpassword"> + <property name="can-focus">False</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">6</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="password"> + <property name="label" translatable="yes" context="securityoptionsdialog|password">Recommend password protection on sa_ving</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">False</property> - <property name="margin-start">20</property> <property name="hexpand">True</property> <property name="use-underline">True</property> <property name="draw-indicator">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="password-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|password">Select to always enable the Save with password option in the file save dialogs. Deselect the option to save files by default without password.</property> + </object> + </child> </object> <packing> <property name="left-attach">1</property> - <property name="top-attach">4</property> + <property name="top-attach">6</property> </packing> </child> <child> - <object class="GtkImage" id="lockredlineinfo"> + <object class="GtkImage" id="lockctrlclick"> <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="margin-start">20</property> <property name="icon-name">res/lock.png</property> </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">1</property> + <property name="top-attach">7</property> </packing> </child> <child> - <object class="GtkImage" id="lockdocproperties"> - <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="margin-start">20</property> - <property name="icon-name">res/lock.png</property> + <object class="GtkCheckButton" id="ctrlclick"> + <property name="label" translatable="yes" context="securityoptionsdialog|ctrlclick">Ctrl-click required _to open hyperlinks</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="hexpand">True</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="ctrlclick-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ctrlclick">If enabled, you must hold down the Ctrl key while clicking a hyperlink to follow that link. If not enabled, a click opens the hyperlink.</property> + </object> + </child> </object> <packing> - <property name="left-attach">0</property> - <property name="top-attach">2</property> + <property name="left-attach">1</property> + <property name="top-attach">7</property> </packing> </child> <child> - <object class="GtkImage" id="locknoteauthor"> + <object class="GtkImage" id="lockblockuntrusted"> <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="margin-start">20</property> <property name="icon-name">res/lock.png</property> </object> <packing> <property name="left-attach">0</property> - <property name="top-attach">3</property> + <property name="top-attach">8</property> </packing> </child> <child> - <object class="GtkImage" id="lockdocumentversion"> - <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="margin-start">20</property> - <property name="icon-name">res/lock.png</property> + <object class="GtkCheckButton" id="blockuntrusted"> + <property name="label" translatable="yes" context="securityoptionsdialog|blockuntrusted">Block any links from documents not among the trusted locations (see Macro Security)</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="hexpand">True</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="blockuntrusted-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|blockuntrusted">Blocks the use of linked images by documents not in the trusted locations defined on the Trusted Sources tab of the Macro Security dialog.</property> + </object> + </child> </object> <packing> - <property name="left-attach">0</property> - <property name="top-attach">4</property> + <property name="left-attach">1</property> + <property name="top-attach">8</property> </packing> </child> <child> @@ -564,34 +592,6 @@ <property name="top-attach">9</property> </packing> </child> - <child> - <object class="GtkCheckButton" id="printersettings"> - <property name="label" translatable="yes" context="securityoptionsdialog|printersettings">Keep printer settings</property> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">False</property> - <property name="margin-start">20</property> - <property name="hexpand">True</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">5</property> - </packing> - </child> - <child> - <object class="GtkImage" id="lockprintersettings"> - <property name="can-focus">False</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> </object> </child> <child type="label">
