vcl/inc/jsdialog/enabled.hxx | 8 +++++- vcl/jsdialog/enabled.cxx | 50 ++++++++++++++++++++++++++++++++++++++++++ vcl/source/window/builder.cxx | 18 +++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-)
New commits: commit 40c761a93b86ef9ff4fc95561eba4d179cae1d39 Author: Caolán McNamara <[email protected]> AuthorDate: Thu Jan 22 19:58:07 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Feb 13 12:57:45 2026 +0100 add CompleteCommonSidebarCoverage Change-Id: Icedcbac9e2b79a1985832a29c3c0ec3ef298fa91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197871 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199323 Tested-by: Jenkins diff --git a/vcl/inc/jsdialog/enabled.hxx b/vcl/inc/jsdialog/enabled.hxx index 76acfc6483ed..d5a6e13e9b1c 100644 --- a/vcl/inc/jsdialog/enabled.hxx +++ b/vcl/inc/jsdialog/enabled.hxx @@ -32,6 +32,8 @@ std::vector<OUString> completeWriterDialogList(const o3tl::sorted_vector<OUStrin std::vector<OUString> completeWriterSidebarList(const o3tl::sorted_vector<OUString>& entries); // returns vector of common/shared dialog .ui files not seen that should be seen to have complete coverage std::vector<OUString> completeCommonDialogList(const o3tl::sorted_vector<OUString>& entries); +// returns vector of common/shared sidebar .ui files not seen that should be seen to have complete coverage +std::vector<OUString> completeCommonSidebarList(const o3tl::sorted_vector<OUString>& entries); } /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx index a80258ebb796..f162f00c227a 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -671,6 +671,36 @@ std::vector<OUString> completeWriterSidebarList(const o3tl::sorted_vector<OUStri return missing; } +std::vector<OUString> completeCommonSidebarList(const o3tl::sorted_vector<OUString>& entries) +{ + std::vector<OUString> missing; + for (const auto& entry : SidebarList) + { + OUString sEntry(entry); + + if (sEntry.startsWith("modules/")) + continue; + // Skip this one, I don't think it can appear in practice + if (entry == u"svx/ui/sidebargallery.ui") + continue; + // Skip this one, its context means it cannot appear in writer + else if (entry == u"svx/ui/sidebarshadow.ui") + continue; + // Skip this one, its context means it cannot appear in writer + else if (entry == u"svx/ui/sidebartexteffect.ui") + continue; + // Skip this one, its context means it cannot appear in writer + else if (entry == u"svx/ui/sidebarlists.ui") + continue; + // Skip this one, its context means it can only appear in draw/impress + else if (entry == u"svx/ui/defaultshapespanel.ui") + continue; + else if (!entries.contains(sEntry)) + missing.push_back(sEntry); + } + return missing; +} + std::vector<OUString> completeCommonDialogList(const o3tl::sorted_vector<OUString>& entries) { std::vector<OUString> missing; diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 1570c26c5fa4..de630a1d4cb5 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -231,6 +231,15 @@ void Application::UICoverageReport(tools::JsonWriter& rJson) for (const auto& entry : missingCommonDialogUIs) rJson.putSimpleValue(entry); } + + std::vector<OUString> missingCommonSidebarUIs = jsdialog::completeCommonSidebarList(entries); + rJson.put("CompleteCommonSidebarCoverage", missingCommonSidebarUIs.empty()); + if (!missingCommonSidebarUIs.empty()) + { + auto childrenNode = rJson.startArray("MissingCommonSidebarCoverage"); + for (const auto& entry : missingCommonSidebarUIs) + rJson.putSimpleValue(entry); + } } std::unique_ptr<weld::Builder> Application::CreateBuilder(weld::Widget* pParent, const OUString &rUIFile, bool bMobile, sal_uInt64 nLOKWindowId) commit 32b6d500c1ed6a7799458bb6d33efe7b542a4e8b Author: Caolán McNamara <[email protected]> AuthorDate: Wed Jan 21 14:47:50 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Feb 13 12:57:35 2026 +0100 add MissingWriterSidebarCoverage result Change-Id: Ifa20e6859560c518c7722179b475c2801ff8d498 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197862 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199322 Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> diff --git a/vcl/inc/jsdialog/enabled.hxx b/vcl/inc/jsdialog/enabled.hxx index 3b7b33ba9ade..76acfc6483ed 100644 --- a/vcl/inc/jsdialog/enabled.hxx +++ b/vcl/inc/jsdialog/enabled.hxx @@ -26,9 +26,11 @@ bool isBuilderEnabledForNavigator(std::u16string_view rUIFile); bool isBuilderEnabledForQuickFind(std::u16string_view rUIFile); bool isInterimBuilderEnabledForNotebookbar(std::u16string_view rUIFile); -// returns vector of writer .ui files not seen that should be seen to have complete coverage +// returns vector of writer dialog .ui files not seen that should be seen to have complete coverage std::vector<OUString> completeWriterDialogList(const o3tl::sorted_vector<OUString>& entries); -// returns vector of common/shared .ui files not seen that should be seen to have complete coverage +// returns vector of writer sidebar .ui files not seen that should be seen to have complete coverage +std::vector<OUString> completeWriterSidebarList(const o3tl::sorted_vector<OUString>& entries); +// returns vector of common/shared dialog .ui files not seen that should be seen to have complete coverage std::vector<OUString> completeCommonDialogList(const o3tl::sorted_vector<OUString>& entries); } diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx index 82746579ec4a..a80258ebb796 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -651,6 +651,26 @@ std::vector<OUString> completeWriterDialogList(const o3tl::sorted_vector<OUStrin return missing; } +std::vector<OUString> completeWriterSidebarList(const o3tl::sorted_vector<OUString>& entries) +{ + std::vector<OUString> missing; + for (const auto& entry : SidebarList) + { + OUString sEntry(entry); + // Skip these ones, I don't think they can appear in practice + if (entry == u"modules/swriter/ui/managechangessidebar.ui" || + entry == u"modules/swriter/ui/pagefooterpanel.ui" || + entry == u"modules/swriter/ui/pageheaderpanel.ui" || + entry == u"modules/swriter/ui/pagestylespanel.ui" || + entry == u"modules/swriter/ui/sidebarstylepresets.ui" || + entry == u"modules/swriter/ui/sidebartheme.ui") + continue; + else if (sEntry.startsWith("modules/swriter/") && !entries.contains(sEntry)) + missing.push_back(sEntry); + } + return missing; +} + std::vector<OUString> completeCommonDialogList(const o3tl::sorted_vector<OUString>& entries) { std::vector<OUString> missing; diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 71877d35b2b2..1570c26c5fa4 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -214,6 +214,15 @@ void Application::UICoverageReport(tools::JsonWriter& rJson) rJson.putSimpleValue(entry); } + std::vector<OUString> missingWriterSidebarUIs = jsdialog::completeWriterSidebarList(entries); + rJson.put("CompleteWriterSidebarCoverage", missingWriterSidebarUIs.empty()); + if (!missingWriterSidebarUIs.empty()) + { + auto childrenNode = rJson.startArray("MissingWriterSidebarCoverage"); + for (const auto& entry : missingWriterSidebarUIs) + rJson.putSimpleValue(entry); + } + std::vector<OUString> missingCommonDialogUIs = jsdialog::completeCommonDialogList(entries); rJson.put("CompleteCommonDialogCoverage", missingCommonDialogUIs.empty()); if (!missingCommonDialogUIs.empty())
