vcl/jsdialog/enabled.cxx |  894 ++++++++++++++++++++++++++---------------------
 1 file changed, 508 insertions(+), 386 deletions(-)

New commits:
commit 62f605e2a7508dcea2cc85cd47a05861cec6e800
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Tue Mar 4 09:00:27 2025 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Wed Mar 5 17:47:27 2025 +0100

    jsdialogs: use frozen:: map for ui file lookup
    
    - less string comparison
    - more compact code
    - less duplication
    
    Change-Id: I6325cf59b1c8ecf04f3dd89bf454ab15542311c3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182456
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182538
    Tested-by: Jenkins
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx
index 45fff2d6fc5d..8004271aefd7 100644
--- a/vcl/jsdialog/enabled.cxx
+++ b/vcl/jsdialog/enabled.cxx
@@ -8,305 +8,526 @@
  */
 
 #include <comphelper/string.hxx>
+#include <frozen/bits/defines.h>
+#include <frozen/bits/elsa_std.h>
+#include <frozen/unordered_map.h>
 #include <jsdialog/enabled.hxx>
 #include <vector>
 
-namespace jsdialog
+namespace
 {
-bool isIgnored(std::u16string_view rUIFile)
+enum JSDialogEnabledType
 {
-    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;
+    Ignore = 0,
+    Dialog = 1,
+    Popup = 2,
+    Menu = 3,
+    Sidebar = 4,
+    Notebookbar = 5,
+    AddressInput = 6,
+    Formulabar = 7,
+    MobileDialog = 8,
+};
 
-    return false;
-}
+// ========== IGNORED ======================================================= 
//
 
-bool isBuilderEnabled(std::u16string_view rUIFile, bool bMobile)
-{
-    // mobile only dialogs
-    if (bMobile)
-    {
-        if (// swriter
-            rUIFile == u"modules/swriter/ui/watermarkdialog.ui"
-            || rUIFile == u"modules/swriter/ui/wordcount-mobile.ui"
-            // svx
-            || rUIFile == u"svx/ui/findreplacedialog-mobile.ui")
-        {
-            return true;
-        }
-    }
+constexpr auto IgnoredList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        { u"sfx/ui/deck.ui", JSDialogEnabledType::Ignore },
+        { u"sfx/ui/tabbar.ui", JSDialogEnabledType::Ignore },
+        { u"sfx/ui/tabbarcontents.ui", JSDialogEnabledType::Ignore },
+        { u"svt/ui/scrollbars.ui", JSDialogEnabledType::Ignore },
+        { u"svx/ui/selectionmenu.ui", JSDialogEnabledType::Ignore },
+        { u"svx/ui/stylemenu.ui", JSDialogEnabledType::Ignore },
+        { u"svt/ui/tabbuttons.ui", JSDialogEnabledType::Ignore },
+        { u"svx/ui/toolbarpopover.ui", JSDialogEnabledType::Ignore }
+    });
 
-    if (// cui
-        rUIFile == u"cui/ui/areatabpage.ui"
-        || rUIFile == u"cui/ui/areadialog.ui"
-        || rUIFile == u"cui/ui/asiantypography.ui"
-        || rUIFile == u"cui/ui/borderpage.ui"
-        || rUIFile == u"cui/ui/bulletandposition.ui"
-        || rUIFile == u"cui/ui/cellalignment.ui"
-        || rUIFile == u"cui/ui/charnamepage.ui"
-        || rUIFile == u"cui/ui/colorpage.ui"
-        || rUIFile == u"cui/ui/colorpickerdialog.ui"
-        || rUIFile == u"cui/ui/croppage.ui"
-        || rUIFile == u"cui/ui/effectspage.ui"
-        || rUIFile == u"cui/ui/eventassigndialog.ui"
-        || rUIFile == u"cui/ui/fontfeaturesdialog.ui"
-        || rUIFile == u"cui/ui/formatcellsdialog.ui"
-        || rUIFile == u"cui/ui/formatnumberdialog.ui"
-        || rUIFile == u"cui/ui/gradientpage.ui"
-        || rUIFile == u"cui/ui/hatchpage.ui"
-        || rUIFile == u"cui/ui/hyperlinkdialog.ui"
-        || rUIFile == u"cui/ui/hyperlinkinternetpage.ui"
-        || rUIFile == u"cui/ui/hyperlinkmailpage.ui"
-        || rUIFile == u"cui/ui/imagetabpage.ui"
-        || rUIFile == u"cui/ui/linedialog.ui"
-        || rUIFile == u"cui/ui/lineendstabpage.ui"
-        || rUIFile == u"cui/ui/linestyletabpage.ui"
-        || rUIFile == u"cui/ui/linetabpage.ui"
-        || rUIFile == u"cui/ui/macroselectordialog.ui"
-        || rUIFile == u"cui/ui/namedialog.ui"
-        || rUIFile == u"cui/ui/numberingformatpage.ui"
-        || rUIFile == u"cui/ui/numberingoptionspage.ui"
-        || rUIFile == u"cui/ui/numberingpositionpage.ui"
-        || rUIFile == u"cui/ui/objectnamedialog.ui"
-        || rUIFile == u"cui/ui/objecttitledescdialog.ui"
-        || rUIFile == u"cui/ui/optlingupage.ui"
-        || rUIFile == u"cui/ui/pageformatpage.ui"
-        || rUIFile == u"cui/ui/paragalignpage.ui"
-        || rUIFile == u"cui/ui/paraindentspacing.ui"
-        || rUIFile == u"cui/ui/paratabspage.ui"
-        || rUIFile == u"cui/ui/password.ui"
-        || rUIFile == u"cui/ui/pastespecial.ui"
-        || rUIFile == u"cui/ui/patterntabpage.ui"
-        || rUIFile == u"cui/ui/pickbulletpage.ui"
-        || rUIFile == u"cui/ui/pickgraphicpage.ui"
-        || rUIFile == u"cui/ui/picknumberingpage.ui"
-        || rUIFile == u"cui/ui/pickoutlinepage.ui"
-        || rUIFile == u"cui/ui/positionpage.ui"
-        || rUIFile == u"cui/ui/positionsizedialog.ui"
-        || rUIFile == u"cui/ui/possizetabpage.ui"
-        || rUIFile == u"cui/ui/rotationtabpage.ui"
-        || rUIFile == u"cui/ui/shadowtabpage.ui"
-        || rUIFile == u"cui/ui/slantcornertabpage.ui"
-        || rUIFile == u"cui/ui/spinbox.ui"
-        || rUIFile == u"cui/ui/queryduplicatedialog.ui"
-        || rUIFile == u"cui/ui/similaritysearchdialog.ui"
-        || rUIFile == u"cui/ui/specialcharacters.ui"
-        || rUIFile == u"cui/ui/spellingdialog.ui"
-        || rUIFile == u"cui/ui/spelloptionsdialog.ui"
-        || rUIFile == u"cui/ui/splitcellsdialog.ui"
-        || rUIFile == u"cui/ui/textflowpage.ui"
-        || rUIFile == u"cui/ui/thesaurus.ui"
-        || rUIFile == u"cui/ui/transparencytabpage.ui"
-        || rUIFile == u"cui/ui/twolinespage.ui"
-        || rUIFile == u"cui/ui/widgettestdialog.ui"
-        || rUIFile == u"cui/ui/qrcodegen.ui"
-        // formula
-        || rUIFile == u"formula/ui/formuladialog.ui"
-        || rUIFile == u"formula/ui/functionpage.ui"
-        || rUIFile == u"formula/ui/parameter.ui"
-        || rUIFile == u"formula/ui/structpage.ui"
+// ========== MOBILE DIALOGS ================================================= 
//
+
+constexpr auto MobileDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        { u"modules/swriter/ui/watermarkdialog.ui", 
JSDialogEnabledType::MobileDialog },
+        { u"modules/swriter/ui/wordcount-mobile.ui", 
JSDialogEnabledType::MobileDialog },
+        { u"svx/ui/findreplacedialog-mobile.ui", 
JSDialogEnabledType::MobileDialog }
+    });
+
+// ========== DIALOGS ======================================================= 
//
+// Split into few - to allow constexpr and manage order
+
+constexpr auto CuiDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        // cui
+        { u"cui/ui/areatabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/areadialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/asiantypography.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/borderpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/bulletandposition.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/cellalignment.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/charnamepage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/colorpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/colorpickerdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/croppage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/effectspage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/eventassigndialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/fontfeaturesdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/formatcellsdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/formatnumberdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/gradientpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/hatchpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/hyperlinkdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/hyperlinkinternetpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/hyperlinkmailpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/imagetabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/linedialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/lineendstabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/linestyletabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/linetabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/macroselectordialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/namedialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/numberingformatpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/numberingoptionspage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/numberingpositionpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/objectnamedialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/objecttitledescdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/optlingupage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/pageformatpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/paragalignpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/paraindentspacing.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/paratabspage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/password.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/pastespecial.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/patterntabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/pickbulletpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/pickgraphicpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/picknumberingpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/pickoutlinepage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/positionpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/positionsizedialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/possizetabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/rotationtabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/shadowtabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/slantcornertabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/spinbox.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/queryduplicatedialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/similaritysearchdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/specialcharacters.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/spellingdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/spelloptionsdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/splitcellsdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/textflowpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/thesaurus.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/transparencytabpage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/twolinespage.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/widgettestdialog.ui", JSDialogEnabledType::Dialog },
+        { u"cui/ui/qrcodegen.ui", JSDialogEnabledType::Dialog }
+    });
+
+constexpr auto SfxDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        // sfx
+        { u"sfx/ui/cmisinfopage.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/custominfopage.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/descriptioninfopage.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/documentinfopage.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/documentfontspage.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/documentpropertiesdialog.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/editdurationdialog.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/headfootformatpage.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/linefragment.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/managestylepage.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/newstyle.ui", JSDialogEnabledType::Dialog },
+        { u"sfx/ui/password.ui", JSDialogEnabledType::Dialog }
+    });
+
+constexpr auto ScalcDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
         // scalc
-        || rUIFile == u"modules/scalc/ui/advancedfilterdialog.ui"
-        || rUIFile == u"modules/scalc/ui/analysisofvariancedialog.ui"
-        || rUIFile == u"modules/scalc/ui/cellprotectionpage.ui"
-        || rUIFile == u"modules/scalc/ui/chardialog.ui"
-        || rUIFile == u"modules/scalc/ui/chisquaretestdialog.ui"
-        || rUIFile == u"modules/scalc/ui/colwidthdialog.ui"
-        || rUIFile == u"modules/scalc/ui/conditionaleasydialog.ui"
-        || rUIFile == u"modules/scalc/ui/condformatmanager.ui"
-        || rUIFile == u"modules/scalc/ui/correlationdialog.ui"
-        || rUIFile == u"modules/scalc/ui/covariancedialog.ui"
-        || rUIFile == u"modules/scalc/ui/datafielddialog.ui"
-        || rUIFile == u"modules/scalc/ui/datafieldoptionsdialog.ui"
-        || rUIFile == u"modules/scalc/ui/definename.ui"
-        || rUIFile == u"modules/scalc/ui/deletecells.ui"
-        || rUIFile == u"modules/scalc/ui/deletecontents.ui"
-        || rUIFile == u"modules/scalc/ui/descriptivestatisticsdialog.ui"
-        || rUIFile == u"modules/scalc/ui/erroralerttabpage.ui"
-        || rUIFile == u"modules/scalc/ui/exponentialsmoothingdialog.ui"
-        || rUIFile == u"modules/scalc/ui/formatcellsdialog.ui"
-        || rUIFile == u"modules/scalc/ui/fourieranalysisdialog.ui"
-        || rUIFile == u"modules/scalc/ui/goalseekdlg.ui"
-        || rUIFile == u"modules/scalc/ui/groupdialog.ui"
-        || rUIFile == u"modules/scalc/ui/headerfootercontent.ui"
-        || rUIFile == u"modules/scalc/ui/headerfooterdialog.ui"
-        || rUIFile == u"modules/scalc/ui/imoptdialog.ui"
-        || rUIFile == u"modules/scalc/ui/insertcells.ui"
-        || rUIFile == u"modules/scalc/ui/managenamesdialog.ui"
-        || rUIFile == u"modules/scalc/ui/movingaveragedialog.ui"
-        || rUIFile == u"modules/scalc/ui/optimalcolwidthdialog.ui"
-        || rUIFile == u"modules/scalc/ui/optimalrowheightdialog.ui"
-        || rUIFile == u"modules/scalc/ui/pagetemplatedialog.ui"
-        || rUIFile == u"modules/scalc/ui/paratemplatedialog.ui"
-        || rUIFile == u"modules/scalc/ui/pastespecial.ui"
-        || rUIFile == u"modules/scalc/ui/pivotfielddialog.ui"
-        || rUIFile == u"modules/scalc/ui/pivottablelayoutdialog.ui"
-        || rUIFile == u"modules/scalc/ui/protectsheetdlg.ui"
-        || rUIFile == u"modules/scalc/ui/regressiondialog.ui"
-        || rUIFile == u"modules/scalc/ui/rowheightdialog.ui"
-        || rUIFile == u"modules/scalc/ui/samplingdialog.ui"
-        || rUIFile == u"modules/scalc/ui/selectsource.ui"
-        || rUIFile == u"modules/scalc/ui/sheetprintpage.ui"
-        || rUIFile == u"modules/scalc/ui/simplerefdialog.ui"
-        || rUIFile == u"modules/scalc/ui/sortcriteriapage.ui"
-        || rUIFile == u"modules/scalc/ui/sortdialog.ui"
-        || rUIFile == u"modules/scalc/ui/sortkey.ui"
-        || rUIFile == u"modules/scalc/ui/sortoptionspage.ui"
-        || rUIFile == u"modules/scalc/ui/sparklinedialog.ui"
-        || rUIFile == u"modules/scalc/ui/standardfilterdialog.ui"
-        || rUIFile == u"modules/scalc/ui/textimportcsv.ui"
-        || rUIFile == u"modules/scalc/ui/ttestdialog.ui"
-        || rUIFile == u"modules/scalc/ui/ungroupdialog.ui"
-        || rUIFile == u"modules/scalc/ui/validationcriteriapage.ui"
-        || rUIFile == u"modules/scalc/ui/validationdialog.ui"
-        || rUIFile == u"modules/scalc/ui/validationhelptabpage.ui"
-        || rUIFile == u"modules/scalc/ui/warnautocorrect.ui"
-        || rUIFile == u"modules/scalc/ui/ztestdialog.ui"
-        || rUIFile == u"modules/scalc/ui/definedatabaserangedialog.ui"
-        || rUIFile == u"modules/scalc/ui/selectrange.ui"
-        // schart
-        || rUIFile == u"modules/schart/ui/attributedialog.ui"
-        || rUIFile == u"modules/schart/ui/charttypedialog.ui"
-        || rUIFile == u"modules/schart/ui/datarangedialog.ui"
-        || rUIFile == u"modules/schart/ui/insertaxisdlg.ui"
-        || rUIFile == u"modules/schart/ui/inserttitledlg.ui"
-        || rUIFile == u"modules/schart/ui/smoothlinesdlg.ui"
-        || rUIFile == u"modules/schart/ui/steppedlinesdlg.ui"
-        || rUIFile == u"modules/schart/ui/tp_ChartType.ui"
-        || rUIFile == u"modules/schart/ui/tp_DataSource.ui"
-        || rUIFile == u"modules/schart/ui/tp_RangeChooser.ui"
-        || rUIFile == u"modules/schart/ui/tp_Trendline.ui"
-        || rUIFile == u"modules/schart/ui/wizelementspage.ui"
-        // sdraw
-        || rUIFile == u"modules/sdraw/ui/drawchardialog.ui"
-        || rUIFile == u"modules/sdraw/ui/drawpagedialog.ui"
-        || rUIFile == u"modules/sdraw/ui/drawparadialog.ui"
-        // simpress
-        || rUIFile == u"modules/simpress/ui/customanimationeffecttab.ui"
-        || rUIFile == u"modules/simpress/ui/customanimationproperties.ui"
-        || rUIFile == u"modules/simpress/ui/customanimationtexttab.ui"
-        || rUIFile == u"modules/simpress/ui/customanimationtimingtab.ui"
-        || rUIFile == u"modules/simpress/ui/headerfooterdialog.ui"
-        || rUIFile == u"modules/simpress/ui/headerfootertab.ui"
-        || rUIFile == u"modules/simpress/ui/interactiondialog.ui"
-        || rUIFile == u"modules/simpress/ui/interactionpage.ui"
+        { u"modules/scalc/ui/advancedfilterdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/analysisofvariancedialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/cellprotectionpage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/chardialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/chisquaretestdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/colwidthdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/conditionaleasydialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/condformatmanager.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/correlationdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/covariancedialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/datafielddialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/datafieldoptionsdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/definename.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/deletecells.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/deletecontents.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/descriptivestatisticsdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/erroralerttabpage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/exponentialsmoothingdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/formatcellsdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/fourieranalysisdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/goalseekdlg.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/groupdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/headerfootercontent.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/headerfooterdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/imoptdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/insertcells.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/managenamesdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/movecopysheet.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/movingaveragedialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/optimalcolwidthdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/optimalrowheightdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/pagetemplatedialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/paratemplatedialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/pastespecial.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/pivotfielddialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/pivottablelayoutdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/protectsheetdlg.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/regressiondialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/rowheightdialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/samplingdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/selectsource.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/sheetprintpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/simplerefdialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/sortcriteriapage.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/sortdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/sortkey.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/sortoptionspage.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/sparklinedialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/standardfilterdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/textimportcsv.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/ttestdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/ungroupdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/validationcriteriapage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/validationdialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/validationhelptabpage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/warnautocorrect.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/scalc/ui/ztestdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/definedatabaserangedialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/scalc/ui/selectrange.ui", JSDialogEnabledType::Dialog }
+    });
+
+constexpr auto SwriterDialogList
+= frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
         // swriter
-        || rUIFile == u"modules/swriter/ui/bulletsandnumbering.ui"
-        || rUIFile == u"modules/swriter/ui/captionoptions.ui"
-        || rUIFile == u"modules/swriter/ui/characterproperties.ui"
-        || rUIFile == u"modules/swriter/ui/charurlpage.ui"
-        || rUIFile == u"modules/swriter/ui/columndialog.ui"
-        || rUIFile == u"modules/swriter/ui/columnpage.ui"
-        || rUIFile == u"modules/swriter/ui/contentcontroldlg.ui"
-        || rUIFile == u"modules/swriter/ui/contentcontrollistitemdlg.ui"
-        || rUIFile == u"modules/swriter/ui/dropcapspage.ui"
-        || rUIFile == u"modules/swriter/ui/dropdownfielddialog.ui"
-        || rUIFile == u"modules/swriter/ui/editsectiondialog.ui"
-        || rUIFile == u"modules/swriter/ui/endnotepage.ui"
-        || rUIFile == u"modules/swriter/ui/footendnotedialog.ui"
-        || rUIFile == u"modules/swriter/ui/footnoteareapage.ui"
-        || rUIFile == u"modules/swriter/ui/footnotepage.ui"
-        || rUIFile == u"modules/swriter/ui/footnotesendnotestabpage.ui"
-        || rUIFile == u"modules/swriter/ui/formatsectiondialog.ui"
-        || rUIFile == u"modules/swriter/ui/formattablepage.ui"
-        || rUIFile == u"modules/swriter/ui/framedialog.ui"
-        || rUIFile == u"modules/swriter/ui/frmaddpage.ui"
-        || rUIFile == u"modules/swriter/ui/frmurlpage.ui"
-        || rUIFile == u"modules/swriter/ui/frmtypepage.ui"
-        || rUIFile == u"modules/swriter/ui/indentpage.ui"
-        || rUIFile == u"modules/swriter/ui/indexentry.ui"
-        || rUIFile == u"modules/swriter/ui/inforeadonlydialog.ui"
-        || rUIFile == u"modules/swriter/ui/insertbreak.ui"
-        || rUIFile == u"modules/swriter/ui/insertcaption.ui"
-        || rUIFile == u"modules/swriter/ui/insertsectiondialog.ui"
-        || rUIFile == u"modules/swriter/ui/linenumbering.ui"
-        || rUIFile == u"modules/swriter/ui/newuserindexdialog.ui"
-        || rUIFile == u"modules/swriter/ui/numparapage.ui"
-        || rUIFile == u"modules/swriter/ui/objectdialog.ui"
-        || rUIFile == u"modules/swriter/ui/pagenumberdlg.ui"
-        || rUIFile == u"modules/swriter/ui/paradialog.ui"
-        || rUIFile == u"modules/swriter/ui/picturedialog.ui"
-        || rUIFile == u"modules/swriter/ui/picturepage.ui"
-        || rUIFile == u"modules/swriter/ui/sectionpage.ui"
-        || rUIFile == u"modules/swriter/ui/sortdialog.ui"
-        || rUIFile == u"modules/swriter/ui/splittable.ui"
-        || rUIFile == u"modules/swriter/ui/tablecolumnpage.ui"
-        || rUIFile == u"modules/swriter/ui/tableproperties.ui"
-        || rUIFile == u"modules/swriter/ui/tabletextflowpage.ui"
-        || rUIFile == u"modules/swriter/ui/templatedialog1.ui"
-        || rUIFile == u"modules/swriter/ui/templatedialog2.ui"
-        || rUIFile == u"modules/swriter/ui/templatedialog8.ui"
-        || rUIFile == u"modules/swriter/ui/textgridpage.ui"
-        || rUIFile == u"modules/swriter/ui/titlepage.ui"
-        || rUIFile == u"modules/swriter/ui/tocdialog.ui"
-        || rUIFile == u"modules/swriter/ui/tocentriespage.ui"
-        || rUIFile == u"modules/swriter/ui/tocindexpage.ui"
-        || rUIFile == u"modules/swriter/ui/tocstylespage.ui"
-        || rUIFile == u"modules/swriter/ui/translationdialog.ui"
-        || rUIFile == u"modules/swriter/ui/watermarkdialog.ui"
-        || rUIFile == u"modules/swriter/ui/wordcount.ui"
-        || rUIFile == u"modules/swriter/ui/wrappage.ui"
-        // sfx
-        || rUIFile == u"sfx/ui/cmisinfopage.ui"
-        || rUIFile == u"sfx/ui/custominfopage.ui"
-        || rUIFile == u"sfx/ui/descriptioninfopage.ui"
-        || rUIFile == u"sfx/ui/documentinfopage.ui"
-        || rUIFile == u"sfx/ui/documentfontspage.ui"
-        || rUIFile == u"sfx/ui/documentpropertiesdialog.ui"
-        || rUIFile == u"sfx/ui/editdurationdialog.ui"
-        || rUIFile == u"svx/ui/headfootformatpage.ui"
-        || rUIFile == u"sfx/ui/linefragment.ui"
-        || rUIFile == u"sfx/ui/managestylepage.ui"
-        || rUIFile == u"sfx/ui/newstyle.ui"
-        || rUIFile == u"sfx/ui/password.ui"
+        { u"modules/swriter/ui/bulletsandnumbering.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/captionoptions.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/swriter/ui/characterproperties.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/charurlpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/columndialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/columnpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/contentcontroldlg.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/contentcontrollistitemdlg.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/dropcapspage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/dropdownfielddialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/editsectiondialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/endnotepage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/footendnotedialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/footnoteareapage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/footnotepage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/footnotesendnotestabpage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/formatsectiondialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/formattablepage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/framedialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/frmaddpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/frmurlpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/frmtypepage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/indentpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/indexentry.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/inforeadonlydialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/insertbreak.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/insertcaption.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/swriter/ui/insertsectiondialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/linenumbering.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/swriter/ui/newuserindexdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/numparapage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/objectdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/pagenumberdlg.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/swriter/ui/paradialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/picturedialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/swriter/ui/picturepage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/sectionpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/sortdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/splittable.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/tablecolumnpage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/tableproperties.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/tabletextflowpage.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/templatedialog1.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/templatedialog2.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/templatedialog8.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/textgridpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/titlepage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/tocdialog.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/tocentriespage.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/swriter/ui/tocindexpage.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/tocstylespage.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/swriter/ui/translationdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/watermarkdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/wordcount.ui", JSDialogEnabledType::Dialog },
+        { u"modules/swriter/ui/wrappage.ui", JSDialogEnabledType::Dialog }
+});
+
+constexpr auto SimpressDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        // simpress
+        { u"modules/simpress/ui/customanimationeffecttab.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/simpress/ui/customanimationproperties.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/simpress/ui/customanimationtexttab.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/simpress/ui/customanimationtimingtab.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/simpress/ui/headerfooterdialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/simpress/ui/headerfootertab.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/simpress/ui/interactiondialog.ui", 
JSDialogEnabledType::Dialog },
+        { u"modules/simpress/ui/interactionpage.ui", 
JSDialogEnabledType::Dialog }
+    });
+
+constexpr auto SdrawDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+    // sdraw
+    { u"modules/sdraw/ui/drawchardialog.ui", JSDialogEnabledType::Dialog },
+    { u"modules/sdraw/ui/drawpagedialog.ui", JSDialogEnabledType::Dialog },
+    { u"modules/sdraw/ui/drawparadialog.ui", JSDialogEnabledType::Dialog }
+    });
+
+constexpr auto SchartDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        // schart
+        { u"modules/schart/ui/attributedialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/schart/ui/charttypedialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/schart/ui/datarangedialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/schart/ui/insertaxisdlg.ui", JSDialogEnabledType::Dialog },
+        { u"modules/schart/ui/inserttitledlg.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/schart/ui/smoothlinesdlg.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/schart/ui/steppedlinesdlg.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/schart/ui/tp_ChartType.ui", JSDialogEnabledType::Dialog },
+        { u"modules/schart/ui/tp_DataSource.ui", JSDialogEnabledType::Dialog },
+        { u"modules/schart/ui/tp_RangeChooser.ui", JSDialogEnabledType::Dialog 
},
+        { u"modules/schart/ui/tp_Trendline.ui", JSDialogEnabledType::Dialog },
+        { u"modules/schart/ui/wizelementspage.ui", JSDialogEnabledType::Dialog 
}
+    });
+
+constexpr auto OtherDialogList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        // formula
+        { u"formula/ui/formuladialog.ui", JSDialogEnabledType::Dialog },
+        { u"formula/ui/functionpage.ui", JSDialogEnabledType::Dialog },
+        { u"formula/ui/parameter.ui", JSDialogEnabledType::Dialog },
+        { u"formula/ui/structpage.ui", JSDialogEnabledType::Dialog },
         // svx
-        || rUIFile == u"svx/ui/acceptrejectchangesdialog.ui"
-        || rUIFile == u"svx/ui/accessibilitycheckdialog.ui"
-        || rUIFile == u"svx/ui/accessibilitycheckentry.ui"
-        || rUIFile == u"svx/ui/accessibilitychecklevel.ui"
-        || rUIFile == u"svx/ui/compressgraphicdialog.ui"
-        || rUIFile == u"svx/ui/findreplacedialog.ui"
-        || rUIFile == u"svx/ui/fontworkgallerydialog.ui"
-        || rUIFile == u"svx/ui/headfootformatpage.ui"
-        || rUIFile == u"svx/ui/redlinecontrol.ui"
-        || rUIFile == u"svx/ui/redlinefilterpage.ui"
-        || rUIFile == u"svx/ui/redlineviewpage.ui"
-        || rUIFile == u"svx/ui/themecoloreditdialog.ui"
-        || rUIFile == u"svx/ui/themedialog.ui"
+        { u"svx/ui/acceptrejectchangesdialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"svx/ui/accessibilitycheckdialog.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/accessibilitycheckentry.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/compressgraphicdialog.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/findreplacedialog.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/fontworkgallerydialog.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/headfootformatpage.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/redlinecontrol.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/redlinefilterpage.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/redlineviewpage.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/themecoloreditdialog.ui", JSDialogEnabledType::Dialog },
+        { u"svx/ui/themedialog.ui", JSDialogEnabledType::Dialog },
         // uui
-        || rUIFile == u"uui/ui/logindialog.ui"
-        || rUIFile == u"uui/ui/macrowarnmedium.ui"
+        { u"uui/ui/logindialog.ui", JSDialogEnabledType::Dialog },
+        { u"uui/ui/macrowarnmedium.ui", JSDialogEnabledType::Dialog },
         // vcl
-        || rUIFile == u"vcl/ui/wizard.ui"
+        { u"vcl/ui/wizard.ui", JSDialogEnabledType::Dialog },
         // filter
-        || rUIFile == u"filter/ui/pdfgeneralpage.ui"
-        || rUIFile == u"filter/ui/pdflinkspage.ui"
-        || rUIFile == u"filter/ui/pdfoptionsdialog.ui"
-        || rUIFile == u"filter/ui/pdfsecuritypage.ui"
-        || rUIFile == u"filter/ui/pdfsignpage.ui"
-        || rUIFile == u"filter/ui/pdfuserinterfacepage.ui"
-        || rUIFile == u"filter/ui/pdfviewpage.ui"
-        || rUIFile == u"filter/ui/warnpdfdialog.ui"
+        { u"filter/ui/pdfgeneralpage.ui", JSDialogEnabledType::Dialog },
+        { u"filter/ui/pdflinkspage.ui", JSDialogEnabledType::Dialog },
+        { u"filter/ui/pdfoptionsdialog.ui", JSDialogEnabledType::Dialog },
+        { u"filter/ui/pdfsecuritypage.ui", JSDialogEnabledType::Dialog },
+        { u"filter/ui/pdfsignpage.ui", JSDialogEnabledType::Dialog },
+        { u"filter/ui/pdfuserinterfacepage.ui", JSDialogEnabledType::Dialog },
+        { u"filter/ui/pdfviewpage.ui", JSDialogEnabledType::Dialog },
+        { u"filter/ui/warnpdfdialog.ui", JSDialogEnabledType::Dialog },
         // writerperfect
-        || rUIFile == u"writerperfect/ui/exportepub.ui"
-        || rUIFile == u"writerperfect/ui/wpftencodingdialog.ui"
+        { u"writerperfect/ui/exportepub.ui", JSDialogEnabledType::Dialog },
+        { u"writerperfect/ui/wpftencodingdialog.ui", 
JSDialogEnabledType::Dialog },
         // xmlsec
-        || rUIFile == u"xmlsec/ui/certgeneral.ui"
-        || rUIFile == u"xmlsec/ui/certpage.ui"
-        || rUIFile == u"xmlsec/ui/digitalsignaturesdialog.ui"
-        || rUIFile == u"xmlsec/ui/selectcertificatedialog.ui"
-        || rUIFile == u"xmlsec/ui/viewcertdialog.ui"
-        )
+        { u"xmlsec/ui/certgeneral.ui", JSDialogEnabledType::Dialog },
+        { u"xmlsec/ui/certpage.ui", JSDialogEnabledType::Dialog },
+        { u"xmlsec/ui/digitalsignaturesdialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"xmlsec/ui/selectcertificatedialog.ui", JSDialogEnabledType::Dialog 
},
+        { u"xmlsec/ui/viewcertdialog.ui", JSDialogEnabledType::Dialog }
+    });
+
+// ========== POPUP ====================================================== //
+
+constexpr auto PopupList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        // scalc
+        { u"modules/scalc/ui/filterdropdown.ui", JSDialogEnabledType::Popup },
+        { u"modules/scalc/ui/filterlist.ui", JSDialogEnabledType::Popup },
+        { u"modules/scalc/ui/filtersubdropdown.ui", JSDialogEnabledType::Popup 
},
+        { u"modules/scalc/ui/floatingborderstyle.ui", 
JSDialogEnabledType::Popup },
+        { u"modules/scalc/ui/floatinglinestyle.ui", JSDialogEnabledType::Popup 
},
+        // svt
+        { u"svt/ui/datewindow.ui", JSDialogEnabledType::Popup },
+        { u"svt/ui/linewindow.ui", JSDialogEnabledType::Popup },
+        // svx
+        { u"svx/ui/colorwindow.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/currencywindow.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/floatingareastyle.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/floatingframeborder.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/floatinglineend.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/floatinglineproperty.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/floatinglinestyle.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/fontworkalignmentcontrol.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/fontworkcharacterspacingcontrol.ui", 
JSDialogEnabledType::Popup },
+        { u"svx/ui/numberingwindow.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/paralinespacingcontrol.ui", JSDialogEnabledType::Popup },
+        { u"svx/ui/textcharacterspacingcontrol.ui", JSDialogEnabledType::Popup 
},
+        { u"svx/ui/textunderlinecontrol.ui", JSDialogEnabledType::Popup }
+    });
+
+// ========== MENU ======================================================= //
+
+constexpr auto MenuList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        { u"sfx/ui/stylecontextmenu.ui", JSDialogEnabledType::Menu }
+    });
+
+// ========== SIDEBAR ==================================================== //
+
+constexpr auto SidebarList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        // scalc
+        { u"modules/scalc/ui/functionpanel.ui", JSDialogEnabledType::Sidebar },
+        { u"modules/scalc/ui/navigatorpanel.ui", JSDialogEnabledType::Sidebar 
},
+        { u"modules/scalc/ui/sidebaralignment.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/scalc/ui/sidebarcellappearance.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/scalc/ui/sidebarnumberformat.ui", 
JSDialogEnabledType::Sidebar },
+        // schart
+        { u"modules/schart/ui/sidebaraxis.ui", JSDialogEnabledType::Sidebar },
+        { u"modules/schart/ui/sidebarelements.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/schart/ui/sidebarerrorbar.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/schart/ui/sidebarseries.ui", JSDialogEnabledType::Sidebar 
},
+        { u"modules/schart/ui/sidebartype.ui", JSDialogEnabledType::Sidebar },
+        // simpress
+        { u"modules/simpress/ui/customanimationfragment.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/customanimationspanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/layoutpanel.ui", JSDialogEnabledType::Sidebar 
},
+        { u"modules/simpress/ui/masterpagepanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/masterpagepanelall.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/masterpagepanelrecent.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/navigatorpanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/sidebarslidebackground.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/slidetransitionspanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/simpress/ui/tabledesignpanel.ui", 
JSDialogEnabledType::Sidebar },
+        // smath
+        { u"modules/smath/ui/sidebarelements_math.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/smath/ui/sidebarproperties_math.ui", 
JSDialogEnabledType::Sidebar },
+        // swriter
+        { u"modules/swriter/ui/a11ycheckissuespanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/managechangessidebar.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/navigatorpanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/pagefooterpanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/pageformatpanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/pageheaderpanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/pagestylespanel.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/sidebarstylepresets.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/sidebartableedit.ui", 
JSDialogEnabledType::Sidebar },
+        { u"modules/swriter/ui/sidebartheme.ui", JSDialogEnabledType::Sidebar 
},
+        { u"modules/swriter/ui/sidebarwrap.ui", JSDialogEnabledType::Sidebar },
+        // sfx
+        { u"sfx/ui/panel.ui", JSDialogEnabledType::Sidebar },
+        { u"sfx/ui/templatepanel.ui", JSDialogEnabledType::Sidebar },
+        // svx
+        { u"svx/ui/defaultshapespanel.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/inspectortextpanel.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/mediaplayback.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebararea.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebareffect.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarempty.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarfontwork.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebargallery.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebargraphic.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarline.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarlists.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarparagraph.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarpossize.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarshadow.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebarstylespanel.ui", JSDialogEnabledType::Sidebar },
+        { u"svx/ui/sidebartextpanel.ui", JSDialogEnabledType::Sidebar }
+    });
+
+// ========== NOTEBOOKBAR ================================================= //
+
+constexpr auto NotebookbarList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        { u"modules/scalc/ui/numberbox.ui", JSDialogEnabledType::Notebookbar },
+        { u"svx/ui/fontnamebox.ui", JSDialogEnabledType::Notebookbar },
+        { u"svx/ui/fontsizebox.ui", JSDialogEnabledType::Notebookbar },
+        { u"svx/ui/stylespreview.ui", JSDialogEnabledType::Notebookbar }
+    });
+
+// ========== ADDRESSINPUT ================================================ //
+
+constexpr auto AddressInputList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        { u"modules/scalc/ui/posbox.ui", JSDialogEnabledType::AddressInput }
+    });
+
+// ========== FORMULABAR ================================================== //
+
+constexpr auto FormulabarList
+    = frozen::make_unordered_map<std::u16string_view, JSDialogEnabledType>({
+        { u"modules/scalc/ui/inputbar.ui", JSDialogEnabledType::Formulabar }
+    });
+
+// ========== LOOKUP ====================================================== //
+
+inline bool isInMap(const auto& rList, std::u16string_view rUIFile, 
JSDialogEnabledType eType)
+{
+    auto aFound = rList.find(rUIFile);
+    if (aFound != rList.end())
     {
-        return true;
+        bool bIsMatchingType = aFound->second == eType;
+        assert(bIsMatchingType);
+        return bIsMatchingType;
     }
 
+    return false;
+}
+} // end of namespace
+
+namespace jsdialog
+{
+
+bool isIgnored(std::u16string_view rUIFile)
+{
+    return isInMap(IgnoredList, rUIFile, JSDialogEnabledType::Ignore);
+}
+
+bool isBuilderEnabled(std::u16string_view rUIFile, bool bMobile)
+{
+    // mobile only dialogs
+    if (bMobile)
+    {
+        if (isInMap(MobileDialogList, rUIFile, 
JSDialogEnabledType::MobileDialog))
+            return true;
+    }
+
+    if (isInMap(CuiDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
+    if (isInMap(SfxDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
+    if (isInMap(ScalcDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
+    if (isInMap(SwriterDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
+    if (isInMap(SimpressDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
+    if (isInMap(SdrawDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
+    if (isInMap(SchartDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
+    if (isInMap(OtherDialogList, rUIFile, JSDialogEnabledType::Dialog))
+        return true;
+
     const char* pEnabledDialog = getenv("SAL_JSDIALOG_ENABLE");
     if (pEnabledDialog)
     {
@@ -325,132 +546,33 @@ bool isBuilderEnabled(std::u16string_view rUIFile, bool 
bMobile)
 
 bool isBuilderEnabledForPopup(std::u16string_view rUIFile)
 {
-    if (// scalc
-        rUIFile == u"modules/scalc/ui/filterdropdown.ui"
-        || rUIFile == u"modules/scalc/ui/filterlist.ui"
-        || rUIFile == u"modules/scalc/ui/filtersubdropdown.ui"
-        || rUIFile == u"modules/scalc/ui/floatingborderstyle.ui"
-        || rUIFile == u"modules/scalc/ui/floatinglinestyle.ui"
-        // svt
-        || rUIFile == u"svt/ui/datewindow.ui"
-        || rUIFile == u"svt/ui/linewindow.ui"
-        // svx
-        || rUIFile == u"svx/ui/colorwindow.ui"
-        || rUIFile == u"svx/ui/currencywindow.ui"
-        || rUIFile == u"svx/ui/floatingareastyle.ui"
-        || rUIFile == u"svx/ui/floatingframeborder.ui"
-        || rUIFile == u"svx/ui/floatinglineend.ui"
-        || rUIFile == u"svx/ui/floatinglineproperty.ui"
-        || rUIFile == u"svx/ui/floatinglinestyle.ui"
-        || rUIFile == u"svx/ui/fontworkalignmentcontrol.ui"
-        || rUIFile == u"svx/ui/fontworkcharacterspacingcontrol.ui"
-        || rUIFile == u"svx/ui/numberingwindow.ui"
-        || rUIFile == u"svx/ui/paralinespacingcontrol.ui"
-        || rUIFile == u"svx/ui/textcharacterspacingcontrol.ui"
-        || rUIFile == u"svx/ui/textunderlinecontrol.ui")
-        return true;
-
-    return false;
+    return isInMap(PopupList, rUIFile, JSDialogEnabledType::Popup);
 }
 
 bool isBuilderEnabledForMenu(std::u16string_view rUIFile)
 {
-    if (// sfx2
-        rUIFile == u"sfx/ui/stylecontextmenu.ui")
-        return true;
-
-    return false;
+    return isInMap(MenuList, rUIFile, JSDialogEnabledType::Menu);
 }
 
 bool isBuilderEnabledForSidebar(std::u16string_view rUIFile)
 {
-    return // scalc
-        rUIFile == u"modules/scalc/ui/functionpanel.ui"
-        || rUIFile == u"modules/scalc/ui/navigatorpanel.ui"
-        || rUIFile == u"modules/scalc/ui/sidebaralignment.ui"
-        || rUIFile == u"modules/scalc/ui/sidebarcellappearance.ui"
-        || rUIFile == u"modules/scalc/ui/sidebarnumberformat.ui"
-        // schart
-        || rUIFile == u"modules/schart/ui/sidebaraxis.ui"
-        || rUIFile == u"modules/schart/ui/sidebarelements.ui"
-        || rUIFile == u"modules/schart/ui/sidebarerrorbar.ui"
-        || rUIFile == u"modules/schart/ui/sidebarseries.ui"
-        || rUIFile == u"modules/schart/ui/sidebartype.ui"
-        // simpress
-        || rUIFile == u"modules/simpress/ui/customanimationfragment.ui"
-        || rUIFile == u"modules/simpress/ui/customanimationspanel.ui"
-        || rUIFile == u"modules/simpress/ui/layoutpanel.ui"
-        || rUIFile == u"modules/simpress/ui/masterpagepanel.ui"
-        || rUIFile == u"modules/simpress/ui/masterpagepanelall.ui"
-        || rUIFile == u"modules/simpress/ui/masterpagepanelrecent.ui"
-        || rUIFile == u"modules/simpress/ui/navigatorpanel.ui"
-        || rUIFile == u"modules/simpress/ui/sidebarslidebackground.ui"
-        || rUIFile == u"modules/simpress/ui/slidetransitionspanel.ui"
-        || rUIFile == u"modules/simpress/ui/tabledesignpanel.ui"
-        // smath
-        || rUIFile == u"modules/smath/ui/sidebarelements_math.ui"
-        || rUIFile == u"modules/smath/ui/sidebarproperties_math.ui"
-        // swriter
-        || rUIFile == u"modules/swriter/ui/a11ycheckissuespanel.ui"
-        || rUIFile == u"modules/swriter/ui/managechangessidebar.ui"
-        || rUIFile == u"modules/swriter/ui/navigatorpanel.ui"
-        || rUIFile == u"modules/swriter/ui/pagefooterpanel.ui"
-        || rUIFile == u"modules/swriter/ui/pageformatpanel.ui"
-        || rUIFile == u"modules/swriter/ui/pageheaderpanel.ui"
-        || rUIFile == u"modules/swriter/ui/pagestylespanel.ui"
-        || rUIFile == u"modules/swriter/ui/sidebarstylepresets.ui"
-        || rUIFile == u"modules/swriter/ui/sidebartableedit.ui"
-        || rUIFile == u"modules/swriter/ui/sidebartheme.ui"
-        || rUIFile == u"modules/swriter/ui/sidebarwrap.ui"
-        // sfx
-        || rUIFile == u"sfx/ui/panel.ui"
-        || rUIFile == u"sfx/ui/templatepanel.ui"
-        // svx
-        || rUIFile == u"svx/ui/defaultshapespanel.ui"
-        || rUIFile == u"svx/ui/inspectortextpanel.ui"
-        || rUIFile == u"svx/ui/mediaplayback.ui"
-        || rUIFile == u"svx/ui/sidebararea.ui"
-        || rUIFile == u"svx/ui/sidebareffect.ui"
-        || rUIFile == u"svx/ui/sidebartexteffect.ui"
-        || rUIFile == u"svx/ui/sidebarempty.ui"
-        || rUIFile == u"svx/ui/sidebarfontwork.ui"
-        || rUIFile == u"svx/ui/sidebargallery.ui"
-        || rUIFile == u"svx/ui/sidebargraphic.ui"
-        || rUIFile == u"svx/ui/sidebarline.ui"
-        || rUIFile == u"svx/ui/sidebarlists.ui"
-        || rUIFile == u"svx/ui/sidebarparagraph.ui"
-        || rUIFile == u"svx/ui/sidebarpossize.ui"
-        || rUIFile == u"svx/ui/sidebarshadow.ui"
-        || rUIFile == u"svx/ui/sidebarstylespanel.ui"
-        || rUIFile == u"svx/ui/sidebartextpanel.ui";
+    return isInMap(SidebarList, rUIFile, JSDialogEnabledType::Sidebar);
 }
 
 bool isInterimBuilderEnabledForNotebookbar(std::u16string_view rUIFile)
 {
-    if (rUIFile == u"modules/scalc/ui/numberbox.ui"
-        || rUIFile == u"svx/ui/fontnamebox.ui"
-        || rUIFile == u"svx/ui/fontsizebox.ui"
-        || rUIFile == u"svx/ui/stylespreview.ui")
-    {
-        return true;
-    }
-
-    return false;
+    return isInMap(NotebookbarList, rUIFile, JSDialogEnabledType::Notebookbar);
 }
 
 bool isBuilderEnabledForAddressInput(std::u16string_view rUIFile)
 {
-    if (rUIFile == u"modules/scalc/ui/posbox.ui")
-        return true;
-    return false;
+    return isInMap(AddressInputList, rUIFile, 
JSDialogEnabledType::AddressInput);
 }
 
 bool isBuilderEnabledForFormulabar(std::u16string_view rUIFile)
 {
-    if (rUIFile == u"modules/scalc/ui/inputbar.ui")
-        return true;
-    return false;
-}
+    return isInMap(FormulabarList, rUIFile, JSDialogEnabledType::Formulabar);
 }
+} // end of jsdialog
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */

Reply via email to