| /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ |
| /* |
| * This file is part of the Collabora Office project. |
| * |
| * This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| */ |
| |
| #include <comphelper/string.hxx> |
| #include <frozen/bits/defines.h> |
| #include <frozen/bits/elsa_std.h> |
| #include <frozen/unordered_set.h> |
| #include <jsdialog/enabled.hxx> |
| #include <o3tl/string_view.hxx> |
| #include <COKit/COKitEnums.h> |
| #include <vector> |
| |
| namespace |
| { |
| // ========== IGNORED ======================================================= // |
| |
| constexpr auto IgnoredList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"modules/simpress/ui/tabviewbar.ui" }, |
| { u"modules/swriter/ui/annotation.ui" }, |
| { u"sfx/ui/deck.ui" }, |
| { u"sfx/ui/extrabutton.ui" }, |
| { u"sfx/ui/infobar.ui" }, |
| { u"sfx/ui/tabbar.ui" }, |
| { u"sfx/ui/tabbarcontents.ui" }, |
| { u"svt/ui/scrollbars.ui" }, |
| { u"svt/ui/tabbuttons.ui" }, // Calc -> sheet tabs on the bottom |
| { u"svt/ui/tabbuttonsmirrored.ui" }, // as above |
| { u"svx/ui/measurewidthbar.ui" }, |
| { u"svx/ui/selectionmenu.ui" }, |
| { u"svx/ui/stylemenu.ui" }, |
| { u"svx/ui/toolbarpopover.ui" }, |
| { u"modules/scalc/ui/dropmenu.ui"}, // Calc -> Navigator -> right click |
| { u"modules/sdraw/ui/navigatorcontextmenu.ui" }, // Impress -> Navigator -> right click |
| { u"modules/swriter/ui/navigatorcontextmenu.ui" }, // Writer -> Navigator -> right click |
| { u"sfx/ui/quickfind.ui" }, |
| }); |
| |
| // ========== MOBILE DIALOGS ================================================= // |
| |
| constexpr auto MobileDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"modules/swriter/ui/watermarkdialog.ui" }, |
| { u"modules/swriter/ui/wordcount-mobile.ui" }, |
| { u"svx/ui/findreplacedialog-mobile.ui" } |
| }); |
| |
| // ========== DIALOGS ======================================================= // |
| // Split into few - to allow constexpr and manage order |
| |
| constexpr auto CuiDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // cui |
| { u"cui/ui/areatabpage.ui" }, |
| { u"cui/ui/areadialog.ui" }, |
| { u"cui/ui/asiantypography.ui" }, |
| { u"cui/ui/borderareatransparencydialog.ui" }, |
| { u"cui/ui/borderbackgrounddialog.ui" }, |
| { u"cui/ui/borderpage.ui" }, |
| { u"cui/ui/bulletandposition.ui" }, |
| { u"cui/ui/cellalignment.ui" }, |
| { u"cui/ui/charnamepage.ui" }, |
| { u"cui/ui/colorpage.ui" }, |
| { u"cui/ui/colorpickerdialog.ui" }, |
| { u"cui/ui/croppage.ui" }, |
| { u"cui/ui/diagramdialog.ui" }, |
| { u"cui/ui/effectspage.ui" }, |
| { u"cui/ui/eventassigndialog.ui" }, |
| { u"cui/ui/fontfeaturesdialog.ui" }, |
| { u"cui/ui/fontfragment.ui" }, |
| { u"cui/ui/formatcellsdialog.ui" }, |
| { u"cui/ui/formatnumberdialog.ui" }, |
| { u"cui/ui/gradientpage.ui" }, |
| { u"cui/ui/hatchpage.ui" }, |
| { u"cui/ui/hyperlinkdialog.ui" }, |
| { u"cui/ui/hyperlinkinternetpage.ui" }, |
| { u"cui/ui/hyperlinkmailpage.ui" }, |
| { u"cui/ui/hyperlinkmarkdialog.ui" }, |
| { u"cui/ui/hyperlinkdocpage.ui" }, |
| { u"cui/ui/imagetabpage.ui" }, |
| { u"cui/ui/jsearchoptionsdialog.ui" }, |
| { u"cui/ui/linedialog.ui" }, |
| { u"cui/ui/lineendstabpage.ui" }, |
| { u"cui/ui/linestyletabpage.ui" }, |
| { u"cui/ui/linetabpage.ui" }, |
| { u"cui/ui/macroselectordialog.ui" }, |
| { u"cui/ui/namedialog.ui" }, |
| { u"cui/ui/numberingformatpage.ui" }, |
| { u"cui/ui/numberingoptionspage.ui" }, |
| { u"cui/ui/numberingpositionpage.ui" }, |
| { u"cui/ui/objectnamedialog.ui" }, |
| { u"cui/ui/objecttitledescdialog.ui" }, |
| { u"cui/ui/optjsearchpage.ui" }, |
| { u"cui/ui/optlingupage.ui" }, |
| { u"cui/ui/pageformatpage.ui" }, |
| { u"cui/ui/paragalignpage.ui" }, |
| { u"cui/ui/paraindentspacing.ui" }, |
| { u"cui/ui/paratabspage.ui" }, |
| { u"cui/ui/password.ui" }, |
| { u"cui/ui/pastespecial.ui" }, |
| { u"cui/ui/patterntabpage.ui" }, |
| { u"cui/ui/pickbulletpage.ui" }, |
| { u"cui/ui/pickgraphicpage.ui" }, |
| { u"cui/ui/picknumberingpage.ui" }, |
| { u"cui/ui/pickoutlinepage.ui" }, |
| { u"cui/ui/positionpage.ui" }, |
| { u"cui/ui/positionsizedialog.ui" }, |
| { u"cui/ui/possizetabpage.ui" }, |
| { u"cui/ui/rotationtabpage.ui" }, |
| { u"cui/ui/shadowtabpage.ui" }, |
| { u"cui/ui/slantcornertabpage.ui" }, |
| { u"cui/ui/spinbox.ui" }, |
| { u"cui/ui/queryduplicatedialog.ui" }, |
| { u"cui/ui/querysetinsmodedialog.ui" }, |
| { u"cui/ui/searchattrdialog.ui" }, |
| { u"cui/ui/searchformatdialog.ui" }, |
| { u"cui/ui/similaritysearchdialog.ui" }, |
| { u"cui/ui/specialcharacters.ui" }, |
| { u"cui/ui/spellingdialog.ui" }, |
| { u"cui/ui/spelloptionsdialog.ui" }, |
| { u"cui/ui/splitcellsdialog.ui" }, |
| { u"cui/ui/textflowpage.ui" }, |
| { u"cui/ui/thesaurus.ui" }, |
| { u"cui/ui/transparencytabpage.ui" }, |
| { u"cui/ui/twolinespage.ui" }, |
| { u"cui/ui/widgettestdialog.ui" }, |
| { u"cui/ui/qrcodegen.ui" } |
| }); |
| |
| constexpr auto SfxDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // sfx |
| { u"sfx/ui/cmisinfopage.ui" }, |
| { u"sfx/ui/custominfopage.ui" }, |
| { u"sfx/ui/descriptioninfopage.ui" }, |
| { u"sfx/ui/documentinfopage.ui" }, |
| { u"sfx/ui/documentfontspage.ui" }, |
| { u"sfx/ui/documentpropertiesdialog.ui" }, |
| { u"sfx/ui/editdurationdialog.ui" }, |
| { u"svx/ui/headfootformatpage.ui" }, |
| { u"sfx/ui/linefragment.ui" }, |
| { u"sfx/ui/managestylepage.ui" }, |
| { u"sfx/ui/newstyle.ui" }, |
| { u"sfx/ui/password.ui" } |
| }); |
| |
| constexpr auto ScalcDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // scalc |
| { u"modules/scalc/ui/advancedfilterdialog.ui" }, |
| { u"modules/scalc/ui/analysisofvariancedialog.ui" }, |
| { u"modules/scalc/ui/cellprotectionpage.ui" }, |
| { u"modules/scalc/ui/chardialog.ui" }, |
| { u"modules/scalc/ui/chisquaretestdialog.ui" }, |
| { u"modules/scalc/ui/colwidthdialog.ui" }, |
| { u"modules/scalc/ui/conditionaleasydialog.ui" }, |
| { u"modules/scalc/ui/conditionalentry.ui" }, |
| { u"modules/scalc/ui/conditionalformatdialog.ui" }, |
| { u"modules/scalc/ui/conditionaliconset.ui" }, |
| { u"modules/scalc/ui/condformatmanager.ui" }, |
| { u"modules/scalc/ui/correlationdialog.ui" }, |
| { u"modules/scalc/ui/covariancedialog.ui" }, |
| { u"modules/scalc/ui/databaroptions.ui" }, |
| { u"modules/scalc/ui/datafielddialog.ui" }, |
| { u"modules/scalc/ui/datafieldoptionsdialog.ui" }, |
| { u"modules/scalc/ui/definename.ui" }, |
| { u"modules/scalc/ui/deletecells.ui" }, |
| { u"modules/scalc/ui/deletecontents.ui" }, |
| { u"modules/scalc/ui/descriptivestatisticsdialog.ui" }, |
| { u"modules/scalc/ui/erroralerttabpage.ui" }, |
| { u"modules/scalc/ui/exponentialsmoothingdialog.ui" }, |
| { u"modules/scalc/ui/formatcellsdialog.ui" }, |
| { u"modules/scalc/ui/fourieranalysisdialog.ui" }, |
| { u"modules/scalc/ui/goalseekdlg.ui" }, |
| { u"modules/scalc/ui/gotosheetdialog.ui" }, |
| { u"modules/scalc/ui/groupdialog.ui" }, |
| { u"modules/scalc/ui/headerfootercontent.ui" }, |
| { u"modules/scalc/ui/headerfooterdialog.ui" }, |
| { u"modules/scalc/ui/imoptdialog.ui" }, |
| { u"modules/scalc/ui/insertcells.ui" }, |
| { u"modules/scalc/ui/managenamesdialog.ui" }, |
| { u"modules/scalc/ui/mergecellsdialog.ui" }, |
| { u"modules/scalc/ui/movecopysheet.ui" }, |
| { u"modules/scalc/ui/movingaveragedialog.ui" }, |
| { u"modules/scalc/ui/optimalcolwidthdialog.ui" }, |
| { u"modules/scalc/ui/optimalrowheightdialog.ui" }, |
| { u"modules/scalc/ui/paradialog.ui" }, |
| { u"modules/scalc/ui/pagetemplatedialog.ui" }, |
| { u"modules/scalc/ui/paratemplatedialog.ui" }, |
| { u"modules/scalc/ui/pastespecial.ui" }, |
| { u"modules/scalc/ui/pivotcalcfielddialog.ui" }, |
| { u"modules/scalc/ui/pivotfielddialog.ui" }, |
| { u"modules/scalc/ui/pivottablelayoutdialog.ui" }, |
| { u"modules/scalc/ui/protectsheetdlg.ui" }, |
| { u"modules/scalc/ui/regressiondialog.ui" }, |
| { u"modules/scalc/ui/rowheightdialog.ui" }, |
| { u"modules/scalc/ui/samplingdialog.ui" }, |
| { u"modules/scalc/ui/selectsource.ui" }, |
| { u"modules/scalc/ui/sheetprintpage.ui" }, |
| { u"modules/scalc/ui/simplerefdialog.ui" }, |
| { u"modules/scalc/ui/sortcriteriapage.ui" }, |
| { u"modules/scalc/ui/sortdialog.ui" }, |
| { u"modules/scalc/ui/sortkey.ui" }, |
| { u"modules/scalc/ui/sortoptionspage.ui" }, |
| { u"modules/scalc/ui/sparklinedatarangedialog.ui" }, |
| { u"modules/scalc/ui/sparklinedialog.ui" }, |
| { u"modules/scalc/ui/standardfilterdialog.ui" }, |
| { u"modules/scalc/ui/statisticsinfopage.ui" }, |
| { u"modules/scalc/ui/textimportcsv.ui" }, |
| { u"modules/scalc/ui/ttestdialog.ui" }, |
| { u"modules/scalc/ui/ungroupdialog.ui" }, |
| { u"modules/scalc/ui/validationcriteriapage.ui" }, |
| { u"modules/scalc/ui/validationdialog.ui" }, |
| { u"modules/scalc/ui/validationhelptabpage.ui" }, |
| { u"modules/scalc/ui/warnautocorrect.ui" }, |
| { u"modules/scalc/ui/ztestdialog.ui" }, |
| { u"modules/scalc/ui/definedatabaserangedialog.ui" }, |
| { u"modules/scalc/ui/selectrange.ui" }, |
| { u"modules/scalc/ui/selectsheetviewdialog.ui" }, |
| { u"modules/scalc/ui/definetablerangedialog.ui" }, |
| { u"modules/scalc/ui/printareasdialog.ui" }, |
| }); |
| |
| constexpr auto SwriterDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // swriter |
| { u"modules/swriter/ui/bulletsandnumbering.ui" }, |
| { u"modules/swriter/ui/captionoptions.ui" }, |
| { u"modules/swriter/ui/characterproperties.ui" }, |
| { u"modules/swriter/ui/columndialog.ui" }, |
| { u"modules/swriter/ui/columnpage.ui" }, |
| { u"modules/swriter/ui/contentcontroldlg.ui" }, |
| { u"modules/swriter/ui/contentcontrollistitemdlg.ui" }, |
| { u"modules/swriter/ui/dropcapspage.ui" }, |
| { u"modules/swriter/ui/dropdownfielddialog.ui" }, |
| { u"modules/swriter/ui/editsectiondialog.ui" }, |
| { u"modules/swriter/ui/endnotepage.ui" }, |
| { u"modules/swriter/ui/editfielddialog.ui" }, |
| { u"modules/swriter/ui/fielddialog.ui" }, |
| { u"modules/swriter/ui/flddocumentpage.ui" }, |
| { u"modules/swriter/ui/fldvarpage.ui" }, |
| { u"modules/swriter/ui/flddocinfopage.ui" }, |
| { u"modules/swriter/ui/fldrefpage.ui" }, |
| { u"modules/swriter/ui/fldfuncpage.ui"}, |
| { u"modules/swriter/ui/footendnotedialog.ui" }, |
| { u"modules/swriter/ui/footnoteareapage.ui" }, |
| { u"modules/swriter/ui/footnotepage.ui" }, |
| { u"modules/swriter/ui/footnotesendnotestabpage.ui" }, |
| { u"modules/swriter/ui/formatsectiondialog.ui" }, |
| { u"modules/swriter/ui/formattablepage.ui" }, |
| { u"modules/swriter/ui/framedialog.ui" }, |
| { u"modules/swriter/ui/frmaddpage.ui" }, |
| { u"modules/swriter/ui/frmurlpage.ui" }, |
| { u"modules/swriter/ui/frmtypepage.ui" }, |
| { u"modules/swriter/ui/indentpage.ui" }, |
| { u"modules/swriter/ui/indexentry.ui" }, |
| { u"modules/swriter/ui/inforeadonlydialog.ui" }, |
| { u"modules/swriter/ui/insertbookmark.ui" }, |
| { u"modules/swriter/ui/insertbreak.ui" }, |
| { u"modules/swriter/ui/insertcaption.ui" }, |
| { u"modules/swriter/ui/inserttable.ui" }, |
| { u"modules/swriter/ui/insertsectiondialog.ui" }, |
| { u"modules/swriter/ui/linenumbering.ui" }, |
| { u"modules/swriter/ui/newuserindexdialog.ui" }, |
| { u"modules/swriter/ui/numberingnamedialog.ui" }, |
| { u"modules/swriter/ui/numparapage.ui" }, |
| { u"modules/swriter/ui/objectdialog.ui" }, |
| { u"modules/swriter/ui/outlinenumbering.ui" }, |
| { u"modules/swriter/ui/outlinenumberingpage.ui" }, |
| { u"modules/swriter/ui/outlinepositionpage.ui" }, |
| { u"modules/swriter/ui/pagenumberdlg.ui" }, |
| { u"modules/swriter/ui/paradialog.ui" }, |
| { u"modules/swriter/ui/picturedialog.ui" }, |
| { u"modules/swriter/ui/picturepage.ui" }, |
| { u"modules/swriter/ui/renameobjectdialog.ui" }, |
| { u"modules/swriter/ui/sectionpage.ui" }, |
| { u"modules/swriter/ui/sortdialog.ui" }, |
| { u"modules/swriter/ui/splittable.ui" }, |
| { u"modules/swriter/ui/tablecolumnpage.ui" }, |
| { u"modules/swriter/ui/tableproperties.ui" }, |
| { u"modules/swriter/ui/tabletextflowpage.ui" }, |
| { u"modules/swriter/ui/templatedialog1.ui" }, |
| { u"modules/swriter/ui/templatedialog2.ui" }, |
| { u"modules/swriter/ui/templatedialog4.ui" }, |
| { u"modules/swriter/ui/templatedialog8.ui" }, |
| { u"modules/swriter/ui/templatedialog16.ui" }, |
| { u"modules/swriter/ui/textgridpage.ui" }, |
| { u"modules/swriter/ui/titlepage.ui" }, |
| { u"modules/swriter/ui/tocdialog.ui" }, |
| { u"modules/swriter/ui/tocentriespage.ui" }, |
| { u"modules/swriter/ui/tocindexpage.ui" }, |
| { u"modules/swriter/ui/tocstylespage.ui" }, |
| { u"modules/swriter/ui/tokenwidget.ui" }, |
| { u"modules/swriter/ui/toxbuttonwidget.ui" }, |
| { u"modules/swriter/ui/toxentrywidget.ui" }, |
| { u"modules/swriter/ui/translationdialog.ui" }, |
| { u"modules/swriter/ui/watermarkdialog.ui" }, |
| { u"modules/swriter/ui/wordcount.ui" }, |
| { u"modules/swriter/ui/wrappage.ui" } |
| }); |
| |
| constexpr auto SimpressDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // simpress |
| { u"modules/simpress/ui/customanimationeffecttab.ui" }, |
| { u"modules/simpress/ui/customanimationproperties.ui" }, |
| { u"modules/simpress/ui/customanimationtexttab.ui" }, |
| { u"modules/simpress/ui/customanimationtimingtab.ui" }, |
| { u"modules/simpress/ui/headerfooterdialog.ui" }, |
| { u"modules/simpress/ui/headerfootertab.ui" }, |
| { u"modules/simpress/ui/interactiondialog.ui" }, |
| { u"modules/simpress/ui/interactionpage.ui" } |
| }); |
| |
| constexpr auto SdrawDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // sdraw |
| { u"modules/sdraw/ui/drawchardialog.ui" }, |
| { u"modules/sdraw/ui/drawpagedialog.ui" }, |
| { u"modules/sdraw/ui/drawparadialog.ui" } |
| }); |
| |
| constexpr auto SchartDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // schart |
| { u"modules/schart/ui/3dviewdialog.ui" }, |
| { u"modules/schart/ui/attributedialog.ui" }, |
| { u"modules/schart/ui/chartdatadialog.ui" }, |
| { u"modules/schart/ui/charttypedialog.ui" }, |
| { u"modules/schart/ui/datarangedialog.ui" }, |
| { u"modules/schart/ui/dlg_Theme.ui" }, |
| { u"modules/schart/ui/insertaxisdlg.ui" }, |
| { u"modules/schart/ui/inserttitledlg.ui" }, |
| { u"modules/schart/ui/smoothlinesdlg.ui" }, |
| { u"modules/schart/ui/steppedlinesdlg.ui" }, |
| { u"modules/schart/ui/tp_3D_SceneAppearance.ui" }, |
| { u"modules/schart/ui/tp_3D_SceneGeometry.ui" }, |
| { u"modules/schart/ui/tp_ChartColorPalette.ui" }, |
| { u"modules/schart/ui/tp_ChartGradients.ui" }, |
| { u"modules/schart/ui/tp_ChartType.ui" }, |
| { u"modules/schart/ui/tp_DataLabel.ui" }, |
| { u"modules/schart/ui/tp_DataSource.ui" }, |
| { u"modules/schart/ui/tp_RangeChooser.ui" }, |
| { u"modules/schart/ui/tp_Trendline.ui" }, |
| { u"modules/schart/ui/wizelementspage.ui" }, |
| { u"modules/schart/ui/tp_axisLabel.ui" }, |
| { u"modules/schart/ui/tp_AxisPositions.ui" }, |
| { u"modules/schart/ui/tp_Scale.ui" }, |
| { u"modules/schart/ui/tp_SeriesToAxis.ui" }, |
| |
| }); |
| |
| constexpr auto SmathDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // smath |
| { u"modules/smath/ui/alignmentdialog.ui" }, |
| { u"modules/smath/ui/fontsizedialog.ui" }, |
| { u"modules/smath/ui/fonttypedialog.ui" }, |
| { u"modules/smath/ui/spacingdialog.ui" }, |
| }); |
| |
| constexpr auto OtherDialogList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // formula |
| { u"formula/ui/formuladialog.ui" }, |
| { u"formula/ui/functionpage.ui" }, |
| { u"formula/ui/parameter.ui" }, |
| { u"formula/ui/structpage.ui" }, |
| // svx |
| { u"svx/ui/acceptrejectchangesdialog.ui" }, |
| { u"svx/ui/compressgraphicdialog.ui" }, |
| { u"svx/ui/findreplacedialog.ui" }, |
| { u"svx/ui/fontworkgallerydialog.ui" }, |
| { u"svx/ui/gotopagedialog.ui" }, |
| { u"svx/ui/headfootformatpage.ui" }, |
| { u"svx/ui/redlinecontrol.ui" }, |
| { u"svx/ui/redlinefilterpage.ui" }, |
| { u"svx/ui/redlineviewpage.ui" }, |
| { u"svx/ui/themecoloreditdialog.ui" }, |
| { u"svx/ui/themedialog.ui" }, |
| // uui |
| { u"uui/ui/logindialog.ui" }, |
| { u"uui/ui/macrowarnmedium.ui" }, |
| // vcl |
| { u"vcl/ui/wizard.ui" }, |
| // filter |
| { u"filter/ui/pdfgeneralpage.ui" }, |
| { u"filter/ui/pdflinkspage.ui" }, |
| { u"filter/ui/pdfoptionsdialog.ui" }, |
| { u"filter/ui/pdfsecuritypage.ui" }, |
| { u"filter/ui/pdfsignpage.ui" }, |
| { u"filter/ui/pdfuserinterfacepage.ui" }, |
| { u"filter/ui/pdfviewpage.ui" }, |
| { u"filter/ui/warnpdfdialog.ui" }, |
| // writerperfect |
| { u"writerperfect/ui/exportepub.ui" }, |
| { u"writerperfect/ui/wpftencodingdialog.ui" }, |
| // xmlsec |
| { u"xmlsec/ui/certdetails.ui" }, |
| { u"xmlsec/ui/certgeneral.ui" }, |
| { u"xmlsec/ui/certpage.ui" }, |
| { u"xmlsec/ui/digitalsignaturesdialog.ui" }, |
| { u"xmlsec/ui/selectcertificatedialog.ui" }, |
| { u"xmlsec/ui/viewcertdialog.ui" } |
| }); |
| |
| // ========== POPUP ====================================================== // |
| |
| constexpr auto PopupList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // scalc |
| { u"modules/scalc/ui/filterdropdown.ui" }, |
| { u"modules/scalc/ui/filterlist.ui" }, |
| { u"modules/scalc/ui/filtersubdropdown.ui" }, |
| { u"modules/scalc/ui/floatingborderstyle.ui" }, |
| { u"modules/scalc/ui/floatinglinestyle.ui" }, |
| // schart |
| { u"modules/schart/ui/chartcolorpalettepopup.ui" }, |
| { u"modules/schart/ui/chartthemepopup.ui" }, |
| { u"modules/schart/ui/chartgradientpalettepopup.ui" }, |
| // svt |
| { u"svt/ui/datewindow.ui" }, |
| { u"svt/ui/linewindow.ui" }, |
| // svx |
| { u"svx/ui/colorwindow.ui" }, |
| { u"svx/ui/currencywindow.ui" }, |
| { u"svx/ui/floatingareastyle.ui" }, |
| { u"svx/ui/floatingframeborder.ui" }, |
| { u"svx/ui/floatinglineend.ui" }, |
| { u"svx/ui/floatinglineproperty.ui" }, |
| { u"svx/ui/floatinglinestyle.ui" }, |
| { u"svx/ui/fontworkalignmentcontrol.ui" }, |
| { u"svx/ui/fontworkcharacterspacingcontrol.ui" }, |
| { u"svx/ui/numberingwindow.ui" }, |
| { u"svx/ui/paralinespacingcontrol.ui" }, |
| { u"svx/ui/textcharacterspacingcontrol.ui" }, |
| { u"svx/ui/textunderlinecontrol.ui" } |
| }); |
| |
| // ========== MENU ======================================================= // |
| |
| constexpr auto MenuList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"sfx/ui/stylecontextmenu.ui" }, |
| { u"modules/simpress/ui/mastermenu.ui" }, |
| { u"modules/simpress/ui/layoutmenu.ui" } |
| }); |
| |
| // ========== SIDEBAR ==================================================== // |
| |
| constexpr auto SidebarList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| // scalc |
| { u"modules/scalc/ui/functionpanel.ui" }, |
| { u"modules/scalc/ui/sidebaralignment.ui" }, |
| { u"modules/scalc/ui/sidebarcellappearance.ui" }, |
| { u"modules/scalc/ui/sidebardatabase.ui" }, |
| { u"modules/scalc/ui/sidebarnumberformat.ui" }, |
| // schart |
| { u"modules/schart/ui/sidebaraxis.ui" }, |
| { u"modules/schart/ui/sidebarcolors.ui" }, |
| { u"modules/schart/ui/sidebargradients.ui" }, |
| { u"modules/schart/ui/sidebarelements.ui" }, |
| { u"modules/schart/ui/sidebarerrorbar.ui" }, |
| { u"modules/schart/ui/sidebarseries.ui" }, |
| { u"modules/schart/ui/sidebartheme.ui" }, |
| { u"modules/schart/ui/sidebartype.ui" }, |
| // simpress |
| { u"modules/simpress/ui/customanimationfragment.ui" }, |
| { u"modules/simpress/ui/customanimationspanel.ui" }, |
| { u"modules/simpress/ui/layoutpanel.ui" }, |
| { u"modules/simpress/ui/sidebarslidebackground.ui" }, |
| { u"modules/simpress/ui/tabledesignpanel.ui" }, |
| // smath |
| { u"modules/smath/ui/sidebarelements_math.ui" }, |
| { u"modules/smath/ui/sidebarproperties_math.ui" }, |
| // swriter |
| { u"modules/swriter/ui/a11ycheckissuespanel.ui" }, |
| { u"modules/swriter/ui/managechangessidebar.ui" }, |
| { u"modules/swriter/ui/pagefooterpanel.ui" }, |
| { u"modules/swriter/ui/pageformatpanel.ui" }, |
| { u"modules/swriter/ui/pageheaderpanel.ui" }, |
| { u"modules/swriter/ui/pagestylespanel.ui" }, |
| { u"modules/swriter/ui/sidebarstylepresets.ui" }, |
| { u"modules/swriter/ui/sidebartableedit.ui" }, |
| { u"modules/swriter/ui/sidebartheme.ui" }, |
| { u"modules/swriter/ui/sidebarwrap.ui" }, |
| // sfx |
| { u"sfx/ui/panel.ui" }, |
| { u"sfx/ui/templatepanel.ui" }, |
| // svx |
| { u"svx/ui/accessibilitycheckentry.ui" }, |
| { u"svx/ui/accessibilitychecklevel.ui" }, |
| { u"svx/ui/defaultshapespanel.ui" }, |
| { u"svx/ui/inspectortextpanel.ui" }, |
| { u"svx/ui/mediaplayback.ui" }, |
| { u"svx/ui/sidebararea.ui" }, |
| { u"svx/ui/sidebareffect.ui" }, |
| { u"svx/ui/sidebarempty.ui" }, |
| { u"svx/ui/sidebarfontwork.ui" }, |
| { u"svx/ui/sidebargallery.ui" }, |
| { u"svx/ui/sidebargraphic.ui" }, |
| { u"svx/ui/sidebarline.ui" }, |
| { u"svx/ui/sidebarlists.ui" }, |
| { u"svx/ui/sidebarparagraph.ui" }, |
| { u"svx/ui/sidebarpossize.ui" }, |
| { u"svx/ui/sidebarshadow.ui" }, |
| { u"svx/ui/sidebarstylespanel.ui" }, |
| { u"svx/ui/sidebartextcolumnspanel.ui" }, |
| { u"svx/ui/sidebartexteffect.ui" }, |
| { u"svx/ui/sidebartextpanel.ui" } |
| }); |
| |
| // ========== NAVIGATOR ================================================= // |
| constexpr auto NavigatorList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"modules/swriter/ui/navigatorpanel.ui"}, |
| { u"modules/scalc/ui/navigatorpanel.ui"}, |
| { u"modules/simpress/ui/navigatorpanel.ui"} |
| }); |
| |
| // ========== QUICKFIND ================================================= // |
| constexpr auto QuickFindList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"modules/swriter/ui/sidebarquickfind.ui" }, |
| }); |
| |
| |
| // ========== NOTEBOOKBAR ================================================= // |
| |
| constexpr auto NotebookbarList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"modules/scalc/ui/numberbox.ui" }, |
| { u"modules/scalc/ui/sheetviewbox.ui" }, |
| { u"modules/scalc/ui/tablestylesbox.ui" }, |
| { u"svx/ui/fontnamebox.ui" }, |
| { u"svx/ui/fontsizebox.ui" }, |
| { u"svx/ui/stylespreview.ui" }, |
| { u"svx/ui/themeselectorpanel.ui" }, |
| // not interim builder, but regular builder: |
| { u"modules/simpress/ui/masterpagepanelall.ui" }, |
| { u"modules/simpress/ui/masterpagepanel.ui" }, |
| { u"modules/simpress/ui/slidetransitionspanel.ui" } |
| }); |
| |
| // ========== ADDRESSINPUT ================================================ // |
| |
| constexpr auto AddressInputList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"modules/scalc/ui/posbox.ui" } |
| }); |
| |
| // ========== FORMULABAR ================================================== // |
| |
| constexpr auto FormulabarList |
| = frozen::make_unordered_set<std::u16string_view>({ |
| { u"modules/scalc/ui/inputbar.ui" } |
| }); |
| |
| // ========== LOOKUP ====================================================== // |
| |
| inline bool isInMap(const auto& rList, std::u16string_view rUIFile) |
| { |
| auto aFound = rList.find(rUIFile); |
| if (aFound != rList.end()) |
| return true; |
| return false; |
| } |
| |
| inline bool isEnabledAtRunTime(std::u16string_view rUIFile) |
| { |
| const char* pEnabledDialog = getenv("SAL_JSDIALOG_ENABLE"); |
| if (pEnabledDialog) |
| { |
| OUString sAllEnabledDialogs(pEnabledDialog, strlen(pEnabledDialog), RTL_TEXTENCODING_UTF8); |
| std::vector<OUString> aEnabledDialogsVector |
| = comphelper::string::split(sAllEnabledDialogs, ':'); |
| for (const auto& rDialog : aEnabledDialogsVector) |
| { |
| if (rUIFile == rDialog) |
| return true; |
| } |
| } |
| |
| return false; |
| } |
| } // end of namespace |
| |
| namespace jsdialog |
| { |
| |
| bool isIgnored(std::u16string_view rUIFile) |
| { |
| return isInMap(IgnoredList, rUIFile); |
| } |
| |
| bool isBuilderEnabled(std::u16string_view rUIFile, bool bMobile) |
| { |
| // mobile only dialogs |
| if (bMobile) |
| { |
| if (isInMap(MobileDialogList, rUIFile)) |
| return true; |
| } |
| |
| if (isInMap(CuiDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(SfxDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(ScalcDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(SwriterDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(SimpressDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(SdrawDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(SchartDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(SmathDialogList, rUIFile)) |
| return true; |
| |
| if (isInMap(OtherDialogList, rUIFile)) |
| return true; |
| |
| return isEnabledAtRunTime(rUIFile); |
| } |
| |
| bool isBuilderEnabledForPopup(std::u16string_view rUIFile) |
| { |
| return isInMap(PopupList, rUIFile); |
| } |
| |
| bool isBuilderEnabledForMenu(std::u16string_view rUIFile) |
| { |
| return isInMap(MenuList, rUIFile); |
| } |
| |
| bool isBuilderEnabledForSidebar(std::u16string_view rUIFile) |
| { |
| return isInMap(SidebarList, rUIFile); |
| |
| } |
| |
| bool isBuilderEnabledForNavigator(std::u16string_view rUIFile) |
| { |
| return isInMap(NavigatorList, rUIFile); |
| } |
| |
| bool isBuilderEnabledForQuickFind(std::u16string_view rUIFile) |
| { |
| return isInMap(QuickFindList, rUIFile); |
| } |
| |
| bool isInterimBuilderEnabledForNotebookbar(std::u16string_view rUIFile) |
| { |
| return isInMap(NotebookbarList, rUIFile); |
| } |
| |
| bool isBuilderEnabledForAddressInput(std::u16string_view rUIFile) |
| { |
| return isInMap(AddressInputList, rUIFile); |
| } |
| |
| bool isBuilderEnabledForFormulabar(std::u16string_view rUIFile) |
| { |
| return isInMap(FormulabarList, rUIFile); |
| } |
| |
| std::vector<OUString> completeWriterDialogList(const o3tl::sorted_vector<OUString>& entries) |
| { |
| std::vector<OUString> missing; |
| for (const auto& entry : SwriterDialogList) |
| { |
| OUString sEntry(entry); |
| if (!entries.contains(sEntry)) |
| missing.push_back(sEntry); |
| } |
| 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> completeCalcDialogList(const o3tl::sorted_vector<OUString>& entries) |
| { |
| std::vector<OUString> missing; |
| for (const auto& entry : ScalcDialogList) |
| { |
| // Skip this one, its marked in calc as: "TODO: handle this case in LOK too" |
| // for SID_OUTLINE_REMOVE |
| if (entry == u"modules/scalc/ui/ungroupdialog.ui") |
| continue; |
| // Skip this one for now, it can only be seen in certain xlsx documents |
| else if (entry == u"modules/scalc/ui/definetablerangedialog.ui") |
| continue; |
| // Skip this one, I think it can only happen on loading |
| // an archaic lotus 123 file |
| else if (entry == u"modules/scalc/ui/imoptdialog.ui") |
| continue; |
| |
| 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) |
| { |
| // Skip this one for now, it can only be seen in certain xlsx documents |
| if (entry == u"modules/scalc/ui/sidebardatabase.ui") |
| continue; |
| |
| 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, |
| /*COKitDocumentType*/ int docType) |
| { |
| std::vector<OUString> missing; |
| for (const auto& entry : SidebarList) |
| { |
| OUString sEntry(entry); |
| |
| // 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, I don't think it can appear in practice |
| else if (entry == u"svx/ui/sidebargallery.ui") |
| continue; |
| |
| if (docType != KIT_DOCTYPE_TEXT) |
| { |
| // These only appear in writer |
| if (entry == u"svx/ui/accessibilitycheckentry.ui" || |
| entry == u"svx/ui/accessibilitychecklevel.ui" || |
| entry == u"svx/ui/inspectortextpanel.ui") |
| { |
| continue; |
| } |
| } |
| |
| if (docType == KIT_DOCTYPE_TEXT) |
| { |
| // Skip this one, its context means it cannot appear in writer |
| 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; |
| } |
| |
| if (docType != KIT_DOCTYPE_PRESENTATION && docType != KIT_DOCTYPE_DRAWING) |
| { |
| // Skip this one, in practice it appears in draw/impress |
| // TODO: it should probably be made to appear in writer/calc too |
| if (entry == u"svx/ui/mediaplayback.ui") |
| continue; |
| // Skip this one, its context means it can only appear in draw/impress |
| else if (entry == u"svx/ui/defaultshapespanel.ui") |
| continue; |
| // Skip this one, its context means it can only appear in draw/impress |
| else if (entry == u"svx/ui/sidebarlists.ui") |
| continue; |
| } |
| |
| if (!entries.contains(sEntry)) |
| missing.push_back(sEntry); |
| } |
| return missing; |
| } |
| |
| std::vector<OUString> completeCommonDialogList(const o3tl::sorted_vector<OUString>& entries, |
| /*COKitDocumentType*/ int docType, |
| bool linguisticDataAvailable) |
| { |
| std::vector<OUString> missing; |
| auto processCategory = [&](const auto& category) { |
| for (const auto& entry : category) |
| { |
| if (!linguisticDataAvailable && ( |
| entry == u"cui/ui/thesaurus.ui" || |
| entry == u"cui/ui/spellingdialog.ui" || |
| entry == u"cui/ui/spelloptionsdialog.ui")) |
| { |
| // Skip the dialogs that can't be reached in the absense of |
| // linguistic data. |
| continue; |
| } |
| |
| if (docType != KIT_DOCTYPE_TEXT) |
| { |
| // The 'writerperfect' ones are writer only |
| if (o3tl::starts_with(entry, u"writerperfect")) |
| continue; |
| // The manage changes dialog is only enabled in writer |
| else if (entry == u"svx/ui/acceptrejectchangesdialog.ui" || |
| entry == u"svx/ui/redlinecontrol.ui" || |
| entry == u"svx/ui/redlinefilterpage.ui" || |
| entry == u"svx/ui/redlineviewpage.ui") |
| { |
| continue; |
| } |
| } |
| |
| if (docType == KIT_DOCTYPE_SPREADSHEET) |
| { |
| // Not supported in Calc |
| if (entry == u"svx/ui/gotopagedialog.ui" || |
| entry == u"cui/ui/borderareatransparencydialog.ui" || |
| entry == u"cui/ui/splitcellsdialog.ui" || |
| entry == u"cui/ui/objectnamedialog.ui" || |
| entry == u"cui/ui/objecttitledescdialog.ui" || |
| entry == u"cui/ui/croppage.ui" || |
| entry == u"cui/ui/spinbox.ui" || |
| entry == u"cui/ui/formatnumberdialog.ui" || |
| entry == u"cui/ui/numberingoptionspage.ui" || |
| entry == u"cui/ui/numberingpositionpage.ui" || |
| entry == u"cui/ui/pastespecial.ui" || |
| entry == u"cui/ui/textflowpage.ui" || |
| entry == u"cui/ui/twolinespage.ui" || |
| entry == u"cui/ui/pickbulletpage.ui" || |
| entry == u"cui/ui/pickgraphicpage.ui" || |
| entry == u"cui/ui/picknumberingpage.ui" || |
| entry == u"cui/ui/pickoutlinepage.ui" || |
| entry == u"sfx/ui/password.ui") |
| { |
| continue; |
| } |
| } |
| |
| // Skip this one, I don't think it can appear in practice |
| if (entry == u"sfx/ui/cmisinfopage.ui") |
| continue; |
| // Skip this one, I think it can only happen on loading |
| // an archaic wordperfect file |
| else if (entry == u"writerperfect/ui/wpftencodingdialog.ui") |
| continue; |
| // Skip this one, I don't think it can appear in practice |
| else if (entry == u"cui/ui/colorpickerdialog.ui") |
| continue; |
| // Skip this one, is the query dialog about enabling overwrite |
| // mode which is disabled in the default config |
| else if (entry == u"cui/ui/querysetinsmodedialog.ui") |
| continue; |
| // Skip this one, its actually a sd-only one (with code in sd), but |
| // somehow the .ui is in cui |
| else if (entry == u"cui/ui/bulletandposition.ui") |
| continue; |
| // Skip this one for now, it requires smartart to already exist in a .docx |
| else if (entry == u"cui/ui/diagramdialog.ui") |
| continue; |
| // Skip this one, it cannot appear in writer |
| else if (entry == u"cui/ui/possizetabpage.ui") |
| continue; |
| // Skip this one, it cannot appear in writer, only calc in practice |
| else if (entry == u"cui/ui/cellalignment.ui") |
| continue; |
| // Skip this one, it cannot appear in writer, only impress/draw in |
| // practice |
| else if (entry == u"cui/ui/formatcellsdialog.ui") |
| continue; |
| // Skip this one, it cannot appear in writer (until autotext dialogs |
| // are enabled, in which case that is likely disabled. Maybe possible |
| // from calc. |
| else if (entry == u"cui/ui/eventassigndialog.ui") |
| continue; |
| // Skip this one, it is disabled in filter/source/pdf/impdialog.cxx |
| // for kit mode |
| else if (entry == u"filter/ui/pdfsignpage.ui") |
| continue; |
| // This, for the chart wizard, it is really only available in calc |
| else if (entry == u"vcl/ui/wizard.ui") |
| continue; |
| // The warn dialog appears to be somewhat broken, at least the |
| // existing tests for it are currently disabled and it doesn't |
| // work for me |
| else if (entry == u"uui/ui/macrowarnmedium.ui") |
| continue; |
| // This, for the forumula dialog, are really only available in calc |
| else if (entry == u"formula/ui/formuladialog.ui" || |
| entry == u"formula/ui/functionpage.ui" || |
| entry == u"formula/ui/parameter.ui" || |
| entry == u"formula/ui/structpage.ui") |
| { |
| continue; |
| } |
| // Testing this requires hosting an image, or similar, with |
| // a username+password |
| else if (entry == u"uui/ui/logindialog.ui") |
| continue; |
| OUString sEntry(entry); |
| if (!entries.contains(sEntry)) |
| missing.push_back(sEntry); |
| } |
| }; |
| processCategory(CuiDialogList); |
| processCategory(SfxDialogList); |
| processCategory(OtherDialogList); |
| return missing; |
| } |
| |
| |
| } // end of jsdialog |
| |
| /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |