cui/source/options/optgdlg.cxx | 52 +++++++++-- cui/source/options/optgdlg.hxx | 9 + cui/uiconfig/ui/optgeneralpage.ui | 172 ++++++++++++++++++++++++++++++++------ 3 files changed, 199 insertions(+), 34 deletions(-)
New commits: commit d8b96939806bbeacc91bb2c42d44bb6de21010d0 Author: Balazs Varga <[email protected]> AuthorDate: Thu Oct 19 18:08:38 2023 +0200 Commit: Balazs Varga <[email protected]> CommitDate: Tue Oct 24 08:37:42 2023 +0200 tdf#157702 - UI: Part 2 - Unify lockdown behavior of Options dialog for General Page. Change-Id: Ide7c387d1b9f8ebba7f7801cdd69b1e1a93f90e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158196 Tested-by: Jenkins Reviewed-by: Balazs Varga <[email protected]> diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx index c8a569a9845e..f0e2cf26e2e2 100644 --- a/cui/source/options/optgdlg.cxx +++ b/cui/source/options/optgdlg.cxx @@ -160,35 +160,36 @@ bool lcl_HasSystemFilePicker() OfaMiscTabPage::OfaMiscTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet) : SfxTabPage(pPage, pController, "cui/ui/optgeneralpage.ui", "OptGeneralPage", &rSet) , m_xExtHelpCB(m_xBuilder->weld_check_button("exthelp")) + , m_xExtHelpImg(m_xBuilder->weld_widget("lockexthelp")) , m_xPopUpNoHelpCB(m_xBuilder->weld_check_button("popupnohelp")) + , m_xPopUpNoHelpImg(m_xBuilder->weld_widget("lockpopupnohelp")) , m_xShowTipOfTheDay(m_xBuilder->weld_check_button("cbShowTipOfTheDay")) + , m_xShowTipOfTheDayImg(m_xBuilder->weld_widget("lockcbShowTipOfTheDay")) , m_xFileDlgFrame(m_xBuilder->weld_widget("filedlgframe")) , m_xFileDlgROImage(m_xBuilder->weld_widget("lockimage")) , m_xFileDlgCB(m_xBuilder->weld_check_button("filedlg")) , m_xDocStatusCB(m_xBuilder->weld_check_button("docstatus")) + , m_xDocStatusImg(m_xBuilder->weld_widget("lockdocstatus")) , m_xYearFrame(m_xBuilder->weld_widget("yearframe")) + , m_xYearLabel(m_xBuilder->weld_label("yearslabel")) , m_xYearValueField(m_xBuilder->weld_spin_button("year")) , m_xToYearFT(m_xBuilder->weld_label("toyear")) + , m_xYearFrameImg(m_xBuilder->weld_widget("lockyears")) #if HAVE_FEATURE_BREAKPAD , m_xPrivacyFrame(m_xBuilder->weld_widget("privacyframe")) , m_xCrashReport(m_xBuilder->weld_check_button("crashreport")) + , m_xCrashReportImg(m_xBuilder->weld_widget("lockcrashreport")) #endif #if defined(_WIN32) , m_xQuickStarterFrame(m_xBuilder->weld_widget("quickstarter")) , m_xQuickLaunchCB(m_xBuilder->weld_check_button("quicklaunch")) + , m_xQuickLaunchImg(m_xBuilder->weld_widget("lockquicklaunch")) , m_xFileAssocFrame(m_xBuilder->weld_widget("fileassoc")) , m_xFileAssocBtn(m_xBuilder->weld_button("assocfiles")) , m_xPerformFileExtCheck(m_xBuilder->weld_check_button("cbPerformFileExtCheck")) + , m_xPerformFileExtImg(m_xBuilder->weld_widget("lockcbPerformFileExtCheck")) #endif { - if (!lcl_HasSystemFilePicker()) - m_xFileDlgFrame->hide(); - else if (officecfg::Office::Common::Misc::UseSystemFileDialog::isReadOnly()) - { - m_xFileDlgROImage->show(); - m_xFileDlgCB->set_sensitive(false); - } - #if HAVE_FEATURE_BREAKPAD m_xPrivacyFrame->show(); #endif @@ -221,7 +222,7 @@ std::unique_ptr<SfxTabPage> OfaMiscTabPage::Create( weld::Container* pPage, weld OUString OfaMiscTabPage::GetAllStrings() { OUString sAllStrings; - OUString labels[] = { "label1", "label2", "label4", "label5", "label6", + OUString labels[] = { "label1", "label2", "label4", "label5", "yearslabel", "toyear", "label7", "label8", "label9" }; for (const auto& label : labels) @@ -313,19 +314,48 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet ) void OfaMiscTabPage::Reset( const SfxItemSet* rSet ) { + bool bEnable = !officecfg::Office::Common::Help::ExtendedTip::isReadOnly(); m_xExtHelpCB->set_active( officecfg::Office::Common::Help::Tip::get() && officecfg::Office::Common::Help::ExtendedTip::get() ); + m_xExtHelpCB->set_sensitive(bEnable); + m_xExtHelpImg->set_visible(!bEnable); m_xExtHelpCB->save_state(); + + bEnable = !officecfg::Office::Common::Help::BuiltInHelpNotInstalledPopUp::isReadOnly(); m_xPopUpNoHelpCB->set_active( officecfg::Office::Common::Help::BuiltInHelpNotInstalledPopUp::get() ); + m_xPopUpNoHelpCB->set_sensitive(bEnable); + m_xPopUpNoHelpImg->set_visible(!bEnable); m_xPopUpNoHelpCB->save_state(); + + bEnable = !officecfg::Office::Common::Misc::ShowTipOfTheDay::isReadOnly(); m_xShowTipOfTheDay->set_active( officecfg::Office::Common::Misc::ShowTipOfTheDay::get() ); + m_xShowTipOfTheDay->set_sensitive(bEnable); + m_xShowTipOfTheDayImg->set_visible(!bEnable); m_xShowTipOfTheDay->save_state(); - m_xFileDlgCB->set_active( !officecfg::Office::Common::Misc::UseSystemFileDialog::get() ); + + if (!lcl_HasSystemFilePicker()) + m_xFileDlgFrame->hide(); + else + { + bEnable = !officecfg::Office::Common::Misc::UseSystemFileDialog::isReadOnly(); + m_xFileDlgCB->set_sensitive(bEnable); + m_xFileDlgROImage->set_visible(!bEnable); + } + m_xFileDlgCB->set_active(!officecfg::Office::Common::Misc::UseSystemFileDialog::get()); m_xFileDlgCB->save_state(); + bEnable = !officecfg::Office::Common::Print::PrintingModifiesDocument::isReadOnly(); m_xDocStatusCB->set_active(officecfg::Office::Common::Print::PrintingModifiesDocument::get()); + m_xDocStatusCB->set_sensitive(bEnable); + m_xDocStatusImg->set_visible(!bEnable); m_xDocStatusCB->save_state(); + bEnable = !officecfg::Office::Common::DateFormat::TwoDigitYear::isReadOnly(); + m_xYearLabel->set_sensitive(bEnable); + m_xYearValueField->set_sensitive(bEnable); + m_xToYearFT->set_sensitive(bEnable); + m_xYearFrameImg->set_visible(!bEnable); + if ( const SfxUInt16Item* pYearItem = rSet->GetItemIfSet( SID_ATTR_YEAR2000, false ) ) { m_xYearValueField->set_value( pYearItem->GetValue() ); @@ -337,6 +367,7 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet ) #if HAVE_FEATURE_BREAKPAD m_xCrashReport->set_active(officecfg::Office::Common::Misc::CrashReport::get() && CrashReporter::IsDumpEnable()); m_xCrashReport->set_sensitive(!officecfg::Office::Common::Misc::CrashReport::isReadOnly() && CrashReporter::IsDumpEnable()); + m_xCrashReportImg->set_visible(officecfg::Office::Common::Misc::CrashReport::isReadOnly() && CrashReporter::IsDumpEnable()); m_xCrashReport->save_state(); #endif @@ -357,6 +388,7 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet ) officecfg::Office::Common::Misc::PerformFileExtCheck::get()); m_xPerformFileExtCheck->save_state(); m_xPerformFileExtCheck->set_sensitive(!officecfg::Office::Common::Misc::PerformFileExtCheck::isReadOnly()); + m_xPerformFileExtImg->set_visible(officecfg::Office::Common::Misc::PerformFileExtCheck::isReadOnly()); #endif } diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx index 7dc7e073634e..02c5eda2ce74 100644 --- a/cui/source/options/optgdlg.hxx +++ b/cui/source/options/optgdlg.hxx @@ -34,25 +34,34 @@ private: OUString m_aStrDateInfo; std::unique_ptr<weld::CheckButton> m_xExtHelpCB; + std::unique_ptr<weld::Widget> m_xExtHelpImg; std::unique_ptr<weld::CheckButton> m_xPopUpNoHelpCB; + std::unique_ptr<weld::Widget> m_xPopUpNoHelpImg; std::unique_ptr<weld::CheckButton> m_xShowTipOfTheDay; + std::unique_ptr<weld::Widget> m_xShowTipOfTheDayImg; std::unique_ptr<weld::Widget> m_xFileDlgFrame; std::unique_ptr<weld::Widget> m_xFileDlgROImage; std::unique_ptr<weld::CheckButton> m_xFileDlgCB; std::unique_ptr<weld::CheckButton> m_xDocStatusCB; + std::unique_ptr<weld::Widget> m_xDocStatusImg; std::unique_ptr<weld::Widget> m_xYearFrame; + std::unique_ptr<weld::Label> m_xYearLabel; std::unique_ptr<weld::SpinButton> m_xYearValueField; std::unique_ptr<weld::Label> m_xToYearFT; + std::unique_ptr<weld::Widget> m_xYearFrameImg; #if HAVE_FEATURE_BREAKPAD std::unique_ptr<weld::Widget> m_xPrivacyFrame; std::unique_ptr<weld::CheckButton> m_xCrashReport; + std::unique_ptr<weld::Widget> m_xCrashReportImg; #endif #if defined(_WIN32) std::unique_ptr<weld::Widget> m_xQuickStarterFrame; std::unique_ptr<weld::CheckButton> m_xQuickLaunchCB; + std::unique_ptr<weld::Widget> m_xQuickLaunchImg; std::unique_ptr<weld::Widget> m_xFileAssocFrame; std::unique_ptr<weld::Button> m_xFileAssocBtn; std::unique_ptr<weld::CheckButton> m_xPerformFileExtCheck; + std::unique_ptr<weld::Widget> m_xPerformFileExtImg; #endif DECL_LINK(TwoFigureHdl, weld::SpinButton&, void); diff --git a/cui/uiconfig/ui/optgeneralpage.ui b/cui/uiconfig/ui/optgeneralpage.ui index ce2743e99b6f..1f04a0c05dc1 100644 --- a/cui/uiconfig/ui/optgeneralpage.ui +++ b/cui/uiconfig/ui/optgeneralpage.ui @@ -23,12 +23,13 @@ <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> <property name="margin-start">12</property> <property name="margin-top">6</property> + <property name="column-spacing">6</property> <child> <object class="GtkCheckButton" id="exthelp"> <property name="label" translatable="yes" context="optgeneralpage|exthelp">_Extended tips</property> @@ -44,7 +45,7 @@ </child> </object> <packing> - <property name="left-attach">0</property> + <property name="left-attach">1</property> <property name="top-attach">0</property> </packing> </child> @@ -57,7 +58,7 @@ <property name="draw-indicator">True</property> </object> <packing> - <property name="left-attach">0</property> + <property name="left-attach">1</property> <property name="top-attach">1</property> </packing> </child> @@ -70,6 +71,45 @@ <property name="active">True</property> <property name="draw-indicator">True</property> </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">2</property> + </packing> + </child> + <child> + <object class="GtkImage" id="lockexthelp"> + <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="lockpopupnohelp"> + <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="lockcbShowTipOfTheDay"> + <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> @@ -159,19 +199,44 @@ <property name="label-xalign">0</property> <property name="shadow-type">none</property> <child> - <object class="GtkCheckButton" id="docstatus"> - <property name="label" translatable="yes" context="optgeneralpage|docstatus">_Printing sets "document modified" status</property> + <!-- n-columns=2 n-rows=1 --> + <object class="GtkGrid" id="grid9"> <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">False</property> + <property name="can-focus">False</property> <property name="margin-start">12</property> <property name="margin-top">6</property> - <property name="use-underline">True</property> - <property name="draw-indicator">True</property> - <child internal-child="accessible"> - <object class="AtkObject" id="docstatus-atkobject"> - <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | docstatus">Specifies whether the printing of the document counts as a modification.</property> + <property name="column-spacing">6</property> + <child> + <object class="GtkCheckButton" id="docstatus"> + <property name="label" translatable="yes" context="optgeneralpage|docstatus">_Printing sets "document modified" status</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="docstatus-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | docstatus">Specifies whether the printing of the document counts as a modification.</property> + </object> + </child> + </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkImage" id="lockdocstatus"> + <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> @@ -198,7 +263,7 @@ <property name="label-xalign">0</property> <property name="shadow-type">none</property> <child> - <!-- n-columns=3 n-rows=1 --> + <!-- n-columns=4 n-rows=1 --> <object class="GtkGrid" id="grid3"> <property name="visible">True</property> <property name="can-focus">False</property> @@ -206,7 +271,7 @@ <property name="margin-top">6</property> <property name="column-spacing">6</property> <child> - <object class="GtkLabel" id="label6"> + <object class="GtkLabel" id="yearslabel"> <property name="visible">True</property> <property name="can-focus">False</property> <property name="label" translatable="yes" context="optgeneralpage|label6">_Interpret as years between </property> @@ -215,7 +280,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> @@ -233,7 +298,7 @@ </child> </object> <packing> - <property name="left-attach">1</property> + <property name="left-attach">2</property> <property name="top-attach">0</property> </packing> </child> @@ -244,7 +309,20 @@ <property name="label" translatable="yes" context="optgeneralpage|toyear">and </property> </object> <packing> - <property name="left-attach">2</property> + <property name="left-attach">3</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkImage" id="lockyears"> + <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> @@ -268,17 +346,17 @@ </child> <child> <object class="GtkFrame" id="privacyframe"> - <property name="visible">False</property> <property name="can-focus">False</property> <property name="label-xalign">0</property> <property name="shadow-type">none</property> <child> - <!-- n-columns=1 n-rows=2 --> - <object class="GtkGrid"> + <!-- n-columns=2 n-rows=2 --> + <object class="GtkGrid" id="grid10"> <property name="visible">True</property> <property name="can-focus">False</property> <property name="margin-start">12</property> <property name="margin-top">6</property> + <property name="column-spacing">6</property> <child> <object class="GtkCheckButton" id="crashreport"> <property name="label" translatable="yes" context="optgeneralpage|crashreport">Sen_d crash reports to The Document Foundation</property> @@ -290,6 +368,19 @@ <property name="active">True</property> <property name="draw-indicator">True</property> </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">1</property> + </packing> + </child> + <child> + <object class="GtkImage" id="lockcrashreport"> + <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> @@ -298,6 +389,9 @@ <child> <placeholder/> </child> + <child> + <placeholder/> + </child> </object> </child> <child type="label"> @@ -318,18 +412,18 @@ </child> <child> <object class="GtkFrame" id="quickstarter"> - <property name="visible">False</property> <property name="can-focus">False</property> <property name="label-xalign">0</property> <property name="shadow-type">none</property> <child> - <!-- n-columns=1 n-rows=1 --> + <!-- n-columns=2 n-rows=1 --> <object class="GtkGrid" id="grid7"> <property name="visible">True</property> <property name="can-focus">False</property> <property name="margin-start">12</property> <property name="margin-top">6</property> <property name="row-spacing">6</property> + <property name="column-spacing">6</property> <child> <object class="GtkCheckButton" id="quicklaunch"> <property name="label" translatable="yes" context="optgeneralpage|quicklaunch">Load %PRODUCTNAME during system start-up</property> @@ -340,6 +434,19 @@ <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="lockquicklaunch"> + <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> @@ -369,13 +476,14 @@ <property name="label-xalign">0</property> <property name="shadow-type">none</property> <child> - <!-- n-columns=1 n-rows=2 --> + <!-- n-columns=2 n-rows=2 --> <object class="GtkGrid" id="grid8"> <property name="visible">True</property> <property name="can-focus">False</property> <property name="margin-start">12</property> <property name="margin-top">6</property> <property name="row-spacing">6</property> + <property name="column-spacing">6</property> <child> <object class="GtkButton" id="assocfiles"> <property name="label" translatable="yes" context="optgeneralpage|fileassoc">Windows Default apps</property> @@ -386,7 +494,7 @@ <property name="use-underline">True</property> </object> <packing> - <property name="left-attach">0</property> + <property name="left-attach">1</property> <property name="top-attach">0</property> </packing> </child> @@ -399,11 +507,27 @@ <property name="active">True</property> <property name="draw-indicator">True</property> </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">1</property> + </packing> + </child> + <child> + <object class="GtkImage" id="lockcbPerformFileExtCheck"> + <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> </object> </child> <child type="label">
