sc/source/ui/dbgui/validate.cxx | 144 ++++++++++---------------- sc/source/ui/inc/validate.hxx | 34 ++---- sc/uiconfig/scalc/ui/erroralerttabpage.ui | 30 +---- sc/uiconfig/scalc/ui/validationhelptabpage.ui | 22 +-- 4 files changed, 90 insertions(+), 140 deletions(-)
New commits: commit fcd2f1c80f0523efb6941239c220bddd25d4cd7b Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sun Oct 7 19:53:09 2018 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Mon Oct 8 10:14:07 2018 +0200 weld ScTPValidationError Change-Id: Iaea475dc1037ed070ab2ff61be647f345d39ae3c Reviewed-on: https://gerrit.libreoffice.org/61501 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx index 937b081172fb..8f9711ef28f4 100644 --- a/sc/source/ui/dbgui/validate.cxx +++ b/sc/source/ui/dbgui/validate.cxx @@ -742,21 +742,20 @@ bool ScTPValidationHelp::FillItemSet( SfxItemSet* rArgSet ) // Error Alert Page -ScTPValidationError::ScTPValidationError( vcl::Window* pParent, - const SfxItemSet& rArgSet ) +ScTPValidationError::ScTPValidationError(TabPageParent pParent, + const SfxItemSet& rArgSet) : SfxTabPage ( pParent, - "ErrorAlertTabPage" , "modules/scalc/ui/erroralerttabpage.ui" , + "modules/scalc/ui/erroralerttabpage.ui", "ErrorAlertTabPage", &rArgSet ) -{ - get(m_pTsbShow,"tsbshow"); - get(m_pLbAction,"actionCB"); - get(m_pBtnSearch,"browseBtn"); - get(m_pEdtTitle,"erroralert_title"); - get(m_pFtError,"errormsg_label"); - get(m_pEdError,"errorMsg"); - m_pEdError->set_height_request(m_pEdError->GetTextHeight() * 12); - m_pEdError->set_width_request(m_pEdError->approximate_char_width() * 50); + , m_xTsbShow(m_xBuilder->weld_check_button("tsbshow")) + , m_xLbAction(m_xBuilder->weld_combo_box("actionCB")) + , m_xBtnSearch(m_xBuilder->weld_button("browseBtn")) + , m_xEdtTitle(m_xBuilder->weld_entry("erroralert_title")) + , m_xFtError(m_xBuilder->weld_label("errormsg_label")) + , m_xEdError(m_xBuilder->weld_text_view("errorMsg")) +{ + m_xEdError->set_size_request(m_xEdError->get_approximate_digit_width() * 40, m_xEdError->get_height_rows(12)); Init(); } @@ -765,32 +764,20 @@ ScTPValidationError::~ScTPValidationError() disposeOnce(); } -void ScTPValidationError::dispose() -{ - m_pTsbShow.clear(); - m_pLbAction.clear(); - m_pBtnSearch.clear(); - m_pEdtTitle.clear(); - m_pFtError.clear(); - m_pEdError.clear(); - SfxTabPage::dispose(); -} - void ScTPValidationError::Init() { - m_pLbAction->SetSelectHdl( LINK( this, ScTPValidationError, SelectActionHdl ) ); - m_pBtnSearch->SetClickHdl( LINK( this, ScTPValidationError, ClickSearchHdl ) ); + m_xLbAction->connect_changed(LINK(this, ScTPValidationError, SelectActionHdl)); + m_xBtnSearch->connect_clicked(LINK( this, ScTPValidationError, ClickSearchHdl)); - m_pLbAction->SelectEntryPos( 0 ); - m_pTsbShow->EnableTriState( false ); + m_xLbAction->set_active(0); - SelectActionHdl( *m_pLbAction.get() ); + SelectActionHdl(*m_xLbAction); } -VclPtr<SfxTabPage> ScTPValidationError::Create( TabPageParent pParent, - const SfxItemSet* rArgSet ) +VclPtr<SfxTabPage> ScTPValidationError::Create(TabPageParent pParent, + const SfxItemSet* rArgSet) { - return VclPtr<ScTPValidationError>::Create( pParent.pParent, *rArgSet ); + return VclPtr<ScTPValidationError>::Create(pParent, *rArgSet); } void ScTPValidationError::Reset( const SfxItemSet* rArgSet ) @@ -798,49 +785,49 @@ void ScTPValidationError::Reset( const SfxItemSet* rArgSet ) const SfxPoolItem* pItem; if ( rArgSet->GetItemState( FID_VALID_SHOWERR, true, &pItem ) == SfxItemState::SET ) - m_pTsbShow->SetState( static_cast<const SfxBoolItem*>(pItem)->GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE ); + m_xTsbShow->set_state( static_cast<const SfxBoolItem*>(pItem)->GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE ); else - m_pTsbShow->SetState( TRISTATE_TRUE ); // check by default + m_xTsbShow->set_state( TRISTATE_TRUE ); // check by default if ( rArgSet->GetItemState( FID_VALID_ERRSTYLE, true, &pItem ) == SfxItemState::SET ) - m_pLbAction->SelectEntryPos( static_cast<const SfxAllEnumItem*>(pItem)->GetValue() ); + m_xLbAction->set_active( static_cast<const SfxAllEnumItem*>(pItem)->GetValue() ); else - m_pLbAction->SelectEntryPos( 0 ); + m_xLbAction->set_active( 0 ); if ( rArgSet->GetItemState( FID_VALID_ERRTITLE, true, &pItem ) == SfxItemState::SET ) - m_pEdtTitle->SetText( static_cast<const SfxStringItem*>(pItem)->GetValue() ); + m_xEdtTitle->set_text( static_cast<const SfxStringItem*>(pItem)->GetValue() ); else - m_pEdtTitle->SetText( EMPTY_OUSTRING ); + m_xEdtTitle->set_text( EMPTY_OUSTRING ); if ( rArgSet->GetItemState( FID_VALID_ERRTEXT, true, &pItem ) == SfxItemState::SET ) - m_pEdError->SetText( static_cast<const SfxStringItem*>(pItem)->GetValue() ); + m_xEdError->set_text( static_cast<const SfxStringItem*>(pItem)->GetValue() ); else - m_pEdError->SetText( EMPTY_OUSTRING ); + m_xEdError->set_text( EMPTY_OUSTRING ); - SelectActionHdl( *m_pLbAction.get() ); + SelectActionHdl( *m_xLbAction.get() ); } bool ScTPValidationError::FillItemSet( SfxItemSet* rArgSet ) { - rArgSet->Put( SfxBoolItem( FID_VALID_SHOWERR, m_pTsbShow->GetState() == TRISTATE_TRUE ) ); - rArgSet->Put( SfxAllEnumItem( FID_VALID_ERRSTYLE, m_pLbAction->GetSelectedEntryPos() ) ); - rArgSet->Put( SfxStringItem( FID_VALID_ERRTITLE, m_pEdtTitle->GetText() ) ); - rArgSet->Put( SfxStringItem( FID_VALID_ERRTEXT, m_pEdError->GetText() ) ); + rArgSet->Put( SfxBoolItem( FID_VALID_SHOWERR, m_xTsbShow->get_state() == TRISTATE_TRUE ) ); + rArgSet->Put( SfxAllEnumItem( FID_VALID_ERRSTYLE, m_xLbAction->get_active() ) ); + rArgSet->Put( SfxStringItem( FID_VALID_ERRTITLE, m_xEdtTitle->get_text() ) ); + rArgSet->Put( SfxStringItem( FID_VALID_ERRTEXT, m_xEdError->get_text() ) ); return true; } -IMPL_LINK_NOARG(ScTPValidationError, SelectActionHdl, ListBox&, void) +IMPL_LINK_NOARG(ScTPValidationError, SelectActionHdl, weld::ComboBox&, void) { - ScValidErrorStyle eStyle = static_cast<ScValidErrorStyle>(m_pLbAction->GetSelectedEntryPos()); + ScValidErrorStyle eStyle = static_cast<ScValidErrorStyle>(m_xLbAction->get_active()); bool bMacro = ( eStyle == SC_VALERR_MACRO ); - m_pBtnSearch->Enable( bMacro ); - m_pFtError->Enable( !bMacro ); - m_pEdError->Enable( !bMacro ); + m_xBtnSearch->set_sensitive( bMacro ); + m_xFtError->set_sensitive( !bMacro ); + m_xEdError->set_sensitive( !bMacro ); } -IMPL_LINK_NOARG(ScTPValidationError, ClickSearchHdl, Button*, void) +IMPL_LINK_NOARG(ScTPValidationError, ClickSearchHdl, weld::Button&, void) { // Use static SfxApplication method to bring up selector dialog for // choosing a script @@ -848,7 +835,7 @@ IMPL_LINK_NOARG(ScTPValidationError, ClickSearchHdl, Button*, void) if ( !aScriptURL.isEmpty() ) { - m_pEdtTitle->SetText( aScriptURL ); + m_xEdtTitle->set_text( aScriptURL ); } } diff --git a/sc/source/ui/inc/validate.hxx b/sc/source/ui/inc/validate.hxx index 45917c08b7ca..bb9d262ee968 100644 --- a/sc/source/ui/inc/validate.hxx +++ b/sc/source/ui/inc/validate.hxx @@ -279,23 +279,22 @@ public: class ScTPValidationError : public SfxTabPage { private: - VclPtr<TriStateBox> m_pTsbShow; - VclPtr<ListBox> m_pLbAction; - VclPtr<PushButton> m_pBtnSearch; - VclPtr<Edit> m_pEdtTitle; - VclPtr<FixedText> m_pFtError; - VclPtr<VclMultiLineEdit> m_pEdError; + std::unique_ptr<weld::CheckButton> m_xTsbShow; + std::unique_ptr<weld::ComboBox> m_xLbAction; + std::unique_ptr<weld::Button> m_xBtnSearch; + std::unique_ptr<weld::Entry> m_xEdtTitle; + std::unique_ptr<weld::Label> m_xFtError; + std::unique_ptr<weld::TextView> m_xEdError; void Init(); // Handler ------------------------ - DECL_LINK(SelectActionHdl, ListBox&, void); - DECL_LINK(ClickSearchHdl, Button*, void); + DECL_LINK(SelectActionHdl, weld::ComboBox&, void); + DECL_LINK(ClickSearchHdl, weld::Button&, void); public: - ScTPValidationError( vcl::Window* pParent, const SfxItemSet& rArgSet ); - virtual ~ScTPValidationError() override; - virtual void dispose() override; + ScTPValidationError(TabPageParent pParent, const SfxItemSet& rArgSet); + virtual ~ScTPValidationError() override; static VclPtr<SfxTabPage> Create ( TabPageParent pParent, const SfxItemSet* rArgSet ); virtual bool FillItemSet ( SfxItemSet* rArgSet ) override; diff --git a/sc/uiconfig/scalc/ui/erroralerttabpage.ui b/sc/uiconfig/scalc/ui/erroralerttabpage.ui index ef8f9bc8191d..e35b1964e8db 100644 --- a/sc/uiconfig/scalc/ui/erroralerttabpage.ui +++ b/sc/uiconfig/scalc/ui/erroralerttabpage.ui @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> <interface domain="sc"> - <!-- interface-requires gtk+ 3.0 --> + <requires lib="gtk+" version="3.18"/> <object class="GtkBox" id="ErrorAlertTabPage"> <property name="visible">True</property> <property name="can_focus">False</property> @@ -55,33 +56,29 @@ <object class="GtkLabel" id="action_label"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="erroralerttabpage|action_label">_Action:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">actionCB</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="title_label"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> <property name="label" translatable="yes" context="erroralerttabpage|title_label">_Title:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">erroralert_title</property> + <property name="xalign">0</property> + <property name="yalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -91,7 +88,7 @@ <property name="vexpand">True</property> <property name="shadow_type">in</property> <child> - <object class="GtkTextView" id="errorMsg:border"> + <object class="GtkTextView" id="errorMsg"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="vexpand">True</property> @@ -102,36 +99,33 @@ <property name="left_attach">1</property> <property name="top_attach">2</property> <property name="width">2</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkEntry" id="erroralert_title"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="activates_default">True</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> <property name="width">2</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="errormsg_label"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> <property name="label" translatable="yes" context="erroralerttabpage|errormsg_label">_Error message:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">errorMsg:border</property> + <property name="mnemonic_widget">errorMsg</property> + <property name="xalign">0</property> + <property name="yalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -145,8 +139,6 @@ <packing> <property name="left_attach">2</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -164,8 +156,6 @@ <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> </object> commit 59dd8fe17e970743e45edf687ab8751ab7f21b1f Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sun Oct 7 19:42:46 2018 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Mon Oct 8 10:13:52 2018 +0200 weld ScTPValidationHelp Change-Id: I7bf8219bfef8f6e7d765b2a9f1240f364418cbc2 Reviewed-on: https://gerrit.libreoffice.org/61500 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx index 78d2c154c319..937b081172fb 100644 --- a/sc/source/ui/dbgui/validate.cxx +++ b/sc/source/ui/dbgui/validate.cxx @@ -691,19 +691,13 @@ IMPL_LINK_NOARG(ScTPValidationValue, CheckHdl, Button*, void) // Input Help Page -ScTPValidationHelp::ScTPValidationHelp( vcl::Window* pParent, - const SfxItemSet& rArgSet ) - - : SfxTabPage ( pParent, - "ValidationHelpTabPage" , "modules/scalc/ui/validationhelptabpage.ui" , - &rArgSet ) +ScTPValidationHelp::ScTPValidationHelp(TabPageParent pParent, const SfxItemSet& rArgSet) + : SfxTabPage(pParent, "modules/scalc/ui/validationhelptabpage.ui", "ValidationHelpTabPage", &rArgSet) + , m_xTsbHelp(m_xBuilder->weld_check_button("tsbhelp")) + , m_xEdtTitle(m_xBuilder->weld_entry("title")) + , m_xEdInputHelp(m_xBuilder->weld_text_view("inputhelp")) { - get(pTsbHelp,"tsbhelp"); - get(pEdtTitle,"title"); - get(pEdInputHelp,"inputhelp"); - pEdInputHelp->set_height_request(pEdInputHelp->GetTextHeight() * 12); - pEdInputHelp->set_width_request(pEdInputHelp->approximate_char_width() * 50); - Init(); + m_xEdInputHelp->set_size_request(m_xEdInputHelp->get_approximate_digit_width() * 40, m_xEdInputHelp->get_height_rows(13)); } ScTPValidationHelp::~ScTPValidationHelp() @@ -711,23 +705,10 @@ ScTPValidationHelp::~ScTPValidationHelp() disposeOnce(); } -void ScTPValidationHelp::dispose() -{ - pTsbHelp.clear(); - pEdtTitle.clear(); - pEdInputHelp.clear(); - SfxTabPage::dispose(); -} - -void ScTPValidationHelp::Init() -{ - pTsbHelp->EnableTriState( false ); -} - -VclPtr<SfxTabPage> ScTPValidationHelp::Create( TabPageParent pParent, - const SfxItemSet* rArgSet ) +VclPtr<SfxTabPage> ScTPValidationHelp::Create(TabPageParent pParent, + const SfxItemSet* rArgSet) { - return VclPtr<ScTPValidationHelp>::Create( pParent.pParent, *rArgSet ); + return VclPtr<ScTPValidationHelp>::Create(pParent, *rArgSet); } void ScTPValidationHelp::Reset( const SfxItemSet* rArgSet ) @@ -735,26 +716,26 @@ void ScTPValidationHelp::Reset( const SfxItemSet* rArgSet ) const SfxPoolItem* pItem; if ( rArgSet->GetItemState( FID_VALID_SHOWHELP, true, &pItem ) == SfxItemState::SET ) - pTsbHelp->SetState( static_cast<const SfxBoolItem*>(pItem)->GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE ); + m_xTsbHelp->set_state( static_cast<const SfxBoolItem*>(pItem)->GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE ); else - pTsbHelp->SetState( TRISTATE_FALSE ); + m_xTsbHelp->set_state( TRISTATE_FALSE ); if ( rArgSet->GetItemState( FID_VALID_HELPTITLE, true, &pItem ) == SfxItemState::SET ) - pEdtTitle->SetText( static_cast<const SfxStringItem*>(pItem)->GetValue() ); + m_xEdtTitle->set_text( static_cast<const SfxStringItem*>(pItem)->GetValue() ); else - pEdtTitle->SetText( EMPTY_OUSTRING ); + m_xEdtTitle->set_text( EMPTY_OUSTRING ); if ( rArgSet->GetItemState( FID_VALID_HELPTEXT, true, &pItem ) == SfxItemState::SET ) - pEdInputHelp->SetText( static_cast<const SfxStringItem*>(pItem)->GetValue() ); + m_xEdInputHelp->set_text( static_cast<const SfxStringItem*>(pItem)->GetValue() ); else - pEdInputHelp->SetText( EMPTY_OUSTRING ); + m_xEdInputHelp->set_text( EMPTY_OUSTRING ); } bool ScTPValidationHelp::FillItemSet( SfxItemSet* rArgSet ) { - rArgSet->Put( SfxBoolItem( FID_VALID_SHOWHELP, pTsbHelp->GetState() == TRISTATE_TRUE ) ); - rArgSet->Put( SfxStringItem( FID_VALID_HELPTITLE, pEdtTitle->GetText() ) ); - rArgSet->Put( SfxStringItem( FID_VALID_HELPTEXT, pEdInputHelp->GetText() ) ); + rArgSet->Put( SfxBoolItem( FID_VALID_SHOWHELP, m_xTsbHelp->get_state() == TRISTATE_TRUE ) ); + rArgSet->Put( SfxStringItem( FID_VALID_HELPTITLE, m_xEdtTitle->get_text() ) ); + rArgSet->Put( SfxStringItem( FID_VALID_HELPTEXT, m_xEdInputHelp->get_text() ) ); return true; } diff --git a/sc/source/ui/inc/validate.hxx b/sc/source/ui/inc/validate.hxx index b32aad732baf..45917c08b7ca 100644 --- a/sc/source/ui/inc/validate.hxx +++ b/sc/source/ui/inc/validate.hxx @@ -261,18 +261,17 @@ public: class ScTPValidationHelp : public SfxTabPage { private: - VclPtr<TriStateBox> pTsbHelp; - VclPtr<Edit> pEdtTitle; - VclPtr<VclMultiLineEdit> pEdInputHelp; + std::unique_ptr<weld::CheckButton> m_xTsbHelp; + std::unique_ptr<weld::Entry> m_xEdtTitle; + std::unique_ptr<weld::TextView> m_xEdInputHelp; void Init(); public: - ScTPValidationHelp( vcl::Window* pParent, const SfxItemSet& rArgSet ); - virtual ~ScTPValidationHelp() override; - virtual void dispose() override; + ScTPValidationHelp(TabPageParent pParent, const SfxItemSet& rArgSet); + virtual ~ScTPValidationHelp() override; - static VclPtr<SfxTabPage> Create ( TabPageParent pParent, const SfxItemSet* rArgSet ); + static VclPtr<SfxTabPage> Create(TabPageParent pParent, const SfxItemSet* rArgSet); virtual bool FillItemSet ( SfxItemSet* rArgSet ) override; virtual void Reset ( const SfxItemSet* rArgSet ) override; }; diff --git a/sc/uiconfig/scalc/ui/validationhelptabpage.ui b/sc/uiconfig/scalc/ui/validationhelptabpage.ui index 8a62990b116e..48c1755a8000 100644 --- a/sc/uiconfig/scalc/ui/validationhelptabpage.ui +++ b/sc/uiconfig/scalc/ui/validationhelptabpage.ui @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> <interface domain="sc"> - <!-- interface-requires gtk+ 3.0 --> + <requires lib="gtk+" version="3.18"/> <object class="GtkBox" id="ValidationHelpTabPage"> <property name="visible">True</property> <property name="can_focus">False</property> @@ -56,45 +57,40 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> + <property name="activates_default">True</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="title_label"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="validationhelptabpage|title_label">_Title:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">title</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> <object class="GtkLabel" id="inputhelp_label"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> <property name="label" translatable="yes" context="validationhelptabpage|inputhelp_label">_Input help:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">inputhelp:border</property> + <property name="mnemonic_widget">inputhelp</property> + <property name="xalign">0</property> + <property name="yalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> <child> @@ -105,7 +101,7 @@ <property name="vexpand">True</property> <property name="shadow_type">in</property> <child> - <object class="GtkTextView" id="inputhelp:border"> + <object class="GtkTextView" id="inputhelp"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> @@ -116,8 +112,6 @@ <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> </object> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits