sc/inc/scabstdlg.hxx | 4 - sc/source/ui/attrdlg/scdlgfact.cxx | 14 ++- sc/source/ui/attrdlg/scdlgfact.hxx | 13 ++- sc/source/ui/dbgui/scendlg.cxx | 122 ++++++++++++++------------------- sc/source/ui/docshell/docsh4.cxx | 3 sc/source/ui/inc/scendlg.hxx | 36 ++++----- sc/source/ui/view/cellsh3.cxx | 2 sc/uiconfig/scalc/ui/scenariodialog.ui | 47 +++++++++--- 8 files changed, 129 insertions(+), 112 deletions(-)
New commits: commit e666102498dc37988630eb06071670e2c64abdfb Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sat Feb 2 10:21:55 2019 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sat Feb 2 12:26:23 2019 +0100 weld ScNewScenarioDlg Change-Id: I30bab36cc4163872a5e72abd2c111ff9b0b5846e Reviewed-on: https://gerrit.libreoffice.org/67278 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index 8542a283375b..fa82d4550da9 100644 --- a/sc/inc/scabstdlg.hxx +++ b/sc/inc/scabstdlg.hxx @@ -494,8 +494,8 @@ public: ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient ) = 0; - virtual VclPtr<AbstractScNewScenarioDlg> CreateScNewScenarioDlg ( vcl::Window* pParent, const OUString& rName, - bool bEdit, bool bSheetProtected ) = 0; + virtual VclPtr<AbstractScNewScenarioDlg> CreateScNewScenarioDlg(weld::Window* pParent, const OUString& rName, + bool bEdit, bool bSheetProtected) = 0; virtual VclPtr<AbstractScShowTabDlg> CreateScShowTabDlg(weld::Window* pParent) = 0; virtual VclPtr<AbstractScStringInputDlg> CreateScStringInputDlg(weld::Window* pParent, diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx index 4f2ecd2092a0..161297ab80d2 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -172,7 +172,10 @@ short AbstractScDPShowDetailDlg_Impl::Execute() return m_xDlg->run(); } -IMPL_ABSTDLG_BASE(AbstractScNewScenarioDlg_Impl); +short AbstractScNewScenarioDlg_Impl::Execute() +{ + return m_xDlg->run(); +} short AbstractScShowTabDlg_Impl::Execute() { @@ -623,13 +626,13 @@ OUString AbstractScDPShowDetailDlg_Impl::GetDimensionName() const void AbstractScNewScenarioDlg_Impl::SetScenarioData( const OUString& rName, const OUString& rComment, const Color& rColor, ScScenarioFlags nFlags ) { - pDlg->SetScenarioData(rName, rComment, rColor, nFlags); + m_xDlg->SetScenarioData(rName, rComment, rColor, nFlags); } void AbstractScNewScenarioDlg_Impl::GetScenarioData( OUString& rName, OUString& rComment, Color& rColor, ScScenarioFlags& rFlags ) const { - pDlg->GetScenarioData(rName, rComment, rColor, rFlags); + m_xDlg->GetScenarioData(rName, rComment, rColor, rFlags); } void AbstractScShowTabDlg_Impl::Insert( const OUString& rString, bool bSelected ) @@ -923,11 +926,10 @@ VclPtr<AbstractScDPShowDetailDlg> ScAbstractDialogFactory_Impl::CreateScDPShowDe return VclPtr<AbstractScDPShowDetailDlg_Impl>::Create(new ScDPShowDetailDlg(pParent, rDPObj, nOrient)); } -VclPtr<AbstractScNewScenarioDlg> ScAbstractDialogFactory_Impl::CreateScNewScenarioDlg(vcl::Window* pParent, const OUString& rName, +VclPtr<AbstractScNewScenarioDlg> ScAbstractDialogFactory_Impl::CreateScNewScenarioDlg(weld::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected) { - VclPtr<ScNewScenarioDlg> pDlg = VclPtr<ScNewScenarioDlg>::Create(pParent, rName, bEdit, bSheetProtected); - return VclPtr<AbstractScNewScenarioDlg_Impl>::Create( pDlg ); + return VclPtr<AbstractScNewScenarioDlg_Impl>::Create(new ScNewScenarioDlg(pParent, rName, bEdit, bSheetProtected)); } VclPtr<AbstractScShowTabDlg> ScAbstractDialogFactory_Impl::CreateScShowTabDlg(weld::Window* pParent) diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx index bcf0fa6e0c8e..8413310703f8 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -426,7 +426,14 @@ public: class AbstractScNewScenarioDlg_Impl : public AbstractScNewScenarioDlg { - DECL_ABSTDLG_BASE( AbstractScNewScenarioDlg_Impl, ScNewScenarioDlg ) + std::unique_ptr<ScNewScenarioDlg> m_xDlg; +public: + explicit AbstractScNewScenarioDlg_Impl(ScNewScenarioDlg* p) + : m_xDlg(p) + { + } + virtual short Execute() override; + virtual void SetScenarioData( const OUString& rName, const OUString& rComment, const Color& rColor, ScScenarioFlags nFlags ) override; @@ -641,8 +648,8 @@ public: ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient) override; - virtual VclPtr<AbstractScNewScenarioDlg> CreateScNewScenarioDlg ( vcl::Window* pParent, const OUString& rName, - bool bEdit, bool bSheetProtected ) override; + virtual VclPtr<AbstractScNewScenarioDlg> CreateScNewScenarioDlg(weld::Window* pParent, const OUString& rName, + bool bEdit, bool bSheetProtected) override; virtual VclPtr<AbstractScShowTabDlg> CreateScShowTabDlg(weld::Window* pParent) override; virtual VclPtr<AbstractScStringInputDlg> CreateScStringInputDlg(weld::Window* pParent, diff --git a/sc/source/ui/dbgui/scendlg.cxx b/sc/source/ui/dbgui/scendlg.cxx index 451a3c2f2eca..8e71454ee09f 100644 --- a/sc/source/ui/dbgui/scendlg.cxx +++ b/sc/source/ui/dbgui/scendlg.cxx @@ -38,93 +38,79 @@ #include <document.hxx> #include <scendlg.hxx> -ScNewScenarioDlg::ScNewScenarioDlg( vcl::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected) - - : ModalDialog(pParent, "ScenarioDialog", - "modules/scalc/ui/scenariodialog.ui") +ScNewScenarioDlg::ScNewScenarioDlg(weld::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected) + : GenericDialogController(pParent, "modules/scalc/ui/scenariodialog.ui", "ScenarioDialog") , aDefScenarioName(rName) , bIsEdit(bEdit) + , m_xEdName(m_xBuilder->weld_entry("name")) + , m_xEdComment(m_xBuilder->weld_text_view("comment")) + , m_xCbShowFrame(m_xBuilder->weld_check_button("showframe")) + , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("bordercolor"), pParent)) + , m_xCbTwoWay(m_xBuilder->weld_check_button("copyback")) + , m_xCbCopyAll(m_xBuilder->weld_check_button("copysheet")) + , m_xCbProtect(m_xBuilder->weld_check_button("preventchanges")) + , m_xBtnOk(m_xBuilder->weld_button("ok")) + , m_xAltTitle(m_xBuilder->weld_label("alttitle")) + , m_xCreatedFt(m_xBuilder->weld_label("createdft")) + , m_xOnFt(m_xBuilder->weld_label("onft")) { - get(m_pEdName, "name"); - get(m_pEdComment, "comment"); - Size aSize(m_pEdComment->LogicToPixel(Size(183, 46), MapMode(MapUnit::MapAppFont))); - m_pEdComment->set_width_request(aSize.Width()); - m_pEdComment->set_height_request(aSize.Height()); - get(m_pCbShowFrame, "showframe"); - get(m_pLbColor, "bordercolor"); - get(m_pCbTwoWay, "copyback"); - get(m_pCbCopyAll, "copysheet"); - get(m_pCbProtect, "preventchanges"); - get(m_pBtnOk, "ok"); + m_xEdComment->set_size_request(m_xEdComment->get_approximate_digit_width() * 60, + m_xEdComment->get_height_rows(6)); if (bIsEdit) - SetText(get<FixedText>("alttitle")->GetText()); + m_xDialog->set_title(m_xAltTitle->get_label()); SvtUserOptions aUserOpt; - OUString sCreatedBy(get<FixedText>("createdft")->GetText()); - OUString sOn(get<FixedText>("onft")->GetText()); + OUString sCreatedBy(m_xCreatedFt->get_label()); + OUString sOn(m_xOnFt->get_label()); OUString aComment(sCreatedBy + " " + aUserOpt.GetFirstName() + " " +aUserOpt.GetLastName() + ", " + sOn + " " + ScGlobal::GetpLocaleData()->getDate(Date(Date::SYSTEM)) + ", " + ScGlobal::GetpLocaleData()->getTime(tools::Time(tools::Time::SYSTEM))); - m_pEdComment->SetText(aComment); - m_pEdName->SetText(rName); - m_pBtnOk->SetClickHdl( LINK( this, ScNewScenarioDlg, OkHdl ) ); - m_pCbShowFrame->SetClickHdl( LINK( this, ScNewScenarioDlg, EnableHdl ) ); + m_xEdComment->set_text(aComment); + m_xEdName->set_text(rName); + m_xBtnOk->connect_clicked(LINK(this, ScNewScenarioDlg, OkHdl)); + m_xCbShowFrame->connect_toggled(LINK(this, ScNewScenarioDlg, EnableHdl)); - m_pLbColor->SelectEntry( COL_LIGHTGRAY ); - m_pCbShowFrame->Check(); - m_pCbTwoWay->Check(); - m_pCbCopyAll->Check(false); - m_pCbProtect->Check(); + m_xLbColor->SelectEntry( COL_LIGHTGRAY ); + m_xCbShowFrame->set_active(true); + m_xCbTwoWay->set_active(true); + m_xCbCopyAll->set_active(false); + m_xCbProtect->set_active(true); if (bIsEdit) - m_pCbCopyAll->Enable(false); + m_xCbCopyAll->set_active(false); // If the Sheet is protected then we disable the Scenario Protect input // and default it to true above. Note we are in 'Add' mode here as: if // Sheet && scenario protection are true, then we cannot edit this dialog. if (bSheetProtected) - m_pCbProtect->Enable(false); + m_xCbProtect->set_active(false); } ScNewScenarioDlg::~ScNewScenarioDlg() { - disposeOnce(); -} - -void ScNewScenarioDlg::dispose() -{ - m_pEdName.clear(); - m_pEdComment.clear(); - m_pCbShowFrame.clear(); - m_pLbColor.clear(); - m_pCbTwoWay.clear(); - m_pCbCopyAll.clear(); - m_pCbProtect.clear(); - m_pBtnOk.clear(); - ModalDialog::dispose(); } void ScNewScenarioDlg::GetScenarioData( OUString& rName, OUString& rComment, Color& rColor, ScScenarioFlags& rFlags ) const { - rComment = m_pEdComment->GetText(); - rName = m_pEdName->GetText(); + rComment = m_xEdComment->get_text(); + rName = m_xEdName->get_text(); if (rName.isEmpty()) rName = aDefScenarioName; - rColor = m_pLbColor->GetSelectEntryColor(); + rColor = m_xLbColor->GetSelectEntryColor(); ScScenarioFlags nBits = ScScenarioFlags::NONE; - if (m_pCbShowFrame->IsChecked()) + if (m_xCbShowFrame->get_active()) nBits |= ScScenarioFlags::ShowFrame; - if (m_pCbTwoWay->IsChecked()) + if (m_xCbTwoWay->get_active()) nBits |= ScScenarioFlags::TwoWay; - if (m_pCbCopyAll->IsChecked()) + if (m_xCbCopyAll->get_active()) nBits |= ScScenarioFlags::CopyAll; - if (m_pCbProtect->IsChecked()) + if (m_xCbProtect->get_active()) nBits |= ScScenarioFlags::Protected; rFlags = nBits; } @@ -132,50 +118,50 @@ void ScNewScenarioDlg::GetScenarioData( OUString& rName, OUString& rComment, void ScNewScenarioDlg::SetScenarioData(const OUString& rName, const OUString& rComment, const Color& rColor, ScScenarioFlags nFlags) { - m_pEdComment->SetText(rComment); - m_pEdName->SetText(rName); - m_pLbColor->SelectEntry(rColor); + m_xEdComment->set_text(rComment); + m_xEdName->set_text(rName); + m_xLbColor->SelectEntry(rColor); - m_pCbShowFrame->Check ( (nFlags & ScScenarioFlags::ShowFrame) != ScScenarioFlags::NONE ); - EnableHdl(m_pCbShowFrame); - m_pCbTwoWay->Check ( (nFlags & ScScenarioFlags::TwoWay) != ScScenarioFlags::NONE ); + m_xCbShowFrame->set_active( (nFlags & ScScenarioFlags::ShowFrame) != ScScenarioFlags::NONE ); + EnableHdl(*m_xCbShowFrame); + m_xCbTwoWay->set_active( (nFlags & ScScenarioFlags::TwoWay) != ScScenarioFlags::NONE ); // not CopyAll - m_pCbProtect->Check ( (nFlags & ScScenarioFlags::Protected) != ScScenarioFlags::NONE ); + m_xCbProtect->set_active( (nFlags & ScScenarioFlags::Protected) != ScScenarioFlags::NONE ); } -IMPL_LINK_NOARG(ScNewScenarioDlg, OkHdl, Button*, void) +IMPL_LINK_NOARG(ScNewScenarioDlg, OkHdl, weld::Button&, void) { - OUString aName = comphelper::string::strip(m_pEdName->GetText(), ' '); + OUString aName = comphelper::string::strip(m_xEdName->get_text(), ' '); ScDocument* pDoc = static_cast<ScTabViewShell*>(SfxViewShell::Current())->GetViewData().GetDocument(); - m_pEdName->SetText( aName ); + m_xEdName->set_text(aName); if ( !ScDocument::ValidTabName( aName ) ) { - std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(GetFrameWeld(), + std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_xDialog.get(), VclMessageType::Info, VclButtonsType::Ok, ScResId(STR_INVALIDTABNAME))); xInfoBox->run(); - m_pEdName->GrabFocus(); + m_xEdName->grab_focus(); } else if ( !bIsEdit && !pDoc->ValidNewTabName( aName ) ) { - std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(GetFrameWeld(), + std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_xDialog.get(), VclMessageType::Info, VclButtonsType::Ok, ScResId(STR_NEWTABNAMENOTUNIQUE))); xInfoBox->run(); - m_pEdName->GrabFocus(); + m_xEdName->grab_focus(); } else - EndDialog( RET_OK ); + m_xDialog->response(RET_OK); //! when editing, test whether another table has the name! } -IMPL_LINK( ScNewScenarioDlg, EnableHdl, Button*, pBox, void ) +IMPL_LINK(ScNewScenarioDlg, EnableHdl, weld::ToggleButton&, rBox, void) { - if (pBox == m_pCbShowFrame) - m_pLbColor->Enable( m_pCbShowFrame->IsChecked() ); + if (&rBox == m_xCbShowFrame.get()) + m_xLbColor->set_sensitive(m_xCbShowFrame->get_active()); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx index cf1cda8944f3..83ccac2c5c3f 100644 --- a/sc/source/ui/docshell/docsh4.cxx +++ b/sc/source/ui/docshell/docsh4.cxx @@ -917,7 +917,8 @@ void ScDocShell::Execute( SfxRequest& rReq ) ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); - ScopedVclPtr<AbstractScNewScenarioDlg> pNewDlg(pFact->CreateScNewScenarioDlg(GetActiveDialogParent(), aName, true, bSheetProtected)); + vcl::Window* pWin = GetActiveDialogParent(); + ScopedVclPtr<AbstractScNewScenarioDlg> pNewDlg(pFact->CreateScNewScenarioDlg(pWin ? pWin->GetFrameWeld() : nullptr, aName, true, bSheetProtected)); pNewDlg->SetScenarioData( aName, aComment, aColor, nFlags ); if ( pNewDlg->Execute() == RET_OK ) { diff --git a/sc/source/ui/inc/scendlg.hxx b/sc/source/ui/inc/scendlg.hxx index 0af25fa2484e..2774d167a2a6 100644 --- a/sc/source/ui/inc/scendlg.hxx +++ b/sc/source/ui/inc/scendlg.hxx @@ -20,20 +20,17 @@ #ifndef INCLUDED_SC_SOURCE_UI_INC_SCENDLG_HXX #define INCLUDED_SC_SOURCE_UI_INC_SCENDLG_HXX -#include <vcl/dialog.hxx> -#include <vcl/button.hxx> +#include <vcl/weld.hxx> enum class ScScenarioFlags; -class Edit; -class SvxColorListBox; +class ColorListBox; -class ScNewScenarioDlg : public ModalDialog +class ScNewScenarioDlg : public weld::GenericDialogController { public: - ScNewScenarioDlg(vcl::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected); + ScNewScenarioDlg(weld::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected); virtual ~ScNewScenarioDlg() override; - virtual void dispose() override; void SetScenarioData( const OUString& rName, const OUString& rComment, const Color& rColor, ScScenarioFlags nFlags ); @@ -41,19 +38,22 @@ public: Color& rColor, ScScenarioFlags &rFlags) const; private: - VclPtr<Edit> m_pEdName; - VclPtr<VclMultiLineEdit> m_pEdComment; - VclPtr<CheckBox> m_pCbShowFrame; - VclPtr<SvxColorListBox> m_pLbColor; - VclPtr<CheckBox> m_pCbTwoWay; - VclPtr<CheckBox> m_pCbCopyAll; - VclPtr<CheckBox> m_pCbProtect; - VclPtr<OKButton> m_pBtnOk; const OUString aDefScenarioName; bool const bIsEdit; - - DECL_LINK( OkHdl, Button*, void); - DECL_LINK( EnableHdl, Button*, void ); + std::unique_ptr<weld::Entry> m_xEdName; + std::unique_ptr<weld::TextView> m_xEdComment; + std::unique_ptr<weld::CheckButton> m_xCbShowFrame; + std::unique_ptr<ColorListBox> m_xLbColor; + std::unique_ptr<weld::CheckButton> m_xCbTwoWay; + std::unique_ptr<weld::CheckButton> m_xCbCopyAll; + std::unique_ptr<weld::CheckButton> m_xCbProtect; + std::unique_ptr<weld::Button> m_xBtnOk; + std::unique_ptr<weld::Label> m_xAltTitle; + std::unique_ptr<weld::Label> m_xCreatedFt; + std::unique_ptr<weld::Label> m_xOnFt; + + DECL_LINK(OkHdl, weld::Button&, void); + DECL_LINK(EnableHdl, weld::ToggleButton&, void); }; #endif // INCLUDED_SC_SOURCE_UI_INC_SCENDLG_HXX diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx index fb5c81ac9c35..5167e50a50d5 100644 --- a/sc/source/ui/view/cellsh3.cxx +++ b/sc/source/ui/view/cellsh3.cxx @@ -504,7 +504,7 @@ void ScCellShell::Execute( SfxRequest& rReq ) bool bSheetProtected = pDoc->IsTabProtected(nTab); ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); - ScopedVclPtr<AbstractScNewScenarioDlg> pNewDlg(pFact->CreateScNewScenarioDlg(pTabViewShell->GetDialogParent(), aName, false, bSheetProtected)); + ScopedVclPtr<AbstractScNewScenarioDlg> pNewDlg(pFact->CreateScNewScenarioDlg(pTabViewShell->GetFrameWeld(), aName, false, bSheetProtected)); if ( pNewDlg->Execute() == RET_OK ) { pNewDlg->GetScenarioData( aName, aComment, aColor, nFlags ); diff --git a/sc/uiconfig/scalc/ui/scenariodialog.ui b/sc/uiconfig/scalc/ui/scenariodialog.ui index bb2b5436650a..0067c12a3f13 100644 --- a/sc/uiconfig/scalc/ui/scenariodialog.ui +++ b/sc/uiconfig/scalc/ui/scenariodialog.ui @@ -1,13 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="sc"> <requires lib="gtk+" version="3.18"/> - <requires lib="LibreOffice" version="1.0"/> <object class="GtkDialog" id="ScenarioDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="scenariodialog|ScenarioDialog">Create Scenario</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> <property name="type_hint">dialog</property> + <child> + <placeholder/> + </child> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> @@ -100,6 +105,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> + <property name="activates_default">True</property> </object> </child> </object> @@ -138,12 +144,27 @@ <property name="top_padding">6</property> <property name="left_padding">12</property> <child> - <object class="GtkTextView" id="comment:border"> + <object class="GtkScrolledWindow"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="accepts_tab">False</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">never</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkTextView" id="comment"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="accepts_tab">False</property> + </object> + </child> + </object> + </child> </object> </child> </object> @@ -253,17 +274,17 @@ </packing> </child> <child> - <object class="svxcorelo-SvxColorListBox" id="bordercolor"> + <object class="GtkMenuButton" id="bordercolor"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="xalign">0</property> + <child> + <placeholder/> + </child> <accessibility> <relation type="labelled-by" target="showframe"/> </accessibility> - <child internal-child="accessible"> - <object class="AtkObject" id="bordercolor-atkobject"> - <property name="AtkObject::accessible-name" translatable="yes" context="scenariodialog|bordercolor-atkobject">Display border in</property> - </object> - </child> </object> <packing> <property name="left_attach">1</property> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits