tdf#169505 Add checkbox to enable/disable native color dialog

Add a checkbox in the option dialog's "General" tab to
allow to easily enable/disable the use of the custom
LibreOffice color picker dialog instead of a native one.

This makes the option newly introduced in previous commit

    Change-Id: I99c5f1e350c36aa3cb70f26724cce9263160f945
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Dec 5 16:59:14 2025 +0100

        tdf#169505 Allow disabling native color pickers

settable via a checkbox in that tab page of the dialog
instead of only via expert settings.

Add the checkbox to the existing frame that provides
such an option for the file dialogs already, and tweak
the wording/visibility a bit.

Change-Id: Icf3746d5936d9df6e52554b5c232632689c2729d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195105
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This commit is contained in:
Michael Weghorn
2025-12-06 08:43:33 +01:00
parent 5bb41f2a58
commit c0d3205c46
3 changed files with 53 additions and 16 deletions
+19 -10
View File
@@ -162,9 +162,10 @@ OfaMiscTabPage::OfaMiscTabPage(weld::Container* pPage, weld::DialogController* p
, m_xPopUpNoHelpImg(m_xBuilder->weld_widget(u"lockpopupnohelp"_ustr))
, m_xShowTipOfTheDay(m_xBuilder->weld_check_button(u"cbShowTipOfTheDay"_ustr))
, m_xShowTipOfTheDayImg(m_xBuilder->weld_widget(u"lockcbShowTipOfTheDay"_ustr))
, m_xFileDlgFrame(m_xBuilder->weld_widget(u"filedlgframe"_ustr))
, m_xFileDlgROImage(m_xBuilder->weld_widget(u"lockimage"_ustr))
, m_xFileDlgCB(m_xBuilder->weld_check_button(u"filedlg"_ustr))
, m_xColorDlgROImage(m_xBuilder->weld_widget(u"locksystemcolordialogs"_ustr))
, m_xColorDlgCB(m_xBuilder->weld_check_button(u"systemcolordialogs"_ustr))
, m_xDocStatusCB(m_xBuilder->weld_check_button(u"docstatus"_ustr))
, m_xDocStatusImg(m_xBuilder->weld_widget(u"lockdocstatus"_ustr))
, m_xYearFrame(m_xBuilder->weld_widget(u"yearframe"_ustr))
@@ -261,6 +262,12 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
bModified = true;
}
if (m_xColorDlgCB->get_state_changed_from_saved())
{
officecfg::Office::Common::Misc::UseSystemColorDialog::set(!m_xColorDlgCB->get_active(), batch);
bModified = true;
}
if ( m_xFileDlgCB->get_state_changed_from_saved() )
{
officecfg::Office::Common::Misc::UseSystemFileDialog::set( !m_xFileDlgCB->get_active(), batch );
@@ -330,15 +337,17 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet )
m_xShowTipOfTheDayImg->set_visible(!bEnable);
m_xShowTipOfTheDay->save_state();
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());
bEnable = !officecfg::Office::Common::Misc::UseSystemColorDialog::isReadOnly();
m_xColorDlgCB->set_sensitive(bEnable);
m_xColorDlgROImage->set_visible(!bEnable);
m_xColorDlgCB->set_active(!officecfg::Office::Common::Misc::UseSystemColorDialog::get());
m_xColorDlgCB->save_state();
const bool bReadOnly = officecfg::Office::Common::Misc::UseSystemFileDialog::isReadOnly();
bEnable = !bReadOnly && lcl_HasSystemFilePicker();
m_xFileDlgCB->set_sensitive(bEnable);
m_xFileDlgROImage->set_visible(bReadOnly);
m_xFileDlgCB->set_active(!lcl_HasSystemFilePicker() || !officecfg::Office::Common::Misc::UseSystemFileDialog::get());
m_xFileDlgCB->save_state();
bEnable = !officecfg::Office::Common::Print::PrintingModifiesDocument::isReadOnly();
+2 -1
View File
@@ -35,9 +35,10 @@ private:
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::Widget> m_xColorDlgROImage;
std::unique_ptr<weld::CheckButton> m_xColorDlgCB;
std::unique_ptr<weld::CheckButton> m_xDocStatusCB;
std::unique_ptr<weld::Widget> m_xDocStatusImg;
std::unique_ptr<weld::Widget> m_xYearFrame;
+32 -5
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.24"/>
<object class="GtkAdjustment" id="adjustment1">
@@ -134,13 +134,13 @@
</packing>
</child>
<child>
<object class="GtkFrame" id="filedlgframe">
<object class="GtkFrame" id="customdialogsframe">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
<!-- n-columns=2 n-rows=1 -->
<!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -149,7 +149,7 @@
<property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="filedlg">
<property name="label" translatable="yes" context="optgeneralpage|filedlg">_Use %PRODUCTNAME dialogs</property>
<property name="label" translatable="yes" context="optgeneralpage|filedlg">_Use %PRODUCTNAME open/save dialogs</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
@@ -174,13 +174,40 @@
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="locksystemcolordialogs">
<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="GtkCheckButton" id="systemcolordialogs">
<property name="label" translatable="yes" context="optgeneralpage|filedlg">U_se %PRODUCTNAME color dialog</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">1</property>
</packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label2">Open/Save Dialogs</property>
<property name="label" translatable="yes" context="optgeneralpage|label2">Dialogs</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>