vcl/inc/jsdialog/enabled.hxx | 4 +++ vcl/jsdialog/enabled.cxx | 48 ++++++++++++++++++++++++++++++++++++++++-- vcl/source/window/builder.cxx | 18 +++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-)
New commits: commit 87b19251da0e07a24e35cf2a82957abe9285cf2b Author: Caolán McNamara <[email protected]> AuthorDate: Tue Feb 3 13:36:31 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Tue Feb 24 09:22:08 2026 +0100 add calc ui coverage details Change-Id: I23fec7d82b49805ca87fd0efe0b18cba07f9fb1f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198616 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200110 Reviewed-by: Caolán McNamara <[email protected]> diff --git a/vcl/inc/jsdialog/enabled.hxx b/vcl/inc/jsdialog/enabled.hxx index d4347a7e5ebd..4d4a6e2fcd27 100644 --- a/vcl/inc/jsdialog/enabled.hxx +++ b/vcl/inc/jsdialog/enabled.hxx @@ -30,6 +30,10 @@ bool isInterimBuilderEnabledForNotebookbar(std::u16string_view rUIFile); std::vector<OUString> completeWriterDialogList(const o3tl::sorted_vector<OUString>& entries); // 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 calc dialog .ui files not seen that should be seen to have complete coverage +std::vector<OUString> completeCalcDialogList(const o3tl::sorted_vector<OUString>& entries); +// returns vector of calc sidebar .ui files not seen that should be seen to have complete coverage +std::vector<OUString> completeCalcSidebarList(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, bool linguisticDataAvailable); diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx index a5efd356b1c1..825e682f5f27 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -681,6 +681,30 @@ std::vector<OUString> completeWriterSidebarList(const o3tl::sorted_vector<OUStri return missing; } +std::vector<OUString> completeCalcDialogList(const o3tl::sorted_vector<OUString>& entries) +{ + std::vector<OUString> missing; + for (const auto& entry : ScalcDialogList) + { + OUString sEntry(entry); + if (!entries.contains(sEntry)) + missing.push_back(sEntry); + } + return missing; +} + +std::vector<OUString> completeCalcSidebarList(const o3tl::sorted_vector<OUString>& entries) +{ + std::vector<OUString> missing; + for (const auto& entry : SidebarList) + { + OUString sEntry(entry); + if (sEntry.startsWith("modules/scalc/") && !entries.contains(sEntry)) + missing.push_back(sEntry); + } + return missing; +} + std::vector<OUString> completeCommonSidebarList(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 fc5d8385d00b..80a782b2db95 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -224,6 +224,24 @@ void Application::UICoverageReport(tools::JsonWriter& rJson, bool linguisticData rJson.putSimpleValue(entry); } + std::vector<OUString> missingCalcDialogUIs = jsdialog::completeCalcDialogList(entries); + rJson.put("CompleteCalcDialogCoverage", missingCalcDialogUIs.empty()); + if (!missingCalcDialogUIs.empty()) + { + auto childrenNode = rJson.startArray("MissingCalcDialogCoverage"); + for (const auto& entry : missingCalcDialogUIs) + rJson.putSimpleValue(entry); + } + + std::vector<OUString> missingCalcSidebarUIs = jsdialog::completeCalcSidebarList(entries); + rJson.put("CompleteCalcSidebarCoverage", missingCalcSidebarUIs.empty()); + if (!missingCalcSidebarUIs.empty()) + { + auto childrenNode = rJson.startArray("MissingCalcSidebarCoverage"); + for (const auto& entry : missingCalcSidebarUIs) + rJson.putSimpleValue(entry); + } + std::vector<OUString> missingCommonDialogUIs = jsdialog::completeCommonDialogList(entries, linguisticDataAvailable); rJson.put("CompleteCommonDialogCoverage", missingCommonDialogUIs.empty()); if (!missingCommonDialogUIs.empty()) commit 49f7e7155e4fe435800ce5724c43a80f5a28c9cf Author: Caolán McNamara <[email protected]> AuthorDate: Thu Jan 29 10:33:22 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Tue Feb 24 09:22:01 2026 +0100 add additional common sidebars to sidebar coverage Change-Id: I852c3c8f756be00e7d3e6f53b7424cb725b743a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198500 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200109 Reviewed-by: Caolán McNamara <[email protected]> diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx index 9e5c649f4819..a5efd356b1c1 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -688,10 +688,30 @@ std::vector<OUString> completeCommonSidebarList(const o3tl::sorted_vector<OUStri { OUString sEntry(entry); - if (sEntry.startsWith("modules/")) + // consider schart and smath as 'common', but other modules specific to a toplevel application + if (sEntry.startsWith("modules/") && !sEntry.startsWith("modules/schart/") && !sEntry.startsWith("modules/smath/")) + continue; + //TODO: This one should be selectable, but that seems to be broken + else if (entry == u"modules/schart/ui/sidebarerrorbar.ui") + continue; + // Skip this one, it can't appear in practice + else if (entry == u"modules/smath/ui/sidebarproperties_math.ui") + continue; + // Skip this one, theme related, disabled at the moment + else if (entry == u"modules/schart/ui/sidebarcolors.ui") + continue; + // Skip this one, theme related, disabled at the moment + else if (entry == u"modules/schart/ui/sidebargradients.ui") + continue; + // Skip this one, theme related, disabled at the moment + else if (entry == u"modules/schart/ui/sidebartheme.ui") + continue; + // Skip this one, in practice it appears in draw/impress + // TODO: it should probably be made to appear in writer too + else if (entry == u"svx/ui/mediaplayback.ui") continue; // Skip this one, I don't think it can appear in practice - if (entry == u"svx/ui/sidebargallery.ui") + else 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")
