cui/source/options/optopencl.cxx | 3 cui/source/options/optopencl.hxx | 1 cui/source/options/personalization.cxx | 12 + cui/source/options/personalization.hxx | 2 cui/uiconfig/ui/optopenclpage.ui | 70 +++++++---- cui/uiconfig/ui/personalization_tab.ui | 206 +++++++++++++++++++-------------- 6 files changed, 189 insertions(+), 105 deletions(-)
New commits: commit ee368cc3f97886b9574e22fdf8a15c8225e785d5 Author: Balazs Varga <balazs.varga.ext...@allotropia.de> AuthorDate: Wed Oct 25 14:07:56 2023 +0200 Commit: Balazs Varga <balazs.varga.ext...@allotropia.de> CommitDate: Thu Oct 26 09:22:53 2023 +0200 tdf#157843 - UI: Part 8 - Unify lockdown behavior of Options dialog for OpenCL Page. Change-Id: I94c4a1afc7703de378ae65c0173d178954f647a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158424 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de> diff --git a/cui/source/options/optopencl.cxx b/cui/source/options/optopencl.cxx index c3e154083c97..129cbc1b01b7 100644 --- a/cui/source/options/optopencl.cxx +++ b/cui/source/options/optopencl.cxx @@ -30,11 +30,13 @@ SvxOpenCLTabPage::SvxOpenCLTabPage(weld::Container* pPage, weld::DialogControlle : SfxTabPage(pPage, pController, "cui/ui/optopenclpage.ui", "OptOpenCLPage", &rSet) , maConfig(OpenCLConfig::get()) , mxUseOpenCL(m_xBuilder->weld_check_button("useopencl")) + , mxUseOpenImg(m_xBuilder->weld_widget("lockuseopencl")) , mxOclUsed(m_xBuilder->weld_label("openclused")) , mxOclNotUsed(m_xBuilder->weld_label("openclnotused")) { mxUseOpenCL->set_active(maConfig.mbUseOpenCL); mxUseOpenCL->set_sensitive(!officecfg::Office::Common::Misc::UseOpenCL::isReadOnly()); + mxUseOpenImg->set_visible(officecfg::Office::Common::Misc::UseOpenCL::isReadOnly()); bool bCLUsed = openclwrapper::GPUEnv::isOpenCLEnabled(); mxOclUsed->set_visible(bCLUsed); @@ -97,6 +99,7 @@ void SvxOpenCLTabPage::Reset( const SfxItemSet* ) maConfig = OpenCLConfig::get(); mxUseOpenCL->set_active(maConfig.mbUseOpenCL); + mxUseOpenImg->set_visible(officecfg::Office::Common::Misc::UseOpenCL::isReadOnly()); mxUseOpenCL->save_state(); } diff --git a/cui/source/options/optopencl.hxx b/cui/source/options/optopencl.hxx index 1fce5e3ea9aa..e6414245da8f 100644 --- a/cui/source/options/optopencl.hxx +++ b/cui/source/options/optopencl.hxx @@ -27,6 +27,7 @@ private: OpenCLConfig maConfig; std::unique_ptr<weld::CheckButton> mxUseOpenCL; + std::unique_ptr<weld::Widget> mxUseOpenImg; std::unique_ptr<weld::Label> mxOclUsed; std::unique_ptr<weld::Label> mxOclNotUsed; diff --git a/cui/uiconfig/ui/optopenclpage.ui b/cui/uiconfig/ui/optopenclpage.ui index ac5cac268df2..8014e3711e1c 100644 --- a/cui/uiconfig/ui/optopenclpage.ui +++ b/cui/uiconfig/ui/optopenclpage.ui @@ -1,32 +1,58 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.16.1 --> +<!-- Generated with glade 3.38.2 --> <interface domain="cui"> <requires lib="gtk+" version="3.20"/> <object class="GtkFrame" id="OptOpenCLPage"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> - <property name="border_width">6</property> - <property name="label_xalign">0</property> - <property name="shadow_type">none</property> + <property name="border-width">6</property> + <property name="label-xalign">0</property> + <property name="shadow-type">none</property> <child> <object class="GtkBox" id="denylistbox"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> + <property name="margin-start">12</property> + <property name="margin-top">6</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <property name="orientation">vertical</property> <property name="spacing">12</property> - <property name="margin-start">12</property> - <property name="margin-top">6</property> <child> - <object class="GtkCheckButton" id="useopencl"> - <property name="label" translatable="yes" context="optopenclpage|useopencl">Allow use of OpenCL</property> + <!-- n-columns=2 n-rows=1 --> + <object class="GtkGrid"> <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> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <property name="column-spacing">6</property> + <child> + <object class="GtkCheckButton" id="useopencl"> + <property name="label" translatable="yes" context="optopenclpage|useopencl">Allow use of OpenCL</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="lockuseopencl"> + <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="expand">False</property> @@ -35,10 +61,9 @@ </packing> </child> <child> - <object class="GtkLabel" id="openclused"> - <property name="visible">False</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="optopenclpage|openclused">OpenCL is available for use.</property> + <object class="GtkLabel" id="openclnotused"> + <property name="can-focus">False</property> + <property name="label" translatable="yes" context="optopenclpage|openclnotused">OpenCL is not used.</property> </object> <packing> <property name="expand">False</property> @@ -47,10 +72,9 @@ </packing> </child> <child> - <object class="GtkLabel" id="openclnotused"> - <property name="visible">False</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="optopenclpage|openclnotused">OpenCL is not used.</property> + <object class="GtkLabel" id="openclused"> + <property name="can-focus">False</property> + <property name="label" translatable="yes" context="optopenclpage|openclused">OpenCL is available for use.</property> </object> <packing> <property name="expand">False</property> @@ -63,7 +87,7 @@ <child type="label"> <object class="GtkLabel" id="label1"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="optopenclpage|label1">OpenCL Options</property> <attributes> <attribute name="weight" value="bold"/> commit 54aa9a9cb7f283d2ed2853e064573564f16e353b Author: Balazs Varga <balazs.varga.ext...@allotropia.de> AuthorDate: Wed Oct 25 10:31:47 2023 +0200 Commit: Balazs Varga <balazs.varga.ext...@allotropia.de> CommitDate: Thu Oct 26 09:22:40 2023 +0200 tdf#157842 - UI: Part 7 - Unify lockdown behavior of Options dialog for Personalization Page. Change-Id: I5f2b674b9548610be8f918e6713e6ea91be7442e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158418 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de> diff --git a/cui/source/options/personalization.cxx b/cui/source/options/personalization.cxx index 49974a90eef2..6311fd491141 100644 --- a/cui/source/options/personalization.cxx +++ b/cui/source/options/personalization.cxx @@ -33,7 +33,9 @@ SvxPersonalizationTabPage::SvxPersonalizationTabPage(weld::Container* pPage, : SfxTabPage(pPage, pController, "cui/ui/personalization_tab.ui", "PersonalizationTabPage", &rSet) , m_xNoPersona(m_xBuilder->weld_radio_button("no_persona")) + , m_xPersonaImg(m_xBuilder->weld_widget("lockpersona")) , m_xDefaultPersona(m_xBuilder->weld_radio_button("default_persona")) + , m_xContentGrid(m_xBuilder->weld_container("gridpersonasetting")) { for (sal_uInt32 i = 0; i < MAX_DEFAULT_PERSONAS; ++i) { @@ -116,6 +118,16 @@ void SvxPersonalizationTabPage::Reset(const SfxItemSet*) m_xNoPersona->set_active(true); else m_xDefaultPersona->set_active(true); + + if (officecfg::Office::Common::Misc::Persona::isReadOnly()) + { + m_xNoPersona->set_sensitive(false); + m_xDefaultPersona->set_sensitive(false); + m_xPersonaImg->set_visible(true); + } + + if (officecfg::Office::Common::Misc::PersonaSettings::isReadOnly()) + m_xContentGrid->set_sensitive(false); } void SvxPersonalizationTabPage::LoadDefaultImages() diff --git a/cui/source/options/personalization.hxx b/cui/source/options/personalization.hxx index b86653fc5d75..786b22c7d7b3 100644 --- a/cui/source/options/personalization.hxx +++ b/cui/source/options/personalization.hxx @@ -18,7 +18,9 @@ class SvxPersonalizationTabPage : public SfxTabPage { private: std::unique_ptr<weld::RadioButton> m_xNoPersona; ///< Just the default look, without any bitmap + std::unique_ptr<weld::Widget> m_xPersonaImg; std::unique_ptr<weld::RadioButton> m_xDefaultPersona; ///< Use the built-in bitmap + std::unique_ptr<weld::Container> m_xContentGrid; std::unique_ptr<weld::ToggleButton> m_vDefaultPersonaImages [MAX_DEFAULT_PERSONAS]; ///< Buttons to show the default persona images OUString m_aPersonaSettings; ///< Header and footer images + color to be set in the settings. diff --git a/cui/uiconfig/ui/personalization_tab.ui b/cui/uiconfig/ui/personalization_tab.ui index 9e483780bb4f..fc89951f2cb4 100644 --- a/cui/uiconfig/ui/personalization_tab.ui +++ b/cui/uiconfig/ui/personalization_tab.ui @@ -1,38 +1,93 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.22.1 --> +<!-- Generated with glade 3.38.2 --> <interface domain="cui"> <requires lib="gtk+" version="3.20"/> <object class="GtkBox" id="PersonalizationTabPage"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="border_width">6</property> + <property name="can-focus">False</property> + <property name="border-width">6</property> <property name="orientation">vertical</property> <property name="spacing">12</property> <child> <object class="GtkFrame" id="frame2"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label_xalign">0</property> - <property name="shadow_type">none</property> + <property name="can-focus">False</property> + <property name="label-xalign">0</property> + <property name="shadow-type">none</property> <child> <object class="GtkBox" id="vbox2"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="orientation">vertical</property> - <property name="spacing">12</property> + <property name="can-focus">False</property> <property name="margin-start">12</property> + <property name="margin-end">6</property> <property name="margin-top">6</property> <property name="margin-bottom">6</property> - <property name="margin-end">6</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> <child> - <object class="GtkRadioButton" id="no_persona"> - <property name="label" translatable="yes" context="personalization_tab|no_persona">Default look, do not use Themes</property> + <!-- n-columns=2 n-rows=1 --> + <object class="GtkGrid"> <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="active">True</property> - <property name="draw_indicator">True</property> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <child> + <!-- n-columns=1 n-rows=2 --> + <object class="GtkGrid"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="hexpand">True</property> + <property name="row-spacing">12</property> + <child> + <object class="GtkRadioButton" id="no_persona"> + <property name="label" translatable="yes" context="personalization_tab|no_persona">Default look, do not use Themes</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="active">True</property> + <property name="draw-indicator">True</property> + <property name="group">default_persona</property> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="default_persona"> + <property name="label" translatable="yes" context="personalization_tab|default_persona">Preinstalled Theme</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="active">True</property> + <property name="draw-indicator">True</property> + <property name="group">no_persona</property> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">1</property> + </packing> + </child> + </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">0</property> + </packing> + </child> + <child> + <object class="GtkImage" id="lockpersona"> + <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="expand">False</property> @@ -41,128 +96,115 @@ </packing> </child> <child> - <object class="GtkRadioButton" id="default_persona"> - <property name="label" translatable="yes" context="personalization_tab|default_persona">Preinstalled Theme</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> - <property name="group">no_persona</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> + <placeholder/> </child> <child> - <!-- n-columns=1 n-rows=1 --> - <object class="GtkGrid"> + <!-- n-columns=3 n-rows=3 --> + <object class="GtkGrid" id="gridpersonasetting"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">center</property> <property name="margin-start">24</property> <property name="margin-end">6</property> - <property name="row_spacing">6</property> - <property name="column_spacing">6</property> + <property name="row-spacing">6</property> + <property name="column-spacing">6</property> <child> <object class="GtkToggleButton" id="default1"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> + <property name="left-attach">1</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkToggleButton" id="default0"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> + <property name="left-attach">0</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkToggleButton" id="default2"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="left-attach">2</property> + <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkToggleButton" id="default3"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> + <property name="left-attach">0</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkToggleButton" id="default4"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> + <property name="left-attach">1</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkToggleButton" id="default5"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">1</property> + <property name="left-attach">2</property> + <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkToggleButton" id="default6"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">2</property> + <property name="left-attach">0</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkToggleButton" id="default7"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> + <property name="left-attach">1</property> + <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkToggleButton" id="default8"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="always_show_image">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="always-show-image">True</property> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">2</property> + <property name="left-attach">2</property> + <property name="top-attach">2</property> </packing> </child> </object> @@ -177,7 +219,7 @@ <child type="label"> <object class="GtkLabel" id="personas_label"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="label" translatable="yes" context="personalization_tab|personas_label">LibreOffice Themes</property> <attributes> <attribute name="weight" value="bold"/>