vcl/inc/jsdialog/enabled.hxx  |    2 ++
 vcl/jsdialog/enabled.cxx      |   14 ++++++++++++++
 vcl/source/window/builder.cxx |    4 ++++
 3 files changed, 20 insertions(+)

New commits:
commit 2cfe2f579d2bf501ccbdecde38d1557c27226f8d
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Tue Mar 4 08:38:13 2025 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Mar 4 18:31:10 2025 +0100

    jsdialogs: warn if not used in lok
    
    - it will be easier to spot missing ui file
    - add ignore list to not spam
    
    Change-Id: I2aabadfd0fa04732e7a7346dbb082d4ca5f01a98
    (cherry picked from commit 126fb266713cf6cdf4a5bfa49f927516ce8d5d15)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182492
    Tested-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/vcl/inc/jsdialog/enabled.hxx b/vcl/inc/jsdialog/enabled.hxx
index 5c85f310f155..fc61a9dba8fc 100644
--- a/vcl/inc/jsdialog/enabled.hxx
+++ b/vcl/inc/jsdialog/enabled.hxx
@@ -13,6 +13,8 @@
 
 namespace jsdialog
 {
+/// used to not warn about it
+bool isIgnored(std::u16string_view rUIFile);
 bool isBuilderEnabled(std::u16string_view rUIFile, bool bMobile);
 bool isBuilderEnabledForPopup(std::u16string_view rUIFile);
 bool isBuilderEnabledForMenu(std::u16string_view rUIFile);
diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx
index f474ca505c16..45fff2d6fc5d 100644
--- a/vcl/jsdialog/enabled.cxx
+++ b/vcl/jsdialog/enabled.cxx
@@ -13,6 +13,20 @@
 
 namespace jsdialog
 {
+bool isIgnored(std::u16string_view rUIFile)
+{
+    if (rUIFile == u"sfx/ui/deck.ui"
+        || rUIFile == u"svt/ui/scrollbars.ui"
+        || rUIFile == u"svx/ui/selectionmenu.ui"
+        || rUIFile == u"svx/ui/stylemenu.ui"
+        || rUIFile == u"svt/ui/tabbuttons.ui"
+        || rUIFile == u"svx/ui/toolbarpopover.ui"
+        || rUIFile == u"svx/ui/toolbarpopover.ui")
+        return true;
+
+    return false;
+}
+
 bool isBuilderEnabled(std::u16string_view rUIFile, bool bMobile)
 {
     // mobile only dialogs
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index c4fb6164f889..94548f8a960a 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -195,6 +195,8 @@ std::unique_ptr<weld::Builder> 
Application::CreateBuilder(weld::Widget* pParent,
             return JSInstanceBuilder::CreateMenuBuilder(pParent, 
AllSettings::GetUIRootDir(), rUIFile);
         else if (jsdialog::isBuilderEnabled(rUIFile, bMobile))
             return JSInstanceBuilder::CreateDialogBuilder(pParent, 
AllSettings::GetUIRootDir(), rUIFile);
+        else if (!jsdialog::isIgnored(rUIFile))
+            SAL_WARN("vcl", "UI file not enabled for JSDialogs: " << rUIFile);
     }
 
     return ImplGetSVData()->mpDefInst->CreateBuilder(pParent, 
AllSettings::GetUIRootDir(), rUIFile);
@@ -213,6 +215,8 @@ std::unique_ptr<weld::Builder> 
Application::CreateInterimBuilder(vcl::Window* pP
         else if (jsdialog::isBuilderEnabledForAddressInput(rUIFile))
             return JSInstanceBuilder::CreateAddressInputBuilder(
                 pParent, AllSettings::GetUIRootDir(), rUIFile, nLOKWindowId);
+        else if (!jsdialog::isIgnored(rUIFile))
+            SAL_WARN("vcl", "UI file not enabled for JSDialogs: " << rUIFile);
     }
 
     return ImplGetSVData()->mpDefInst->CreateInterimBuilder(pParent, 
AllSettings::GetUIRootDir(), rUIFile, bAllowCycleFocusOut, nLOKWindowId);

Reply via email to