vcl/inc/jsdialog/enabled.hxx | 2 ++ vcl/jsdialog/enabled.cxx | 30 ++++++++++++++++++++++++++++++ vcl/source/window/builder.cxx | 9 +++++++++ 3 files changed, 41 insertions(+)
New commits: commit 80924c3a801a1755adcbf1f192be20e38f86523b Author: Caolán McNamara <[email protected]> AuthorDate: Thu Jan 22 19:58:07 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Jan 23 17:07:11 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]> 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 60bc147f225d..7d872632fe5f 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -682,6 +682,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 b6b2f8577f1c..d5638d4410d4 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -230,6 +230,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)
