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")

Reply via email to