sd/source/ui/view/viewshe3.cxx | 2 - vcl/inc/jsdialog/enabled.hxx | 8 ++++-- vcl/jsdialog/enabled.cxx | 50 +++++++++++++++++++++++++++++++++++++++++ vcl/source/window/builder.cxx | 18 ++++++++++++++ 4 files changed, 75 insertions(+), 3 deletions(-)
New commits: commit adb30ef8e9240995c154d041bf78e2f42c77c16b Author: Caolán McNamara <[email protected]> AuthorDate: Thu Jan 22 19:58:07 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Tue Feb 24 09:21:04 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/+/200102 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 c08f80c4e991..4f4b04b41bd5 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -681,6 +681,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 fa174f38eb61..0f7071a596de 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -232,6 +232,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 26faa9c5a38959cbea12f7dff0bfe255341cd383 Author: Caolán McNamara <[email protected]> AuthorDate: Wed Jan 21 14:47:50 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Tue Feb 24 09:20:57 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/+/200101 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 85ee271930ba..c08f80c4e991 100644 --- a/vcl/jsdialog/enabled.cxx +++ b/vcl/jsdialog/enabled.cxx @@ -661,6 +661,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 78e686eea893..fa174f38eb61 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -215,6 +215,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()) commit fea4740379a88ab64380d7d4d569f4a6d18af6ca Author: Caolán McNamara <[email protected]> AuthorDate: Thu Jan 22 13:06:47 2026 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Tue Feb 24 09:20:49 2026 +0100 cid#1680358 Dereference before null check Change-Id: Ibf1d4937dca8783f27898af524ed154399b5069a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197816 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200100 Reviewed-by: Caolán McNamara <[email protected]> diff --git a/sd/source/ui/view/viewshe3.cxx b/sd/source/ui/view/viewshe3.cxx index 6c7cd1f06d0d..da990a1ea057 100644 --- a/sd/source/ui/view/viewshe3.cxx +++ b/sd/source/ui/view/viewshe3.cxx @@ -164,7 +164,7 @@ SdPage* ViewShell::CreateOrDuplicatePage ( SdPage* pPage, const sal_Int32 nInsertPosition) { - if (pPage->IsCanvasPage()) + if (pPage && pPage->IsCanvasPage()) return nullptr; sal_uInt16 nSId = rRequest.GetSlot(); SdDrawDocument* pDocument = GetDoc();
