summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
Diffstat (limited to 'cui')
-rw-r--r--cui/IwyuFilter_cui.yaml6
-rw-r--r--cui/Library_cui.mk32
-rw-r--r--cui/Module_cui.mk1
-rw-r--r--cui/UIConfig_cui.mk15
-rw-r--r--cui/UITest_cui_dialogs.mk2
-rw-r--r--cui/UITest_cui_tabpages.mk16
-rw-r--r--cui/inc/bitmaps.hlst119
-rw-r--r--cui/inc/dlgname.hxx (renamed from cui/source/inc/dlgname.hxx)99
-rw-r--r--cui/inc/numcategories.hrc2
-rw-r--r--cui/inc/pch/precompiled_cui.hxx67
-rw-r--r--cui/inc/personas.hrc30
-rw-r--r--cui/inc/strings.hrc645
-rw-r--r--cui/inc/tipoftheday.hrc458
-rw-r--r--cui/inc/toolbarmode.hrc2
-rw-r--r--cui/inc/treeopt.hrc11
-rw-r--r--cui/inc/twolines.hrc3
-rw-r--r--cui/inc/whatsnew.hrc42
-rw-r--r--cui/inc/widgettestdlg.hxx32
-rw-r--r--cui/qa/uitest/dialogs/chardlg.py80
-rw-r--r--cui/qa/uitest/dialogs/macroselectordlg.py44
-rw-r--r--cui/qa/uitest/dialogs/shortcuts.py1
-rw-r--r--cui/qa/uitest/tabpages/tpcolor.py69
-rw-r--r--cui/qa/unit/cui-dialogs-test.cxx7
-rw-r--r--cui/qa/unit/data/cui-dialogs-test.txt1
-rw-r--r--cui/source/customize/CommandCategoryListBox.cxx63
-rw-r--r--cui/source/customize/CustomNotebookbarGenerator.cxx61
-rw-r--r--cui/source/customize/SvxConfigPageHelper.cxx34
-rw-r--r--cui/source/customize/SvxMenuConfigPage.cxx100
-rw-r--r--cui/source/customize/SvxNotebookbarConfigPage.cxx95
-rw-r--r--cui/source/customize/SvxToolbarConfigPage.cxx162
-rw-r--r--cui/source/customize/acccfg.cxx150
-rw-r--r--cui/source/customize/cfg.cxx302
-rw-r--r--cui/source/customize/cfgutil.cxx342
-rw-r--r--cui/source/customize/eventdlg.cxx17
-rw-r--r--cui/source/customize/macropg.cxx373
-rw-r--r--cui/source/customize/macropg_impl.hxx3
-rw-r--r--cui/source/dialogs/AdditionsDialog.cxx181
-rw-r--r--cui/source/dialogs/DiagramDialog.cxx111
-rw-r--r--cui/source/dialogs/FontFeaturesDialog.cxx104
-rw-r--r--cui/source/dialogs/GraphicTestsDialog.cxx47
-rw-r--r--cui/source/dialogs/ImageViewerDialog.cxx4
-rw-r--r--cui/source/dialogs/QrCodeGenDialog.cxx103
-rw-r--r--cui/source/dialogs/SignSignatureLineDialog.cxx57
-rw-r--r--cui/source/dialogs/SignatureLineDialog.cxx56
-rw-r--r--cui/source/dialogs/SignatureLineDialogBase.cxx8
-rw-r--r--cui/source/dialogs/SpellAttrib.hxx13
-rw-r--r--cui/source/dialogs/SpellDialog.cxx304
-rw-r--r--cui/source/dialogs/about.cxx124
-rw-r--r--cui/source/dialogs/colorpicker.cxx173
-rw-r--r--cui/source/dialogs/cuicharmap.cxx1277
-rw-r--r--cui/source/dialogs/cuifmsearch.cxx78
-rw-r--r--cui/source/dialogs/cuigaldlg.cxx124
-rw-r--r--cui/source/dialogs/cuigrfflt.cxx62
-rw-r--r--cui/source/dialogs/cuihyperdlg.cxx66
-rw-r--r--cui/source/dialogs/cuiimapwnd.cxx14
-rw-r--r--cui/source/dialogs/cuitbxform.cxx5
-rw-r--r--cui/source/dialogs/dlgname.cxx210
-rw-r--r--cui/source/dialogs/hangulhanjadlg.cxx133
-rw-r--r--cui/source/dialogs/hldocntp.cxx68
-rw-r--r--cui/source/dialogs/hldoctp.cxx20
-rw-r--r--cui/source/dialogs/hlinettp.cxx159
-rw-r--r--cui/source/dialogs/hlmailtp.cxx24
-rw-r--r--cui/source/dialogs/hlmarkwn.cxx80
-rw-r--r--cui/source/dialogs/hltpbase.cxx101
-rw-r--r--cui/source/dialogs/hyphen.cxx73
-rw-r--r--cui/source/dialogs/iconcdlg.cxx21
-rw-r--r--cui/source/dialogs/insdlg.cxx114
-rw-r--r--cui/source/dialogs/insrc.cxx39
-rw-r--r--cui/source/dialogs/linkdlg.cxx48
-rw-r--r--cui/source/dialogs/multipat.cxx32
-rw-r--r--cui/source/dialogs/newtabledlg.cxx6
-rw-r--r--cui/source/dialogs/passwdomdlg.cxx210
-rw-r--r--cui/source/dialogs/pastedlg.cxx12
-rw-r--r--cui/source/dialogs/postdlg.cxx48
-rw-r--r--cui/source/dialogs/screenshotannotationdlg.cxx49
-rw-r--r--cui/source/dialogs/scriptdlg.cxx192
-rw-r--r--cui/source/dialogs/sdrcelldlg.cxx55
-rw-r--r--cui/source/dialogs/showcols.cxx11
-rw-r--r--cui/source/dialogs/splitcelldlg.cxx10
-rw-r--r--cui/source/dialogs/srchxtra.cxx132
-rw-r--r--cui/source/dialogs/thesdlg.cxx51
-rw-r--r--cui/source/dialogs/tipofthedaydlg.cxx90
-rw-r--r--cui/source/dialogs/toolbarmodedlg.cxx61
-rw-r--r--cui/source/dialogs/whatsnew.cxx172
-rw-r--r--cui/source/dialogs/widgettestdlg.cxx57
-rw-r--r--cui/source/dialogs/zoom.cxx50
-rw-r--r--cui/source/factory/cuiexp.cxx46
-rw-r--r--cui/source/factory/dlgfact.cxx222
-rw-r--r--cui/source/factory/dlgfact.hxx95
-rw-r--r--cui/source/factory/init.cxx7
-rw-r--r--cui/source/inc/AdditionsDialog.hxx8
-rw-r--r--cui/source/inc/CustomNotebookbarGenerator.hxx4
-rw-r--r--cui/source/inc/DiagramDialog.hxx10
-rw-r--r--cui/source/inc/FontFeaturesDialog.hxx29
-rw-r--r--cui/source/inc/GraphicsTestsDialog.hxx6
-rw-r--r--cui/source/inc/QrCodeGenDialog.hxx11
-rw-r--r--cui/source/inc/SignSignatureLineDialog.hxx3
-rw-r--r--cui/source/inc/SignatureLineDialog.hxx4
-rw-r--r--cui/source/inc/SignatureLineDialogBase.hxx3
-rw-r--r--cui/source/inc/SpellDialog.hxx22
-rw-r--r--cui/source/inc/SvxMenuConfigPage.hxx6
-rw-r--r--cui/source/inc/SvxNotebookbarConfigPage.hxx6
-rw-r--r--cui/source/inc/SvxToolbarConfigPage.hxx6
-rw-r--r--cui/source/inc/about.hxx2
-rw-r--r--cui/source/inc/align.hxx37
-rw-r--r--cui/source/inc/autocdlg.hxx16
-rw-r--r--cui/source/inc/backgrnd.hxx17
-rw-r--r--cui/source/inc/bbdlg.hxx2
-rw-r--r--cui/source/inc/border.hxx3
-rw-r--r--cui/source/inc/cfg.hxx49
-rw-r--r--cui/source/inc/cfgutil.hxx5
-rw-r--r--cui/source/inc/chardlg.hxx15
-rw-r--r--cui/source/inc/connect.hxx2
-rw-r--r--cui/source/inc/cuifmsearch.hxx2
-rw-r--r--cui/source/inc/cuigaldlg.hxx10
-rw-r--r--cui/source/inc/cuigrfflt.hxx2
-rw-r--r--cui/source/inc/cuihyperdlg.hxx20
-rw-r--r--cui/source/inc/cuioptgenrl.hxx8
-rw-r--r--cui/source/inc/cuitabarea.hxx39
-rw-r--r--cui/source/inc/cuitabline.hxx6
-rw-r--r--cui/source/inc/dbregister.hxx7
-rw-r--r--cui/source/inc/grfpage.hxx20
-rw-r--r--cui/source/inc/helpids.h56
-rw-r--r--cui/source/inc/hldocntp.hxx5
-rw-r--r--cui/source/inc/hldoctp.hxx4
-rw-r--r--cui/source/inc/hlinettp.hxx24
-rw-r--r--cui/source/inc/hlmailtp.hxx3
-rw-r--r--cui/source/inc/hltpbase.hxx5
-rw-r--r--cui/source/inc/hyphen.hxx2
-rw-r--r--cui/source/inc/iconcdlg.hxx35
-rw-r--r--cui/source/inc/insdlg.hxx6
-rw-r--r--cui/source/inc/insrc.hxx19
-rw-r--r--cui/source/inc/labdlg.hxx2
-rw-r--r--cui/source/inc/macroass.hxx1
-rw-r--r--cui/source/inc/macropg.hxx26
-rw-r--r--cui/source/inc/multipat.hxx14
-rw-r--r--cui/source/inc/newtabledlg.hxx12
-rw-r--r--cui/source/inc/numpages.hxx25
-rw-r--r--cui/source/inc/optasian.hxx3
-rw-r--r--cui/source/inc/optdict.hxx1
-rw-r--r--cui/source/inc/optlingu.hxx8
-rw-r--r--cui/source/inc/optpath.hxx4
-rw-r--r--cui/source/inc/page.hxx2
-rw-r--r--cui/source/inc/paragrph.hxx56
-rw-r--r--cui/source/inc/passwdomdlg.hxx7
-rw-r--r--cui/source/inc/scriptdlg.hxx5
-rw-r--r--cui/source/inc/sdrcelldlg.hxx4
-rw-r--r--cui/source/inc/securityoptions.hxx (renamed from cui/source/options/securityoptions.hxx)27
-rw-r--r--cui/source/inc/srchxtra.hxx2
-rw-r--r--cui/source/inc/swpossizetabpage.hxx8
-rw-r--r--cui/source/inc/textanim.hxx2
-rw-r--r--cui/source/inc/textattr.hxx2
-rw-r--r--cui/source/inc/thesdlg.hxx3
-rw-r--r--cui/source/inc/tipofthedaydlg.hxx2
-rw-r--r--cui/source/inc/transfrm.hxx9
-rw-r--r--cui/source/inc/treeopt.hxx91
-rw-r--r--cui/source/inc/whatsnew.hxx79
-rw-r--r--cui/source/options/certpath.cxx20
-rw-r--r--cui/source/options/cfgchart.cxx138
-rw-r--r--cui/source/options/cfgchart.hxx29
-rw-r--r--cui/source/options/connpoolconfig.cxx72
-rw-r--r--cui/source/options/connpooloptions.cxx78
-rw-r--r--cui/source/options/connpooloptions.hxx7
-rw-r--r--cui/source/options/connpoolsettings.cxx10
-rw-r--r--cui/source/options/connpoolsettings.hxx4
-rw-r--r--cui/source/options/dbregister.cxx53
-rw-r--r--cui/source/options/dbregisterednamesconfig.cxx23
-rw-r--r--cui/source/options/dbregistersettings.hxx5
-rw-r--r--cui/source/options/doclinkdialog.cxx61
-rw-r--r--cui/source/options/doclinkdialog.hxx3
-rw-r--r--cui/source/options/fontsubs.cxx77
-rw-r--r--cui/source/options/fontsubs.hxx9
-rw-r--r--cui/source/options/optaboutconfig.cxx1135
-rw-r--r--cui/source/options/optaboutconfig.hxx57
-rw-r--r--cui/source/options/optaccessibility.cxx85
-rw-r--r--cui/source/options/optaccessibility.hxx12
-rw-r--r--cui/source/options/optasian.cxx117
-rw-r--r--cui/source/options/optbasic.cxx37
-rw-r--r--cui/source/options/optbasic.hxx3
-rw-r--r--cui/source/options/optchart.cxx67
-rw-r--r--cui/source/options/optchart.hxx4
-rw-r--r--cui/source/options/optcolor.cxx454
-rw-r--r--cui/source/options/optcolor.hxx13
-rw-r--r--cui/source/options/optctl.cxx56
-rw-r--r--cui/source/options/optctl.hxx3
-rw-r--r--cui/source/options/optdeepl.cxx78
-rw-r--r--cui/source/options/optdeepl.hxx39
-rw-r--r--cui/source/options/optdict.cxx135
-rw-r--r--cui/source/options/optfltr.cxx345
-rw-r--r--cui/source/options/optfltr.hxx15
-rw-r--r--cui/source/options/optgdlg.cxx735
-rw-r--r--cui/source/options/optgdlg.hxx69
-rw-r--r--cui/source/options/optgenrl.cxx158
-rw-r--r--cui/source/options/opthtml.cxx165
-rw-r--r--cui/source/options/opthtml.hxx17
-rw-r--r--cui/source/options/optinet2.cxx360
-rw-r--r--cui/source/options/optinet2.hxx32
-rw-r--r--cui/source/options/optjava.cxx137
-rw-r--r--cui/source/options/optjava.hxx6
-rw-r--r--cui/source/options/optjsearch.cxx81
-rw-r--r--cui/source/options/optjsearch.hxx2
-rw-r--r--cui/source/options/optlanguagetool.cxx173
-rw-r--r--cui/source/options/optlanguagetool.hxx55
-rw-r--r--cui/source/options/optlingu.cxx483
-rw-r--r--cui/source/options/optopencl.cxx27
-rw-r--r--cui/source/options/optopencl.hxx2
-rw-r--r--cui/source/options/optpath.cxx131
-rw-r--r--cui/source/options/optsave.cxx241
-rw-r--r--cui/source/options/optsave.hxx20
-rw-r--r--cui/source/options/optupdt.cxx399
-rw-r--r--cui/source/options/optupdt.hxx17
-rw-r--r--cui/source/options/personalization.cxx74
-rw-r--r--cui/source/options/personalization.hxx4
-rw-r--r--cui/source/options/sdbcdriverenum.cxx2
-rw-r--r--cui/source/options/securityoptions.cxx115
-rw-r--r--cui/source/options/treeopt.cxx1262
-rw-r--r--cui/source/options/treeopthelper.cxx184
-rw-r--r--cui/source/options/tsaurls.cxx20
-rw-r--r--cui/source/options/webconninfo.cxx15
-rw-r--r--cui/source/tabpages/TextColumnsPage.cxx13
-rw-r--r--cui/source/tabpages/align.cxx121
-rw-r--r--cui/source/tabpages/autocdlg.cxx346
-rw-r--r--cui/source/tabpages/backgrnd.cxx237
-rw-r--r--cui/source/tabpages/bbdlg.cxx18
-rw-r--r--cui/source/tabpages/border.cxx223
-rw-r--r--cui/source/tabpages/chardlg.cxx489
-rw-r--r--cui/source/tabpages/connect.cxx112
-rw-r--r--cui/source/tabpages/grfpage.cxx313
-rw-r--r--cui/source/tabpages/labdlg.cxx50
-rw-r--r--cui/source/tabpages/macroass.cxx50
-rw-r--r--cui/source/tabpages/measure.cxx67
-rw-r--r--cui/source/tabpages/numfmt.cxx158
-rw-r--r--cui/source/tabpages/numpages.cxx926
-rw-r--r--cui/source/tabpages/page.cxx186
-rw-r--r--cui/source/tabpages/paragrph.cxx1090
-rw-r--r--cui/source/tabpages/swpossizetabpage.cxx325
-rw-r--r--cui/source/tabpages/tabarea.cxx82
-rw-r--r--cui/source/tabpages/tabline.cxx26
-rw-r--r--cui/source/tabpages/tabstpge.cxx69
-rw-r--r--cui/source/tabpages/textanim.cxx70
-rw-r--r--cui/source/tabpages/textattr.cxx117
-rw-r--r--cui/source/tabpages/tparea.cxx185
-rw-r--r--cui/source/tabpages/tpbitmap.cxx109
-rw-r--r--cui/source/tabpages/tpcolor.cxx223
-rw-r--r--cui/source/tabpages/tpgradnt.cxx189
-rw-r--r--cui/source/tabpages/tphatch.cxx60
-rw-r--r--cui/source/tabpages/tpline.cxx195
-rw-r--r--cui/source/tabpages/tplnedef.cxx88
-rw-r--r--cui/source/tabpages/tplneend.cxx66
-rw-r--r--cui/source/tabpages/tppattern.cxx57
-rw-r--r--cui/source/tabpages/tpshadow.cxx65
-rw-r--r--cui/source/tabpages/tptrans.cxx119
-rw-r--r--cui/source/tabpages/transfrm.cxx219
-rw-r--r--cui/uiconfig/ui/aboutconfigdialog.ui116
-rw-r--r--cui/uiconfig/ui/aboutdialog.ui38
-rw-r--r--cui/uiconfig/ui/accelconfigpage.ui242
-rw-r--r--cui/uiconfig/ui/acorexceptpage.ui6
-rw-r--r--cui/uiconfig/ui/acorreplacepage.ui104
-rw-r--r--cui/uiconfig/ui/additionsdialog.ui4
-rw-r--r--cui/uiconfig/ui/additionsfragment.ui2
-rw-r--r--cui/uiconfig/ui/applyautofmtpage.ui6
-rw-r--r--cui/uiconfig/ui/areatabpage.ui21
-rw-r--r--cui/uiconfig/ui/baselinksdialog.ui165
-rw-r--r--cui/uiconfig/ui/borderpage.ui16
-rw-r--r--cui/uiconfig/ui/bulletandposition.ui104
-rw-r--r--cui/uiconfig/ui/cellalignment.ui290
-rw-r--r--cui/uiconfig/ui/certdialog.ui2
-rw-r--r--cui/uiconfig/ui/charnamepage.ui1403
-rw-r--r--cui/uiconfig/ui/colorconfigwin.ui535
-rw-r--r--cui/uiconfig/ui/colorfragment.ui5
-rw-r--r--cui/uiconfig/ui/colorpage.ui12
-rw-r--r--cui/uiconfig/ui/colorpickerdialog.ui429
-rw-r--r--cui/uiconfig/ui/comment.ui2
-rw-r--r--cui/uiconfig/ui/connectortabpage.ui3
-rw-r--r--cui/uiconfig/ui/connpooloptions.ui332
-rw-r--r--cui/uiconfig/ui/croppage.ui48
-rw-r--r--cui/uiconfig/ui/cuiimapdlg.ui6
-rw-r--r--cui/uiconfig/ui/databaselinkdialog.ui2
-rw-r--r--cui/uiconfig/ui/dimensionlinestabpage.ui268
-rw-r--r--cui/uiconfig/ui/editmodulesdialog.ui6
-rw-r--r--cui/uiconfig/ui/effectspage.ui360
-rw-r--r--cui/uiconfig/ui/eventassignpage.ui138
-rw-r--r--cui/uiconfig/ui/eventsconfigpage.ui112
-rw-r--r--cui/uiconfig/ui/fileextcheckdialog.ui2
-rw-r--r--cui/uiconfig/ui/fmsearchdialog.ui446
-rw-r--r--cui/uiconfig/ui/fontfeaturesdialog.ui234
-rw-r--r--cui/uiconfig/ui/fontfragment.ui1
-rw-r--r--cui/uiconfig/ui/formatcellsdialog.ui320
-rw-r--r--cui/uiconfig/ui/formatnumberdialog.ui21
-rw-r--r--cui/uiconfig/ui/gradientpage.ui342
-rw-r--r--cui/uiconfig/ui/hangulhanjaoptdialog.ui159
-rw-r--r--cui/uiconfig/ui/hatchpage.ui2
-rw-r--r--cui/uiconfig/ui/hyperlinkdialog.ui223
-rw-r--r--cui/uiconfig/ui/hyperlinkdocpage.ui246
-rw-r--r--cui/uiconfig/ui/hyperlinkinternetpage.ui324
-rw-r--r--cui/uiconfig/ui/hyperlinkmailpage.ui8
-rw-r--r--cui/uiconfig/ui/hyperlinknewdocpage.ui8
-rw-r--r--cui/uiconfig/ui/hyphenate.ui123
-rw-r--r--cui/uiconfig/ui/iconselectordialog.ui3
-rw-r--r--cui/uiconfig/ui/imagetabpage.ui176
-rw-r--r--cui/uiconfig/ui/javastartparametersdialog.ui134
-rw-r--r--cui/uiconfig/ui/langtoolconfigpage.ui434
-rw-r--r--cui/uiconfig/ui/lineendstabpage.ui179
-rw-r--r--cui/uiconfig/ui/linestyletabpage.ui2
-rw-r--r--cui/uiconfig/ui/linetabpage.ui461
-rw-r--r--cui/uiconfig/ui/listdialog.ui231
-rw-r--r--cui/uiconfig/ui/macroassignpage.ui92
-rw-r--r--cui/uiconfig/ui/macroselectordialog.ui161
-rw-r--r--cui/uiconfig/ui/menuassignpage.ui547
-rw-r--r--cui/uiconfig/ui/numberdialog.ui (renamed from cui/uiconfig/ui/aboutconfigvaluedialog.ui)90
-rw-r--r--cui/uiconfig/ui/numberingformatpage.ui2
-rw-r--r--cui/uiconfig/ui/numberingoptionspage.ui613
-rw-r--r--cui/uiconfig/ui/numberingpositionpage.ui6
-rw-r--r--cui/uiconfig/ui/objecttitledescdialog.ui95
-rw-r--r--cui/uiconfig/ui/optaccessibilitypage.ui296
-rw-r--r--cui/uiconfig/ui/optadvancedpage.ui220
-rw-r--r--cui/uiconfig/ui/optappearancepage.ui344
-rw-r--r--cui/uiconfig/ui/optchartcolorspage.ui99
-rw-r--r--cui/uiconfig/ui/optctlpage.ui2
-rw-r--r--cui/uiconfig/ui/optdeeplpage.ui129
-rw-r--r--cui/uiconfig/ui/optfltrembedpage.ui257
-rw-r--r--cui/uiconfig/ui/optfltrpage.ui260
-rw-r--r--cui/uiconfig/ui/optfontspage.ui284
-rw-r--r--cui/uiconfig/ui/optgeneralpage.ui425
-rw-r--r--cui/uiconfig/ui/opthtmlpage.ui533
-rw-r--r--cui/uiconfig/ui/optionsdialog.ui130
-rw-r--r--cui/uiconfig/ui/optlanguagespage.ui385
-rw-r--r--cui/uiconfig/ui/optlingupage.ui131
-rw-r--r--cui/uiconfig/ui/optonlineupdatepage.ui340
-rw-r--r--cui/uiconfig/ui/optopenclpage.ui70
-rw-r--r--cui/uiconfig/ui/optpathspage.ui2
-rw-r--r--cui/uiconfig/ui/optproxypage.ui293
-rw-r--r--cui/uiconfig/ui/optsavepage.ui497
-rw-r--r--cui/uiconfig/ui/optsecuritypage.ui611
-rw-r--r--cui/uiconfig/ui/optuserpage.ui862
-rw-r--r--cui/uiconfig/ui/optviewpage.ui511
-rw-r--r--cui/uiconfig/ui/pageformatpage.ui553
-rw-r--r--cui/uiconfig/ui/paragalignpage.ui219
-rw-r--r--cui/uiconfig/ui/paraindentspacing.ui331
-rw-r--r--cui/uiconfig/ui/password.ui126
-rw-r--r--cui/uiconfig/ui/personalization_tab.ui206
-rw-r--r--cui/uiconfig/ui/pickbulletpage.ui59
-rw-r--r--cui/uiconfig/ui/pickgraphicpage.ui135
-rw-r--r--cui/uiconfig/ui/picknumberingpage.ui59
-rw-r--r--cui/uiconfig/ui/pickoutlinepage.ui61
-rw-r--r--cui/uiconfig/ui/positionpage.ui59
-rw-r--r--cui/uiconfig/ui/possizetabpage.ui350
-rw-r--r--cui/uiconfig/ui/qrcodegen.ui75
-rw-r--r--cui/uiconfig/ui/querychangelineenddialog.ui6
-rw-r--r--cui/uiconfig/ui/querydeletelineenddialog.ui4
-rw-r--r--cui/uiconfig/ui/querysetinsmodedialog.ui156
-rw-r--r--cui/uiconfig/ui/scriptorganizer.ui2
-rw-r--r--cui/uiconfig/ui/securityoptionsdialog.ui470
-rw-r--r--cui/uiconfig/ui/signsignatureline.ui2
-rw-r--r--cui/uiconfig/ui/specialcharacters.ui432
-rw-r--r--cui/uiconfig/ui/spellingdialog.ui350
-rw-r--r--cui/uiconfig/ui/spelloptionsdialog.ui50
-rw-r--r--cui/uiconfig/ui/swpossizepage.ui674
-rw-r--r--cui/uiconfig/ui/textanimtabpage.ui2
-rw-r--r--cui/uiconfig/ui/textcolumnstabpage.ui2
-rw-r--r--cui/uiconfig/ui/textflowpage.ui632
-rw-r--r--cui/uiconfig/ui/thesaurus.ui145
-rw-r--r--cui/uiconfig/ui/tipofthedaydialog.ui4
-rw-r--r--cui/uiconfig/ui/toolbarmodedialog.ui25
-rw-r--r--cui/uiconfig/ui/transparencytabpage.ui298
-rw-r--r--cui/uiconfig/ui/whatsnewdialog.ui131
-rw-r--r--cui/uiconfig/ui/widgettestdialog.ui675
-rw-r--r--cui/uiconfig/ui/wordcompletionpage.ui6
-rw-r--r--cui/uiconfig/ui/zoomdialog.ui8
-rw-r--r--cui/util/cui.component8
370 files changed, 28127 insertions, 20253 deletions
diff --git a/cui/IwyuFilter_cui.yaml b/cui/IwyuFilter_cui.yaml
index 69ecc5b3d9de..739afefd4ee7 100644
--- a/cui/IwyuFilter_cui.yaml
+++ b/cui/IwyuFilter_cui.yaml
@@ -20,6 +20,9 @@ excludelist:
# Actually used
- com/sun/star/graphic/XGraphic.hpp
- com/sun/star/security/XCertificate.hpp
+ cui/source/factory/dlgfact.cxx:
+ # Needed on WIN
+ - fileextcheckdlg.hxx
cui/source/dialogs/thesdlg.cxx:
# Actually used
- com/sun/star/linguistic2/XMeaning.hpp
@@ -36,3 +39,6 @@ excludelist:
cui/source/customize/cfg.cxx:
# Actually used
- com/sun/star/ui/dialogs/XFilePicker3.hpp
+ cui/source/dialogs/AdditionsDialog.cxx:
+ # Actually needed for orcus::json::parse_error
+ - orcus/json_parser.hpp
diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
index 686bd039f251..3ee744e32d0f 100644
--- a/cui/Library_cui.mk
+++ b/cui/Library_cui.mk
@@ -9,9 +9,7 @@
$(eval $(call gb_Library_Library,cui))
-$(eval $(call gb_Library_set_plugin_for,cui,vcl))
-
-$(eval $(call gb_Library_set_componentfile,cui,cui/util/cui))
+$(eval $(call gb_Library_set_componentfile,cui,cui/util/cui,services))
$(eval $(call gb_Library_set_include,cui,\
$$(INCLUDE) \
@@ -27,6 +25,7 @@ $(eval $(call gb_Library_add_defs,cui,\
$(eval $(call gb_Library_use_custom_headers,cui,\
officecfg/registry \
+ oox/generated \
))
$(eval $(call gb_Library_use_sdk_api,cui))
@@ -37,6 +36,7 @@ $(eval $(call gb_Library_use_libraries,cui,\
comphelper \
cppu \
cppuhelper \
+ docmodel \
drawinglayer \
editeng \
i18nlangtag \
@@ -60,6 +60,7 @@ $(eval $(call gb_Library_use_libraries,cui,\
tl \
ucbhelper \
utl \
+ vcl \
$(if $(ENABLE_BREAKPAD), \
crashreport \
) \
@@ -76,11 +77,6 @@ $(eval $(call gb_Library_use_externals,cui,\
orcus \
zxing \
))
-ifeq ($(DISABLE_GUI),)
-$(eval $(call gb_Library_use_externals,cui,\
- epoxy \
- ))
-endif
ifeq ($(OS),WNT)
$(eval $(call gb_Library_use_system_win32_libs,cui,\
@@ -93,6 +89,18 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
))
endif
+ifneq ($(ENABLE_WASM_STRIP_PINGUSER),TRUE)
+$(eval $(call gb_Library_add_exception_objects,cui,\
+ cui/source/dialogs/tipofthedaydlg \
+))
+endif
+
+ifneq ($(ENABLE_WASM_STRIP_HUNSPELL),TRUE)
+$(eval $(call gb_Library_add_exception_objects,cui,\
+ cui/source/dialogs/hyphen \
+))
+endif
+
$(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/customize/acccfg \
cui/source/customize/cfg \
@@ -106,10 +114,10 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/customize/SvxNotebookbarConfigPage \
cui/source/customize/CustomNotebookbarGenerator \
cui/source/dialogs/about \
+ cui/source/dialogs/whatsnew \
$(call gb_Helper_optional,EXTENSIONS, \
cui/source/dialogs/AdditionsDialog) \
cui/source/dialogs/colorpicker \
- cui/source/dialogs/cuicharmap \
cui/source/dialogs/cuifmsearch \
cui/source/dialogs/cuigaldlg \
cui/source/dialogs/cuigrfflt \
@@ -126,9 +134,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/dialogs/hlmailtp \
cui/source/dialogs/hlmarkwn \
cui/source/dialogs/hltpbase \
- cui/source/dialogs/hyphen \
cui/source/dialogs/iconcdlg \
- cui/source/dialogs/tipofthedaydlg \
cui/source/dialogs/insdlg \
cui/source/dialogs/insrc \
cui/source/dialogs/linkdlg \
@@ -181,6 +187,8 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/options/optgdlg \
cui/source/options/optgenrl \
cui/source/options/opthtml \
+ cui/source/options/optlanguagetool \
+ cui/source/options/optdeepl \
cui/source/options/optinet2 \
cui/source/options/optjava \
cui/source/options/optjsearch \
@@ -195,6 +203,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/options/sdbcdriverenum \
cui/source/options/securityoptions \
cui/source/options/treeopt \
+ cui/source/options/treeopthelper \
cui/source/options/tsaurls \
cui/source/options/webconninfo \
cui/source/tabpages/align \
@@ -232,6 +241,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
cui/source/tabpages/tptrans \
cui/source/tabpages/transfrm \
cui/source/util/FontFeatures \
+ cui/source/dialogs/widgettestdlg \
))
# vim: set noet sw=4 ts=4:
diff --git a/cui/Module_cui.mk b/cui/Module_cui.mk
index e4ff28c8fabe..53492ef291a4 100644
--- a/cui/Module_cui.mk
+++ b/cui/Module_cui.mk
@@ -29,6 +29,7 @@ $(eval $(call gb_Module_add_screenshot_targets,cui,\
$(eval $(call gb_Module_add_uicheck_targets,cui,\
UITest_cui_dialogs \
+ UITest_cui_tabpages \
))
# vim: set noet sw=4 ts=4:
diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index daa8a1e3d55d..79ff7696a93a 100644
--- a/cui/UIConfig_cui.mk
+++ b/cui/UIConfig_cui.mk
@@ -15,10 +15,16 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
))
endif
+ifneq ($(ENABLE_WASM_STRIP_PINGUSER),TRUE)
+$(eval $(call gb_UIConfig_add_uifiles,cui,\
+ cui/uiconfig/ui/tipofthedaydialog \
+ cui/uiconfig/ui/whatsnewdialog \
+))
+endif
+
$(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/aboutdialog \
cui/uiconfig/ui/aboutconfigdialog\
- cui/uiconfig/ui/aboutconfigvaluedialog \
cui/uiconfig/ui/accelconfigpage \
cui/uiconfig/ui/additionsdialog \
cui/uiconfig/ui/additionsfragment \
@@ -99,7 +105,6 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/hyphenate \
cui/uiconfig/ui/iconchangedialog \
cui/uiconfig/ui/iconselectordialog \
- cui/uiconfig/ui/tipofthedaydialog \
cui/uiconfig/ui/insertfloatingframe \
cui/uiconfig/ui/insertoleobject \
cui/uiconfig/ui/insertrowcolumn \
@@ -109,6 +114,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/linetabpage \
cui/uiconfig/ui/lineendstabpage \
cui/uiconfig/ui/linestyletabpage \
+ cui/uiconfig/ui/listdialog \
cui/uiconfig/ui/macroassigndialog \
cui/uiconfig/ui/macroassignpage \
cui/uiconfig/ui/macroselectordialog \
@@ -120,6 +126,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/newlibdialog \
cui/uiconfig/ui/newtabledialog \
cui/uiconfig/ui/newtoolbardialog \
+ cui/uiconfig/ui/numberdialog \
cui/uiconfig/ui/numberingformatpage \
cui/uiconfig/ui/numberingoptionspage \
cui/uiconfig/ui/numberingpositionpage \
@@ -132,12 +139,14 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/optbasicidepage \
cui/uiconfig/ui/optctlpage \
cui/uiconfig/ui/optchartcolorspage \
+ cui/uiconfig/ui/optdeeplpage \
cui/uiconfig/ui/optemailpage \
cui/uiconfig/ui/optfltrpage \
cui/uiconfig/ui/optfltrembedpage \
cui/uiconfig/ui/optfontspage \
cui/uiconfig/ui/optgeneralpage \
cui/uiconfig/ui/opthtmlpage \
+ cui/uiconfig/ui/langtoolconfigpage \
cui/uiconfig/ui/optionsdialog \
cui/uiconfig/ui/optjsearchpage \
cui/uiconfig/ui/optlanguagespage \
@@ -185,6 +194,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/querynosavefiledialog \
cui/uiconfig/ui/querysavelistdialog \
cui/uiconfig/ui/queryupdategalleryfilelistdialog \
+ cui/uiconfig/ui/querysetinsmodedialog \
cui/uiconfig/ui/recordnumberdialog \
cui/uiconfig/ui/rotationtabpage \
cui/uiconfig/ui/scriptorganizer \
@@ -220,6 +230,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
cui/uiconfig/ui/wordcompletionpage \
cui/uiconfig/ui/spinbox \
cui/uiconfig/ui/zoomdialog \
+ cui/uiconfig/ui/widgettestdialog \
))
# vim: set noet sw=4 ts=4:
diff --git a/cui/UITest_cui_dialogs.mk b/cui/UITest_cui_dialogs.mk
index d3ad2dc64102..9ff41db58ad5 100644
--- a/cui/UITest_cui_dialogs.mk
+++ b/cui/UITest_cui_dialogs.mk
@@ -13,4 +13,6 @@ $(eval $(call gb_UITest_add_modules,cui_dialogs,$(SRCDIR)/cui/qa/uitest,\
dialogs/ \
))
+$(eval $(call gb_UITest_avoid_oneprocess,cui_dialogs))
+
# vim: set noet sw=4 ts=4:
diff --git a/cui/UITest_cui_tabpages.mk b/cui/UITest_cui_tabpages.mk
new file mode 100644
index 000000000000..4458e9859e23
--- /dev/null
+++ b/cui/UITest_cui_tabpages.mk
@@ -0,0 +1,16 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice 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/.
+#
+
+$(eval $(call gb_UITest_UITest,cui_tabpages))
+
+$(eval $(call gb_UITest_add_modules,cui_tabpages,$(SRCDIR)/cui/qa/uitest,\
+ tabpages/ \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/cui/inc/bitmaps.hlst b/cui/inc/bitmaps.hlst
index 733ce7b26478..aab916827507 100644
--- a/cui/inc/bitmaps.hlst
+++ b/cui/inc/bitmaps.hlst
@@ -9,67 +9,78 @@
#pragma once
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_NONE = u"svx/res/pr01.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_NONE_32 = u"svx/res/border_cell_none_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_ALL = u"svx/res/pr02.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_ALL_32 = u"svx/res/border_cell_all_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_LR = u"svx/res/pr03.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_LR_32 = u"svx/res/border_cell_lr_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_TB = u"svx/res/pr04.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_TB_32 = u"svx/res/border_cell_tb_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_L = u"svx/res/pr05.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_L_32 = u"svx/res/border_cell_l_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_DIAG = u"svx/res/pr06.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELL_DIAG_32 = u"svx/res/border_cell_diag_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_HOR_NONE = u"svx/res/pr07.png";
-inline constexpr OUStringLiteral RID_SVXBMP_HOR_OUTER = u"svx/res/pr08.png";
-inline constexpr OUStringLiteral RID_SVXBMP_HOR_HOR = u"svx/res/pr09.png";
-inline constexpr OUStringLiteral RID_SVXBMP_HOR_ALL = u"svx/res/pr010.png";
-inline constexpr OUStringLiteral RID_SVXBMP_HOR_OUTER2 = u"svx/res/pr011.png";
-inline constexpr OUStringLiteral RID_SVXBMP_VER_NONE = u"svx/res/pr012.png";
-inline constexpr OUStringLiteral RID_SVXBMP_VER_OUTER = u"svx/res/pr013.png";
-inline constexpr OUStringLiteral RID_SVXBMP_VER_VER = u"svx/res/pr014.png";
-inline constexpr OUStringLiteral RID_SVXBMP_VER_ALL = u"svx/res/pr015.png";
-inline constexpr OUStringLiteral RID_SVXBMP_VER_OUTER2 = u"svx/res/pr016.png";
-inline constexpr OUStringLiteral RID_SVXBMP_TABLE_NONE = u"svx/res/pr017.png";
-inline constexpr OUStringLiteral RID_SVXBMP_TABLE_OUTER = u"svx/res/pr018.png";
-inline constexpr OUStringLiteral RID_SVXBMP_TABLE_OUTERH = u"svx/res/pr019.png";
-inline constexpr OUStringLiteral RID_SVXBMP_TABLE_ALL = u"svx/res/pr020.png";
-inline constexpr OUStringLiteral RID_SVXBMP_TABLE_OUTER2 = u"svx/res/pr021.png";
+inline constexpr OUString RID_SVXBMP_CELL_NONE = u"svx/res/pr01.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_NONE_32 = u"svx/res/border_cell_none_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_ALL = u"svx/res/pr02.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_ALL_32 = u"svx/res/border_cell_all_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_LR = u"svx/res/pr03.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_LR_32 = u"svx/res/border_cell_lr_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_TB = u"svx/res/pr04.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_TB_32 = u"svx/res/border_cell_tb_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_L = u"svx/res/pr05.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_L_32 = u"svx/res/border_cell_l_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_DIAG = u"svx/res/pr06.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELL_DIAG_32 = u"svx/res/border_cell_diag_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_HOR_NONE = u"svx/res/pr07.png"_ustr;
+inline constexpr OUString RID_SVXBMP_HOR_OUTER = u"svx/res/pr08.png"_ustr;
+inline constexpr OUString RID_SVXBMP_HOR_HOR = u"svx/res/pr09.png"_ustr;
+inline constexpr OUString RID_SVXBMP_HOR_ALL = u"svx/res/pr010.png"_ustr;
+inline constexpr OUString RID_SVXBMP_HOR_OUTER2 = u"svx/res/pr011.png"_ustr;
+inline constexpr OUString RID_SVXBMP_VER_NONE = u"svx/res/pr012.png"_ustr;
+inline constexpr OUString RID_SVXBMP_VER_OUTER = u"svx/res/pr013.png"_ustr;
+inline constexpr OUString RID_SVXBMP_VER_VER = u"svx/res/pr014.png"_ustr;
+inline constexpr OUString RID_SVXBMP_VER_ALL = u"svx/res/pr015.png"_ustr;
+inline constexpr OUString RID_SVXBMP_VER_OUTER2 = u"svx/res/pr016.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TABLE_NONE = u"svx/res/pr017.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TABLE_OUTER = u"svx/res/pr018.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TABLE_OUTERH = u"svx/res/pr019.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TABLE_ALL = u"svx/res/pr020.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TABLE_OUTER2 = u"svx/res/pr021.png"_ustr;
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOWNONE = u"svx/res/sh01.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOWNONE_32 = u"svx/res/shadow_none_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_BOT_RIGHT = u"svx/res/sh02.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_BOT_RIGHT_32 = u"svx/res/shadow_bottom_right_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_BOT_LEFT = u"svx/res/sh03.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_BOT_LEFT_32 = u"svx/res/shadow_bottom_left_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_TOP_RIGHT = u"svx/res/sh04.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_TOP_RIGHT_32 = u"svx/res/shadow_top_right_32.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_TOP_LEFT = u"svx/res/sh05.png";
-inline constexpr OUStringLiteral RID_SVXBMP_SHADOW_TOP_LEFT_32 = u"svx/res/shadow_top_left_32.png";
+inline constexpr OUString RID_SVXBMP_SHADOWNONE = u"svx/res/sh01.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOWNONE_32 = u"svx/res/shadow_none_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_BOT_RIGHT = u"svx/res/sh02.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_BOT_RIGHT_32 = u"svx/res/shadow_bottom_right_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_BOT_LEFT = u"svx/res/sh03.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_BOT_LEFT_32 = u"svx/res/shadow_bottom_left_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_TOP_RIGHT = u"svx/res/sh04.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_TOP_RIGHT_32 = u"svx/res/shadow_top_right_32.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_TOP_LEFT = u"svx/res/sh05.png"_ustr;
+inline constexpr OUString RID_SVXBMP_SHADOW_TOP_LEFT_32 = u"svx/res/shadow_top_left_32.png"_ustr;
-inline constexpr OUStringLiteral RID_SVXBMP_BOTTOMLOCK = u"svx/res/lo01.png";
-inline constexpr OUStringLiteral RID_SVXBMP_TOPLOCK = u"svx/res/lo02.png";
-inline constexpr OUStringLiteral RID_SVXBMP_CELLLOCK = u"svx/res/lo03.png";
+inline constexpr OUString RID_SVXBMP_BOTTOMLOCK = u"svx/res/lo01.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TOPLOCK = u"svx/res/lo02.png"_ustr;
+inline constexpr OUString RID_SVXBMP_CELLLOCK = u"svx/res/lo03.png"_ustr;
-inline constexpr OUStringLiteral RID_SVXBMP_LOCK = u"res/lock.png";
+inline constexpr OUString RID_SVXBMP_LOCK = u"res/lock.png"_ustr;
+inline constexpr OUString RID_SVXBMP_LOCKED = u"res/locked.png"_ustr;
+inline constexpr OUString RID_SVXBMP_UNLOCKED = u"res/unlocked.png"_ustr;
-inline constexpr OUStringLiteral RID_SVXBMP_THEME_NORMAL_BIG = u"svx/res/galnorl.png";
-inline constexpr OUStringLiteral RID_SVXBMP_THEME_READONLY_BIG = u"svx/res/galrdol.png";
-inline constexpr OUStringLiteral RID_SVXBMP_THEME_DEFAULT_BIG = u"svx/res/galdefl.png";
+inline constexpr OUString RID_SVXBMP_THEME_NORMAL_BIG = u"svx/res/galnorl.png"_ustr;
+inline constexpr OUString RID_SVXBMP_THEME_READONLY_BIG = u"svx/res/galrdol.png"_ustr;
+inline constexpr OUString RID_SVXBMP_THEME_DEFAULT_BIG = u"svx/res/galdefl.png"_ustr;
-inline constexpr OUStringLiteral RID_CUIBMP_HARDDISK = u"res/harddisk_16.png";
-inline constexpr OUStringLiteral RID_CUIBMP_LIB = u"res/im30820.png";
-inline constexpr OUStringLiteral RID_CUIBMP_MACRO = u"res/im30821.png";
-inline constexpr OUStringLiteral RID_CUIBMP_DOC = u"res/im30826.png";
+inline constexpr OUString RID_CUIBMP_HARDDISK = u"res/harddisk_16.png"_ustr;
+inline constexpr OUString RID_CUIBMP_LIB = u"res/im30820.png"_ustr;
+inline constexpr OUString RID_CUIBMP_MACRO = u"res/im30821.png"_ustr;
+inline constexpr OUString RID_CUIBMP_DOC = u"res/im30826.png"_ustr;
-inline constexpr OUStringLiteral RID_SVXBMP_SCRIPT = u"res/script.png";
+inline constexpr OUString RID_SVXBMP_SCRIPT = u"res/script.png"_ustr;
-inline constexpr OUStringLiteral RID_SVXBMP_LEGTYP1 = u"svx/res/legtyp1.png";
-inline constexpr OUStringLiteral RID_SVXBMP_LEGTYP2 = u"svx/res/legtyp2.png";
-inline constexpr OUStringLiteral RID_SVXBMP_LEGTYP3 = u"svx/res/legtyp3.png";
+inline constexpr OUString RID_SVXBMP_LEGTYP1 = u"svx/res/legtyp1.png"_ustr;
+inline constexpr OUString RID_SVXBMP_LEGTYP2 = u"svx/res/legtyp2.png"_ustr;
+inline constexpr OUString RID_SVXBMP_LEGTYP3 = u"svx/res/legtyp3.png"_ustr;
-inline constexpr OUStringLiteral RID_SVXBMP_COMPONENT = u"res/component_16.png";
-inline constexpr OUStringLiteral RID_SVXBMP_MACRO = u"svx/res/id018.png";
+inline constexpr OUString RID_SVXBMP_COMPONENT = u"res/component_16.png"_ustr;
+inline constexpr OUString RID_SVXBMP_MACRO = u"svx/res/id018.png"_ustr;
+inline constexpr OUString RID_SVXBMP_COPY = u"cmd/sc_copy.png"_ustr;
+
+inline constexpr OUString RID_SVXBMP_STARS_FULL = u"cmd/sc_stars-full.png"_ustr;
+
+inline constexpr OUString RID_SVXBMP_TOTD_WRITER = u"res/tipoftheday_w.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TOTD_CALC = u"res/tipoftheday_c.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TOTD_DRAW = u"res/tipoftheday_d.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TOTD_IMPRESS = u"res/tipoftheday_i.png"_ustr;
+inline constexpr OUString RID_SVXBMP_TOTD_SOFFICE = u"res/tipoftheday.png"_ustr;
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/cui/source/inc/dlgname.hxx b/cui/inc/dlgname.hxx
index 0baa56b61948..d12b8edb1bea 100644
--- a/cui/source/inc/dlgname.hxx
+++ b/cui/inc/dlgname.hxx
@@ -18,10 +18,12 @@
*/
#pragma once
+#include <vcl/formatter.hxx>
#include <vcl/weld.hxx>
+#include <sal/log.hxx>
/// Dialog for editing a name
-class SvxNameDialog : public weld::GenericDialogController
+class SvxNameDialog final : public weld::GenericDialogController
{
private:
std::unique_ptr<weld::Entry> m_xEdtName;
@@ -34,7 +36,8 @@ private:
DECL_LINK(ModifyHdl, weld::Entry&, void);
public:
- SvxNameDialog(weld::Window* pWindow, const OUString& rName, const OUString& rDesc);
+ SvxNameDialog(weld::Window* pWindow, const OUString& rName, const OUString& rDesc,
+ const OUString& rTitle = u""_ustr);
OUString GetName() const { return m_xEdtName->get_text(); }
@@ -44,20 +47,11 @@ public:
@param rLink a Callback declared with DECL_DLLPRIVATE_LINK and implemented with
IMPL_LINK, that is executed on modification.
-
- @param bCheckImmediately If true, the Link is called directly after
- setting it. It is recommended to set this flag to true to avoid
- an inconsistent state if the initial String (given in the CTOR)
- does not satisfy the check condition.
-
- @todo Remove the parameter bCheckImmediately and incorporate the 'true'
- behaviour as default.
*/
- void SetCheckNameHdl(const Link<SvxNameDialog&, bool>& rLink, bool bCheckImmediately)
+ void SetCheckNameHdl(const Link<SvxNameDialog&, bool>& rLink)
{
m_aCheckNameHdl = rLink;
- if (bCheckImmediately)
- m_xBtnOK->set_sensitive(rLink.Call(*this));
+ ModifyHdl(*m_xEdtName);
}
void SetCheckNameTooltipHdl(const Link<SvxNameDialog&, OUString>& rLink)
@@ -66,13 +60,39 @@ public:
m_xBtnOK->set_tooltip_text(rLink.Call(*this));
}
- void SetEditHelpId(const OString& aHelpId) { m_xEdtName->set_help_id(aHelpId); }
+ void SetEditHelpId(const OUString& aHelpId) { m_xEdtName->set_help_id(aHelpId); }
+};
+
+/// Dialog for editing a number
+class SvxNumberDialog final : public weld::GenericDialogController
+{
+private:
+ std::unique_ptr<weld::SpinButton> m_xEdtNumber;
+ std::unique_ptr<weld::Label> m_xFtDescription;
+
+public:
+ SvxNumberDialog(weld::Window* pWindow, const OUString& rDesc, sal_Int64 nValue, sal_Int64 nMin,
+ sal_Int64 nMax);
+
+ sal_Int64 GetNumber() const { return m_xEdtNumber->get_value(); }
+};
+
+class SvxDecimalNumberDialog final : public weld::GenericDialogController
+{
+private:
+ std::unique_ptr<weld::FormattedSpinButton> m_xEdtNumber;
+ std::unique_ptr<weld::Label> m_xFtDescription;
+
+public:
+ SvxDecimalNumberDialog(weld::Window* pWindow, const OUString& rDesc, double fValue);
+
+ double GetNumber() const { return m_xEdtNumber->GetFormatter().GetValue(); }
};
/** #i68101#
Dialog for editing Object name
plus uniqueness-callback-linkHandler */
-class SvxObjectNameDialog : public weld::GenericDialogController
+class SvxObjectNameDialog final : public weld::GenericDialogController
{
private:
// name
@@ -99,21 +119,66 @@ public:
/** #i68101#
Dialog for editing Object Title and Description */
-class SvxObjectTitleDescDialog : public weld::GenericDialogController
+class SvxObjectTitleDescDialog final : public weld::GenericDialogController
{
private:
// title
+ std::unique_ptr<weld::Label> m_xTitleFT;
std::unique_ptr<weld::Entry> m_xEdtTitle;
// description
+ std::unique_ptr<weld::Label> m_xDescriptionFT;
std::unique_ptr<weld::TextView> m_xEdtDescription;
+ std::unique_ptr<weld::CheckButton> m_xDecorativeCB;
+
+ DECL_LINK(DecorativeHdl, weld::Toggleable&, void);
+
public:
// constructor
- SvxObjectTitleDescDialog(weld::Window* pWindow, const OUString& rTitle, const OUString& rDesc);
+ SvxObjectTitleDescDialog(weld::Window* pWindow, const OUString& rTitle, const OUString& rDesc,
+ bool isDecorative);
// data access
OUString GetTitle() const { return m_xEdtTitle->get_text(); }
OUString GetDescription() const { return m_xEdtDescription->get_text(); }
+ bool IsDecorative() const { return m_xDecorativeCB->get_active(); }
+};
+
+enum class ListMode
+{
+ String,
+ Int64,
+ Int32,
+ Int16,
+ Double
+};
+
+/** Generic dialog to edit lists */
+class SvxListDialog : public weld::GenericDialogController
+{
+private:
+ ListMode m_aMode;
+ std::unique_ptr<weld::TreeView> m_xList;
+ std::unique_ptr<weld::Button> m_xAddBtn;
+ std::unique_ptr<weld::Button> m_xRemoveBtn;
+ std::unique_ptr<weld::Button> m_xEditBtn;
+
+ DECL_LINK(SelectHdl_Impl, weld::TreeView&, void);
+ DECL_LINK(DblClickHdl_Impl, weld::TreeView&, bool);
+ DECL_LINK(AddHdl_Impl, weld::Button&, void);
+ DECL_LINK(RemoveHdl_Impl, weld::Button&, void);
+ DECL_LINK(EditHdl_Impl, weld::Button&, void);
+
+ void SelectionChanged();
+
+public:
+ explicit SvxListDialog(weld::Window* pParent);
+ virtual ~SvxListDialog() override;
+
+ std::vector<OUString> GetEntries();
+ void SetEntries(std::vector<OUString> const& rParams);
+ void EditEntry();
+ void SetMode(ListMode aMode);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/inc/numcategories.hrc b/cui/inc/numcategories.hrc
index 40370cc65811..58f2a1d9d79b 100644
--- a/cui/inc/numcategories.hrc
+++ b/cui/inc/numcategories.hrc
@@ -11,7 +11,7 @@
#include <unotools/resmgr.hxx>
-#define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(u8##String))
+#define NC_(Context, String) TranslateId(Context, u8##String)
const TranslateId NUM_CATEGORIES[] =
{
diff --git a/cui/inc/pch/precompiled_cui.hxx b/cui/inc/pch/precompiled_cui.hxx
index ddc40646e39d..3655744b08fa 100644
--- a/cui/inc/pch/precompiled_cui.hxx
+++ b/cui/inc/pch/precompiled_cui.hxx
@@ -13,7 +13,7 @@
manual changes will be rewritten by the next run of update_pch.sh (which presumably
also fixes all possible problems, so it's usually better to use it).
- Generated on 2021-09-28 05:29:25 using:
+ Generated on 2023-07-19 09:21:23 using:
./bin/update_pch cui cui --cutoff=8 --exclude:system --include:module --exclude:local
If after updating build fails, use the following command to locate conflicting headers:
@@ -47,12 +47,14 @@
#include <optional>
#include <ostream>
#include <set>
+#include <span>
#include <stddef.h>
#include <stdexcept>
#include <string.h>
#include <string>
#include <string_view>
#include <type_traits>
+#include <typeinfo>
#include <unordered_map>
#include <unordered_set>
#include <utility>
@@ -71,7 +73,6 @@
#include <osl/process.h>
#include <osl/security.hxx>
#include <osl/thread.h>
-#include <osl/time.h>
#include <rtl/alloc.h>
#include <rtl/bootstrap.hxx>
#include <rtl/character.hxx>
@@ -103,9 +104,10 @@
#include <vcl/GraphicObject.hxx>
#include <vcl/IDialogRenderable.hxx>
#include <vcl/Scanline.hxx>
+#include <vcl/WindowPosSize.hxx>
#include <vcl/alpha.hxx>
#include <vcl/animate/Animation.hxx>
-#include <vcl/animate/AnimationBitmap.hxx>
+#include <vcl/animate/AnimationFrame.hxx>
#include <vcl/bitmap.hxx>
#include <vcl/bitmap/BitmapTypes.hxx>
#include <vcl/bitmapex.hxx>
@@ -113,9 +115,7 @@
#include <vcl/cairo.hxx>
#include <vcl/checksum.hxx>
#include <vcl/customweld.hxx>
-#include <vcl/devicecoordinate.hxx>
#include <vcl/dllapi.h>
-#include <vcl/errcode.hxx>
#include <vcl/event.hxx>
#include <vcl/fntstyle.hxx>
#include <vcl/font.hxx>
@@ -124,9 +124,7 @@
#include <vcl/graph.hxx>
#include <vcl/idle.hxx>
#include <vcl/image.hxx>
-#include <vcl/imap.hxx>
-#include <vcl/imapobj.hxx>
-#include <vcl/keycod.hxx>
+#include <vcl/kernarray.hxx>
#include <vcl/keycodes.hxx>
#include <vcl/mapmod.hxx>
#include <vcl/metaactiontypes.hxx>
@@ -146,9 +144,7 @@
#include <vcl/rendercontext/SalLayoutFlags.hxx>
#include <vcl/rendercontext/State.hxx>
#include <vcl/rendercontext/SystemTextColorFlags.hxx>
-#include <vcl/salctype.hxx>
#include <vcl/salnativewidgets.hxx>
-#include <vcl/scopedbitmapaccess.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include <vcl/syswin.hxx>
@@ -165,19 +161,23 @@
#include <vcl/weld.hxx>
#include <vcl/window.hxx>
#include <vcl/windowstate.hxx>
+#include <vcl/wintypes.hxx>
#endif // PCH_LEVEL >= 2
#if PCH_LEVEL >= 3
#include <basegfx/basegfxdllapi.h>
#include <basegfx/color/bcolor.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <basegfx/matrix/hommatrixtemplate.hxx>
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/point/b2dpoint.hxx>
#include <basegfx/point/b2ipoint.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/range/Range2D.hxx>
#include <basegfx/range/b2drange.hxx>
#include <basegfx/range/b2drectangle.hxx>
#include <basegfx/range/basicrange.hxx>
+#include <basegfx/tuple/Size2D.hxx>
#include <basegfx/tuple/Tuple2D.hxx>
#include <basegfx/tuple/Tuple3D.hxx>
#include <basegfx/tuple/b2dtuple.hxx>
@@ -187,10 +187,12 @@
#include <basegfx/vector/b2dsize.hxx>
#include <basegfx/vector/b2dvector.hxx>
#include <basegfx/vector/b2enums.hxx>
+#include <basegfx/vector/b2isize.hxx>
#include <basegfx/vector/b2ivector.hxx>
#include <basic/basicdllapi.h>
#include <basic/sbxdef.hxx>
#include <com/sun/star/awt/DeviceInfo.hpp>
+#include <com/sun/star/awt/GradientStyle.hpp>
#include <com/sun/star/awt/Key.hpp>
#include <com/sun/star/awt/KeyGroup.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
@@ -215,38 +217,37 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/frame/XTerminateListener.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
#include <com/sun/star/graphic/XPrimitive2D.hpp>
-#include <com/sun/star/i18n/Calendar2.hpp>
-#include <com/sun/star/i18n/DirectionProperty.hpp>
#include <com/sun/star/i18n/ForbiddenCharacters.hpp>
-#include <com/sun/star/i18n/KCharacterType.hpp>
#include <com/sun/star/i18n/LanguageCountryInfo.hpp>
#include <com/sun/star/i18n/LocaleDataItem2.hpp>
#include <com/sun/star/i18n/LocaleItem.hpp>
-#include <com/sun/star/i18n/NativeNumberXmlAttributes.hpp>
-#include <com/sun/star/i18n/ParseResult.hpp>
#include <com/sun/star/i18n/ScriptType.hpp>
#include <com/sun/star/i18n/TransliterationModules.hpp>
#include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
-#include <com/sun/star/i18n/UnicodeScript.hpp>
#include <com/sun/star/i18n/WordType.hpp>
#include <com/sun/star/i18n/reservedWords.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XOutputStream.hpp>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/EventObject.hpp>
#include <com/sun/star/lang/Locale.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/script/browse/XBrowseNode.hpp>
#include <com/sun/star/style/NumberingType.hpp>
#include <com/sun/star/style/XStyle.hpp>
#include <com/sun/star/text/textfield/Type.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <com/sun/star/uno/Any.h>
#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Exception.hpp>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/RuntimeException.hpp>
@@ -263,14 +264,20 @@
#include <com/sun/star/util/Date.hpp>
#include <com/sun/star/util/DateTime.hpp>
#include <com/sun/star/util/SearchAlgorithms.hpp>
+#include <com/sun/star/util/SearchAlgorithms2.hpp>
#include <com/sun/star/util/SearchOptions2.hpp>
#include <com/sun/star/util/Time.hpp>
+#include <com/sun/star/util/XAccounting.hpp>
+#include <comphelper/compbase.hxx>
#include <comphelper/comphelperdllapi.h>
-#include <comphelper/dispatchcommand.hxx>
+#include <comphelper/diagnose_ex.hxx>
+#include <comphelper/errcode.hxx>
+#include <comphelper/interfacecontainer4.hxx>
#include <comphelper/lok.hxx>
#include <comphelper/processfactory.hxx>
+#include <comphelper/propertyvalue.hxx>
#include <comphelper/string.hxx>
-#include <comphelper/weak.hxx>
+#include <comphelper/unoimplbase.hxx>
#include <cppu/cppudllapi.h>
#include <cppu/unotype.hxx>
#include <cppuhelper/cppuhelperdllapi.h>
@@ -278,12 +285,19 @@
#include <cppuhelper/implbase_ex.hxx>
#include <cppuhelper/implbase_ex_post.hxx>
#include <cppuhelper/implbase_ex_pre.hxx>
+#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/weak.hxx>
#include <cppuhelper/weakref.hxx>
+#include <docmodel/color/ComplexColor.hxx>
+#include <docmodel/color/Transformation.hxx>
+#include <docmodel/dllapi.h>
+#include <docmodel/theme/ThemeColorType.hxx>
#include <drawinglayer/drawinglayerdllapi.h>
+#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <drawinglayer/primitive2d/CommonTypes.hxx>
#include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
#include <drawinglayer/primitive2d/Primitive2DVisitor.hxx>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
#include <editeng/editdata.hxx>
#include <editeng/editengdllapi.h>
#include <editeng/editstat.hxx>
@@ -305,8 +319,10 @@
#include <o3tl/cow_wrapper.hxx>
#include <o3tl/deleter.hxx>
#include <o3tl/enumarray.hxx>
+#include <o3tl/hash_combine.hxx>
#include <o3tl/safeint.hxx>
#include <o3tl/sorted_vector.hxx>
+#include <o3tl/string_view.hxx>
#include <o3tl/strong_int.hxx>
#include <o3tl/typed_flags_set.hxx>
#include <o3tl/underlyingenumvalue.hxx>
@@ -351,7 +367,7 @@
#include <svtools/svtdllapi.h>
#include <svtools/unitconv.hxx>
#include <svtools/valueset.hxx>
-#include <svx/DiagramDataInterface.hxx>
+#include <svx/colorbox.hxx>
#include <svx/dialmgr.hxx>
#include <svx/dlgutil.hxx>
#include <svx/ipolypolygoneditorcontroller.hxx>
@@ -369,7 +385,6 @@
#include <svx/sdtaitm.hxx>
#include <svx/sdtakitm.hxx>
#include <svx/sdynitm.hxx>
-#include <svx/shapeproperty.hxx>
#include <svx/svddef.hxx>
#include <svx/svddrag.hxx>
#include <svx/svdedtv.hxx>
@@ -404,7 +419,6 @@
#include <tools/datetime.hxx>
#include <tools/debug.hxx>
#include <tools/degree.hxx>
-#include <tools/diagnose_ex.h>
#include <tools/fldunit.hxx>
#include <tools/fontenum.hxx>
#include <tools/fract.hxx>
@@ -423,21 +437,20 @@
#include <tools/toolsdllapi.h>
#include <tools/urlobj.hxx>
#include <tools/weakbase.h>
-#include <tools/weakbase.hxx>
-#include <tools/wintypes.hxx>
#include <typelib/typeclass.h>
#include <typelib/typedescription.h>
#include <typelib/uik.h>
#include <uno/any2.h>
#include <uno/data.h>
#include <uno/sequence2.h>
-#include <unotools/charclass.hxx>
#include <unotools/fontdefs.hxx>
#include <unotools/options.hxx>
#include <unotools/pathoptions.hxx>
#include <unotools/resmgr.hxx>
#include <unotools/syslocale.hxx>
+#include <unotools/tempfile.hxx>
#include <unotools/unotoolsdllapi.h>
+#include <unotools/weakref.hxx>
#endif // PCH_LEVEL >= 3
#if PCH_LEVEL >= 4
#include <cfgutil.hxx>
diff --git a/cui/inc/personas.hrc b/cui/inc/personas.hrc
new file mode 100644
index 000000000000..6b101717dcaa
--- /dev/null
+++ b/cui/inc/personas.hrc
@@ -0,0 +1,30 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ */
+
+#pragma once
+
+#include <sal/types.h>
+#include <unotools/resmgr.hxx>
+
+#include <utility>
+
+#define NC_(Context, String) TranslateId(Context, u8##String)
+
+// it must be synchronized with extras/source/gallery/personas/personas_list.txt
+std::pair<TranslateId, sal_uInt16> RID_PERSONAS_COLOR[] =
+{
+ { NC_("RID_CUI_PERSONAS_COLOR", "White") , 0 },
+ { NC_("RID_CUI_PERSONAS_COLOR", "Gray") , 1 },
+ { NC_("RID_CUI_PERSONAS_COLOR", "Dark") , 2 },
+ { NC_("RID_CUI_PERSONAS_COLOR", "Pink") , 3 },
+ { NC_("RID_CUI_PERSONAS_COLOR", "Sand") , 4 },
+ { NC_("RID_CUI_PERSONAS_COLOR", "Green") , 5 },
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index 44b6a063ae1e..96f67c5fe8f3 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -18,173 +18,157 @@
*/
#pragma once
-#define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(u8##String))
-
-#define RID_SVXSTR_KEY_CONFIG_DIR NC_("RID_SVXSTR_KEY_CONFIG_DIR", "Configuration")
-#define RID_SVXSTR_KEY_WORK_PATH NC_("RID_SVXSTR_KEY_WORK_PATH", "My Documents")
-#define RID_SVXSTR_KEY_GRAPHICS_PATH NC_("RID_SVXSTR_KEY_GRAPHICS_PATH", "Images")
-#define RID_SVXSTR_KEY_BITMAP_PATH NC_("RID_SVXSTR_KEY_BITMAP_PATH", "Icons")
-#define RID_SVXSTR_KEY_PALETTE_PATH NC_("RID_SVXSTR_KEY_PALETTE_PATH", "Palettes")
-#define RID_SVXSTR_KEY_BACKUP_PATH NC_("RID_SVXSTR_KEY_BACKUP_PATH", "Backups")
-#define RID_SVXSTR_KEY_MODULES_PATH NC_("RID_SVXSTR_KEY_MODULES_PATH", "Modules")
-#define RID_SVXSTR_KEY_TEMPLATE_PATH NC_("RID_SVXSTR_KEY_TEMPLATE_PATH", "Templates")
-#define RID_SVXSTR_KEY_GLOSSARY_PATH NC_("RID_SVXSTR_KEY_GLOSSARY_PATH", "AutoText")
-#define RID_SVXSTR_KEY_DICTIONARY_PATH NC_("RID_SVXSTR_KEY_DICTIONARY_PATH", "Dictionaries")
-#define RID_SVXSTR_KEY_HELP_DIR NC_("RID_SVXSTR_KEY_HELP_DIR", "Help")
-#define RID_SVXSTR_KEY_GALLERY_DIR NC_("RID_SVXSTR_KEY_GALLERY_DIR", "Gallery")
-#define RID_SVXSTR_KEY_STORAGE_DIR NC_("RID_SVXSTR_KEY_STORAGE_DIR", "Message Storage")
-#define RID_SVXSTR_KEY_TEMP_PATH NC_("RID_SVXSTR_KEY_TEMP_PATH", "Temporary files")
-#define RID_SVXSTR_KEY_PLUGINS_PATH NC_("RID_SVXSTR_KEY_PLUGINS_PATH", "Plug-ins")
-#define RID_SVXSTR_KEY_FAVORITES_DIR NC_("RID_SVXSTR_KEY_FAVORITES_DIR", "Folder Bookmarks")
-#define RID_SVXSTR_KEY_FILTER_PATH NC_("RID_SVXSTR_KEY_FILTER_PATH", "Filters")
-#define RID_SVXSTR_KEY_ADDINS_PATH NC_("RID_SVXSTR_KEY_ADDINS_PATH", "Add-ins")
-#define RID_SVXSTR_KEY_USERCONFIG_PATH NC_("RID_SVXSTR_KEY_USERCONFIG_PATH", "User Configuration")
-#define RID_SVXSTR_KEY_USERDICTIONARY_DIR NC_("RID_SVXSTR_KEY_USERDICTIONARY_DIR", "User-defined dictionaries")
-#define RID_SVXSTR_KEY_CLASSIFICATION_PATH NC_("RID_SVXSTR_KEY_CLASSIFICATION_PATH", "Classification")
-#define RID_SVXSTR_KEY_AUTOCORRECT_DIR NC_("RID_SVXSTR_KEY_AUTOCORRECT_DIR", "AutoCorrect")
-#define RID_SVXSTR_KEY_LINGUISTIC_DIR NC_("RID_SVXSTR_KEY_LINGUISTIC_DIR", "Writing aids")
+#define NC_(Context, String) TranslateId(Context, u8##String)
+
+#define RID_CUISTR_KEY_WORK_PATH NC_("RID_SVXSTR_KEY_WORK_PATH", "My Documents")
+#define RID_CUISTR_KEY_GRAPHICS_PATH NC_("RID_SVXSTR_KEY_GRAPHICS_PATH", "Images")
+#define RID_CUISTR_KEY_BACKUP_PATH NC_("RID_SVXSTR_KEY_BACKUP_PATH", "Backups")
+#define RID_CUISTR_KEY_TEMPLATE_PATH NC_("RID_SVXSTR_KEY_TEMPLATE_PATH", "Templates")
+#define RID_CUISTR_KEY_GLOSSARY_PATH NC_("RID_SVXSTR_KEY_GLOSSARY_PATH", "AutoText")
+#define RID_CUISTR_KEY_DICTIONARY_PATH NC_("RID_SVXSTR_KEY_DICTIONARY_PATH", "Dictionaries")
+#define RID_CUISTR_KEY_HELP_DIR NC_("RID_SVXSTR_KEY_HELP_DIR", "Help")
+#define RID_CUISTR_KEY_GALLERY_DIR NC_("RID_SVXSTR_KEY_GALLERY_DIR", "Gallery")
+#define RID_CUISTR_KEY_TEMP_PATH NC_("RID_SVXSTR_KEY_TEMP_PATH", "Temporary files")
+#define RID_CUISTR_KEY_CLASSIFICATION_PATH NC_("RID_SVXSTR_KEY_CLASSIFICATION_PATH", "Classification")
+#define RID_CUISTR_KEY_AUTOCORRECT_DIR NC_("RID_SVXSTR_KEY_AUTOCORRECT_DIR", "AutoCorrect")
+#define RID_CUISTR_KEY_LINGUISTIC_DIR NC_("RID_SVXSTR_KEY_LINGUISTIC_DIR", "Writing aids")
/* %n will be replaced at runtime by a number starting with 1 and increasing as necessary */
-#define RID_SVXSTR_NEW_MENU NC_("RID_SVXSTR_NEW_MENU", "New Menu %n")
+#define RID_CUISTR_NEW_MENU NC_("RID_SVXSTR_NEW_MENU", "New Menu %n")
/* %n will be replaced at runtime by a number starting with 1 and increasing as necessary */
-#define RID_SVXSTR_NEW_TOOLBAR NC_("RID_SVXSTR_NEW_TOOLBAR", "New Toolbar %n")
-#define RID_SVXSTR_MOVE_MENU NC_("RID_SVXSTR_MOVE_MENU", "Move Menu")
-#define RID_SVXSTR_ADD_SUBMENU NC_("RID_SVXSTR_ADD_SUBMENU", "Add Submenu")
-#define RID_SVXSTR_SUBMENU_NAME NC_("RID_SVXSTR_SUBMENU_NAME", "Submenu name")
-#define RID_SVXSTR_DELETE_ICON_CONFIRM NC_("RID_SVXSTR_DELETE_ICON_CONFIRM", "Are you sure to delete the image?")
-#define RID_SVXSTR_REPLACE_ICON_WARNING NC_("RID_SVXSTR_REPLACE_ICON_WARNING", "The icon %ICONNAME is already contained in the image list.\nWould you like to replace the existing icon?")
-#define RID_SVXSTR_REPLACE_ICON_CONFIRM NC_("RID_SVXSTR_REPLACE_ICON_CONFIRM", "Confirm Icon Replacement")
-#define RID_SVXSTR_YESTOALL NC_("RID_SVXSTR_YESTOALL", "Yes to All")
+#define RID_CUISTR_NEW_TOOLBAR NC_("RID_SVXSTR_NEW_TOOLBAR", "New Toolbar %n")
+#define RID_CUISTR_MOVE_MENU NC_("RID_SVXSTR_MOVE_MENU", "Move Menu")
+#define RID_CUISTR_ADD_SUBMENU NC_("RID_SVXSTR_ADD_SUBMENU", "Add Submenu")
+#define RID_CUISTR_SUBMENU_NAME NC_("RID_SVXSTR_SUBMENU_NAME", "Submenu name")
+#define RID_CUISTR_DELETE_ICON_CONFIRM NC_("RID_SVXSTR_DELETE_ICON_CONFIRM", "Are you sure to delete the image?")
+#define RID_CUISTR_REPLACE_ICON_WARNING NC_("RID_SVXSTR_REPLACE_ICON_WARNING", "The icon %ICONNAME is already contained in the image list.\nWould you like to replace the existing icon?")
+#define RID_CUISTR_REPLACE_ICON_CONFIRM NC_("RID_SVXSTR_REPLACE_ICON_CONFIRM", "Confirm Icon Replacement")
+#define RID_CUISTR_YESTOALL NC_("RID_SVXSTR_YESTOALL", "Yes to All")
#define RID_SXVSTR_CONFIRM_DELETE_TOOLBAR NC_("RID_SXVSTR_CONFIRM_DELETE_TOOLBAR", "There are no more commands on the toolbar. Do you want to delete the toolbar?")
/* Translators: Do not translate %SAVE IN SELECTION% It is a placeholder
and will be replaced at runtime by the name of the selected application
or document.
*/
-#define RID_SVXSTR_CONFIRM_MENU_RESET NC_("RID_SVXSTR_CONFIRM_MENU_RESET", "The menu configuration for %SAVE IN SELECTION% will be reset to the default settings. Do you want to continue?")
-#define RID_SVXSTR_CONFIRM_TOOLBAR_RESET NC_("RID_SVXSTR_CONFIRM_TOOLBAR_RESET", "The toolbar configuration for %SAVE IN SELECTION% will be reset to the default settings. Do you want to continue?")
-#define RID_SVXSTR_CONFIRM_RESTORE_DEFAULT NC_("RID_SVXSTR_CONFIRM_RESTORE_DEFAULT", "This will delete all changes previously made to this toolbar. Do you really want to reset the toolbar?")
-#define RID_SVXSTR_CONFIRM_RESTORE_DEFAULT_MENU NC_("RID_SVXSTR_CONFIRM_RESTORE_DEFAULT_MENU", "This will delete all changes previously made to this context menu. Do you really want to reset?")
-#define RID_SVXSTR_LABEL_NEW_NAME NC_("RID_SVXSTR_LABEL_NEW_NAME", "~New name")
-#define RID_SVXSTR_RENAME_MENU NC_("RID_SVXSTR_RENAME_MENU", "Rename Menu")
-#define RID_SVXSTR_RENAME_TOOLBAR NC_("RID_SVXSTR_RENAME_TOOLBAR", "Rename Toolbar")
-#define RID_SVXSTR_ALL_COMMANDS NC_("RID_SVXSTR_ALL_COMMANDS", "All Commands")
-#define RID_SVXSTR_TABBED NC_("RID_SVXSTR_TABBED", "Tabbed")
-#define RID_SVXSTR_TABBED_COMPACT NC_("RID_SVXSTR_TABBED_COMPACT", "Tabbed Compact")
-#define RID_SVXSTR_GROUPEDBAR NC_("RID_SVXSTR_GROUPEDBAR", "Groupedbar")
-#define RID_SVXSTR_GROUPEDBAR_COMPACT NC_("RID_SVXSTR_GROUPEDBAR_COMPACT", "Groupedbar Compact")
-
-#define RID_SVXSTR_HYPDLG_CLOSEBUT NC_("RID_SVXSTR_HYPDLG_CLOSEBUT", "Close")
-#define RID_SVXSTR_HYPDLG_MACROACT1 NC_("RID_SVXSTR_HYPDLG_MACROACT1", "Mouse over object")
-#define RID_SVXSTR_HYPDLG_MACROACT2 NC_("RID_SVXSTR_HYPDLG_MACROACT2", "Trigger hyperlink")
-#define RID_SVXSTR_HYPDLG_MACROACT3 NC_("RID_SVXSTR_HYPDLG_MACROACT3", "Mouse leaves object")
-#define RID_SVXSTR_HYPDLG_NOVALIDFILENAME NC_("RID_SVXSTR_HYPDLG_NOVALIDFILENAME", "Please type in a valid file name.")
-#define RID_SVXSTR_HYPERDLG_FORM_BUTTON NC_("RID_SVXSTR_HYPERDLG_FORM_BUTTON", "Button")
-#define RID_SVXSTR_HYPERDLG_FROM_TEXT NC_("RID_SVXSTR_HYPERDLG_FROM_TEXT", "Text")
-#define RID_SVXSTR_HYPERDLG_QUERYOVERWRITE NC_("RID_SVXSTR_HYPERDLG_QUERYOVERWRITE", "The file already exists. Overwrite?")
-
-#define RID_SVXSTR_SELECT_FILE_IFRAME NC_("RID_SVXSTR_SELECT_FILE_IFRAME", "Select File for Floating Frame")
-#define RID_SVXSTR_ALLFUNCTIONS NC_("RID_SVXSTR_ALLFUNCTIONS", "All commands")
-#define RID_SVXSTR_MACROS NC_("RID_SVXSTR_MACROS", "Macros")
-#define RID_SVXSTR_MYMACROS NC_("RID_SVXSTR_MYMACROS", "My Macros")
-#define RID_SVXSTR_PRODMACROS NC_("RID_SVXSTR_PRODMACROS", "%PRODUCTNAME Macros")
-#define RID_SVXSTR_NOMACRODESC NC_("RID_SVXSTR_NOMACRODESC", "There is no description available for this macro.")
-#define RID_SVXSTR_SELECTOR_RUN NC_("RID_SVXSTR_SELECTOR_RUN", "Run")
-#define RID_SVXSTR_ROW NC_("RID_SVXSTR_ROW", "Insert Rows")
+#define RID_CUISTR_CONFIRM_MENU_RESET NC_("RID_SVXSTR_CONFIRM_MENU_RESET", "The menu configuration for %SAVE IN SELECTION% will be reset to the default settings. Do you want to continue?")
+#define RID_CUISTR_CONFIRM_TOOLBAR_RESET NC_("RID_SVXSTR_CONFIRM_TOOLBAR_RESET", "The toolbar configuration for %SAVE IN SELECTION% will be reset to the default settings. Do you want to continue?")
+#define RID_CUISTR_CONFIRM_RESTORE_DEFAULT NC_("RID_SVXSTR_CONFIRM_RESTORE_DEFAULT", "This will delete all changes previously made to this toolbar. Do you really want to reset the toolbar?")
+#define RID_CUISTR_CONFIRM_RESTORE_DEFAULT_MENU NC_("RID_SVXSTR_CONFIRM_RESTORE_DEFAULT_MENU", "This will delete all changes previously made to this context menu. Do you really want to reset?")
+#define RID_CUISTR_LABEL_NEW_NAME NC_("RID_SVXSTR_LABEL_NEW_NAME", "~New name")
+#define RID_CUISTR_RENAME_MENU NC_("RID_SVXSTR_RENAME_MENU", "Rename Menu")
+#define RID_CUISTR_RENAME_TOOLBAR NC_("RID_SVXSTR_RENAME_TOOLBAR", "Rename Toolbar")
+#define RID_CUISTR_ALL_COMMANDS NC_("RID_SVXSTR_ALL_COMMANDS", "All Commands")
+#define RID_CUISTR_TABBED NC_("RID_SVXSTR_TABBED", "Tabbed")
+#define RID_CUISTR_TABBED_COMPACT NC_("RID_SVXSTR_TABBED_COMPACT", "Tabbed Compact")
+#define RID_CUISTR_GROUPEDBAR NC_("RID_SVXSTR_GROUPEDBAR", "Groupedbar")
+#define RID_CUISTR_GROUPEDBAR_COMPACT NC_("RID_SVXSTR_GROUPEDBAR_COMPACT", "Groupedbar Compact")
+
+#define RID_CUISTR_HYPDLG_CLOSEBUT NC_("RID_SVXSTR_HYPDLG_CLOSEBUT", "Close")
+#define RID_CUISTR_HYPDLG_MACROACT1 NC_("RID_SVXSTR_HYPDLG_MACROACT1", "Mouse over object")
+#define RID_CUISTR_HYPDLG_MACROACT2 NC_("RID_SVXSTR_HYPDLG_MACROACT2", "Trigger hyperlink")
+#define RID_CUISTR_HYPDLG_MACROACT3 NC_("RID_SVXSTR_HYPDLG_MACROACT3", "Mouse leaves object")
+#define RID_CUISTR_HYPERDLG_FORM_BUTTON NC_("RID_SVXSTR_HYPERDLG_FORM_BUTTON", "Button")
+#define RID_CUISTR_HYPERDLG_FROM_TEXT NC_("RID_SVXSTR_HYPERDLG_FROM_TEXT", "Text")
+#define RID_CUISTR_HYPERDLG_QUERYOVERWRITE NC_("RID_SVXSTR_HYPERDLG_QUERYOVERWRITE", "The file already exists. Overwrite?")
+
+#define RID_CUISTR_SELECT_FILE_IFRAME NC_("RID_SVXSTR_SELECT_FILE_IFRAME", "Select File for Floating Frame")
+#define RID_CUISTR_ALLFUNCTIONS NC_("RID_SVXSTR_ALLFUNCTIONS", "All commands")
+#define RID_CUISTR_MACROS NC_("RID_SVXSTR_MACROS", "Macros")
+#define RID_CUISTR_MYMACROS NC_("RID_SVXSTR_MYMACROS", "My Macros")
+#define RID_CUISTR_PRODMACROS NC_("RID_SVXSTR_PRODMACROS", "Application Macros")
+#define RID_CUISTR_NOMACRODESC NC_("RID_SVXSTR_NOMACRODESC", "There is no description available for this macro.")
+#define RID_CUISTR_SELECTOR_RUN NC_("RID_SVXSTR_SELECTOR_RUN", "Run")
+#define RID_CUISTR_ROW NC_("RID_SVXSTR_ROW", "Insert Rows")
// tdf#119293 Labels depending on row/col
-#define RID_SVXSTR_INSERTROW_BEFORE NC_("RID_SVXSTR_INSERTROW_BEFORE", "Above selection")
-#define RID_SVXSTR_INSERTROW_AFTER NC_("RID_SVXSTR_INSERTROW_AFTER", "Below selection")
-#define RID_SVXSTR_REMOVE_FAVORITES NC_("RID_SVXSTR_REMOVE_FAVORITES", "Remove from Favorites")
-#define RID_SVXSTR_MISSING_CHAR NC_("RID_SVXSTR_MISSING_CHAR", "Missing character")
-#define RID_SVXSTR_ADD_FAVORITES NC_("RID_SVXSTR_ADD_FAVORITES", "Add to Favorites")
+#define RID_CUISTR_INSERTROW_BEFORE NC_("RID_SVXSTR_INSERTROW_BEFORE", "Above selection")
+#define RID_CUISTR_INSERTROW_AFTER NC_("RID_SVXSTR_INSERTROW_AFTER", "Below selection")
// PPI is pixel per inch, %1 is a number
-#define RID_SVXSTR_PPI NC_("RID_SVXSTR_PPI", "(%1 PPI)")
-#define RID_SVXSTR_COL NC_("RID_SVXSTR_COL", "Insert Columns")
+#define RID_CUISTR_PPI NC_("RID_SVXSTR_PPI", "(%1 PPI)")
+#define RID_CUISTR_COL NC_("RID_SVXSTR_COL", "Insert Columns")
// tdf#119293 Labels depending on row/col
-#define RID_SVXSTR_INSERTCOL_BEFORE NC_("RID_SVXSTR_INSERTCOL_BEFORE", "Before selection")
-#define RID_SVXSTR_INSERTCOL_AFTER NC_("RID_SVXSTR_INSERTCOL_AFTER", "After selection")
-#define RID_SVXSTR_AUTO_ENTRY NC_("RID_SVXSTR_AUTO_ENTRY", "Automatic")
-#define RID_SVXSTR_EDIT_GRAPHIC NC_("RID_SVXSTR_EDIT_GRAPHIC", "Link")
-#define RID_SVXSTR_LOADACCELCONFIG NC_("RID_SVXSTR_LOADACCELCONFIG", "Load Keyboard Configuration")
-#define RID_SVXSTR_SAVEACCELCONFIG NC_("RID_SVXSTR_SAVEACCELCONFIG", "Save Keyboard Configuration")
-#define RID_SVXSTR_FILTERNAME_CFG NC_("RID_SVXSTR_FILTERNAME_CFG", "Configuration (*.cfg)")
-#define RID_SVXSTR_HYPDLG_ERR_LERR_NOENTRIES NC_("RID_SVXSTR_HYPDLG_ERR_LERR_NOENTRIES", "Targets do not exist in the document.")
-#define RID_SVXSTR_HYPDLG_ERR_LERR_DOCNOTOPEN NC_("RID_SVXSTR_HYPDLG_ERR_LERR_DOCNOTOPEN", "Couldn't open the document.")
-#define RID_SVXSTR_EDITHINT NC_("RID_SVXSTR_EDITHINT", "[Enter text here]")
-#define RID_SVXSTR_HANGUL NC_("RID_SVXSTR_HANGUL", "Hangul")
-#define RID_SVXSTR_HANJA NC_("RID_SVXSTR_HANJA", "Hanja")
-#define RID_SVXSTR_BASICMACROS NC_("RID_SVXSTR_BASICMACROS", "BASIC Macros")
-#define RID_SVXSTR_GROUP_STYLES NC_("RID_SVXSTR_GROUP_STYLES", "Styles")
-#define RID_SVXSTR_GROUP_SIDEBARDECKS NC_("RID_SVXSTR_GROUP_SIDEBARDECKS", "Sidebar Decks")
-
-#define RID_SVXSTR_EVENT_STARTAPP NC_("RID_SVXSTR_EVENT_STARTAPP", "Start Application")
-#define RID_SVXSTR_EVENT_CLOSEAPP NC_("RID_SVXSTR_EVENT_CLOSEAPP", "Close Application")
-#define RID_SVXSTR_EVENT_NEWDOC NC_("RID_SVXSTR_EVENT_NEWDOC", "New Document")
-#define RID_SVXSTR_EVENT_CLOSEDOC NC_("RID_SVXSTR_EVENT_CLOSEDOC", "Document closed")
-#define RID_SVXSTR_EVENT_PREPARECLOSEDOC NC_("RID_SVXSTR_EVENT_PREPARECLOSEDOC", "Document is going to be closed")
-#define RID_SVXSTR_EVENT_OPENDOC NC_("RID_SVXSTR_EVENT_OPENDOC", "Open Document")
-#define RID_SVXSTR_EVENT_SAVEDOC NC_("RID_SVXSTR_EVENT_SAVEDOC", "Save Document")
-#define RID_SVXSTR_EVENT_SAVEASDOC NC_("RID_SVXSTR_EVENT_SAVEASDOC", "Save Document As")
-#define RID_SVXSTR_EVENT_SAVEDOCDONE NC_("RID_SVXSTR_EVENT_SAVEDOCDONE", "Document has been saved")
-#define RID_SVXSTR_EVENT_SAVEASDOCDONE NC_("RID_SVXSTR_EVENT_SAVEASDOCDONE", "Document has been saved as")
-#define RID_SVXSTR_EVENT_ACTIVATEDOC NC_("RID_SVXSTR_EVENT_ACTIVATEDOC", "Activate Document")
-#define RID_SVXSTR_EVENT_DEACTIVATEDOC NC_("RID_SVXSTR_EVENT_DEACTIVATEDOC", "Deactivate Document")
-#define RID_SVXSTR_EVENT_PRINTDOC NC_("RID_SVXSTR_EVENT_PRINTDOC", "Print Document")
-#define RID_SVXSTR_EVENT_MODIFYCHANGED NC_("RID_SVXSTR_EVENT_MODIFYCHANGED", "'Modified' status was changed")
-#define RID_SVXSTR_EVENT_MAILMERGE NC_("RID_SVXSTR_EVENT_MAILMERGE", "Printing of form letters started")
-#define RID_SVXSTR_EVENT_MAILMERGE_END NC_("RID_SVXSTR_EVENT_MAILMERGE_END", "Printing of form letters finished")
-#define RID_SVXSTR_EVENT_FIELDMERGE NC_("RID_SVXSTR_EVENT_FIELDMERGE", "Merging of form fields started")
-#define RID_SVXSTR_EVENT_FIELDMERGE_FINISHED NC_("RID_SVXSTR_EVENT_FIELDMERGE_FINISHED", "Merging of form fields finished")
-#define RID_SVXSTR_EVENT_PAGECOUNTCHANGE NC_("RID_SVXSTR_EVENT_PAGECOUNTCHANGE", "Changing the page count")
-#define RID_SVXSTR_EVENT_SUBCOMPONENT_OPENED NC_("RID_SVXSTR_EVENT_SUBCOMPONENT_OPENED", "Loaded a sub component")
-#define RID_SVXSTR_EVENT_SUBCOMPONENT_CLOSED NC_("RID_SVXSTR_EVENT_SUBCOMPONENT_CLOSED", "Closed a sub component")
-#define RID_SVXSTR_EVENT_APPROVEPARAMETER NC_("RID_SVXSTR_EVENT_APPROVEPARAMETER", "Fill parameters")
-#define RID_SVXSTR_EVENT_ACTIONPERFORMED NC_("RID_SVXSTR_EVENT_ACTIONPERFORMED", "Execute action")
-#define RID_SVXSTR_EVENT_AFTERUPDATE NC_("RID_SVXSTR_EVENT_AFTERUPDATE", "After updating")
-#define RID_SVXSTR_EVENT_BEFOREUPDATE NC_("RID_SVXSTR_EVENT_BEFOREUPDATE", "Before updating")
-#define RID_SVXSTR_EVENT_APPROVEROWCHANGE NC_("RID_SVXSTR_EVENT_APPROVEROWCHANGE", "Before record action")
-#define RID_SVXSTR_EVENT_ROWCHANGE NC_("RID_SVXSTR_EVENT_ROWCHANGE", "After record action")
-#define RID_SVXSTR_EVENT_CONFIRMDELETE NC_("RID_SVXSTR_EVENT_CONFIRMDELETE", "Confirm deletion")
-#define RID_SVXSTR_EVENT_ERROROCCURRED NC_("RID_SVXSTR_EVENT_ERROROCCURRED", "Error occurred")
-#define RID_SVXSTR_EVENT_ADJUSTMENTVALUECHANGED NC_("RID_SVXSTR_EVENT_ADJUSTMENTVALUECHANGED", "While adjusting")
-#define RID_SVXSTR_EVENT_FOCUSGAINED NC_("RID_SVXSTR_EVENT_FOCUSGAINED", "When receiving focus")
-#define RID_SVXSTR_EVENT_FOCUSLOST NC_("RID_SVXSTR_EVENT_FOCUSLOST", "When losing focus")
-#define RID_SVXSTR_EVENT_ITEMSTATECHANGED NC_("RID_SVXSTR_EVENT_ITEMSTATECHANGED", "Item status changed")
-#define RID_SVXSTR_EVENT_KEYTYPED NC_("RID_SVXSTR_EVENT_KEYTYPED", "Key pressed")
-#define RID_SVXSTR_EVENT_KEYUP NC_("RID_SVXSTR_EVENT_KEYUP", "Key released")
-#define RID_SVXSTR_EVENT_LOADED NC_("RID_SVXSTR_EVENT_LOADED", "When loading")
-#define RID_SVXSTR_EVENT_RELOADING NC_("RID_SVXSTR_EVENT_RELOADING", "Before reloading")
-#define RID_SVXSTR_EVENT_RELOADED NC_("RID_SVXSTR_EVENT_RELOADED", "When reloading")
-#define RID_SVXSTR_EVENT_MOUSEDRAGGED NC_("RID_SVXSTR_EVENT_MOUSEDRAGGED", "Mouse moved while key pressed")
-#define RID_SVXSTR_EVENT_MOUSEENTERED NC_("RID_SVXSTR_EVENT_MOUSEENTERED", "Mouse inside")
-#define RID_SVXSTR_EVENT_MOUSEEXITED NC_("RID_SVXSTR_EVENT_MOUSEEXITED", "Mouse outside")
-#define RID_SVXSTR_EVENT_MOUSEMOVED NC_("RID_SVXSTR_EVENT_MOUSEMOVED", "Mouse moved")
-#define RID_SVXSTR_EVENT_MOUSEPRESSED NC_("RID_SVXSTR_EVENT_MOUSEPRESSED", "Mouse button pressed")
-#define RID_SVXSTR_EVENT_MOUSERELEASED NC_("RID_SVXSTR_EVENT_MOUSERELEASED", "Mouse button released")
-#define RID_SVXSTR_EVENT_POSITIONING NC_("RID_SVXSTR_EVENT_POSITIONING", "Before record change")
-#define RID_SVXSTR_EVENT_POSITIONED NC_("RID_SVXSTR_EVENT_POSITIONED", "After record change")
-#define RID_SVXSTR_EVENT_RESETTED NC_("RID_SVXSTR_EVENT_RESETTED", "After resetting")
-#define RID_SVXSTR_EVENT_APPROVERESETTED NC_("RID_SVXSTR_EVENT_APPROVERESETTED", "Prior to reset")
-#define RID_SVXSTR_EVENT_APPROVEACTIONPERFORMED NC_("RID_SVXSTR_EVENT_APPROVEACTIONPERFORMED", "Approve action")
-#define RID_SVXSTR_EVENT_SUBMITTED NC_("RID_SVXSTR_EVENT_SUBMITTED", "Before submitting")
-#define RID_SVXSTR_EVENT_TEXTCHANGED NC_("RID_SVXSTR_EVENT_TEXTCHANGED", "Text modified")
-#define RID_SVXSTR_EVENT_UNLOADING NC_("RID_SVXSTR_EVENT_UNLOADING", "Before unloading")
-#define RID_SVXSTR_EVENT_UNLOADED NC_("RID_SVXSTR_EVENT_UNLOADED", "When unloading")
-#define RID_SVXSTR_EVENT_CHANGED NC_("RID_SVXSTR_EVENT_CHANGED", "Changed")
-#define RID_SVXSTR_EVENT_CREATEDOC NC_("RID_SVXSTR_EVENT_CREATEDOC", "Document created")
-#define RID_SVXSTR_EVENT_LOADDOCFINISHED NC_("RID_SVXSTR_EVENT_LOADDOCFINISHED", "Document loading finished")
-#define RID_SVXSTR_EVENT_SAVEDOCFAILED NC_("RID_SVXSTR_EVENT_SAVEDOCFAILED", "Saving of document failed")
-#define RID_SVXSTR_EVENT_SAVEASDOCFAILED NC_("RID_SVXSTR_EVENT_SAVEASDOCFAILED", "'Save as' has failed")
-#define RID_SVXSTR_EVENT_COPYTODOC NC_("RID_SVXSTR_EVENT_COPYTODOC", "Storing or exporting copy of document")
-#define RID_SVXSTR_EVENT_COPYTODOCDONE NC_("RID_SVXSTR_EVENT_COPYTODOCDONE", "Document copy has been created")
-#define RID_SVXSTR_EVENT_COPYTODOCFAILED NC_("RID_SVXSTR_EVENT_COPYTODOCFAILED", "Creating of document copy failed")
-#define RID_SVXSTR_EVENT_VIEWCREATED NC_("RID_SVXSTR_EVENT_VIEWCREATED", "View created")
-#define RID_SVXSTR_EVENT_PREPARECLOSEVIEW NC_("RID_SVXSTR_EVENT_PREPARECLOSEVIEW", "View is going to be closed")
-#define RID_SVXSTR_EVENT_CLOSEVIEW NC_("RID_SVXSTR_EVENT_CLOSEVIEW", "View closed")
-#define RID_SVXSTR_EVENT_TITLECHANGED NC_("RID_SVXSTR_EVENT_TITLECHANGED", "Document title changed")
-#define RID_SVXSTR_EVENT_SELECTIONCHANGED NC_("RID_SVXSTR_EVENT_SELECTIONCHANGED", "Selection changed")
-#define RID_SVXSTR_EVENT_DOUBLECLICK NC_("RID_SVXSTR_EVENT_DOUBLECLICK", "Double click")
-#define RID_SVXSTR_EVENT_RIGHTCLICK NC_("RID_SVXSTR_EVENT_RIGHTCLICK", "Right click")
-#define RID_SVXSTR_EVENT_CALCULATE NC_("RID_SVXSTR_EVENT_CALCULATE", "Formulas calculated")
-#define RID_SVXSTR_EVENT_CONTENTCHANGED NC_("RID_SVXSTR_EVENT_CONTENTCHANGED", "Content changed")
+#define RID_CUISTR_INSERTCOL_BEFORE NC_("RID_SVXSTR_INSERTCOL_BEFORE", "Before selection")
+#define RID_CUISTR_INSERTCOL_AFTER NC_("RID_SVXSTR_INSERTCOL_AFTER", "After selection")
+#define RID_CUISTR_AUTO_ENTRY NC_("RID_SVXSTR_AUTO_ENTRY", "Automatic")
+#define RID_CUISTR_EDIT_GRAPHIC NC_("RID_SVXSTR_EDIT_GRAPHIC", "Link")
+#define RID_CUISTR_LOADACCELCONFIG NC_("RID_SVXSTR_LOADACCELCONFIG", "Load Keyboard Configuration")
+#define RID_CUISTR_SAVEACCELCONFIG NC_("RID_SVXSTR_SAVEACCELCONFIG", "Save Keyboard Configuration")
+#define RID_CUISTR_FILTERNAME_CFG NC_("RID_SVXSTR_FILTERNAME_CFG", "Configuration (*.cfg)")
+#define RID_CUISTR_HYPDLG_ERR_LERR_NOENTRIES NC_("RID_SVXSTR_HYPDLG_ERR_LERR_NOENTRIES", "Targets do not exist in the document.")
+#define RID_CUISTR_HYPDLG_ERR_LERR_DOCNOTOPEN NC_("RID_SVXSTR_HYPDLG_ERR_LERR_DOCNOTOPEN", "Couldn't open the document.")
+#define RID_CUISTR_EDITHINT NC_("RID_SVXSTR_EDITHINT", "[Enter text here]")
+#define RID_CUISTR_HANGUL NC_("RID_SVXSTR_HANGUL", "Hangul")
+#define RID_CUISTR_HANJA NC_("RID_SVXSTR_HANJA", "Hanja")
+#define RID_CUISTR_GROUP_STYLES NC_("RID_SVXSTR_GROUP_STYLES", "Styles")
+#define RID_CUISTR_GROUP_SIDEBARDECKS NC_("RID_SVXSTR_GROUP_SIDEBARDECKS", "Sidebar Decks")
+
+#define RID_CUISTR_EVENT_STARTAPP NC_("RID_SVXSTR_EVENT_STARTAPP", "Start Application")
+#define RID_CUISTR_EVENT_CLOSEAPP NC_("RID_SVXSTR_EVENT_CLOSEAPP", "Close Application")
+#define RID_CUISTR_EVENT_NEWDOC NC_("RID_SVXSTR_EVENT_NEWDOC", "New Document")
+#define RID_CUISTR_EVENT_CLOSEDOC NC_("RID_SVXSTR_EVENT_CLOSEDOC", "Document closed")
+#define RID_CUISTR_EVENT_PREPARECLOSEDOC NC_("RID_SVXSTR_EVENT_PREPARECLOSEDOC", "Document is going to be closed")
+#define RID_CUISTR_EVENT_OPENDOC NC_("RID_SVXSTR_EVENT_OPENDOC", "Open Document")
+#define RID_CUISTR_EVENT_SAVEDOC NC_("RID_SVXSTR_EVENT_SAVEDOC", "Save Document")
+#define RID_CUISTR_EVENT_SAVEASDOC NC_("RID_SVXSTR_EVENT_SAVEASDOC", "Save Document As")
+#define RID_CUISTR_EVENT_SAVEDOCDONE NC_("RID_SVXSTR_EVENT_SAVEDOCDONE", "Document has been saved")
+#define RID_CUISTR_EVENT_SAVEASDOCDONE NC_("RID_SVXSTR_EVENT_SAVEASDOCDONE", "Document has been saved as")
+#define RID_CUISTR_EVENT_ACTIVATEDOC NC_("RID_SVXSTR_EVENT_ACTIVATEDOC", "Activate Document")
+#define RID_CUISTR_EVENT_DEACTIVATEDOC NC_("RID_SVXSTR_EVENT_DEACTIVATEDOC", "Deactivate Document")
+#define RID_CUISTR_EVENT_PRINTDOC NC_("RID_SVXSTR_EVENT_PRINTDOC", "Print Document")
+#define RID_CUISTR_EVENT_MODIFYCHANGED NC_("RID_SVXSTR_EVENT_MODIFYCHANGED", "'Modified' status was changed")
+#define RID_CUISTR_EVENT_MAILMERGE NC_("RID_SVXSTR_EVENT_MAILMERGE", "Printing of form letters started")
+#define RID_CUISTR_EVENT_MAILMERGE_END NC_("RID_SVXSTR_EVENT_MAILMERGE_END", "Printing of form letters finished")
+#define RID_CUISTR_EVENT_FIELDMERGE NC_("RID_SVXSTR_EVENT_FIELDMERGE", "Merging of form fields started")
+#define RID_CUISTR_EVENT_FIELDMERGE_FINISHED NC_("RID_SVXSTR_EVENT_FIELDMERGE_FINISHED", "Merging of form fields finished")
+#define RID_CUISTR_EVENT_PAGECOUNTCHANGE NC_("RID_SVXSTR_EVENT_PAGECOUNTCHANGE", "Changing the page count")
+#define RID_CUISTR_EVENT_SUBCOMPONENT_OPENED NC_("RID_SVXSTR_EVENT_SUBCOMPONENT_OPENED", "Loaded a sub component")
+#define RID_CUISTR_EVENT_SUBCOMPONENT_CLOSED NC_("RID_SVXSTR_EVENT_SUBCOMPONENT_CLOSED", "Closed a sub component")
+#define RID_CUISTR_EVENT_APPROVEPARAMETER NC_("RID_SVXSTR_EVENT_APPROVEPARAMETER", "Fill parameters")
+#define RID_CUISTR_EVENT_ACTIONPERFORMED NC_("RID_SVXSTR_EVENT_ACTIONPERFORMED", "Execute action")
+#define RID_CUISTR_EVENT_AFTERUPDATE NC_("RID_SVXSTR_EVENT_AFTERUPDATE", "After updating")
+#define RID_CUISTR_EVENT_BEFOREUPDATE NC_("RID_SVXSTR_EVENT_BEFOREUPDATE", "Before updating")
+#define RID_CUISTR_EVENT_APPROVEROWCHANGE NC_("RID_SVXSTR_EVENT_APPROVEROWCHANGE", "Before record action")
+#define RID_CUISTR_EVENT_ROWCHANGE NC_("RID_SVXSTR_EVENT_ROWCHANGE", "After record action")
+#define RID_CUISTR_EVENT_CONFIRMDELETE NC_("RID_SVXSTR_EVENT_CONFIRMDELETE", "Confirm deletion")
+#define RID_CUISTR_EVENT_ERROROCCURRED NC_("RID_SVXSTR_EVENT_ERROROCCURRED", "Error occurred")
+#define RID_CUISTR_EVENT_ADJUSTMENTVALUECHANGED NC_("RID_SVXSTR_EVENT_ADJUSTMENTVALUECHANGED", "While adjusting")
+#define RID_CUISTR_EVENT_FOCUSGAINED NC_("RID_SVXSTR_EVENT_FOCUSGAINED", "When receiving focus")
+#define RID_CUISTR_EVENT_FOCUSLOST NC_("RID_SVXSTR_EVENT_FOCUSLOST", "When losing focus")
+#define RID_CUISTR_EVENT_ITEMSTATECHANGED NC_("RID_SVXSTR_EVENT_ITEMSTATECHANGED", "Item status changed")
+#define RID_CUISTR_EVENT_KEYTYPED NC_("RID_SVXSTR_EVENT_KEYTYPED", "Key pressed")
+#define RID_CUISTR_EVENT_KEYUP NC_("RID_SVXSTR_EVENT_KEYUP", "Key released")
+#define RID_CUISTR_EVENT_LOADED NC_("RID_SVXSTR_EVENT_LOADED", "When loading")
+#define RID_CUISTR_EVENT_RELOADING NC_("RID_SVXSTR_EVENT_RELOADING", "Before reloading")
+#define RID_CUISTR_EVENT_RELOADED NC_("RID_SVXSTR_EVENT_RELOADED", "When reloading")
+#define RID_CUISTR_EVENT_MOUSEDRAGGED NC_("RID_SVXSTR_EVENT_MOUSEDRAGGED", "Mouse moved while key pressed")
+#define RID_CUISTR_EVENT_MOUSEENTERED NC_("RID_SVXSTR_EVENT_MOUSEENTERED", "Mouse inside")
+#define RID_CUISTR_EVENT_MOUSEEXITED NC_("RID_SVXSTR_EVENT_MOUSEEXITED", "Mouse outside")
+#define RID_CUISTR_EVENT_MOUSEMOVED NC_("RID_SVXSTR_EVENT_MOUSEMOVED", "Mouse moved")
+#define RID_CUISTR_EVENT_MOUSEPRESSED NC_("RID_SVXSTR_EVENT_MOUSEPRESSED", "Mouse button pressed")
+#define RID_CUISTR_EVENT_MOUSERELEASED NC_("RID_SVXSTR_EVENT_MOUSERELEASED", "Mouse button released")
+#define RID_CUISTR_EVENT_POSITIONING NC_("RID_SVXSTR_EVENT_POSITIONING", "Before record change")
+#define RID_CUISTR_EVENT_POSITIONED NC_("RID_SVXSTR_EVENT_POSITIONED", "After record change")
+#define RID_CUISTR_EVENT_RESETTED NC_("RID_SVXSTR_EVENT_RESETTED", "After resetting")
+#define RID_CUISTR_EVENT_APPROVERESETTED NC_("RID_SVXSTR_EVENT_APPROVERESETTED", "Prior to reset")
+#define RID_CUISTR_EVENT_APPROVEACTIONPERFORMED NC_("RID_SVXSTR_EVENT_APPROVEACTIONPERFORMED", "Approve action")
+#define RID_CUISTR_EVENT_SUBMITTED NC_("RID_SVXSTR_EVENT_SUBMITTED", "Before submitting")
+#define RID_CUISTR_EVENT_TEXTCHANGED NC_("RID_SVXSTR_EVENT_TEXTCHANGED", "Text modified")
+#define RID_CUISTR_EVENT_UNLOADING NC_("RID_SVXSTR_EVENT_UNLOADING", "Before unloading")
+#define RID_CUISTR_EVENT_UNLOADED NC_("RID_SVXSTR_EVENT_UNLOADED", "When unloading")
+#define RID_CUISTR_EVENT_CHANGED NC_("RID_SVXSTR_EVENT_CHANGED", "Changed")
+#define RID_CUISTR_EVENT_CREATEDOC NC_("RID_SVXSTR_EVENT_CREATEDOC", "Document created")
+#define RID_CUISTR_EVENT_LOADDOCFINISHED NC_("RID_SVXSTR_EVENT_LOADDOCFINISHED", "Document loading finished")
+#define RID_CUISTR_EVENT_SAVEDOCFAILED NC_("RID_SVXSTR_EVENT_SAVEDOCFAILED", "Saving of document failed")
+#define RID_CUISTR_EVENT_SAVEASDOCFAILED NC_("RID_SVXSTR_EVENT_SAVEASDOCFAILED", "'Save as' has failed")
+#define RID_CUISTR_EVENT_COPYTODOC NC_("RID_SVXSTR_EVENT_COPYTODOC", "Storing or exporting copy of document")
+#define RID_CUISTR_EVENT_COPYTODOCDONE NC_("RID_SVXSTR_EVENT_COPYTODOCDONE", "Document copy has been created")
+#define RID_CUISTR_EVENT_COPYTODOCFAILED NC_("RID_SVXSTR_EVENT_COPYTODOCFAILED", "Creating of document copy failed")
+#define RID_CUISTR_EVENT_VIEWCREATED NC_("RID_SVXSTR_EVENT_VIEWCREATED", "View created")
+#define RID_CUISTR_EVENT_PREPARECLOSEVIEW NC_("RID_SVXSTR_EVENT_PREPARECLOSEVIEW", "View is going to be closed")
+#define RID_CUISTR_EVENT_CLOSEVIEW NC_("RID_SVXSTR_EVENT_CLOSEVIEW", "View closed")
+#define RID_CUISTR_EVENT_TITLECHANGED NC_("RID_SVXSTR_EVENT_TITLECHANGED", "Document title changed")
+#define RID_CUISTR_EVENT_SELECTIONCHANGED NC_("RID_SVXSTR_EVENT_SELECTIONCHANGED", "Selection changed")
+#define RID_CUISTR_EVENT_DOUBLECLICK NC_("RID_SVXSTR_EVENT_DOUBLECLICK", "Double click")
+#define RID_CUISTR_EVENT_RIGHTCLICK NC_("RID_SVXSTR_EVENT_RIGHTCLICK", "Right click")
+#define RID_CUISTR_EVENT_CALCULATE NC_("RID_SVXSTR_EVENT_CALCULATE", "Formulas calculated")
+#define RID_CUISTR_EVENT_CONTENTCHANGED NC_("RID_SVXSTR_EVENT_CONTENTCHANGED", "Content changed")
#define RID_STR_SEARCH_ANYWHERE NC_("RID_STR_SEARCH_ANYWHERE", "anywhere in the field")
#define RID_STR_SEARCH_BEGINNING NC_("RID_STR_SEARCH_BEGINNING", "beginning of field")
@@ -198,23 +182,23 @@
#define RID_STR_OVERFLOW_BACKWARD NC_("RID_STR_OVERFLOW_BACKWARD", "Overflow, search continued at the end")
#define RID_STR_SEARCH_COUNTING NC_("RID_STR_SEARCH_COUNTING", "counting records")
-#define RID_SVXSTR_GALLERY_NOFILES NC_("RID_SVXSTR_GALLERY_NOFILES", "<No Files>")
-#define RID_SVXSTR_GALLERYPROPS_OBJECT NC_("RID_SVXSTR_GALLERYPROPS_OBJECT", "Object;Objects")
-#define RID_SVXSTR_GALLERY_READONLY NC_("RID_SVXSTR_GALLERY_READONLY", "(read-only)")
-#define RID_SVXSTR_GALLERY_ALLFILES NC_("RID_SVXSTR_GALLERY_ALLFILES", "<All Files>")
-#define RID_SVXSTR_GALLERY_ID_EXISTS NC_("RID_SVXSTR_GALLERY_ID_EXISTS", "This ID already exists...")
+#define RID_CUISTR_GALLERY_NOFILES NC_("RID_SVXSTR_GALLERY_NOFILES", "<No Files>")
+#define RID_CUISTR_GALLERYPROPS_OBJECT NC_("RID_SVXSTR_GALLERYPROPS_OBJECT", "Object;Objects")
+#define RID_CUISTR_GALLERY_READONLY NC_("RID_SVXSTR_GALLERY_READONLY", "(read-only)")
+#define RID_CUISTR_GALLERY_ALLFILES NC_("RID_SVXSTR_GALLERY_ALLFILES", "<All Files>")
+#define RID_CUISTR_GALLERY_ID_EXISTS NC_("RID_SVXSTR_GALLERY_ID_EXISTS", "This ID already exists...")
#define RID_MULTIPATH_DBL_ERR NC_("RID_MULTIPATH_DBL_ERR", "The path %1 already exists.")
-#define RID_SVXSTR_ARCHIVE_TITLE NC_("RID_SVXSTR_ARCHIVE_TITLE", "Select Archives")
-#define RID_SVXSTR_ARCHIVE_HEADLINE NC_("RID_SVXSTR_ARCHIVE_HEADLINE", "Archives")
-#define RID_SVXSTR_MULTIFILE_DBL_ERR NC_("RID_SVXSTR_MULTIFILE_DBL_ERR", "The file %1 already exists.")
-#define RID_SVXSTR_ADD_IMAGE NC_("RID_SVXSTR_ADD_IMAGE", "Add Image")
+#define RID_CUISTR_ARCHIVE_TITLE NC_("RID_SVXSTR_ARCHIVE_TITLE", "Select Archives")
+#define RID_CUISTR_ARCHIVE_HEADLINE NC_("RID_SVXSTR_ARCHIVE_HEADLINE", "Archives")
+#define RID_CUISTR_MULTIFILE_DBL_ERR NC_("RID_SVXSTR_MULTIFILE_DBL_ERR", "The file %1 already exists.")
+#define RID_CUISTR_ADD_IMAGE NC_("RID_SVXSTR_ADD_IMAGE", "Add Image")
-#define RID_SVXSTR_ONE_PASSWORD_MISMATCH NC_("RID_SVXSTR_ONE_PASSWORD_MISMATCH", "The confirmation password did not match the password. Set the password again by entering the same password in both boxes.")
-#define RID_SVXSTR_TWO_PASSWORDS_MISMATCH NC_("RID_SVXSTR_TWO_PASSWORDS_MISMATCH", "The confirmation passwords did not match the original passwords. Set the passwords again.")
-#define RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON NC_("RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON", "Please enter a password to open or to modify, or check the open read-only option to continue.")
-#define RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON_V2 NC_("RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON_V2", "Set the password by entering the same password in both boxes.")
-#define RID_SVXSTR_PASSWORD_LEN_INDICATOR NC_("RID_SVXSTR_PASSWORD_LEN_INDICATOR", "Password length limit of %1 reached")
+#define RID_CUISTR_ONE_PASSWORD_MISMATCH NC_("RID_SVXSTR_ONE_PASSWORD_MISMATCH", "The confirmation password did not match the password. Set the password again by entering the same password in both boxes.")
+#define RID_CUISTR_TWO_PASSWORDS_MISMATCH NC_("RID_SVXSTR_TWO_PASSWORDS_MISMATCH", "The confirmation passwords did not match the original passwords. Set the passwords again.")
+#define RID_CUISTR_INVALID_STATE_FOR_OK_BUTTON NC_("RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON", "Please enter a password to open or to modify, or check the open read-only option to continue.")
+#define RID_CUISTR_INVALID_STATE_FOR_OK_BUTTON_V2 NC_("RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON_V2", "Set the password by entering the same password in both boxes.")
+#define RID_CUISTR_PASSWORD_LEN_INDICATOR NC_("RID_SVXSTR_PASSWORD_LEN_INDICATOR", "Password length limit of %1 reached")
#define STR_AUTOLINK NC_("STR_AUTOLINK", "Automatic")
#define STR_MANUALLINK NC_("STR_MANUALLINK", "Manual")
@@ -223,48 +207,48 @@
#define STR_CLOSELINKMSG_MULTI NC_("STR_CLOSELINKMSG_MULTI", "Are you sure you want to remove the selected link?")
#define STR_WAITINGLINK NC_("STR_WAITINGLINK", "Waiting")
-#define RID_SVXSTR_SAVE_SCREENSHOT_AS NC_("RID_SVXSTR_SAVE_SCREENSHOT_AS", "Save Screenshot As...")
+#define RID_CUISTR_SAVE_SCREENSHOT_AS NC_("RID_SVXSTR_SAVE_SCREENSHOT_AS", "Save Screenshot As...")
// $(ROW) can be a number or the caption of the row in quotes
-#define RID_SVXSTR_DIAGRAM_ROW NC_("RID_SVXSTR_DIAGRAM_ROW", "Data Series $(ROW)")
+#define RID_CUISTR_DIAGRAM_ROW NC_("RID_SVXSTR_DIAGRAM_ROW", "Data Series $(ROW)")
-#define RID_SVXSTR_YES NC_("RID_SVXSTR_YES", "Yes")
-#define RID_SVXSTR_NO NC_("RID_SVXSTR_NO", "No")
+#define RID_CUISTR_YES NC_("RID_SVXSTR_YES", "Yes")
+#define RID_CUISTR_NO NC_("RID_SVXSTR_NO", "No")
#define STR_LINKEDDOC_DOESNOTEXIST NC_("STR_LINKEDDOC_DOESNOTEXIST", "The file\n$file$\ndoes not exist.")
#define STR_LINKEDDOC_NO_SYSTEM_FILE NC_("STR_LINKEDDOC_NO_SYSTEM_FILE", "The file\n$file$\ndoes not exist in the local file system.")
#define STR_NAME_CONFLICT NC_("STR_NAME_CONFLICT", "The name '$file$' is already used for another database.\nPlease choose a different name.")
-#define RID_SVXSTR_QUERY_DELETE_CONFIRM NC_("RID_SVXSTR_QUERY_DELETE_CONFIRM", "Do you want to delete the entry?")
-
-#define RID_SVXSTR_DELQUERY NC_("RID_SVXSTR_DELQUERY", "Do you want to delete the following object?")
-#define RID_SVXSTR_DELQUERY_TITLE NC_("RID_SVXSTR_DELQUERY_TITLE", "Confirm Deletion")
-#define RID_SVXSTR_DELFAILED NC_("RID_SVXSTR_DELFAILED", "The selected object could not be deleted.")
-#define RID_SVXSTR_DELFAILED_TITLE NC_("RID_SVXSTR_DELFAILED_TITLE", "Error Deleting Object")
-#define RID_SVXSTR_CREATEFAILED NC_("RID_SVXSTR_CREATEFAILED", "The object could not be created.")
-#define RID_SVXSTR_CREATEFAILEDDUP NC_("RID_SVXSTR_CREATEFAILEDDUP", " Object with the same name already exists.")
-#define RID_SVXSTR_CREATEFAILED_TITLE NC_("RID_SVXSTR_CREATEFAILED_TITLE", "Error Creating Object")
-#define RID_SVXSTR_RENAMEFAILED NC_("RID_SVXSTR_RENAMEFAILED", "The object could not be renamed.")
-#define RID_SVXSTR_RENAMEFAILED_TITLE NC_("RID_SVXSTR_RENAMEFAILED_TITLE", "Error Renaming Object")
-#define RID_SVXSTR_ERROR_TITLE NC_("RID_SVXSTR_ERROR_TITLE", "%PRODUCTNAME Error")
-#define RID_SVXSTR_ERROR_LANG_NOT_SUPPORTED NC_("RID_SVXSTR_ERROR_LANG_NOT_SUPPORTED", "The scripting language %LANGUAGENAME is not supported.")
-#define RID_SVXSTR_ERROR_RUNNING NC_("RID_SVXSTR_ERROR_RUNNING", "An error occurred while running the %LANGUAGENAME script %SCRIPTNAME.")
-#define RID_SVXSTR_EXCEPTION_RUNNING NC_("RID_SVXSTR_EXCEPTION_RUNNING", "An exception occurred while running the %LANGUAGENAME script %SCRIPTNAME.")
-#define RID_SVXSTR_ERROR_AT_LINE NC_("RID_SVXSTR_ERROR_AT_LINE", "An error occurred while running the %LANGUAGENAME script %SCRIPTNAME at line: %LINENUMBER.")
-#define RID_SVXSTR_EXCEPTION_AT_LINE NC_("RID_SVXSTR_EXCEPTION_AT_LINE", "An exception occurred while running the %LANGUAGENAME script %SCRIPTNAME at line: %LINENUMBER.")
-#define RID_SVXSTR_FRAMEWORK_ERROR_RUNNING NC_("RID_SVXSTR_FRAMEWORK_ERROR_RUNNING", "A Scripting Framework error occurred while running the %LANGUAGENAME script %SCRIPTNAME.")
-#define RID_SVXSTR_ERROR_TYPE_LABEL NC_("RID_SVXSTR_ERROR_TYPE_LABEL", "Type:")
-#define RID_SVXSTR_ERROR_MESSAGE_LABEL NC_("RID_SVXSTR_ERROR_MESSAGE_LABEL", "Message:")
-
-#define RID_SVXSTR_CHG_MATH NC_("RID_SVXSTR_CHG_MATH", "MathType to %PRODUCTNAME Math or reverse")
-#define RID_SVXSTR_CHG_WRITER NC_("RID_SVXSTR_CHG_WRITER", "WinWord to %PRODUCTNAME Writer or reverse")
-#define RID_SVXSTR_CHG_CALC NC_("RID_SVXSTR_CHG_CALC", "Excel to %PRODUCTNAME Calc or reverse")
-#define RID_SVXSTR_CHG_IMPRESS NC_("RID_SVXSTR_CHG_IMPRESS", "PowerPoint to %PRODUCTNAME Impress or reverse")
-#define RID_SVXSTR_CHG_SMARTART NC_("RID_SVXSTR_CHG_SMARTART", "SmartArt to %PRODUCTNAME shapes or reverse")
-#define RID_SVXSTR_CHG_VISIO NC_("RID_SVXSTR_CHG_VISIO", "Visio to %PRODUCTNAME Draw or reverse")
-#define RID_SVXSTR_CHG_PDF NC_("RID_SVXSTR_CHG_PDF", "PDF to %PRODUCTNAME Draw or reverse")
-
-#define RID_SVXSTR_OPT_DOUBLE_DICTS NC_("RID_SVXSTR_OPT_DOUBLE_DICTS", "The specified name already exists.\nPlease enter a new name.")
-#define RID_SVXSTR_OPT_INVALID_DICT_NAME NC_("RID_SVXSTR_OPT_INVALID_DICT_NAME", "The specified name is invalid.\nPlease enter a new name.")
+#define RID_CUISTR_QUERY_DELETE_CONFIRM NC_("RID_SVXSTR_QUERY_DELETE_CONFIRM", "Do you want to delete the entry?")
+
+#define RID_CUISTR_DELQUERY NC_("RID_SVXSTR_DELQUERY", "Do you want to delete the following object?")
+#define RID_CUISTR_DELQUERY_TITLE NC_("RID_SVXSTR_DELQUERY_TITLE", "Confirm Deletion")
+#define RID_CUISTR_DELFAILED NC_("RID_SVXSTR_DELFAILED", "The selected object could not be deleted.")
+#define RID_CUISTR_DELFAILED_TITLE NC_("RID_SVXSTR_DELFAILED_TITLE", "Error Deleting Object")
+#define RID_CUISTR_CREATEFAILED NC_("RID_SVXSTR_CREATEFAILED", "The object could not be created.")
+#define RID_CUISTR_CREATEFAILEDDUP NC_("RID_SVXSTR_CREATEFAILEDDUP", " Object with the same name already exists.")
+#define RID_CUISTR_CREATEFAILED_TITLE NC_("RID_SVXSTR_CREATEFAILED_TITLE", "Error Creating Object")
+#define RID_CUISTR_RENAMEFAILED NC_("RID_SVXSTR_RENAMEFAILED", "The object could not be renamed.")
+#define RID_CUISTR_RENAMEFAILED_TITLE NC_("RID_SVXSTR_RENAMEFAILED_TITLE", "Error Renaming Object")
+#define RID_CUISTR_ERROR_TITLE NC_("RID_SVXSTR_ERROR_TITLE", "%PRODUCTNAME Error")
+#define RID_CUISTR_ERROR_LANG_NOT_SUPPORTED NC_("RID_SVXSTR_ERROR_LANG_NOT_SUPPORTED", "The scripting language %LANGUAGENAME is not supported.")
+#define RID_CUISTR_ERROR_RUNNING NC_("RID_SVXSTR_ERROR_RUNNING", "An error occurred while running the %LANGUAGENAME script %SCRIPTNAME.")
+#define RID_CUISTR_EXCEPTION_RUNNING NC_("RID_SVXSTR_EXCEPTION_RUNNING", "An exception occurred while running the %LANGUAGENAME script %SCRIPTNAME.")
+#define RID_CUISTR_ERROR_AT_LINE NC_("RID_SVXSTR_ERROR_AT_LINE", "An error occurred while running the %LANGUAGENAME script %SCRIPTNAME at line: %LINENUMBER.")
+#define RID_CUISTR_EXCEPTION_AT_LINE NC_("RID_SVXSTR_EXCEPTION_AT_LINE", "An exception occurred while running the %LANGUAGENAME script %SCRIPTNAME at line: %LINENUMBER.")
+#define RID_CUISTR_FRAMEWORK_ERROR_RUNNING NC_("RID_SVXSTR_FRAMEWORK_ERROR_RUNNING", "A Scripting Framework error occurred while running the %LANGUAGENAME script %SCRIPTNAME.")
+#define RID_CUISTR_ERROR_TYPE_LABEL NC_("RID_SVXSTR_ERROR_TYPE_LABEL", "Type:")
+#define RID_CUISTR_ERROR_MESSAGE_LABEL NC_("RID_SVXSTR_ERROR_MESSAGE_LABEL", "Message:")
+
+#define RID_CUISTR_CHG_MATH NC_("RID_SVXSTR_CHG_MATH", "MathType to %PRODUCTNAME Math or reverse")
+#define RID_CUISTR_CHG_WRITER NC_("RID_SVXSTR_CHG_WRITER", "WinWord to %PRODUCTNAME Writer or reverse")
+#define RID_CUISTR_CHG_CALC NC_("RID_SVXSTR_CHG_CALC", "Excel to %PRODUCTNAME Calc or reverse")
+#define RID_CUISTR_CHG_IMPRESS NC_("RID_SVXSTR_CHG_IMPRESS", "PowerPoint to %PRODUCTNAME Impress or reverse")
+#define RID_CUISTR_CHG_SMARTART NC_("RID_SVXSTR_CHG_SMARTART", "SmartArt to %PRODUCTNAME shapes or reverse")
+#define RID_CUISTR_CHG_VISIO NC_("RID_SVXSTR_CHG_VISIO", "Visio to %PRODUCTNAME Draw or reverse")
+#define RID_CUISTR_CHG_PDF NC_("RID_SVXSTR_CHG_PDF", "PDF to %PRODUCTNAME Draw or reverse")
+
+#define RID_CUISTR_OPT_DOUBLE_DICTS NC_("RID_SVXSTR_OPT_DOUBLE_DICTS", "The specified name already exists.\nPlease enter a new name.")
+#define RID_CUISTR_OPT_INVALID_DICT_NAME NC_("RID_SVXSTR_OPT_INVALID_DICT_NAME", "The specified name is invalid.\nPlease enter a new name.")
/* To translators:
Please, try to find a similar *short* translation to avoid
to get narrow "New" field in the "Edit custom dictionary" window,
@@ -279,121 +263,142 @@
word "crowdfund", the spell checker will recognize "crowdfund"
with suffixes of "fund": "crowdfunding", "crowdfund's" etc.
*/
-#define RID_SVXSTR_OPT_GRAMMAR_BY NC_("RID_SVXSTR_OPT_GRAMMAR_BY", "~Grammar By")
+#define RID_CUISTR_OPT_GRAMMAR_BY NC_("RID_SVXSTR_OPT_GRAMMAR_BY", "~Grammar By")
#define STR_MODIFY NC_("STR_MODIFY", "~Replace")
-#define RID_SVXSTR_CONFIRM_SET_LANGUAGE NC_("RID_SVXSTR_CONFIRM_SET_LANGUAGE", "Do you want to change the '%1' dictionary language?")
-
-#define RID_SVXSTR_COLOR_CONFIG_DELETE NC_("RID_SVXSTR_COLOR_CONFIG_DELETE", "Do you really want to delete the color scheme?")
-#define RID_SVXSTR_COLOR_CONFIG_DELETE_TITLE NC_("RID_SVXSTR_COLOR_CONFIG_DELETE_TITLE", "Color Scheme Deletion")
-#define RID_SVXSTR_COLOR_CONFIG_SAVE1 NC_("RID_SVXSTR_COLOR_CONFIG_SAVE1", "Save scheme")
-#define RID_SVXSTR_COLOR_CONFIG_SAVE2 NC_("RID_SVXSTR_COLOR_CONFIG_SAVE2", "Name of color scheme")
-
-#define RID_SVXSTR_SPELL NC_("RID_SVXSTR_SPELL", "Spelling")
-#define RID_SVXSTR_HYPH NC_("RID_SVXSTR_HYPH", "Hyphenation")
-#define RID_SVXSTR_THES NC_("RID_SVXSTR_THES", "Thesaurus")
-#define RID_SVXSTR_GRAMMAR NC_("RID_SVXSTR_GRAMMAR", "Grammar")
-#define RID_SVXSTR_CAPITAL_WORDS NC_("RID_SVXSTR_CAPITAL_WORDS", "Check uppercase words")
-#define RID_SVXSTR_WORDS_WITH_DIGITS NC_("RID_SVXSTR_WORDS_WITH_DIGITS", "Check words with numbers ")
-#define RID_SVXSTR_SPELL_SPECIAL NC_("RID_SVXSTR_SPELL_SPECIAL", "Check special regions")
-#define RID_SVXSTR_SPELL_AUTO NC_("RID_SVXSTR_SPELL_AUTO", "Check spelling as you type")
-#define RID_SVXSTR_GRAMMAR_AUTO NC_("RID_SVXSTR_GRAMMAR_AUTO", "Check grammar as you type")
-#define RID_SVXSTR_NUM_MIN_WORDLEN NC_("RID_SVXSTR_NUM_MIN_WORDLEN", "Minimal number of characters for hyphenation: ")
-#define RID_SVXSTR_NUM_PRE_BREAK NC_("RID_SVXSTR_NUM_PRE_BREAK", "Characters before line break: ")
-#define RID_SVXSTR_NUM_POST_BREAK NC_("RID_SVXSTR_NUM_POST_BREAK", "Characters after line break: ")
-#define RID_SVXSTR_HYPH_AUTO NC_("RID_SVXSTR_HYPH_AUTO", "Hyphenate without inquiry")
-#define RID_SVXSTR_HYPH_SPECIAL NC_("RID_SVXSTR_HYPH_SPECIAL", "Hyphenate special regions")
-
-#define RID_SVXSTR_JRE_NOT_RECOGNIZED NC_("RID_SVXSTR_JRE_NOT_RECOGNIZED", "The folder you selected does not contain a Java runtime environment.\nPlease select a different folder.")
-#define RID_SVXSTR_JRE_FAILED_VERSION NC_("RID_SVXSTR_JRE_FAILED_VERSION", "The Java runtime environment you selected is not the required version.\nPlease select a different folder.")
-#define RID_SVXSTR_JAVA_START_PARAM NC_("RID_SVXSTR_JAVA_START_PARAM", "Edit Parameter")
-
-#define RID_SVXSTR_OPT_PROXYPORTS NC_("RID_SVXSTR_OPT_PROXYPORTS", "Invalid value!\n\nThe maximum value for a port number is 65535.")
-
-#define RID_SVXSTR_DESC_GRADIENT NC_("RID_SVXSTR_DESC_GRADIENT", "Please enter a name for the gradient:")
-#define RID_SVXSTR_DESC_NEW_BITMAP NC_("RID_SVXSTR_DESC_NEW_BITMAP", "Please enter a name for the bitmap:")
-#define RID_SVXSTR_DESC_EXT_BITMAP NC_("RID_SVXSTR_DESC_EXT_BITMAP", "Please enter a name for the external bitmap:")
-#define RID_SVXSTR_DESC_NEW_PATTERN NC_("RID_SVXSTR_DESC_NEW_PATTERN", "Please enter a name for the pattern:")
-#define RID_SVXSTR_DESC_LINESTYLE NC_("RID_SVXSTR_DESC_LINESTYLE", "Please enter a name for the line style:")
-#define RID_SVXSTR_ASK_CHANGE_LINESTYLE NC_("RID_SVXSTR_ASK_CHANGE_LINESTYLE", "The line style was modified without saving. \nModify the selected line style or add a new line style.")
-#define RID_SVXSTR_DESC_HATCH NC_("RID_SVXSTR_DESC_HATCH", "Please enter a name for the hatching:")
-#define RID_SVXSTR_CHANGE NC_("RID_SVXSTR_CHANGE", "Modify")
-#define RID_SVXSTR_ADD NC_("RID_SVXSTR_ADD", "Add")
-#define RID_SVXSTR_DESC_COLOR NC_("RID_SVXSTR_DESC_COLOR", "Please enter a name for the new color:")
-#define RID_SVXSTR_TABLE NC_("RID_SVXSTR_TABLE", "Table")
-#define RID_SVXSTR_DESC_LINEEND NC_("RID_SVXSTR_DESC_LINEEND", "Please enter a name for the new arrowhead:")
-#define RID_SVXSTR_CHARNAME_NOSTYLE NC_("RID_SVXSTR_CHARNAME_NOSTYLE", "No %1")
-#define RID_SVXSTR_CHARNAME_FAMILY NC_("RID_SVXSTR_CHARNAME_FAMILY", "Family:")
-#define RID_SVXSTR_CHARNAME_FONT NC_("RID_SVXSTR_CHARNAME_FONT", "Font:")
-#define RID_SVXSTR_CHARNAME_STYLE NC_("RID_SVXSTR_CHARNAME_STYLE", "Style:")
-#define RID_SVXSTR_CHARNAME_TYPEFACE NC_("RID_SVXSTR_CHARNAME_TYPEFACE", "Typeface:")
-#define RID_SVXSTR_USE_REPLACE NC_("RID_SVXSTR_USE_REPLACE", "Use replacement table")
-#define RID_SVXSTR_CPTL_STT_WORD NC_("RID_SVXSTR_CPTL_STT_WORD", "Correct TWo INitial CApitals")
-#define RID_SVXSTR_CPTL_STT_SENT NC_("RID_SVXSTR_CPTL_STT_SENT", "Capitalize first letter of every sentence")
-#define RID_SVXSTR_BOLD_UNDER NC_("RID_SVXSTR_BOLD_UNDER", "Automatic *bold*, /italic/, -strikeout- and _underline_")
-#define RID_SVXSTR_NO_DBL_SPACES NC_("RID_SVXSTR_NO_DBL_SPACES", "Ignore double spaces")
-#define RID_SVXSTR_DETECT_URL NC_("RID_SVXSTR_DETECT_URL", "URL Recognition")
-#define RID_SVXSTR_DASH NC_("RID_SVXSTR_DASH", "Replace dashes")
-#define RID_SVXSTR_CORRECT_ACCIDENTAL_CAPS_LOCK NC_("RID_SVXSTR_CORRECT_ACCIDENTAL_CAPS_LOCK", "Correct accidental use of cAPS LOCK key")
-#define RID_SVXSTR_NON_BREAK_SPACE NC_("RID_SVXSTR_NON_BREAK_SPACE", "Add non-breaking space before specific punctuation marks in French text")
-#define RID_SVXSTR_ORDINAL NC_("RID_SVXSTR_ORDINAL", "Format ordinal numbers suffixes (1st -> 1^st)")
-#define RID_SVXSTR_OLD_HUNGARIAN NC_("RID_SVXSTR_OLD_HUNGARIAN", "Transliterate to Old Hungarian if the text direction is from right to left")
-#define RID_SVXSTR_ANGLE_QUOTES NC_("RID_SVXSTR_ANGLE_QUOTES", "Replace << and >> with angle quotes")
-#define RID_SVXSTR_DEL_EMPTY_PARA NC_("RID_SVXSTR_DEL_EMPTY_PARA", "Remove blank paragraphs")
-#define RID_SVXSTR_USER_STYLE NC_("RID_SVXSTR_USER_STYLE", "Replace Custom Styles")
-#define RID_SVXSTR_BULLET NC_("RID_SVXSTR_BULLET", "Replace bullets with: %1")
+#define RID_CUISTR_CONFIRM_SET_LANGUAGE NC_("RID_SVXSTR_CONFIRM_SET_LANGUAGE", "Do you want to change the '%1' dictionary language?")
+
+#define RID_CUISTR_COLOR_CONFIG_DELETE NC_("RID_SVXSTR_COLOR_CONFIG_DELETE", "Do you really want to delete the color scheme?")
+#define RID_CUISTR_COLOR_CONFIG_DELETE_TITLE NC_("RID_SVXSTR_COLOR_CONFIG_DELETE_TITLE", "Color Scheme Deletion")
+#define RID_CUISTR_COLOR_CONFIG_SAVE1 NC_("RID_SVXSTR_COLOR_CONFIG_SAVE1", "Save scheme")
+#define RID_CUISTR_COLOR_CONFIG_SAVE2 NC_("RID_SVXSTR_COLOR_CONFIG_SAVE2", "Name of color scheme")
+
+#define RID_CUISTR_SPELL NC_("RID_SVXSTR_SPELL", "Spelling")
+#define RID_CUISTR_HYPH NC_("RID_SVXSTR_HYPH", "Hyphenation")
+#define RID_CUISTR_THES NC_("RID_SVXSTR_THES", "Thesaurus")
+#define RID_CUISTR_GRAMMAR NC_("RID_SVXSTR_GRAMMAR", "Grammar")
+#define RID_CUISTR_CAPITAL_WORDS NC_("RID_SVXSTR_CAPITAL_WORDS", "Check uppercase words")
+#define RID_CUISTR_WORDS_WITH_DIGITS NC_("RID_SVXSTR_WORDS_WITH_DIGITS", "Check words with numbers ")
+#define RID_CUISTR_SPELL_SPECIAL NC_("RID_SVXSTR_SPELL_SPECIAL", "Check special regions")
+#define RID_CUISTR_SPELL_CLOSED_COMPOUND NC_("RID_SVXSTR_SPELL_CLOSED_COMPOUND", "Accept possible closed compound words")
+#define RID_CUISTR_SPELL_HYPHENATED_COMPOUND NC_("RID_SVXSTR_SPELL_HYPHENATED_COMPOUND", "Accept possible hyphenated compound words")
+#define RID_CUISTR_SPELL_AUTO NC_("RID_SVXSTR_SPELL_AUTO", "Check spelling as you type")
+#define RID_CUISTR_GRAMMAR_AUTO NC_("RID_SVXSTR_GRAMMAR_AUTO", "Check grammar as you type")
+#define RID_CUISTR_NUM_MIN_WORDLEN NC_("RID_SVXSTR_NUM_MIN_WORDLEN", "Minimal number of characters for hyphenation: ")
+#define RID_CUISTR_NUM_PRE_BREAK NC_("RID_SVXSTR_NUM_PRE_BREAK", "Characters before line break: ")
+#define RID_CUISTR_NUM_POST_BREAK NC_("RID_SVXSTR_NUM_POST_BREAK", "Characters after line break: ")
+#define RID_CUISTR_HYPH_AUTO NC_("RID_SVXSTR_HYPH_AUTO", "Hyphenate without inquiry")
+#define RID_CUISTR_HYPH_SPECIAL NC_("RID_SVXSTR_HYPH_SPECIAL", "Hyphenate special regions")
+
+#define RID_CUISTR_JRE_NOT_RECOGNIZED NC_("RID_SVXSTR_JRE_NOT_RECOGNIZED", "The folder you selected does not contain a Java runtime environment.\nPlease select a different folder.")
+#define RID_CUISTR_JRE_FAILED_VERSION NC_("RID_SVXSTR_JRE_FAILED_VERSION", "The Java runtime environment you selected is not the required version.\nPlease select a different folder.")
+#define RID_CUISTR_JAVA_START_PARAM NC_("RID_SVXSTR_JAVA_START_PARAM", "Edit Parameter")
+
+#define RID_CUISTR_OPT_PROXYPORTS NC_("RID_SVXSTR_OPT_PROXYPORTS", "Invalid value!\n\nThe maximum value for a port number is 65535.")
+
+#define RID_CUISTR_DESC_GRADIENT NC_("RID_SVXSTR_DESC_GRADIENT", "Please enter a name for the gradient:")
+#define RID_CUISTR_DESC_NEW_BITMAP NC_("RID_SVXSTR_DESC_NEW_BITMAP", "Please enter a name for the bitmap:")
+#define RID_CUISTR_DESC_EXT_BITMAP NC_("RID_SVXSTR_DESC_EXT_BITMAP", "Please enter a name for the external bitmap:")
+#define RID_CUISTR_DESC_NEW_PATTERN NC_("RID_SVXSTR_DESC_NEW_PATTERN", "Please enter a name for the pattern:")
+#define RID_CUISTR_DESC_LINESTYLE NC_("RID_SVXSTR_DESC_LINESTYLE", "Please enter a name for the line style:")
+#define RID_CUISTR_ASK_CHANGE_LINESTYLE NC_("RID_SVXSTR_ASK_CHANGE_LINESTYLE", "The line style was modified without saving. \nModify the selected line style or add a new line style.")
+#define RID_CUISTR_DESC_HATCH NC_("RID_SVXSTR_DESC_HATCH", "Please enter a name for the hatching:")
+#define RID_CUISTR_CHANGE NC_("RID_SVXSTR_CHANGE", "Modify")
+#define RID_CUISTR_ADD NC_("RID_SVXSTR_ADD", "Add")
+#define RID_CUISTR_DESC_COLOR NC_("RID_SVXSTR_DESC_COLOR", "Please enter a name for the new color:")
+#define RID_CUISTR_TABLE NC_("RID_SVXSTR_TABLE", "Table")
+#define RID_CUISTR_DESC_LINEEND NC_("RID_SVXSTR_DESC_LINEEND", "Please enter a name for the new arrow style:")
+#define RID_CUISTR_CHARNAME_NOSTYLE NC_("RID_SVXSTR_CHARNAME_NOSTYLE", "No %1")
+#define RID_CUISTR_CHARNAME_FAMILY NC_("RID_SVXSTR_CHARNAME_FAMILY", "Family:")
+#define RID_CUISTR_CHARNAME_FONT NC_("RID_SVXSTR_CHARNAME_FONT", "Font:")
+#define RID_CUISTR_CHARNAME_STYLE NC_("RID_SVXSTR_CHARNAME_STYLE", "Style:")
+#define RID_CUISTR_CHARNAME_TYPEFACE NC_("RID_SVXSTR_CHARNAME_TYPEFACE", "Typeface:")
+#define RID_CUISTR_USE_REPLACE NC_("RID_SVXSTR_USE_REPLACE", "Use replacement table")
+#define RID_CUISTR_CPTL_STT_WORD NC_("RID_SVXSTR_CPTL_STT_WORD", "Correct TWo INitial CApitals")
+#define RID_CUISTR_CPTL_STT_SENT NC_("RID_SVXSTR_CPTL_STT_SENT", "Capitalize first letter of every sentence")
+#define RID_CUISTR_BOLD_UNDER NC_("RID_SVXSTR_BOLD_UNDER", "Automatic *bold*, /italic/, -strikeout- and _underline_")
+#define RID_CUISTR_NO_DBL_SPACES NC_("RID_SVXSTR_NO_DBL_SPACES", "Ignore double spaces")
+#define RID_CUISTR_DETECT_URL NC_("RID_SVXSTR_DETECT_URL", "URL Recognition")
+#define RID_CUISTR_DETECT_DOI NC_("RID_SVXSTR_DETECT_DOI", "DOI citation recognition")
+#define RID_CUISTR_DASH NC_("RID_SVXSTR_DASH", "Replace dashes")
+#define RID_CUISTR_CORRECT_ACCIDENTAL_CAPS_LOCK NC_("RID_SVXSTR_CORRECT_ACCIDENTAL_CAPS_LOCK", "Correct accidental use of cAPS LOCK key")
+#define RID_CUISTR_NON_BREAK_SPACE NC_("RID_SVXSTR_NON_BREAK_SPACE", "Add non-breaking space before specific punctuation marks in French text")
+#define RID_CUISTR_ORDINAL NC_("RID_SVXSTR_ORDINAL", "Format ordinal numbers suffixes (1st -> 1^st)")
+#define RID_CUISTR_OLD_HUNGARIAN NC_("RID_SVXSTR_OLD_HUNGARIAN", "Transliterate to Old Hungarian if the text direction is from right to left")
+#define RID_CUISTR_ANGLE_QUOTES NC_("RID_SVXSTR_ANGLE_QUOTES", "Replace two inequality signs (<< or >>) with angle quotes")
+#define RID_CUISTR_DEL_EMPTY_PARA NC_("RID_SVXSTR_DEL_EMPTY_PARA", "Remove blank paragraphs")
+#define RID_CUISTR_USER_STYLE NC_("RID_SVXSTR_USER_STYLE", "Replace Custom Styles")
+#define RID_CUISTR_BULLET NC_("RID_SVXSTR_BULLET", "Replace bullets with: %1")
// To translators: %1 will be replaced with a percentage, e.g. "10%"
-#define RID_SVXSTR_RIGHT_MARGIN NC_("RID_SVXSTR_RIGHT_MARGIN", "Combine single line paragraphs if length greater than %1")
-#define RID_SVXSTR_NUM NC_("RID_SVXSTR_NUM", "Bulleted and numbered lists. Bullet symbol: %1")
-#define RID_SVXSTR_BORDER NC_("RID_SVXSTR_BORDER", "Apply border")
-#define RID_SVXSTR_CREATE_TABLE NC_("RID_SVXSTR_CREATE_TABLE", "Create table")
-#define RID_SVXSTR_REPLACE_TEMPLATES NC_("RID_SVXSTR_REPLACE_TEMPLATES", "Apply Styles")
-#define RID_SVXSTR_DEL_SPACES_AT_STT_END NC_("RID_SVXSTR_DEL_SPACES_AT_STT_END", "Delete spaces and tabs at beginning and end of paragraph")
-#define RID_SVXSTR_DEL_SPACES_BETWEEN_LINES NC_("RID_SVXSTR_DEL_SPACES_BETWEEN_LINES", "Delete spaces and tabs at end and start of line")
-#define RID_SVXSTR_CONNECTOR NC_("RID_SVXSTR_CONNECTOR", "Connector")
-#define RID_SVXSTR_DIMENSION_LINE NC_("RID_SVXSTR_DIMENSION_LINE", "Dimension line")
-#define RID_SVXSTR_STARTQUOTE NC_("RID_SVXSTR_STARTQUOTE", "Start Quote")
-#define RID_SVXSTR_ENDQUOTE NC_("RID_SVXSTR_ENDQUOTE", "End Quote")
-
-#define RID_SVXSTR_SHADOW_STYLE_NONE NC_("RID_SVXSTR_SHADOW_STYLE_NONE", "No Shadow")
-#define RID_SVXSTR_SHADOW_STYLE_BOTTOMRIGHT NC_("RID_SVXSTR_SHADOW_STYLE_BOTTOMRIGHT", "Cast Shadow to Bottom Right")
-#define RID_SVXSTR_SHADOW_STYLE_TOPRIGHT NC_("RID_SVXSTR_SHADOW_STYLE_TOPRIGHT", "Cast Shadow to Top Right")
-#define RID_SVXSTR_SHADOW_STYLE_BOTTOMLEFT NC_("RID_SVXSTR_SHADOW_STYLE_BOTTOMLEFT", "Cast Shadow to Bottom Left")
-#define RID_SVXSTR_SHADOW_STYLE_TOPLEFT NC_("RID_SVXSTR_SHADOW_STYLE_TOPLEFT", "Cast Shadow to Top Left")
-#define RID_SVXSTR_SIGNATURELINE_SIGNED_BY NC_("RID_SVXSTR_SIGNATURELINE_SIGNED_BY", "Signed by: %1")
-
-#define RID_SVXSTR_FILTER_ALL NC_("RID_SVXSTR_FILTER_ALL", "All files")
-
-#define RID_SVXSTR_REGISTERED_DATABASES NC_("RID_SVXSTR_REGISTERED_DATABASES", "Registered Databases")
-
-#define RID_SVXSTR_CANNOTCONVERTURL_ERR NC_("RID_SVXSTR_CANNOTCONVERTURL_ERR", "The URL <%1> cannot be converted to a filesystem path.")
-
-#define RID_SVXSTR_ABOUT_COPYRIGHT NC_("aboutdialog|copyright", "Copyright © 2000–2021 LibreOffice contributors.")
-#define RID_SVXSTR_ABOUT_CREDITS_URL NC_("aboutdialog|link", "https://www.libreoffice.org/about-us/credits/")
-#define RID_SVXSTR_ABOUT_VENDOR NC_("aboutdialog|vendor", "This release was supplied by %OOOVENDOR.")
-#define RID_SVXSTR_ABOUT_BASED_ON NC_("aboutdialog|libreoffice", "LibreOffice was based on OpenOffice.org.")
-#define RID_SVXSTR_ABOUT_DERIVED NC_("aboutdialog|derived", "%PRODUCTNAME is derived from LibreOffice which was based on OpenOffice.org")
-#define RID_SVXSTR_ABOUT_UILOCALE NC_("aboutdialog|uilocale", "UI: $LOCALE")
-
-#define RID_SVXSTR_EDIT_PATHS NC_("optpathspage|editpaths", "Edit Paths: %1")
-
-#define RID_SVXSTR_COMMANDLABEL NC_("RID_SVXSTR_COMMANDLABEL", "Label")
-#define RID_SVXSTR_COMMANDNAME NC_("RID_SVXSTR_COMMANDLABEL", "Command")
-#define RID_SVXSTR_COMMANDTIP NC_("RID_SVXSTR_COMMANDLABEL", "Tooltip")
-#define RID_SVXSTR_COMMANDEXPERIMENTAL NC_("RID_SVXSTR_COMMANDEXPERIMENTAL", "Experimental")
-
-#define RID_SVXSTR_QRCODEDATALONG NC_("RID_SVXSTR_QRCODEDATALONG", "The URL or text is too long for the current error correction level. Either shorten the text or decrease the correction level.")
-#define RID_SVXSTR_DELETEUSERCOLOR1 NC_("RID_SVXSTR_DELETEUSERCOLOR1", "You can only delete user-defined colors")
-#define RID_SVXSTR_DELETEUSERCOLOR2 NC_("RID_SVXSTR_DELETEUSERCOLOR2", "Please select the color to delete")
-
-#define RID_SVXSTR_ADDITIONS_INSTALLBUTTON NC_("RID_SVXSTR_ADDITIONS_INSTALLBUTTON", "Install")
-#define RID_SVXSTR_ADDITIONS_INSTALLEDBUTTON NC_("RID_SVXSTR_ADDITIONS_INSTALLEDBUTTON", "Installed")
-#define RID_SVXSTR_ADDITIONS_INSTALLING NC_("RID_SVXSTR_ADDITIONS_INSTALLING", "Installing")
-#define RID_SVXSTR_ADDITIONS_SEARCHING NC_("RID_SVXSTR_ADDITIONS_SEARCHING", "Searching...")
-#define RID_SVXSTR_ADDITIONS_LOADING NC_("RID_SVXSTR_ADDITIONS_LOADING", "Loading...")
-#define RID_SVXSTR_ADDITIONS_DIALOG_TITLE_PREFIX NC_("RID_SVXSTR_ADDITIONS_DIALOG_TITLE_PREFIX", "Extensions")
-
-#define RID_SVXSTR_UI_APPLYALL NC_("RID_SVXSTR_UI_APPLYALL", "Apply to %MODULE")
-
-#define RID_SVXSTR_OLE_INSERT NC_("RID_SVXSTR_OLE_INSERT", "Inserting OLE object...")
+#define RID_CUISTR_RIGHT_MARGIN NC_("RID_SVXSTR_RIGHT_MARGIN", "Combine single line paragraphs if length greater than %1")
+#define RID_CUISTR_NUM NC_("RID_SVXSTR_NUM", "Bulleted and numbered lists. Bullet symbol: %1")
+#define RID_SVXSTR_NUM_FORMAT_AFTER_SPACE NC_("RID_SVXSTR_NUM_FORMAT_AFTER_SPACE", "Bulleted and numbered lists immediate after pressing space")
+#define RID_CUISTR_BORDER NC_("RID_SVXSTR_BORDER", "Apply border")
+#define RID_CUISTR_CREATE_TABLE NC_("RID_SVXSTR_CREATE_TABLE", "Create table")
+#define RID_CUISTR_REPLACE_TEMPLATES NC_("RID_SVXSTR_REPLACE_TEMPLATES", "Apply Styles")
+#define RID_CUISTR_DEL_SPACES_AT_STT_END NC_("RID_SVXSTR_DEL_SPACES_AT_STT_END", "Delete spaces and tabs at beginning and end of paragraph")
+#define RID_CUISTR_DEL_SPACES_BETWEEN_LINES NC_("RID_SVXSTR_DEL_SPACES_BETWEEN_LINES", "Delete spaces and tabs at end and start of line")
+#define RID_CUISTR_CONNECTOR NC_("RID_SVXSTR_CONNECTOR", "Connector")
+#define RID_CUISTR_DIMENSION_LINE NC_("RID_SVXSTR_DIMENSION_LINE", "Dimension line")
+#define RID_CUISTR_STARTQUOTE NC_("RID_SVXSTR_STARTQUOTE", "Start Quote")
+#define RID_CUISTR_ENDQUOTE NC_("RID_SVXSTR_ENDQUOTE", "End Quote")
+
+#define RID_CUISTR_SHADOW_STYLE_NONE NC_("RID_SVXSTR_SHADOW_STYLE_NONE", "No Shadow")
+#define RID_CUISTR_SHADOW_STYLE_BOTTOMRIGHT NC_("RID_SVXSTR_SHADOW_STYLE_BOTTOMRIGHT", "Cast Shadow to Bottom Right")
+#define RID_CUISTR_SHADOW_STYLE_TOPRIGHT NC_("RID_SVXSTR_SHADOW_STYLE_TOPRIGHT", "Cast Shadow to Top Right")
+#define RID_CUISTR_SHADOW_STYLE_BOTTOMLEFT NC_("RID_SVXSTR_SHADOW_STYLE_BOTTOMLEFT", "Cast Shadow to Bottom Left")
+#define RID_CUISTR_SHADOW_STYLE_TOPLEFT NC_("RID_SVXSTR_SHADOW_STYLE_TOPLEFT", "Cast Shadow to Top Left")
+#define RID_CUISTR_SIGNATURELINE_SIGNED_BY NC_("RID_SVXSTR_SIGNATURELINE_SIGNED_BY", "Signed by: %1")
+
+#define RID_CUISTR_FILTER_ALL NC_("RID_SVXSTR_FILTER_ALL", "All files")
+
+#define RID_CUISTR_REGISTERED_DATABASES NC_("RID_SVXSTR_REGISTERED_DATABASES", "Registered Databases")
+
+#define RID_CUISTR_CANNOTCONVERTURL_ERR NC_("RID_SVXSTR_CANNOTCONVERTURL_ERR", "The URL <%1> cannot be converted to a filesystem path.")
+
+#define RID_CUISTR_ABOUT_COPYRIGHT NC_("aboutdialog|copyright", "Copyright © 2000–2024 LibreOffice contributors.")
+#define RID_CUISTR_ABOUT_VENDOR NC_("aboutdialog|vendor", "This release was supplied by %OOOVENDOR.")
+#define RID_CUISTR_ABOUT_BASED_ON NC_("aboutdialog|libreoffice", "LibreOffice was based on OpenOffice.org.")
+#define RID_CUISTR_ABOUT_DERIVED NC_("aboutdialog|derived", "%PRODUCTNAME is derived from LibreOffice which was based on OpenOffice.org")
+#define RID_CUISTR_ABOUT_UILOCALE NC_("aboutdialog|uilocale", "UI: $LOCALE")
+
+#define RID_CUISTR_EDIT_PATHS NC_("optpathspage|editpaths", "Edit Paths: %1")
+
+#define RID_CUISTR_COMMANDLABEL NC_("RID_SVXSTR_COMMANDLABEL", "Label")
+#define RID_CUISTR_COMMANDNAME NC_("RID_SVXSTR_COMMANDLABEL", "Command")
+#define RID_CUISTR_COMMANDTIP NC_("RID_SVXSTR_COMMANDLABEL", "Tooltip")
+#define RID_CUISTR_COMMANDEXPERIMENTAL NC_("RID_SVXSTR_COMMANDEXPERIMENTAL", "Experimental")
+
+#define RID_CUISTR_QRCODEDATALONG NC_("RID_SVXSTR_QRCODEDATALONG", "The URL or text is too long for the current error correction level. Either shorten the text or decrease the correction level.")
+#define RID_CUISTR_DELETEUSERCOLOR1 NC_("RID_SVXSTR_DELETEUSERCOLOR1", "You can only delete user-defined colors")
+#define RID_CUISTR_DELETEUSERCOLOR2 NC_("RID_SVXSTR_DELETEUSERCOLOR2", "Please select the color to delete")
+
+#define RID_CUISTR_ADDITIONS_INSTALLBUTTON NC_("RID_SVXSTR_ADDITIONS_INSTALLBUTTON", "Install")
+#define RID_CUISTR_ADDITIONS_INSTALLEDBUTTON NC_("RID_SVXSTR_ADDITIONS_INSTALLEDBUTTON", "Installed")
+#define RID_CUISTR_ADDITIONS_INSTALLING NC_("RID_SVXSTR_ADDITIONS_INSTALLING", "Installing")
+#define RID_CUISTR_ADDITIONS_SEARCHING NC_("RID_SVXSTR_ADDITIONS_SEARCHING", "Searching...")
+#define RID_CUISTR_ADDITIONS_LOADING NC_("RID_SVXSTR_ADDITIONS_LOADING", "Loading...")
+#define RID_CUISTR_ADDITIONS_DIALOG_TITLE_PREFIX NC_("RID_SVXSTR_ADDITIONS_DIALOG_TITLE_PREFIX", "Extensions")
+#define RID_CUISTR_ADDITIONS_DICTIONARY NC_("RID_SVXSTR_ADDITIONS_DICTIONARY", "Extensions: Dictionary")
+#define RID_CUISTR_ADDITIONS_GALLERY NC_("RID_SVXSTR_ADDITIONS_GALLERY", "Extensions: Gallery")
+#define RID_CUISTR_ADDITIONS_ICONS NC_("RID_SVXSTR_ADDITIONS_ICONS", "Extensions: Icons")
+#define RID_CUISTR_ADDITIONS_PALETTES NC_("RID_SVXSTR_ADDITIONS_PALETTES", "Extensions: Color Palette")
+#define RID_CUISTR_ADDITIONS_TEMPLATES NC_("RID_SVXSTR_ADDITIONS_TEMPLATES", "Extensions: Templates")
+
+#define RID_CUISTR_UI_APPLYALL NC_("RID_SVXSTR_UI_APPLYALL", "Apply to %MODULE")
+
+#define RID_CUISTR_OLE_INSERT NC_("RID_SVXSTR_OLE_INSERT", "Inserting OLE object...")
+
+#define RID_CUISTR_CLICK_RESULT NC_("RID_CUISTR_CLICK_RESULT", "(Click on any test to view its resultant bitmap image)")
+#define RID_CUISTR_ZIPFAIL NC_("RID_CUISTR_ZIPFAIL", "Creation of ZIP file failed.")
+#define RID_CUISTR_SAVED NC_("RID_CUISTR_SAVED", "The results have been successfully saved in the file 'GraphicTestResults.zip'!")
+#define RID_CUISTR_OPT_READONLY NC_("RID_CUISTR_OPT_READONLY", "This property is locked for editing.")
+
+#define RID_LANGUAGETOOL_LEAVE_EMPTY NC_("RID_LANGUAGETOOL_LEAVE_EMPTY", "Leave this field empty to use the free version")
+#define RID_LANGUAGETOOL_REST_LEAVE_EMPTY NC_("RID_LANGUAGETOOL_REST_LEAVE_EMPTY", "Leave this field empty to use LanguageTool protocol")
+
+#define RID_CUISTR_A11Y_DESC_BACKUP NC_("RID_CUISTR_A11Y_DESC_BACKUP", "Specifies if the backup copy should be stored in the same folder as the original document. If not selected, the backup copy is stored in the folder specified in Tools - Options - %PRODUCTNAME - Paths - Backups.")
+
+// Translatable names of color schemes
+#define RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC NC_("RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC", "Automatic")
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/inc/tipoftheday.hrc b/cui/inc/tipoftheday.hrc
index b410d8f5f1ca..a87d1ec51387 100644
--- a/cui/inc/tipoftheday.hrc
+++ b/cui/inc/tipoftheday.hrc
@@ -19,7 +19,7 @@
#pragma once
-#define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(u8##String))
+#define NC_(Context, String) TranslateId(Context, u8##String)
#include <rtl/ustring.hxx>
#include <config_python.h>
@@ -27,7 +27,7 @@
#include <unotools/resmgr.hxx>
/*
- * std:tuple consists of <text, uri, image>
+ * std:tuple consists of <text, uri, image, module>
* text:
* escape backslash, ie. use \\ to show \
* Use %MOD1 for Ctrl/Cmd and %MOD2 for Alt/Option depending on OS (uppercase required)
@@ -43,235 +43,241 @@
* leave the image string empty for the default tipoftheday.png
* place new images at extra/source/tipoftheday and do not forget to add the files to vcl/Package_tipoftheday.mk
* images are scaled to 150x150px; const ThumbSize() in tipoftheday.cxx
+ * module
+ * use one of the options below; an overlay is drawn on the default image tipoftheday.png except for the generic soffice (and of course not if an image is set)
*/
+enum tipModule : sal_uInt8
+{ swriter, scalc, sdraw, simpress, soffice };
-const std::tuple<TranslateId, OUString, OUString> TIPOFTHEDAY_STRINGARRAY[] =
+const std::tuple<TranslateId, OUString, OUString, tipModule> TIPOFTHEDAY_STRINGARRAY[] =
{
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME offers a variety of user interface options to make you feel at home"), ".uno:ToolbarModeUI", "toolbarmode.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Need to allow changes to parts of a read-only document in Writer? Insert frames or sections that can authorize changes."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/section_edit.html", "tipoftheday_w.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "To print the notes of your slides go to File ▸ Print ▸ Impress tab and select Notes under Document ▸ Type."), "", "printnote.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To start temporarily with a fresh user profile, or to restore a non-working %PRODUCTNAME, use Help ▸ Restart in Safe Mode."), "svx/ui/safemodedialog/SafeModeDialog", ""}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/01/profile_safe_mode.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Writing a book? %PRODUCTNAME master document lets you manage large documents as a container for individual %PRODUCTNAME Writer files."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/globaldoc.html", "tipoftheday_w.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "You can create editable Hybrid PDFs with %PRODUCTNAME."), "https://wiki.documentfoundation.org/Documentation/HowTo/CreateAHybridPDF", "hybrid_pdf.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Explore the ten different functions in the status bar (at the bottom of the document window). Place the cursor over each field for an explanation. If not visible, use View ▸ Status Bar."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to sum a cell through several sheets? Refer to the range of sheets e.g. =SUM(Sheet1.A1:Sheet3.A1)."), "", "sum_sheets.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can create fillable form documents (even PDFs) with %PRODUCTNAME."), "https://www.techrepublic.com/article/how-to-create-interactive-pdfs-with-libreoffice", "formdocuments.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Cannot see all the text in a cell? Expand the input line in the formula bar and you can scroll."), "", "expand_formula_bar.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Optimize your table layout with Table ▸ Size ▸ Distribute Rows / Columns Evenly."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Find all expressions in brackets per Edit ▸ Find and Replace ▸ Find ▸ \\([^)]+\\) (check “Regular expressions”)"), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Select a different icon set from Tools ▸ Options ▸ %PRODUCTNAME ▸ View ▸ User Interface ▸ Icon style."), "", "icon_sets.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can display a number as a fraction (0.125 = 1/8): Format ▸ Cells, Number ▸ Fraction."), "", "fraction.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To remove a hyperlink but keep its text, right-click on the hyperlink, and use “Remove Hyperlink”."), "", "remove_hyperlink.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To remove several hyperlinks at once, select the text with the hyperlinks, then right-click and use “Remove Hyperlink”."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To zoom a selection to fit the entire window in Draw, use the / (divide key) on the number pad."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Click a column field (row) PivotTable and press F12 to group data. Choices adapt to content: Date (month, quarter, year), number (classes)"), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can restart the slide show after a pause specified at Slide Show ▸ Slide Show Settings ▸ Loop and repeat."), "", "tipoftheday_i.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To distribute some text in multi-columns select the text and apply Format ▸ Columns."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use View ▸ Value Highlighting to display cell contents in colors: Text/black, Formulas/green, Numbers/blue, Protected cells/grey background."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/03080000.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "You can create different master pages in a presentation template: View ▸ Master Slide and Slide ▸ New Master (or per toolbar or right click in slide pane)."), "", "masterdocument.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to sort a pivot table? Click on drop-list’s arrow in the row/col header and select sort method: ascending, descending, or custom."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Display photos or images with different shapes in Writer. Insert and select shape, then Insert ▸ Image. To adjust image, right-click on selected shape and choose Area."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use Page/Slide ▸ Properties ▸ “Fit object to paper format” in Draw/Impress to resize the objects so that they fit on your chosen paper format."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Fit the entire page in a Draw window, use * on the number pad."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "In a Draw page, use “-” to zoom out; “+” to zoom in."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to show the contents of another document within your document? Use Insert ▸ Section and select Link."), "modules/swriter/ui/editsectiondialog/link", "tipoftheday_w.png"}, // https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/section_insert.html#par_id3153404
- { NC_("RID_CUI_TIPOFTHEDAY", "To automatically number table rows in Writer, select the relevant column, then apply a List Style."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/01/05130004.html", "tipoftheday_w.png"}, // no local help URI
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME allows you to use assistive tools, such as external screen readers, Braille devices or speech recognition input devices."), "https://www.libreoffice.org/get-help/accessibility/", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to sort a series in %PRODUCTNAME Calc such as A1, A2, A3, A11, A15, not in alphabetical order but on the number? Enable natural sort in the Options tab."), "modules/scalc/ui/sortoptionspage/SortOptionsPage", "tipoftheday_c.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/12030200.html
- { NC_("RID_CUI_TIPOFTHEDAY", "You can change the default function in the status bar: right click on the area."), "", "statusbar.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to add many of the same shapes in Draw/Impress? Double-click a tool in the drawing toolbar to use it for repeated tasks."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "%MOD1+Shift+F9 recalculates all formulas in all spreadsheets."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to keep a part of an editable document as read-only? Insert ▸ Section. Add text to the section, then right-click “Edit Section” and check “Protect”."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use the Backspace key instead of Delete in Calc. You can choose what to delete."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Best way to fix bad-looking MS Word table cells via Table ▸ Size ▸ Optimal Row Height / Column Width."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To repeat a table heading when a table spans over a page, use Table ▸ Table Properties ▸ Text Flow ▸ Repeat heading."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To quickly insert or delete rows, select the desired number of rows (or columns) and press %MOD1+ to add or %MOD1- to delete."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To repeat rows/columns on every pages use Format ▸ Print Ranges ▸ Edit."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Insert images and photos into shapes in Draw and Impress. Right-click on a shape, choose Area ▸ Image ▸ Add/Import, and use Options to adjust appearance."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Need to insert the date in a spreadsheet cell? Type %MOD1+; or Shift+%MOD1+; to insert the time."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Insert your metadata in your document with Insert ▸ Fields ▸ More Fields… ▸ Document or DocInformation."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Get help from the community via the Ask portal."), "https://ask.libreoffice.org", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use Shift+Space to select the current row and %MOD1+Space to select the current column."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can move an object to another layer by holding it until its edges flash, then drag it to the tab of the layer you want to move it to."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Data ▸ Validity allows you to create drop-down lists where the user selects a value instead of typing."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/guide/validity.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Hold down %MOD1 and turn the mouse wheel to change the zoom factor."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME has great extensions to increase your productivity—check them out."), "https://extensions.libreoffice.org", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to count words for just one particular paragraph style? Use Edit ▸ Find and Replace, click Paragraph Styles, select the style in Find, and click Find All. Read the result in the status bar."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Generate fully customized PDF documents with the exact format, image compression, comments, access rights, password, etc., via File ▸ Export as PDF."), "", ""},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME offers a variety of user interface options to make you feel at home"), ".uno:ToolbarModeUI", "toolbarmode.png", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to allow changes to parts of a read-only document in Writer? Insert frames or sections that can authorize changes."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/section_edit.html", "", swriter}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "To print the notes of your slides go to File ▸ Print ▸ %PRODUCTNAME Impress tab and select Notes under Document ▸ Type."), "", "printnote.png", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To start temporarily with a fresh user profile, or to restore a non-working %PRODUCTNAME, use Help ▸ Restart in Safe Mode."), "svx/ui/safemodedialog/SafeModeDialog", "", soffice}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/01/profile_safe_mode.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Writing a book? %PRODUCTNAME master document lets you manage large documents as a container for individual %PRODUCTNAME Writer files."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/globaldoc.html", "", swriter}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can create editable Hybrid PDFs with %PRODUCTNAME."), "https://wiki.documentfoundation.org/Documentation/HowTo/CreateAHybridPDF", "hybrid_pdf.png", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Explore the ten different functions in the status bar (at the bottom of the document window). Place the cursor over each field for an explanation. If not visible, use View ▸ Status Bar."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to sum a cell through several sheets? Refer to the range of sheets e.g. =SUM(Sheet1.A1:Sheet3.A1)."), "", "sum_sheets.png", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can create fillable form documents (even PDFs) with %PRODUCTNAME."), "https://www.techrepublic.com/article/how-to-create-interactive-pdfs-with-libreoffice", "formdocuments.png", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Cannot see all the text in a cell? Expand the input line in the formula bar and you can scroll."), "", "expand_formula_bar.png", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Optimize your table layout with Table ▸ Size ▸ Distribute Rows / Columns Evenly."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Find all expressions in brackets per Edit ▸ Find and Replace ▸ Find ▸ \\([^)]+\\) (check “Regular expressions”)"), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Select a different icon set from Tools ▸ Options ▸ %PRODUCTNAME ▸ View ▸ Icon Theme."), "", "icon_sets.png", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can display a number as a fraction (0.125 = 1/8): Format ▸ Cells, under Numbers tab in the Category select Fraction."), "", "fraction.png", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To remove a hyperlink but keep its text, right-click on the hyperlink, and use “Remove Hyperlink”."), "", "remove_hyperlink.png", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To remove several hyperlinks at once, select the text with the hyperlinks, then right-click and use “Remove Hyperlink”."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To zoom a selection to fit the entire window in Draw, use the / (divide key) on the number pad."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Click a column field (row) PivotTable and press F12 to group data. Choices adapt to content: Date (month, quarter, year), number (classes)"), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can restart the slide show after a pause specified at Slide Show ▸ Slide Show Settings ▸ Loop and repeat after."), "", "", simpress},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To distribute some text in multi-columns select the text and apply Format ▸ Columns."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use View ▸ Value Highlighting to display cell contents in colors: Text/black, Formulas/green, Numbers/blue, Protected cells/grey background."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/03080000.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can create different master pages in a presentation template: View ▸ Master Slide and Slide ▸ New Master (or per toolbar or right click in slide pane)."), "", "masterdocument.png", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to sort a pivot table? Click on drop-list’s arrow in the row/col header and select sort method: ascending, descending, or custom."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Display photos or images with different shapes in Writer. Insert and select shape, then Insert ▸ Image. To adjust image, right-click on selected shape and choose Area."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use Page/Slide ▸ Properties ▸ “Fit object to paper format” in Draw/Impress to resize the objects so that they fit on your chosen paper format."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Fit the entire page in a Draw window, use * on the number pad."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "In a Draw page, use “-” to zoom out; “+” to zoom in."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to show the contents of another document within your document? Use Insert ▸ Section and select Link."), "modules/swriter/ui/editsectiondialog/link", "", swriter}, // https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/section_insert.html#par_id3153404
+ { NC_("RID_CUI_TIPOFTHEDAY", "To automatically number table rows in Writer, select the relevant column, then apply a List Style."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/01/05130004.html", "", swriter}, // no local help URI
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME allows you to use assistive tools, such as external screen readers, Braille devices or speech recognition input devices."), "https://www.libreoffice.org/get-help/accessibility/", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to sort a series in %PRODUCTNAME Calc such as A1, A2, A3, A11, A15, not in alphabetical order but on the number? Enable natural sort in the Options tab."), "modules/scalc/ui/sortoptionspage/SortOptionsPage", "", scalc}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/12030200.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can change the default function in the status bar: right click on the area."), "", "statusbar.png", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to add many of the same shapes in Draw/Impress? Double-click a tool in the drawing toolbar to use it for repeated tasks."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%MOD1+Shift+F9 recalculates all formulas in all spreadsheets."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to keep a part of an editable document as read-only? Insert ▸ Section. Add text to the section, then right-click “Edit Section” and check “Protect”."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use the Backspace key instead of Delete in Calc. You can choose what to delete."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Best way to fix bad-looking MS Word table cells via Table ▸ Size ▸ Optimal Row Height / Column Width."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To repeat a table heading when a table spans over a page, use Table ▸ Table Properties ▸ Text Flow ▸ Repeat heading."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to quickly insert or delete rows? Select the desired number of rows (or columns) and press %MOD1+Plus sign (+) to add or %MOD1+Minus sign (-) to delete."), "modules/scalc/ui/insertcells/InsertCellsDialog", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To repeat rows/columns on every pages use Format ▸ Print Ranges ▸ Edit."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Insert images and photos into shapes in Draw and Impress. Right-click on a shape, choose Area ▸ Image ▸ Add / Import, and use Options to adjust appearance."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to insert the date in a spreadsheet cell? Type %MOD1+; or Shift+%MOD1+; to insert the time."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Insert your metadata in your document with Insert ▸ Fields ▸ More Fields… ▸ Document or DocInformation."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Get help from the community via the Ask portal."), "https://ask.libreoffice.org", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use Shift+Space to select the current row and %MOD1+Space to select the current column."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can move an object to another layer by holding it until its edges flash, then drag it to the tab of the layer you want to move it to."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Data ▸ Validity allows you to create drop-down lists where the user selects a value instead of typing."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/guide/validity.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Hold down %MOD1 and turn the mouse wheel to change the zoom factor."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME has great extensions to increase your productivity—check them out."), "https://extensions.libreoffice.org", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to count words for just one particular paragraph style? Use Edit ▸ Find and Replace, click Paragraph Styles, select the style in Find, and click Find All. Read the result in the status bar."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Generate fully customized PDF documents with the exact format, image compression, comments, access rights, password, etc., you specify via File ▸ Export as PDF."), "", "", soffice},
#if ENABLE_LIBRELOGO
- { NC_("RID_CUI_TIPOFTHEDAY", "Writer includes LibreLogo: simple Logo-like programming environment with turtle vector graphics, DTP and graphic design."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/librelogo/LibreLogo.html", "tipoftheday_w.png"}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Writer includes LibreLogo: simple Logo-like programming environment with turtle vector graphics, DTP and graphic design."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/librelogo/LibreLogo.html", "", swriter}, //local help missing
#endif
- { NC_("RID_CUI_TIPOFTHEDAY", "Construct your own 2D shapes in Draw. Select two or more objects, and explore possibilities with Shape ▸ Combine, Shape ▸ Merge, Shape ▸ Subtract, and Shape ▸ Intersect."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/sdraw/guide/combine_etc.html", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Do you plan to change your computer and want to recover your customizations? See:"), "https://wiki.documentfoundation.org/UserProfile", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can toggle between the field names and the actual value with View ▸ Fields Names (or %MOD1+F9)."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Show or hide comments in Writer by clicking the comment toggle button in the ruler."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To enable macro recording, check Tools ▸ Options ▸ %PRODUCTNAME ▸ Advanced ▸ Enable macro recording."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to insert a placeholder for an image in a Writer template? Use Insert ▸ Fields ▸ More fields, click Functions tab, choose PlaceHolder for Type and Image for Format."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME supports four macro security levels (from low to very high) and trusted sources."), "cui/ui/optsecuritypage/OptSecurityPage", ""}, // https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/01030300.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Did you know that you can attach comments to portions of text? Just use the shortcut %MOD1+%MOD2+C."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Need to move one or more paragraphs? No need to cut and paste: Use the keyboard shortcut %MOD1+%MOD2+Arrow (Up/Down)"), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Change the basic fonts for the predefined template or current document per Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ Basic Fonts."), "modules/swriter/ui/optfonttabpage/OptFontTabPage", "tipoftheday_w.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/01040300.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to find words containing more than 10 characters? Edit ▸ Find and Replace ▸ Search ▸ [a-z]{10,} ▸ Other Options ▸ check Regular expressions."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Open a CSV file as a new sheet in the current spreadsheet via Sheet ▸ Sheet from file."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Typing in bold, italics, or underlined in Writer you can continue with the default attributes using just the shortcut %MOD1+Shift+X (remove direct character formats)."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use %MOD1+%MOD2+Shift+V to paste the contents of the clipboard as unformatted text."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Customize footnote appearance with Tools ▸ Footnotes and Endnotes…"), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "With Slide Show ▸ Custom Slide Show, reorder and pick slides to fit a slideshow to the needs of your viewers."), "", "tipoftheday_i.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to change spell checking for some part of the text? Click in the language zone of the status bar or better, apply a style."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Writer can insert a blank page between two odd (even) pages that follow. Check “Print automatically inserted blank pages” in the print dialog’s %PRODUCTNAME Writer tab."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You do not want to print all columns? Hide or group the ones you do not need."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To modify an AutoPlay presentation, open it and after it starts, right click and select Edit in the context menu."), "", "tipoftheday_i.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Need to precisely position? %MOD2+arrow Keys move objects (shapes, pictures, formulas) by one pixel."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Embedded help is available by pressing F1, if you have installed it. Otherwise check online at:"), "https://help.libreoffice.org", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Right-click in the status bar in %PRODUCTNAME Calc and select “Selection count” to display the number of selected cells."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to have two or more columns for just a part of a %PRODUCTNAME Writer page? Insert ▸ Section, set with Columns tab, and place text in that section."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use Data ▸ Statistics for sampling, descriptive statistics, analysis of variance, correlation, and much more in %PRODUCTNAME Calc."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can copy from one sheet to another without the clipboard. Select the area to copy, %MOD1+click the target sheet’s tab and use Sheet ▸ Fill Cells ▸ Fill Sheets."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can change the look of %PRODUCTNAME via Tools ▸ Options ▸ View ▸ User Interface."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "In %PRODUCTNAME Impress, use Insert ▸ Media ▸ Photo Album to create a slideshow from a series of pictures with the “Photo Album” feature."), "", "tipoftheday_i.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can show formulas instead of results with View ▸ Show Formula (or Tools ▸ Options ▸ %PRODUCTNAME Calc ▸ View ▸ Display ▸ Formulas)."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME is developed by a friendly community, made up of hundreds of contributors around the world. Join us with your skills beyond coding."), "https://www.libreoffice.org/community/get-involved/", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Left-handed? Enable Tools ▸ Options ▸ Language Settings ▸ Languages ▸ Asian and check Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ View ▸ Ruler ▸ Right-aligned, which displays the scrollbar to the left."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want your chapter titles to always begin a page? Edit Heading1 (paragraph style) ▸ Text Flow ▸ Breaks and check Insert ▸ Page ▸ Before."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Date/time value is just a number of days since a chosen day zero; in the number, integer part represents date, and fractional part is time (elapsed part of a day), with 0.5 representing noon."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Shift+%MOD1+Del deletes from cursor to the end of the current sentence."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use column or row labels in formulas. For example, if you have two columns, “Time” and “KM”, use =Time/KM to get minutes per kilometer."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Annoyed by the “marching ants” around cells in Calc? Press escape to stop them; the copied content will remain available for pasting."), "", "marchingants.gif"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to become a %PRODUCTNAME Ambassador? There are certifications for developers, admins, and trainers."), "https://www.documentfoundation.org/certification/program/", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Mix portrait and landscape orientations in a Calc spreadsheet by applying different page styles on sheets."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Click on the special character icon in the toolbar to get quick access to favorite and recent characters to insert."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Choose “Hierarchical View” in the Styles sidebar to see the relation between styles."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can use styles to make the tables in your document consistent. Choose one from the predefined per Styles (F11) or via Table ▸ AutoFormat."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Configure use of the %MOD1 key to open hyperlinks? Tools ▸ Options ▸ %PRODUCTNAME ▸ Security ▸ Options ▸ “%MOD1+click required to open hyperlinks”."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "You would like to view the calculation of individual elements of a formula, select the respective elements and press F9."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can protect cells with Format ▸ Cells ▸ Protection. To prevent insert, delete, rename, move/copy of sheets use Tools ▸ Protect Sheet."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/guide/cell_protect.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Write along a curve? Draw the line, double click, type the text, Format ▸ Text Box and Shape ▸ Fontwork."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to display only the highest values in a spreadsheet? Select menu Data ▸ AutoFilter, click the drop-down arrow, and choose “Top10”."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To remove the page number from your table of contents go to Insert ▸ Table of Contents (or right-click and Edit the previously inserted index). In the Entries tab delete the page number (#) from Structure line."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "With the Navigator you can select & move up/down headings and the text below the heading, in the Navigator and in the document."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To quickly get a math object in Writer type your formula, mark it, and use Insert ▸ Object ▸ Formula to convert the text."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "With %PRODUCTNAME it is very easy to install a new dictionary: they are supplied as extensions."), "https://extensions.libreoffice.org/?q=&Tags[]=50", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME has a portable version which gives you mobility. Even without administrator rights on your computer you can install %PRODUCTNAME Portable to your hard drive too."), "https://www.libreoffice.org/download/portable-versions/", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Writer lets you number your footnotes per page, chapter, document: Tools ▸ Footnotes and Endnotes ▸ Footnotes tab ▸ Counting."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Your Writer document does not reopen with the text cursor at the same editing position it was when you saved it? Add First or Last name in Tools ▸ Options ▸ %PRODUCTNAME ▸ User Data ▸ First/last name."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Citation management? Use a 3rd party extension."), "https://wiki.documentfoundation.org/Referencing_Systems_in_LibreOffice", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to insert a value in the same place on several sheets? Select the sheets: hold down %MOD1 key and click their tabs before entering."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to hide some text in a document? Select the text. Insert ▸ Section, and select “Hide”."), "modules/swriter/ui/editsectiondialog/hide", "tipoftheday_w.png"}, // online help is different https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/hidden_text.html#hd_id3148675
- { NC_("RID_CUI_TIPOFTHEDAY", "You can customize the middle mouse button per Tools ▸ Options ▸ %PRODUCTNAME ▸ View ▸ Middle Mouse button."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to print two portrait pages on a landscape one (reducing A4 to A5)? File ▸ Print and select 2 at “Pages per sheet”."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "For quick access to your document bookmarks, right-click on the page number of the status bar (lower-left corner of document window)."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Select an object in the document background via the Select tool in the Drawing toolbar to surround the object to select."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Define texts that you often use as AutoText. You will be able to insert them by their name, shortcut or toolbar in any Writer document."), "modules/swriter/ui/autotext/AutoTextDialog", "tipoftheday_w.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/autotext.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Play music throughout a slideshow by assigning the sound to the first slide transition without clicking the “Apply to All Slides” button."), "", "tipoftheday_i.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME Calc does not calculate from left to right but respects the order Parentheses – Exponents – Multiplication – Division – Addition – Subtraction."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Get %PRODUCTNAME documentation and free user guide books at:"), "https://documentation.libreoffice.org/", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to remove all <> at once and keep the text inside? Edit ▸ Find and Replace: Search = [<>], Replace = blank and check “Regular expressions” under Other options."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/01/02100001.html", ""}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Need to present a report written with Writer? File ▸ Send ▸ Outline to Presentation automatically creates a slideshow from the outline."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to manage the presentation of hyperlinks in a spreadsheet? Insert them with the HYPERLINK function."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060109.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Uncheck Tools ▸ Options ▸ %PRODUCTNAME Calc ▸ View ▸ Zoom: “Synchronize sheets” so that each sheet in Calc has its own zoom factor."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can set a color for each tab: right-click the tab or use Sheet ▸ Sheet Tab Color."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Trace cells used in a formula, precedents (Shift+F9) or dependents (Shift+F5) (or use Tools ▸ Detective). For each hit you go one more step in the chain."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/06030000.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Insert and number your formulas in one step: type fn then F3. An AutoText is inserted with formula and number aligned in a table."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can create an illustration index from object names, not only from captions."), "cui/ui/objectnamedialog/ObjectNameDialog", "tipoftheday_w.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/01/05190000.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Use your Android or iPhone to remotely control your Impress presentation."), "https://help.libreoffice.org/%PRODUCTVERSION/he/text/simpress/guide/impress_remote.html", "tipoftheday_i.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to know how many days there are in the current month? Use the DAYSINMONTH(TODAY()) function."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Your numbers are displayed as ### in your spreadsheet? The column is too narrow to display all digits."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Enable massive parallel calculations of formula cells via Tools ▸ Options ▸ OpenCL."), "cui/ui/optopenclpage/OptOpenCLPage", "tipoftheday_c.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/opencl.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Use the Connector tool from the Drawing toolbar in Draw/Impress to create nice flow charts and optionally copy/paste the object into Writer."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Your donations support our worldwide community."), "https://www.libreoffice.org/donate/", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "You want to add x months to a date? Use =EDATE(date;months)."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/func_edate.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "To select a contiguous range of cells containing data and bounded by empty row and columns use %MOD1+* (numeric key pad)."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Your date acceptance pattern is inappropriate? Use Tools ▸ Options ▸ Language Settings ▸ Language ▸ Date acceptance patterns to tweak the pattern."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to export formulas to CSV? File ▸ Save As ▸ Type:Text CSV, check “Edit filter settings”, and check “Save cell formulas” in the next dialog."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "The presenter console is a great feature when working with %PRODUCTNAME Impress. Have you checked it out?"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/simpress/guide/presenter_console.html", "tipoftheday_i.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "To delete multiple comments, select cells with comments and use Sheet ▸ Cell Comments ▸ Delete Comment."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Easily convert your documents to PDF with one click by clicking on the PDF icon in the toolbar."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to select a large range of cells without scrolling? Type the range reference (e.g. A1:A1000) in the name box then Enter."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to know the valid command line parameters? Start soffice with --help or -h or -?"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/guide/start_parameters.html", ""}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Fit your sheet or print ranges to a page with Format ▸ Page ▸ Sheet Tab ▸ Scaling Mode."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Need to include a list item without a bullet or number? Use “Insert Unnumbered Entry” in the Bullets and Numbering toolbar."), "HID_NUM_TOOLBOX", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can rotate cells table orientation with Table ▸ Properties… ▸ Text Flow ▸ Text orientation."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "In %PRODUCTNAME Draw to change the 0/0 point of the rulers, drag the intersection of the two rulers in the top left corner into the workspace."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Move a column in Calc between two others in one step? Click the header then a cell in the column, keep mouse button and move to the target with %MOD2 key."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Automatically mark alphabetical index entries using a concordance file."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/indices_index.html", "tipoftheday_w.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Use Format ▸ Align (or the context menu) for precise positioning of objects in Draw/Impress: it centers on the page if one object is selected or works on the group respectively."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Do not use tabs to space items on a Writer document. Depending on what you are trying to do, a borderless table can be a better choice."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "No need to scroll through the list at Tools ▸ Customize ▸ Keyboard to find a shortcut: just type it."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME can automatically add a numbered caption when you insert objects. See Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ AutoCaption."), "modules/swriter/ui/optcaptionpage/OptCaptionPage", "tipoftheday_w.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/01041100.html
- { NC_("RID_CUI_TIPOFTHEDAY", "With %PRODUCTNAME you can use your Google Mail account to do a mail merge. Fill in Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ Mail Merge Email."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/form_letters_main.html", "tipoftheday_w.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Keep column headers of a sheet visible when scrolling lines via View ▸ Freeze Cells ▸ Freeze First Row."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You want to start working with Basic macros? Take a look at the examples under Tools ▸ Macros ▸ Edit Macros."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Apply Heading paragraph styles in Writer with shortcut keys: %MOD1+1 applies Heading 1, %MOD1+2 applies Heading 2, etc."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Do not get lost in large documents. Use the Navigator (F5) to find your way through the content."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Edit ▸ Find and Replace lets you insert special characters directly: right click in input fields or press Shift+%MOD1+S."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Need custom contents for metadata properties? File ▸ Properties ▸ Custom Properties tab lets you create what you want."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to see, but not print, an object in Draw? Draw it on a layer for which the “Printable” flag is not set (right click on the tab and “Modify Layer”)."), "", "tipoftheday_d.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To insert the current date in your document, use Insert ▸ Field ▸ Date."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Got many images in your Writer document? Speed up the display by disabling View ▸ Images and charts."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use Sheet ▸ Fill Cells ▸ Random Number to generate a random series based on various distributions."), "modules/scalc/ui/randomnumbergenerator/RandomNumberGeneratorDialog", "tipoftheday_c.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/02140700.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Rename your slides in Impress to help you define “Go to page” interactions and to have a summary more explicit than Slide1, Slide2…"), "", "tipoftheday_i.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Chapter numbering dialog lets you set text to be displayed before the chapter number. For example, type “Chapter ” to display “Chapter 1”"), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Transpose a Writer table? Copy and paste in Calc, transpose with copy/paste special then copy/paste special ▸ Formatted text in Writer."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To get the “Vertical Text” tool in the Drawing toolbar, check Tools ▸ Options ▸ Language Settings ▸ Languages ▸ Default languages ▸ Asian (and make the button visible with right-click)."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "To quickly zoom in on range selection, right click on the zoom part of the status bar and choose Optimal."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can sign existing PDF files and also verify those signatures."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/guide/digital_signatures.html", ""}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Often create one document from another? Consider using a template."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Use Format ▸ Conditional Formatting ▸ Manage in Calc to find out which cells have been defined with conditional formatting."), "modules/scalc/ui/conditionalformatdialog/ConditionalFormatDialog", "tipoftheday_c.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/05120000.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Tools ▸ Detective ▸ Mark Invalid Data highlights all cells in the sheet that contain values outside the validation rules."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/06030800.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Use font embedding for greater interoperability with other office suites at File ▸ Properties ▸ Font."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "To convert a formula into static values you do not need to copy/paste; use Data ▸ Calculate ▸ Formula to Value."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can reformat all comments in a document by clicking the down arrow in a comment and choose “Format all Comments”."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want the same layout for the screen display and printing? Check Tools ▸ Options ▸ %PRODUCTNAME Calc ▸ General ▸ Use printer metrics for text formatting."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Writer helps you to make backups: with File ▸ Save a Copy you create a new document continuing to work on the original."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "When you have created a Style based on another, you can enter a percentage value or a point value (e.g. 110% or −2pt or +5pt)."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To copy a comment without losing the content of the target cell you should use Paste Special and uncheck everything except “Comments” in dialog. Use Operations “Add” to not override existing content."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Batch convert your MS Office documents to OpenDocument format by the Document Converter wizard in menu File ▸ Wizards ▸ Document converter."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "When editing a cell in place, you can right click and Insert fields: Date, Sheet name, Document title, etc."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Need to move a Writer table? Table ▸ Select ▸ Table and Insert ▸ Frame ▸ Frame and move where you want."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "With Tools ▸ AutoText ▸ AutoText ▸ Import you can select a Word document or a template containing the AutoText entries that you want to import."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Do not insert manual breaks to separate two paragraphs. Rather change Indents & Spacing ▸ Spacing ▸ Below paragraph at the style/paragraph properties."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Keep the zeros before a number by using the “leading zeroes” cell format option or format the cell as text before entering the number."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to return to default after applying a list style? Click Bullets or Numbering On/Off tool on the Formatting toolbar."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Delete all of your printing areas in one step: select all sheets, then Format ▸ Print Ranges ▸ Clear."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Add background images to spreadsheets via Insert ▸ Image or drag a background from the Gallery, then Format ▸ Arrange ▸ To Background."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Having trouble pasting text from PDF files or webpages into documents? Try to paste as unformatted text (%MOD1+%MOD2+Shift+V)."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "In Calc use TRIMMEAN() to return the mean of a data set excluding the highest and lowest values."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060182.html?DbPAR=CALC#bm_id3152966", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "The 4th optional parameter of VLOOKUP Calc function indicates whether the first column of data is sorted. If not, enter FALSE or zero."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Toolbars are contextual—they open depending on the context. If you do not want that, uncheck them from View ▸ Toolbars."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "You can create a master document from the current Writer document by using File ▸ Send ▸ Create Master Document."), "SW_HID_SEND_MASTER_CTRL_PUSHBUTTON_CANCEL", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to center cells on a printed page in Calc? Format ▸ Page, Page ▸ Layout settings ▸ Table alignment."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Frames can be linked so that the text can flow from one to the other as in desktop publishing."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/text_frame.html", "tipoftheday_w.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "You can create a chart based on a Writer table by clicking in the table and choosing Insert ▸ Chart."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Select options in Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ Formatting Aids ▸ Display to specify which non-printing characters are displayed."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to jump to a particular page by its number? Click the left-most statusbar entry or use Edit ▸ Go To Page… or press %MOD1+G."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME supports over 150 languages."), "https://wiki.documentfoundation.org/Language_support_of_LibreOffice", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Uncheck Slide Show ▸ Settings ▸ Presentation always on top if you need another program displays its window to the front of your presentation."), "", "tipoftheday_i.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to find the words in bold in a Writer document? Edit ▸ Find and Replace ▸ Other options ▸ Attributes ▸ Font weight."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/finding.html", "tipoftheday_w.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "You can sort paragraphs or table rows alphabetically or numerically per Tools ▸ Sort."), "modules/swriter/ui/sortdialog/SortDialog", "tipoftheday_w.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/01/06100000.html
- { NC_("RID_CUI_TIPOFTHEDAY", "To insert a paragraph before (after) a section, press %MOD2+Enter at the beginning (end) of the section."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME has a template center to create good looking documents—check it out."), "https://extensions.libreoffice.org/?q=&Tags[]=118", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Calculate loan repayments with Calc: eg. PMT(2%/12;36;2500) interest rate per payment period 2%/12, 36 months, loan amount 2500."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060119.html?DbPAR=CALC#bm_id3149577", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Cannot find what you want with the VLOOKUP function in Calc? With INDEX and MATCH you can do anything!"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060109.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to show hidden column A? Click a cell in column B, press the left mouse button, move the mouse to the left, release. Then switch it on via Format ▸ Columns ▸ Show."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To change the number of a page in Writer, go to the properties of the first paragraph and at the Text Flow tab check Break ▸ Insert and enter the number."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Run %PRODUCTNAME in any browser via rollApp."), "https://www.rollapp.com/app/lowriter", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Strange error code in Calc, Err: followed by a number? This page gives the explanation:"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/05/02140000.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Include a paragraph that is not a title in the table of contents by changing Outline & Numbering in the paragraph settings to an outline level."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Apart from table of contents, %PRODUCTNAME can create Alphabetical, Illustrations, Tables, Objects, Bibliography, User-Defined indexes."), "modules/swriter/ui/tocdialog/TocDialog", "tipoftheday_w.png"}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/indices_toc.html
- { NC_("RID_CUI_TIPOFTHEDAY", "Unable to modify or delete a custom cell style? Check all sheets, none should be protected."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "You need to fill a series? Select the cell range and Sheet ▸ Fill Cells ▸ Fill Series and choose between Linear, Growth, Date and AutoFill."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/guide/calc_series.html", "tipoftheday_c.png"}, //local help missing
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to know if a cell is referred in formulas of other cells? Tools ▸ Detective ▸ Trace Dependents (Shift+F5)."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "In the replace input field of auto correct options you can use the wildcards .*"), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want to duplicate the above line? Press %MOD1+D or use Sheet ▸ Fill Cells ▸ Fill Down."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To search in several spreadsheets, select them before you start the search."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Drag & drop cells from Calc into the normal view of a slide creates a table; into the outline view, each cell creates a line in the outline."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME helps you not to enter two or more spaces in Writer. Check Tools ▸ AutoCorrect ▸ AutoCorrect Options ▸ Options ▸ Ignore double spaces."), "", "tipoftheday_w.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Want the cursor to go into the cell to the right, after entering a value in Calc? Use the Tab key instead of Enter."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "To display the scrollbar to the left, enable Tools ▸ Options ▸ Language Settings ▸ Languages ▸ Complex text and check Sheet ▸ Right-To-Left."), "", "tipoftheday_c.png"},
- { NC_("RID_CUI_TIPOFTHEDAY", "Drag a formatted object to the Styles and Formatting window. A dialog box opens, just enter the name of the new style."), "", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "New versions of %PRODUCTNAME provide new features, bug fixes, and security patches. Keep your software updated!"), "SFX2_HID_DLG_CHECKFORONLINEUPDATE", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Developing new XSLT and XML filters?"), "https://fridrich.blogspot.com/2013/08/extending-swiss-army-knife-overview.html", ""},
- { NC_("RID_CUI_TIPOFTHEDAY", "Press Shift+F1 to see any available extended tooltips in dialog boxes, when \"Extended tips\" is not enabled in Tools ▸ Options ▸ %PRODUCTNAME ▸ General."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/05/00000120.html", ""},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Construct your own 2D shapes in Draw. Select two or more objects, and explore possibilities with Shape ▸ Combine, Shape ▸ Merge, Shape ▸ Subtract, and Shape ▸ Intersect."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/sdraw/guide/combine_etc.html", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Do you plan to change your computer and want to recover your customizations? See:"), "https://wiki.documentfoundation.org/UserProfile", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can toggle between the field names and the actual value with View ▸ Fields Names (or %MOD1+F9)."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Show or hide comments in Writer by clicking the comment toggle button in the ruler."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To enable macro recording, check Tools ▸ Options ▸ %PRODUCTNAME ▸ Advanced ▸ Enable macro recording."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to insert a placeholder for an image in a Writer template? Use Insert ▸ Fields ▸ More fields, click Functions tab, choose PlaceHolder for Type and Image for Format."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME supports four macro security levels (from low to very high) and trusted sources."), "cui/ui/optsecuritypage/OptSecurityPage", "", soffice}, // https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/01030300.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Did you know that you can attach comments to portions of text? Just use the shortcut %MOD1+%MOD2+C."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to move one or more paragraphs? No need to cut and paste: Use the keyboard shortcut %MOD1+%MOD2+Arrow (Up/Down)"), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Change the basic fonts for the predefined template or current document per Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ Basic Fonts."), "modules/swriter/ui/optfonttabpage/OptFontTabPage", "", swriter}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/01040300.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to find words containing more than 10 characters? Edit ▸ Find and Replace ▸ Search ▸ [a-z]{10,} ▸ Other Options ▸ check Regular expressions."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Open a CSV file as a new sheet in the current spreadsheet via Sheet ▸ Sheet from file."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can continue writing with the default formatting attributes after manually applying bold, italic or underline by pressing %MOD1+Shift+X."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use %MOD1+%MOD2+Shift+V to paste the contents of the clipboard as unformatted text."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Customize footnote appearance with Tools ▸ Footnote/Endnote Settings…"), ".uno:FootnoteDialog", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "With Slide Show ▸ Custom Slide Show, reorder and pick slides to fit a slideshow to the needs of your viewers."), "", "", simpress},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to change spell checking for some part of the text? Click in the language zone of the status bar or better, apply a style."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Writer can insert a blank page between two odd (even) pages that follow. Check “Print automatically inserted blank pages” in the print dialog’s %PRODUCTNAME Writer tab."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You do not want to print all columns? Hide or group the ones you do not need."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To modify an AutoPlay presentation, open it and after it starts, right click and select Edit in the context menu."), "", "", simpress},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to position precisely? %MOD2+arrow keys move objects (shapes, pictures, formulas) by one pixel."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Embedded help is available by pressing F1, if you have installed it. Otherwise check online at:"), "https://help.libreoffice.org", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Right-click in the status bar in %PRODUCTNAME Calc and select “Selection count” to display the number of selected cells."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to have two or more columns for just a part of a %PRODUCTNAME Writer page? Insert ▸ Section, set with Columns tab, and place text in that section."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use Data ▸ Statistics for sampling, descriptive statistics, analysis of variance, correlation, and much more in %PRODUCTNAME Calc."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can copy from one sheet to another without the clipboard. Select the area to copy, %MOD1+click the target sheet’s tab and use Sheet ▸ Fill Cells ▸ Fill Sheets."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can change the look of %PRODUCTNAME via View ▸ User Interface."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "In %PRODUCTNAME Impress, use Insert ▸ Media ▸ Photo Album to create a slideshow from a series of pictures with the “Photo Album” feature."), "", "", simpress},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can show formulas instead of results with View ▸ Show Formula (or Tools ▸ Options ▸ %PRODUCTNAME Calc ▸ View ▸ Display ▸ Formulas)."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME is developed by a friendly community, made up of hundreds of contributors around the world. Join us with your skills beyond coding."), "https://www.libreoffice.org/community/get-involved/", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Left-handed? Enable Tools ▸ Options ▸ Languages and Locales ▸ General ▸ Asian and check Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ View ▸ Ruler ▸ Right-aligned, which displays the scrollbar to the left."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want headings to always begin a page? Edit the paragraph style applied to the headings. Check “Insert” on the “Text Flow” tab, with Type “Page” and Position “Before”."), "cui/ui/textflowpage/checkInsert", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Date/time value is just a number of days since a chosen day zero; in the number, integer part represents date, and fractional part is time (elapsed part of a day), with 0.5 representing noon."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Shift+%MOD1+Del deletes from cursor to the end of the current sentence."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use column or row labels in formulas. For example, if you have two columns, “Time” and “KM”, use =Time/KM to get minutes per kilometer."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Annoyed by the “marching ants” around cells in Calc? Press escape to stop them; the copied content will remain available for pasting."), "", "marchingants.gif", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to become a %PRODUCTNAME Ambassador? There are certifications for developers, admins, and trainers."), "https://www.documentfoundation.org/certification/program/", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Mix portrait and landscape orientations in a Calc spreadsheet by applying different page styles on sheets."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Click on the special character icon in the toolbar to get quick access to favorite and recent characters to insert."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Choose “Hierarchical View” in the Styles sidebar to see the relation between styles."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can use styles to make the tables in your document consistent. Choose one from the predefined per Styles (F11) or via Table ▸ AutoFormat Styles..."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to open hyperlinks without pressing the %MOD1 key? Uncheck “%MOD1+click required to open hyperlinks” in Tools ▸ Options ▸ %PRODUCTNAME ▸ Security ▸ Options ▸ Security Options."), "cui/ui/securityoptionsdialog/ctrlclick", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You would like to view the calculation of individual elements of a formula, select the respective elements and press F9."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can protect cells with Format ▸ Cells ▸ Protection. To prevent insert, delete, rename, move/copy of sheets use Tools ▸ Protect Sheet."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/guide/cell_protect.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can make text follow the shape of a curve. Draw the curve, double-click it, type the text, and choose Format ▸ Text Box and Shape ▸ Text along Path. Select one of the alignment options: Rotate, Upright, Slant Horizontal or Slant Vertical."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to display only the highest values in a spreadsheet? Select menu Data ▸ AutoFilter, click the drop-down arrow, and choose “Top10”."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To remove the page number from your table of contents go to Insert ▸ Table of Contents and Index (or right-click and Edit Index to edit a previously inserted index). In the Entries tab delete the page number (#) from Structure line."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "With the Navigator you can select & move up/down headings and the text below the heading, in the Navigator and in the document."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to get a math object into Writer quickly? Type your formula, select it, and use Insert ▸ OLE Object ▸ Formula to convert the text."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "With %PRODUCTNAME it is very easy to install a new dictionary: they are supplied as extensions."), "https://extensions.libreoffice.org/?q=&Tags[]=50", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME has a portable version which gives you mobility. Even without administrator rights on your computer you can install %PRODUCTNAME Portable to your hard drive too."), "https://www.libreoffice.org/download/portable-versions/", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Writer lets you number your footnotes per page, chapter, document: Tools ▸ Footnote/Endnote Settings ▸ Footnotes tab ▸ Counting."), ".uno:FootnoteDialog", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Your Writer document does not reopen with the text cursor at the same editing position it was when you saved it? Add First or Last name in Tools ▸ Options ▸ %PRODUCTNAME ▸ User Data ▸ First/last name."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to do citation? You can use third-party citation managers such as Zotero."), "https://wiki.documentfoundation.org/Referencing_Systems_in_LibreOffice", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to insert a value in the same place on several sheets? Select the sheets: hold down %MOD1 key and click their tabs before entering."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to hide some text in a document? Select the text. Insert ▸ Section, and select “Hide”."), "modules/swriter/ui/editsectiondialog/hide", "", swriter}, // online help is different https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/hidden_text.html#hd_id3148675
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can customize the middle mouse button by going to Tools ▸ Options ▸ %PRODUCTNAME ▸ View ▸ Mouse ▸ Middle button."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to print two portrait pages on a landscape one (reducing A4 to A5)? File ▸ Print and select 2 at “Pages per sheet”."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "For quick access to your document bookmarks, right-click on the page number of the status bar (lower-left corner of document window)."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Select an object in the document background via the Select tool in the Drawing toolbar to surround the object to select."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Define texts that you often use as AutoText. You will be able to insert them by their name, shortcut or toolbar in any Writer document."), "modules/swriter/ui/autotext/AutoTextDialog", "", swriter}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/autotext.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Play music throughout a slideshow by assigning the sound to the first slide transition without clicking the “Apply to All Slides” button."), "", "", simpress},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME Calc does not calculate from left to right but respects the order Parentheses – Exponents – Multiplication – Division – Addition – Subtraction."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Get %PRODUCTNAME documentation and free user guide books at:"), "https://documentation.libreoffice.org/", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to remove all <> at once and keep the text inside? Edit ▸ Find and Replace: Search = [<>], Replace = blank and check “Regular expressions” under Other options."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/01/02100001.html", "", soffice}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to present a report written with Writer? File ▸ Send ▸ Outline to Presentation automatically creates a slideshow from the outline."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to manage the presentation of hyperlinks in a spreadsheet? Insert them with the HYPERLINK function."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060109.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Uncheck Tools ▸ Options ▸ %PRODUCTNAME Calc ▸ View ▸ Zoom: “Synchronize sheets” so that each sheet in Calc has its own zoom factor."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can set a color for each tab: right-click the tab or use Sheet ▸ Sheet Tab Color."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Trace cells used in a formula, precedents (Shift+F9) or dependents (Shift+F5) (or use Tools ▸ Detective). For each hit you go one more step in the chain."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/06030000.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Insert and number your formulas in one step: type fn then F3. An AutoText is inserted with formula and number aligned in a table."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can create an illustration index from object names, not only from captions."), "cui/ui/objectnamedialog/ObjectNameDialog", "", swriter}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/01/05190000.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use your Android or iPhone to remotely control your Impress presentation."), "https://help.libreoffice.org/%PRODUCTVERSION/he/text/simpress/guide/impress_remote.html", "", simpress}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to know how many days there are in the current month? Use the DAYSINMONTH(TODAY()) function."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Your numbers are displayed as ### in your spreadsheet? The column is too narrow to display all digits."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Enable massive parallel calculations of formula cells via Tools ▸ Options ▸ %PRODUCTNAME ▸ OpenCL."), "cui/ui/optopenclpage/OptOpenCLPage", "", scalc}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/opencl.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use the Connector tool from the Drawing toolbar in Draw/Impress to create nice flow charts and optionally copy/paste the object into Writer."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Your donations support our worldwide community."), "https://www.libreoffice.org/donate/", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You want to add x months to a date? Use =EDATE(date;months)."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/func_edate.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "To select a contiguous range of cells containing data and bounded by empty row and columns use %MOD1+* (numeric key pad)."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Your date acceptance pattern is inappropriate? Use Tools ▸ Options ▸ Languages and Locales ▸ General ▸ Date acceptance patterns to tweak the pattern."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to export formulas to CSV? File ▸ Save As ▸ Type:Text CSV, check “Edit filter settings”, and check “Save cell formulas” in the next dialog."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "The presenter console is a great feature when working with %PRODUCTNAME Impress. Have you checked it out?"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/simpress/guide/presenter_console.html", "", simpress}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "To delete multiple comments, select cells with comments and use Sheet ▸ Cell Comments ▸ Delete Comment."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Easily convert your documents to PDF with one click by clicking on the PDF icon in the toolbar."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to select a large range of cells without scrolling? Type the range reference (e.g. A1:A1000) in the name box then Enter."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to know the valid command line parameters? Start soffice with --help or -h or -?"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/guide/start_parameters.html", "", soffice}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Fit your sheet or print ranges to a page with Format ▸ Page ▸ Sheet Tab ▸ Scaling Mode."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to include a list item without a bullet or number? Use “Insert Unnumbered Entry” in the Bullets and Numbering toolbar."), "HID_NUM_TOOLBOX", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can rotate cells table orientation with Table ▸ Properties… ▸ Text Flow ▸ Text orientation."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "In %PRODUCTNAME Draw to change the 0/0 point of the rulers, drag the intersection of the two rulers in the top left corner into the workspace."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Move a column in Calc between two others in one step? Click the header then a cell in the column, keep mouse button and move to the target with %MOD2 key."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Automatically mark alphabetical index entries using a concordance file."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/indices_index.html", "", swriter}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use Format ▸ Align Objects in Impress or Shape ▸ Align Objects in Draw (or the context menu) for precise positioning of objects: it centers on the page if one object is selected or works on the group respectively."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Do not use tabs to space items on a Writer document. Depending on what you are trying to do, a borderless table can be a better choice."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "No need to scroll through the list at Tools ▸ Customize ▸ Keyboard to find a shortcut: just type it."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME can automatically add a numbered caption when you insert objects. See Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ AutoCaption."), "modules/swriter/ui/optcaptionpage/OptCaptionPage", "", swriter}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/optionen/01041100.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "With %PRODUCTNAME you can use your Google Mail account to do a mail merge. Fill in Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ Mail Merge Email."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/form_letters_main.html", "", swriter}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Keep column headers of a sheet visible when scrolling lines via View ▸ Freeze Cells ▸ Freeze First Row."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You want to start working with Basic macros? Take a look at the examples under Tools ▸ Macros ▸ Edit Macros."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Apply Heading paragraph styles in Writer with shortcut keys: %MOD1+1 applies Heading 1, %MOD1+2 applies Heading 2, etc."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Do not get lost in large documents. Use the Navigator (F5) to find your way through the content."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Edit ▸ Find and Replace lets you insert special characters directly: right click in input fields or press Shift+%MOD1+S."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need custom contents for metadata properties? File ▸ Properties ▸ Custom Properties tab lets you create what you want."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to see, but not print, an object in Draw? Draw it on a layer for which the “Printable” flag is not set (right-click the layer’s tab and choose “Modify Layer”)."), "", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To insert the current date in your document, use Insert ▸ Field ▸ Date."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Got many images in your Writer document? Speed up the display by disabling View ▸ Images and charts."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use Sheet ▸ Fill Cells ▸ Random Number to generate a random series based on various distributions."), "modules/scalc/ui/randomnumbergenerator/RandomNumberGeneratorDialog", "", scalc}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/02140700.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Rename your slides in Impress to help you define “Go to page” interactions and to have a summary more explicit than Slide1, Slide2…"), "", "", simpress},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to display text before a heading number? Open the Numbering tab of the “Heading Numbering” dialog and enter the desired text in “Before”. For example, type “Chapter ” to display “Chapter 1”."), "modules/swriter/ui/outlinenumberingpage/prefix", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Transpose a Writer table? Copy and paste in Calc, transpose with copy/paste special then copy/paste special ▸ Formatted text in Writer."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To get the “Vertical Text” tool in the Drawing toolbar, check Tools ▸ Options ▸ Languages and Locales ▸ General ▸ Default languages for Documents ▸ Asian (and make the button visible with right-click and then Visible Buttons ▸ Vertical Text)."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To quickly zoom in on range selection, right click on the zoom part of the status bar and choose Optimal."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can sign existing PDF files and also verify those signatures."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/guide/digital_signatures.html", "", soffice}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Often create one document from another? Consider using a template."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use Format ▸ Conditional Formatting ▸ Manage in Calc to find out which cells have been defined with conditional formatting."), "modules/scalc/ui/conditionalformatdialog/ConditionalFormatDialog", "", scalc}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/05120000.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Tools ▸ Detective ▸ Mark Invalid Data highlights all cells in the sheet that contain values outside the validation rules."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/06030800.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Use font embedding for greater interoperability with other office suites at File ▸ Properties ▸ Font."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To convert a formula into static values you do not need to copy/paste; use Data ▸ Calculate ▸ Formula to Value."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can reformat all comments in a document by clicking the down arrow in a comment and choose “Format all Comments”."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Writer helps you to make backups: with File ▸ Save a Copy you create a new document continuing to work on the original."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "When you have created a Style based on another, you can enter a percentage value or a point value (e.g. 110% or −2pt or +5pt)."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To copy a comment without losing the content of the target cell you should use Paste Special and uncheck everything except “Comments” in dialog. Use Operations “Add” to not override existing content."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Batch-convert your Microsoft Office documents to the OpenDocument format by using the Document Converter wizard in menu File ▸ Wizards ▸ Document Converter."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "When editing a cell in place, you can right click and Insert fields: Date, Sheet name, Document title, etc."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Need to move a Writer table? Table ▸ Select ▸ Table and Insert ▸ Frame ▸ Frame and move where you want."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "With Tools ▸ AutoText ▸ AutoText ▸ Import you can select a Word document or a template containing the AutoText entries that you want to import."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Do not insert manual breaks to separate two paragraphs. Rather change Indents & Spacing ▸ Spacing ▸ Below paragraph at the style/paragraph properties."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Keep the zeros before a number by using the “leading zeroes” cell format option or format the cell as text before entering the number."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to return to default after applying a list style? Click Bullets or Numbering On/Off tool on the Formatting toolbar."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Delete all of your printing areas in one step: select all sheets, then Format ▸ Print Ranges ▸ Clear."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Add background images to spreadsheets via Insert ▸ Image or drag a background from the Gallery, then Format ▸ Arrange ▸ To Background."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Having trouble pasting text from PDF files or webpages into documents? Try to paste as unformatted text (%MOD1+%MOD2+Shift+V)."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "In Calc use TRIMMEAN() to return the mean of a data set excluding the highest and lowest values."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060182.html?DbPAR=CALC#bm_id3152966", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "The 4th optional parameter of VLOOKUP Calc function indicates whether the first column of data is sorted. If not, enter FALSE or zero."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Toolbars are contextual—they open depending on the context. If you do not want that, uncheck them from View ▸ Toolbars."), "", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can create a master document from the current Writer document by using File ▸ Send ▸ Create Master Document."), "SW_HID_SEND_MASTER_CTRL_PUSHBUTTON_CANCEL", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to center cells on a printed page in Calc? Format ▸ Page, Page ▸ Layout settings ▸ Table alignment."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Frames can be linked so that the text can flow from one to the other as in desktop publishing."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/text_frame.html", "", swriter}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can create a chart based on a Writer table by clicking in the table and choosing Insert ▸ Chart."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Select options in Tools ▸ Options ▸ %PRODUCTNAME Writer ▸ Formatting Aids ▸ Display Formatting to specify which non-printing characters are displayed."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to jump to a particular page by its number? Click the left-most statusbar entry or use Edit ▸ Go To Page… or press %MOD1+G."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME supports over 150 languages."), "https://wiki.documentfoundation.org/Language_support_of_LibreOffice", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Uncheck Slide Show ▸ Settings ▸ Presentation always on top if you need another program displays its window to the front of your presentation."), "", "", simpress},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to find the words in bold in a Writer document? Edit ▸ Find and Replace ▸ Other options ▸ Attributes ▸ Font weight."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/finding.html", "", swriter}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "You can sort paragraphs or table rows alphabetically or numerically per Tools ▸ Sort."), "modules/swriter/ui/sortdialog/SortDialog", "", swriter}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/01/06100000.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "To insert a paragraph before (after) a section, press %MOD2+Enter at the beginning (end) of the section."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME has a template center to create good looking documents—check it out."), "https://extensions.libreoffice.org/?q=&Tags[]=118", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Calculate loan repayments with Calc: eg. PMT(2%/12;36;2500) interest rate per payment period 2%/12, 36 months, loan amount 2500."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060119.html?DbPAR=CALC#bm_id3149577", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Cannot find what you want with the VLOOKUP function in Calc? With INDEX and MATCH you can do anything!"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/01/04060109.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to show hidden column A? Click a cell in column B, press the left mouse button, move the mouse to the left, release. Then switch it on via Format ▸ Columns ▸ Show."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To change the number of a page in Writer, go to the properties of the first paragraph and at the Text Flow tab check Break ▸ Insert and enter the number."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Run %PRODUCTNAME in any browser via rollApp."), "https://www.rollapp.com/app/lowriter", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Strange error code in Calc, Err: followed by a number? This page gives the explanation:"), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/05/02140000.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Include a paragraph that is not a heading in the “Table of Contents” by giving a numerical outline level to the paragraph in the “Outline & List” tab in the paragraph settings."), "modules/swriter/ui/numparapage/comboLB_OUTLINE_LEVEL", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Apart from table of contents, %PRODUCTNAME can create Alphabetical, Illustrations, Tables, Objects, Bibliography, User-Defined indexes."), "modules/swriter/ui/tocdialog/TocDialog", "", swriter}, //https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/swriter/guide/indices_toc.html
+ { NC_("RID_CUI_TIPOFTHEDAY", "Unable to modify or delete a custom cell style? Check all sheets, none should be protected."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "You need to fill a series? Select the cell range and Sheet ▸ Fill Cells ▸ Fill Series and choose between Linear, Growth, Date and AutoFill."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/guide/calc_series.html", "", scalc}, //local help missing
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to know if a cell is referred in formulas of other cells? Tools ▸ Detective ▸ Trace Dependents (Shift+F5)."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "In the replace input field of auto correct options you can use the wildcards .*"), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want to duplicate the above line? Press %MOD1+D or use Sheet ▸ Fill Cells ▸ Fill Down."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To search in several spreadsheets, select them before you start the search."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Drag & drop cells from Calc into the normal view of a slide creates a table; into the outline view, each cell creates a line in the outline."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "%PRODUCTNAME helps you not to enter two or more spaces in Writer. Check Tools ▸ AutoCorrect ▸ AutoCorrect Options ▸ Options ▸ Ignore double spaces."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Want the cursor to go into the cell to the right, after entering a value in Calc? Use the Tab key instead of Enter."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "To display the scrollbar to the left, enable Tools ▸ Options ▸ Languages and Locales ▸ General ▸ Complex text and right click a sheet in Sheet tabs above Status bar ▸ Right-To-Left."), "", "", scalc},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Drag a formatted object to the Styles and Formatting window. A dialog box opens, just enter the name of the new style."), "", "", swriter},
+ { NC_("RID_CUI_TIPOFTHEDAY", "New versions of %PRODUCTNAME provide new features, bug fixes, and security patches. Keep your software updated!"), "SFX2_HID_DLG_CHECKFORONLINEUPDATE", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Developing new XSLT and XML filters?"), "https://fridrich.blogspot.com/2013/08/extending-swiss-army-knife-overview.html", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Press Shift+F1 to see any available extended tooltips in dialog boxes, when \"Extended tips\" is not enabled in Tools ▸ Options ▸ %PRODUCTNAME ▸ General."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/shared/05/00000120.html", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Never use certain arrow styles? Remove them by using the Delete button on the Format ▸ Text Box and Shape ▸ Line ▸ Arrow Styles tab."), "cui/ui/lineendstabpage/BTN_MODIFY", "", sdraw},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Don’t like the position of some icons on your toolbar? Change it with Tools ▸ Customize ▸ Toolbars tab ▸ Target."), "CUI_HID_SVX_CONFIG_TOOLBAR", "", soffice},
+ { NC_("RID_CUI_TIPOFTHEDAY", "Can’t find a command in the menus? Try Shift+ESC."), ".uno:CommandPopup", "", soffice},
};
#define STR_HELP_LINK NC_("STR_HELP_LINK", "%PRODUCTNAME Help")
diff --git a/cui/inc/toolbarmode.hrc b/cui/inc/toolbarmode.hrc
index d073eaaf996a..1891795b93cf 100644
--- a/cui/inc/toolbarmode.hrc
+++ b/cui/inc/toolbarmode.hrc
@@ -9,7 +9,7 @@
#pragma once
-#define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(u8##String))
+#define NC_(Context, String) TranslateId(Context, u8##String)
#include <rtl/ustring.hxx>
#include <tuple>
diff --git a/cui/inc/treeopt.hrc b/cui/inc/treeopt.hrc
index c7ee66d7e8d0..602eb5b6b47a 100644
--- a/cui/inc/treeopt.hrc
+++ b/cui/inc/treeopt.hrc
@@ -23,10 +23,11 @@
#include <sfx2/pageids.hxx>
#include <svx/dialogs.hrc>
#include <svx/svxids.hrc>
+#include <unotools/resmgr.hxx>
#include <utility>
-#define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(u8##String))
+#define NC_(Context, String) TranslateId(Context, u8##String)
const std::pair<TranslateId, sal_uInt16> SID_GENERAL_OPTIONS_RES[] =
{
@@ -49,12 +50,14 @@ const std::pair<TranslateId, sal_uInt16> SID_GENERAL_OPTIONS_RES[] =
const std::pair<TranslateId, sal_uInt16> SID_LANGUAGE_OPTIONS_RES[] =
{
- { NC_("SID_LANGUAGE_OPTIONS_RES", "Language Settings"), 0 },
- { NC_("SID_LANGUAGE_OPTIONS_RES", "Languages"), OFA_TP_LANGUAGES },
+ { NC_("SID_LANGUAGE_OPTIONS_RES", "Languages and Locales"), 0 },
+ { NC_("SID_LANGUAGE_OPTIONS_RES", "General"), OFA_TP_LANGUAGES },
{ NC_("SID_LANGUAGE_OPTIONS_RES", "Writing Aids"), RID_SFXPAGE_LINGU },
{ NC_("SID_LANGUAGE_OPTIONS_RES", "Searching in Japanese"), RID_SVXPAGE_JSEARCH_OPTIONS },
{ NC_("SID_LANGUAGE_OPTIONS_RES", "Asian Layout"), RID_SVXPAGE_ASIAN_LAYOUT },
- { NC_("SID_LANGUAGE_OPTIONS_RES", "Complex Text Layout"), RID_SVXPAGE_OPTIONS_CTL }
+ { NC_("SID_LANGUAGE_OPTIONS_RES", "Complex Text Layout"), RID_SVXPAGE_OPTIONS_CTL },
+ { NC_("SID_LANGUAGE_OPTIONS_RES", "LanguageTool Server"), RID_SVXPAGE_LANGTOOL_OPTIONS },
+ { NC_("SID_LANGUAGE_OPTIONS_RES", "DeepL Server"), RID_SVXPAGE_DEEPL_OPTIONS }
};
const std::pair<TranslateId, sal_uInt16> SID_INET_DLG_RES[] =
diff --git a/cui/inc/twolines.hrc b/cui/inc/twolines.hrc
index c0e46d70144e..2c338d8f0e65 100644
--- a/cui/inc/twolines.hrc
+++ b/cui/inc/twolines.hrc
@@ -10,10 +10,11 @@
#pragma once
#include <sal/types.h>
+#include <unotools/resmgr.hxx>
#include <utility>
-#define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(u8##String))
+#define NC_(Context, String) TranslateId(Context, u8##String)
#define CHRDLG_ENCLOSE_NONE 0
#define CHRDLG_ENCLOSE_ROUND 1
diff --git a/cui/inc/whatsnew.hrc b/cui/inc/whatsnew.hrc
new file mode 100644
index 000000000000..e155a597bcf2
--- /dev/null
+++ b/cui/inc/whatsnew.hrc
@@ -0,0 +1,42 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ */
+
+#pragma once
+
+#define NC_(Context, String) TranslateId(Context, u8##String)
+
+#include <rtl/ustring.hxx>
+#include <config_python.h>
+#include <tuple>
+#include <unotools/resmgr.hxx>
+
+/*
+ * std:tuple consists of <text, image>
+ * image:
+ * place new images at extra/source/whatsnew
+ * do not forget to add the files to vcl/Package_whatsnew.mk
+ * images are cut-off at 600x400px
+*/
+
+const std::tuple<TranslateId, OUString> WELCOME_STRINGARRAY[] =
+{
+ { NC_("RID_CUI_WHATSNEW", "%PRODUCTNAME is a powerful and free office suite, used by millions of people around the world."), "LibreOffice.gif"},
+ { NC_("RID_CUI_WHATSNEW", "%PRODUCTNAME uses the reliable and trustworthy standard open document format."), "ODF.png"},
+ { NC_("RID_CUI_WHATSNEW", "%PRODUCTNAME blends into every operation system and provides full customization."), "Configurability.png"},
+ { NC_("RID_CUI_WHATSNEW", "%PRODUCTNAME is open source: Your project, your data, your freedom."), "Community.png"},
+};
+
+const std::tuple<TranslateId, OUString> WHATSNEW_STRINGARRAY[] =
+{
+ { NC_("RID_CUI_WHATSNEW", "Version 24.8 brings a shiny WhatsNew dialog :-)"), "whatsnew1.png"},
+};
+
+#define STR_WELCOME NC_("STR_WELCOME", "Welcome to %PRODUCTNAME!")
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ \ No newline at end of file
diff --git a/cui/inc/widgettestdlg.hxx b/cui/inc/widgettestdlg.hxx
new file mode 100644
index 000000000000..02ab7f317894
--- /dev/null
+++ b/cui/inc/widgettestdlg.hxx
@@ -0,0 +1,32 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+* This file is part of the LibreOffice 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/.
+*/
+
+#pragma once
+
+#include <tools/link.hxx>
+#include <vcl/weld.hxx>
+#include <vcl/weldutils.hxx>
+
+class WidgetTestDialog final : public weld::GenericDialogController
+{
+private:
+ std::unique_ptr<weld::Button> m_xOKButton;
+ std::unique_ptr<weld::Button> m_xCancelButton;
+ std::unique_ptr<weld::TreeView> m_xTreeView;
+ std::unique_ptr<weld::TreeView> m_xTreeView2;
+
+ DECL_LINK(OkHdl, weld::Button&, void);
+ DECL_LINK(CancelHdl, weld::Button&, void);
+
+ void FillTreeView();
+
+public:
+ WidgetTestDialog(weld::Window* pParent);
+ ~WidgetTestDialog();
+};
diff --git a/cui/qa/uitest/dialogs/chardlg.py b/cui/qa/uitest/dialogs/chardlg.py
index 49adfe6d9980..686cb6472ac8 100644
--- a/cui/qa/uitest/dialogs/chardlg.py
+++ b/cui/qa/uitest/dialogs/chardlg.py
@@ -8,6 +8,7 @@ from libreoffice.uno.propertyvalue import mkPropertyValues
from uitest.framework import UITestCase
from uitest.uihelper.common import select_pos
from uitest.uihelper.common import get_state_as_dict
+from uitest.uihelper.common import select_by_text
# Test for cui/source/tabpages/chardlg.cxx.
class Test(UITestCase):
@@ -34,8 +35,8 @@ class Test(UITestCase):
xFontTransparency.executeAction("UP", tuple())
# Verify the result.
- drawPage = component.getDrawPages().getByIndex(0)
- shape = drawPage.getByIndex(0)
+ drawPage = component.getDrawPages()[0]
+ shape = drawPage[0]
# Without the accompanying fix in place, this test would have failed with:
# AssertionError: 100 != 5
@@ -43,6 +44,80 @@ class Test(UITestCase):
# COL_AUTO.
self.assertEqual(shape.CharTransparence, 5)
+ def testSvxCharEffectsPageTheme(self):
+ # Given a document with a document theme:
+ # Start Impress.
+ with self.ui_test.create_doc_in_start_center("impress") as component:
+ template = self.xUITest.getTopFocusWindow()
+ self.ui_test.close_dialog_through_button(template.getChild("close"))
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("impress_win")
+
+ # Set theme colors.
+ drawPage = component.getDrawPages()[0]
+ master = drawPage.MasterPage
+ theme = mkPropertyValues({
+ "Name": "nameA",
+ "ColorSchemeName": "colorSetA",
+ "ColorScheme": tuple([
+ 0x000000, # dk1
+ 0x000000, # lt1
+ 0x000000, # dk2
+ 0x000000, # lt2
+ 0x000000, # accent1
+ 0x000000, # accent2
+ 0x000000, # accent3
+ 0x000000, # accent4
+ 0x000000, # accent5
+ 0x000000, # accent6
+ 0x000000, # hlink
+ 0x000000, # folHlink
+ ])
+ })
+ master.ThemeUnoRepresentation = theme
+
+ # Select the title shape.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+ editWin.executeAction("TYPE", mkPropertyValues({"TEXT": "t"}))
+ self.xUITest.executeCommand(".uno:SelectAll")
+
+ # Now use Format -> Character.
+ with self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+
+ # When setting the shape text color to accent 1:
+ accent1 = xDialog.getChild("fontcolorlb")
+ accent1.executeAction("OPENLIST", tuple())
+ floatWindow = self.xUITest.getFloatWindow()
+ paletteSelector = floatWindow.getChild("palette_listbox")
+ select_by_text(paletteSelector, "Theme colors")
+ colorSet = floatWindow.getChild("colorset")
+ # 4 would be accent1, +12 is the first from the effect variants.
+ colorSet.executeAction("CHOOSE", mkPropertyValues({"POS": "16"}))
+
+ # Then make sure the doc model has the correct color theme index:
+ drawPage = component.getDrawPages()[0]
+ shape = drawPage[0]
+ paragraphs = shape.createEnumeration()
+ paragraph = paragraphs.nextElement()
+ portions = paragraph.createEnumeration()
+ portion = portions.nextElement()
+
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: -1 != 3
+ # i.e. no theme index was set, instead of accent1 (index into the above color scheme).
+ self.assertEqual(portion.CharColorTheme, 3)
+
+ # Then make sure that '80% lighter' is lum-mod=2000 and lum-off=8000:
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 10000 != 2000
+ # i.e. the effects where not applied, luminance modulation was the default instead of a
+ # custom value.
+ self.assertEqual(portion.CharColorLumMod, 5000)
+ self.assertEqual(portion.CharColorLumOff, 5000)
+
def testSvxCharEffectsPageWriter(self):
# Start Writer.
with self.ui_test.create_doc_in_start_center("writer") as component:
@@ -75,7 +150,6 @@ class Test(UITestCase):
# Start Writer.
with self.ui_test.create_doc_in_start_center("writer"):
doc = self.xUITest.getTopFocusWindow()
- editWin = doc.getChild("writer_edit")
# Use Format -> Character.
with self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
diff --git a/cui/qa/uitest/dialogs/macroselectordlg.py b/cui/qa/uitest/dialogs/macroselectordlg.py
new file mode 100644
index 000000000000..96ba11a2d888
--- /dev/null
+++ b/cui/qa/uitest/dialogs/macroselectordlg.py
@@ -0,0 +1,44 @@
+#
+# 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/.
+#
+
+from uitest.framework import UITestCase
+from uitest.uihelper.common import get_state_as_dict
+
+class tdf145978(UITestCase):
+ def test_tdf145978(self):
+ with self.ui_test.execute_dialog_through_command(".uno:RunMacro") as xDialog:
+ xCategoriesTree = xDialog.getChild("categories")
+ xCategoriesTreeEntry = xCategoriesTree.getChild('1') #Application Macros
+ xCategoriesTreeEntry.executeAction("EXPAND", tuple())
+
+ xSubCategoriesTreeEntry = None
+ for i in xCategoriesTreeEntry.getChildren():
+ xChild = xCategoriesTreeEntry.getChild(i)
+ if get_state_as_dict(xChild)["Text"] == "HelloWorld":
+ xSubCategoriesTreeEntry = xChild
+ break
+
+ xSubCategoriesTreeEntry.executeAction("SELECT", tuple())
+
+ xCommandsTree = xDialog.getChild("commands")
+
+ xCommandsTreeEntry = None
+ for i in xCommandsTree.getChildren():
+ xChild = xCommandsTree.getChild(i)
+ if get_state_as_dict(xChild)["Text"] == "HelloWorldPython":
+ xCommandsTreeEntry = xChild
+ break
+
+ xCommandsTreeEntry.executeAction("SELECT", tuple())
+
+ #Verify the dialog reloads with previous run macro selected
+ with self.ui_test.execute_dialog_through_command(".uno:RunMacro") as xDialog:
+ xTree = xDialog.getChild("categories")
+ self.assertEqual("HelloWorld", get_state_as_dict(xTree)["SelectEntryText"])
+ xTree = xDialog.getChild("commands")
+ self.assertEqual("HelloWorldPython", get_state_as_dict(xTree)["SelectEntryText"])
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/cui/qa/uitest/dialogs/shortcuts.py b/cui/qa/uitest/dialogs/shortcuts.py
index 99d2bd1ccedc..ac8a0a791496 100644
--- a/cui/qa/uitest/dialogs/shortcuts.py
+++ b/cui/qa/uitest/dialogs/shortcuts.py
@@ -15,7 +15,6 @@ class Test(UITestCase):
def test_tab_navigation(self):
with self.ui_test.create_doc_in_start_center("writer"):
xWriterDoc = self.xUITest.getTopFocusWindow()
- xWriterEdit = xWriterDoc.getChild("writer_edit")
with self.ui_test.execute_dialog_through_command(".uno:EditStyle") as xDialog:
diff --git a/cui/qa/uitest/tabpages/tpcolor.py b/cui/qa/uitest/tabpages/tpcolor.py
new file mode 100644
index 000000000000..4e7b8261ff83
--- /dev/null
+++ b/cui/qa/uitest/tabpages/tpcolor.py
@@ -0,0 +1,69 @@
+#
+# 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/.
+#
+
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.framework import UITestCase
+from uitest.uihelper.common import select_pos
+from uitest.uihelper.common import select_by_text
+
+
+# Test for cui/source/tabpages/tpcolor.cxx.
+class Test(UITestCase):
+
+ def testSvxColorTabPageTheme(self):
+ # Given an Impress document with a theme:
+ with self.ui_test.create_doc_in_start_center("impress") as component:
+ template = self.xUITest.getTopFocusWindow()
+ self.ui_test.close_dialog_through_button(template.getChild("close"))
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("impress_win")
+ # Set theme colors.
+ drawPage = component.getDrawPages()[0]
+ master = drawPage.MasterPage
+ theme = mkPropertyValues({
+ "Name": "nameA",
+ "ColorSchemeName": "colorSetA",
+ "ColorScheme": tuple([
+ 0x000000, # dk1
+ 0x000000, # lt1
+ 0x000000, # dk2
+ 0x000000, # lt2
+ 0x0000ff, # accent1
+ 0x000000, # accent2
+ 0x000000, # accent3
+ 0x000000, # accent4
+ 0x000000, # accent5
+ 0x000000, # accent6
+ 0x000000, # hlink
+ 0x000000, # folHlink
+ ])
+ })
+ master.ThemeUnoRepresentation = theme
+ # Select the title shape.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+
+ # When using right click -> Area to refer to a theme for shape fill:
+ with self.ui_test.execute_dialog_through_command(".uno:FormatArea") as xDialog:
+ tabControl = xDialog.getChild("tabcontrol")
+ # Area
+ select_pos(tabControl, "0")
+ # Color
+ btnColor = xDialog.getChild("btncolor")
+ btnColor.executeAction("CLICK", tuple())
+ paletteSelector = xDialog.getChild("paletteselector")
+ select_by_text(paletteSelector, "Theme colors")
+ colorSelector = xDialog.getChild("colorset")
+ colorSelector.executeAction("CHOOSE", mkPropertyValues({"POS": "4"}))
+
+ # Then make sure the doc model is updated accordingly:
+ shape = drawPage[0]
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: -1 != 3
+ # i.e. the theme metadata of the selected fill color was lost.
+ self.assertEqual(shape.FillColorTheme, 3)
+
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/cui/qa/unit/cui-dialogs-test.cxx b/cui/qa/unit/cui-dialogs-test.cxx
index f4f73facbaa6..88a1d9b09464 100644
--- a/cui/qa/unit/cui-dialogs-test.cxx
+++ b/cui/qa/unit/cui-dialogs-test.cxx
@@ -50,15 +50,14 @@ void CuiDialogsTest::initialize()
{
mpFact = SvxAbstractDialogFactory::Create();
mxModel.reset(new SdrModel(nullptr, nullptr, true));
- mxModel->GetItemPool().FreezeIdRanges();
mxAttr.reset(new SfxItemSet(mxModel->GetItemPool()));
}
void CuiDialogsTest::registerKnownDialogsByID(mapType& rKnownDialogs)
{
// fill map of known dialogs
- rKnownDialogs["cui/ui/formatcellsdialog.ui"] = 0;
- rKnownDialogs["cui/ui/textdialog.ui"] = 1;
+ rKnownDialogs["cui/ui/formatcellsdialog.ui"_ostr] = 0;
+ rKnownDialogs["cui/ui/textdialog.ui"_ostr] = 1;
}
VclPtr<VclAbstractDialog> CuiDialogsTest::createDialogByID(sal_uInt32 nID)
@@ -69,7 +68,7 @@ VclPtr<VclAbstractDialog> CuiDialogsTest::createDialogByID(sal_uInt32 nID)
{
case 0: // "cui/ui/formatcellsdialog.ui"
{
- pReturnDialog = mpFact->CreateSvxFormatCellsDialog(nullptr, mxAttr.get(), *mxModel);
+ pReturnDialog = mpFact->CreateSvxFormatCellsDialog(nullptr, *mxAttr, *mxModel, true);
break;
}
diff --git a/cui/qa/unit/data/cui-dialogs-test.txt b/cui/qa/unit/data/cui-dialogs-test.txt
index cb176088446c..7a8e55240c93 100644
--- a/cui/qa/unit/data/cui-dialogs-test.txt
+++ b/cui/qa/unit/data/cui-dialogs-test.txt
@@ -53,7 +53,6 @@ cui/ui/textdialog.ui
cui/ui/aboutconfigdialog.ui
-cui/ui/aboutconfigvaluedialog.ui
cui/ui/aboutdialog.ui
cui/ui/accelconfigpage.ui
cui/ui/acorexceptpage.ui
diff --git a/cui/source/customize/CommandCategoryListBox.cxx b/cui/source/customize/CommandCategoryListBox.cxx
index 7823607114e8..3c75cb15dc4c 100644
--- a/cui/source/customize/CommandCategoryListBox.cxx
+++ b/cui/source/customize/CommandCategoryListBox.cxx
@@ -35,7 +35,7 @@
// include search util
#include <com/sun/star/util/SearchFlags.hpp>
#include <com/sun/star/util/SearchAlgorithms2.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <unotools/textsearch.hxx>
#include <dialmgr.hxx>
@@ -134,13 +134,12 @@ void CommandCategoryListBox::Init(const css::uno::Reference<css::uno::XComponent
// Add the category of "All commands"
m_aGroupInfo.push_back(
std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_ALLFUNCTIONS, 0));
- m_xControl->append(
- OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())),
- CuiResId(RID_SVXSTR_ALLFUNCTIONS));
+ m_xControl->append(weld::toId(m_aGroupInfo.back().get()),
+ CuiResId(RID_CUISTR_ALLFUNCTIONS));
}
// Separate the "All commands"category from the actual categories
- m_xControl->append_separator("");
+ m_xControl->append_separator(u""_ustr);
typedef std::pair<OUString, sal_Int16> str_id;
std::vector<str_id> aCategories;
@@ -181,26 +180,23 @@ void CommandCategoryListBox::Init(const css::uno::Reference<css::uno::XComponent
sal_Int16 nGroupID = a.second;
m_aGroupInfo.push_back(
std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_FUNCTION, nGroupID));
- m_xControl->append(
- OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())),
- rGroupName);
+ m_xControl->append(weld::toId(m_aGroupInfo.back().get()), rGroupName);
}
// Separate regular commands from styles and macros
- m_xControl->append_separator("");
+ m_xControl->append_separator(u""_ustr);
// Add macros category
m_aGroupInfo.push_back(
std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_SCRIPTCONTAINER, 0, nullptr));
- m_xControl->append(OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())),
- CuiResId(RID_SVXSTR_MACROS));
+ m_xControl->append(weld::toId(m_aGroupInfo.back().get()), CuiResId(RID_CUISTR_MACROS));
// Add styles category
//TODO: last param should contain user data?
m_aGroupInfo.push_back(
std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_STYLES, 0, nullptr));
- m_xControl->append(OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())),
- CuiResId(RID_SVXSTR_GROUP_STYLES));
+ m_xControl->append(weld::toId(m_aGroupInfo.back().get()),
+ CuiResId(RID_CUISTR_GROUP_STYLES));
}
catch (const css::uno::RuntimeException&)
{
@@ -260,9 +256,7 @@ void CommandCategoryListBox::FillFunctionsList(
pGrpInfo->sCommand = rInfo.Command;
pGrpInfo->sLabel = sUIName;
pGrpInfo->sTooltip = sTooltipLabel;
- pFunctionListBox->append(
- OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())), sUIName,
- xImage);
+ pFunctionListBox->append(weld::toId(m_aGroupInfo.back().get()), sUIName, xImage);
}
}
@@ -276,7 +270,7 @@ OUString CommandCategoryListBox::getCommandName(const OUString& sCommand)
if (xModuleConf.is())
{
::comphelper::SequenceAsHashMap lProps(xModuleConf->getByName(sCommand));
- sUIName = lProps.getUnpackedValueOrDefault("Name", OUString());
+ sUIName = lProps.getUnpackedValueOrDefault(u"Name"_ustr, OUString());
}
}
catch (const css::uno::RuntimeException&)
@@ -301,8 +295,7 @@ void CommandCategoryListBox::categorySelected(CuiConfigFunctionListBox* pFunctio
const OUString& filterTerm,
SaveInData* pCurrentSaveInData)
{
- SfxGroupInfo_Impl* pInfo
- = reinterpret_cast<SfxGroupInfo_Impl*>(m_xControl->get_active_id().toInt64());
+ SfxGroupInfo_Impl* pInfo = weld::fromId<SfxGroupInfo_Impl*>(m_xControl->get_active_id());
std::vector<std::unique_ptr<weld::TreeIter>> aNodesToExpand;
pFunctionListBox->freeze();
pFunctionListBox->ClearAll();
@@ -318,7 +311,7 @@ void CommandCategoryListBox::categorySelected(CuiConfigFunctionListBox* pFunctio
for (sal_Int32 nCurPos = 0; nCurPos < nEntryCount; ++nCurPos)
{
SfxGroupInfo_Impl* pCurrentInfo
- = reinterpret_cast<SfxGroupInfo_Impl*>(m_xControl->get_id(nCurPos).toInt64());
+ = weld::fromId<SfxGroupInfo_Impl*>(m_xControl->get_id(nCurPos));
if (!pCurrentInfo) //separator
continue;
@@ -392,11 +385,11 @@ void CommandCategoryListBox::categorySelected(CuiConfigFunctionListBox* pFunctio
OUString sUIName;
if (childGroup->getName() == "user")
{
- sUIName = CuiResId(RID_SVXSTR_MYMACROS);
+ sUIName = CuiResId(RID_CUISTR_MYMACROS);
}
else if (childGroup->getName() == "share")
{
- sUIName = CuiResId(RID_SVXSTR_PRODMACROS);
+ sUIName = CuiResId(RID_CUISTR_PRODMACROS);
}
else
{
@@ -411,9 +404,7 @@ void CommandCategoryListBox::categorySelected(CuiConfigFunctionListBox* pFunctio
m_aGroupInfo.push_back(std::make_unique<SfxGroupInfo_Impl>(
SfxCfgKind::GROUP_SCRIPTCONTAINER, 0));
std::unique_ptr<weld::TreeIter> xMacroGroup(pFunctionListBox->tree_append(
- OUString::number(
- reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())),
- sUIName));
+ weld::toId(m_aGroupInfo.back().get()), sUIName));
{
// tdf#128010: Do not nag user asking to enable JRE: if it's disabled,
@@ -455,8 +446,7 @@ void CommandCategoryListBox::categorySelected(CuiConfigFunctionListBox* pFunctio
std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_STYLES, 0));
// pIt.sLabel is Name of the style family
std::unique_ptr<weld::TreeIter> xFuncEntry(pFunctionListBox->tree_append(
- OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())),
- pIt.sLabel));
+ weld::toId(m_aGroupInfo.back().get()), pIt.sLabel));
const std::vector<SfxStyleInfo_Impl> lStyles = pStylesInfo->getStyles(pIt.sFamily);
@@ -486,9 +476,8 @@ void CommandCategoryListBox::categorySelected(CuiConfigFunctionListBox* pFunctio
m_aGroupInfo.back()->sCommand = pStyle->sCommand;
m_aGroupInfo.back()->sLabel = pStyle->sLabel;
- pFunctionListBox->append(
- OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())),
- sUIName, xFuncEntry.get());
+ pFunctionListBox->append(weld::toId(m_aGroupInfo.back().get()), sUIName,
+ xFuncEntry.get());
}
// Remove the style group from the list if no children
@@ -547,8 +536,7 @@ void CommandCategoryListBox::addChildren(
m_aGroupInfo.push_back(std::make_unique<SfxGroupInfo_Impl>(
SfxCfgKind::GROUP_SCRIPTCONTAINER, 0, static_cast<void*>(child.get())));
std::unique_ptr<weld::TreeIter> xNewEntry(pFunctionListBox->tree_append(
- OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())), sUIName,
- parentEntry));
+ weld::toId(m_aGroupInfo.back().get()), sUIName, parentEntry));
addChildren(xNewEntry.get(), child, pFunctionListBox, filterTerm, pCurrentSaveInData,
rNodesToExpand);
@@ -581,12 +569,12 @@ void CommandCategoryListBox::addChildren(
continue;
}
- css::uno::Any value = xPropSet->getPropertyValue("URI");
+ css::uno::Any value = xPropSet->getPropertyValue(u"URI"_ustr);
value >>= uri;
try
{
- value = xPropSet->getPropertyValue("Description");
+ value = xPropSet->getPropertyValue(u"Description"_ustr);
value >>= description;
}
catch (css::uno::Exception&)
@@ -596,7 +584,7 @@ void CommandCategoryListBox::addChildren(
if (description.isEmpty())
{
- description = CuiResId(RID_SVXSTR_NOMACRODESC);
+ description = CuiResId(RID_CUISTR_NOMACRODESC);
}
OUString* pScriptURI = new OUString(uri);
@@ -610,9 +598,8 @@ void CommandCategoryListBox::addChildren(
m_aGroupInfo.back()->sCommand = uri;
m_aGroupInfo.back()->sLabel = sUIName;
m_aGroupInfo.back()->sHelpText = description;
- pFunctionListBox->append(
- OUString::number(reinterpret_cast<sal_Int64>(m_aGroupInfo.back().get())), sUIName,
- xImage, parentEntry);
+ pFunctionListBox->append(weld::toId(m_aGroupInfo.back().get()), sUIName, xImage,
+ parentEntry);
}
}
}
diff --git a/cui/source/customize/CustomNotebookbarGenerator.cxx b/cui/source/customize/CustomNotebookbarGenerator.cxx
index 392ea3e37a4e..e1851a72506a 100644
--- a/cui/source/customize/CustomNotebookbarGenerator.cxx
+++ b/cui/source/customize/CustomNotebookbarGenerator.cxx
@@ -29,6 +29,7 @@
#include <com/sun/star/frame/ModuleManager.hpp>
#include <unotools/confignode.hxx>
#include <libxml/parser.h>
+#include <o3tl/string_view.hxx>
#define aUIPropertiesCount 3
@@ -41,13 +42,13 @@ static OUString lcl_activeAppName(vcl::EnumContext::Application eApp)
switch (eApp)
{
case vcl::EnumContext::Application::Writer:
- return "ActiveWriter";
+ return u"ActiveWriter"_ustr;
case vcl::EnumContext::Application::Calc:
- return "ActiveCalc";
+ return u"ActiveCalc"_ustr;
case vcl::EnumContext::Application::Impress:
- return "ActiveImpress";
+ return u"ActiveImpress"_ustr;
case vcl::EnumContext::Application::Draw:
- return "ActiveDraw";
+ return u"ActiveDraw"_ustr;
default:
return OUString();
}
@@ -58,13 +59,13 @@ static OUString lcl_getAppName(vcl::EnumContext::Application eApp)
switch (eApp)
{
case vcl::EnumContext::Application::Writer:
- return "Writer";
+ return u"Writer"_ustr;
case vcl::EnumContext::Application::Calc:
- return "Calc";
+ return u"Calc"_ustr;
case vcl::EnumContext::Application::Impress:
- return "Impress";
+ return u"Impress"_ustr;
case vcl::EnumContext::Application::Draw:
- return "Draw";
+ return u"Draw"_ustr;
default:
return OUString();
}
@@ -73,11 +74,14 @@ static OUString lcl_getAppName(vcl::EnumContext::Application eApp)
static OUString getAppNameRegistryPath()
{
vcl::EnumContext::Application eApp = vcl::EnumContext::Application::Any;
- const Reference<frame::XFrame>& xFrame
- = SfxViewFrame::Current()->GetFrame().GetFrameInterface();
- const Reference<frame::XModuleManager> xModuleManager
- = frame::ModuleManager::create(::comphelper::getProcessComponentContext());
- eApp = vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(xFrame));
+
+ if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
+ {
+ const Reference<frame::XFrame>& xFrame = pViewFrame->GetFrame().GetFrameInterface();
+ const Reference<frame::XModuleManager> xModuleManager
+ = frame::ModuleManager::create(::comphelper::getProcessComponentContext());
+ eApp = vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(xFrame));
+ }
OUString sAppName(lcl_getAppName(eApp));
return "org.openoffice.Office.UI.ToolbarMode/Applications/" + sAppName;
@@ -85,8 +89,8 @@ static OUString getAppNameRegistryPath()
static OUString customizedUIPathBuffer()
{
- OUString sDirPath("${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE(
- "bootstrap") ":UserInstallation}/user/config/soffice.cfg/");
+ OUString sDirPath(u"${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE(
+ "bootstrap") ":UserInstallation}/user/config/soffice.cfg/"_ustr);
rtl::Bootstrap::expandMacros(sDirPath);
return sDirPath;
}
@@ -180,14 +184,18 @@ static xmlDocPtr notebookbarXMLParser(const OString& rDocName, const OString& rU
void CustomNotebookbarGenerator::modifyCustomizedUIFile(const Sequence<OUString>& sUIItemProperties)
{
- OString sCustomizedUIPath = getSystemPath(getCustomizedUIPath());
+ const OUString sUIPath = getCustomizedUIPath();
+ if (osl::File(sUIPath).open(osl_File_OpenFlag_Read) != osl::FileBase::E_None)
+ createCustomizedUIFile();
+
+ const OString sCustomizedUIPath = getSystemPath(sUIPath);
for (auto const& aValue : sUIItemProperties)
{
std::vector<OString> aProperties(aUIPropertiesCount);
for (sal_Int32 aIndex = 0; aIndex < aUIPropertiesCount; aIndex++)
{
sal_Int32 nPos = aIndex;
- OUString sToken = aValue.getToken(nPos, ',', nPos);
+ std::u16string_view sToken = o3tl::getToken(aValue, nPos, ',', nPos);
aProperties[aIndex] = OUStringToOString(sToken, RTL_TEXTENCODING_UTF8);
}
xmlDocPtr doc = notebookbarXMLParser(sCustomizedUIPath, aProperties[0], aProperties[1],
@@ -209,7 +217,8 @@ void CustomNotebookbarGenerator::getFileNameAndAppName(OUString& sAppName,
return;
const auto xContext = comphelper::getProcessComponentContext();
- utl::OConfigurationTreeRoot aRoot(xContext, "org.openoffice.Office.UI.ToolbarMode/", false);
+ utl::OConfigurationTreeRoot aRoot(xContext, u"org.openoffice.Office.UI.ToolbarMode/"_ustr,
+ false);
const Reference<frame::XFrame>& xFrame = pFrame->GetFrame().GetFrameInterface();
const Reference<frame::XModuleManager> xModuleManager = frame::ModuleManager::create(xContext);
@@ -249,25 +258,25 @@ Sequence<OUString> CustomNotebookbarGenerator::getCustomizedUIItem(OUString sNot
const utl::OConfigurationTreeRoot aAppNode(::comphelper::getProcessComponentContext(), aPath,
false);
- const utl::OConfigurationNode aModesNode = aAppNode.openNode("Modes");
+ const utl::OConfigurationNode aModesNode = aAppNode.openNode(u"Modes"_ustr);
const utl::OConfigurationNode aModeNode(aModesNode.openNode(sNotebookbarConfigType));
- const Any aValue = aModeNode.getNodeValue("UIItemProperties");
+ const Any aValue = aModeNode.getNodeValue(u"UIItemProperties"_ustr);
Sequence<OUString> aValues;
aValue >>= aValues;
return aValues;
}
-void CustomNotebookbarGenerator::setCustomizedUIItem(Sequence<OUString> sUIItemProperties,
- OUString sNotebookbarConfigType)
+void CustomNotebookbarGenerator::setCustomizedUIItem(const Sequence<OUString>& rUIItemProperties,
+ const OUString& rNotebookbarConfigType)
{
OUString aPath = getAppNameRegistryPath();
const utl::OConfigurationTreeRoot aAppNode(::comphelper::getProcessComponentContext(), aPath,
true);
- const utl::OConfigurationNode aModesNode = aAppNode.openNode("Modes");
- const utl::OConfigurationNode aModeNode(aModesNode.openNode(sNotebookbarConfigType));
+ const utl::OConfigurationNode aModesNode = aAppNode.openNode(u"Modes"_ustr);
+ const utl::OConfigurationNode aModeNode(aModesNode.openNode(rNotebookbarConfigType));
- css::uno::Any aUIItemProperties(makeAny(sUIItemProperties));
- aModeNode.setNodeValue("UIItemProperties", aUIItemProperties);
+ css::uno::Any aUIItemProperties(rUIItemProperties);
+ aModeNode.setNodeValue(u"UIItemProperties"_ustr, aUIItemProperties);
aAppNode.commit();
}
diff --git a/cui/source/customize/SvxConfigPageHelper.cxx b/cui/source/customize/SvxConfigPageHelper.cxx
index 52265ef093e6..522dfd3eb721 100644
--- a/cui/source/customize/SvxConfigPageHelper.cxx
+++ b/cui/source/customize/SvxConfigPageHelper.cxx
@@ -66,11 +66,11 @@ void SvxConfigPageHelper::InitImageType()
{
theImageType = css::ui::ImageType::COLOR_NORMAL | css::ui::ImageType::SIZE_DEFAULT;
- if (SvtMiscOptions().GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE)
+ if (SvtMiscOptions::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE)
{
theImageType |= css::ui::ImageType::SIZE_LARGE;
}
- else if (SvtMiscOptions().GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_32)
+ else if (SvtMiscOptions::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_32)
{
theImageType |= css::ui::ImageType::SIZE_32;
}
@@ -206,29 +206,29 @@ OUString SvxConfigPageHelper::GetModuleName(std::u16string_view aModuleId)
{
if (aModuleId == u"com.sun.star.text.TextDocument"
|| aModuleId == u"com.sun.star.text.GlobalDocument")
- return "Writer";
+ return u"Writer"_ustr;
else if (aModuleId == u"com.sun.star.text.WebDocument")
- return "Writer/Web";
+ return u"Writer/Web"_ustr;
else if (aModuleId == u"com.sun.star.drawing.DrawingDocument")
- return "Draw";
+ return u"Draw"_ustr;
else if (aModuleId == u"com.sun.star.presentation.PresentationDocument")
- return "Impress";
+ return u"Impress"_ustr;
else if (aModuleId == u"com.sun.star.sheet.SpreadsheetDocument")
- return "Calc";
+ return u"Calc"_ustr;
else if (aModuleId == u"com.sun.star.script.BasicIDE")
- return "Basic";
+ return u"Basic"_ustr;
else if (aModuleId == u"com.sun.star.formula.FormulaProperties")
- return "Math";
+ return u"Math"_ustr;
else if (aModuleId == u"com.sun.star.sdb.RelationDesign")
- return "Relation Design";
+ return u"Relation Design"_ustr;
else if (aModuleId == u"com.sun.star.sdb.QueryDesign")
- return "Query Design";
+ return u"Query Design"_ustr;
else if (aModuleId == u"com.sun.star.sdb.TableDesign")
- return "Table Design";
+ return u"Table Design"_ustr;
else if (aModuleId == u"com.sun.star.sdb.DataSourceBrowser")
- return "Data Source Browser";
+ return u"Data Source Browser"_ustr;
else if (aModuleId == u"com.sun.star.sdb.DatabaseDocument")
- return "Database";
+ return u"Database"_ustr;
return OUString();
}
@@ -248,7 +248,7 @@ OUString SvxConfigPageHelper::GetUIModuleName(
if (a >>= aSeq)
{
- for (css::beans::PropertyValue const& rProp : std::as_const(aSeq))
+ for (css::beans::PropertyValue const& rProp : aSeq)
{
if (rProp.Name == "ooSetupFactoryUIName")
{
@@ -282,7 +282,7 @@ bool SvxConfigPageHelper::GetMenuItemData(
css::uno::Sequence<css::beans::PropertyValue> aProps;
if (rItemContainer->getByIndex(nIndex) >>= aProps)
{
- for (css::beans::PropertyValue const& rProp : std::as_const(aProps))
+ for (css::beans::PropertyValue const& rProp : aProps)
{
if (rProp.Name == ITEM_DESCRIPTOR_COMMANDURL)
{
@@ -325,7 +325,7 @@ bool SvxConfigPageHelper::GetToolbarItemData(
css::uno::Sequence<css::beans::PropertyValue> aProps;
if (rItemContainer->getByIndex(nIndex) >>= aProps)
{
- for (css::beans::PropertyValue const& rProp : std::as_const(aProps))
+ for (css::beans::PropertyValue const& rProp : aProps)
{
if (rProp.Name == ITEM_DESCRIPTOR_COMMANDURL)
{
diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx
index 34cee1368d7a..2a75181ae95a 100644
--- a/cui/source/customize/SvxMenuConfigPage.cxx
+++ b/cui/source/customize/SvxMenuConfigPage.cxx
@@ -20,6 +20,7 @@
#include <sal/config.h>
#include <sal/log.hxx>
+#include <dlgname.hxx>
#include <vcl/weld.hxx>
#include <vcl/svapp.hxx>
#include <vcl/commandevent.hxx>
@@ -34,17 +35,15 @@
#include <comphelper/processfactory.hxx>
-#include <dlgname.hxx>
-
SvxMenuConfigPage::SvxMenuConfigPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rSet, bool bIsMenuBar)
: SvxConfigPage(pPage, pController, rSet)
, m_bIsMenuBar(bIsMenuBar)
{
- m_xGearBtn = m_xBuilder->weld_menu_button("menugearbtn");
+ m_xGearBtn = m_xBuilder->weld_menu_button(u"menugearbtn"_ustr);
m_xGearBtn->show();
m_xContentsListBox.reset(
- new SvxMenuEntriesListBox(m_xBuilder->weld_tree_view("menucontents"), this));
+ new SvxMenuEntriesListBox(m_xBuilder->weld_tree_view(u"menucontents"_ustr), this));
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
m_xDropTargetHelper.reset(new SvxConfigPageFunctionDropTarget(*this, rTreeView));
rTreeView.connect_size_allocate(LINK(this, SvxMenuConfigPage, MenuEntriesSizeAllocHdl));
@@ -76,9 +75,9 @@ SvxMenuConfigPage::SvxMenuConfigPage(weld::Container* pPage, weld::DialogControl
m_xResetBtn->connect_clicked(LINK(this, SvxMenuConfigPage, ResetMenuHdl));
// These operations are not possible on menus/context menus yet
- m_xModifyBtn->remove_item("changeIcon");
- m_xModifyBtn->remove_item("resetIcon");
- m_xModifyBtn->remove_item("restoreItem");
+ m_xModifyBtn->remove_item(u"changeIcon"_ustr);
+ m_xModifyBtn->remove_item(u"resetIcon"_ustr);
+ m_xModifyBtn->remove_item(u"restoreItem"_ustr);
if (!bIsMenuBar)
{
@@ -100,8 +99,7 @@ void SvxMenuConfigPage::ListModified()
pEntries->clear();
for (int i = 0; i < m_xContentsListBox->n_children(); ++i)
- pEntries->push_back(
- reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(i).toInt64()));
+ pEntries->push_back(weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(i)));
GetSaveInData()->SetModified();
GetTopLevelSelection()->SetModified();
@@ -123,7 +121,7 @@ IMPL_LINK(SvxMenuConfigPage, MenuEntriesSizeAllocHdl, const Size&, rSize, void)
SvxMenuConfigPage::~SvxMenuConfigPage()
{
for (int i = 0, nCount = m_xSaveInListBox->get_count(); i < nCount; ++i)
- delete reinterpret_cast<SaveInData*>(m_xSaveInListBox->get_id(i).toInt64());
+ delete weld::fromId<SaveInData*>(m_xSaveInListBox->get_id(i));
m_xSaveInListBox->clear();
}
@@ -136,7 +134,7 @@ void SvxMenuConfigPage::Init()
ReloadTopLevelListBox();
- m_xTopLevelListBox->set_active(0);
+ m_xTopLevelListBox->set_active(m_xTopLevelListBox->get_count() ? 0 : -1);
SelectElement();
m_xCommandCategoryListBox->Init(comphelper::getProcessComponentContext(), m_xFrame,
@@ -154,8 +152,7 @@ void SvxMenuConfigPage::UpdateButtonStates()
bool bIsSeparator
= selection != -1
- && reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(selection).toInt64())
- ->IsSeparator();
+ && weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(selection))->IsSeparator();
bool bIsValidSelection = (m_xContentsListBox->n_children() != 0 && selection != -1);
m_xMoveUpButton->set_sensitive(bIsValidSelection && selection != 0);
@@ -188,9 +185,9 @@ void SvxMenuConfigPage::UpdateButtonStates()
if (pMenuData && m_bIsMenuBar)
{
// Add option (gear_add) will always be enabled
- m_xGearBtn->set_item_sensitive("menu_gear_delete", pMenuData->IsDeletable());
- m_xGearBtn->set_item_sensitive("menu_gear_rename", pMenuData->IsRenamable());
- m_xGearBtn->set_item_sensitive("menu_gear_move", pMenuData->IsMovable());
+ m_xGearBtn->set_item_sensitive(u"menu_gear_delete"_ustr, pMenuData->IsDeletable());
+ m_xGearBtn->set_item_sensitive(u"menu_gear_rename"_ustr, pMenuData->IsRenamable());
+ m_xGearBtn->set_item_sensitive(u"menu_gear_move"_ustr, pMenuData->IsMovable());
}
}
@@ -217,7 +214,7 @@ void SvxMenuConfigPage::DeleteSelectedContent()
// get currently selected menu entry
SvxConfigEntry* pMenuEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry).toInt64());
+ = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry));
// get currently selected menu
SvxConfigEntry* pMenu = GetTopLevelSelection();
@@ -243,7 +240,7 @@ void SvxMenuConfigPage::DeleteSelectedContent()
short SvxMenuConfigPage::QueryReset()
{
- OUString msg = CuiResId(RID_SVXSTR_CONFIRM_MENU_RESET);
+ OUString msg = CuiResId(RID_CUISTR_CONFIRM_MENU_RESET);
OUString saveInName = m_xSaveInListBox->get_active_text();
@@ -268,7 +265,7 @@ void SvxMenuConfigPage::SelectElement()
rTreeView.bulk_insert_for_each(
pEntries->size(), [this, &rTreeView, pEntries](weld::TreeIter& rIter, int nIdx) {
auto const& entry = (*pEntries)[nIdx];
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entry)));
+ OUString sId(weld::toId(entry));
rTreeView.set_id(rIter, sId);
InsertEntryIntoUI(entry, rTreeView, rIter, true);
});
@@ -277,7 +274,7 @@ void SvxMenuConfigPage::SelectElement()
UpdateButtonStates();
}
-IMPL_LINK(SvxMenuConfigPage, GearHdl, const OString&, rIdent, void)
+IMPL_LINK(SvxMenuConfigPage, GearHdl, const OUString&, rIdent, void)
{
if (rIdent == "menu_gear_add")
{
@@ -300,11 +297,11 @@ IMPL_LINK(SvxMenuConfigPage, GearHdl, const OString&, rIdent, void)
SvxConfigEntry* pMenuData = GetTopLevelSelection();
OUString sCurrentName(SvxConfigPageHelper::stripHotKey(pMenuData->GetName()));
- OUString sDesc = CuiResId(RID_SVXSTR_LABEL_NEW_NAME);
+ OUString sDesc = CuiResId(RID_CUISTR_LABEL_NEW_NAME);
SvxNameDialog aNameDialog(GetFrameWeld(), sCurrentName, sDesc);
aNameDialog.set_help_id(HID_SVX_CONFIG_RENAME_MENU);
- aNameDialog.set_title(CuiResId(RID_SVXSTR_RENAME_MENU));
+ aNameDialog.set_title(CuiResId(RID_CUISTR_RENAME_MENU));
if (aNameDialog.run() == RET_OK)
{
@@ -360,7 +357,7 @@ IMPL_LINK_NOARG(SvxMenuConfigPage, AddCommandHdl, weld::Button&, void)
if (nPos == -1)
return;
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
- SvxConfigEntry* pEntry = reinterpret_cast<SvxConfigEntry*>(rTreeView.get_id(nPos).toInt64());
+ SvxConfigEntry* pEntry = weld::fromId<SvxConfigEntry*>(rTreeView.get_id(nPos));
InsertEntryIntoUI(pEntry, rTreeView, nPos, true);
}
@@ -373,7 +370,7 @@ IMPL_LINK_NOARG(SvxMenuConfigPage, RemoveCommandHdl, weld::Button&, void)
}
}
-IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OString&, rIdent, void)
+IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OUString&, rIdent, void)
{
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
if (rIdent == "insertseparator")
@@ -386,11 +383,11 @@ IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OString&, rIdent, void)
else if (rIdent == "insertsubmenu")
{
OUString aNewName;
- OUString aDesc = CuiResId(RID_SVXSTR_SUBMENU_NAME);
+ OUString aDesc = CuiResId(RID_CUISTR_SUBMENU_NAME);
SvxNameDialog aNameDialog(GetFrameWeld(), aNewName, aDesc);
aNameDialog.set_help_id(HID_SVX_CONFIG_NAME_SUBMENU);
- aNameDialog.set_title(CuiResId(RID_SVXSTR_ADD_SUBMENU));
+ aNameDialog.set_title(CuiResId(RID_CUISTR_ADD_SUBMENU));
if (aNameDialog.run() == RET_OK)
{
@@ -425,20 +422,20 @@ IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OString&, rIdent, void)
}
}
-IMPL_LINK(SvxMenuConfigPage, ModifyItemHdl, const OString&, rIdent, void)
+IMPL_LINK(SvxMenuConfigPage, ModifyItemHdl, const OUString&, rIdent, void)
{
if (rIdent == "renameItem")
{
int nActEntry = m_xContentsListBox->get_selected_index();
SvxConfigEntry* pEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry).toInt64());
+ = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry));
OUString aNewName(SvxConfigPageHelper::stripHotKey(pEntry->GetName()));
- OUString aDesc = CuiResId(RID_SVXSTR_LABEL_NEW_NAME);
+ OUString aDesc = CuiResId(RID_CUISTR_LABEL_NEW_NAME);
SvxNameDialog aNameDialog(GetFrameWeld(), aNewName, aDesc);
aNameDialog.set_help_id(HID_SVX_CONFIG_RENAME_MENU_ITEM);
- aNameDialog.set_title(CuiResId(RID_SVXSTR_RENAME_MENU));
+ aNameDialog.set_title(CuiResId(RID_CUISTR_RENAME_MENU));
if (aNameDialog.run() == RET_OK)
{
@@ -477,7 +474,7 @@ IMPL_LINK_NOARG(SvxMenuConfigPage, ResetMenuHdl, weld::Button&, void)
std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(
GetFrameWeld(), VclMessageType::Question, VclButtonsType::YesNo,
- CuiResId(RID_SVXSTR_CONFIRM_RESTORE_DEFAULT_MENU)));
+ CuiResId(RID_CUISTR_CONFIRM_RESTORE_DEFAULT_MENU)));
// Resetting individual top-level menus is not possible at the moment.
// So we are resetting only if it is a context menu
@@ -531,20 +528,19 @@ IMPL_LINK(SvxMenuConfigPage, ContentContextMenuHdl, const CommandEvent&, rCEvt,
bool bIsSeparator
= nSelectIndex != -1
- && reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nSelectIndex).toInt64())
- ->IsSeparator();
+ && weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nSelectIndex))->IsSeparator();
bool bIsValidSelection = (m_xContentsListBox->n_children() != 0 && nSelectIndex != -1);
std::unique_ptr<weld::Builder> xBuilder(
- Application::CreateBuilder(&rTreeView, "cui/ui/entrycontextmenu.ui"));
- auto xContextMenu = xBuilder->weld_menu("menu");
- xContextMenu->set_visible("add", false);
- xContextMenu->set_visible("remove", bIsValidSelection);
- xContextMenu->set_visible("rename", bIsValidSelection && !bIsSeparator);
- xContextMenu->set_visible("changeIcon", false);
- xContextMenu->set_visible("resetIcon", false);
- xContextMenu->set_visible("restoreDefault", false);
- OString sCommand(xContextMenu->popup_at_rect(
+ Application::CreateBuilder(&rTreeView, u"cui/ui/entrycontextmenu.ui"_ustr));
+ auto xContextMenu = xBuilder->weld_menu(u"menu"_ustr);
+ xContextMenu->set_visible(u"add"_ustr, false);
+ xContextMenu->set_visible(u"remove"_ustr, bIsValidSelection);
+ xContextMenu->set_visible(u"rename"_ustr, bIsValidSelection && !bIsSeparator);
+ xContextMenu->set_visible(u"changeIcon"_ustr, false);
+ xContextMenu->set_visible(u"resetIcon"_ustr, false);
+ xContextMenu->set_visible(u"restoreDefault"_ustr, false);
+ OUString sCommand(xContextMenu->popup_at_rect(
&rTreeView, tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1, 1))));
if (sCommand == "remove")
@@ -553,7 +549,7 @@ IMPL_LINK(SvxMenuConfigPage, ContentContextMenuHdl, const CommandEvent&, rCEvt,
}
else if (sCommand == "rename")
{
- ModifyItemHdl("renameItem");
+ ModifyItemHdl(u"renameItem"_ustr);
}
else if (!sCommand.isEmpty())
SAL_WARN("cui.customize", "Unknown context menu action: " << sCommand);
@@ -575,15 +571,15 @@ IMPL_LINK(SvxMenuConfigPage, FunctionContextMenuHdl, const CommandEvent&, rCEvt,
SelectFunctionHdl(rTreeView);
std::unique_ptr<weld::Builder> xBuilder(
- Application::CreateBuilder(&rTreeView, "cui/ui/entrycontextmenu.ui"));
- auto xContextMenu = xBuilder->weld_menu("menu");
- xContextMenu->set_visible("add", true);
- xContextMenu->set_visible("remove", false);
- xContextMenu->set_visible("rename", false);
- xContextMenu->set_visible("changeIcon", false);
- xContextMenu->set_visible("resetIcon", false);
- xContextMenu->set_visible("restoreDefault", false);
- OString sCommand(xContextMenu->popup_at_rect(
+ Application::CreateBuilder(&rTreeView, u"cui/ui/entrycontextmenu.ui"_ustr));
+ auto xContextMenu = xBuilder->weld_menu(u"menu"_ustr);
+ xContextMenu->set_visible(u"add"_ustr, true);
+ xContextMenu->set_visible(u"remove"_ustr, false);
+ xContextMenu->set_visible(u"rename"_ustr, false);
+ xContextMenu->set_visible(u"changeIcon"_ustr, false);
+ xContextMenu->set_visible(u"resetIcon"_ustr, false);
+ xContextMenu->set_visible(u"restoreDefault"_ustr, false);
+ OUString sCommand(xContextMenu->popup_at_rect(
&rTreeView, tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1, 1))));
if (sCommand == "add")
diff --git a/cui/source/customize/SvxNotebookbarConfigPage.cxx b/cui/source/customize/SvxNotebookbarConfigPage.cxx
index 631c3b3c460f..a503e4312e9d 100644
--- a/cui/source/customize/SvxNotebookbarConfigPage.cxx
+++ b/cui/source/customize/SvxNotebookbarConfigPage.cxx
@@ -40,14 +40,13 @@
#include <sfx2/notebookbar/SfxNotebookBar.hxx>
#include <unotools/configmgr.hxx>
#include <comphelper/processfactory.hxx>
+#include <o3tl/string_view.hxx>
#include <com/sun/star/frame/theUICommandDescription.hpp>
namespace uno = com::sun::star::uno;
namespace frame = com::sun::star::frame;
-namespace lang = com::sun::star::lang;
namespace container = com::sun::star::container;
namespace beans = com::sun::star::beans;
-namespace graphic = com::sun::star::graphic;
static bool isCategoryAvailable(std::u16string_view sClassId, std::u16string_view sUIItemId,
std::u16string_view sActiveCategory, bool& isCategory)
@@ -70,29 +69,29 @@ static OUString charToString(const char* cString)
static OUString getFileName(std::u16string_view aFileName)
{
if (aFileName == u"notebookbar.ui")
- return CuiResId(RID_SVXSTR_TABBED);
+ return CuiResId(RID_CUISTR_TABBED);
else if (aFileName == u"notebookbar_compact.ui")
- return CuiResId(RID_SVXSTR_TABBED_COMPACT);
+ return CuiResId(RID_CUISTR_TABBED_COMPACT);
else if (aFileName == u"notebookbar_groupedbar_full.ui")
- return CuiResId(RID_SVXSTR_GROUPEDBAR);
+ return CuiResId(RID_CUISTR_GROUPEDBAR);
else if (aFileName == u"notebookbar_groupedbar_compact.ui")
- return CuiResId(RID_SVXSTR_GROUPEDBAR_COMPACT);
+ return CuiResId(RID_CUISTR_GROUPEDBAR_COMPACT);
else
- return "None";
+ return u"None"_ustr;
}
static OUString getModuleId(std::u16string_view sModuleName)
{
if (sModuleName == u"Writer")
- return "com.sun.star.text.TextDocument";
+ return u"com.sun.star.text.TextDocument"_ustr;
else if (sModuleName == u"Draw")
- return "com.sun.star.drawing.DrawingDocument";
+ return u"com.sun.star.drawing.DrawingDocument"_ustr;
else if (sModuleName == u"Impress")
- return "com.sun.star.presentation.PresentationDocument";
+ return u"com.sun.star.presentation.PresentationDocument"_ustr;
else if (sModuleName == u"Calc")
- return "com.sun.star.sheet.SpreadsheetDocument";
+ return u"com.sun.star.sheet.SpreadsheetDocument"_ustr;
else
- return "None";
+ return u"None"_ustr;
}
SvxNotebookbarConfigPage::SvxNotebookbarConfigPage(weld::Container* pPage,
@@ -106,21 +105,18 @@ SvxNotebookbarConfigPage::SvxNotebookbarConfigPage(weld::Container* pPage,
m_xDescriptionField->set_visible(false);
m_xMoveUpButton->set_visible(false);
m_xMoveDownButton->set_visible(false);
- m_xAddCommandButton->set_visible(false);
- m_xRemoveCommandButton->set_visible(false);
+ m_xCommandButtons->set_visible(false);
m_xLeftFunctionLabel->set_visible(false);
m_xSearchLabel->set_visible(false);
m_xCategoryLabel->set_visible(false);
- m_xInsertBtn->set_visible(false);
- m_xModifyBtn->set_visible(false);
- m_xResetBtn->set_visible(false);
+ m_xCustomizeBox->set_visible(false);
m_xCustomizeLabel->set_visible(false);
weld::TreeView& rCommandCategoryBox = m_xFunctions->get_widget();
rCommandCategoryBox.hide();
m_xContentsListBox.reset(
- new SvxNotebookbarEntriesListBox(m_xBuilder->weld_tree_view("toolcontents"), this));
+ new SvxNotebookbarEntriesListBox(m_xBuilder->weld_tree_view(u"toolcontents"_ustr), this));
m_xDropTargetHelper.reset(
new SvxConfigPageFunctionDropTarget(*this, m_xContentsListBox->get_widget()));
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
@@ -144,7 +140,6 @@ void SvxNotebookbarConfigPage::Init()
m_xTopLevelListBox->clear();
m_xContentsListBox->clear();
m_xSaveInListBox->clear();
- CustomNotebookbarGenerator::createCustomizedUIFile();
OUString sNotebookbarInterface = getFileName(m_sFileName);
OUString sScopeName
@@ -154,8 +149,8 @@ void SvxNotebookbarConfigPage::Init()
m_xSaveInListBox->append(sSaveInListBoxID, sScopeName);
m_xSaveInListBox->set_active_id(sSaveInListBoxID);
- m_xTopLevelListBox->append("NotebookBar", CuiResId(RID_SVXSTR_ALL_COMMANDS));
- m_xTopLevelListBox->set_active_id("NotebookBar");
+ m_xTopLevelListBox->append(u"NotebookBar"_ustr, CuiResId(RID_CUISTR_ALL_COMMANDS));
+ m_xTopLevelListBox->set_active_id(u"NotebookBar"_ustr);
SelectElement();
}
@@ -172,7 +167,7 @@ void SvxNotebookbarConfigPage::UpdateButtonStates() {}
short SvxNotebookbarConfigPage::QueryReset()
{
- OUString msg = CuiResId(RID_SVXSTR_CONFIRM_TOOLBAR_RESET);
+ OUString msg = CuiResId(RID_CUISTR_CONFIRM_TOOLBAR_RESET);
OUString saveInName = m_xSaveInListBox->get_active_text();
@@ -183,9 +178,8 @@ short SvxNotebookbarConfigPage::QueryReset()
int nValue = xQueryBox->run();
if (nValue == RET_YES)
{
- OUString sOriginalUIPath = CustomNotebookbarGenerator::getOriginalUIPath();
- OUString sCustomizedUIPath = CustomNotebookbarGenerator::getCustomizedUIPath();
- osl::File::copy(sOriginalUIPath, sCustomizedUIPath);
+ osl::File::remove(CustomNotebookbarGenerator::getCustomizedUIPath());
+
OUString sNotebookbarInterface = getFileName(m_sFileName);
Sequence<OUString> sSequenceEntries;
CustomNotebookbarGenerator::setCustomizedUIItem(sSequenceEntries, sNotebookbarInterface);
@@ -221,7 +215,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(std::u16string_view sClassId
}
OUString aLabel;
- for (auto const& prop : std::as_const(aPropSeq))
+ for (auto const& prop : aPropSeq)
if (prop.Name == "Name")
prop.Value >>= aLabel;
@@ -229,7 +223,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(std::u16string_view sClassId
if (sClassId == u"GtkSeparatorMenuItem" || sClassId == u"GtkSeparator")
{
- rTreeView.set_text(rIter, "--------------------------------------------", 0);
+ rTreeView.set_text(rIter, u"--------------------------------------------"_ustr, 0);
}
else
{
@@ -317,8 +311,9 @@ void SvxNotebookbarConfigPage::searchNodeandAttribute(std::vector<NotebookbarEnt
{
sal_Int32 rPos = 0;
aCategoryEntry.sDisplayName
- = aCurItemEntry.sDisplayName.getToken(rPos, ' ', rPos) + " | "
- + sUIItemId;
+ = OUString::Concat(
+ o3tl::getToken(aCurItemEntry.sDisplayName, rPos, ' ', rPos))
+ + " | " + sUIItemId;
}
aCategoryList.push_back(aCategoryEntry);
aCurItemEntry = aCategoryEntry;
@@ -398,6 +393,13 @@ void SvxNotebookbarConfigPage::SelectElement()
CustomNotebookbarGenerator::getCustomizedUIPath());
xmlDocPtr pDoc = xmlParseFile(sUIFileUIPath.getStr());
if (!pDoc)
+ {
+ sUIFileUIPath = CustomNotebookbarGenerator::getSystemPath(
+ CustomNotebookbarGenerator::getOriginalUIPath());
+ pDoc = xmlParseFile(sUIFileUIPath.getStr());
+ }
+
+ if (!pDoc)
return;
xmlNodePtr pNodePtr = xmlDocGetRootElement(pDoc);
@@ -408,9 +410,8 @@ void SvxNotebookbarConfigPage::SelectElement()
if (m_xTopLevelListBox->get_count() == 1)
{
- for (std::size_t nIdx = 0; nIdx < aCategoryList.size(); nIdx++)
- m_xTopLevelListBox->append(aCategoryList[nIdx].sUIItemId,
- aCategoryList[nIdx].sDisplayName);
+ for (const auto& rCategory : aCategoryList)
+ m_xTopLevelListBox->append(rCategory.sUIItemId, rCategory.sDisplayName);
}
tools::ULong nStart = 0;
if (aEntries[nStart].sClassId == "sfxlo-PriorityHBox"
@@ -433,11 +434,10 @@ void SvxNotebookbarConfigPage::SelectElement()
aEntries = std::move(aTempEntries);
+ static_cast<SvxNotebookbarEntriesListBox*>(m_xContentsListBox.get())->GetTooltipMap().clear();
weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
rTreeView.bulk_insert_for_each(
aEntries.size(), [this, &rTreeView, &aEntries](weld::TreeIter& rIter, int nIdx) {
- OUString sId(OUString::number(nIdx));
- rTreeView.set_id(rIter, sId);
if (aEntries[nIdx].sActionName != "Null")
{
if (aEntries[nIdx].sVisibleValue == "True")
@@ -451,6 +451,13 @@ void SvxNotebookbarConfigPage::SelectElement()
}
InsertEntryIntoNotebookbarTabUI(aEntries[nIdx].sClassId, aEntries[nIdx].sDisplayName,
aEntries[nIdx].sActionName, rTreeView, rIter);
+ if (aEntries[nIdx].sClassId != u"GtkSeparatorMenuItem"
+ && aEntries[nIdx].sClassId != u"GtkSeparator")
+ {
+ static_cast<SvxNotebookbarEntriesListBox*>(m_xContentsListBox.get())
+ ->GetTooltipMap()[aEntries[nIdx].sDisplayName]
+ = aEntries[nIdx].sActionName;
+ }
});
aEntries.clear();
@@ -465,6 +472,9 @@ SvxNotebookbarEntriesListBox::SvxNotebookbarEntriesListBox(std::unique_ptr<weld:
m_xControl->connect_toggled(LINK(this, SvxNotebookbarEntriesListBox, CheckButtonHdl));
m_xControl->connect_key_press(Link<const KeyEvent&, bool>());
m_xControl->connect_key_press(LINK(this, SvxNotebookbarEntriesListBox, KeyInputHdl));
+ // remove the inherited connect_query_tooltip then add the new one
+ m_xControl->connect_query_tooltip(Link<const weld::TreeIter&, OUString>());
+ m_xControl->connect_query_tooltip(LINK(this, SvxNotebookbarEntriesListBox, QueryTooltip));
}
SvxNotebookbarEntriesListBox::~SvxNotebookbarEntriesListBox() {}
@@ -480,7 +490,7 @@ static void EditRegistryFile(std::u16string_view sUIItemId, const OUString& sSet
for (int nIdx = 0; nIdx < aOldEntries.getLength(); nIdx++)
{
sal_Int32 rPos = 0;
- OUString sFirstValue = aOldEntries[nIdx].getToken(rPos, ',', rPos);
+ std::u16string_view sFirstValue = o3tl::getToken(aOldEntries[nIdx], rPos, ',', rPos);
if (sFirstValue == sUIItemId)
{
aOldEntries.getArray()[nIdx] = sSetEntry;
@@ -538,4 +548,19 @@ IMPL_LINK(SvxNotebookbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent,
return SvxMenuEntriesListBox::KeyInputHdl(rKeyEvent);
}
+IMPL_LINK(SvxNotebookbarEntriesListBox, QueryTooltip, const weld::TreeIter&, rIter, OUString)
+{
+ const OUString& rsCommand = m_aTooltipMap[m_xControl->get_id(rIter)];
+ if (rsCommand.isEmpty())
+ return OUString();
+ OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(m_pPage->GetFrame()));
+ auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(rsCommand, aModuleName);
+ OUString sTooltipLabel = vcl::CommandInfoProvider::GetTooltipForCommand(rsCommand, aProperties,
+ m_pPage->GetFrame());
+ return CuiResId(RID_CUISTR_COMMANDLABEL) + ": "
+ + m_xControl->get_text(rIter).replaceFirst("~", "") + "\n"
+ + CuiResId(RID_CUISTR_COMMANDNAME) + ": " + rsCommand + "\n"
+ + CuiResId(RID_CUISTR_COMMANDTIP) + ": " + sTooltipLabel.replaceFirst("~", "");
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx
index 99a85d82f96e..a1ba639f0e27 100644
--- a/cui/source/customize/SvxToolbarConfigPage.cxx
+++ b/cui/source/customize/SvxToolbarConfigPage.cxx
@@ -27,7 +27,7 @@
#include <sfx2/sfxsids.hrc>
#include <svl/stritem.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <algorithm>
#include <helpids.h>
@@ -38,21 +38,20 @@
#include <SvxConfigPageHelper.hxx>
#include <dialmgr.hxx>
-#include <comphelper/processfactory.hxx>
-
#include <dlgname.hxx>
+#include <comphelper/processfactory.hxx>
SvxToolbarConfigPage::SvxToolbarConfigPage(weld::Container* pPage,
weld::DialogController* pController,
const SfxItemSet& rSet)
: SvxConfigPage(pPage, pController, rSet)
{
- m_xGearBtn = m_xBuilder->weld_menu_button("toolbargearbtn");
+ m_xGearBtn = m_xBuilder->weld_menu_button(u"toolbargearbtn"_ustr);
m_xGearBtn->show();
m_xContainer->set_help_id(HID_SVX_CONFIG_TOOLBAR);
m_xContentsListBox.reset(
- new SvxToolbarEntriesListBox(m_xBuilder->weld_tree_view("toolcontents"), this));
+ new SvxToolbarEntriesListBox(m_xBuilder->weld_tree_view(u"toolcontents"_ustr), this));
m_xDropTargetHelper.reset(
new SvxConfigPageFunctionDropTarget(*this, m_xContentsListBox->get_widget()));
@@ -96,17 +95,17 @@ SvxToolbarConfigPage::SvxToolbarConfigPage(weld::Container* pPage,
m_xResetBtn->connect_clicked(LINK(this, SvxToolbarConfigPage, ResetToolbarHdl));
// "Insert Submenu" is irrelevant to the toolbars
- m_xInsertBtn->remove_item("insertsubmenu");
+ m_xInsertBtn->remove_item(u"insertsubmenu"_ustr);
// Gear menu's "Move" action is irrelevant to the toolbars
- m_xGearBtn->set_item_sensitive("toolbar_gear_move", false);
+ m_xGearBtn->set_item_sensitive(u"toolbar_gear_move"_ustr, false);
// default toolbar to select is standardbar unless a different one
// has been passed in
m_aURLToSelect = ITEM_TOOLBAR_URL;
m_aURLToSelect += "standardbar";
- const SfxPoolItem* pItem = rSet.GetItem(rSet.GetPool()->GetWhich(SID_CONFIG));
+ const SfxPoolItem* pItem = rSet.GetItem(SID_CONFIG);
if (pItem)
{
@@ -125,8 +124,7 @@ void SvxToolbarConfigPage::ListModified()
pEntries->clear();
for (int i = 0; i < m_xContentsListBox->n_children(); ++i)
- pEntries->push_back(
- reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(i).toInt64()));
+ pEntries->push_back(weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(i)));
GetSaveInData()->SetModified();
GetTopLevelSelection()->SetModified();
@@ -140,8 +138,7 @@ SvxToolbarConfigPage::~SvxToolbarConfigPage()
{
for (int i = 0, nCount = m_xSaveInListBox->get_count(); i < nCount; ++i)
{
- ToolbarSaveInData* pData
- = reinterpret_cast<ToolbarSaveInData*>(m_xSaveInListBox->get_id(i).toInt64());
+ ToolbarSaveInData* pData = weld::fromId<ToolbarSaveInData*>(m_xSaveInListBox->get_id(i));
delete pData;
}
m_xSaveInListBox->clear();
@@ -186,8 +183,7 @@ void SvxToolbarConfigPage::DeleteSelectedContent()
return;
// get currently selected entry
- SvxConfigEntry* pEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry).toInt64());
+ SvxConfigEntry* pEntry = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry));
SvxConfigEntry* pToolbar = GetTopLevelSelection();
@@ -246,13 +242,14 @@ void SvxToolbarConfigPage::Init()
ReloadTopLevelListBox();
- sal_Int32 nPos = 0;
+ sal_Int32 nCount = m_xTopLevelListBox->get_count();
+ sal_Int32 nPos = nCount > 0 ? 0 : -1;
+
if (!m_aURLToSelect.isEmpty())
{
- for (sal_Int32 i = 0, nCount = m_xTopLevelListBox->get_count(); i < nCount; ++i)
+ for (sal_Int32 i = 0; i < nCount; ++i)
{
- SvxConfigEntry* pData
- = reinterpret_cast<SvxConfigEntry*>(m_xTopLevelListBox->get_id(i).toInt64());
+ SvxConfigEntry* pData = weld::fromId<SvxConfigEntry*>(m_xTopLevelListBox->get_id(i));
if (pData->GetCommand().equals(m_aURLToSelect))
{
@@ -289,13 +286,13 @@ IMPL_LINK_NOARG(SvxToolbarConfigPage, SelectToolbarEntry, weld::TreeView&, void)
UpdateButtonStates();
}
-IMPL_LINK(SvxToolbarConfigPage, GearHdl, const OString&, rIdent, void)
+IMPL_LINK(SvxToolbarConfigPage, GearHdl, const OUString&, rIdent, void)
{
SvxConfigEntry* pCurrentToolbar = GetTopLevelSelection();
if (rIdent == "toolbar_gear_add")
{
- OUString prefix = CuiResId(RID_SVXSTR_NEW_TOOLBAR);
+ OUString prefix = CuiResId(RID_CUISTR_NEW_TOOLBAR);
OUString aNewName
= SvxConfigPageHelper::generateCustomName(prefix, GetSaveInData()->GetEntries());
@@ -317,8 +314,8 @@ IMPL_LINK(SvxToolbarConfigPage, GearHdl, const OString&, rIdent, void)
// Where to save the new toolbar? (i.e. Modulewise or documentwise)
int nInsertPos = aNameDialog.m_xSaveInListBox->get_active();
- ToolbarSaveInData* pData = reinterpret_cast<ToolbarSaveInData*>(
- m_xSaveInListBox->get_id(nInsertPos).toInt64());
+ ToolbarSaveInData* pData
+ = weld::fromId<ToolbarSaveInData*>(m_xSaveInListBox->get_id(nInsertPos));
if (GetSaveInData() != pData)
{
@@ -333,7 +330,7 @@ IMPL_LINK(SvxToolbarConfigPage, GearHdl, const OString&, rIdent, void)
pData->CreateToolbar(pToolbar);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pToolbar)));
+ OUString sId(weld::toId(pToolbar));
m_xTopLevelListBox->append(sId, pToolbar->GetName());
m_xTopLevelListBox->set_active_id(sId);
SelectElement();
@@ -352,17 +349,17 @@ IMPL_LINK(SvxToolbarConfigPage, GearHdl, const OString&, rIdent, void)
else if (rIdent == "toolbar_gear_rename")
{
sal_Int32 nSelectionPos = m_xTopLevelListBox->get_active();
- SvxConfigEntry* pToolbar = reinterpret_cast<SvxConfigEntry*>(
- m_xTopLevelListBox->get_id(nSelectionPos).toInt64());
+ SvxConfigEntry* pToolbar
+ = weld::fromId<SvxConfigEntry*>(m_xTopLevelListBox->get_id(nSelectionPos));
ToolbarSaveInData* pSaveInData = static_cast<ToolbarSaveInData*>(GetSaveInData());
//Rename the toolbar
OUString sCurrentName(SvxConfigPageHelper::stripHotKey(pToolbar->GetName()));
- OUString sDesc = CuiResId(RID_SVXSTR_LABEL_NEW_NAME);
+ OUString sDesc = CuiResId(RID_CUISTR_LABEL_NEW_NAME);
SvxNameDialog aNameDialog(GetFrameWeld(), sCurrentName, sDesc);
aNameDialog.set_help_id(HID_SVX_CONFIG_RENAME_TOOLBAR);
- aNameDialog.set_title(CuiResId(RID_SVXSTR_RENAME_TOOLBAR));
+ aNameDialog.set_title(CuiResId(RID_CUISTR_RENAME_TOOLBAR));
if (aNameDialog.run() == RET_OK)
{
@@ -376,7 +373,7 @@ IMPL_LINK(SvxToolbarConfigPage, GearHdl, const OString&, rIdent, void)
// have to use remove and insert to change the name
m_xTopLevelListBox->remove(nSelectionPos);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pToolbar)));
+ OUString sId(weld::toId(pToolbar));
m_xTopLevelListBox->insert(nSelectionPos, sNewName, &sId, nullptr, nullptr);
m_xTopLevelListBox->set_active_id(sId);
}
@@ -429,7 +426,7 @@ IMPL_LINK_NOARG(SvxToolbarConfigPage, RemoveCommandHdl, weld::Button&, void)
DeleteSelectedContent();
}
-IMPL_LINK(SvxToolbarConfigPage, InsertHdl, const OString&, rIdent, void)
+IMPL_LINK(SvxToolbarConfigPage, InsertHdl, const OUString&, rIdent, void)
{
if (rIdent == "insertseparator")
{
@@ -454,7 +451,7 @@ IMPL_LINK(SvxToolbarConfigPage, InsertHdl, const OString&, rIdent, void)
}
}
-IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
+IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OUString&, rIdent, void)
{
bool bNeedsApply = false;
@@ -471,21 +468,21 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
{
int nActEntry = m_xContentsListBox->get_selected_index();
SvxConfigEntry* pEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry).toInt64());
+ = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry));
OUString aNewName(SvxConfigPageHelper::stripHotKey(pEntry->GetName()));
- OUString aDesc = CuiResId(RID_SVXSTR_LABEL_NEW_NAME);
+ OUString aDesc = CuiResId(RID_CUISTR_LABEL_NEW_NAME);
SvxNameDialog aNameDialog(GetFrameWeld(), aNewName, aDesc);
aNameDialog.set_help_id(HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM);
- aNameDialog.set_title(CuiResId(RID_SVXSTR_RENAME_TOOLBAR));
+ aNameDialog.set_title(CuiResId(RID_CUISTR_RENAME_TOOLBAR));
if (aNameDialog.run() == RET_OK)
{
aNewName = aNameDialog.GetName();
if (aNewName.isEmpty()) // tdf#80758 - Accelerator character ("~") is passed as
- pEntry->SetName("~"); // the button name in case of empty values.
+ pEntry->SetName(u"~"_ustr); // the button name in case of empty values.
else
pEntry->SetName(aNewName);
@@ -497,7 +494,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
{
int nActEntry = m_xContentsListBox->get_selected_index();
SvxConfigEntry* pEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry).toInt64());
+ = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry));
SvxIconSelectorDialog aIconDialog(GetFrameWeld(), GetSaveInData()->GetImageManager(),
GetSaveInData()->GetParentImageManager());
@@ -532,7 +529,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
m_xContentsListBox->remove(nActEntry);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
+ OUString sId(weld::toId(pEntry));
m_xContentsListBox->insert(nActEntry, sId);
m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE
: TRISTATE_FALSE);
@@ -554,11 +551,11 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
{
int nActEntry = m_xContentsListBox->get_selected_index();
SvxConfigEntry* pEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry).toInt64());
-
- css::uno::Reference<css::graphic::XGraphic> backup = pEntry->GetBackupGraphic();
+ = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry));
- css::uno::Sequence<css::uno::Reference<css::graphic::XGraphic>> aGraphicSeq{ backup };
+ css::uno::Sequence<css::uno::Reference<css::graphic::XGraphic>> aGraphicSeq{
+ pEntry->GetBackupGraphic()
+ };
css::uno::Sequence<OUString> aURLSeq{ pEntry->GetCommand() };
@@ -569,7 +566,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
m_xContentsListBox->remove(nActEntry);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
+ OUString sId(weld::toId(pEntry));
m_xContentsListBox->insert(nActEntry, sId);
m_xContentsListBox->set_toggle(nActEntry,
pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
@@ -592,7 +589,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
{
int nActEntry = m_xContentsListBox->get_selected_index();
SvxConfigEntry* pEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry).toInt64());
+ = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nActEntry));
ToolbarSaveInData* pSaveInData = static_cast<ToolbarSaveInData*>(GetSaveInData());
@@ -620,7 +617,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
m_xContentsListBox->remove(nActEntry);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
+ OUString sId(weld::toId(pEntry));
m_xContentsListBox->insert(nActEntry, sId);
m_xContentsListBox->set_toggle(nActEntry,
pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
@@ -655,11 +652,11 @@ IMPL_LINK_NOARG(SvxToolbarConfigPage, ResetToolbarHdl, weld::Button&, void)
sal_Int32 nSelectionPos = m_xTopLevelListBox->get_active();
SvxConfigEntry* pToolbar
- = reinterpret_cast<SvxConfigEntry*>(m_xTopLevelListBox->get_id(nSelectionPos).toInt64());
+ = weld::fromId<SvxConfigEntry*>(m_xTopLevelListBox->get_id(nSelectionPos));
std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(
GetFrameWeld(), VclMessageType::Question, VclButtonsType::YesNo,
- CuiResId(RID_SVXSTR_CONFIRM_RESTORE_DEFAULT)));
+ CuiResId(RID_CUISTR_CONFIRM_RESTORE_DEFAULT)));
if (xQueryBox->run() == RET_YES)
{
ToolbarSaveInData* pSaveInData = static_cast<ToolbarSaveInData*>(GetSaveInData());
@@ -677,8 +674,7 @@ void SvxToolbarConfigPage::UpdateButtonStates()
bool bIsSeparator
= selection != -1
- && reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(selection).toInt64())
- ->IsSeparator();
+ && weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(selection))->IsSeparator();
bool bIsValidSelection = (m_xContentsListBox->n_children() != 0 && selection != -1);
m_xMoveUpButton->set_sensitive(bIsValidSelection);
@@ -690,13 +686,15 @@ void SvxToolbarConfigPage::UpdateButtonStates()
// Handle the gear button
// "toolbar_gear_add" option is always enabled
- m_xGearBtn->set_item_sensitive("toolbar_gear_delete", pToolbar && pToolbar->IsDeletable());
- m_xGearBtn->set_item_sensitive("toolbar_gear_rename", pToolbar && pToolbar->IsRenamable());
+ m_xGearBtn->set_item_sensitive(u"toolbar_gear_delete"_ustr,
+ pToolbar && pToolbar->IsDeletable());
+ m_xGearBtn->set_item_sensitive(u"toolbar_gear_rename"_ustr,
+ pToolbar && pToolbar->IsRenamable());
}
short SvxToolbarConfigPage::QueryReset()
{
- OUString msg = CuiResId(RID_SVXSTR_CONFIRM_TOOLBAR_RESET);
+ OUString msg = CuiResId(RID_CUISTR_CONFIRM_TOOLBAR_RESET);
OUString saveInName = m_xSaveInListBox->get_active_text();
@@ -732,17 +730,17 @@ void SvxToolbarConfigPage::SelectElement()
{
case 0:
{
- m_xGearBtn->set_item_active("toolbar_gear_iconOnly", true);
+ m_xGearBtn->set_item_active(u"toolbar_gear_iconOnly"_ustr, true);
break;
}
case 1:
{
- m_xGearBtn->set_item_active("toolbar_gear_textOnly", true);
+ m_xGearBtn->set_item_active(u"toolbar_gear_textOnly"_ustr, true);
break;
}
case 2:
{
- m_xGearBtn->set_item_active("toolbar_gear_iconAndText", true);
+ m_xGearBtn->set_item_active(u"toolbar_gear_iconAndText"_ustr, true);
break;
}
}
@@ -751,7 +749,7 @@ void SvxToolbarConfigPage::SelectElement()
SvxEntries* pEntries = pToolbar->GetEntries();
for (auto const& entry : *pEntries)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entry)));
+ OUString sId(weld::toId(entry));
m_xContentsListBox->insert(i, sId);
if (entry->IsBinding() && !entry->IsSeparator())
m_xContentsListBox->set_toggle(i, entry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
@@ -775,8 +773,7 @@ void SvxToolbarConfigPage::AddFunction(int nTarget)
if (nNewLBEntry == -1)
return;
- SvxConfigEntry* pEntry
- = reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nNewLBEntry).toInt64());
+ SvxConfigEntry* pEntry = weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nNewLBEntry));
if (pEntry->IsBinding()) //TODO sep ?
{
@@ -811,8 +808,7 @@ SvxToolbarEntriesListBox::~SvxToolbarEntriesListBox() {}
void SvxToolbarEntriesListBox::ChangedVisibility(int nRow)
{
- SvxConfigEntry* pEntryData
- = reinterpret_cast<SvxConfigEntry*>(m_xControl->get_id(nRow).toInt64());
+ SvxConfigEntry* pEntryData = weld::fromId<SvxConfigEntry*>(m_xControl->get_id(nRow));
if (pEntryData->IsBinding())
{
@@ -838,8 +834,7 @@ IMPL_LINK(SvxToolbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent, boo
if (rKeyEvent.GetKeyCode() == KEY_SPACE)
{
int nRow = m_xControl->get_selected_index();
- SvxConfigEntry* pEntryData
- = reinterpret_cast<SvxConfigEntry*>(m_xControl->get_id(nRow).toInt64());
+ SvxConfigEntry* pEntryData = weld::fromId<SvxConfigEntry*>(m_xControl->get_id(nRow));
if (pEntryData->IsBinding() && !pEntryData->IsSeparator())
{
m_xControl->set_toggle(nRow, m_xControl->get_toggle(nRow) == TRISTATE_TRUE
@@ -870,32 +865,31 @@ IMPL_LINK(SvxToolbarConfigPage, ContentContextMenuHdl, const CommandEvent&, rCEv
bool bIsSeparator
= nSelectIndex != -1
- && reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nSelectIndex).toInt64())
- ->IsSeparator();
+ && weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nSelectIndex))->IsSeparator();
bool bIsValidSelection = (m_xContentsListBox->n_children() != 0 && nSelectIndex != -1);
std::unique_ptr<weld::Builder> xBuilder(
- Application::CreateBuilder(&rTreeView, "cui/ui/entrycontextmenu.ui"));
- auto xContextMenu = xBuilder->weld_menu("menu");
- xContextMenu->set_visible("add", false);
- xContextMenu->set_visible("remove", bIsValidSelection);
- xContextMenu->set_visible("rename", bIsValidSelection && !bIsSeparator);
- xContextMenu->set_visible("changeIcon", bIsValidSelection && !bIsSeparator);
- xContextMenu->set_visible("resetIcon", bIsValidSelection && !bIsSeparator);
- xContextMenu->set_visible("restoreDefault", bIsValidSelection && !bIsSeparator);
- OString sCommand(xContextMenu->popup_at_rect(
+ Application::CreateBuilder(&rTreeView, u"cui/ui/entrycontextmenu.ui"_ustr));
+ auto xContextMenu = xBuilder->weld_menu(u"menu"_ustr);
+ xContextMenu->set_visible(u"add"_ustr, false);
+ xContextMenu->set_visible(u"remove"_ustr, bIsValidSelection);
+ xContextMenu->set_visible(u"rename"_ustr, bIsValidSelection && !bIsSeparator);
+ xContextMenu->set_visible(u"changeIcon"_ustr, bIsValidSelection && !bIsSeparator);
+ xContextMenu->set_visible(u"resetIcon"_ustr, bIsValidSelection && !bIsSeparator);
+ xContextMenu->set_visible(u"restoreDefault"_ustr, bIsValidSelection && !bIsSeparator);
+ OUString sCommand(xContextMenu->popup_at_rect(
&rTreeView, tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1, 1))));
if (sCommand == "remove")
RemoveCommandHdl(*m_xRemoveCommandButton);
else if (sCommand == "rename")
- ModifyItemHdl("renameItem");
+ ModifyItemHdl(u"renameItem"_ustr);
else if (sCommand == "changeIcon")
- ModifyItemHdl("changeIcon");
+ ModifyItemHdl(u"changeIcon"_ustr);
else if (sCommand == "resetIcon")
- ModifyItemHdl("resetIcon");
+ ModifyItemHdl(u"resetIcon"_ustr);
else if (sCommand == "restoreDefault")
- ModifyItemHdl("restoreItem");
+ ModifyItemHdl(u"restoreItem"_ustr);
else if (!sCommand.isEmpty())
SAL_WARN("cui.customize", "Unknown context menu action: " << sCommand);
return true;
@@ -915,15 +909,15 @@ IMPL_LINK(SvxToolbarConfigPage, FunctionContextMenuHdl, const CommandEvent&, rCE
rTreeView.select(*xIter);
SelectFunctionHdl(rTreeView);
std::unique_ptr<weld::Builder> xBuilder(
- Application::CreateBuilder(&rTreeView, "cui/ui/entrycontextmenu.ui"));
- auto xContextMenu = xBuilder->weld_menu("menu");
- xContextMenu->set_visible("add", true);
- xContextMenu->set_visible("remove", false);
- xContextMenu->set_visible("rename", false);
- xContextMenu->set_visible("changeIcon", false);
- xContextMenu->set_visible("resetIcon", false);
- xContextMenu->set_visible("restoreDefault", false);
- OString sCommand(xContextMenu->popup_at_rect(
+ Application::CreateBuilder(&rTreeView, u"cui/ui/entrycontextmenu.ui"_ustr));
+ auto xContextMenu = xBuilder->weld_menu(u"menu"_ustr);
+ xContextMenu->set_visible(u"add"_ustr, true);
+ xContextMenu->set_visible(u"remove"_ustr, false);
+ xContextMenu->set_visible(u"rename"_ustr, false);
+ xContextMenu->set_visible(u"changeIcon"_ustr, false);
+ xContextMenu->set_visible(u"resetIcon"_ustr, false);
+ xContextMenu->set_visible(u"restoreDefault"_ustr, false);
+ OUString sCommand(xContextMenu->popup_at_rect(
&rTreeView, tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1, 1))));
if (sCommand == "add")
diff --git a/cui/source/customize/acccfg.cxx b/cui/source/customize/acccfg.cxx
index 476b10d2e8e4..04924b9a8f57 100644
--- a/cui/source/customize/acccfg.cxx
+++ b/cui/source/customize/acccfg.cxx
@@ -63,13 +63,15 @@
#include <comphelper/sequenceashashmap.hxx>
#include <config_features.h>
+#include <com/sun/star/frame/LayoutManager.hpp>
+
// namespaces
using namespace css;
-constexpr OUStringLiteral FOLDERNAME_UICONFIG = u"Configurations2";
+constexpr OUString FOLDERNAME_UICONFIG = u"Configurations2"_ustr;
-constexpr OUStringLiteral MEDIATYPE_PROPNAME = u"MediaType";
+constexpr OUString MEDIATYPE_PROPNAME = u"MediaType"_ustr;
const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_F2,
@@ -184,11 +186,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD1 | KEY_X,
KEY_MOD1 | KEY_Y,
KEY_MOD1 | KEY_Z,
+ KEY_MOD1 | KEY_NUMBERSIGN,
+ KEY_MOD1 | KEY_COLON,
KEY_MOD1 | KEY_SEMICOLON,
KEY_MOD1 | KEY_QUOTELEFT,
KEY_MOD1 | KEY_QUOTERIGHT,
KEY_MOD1 | KEY_BRACKETLEFT,
KEY_MOD1 | KEY_BRACKETRIGHT,
+ KEY_MOD1 | KEY_RIGHTCURLYBRACKET,
KEY_MOD1 | KEY_POINT,
KEY_MOD1 | KEY_COMMA,
KEY_MOD1 | KEY_TILDE,
@@ -267,11 +272,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD1 | KEY_X,
KEY_SHIFT | KEY_MOD1 | KEY_Y,
KEY_SHIFT | KEY_MOD1 | KEY_Z,
+ KEY_SHIFT | KEY_MOD1 | KEY_NUMBERSIGN,
+ KEY_SHIFT | KEY_MOD1 | KEY_COLON,
KEY_SHIFT | KEY_MOD1 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD1 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD1 | KEY_QUOTERIGHT,
KEY_SHIFT | KEY_MOD1 | KEY_BRACKETLEFT,
KEY_SHIFT | KEY_MOD1 | KEY_BRACKETRIGHT,
+ KEY_SHIFT | KEY_MOD1 | KEY_RIGHTCURLYBRACKET,
KEY_SHIFT | KEY_MOD1 | KEY_POINT,
KEY_SHIFT | KEY_MOD1 | KEY_COMMA,
KEY_SHIFT | KEY_MOD1 | KEY_TILDE,
@@ -346,11 +354,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD2 | KEY_X,
KEY_MOD2 | KEY_Y,
KEY_MOD2 | KEY_Z,
+ KEY_MOD2 | KEY_NUMBERSIGN,
+ KEY_MOD2 | KEY_COLON,
KEY_MOD2 | KEY_SEMICOLON,
KEY_MOD2 | KEY_QUOTELEFT,
KEY_MOD2 | KEY_QUOTERIGHT,
KEY_MOD2 | KEY_BRACKETLEFT,
KEY_MOD2 | KEY_BRACKETRIGHT,
+ KEY_MOD2 | KEY_RIGHTCURLYBRACKET,
KEY_MOD2 | KEY_POINT,
KEY_MOD2 | KEY_COMMA,
KEY_MOD2 | KEY_TILDE,
@@ -423,11 +434,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD2 | KEY_X,
KEY_SHIFT | KEY_MOD2 | KEY_Y,
KEY_SHIFT | KEY_MOD2 | KEY_Z,
+ KEY_SHIFT | KEY_MOD2 | KEY_NUMBERSIGN,
+ KEY_SHIFT | KEY_MOD2 | KEY_COLON,
KEY_SHIFT | KEY_MOD2 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD2 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD2 | KEY_QUOTERIGHT,
KEY_SHIFT | KEY_MOD2 | KEY_BRACKETLEFT,
KEY_SHIFT | KEY_MOD2 | KEY_BRACKETRIGHT,
+ KEY_SHIFT | KEY_MOD2 | KEY_RIGHTCURLYBRACKET,
KEY_SHIFT | KEY_MOD2 | KEY_POINT,
KEY_SHIFT | KEY_MOD2 | KEY_COMMA,
KEY_SHIFT | KEY_MOD2 | KEY_TILDE,
@@ -501,11 +515,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD1 | KEY_MOD2 | KEY_X,
KEY_MOD1 | KEY_MOD2 | KEY_Y,
KEY_MOD1 | KEY_MOD2 | KEY_Z,
+ KEY_MOD1 | KEY_MOD2 | KEY_NUMBERSIGN,
+ KEY_MOD1 | KEY_MOD2 | KEY_COLON,
KEY_MOD1 | KEY_MOD2 | KEY_SEMICOLON,
KEY_MOD1 | KEY_MOD2 | KEY_QUOTELEFT,
KEY_MOD1 | KEY_MOD2 | KEY_QUOTERIGHT,
KEY_MOD1 | KEY_MOD2 | KEY_BRACKETLEFT,
KEY_MOD1 | KEY_MOD2 | KEY_BRACKETRIGHT,
+ KEY_MOD1 | KEY_MOD2 | KEY_RIGHTCURLYBRACKET,
KEY_MOD1 | KEY_MOD2 | KEY_POINT,
KEY_MOD1 | KEY_MOD2 | KEY_COMMA,
KEY_MOD1 | KEY_MOD2 | KEY_TILDE,
@@ -578,11 +595,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_X,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_Y,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_Z,
+ KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_NUMBERSIGN,
+ KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_COLON,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_QUOTERIGHT,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_BRACKETLEFT,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_BRACKETRIGHT,
+ KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_RIGHTCURLYBRACKET,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_POINT,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_COMMA,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_TILDE,
@@ -657,11 +677,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD3 | KEY_X,
KEY_MOD3 | KEY_Y,
KEY_MOD3 | KEY_Z,
+ KEY_MOD2 | KEY_NUMBERSIGN,
+ KEY_MOD3 | KEY_COLON,
KEY_MOD3 | KEY_SEMICOLON,
KEY_MOD3 | KEY_QUOTELEFT,
KEY_MOD3 | KEY_QUOTERIGHT,
KEY_MOD3 | KEY_BRACKETLEFT,
KEY_MOD3 | KEY_BRACKETRIGHT,
+ KEY_MOD3 | KEY_RIGHTCURLYBRACKET,
KEY_MOD3 | KEY_POINT,
KEY_MOD3 | KEY_COMMA,
KEY_MOD3 | KEY_TILDE,
@@ -740,11 +763,14 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD3 | KEY_X,
KEY_SHIFT | KEY_MOD3 | KEY_Y,
KEY_SHIFT | KEY_MOD3 | KEY_Z,
+ KEY_SHIFT | KEY_MOD3 | KEY_NUMBERSIGN,
+ KEY_SHIFT | KEY_MOD3 | KEY_COLON,
KEY_SHIFT | KEY_MOD3 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD3 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD3 | KEY_QUOTERIGHT,
KEY_SHIFT | KEY_MOD3 | KEY_BRACKETLEFT,
KEY_SHIFT | KEY_MOD3 | KEY_BRACKETRIGHT,
+ KEY_SHIFT | KEY_MOD3 | KEY_RIGHTCURLYBRACKET,
KEY_SHIFT | KEY_MOD3 | KEY_POINT,
KEY_SHIFT | KEY_MOD3 | KEY_COMMA,
KEY_SHIFT | KEY_MOD3 | KEY_TILDE,
@@ -785,7 +811,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
#endif
};
-const sal_uInt16 KEYCODE_ARRAY_SIZE = SAL_N_ELEMENTS(KEYCODE_ARRAY);
+const sal_uInt16 KEYCODE_ARRAY_SIZE = std::size(KEYCODE_ARRAY);
/** select the entry, which match the current key input ... excepting
keys, which are used for the dialog itself.
@@ -797,23 +823,24 @@ IMPL_LINK(SfxAcceleratorConfigPage, KeyInputHdl, const KeyEvent&, rKey, bool)
sal_uInt16 nMod1 = aCode1.GetModifier();
// is it related to our list box ?
- if ((nCode1 != KEY_DOWN) && (nCode1 != KEY_UP) && (nCode1 != KEY_LEFT) && (nCode1 != KEY_RIGHT)
- && (nCode1 != KEY_PAGEUP) && (nCode1 != KEY_PAGEDOWN))
+ if ((nCode1 == KEY_DOWN) || (nCode1 == KEY_UP) || (nCode1 == KEY_LEFT) || (nCode1 == KEY_RIGHT)
+ || (nCode1 == KEY_PAGEUP) || (nCode1 == KEY_PAGEDOWN))
+ // no - handle it as normal dialog input
+ return false;
+
+ for (int i = 0, nCount = m_xEntriesBox->n_children(); i < nCount; ++i)
{
- for (int i = 0, nCount = m_xEntriesBox->n_children(); i < nCount; ++i)
+ TAccInfo* pUserData = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(i));
+ if (pUserData)
{
- TAccInfo* pUserData = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(i).toInt64());
- if (pUserData)
- {
- sal_uInt16 nCode2 = pUserData->m_aKey.GetCode();
- sal_uInt16 nMod2 = pUserData->m_aKey.GetModifier();
+ sal_uInt16 nCode2 = pUserData->m_aKey.GetCode();
+ sal_uInt16 nMod2 = pUserData->m_aKey.GetModifier();
- if (nCode1 == nCode2 && nMod1 == nMod2)
- {
- m_xEntriesBox->select(i);
- m_xEntriesBox->scroll_to_row(i);
- return true;
- }
+ if (nCode1 == nCode2 && nMod1 == nMod2)
+ {
+ m_xEntriesBox->select(i);
+ m_xEntriesBox->scroll_to_row(i);
+ return true;
}
}
}
@@ -825,41 +852,42 @@ IMPL_LINK(SfxAcceleratorConfigPage, KeyInputHdl, const KeyEvent&, rKey, bool)
SfxAcceleratorConfigPage::SfxAcceleratorConfigPage(weld::Container* pPage,
weld::DialogController* pController,
const SfxItemSet& aSet)
- : SfxTabPage(pPage, pController, "cui/ui/accelconfigpage.ui", "AccelConfigPage", &aSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/accelconfigpage.ui"_ustr, u"AccelConfigPage"_ustr,
+ &aSet)
#if HAVE_FEATURE_SCRIPTING
, m_pMacroInfoItem()
#endif
- , aLoadAccelConfigStr(CuiResId(RID_SVXSTR_LOADACCELCONFIG))
- , aSaveAccelConfigStr(CuiResId(RID_SVXSTR_SAVEACCELCONFIG))
+ , aLoadAccelConfigStr(CuiResId(RID_CUISTR_LOADACCELCONFIG))
+ , aSaveAccelConfigStr(CuiResId(RID_CUISTR_SAVEACCELCONFIG))
, aFilterAllStr(SfxResId(STR_SFX_FILTERNAME_ALL))
- , aFilterCfgStr(CuiResId(RID_SVXSTR_FILTERNAME_CFG))
+ , aFilterCfgStr(CuiResId(RID_CUISTR_FILTERNAME_CFG))
, m_bStylesInfoInitialized(false)
, m_aUpdateDataTimer("SfxAcceleratorConfigPage UpdateDataTimer")
, m_aFillGroupIdle("SfxAcceleratorConfigPage m_aFillGroupIdle")
- , m_xEntriesBox(m_xBuilder->weld_tree_view("shortcuts"))
- , m_xOfficeButton(m_xBuilder->weld_radio_button("office"))
- , m_xModuleButton(m_xBuilder->weld_radio_button("module"))
- , m_xChangeButton(m_xBuilder->weld_button("change"))
- , m_xRemoveButton(m_xBuilder->weld_button("delete"))
- , m_xGroupLBox(new CuiConfigGroupListBox(m_xBuilder->weld_tree_view("category")))
- , m_xFunctionBox(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view("function")))
- , m_xKeyBox(m_xBuilder->weld_tree_view("keys"))
- , m_xSearchEdit(m_xBuilder->weld_entry("searchEntry"))
- , m_xLoadButton(m_xBuilder->weld_button("load"))
- , m_xSaveButton(m_xBuilder->weld_button("save"))
- , m_xResetButton(m_xBuilder->weld_button("reset"))
+ , m_xEntriesBox(m_xBuilder->weld_tree_view(u"shortcuts"_ustr))
+ , m_xOfficeButton(m_xBuilder->weld_radio_button(u"office"_ustr))
+ , m_xModuleButton(m_xBuilder->weld_radio_button(u"module"_ustr))
+ , m_xChangeButton(m_xBuilder->weld_button(u"change"_ustr))
+ , m_xRemoveButton(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xGroupLBox(new CuiConfigGroupListBox(m_xBuilder->weld_tree_view(u"category"_ustr)))
+ , m_xFunctionBox(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view(u"function"_ustr)))
+ , m_xKeyBox(m_xBuilder->weld_tree_view(u"keys"_ustr))
+ , m_xSearchEdit(m_xBuilder->weld_entry(u"searchEntry"_ustr))
+ , m_xLoadButton(m_xBuilder->weld_button(u"load"_ustr))
+ , m_xSaveButton(m_xBuilder->weld_button(u"save"_ustr))
+ , m_xResetButton(m_xBuilder->weld_button(u"reset"_ustr))
{
Size aSize(m_xEntriesBox->get_approximate_digit_width() * 40,
- m_xEntriesBox->get_height_rows(12));
+ m_xEntriesBox->get_height_rows(10));
m_xEntriesBox->set_size_request(aSize.Width(), aSize.Height());
aSize = Size(m_xEntriesBox->get_approximate_digit_width() * 19,
- m_xEntriesBox->get_height_rows(10));
+ m_xEntriesBox->get_height_rows(9));
m_xGroupLBox->set_size_request(aSize.Width(), aSize.Height());
aSize = Size(m_xEntriesBox->get_approximate_digit_width() * 21,
- m_xEntriesBox->get_height_rows(10));
+ m_xEntriesBox->get_height_rows(9));
m_xFunctionBox->set_size_request(aSize.Width(), aSize.Height());
aSize = Size(m_xEntriesBox->get_approximate_digit_width() * 20,
- m_xEntriesBox->get_height_rows(10));
+ m_xEntriesBox->get_height_rows(9));
m_xKeyBox->set_size_request(aSize.Width(), aSize.Height());
// install handler functions
@@ -917,7 +945,7 @@ SfxAcceleratorConfigPage::~SfxAcceleratorConfigPage()
// free memory - remove all dynamic user data
for (int i = 0, nCount = m_xEntriesBox->n_children(); i < nCount; ++i)
{
- TAccInfo* pUserData = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(i).toInt64());
+ TAccInfo* pUserData = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(i));
delete pUserData;
}
}
@@ -950,7 +978,7 @@ void SfxAcceleratorConfigPage::InitAccCfg()
m_sModuleLongName = xModuleManager->identify(m_xFrame);
comphelper::SequenceAsHashMap lModuleProps(xModuleManager->getByName(m_sModuleLongName));
m_sModuleUIName
- = lModuleProps.getUnpackedValueOrDefault("ooSetupFactoryUIName", OUString());
+ = lModuleProps.getUnpackedValueOrDefault(u"ooSetupFactoryUIName"_ustr, OUString());
// get global accelerator configuration
m_xGlobal = css::ui::GlobalAcceleratorConfiguration::create(m_xContext);
@@ -1002,7 +1030,7 @@ void SfxAcceleratorConfigPage::Init(const uno::Reference<ui::XAcceleratorConfigu
if (sKey.isEmpty())
continue;
TAccInfo* pEntry = new TAccInfo(i1, 0 /*nListPos*/, aKey);
- m_xEntriesBox->append(OUString::number(reinterpret_cast<sal_Int64>(pEntry)), sKey);
+ m_xEntriesBox->append(weld::toId(pEntry), sKey);
int nPos = m_xEntriesBox->n_children() - 1;
m_xEntriesBox->set_text(nPos, OUString(), 1);
m_xEntriesBox->set_sensitive(nPos, true);
@@ -1026,7 +1054,7 @@ void SfxAcceleratorConfigPage::Init(const uno::Reference<ui::XAcceleratorConfigu
m_xEntriesBox->set_text(nPos, sLabel, 1);
- TAccInfo* pEntry = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(nPos).toInt64());
+ TAccInfo* pEntry = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(nPos));
pEntry->m_bIsConfigurable = true;
pEntry->m_sCommand = sCommand;
@@ -1044,7 +1072,7 @@ void SfxAcceleratorConfigPage::Init(const uno::Reference<ui::XAcceleratorConfigu
continue;
// Hardcoded function mapped so no ID possible and mark entry as not changeable
- TAccInfo* pEntry = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(nPos).toInt64());
+ TAccInfo* pEntry = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(nPos));
pEntry->m_bIsConfigurable = false;
m_xEntriesBox->set_sensitive(nPos, false);
@@ -1061,7 +1089,7 @@ void SfxAcceleratorConfigPage::Apply(const uno::Reference<ui::XAcceleratorConfig
// physical ones!
for (int i = 0, nCount = m_xEntriesBox->n_children(); i < nCount; ++i)
{
- TAccInfo* pUserData = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(i).toInt64());
+ TAccInfo* pUserData = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(i));
OUString sCommand;
awt::KeyEvent aAWTKey;
@@ -1140,7 +1168,7 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, ChangeHdl, weld::Button&, void)
if (nPos == -1)
return;
- TAccInfo* pEntry = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(nPos).toInt64());
+ TAccInfo* pEntry = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(nPos));
OUString sNewCommand = m_xFunctionBox->GetCurCommand();
OUString sLabel = m_xFunctionBox->GetCurLabel();
if (sLabel.isEmpty())
@@ -1159,7 +1187,7 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, RemoveHdl, weld::Button&, void)
if (nPos == -1)
return;
- TAccInfo* pEntry = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(nPos).toInt64());
+ TAccInfo* pEntry = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(nPos));
// remove function name from selected entry
m_xEntriesBox->set_text(nPos, OUString(), 1);
@@ -1172,7 +1200,7 @@ IMPL_LINK(SfxAcceleratorConfigPage, SelectHdl, weld::TreeView&, rListBox, void)
{
if (&rListBox == m_xEntriesBox.get())
{
- TAccInfo* pEntry = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_selected_id().toInt64());
+ TAccInfo* pEntry = weld::fromId<TAccInfo*>(m_xEntriesBox->get_selected_id());
OUString sPossibleNewCommand = m_xFunctionBox->GetCurCommand();
@@ -1214,7 +1242,7 @@ IMPL_LINK(SfxAcceleratorConfigPage, SelectHdl, weld::TreeView&, rListBox, void)
m_xChangeButton->set_sensitive(false);
// #i36994 First selected can return null!
- TAccInfo* pEntry = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_selected_id().toInt64());
+ TAccInfo* pEntry = weld::fromId<TAccInfo*>(m_xEntriesBox->get_selected_id());
if (pEntry)
{
OUString sPossibleNewCommand = m_xFunctionBox->GetCurCommand();
@@ -1233,12 +1261,10 @@ IMPL_LINK(SfxAcceleratorConfigPage, SelectHdl, weld::TreeView&, rListBox, void)
{
for (int i = 0, nCount = m_xEntriesBox->n_children(); i < nCount; ++i)
{
- TAccInfo* pUserData
- = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(i).toInt64());
+ TAccInfo* pUserData = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(i));
if (pUserData && pUserData->m_sCommand == sPossibleNewCommand)
{
- m_xKeyBox->append(OUString::number(reinterpret_cast<sal_Int64>(pUserData)),
- pUserData->m_aKey.GetName());
+ m_xKeyBox->append(weld::toId(pUserData), pUserData->m_aKey.GetName());
}
}
}
@@ -1248,7 +1274,7 @@ IMPL_LINK(SfxAcceleratorConfigPage, SelectHdl, weld::TreeView&, rListBox, void)
{
// goto selected "key" entry of the key box
int nP2 = -1;
- TAccInfo* pU2 = reinterpret_cast<TAccInfo*>(m_xKeyBox->get_selected_id().toInt64());
+ TAccInfo* pU2 = weld::fromId<TAccInfo*>(m_xKeyBox->get_selected_id());
if (pU2)
nP2 = MapKeyCodeToPos(pU2->m_aKey);
if (nP2 != -1)
@@ -1403,7 +1429,7 @@ IMPL_LINK_NOARG(SfxAcceleratorConfigPage, SaveHdl, sfx2::FileDialogHelper*, void
xUIConfigProps->getPropertyValue(MEDIATYPE_PROPNAME) >>= sMediaType;
if (sMediaType.isEmpty())
xUIConfigProps->setPropertyValue(
- MEDIATYPE_PROPNAME, uno::Any(OUString("application/vnd.sun.xml.ui.configuration")));
+ MEDIATYPE_PROPNAME, uno::Any(u"application/vnd.sun.xml.ui.configuration"_ustr));
uno::Reference<ui::XUIConfigurationManager2> xCfgMgr
= ui::UIConfigurationManager::create(m_xContext);
@@ -1457,7 +1483,7 @@ void SfxAcceleratorConfigPage::StartFileDialog(StartFileDialogType nType, const
m_pFileDlg->SetTitle(rTitle);
m_pFileDlg->AddFilter(aFilterAllStr, FILEDIALOG_FILTER_ALL);
- m_pFileDlg->AddFilter(aFilterCfgStr, "*.cfg");
+ m_pFileDlg->AddFilter(aFilterCfgStr, u"*.cfg"_ustr);
m_pFileDlg->SetCurrentFilter(aFilterCfgStr);
m_pFileDlg->SetContext(sfx2::FileDialogHelper::AcceleratorConfig);
@@ -1473,6 +1499,13 @@ bool SfxAcceleratorConfigPage::FillItemSet(SfxItemSet*)
try
{
m_xAct->store();
+ css::uno::Reference<css::beans::XPropertySet> xFrameProps(m_xFrame,
+ css::uno::UNO_QUERY_THROW);
+ css::uno::Reference<css::frame::XLayoutManager> xLayoutManager;
+ xFrameProps->getPropertyValue(u"LayoutManager"_ustr) >>= xLayoutManager;
+ css::uno::Reference<css::beans::XPropertySet> xLayoutProps(xLayoutManager,
+ css::uno::UNO_QUERY_THROW);
+ xLayoutProps->setPropertyValue(u"RefreshContextToolbarToolTip"_ustr, css::uno::Any(true));
}
catch (const uno::RuntimeException&)
{
@@ -1511,10 +1544,9 @@ void SfxAcceleratorConfigPage::Reset(const SfxItemSet* rSet)
RadioHdl(*m_xOfficeButton);
#if HAVE_FEATURE_SCRIPTING
- const SfxPoolItem* pMacroItem = nullptr;
- if (SfxItemState::SET == rSet->GetItemState(SID_MACROINFO, true, &pMacroItem))
+ if (const SfxMacroInfoItem* pMacroItem = rSet->GetItemIfSet(SID_MACROINFO))
{
- m_pMacroInfoItem = &dynamic_cast<const SfxMacroInfoItem&>(*pMacroItem);
+ m_pMacroInfoItem = pMacroItem;
m_xGroupLBox->SelectMacro(m_pMacroInfoItem);
}
#else
@@ -1527,7 +1559,7 @@ sal_Int32 SfxAcceleratorConfigPage::MapKeyCodeToPos(const vcl::KeyCode& aKey) co
sal_uInt16 nCode1 = aKey.GetCode() + aKey.GetModifier();
for (int i = 0, nCount = m_xEntriesBox->n_children(); i < nCount; ++i)
{
- TAccInfo* pUserData = reinterpret_cast<TAccInfo*>(m_xEntriesBox->get_id(i).toInt64());
+ TAccInfo* pUserData = weld::fromId<TAccInfo*>(m_xEntriesBox->get_id(i));
if (pUserData)
{
sal_uInt16 nCode2 = pUserData->m_aKey.GetCode() + pUserData->m_aKey.GetModifier();
@@ -1549,7 +1581,7 @@ OUString SfxAcceleratorConfigPage::GetLabel4Command(const OUString& sCommand)
if (xModuleConf.is())
{
::comphelper::SequenceAsHashMap lProps(xModuleConf->getByName(sCommand));
- OUString sLabel = lProps.getUnpackedValueOrDefault("Name", OUString());
+ OUString sLabel = lProps.getUnpackedValueOrDefault(u"Name"_ustr, OUString());
if (!sLabel.isEmpty())
return sLabel;
}
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 29ca8ccb96f6..ca717c2632c7 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <typeinfo>
+#include <utility>
#include <vcl/stdtext.hxx>
#include <vcl/commandinfoprovider.hxx>
#include <vcl/event.hxx>
@@ -35,6 +36,7 @@
#include <vcl/decoview.hxx>
#include <vcl/virdev.hxx>
+#include <sfx2/minfitem.hxx>
#include <sfx2/sfxhelp.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/filedlghelper.hxx>
@@ -42,7 +44,7 @@
#include <svl/stritem.hxx>
#include <rtl/ustrbuf.hxx>
#include <tools/debug.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <algorithm>
@@ -90,7 +92,7 @@
#include <comphelper/propertysequence.hxx>
#include <comphelper/propertyvalue.hxx>
#include <comphelper/processfactory.hxx>
-#include <officecfg/Office/Common.hxx>
+#include <config_features.h>
namespace uno = com::sun::star::uno;
namespace frame = com::sun::star::frame;
@@ -204,29 +206,40 @@ static std::unique_ptr<SfxTabPage> CreateSvxEventConfigPage( weld::Container* pP
*
*****************************************************************************/
SvxConfigDialog::SvxConfigDialog(weld::Window * pParent, const SfxItemSet* pInSet)
- : SfxTabDialogController(pParent, "cui/ui/customizedialog.ui", "CustomizeDialog", pInSet)
+ : SfxTabDialogController(pParent, u"cui/ui/customizedialog.ui"_ustr, u"CustomizeDialog"_ustr, pInSet)
{
SvxConfigPageHelper::InitImageType();
- AddTabPage("menus", CreateSvxMenuConfigPage, nullptr);
- AddTabPage("toolbars", CreateSvxToolbarConfigPage, nullptr);
- AddTabPage("notebookbar", CreateSvxNotebookbarConfigPage, nullptr);
- AddTabPage("contextmenus", CreateSvxContextMenuConfigPage, nullptr);
- AddTabPage("keyboard", CreateKeyboardConfigPage, nullptr);
- AddTabPage("events", CreateSvxEventConfigPage, nullptr);
+ AddTabPage(u"menus"_ustr, CreateSvxMenuConfigPage, nullptr);
+ AddTabPage(u"toolbars"_ustr, CreateSvxToolbarConfigPage, nullptr);
+ AddTabPage(u"notebookbar"_ustr, CreateSvxNotebookbarConfigPage, nullptr);
+ AddTabPage(u"contextmenus"_ustr, CreateSvxContextMenuConfigPage, nullptr);
+ AddTabPage(u"keyboard"_ustr, CreateKeyboardConfigPage, nullptr);
+ AddTabPage(u"events"_ustr, CreateSvxEventConfigPage, nullptr);
- const SfxPoolItem* pItem =
- pInSet->GetItem( pInSet->GetPool()->GetWhich( SID_CONFIG ) );
-
- if ( pItem )
+ if (const SfxPoolItem* pItem = pInSet->GetItem(SID_CONFIG))
{
OUString text = static_cast<const SfxStringItem*>(pItem)->GetValue();
-
if (text.startsWith( ITEM_TOOLBAR_URL ) )
- {
- SetCurPageId("toolbars");
- }
+ SetCurPageId(u"toolbars"_ustr);
+ else if (text.startsWith( ITEM_EVENT_URL) )
+ SetCurPageId(u"events"_ustr);
}
+#if HAVE_FEATURE_SCRIPTING
+ else if (pInSet->GetItemIfSet(SID_MACROINFO))
+ {
+ // for the "assign" button in the Basic Macros chooser automatically switch
+ // to the keyboard tab in which this macro will be pre-selected for assigning
+ // to a keystroke
+ SetCurPageId(u"keyboard"_ustr);
+ }
+#endif
+}
+
+void SvxConfigDialog::ActivatePage(const OUString& rPage)
+{
+ SfxTabDialogController::ActivatePage(rPage);
+ GetResetButton()->set_visible(rPage != "keyboard");
}
void SvxConfigDialog::SetFrame(const css::uno::Reference<css::frame::XFrame>& xFrame)
@@ -238,13 +251,13 @@ void SvxConfigDialog::SetFrame(const css::uno::Reference<css::frame::XFrame>& xF
aModuleId != "com.sun.star.sheet.SpreadsheetDocument" &&
aModuleId != "com.sun.star.presentation.PresentationDocument" &&
aModuleId != "com.sun.star.drawing.DrawingDocument")
- RemoveTabPage("notebookbar");
+ RemoveTabPage(u"notebookbar"_ustr);
if (aModuleId == "com.sun.star.frame.StartModule")
- RemoveTabPage("keyboard");
+ RemoveTabPage(u"keyboard"_ustr);
}
-void SvxConfigDialog::PageCreated(const OString &rId, SfxTabPage& rPage)
+void SvxConfigDialog::PageCreated(const OUString &rId, SfxTabPage& rPage)
{
if (rId == "menus" || rId == "keyboard" || rId == "notebookbar"
|| rId == "toolbars" || rId == "contextmenus")
@@ -268,16 +281,16 @@ void SvxConfigDialog::PageCreated(const OString &rId, SfxTabPage& rPage)
uno::Reference< css::ui::XImageManager>* SaveInData::xDefaultImgMgr = nullptr;
SaveInData::SaveInData(
- const uno::Reference< css::ui::XUIConfigurationManager >& xCfgMgr,
- const uno::Reference< css::ui::XUIConfigurationManager >& xParentCfgMgr,
+ uno::Reference< css::ui::XUIConfigurationManager > xCfgMgr,
+ uno::Reference< css::ui::XUIConfigurationManager > xParentCfgMgr,
const OUString& aModuleId,
bool isDocConfig )
:
bModified( false ),
bDocConfig( isDocConfig ),
bReadOnly( false ),
- m_xCfgMgr( xCfgMgr ),
- m_xParentCfgMgr( xParentCfgMgr ),
+ m_xCfgMgr(std::move( xCfgMgr )),
+ m_xParentCfgMgr(std::move( xParentCfgMgr )),
m_aSeparatorSeq{ comphelper::makePropertyValue(ITEM_DESCRIPTOR_TYPE,
css::ui::ItemType::SEPARATOR_LINE) }
{
@@ -409,7 +422,7 @@ MenuSaveInData::GetEntries()
{
if ( pRootEntry == nullptr )
{
- pRootEntry.reset( new SvxConfigEntry( "MainMenus", OUString(), true, /*bParentData*/false) );
+ pRootEntry.reset( new SvxConfigEntry( u"MainMenus"_ustr, OUString(), true, /*bParentData*/false) );
if ( m_xMenuSettings.is() )
{
@@ -479,7 +492,7 @@ void SaveInData::LoadSubMenus( const uno::Reference< container::XIndexAccess >&
if ( a >>= aPropSeq )
{
OUString aMenuLabel;
- for ( const beans::PropertyValue& prop : std::as_const(aPropSeq) )
+ for (const beans::PropertyValue& prop : aPropSeq)
{
if ( bContextMenu )
{
@@ -710,7 +723,7 @@ OUString ContextMenuSaveInData::GetUIName( const OUString& rResourceURL )
catch ( const css::uno::Exception& )
{}
- for ( const auto& aProp : std::as_const(aProps) )
+ for (const auto& aProp : aProps)
{
if ( aProp.Name == ITEM_DESCRIPTOR_UINAME )
{
@@ -729,7 +742,7 @@ SvxEntries* ContextMenuSaveInData::GetEntries()
{
std::unordered_map< OUString, bool > aMenuInfo;
- m_pRootEntry.reset( new SvxConfigEntry( "ContextMenus", OUString(), true, /*bParentData*/false ) );
+ m_pRootEntry.reset( new SvxConfigEntry( u"ContextMenus"_ustr, OUString(), true, /*bParentData*/false ) );
css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aElementsInfo;
try
{
@@ -738,7 +751,7 @@ SvxEntries* ContextMenuSaveInData::GetEntries()
catch ( const css::lang::IllegalArgumentException& )
{}
- for ( const auto& aElement : std::as_const(aElementsInfo) )
+ for (const auto& aElement : aElementsInfo)
{
OUString aUrl;
for ( const auto& aElementProp : aElement )
@@ -786,7 +799,7 @@ SvxEntries* ContextMenuSaveInData::GetEntries()
catch ( const css::lang::IllegalArgumentException& )
{}
- for ( const auto& aElement : std::as_const(aParentElementsInfo) )
+ for (const auto& aElement : aParentElementsInfo)
{
OUString aUrl;
for ( const auto& aElementProp : aElement )
@@ -932,6 +945,7 @@ SvxMenuEntriesListBox::SvxMenuEntriesListBox(std::unique_ptr<weld::TreeView> xCo
m_xControl->enable_toggle_buttons(weld::ColumnToggleType::Check);
CreateDropDown();
m_xControl->connect_key_press(LINK(this, SvxMenuEntriesListBox, KeyInputHdl));
+ m_xControl->connect_query_tooltip(LINK(this, SvxMenuEntriesListBox, QueryTooltip));
}
SvxMenuEntriesListBox::~SvxMenuEntriesListBox()
@@ -963,6 +977,21 @@ IMPL_LINK(SvxMenuEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent, bool)
return true;
}
+IMPL_LINK(SvxMenuEntriesListBox, QueryTooltip, const weld::TreeIter&, rIter, OUString)
+{
+ SvxConfigEntry *pEntry = weld::fromId<SvxConfigEntry*>(m_xControl->get_id(rIter));
+ if (!pEntry || pEntry->GetCommand().isEmpty())
+ return OUString();
+ const OUString sCommand(pEntry->GetCommand());
+ OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(m_pPage->GetFrame()));
+ auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(sCommand, aModuleName);
+ OUString sTooltipLabel = vcl::CommandInfoProvider::GetTooltipForCommand(sCommand, aProperties,
+ m_pPage->GetFrame());
+ return CuiResId(RID_CUISTR_COMMANDLABEL) + ": " + pEntry->GetName().replaceFirst("~", "") + "\n" +
+ CuiResId(RID_CUISTR_COMMANDNAME) + ": " + sCommand + "\n" +
+ CuiResId(RID_CUISTR_COMMANDTIP) + ": " + sTooltipLabel.replaceFirst("~", "");
+}
+
/******************************************************************************
*
* SvxConfigPage is the abstract base class on which the Menu and Toolbar
@@ -971,28 +1000,30 @@ IMPL_LINK(SvxMenuEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent, bool)
*
*****************************************************************************/
SvxConfigPage::SvxConfigPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/menuassignpage.ui", "MenuAssignPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/menuassignpage.ui"_ustr, u"MenuAssignPage"_ustr, &rSet)
, m_aUpdateDataTimer( "SvxConfigPage UpdateDataTimer" )
, bInitialised(false)
, pCurrentSaveInData(nullptr)
- , m_xCommandCategoryListBox(new CommandCategoryListBox(m_xBuilder->weld_combo_box("commandcategorylist")))
- , m_xFunctions(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view("functions")))
- , m_xCategoryLabel(m_xBuilder->weld_label("categorylabel"))
- , m_xDescriptionFieldLb(m_xBuilder->weld_label("descriptionlabel"))
- , m_xDescriptionField(m_xBuilder->weld_text_view("desc"))
- , m_xLeftFunctionLabel(m_xBuilder->weld_label("leftfunctionlabel"))
- , m_xSearchEdit(m_xBuilder->weld_entry("searchEntry"))
- , m_xSearchLabel(m_xBuilder->weld_label("searchlabel"))
- , m_xCustomizeLabel(m_xBuilder->weld_label("customizelabel"))
- , m_xTopLevelListBox(m_xBuilder->weld_combo_box("toplevellist"))
- , m_xMoveUpButton(m_xBuilder->weld_button("up"))
- , m_xMoveDownButton(m_xBuilder->weld_button("down"))
- , m_xSaveInListBox(m_xBuilder->weld_combo_box("savein"))
- , m_xInsertBtn(m_xBuilder->weld_menu_button("insert"))
- , m_xModifyBtn(m_xBuilder->weld_menu_button("modify"))
- , m_xResetBtn(m_xBuilder->weld_button("defaultsbtn"))
- , m_xAddCommandButton(m_xBuilder->weld_button("add"))
- , m_xRemoveCommandButton(m_xBuilder->weld_button("remove"))
+ , m_xCommandCategoryListBox(new CommandCategoryListBox(m_xBuilder->weld_combo_box(u"commandcategorylist"_ustr)))
+ , m_xFunctions(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view(u"functions"_ustr)))
+ , m_xCategoryLabel(m_xBuilder->weld_label(u"categorylabel"_ustr))
+ , m_xDescriptionFieldLb(m_xBuilder->weld_label(u"descriptionlabel"_ustr))
+ , m_xDescriptionField(m_xBuilder->weld_text_view(u"desc"_ustr))
+ , m_xLeftFunctionLabel(m_xBuilder->weld_label(u"leftfunctionlabel"_ustr))
+ , m_xSearchEdit(m_xBuilder->weld_entry(u"searchEntry"_ustr))
+ , m_xSearchLabel(m_xBuilder->weld_label(u"searchlabel"_ustr))
+ , m_xCustomizeLabel(m_xBuilder->weld_label(u"customizelabel"_ustr))
+ , m_xTopLevelListBox(m_xBuilder->weld_combo_box(u"toplevellist"_ustr))
+ , m_xMoveUpButton(m_xBuilder->weld_button(u"up"_ustr))
+ , m_xMoveDownButton(m_xBuilder->weld_button(u"down"_ustr))
+ , m_xSaveInListBox(m_xBuilder->weld_combo_box(u"savein"_ustr))
+ , m_xCustomizeBox(m_xBuilder->weld_widget(u"customizebox"_ustr))
+ , m_xInsertBtn(m_xBuilder->weld_menu_button(u"insert"_ustr))
+ , m_xModifyBtn(m_xBuilder->weld_menu_button(u"modify"_ustr))
+ , m_xResetBtn(m_xBuilder->weld_button(u"defaultsbtn"_ustr))
+ , m_xCommandButtons(m_xBuilder->weld_widget(u"arrowgrid"_ustr))
+ , m_xAddCommandButton(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xRemoveCommandButton(m_xBuilder->weld_button(u"remove"_ustr))
{
CustomNotebookbarGenerator::getFileNameAndAppName(m_sAppName, m_sFileName);
@@ -1023,7 +1054,7 @@ SvxConfigPage::~SvxConfigPage()
int cnt = m_xSaveInListBox->get_count();
for(int i=0; i < cnt; ++i)
{
- SaveInData *pData = reinterpret_cast<SaveInData*>(m_xSaveInListBox->get_id(i).toInt64());
+ SaveInData *pData = weld::fromId<SaveInData*>(m_xSaveInListBox->get_id(i));
delete pData;
}
}
@@ -1075,7 +1106,7 @@ void SvxConfigPage::Reset( const SfxItemSet* )
if ( pModuleData != nullptr )
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pModuleData)));
+ OUString sId(weld::toId(pModuleData));
m_xSaveInListBox->append(sId, utl::ConfigManager::getProductName() + " " + aModuleName);
}
@@ -1106,7 +1137,7 @@ void SvxConfigPage::Reset( const SfxItemSet* )
if ( !pDocData->IsReadOnly() )
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pDocData)));
+ OUString sId(weld::toId(pDocData));
m_xSaveInListBox->append(sId, aTitle);
}
}
@@ -1172,7 +1203,7 @@ void SvxConfigPage::Reset( const SfxItemSet* )
DBG_UNHANDLED_EXCEPTION("cui.customize");
}
- for ( uno::Reference < frame::XFrame > const & xf : std::as_const(aFrameList) )
+ for (uno::Reference<frame::XFrame> const& xf : aFrameList)
{
if ( xf.is() && xf != m_xFrame )
{
@@ -1215,7 +1246,7 @@ void SvxConfigPage::Reset( const SfxItemSet* )
if ( pData && !pData->IsReadOnly() )
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pData)));
+ OUString sId(weld::toId(pData));
m_xSaveInListBox->append(sId, aTitle2);
}
}
@@ -1262,8 +1293,11 @@ OUString SvxConfigPage::GetFrameWithDefaultAndIdentify( uno::Reference< frame::X
_inout_rxFrame = xDesktop->getCurrentFrame();
}
- if ( !_inout_rxFrame.is() && SfxViewFrame::Current() )
- _inout_rxFrame = SfxViewFrame::Current()->GetFrame().GetFrameInterface();
+ if ( !_inout_rxFrame.is())
+ {
+ if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
+ _inout_rxFrame = pViewFrame->GetFrame().GetFrameInterface();
+ }
if ( !_inout_rxFrame.is() )
{
@@ -1285,7 +1319,7 @@ OUString SvxConfigPage::GetScriptURL() const
{
OUString result;
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(m_xFunctions->get_selected_id().toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(m_xFunctions->get_selected_id());
if (pData)
{
if ( ( pData->nKind == SfxCfgKind::FUNCTION_SLOT ) ||
@@ -1313,7 +1347,7 @@ bool SvxConfigPage::FillItemSet( SfxItemSet* )
OUString sId = m_xSaveInListBox->get_id(i);
if (sId != notebookbarTabScope)
{
- SaveInData* pData = reinterpret_cast<SaveInData*>(sId.toInt64());
+ SaveInData* pData = weld::fromId<SaveInData*>(sId);
result = pData->Apply();
}
}
@@ -1324,7 +1358,7 @@ IMPL_LINK_NOARG(SvxConfigPage, SelectSaveInLocation, weld::ComboBox&, void)
{
OUString sId = m_xSaveInListBox->get_active_id();
if (sId != notebookbarTabScope)
- pCurrentSaveInData = reinterpret_cast<SaveInData*>(sId.toInt64());
+ pCurrentSaveInData = weld::fromId<SaveInData*>(sId);
Init();
}
@@ -1337,7 +1371,7 @@ void SvxConfigPage::ReloadTopLevelListBox( SvxConfigEntry const * pToSelect )
{
for (auto const& entryData : *GetSaveInData()->GetEntries())
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entryData)));
+ OUString sId(weld::toId(entryData));
m_xTopLevelListBox->append(sId, SvxConfigPageHelper::stripHotKey(entryData->GetName()));
if (entryData == pToSelect)
@@ -1371,7 +1405,7 @@ void SvxConfigPage::AddSubMenusToUI(
{
OUString subMenuTitle = OUString::Concat(rBaseTitle) + aMenuSeparatorStr + SvxConfigPageHelper::stripHotKey(entryData->GetName());
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entryData)));
+ OUString sId(weld::toId(entryData));
m_xTopLevelListBox->append(sId, subMenuTitle);
AddSubMenusToUI( subMenuTitle, entryData );
@@ -1496,7 +1530,7 @@ int SvxConfigPage::AppendEntry(
int nCurEntry =
nTarget != -1 ? nTarget : m_xContentsListBox->get_selected_index();
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pNewEntryData)));
+ OUString sId(weld::toId(pNewEntryData));
if (nCurEntry == -1 || nCurEntry == m_xContentsListBox->n_children() - 1)
{
@@ -1507,7 +1541,7 @@ int SvxConfigPage::AppendEntry(
else
{
SvxConfigEntry* pEntryData =
- reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nCurEntry).toInt64());
+ weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nCurEntry));
SvxEntries::iterator iter = pEntries->begin();
SvxEntries::const_iterator end = pEntries->end();
@@ -1549,7 +1583,7 @@ namespace
template<typename itertype> void TmplInsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, itertype& rIter, SaveInData* pSaveInData,
VirtualDevice& rDropDown, bool bMenu)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pNewEntryData)));
+ OUString sId(weld::toId(pNewEntryData));
rTreeView.set_id(rIter, sId);
@@ -1619,16 +1653,16 @@ IMPL_LINK_NOARG(SvxConfigPage, SelectFunctionHdl, weld::TreeView&, void)
}
else
{
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(m_xFunctions->get_selected_id().toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(m_xFunctions->get_selected_id());
if (pData)
{
bool bIsExperimental
= vcl::CommandInfoProvider::IsExperimental(pData->sCommand, m_aModuleId);
- OUString aExperimental = "\n" + CuiResId(RID_SVXSTR_COMMANDEXPERIMENTAL);
- OUString aLabel = CuiResId(RID_SVXSTR_COMMANDLABEL) + ": " + pData->sLabel + "\n";
- OUString aName = CuiResId(RID_SVXSTR_COMMANDNAME) + ": " + pData->sCommand + "\n";
- OUString aTip = CuiResId(RID_SVXSTR_COMMANDTIP) + ": " + pData->sTooltip;
+ OUString aExperimental = "\n" + CuiResId(RID_CUISTR_COMMANDEXPERIMENTAL);
+ OUString aLabel = CuiResId(RID_CUISTR_COMMANDLABEL) + ": " + pData->sLabel + "\n";
+ OUString aName = CuiResId(RID_CUISTR_COMMANDNAME) + ": " + pData->sCommand + "\n";
+ OUString aTip = CuiResId(RID_CUISTR_COMMANDTIP) + ": " + pData->sTooltip;
if (bIsExperimental)
m_xDescriptionField->set_text(aLabel + aName + aTip + aExperimental);
else
@@ -1642,7 +1676,7 @@ IMPL_LINK_NOARG(SvxConfigPage, SelectFunctionHdl, weld::TreeView&, void)
m_xAddCommandButton->set_sensitive(false);
m_xRemoveCommandButton->set_sensitive(false);
- m_xDescriptionField->set_text("");
+ m_xDescriptionField->set_text(u""_ustr);
}
UpdateButtonStates();
@@ -1717,43 +1751,41 @@ bool SvxConfigPage::MoveEntryData(int nSourceEntry, int nTargetEntry)
SvxEntries* pEntries = GetTopLevelSelection()->GetEntries();
SvxConfigEntry* pSourceData =
- reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nSourceEntry).toInt64());
+ weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nSourceEntry));
SvxConfigEntry* pTargetData =
- reinterpret_cast<SvxConfigEntry*>(m_xContentsListBox->get_id(nTargetEntry).toInt64());
+ weld::fromId<SvxConfigEntry*>(m_xContentsListBox->get_id(nTargetEntry));
- if ( pSourceData != nullptr && pTargetData != nullptr )
- {
- // remove the source entry from our list
- SvxConfigPageHelper::RemoveEntry( pEntries, pSourceData );
+ if ( pSourceData == nullptr || pTargetData == nullptr )
+ return false;
- SvxEntries::iterator iter = pEntries->begin();
- SvxEntries::const_iterator end = pEntries->end();
+ // remove the source entry from our list
+ SvxConfigPageHelper::RemoveEntry( pEntries, pSourceData );
- // advance the iterator to the position of the target entry
- while (*iter != pTargetData && ++iter != end) ;
+ SvxEntries::iterator iter = pEntries->begin();
+ SvxEntries::const_iterator end = pEntries->end();
- // insert the source entry at the position after the target
- pEntries->insert( ++iter, pSourceData );
+ // advance the iterator to the position of the target entry
+ while (*iter != pTargetData && ++iter != end) ;
- GetSaveInData()->SetModified();
- GetTopLevelSelection()->SetModified();
+ // insert the source entry at the position after the target
+ pEntries->insert( ++iter, pSourceData );
- return true;
- }
+ GetSaveInData()->SetModified();
+ GetTopLevelSelection()->SetModified();
- return false;
+ return true;
}
SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
weld::Window* pParent, SvxEntries* entries,
SvxConfigEntry const * selection, bool bCreateMenu )
- : GenericDialogController(pParent, "cui/ui/movemenu.ui", "MoveMenuDialog")
- , m_xMenuBox(m_xBuilder->weld_widget("namebox"))
- , m_xMenuNameEdit(m_xBuilder->weld_entry("menuname"))
- , m_xMenuListBox(m_xBuilder->weld_tree_view("menulist"))
- , m_xMoveUpButton(m_xBuilder->weld_button("up"))
- , m_xMoveDownButton(m_xBuilder->weld_button("down"))
+ : GenericDialogController(pParent, u"cui/ui/movemenu.ui"_ustr, u"MoveMenuDialog"_ustr)
+ , m_xMenuBox(m_xBuilder->weld_widget(u"namebox"_ustr))
+ , m_xMenuNameEdit(m_xBuilder->weld_entry(u"menuname"_ustr))
+ , m_xMenuListBox(m_xBuilder->weld_tree_view(u"menulist"_ustr))
+ , m_xMoveUpButton(m_xBuilder->weld_button(u"up"_ustr))
+ , m_xMoveDownButton(m_xBuilder->weld_button(u"down"_ustr))
{
m_xMenuListBox->set_size_request(-1, m_xMenuListBox->get_height_rows(12));
@@ -1763,7 +1795,7 @@ SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
mpEntries.reset( new SvxEntries );
for (auto const& entry : *entries)
{
- m_xMenuListBox->append(OUString::number(reinterpret_cast<sal_uInt64>(entry)),
+ m_xMenuListBox->append(weld::toId(entry),
SvxConfigPageHelper::stripHotKey(entry->GetName()));
mpEntries->push_back(entry);
if (entry == selection)
@@ -1776,7 +1808,7 @@ SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
if ( bCreateMenu )
{
// Generate custom name for new menu
- OUString prefix = CuiResId( RID_SVXSTR_NEW_MENU );
+ OUString prefix = CuiResId( RID_CUISTR_NEW_MENU );
OUString newname = SvxConfigPageHelper::generateCustomName( prefix, entries );
OUString newurl = SvxConfigPageHelper::generateCustomMenuURL( mpEntries.get() );
@@ -1787,7 +1819,7 @@ SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
pNewEntryData->SetUserDefined();
pNewEntryData->SetMain();
- m_sNewMenuEntryId = OUString::number(reinterpret_cast<sal_uInt64>(pNewEntryData));
+ m_sNewMenuEntryId = weld::toId(pNewEntryData);
m_xMenuListBox->append(m_sNewMenuEntryId,
SvxConfigPageHelper::stripHotKey(pNewEntryData->GetName()));
m_xMenuListBox->select(m_xMenuListBox->n_children() - 1);
@@ -1803,7 +1835,7 @@ SvxMainMenuOrganizerDialog::SvxMainMenuOrganizerDialog(
// hide name label and textfield
m_xMenuBox->hide();
// change the title
- m_xDialog->set_title(CuiResId(RID_SVXSTR_MOVE_MENU));
+ m_xDialog->set_title(CuiResId(RID_CUISTR_MOVE_MENU));
}
m_xMenuListBox->connect_changed(LINK(this, SvxMainMenuOrganizerDialog, SelectHdl));
@@ -1826,7 +1858,7 @@ IMPL_LINK_NOARG(SvxMainMenuOrganizerDialog, ModifyHdl, weld::Entry&, void)
return;
}
- SvxConfigEntry* pNewEntryData = reinterpret_cast<SvxConfigEntry*>(m_sNewMenuEntryId.toUInt64());
+ SvxConfigEntry* pNewEntryData = weld::fromId<SvxConfigEntry*>(m_sNewMenuEntryId);
pNewEntryData->SetName(m_xMenuNameEdit->get_text());
const int nNewMenuPos = m_xMenuListBox->find_id(m_sNewMenuEntryId);
@@ -1883,14 +1915,14 @@ SvxConfigEntry* SvxMainMenuOrganizerDialog::GetSelectedEntry()
const int nSelected(m_xMenuListBox->get_selected_index());
if (nSelected == -1)
return nullptr;
- return reinterpret_cast<SvxConfigEntry*>(m_xMenuListBox->get_id(nSelected).toUInt64());
+ return weld::fromId<SvxConfigEntry*>(m_xMenuListBox->get_id(nSelected));
}
-SvxConfigEntry::SvxConfigEntry( const OUString& rDisplayName,
- const OUString& rCommandURL, bool bPopup, bool bParentData )
+SvxConfigEntry::SvxConfigEntry( OUString aDisplayName,
+ OUString aCommandURL, bool bPopup, bool bParentData )
: nId( 1 )
- , aLabel(rDisplayName)
- , aCommand(rCommandURL)
+ , aLabel(std::move(aDisplayName))
+ , aCommand(std::move(aCommandURL))
, bPopUp(bPopup)
, bStrEdited( false )
, bIsUserDefined( false )
@@ -1969,7 +2001,7 @@ sal_Int32 ToolbarSaveInData::GetSystemStyle( const OUString& rResourceURL )
if ( a >>= aProps )
{
- for ( beans::PropertyValue const & prop : std::as_const(aProps) )
+ for (beans::PropertyValue const& prop : aProps)
{
if ( prop.Name == ITEM_DESCRIPTOR_STYLE )
{
@@ -2004,7 +2036,7 @@ void ToolbarSaveInData::SetSystemStyle(
uno::Reference< beans::XPropertySet > xPropSet( xFrame, uno::UNO_QUERY );
if ( xPropSet.is() )
{
- uno::Any a = xPropSet->getPropertyValue( "LayoutManager" );
+ uno::Any a = xPropSet->getPropertyValue( u"LayoutManager"_ustr );
a >>= xLayoutManager;
}
@@ -2096,7 +2128,7 @@ OUString ToolbarSaveInData::GetSystemUIName( const OUString& rResourceURL )
if ( a >>= aProps )
{
- for ( beans::PropertyValue const & prop : std::as_const(aProps) )
+ for (beans::PropertyValue const& prop : aProps)
{
if ( prop.Name == ITEM_DESCRIPTOR_UINAME )
{
@@ -2123,7 +2155,7 @@ OUString ToolbarSaveInData::GetSystemUIName( const OUString& rResourceURL )
uno::Sequence< beans::PropertyValue > aPropSeq;
if ( a >>= aPropSeq )
{
- for ( beans::PropertyValue const & prop : std::as_const(aPropSeq) )
+ for (beans::PropertyValue const& prop : aPropSeq)
{
if ( prop.Name == ITEM_DESCRIPTOR_LABEL )
{
@@ -2150,7 +2182,7 @@ SvxEntries* ToolbarSaveInData::GetEntries()
if ( pRootEntry == nullptr )
{
- pRootEntry.reset( new SvxConfigEntry( "MainToolbars", OUString(), true, /*bParentData*/false) );
+ pRootEntry.reset( new SvxConfigEntry( u"MainToolbars"_ustr, OUString(), true, /*bParentData*/false) );
const uno::Sequence< uno::Sequence < beans::PropertyValue > > info =
GetConfigManager()->getUIElementsInfo(
@@ -2625,7 +2657,7 @@ void ToolbarSaveInData::LoadToolbar(
uno::Sequence< beans::PropertyValue > aPropSeq;
if ( a >>= aPropSeq )
{
- for ( beans::PropertyValue const & prop : std::as_const(aPropSeq) )
+ for (beans::PropertyValue const& prop : aPropSeq)
{
if ( prop.Name == "Name" )
{
@@ -2659,10 +2691,9 @@ void ToolbarSaveInData::LoadToolbar(
}
SvxNewToolbarDialog::SvxNewToolbarDialog(weld::Window* pWindow, const OUString& rName)
- : GenericDialogController(pWindow, "cui/ui/newtoolbardialog.ui", "NewToolbarDialog")
- , m_xEdtName(m_xBuilder->weld_entry("edit"))
- , m_xBtnOK(m_xBuilder->weld_button("ok"))
- , m_xSaveInListBox(m_xBuilder->weld_combo_box("savein"))
+ : GenericDialogController(pWindow, u"cui/ui/newtoolbardialog.ui"_ustr, u"NewToolbarDialog"_ustr)
+ , m_xEdtName(m_xBuilder->weld_entry(u"edit"_ustr))
+ , m_xSaveInListBox(m_xBuilder->weld_combo_box(u"savein"_ustr))
{
m_xEdtName->set_text(rName);
m_xEdtName->select_region(0, -1);
@@ -2678,16 +2709,16 @@ SvxNewToolbarDialog::~SvxNewToolbarDialog()
*
*******************************************************************************/
SvxIconSelectorDialog::SvxIconSelectorDialog(weld::Window *pWindow,
- const uno::Reference< css::ui::XImageManager >& rXImageManager,
- const uno::Reference< css::ui::XImageManager >& rXParentImageManager)
- : GenericDialogController(pWindow, "cui/ui/iconselectordialog.ui", "IconSelector")
- , m_xImageManager(rXImageManager)
- , m_xParentImageManager(rXParentImageManager)
- , m_xTbSymbol(new ValueSet(m_xBuilder->weld_scrolled_window("symbolswin", true)))
- , m_xTbSymbolWin(new weld::CustomWeld(*m_xBuilder, "symbolsToolbar", *m_xTbSymbol))
- , m_xFtNote(m_xBuilder->weld_label("noteLabel"))
- , m_xBtnImport(m_xBuilder->weld_button("importButton"))
- , m_xBtnDelete(m_xBuilder->weld_button("deleteButton"))
+ uno::Reference< css::ui::XImageManager > xImageManager,
+ uno::Reference< css::ui::XImageManager > xParentImageManager)
+ : GenericDialogController(pWindow, u"cui/ui/iconselectordialog.ui"_ustr, u"IconSelector"_ustr)
+ , m_xImageManager(std::move(xImageManager))
+ , m_xParentImageManager(std::move(xParentImageManager))
+ , m_xTbSymbol(new ValueSet(m_xBuilder->weld_scrolled_window(u"symbolswin"_ustr, true)))
+ , m_xTbSymbolWin(new weld::CustomWeld(*m_xBuilder, u"symbolsToolbar"_ustr, *m_xTbSymbol))
+ , m_xFtNote(m_xBuilder->weld_label(u"noteLabel"_ustr))
+ , m_xBtnImport(m_xBuilder->weld_button(u"importButton"_ustr))
+ , m_xBtnDelete(m_xBuilder->weld_button(u"deleteButton"_ustr))
{
typedef std::unordered_map< OUString, bool > ImageInfo;
@@ -2902,7 +2933,7 @@ IMPL_LINK_NOARG(SvxIconSelectorDialog, ImportHdl, weld::Button&, void)
IMPL_LINK_NOARG(SvxIconSelectorDialog, DeleteHdl, weld::Button&, void)
{
- OUString message = CuiResId( RID_SVXSTR_DELETE_ICON_CONFIRM );
+ OUString message = CuiResId( RID_CUISTR_DELETE_ICON_CONFIRM );
std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::OkCancel,
@@ -2912,8 +2943,7 @@ IMPL_LINK_NOARG(SvxIconSelectorDialog, DeleteHdl, weld::Button&, void)
sal_uInt16 nId = m_xTbSymbol->GetSelectedItemId();
- OUString aSelImageText = m_xTbSymbol->GetItemText( nId );
- uno::Sequence< OUString > URLs { aSelImageText };
+ uno::Sequence<OUString> URLs { m_xTbSymbol->GetItemText(nId) };
m_xTbSymbol->RemoveItem(nId);
m_xImportedImageManager->removeImages( SvxConfigPageHelper::GetImageType(), URLs );
if ( m_xImportedImageManager->isModified() )
@@ -2926,7 +2956,7 @@ bool SvxIconSelectorDialog::ReplaceGraphicItem(
const OUString& aURL )
{
uno::Reference< graphic::XGraphic > xGraphic;
- uno::Sequence< beans::PropertyValue > aMediaProps{ comphelper::makePropertyValue("URL", aURL) };
+ uno::Sequence< beans::PropertyValue > aMediaProps{ comphelper::makePropertyValue(u"URL"_ustr, aURL) };
css::awt::Size aSize;
bool bOK = false;
@@ -2936,7 +2966,7 @@ bool SvxIconSelectorDialog::ReplaceGraphicItem(
uno::Reference< beans::XPropertySet > props =
m_xGraphProvider->queryGraphicDescriptor( aMediaProps );
- uno::Any a = props->getPropertyValue( "SizePixel" );
+ uno::Any a = props->getPropertyValue( u"SizePixel"_ustr );
a >>= aSize;
if (0 == aSize.Width || 0 == aSize.Height)
return false;
@@ -2995,8 +3025,8 @@ namespace
OUString ReplaceIconName(std::u16string_view rMessage)
{
OUString name;
- OUString message = CuiResId( RID_SVXSTR_REPLACE_ICON_WARNING );
- OUString placeholder("%ICONNAME" );
+ OUString message = CuiResId( RID_CUISTR_REPLACE_ICON_WARNING );
+ OUString placeholder(u"%ICONNAME"_ustr );
sal_Int32 pos = message.indexOf( placeholder );
if ( pos != -1 )
{
@@ -3014,10 +3044,10 @@ namespace
SvxIconReplacementDialog(weld::Window *pParent, std::u16string_view rMessage, bool bYestoAll)
: m_xQueryBox(Application::CreateMessageDialog(pParent, VclMessageType::Warning, VclButtonsType::NONE, ReplaceIconName(rMessage)))
{
- m_xQueryBox->set_title(CuiResId(RID_SVXSTR_REPLACE_ICON_CONFIRM));
+ m_xQueryBox->set_title(CuiResId(RID_CUISTR_REPLACE_ICON_CONFIRM));
m_xQueryBox->add_button(GetStandardText(StandardButtonType::Yes), 2);
if (bYestoAll)
- m_xQueryBox->add_button(CuiResId(RID_SVXSTR_YESTOALL), 5);
+ m_xQueryBox->add_button(CuiResId(RID_CUISTR_YESTOALL), 5);
m_xQueryBox->add_button(GetStandardText(StandardButtonType::No), 4);
m_xQueryBox->add_button(GetStandardText(StandardButtonType::Cancel), 6);
m_xQueryBox->set_default_response(2);
@@ -3129,14 +3159,14 @@ bool SvxIconSelectorDialog::ImportGraphic( const OUString& aURL )
{
bool result = false;
- uno::Sequence< beans::PropertyValue > aMediaProps{ comphelper::makePropertyValue("URL", aURL) };
+ uno::Sequence< beans::PropertyValue > aMediaProps{ comphelper::makePropertyValue(u"URL"_ustr, aURL) };
try
{
uno::Reference< beans::XPropertySet > props =
m_xGraphProvider->queryGraphicDescriptor( aMediaProps );
- uno::Any a = props->getPropertyValue("SizePixel");
+ uno::Any a = props->getPropertyValue(u"SizePixel"_ustr);
uno::Reference< graphic::XGraphic > xGraphic = m_xGraphProvider->queryGraphic( aMediaProps );
if ( xGraphic.is() )
@@ -3194,8 +3224,8 @@ bool SvxIconSelectorDialog::ImportGraphic( const OUString& aURL )
*
*******************************************************************************/
SvxIconChangeDialog::SvxIconChangeDialog(weld::Window *pWindow, const OUString& rMessage)
- : MessageDialogController(pWindow, "cui/ui/iconchangedialog.ui", "IconChange", "grid")
- , m_xLineEditDescription(m_xBuilder->weld_text_view("addrTextview"))
+ : MessageDialogController(pWindow, u"cui/ui/iconchangedialog.ui"_ustr, u"IconChange"_ustr, u"grid"_ustr)
+ , m_xLineEditDescription(m_xBuilder->weld_text_view(u"addrTextview"_ustr))
{
m_xLineEditDescription->set_size_request(m_xLineEditDescription->get_approximate_digit_width() * 48,
m_xLineEditDescription->get_text_height() * 8);
diff --git a/cui/source/customize/cfgutil.cxx b/cui/source/customize/cfgutil.cxx
index c68db3540114..1cc1895a490a 100644
--- a/cui/source/customize/cfgutil.cxx
+++ b/cui/source/customize/cfgutil.cxx
@@ -49,14 +49,16 @@
#include <sal/log.hxx>
#include <osl/diagnose.h>
#include <dialmgr.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/commandinfoprovider.hxx>
#include <vcl/help.hxx>
#include <vcl/svapp.hxx>
+#include <o3tl/string_view.hxx>
#include <sfx2/sidebar/ResourceManager.hxx>
#include <sfx2/sidebar/Context.hxx>
+#include <unotools/viewoptions.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -77,7 +79,9 @@ const char CMDURL_STYLEPROT_ONLY[] = ".uno:StyleApply?";
const char CMDURL_SPART_ONLY [] = "Style:string=";
const char CMDURL_FPART_ONLY [] = "FamilyName:string=";
-constexpr OUStringLiteral STYLEPROP_UINAME = u"DisplayName";
+constexpr OUString STYLEPROP_UINAME = u"DisplayName"_ustr;
+constexpr OUString MACRO_SELECTOR_CONFIGNAME = u"MacroSelectorDialog"_ustr;
+constexpr OUString LAST_RUN_MACRO_INFO = u"LastRunMacro"_ustr;
OUString SfxStylesInfo_Impl::generateCommand(
std::u16string_view sFamily, std::u16string_view sStyle)
@@ -228,7 +232,7 @@ std::vector< SfxStyleInfo_Impl > SfxStylesInfo_Impl::getStyles(const OUString& s
xStyleSet->getByName(aStyleInfo.sStyle) >>= xStyle;
if (!xStyle.is())
continue;
- xStyle->getPropertyValue("DisplayName") >>= aStyleInfo.sLabel;
+ xStyle->getPropertyValue(u"DisplayName"_ustr) >>= aStyleInfo.sLabel;
}
catch(const css::uno::RuntimeException&)
{ throw; }
@@ -242,7 +246,7 @@ std::vector< SfxStyleInfo_Impl > SfxStylesInfo_Impl::getStyles(const OUString& s
OUString CuiConfigFunctionListBox::GetHelpText( bool bConsiderParent )
{
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(get_selected_id().toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(get_selected_id());
if (pData)
{
if ( pData->nKind == SfxCfgKind::FUNCTION_SLOT )
@@ -262,7 +266,7 @@ OUString CuiConfigFunctionListBox::GetHelpText( bool bConsiderParent )
OUString CuiConfigFunctionListBox::GetCurCommand() const
{
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(get_selected_id().toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(get_selected_id());
if (!pData)
return OUString();
return pData->sCommand;
@@ -270,7 +274,7 @@ OUString CuiConfigFunctionListBox::GetCurCommand() const
OUString CuiConfigFunctionListBox::GetCurLabel() const
{
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(get_selected_id().toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(get_selected_id());
if (!pData)
return OUString();
if (!pData->sLabel.isEmpty())
@@ -294,12 +298,12 @@ CuiConfigFunctionListBox::~CuiConfigFunctionListBox()
IMPL_LINK(CuiConfigFunctionListBox, QueryTooltip, const weld::TreeIter&, rIter, OUString)
{
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(m_xTreeView->get_id(rIter).toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(m_xTreeView->get_id(rIter));
if (!pData)
return OUString();
- OUString aLabel = CuiResId(RID_SVXSTR_COMMANDLABEL) + ": ";
- OUString aName = CuiResId(RID_SVXSTR_COMMANDNAME) + ": ";
- OUString aTip = CuiResId(RID_SVXSTR_COMMANDTIP) + ": ";
+ OUString aLabel = CuiResId(RID_CUISTR_COMMANDLABEL) + ": ";
+ OUString aName = CuiResId(RID_CUISTR_COMMANDNAME) + ": ";
+ OUString aTip = CuiResId(RID_CUISTR_COMMANDTIP) + ": ";
return aLabel + pData->sLabel + "\n" + aName + pData->sCommand+ "\n" + aTip + pData->sTooltip;
}
@@ -336,7 +340,7 @@ void CuiConfigFunctionListBox::ClearAll()
OUString CuiConfigFunctionListBox::GetSelectedScriptURI() const
{
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(get_selected_id().toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(get_selected_id());
if (pData && pData->nKind == SfxCfgKind::FUNCTION_SCRIPT)
return *static_cast<OUString*>(pData->pObject);
return OUString();
@@ -346,7 +350,6 @@ struct SvxConfigGroupBoxResource_Impl
{
OUString m_sMyMacros;
OUString m_sProdMacros;
- OUString m_sMacros;
OUString m_sDlgMacros;
OUString m_aStrGroupStyles;
OUString m_aStrGroupSidebarDecks;
@@ -355,12 +358,11 @@ struct SvxConfigGroupBoxResource_Impl
};
SvxConfigGroupBoxResource_Impl::SvxConfigGroupBoxResource_Impl() :
- m_sMyMacros(CuiResId(RID_SVXSTR_MYMACROS)),
- m_sProdMacros(CuiResId(RID_SVXSTR_PRODMACROS)),
- m_sMacros(CuiResId(RID_SVXSTR_BASICMACROS)),
- m_sDlgMacros(CuiResId(RID_SVXSTR_PRODMACROS)),
- m_aStrGroupStyles(CuiResId(RID_SVXSTR_GROUP_STYLES)),
- m_aStrGroupSidebarDecks(CuiResId(RID_SVXSTR_GROUP_SIDEBARDECKS))
+ m_sMyMacros(CuiResId(RID_CUISTR_MYMACROS)),
+ m_sProdMacros(CuiResId(RID_CUISTR_PRODMACROS)),
+ m_sDlgMacros(CuiResId(RID_CUISTR_PRODMACROS)),
+ m_aStrGroupStyles(CuiResId(RID_CUISTR_GROUP_STYLES)),
+ m_aStrGroupSidebarDecks(CuiResId(RID_CUISTR_GROUP_SIDEBARDECKS))
{
}
@@ -467,22 +469,16 @@ void CuiConfigGroupListBox::ClearAll()
m_xTreeView->clear();
}
-void CuiConfigGroupListBox::InitModule()
+sal_Int32 CuiConfigGroupListBox::InitModule()
{
try
{
+ // return the number of added groups
css::uno::Reference< css::frame::XDispatchInformationProvider > xProvider(m_xFrame, css::uno::UNO_QUERY_THROW);
css::uno::Sequence< sal_Int16 > lGroups = xProvider->getSupportedCommandGroups();
sal_Int32 c1 = lGroups.getLength();
sal_Int32 i1 = 0;
-
- if ( c1 )
- {
- // Add All Commands category
- aArr.push_back(std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_ALLFUNCTIONS, 0));
- m_xTreeView->append(OUString::number(reinterpret_cast<sal_Int64>(aArr.back().get())),
- CuiResId(RID_SVXSTR_ALLFUNCTIONS));
- }
+ sal_Int32 nAddedGroups = 0;
for (i1=0; i1<c1; ++i1)
{
@@ -500,14 +496,16 @@ void CuiConfigGroupListBox::InitModule()
{ continue; }
aArr.push_back( std::make_unique<SfxGroupInfo_Impl>( SfxCfgKind::GROUP_FUNCTION, nGroupID ) );
- m_xTreeView->append(OUString::number(reinterpret_cast<sal_Int64>(aArr.back().get())),
- sGroupName);
+ m_xTreeView->append(weld::toId(aArr.back().get()), sGroupName);
+ nAddedGroups++;
}
+ return nAddedGroups;
}
catch(const css::uno::RuntimeException&)
{ throw; }
catch(const css::uno::Exception&)
{}
+ return 0;
}
void CuiConfigGroupListBox::FillScriptList(const css::uno::Reference< css::script::browse::XBrowseNode >& xRootNode,
@@ -523,8 +521,8 @@ void CuiConfigGroupListBox::FillScriptList(const css::uno::Reference< css::scrip
xRootNode->getChildNodes();
bool bIsRootNode = false;
- OUString user("user");
- OUString share("share");
+ OUString user(u"user"_ustr);
+ OUString share(u"share"_ustr);
if ( xRootNode->getName() == "Root" )
{
bIsRootNode = true;
@@ -594,7 +592,7 @@ void CuiConfigGroupListBox::FillScriptList(const css::uno::Reference< css::scrip
aArr.push_back( std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_SCRIPTCONTAINER,
0, static_cast<void *>( theChild.get())));
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(aArr.back().get())));
+ OUString sId(weld::toId(aArr.back().get()));
m_xTreeView->insert(pParentEntry, -1, &uiName, &sId, nullptr, nullptr, bChildOnDemand, m_xScratchIter.get());
m_xTreeView->set_image(*m_xScratchIter, aImage);
}
@@ -619,7 +617,7 @@ void CuiConfigGroupListBox::FillFunctionsList(const css::uno::Sequence<DispatchI
pGrpInfo->sCommand = rInfo.Command;
pGrpInfo->sLabel = sUIName;
pGrpInfo->sTooltip = vcl::CommandInfoProvider::GetTooltipForCommand(rInfo.Command, aProperties, m_xFrame);
- m_pFunctionListBox->append(OUString::number(reinterpret_cast<sal_Int64>(pGrpInfo)), sUIName);
+ m_pFunctionListBox->append(weld::toId(pGrpInfo), sUIName);
}
m_pFunctionListBox->thaw();
}
@@ -634,6 +632,7 @@ void CuiConfigGroupListBox::Init(const css::uno::Reference< css::uno::XComponent
m_xContext = xContext;
m_xFrame = xFrame;
+ sal_Int32 nAddedGroups = 0;
if( bEventMode )
{
m_sModuleLongName = sModuleLongName;
@@ -641,7 +640,7 @@ void CuiConfigGroupListBox::Init(const css::uno::Reference< css::uno::XComponent
m_xModuleCategoryInfo.set(m_xGlobalCategoryInfo->getByName(m_sModuleLongName), css::uno::UNO_QUERY_THROW);
m_xUICmdDescription = css::frame::theUICommandDescription::get( m_xContext );
- InitModule();
+ nAddedGroups = InitModule();
}
SAL_INFO("cui.customize", "** ** About to initialise SF Scripts");
@@ -658,7 +657,21 @@ void CuiConfigGroupListBox::Init(const css::uno::Reference< css::uno::XComponent
// TODO exception handling
}
+ m_xTreeView->thaw();
+ m_xTreeView->make_sorted();
+ m_xTreeView->make_unsorted();
+ m_xTreeView->freeze();
+ // add All Commands to the top
+ if ( bEventMode && nAddedGroups )
+ {
+ aArr.insert(aArr.begin(), std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_ALLFUNCTIONS, 0));
+ OUString sId(weld::toId(aArr.front().get()));
+ OUString s(CuiResId(RID_CUISTR_ALLFUNCTIONS));
+ m_xTreeView->insert(nullptr, 0, &s, &sId, nullptr, nullptr, false, nullptr);
+ }
+
+ // add application macros to the end
if ( rootNode.is() )
{
if ( bEventMode )
@@ -670,7 +683,7 @@ void CuiConfigGroupListBox::Init(const css::uno::Reference< css::uno::XComponent
aArr.push_back( std::make_unique<SfxGroupInfo_Impl>( SfxCfgKind::GROUP_SCRIPTCONTAINER, 0,
static_cast<void *>(rootNode.get())));
OUString aTitle(xImp->m_sDlgMacros);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(aArr.back().get())));
+ OUString sId(weld::toId(aArr.back().get()));
m_xTreeView->insert(nullptr, -1, &aTitle, &sId, nullptr, nullptr, true, nullptr);
}
else
@@ -681,17 +694,17 @@ void CuiConfigGroupListBox::Init(const css::uno::Reference< css::uno::XComponent
}
}
- // add styles and sidebar decks
+ // add styles and sidebar decks to the end
if ( bEventMode )
{
aArr.push_back( std::make_unique<SfxGroupInfo_Impl>( SfxCfgKind::GROUP_STYLES, 0, nullptr ) ); // TODO last parameter should contain user data
OUString sStyle(xImp->m_aStrGroupStyles);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(aArr.back().get())));
+ OUString sId(weld::toId(aArr.back().get()));
m_xTreeView->insert(nullptr, -1, &sStyle, &sId, nullptr, nullptr, true, nullptr);
aArr.push_back( std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_SIDEBARDECKS, 0));
OUString sSidebarDecks(xImp->m_aStrGroupSidebarDecks);
- sId = OUString::number(reinterpret_cast<sal_Int64>(aArr.back().get()));
+ sId = weld::toId(aArr.back().get());
m_xTreeView->insert(nullptr, -1, &sSidebarDecks, &sId, nullptr, nullptr, false, nullptr);
}
@@ -727,15 +740,13 @@ OUString CuiConfigGroupListBox::GetImage(
Any aAny = xModuleManager->getByName(appModule);
if( !( aAny >>= moduleDescr ) )
{
- throw RuntimeException("SFTreeListBox::Init: failed to get PropertyValue");
+ throw RuntimeException(u"SFTreeListBox::Init: failed to get PropertyValue"_ustr);
}
- beans::PropertyValue const * pmoduleDescr =
- moduleDescr.getConstArray();
for ( sal_Int32 pos = moduleDescr.getLength(); pos--; )
{
- if ( pmoduleDescr[ pos ].Name == "ooSetupFactoryEmptyDocumentURL" )
+ if (moduleDescr[pos].Name == "ooSetupFactoryEmptyDocumentURL")
{
- pmoduleDescr[ pos ].Value >>= factoryURL;
+ moduleDescr[pos].Value >>= factoryURL;
SAL_INFO("cui.customize", "factory url for doc images is " << factoryURL);
break;
}
@@ -799,7 +810,7 @@ OUString CuiConfigGroupListBox::MapCommand2UIName(const OUString& sCommand)
if (xModuleConf.is())
{
::comphelper::SequenceAsHashMap lProps(xModuleConf->getByName(sCommand));
- sUIName = lProps.getUnpackedValueOrDefault("Name", OUString());
+ sUIName = lProps.getUnpackedValueOrDefault(u"Name"_ustr, OUString());
}
}
catch(const css::uno::RuntimeException&)
@@ -826,7 +837,7 @@ void CuiConfigGroupListBox::GroupSelected()
if (!m_xTreeView->get_selected(xIter.get()))
return;
- SfxGroupInfo_Impl *pInfo = reinterpret_cast<SfxGroupInfo_Impl*>(m_xTreeView->get_id(*xIter).toInt64());
+ SfxGroupInfo_Impl *pInfo = weld::fromId<SfxGroupInfo_Impl*>(m_xTreeView->get_id(*xIter));
m_pFunctionListBox->freeze();
m_pFunctionListBox->ClearAll();
@@ -838,7 +849,7 @@ void CuiConfigGroupListBox::GroupSelected()
bool bValidIter = m_xTreeView->get_iter_first(*xIter);
while (bValidIter)
{
- SfxGroupInfo_Impl *pCurrentInfo = reinterpret_cast<SfxGroupInfo_Impl*>(m_xTreeView->get_id(*xIter).toInt64());
+ SfxGroupInfo_Impl *pCurrentInfo = weld::fromId<SfxGroupInfo_Impl*>(m_xTreeView->get_id(*xIter));
if (pCurrentInfo->nKind == SfxCfgKind::GROUP_FUNCTION)
{
css::uno::Sequence< css::frame::DispatchInformation > lCommands;
@@ -891,12 +902,12 @@ void CuiConfigGroupListBox::GroupSelected()
}
Any value =
- xPropSet->getPropertyValue("URI");
+ xPropSet->getPropertyValue(u"URI"_ustr);
value >>= uri;
try
{
- value = xPropSet->getPropertyValue("Description");
+ value = xPropSet->getPropertyValue(u"Description"_ustr);
value >>= description;
}
catch (Exception &) {
@@ -911,7 +922,7 @@ void CuiConfigGroupListBox::GroupSelected()
m_pFunctionListBox->aArr.back()->sLabel = childNode->getName();
m_pFunctionListBox->aArr.back()->sHelpText = description;
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(m_pFunctionListBox->aArr.back().get())));
+ OUString sId(weld::toId(m_pFunctionListBox->aArr.back().get()));
m_pFunctionListBox->append(sId, childNode->getName(), aImage);
}
}
@@ -936,7 +947,7 @@ void CuiConfigGroupListBox::GroupSelected()
m_pFunctionListBox->aArr.push_back(std::make_unique<SfxGroupInfo_Impl>(SfxCfgKind::GROUP_STYLES, 0, pStyle));
m_pFunctionListBox->aArr.back()->sCommand = pStyle->sCommand;
m_pFunctionListBox->aArr.back()->sLabel = pStyle->sLabel;
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(m_pFunctionListBox->aArr.back().get())));
+ OUString sId(weld::toId(m_pFunctionListBox->aArr.back().get()));
m_pFunctionListBox->append(sId, pStyle->sLabel);
}
}
@@ -960,8 +971,7 @@ void CuiConfigGroupListBox::GroupSelected()
m_pFunctionListBox->aArr.back()->sLabel = rDeck.msId;
m_pFunctionListBox->aArr.back()->sTooltip =
vcl::CommandInfoProvider::GetCommandShortcut(sCommand, m_xFrame);
- m_pFunctionListBox->append(OUString::number(reinterpret_cast<sal_Int64>(
- m_pFunctionListBox->aArr.back().get())),
+ m_pFunctionListBox->append(weld::toId(m_pFunctionListBox->aArr.back().get()),
rDeck.msId);
}
@@ -985,7 +995,7 @@ void CuiConfigGroupListBox::GroupSelected()
*/
IMPL_LINK(CuiConfigGroupListBox, ExpandingHdl, const weld::TreeIter&, rIter, bool)
{
- SfxGroupInfo_Impl *pInfo = reinterpret_cast<SfxGroupInfo_Impl*>(m_xTreeView->get_id(rIter).toInt64());
+ SfxGroupInfo_Impl *pInfo = weld::fromId<SfxGroupInfo_Impl*>(m_xTreeView->get_id(rIter));
switch ( pInfo->nKind )
{
case SfxCfgKind::GROUP_SCRIPTCONTAINER:
@@ -1008,7 +1018,7 @@ IMPL_LINK(CuiConfigGroupListBox, ExpandingHdl, const weld::TreeIter&, rIter, boo
{
SfxStyleInfo_Impl* pFamily = new SfxStyleInfo_Impl(lStyleFamily);
aArr.push_back( std::make_unique<SfxGroupInfo_Impl>( SfxCfgKind::GROUP_STYLES, 0, pFamily ));
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(aArr.back().get())));
+ OUString sId(weld::toId(aArr.back().get()));
m_xTreeView->insert(&rIter, -1, &pFamily->sLabel, &sId, nullptr, nullptr, false, nullptr);
}
}
@@ -1025,27 +1035,21 @@ IMPL_LINK(CuiConfigGroupListBox, ExpandingHdl, const weld::TreeIter&, rIter, boo
#if HAVE_FEATURE_SCRIPTING
void CuiConfigGroupListBox::SelectMacro( const SfxMacroInfoItem *pItem )
{
- SelectMacro( pItem->GetBasicManager()->GetName(),
- pItem->GetQualifiedName() );
-}
-
-void CuiConfigGroupListBox::SelectMacro( std::u16string_view rBasic,
- const OUString& rMacro )
-{
- const OUString aBasicName(OUString::Concat(rBasic) + " " + xImp->m_sMacros);
+ auto const rMacro = pItem->GetQualifiedName();
sal_Int32 nIdx {rMacro.lastIndexOf('.')};
- const OUString aMethod( rMacro.copy(nIdx+1) );
- OUString aLib;
- OUString aModule;
+ const std::u16string_view aMethod( rMacro.subView(nIdx + 1) );
+ std::u16string_view aLib;
+ std::u16string_view aModule;
if ( nIdx>0 )
{
// string contains at least 2 tokens
nIdx = rMacro.lastIndexOf('.', nIdx);
- if (nIdx>=0)
+ if (nIdx != -1)
{
// string contains at least 3 tokens
- aLib = rMacro.getToken( 0, '.' );
- aModule = rMacro.getToken( 0, '.', ++nIdx );
+ aLib = o3tl::getToken(rMacro, 0, '.' );
+ sal_Int32 nIdx2 = nIdx + 1;
+ aModule = o3tl::getToken(rMacro, 0, '.', nIdx2 );
}
}
@@ -1056,45 +1060,61 @@ void CuiConfigGroupListBox::SelectMacro( std::u16string_view rBasic,
do
{
OUString aEntryBas = m_xTreeView->get_text(*xIter);
- if (aEntryBas == aBasicName)
+ if (aEntryBas == xImp->m_sDlgMacros)
{
m_xTreeView->expand_row(*xIter);
- std::unique_ptr<weld::TreeIter> xLibIter = m_xTreeView->make_iterator(xIter.get());
- if (m_xTreeView->get_iter_first(*xLibIter))
+ std::unique_ptr<weld::TreeIter> xLocationIter = m_xTreeView->make_iterator(xIter.get());
+ if (m_xTreeView->iter_children(*xLocationIter))
{
do
{
- OUString aEntryLib = m_xTreeView->get_text(*xLibIter);
- if (aEntryLib == aLib)
+ m_xTreeView->expand_row(*xLocationIter);
+ std::unique_ptr<weld::TreeIter> xLibIter = m_xTreeView->make_iterator(xLocationIter.get());
+ if (m_xTreeView->iter_children(*xLibIter))
{
- m_xTreeView->expand_row(*xLibIter);
- std::unique_ptr<weld::TreeIter> xModIter = m_xTreeView->make_iterator(xLibIter.get());
- if (m_xTreeView->get_iter_first(*xModIter))
+ do
{
- do
+ OUString aEntryLib = m_xTreeView->get_text(*xLibIter);
+ if (aEntryLib == aLib)
{
- OUString aEntryMod = m_xTreeView->get_text(*xModIter);
- if ( aEntryMod == aModule )
+ m_xTreeView->expand_row(*xLibIter);
+ std::unique_ptr<weld::TreeIter> xModIter = m_xTreeView->make_iterator(xLibIter.get());
+ if (m_xTreeView->iter_children(*xModIter))
{
- m_xTreeView->expand_row(*xModIter);
- m_xTreeView->scroll_to_row(*xModIter);
- m_xTreeView->select(*xModIter);
- for (int i = 0, nCount = m_pFunctionListBox->n_children(); i < nCount; ++i)
+ do
{
- OUString aEntryMethod = m_pFunctionListBox->get_text(i);
- if (aEntryMethod == aMethod)
+ OUString aEntryMod = m_xTreeView->get_text(*xModIter);
+ if ( aEntryMod == aModule )
{
- m_pFunctionListBox->select(i);
- m_pFunctionListBox->scroll_to_row(i);
- return;
+ m_xTreeView->expand_row(*xModIter);
+ m_xTreeView->scroll_to_row(*xModIter);
+ m_xTreeView->select(*xModIter);
+ GroupSelected();
+ for (int i = 0, nCount = m_pFunctionListBox->n_children(); i < nCount; ++i)
+ {
+ OUString aEntryMethod = m_pFunctionListBox->get_text(i);
+ if (aEntryMethod == aMethod)
+ {
+ m_pFunctionListBox->select(i);
+ m_pFunctionListBox->scroll_to_row(i);
+ return;
+ }
+ }
+ m_xTreeView->collapse_row(*xModIter);
}
- }
+ } while (m_xTreeView->iter_next_sibling(*xModIter));
}
- } while (m_xTreeView->iter_next_sibling(*xModIter));
- }
+ m_xTreeView->collapse_row(*xLibIter);
+ }
+ } while (m_xTreeView->iter_next_sibling(*xLibIter));
}
- } while (m_xTreeView->iter_next_sibling(*xLibIter));
+ m_xTreeView->collapse_row(*xLocationIter);
+ } while (m_xTreeView->iter_next_sibling(*xLocationIter));
}
+ // If the macro can't be located, preselect the "Application Macros" category:
+ m_xTreeView->scroll_to_row(*xIter);
+ m_xTreeView->select(*xIter);
+ return;
}
} while (m_xTreeView->iter_next_sibling(*xIter));
}
@@ -1109,16 +1129,16 @@ void CuiConfigGroupListBox::SelectMacro( std::u16string_view rBasic,
SvxScriptSelectorDialog::SvxScriptSelectorDialog(
weld::Window* pParent, const css::uno::Reference< css::frame::XFrame >& xFrame)
- : GenericDialogController(pParent, "cui/ui/macroselectordialog.ui", "MacroSelectorDialog")
- , m_xDialogDescription(m_xBuilder->weld_label("helpmacro"))
- , m_xCategories(new CuiConfigGroupListBox(m_xBuilder->weld_tree_view("categories")))
- , m_xCommands(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view("commands")))
- , m_xLibraryFT(m_xBuilder->weld_label("libraryft"))
- , m_xMacronameFT(m_xBuilder->weld_label("macronameft"))
- , m_xOKButton(m_xBuilder->weld_button("ok"))
- , m_xCancelButton(m_xBuilder->weld_button("cancel"))
- , m_xDescriptionText(m_xBuilder->weld_text_view("description"))
- , m_xDescriptionFrame(m_xBuilder->weld_frame("descriptionframe"))
+ : GenericDialogController(pParent, u"cui/ui/macroselectordialog.ui"_ustr, u"MacroSelectorDialog"_ustr)
+ , m_xDialogDescription(m_xBuilder->weld_label(u"helpmacro"_ustr))
+ , m_xCategories(new CuiConfigGroupListBox(m_xBuilder->weld_tree_view(u"categories"_ustr)))
+ , m_xCommands(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view(u"commands"_ustr)))
+ , m_xLibraryFT(m_xBuilder->weld_label(u"libraryft"_ustr))
+ , m_xMacronameFT(m_xBuilder->weld_label(u"macronameft"_ustr))
+ , m_xOKButton(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xCancelButton(m_xBuilder->weld_button(u"cancel"_ustr))
+ , m_xDescriptionText(m_xBuilder->weld_text_view(u"description"_ustr))
+ , m_xDescriptionFrame(m_xBuilder->weld_frame(u"descriptionframe"_ustr))
{
m_xCancelButton->show();
m_xDialogDescription->show();
@@ -1153,6 +1173,10 @@ SvxScriptSelectorDialog::SvxScriptSelectorDialog(
m_aStylesInfo.init(aModuleName, xModel);
m_xCategories->SetStylesInfo(&m_aStylesInfo);
+ // The following call is a workaround to make scroll_to_row work as expected in kf5/x11
+ m_xDialog->resize_to_request();
+
+ LoadLastUsedMacro();
UpdateUI();
if (comphelper::LibreOfficeKit::isActive())
@@ -1185,13 +1209,13 @@ IMPL_LINK(SvxScriptSelectorDialog, ContextMenuHdl, const CommandEvent&, rCEvt, b
if (rCEvt.GetCommand() != CommandEventId::ContextMenu || !xTreeView.n_children())
return false;
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(&xTreeView, "modules/BasicIDE/ui/sortmenu.ui"));
- std::unique_ptr<weld::Menu> xPopup(xBuilder->weld_menu("sortmenu"));
- std::unique_ptr<weld::Menu> xDropMenu(xBuilder->weld_menu("sortsubmenu"));
- xDropMenu->set_active("alphabetically", xTreeView.get_sort_order());
- xDropMenu->set_active("properorder", !xTreeView.get_sort_order());
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(&xTreeView, u"modules/BasicIDE/ui/sortmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xPopup(xBuilder->weld_menu(u"sortmenu"_ustr));
+ std::unique_ptr<weld::Menu> xDropMenu(xBuilder->weld_menu(u"sortsubmenu"_ustr));
+ xDropMenu->set_active(u"alphabetically"_ustr, xTreeView.get_sort_order());
+ xDropMenu->set_active(u"properorder"_ustr, !xTreeView.get_sort_order());
- OString sCommand(xPopup->popup_at_rect(&xTreeView, tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1,1))));
+ OUString sCommand(xPopup->popup_at_rect(&xTreeView, tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1,1))));
if (sCommand == "alphabetically")
{
xTreeView.make_sorted();
@@ -1219,7 +1243,6 @@ SvxScriptSelectorDialog::UpdateUI()
{
OUString sMessage = m_xCommands->GetHelpText();
m_xDescriptionText->set_text(sMessage.isEmpty() ? m_sDefaultDesc : sMessage);
-
m_xOKButton->set_sensitive(true);
}
else
@@ -1237,6 +1260,7 @@ IMPL_LINK(SvxScriptSelectorDialog, ClickHdl, weld::Button&, rButton, void)
}
else if (&rButton == m_xOKButton.get())
{
+ SaveLastUsedMacro();
m_xDialog->response(RET_OK);
}
}
@@ -1244,7 +1268,7 @@ IMPL_LINK(SvxScriptSelectorDialog, ClickHdl, weld::Button&, rButton, void)
void
SvxScriptSelectorDialog::SetRunLabel()
{
- m_xOKButton->set_label(CuiResId(RID_SVXSTR_SELECTOR_RUN));
+ m_xOKButton->set_label(CuiResId(RID_CUISTR_SELECTOR_RUN));
}
OUString
@@ -1255,7 +1279,7 @@ SvxScriptSelectorDialog::GetScriptURL() const
std::unique_ptr<weld::TreeIter> xIter = m_xCommands->make_iterator();
if (m_xCommands->get_selected(xIter.get()))
{
- SfxGroupInfo_Impl *pData = reinterpret_cast<SfxGroupInfo_Impl*>(m_xCommands->get_id(*xIter).toInt64());
+ SfxGroupInfo_Impl *pData = weld::fromId<SfxGroupInfo_Impl*>(m_xCommands->get_id(*xIter));
if ( ( pData->nKind == SfxCfgKind::FUNCTION_SLOT )
|| ( pData->nKind == SfxCfgKind::FUNCTION_SCRIPT )
|| ( pData->nKind == SfxCfgKind::GROUP_STYLES )
@@ -1268,4 +1292,100 @@ SvxScriptSelectorDialog::GetScriptURL() const
return result;
}
+void
+SvxScriptSelectorDialog::SaveLastUsedMacro()
+{
+ // Gets the current selection in the dialog as a series of selected entries
+ OUString sMacroInfo;
+ sMacroInfo = m_xCommands->get_selected_text();
+ weld::TreeView& xCategories = m_xCategories->get_widget();
+ std::unique_ptr<weld::TreeIter> xIter = xCategories.make_iterator();
+
+ if (!xCategories.get_selected(xIter.get()))
+ return;
+
+ do
+ {
+ sMacroInfo = xCategories.get_text(*xIter) + "|" + sMacroInfo;
+ } while (xCategories.iter_parent(*xIter));
+
+ SvtViewOptions( EViewType::Dialog, MACRO_SELECTOR_CONFIGNAME ).SetUserItem(
+ LAST_RUN_MACRO_INFO, Any(sMacroInfo));
+}
+
+void
+SvxScriptSelectorDialog::LoadLastUsedMacro()
+{
+ SvtViewOptions aDlgOpt( EViewType::Dialog, MACRO_SELECTOR_CONFIGNAME );
+ if (!aDlgOpt.Exists())
+ return;
+
+ OUString sMacroInfo;
+ aDlgOpt.GetUserItem(LAST_RUN_MACRO_INFO) >>= sMacroInfo;
+ if (sMacroInfo.isEmpty())
+ return;
+
+ // Counts how many entries exist in the macro info string
+ sal_Int16 nInfoParts = 0;
+ sal_Int16 nLastIndex = sMacroInfo.indexOf('|');
+ if (nLastIndex > -1)
+ {
+ nInfoParts = 1;
+ while ( nLastIndex != -1 )
+ {
+ nInfoParts++;
+ nLastIndex = sMacroInfo.indexOf('|', nLastIndex + 1);
+ }
+ }
+
+ weld::TreeView& xCategories = m_xCategories->get_widget();
+ std::unique_ptr<weld::TreeIter> xIter = xCategories.make_iterator();
+ if (!xCategories.get_iter_first(*xIter))
+ return;
+
+ // Expand the nodes in the category tree
+ OUString sNodeToExpand;
+ bool bIsIterValid;
+ sal_Int16 nOpenedNodes = 0;
+ for (sal_Int16 i=0; i<nInfoParts - 1; i++)
+ {
+ sNodeToExpand = sMacroInfo.getToken(i, '|');
+ bIsIterValid = true;
+ while (bIsIterValid && xCategories.get_text(*xIter) != sNodeToExpand)
+ bIsIterValid = xCategories.iter_next_sibling(*xIter);
+
+ if (bIsIterValid)
+ {
+ xCategories.expand_row(*xIter);
+ nOpenedNodes++;
+ }
+ if (xCategories.iter_has_child(*xIter))
+ (void)xCategories.iter_children(*xIter);
+ else if (nOpenedNodes < nInfoParts - 1)
+ // If the number of levels in the tree is smaller than the
+ // number of parts in the macro info string, then return
+ return;
+ }
+ xCategories.select(*xIter);
+ xCategories.scroll_to_row(*xIter);
+ m_xCategories->GroupSelected();
+
+ // Select the macro in the command tree
+ weld::TreeView& xCommands = m_xCommands->get_widget();
+ xIter = xCommands.make_iterator();
+ if (!xCommands.get_iter_first(*xIter))
+ return;
+
+ OUString sMacroName = sMacroInfo.getToken(nInfoParts - 1, '|');
+ bIsIterValid = true;
+ while (bIsIterValid && xCommands.get_text(*xIter) != sMacroName)
+ bIsIterValid = xCommands.iter_next_sibling(*xIter);
+
+ if (bIsIterValid)
+ {
+ xCommands.scroll_to_row(*xIter);
+ xCommands.select(*xIter);
+ }
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/customize/eventdlg.cxx b/cui/source/customize/eventdlg.cxx
index 54ebcdefa0c7..1dc004c33b57 100644
--- a/cui/source/customize/eventdlg.cxx
+++ b/cui/source/customize/eventdlg.cxx
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <com/sun/star/document/XEventsSupplier.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/theGlobalEventBroadcaster.hpp>
@@ -38,19 +38,18 @@ using namespace ::com::sun::star;
SvxEventConfigPage::SvxEventConfigPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet,
SvxEventConfigPage::EarlyInit)
- : SvxMacroTabPage_(pPage, pController, "cui/ui/eventsconfigpage.ui", "EventsConfigPage", rSet)
- , m_xSaveInListBox(m_xBuilder->weld_combo_box("savein"))
+ : SvxMacroTabPage_(pPage, pController, u"cui/ui/eventsconfigpage.ui"_ustr, u"EventsConfigPage"_ustr, rSet)
+ , m_xSaveInListBox(m_xBuilder->weld_combo_box(u"savein"_ustr))
{
- mpImpl->xEventLB = m_xBuilder->weld_tree_view("events");
- mpImpl->xAssignPB = m_xBuilder->weld_button("macro");
- mpImpl->xDeletePB = m_xBuilder->weld_button("delete");
- mpImpl->xAssignComponentPB = m_xBuilder->weld_button("component");
+ mpImpl->xEventLB = m_xBuilder->weld_tree_view(u"events"_ustr);
+ mpImpl->xAssignPB = m_xBuilder->weld_button(u"macro"_ustr);
+ mpImpl->xDeletePB = m_xBuilder->weld_button(u"delete"_ustr);
+ mpImpl->xDeleteAllPB = m_xBuilder->weld_button(u"deleteall"_ustr);
+ mpImpl->xAssignComponentPB = m_xBuilder->weld_button(u"component"_ustr);
mpImpl->xEventLB->set_size_request(mpImpl->xEventLB->get_approximate_digit_width() * 70,
mpImpl->xEventLB->get_height_rows(20));
- InitResources();
-
m_xSaveInListBox->connect_changed( LINK( this, SvxEventConfigPage,
SelectHdl_Impl ) );
diff --git a/cui/source/customize/macropg.cxx b/cui/source/customize/macropg.cxx
index 2074060a957a..b042ffb71668 100644
--- a/cui/source/customize/macropg.cxx
+++ b/cui/source/customize/macropg.cxx
@@ -20,7 +20,7 @@
#include <macropg.hxx>
#include <svl/eitem.hxx>
#include <tools/debug.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <bitmaps.hlst>
#include <cfgutil.hxx>
#include <dialmgr.hxx>
@@ -32,11 +32,13 @@
#include <svx/svxids.hrc>
#include <strings.hrc>
#include <comphelper/namedvaluecollection.hxx>
+#include <o3tl/string_view.hxx>
+#include <utility>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
-constexpr OUStringLiteral aVndSunStarUNO = u"vnd.sun.star.UNO:";
+constexpr OUString aVndSunStarUNO = u"vnd.sun.star.UNO:"_ustr;
SvxMacroTabPage_Impl::SvxMacroTabPage_Impl( const SfxItemSet& rAttrSet )
: bReadOnly(false)
@@ -59,19 +61,20 @@ MacroEventListBox::MacroEventListBox(std::unique_ptr<weld::TreeView> xTreeView)
// and it is not read only
void SvxMacroTabPage_::EnableButtons()
{
+ mpImpl->xDeleteAllPB->set_sensitive(m_nAssignedEvents != 0);
int nEvent = mpImpl->xEventLB->get_selected_index();
- if (nEvent != -1)
- {
- mpImpl->xDeletePB->set_sensitive( !mpImpl->bReadOnly );
- mpImpl->xAssignPB->set_sensitive( !mpImpl->bReadOnly );
- if( mpImpl->xAssignComponentPB )
- mpImpl->xAssignComponentPB->set_sensitive( !mpImpl->bReadOnly );
- }
+ const EventPair* pEventPair = nEvent == -1 ? nullptr : LookupEvent(mpImpl->xEventLB->get_id(nEvent));
+ const bool bAssigned = pEventPair && !pEventPair->second.isEmpty();
+ mpImpl->xDeletePB->set_sensitive(!mpImpl->bReadOnly && bAssigned);
+ mpImpl->xAssignPB->set_sensitive(!mpImpl->bReadOnly);
+ if (mpImpl->xAssignComponentPB)
+ mpImpl->xAssignComponentPB->set_sensitive( !mpImpl->bReadOnly );
}
SvxMacroTabPage_::SvxMacroTabPage_(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription,
- const OString& rID, const SfxItemSet& rAttrSet)
+ const OUString& rID, const SfxItemSet& rAttrSet)
: SfxTabPage(pPage, pController, rUIXMLDescription, rID, &rAttrSet)
+ , m_nAssignedEvents(0)
, bDocModified(false)
, bAppEvents(false)
, bInitialized(false)
@@ -84,87 +87,93 @@ SvxMacroTabPage_::~SvxMacroTabPage_()
mpImpl.reset();
}
-void SvxMacroTabPage_::InitResources()
+namespace {
+struct EventDisplayName
{
- // Note: the order here controls the order in which the events are displayed in the UI!
-
- // the event name to UI string mappings for App Events
- aDisplayNames.emplace_back( "OnStartApp", RID_SVXSTR_EVENT_STARTAPP );
- aDisplayNames.emplace_back( "OnCloseApp", RID_SVXSTR_EVENT_CLOSEAPP );
- aDisplayNames.emplace_back( "OnCreate", RID_SVXSTR_EVENT_CREATEDOC );
- aDisplayNames.emplace_back( "OnNew", RID_SVXSTR_EVENT_NEWDOC );
- aDisplayNames.emplace_back( "OnLoadFinished", RID_SVXSTR_EVENT_LOADDOCFINISHED );
- aDisplayNames.emplace_back( "OnLoad", RID_SVXSTR_EVENT_OPENDOC );
- aDisplayNames.emplace_back( "OnPrepareUnload", RID_SVXSTR_EVENT_PREPARECLOSEDOC );
- aDisplayNames.emplace_back( "OnUnload", RID_SVXSTR_EVENT_CLOSEDOC ) ;
- aDisplayNames.emplace_back( "OnViewCreated", RID_SVXSTR_EVENT_VIEWCREATED );
- aDisplayNames.emplace_back( "OnPrepareViewClosing", RID_SVXSTR_EVENT_PREPARECLOSEVIEW );
- aDisplayNames.emplace_back( "OnViewClosed", RID_SVXSTR_EVENT_CLOSEVIEW ) ;
- aDisplayNames.emplace_back( "OnFocus", RID_SVXSTR_EVENT_ACTIVATEDOC );
- aDisplayNames.emplace_back( "OnUnfocus", RID_SVXSTR_EVENT_DEACTIVATEDOC );
- aDisplayNames.emplace_back( "OnSave", RID_SVXSTR_EVENT_SAVEDOC );
- aDisplayNames.emplace_back( "OnSaveDone", RID_SVXSTR_EVENT_SAVEDOCDONE );
- aDisplayNames.emplace_back( "OnSaveFailed", RID_SVXSTR_EVENT_SAVEDOCFAILED );
- aDisplayNames.emplace_back( "OnSaveAs", RID_SVXSTR_EVENT_SAVEASDOC );
- aDisplayNames.emplace_back( "OnSaveAsDone", RID_SVXSTR_EVENT_SAVEASDOCDONE );
- aDisplayNames.emplace_back( "OnSaveAsFailed", RID_SVXSTR_EVENT_SAVEASDOCFAILED );
- aDisplayNames.emplace_back( "OnCopyTo", RID_SVXSTR_EVENT_COPYTODOC );
- aDisplayNames.emplace_back( "OnCopyToDone", RID_SVXSTR_EVENT_COPYTODOCDONE );
- aDisplayNames.emplace_back( "OnCopyToFailed", RID_SVXSTR_EVENT_COPYTODOCFAILED );
- aDisplayNames.emplace_back( "OnPrint", RID_SVXSTR_EVENT_PRINTDOC );
- aDisplayNames.emplace_back( "OnModifyChanged", RID_SVXSTR_EVENT_MODIFYCHANGED );
- aDisplayNames.emplace_back( "OnTitleChanged", RID_SVXSTR_EVENT_TITLECHANGED );
+ OUString aAsciiEventName;
+ TranslateId pEventResourceID;
+};
+}
+
+// Note: the order here controls the order in which the events are displayed in the UI!
+// the event name to UI string mappings for App Events
+constexpr EventDisplayName gDisplayNames[] {
+ { u"OnStartApp"_ustr, RID_CUISTR_EVENT_STARTAPP },
+ { u"OnCloseApp"_ustr, RID_CUISTR_EVENT_CLOSEAPP },
+ { u"OnCreate"_ustr, RID_CUISTR_EVENT_CREATEDOC },
+ { u"OnNew"_ustr, RID_CUISTR_EVENT_NEWDOC },
+ { u"OnLoadFinished"_ustr, RID_CUISTR_EVENT_LOADDOCFINISHED },
+ { u"OnLoad"_ustr, RID_CUISTR_EVENT_OPENDOC },
+ { u"OnPrepareUnload"_ustr, RID_CUISTR_EVENT_PREPARECLOSEDOC },
+ { u"OnUnload"_ustr, RID_CUISTR_EVENT_CLOSEDOC },
+ { u"OnViewCreated"_ustr, RID_CUISTR_EVENT_VIEWCREATED },
+ { u"OnPrepareViewClosing"_ustr, RID_CUISTR_EVENT_PREPARECLOSEVIEW },
+ { u"OnViewClosed"_ustr, RID_CUISTR_EVENT_CLOSEVIEW },
+ { u"OnFocus"_ustr, RID_CUISTR_EVENT_ACTIVATEDOC },
+ { u"OnUnfocus"_ustr, RID_CUISTR_EVENT_DEACTIVATEDOC },
+ { u"OnSave"_ustr, RID_CUISTR_EVENT_SAVEDOC },
+ { u"OnSaveDone"_ustr, RID_CUISTR_EVENT_SAVEDOCDONE },
+ { u"OnSaveFailed"_ustr, RID_CUISTR_EVENT_SAVEDOCFAILED },
+ { u"OnSaveAs"_ustr, RID_CUISTR_EVENT_SAVEASDOC },
+ { u"OnSaveAsDone"_ustr, RID_CUISTR_EVENT_SAVEASDOCDONE },
+ { u"OnSaveAsFailed"_ustr, RID_CUISTR_EVENT_SAVEASDOCFAILED },
+ { u"OnCopyTo"_ustr, RID_CUISTR_EVENT_COPYTODOC },
+ { u"OnCopyToDone"_ustr, RID_CUISTR_EVENT_COPYTODOCDONE },
+ { u"OnCopyToFailed"_ustr, RID_CUISTR_EVENT_COPYTODOCFAILED },
+ { u"OnPrint"_ustr, RID_CUISTR_EVENT_PRINTDOC },
+ { u"OnModifyChanged"_ustr, RID_CUISTR_EVENT_MODIFYCHANGED },
+ { u"OnTitleChanged"_ustr, RID_CUISTR_EVENT_TITLECHANGED },
// application specific events
- aDisplayNames.emplace_back( "OnMailMerge", RID_SVXSTR_EVENT_MAILMERGE );
- aDisplayNames.emplace_back( "OnMailMergeFinished", RID_SVXSTR_EVENT_MAILMERGE_END );
- aDisplayNames.emplace_back( "OnFieldMerge", RID_SVXSTR_EVENT_FIELDMERGE );
- aDisplayNames.emplace_back( "OnFieldMergeFinished", RID_SVXSTR_EVENT_FIELDMERGE_FINISHED );
- aDisplayNames.emplace_back( "OnPageCountChange", RID_SVXSTR_EVENT_PAGECOUNTCHANGE );
- aDisplayNames.emplace_back( "OnSubComponentOpened", RID_SVXSTR_EVENT_SUBCOMPONENT_OPENED );
- aDisplayNames.emplace_back( "OnSubComponentClosed", RID_SVXSTR_EVENT_SUBCOMPONENT_CLOSED );
- aDisplayNames.emplace_back( "OnSelect", RID_SVXSTR_EVENT_SELECTIONCHANGED );
- aDisplayNames.emplace_back( "OnDoubleClick", RID_SVXSTR_EVENT_DOUBLECLICK );
- aDisplayNames.emplace_back( "OnRightClick", RID_SVXSTR_EVENT_RIGHTCLICK );
- aDisplayNames.emplace_back( "OnCalculate", RID_SVXSTR_EVENT_CALCULATE );
- aDisplayNames.emplace_back( "OnChange", RID_SVXSTR_EVENT_CONTENTCHANGED );
+ { u"OnMailMerge"_ustr, RID_CUISTR_EVENT_MAILMERGE },
+ { u"OnMailMergeFinished"_ustr, RID_CUISTR_EVENT_MAILMERGE_END },
+ { u"OnFieldMerge"_ustr, RID_CUISTR_EVENT_FIELDMERGE },
+ { u"OnFieldMergeFinished"_ustr, RID_CUISTR_EVENT_FIELDMERGE_FINISHED },
+ { u"OnPageCountChange"_ustr, RID_CUISTR_EVENT_PAGECOUNTCHANGE },
+ { u"OnSubComponentOpened"_ustr, RID_CUISTR_EVENT_SUBCOMPONENT_OPENED },
+ { u"OnSubComponentClosed"_ustr, RID_CUISTR_EVENT_SUBCOMPONENT_CLOSED },
+ { u"OnSelect"_ustr, RID_CUISTR_EVENT_SELECTIONCHANGED },
+ { u"OnDoubleClick"_ustr, RID_CUISTR_EVENT_DOUBLECLICK },
+ { u"OnRightClick"_ustr, RID_CUISTR_EVENT_RIGHTCLICK },
+ { u"OnCalculate"_ustr, RID_CUISTR_EVENT_CALCULATE },
+ { u"OnChange"_ustr, RID_CUISTR_EVENT_CONTENTCHANGED },
// the event name to UI string mappings for forms & dialogs
- aDisplayNames.emplace_back( "approveAction", RID_SVXSTR_EVENT_APPROVEACTIONPERFORMED );
- aDisplayNames.emplace_back( "actionPerformed", RID_SVXSTR_EVENT_ACTIONPERFORMED );
- aDisplayNames.emplace_back( "changed", RID_SVXSTR_EVENT_CHANGED );
- aDisplayNames.emplace_back( "textChanged", RID_SVXSTR_EVENT_TEXTCHANGED );
- aDisplayNames.emplace_back( "itemStateChanged", RID_SVXSTR_EVENT_ITEMSTATECHANGED );
- aDisplayNames.emplace_back( "focusGained", RID_SVXSTR_EVENT_FOCUSGAINED );
- aDisplayNames.emplace_back( "focusLost", RID_SVXSTR_EVENT_FOCUSLOST );
- aDisplayNames.emplace_back( "keyPressed", RID_SVXSTR_EVENT_KEYTYPED );
- aDisplayNames.emplace_back( "keyReleased", RID_SVXSTR_EVENT_KEYUP );
- aDisplayNames.emplace_back( "mouseEntered", RID_SVXSTR_EVENT_MOUSEENTERED );
- aDisplayNames.emplace_back( "mouseDragged", RID_SVXSTR_EVENT_MOUSEDRAGGED );
- aDisplayNames.emplace_back( "mouseMoved", RID_SVXSTR_EVENT_MOUSEMOVED );
- aDisplayNames.emplace_back( "mousePressed", RID_SVXSTR_EVENT_MOUSEPRESSED );
- aDisplayNames.emplace_back( "mouseReleased", RID_SVXSTR_EVENT_MOUSERELEASED );
- aDisplayNames.emplace_back( "mouseExited", RID_SVXSTR_EVENT_MOUSEEXITED );
- aDisplayNames.emplace_back( "approveReset", RID_SVXSTR_EVENT_APPROVERESETTED );
- aDisplayNames.emplace_back( "resetted", RID_SVXSTR_EVENT_RESETTED );
- aDisplayNames.emplace_back( "approveSubmit", RID_SVXSTR_EVENT_SUBMITTED );
- aDisplayNames.emplace_back( "approveUpdate", RID_SVXSTR_EVENT_BEFOREUPDATE );
- aDisplayNames.emplace_back( "updated", RID_SVXSTR_EVENT_AFTERUPDATE );
- aDisplayNames.emplace_back( "loaded", RID_SVXSTR_EVENT_LOADED );
- aDisplayNames.emplace_back( "reloading", RID_SVXSTR_EVENT_RELOADING );
- aDisplayNames.emplace_back( "reloaded", RID_SVXSTR_EVENT_RELOADED );
- aDisplayNames.emplace_back( "unloading", RID_SVXSTR_EVENT_UNLOADING );
- aDisplayNames.emplace_back( "unloaded", RID_SVXSTR_EVENT_UNLOADED );
- aDisplayNames.emplace_back( "confirmDelete", RID_SVXSTR_EVENT_CONFIRMDELETE );
- aDisplayNames.emplace_back( "approveRowChange", RID_SVXSTR_EVENT_APPROVEROWCHANGE );
- aDisplayNames.emplace_back( "rowChanged", RID_SVXSTR_EVENT_ROWCHANGE );
- aDisplayNames.emplace_back( "approveCursorMove", RID_SVXSTR_EVENT_POSITIONING );
- aDisplayNames.emplace_back( "cursorMoved", RID_SVXSTR_EVENT_POSITIONED );
- aDisplayNames.emplace_back( "approveParameter", RID_SVXSTR_EVENT_APPROVEPARAMETER );
- aDisplayNames.emplace_back( "errorOccured", RID_SVXSTR_EVENT_ERROROCCURRED );
- aDisplayNames.emplace_back( "adjustmentValueChanged", RID_SVXSTR_EVENT_ADJUSTMENTVALUECHANGED );
-}
+ { u"approveAction"_ustr, RID_CUISTR_EVENT_APPROVEACTIONPERFORMED },
+ { u"actionPerformed"_ustr, RID_CUISTR_EVENT_ACTIONPERFORMED },
+ { u"changed"_ustr, RID_CUISTR_EVENT_CHANGED },
+ { u"textChanged"_ustr, RID_CUISTR_EVENT_TEXTCHANGED },
+ { u"itemStateChanged"_ustr, RID_CUISTR_EVENT_ITEMSTATECHANGED },
+ { u"focusGained"_ustr, RID_CUISTR_EVENT_FOCUSGAINED },
+ { u"focusLost"_ustr, RID_CUISTR_EVENT_FOCUSLOST },
+ { u"keyPressed"_ustr, RID_CUISTR_EVENT_KEYTYPED },
+ { u"keyReleased"_ustr, RID_CUISTR_EVENT_KEYUP },
+ { u"mouseEntered"_ustr, RID_CUISTR_EVENT_MOUSEENTERED },
+ { u"mouseDragged"_ustr, RID_CUISTR_EVENT_MOUSEDRAGGED },
+ { u"mouseMoved"_ustr, RID_CUISTR_EVENT_MOUSEMOVED },
+ { u"mousePressed"_ustr, RID_CUISTR_EVENT_MOUSEPRESSED },
+ { u"mouseReleased"_ustr, RID_CUISTR_EVENT_MOUSERELEASED },
+ { u"mouseExited"_ustr, RID_CUISTR_EVENT_MOUSEEXITED },
+ { u"approveReset"_ustr, RID_CUISTR_EVENT_APPROVERESETTED },
+ { u"resetted"_ustr, RID_CUISTR_EVENT_RESETTED },
+ { u"approveSubmit"_ustr, RID_CUISTR_EVENT_SUBMITTED },
+ { u"approveUpdate"_ustr, RID_CUISTR_EVENT_BEFOREUPDATE },
+ { u"updated"_ustr, RID_CUISTR_EVENT_AFTERUPDATE },
+ { u"loaded"_ustr, RID_CUISTR_EVENT_LOADED },
+ { u"reloading"_ustr, RID_CUISTR_EVENT_RELOADING },
+ { u"reloaded"_ustr, RID_CUISTR_EVENT_RELOADED },
+ { u"unloading"_ustr, RID_CUISTR_EVENT_UNLOADING },
+ { u"unloaded"_ustr, RID_CUISTR_EVENT_UNLOADED },
+ { u"confirmDelete"_ustr, RID_CUISTR_EVENT_CONFIRMDELETE },
+ { u"approveRowChange"_ustr, RID_CUISTR_EVENT_APPROVEROWCHANGE },
+ { u"rowChanged"_ustr, RID_CUISTR_EVENT_ROWCHANGE },
+ { u"approveCursorMove"_ustr, RID_CUISTR_EVENT_POSITIONING },
+ { u"cursorMoved"_ustr, RID_CUISTR_EVENT_POSITIONED },
+ { u"approveParameter"_ustr, RID_CUISTR_EVENT_APPROVEPARAMETER },
+ { u"errorOccured"_ustr, RID_CUISTR_EVENT_ERROROCCURRED },
+ { u"adjustmentValueChanged"_ustr, RID_CUISTR_EVENT_ADJUSTMENTVALUECHANGED },
+};
// the following method is called when the user clicks OK
// We use the contents of the hashes to replace the settings
@@ -269,32 +278,31 @@ bool SvxMacroTabPage_::IsReadOnly() const
namespace
{
- OUString GetEventDisplayText(const OUString &rURL)
+ std::u16string_view GetEventDisplayText(std::u16string_view rURL)
{
- if (rURL.isEmpty())
- return OUString();
- sal_Int32 nIndex = rURL.indexOf(aVndSunStarUNO);
- bool bUNO = nIndex == 0;
- OUString aPureMethod;
+ if (rURL.empty())
+ return std::u16string_view();
+ bool bUNO = o3tl::starts_with(rURL, aVndSunStarUNO);
+ std::u16string_view aPureMethod;
if (bUNO)
{
- aPureMethod = rURL.copy(aVndSunStarUNO.getLength());
+ aPureMethod = rURL.substr(aVndSunStarUNO.getLength());
}
else
{
- aPureMethod = rURL.copy(strlen("vnd.sun.star.script:"));
- aPureMethod = aPureMethod.copy( 0, aPureMethod.indexOf( '?' ) );
+ aPureMethod = rURL.substr(strlen("vnd.sun.star.script:"));
+ aPureMethod = aPureMethod.substr( 0, aPureMethod.find( '?' ) );
}
return aPureMethod;
}
- OUString GetEventDisplayImage(const OUString &rURL)
+ OUString GetEventDisplayImage(std::u16string_view rURL)
{
- if (rURL.isEmpty())
+ if (rURL.empty())
return OUString();
- sal_Int32 nIndex = rURL.indexOf(aVndSunStarUNO);
+ size_t nIndex = rURL.find(aVndSunStarUNO);
bool bUNO = nIndex == 0;
- return bUNO ? OUString(RID_SVXBMP_COMPONENT) : OUString(RID_SVXBMP_MACRO);
+ return bUNO ? RID_SVXBMP_COMPONENT : RID_SVXBMP_MACRO;
}
}
@@ -305,6 +313,7 @@ void SvxMacroTabPage_::DisplayAppEvents( bool appEvents)
mpImpl->xEventLB->freeze();
mpImpl->xEventLB->clear();
+ m_nAssignedEvents = 0;
EventsHash* eventsHash;
Reference< container::XNameReplace> nameReplace;
if(bAppEvents)
@@ -325,9 +334,9 @@ void SvxMacroTabPage_::DisplayAppEvents( bool appEvents)
return;
}
- for (auto const& displayableEvent : aDisplayNames)
+ for (auto const& displayableEvent : gDisplayNames)
{
- OUString sEventName( OUString::createFromAscii( displayableEvent.pAsciiEventName ) );
+ const OUString & sEventName( displayableEvent.aAsciiEventName );
if ( !nameReplace->hasByName( sEventName ) )
continue;
@@ -344,7 +353,10 @@ void SvxMacroTabPage_::DisplayAppEvents( bool appEvents)
int nRow = mpImpl->xEventLB->n_children();
mpImpl->xEventLB->append(sEventName, displayName);
mpImpl->xEventLB->set_image(nRow, GetEventDisplayImage(eventURL), 1);
- mpImpl->xEventLB->set_text(nRow, GetEventDisplayText(eventURL), 2);
+ mpImpl->xEventLB->set_text(nRow, OUString(GetEventDisplayText(eventURL)), 2);
+
+ if (!eventURL.isEmpty())
+ ++m_nAssignedEvents;
}
mpImpl->xEventLB->thaw();
@@ -374,20 +386,37 @@ IMPL_LINK_NOARG( SvxMacroTabPage_, SelectEvent_Impl, weld::TreeView&, void)
IMPL_LINK( SvxMacroTabPage_, AssignDeleteHdl_Impl, weld::Button&, rBtn, void )
{
- GenericHandler_Impl(this, &rBtn);
+ GenericHandler_Impl(&rBtn);
}
IMPL_LINK_NOARG( SvxMacroTabPage_, DoubleClickHdl_Impl, weld::TreeView&, bool)
{
- GenericHandler_Impl(this, nullptr);
+ GenericHandler_Impl(nullptr);
return true;
}
+const EventPair* SvxMacroTabPage_::LookupEvent(const OUString& rEventName)
+{
+ const EventPair* pRet = nullptr;
+ if (bAppEvents)
+ {
+ EventsHash::iterator h_it = m_appEventsHash.find(rEventName);
+ if (h_it != m_appEventsHash.end() )
+ pRet = &h_it->second;
+ }
+ else
+ {
+ EventsHash::iterator h_it = m_docEventsHash.find(rEventName);
+ if (h_it != m_docEventsHash.end() )
+ pRet = &h_it->second;
+ }
+ return pRet;
+}
+
// handler for double click on the listbox, and for the assign/delete buttons
-void SvxMacroTabPage_::GenericHandler_Impl(SvxMacroTabPage_* pThis, const weld::Button* pBtn)
+void SvxMacroTabPage_::GenericHandler_Impl(const weld::Button* pBtn)
{
- SvxMacroTabPage_Impl* pImpl = pThis->mpImpl.get();
- weld::TreeView& rListBox = *pImpl->xEventLB;
+ weld::TreeView& rListBox = *mpImpl->xEventLB;
int nEntry = rListBox.get_selected_index();
if (nEntry == -1)
{
@@ -395,95 +424,125 @@ void SvxMacroTabPage_::GenericHandler_Impl(SvxMacroTabPage_* pThis, const weld::
return;
}
- const bool bAssEnabled = pBtn != pImpl->xDeletePB.get() && pImpl->xAssignPB->get_sensitive();
+ const bool bAssEnabled = pBtn != mpImpl->xDeletePB.get() && mpImpl->xAssignPB->get_sensitive();
OUString sEventName = rListBox.get_id(nEntry);
OUString sEventURL;
OUString sEventType;
- if(pThis->bAppEvents)
- {
- EventsHash::iterator h_it = pThis->m_appEventsHash.find(sEventName);
- if(h_it != pThis->m_appEventsHash.end() )
- {
- sEventType = h_it->second.first;
- sEventURL = h_it->second.second;
- }
- }
- else
+ if (const EventPair* pEventPair = LookupEvent(sEventName))
{
- EventsHash::iterator h_it = pThis->m_docEventsHash.find(sEventName);
- if(h_it != pThis->m_docEventsHash.end() )
- {
- sEventType = h_it->second.first;
- sEventURL = h_it->second.second;
- }
+ sEventType = pEventPair->first;
+ sEventURL = pEventPair->second;
}
+ if (!sEventURL.isEmpty())
+ --m_nAssignedEvents;
+
bool bDoubleClick = (pBtn == nullptr);
bool bUNOAssigned = sEventURL.startsWith( aVndSunStarUNO );
- if( pBtn == pImpl->xDeletePB.get() )
+ if (pBtn == mpImpl->xDeletePB.get())
{
// delete pressed
sEventType = "Script" ;
sEventURL.clear();
- if(!pThis->bAppEvents)
- pThis->bDocModified = true;
+ if (!bAppEvents)
+ bDocModified = true;
}
else if ( ( ( pBtn != nullptr )
- && ( pBtn == pImpl->xAssignComponentPB.get() )
+ && ( pBtn == mpImpl->xAssignComponentPB.get() )
)
|| ( bDoubleClick
&& bUNOAssigned
)
)
{
- AssignComponentDialog aAssignDlg(pThis->GetFrameWeld(), sEventURL);
+ AssignComponentDialog aAssignDlg(GetFrameWeld(), sEventURL);
short ret = aAssignDlg.run();
if( ret )
{
sEventType = "UNO";
sEventURL = aAssignDlg.getURL();
- if(!pThis->bAppEvents)
- pThis->bDocModified = true;
+ if (!bAppEvents)
+ bDocModified = true;
}
}
else if( bAssEnabled )
{
// assign pressed
- SvxScriptSelectorDialog aDlg(pThis->GetFrameWeld(), pThis->GetFrame());
+ SvxScriptSelectorDialog aDlg(GetFrameWeld(), GetFrame());
short ret = aDlg.run();
if ( ret )
{
sEventType = "Script";
sEventURL = aDlg.GetScriptURL();
- if(!pThis->bAppEvents)
- pThis->bDocModified = true;
+ if (!bAppEvents)
+ bDocModified = true;
}
}
// update the hashes
- if(pThis->bAppEvents)
+ if (bAppEvents)
{
- EventsHash::iterator h_it = pThis->m_appEventsHash.find(sEventName);
+ EventsHash::iterator h_it = m_appEventsHash.find(sEventName);
h_it->second.first = sEventType;
h_it->second.second = sEventURL;
}
else
{
- EventsHash::iterator h_it = pThis->m_docEventsHash.find(sEventName);
+ EventsHash::iterator h_it = m_docEventsHash.find(sEventName);
h_it->second.first = sEventType;
h_it->second.second = sEventURL;
}
+ if (!sEventURL.isEmpty())
+ ++m_nAssignedEvents;
+
rListBox.set_image(nEntry, GetEventDisplayImage(sEventURL), 1);
- rListBox.set_text(nEntry, GetEventDisplayText(sEventURL), 2);
+ rListBox.set_text(nEntry, OUString(GetEventDisplayText(sEventURL)), 2);
rListBox.select(nEntry );
rListBox.scroll_to_row(nEntry);
- pThis->EnableButtons();
+ EnableButtons();
+}
+
+IMPL_LINK_NOARG(SvxMacroTabPage_, DeleteAllHdl_Impl, weld::Button&, void)
+{
+ OUString sEventType = u"Script"_ustr ;
+ OUString sEmptyString;
+
+ mpImpl->xEventLB->all_foreach([this, &sEventType, &sEmptyString](weld::TreeIter& rEntry) {
+ weld::TreeView& rListBox = *mpImpl->xEventLB;
+ OUString sEventName = rListBox.get_id(rEntry);
+ // update the hashes
+ if (bAppEvents)
+ {
+ EventsHash::iterator h_it = m_appEventsHash.find(sEventName);
+ assert(h_it != m_appEventsHash.end());
+ h_it->second.first = sEventType;
+ h_it->second.second = sEmptyString;
+ }
+ else
+ {
+ EventsHash::iterator h_it = m_docEventsHash.find(sEventName);
+ assert(h_it != m_docEventsHash.end());
+ h_it->second.first = sEventType;
+ h_it->second.second = sEmptyString;
+ }
+
+ rListBox.set_image(rEntry, sEmptyString, 1);
+ rListBox.set_text(rEntry, sEmptyString, 2);
+ return false;
+ });
+
+ if (!bAppEvents)
+ bDocModified = true;
+
+ m_nAssignedEvents = 0;
+
+ EnableButtons();
}
// pass in the XNameReplace.
@@ -496,6 +555,7 @@ void SvxMacroTabPage_::InitAndSetHandler( const Reference< container::XNameRepla
Link<weld::Button&,void> aLnk(LINK(this, SvxMacroTabPage_, AssignDeleteHdl_Impl ));
mpImpl->xDeletePB->connect_clicked(aLnk);
mpImpl->xAssignPB->connect_clicked(aLnk);
+ mpImpl->xDeleteAllPB->connect_clicked(LINK(this, SvxMacroTabPage_, DeleteAllHdl_Impl));
if( mpImpl->xAssignComponentPB )
mpImpl->xAssignComponentPB->connect_clicked( aLnk );
mpImpl->xEventLB->connect_row_activated( LINK(this, SvxMacroTabPage_, DoubleClickHdl_Impl ) );
@@ -548,14 +608,14 @@ void SvxMacroTabPage_::InitAndSetHandler( const Reference< container::XNameRepla
// returns the two props EventType & Script for a given event name
Any SvxMacroTabPage_::GetPropsByName( const OUString& eventName, EventsHash& eventsHash )
{
- const std::pair< OUString, OUString >& rAssignedEvent( eventsHash[ eventName ] );
+ const EventPair& rAssignedEvent(eventsHash[eventName]);
Any aReturn;
::comphelper::NamedValueCollection aProps;
if ( !(rAssignedEvent.first.isEmpty() || rAssignedEvent.second.isEmpty()) )
{
- aProps.put( "EventType", rAssignedEvent.first );
- aProps.put( "Script", rAssignedEvent.second );
+ aProps.put( u"EventType"_ustr, rAssignedEvent.first );
+ aProps.put( u"Script"_ustr, rAssignedEvent.second );
}
aReturn <<= aProps.getPropertyValues();
@@ -564,15 +624,15 @@ Any SvxMacroTabPage_::GetPropsByName( const OUString& eventName, EventsHash& eve
// converts the Any returned by GetByName into a pair which can be stored in
// the EventHash
-std::pair< OUString, OUString > SvxMacroTabPage_::GetPairFromAny( const Any& aAny )
+EventPair SvxMacroTabPage_::GetPairFromAny( const Any& aAny )
{
Sequence< beans::PropertyValue > props;
OUString type, url;
if( aAny >>= props )
{
::comphelper::NamedValueCollection aProps( props );
- type = aProps.getOrDefault( "EventType", type );
- url = aProps.getOrDefault( "Script", url );
+ type = aProps.getOrDefault( u"EventType"_ustr, type );
+ url = aProps.getOrDefault( u"Script"_ustr, url );
}
return std::make_pair( type, url );
}
@@ -582,14 +642,15 @@ SvxMacroTabPage::SvxMacroTabPage(weld::Container* pPage, weld::DialogController*
const SfxItemSet& rSet,
Reference< container::XNameReplace > const & xNameReplace,
sal_uInt16 nSelectedIndex)
- : SvxMacroTabPage_(pPage, pController, "cui/ui/macroassignpage.ui", "MacroAssignPage", rSet)
+ : SvxMacroTabPage_(pPage, pController, u"cui/ui/macroassignpage.ui"_ustr, u"MacroAssignPage"_ustr, rSet)
{
- mpImpl->xEventLB = m_xBuilder->weld_tree_view("assignments");
+ mpImpl->xEventLB = m_xBuilder->weld_tree_view(u"assignments"_ustr);
mpImpl->xEventLB->set_size_request(mpImpl->xEventLB->get_approximate_digit_width() * 70,
mpImpl->xEventLB->get_height_rows(9));
- mpImpl->xAssignPB = m_xBuilder->weld_button("assign");
- mpImpl->xDeletePB = m_xBuilder->weld_button("delete");
- mpImpl->xAssignComponentPB = m_xBuilder->weld_button("component");
+ mpImpl->xAssignPB = m_xBuilder->weld_button(u"assign"_ustr);
+ mpImpl->xDeletePB = m_xBuilder->weld_button(u"delete"_ustr);
+ mpImpl->xDeleteAllPB = m_xBuilder->weld_button(u"deleteall"_ustr);
+ mpImpl->xAssignComponentPB = m_xBuilder->weld_button(u"component"_ustr);
SetFrame( _rxDocumentFrame );
@@ -599,8 +660,6 @@ SvxMacroTabPage::SvxMacroTabPage(weld::Container* pPage, weld::DialogController*
mpImpl->xAssignComponentPB->set_sensitive(false);
}
- InitResources();
-
InitAndSetHandler( xNameReplace, Reference< container::XNameReplace>(nullptr), Reference< util::XModifiable >(nullptr));
DisplayAppEvents(true);
mpImpl->xEventLB->select(nSelectedIndex);
@@ -625,11 +684,11 @@ IMPL_LINK_NOARG(AssignComponentDialog, ButtonHandler, weld::Button&, void)
m_xDialog->response(RET_OK);
}
-AssignComponentDialog::AssignComponentDialog(weld::Window* pParent, const OUString& rURL)
- : GenericDialogController(pParent, "cui/ui/assigncomponentdialog.ui", "AssignComponent")
- , maURL( rURL )
- , mxMethodEdit(m_xBuilder->weld_entry("methodEntry"))
- , mxOKButton(m_xBuilder->weld_button("ok"))
+AssignComponentDialog::AssignComponentDialog(weld::Window* pParent, OUString aURL)
+ : GenericDialogController(pParent, u"cui/ui/assigncomponentdialog.ui"_ustr, u"AssignComponent"_ustr)
+ , maURL(std::move( aURL ))
+ , mxMethodEdit(m_xBuilder->weld_entry(u"methodEntry"_ustr))
+ , mxOKButton(m_xBuilder->weld_button(u"ok"_ustr))
{
mxOKButton->connect_clicked(LINK(this, AssignComponentDialog, ButtonHandler));
@@ -654,7 +713,7 @@ IMPL_LINK_NOARG(SvxMacroAssignSingleTabDialog, OKHdl_Impl, weld::Button&, void)
SvxMacroAssignSingleTabDialog::SvxMacroAssignSingleTabDialog(weld::Window *pParent,
const SfxItemSet& rSet)
- : SfxSingleTabDialogController(pParent, &rSet, "cui/ui/macroassigndialog.ui", "MacroAssignDialog")
+ : SfxSingleTabDialogController(pParent, &rSet, u"cui/ui/macroassigndialog.ui"_ustr, u"MacroAssignDialog"_ustr)
{
GetOKButton().connect_clicked(LINK(this, SvxMacroAssignSingleTabDialog, OKHdl_Impl));
}
diff --git a/cui/source/customize/macropg_impl.hxx b/cui/source/customize/macropg_impl.hxx
index 2a36d0f5cada..1073e4bb36ff 100644
--- a/cui/source/customize/macropg_impl.hxx
+++ b/cui/source/customize/macropg_impl.hxx
@@ -30,6 +30,7 @@ public:
std::unique_ptr<weld::Button> xAssignPB;
std::unique_ptr<weld::Button> xAssignComponentPB;
std::unique_ptr<weld::Button> xDeletePB;
+ std::unique_ptr<weld::Button> xDeleteAllPB;
std::unique_ptr<weld::TreeView> xEventLB;
bool bReadOnly;
bool bIDEDialogMode;
@@ -46,7 +47,7 @@ private:
DECL_LINK(ButtonHandler, weld::Button&, void);
public:
- AssignComponentDialog(weld::Window* pParent, const OUString& rURL);
+ AssignComponentDialog(weld::Window* pParent, OUString aURL);
virtual ~AssignComponentDialog() override;
const OUString& getURL() const { return maURL; }
diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx
index ec173740bc63..61bee50455b3 100644
--- a/cui/source/dialogs/AdditionsDialog.cxx
+++ b/cui/source/dialogs/AdditionsDialog.cxx
@@ -12,7 +12,6 @@
#include <algorithm>
#include <cmath>
-#include <string_view>
#include <config_folders.h>
@@ -30,7 +29,7 @@
#include <rtl/bootstrap.hxx>
#include <tools/urlobj.hxx>
#include <tools/stream.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <comphelper/processfactory.hxx>
#include <vcl/virdev.hxx>
#include <vcl/svapp.hxx>
@@ -55,18 +54,14 @@
#include <orcus/json_parser.hpp>
#include <orcus/config.hpp>
+#include <bitmaps.hlst>
+
#define PAGE_SIZE 30
using namespace css;
using ::com::sun::star::uno::Reference;
-using ::com::sun::star::uno::XComponentContext;
-using ::com::sun::star::uno::UNO_QUERY_THROW;
using ::com::sun::star::uno::Exception;
-using ::com::sun::star::graphic::GraphicProvider;
-using ::com::sun::star::graphic::XGraphicProvider;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::beans::PropertyValue;
-using ::com::sun::star::graphic::XGraphic;
using namespace com::sun::star;
using namespace ::com::sun::star::uno;
@@ -135,7 +130,7 @@ void parseResponse(const std::string& rResponse, std::vector<AdditionInfo>& aAdd
{
aJsonDoc.load(rResponse, aConfig);
}
- catch (const orcus::json::parse_error&)
+ catch (const orcus::parse_error&)
{
TOOLS_WARN_EXCEPTION("cui.dialogs", "Invalid JSON file from the extensions API");
return;
@@ -207,8 +202,8 @@ bool getPreviewFile(const AdditionInfo& aAdditionInfo, OUString& sPreviewFile)
= ucb::SimpleFileAccess::create(comphelper::getProcessComponentContext());
// copy the images to the user's additions folder
- OUString userFolder = "${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER
- "/" SAL_CONFIGFILE("bootstrap") "::UserInstallation}";
+ OUString userFolder = u"${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER
+ "/" SAL_CONFIGFILE("bootstrap") "::UserInstallation}"_ustr;
rtl::Bootstrap::expandMacros(userFolder);
userFolder += "/user/additions/" + aAdditionInfo.sExtensionID + "/";
@@ -230,7 +225,7 @@ bool getPreviewFile(const AdditionInfo& aAdditionInfo, OUString& sPreviewFile)
return true;
}
-void LoadImage(const OUString& rPreviewFile, std::shared_ptr<AdditionsItem> pCurrentItem)
+void LoadImage(std::u16string_view rPreviewFile, std::shared_ptr<AdditionsItem> pCurrentItem)
{
const sal_Int8 Margin = 6;
@@ -280,6 +275,11 @@ SearchAndParseThread::SearchAndParseThread(AdditionsDialog* pDialog, const bool
, m_bExecute(true)
, m_bIsFirstLoading(isFirstLoading)
{
+ // if we are running a UITest, e.g. UITest_sw_options then
+ // don't attempt to downloading anything
+ static const bool bUITest = getenv("LIBO_TEST_UNIT");
+
+ m_bUITest = bUITest;
}
SearchAndParseThread::~SearchAndParseThread() {}
@@ -289,7 +289,8 @@ void SearchAndParseThread::Append(AdditionInfo& additionInfo)
if (!m_bExecute)
return;
OUString aPreviewFile;
- bool bResult = getPreviewFile(additionInfo, aPreviewFile); // info vector json data
+ bool bResult
+ = !m_bUITest && getPreviewFile(additionInfo, aPreviewFile); // info vector json data
if (!bResult)
{
@@ -382,7 +383,7 @@ void SearchAndParseThread::CheckInstalledExtensions()
SolarMutexGuard aGuard;
rInfo->m_xButtonInstall->set_sensitive(false);
rInfo->m_xButtonInstall->set_label(
- CuiResId(RID_SVXSTR_ADDITIONS_INSTALLEDBUTTON));
+ CuiResId(RID_CUISTR_ADDITIONS_INSTALLEDBUTTON));
}
}
}
@@ -394,16 +395,16 @@ void SearchAndParseThread::execute()
{
OUString sProgress;
if (m_bIsFirstLoading)
- sProgress = CuiResId(RID_SVXSTR_ADDITIONS_LOADING);
+ sProgress = CuiResId(RID_CUISTR_ADDITIONS_LOADING);
else
- sProgress = CuiResId(RID_SVXSTR_ADDITIONS_SEARCHING);
+ sProgress = CuiResId(RID_CUISTR_ADDITIONS_SEARCHING);
m_pAdditionsDialog->SetProgress(
sProgress); // Loading or searching according to being first call or not
if (m_bIsFirstLoading)
{
- std::string sResponse = ucbGet(m_pAdditionsDialog->m_sURL);
+ std::string sResponse = !m_bUITest ? ucbGet(m_pAdditionsDialog->m_sURL) : "";
parseResponse(sResponse, m_pAdditionsDialog->m_aAllExtensionsVector);
std::sort(m_pAdditionsDialog->m_aAllExtensionsVector.begin(),
m_pAdditionsDialog->m_aAllExtensionsVector.end(),
@@ -424,18 +425,17 @@ void SearchAndParseThread::execute()
}
AdditionsDialog::AdditionsDialog(weld::Window* pParent, const OUString& sAdditionsTag)
- : GenericDialogController(pParent, "cui/ui/additionsdialog.ui", "AdditionsDialog")
+ : GenericDialogController(pParent, u"cui/ui/additionsdialog.ui"_ustr, u"AdditionsDialog"_ustr)
, m_aSearchDataTimer("AdditionsDialog SearchDataTimer")
- , m_xEntrySearch(m_xBuilder->weld_entry("entrySearch"))
- , m_xButtonClose(m_xBuilder->weld_button("buttonClose"))
- , m_xMenuButtonSettings(m_xBuilder->weld_menu_button("buttonGear"))
- , m_xContentWindow(m_xBuilder->weld_scrolled_window("contentWindow"))
- , m_xContentGrid(m_xBuilder->weld_container("contentGrid"))
- , m_xLabelProgress(m_xBuilder->weld_label("labelProgress"))
- , m_xGearBtn(m_xBuilder->weld_menu_button("buttonGear"))
+ , m_xEntrySearch(m_xBuilder->weld_entry(u"entrySearch"_ustr))
+ , m_xButtonClose(m_xBuilder->weld_button(u"buttonClose"_ustr))
+ , m_xContentWindow(m_xBuilder->weld_scrolled_window(u"contentWindow"_ustr))
+ , m_xContentGrid(m_xBuilder->weld_container(u"contentGrid"_ustr))
+ , m_xLabelProgress(m_xBuilder->weld_label(u"labelProgress"_ustr))
+ , m_xGearBtn(m_xBuilder->weld_menu_button(u"buttonGear"_ustr))
{
m_xGearBtn->connect_selected(LINK(this, AdditionsDialog, GearHdl));
- m_xGearBtn->set_item_active("gear_sort_voting", true);
+ m_xGearBtn->set_item_active(u"gear_sort_voting"_ustr, true);
m_aSearchDataTimer.SetInvokeHandler(LINK(this, AdditionsDialog, ImplUpdateDataHdl));
m_aSearchDataTimer.SetTimeout(EDIT_UPDATEDATA_TIMEOUT);
@@ -448,19 +448,43 @@ AdditionsDialog::AdditionsDialog(weld::Window* pParent, const OUString& sAdditio
m_nMaxItemCount = PAGE_SIZE; // Dialog initialization item count
m_nCurrentListItemCount = 0; // First, there is no item on the list.
- OUString titlePrefix = CuiResId(RID_SVXSTR_ADDITIONS_DIALOG_TITLE_PREFIX);
+ OUString titlePrefix = CuiResId(RID_CUISTR_ADDITIONS_DIALOG_TITLE_PREFIX);
if (!m_sTag.isEmpty())
- {
- this->set_title(titlePrefix + ": " + sAdditionsTag);
+ { // tdf#142564 localize extension category names
+ OUString sDialogTitle = u""_ustr;
+ if (sAdditionsTag == "Templates")
+ {
+ sDialogTitle = CuiResId(RID_CUISTR_ADDITIONS_TEMPLATES);
+ }
+ else if (sAdditionsTag == "Dictionary")
+ {
+ sDialogTitle = CuiResId(RID_CUISTR_ADDITIONS_DICTIONARY);
+ }
+ else if (sAdditionsTag == "Gallery")
+ {
+ sDialogTitle = CuiResId(RID_CUISTR_ADDITIONS_GALLERY);
+ }
+ else if (sAdditionsTag == "Icons")
+ {
+ sDialogTitle = CuiResId(RID_CUISTR_ADDITIONS_ICONS);
+ }
+ else if (sAdditionsTag == "Color Palette")
+ {
+ sDialogTitle = CuiResId(RID_CUISTR_ADDITIONS_PALETTES);
+ }
+ this->set_title(sDialogTitle);
}
else
{
this->set_title(titlePrefix);
m_sTag = "allextensions"; // Means empty parameter
}
+
+ OUString sEncodedURLPart = INetURLObject::encode(m_sTag, INetURLObject::PART_PCHAR,
+ INetURLObject::EncodeMechanism::All);
+
//FIXME: Temporary URL - v0 is not using actual api
- OUString rURL = "https://extensions.libreoffice.org/api/v0/" + m_sTag + ".json";
- m_sURL = rURL;
+ m_sURL = "https://extensions.libreoffice.org/api/v0/" + sEncodedURLPart + ".json";
m_xExtensionManager
= deployment::ExtensionManager::get(::comphelper::getProcessComponentContext());
@@ -573,31 +597,27 @@ bool AdditionsDialog::sortByDownload(const AdditionInfo& a, const AdditionInfo&
AdditionsItem::AdditionsItem(weld::Widget* pParent, AdditionsDialog* pParentDialog,
const AdditionInfo& additionInfo)
- : m_xBuilder(Application::CreateBuilder(pParent, "cui/ui/additionsfragment.ui"))
- , m_xContainer(m_xBuilder->weld_widget("additionsEntry"))
- , m_xImageScreenshot(m_xBuilder->weld_image("imageScreenshot"))
- , m_xButtonInstall(m_xBuilder->weld_button("buttonInstall"))
- , m_xLinkButtonWebsite(m_xBuilder->weld_link_button("btnWebsite"))
- , m_xLabelName(m_xBuilder->weld_label("lbName"))
- , m_xLabelAuthor(m_xBuilder->weld_label("labelAuthor"))
- , m_xLabelDesc(m_xBuilder->weld_label("labelDesc")) // no change (print description)
- , m_xLabelDescription(m_xBuilder->weld_label("labelDescription"))
- , m_xLabelLicense(m_xBuilder->weld_label("lbLicenseText"))
- , m_xLabelVersion(m_xBuilder->weld_label("lbVersionText"))
- , m_xLabelComments(m_xBuilder->weld_label("labelComments")) // no change
- , m_xLinkButtonComments(m_xBuilder->weld_link_button("linkButtonComments"))
- , m_xImageVoting1(m_xBuilder->weld_image("imageVoting1"))
- , m_xImageVoting2(m_xBuilder->weld_image("imageVoting2"))
- , m_xImageVoting3(m_xBuilder->weld_image("imageVoting3"))
- , m_xImageVoting4(m_xBuilder->weld_image("imageVoting4"))
- , m_xImageVoting5(m_xBuilder->weld_image("imageVoting5"))
- , m_xLabelNoVoting(m_xBuilder->weld_label("votingLabel"))
- , m_xImageDownloadNumber(m_xBuilder->weld_image("imageDownloadNumber"))
- , m_xLabelDownloadNumber(m_xBuilder->weld_label("labelDownloadNumber"))
- , m_xButtonShowMore(m_xBuilder->weld_button("buttonShowMore"))
+ : m_xBuilder(Application::CreateBuilder(pParent, u"cui/ui/additionsfragment.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_widget(u"additionsEntry"_ustr))
+ , m_xImageScreenshot(m_xBuilder->weld_image(u"imageScreenshot"_ustr))
+ , m_xButtonInstall(m_xBuilder->weld_button(u"buttonInstall"_ustr))
+ , m_xLinkButtonWebsite(m_xBuilder->weld_link_button(u"btnWebsite"_ustr))
+ , m_xLabelName(m_xBuilder->weld_label(u"lbName"_ustr))
+ , m_xLabelAuthor(m_xBuilder->weld_label(u"labelAuthor"_ustr))
+ , m_xLabelDescription(m_xBuilder->weld_label(u"labelDescription"_ustr))
+ , m_xLabelLicense(m_xBuilder->weld_label(u"lbLicenseText"_ustr))
+ , m_xLabelVersion(m_xBuilder->weld_label(u"lbVersionText"_ustr))
+ , m_xLinkButtonComments(m_xBuilder->weld_link_button(u"linkButtonComments"_ustr))
+ , m_xImageVoting1(m_xBuilder->weld_image(u"imageVoting1"_ustr))
+ , m_xImageVoting2(m_xBuilder->weld_image(u"imageVoting2"_ustr))
+ , m_xImageVoting3(m_xBuilder->weld_image(u"imageVoting3"_ustr))
+ , m_xImageVoting4(m_xBuilder->weld_image(u"imageVoting4"_ustr))
+ , m_xImageVoting5(m_xBuilder->weld_image(u"imageVoting5"_ustr))
+ , m_xLabelDownloadNumber(m_xBuilder->weld_label(u"labelDownloadNumber"_ustr))
+ , m_xButtonShowMore(m_xBuilder->weld_button(u"buttonShowMore"_ustr))
, m_pParentDialog(pParentDialog)
- , m_sDownloadURL("")
- , m_sExtensionID("")
+ , m_sDownloadURL(u""_ustr)
+ , m_sExtensionID(u""_ustr)
{
SolarMutexGuard aGuard;
@@ -611,8 +631,8 @@ AdditionsItem::AdditionsItem(weld::Widget* pParent, AdditionsDialog* pParentDial
if (additionInfo.sName.getLength() > maxExtensionNameLength)
{
- OUString sShortName = additionInfo.sName.copy(0, maxExtensionNameLength - 3);
- sExtensionName = sShortName + "...";
+ std::u16string_view sShortName = additionInfo.sName.subView(0, maxExtensionNameLength - 3);
+ sExtensionName = OUString::Concat(sShortName) + "...";
}
else
{
@@ -625,19 +645,19 @@ AdditionsItem::AdditionsItem(weld::Widget* pParent, AdditionsDialog* pParentDial
switch (std::isnan(aExtensionRating) ? 0 : int(std::clamp(aExtensionRating, 0.0, 5.0)))
{
case 5:
- m_xImageVoting5->set_from_icon_name("cmd/sc_stars-full.png");
+ m_xImageVoting5->set_from_icon_name(RID_SVXBMP_STARS_FULL);
[[fallthrough]];
case 4:
- m_xImageVoting4->set_from_icon_name("cmd/sc_stars-full.png");
+ m_xImageVoting4->set_from_icon_name(RID_SVXBMP_STARS_FULL);
[[fallthrough]];
case 3:
- m_xImageVoting3->set_from_icon_name("cmd/sc_stars-full.png");
+ m_xImageVoting3->set_from_icon_name(RID_SVXBMP_STARS_FULL);
[[fallthrough]];
case 2:
- m_xImageVoting2->set_from_icon_name("cmd/sc_stars-full.png");
+ m_xImageVoting2->set_from_icon_name(RID_SVXBMP_STARS_FULL);
[[fallthrough]];
case 1:
- m_xImageVoting1->set_from_icon_name("cmd/sc_stars-full.png");
+ m_xImageVoting1->set_from_icon_name(RID_SVXBMP_STARS_FULL);
break;
}
@@ -647,7 +667,7 @@ AdditionsItem::AdditionsItem(weld::Widget* pParent, AdditionsDialog* pParentDial
if (!additionInfo.sAuthorName.equalsIgnoreAsciiCase("null"))
m_xLabelAuthor->set_label(additionInfo.sAuthorName);
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLBUTTON));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLBUTTON));
m_xLabelLicense->set_label(additionInfo.sLicense);
m_xLabelVersion->set_label(">=" + additionInfo.sCompatibleVersion);
m_xLinkButtonComments->set_label(additionInfo.sCommentNumber);
@@ -667,8 +687,8 @@ bool AdditionsItem::getExtensionFile(OUString& sExtensionFile)
= ucb::SimpleFileAccess::create(comphelper::getProcessComponentContext());
// copy the extensions' files to the user's additions folder
- OUString userFolder = "${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER
- "/" SAL_CONFIGFILE("bootstrap") "::UserInstallation}";
+ OUString userFolder = u"${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER
+ "/" SAL_CONFIGFILE("bootstrap") "::UserInstallation}"_ustr;
rtl::Bootstrap::expandMacros(userFolder);
userFolder += "/user/additions/" + m_sExtensionID + "/";
@@ -725,14 +745,14 @@ IMPL_LINK_NOARG(AdditionsItem, ShowMoreHdl, weld::Button&, void)
IMPL_LINK_NOARG(AdditionsItem, InstallHdl, weld::Button&, void)
{
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLING));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLING));
m_xButtonInstall->set_sensitive(false);
OUString aExtensionFile;
bool bResult = getExtensionFile(aExtensionFile); // info vector json data
if (!bResult)
{
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLBUTTON));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLBUTTON));
m_xButtonInstall->set_sensitive(true);
SAL_INFO("cui.dialogs", "Couldn't get the extension file.");
@@ -743,38 +763,39 @@ IMPL_LINK_NOARG(AdditionsItem, InstallHdl, weld::Button&, void)
uno::Reference<task::XAbortChannel> xAbortChannel;
try
{
- m_pParentDialog->m_xExtensionManager->addExtension(
- aExtensionFile, uno::Sequence<beans::NamedValue>(), "user", xAbortChannel, pCmdEnv);
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLEDBUTTON));
+ m_pParentDialog->m_xExtensionManager->addExtension(aExtensionFile,
+ uno::Sequence<beans::NamedValue>(),
+ u"user"_ustr, xAbortChannel, pCmdEnv);
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLEDBUTTON));
}
catch (const ucb::CommandFailedException)
{
TOOLS_WARN_EXCEPTION("cui.dialogs", "");
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLBUTTON));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLBUTTON));
m_xButtonInstall->set_sensitive(true);
}
catch (const ucb::CommandAbortedException)
{
TOOLS_WARN_EXCEPTION("cui.dialogs", "");
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLBUTTON));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLBUTTON));
m_xButtonInstall->set_sensitive(true);
}
catch (const deployment::DeploymentException)
{
TOOLS_WARN_EXCEPTION("cui.dialogs", "");
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLBUTTON));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLBUTTON));
m_xButtonInstall->set_sensitive(true);
}
catch (const lang::IllegalArgumentException)
{
TOOLS_WARN_EXCEPTION("cui.dialogs", "");
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLBUTTON));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLBUTTON));
m_xButtonInstall->set_sensitive(true);
}
catch (const css::uno::Exception)
{
TOOLS_WARN_EXCEPTION("cui.dialogs", "");
- m_xButtonInstall->set_label(CuiResId(RID_SVXSTR_ADDITIONS_INSTALLBUTTON));
+ m_xButtonInstall->set_label(CuiResId(RID_CUISTR_ADDITIONS_INSTALLBUTTON));
m_xButtonInstall->set_sensitive(true);
}
}
@@ -801,15 +822,11 @@ void TmpRepositoryCommandEnv::handle(uno::Reference<task::XInteractionRequest> c
bool approve = true;
// select:
- uno::Sequence<Reference<task::XInteractionContinuation>> conts(xRequest->getContinuations());
- Reference<task::XInteractionContinuation> const* pConts = conts.getConstArray();
- sal_Int32 len = conts.getLength();
- for (sal_Int32 pos = 0; pos < len; ++pos)
+ for (const auto& cont : xRequest->getContinuations())
{
if (approve)
{
- uno::Reference<task::XInteractionApprove> xInteractionApprove(pConts[pos],
- uno::UNO_QUERY);
+ uno::Reference<task::XInteractionApprove> xInteractionApprove(cont, uno::UNO_QUERY);
if (xInteractionApprove.is())
{
xInteractionApprove->select();
@@ -827,7 +844,7 @@ void TmpRepositoryCommandEnv::update(uno::Any const& /*Status */) {}
void TmpRepositoryCommandEnv::pop() {}
-IMPL_LINK(AdditionsDialog, GearHdl, const OString&, rIdent, void)
+IMPL_LINK(AdditionsDialog, GearHdl, const OUString&, rIdent, void)
{
if (rIdent == "gear_sort_voting")
{
diff --git a/cui/source/dialogs/DiagramDialog.cxx b/cui/source/dialogs/DiagramDialog.cxx
index 97ae0ca3d80d..a2499056210c 100644
--- a/cui/source/dialogs/DiagramDialog.cxx
+++ b/cui/source/dialogs/DiagramDialog.cxx
@@ -10,20 +10,24 @@
#include <DiagramDialog.hxx>
#include <comphelper/dispatchcommand.hxx>
-#include <svx/DiagramDataInterface.hxx>
+#include <svx/svdogrp.hxx>
+#include <svx/svdmodel.hxx>
+#include <svx/svdundo.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
+#include <svx/diagram/datamodel.hxx>
+#include <svx/diagram/IDiagramHelper.hxx>
-DiagramDialog::DiagramDialog(weld::Window* pWindow,
- std::shared_ptr<DiagramDataInterface> pDiagramData)
- : GenericDialogController(pWindow, "cui/ui/diagramdialog.ui", "DiagramDialog")
- , mpDiagramData(pDiagramData)
- , mpBtnOk(m_xBuilder->weld_button("btnOk"))
- , mpBtnCancel(m_xBuilder->weld_button("btnCancel"))
- , mpBtnAdd(m_xBuilder->weld_button("btnAdd"))
- , mpBtnRemove(m_xBuilder->weld_button("btnRemove"))
- , mpTreeDiagram(m_xBuilder->weld_tree_view("treeDiagram"))
- , mpTextAdd(m_xBuilder->weld_text_view("textAdd"))
+DiagramDialog::DiagramDialog(weld::Window* pWindow, SdrObjGroup& rDiagram)
+ : GenericDialogController(pWindow, u"cui/ui/diagramdialog.ui"_ustr, u"DiagramDialog"_ustr)
+ , m_rDiagram(rDiagram)
+ , m_nUndos(0)
+ , mpBtnCancel(m_xBuilder->weld_button(u"btnCancel"_ustr))
+ , mpBtnAdd(m_xBuilder->weld_button(u"btnAdd"_ustr))
+ , mpBtnRemove(m_xBuilder->weld_button(u"btnRemove"_ustr))
+ , mpTreeDiagram(m_xBuilder->weld_tree_view(u"treeDiagram"_ustr))
+ , mpTextAdd(m_xBuilder->weld_text_view(u"textAdd"_ustr))
{
+ mpBtnCancel->connect_clicked(LINK(this, DiagramDialog, OnAddCancel));
mpBtnAdd->connect_clicked(LINK(this, DiagramDialog, OnAddClick));
mpBtnRemove->connect_clicked(LINK(this, DiagramDialog, OnRemoveClick));
@@ -37,35 +41,106 @@ DiagramDialog::DiagramDialog(weld::Window* pWindow,
});
}
+IMPL_LINK_NOARG(DiagramDialog, OnAddCancel, weld::Button&, void)
+{
+ // If the user cancels the dialog, undo all changes done so far. It may
+ // even be feasible to then delete the redo-stack, since it stays
+ // available (?) - but it does no harm either...
+ while (0 != m_nUndos)
+ {
+ comphelper::dispatchCommand(u".uno:Undo"_ustr, {});
+ m_nUndos--;
+ }
+
+ m_xDialog->response(RET_CANCEL);
+}
+
IMPL_LINK_NOARG(DiagramDialog, OnAddClick, weld::Button&, void)
{
+ if (!m_rDiagram.isDiagram())
+ return;
+
OUString sText = mpTextAdd->get_text();
- if (!sText.isEmpty())
+ const std::shared_ptr< svx::diagram::IDiagramHelper >& pDiagramHelper(m_rDiagram.getDiagramHelper());
+
+ if (pDiagramHelper && !sText.isEmpty())
{
- OUString sNodeId = mpDiagramData->addNode(sText);
+ SdrModel& rDrawModel(m_rDiagram.getSdrModelFromSdrObject());
+ const bool bUndo(rDrawModel.IsUndoEnabled());
+ svx::diagram::DiagramDataStatePtr aStartState;
+
+ if (bUndo)
+ {
+ // rescue all start state Diagram-defining data
+ aStartState = pDiagramHelper->extractDiagramDataState();
+ }
+
+ OUString sNodeId = pDiagramHelper->addNode(sText);
+
+ if (bUndo)
+ {
+ // create undo action. That will internally secure the
+ // current Diagram-defining data as end state
+ rDrawModel.AddUndo(
+ rDrawModel.GetSdrUndoFactory().CreateUndoDiagramModelData(m_rDiagram, aStartState));
+ m_nUndos++;
+ }
+
std::unique_ptr<weld::TreeIter> pEntry(mpTreeDiagram->make_iterator());
mpTreeDiagram->insert(nullptr, -1, &sText, &sNodeId, nullptr, nullptr, false, pEntry.get());
mpTreeDiagram->select(*pEntry);
- comphelper::dispatchCommand(".uno:RegenerateDiagram", {});
+ comphelper::dispatchCommand(u".uno:RegenerateDiagram"_ustr, {});
}
}
IMPL_LINK_NOARG(DiagramDialog, OnRemoveClick, weld::Button&, void)
{
+ if (!m_rDiagram.isDiagram())
+ return;
+
std::unique_ptr<weld::TreeIter> pEntry(mpTreeDiagram->make_iterator());
- if (mpTreeDiagram->get_selected(pEntry.get()))
+ const std::shared_ptr< svx::diagram::IDiagramHelper >& pDiagramHelper(m_rDiagram.getDiagramHelper());
+
+ if (pDiagramHelper && mpTreeDiagram->get_selected(pEntry.get()))
{
- if (mpDiagramData->removeNode(mpTreeDiagram->get_id(*pEntry)))
+ SdrModel& rDrawModel(m_rDiagram.getSdrModelFromSdrObject());
+ const bool bUndo(rDrawModel.IsUndoEnabled());
+ svx::diagram::DiagramDataStatePtr aStartState;
+
+ if (bUndo)
{
+ // rescue all start state Diagram-defining data
+ aStartState = pDiagramHelper->extractDiagramDataState();
+ }
+
+ if (pDiagramHelper->removeNode(mpTreeDiagram->get_id(*pEntry)))
+ {
+ if (bUndo)
+ {
+ // create undo action. That will internally secure the
+ // current Diagram-defining data as end state
+ rDrawModel.AddUndo(rDrawModel.GetSdrUndoFactory().CreateUndoDiagramModelData(
+ m_rDiagram, aStartState));
+ m_nUndos++;
+ }
+
mpTreeDiagram->remove(*pEntry);
- comphelper::dispatchCommand(".uno:RegenerateDiagram", {});
+ comphelper::dispatchCommand(u".uno:RegenerateDiagram"_ustr, {});
}
}
}
void DiagramDialog::populateTree(const weld::TreeIter* pParent, const OUString& rParentId)
{
- auto aItems = mpDiagramData->getChildren(rParentId);
+ if (!m_rDiagram.isDiagram())
+ return;
+
+ const std::shared_ptr< svx::diagram::IDiagramHelper >& pDiagramHelper(m_rDiagram.getDiagramHelper());
+
+ if (!pDiagramHelper)
+ return;
+
+ auto aItems = pDiagramHelper->getChildren(rParentId);
for (auto& aItem : aItems)
{
std::unique_ptr<weld::TreeIter> pEntry(mpTreeDiagram->make_iterator());
diff --git a/cui/source/dialogs/FontFeaturesDialog.cxx b/cui/source/dialogs/FontFeaturesDialog.cxx
index 4735de194255..feb7f401025c 100644
--- a/cui/source/dialogs/FontFeaturesDialog.cxx
+++ b/cui/source/dialogs/FontFeaturesDialog.cxx
@@ -10,21 +10,27 @@
#include <FontFeaturesDialog.hxx>
#include <rtl/ustrbuf.hxx>
+#include <utility>
#include <vcl/font/FeatureParser.hxx>
#include <FontFeatures.hxx>
-#include <svtools/colorcfg.hxx>
#include <unordered_set>
using namespace css;
namespace cui
{
-FontFeaturesDialog::FontFeaturesDialog(weld::Window* pParent, OUString const& rFontName)
- : GenericDialogController(pParent, "cui/ui/fontfeaturesdialog.ui", "FontFeaturesDialog")
- , m_sFontName(rFontName)
- , m_xContentWindow(m_xBuilder->weld_scrolled_window("contentWindow"))
- , m_xContentGrid(m_xBuilder->weld_container("contentGrid"))
- , m_xPreviewWindow(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWindow))
+FontFeaturesDialog::FontFeaturesDialog(weld::Window* pParent, OUString aFontName)
+ : GenericDialogController(pParent, u"cui/ui/fontfeaturesdialog.ui"_ustr,
+ u"FontFeaturesDialog"_ustr)
+ , m_sFontName(std::move(aFontName))
+ , m_xContentWindow(m_xBuilder->weld_scrolled_window(u"contentWindow"_ustr))
+ , m_xContentBox(m_xBuilder->weld_container(u"contentBox"_ustr))
+ , m_xContentGrid(m_xBuilder->weld_container(u"contentGrid"_ustr))
+ , m_xStylisticSetsBox(m_xBuilder->weld_container(u"stylisticSetsBox"_ustr))
+ , m_xStylisticSetsGrid(m_xBuilder->weld_container(u"stylisticSetsGrid"_ustr))
+ , m_xCharacterVariantsBox(m_xBuilder->weld_container(u"characterVariantsBox"_ustr))
+ , m_xCharacterVariantsGrid(m_xBuilder->weld_container(u"characterVariantsGrid"_ustr))
+ , m_xPreviewWindow(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aPreviewWindow))
{
initialize();
}
@@ -50,7 +56,7 @@ static sal_Int32 makeEnumComboBox(weld::ComboBox& rNameBox,
void FontFeaturesDialog::initialize()
{
ScopedVclPtrInstance<VirtualDevice> aVDev(*Application::GetDefaultDevice(),
- DeviceFormat::DEFAULT, DeviceFormat::DEFAULT);
+ DeviceFormat::WITH_ALPHA);
std::vector<vcl::font::Feature> rFontFeatures = getFontFeatureList(m_sFontName, *aVDev);
std::unordered_set<sal_uInt32> aDoneFeatures;
@@ -58,7 +64,7 @@ void FontFeaturesDialog::initialize()
for (vcl::font::Feature const& rFontFeature : rFontFeatures)
{
- sal_uInt32 nFontFeatureCode = rFontFeature.m_aID.m_aFeatureCode;
+ sal_uInt32 nFontFeatureCode = rFontFeature.m_nCode;
if (!aDoneFeatures.insert(nFontFeatureCode).second)
continue;
rFilteredFontFeatures.push_back(rFontFeature);
@@ -66,9 +72,11 @@ void FontFeaturesDialog::initialize()
int nRowHeight = fillGrid(rFilteredFontFeatures);
+ auto nFeaturesHeight = m_xContentBox->get_preferred_size().Height()
+ + m_xStylisticSetsBox->get_preferred_size().Height()
+ + m_xCharacterVariantsBox->get_preferred_size().Height();
m_xContentWindow->set_size_request(
- -1, std::min(std::max(m_xContentWindow->get_preferred_size().Height(),
- m_xContentGrid->get_preferred_size().Height()),
+ -1, std::min(std::max(m_xContentWindow->get_preferred_size().Height(), nFeaturesHeight),
static_cast<tools::Long>(300L)));
if (nRowHeight)
@@ -87,31 +95,50 @@ int FontFeaturesDialog::fillGrid(std::vector<vcl::font::Feature> const& rFontFea
vcl::font::FeatureParser aParser(m_sFontName);
auto aExistingFeatures = aParser.getFeaturesMap();
- sal_Int32 i = 0;
+ sal_Int32 nIdx, nStylisticSets(0), nCharacterVariants(0), nOtherFeatures(0);
for (vcl::font::Feature const& rFontFeature : rFontFeatures)
{
- sal_uInt32 nFontFeatureCode = rFontFeature.m_aID.m_aFeatureCode;
+ sal_uInt32 nFontFeatureCode = rFontFeature.m_nCode;
vcl::font::FeatureDefinition aDefinition;
if (rFontFeature.m_aDefinition)
aDefinition = rFontFeature.m_aDefinition;
if (!aDefinition)
- aDefinition = { nFontFeatureCode, nullptr };
+ aDefinition = { nFontFeatureCode, u""_ustr };
- m_aFeatureItems.emplace_back(m_xContentGrid.get());
+ if (rFontFeature.isStylisticSet())
+ {
+ nIdx = nStylisticSets++;
+ m_xStylisticSetsBox->set_visible(true);
+ m_aFeatureItems.emplace_back(
+ std::make_unique<FontFeatureItem>(m_xStylisticSetsGrid.get()));
+ }
+ else if (rFontFeature.isCharacterVariant())
+ {
+ nIdx = nCharacterVariants++;
+ m_xCharacterVariantsBox->set_visible(true);
+ m_aFeatureItems.emplace_back(
+ std::make_unique<FontFeatureItem>(m_xCharacterVariantsGrid.get()));
+ }
+ else
+ {
+ nIdx = nOtherFeatures++;
+ m_xContentBox->set_visible(true);
+ m_aFeatureItems.emplace_back(std::make_unique<FontFeatureItem>(m_xContentGrid.get()));
+ }
- uint32_t nValue = 0;
+ int32_t nValue = 0;
if (aExistingFeatures.find(nFontFeatureCode) != aExistingFeatures.end())
nValue = aExistingFeatures.at(nFontFeatureCode);
else
nValue = aDefinition.getDefault();
- FontFeatureItem& aCurrentItem = m_aFeatureItems.back();
+ FontFeatureItem& aCurrentItem = *m_aFeatureItems.back();
aCurrentItem.m_aFeatureCode = nFontFeatureCode;
aCurrentItem.m_nDefault = aDefinition.getDefault();
- sal_Int32 nGridPositionX = (i % 2) * 2;
- sal_Int32 nGridPositionY = i / 2;
+ sal_Int32 nGridPositionX = (nIdx % 2) * 2;
+ sal_Int32 nGridPositionY = nIdx / 2;
aCurrentItem.m_xContainer->set_grid_left_attach(nGridPositionX);
aCurrentItem.m_xContainer->set_grid_top_attach(nGridPositionY);
@@ -133,16 +160,25 @@ int FontFeaturesDialog::fillGrid(std::vector<vcl::font::Feature> const& rFontFea
}
else
{
- aCurrentItem.m_xCheck->set_active(nValue > 0);
+ if (nValue < 0)
+ {
+ aCurrentItem.m_xCheck->set_state(TRISTATE_INDET);
+ aCurrentItem.m_aTriStateEnabled.bTriStateEnabled = true;
+ aCurrentItem.m_aTriStateEnabled.eState = TRISTATE_INDET;
+ }
+ else
+ {
+ aCurrentItem.m_xCheck->set_state(nValue > 0 ? TRISTATE_TRUE : TRISTATE_FALSE);
+ aCurrentItem.m_aTriStateEnabled.bTriStateEnabled = false;
+ aCurrentItem.m_aTriStateEnabled.eState = aCurrentItem.m_xCheck->get_state();
+ }
aCurrentItem.m_xCheck->set_label(aDefinition.getDescription());
- aCurrentItem.m_xCheck->connect_toggled(aCheckBoxToggleHandler);
+ aCurrentItem.m_aToggleHdl = aCheckBoxToggleHandler;
aCurrentItem.m_xCheck->show();
}
nRowHeight
= std::max<int>(nRowHeight, aCurrentItem.m_xContainer->get_preferred_size().Height());
-
- i++;
}
return nRowHeight;
@@ -163,6 +199,13 @@ void FontFeaturesDialog::updateFontPreview()
m_aPreviewWindow.SetFont(rPreviewFont, rPreviewFontCJK, rPreviewFontCTL);
}
+IMPL_LINK(FontFeatureItem, CheckBoxToggledHdl, weld::Toggleable&, rToggle, void)
+{
+ m_aTriStateEnabled.ButtonToggled(rToggle);
+ m_aTriStateEnabled.bTriStateEnabled = false;
+ m_aToggleHdl.Call(rToggle);
+}
+
IMPL_LINK_NOARG(FontFeaturesDialog, CheckBoxToggledHdl, weld::Toggleable&, void)
{
updateFontPreview();
@@ -179,11 +222,12 @@ OUString FontFeaturesDialog::createFontNameWithFeatures()
OUStringBuffer sNameSuffix;
bool bFirst = true;
- for (const FontFeatureItem& rItem : m_aFeatureItems)
+ for (const auto& rEntry : m_aFeatureItems)
{
+ const FontFeatureItem& rItem(*rEntry);
if (rItem.m_xCheck->get_visible())
{
- if (sal_uInt32(rItem.m_xCheck->get_active()) != rItem.m_nDefault)
+ if (rItem.m_xCheck->get_state() != TRISTATE_INDET)
{
if (!bFirst)
sNameSuffix.append(vcl::font::FeatureSeparator);
@@ -191,7 +235,7 @@ OUString FontFeaturesDialog::createFontNameWithFeatures()
bFirst = false;
sNameSuffix.append(vcl::font::featureCodeAsString(rItem.m_aFeatureCode));
- if (!rItem.m_xCheck->get_active())
+ if (rItem.m_xCheck->get_state() == TRISTATE_FALSE)
sNameSuffix.append("=0");
}
}
@@ -205,16 +249,14 @@ OUString FontFeaturesDialog::createFontNameWithFeatures()
else
bFirst = false;
- sNameSuffix.append(vcl::font::featureCodeAsString(rItem.m_aFeatureCode));
- sNameSuffix.append("=");
- sNameSuffix.append(OUString::number(nSelection));
+ sNameSuffix.append(vcl::font::featureCodeAsString(rItem.m_aFeatureCode) + "="
+ + OUString::number(nSelection));
}
}
}
sResultFontName = vcl::font::trimFontNameFeatures(m_sFontName);
if (!sNameSuffix.isEmpty())
- sResultFontName
- += OUStringChar(vcl::font::FeaturePrefix) + sNameSuffix.makeStringAndClear();
+ sResultFontName += OUStringChar(vcl::font::FeaturePrefix) + sNameSuffix;
return sResultFontName;
}
diff --git a/cui/source/dialogs/GraphicTestsDialog.cxx b/cui/source/dialogs/GraphicTestsDialog.cxx
index 555ef3bd888c..49525d71bb62 100644
--- a/cui/source/dialogs/GraphicTestsDialog.cxx
+++ b/cui/source/dialogs/GraphicTestsDialog.cxx
@@ -11,16 +11,24 @@
#include <comphelper/processfactory.hxx>
#include <comphelper/DirectoryHelper.hxx>
#include <osl/file.hxx>
+#include <svx/FileExportedDialog.hxx>
#include <unotools/ZipPackageHelper.hxx>
#include <GraphicsTestsDialog.hxx>
#include <vcl/test/GraphicsRenderTests.hxx>
+#include <svl/svlresid.hxx>
+#include <svl/svl.hrc>
+#include <vcl/svapp.hxx>
+
+#include <dialmgr.hxx>
+#include <strings.hrc>
+#include <ImageViewerDialog.hxx>
GraphicTestEntry::GraphicTestEntry(weld::Container* pParent, weld::Dialog* pDialog,
OUString aTestName, OUString aTestStatus, Bitmap aTestBitmap)
- : m_xBuilder(Application::CreateBuilder(pParent, "cui/ui/graphictestentry.ui"))
- , m_xContainer(m_xBuilder->weld_container("gptestbox"))
- , m_xTestLabel(m_xBuilder->weld_label("gptestlabel"))
- , m_xTestButton(m_xBuilder->weld_button("gptestbutton"))
+ : m_xBuilder(Application::CreateBuilder(pParent, u"cui/ui/graphictestentry.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_container(u"gptestbox"_ustr))
+ , m_xTestLabel(m_xBuilder->weld_label(u"gptestlabel"_ustr))
+ , m_xTestButton(m_xBuilder->weld_button(u"gptestbutton"_ustr))
, m_xResultBitmap(aTestBitmap)
{
m_xParentDialog = pDialog;
@@ -28,17 +36,18 @@ GraphicTestEntry::GraphicTestEntry(weld::Container* pParent, weld::Dialog* pDial
m_xTestButton->set_label(aTestStatus);
m_xTestButton->set_tooltip_text(aTestName);
m_xTestButton->set_background(
- aTestStatus == "PASSED"
+ aTestStatus == SvlResId(GRTSTR_PASSED)
? COL_LIGHTGREEN
- : aTestStatus == "QUIRKY" ? COL_YELLOW
- : aTestStatus == "FAILED" ? COL_LIGHTRED : COL_LIGHTGRAY);
+ : aTestStatus == SvlResId(GRTSTR_QUIRKY)
+ ? COL_YELLOW
+ : aTestStatus == SvlResId(GRTSTR_FAILED) ? COL_LIGHTRED : COL_LIGHTGRAY);
m_xTestButton->connect_clicked(LINK(this, GraphicTestEntry, HandleResultViewRequest));
m_xContainer->show();
}
IMPL_LINK(GraphicTestEntry, HandleResultViewRequest, weld::Button&, rButton, void)
{
- if (rButton.get_label() == "SKIPPED")
+ if (rButton.get_label() == SvlResId(GRTSTR_SKIPPED))
{
return;
}
@@ -48,10 +57,10 @@ IMPL_LINK(GraphicTestEntry, HandleResultViewRequest, weld::Button&, rButton, voi
}
GraphicsTestsDialog::GraphicsTestsDialog(weld::Container* pParent)
- : GenericDialogController(pParent, "cui/ui/graphictestdlg.ui", "GraphicTestsDialog")
- , m_xResultLog(m_xBuilder->weld_text_view("gptest_txtVW"))
- , m_xDownloadResults(m_xBuilder->weld_button("gptest_downld"))
- , m_xContainerBox(m_xBuilder->weld_box("gptest_box"))
+ : GenericDialogController(pParent, u"cui/ui/graphictestdlg.ui"_ustr, u"GraphicTestsDialog"_ustr)
+ , m_xResultLog(m_xBuilder->weld_text_view(u"gptest_txtVW"_ustr))
+ , m_xDownloadResults(m_xBuilder->weld_button(u"gptest_downld"_ustr))
+ , m_xContainerBox(m_xBuilder->weld_box(u"gptest_box"_ustr))
{
OUString userProfile = comphelper::BackupFileHelper::getUserProfileURL();
m_xZipFileUrl = userProfile + "/GraphicTestResults.zip";
@@ -64,14 +73,14 @@ short GraphicsTestsDialog::run()
{
GraphicsRenderTests aTestObject;
aTestObject.run(true);
- OUString aResultLog = aTestObject.getResultString()
- + "\n(Click on any test to view its resultant bitmap image)";
+ OUString aResultLog
+ = aTestObject.getResultString(true) + "\n" + CuiResId(RID_CUISTR_CLICK_RESULT);
m_xResultLog->set_text(aResultLog);
sal_Int32 nTestNumber = 0;
- for (const VclTestResult& test : aTestObject.getTestResults())
+ for (VclTestResult& test : aTestObject.getTestResults())
{
auto xGpTest = std::make_unique<GraphicTestEntry>(m_xContainerBox.get(), m_xDialog.get(),
- test.getTestName(), test.getStatus(),
+ test.getTestName(), test.getStatus(true),
test.getBitmap());
m_xContainerBox->reorder_child(xGpTest->get_widget(), nTestNumber++);
m_xGraphicTestEntries.push_back(std::move(xGpTest));
@@ -92,13 +101,11 @@ IMPL_LINK_NOARG(GraphicsTestsDialog, HandleDownloadRequest, weld::Button&, void)
{
std::unique_ptr<weld::MessageDialog> xBox(
Application::CreateMessageDialog(m_xDialog.get(), VclMessageType::Warning,
- VclButtonsType::Ok, "Creation of Zip file failed!"));
+ VclButtonsType::Ok, CuiResId(RID_CUISTR_ZIPFAIL)));
xBox->run();
return;
}
- FileExportedDialog aDialog(
- m_xDialog.get(),
- "The results have been successfully saved in the file 'GraphicTestResults.zip' !");
+ FileExportedDialog aDialog(m_xDialog.get(), CuiResId(RID_CUISTR_SAVED));
aDialog.run();
}
diff --git a/cui/source/dialogs/ImageViewerDialog.cxx b/cui/source/dialogs/ImageViewerDialog.cxx
index b245c8c08b60..d15960193d0f 100644
--- a/cui/source/dialogs/ImageViewerDialog.cxx
+++ b/cui/source/dialogs/ImageViewerDialog.cxx
@@ -11,8 +11,8 @@
#include <ImageViewerDialog.hxx>
ImageViewerDialog::ImageViewerDialog(weld::Dialog* pParent, BitmapEx aBitmap, OUString atitle)
- : GenericDialogController(pParent, "cui/ui/imageviewer.ui", "ImageViewerDialog")
- , m_xDisplayImage(m_xBuilder->weld_image("ImgVW_mainImage"))
+ : GenericDialogController(pParent, u"cui/ui/imageviewer.ui"_ustr, u"ImageViewerDialog"_ustr)
+ , m_xDisplayImage(m_xBuilder->weld_image(u"ImgVW_mainImage"_ustr))
{
m_xDialog->set_title(atitle);
aBitmap.Scale(Size(300, 300), BmpScaleFlag::Fast);
diff --git a/cui/source/dialogs/QrCodeGenDialog.cxx b/cui/source/dialogs/QrCodeGenDialog.cxx
index fad04c944ee0..ae712ed7a2ca 100644
--- a/cui/source/dialogs/QrCodeGenDialog.cxx
+++ b/cui/source/dialogs/QrCodeGenDialog.cxx
@@ -19,6 +19,7 @@
#include <vcl/svapp.hxx>
#if ENABLE_ZXING
+#include <ZXVersion.h>
#include <rtl/strbuf.hxx>
#ifdef __GNUC__
@@ -27,15 +28,21 @@
#endif
#include <BarcodeFormat.h>
-#include <BitArray.h>
#include <BitMatrix.h>
#include <MultiFormatWriter.h>
-#include <TextUtfEncoding.h>
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
+#if HAVE_ZXING_TOSVG
+#include <BitMatrixIO.h>
+#endif
+
+#if ZXING_VERSION_MAJOR < 2
+#include <TextUtfEncoding.h>
+#endif
+
#endif // ENABLE_ZXING
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -74,12 +81,12 @@ namespace
{
#if ENABLE_ZXING
// Implementation adapted from the answer: https://stackoverflow.com/questions/10789059/create-qr-code-in-vector-image/60638350#60638350
+#if !HAVE_ZXING_TOSVG
OString ConvertToSVGFormat(const ZXing::BitMatrix& bitmatrix)
{
OStringBuffer sb;
const int width = bitmatrix.width();
const int height = bitmatrix.height();
- ZXing::BitArray row(width);
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 "
+ OString::number(width) + " " + OString::number(height)
@@ -87,10 +94,9 @@ OString ConvertToSVGFormat(const ZXing::BitMatrix& bitmatrix)
"<path d=\"");
for (int i = 0; i < height; ++i)
{
- bitmatrix.getRow(i, row);
for (int j = 0; j < width; ++j)
{
- if (row.get(j))
+ if (bitmatrix.get(j, i))
{
sb.append("M" + OString::number(j) + "," + OString::number(i) + "h1v1h-1z");
}
@@ -99,8 +105,9 @@ OString ConvertToSVGFormat(const ZXing::BitMatrix& bitmatrix)
sb.append("\"/>\n</svg>");
return sb.toString();
}
+#endif
-std::string GetBarCodeType(const int& type)
+std::string GetBarCodeType(int type)
{
switch (type)
{
@@ -141,12 +148,20 @@ OString GenerateQRCode(std::u16string_view aQRText, tools::Long aQRECC, int aQRB
}
OString o = OUStringToOString(aQRText, RTL_TEXTENCODING_UTF8);
- std::string QRText(o.getStr(), o.getLength());
+ std::string QRText(o);
ZXing::BarcodeFormat format = ZXing::BarcodeFormatFromString(GetBarCodeType(aQRType));
auto writer = ZXing::MultiFormatWriter(format).setMargin(aQRBorder).setEccLevel(bqrEcc);
writer.setEncoding(ZXing::CharacterSet::UTF8);
+#if ZXING_VERSION_MAJOR >= 2
+ ZXing::BitMatrix bitmatrix = writer.encode(QRText, 0, 0);
+#else
ZXing::BitMatrix bitmatrix = writer.encode(ZXing::TextUtfEncoding::FromUtf8(QRText), 0, 0);
+#endif
+#if HAVE_ZXING_TOSVG
+ return OString(ZXing::ToSVG(bitmatrix));
+#else
return ConvertToSVGFormat(bitmatrix);
+#endif
}
#endif
@@ -154,19 +169,21 @@ OString GenerateQRCode(std::u16string_view aQRText, tools::Long aQRECC, int aQRB
QrCodeGenDialog::QrCodeGenDialog(weld::Widget* pParent, Reference<XModel> xModel,
bool bEditExisting)
- : GenericDialogController(pParent, "cui/ui/qrcodegen.ui", "QrCodeGenDialog")
+ : GenericDialogController(pParent, u"cui/ui/qrcodegen.ui"_ustr, u"QrCodeGenDialog"_ustr)
, m_xModel(std::move(xModel))
- , m_xEdittext(m_xBuilder->weld_entry("edit_text"))
- , m_xECC{ m_xBuilder->weld_radio_button("button_low"),
- m_xBuilder->weld_radio_button("button_medium"),
- m_xBuilder->weld_radio_button("button_quartile"),
- m_xBuilder->weld_radio_button("button_high") }
- , m_xSpinBorder(m_xBuilder->weld_spin_button("edit_margin"))
- , m_xComboType(m_xBuilder->weld_combo_box("choose_type"))
+ , m_xEdittext(m_xBuilder->weld_text_view(u"edit_text"_ustr))
+ , m_xECC{ m_xBuilder->weld_radio_button(u"button_low"_ustr),
+ m_xBuilder->weld_radio_button(u"button_medium"_ustr),
+ m_xBuilder->weld_radio_button(u"button_quartile"_ustr),
+ m_xBuilder->weld_radio_button(u"button_high"_ustr) }
+ , m_xSpinBorder(m_xBuilder->weld_spin_button(u"edit_margin"_ustr))
+ , m_xComboType(m_xBuilder->weld_combo_box(u"choose_type"_ustr))
#if ENABLE_ZXING
, mpParent(pParent)
#endif
{
+ m_xEdittext->set_size_request(m_xEdittext->get_approximate_digit_width() * 28,
+ m_xEdittext->get_height_rows(6));
if (!bEditExisting)
{
// TODO: This only works in Writer doc. Should also work in shapes
@@ -186,7 +203,7 @@ QrCodeGenDialog::QrCodeGenDialog(weld::Widget* pParent, Reference<XModel> xModel
// Read properties from selected QR Code
css::drawing::BarCode aBarCode;
- xProps->getPropertyValue("BarCodeProperties") >>= aBarCode;
+ xProps->getPropertyValue(u"BarCodeProperties"_ustr) >>= aBarCode;
m_xEdittext->set_text(aBarCode.Payload);
@@ -219,7 +236,7 @@ short QrCodeGenDialog::run()
{
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(
mpParent, VclMessageType::Warning, VclButtonsType::Ok,
- CuiResId(RID_SVXSTR_QRCODEDATALONG)));
+ CuiResId(RID_CUISTR_QRCODEDATALONG)));
xBox->run();
}
}
@@ -232,6 +249,36 @@ short QrCodeGenDialog::run()
#endif
}
+bool QrCodeGenDialog::runAsync(const std::shared_ptr<QrCodeGenDialog>& rController,
+ const std::function<void(sal_Int32)>& rFunc)
+{
+#if ENABLE_ZXING
+
+ weld::GenericDialogController::runAsync(rController, [rController, rFunc](sal_Int32 nResult) {
+ if (nResult == RET_OK)
+ {
+ try
+ {
+ rController->Apply();
+ }
+ catch (const std::exception&)
+ {
+ std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(
+ rController->GetParent(), VclMessageType::Warning, VclButtonsType::Ok,
+ CuiResId(RID_CUISTR_QRCODEDATALONG)));
+ xBox->run();
+ }
+ }
+
+ rFunc(nResult);
+ });
+#else
+ (void)rController;
+ (void)rFunc;
+#endif
+ return true;
+}
+
void QrCodeGenDialog::Apply()
{
#if ENABLE_ZXING
@@ -273,7 +320,7 @@ void QrCodeGenDialog::Apply()
Reference<XComponentContext> xContext(comphelper::getProcessComponentContext());
Reference<XGraphicProvider> xProvider = css::graphic::GraphicProvider::create(xContext);
- Sequence<PropertyValue> aMediaProperties{ comphelper::makePropertyValue("InputStream",
+ Sequence<PropertyValue> aMediaProperties{ comphelper::makePropertyValue(u"InputStream"_ustr,
xInputStream) };
Reference<XGraphic> xGraphic(xProvider->queryGraphic(aMediaProperties));
@@ -283,13 +330,13 @@ void QrCodeGenDialog::Apply()
xShapeProps = m_xExistingShapeProperties;
else
xShapeProps.set(Reference<lang::XMultiServiceFactory>(m_xModel, UNO_QUERY_THROW)
- ->createInstance("com.sun.star.drawing.GraphicObjectShape"),
+ ->createInstance(u"com.sun.star.drawing.GraphicObjectShape"_ustr),
UNO_QUERY);
- xShapeProps->setPropertyValue("Graphic", Any(xGraphic));
+ xShapeProps->setPropertyValue(u"Graphic"_ustr, Any(xGraphic));
// Set QRCode properties
- xShapeProps->setPropertyValue("BarCodeProperties", Any(aBarCode));
+ xShapeProps->setPropertyValue(u"BarCodeProperties"_ustr, Any(aBarCode));
if (bIsExistingQRCode)
return;
@@ -302,12 +349,12 @@ void QrCodeGenDialog::Apply()
xShape->setSize(aShapeSize);
// Default anchoring
- xShapeProps->setPropertyValue("AnchorType", Any(TextContentAnchorType_AT_PARAGRAPH));
+ xShapeProps->setPropertyValue(u"AnchorType"_ustr, Any(TextContentAnchorType_AT_PARAGRAPH));
const Reference<XServiceInfo> xServiceInfo(m_xModel, UNO_QUERY_THROW);
// Writer
- if (xServiceInfo->supportsService("com.sun.star.text.TextDocument"))
+ if (xServiceInfo->supportsService(u"com.sun.star.text.TextDocument"_ustr))
{
Reference<XTextContent> xTextContent(xShape, UNO_QUERY_THROW);
Reference<XTextViewCursorSupplier> xViewCursorSupplier(m_xModel->getCurrentController(),
@@ -321,11 +368,11 @@ void QrCodeGenDialog::Apply()
}
// Calc
- else if (xServiceInfo->supportsService("com.sun.star.sheet.SpreadsheetDocument"))
+ else if (xServiceInfo->supportsService(u"com.sun.star.sheet.SpreadsheetDocument"_ustr))
{
Reference<XPropertySet> xSheetCell(m_xModel->getCurrentSelection(), UNO_QUERY_THROW);
awt::Point aCellPosition;
- xSheetCell->getPropertyValue("Position") >>= aCellPosition;
+ xSheetCell->getPropertyValue(u"Position"_ustr) >>= aCellPosition;
xShape->setPosition(aCellPosition);
Reference<XSpreadsheetView> xView(m_xModel->getCurrentController(), UNO_QUERY_THROW);
@@ -339,8 +386,8 @@ void QrCodeGenDialog::Apply()
}
//Impress and Draw
- else if (xServiceInfo->supportsService("com.sun.star.presentation.PresentationDocument")
- || xServiceInfo->supportsService("com.sun.star.drawing.DrawingDocument"))
+ else if (xServiceInfo->supportsService(u"com.sun.star.presentation.PresentationDocument"_ustr)
+ || xServiceInfo->supportsService(u"com.sun.star.drawing.DrawingDocument"_ustr))
{
Reference<XDrawView> xView(m_xModel->getCurrentController(), UNO_QUERY_THROW);
Reference<XDrawPage> xPage(xView->getCurrentPage(), UNO_SET_THROW);
@@ -353,7 +400,7 @@ void QrCodeGenDialog::Apply()
else
{
//Not implemented for math,base and other apps.
- throw uno::RuntimeException("Not implemented");
+ throw uno::RuntimeException(u"Not implemented"_ustr);
}
#endif
}
diff --git a/cui/source/dialogs/SignSignatureLineDialog.cxx b/cui/source/dialogs/SignSignatureLineDialog.cxx
index 83d108290ade..183fb04c82fb 100644
--- a/cui/source/dialogs/SignSignatureLineDialog.cxx
+++ b/cui/source/dialogs/SignSignatureLineDialog.cxx
@@ -33,7 +33,6 @@
#include <com/sun/star/graphic/XGraphicProvider.hpp>
#include <com/sun/star/security/CertificateKind.hpp>
#include <com/sun/star/security/XCertificate.hpp>
-#include <com/sun/star/ui/dialogs/FilePicker.hpp>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
@@ -42,8 +41,6 @@ using namespace css;
using namespace css::uno;
using namespace css::beans;
using namespace css::frame;
-using namespace css::io;
-using namespace css::lang;
using namespace css::frame;
using namespace css::text;
using namespace css::graphic;
@@ -51,17 +48,17 @@ using namespace css::security;
using namespace css::ui::dialogs;
SignSignatureLineDialog::SignSignatureLineDialog(weld::Widget* pParent, Reference<XModel> xModel)
- : SignatureLineDialogBase(pParent, std::move(xModel), "cui/ui/signsignatureline.ui",
- "SignSignatureLineDialog")
- , m_xEditName(m_xBuilder->weld_entry("edit_name"))
- , m_xEditComment(m_xBuilder->weld_text_view("edit_comment"))
- , m_xBtnLoadImage(m_xBuilder->weld_button("btn_load_image"))
- , m_xBtnClearImage(m_xBuilder->weld_button("btn_clear_image"))
- , m_xBtnChooseCertificate(m_xBuilder->weld_button("btn_select_certificate"))
- , m_xBtnSign(m_xBuilder->weld_button("ok"))
- , m_xLabelHint(m_xBuilder->weld_label("label_hint"))
- , m_xLabelHintText(m_xBuilder->weld_label("label_hint_text"))
- , m_xLabelAddComment(m_xBuilder->weld_label("label_add_comment"))
+ : SignatureLineDialogBase(pParent, std::move(xModel), u"cui/ui/signsignatureline.ui"_ustr,
+ u"SignSignatureLineDialog"_ustr)
+ , m_xEditName(m_xBuilder->weld_entry(u"edit_name"_ustr))
+ , m_xEditComment(m_xBuilder->weld_text_view(u"edit_comment"_ustr))
+ , m_xBtnLoadImage(m_xBuilder->weld_button(u"btn_load_image"_ustr))
+ , m_xBtnClearImage(m_xBuilder->weld_button(u"btn_clear_image"_ustr))
+ , m_xBtnChooseCertificate(m_xBuilder->weld_button(u"btn_select_certificate"_ustr))
+ , m_xBtnSign(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xLabelHint(m_xBuilder->weld_label(u"label_hint"_ustr))
+ , m_xLabelHintText(m_xBuilder->weld_label(u"label_hint_text"_ustr))
+ , m_xLabelAddComment(m_xBuilder->weld_label(u"label_add_comment"_ustr))
, m_bShowSignDate(false)
{
Reference<container::XIndexAccess> xIndexAccess(m_xModel->getCurrentSelection(),
@@ -69,7 +66,7 @@ SignSignatureLineDialog::SignSignatureLineDialog(weld::Widget* pParent, Referenc
m_xShapeProperties.set(xIndexAccess->getByIndex(0), UNO_QUERY_THROW);
bool bIsSignatureLine(false);
- m_xShapeProperties->getPropertyValue("IsSignatureLine") >>= bIsSignatureLine;
+ m_xShapeProperties->getPropertyValue(u"IsSignatureLine"_ustr) >>= bIsSignatureLine;
if (!bIsSignatureLine)
{
SAL_WARN("cui.dialogs", "No signature line selected!");
@@ -83,17 +80,17 @@ SignSignatureLineDialog::SignSignatureLineDialog(weld::Widget* pParent, Referenc
m_xEditName->connect_changed(LINK(this, SignSignatureLineDialog, entryChanged));
// Read properties from selected signature line
- m_xShapeProperties->getPropertyValue("SignatureLineId") >>= m_aSignatureLineId;
- m_xShapeProperties->getPropertyValue("SignatureLineSuggestedSignerName")
+ m_xShapeProperties->getPropertyValue(u"SignatureLineId"_ustr) >>= m_aSignatureLineId;
+ m_xShapeProperties->getPropertyValue(u"SignatureLineSuggestedSignerName"_ustr)
>>= m_aSuggestedSignerName;
- m_xShapeProperties->getPropertyValue("SignatureLineSuggestedSignerTitle")
+ m_xShapeProperties->getPropertyValue(u"SignatureLineSuggestedSignerTitle"_ustr)
>>= m_aSuggestedSignerTitle;
OUString aSigningInstructions;
- m_xShapeProperties->getPropertyValue("SignatureLineSigningInstructions")
+ m_xShapeProperties->getPropertyValue(u"SignatureLineSigningInstructions"_ustr)
>>= aSigningInstructions;
- m_xShapeProperties->getPropertyValue("SignatureLineShowSignDate") >>= m_bShowSignDate;
+ m_xShapeProperties->getPropertyValue(u"SignatureLineShowSignDate"_ustr) >>= m_bShowSignDate;
bool bCanAddComment(false);
- m_xShapeProperties->getPropertyValue("SignatureLineCanAddComment") >>= bCanAddComment;
+ m_xShapeProperties->getPropertyValue(u"SignatureLineCanAddComment"_ustr) >>= bCanAddComment;
if (aSigningInstructions.isEmpty())
{
@@ -135,7 +132,7 @@ IMPL_LINK_NOARG(SignSignatureLineDialog, loadImage, weld::Button&, void)
return;
Reference<XGraphicProvider> xProvider = GraphicProvider::create(xContext);
- Sequence<PropertyValue> aMediaProperties{ comphelper::makePropertyValue("URL",
+ Sequence<PropertyValue> aMediaProperties{ comphelper::makePropertyValue(u"URL"_ustr,
aSelectedFiles[0]) };
m_xSignatureImage = xProvider->queryGraphic(aMediaProperties);
m_sOriginalImageBtnLabel = m_xBtnLoadImage->get_label();
@@ -148,7 +145,7 @@ IMPL_LINK_NOARG(SignSignatureLineDialog, loadImage, weld::Button&, void)
IMPL_LINK_NOARG(SignSignatureLineDialog, clearImage, weld::Button&, void)
{
- m_xSignatureImage.set(nullptr);
+ m_xSignatureImage.clear();
m_xBtnLoadImage->set_label(m_sOriginalImageBtnLabel);
ValidateFields();
}
@@ -157,7 +154,7 @@ IMPL_LINK_NOARG(SignSignatureLineDialog, chooseCertificate, weld::Button&, void)
{
// Document needs to be saved before selecting a certificate
SfxObjectShell* pShell = SfxObjectShell::Current();
- if (!pShell->PrepareForSigning(m_xDialog.get()))
+ if (!pShell || !pShell->PrepareForSigning(m_xDialog.get()))
return;
Reference<XCertificate> xSignCertificate
@@ -194,6 +191,12 @@ void SignSignatureLineDialog::Apply()
}
SfxObjectShell* pShell = SfxObjectShell::Current();
+ if (!pShell)
+ {
+ SAL_WARN("cui.dialogs", "No SfxObjectShell!");
+ return;
+ }
+
Reference<XGraphic> xValidGraphic = getSignedGraphic(true);
Reference<XGraphic> xInvalidGraphic = getSignedGraphic(false);
pShell->SignSignatureLine(m_xDialog.get(), m_aSignatureLineId, m_xSelectedCertifate,
@@ -208,7 +211,7 @@ css::uno::Reference<css::graphic::XGraphic> SignSignatureLineDialog::getSignedGr
aSvgImage = aSvgImage.replaceAll("[SIGNER_TITLE]", getCDataString(m_aSuggestedSignerTitle));
OUString aIssuerLine
- = CuiResId(RID_SVXSTR_SIGNATURELINE_SIGNED_BY)
+ = CuiResId(RID_CUISTR_SIGNATURELINE_SIGNED_BY)
.replaceFirst("%1", svx::SignatureLineHelper::getSignerName(m_xSelectedCertifate));
aSvgImage = aSvgImage.replaceAll("[SIGNED_BY]", getCDataString(aIssuerLine));
if (bValid)
@@ -229,10 +232,10 @@ css::uno::Reference<css::graphic::XGraphic> SignSignatureLineDialog::getSignedGr
if (!XOutBitmap::GraphicToBase64(aGraphic, aGraphicInBase64, false))
SAL_WARN("cui.dialogs", "Could not convert graphic to base64");
- OUString aImagePart = "<image y=\"825\" x=\"1300\" "
+ OUString aImagePart = u"<image y=\"825\" x=\"1300\" "
"xlink:href=\"data:[MIMETYPE];base64,[BASE64_IMG]>\" "
"preserveAspectRatio=\"xMidYMid\" height=\"1520\" "
- "width=\"7600\" />";
+ "width=\"7600\" />"_ustr;
aImagePart = aImagePart.replaceAll(
"[MIMETYPE]", GraphicMimeTypeHelper::GetMimeTypeForXGraphic(m_xSignatureImage));
aImagePart = aImagePart.replaceAll("[BASE64_IMG]", aGraphicInBase64);
diff --git a/cui/source/dialogs/SignatureLineDialog.cxx b/cui/source/dialogs/SignatureLineDialog.cxx
index 224dcdecd4bb..aece41a3d89d 100644
--- a/cui/source/dialogs/SignatureLineDialog.cxx
+++ b/cui/source/dialogs/SignatureLineDialog.cxx
@@ -42,14 +42,14 @@ using namespace css::graphic;
SignatureLineDialog::SignatureLineDialog(weld::Widget* pParent, Reference<XModel> xModel,
bool bEditExisting)
- : SignatureLineDialogBase(pParent, std::move(xModel), "cui/ui/signatureline.ui",
- "SignatureLineDialog")
- , m_xEditName(m_xBuilder->weld_entry("edit_name"))
- , m_xEditTitle(m_xBuilder->weld_entry("edit_title"))
- , m_xEditEmail(m_xBuilder->weld_entry("edit_email"))
- , m_xEditInstructions(m_xBuilder->weld_text_view("edit_instructions"))
- , m_xCheckboxCanAddComments(m_xBuilder->weld_check_button("checkbox_can_add_comments"))
- , m_xCheckboxShowSignDate(m_xBuilder->weld_check_button("checkbox_show_sign_date"))
+ : SignatureLineDialogBase(pParent, std::move(xModel), u"cui/ui/signatureline.ui"_ustr,
+ u"SignatureLineDialog"_ustr)
+ , m_xEditName(m_xBuilder->weld_entry(u"edit_name"_ustr))
+ , m_xEditTitle(m_xBuilder->weld_entry(u"edit_title"_ustr))
+ , m_xEditEmail(m_xBuilder->weld_entry(u"edit_email"_ustr))
+ , m_xEditInstructions(m_xBuilder->weld_text_view(u"edit_instructions"_ustr))
+ , m_xCheckboxCanAddComments(m_xBuilder->weld_check_button(u"checkbox_can_add_comments"_ustr))
+ , m_xCheckboxShowSignDate(m_xBuilder->weld_check_button(u"checkbox_show_sign_date"_ustr))
{
m_xEditInstructions->set_size_request(m_xEditInstructions->get_approximate_digit_width() * 48,
m_xEditInstructions->get_text_height() * 5);
@@ -67,24 +67,24 @@ SignatureLineDialog::SignatureLineDialog(weld::Widget* pParent, Reference<XModel
Reference<XPropertySet> xProps(xIndexAccess->getByIndex(0), UNO_QUERY_THROW);
// Read properties from selected signature line
- xProps->getPropertyValue("SignatureLineId") >>= m_aSignatureLineId;
+ xProps->getPropertyValue(u"SignatureLineId"_ustr) >>= m_aSignatureLineId;
OUString aSuggestedSignerName;
- xProps->getPropertyValue("SignatureLineSuggestedSignerName") >>= aSuggestedSignerName;
+ xProps->getPropertyValue(u"SignatureLineSuggestedSignerName"_ustr) >>= aSuggestedSignerName;
m_xEditName->set_text(aSuggestedSignerName);
OUString aSuggestedSignerTitle;
- xProps->getPropertyValue("SignatureLineSuggestedSignerTitle") >>= aSuggestedSignerTitle;
+ xProps->getPropertyValue(u"SignatureLineSuggestedSignerTitle"_ustr) >>= aSuggestedSignerTitle;
m_xEditTitle->set_text(aSuggestedSignerTitle);
OUString aSuggestedSignerEmail;
- xProps->getPropertyValue("SignatureLineSuggestedSignerEmail") >>= aSuggestedSignerEmail;
+ xProps->getPropertyValue(u"SignatureLineSuggestedSignerEmail"_ustr) >>= aSuggestedSignerEmail;
m_xEditEmail->set_text(aSuggestedSignerEmail);
OUString aSigningInstructions;
- xProps->getPropertyValue("SignatureLineSigningInstructions") >>= aSigningInstructions;
+ xProps->getPropertyValue(u"SignatureLineSigningInstructions"_ustr) >>= aSigningInstructions;
m_xEditInstructions->set_text(aSigningInstructions);
bool bCanAddComments = false;
- xProps->getPropertyValue("SignatureLineCanAddComment") >>= bCanAddComments;
+ xProps->getPropertyValue(u"SignatureLineCanAddComment"_ustr) >>= bCanAddComments;
m_xCheckboxCanAddComments->set_active(bCanAddComments);
bool bShowSignDate = false;
- xProps->getPropertyValue("SignatureLineShowSignDate") >>= bShowSignDate;
+ xProps->getPropertyValue(u"SignatureLineShowSignDate"_ustr) >>= bShowSignDate;
m_xCheckboxShowSignDate->set_active(bShowSignDate);
// Mark this as existing shape
@@ -123,26 +123,26 @@ void SignatureLineDialog::Apply()
xShapeProps = m_xExistingShapeProperties;
else
xShapeProps.set(Reference<lang::XMultiServiceFactory>(m_xModel, UNO_QUERY_THROW)
- ->createInstance("com.sun.star.drawing.GraphicObjectShape"),
+ ->createInstance(u"com.sun.star.drawing.GraphicObjectShape"_ustr),
UNO_QUERY);
- xShapeProps->setPropertyValue("Graphic", Any(xGraphic));
- xShapeProps->setPropertyValue("SignatureLineUnsignedImage", Any(xGraphic));
+ xShapeProps->setPropertyValue(u"Graphic"_ustr, Any(xGraphic));
+ xShapeProps->setPropertyValue(u"SignatureLineUnsignedImage"_ustr, Any(xGraphic));
// Set signature line properties
- xShapeProps->setPropertyValue("IsSignatureLine", Any(true));
- xShapeProps->setPropertyValue("SignatureLineId", Any(m_aSignatureLineId));
+ xShapeProps->setPropertyValue(u"IsSignatureLine"_ustr, Any(true));
+ xShapeProps->setPropertyValue(u"SignatureLineId"_ustr, Any(m_aSignatureLineId));
if (!aSignerName.isEmpty())
- xShapeProps->setPropertyValue("SignatureLineSuggestedSignerName", Any(aSignerName));
+ xShapeProps->setPropertyValue(u"SignatureLineSuggestedSignerName"_ustr, Any(aSignerName));
if (!aSignerTitle.isEmpty())
- xShapeProps->setPropertyValue("SignatureLineSuggestedSignerTitle", Any(aSignerTitle));
+ xShapeProps->setPropertyValue(u"SignatureLineSuggestedSignerTitle"_ustr, Any(aSignerTitle));
if (!aSignerEmail.isEmpty())
- xShapeProps->setPropertyValue("SignatureLineSuggestedSignerEmail", Any(aSignerEmail));
+ xShapeProps->setPropertyValue(u"SignatureLineSuggestedSignerEmail"_ustr, Any(aSignerEmail));
if (!aSigningInstructions.isEmpty())
- xShapeProps->setPropertyValue("SignatureLineSigningInstructions",
+ xShapeProps->setPropertyValue(u"SignatureLineSigningInstructions"_ustr,
Any(aSigningInstructions));
- xShapeProps->setPropertyValue("SignatureLineShowSignDate", Any(bShowSignDate));
- xShapeProps->setPropertyValue("SignatureLineCanAddComment", Any(bCanAddComments));
+ xShapeProps->setPropertyValue(u"SignatureLineShowSignDate"_ustr, Any(bShowSignDate));
+ xShapeProps->setPropertyValue(u"SignatureLineCanAddComment"_ustr, Any(bCanAddComments));
if (bIsExistingSignatureLine)
return;
@@ -155,7 +155,7 @@ void SignatureLineDialog::Apply()
xShape->setSize(aShapeSize);
// Default anchoring
- xShapeProps->setPropertyValue("AnchorType", Any(TextContentAnchorType_AT_PARAGRAPH));
+ xShapeProps->setPropertyValue(u"AnchorType"_ustr, Any(TextContentAnchorType_AT_PARAGRAPH));
// Writer
const Reference<XTextDocument> xTextDocument(m_xModel, UNO_QUERY);
@@ -179,7 +179,7 @@ void SignatureLineDialog::Apply()
Reference<XPropertySet> xSheetCell(m_xModel->getCurrentSelection(), UNO_QUERY_THROW);
awt::Point aCellPosition;
- xSheetCell->getPropertyValue("Position") >>= aCellPosition;
+ xSheetCell->getPropertyValue(u"Position"_ustr) >>= aCellPosition;
xShape->setPosition(aCellPosition);
Reference<XSpreadsheetView> xView(m_xModel->getCurrentController(), UNO_QUERY_THROW);
diff --git a/cui/source/dialogs/SignatureLineDialogBase.cxx b/cui/source/dialogs/SignatureLineDialogBase.cxx
index 4e591124bc44..fb154c34319d 100644
--- a/cui/source/dialogs/SignatureLineDialogBase.cxx
+++ b/cui/source/dialogs/SignatureLineDialogBase.cxx
@@ -18,7 +18,7 @@ using namespace css::uno;
using namespace css::frame;
SignatureLineDialogBase::SignatureLineDialogBase(weld::Widget* pParent, Reference<XModel> xModel,
- const OUString& rUIFile, const OString& rDialogId)
+ const OUString& rUIFile, const OUString& rDialogId)
: GenericDialogController(pParent, rUIFile, rDialogId)
, m_xModel(std::move(xModel))
{
@@ -26,10 +26,8 @@ SignatureLineDialogBase::SignatureLineDialogBase(weld::Widget* pParent, Referenc
short SignatureLineDialogBase::run()
{
- short nRet = GenericDialogController::run();
- if (nRet == RET_OK)
- Apply();
- return nRet;
+ assert(false && "these dialogs are async now");
+ return -1;
}
OUString SignatureLineDialogBase::getCDataString(std::u16string_view rString)
diff --git a/cui/source/dialogs/SpellAttrib.hxx b/cui/source/dialogs/SpellAttrib.hxx
index d732aad69ba1..cdc0cf26661e 100644
--- a/cui/source/dialogs/SpellAttrib.hxx
+++ b/cui/source/dialogs/SpellAttrib.hxx
@@ -22,6 +22,7 @@
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/lang/Locale.hpp>
#include <com/sun/star/linguistic2/XProofreader.hpp>
+#include <utility>
namespace svx{
struct SpellErrorDescription
@@ -37,21 +38,21 @@ struct SpellErrorDescription
OUString sRuleId;
SpellErrorDescription( bool bGrammar,
- const OUString& rText,
- const css::lang::Locale& rLocale,
+ OUString aText,
+ css::lang::Locale _aLocale,
const css::uno::Sequence< OUString >& rSuggestions,
- css::uno::Reference< css::linguistic2::XProofreader > const & rxGrammarChecker,
+ css::uno::Reference< css::linguistic2::XProofreader > _xGrammarChecker,
const OUString* pDialogTitle = nullptr,
const OUString* pExplanation = nullptr,
const OUString* pRuleId = nullptr,
const OUString* pExplanationURL = nullptr ) :
bIsGrammarError( bGrammar ),
- sErrorText( rText ),
+ sErrorText(std::move( aText )),
sDialogTitle( ),
sExplanation( ),
sExplanationURL( ),
- aLocale( rLocale ),
- xGrammarChecker( rxGrammarChecker ),
+ aLocale(std::move( _aLocale )),
+ xGrammarChecker(std::move( _xGrammarChecker )),
aSuggestions( rSuggestions )
{
if( pDialogTitle )
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index dae7b92c9155..a0c9819f0485 100644
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -26,6 +26,7 @@
#include <svl/undo.hxx>
#include <tools/debug.hxx>
#include <unotools/lingucfg.hxx>
+#include <editeng/editund2.hxx>
#include <editeng/colritem.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/langitem.hxx>
@@ -50,6 +51,7 @@
#include <SpellDialog.hxx>
#include <optlingu.hxx>
#include <treeopt.hxx>
+#include <svtools/colorcfg.hxx>
#include <svtools/langtab.hxx>
#include <sal/log.hxx>
#include <i18nlangtag/languagetag.hxx>
@@ -158,36 +160,37 @@ sal_uInt16 SpellUndoAction_Impl::GetId()const
SpellDialog::SpellDialog(SpellDialogChildWindow* pChildWindow,
weld::Window * pParent, SfxBindings* _pBindings)
: SfxModelessDialogController (_pBindings, pChildWindow,
- pParent, "cui/ui/spellingdialog.ui", "SpellingDialog")
+ pParent, u"cui/ui/spellingdialog.ui"_ustr, u"SpellingDialog"_ustr)
, aDialogUndoLink(LINK (this, SpellDialog, DialogUndoHdl))
+ , m_pInitHdlEvent(nullptr)
, bFocusLocked(true)
, rParent(*pChildWindow)
, pImpl( new SpellDialog_Impl )
- , m_xAltTitle(m_xBuilder->weld_label("alttitleft"))
- , m_xResumeFT(m_xBuilder->weld_label("resumeft"))
- , m_xNoSuggestionsFT(m_xBuilder->weld_label("nosuggestionsft"))
- , m_xLanguageFT(m_xBuilder->weld_label("languageft"))
- , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("languagelb")))
- , m_xExplainFT(m_xBuilder->weld_label("explain"))
- , m_xExplainLink(m_xBuilder->weld_link_button("explainlink"))
- , m_xNotInDictFT(m_xBuilder->weld_label("notindictft"))
- , m_xSentenceED(new SentenceEditWindow_Impl)
- , m_xSuggestionFT(m_xBuilder->weld_label("suggestionsft"))
- , m_xSuggestionLB(m_xBuilder->weld_tree_view("suggestionslb"))
- , m_xIgnorePB(m_xBuilder->weld_button("ignore"))
- , m_xIgnoreAllPB(m_xBuilder->weld_button("ignoreall"))
- , m_xIgnoreRulePB(m_xBuilder->weld_button("ignorerule"))
- , m_xAddToDictPB(m_xBuilder->weld_button("add"))
- , m_xAddToDictMB(m_xBuilder->weld_menu_button("addmb"))
- , m_xChangePB(m_xBuilder->weld_button("change"))
- , m_xChangeAllPB(m_xBuilder->weld_button("changeall"))
- , m_xAutoCorrPB(m_xBuilder->weld_button("autocorrect"))
- , m_xCheckGrammarCB(m_xBuilder->weld_check_button("checkgrammar"))
- , m_xOptionsPB(m_xBuilder->weld_button("options"))
- , m_xUndoPB(m_xBuilder->weld_button("undo"))
- , m_xClosePB(m_xBuilder->weld_button("close"))
- , m_xToolbar(m_xBuilder->weld_toolbar("toolbar"))
- , m_xSentenceEDWeld(new weld::CustomWeld(*m_xBuilder, "sentence", *m_xSentenceED))
+ , m_xAltTitle(m_xBuilder->weld_label(u"alttitleft"_ustr))
+ , m_xResumeFT(m_xBuilder->weld_label(u"resumeft"_ustr))
+ , m_xNoSuggestionsFT(m_xBuilder->weld_label(u"nosuggestionsft"_ustr))
+ , m_xLanguageFT(m_xBuilder->weld_label(u"languageft"_ustr))
+ , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"languagelb"_ustr)))
+ , m_xExplainFT(m_xBuilder->weld_label(u"explain"_ustr))
+ , m_xExplainLink(m_xBuilder->weld_link_button(u"explainlink"_ustr))
+ , m_xNotInDictFT(m_xBuilder->weld_label(u"notindictft"_ustr))
+ , m_xSentenceED(new SentenceEditWindow_Impl(m_xBuilder->weld_scrolled_window(u"scrolledwindow"_ustr, true)))
+ , m_xSuggestionFT(m_xBuilder->weld_label(u"suggestionsft"_ustr))
+ , m_xSuggestionLB(m_xBuilder->weld_tree_view(u"suggestionslb"_ustr))
+ , m_xIgnorePB(m_xBuilder->weld_button(u"ignore"_ustr))
+ , m_xIgnoreAllPB(m_xBuilder->weld_button(u"ignoreall"_ustr))
+ , m_xIgnoreRulePB(m_xBuilder->weld_button(u"ignorerule"_ustr))
+ , m_xAddToDictPB(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xAddToDictMB(m_xBuilder->weld_menu_button(u"addmb"_ustr))
+ , m_xChangePB(m_xBuilder->weld_button(u"change"_ustr))
+ , m_xChangeAllPB(m_xBuilder->weld_button(u"changeall"_ustr))
+ , m_xAutoCorrPB(m_xBuilder->weld_button(u"autocorrect"_ustr))
+ , m_xCheckGrammarCB(m_xBuilder->weld_check_button(u"checkgrammar"_ustr))
+ , m_xOptionsPB(m_xBuilder->weld_button(u"options"_ustr))
+ , m_xUndoPB(m_xBuilder->weld_button(u"undo"_ustr))
+ , m_xClosePB(m_xBuilder->weld_button(u"close"_ustr))
+ , m_xToolbar(m_xBuilder->weld_toolbar(u"toolbar"_ustr))
+ , m_xSentenceEDWeld(new weld::CustomWeld(*m_xBuilder, u"sentence"_ustr, *m_xSentenceED))
{
m_xSentenceED->SetSpellDialog(this);
m_xSentenceED->Init(m_xToolbar.get());
@@ -218,11 +221,19 @@ SpellDialog::SpellDialog(SpellDialogChildWindow* pChildWindow,
//InitHdl wants to use virtual methods, so it
//can't be called during the ctor, so init
//it on next event cycle post-ctor
- Application::PostUserEvent(LINK(this, SpellDialog, InitHdl));
+ m_pInitHdlEvent = Application::PostUserEvent(LINK(this, SpellDialog, InitHdl));
}
SpellDialog::~SpellDialog()
{
+ if (m_xOptionsDlg)
+ {
+ m_xOptionsDlg->response(RET_CANCEL);
+ m_xOptionsDlg.reset();
+ }
+
+ if (m_pInitHdlEvent)
+ Application::RemoveUserEvent(m_pInitHdlEvent);
if (pImpl)
{
// save possibly modified user-dictionaries
@@ -267,7 +278,6 @@ void SpellDialog::Init_Impl()
void SpellDialog::UpdateBoxes_Impl(bool bCallFromSelectHdl)
{
- sal_Int32 i;
m_xSuggestionLB->clear();
SpellErrorDescription aSpellErrorDescription;
@@ -298,26 +308,20 @@ void SpellDialog::UpdateBoxes_Impl(bool bCallFromSelectHdl)
int nDicts = InitUserDicts();
// enter alternatives
- const OUString *pNewWords = aNewWords.getConstArray();
- const sal_Int32 nSize = aNewWords.getLength();
- for ( i = 0; i < nSize; ++i )
+ for (auto& aTmp : aNewWords)
{
- OUString aTmp( pNewWords[i] );
if (m_xSuggestionLB->find_text(aTmp) == -1)
m_xSuggestionLB->append_text(aTmp);
}
- if(!nSize)
- m_xSuggestionLB->append_text(m_sNoSuggestionsST);
- m_xAutoCorrPB->set_sensitive( nSize > 0 );
-
- m_xSuggestionFT->set_sensitive(nSize > 0);
- m_xSuggestionLB->set_sensitive(nSize > 0);
- if( nSize )
- {
+ m_xSuggestionLB->set_sensitive(aNewWords.hasElements());
+ if (aNewWords.hasElements())
m_xSuggestionLB->select(0);
- }
- m_xChangePB->set_sensitive( nSize > 0);
- m_xChangeAllPB->set_sensitive(nSize > 0);
+ else
+ m_xSuggestionLB->append_text(m_sNoSuggestionsST);
+ m_xAutoCorrPB->set_sensitive(aNewWords.hasElements());
+ m_xSuggestionFT->set_sensitive(aNewWords.hasElements());
+ m_xChangePB->set_sensitive(aNewWords.hasElements());
+ m_xChangeAllPB->set_sensitive(aNewWords.hasElements());
bool bShowChangeAll = !bIsGrammarError;
m_xChangeAllPB->set_visible( bShowChangeAll );
m_xExplainFT->set_visible( !bShowChangeAll );
@@ -351,6 +355,11 @@ void SpellDialog::SpellContinue_Impl(std::unique_ptr<UndoChangeGroupGuard>* pGua
//then GetNextSentence() has to be called followed again by MarkNextError()
//MarkNextError is not initially called if the UndoEdit mode is active
bool bNextSentence = false;
+ if (!m_xSentenceED)
+ {
+ return;
+ }
+
if(!((!m_xSentenceED->IsUndoEditMode() && m_xSentenceED->MarkNextError( bIgnoreCurrentError, xSpell )) ||
( bNextSentence = GetNextSentence_Impl(pGuard, bUseSavedSentence, m_xSentenceED->IsUndoEditMode()) && m_xSentenceED->MarkNextError( false, xSpell ))))
return;
@@ -364,16 +373,10 @@ void SpellDialog::SpellContinue_Impl(std::unique_ptr<UndoChangeGroupGuard>* pGua
{
m_xNotInDictFT.get(),
m_xSentenceED->GetDrawingArea(),
- m_xLanguageFT.get(),
- nullptr
+ m_xLanguageFT.get()
};
- sal_Int32 nIdx = 0;
- do
- {
- aControls[nIdx]->set_sensitive(true);
- }
- while(aControls[++nIdx]);
-
+ for (weld::Widget* pWidget : aControls)
+ pWidget->set_sensitive(true);
}
if( bNextSentence )
{
@@ -387,6 +390,7 @@ void SpellDialog::SpellContinue_Impl(std::unique_ptr<UndoChangeGroupGuard>* pGua
*/
IMPL_LINK_NOARG( SpellDialog, InitHdl, void*, void)
{
+ m_pInitHdlEvent = nullptr;
m_xDialog->freeze();
//show or hide AutoCorrect depending on the modules abilities
m_xAutoCorrPB->set_visible(rParent.HasAutoCorrection());
@@ -401,7 +405,9 @@ IMPL_LINK_NOARG( SpellDialog, InitHdl, void*, void)
InitUserDicts();
LockFocusChanges(true);
- if( m_xChangePB->get_sensitive() )
+ if(m_xSentenceED->IsEnabled())
+ m_xSentenceED->GrabFocus();
+ else if( m_xChangePB->get_sensitive() )
m_xChangePB->grab_focus();
else if( m_xIgnorePB->get_sensitive() )
m_xIgnorePB->grab_focus();
@@ -456,19 +462,22 @@ IMPL_LINK_NOARG(SpellDialog, CheckGrammarHdl, weld::Toggleable&, void)
void SpellDialog::StartSpellOptDlg_Impl()
{
- SfxItemSetFixed<SID_AUTOSPELL_CHECK,SID_AUTOSPELL_CHECK> aSet( SfxGetpApp()->GetPool() );
- SfxSingleTabDialogController aDlg(m_xDialog.get(), &aSet, "cui/ui/spelloptionsdialog.ui", "SpellOptionsDialog");
+ auto xSet = std::make_shared<SfxItemSetFixed<SID_AUTOSPELL_CHECK,SID_AUTOSPELL_CHECK>>( SfxGetpApp()->GetPool() );
+ m_xOptionsDlg = std::make_shared<SfxSingleTabDialogController>(
+ m_xDialog.get(), xSet.get(), "content", "cui/ui/spelloptionsdialog.ui", "SpellOptionsDialog");
- std::unique_ptr<SfxTabPage> xPage = SvxLinguTabPage::Create(aDlg.get_content_area(), &aDlg, &aSet);
+ std::unique_ptr<SfxTabPage> xPage = SvxLinguTabPage::Create(m_xOptionsDlg->get_content_area(), m_xOptionsDlg.get(), xSet.get());
static_cast<SvxLinguTabPage*>(xPage.get())->HideGroups( GROUP_MODULES );
- aDlg.SetTabPage(std::move(xPage));
- if (RET_OK == aDlg.run())
- {
- InitUserDicts();
- const SfxItemSet* pOutSet = aDlg.GetOutputItemSet();
- if(pOutSet)
- OfaTreeOptionsDialog::ApplyLanguageOptions(*pOutSet);
- }
+ m_xOptionsDlg->SetTabPage(std::move(xPage));
+ weld::GenericDialogController::runAsync(m_xOptionsDlg, [this, xSet] (sal_uInt32 nResult) {
+ if (RET_OK == nResult)
+ {
+ InitUserDicts();
+ const SfxItemSet* pOutSet = m_xOptionsDlg->GetOutputItemSet();
+ if(pOutSet)
+ OfaTreeOptionsDialog::ApplyLanguageOptions(*pOutSet);
+ }
+ });
}
namespace
@@ -713,8 +722,7 @@ void SpellDialog::Close()
// section - in that case, the cursor can move from the editable field to
// the protected area, and the slots get disabled because of
// SfxDisableFlags::SwOnProtectedCursor (see FN_SPELL_GRAMMAR_DIALOG in .sdi).
- SfxViewFrame* pViewFrame = SfxViewFrame::Current();
- if (pViewFrame)
+ if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
pViewFrame->ToggleChildWindow(rParent.GetType());
}
@@ -763,8 +771,6 @@ int SpellDialog::InitUserDicts()
{
const LanguageType nLang = m_xLanguageLB->get_active_id();
- const Reference< XDictionary > *pDic = nullptr;
-
// get list of dictionaries
Reference< XSearchableDictionaryList > xDicList( LinguMgr::GetDictionaryList() );
if (xDicList.is())
@@ -783,13 +789,10 @@ int SpellDialog::InitUserDicts()
// list suitable dictionaries
bool bEnable = false;
- const sal_Int32 nSize = pImpl->aDics.getLength();
- pDic = pImpl->aDics.getConstArray();
m_xAddToDictMB->clear();
sal_uInt16 nItemId = 1; // menu items should be enumerated from 1 and not 0
- for (sal_Int32 i = 0; i < nSize; ++i)
+ for (auto& xDicTmp : pImpl->aDics)
{
- uno::Reference< linguistic2::XDictionary > xDicTmp = pDic[i];
if (!xDicTmp.is() || LinguMgr::GetIgnoreAllList() == xDicTmp)
continue;
@@ -828,15 +831,15 @@ int SpellDialog::InitUserDicts()
IMPL_LINK_NOARG(SpellDialog, AddToDictClickHdl, weld::Button&, void)
{
- AddToDictionaryExecute(OString::number(1));
+ AddToDictionaryExecute(OUString::number(1));
}
-IMPL_LINK(SpellDialog, AddToDictSelectHdl, const OString&, rIdent, void)
+IMPL_LINK(SpellDialog, AddToDictSelectHdl, const OUString&, rIdent, void)
{
AddToDictionaryExecute(rIdent);
}
-void SpellDialog::AddToDictionaryExecute(const OString& rItemId)
+void SpellDialog::AddToDictionaryExecute(const OUString& rItemId)
{
auto xGuard(std::make_unique<UndoChangeGroupGuard>(*m_xSentenceED));
@@ -945,7 +948,7 @@ void SpellDialog::Activate()
void SpellDialog::Deactivate()
{
- SfxModelessDialogController::Activate();
+ SfxModelessDialogController::Deactivate();
ToplevelFocusChanged();
}
@@ -969,15 +972,11 @@ void SpellDialog::InvalidateDialog()
m_xChangePB.get(),
m_xChangeAllPB.get(),
m_xAutoCorrPB.get(),
- m_xUndoPB.get(),
- nullptr
+ m_xUndoPB.get()
};
- sal_Int16 i = 0;
- while(aDisableArr[i])
- {
- aDisableArr[i]->set_sensitive(false);
- i++;
- }
+ for (weld::Widget* pWidget : aDisableArr)
+ pWidget->set_sensitive(false);
+
SfxModelessDialogController::Deactivate();
}
@@ -1036,7 +1035,7 @@ bool SpellDialog::GetNextSentence_Impl(std::unique_ptr<UndoChangeGroupGuard>* pG
SpellErrorDescription aDesc( false, elem.xAlternatives->getWord(),
elem.xAlternatives->getLocale(), elem.xAlternatives->getAlternatives(), nullptr);
SfxGrabBagItem aSpellErrorDescription(EE_CHAR_GRABBAG);
- aSpellErrorDescription.GetGrabBag()["SpellErrorDescription"] <<= aDesc.toSequence();
+ aSpellErrorDescription.GetGrabBag()[u"SpellErrorDescription"_ustr] <<= aDesc.toSequence();
m_xSentenceED->SetAttrib(aSpellErrorDescription, nStartPosition, nEndPosition);
}
else if(elem.bIsGrammarError )
@@ -1065,7 +1064,7 @@ bool SpellDialog::GetNextSentence_Impl(std::unique_ptr<UndoChangeGroupGuard>* pG
&sFullCommentURL );
SfxGrabBagItem aSpellErrorDescriptionItem(EE_CHAR_GRABBAG);
- aSpellErrorDescriptionItem.GetGrabBag()["SpellErrorDescription"] <<= aDesc.toSequence();
+ aSpellErrorDescriptionItem.GetGrabBag()[u"SpellErrorDescription"_ustr] <<= aDesc.toSequence();
m_xSentenceED->SetAttrib(aSpellErrorDescriptionItem, nStartPosition, nEndPosition);
}
@@ -1119,13 +1118,15 @@ bool SpellDialog::ApplyChangeAllList_Impl(SpellPortions& rSentence, bool &bHasRe
return bRet;
}
-SentenceEditWindow_Impl::SentenceEditWindow_Impl()
- : m_pSpellDialog(nullptr)
+SentenceEditWindow_Impl::SentenceEditWindow_Impl(std::unique_ptr<weld::ScrolledWindow> xScrolledWindow)
+ : m_xScrolledWindow(std::move(xScrolledWindow))
+ , m_pSpellDialog(nullptr)
, m_pToolbar(nullptr)
, m_nErrorStart(0)
, m_nErrorEnd(0)
, m_bIsUndoEditMode(false)
{
+ m_xScrolledWindow->connect_vadjustment_changed(LINK(this, SentenceEditWindow_Impl, ScrollHdl));
}
void SentenceEditWindow_Impl::SetDrawingArea(weld::DrawingArea* pDrawingArea)
@@ -1136,6 +1137,90 @@ void SentenceEditWindow_Impl::SetDrawingArea(weld::DrawingArea* pDrawingArea)
WeldEditView::SetDrawingArea(pDrawingArea);
// tdf#132288 don't merge equal adjacent attributes
m_xEditEngine->DisableAttributeExpanding();
+
+ m_xEditEngine->SetStatusEventHdl(LINK(this, SentenceEditWindow_Impl, EditStatusHdl));
+
+ SetDocumentColor(pDrawingArea);
+}
+
+void SentenceEditWindow_Impl::SetDocumentColor(weld::DrawingArea* pDrawingArea)
+{
+ if (!pDrawingArea || !m_xEditView || !m_xEditEngine)
+ return;
+ // tdf#142631 use document background color in this widget
+ Color aBgColor = svtools::ColorConfig().GetColorValue(svtools::DOCCOLOR).nColor;
+ OutputDevice& rDevice = pDrawingArea->get_ref_device();
+ rDevice.SetBackground(aBgColor);
+ m_xEditView->SetBackgroundColor(aBgColor);
+ m_xEditEngine->SetBackgroundColor(aBgColor);
+}
+
+void SentenceEditWindow_Impl::StyleUpdated()
+{
+ SetDocumentColor(GetDrawingArea());
+ WeldEditView::StyleUpdated();
+}
+
+IMPL_LINK_NOARG(SentenceEditWindow_Impl, EditStatusHdl, EditStatus&, void)
+{
+ SetScrollBarRange();
+ DoScroll();
+}
+
+IMPL_LINK_NOARG(SentenceEditWindow_Impl, ScrollHdl, weld::ScrolledWindow&, void)
+{
+ DoScroll();
+}
+
+void SentenceEditWindow_Impl::DoScroll()
+{
+ if (m_xEditView)
+ {
+ auto currentDocPos = m_xEditView->GetVisArea().Top();
+ auto nDiff = currentDocPos - m_xScrolledWindow->vadjustment_get_value();
+ // we expect SetScrollBarRange callback to be triggered by Scroll
+ // to set where we ended up
+ m_xEditView->Scroll(0, nDiff);
+ }
+}
+
+void SentenceEditWindow_Impl::EditViewScrollStateChange()
+{
+ // editengine height has changed or editview scroll pos has changed
+ SetScrollBarRange();
+}
+
+void SentenceEditWindow_Impl::SetScrollBarRange()
+{
+ EditEngine *pEditEngine = GetEditEngine();
+ if (!pEditEngine)
+ return;
+ if (!m_xScrolledWindow)
+ return;
+ EditView* pEditView = GetEditView();
+ if (!pEditView)
+ return;
+
+ int nVUpper = pEditEngine->GetTextHeight();
+ int nVCurrentDocPos = pEditView->GetVisArea().Top();
+ const Size aOut(pEditView->GetOutputArea().GetSize());
+ int nVStepIncrement = aOut.Height() * 2 / 10;
+ int nVPageIncrement = aOut.Height() * 8 / 10;
+ int nVPageSize = aOut.Height();
+
+ /* limit the page size to below nUpper because gtk's gtk_scrolled_window_start_deceleration has
+ effectively...
+
+ lower = gtk_adjustment_get_lower
+ upper = gtk_adjustment_get_upper - gtk_adjustment_get_page_size
+
+ and requires that upper > lower or the deceleration animation never ends
+ */
+ nVPageSize = std::min(nVPageSize, nVUpper);
+
+ m_xScrolledWindow->vadjustment_configure(nVCurrentDocPos, 0, nVUpper,
+ nVStepIncrement, nVPageIncrement, nVPageSize);
+ m_xScrolledWindow->set_vpolicy(nVUpper > nVPageSize ? VclPolicyType::ALWAYS : VclPolicyType::NEVER);
}
SentenceEditWindow_Impl::~SentenceEditWindow_Impl()
@@ -1163,7 +1248,10 @@ namespace
void ExtractErrorDescription(const EECharAttrib& rEECharAttrib, SpellErrorDescription& rSpellErrorDescription)
{
css::uno::Sequence<css::uno::Any> aSequence;
- static_cast<const SfxGrabBagItem*>(rEECharAttrib.pAttr)->GetGrabBag().find("SpellErrorDescription")->second >>= aSequence;
+ const auto pGrabBag = static_cast<const SfxGrabBagItem*>(rEECharAttrib.pAttr)->GetGrabBag();
+ const auto iter = pGrabBag.find(u"SpellErrorDescription"_ustr);
+ assert(iter != pGrabBag.end());
+ iter->second >>= aSequence;
rSpellErrorDescription.fromSequence(aSequence);
}
}
@@ -1487,6 +1575,8 @@ bool SentenceEditWindow_Impl::KeyInput(const KeyEvent& rKeyEvt)
//start position
if (!IsUndoEditMode() && bIsErrorActive)
{
+ aAttribList.clear();
+ m_xEditEngine->GetCharAttribs(0, aAttribList);
const EECharAttrib* pFontColor = FindCharAttrib(nCursor, EE_CHAR_COLOR, aAttribList);
const EECharAttrib* pErrorAttrib = FindCharAttrib(m_nErrorStart, EE_CHAR_GRABBAG, aAttribList);
if (pFontColor && pErrorAttrib)
@@ -1518,7 +1608,7 @@ void SentenceEditWindow_Impl::Init(weld::Toolbar* pToolbar)
m_pToolbar->connect_clicked(LINK(this,SentenceEditWindow_Impl,ToolbarHdl));
}
-IMPL_LINK(SentenceEditWindow_Impl, ToolbarHdl, const OString&, rCurItemId, void)
+IMPL_LINK(SentenceEditWindow_Impl, ToolbarHdl, const OUString&, rCurItemId, void)
{
if (rCurItemId == "paste")
{
@@ -1667,8 +1757,12 @@ void SentenceEditWindow_Impl::MoveErrorMarkTo(sal_Int32 nStart, sal_Int32 nEnd,
m_xEditEngine->RemoveAttribs(aAll, false, EE_CHAR_WEIGHT_CJK);
m_xEditEngine->RemoveAttribs(aAll, false, EE_CHAR_WEIGHT_CTL);
+ // tdf#116566 Use color defined in the current Color Scheme
+ Color aSpellErrorCollor = svtools::ColorConfig().GetColorValue(svtools::SPELL).nColor;
+ Color aGrammarErrorCollor = svtools::ColorConfig().GetColorValue(svtools::GRAMMAR).nColor;
+
SfxItemSet aSet(m_xEditEngine->GetEmptyItemSet());
- aSet.Put(SvxColorItem(bGrammarError ? COL_LIGHTBLUE : COL_LIGHTRED, EE_CHAR_COLOR));
+ aSet.Put(SvxColorItem(bGrammarError ? aGrammarErrorCollor : aSpellErrorCollor, EE_CHAR_COLOR));
aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT));
aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT_CJK));
aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT_CTL));
@@ -1683,6 +1777,8 @@ void SentenceEditWindow_Impl::MoveErrorMarkTo(sal_Int32 nStart, sal_Int32 nEnd,
if (!bCurrentSelectionInRange)
{
m_xEditView->SetSelection(ESelection(0, nStart));
+ // tdf#157148 ensure current location is auto-scrolled to be visible
+ m_xEditView->ShowCursor();
}
Invalidate();
@@ -1760,7 +1856,7 @@ int SentenceEditWindow_Impl::ChangeMarkedWord(const OUString& rNewWord, Language
if (bSpellErrorDescription)
{
SfxGrabBagItem aSpellErrorDescriptionItem(EE_CHAR_GRABBAG);
- aSpellErrorDescriptionItem.GetGrabBag()["SpellErrorDescription"] <<= aSpellErrorDescription.toSequence();
+ aSpellErrorDescriptionItem.GetGrabBag()[u"SpellErrorDescription"_ustr] <<= aSpellErrorDescription.toSequence();
SetAttrib(aSpellErrorDescriptionItem, m_nErrorStart, m_nErrorEnd);
}
SetAttrib(SvxLanguageItem(eLanguage, EE_CHAR_LANGUAGE), m_nErrorStart, m_nErrorEnd);
@@ -1816,9 +1912,9 @@ void SentenceEditWindow_Impl::SetAlternatives( const Reference< XSpellAlternativ
aLocale = xAlt->getLocale();
aAlts = xAlt->getAlternatives();
}
- SpellErrorDescription aDesc( false, aWord, aLocale, aAlts, nullptr);
+ SpellErrorDescription aDesc( false, aWord, std::move(aLocale), aAlts, nullptr);
SfxGrabBagItem aSpellErrorDescription(EE_CHAR_GRABBAG);
- aSpellErrorDescription.GetGrabBag()["SpellErrorDescription"] <<= aDesc.toSequence();
+ aSpellErrorDescription.GetGrabBag()[u"SpellErrorDescription"_ustr] <<= aDesc.toSequence();
SetAttrib(aSpellErrorDescription, m_nErrorStart, m_nErrorEnd);
}
@@ -1945,7 +2041,6 @@ svx::SpellPortions SentenceEditWindow_Impl::CreateSpellPortions() const
aPortion1.eLanguage = eLang;
aPortion1.sText = m_xEditEngine->GetText(ESelection(0, nStart, 0, aStart->nPosition));
-
bool bIsIgnoreError = m_aIgnoreErrorsAt.find( nStart ) != m_aIgnoreErrorsAt.end();
if( bIsIgnoreError )
{
@@ -1977,7 +2072,7 @@ svx::SpellPortions SentenceEditWindow_Impl::CreateSpellPortions() const
aPortion2.sText = aLeftOverText.makeStringAndClear();
aRet.push_back( aPortion2 );
}
- else
+ else if (!aLeftOverText.isEmpty() && !aRet.empty())
{ // we just need to append the left-over text to the last portion (which had no errors)
aRet[ aRet.size() - 1 ].sText += aLeftOverText;
}
@@ -1989,7 +2084,7 @@ svx::SpellPortions SentenceEditWindow_Impl::CreateSpellPortions() const
void SentenceEditWindow_Impl::Undo()
{
- SfxUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
+ EditUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
DBG_ASSERT(GetUndoActionCount(), "no undo actions available" );
if(!GetUndoActionCount())
return;
@@ -2008,13 +2103,13 @@ void SentenceEditWindow_Impl::Undo()
void SentenceEditWindow_Impl::ResetUndo()
{
- SfxUndoManager& rUndo = m_xEditEngine->GetUndoManager();
+ EditUndoManager& rUndo = m_xEditEngine->GetUndoManager();
rUndo.Clear();
}
void SentenceEditWindow_Impl::AddUndoAction( std::unique_ptr<SfxUndoAction> pAction )
{
- SfxUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
+ EditUndoManager& rUndoMgr = m_xEditEngine->GetUndoManager();
rUndoMgr.AddUndoAction(std::move(pAction));
GetSpellDialog()->m_xUndoPB->set_sensitive(true);
}
@@ -2063,15 +2158,10 @@ void SentenceEditWindow_Impl::SetUndoEditMode(bool bSet)
pSpellDialog->m_xLanguageLB->get_widget(),
pSpellDialog->m_xAddToDictMB.get(),
pSpellDialog->m_xAddToDictPB.get(),
- pSpellDialog->m_xAutoCorrPB.get(),
- nullptr
+ pSpellDialog->m_xAutoCorrPB.get()
};
- sal_Int32 nIdx = 0;
- do
- {
- aControls[nIdx]->set_sensitive(false);
- }
- while(aControls[++nIdx]);
+ for (weld::Widget* pWidget : aControls)
+ pWidget->set_sensitive(false);
//remove error marks
ESelection aAll(0, 0, 0, EE_TEXTPOS_ALL);
diff --git a/cui/source/dialogs/about.cxx b/cui/source/dialogs/about.cxx
index 7216ca55e3b8..353d23b16f07 100644
--- a/cui/source/dialogs/about.cxx
+++ b/cui/source/dialogs/about.cxx
@@ -17,13 +17,18 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <sal/config.h>
+
+#include <cassert>
+
#include <about.hxx>
#include <osl/process.h> //osl_getProcessLocale
+#include <rtl/bootstrap.hxx>
#include <sal/log.hxx> //SAL_WARN
+#include <vcl/graph.hxx> //Graphic
#include <vcl/settings.hxx> //GetSettings
#include <vcl/svapp.hxx> //Application::
-#include <vcl/virdev.hxx> //VirtualDevice
#include <vcl/weld.hxx>
#include <unotools/resmgr.hxx> //Translate
@@ -50,22 +55,22 @@
using namespace ::com::sun::star::uno;
AboutDialog::AboutDialog(weld::Window *pParent)
- : GenericDialogController(pParent, "cui/ui/aboutdialog.ui", "AboutDialog"),
- m_pCreditsButton(m_xBuilder->weld_link_button("btnCredits")),
- m_pWebsiteButton(m_xBuilder->weld_link_button("btnWebsite")),
- m_pReleaseNotesButton(m_xBuilder->weld_link_button("btnReleaseNotes")),
- m_pCloseButton(m_xBuilder->weld_button("btnClose")),
- m_pCopyButton(m_xBuilder->weld_button("btnCopyVersion")),
- m_pBrandImage(m_xBuilder->weld_image("imBrand")),
- m_pAboutImage(m_xBuilder->weld_image("imAbout")),
- m_pVersionLabel(m_xBuilder->weld_label("lbVersionString")),
- m_pBuildCaption(m_xBuilder->weld_label("lbBuild")),
- m_pBuildLabel(m_xBuilder->weld_link_button("lbBuildString")),
- m_pEnvLabel(m_xBuilder->weld_label("lbEnvString")),
- m_pUILabel(m_xBuilder->weld_label("lbUIString")),
- m_pLocaleLabel(m_xBuilder->weld_label("lbLocaleString")),
- m_pMiscLabel(m_xBuilder->weld_label("lbMiscString")),
- m_pCopyrightLabel(m_xBuilder->weld_label("lbCopyright")) {
+ : GenericDialogController(pParent, u"cui/ui/aboutdialog.ui"_ustr, u"AboutDialog"_ustr),
+ m_pCreditsButton(m_xBuilder->weld_link_button(u"btnCredits"_ustr)),
+ m_pWebsiteButton(m_xBuilder->weld_link_button(u"btnWebsite"_ustr)),
+ m_pReleaseNotesButton(m_xBuilder->weld_link_button(u"btnReleaseNotes"_ustr)),
+ m_pCloseButton(m_xBuilder->weld_button(u"btnClose"_ustr)),
+ m_pCopyButton(m_xBuilder->weld_button(u"btnCopyVersion"_ustr)),
+ m_pBrandImage(m_xBuilder->weld_image(u"imBrand"_ustr)),
+ m_pAboutImage(m_xBuilder->weld_image(u"imAbout"_ustr)),
+ m_pVersionLabel(m_xBuilder->weld_label(u"lbVersionString"_ustr)),
+ m_pBuildCaption(m_xBuilder->weld_label(u"lbBuild"_ustr)),
+ m_pBuildLabel(m_xBuilder->weld_link_button(u"lbBuildString"_ustr)),
+ m_pEnvLabel(m_xBuilder->weld_label(u"lbEnvString"_ustr)),
+ m_pUILabel(m_xBuilder->weld_label(u"lbUIString"_ustr)),
+ m_pLocaleLabel(m_xBuilder->weld_label(u"lbLocaleString"_ustr)),
+ m_pMiscLabel(m_xBuilder->weld_label(u"lbMiscString"_ustr)),
+ m_pCopyrightLabel(m_xBuilder->weld_label(u"lbCopyright"_ustr)) {
// Labels
m_pVersionLabel->set_label(GetVersionString());
@@ -100,24 +105,24 @@ AboutDialog::AboutDialog(weld::Window *pParent)
? "shell/logo_inverted"
: "shell/logo",
aBackgroundBitmap, nWidth * 0.8)) {
- ScopedVclPtr<VirtualDevice> m_pVirDev =
- m_pBrandImage->create_virtual_device();
- m_pVirDev->SetOutputSizePixel(aBackgroundBitmap.GetSizePixel());
- m_pVirDev->DrawBitmapEx(Point(0, 0), aBackgroundBitmap);
- m_pBrandImage->set_image(m_pVirDev.get());
- m_pVirDev.disposeAndClear();
+ // Eliminate white background when Skia is disabled by not drawing the
+ // background bitmap to a VirtualDevice. On most platforms, non-Skia
+ // VirtualDevices will be filled with a solid color when drawing
+ // the bitmap.
+ Graphic aGraphic(aBackgroundBitmap);
+ m_pBrandImage->set_image(aGraphic.GetXGraphic());
}
if (SfxApplication::loadBrandSvg("shell/about", aBackgroundBitmap, nWidth * 0.9)) {
- ScopedVclPtr<VirtualDevice> m_pVirDev =
- m_pAboutImage->create_virtual_device();
- m_pVirDev->SetOutputSizePixel(aBackgroundBitmap.GetSizePixel());
- m_pVirDev->DrawBitmapEx(Point(0, 0), aBackgroundBitmap);
- m_pAboutImage->set_image(m_pVirDev.get());
- m_pVirDev.disposeAndClear();
+ // Eliminate white background when Skia is disabled by not drawing the
+ // background bitmap to a VirtualDevice. On most platforms, non-Skia
+ // VirtualDevices will be filled with a solid color when drawing
+ // the bitmap.
+ Graphic aGraphic(aBackgroundBitmap);
+ m_pAboutImage->set_image(aGraphic.GetXGraphic());
}
// Links
- m_pCreditsButton->set_uri(CuiResId(RID_SVXSTR_ABOUT_CREDITS_URL));
+ m_pCreditsButton->set_uri(officecfg::Office::Common::Menus::CreditsURL::get());
OUString sURL(officecfg::Office::Common::Help::StartCenter::InfoURL::get());
localizeWebserviceURI(sURL);
@@ -136,23 +141,16 @@ AboutDialog::AboutDialog(weld::Window *pParent)
AboutDialog::~AboutDialog() {}
-bool AboutDialog::IsStringValidGitHash(const OUString &hash) {
- for (int i = 0; i < hash.getLength(); i++) {
- if (!std::isxdigit(hash[i])) {
- return false;
- }
- }
- return true;
+bool AboutDialog::IsStringValidGitHash(std::u16string_view hash) {
+ return std::all_of(hash.begin(), hash.end(),
+ [](auto &rSymbol) { return std::isxdigit(rSymbol); });
}
OUString AboutDialog::GetVersionString() {
- OUString sVersion = CuiResId(TranslateId(nullptr, "%ABOUTBOXPRODUCTVERSION%ABOUTBOXPRODUCTVERSIONSUFFIX"));
-
-#ifdef _WIN64
- sVersion += " (x64)";
-#elif defined(_WIN32)
- sVersion += " (x86)";
-#endif
+ OUString arch;
+ auto const ok = rtl::Bootstrap::get(u"_ARCH"_ustr, arch);
+ assert(ok); (void) ok;
+ OUString sVersion = CuiResId(TranslateId(nullptr, "%ABOUTBOXPRODUCTVERSION%ABOUTBOXPRODUCTVERSIONSUFFIX")) + " (" + arch + ")";
#if HAVE_FEATURE_COMMUNITY_FLAVOR
sVersion += " / LibreOffice Community";
@@ -163,7 +161,7 @@ OUString AboutDialog::GetVersionString() {
OUString AboutDialog::GetBuildString()
{
- OUString sBuildId(utl::Bootstrap::getBuildIdData(""));
+ OUString sBuildId(utl::Bootstrap::getBuildIdData(u""_ustr));
SAL_WARN_IF(sBuildId.isEmpty(), "cui.dialogs", "No BUILDID in bootstrap file");
return sBuildId;
@@ -192,9 +190,9 @@ OUString AboutDialog::GetLocaleString(const bool bLocalized) {
Application::GetSettings().GetUILanguageTag().getBcp47();
OUString sUILocaleStr;
if (bLocalized)
- sUILocaleStr = CuiResId(RID_SVXSTR_ABOUT_UILOCALE);
+ sUILocaleStr = CuiResId(RID_CUISTR_ABOUT_UILOCALE);
else
- sUILocaleStr = Translate::get(RID_SVXSTR_ABOUT_UILOCALE, Translate::Create("cui", LanguageTag("en-US")));
+ sUILocaleStr = Translate::get(RID_CUISTR_ABOUT_UILOCALE, Translate::Create("cui", LanguageTag(u"en-US"_ustr)));
if (sUILocaleStr.indexOf("$LOCALE") == -1) {
SAL_WARN("cui.dialogs", "translated uilocale string in translations "
@@ -216,14 +214,11 @@ OUString AboutDialog::GetMiscString() {
sMisc = EXTRA_BUILDID "\n";
}
- OUString aCalcMode = "Calc: "; // Calc calculation mode
+ OUString aCalcMode; // Calc calculation mode
#if HAVE_FEATURE_OPENCL
- bool bOpenCL = openclwrapper::GPUEnv::isOpenCLEnabled();
- if (bOpenCL)
- aCalcMode += "CL";
-#else
- const bool bOpenCL = false;
+ if (openclwrapper::GPUEnv::isOpenCLEnabled())
+ aCalcMode += " CL";
#endif
static const bool bThreadingProhibited =
@@ -231,32 +226,31 @@ OUString AboutDialog::GetMiscString() {
bool bThreadedCalc = officecfg::Office::Calc::Formula::Calculation::
UseThreadedCalculationForFormulaGroups::get();
- if (!bThreadingProhibited && !bOpenCL && bThreadedCalc) {
- if (!aCalcMode.endsWith(" "))
- aCalcMode += " ";
- aCalcMode += "threaded";
+ if (!bThreadingProhibited && bThreadedCalc) {
+ aCalcMode += " threaded";
}
if (officecfg::Office::Calc::Defaults::Sheet::JumboSheets::get())
{
- if (!aCalcMode.endsWith(" "))
- aCalcMode += " ";
- aCalcMode += "Jumbo";
+ aCalcMode += " Jumbo";
}
- sMisc += aCalcMode;
+
+ if (aCalcMode.isEmpty())
+ aCalcMode = " default";
+ sMisc += "Calc:" + aCalcMode;
return sMisc;
}
OUString AboutDialog::GetCopyrightString() {
- OUString sVendorTextStr(CuiResId(RID_SVXSTR_ABOUT_VENDOR));
+ OUString sVendorTextStr(CuiResId(RID_CUISTR_ABOUT_VENDOR));
OUString aCopyrightString =
- sVendorTextStr + "\n" + CuiResId(RID_SVXSTR_ABOUT_COPYRIGHT) + "\n";
+ sVendorTextStr + "\n" + CuiResId(RID_CUISTR_ABOUT_COPYRIGHT) + "\n";
if (utl::ConfigManager::getProductName() == "LibreOffice")
- aCopyrightString += CuiResId(RID_SVXSTR_ABOUT_BASED_ON);
+ aCopyrightString += CuiResId(RID_CUISTR_ABOUT_BASED_ON);
else
- aCopyrightString += CuiResId(RID_SVXSTR_ABOUT_DERIVED);
+ aCopyrightString += CuiResId(RID_CUISTR_ABOUT_DERIVED);
return aCopyrightString;
}
diff --git a/cui/source/dialogs/colorpicker.cxx b/cui/source/dialogs/colorpicker.cxx
index 3b9a81dddde3..6ca351c883d4 100644
--- a/cui/source/dialogs/colorpicker.cxx
+++ b/cui/source/dialogs/colorpicker.cxx
@@ -26,9 +26,8 @@
#include <com/sun/star/awt/XWindow.hpp>
#include <comphelper/propertyvalue.hxx>
-#include <cppuhelper/compbase.hxx>
+#include <comphelper/compbase.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <cppuhelper/basemutex.hxx>
#include <vcl/customweld.hxx>
#include <vcl/event.hxx>
#include <vcl/svapp.hxx>
@@ -201,6 +200,7 @@ class ColorFieldControl : public weld::CustomWidgetController
public:
ColorFieldControl()
: meMode( DefaultMode )
+ , mnBaseValue(USHRT_MAX)
, mdX( -1.0 )
, mdY( -1.0 )
, mbMouseCaptured(false)
@@ -230,7 +230,7 @@ public:
void UpdatePosition();
void Modify();
- void SetValues(Color aColor, ColorMode eMode, double x, double y);
+ void SetValues(sal_uInt16 nBaseValue, ColorMode eMode, double x, double y);
double GetX() const { return mdX;}
double GetY() const { return mdY;}
@@ -238,7 +238,7 @@ public:
private:
ColorMode meMode;
- Color maColor;
+ sal_uInt16 mnBaseValue;
double mdX;
double mdY;
bool mbMouseCaptured;
@@ -307,11 +307,6 @@ void ColorFieldControl::UpdateBitmap()
sal_uInt8* pRGB_Vert = maRGB_Vert.data();
sal_uInt16* pPercent_Vert = maPercent_Vert.data();
- Color aBitmapColor(maColor);
-
- sal_uInt16 nHue, nSat, nBri;
- maColor.RGBtoHSB(nHue, nSat, nBri);
-
// this has been unlooped for performance reason, please do not merge back!
sal_uInt16 y = nHeight,x;
@@ -321,40 +316,43 @@ void ColorFieldControl::UpdateBitmap()
case HUE:
while (y--)
{
- nBri = pPercent_Vert[y];
+ sal_uInt16 nBri = pPercent_Vert[y];
x = nWidth;
while (x--)
{
- nSat = pPercent_Horiz[x];
- mxBitmap->DrawPixel(Point(x,y), Color::HSBtoRGB(nHue, nSat, nBri));
+ sal_uInt16 nSat = pPercent_Horiz[x];
+ mxBitmap->DrawPixel(Point(x,y), Color::HSBtoRGB(mnBaseValue, nSat, nBri));
}
}
break;
case SATURATION:
while (y--)
{
- nBri = pPercent_Vert[y];
+ sal_uInt16 nBri = pPercent_Vert[y];
x = nWidth;
while (x--)
{
- nHue = pGrad_Horiz[x];
- mxBitmap->DrawPixel(Point(x,y), Color::HSBtoRGB(nHue, nSat, nBri));
+ sal_uInt16 nHue = pGrad_Horiz[x];
+ mxBitmap->DrawPixel(Point(x,y), Color::HSBtoRGB(nHue, mnBaseValue, nBri));
}
}
break;
case BRIGHTNESS:
while (y--)
{
- nSat = pPercent_Vert[y];
+ sal_uInt16 nSat = pPercent_Vert[y];
x = nWidth;
while (x--)
{
- nHue = pGrad_Horiz[x];
- mxBitmap->DrawPixel(Point(x,y), Color::HSBtoRGB(nHue, nSat, nBri));
+ sal_uInt16 nHue = pGrad_Horiz[x];
+ mxBitmap->DrawPixel(Point(x,y), Color::HSBtoRGB(nHue, nSat, mnBaseValue));
}
}
break;
case RED:
+ {
+ Color aBitmapColor;
+ aBitmapColor.SetRed(mnBaseValue);
while (y--)
{
aBitmapColor.SetGreen(pRGB_Vert[y]);
@@ -366,7 +364,11 @@ void ColorFieldControl::UpdateBitmap()
}
}
break;
+ }
case GREEN:
+ {
+ Color aBitmapColor;
+ aBitmapColor.SetGreen(mnBaseValue);
while (y--)
{
aBitmapColor.SetRed(pRGB_Vert[y]);
@@ -378,7 +380,11 @@ void ColorFieldControl::UpdateBitmap()
}
}
break;
+ }
case BLUE:
+ {
+ Color aBitmapColor;
+ aBitmapColor.SetBlue(mnBaseValue);
while (y--)
{
aBitmapColor.SetGreen(pRGB_Vert[y]);
@@ -390,9 +396,12 @@ void ColorFieldControl::UpdateBitmap()
}
}
break;
+ }
}
}
+constexpr int nCenterOffset = 5;
+
void ColorFieldControl::ShowPosition( const Point& rPos, bool bUpdate )
{
if (!mxBitmap)
@@ -419,8 +428,8 @@ void ColorFieldControl::ShowPosition( const Point& rPos, bool bUpdate )
nY = aSize.Height() - 1;
Point aPos = maPosition;
- maPosition.setX( nX - 5 );
- maPosition.setY( nY - 5 );
+ maPosition.setX( nX - nCenterOffset );
+ maPosition.setY( nY - nCenterOffset );
Invalidate(tools::Rectangle(aPos, Size(11, 11)));
Invalidate(tools::Rectangle(maPosition, Size(11, 11)));
@@ -428,8 +437,6 @@ void ColorFieldControl::ShowPosition( const Point& rPos, bool bUpdate )
{
mdX = double(nX) / double(aSize.Width() - 1.0);
mdY = double(aSize.Height() - 1.0 - nY) / double(aSize.Height() - 1.0);
-
- maColor = mxBitmap->GetPixel(Point(nX, nY));
}
}
@@ -464,20 +471,21 @@ void ColorFieldControl::Paint(vcl::RenderContext& rRenderContext, const tools::R
if (!mxBitmap)
UpdateBitmap();
- if (mxBitmap)
- {
- Size aSize(GetOutputSizePixel());
- rRenderContext.DrawOutDev(Point(0, 0), aSize, Point(0, 0), aSize, *mxBitmap);
- }
+ if (!mxBitmap)
+ return;
+
+ Size aSize(GetOutputSizePixel());
+ rRenderContext.DrawOutDev(Point(0, 0), aSize, Point(0, 0), aSize, *mxBitmap);
// draw circle around current color
- if (maColor.IsDark())
- rRenderContext.SetLineColor( COL_WHITE );
+ Point aPos(maPosition.X() + nCenterOffset, maPosition.Y() + nCenterOffset);
+ Color aColor = mxBitmap->GetPixel(aPos);
+ if (aColor.IsDark())
+ rRenderContext.SetLineColor(COL_WHITE);
else
- rRenderContext.SetLineColor( COL_BLACK );
+ rRenderContext.SetLineColor(COL_BLACK);
rRenderContext.SetFillColor();
-
rRenderContext.DrawEllipse(::tools::Rectangle(maPosition, Size(11, 11)));
}
@@ -493,13 +501,13 @@ void ColorFieldControl::Modify()
maModifyHdl.Call( *this );
}
-void ColorFieldControl::SetValues( Color aColor, ColorMode eMode, double x, double y )
+void ColorFieldControl::SetValues(sal_uInt16 nBaseValue, ColorMode eMode, double x, double y)
{
- bool bUpdateBitmap = (maColor!= aColor) || (meMode != eMode);
- if( !(bUpdateBitmap || (mdX != x) || (mdY != y)) )
+ bool bUpdateBitmap = (mnBaseValue != nBaseValue) || (meMode != eMode);
+ if (!bUpdateBitmap && mdX == x && mdY == y)
return;
- maColor = aColor;
+ mnBaseValue = nBaseValue;
meMode = eMode;
mdX = x;
mdY = y;
@@ -794,30 +802,30 @@ private:
}
ColorPickerDialog::ColorPickerDialog(weld::Window* pParent, Color nColor, sal_Int16 nDialogMode)
- : SfxDialogController(pParent, "cui/ui/colorpickerdialog.ui", "ColorPicker")
- , m_xColorField(new weld::CustomWeld(*m_xBuilder, "colorField", m_aColorField))
- , m_xColorSlider(new weld::CustomWeld(*m_xBuilder, "colorSlider", m_aColorSlider))
- , m_xColorPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aColorPreview))
- , m_xColorPrevious(new weld::CustomWeld(*m_xBuilder, "previous", m_aColorPrevious))
- , m_xFISliderLeft(m_xBuilder->weld_widget("leftImage"))
- , m_xFISliderRight(m_xBuilder->weld_widget("rightImage"))
- , m_xRBRed(m_xBuilder->weld_radio_button("redRadiobutton"))
- , m_xRBGreen(m_xBuilder->weld_radio_button("greenRadiobutton"))
- , m_xRBBlue(m_xBuilder->weld_radio_button("blueRadiobutton"))
- , m_xRBHue(m_xBuilder->weld_radio_button("hueRadiobutton"))
- , m_xRBSaturation(m_xBuilder->weld_radio_button("satRadiobutton"))
- , m_xRBBrightness(m_xBuilder->weld_radio_button("brightRadiobutton"))
- , m_xMFRed(m_xBuilder->weld_spin_button("redSpinbutton"))
- , m_xMFGreen(m_xBuilder->weld_spin_button("greenSpinbutton"))
- , m_xMFBlue(m_xBuilder->weld_spin_button("blueSpinbutton"))
- , m_xEDHex(new weld::HexColorControl(m_xBuilder->weld_entry("hexEntry")))
- , m_xMFHue(m_xBuilder->weld_metric_spin_button("hueSpinbutton", FieldUnit::DEGREE))
- , m_xMFSaturation(m_xBuilder->weld_metric_spin_button("satSpinbutton", FieldUnit::PERCENT))
- , m_xMFBrightness(m_xBuilder->weld_metric_spin_button("brightSpinbutton", FieldUnit::PERCENT))
- , m_xMFCyan(m_xBuilder->weld_metric_spin_button("cyanSpinbutton", FieldUnit::PERCENT))
- , m_xMFMagenta(m_xBuilder->weld_metric_spin_button("magSpinbutton", FieldUnit::PERCENT))
- , m_xMFYellow(m_xBuilder->weld_metric_spin_button("yellowSpinbutton", FieldUnit::PERCENT))
- , m_xMFKey(m_xBuilder->weld_metric_spin_button("keySpinbutton", FieldUnit::PERCENT))
+ : SfxDialogController(pParent, u"cui/ui/colorpickerdialog.ui"_ustr, u"ColorPicker"_ustr)
+ , m_xColorField(new weld::CustomWeld(*m_xBuilder, u"colorField"_ustr, m_aColorField))
+ , m_xColorSlider(new weld::CustomWeld(*m_xBuilder, u"colorSlider"_ustr, m_aColorSlider))
+ , m_xColorPreview(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aColorPreview))
+ , m_xColorPrevious(new weld::CustomWeld(*m_xBuilder, u"previous"_ustr, m_aColorPrevious))
+ , m_xFISliderLeft(m_xBuilder->weld_widget(u"leftImage"_ustr))
+ , m_xFISliderRight(m_xBuilder->weld_widget(u"rightImage"_ustr))
+ , m_xRBRed(m_xBuilder->weld_radio_button(u"redRadiobutton"_ustr))
+ , m_xRBGreen(m_xBuilder->weld_radio_button(u"greenRadiobutton"_ustr))
+ , m_xRBBlue(m_xBuilder->weld_radio_button(u"blueRadiobutton"_ustr))
+ , m_xRBHue(m_xBuilder->weld_radio_button(u"hueRadiobutton"_ustr))
+ , m_xRBSaturation(m_xBuilder->weld_radio_button(u"satRadiobutton"_ustr))
+ , m_xRBBrightness(m_xBuilder->weld_radio_button(u"brightRadiobutton"_ustr))
+ , m_xMFRed(m_xBuilder->weld_spin_button(u"redSpinbutton"_ustr))
+ , m_xMFGreen(m_xBuilder->weld_spin_button(u"greenSpinbutton"_ustr))
+ , m_xMFBlue(m_xBuilder->weld_spin_button(u"blueSpinbutton"_ustr))
+ , m_xEDHex(new weld::HexColorControl(m_xBuilder->weld_entry(u"hexEntry"_ustr)))
+ , m_xMFHue(m_xBuilder->weld_metric_spin_button(u"hueSpinbutton"_ustr, FieldUnit::DEGREE))
+ , m_xMFSaturation(m_xBuilder->weld_metric_spin_button(u"satSpinbutton"_ustr, FieldUnit::PERCENT))
+ , m_xMFBrightness(m_xBuilder->weld_metric_spin_button(u"brightSpinbutton"_ustr, FieldUnit::PERCENT))
+ , m_xMFCyan(m_xBuilder->weld_metric_spin_button(u"cyanSpinbutton"_ustr, FieldUnit::PERCENT))
+ , m_xMFMagenta(m_xBuilder->weld_metric_spin_button(u"magSpinbutton"_ustr, FieldUnit::PERCENT))
+ , m_xMFYellow(m_xBuilder->weld_metric_spin_button(u"yellowSpinbutton"_ustr, FieldUnit::PERCENT))
+ , m_xMFKey(m_xBuilder->weld_metric_spin_button(u"keySpinbutton"_ustr, FieldUnit::PERCENT))
, meMode( DefaultMode )
{
m_aColorField.SetModifyHdl( LINK( this, ColorPickerDialog, ColorFieldControlModifydl ) );
@@ -887,7 +895,9 @@ void ColorPickerDialog::update_color( UpdateFlags n )
sal_uInt8 nGreen = toInt(mdGreen,255.0);
sal_uInt8 nBlue = toInt(mdBlue,255.0);
- Color aColor(nRed, nGreen, nBlue);
+ sal_uInt16 nHue = toInt(mdHue, 1.0);
+ sal_uInt16 nSat = toInt(mdSat, 100.0);
+ sal_uInt16 nBri = toInt(mdBri, 100.0);
if (n & UpdateFlags::RGB) // update RGB
{
@@ -906,9 +916,9 @@ void ColorPickerDialog::update_color( UpdateFlags n )
if (n & UpdateFlags::HSB ) // update HSB
{
- m_xMFHue->set_value(toInt(mdHue, 1.0), FieldUnit::DEGREE);
- m_xMFSaturation->set_value(toInt( mdSat, 100.0), FieldUnit::PERCENT);
- m_xMFBrightness->set_value(toInt( mdBri, 100.0), FieldUnit::PERCENT);
+ m_xMFHue->set_value(nHue, FieldUnit::DEGREE);
+ m_xMFSaturation->set_value(nSat, FieldUnit::PERCENT);
+ m_xMFBrightness->set_value(nBri, FieldUnit::PERCENT);
}
if (n & UpdateFlags::ColorChooser ) // update Color Chooser 1
@@ -916,26 +926,28 @@ void ColorPickerDialog::update_color( UpdateFlags n )
switch( meMode )
{
case HUE:
- m_aColorField.SetValues(aColor, meMode, mdSat, mdBri);
+ m_aColorField.SetValues(nHue, meMode, mdSat, mdBri);
break;
case SATURATION:
- m_aColorField.SetValues(aColor, meMode, mdHue / 360.0, mdBri);
+ m_aColorField.SetValues(nSat, meMode, mdHue / 360.0, mdBri);
break;
case BRIGHTNESS:
- m_aColorField.SetValues(aColor, meMode, mdHue / 360.0, mdSat);
+ m_aColorField.SetValues(nBri, meMode, mdHue / 360.0, mdSat);
break;
case RED:
- m_aColorField.SetValues(aColor, meMode, mdBlue, mdGreen);
+ m_aColorField.SetValues(nRed, meMode, mdBlue, mdGreen);
break;
case GREEN:
- m_aColorField.SetValues(aColor, meMode, mdBlue, mdRed);
+ m_aColorField.SetValues(nGreen, meMode, mdBlue, mdRed);
break;
case BLUE:
- m_aColorField.SetValues(aColor, meMode, mdRed, mdGreen);
+ m_aColorField.SetValues(nBlue, meMode, mdRed, mdGreen);
break;
}
}
+ Color aColor(nRed, nGreen, nBlue);
+
if (n & UpdateFlags::ColorSlider) // update Color Chooser 2
{
switch (meMode)
@@ -1209,12 +1221,11 @@ void ColorPickerDialog::setColorComponent( ColorComponent nComp, double dValue )
}
}
-typedef ::cppu::WeakComponentImplHelper< XServiceInfo, XExecutableDialog, XAsynchronousExecutableDialog, XInitialization, XPropertyAccess > ColorPickerBase;
+typedef ::comphelper::WeakComponentImplHelper< XServiceInfo, XExecutableDialog, XAsynchronousExecutableDialog, XInitialization, XPropertyAccess > ColorPickerBase;
namespace {
-class ColorPicker : protected ::cppu::BaseMutex, // Struct for right initialization of mutex member! Must be first of baseclasses.
- public ColorPickerBase
+class ColorPicker : public ColorPickerBase
{
public:
explicit ColorPicker();
@@ -1255,12 +1266,11 @@ com_sun_star_cui_ColorPicker_get_implementation(
}
-constexpr OUStringLiteral gsColorKey( u"Color" );
+constexpr OUString gsColorKey( u"Color"_ustr );
constexpr OUStringLiteral gsModeKey( u"Mode" );
ColorPicker::ColorPicker()
- : ColorPickerBase( m_aMutex )
- , mnColor( 0 )
+ : mnColor( 0 )
, mnMode( 0 )
{
}
@@ -1277,7 +1287,7 @@ void SAL_CALL ColorPicker::initialize( const Sequence< Any >& aArguments )
// XInitialization
OUString SAL_CALL ColorPicker::getImplementationName( )
{
- return "com.sun.star.cui.ColorPicker";
+ return u"com.sun.star.cui.ColorPicker"_ustr;
}
sal_Bool SAL_CALL ColorPicker::supportsService( const OUString& sServiceName )
@@ -1287,8 +1297,8 @@ sal_Bool SAL_CALL ColorPicker::supportsService( const OUString& sServiceName )
Sequence< OUString > SAL_CALL ColorPicker::getSupportedServiceNames( )
{
- return { "com.sun.star.ui.dialogs.ColorPicker",
- "com.sun.star.ui.dialogs.AsynchronousColorPicker" };
+ return { u"com.sun.star.ui.dialogs.ColorPicker"_ustr,
+ u"com.sun.star.ui.dialogs.AsynchronousColorPicker"_ustr };
}
// XPropertyAccess
@@ -1335,12 +1345,13 @@ void SAL_CALL ColorPicker::setDialogTitle( const OUString& )
void SAL_CALL ColorPicker::startExecuteModal( const css::uno::Reference< css::ui::dialogs::XDialogClosedListener >& xListener )
{
std::shared_ptr<ColorPickerDialog> xDlg = std::make_shared<ColorPickerDialog>(Application::GetFrameWeld(mxParent), mnColor, mnMode);
- weld::DialogController::runAsync(xDlg, [this, xDlg, xListener] (sal_Int32 nResult) {
+ rtl::Reference<ColorPicker> xThis(this);
+ weld::DialogController::runAsync(xDlg, [xThis=std::move(xThis), xDlg, xListener] (sal_Int32 nResult) {
if (nResult)
- mnColor = xDlg->GetColor();
+ xThis->mnColor = xDlg->GetColor();
sal_Int16 nRet = static_cast<sal_Int16>(nResult);
- css::ui::dialogs::DialogClosedEvent aEvent( *this, nRet );
+ css::ui::dialogs::DialogClosedEvent aEvent( *xThis, nRet );
xListener->dialogClosed( aEvent );
});
}
diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx
deleted file mode 100644
index b5a6dc106aae..000000000000
--- a/cui/source/dialogs/cuicharmap.cxx
+++ /dev/null
@@ -1,1277 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice 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/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <sal/config.h>
-
-#include <stdio.h>
-
-#include <vcl/svapp.hxx>
-#include <svl/eitem.hxx>
-#include <svl/intitem.hxx>
-#include <svl/itempool.hxx>
-
-#include <rtl/textenc.h>
-#include <svx/ucsubset.hxx>
-#include <vcl/settings.hxx>
-#include <vcl/fontcharmap.hxx>
-#include <vcl/virdev.hxx>
-#include <svl/stritem.hxx>
-#include <o3tl/temporary.hxx>
-#include <officecfg/Office/Common.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <comphelper/processfactory.hxx>
-#include <comphelper/propertyvalue.hxx>
-#include <comphelper/dispatchcommand.hxx>
-
-#include <dialmgr.hxx>
-#include <cui/cuicharmap.hxx>
-#include <sfx2/app.hxx>
-#include <svx/svxids.hrc>
-#include <editeng/editids.hrc>
-#include <editeng/fontitem.hxx>
-#include <strings.hrc>
-#include <unicode/uchar.h>
-#include <unicode/utypes.h>
-
-using namespace css;
-
-SvxCharacterMap::SvxCharacterMap(weld::Widget* pParent, const SfxItemSet* pSet,
- const css::uno::Reference<css::frame::XFrame>& rFrame)
- : SfxDialogController(pParent, "cui/ui/specialcharacters.ui", "SpecialCharactersDialog")
- , m_xVirDev(VclPtr<VirtualDevice>::Create())
- , isSearchMode(true)
- , m_xFrame(rFrame)
- , mxContext(comphelper::getProcessComponentContext())
- , m_aRecentCharView{SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev)}
- , m_aFavCharView{SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev),
- SvxCharView(m_xVirDev)}
- , m_aShowChar(m_xVirDev)
- , m_xOKBtn(m_xFrame.is() ? m_xBuilder->weld_button("insert") : m_xBuilder->weld_button("ok"))
- , m_xFontText(m_xBuilder->weld_label("fontft"))
- , m_xFontLB(m_xBuilder->weld_combo_box("fontlb"))
- , m_xSubsetText(m_xBuilder->weld_label("subsetft"))
- , m_xSubsetLB(m_xBuilder->weld_combo_box("subsetlb"))
- , m_xSearchText(m_xBuilder->weld_entry("search"))
- , m_xHexCodeText(m_xBuilder->weld_entry("hexvalue"))
- , m_xDecimalCodeText(m_xBuilder->weld_entry("decimalvalue"))
- , m_xFavouritesBtn(m_xBuilder->weld_button("favbtn"))
- , m_xCharName(m_xBuilder->weld_label("charname"))
- , m_xRecentGrid(m_xBuilder->weld_widget("viewgrid"))
- , m_xFavGrid(m_xBuilder->weld_widget("favgrid"))
- , m_xShowChar(new weld::CustomWeld(*m_xBuilder, "showchar", m_aShowChar))
- , m_xRecentCharView{std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar1", m_aRecentCharView[0]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar2", m_aRecentCharView[1]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar3", m_aRecentCharView[2]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar4", m_aRecentCharView[3]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar5", m_aRecentCharView[4]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar6", m_aRecentCharView[5]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar7", m_aRecentCharView[6]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar8", m_aRecentCharView[7]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar9", m_aRecentCharView[8]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar10", m_aRecentCharView[9]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar11", m_aRecentCharView[10]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar12", m_aRecentCharView[11]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar13", m_aRecentCharView[12]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar14", m_aRecentCharView[13]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar15", m_aRecentCharView[14]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "viewchar16", m_aRecentCharView[15])}
- , m_xFavCharView{std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar1", m_aFavCharView[0]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar2", m_aFavCharView[1]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar3", m_aFavCharView[2]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar4", m_aFavCharView[3]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar5", m_aFavCharView[4]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar6", m_aFavCharView[5]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar7", m_aFavCharView[6]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar8", m_aFavCharView[7]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar9", m_aFavCharView[8]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar10", m_aFavCharView[9]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar11", m_aFavCharView[10]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar12", m_aFavCharView[11]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar13", m_aFavCharView[12]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar14", m_aFavCharView[13]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar15", m_aFavCharView[14]),
- std::make_unique<weld::CustomWeld>(*m_xBuilder, "favchar16", m_aFavCharView[15])}
- , m_xShowSet(new SvxShowCharSet(m_xBuilder->weld_scrolled_window("showscroll", true), m_xVirDev))
- , m_xShowSetArea(new weld::CustomWeld(*m_xBuilder, "showcharset", *m_xShowSet))
- , m_xSearchSet(new SvxSearchCharSet(m_xBuilder->weld_scrolled_window("searchscroll", true), m_xVirDev))
- , m_xSearchSetArea(new weld::CustomWeld(*m_xBuilder, "searchcharset", *m_xSearchSet))
-{
- m_aShowChar.SetCentered(true);
- m_xFontLB->make_sorted();
- //lock the size request of this widget to the width of all possible entries
- fillAllSubsets(*m_xSubsetLB);
- m_xSubsetLB->set_size_request(m_xSubsetLB->get_preferred_size().Width(), -1);
- m_xCharName->set_size_request(m_aShowChar.get_preferred_size().Width(), m_xCharName->get_text_height() * 4);
- //lock the size request of this widget to the width of the original .ui string
- m_xHexCodeText->set_size_request(m_xHexCodeText->get_preferred_size().Width(), -1);
- //so things don't jump around if all the children are hidden
- m_xRecentGrid->set_size_request(-1, m_aRecentCharView[0].get_preferred_size().Height());
- m_xFavGrid->set_size_request(-1, m_aFavCharView[0].get_preferred_size().Height());
-
- init();
-
- const SfxInt32Item* pCharItem = SfxItemSet::GetItem<SfxInt32Item>(pSet, SID_ATTR_CHAR, false);
- if ( pCharItem )
- SetChar( pCharItem->GetValue() );
-
- const SfxBoolItem* pDisableItem = SfxItemSet::GetItem<SfxBoolItem>(pSet, FN_PARAM_2, false);
- if ( pDisableItem && pDisableItem->GetValue() )
- DisableFontSelection();
-
- const SvxFontItem* pFontItem = SfxItemSet::GetItem<SvxFontItem>(pSet, SID_ATTR_CHAR_FONT, false);
- const SfxStringItem* pFontNameItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_FONT_NAME, false);
- if ( pFontItem )
- {
- vcl::Font aTmpFont( pFontItem->GetFamilyName(), pFontItem->GetStyleName(), GetCharFont().GetFontSize() );
- aTmpFont.SetCharSet( pFontItem->GetCharSet() );
- aTmpFont.SetPitch( pFontItem->GetPitch() );
- SetCharFont( aTmpFont );
- }
- else if ( pFontNameItem )
- {
- vcl::Font aTmpFont( GetCharFont() );
- aTmpFont.SetFamilyName( pFontNameItem->GetValue() );
- SetCharFont( aTmpFont );
- }
-
- m_xOutputSet.reset(new SfxAllItemSet(pSet ? *pSet->GetPool() : SfxGetpApp()->GetPool()));
- m_xShowSet->Show();
- m_xSearchSet->Hide();
-}
-
-short SvxCharacterMap::run()
-{
- if( SvxShowCharSet::getSelectedChar() == ' ')
- {
- m_xOKBtn->set_sensitive(false);
- setFavButtonState(u"", u"");
- }
- else
- {
- sal_UCS4 cChar = m_xShowSet->GetSelectCharacter();
- // using the new UCS4 constructor
- OUString aOUStr( &cChar, 1 );
- m_aShowChar.SetText(aOUStr);
-
- setFavButtonState(aOUStr, m_aShowChar.GetFont().GetFamilyName());
- m_xOKBtn->set_sensitive(true);
- }
-
- return SfxDialogController::run();
-}
-
-void SvxCharacterMap::SetChar( sal_UCS4 c )
-{
- m_xShowSet->SelectCharacter( c );
- setFavButtonState(OUString(&c, 1), aFont.GetFamilyName());
-}
-
-sal_UCS4 SvxCharacterMap::GetChar() const
-{
- return m_aShowChar.GetText().iterateCodePoints(&o3tl::temporary(sal_Int32(0)));
-}
-
-void SvxCharacterMap::DisableFontSelection()
-{
- m_xFontText->set_sensitive(false);
- m_xFontLB->set_sensitive(false);
-}
-
-
-void SvxCharacterMap::getRecentCharacterList()
-{
- //retrieve recent character list
- const css::uno::Sequence< OUString > rRecentCharList( officecfg::Office::Common::RecentCharacters::RecentCharacterList::get() );
- for (OUString const & s : rRecentCharList)
- {
- maRecentCharList.push_back(s);
- }
-
- //retrieve recent character font list
- const css::uno::Sequence< OUString > rRecentCharFontList( officecfg::Office::Common::RecentCharacters::RecentCharacterFontList::get() );
- for (OUString const & s : rRecentCharFontList)
- {
- maRecentCharFontList.push_back(s);
- }
-
- // tdf#135997: make sure that the two lists are same length
- const auto nCommonLength = std::min(maRecentCharList.size(), maRecentCharFontList.size());
- maRecentCharList.resize(nCommonLength);
- maRecentCharFontList.resize(nCommonLength);
-}
-
-
-void SvxCharacterMap::getFavCharacterList()
-{
- maFavCharList.clear();
- maFavCharFontList.clear();
- //retrieve recent character list
- const css::uno::Sequence< OUString > rFavCharList( officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterList::get() );
- for (const OUString& s : rFavCharList)
- {
- maFavCharList.push_back(s);
- }
-
- //retrieve recent character font list
- const css::uno::Sequence< OUString > rFavCharFontList( officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterFontList::get() );
- for (const OUString& s : rFavCharFontList)
- {
- maFavCharFontList.push_back(s);
- }
-
- // tdf#135997: make sure that the two lists are same length
- const auto nCommonLength = std::min(maFavCharList.size(), maFavCharFontList.size());
- maFavCharList.resize(nCommonLength);
- maFavCharFontList.resize(nCommonLength);
-}
-
-static std::pair<std::deque<OUString>::const_iterator, std::deque<OUString>::const_iterator>
-findInPair(std::u16string_view str1, const std::deque<OUString>& rContainer1,
- std::u16string_view str2, const std::deque<OUString>& rContainer2)
-{
- assert(rContainer1.size() == rContainer2.size());
-
- if (auto it1 = std::find(rContainer1.begin(), rContainer1.end(), str1);
- it1 != rContainer1.end())
- {
- auto it2 = rContainer2.begin() + (it1 - rContainer1.begin());
- if (*it2 == str2)
- return { it1, it2 };
- }
- return { rContainer1.end(), rContainer2.end() };
-}
-
-std::pair<std::deque<OUString>::const_iterator, std::deque<OUString>::const_iterator>
-SvxCharacterMap::getRecentChar(std::u16string_view sTitle, std::u16string_view rFont) const
-{
- return findInPair(sTitle, maRecentCharList, rFont, maRecentCharFontList);
-}
-
-std::pair<std::deque<OUString>::const_iterator, std::deque<OUString>::const_iterator>
-SvxCharacterMap::getFavChar(std::u16string_view sTitle, std::u16string_view rFont) const
-{
- return findInPair(sTitle, maFavCharList, rFont, maFavCharFontList);
-}
-
-
-void SvxCharacterMap::updateRecentCharControl()
-{
- assert(maRecentCharList.size() == maRecentCharFontList.size());
-
- int i = 0;
- for ( std::deque< OUString >::iterator it = maRecentCharList.begin(), it2 = maRecentCharFontList.begin();
- it != maRecentCharList.end() && it2 != maRecentCharFontList.end();
- ++it, ++it2, i++)
- {
- m_aRecentCharView[i].SetText(*it);
- vcl::Font rFont = m_aRecentCharView[i].GetFont();
- rFont.SetFamilyName( *it2 );
- m_aRecentCharView[i].SetFont(rFont);
- m_aRecentCharView[i].Show();
- }
-
- for(; i < 16 ; i++)
- {
- m_aRecentCharView[i].SetText(OUString());
- m_aRecentCharView[i].Hide();
- }
-}
-
-void SvxCharacterMap::updateRecentCharacterList(const OUString& sTitle, const OUString& rFont)
-{
- // if recent char to be added is already in list, remove it
- if( const auto& [itChar, itChar2] = getRecentChar(sTitle, rFont);
- itChar != maRecentCharList.end() && itChar2 != maRecentCharFontList.end() )
- {
- maRecentCharList.erase( itChar );
- maRecentCharFontList.erase( itChar2);
- }
-
- if (maRecentCharList.size() == 16)
- {
- maRecentCharList.pop_back();
- maRecentCharFontList.pop_back();
- }
-
- maRecentCharList.push_front(sTitle);
- maRecentCharFontList.push_front(rFont);
-
- css::uno::Sequence< OUString > aRecentCharList(maRecentCharList.size());
- auto aRecentCharListRange = asNonConstRange(aRecentCharList);
- css::uno::Sequence< OUString > aRecentCharFontList(maRecentCharFontList.size());
- auto aRecentCharFontListRange = asNonConstRange(aRecentCharFontList);
-
- for (size_t i = 0; i < maRecentCharList.size(); ++i)
- {
- aRecentCharListRange[i] = maRecentCharList[i];
- aRecentCharFontListRange[i] = maRecentCharFontList[i];
- }
-
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(mxContext));
- officecfg::Office::Common::RecentCharacters::RecentCharacterList::set(aRecentCharList, batch);
- officecfg::Office::Common::RecentCharacters::RecentCharacterFontList::set(aRecentCharFontList, batch);
- batch->commit();
-
- updateRecentCharControl();
-}
-
-
-void SvxCharacterMap::updateFavCharacterList(const OUString& sTitle, const OUString& rFont)
-{
- // if Fav char to be added is already in list, remove it
- if( const auto& [itChar, itChar2] = getFavChar(sTitle, rFont);
- itChar != maFavCharList.end() && itChar2 != maFavCharFontList.end() )
- {
- maFavCharList.erase( itChar );
- maFavCharFontList.erase( itChar2);
- }
-
- if (maFavCharList.size() == 16)
- {
- maFavCharList.pop_back();
- maFavCharFontList.pop_back();
- }
-
- maFavCharList.push_back(sTitle);
- maFavCharFontList.push_back(rFont);
-
- css::uno::Sequence< OUString > aFavCharList(maFavCharList.size());
- auto aFavCharListRange = asNonConstRange(aFavCharList);
- css::uno::Sequence< OUString > aFavCharFontList(maFavCharFontList.size());
- auto aFavCharFontListRange = asNonConstRange(aFavCharFontList);
-
- for (size_t i = 0; i < maFavCharList.size(); ++i)
- {
- aFavCharListRange[i] = maFavCharList[i];
- aFavCharFontListRange[i] = maFavCharFontList[i];
- }
-
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(mxContext));
- officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterList::set(aFavCharList, batch);
- officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterFontList::set(aFavCharFontList, batch);
- batch->commit();
-}
-
-
-void SvxCharacterMap::updateFavCharControl()
-{
- assert(maFavCharList.size() == maFavCharFontList.size());
-
- int i = 0;
- for ( std::deque< OUString >::iterator it = maFavCharList.begin(), it2 = maFavCharFontList.begin();
- it != maFavCharList.end() && it2 != maFavCharFontList.end();
- ++it, ++it2, i++)
- {
- m_aFavCharView[i].SetText(*it);
- vcl::Font rFont = m_aFavCharView[i].GetFont();
- rFont.SetFamilyName( *it2 );
- m_aFavCharView[i].SetFont(rFont);
- m_aFavCharView[i].Show();
- }
-
- for(; i < 16 ; i++)
- {
- m_aFavCharView[i].SetText(OUString());
- m_aFavCharView[i].Hide();
- }
- m_xShowSet->getFavCharacterList();
- m_xSearchSet->getFavCharacterList();
-}
-
-void SvxCharacterMap::deleteFavCharacterFromList(std::u16string_view sTitle, std::u16string_view rFont)
-{
- // if Fav char is found, remove it
- if( const auto& [itChar, itChar2] = getFavChar(sTitle, rFont);
- itChar != maFavCharList.end() && itChar2 != maFavCharFontList.end() )
- {
- maFavCharList.erase( itChar );
- maFavCharFontList.erase( itChar2);
- }
-
- css::uno::Sequence< OUString > aFavCharList(maFavCharList.size());
- auto aFavCharListRange = asNonConstRange(aFavCharList);
- css::uno::Sequence< OUString > aFavCharFontList(maFavCharFontList.size());
- auto aFavCharFontListRange = asNonConstRange(aFavCharFontList);
-
- for (size_t i = 0; i < maFavCharList.size(); ++i)
- {
- aFavCharListRange[i] = maFavCharList[i];
- aFavCharFontListRange[i] = maFavCharFontList[i];
- }
-
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(mxContext));
- officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterList::set(aFavCharList, batch);
- officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterFontList::set(aFavCharFontList, batch);
- batch->commit();
-}
-
-void SvxCharacterMap::init()
-{
- aFont = m_xVirDev->GetFont();
- aFont.SetTransparent( true );
- aFont.SetFamily( FAMILY_DONTKNOW );
- aFont.SetPitch( PITCH_DONTKNOW );
- aFont.SetCharSet( RTL_TEXTENCODING_DONTKNOW );
-
- OUString aDefStr( aFont.GetFamilyName() );
- OUString aLastName;
- int nCount = m_xVirDev->GetFontFaceCollectionCount();
- std::vector<weld::ComboBoxEntry> aEntries;
- aEntries.reserve(nCount);
- for (int i = 0; i < nCount; ++i)
- {
- OUString aFontName( m_xVirDev->GetFontMetricFromCollection( i ).GetFamilyName() );
- if (aFontName != aLastName)
- {
- aLastName = aFontName;
- aEntries.emplace_back(aFontName, OUString::number(i));
- }
- }
- m_xFontLB->insert_vector(aEntries, true);
- // the font may not be in the list =>
- // try to find a font name token in list and select found font,
- // else select topmost entry
- bool bFound = (m_xFontLB->find_text(aDefStr) == -1);
- if (!bFound)
- {
- sal_Int32 nIndex = 0;
- do
- {
- OUString aToken = aDefStr.getToken(0, ';', nIndex);
- if (m_xFontLB->find_text(aToken) != -1)
- {
- aDefStr = aToken;
- bFound = true;
- break;
- }
- }
- while ( nIndex >= 0 );
- }
-
- if (bFound)
- m_xFontLB->set_active_text(aDefStr);
- else if (m_xFontLB->get_count() )
- m_xFontLB->set_active(0);
- FontSelectHdl(*m_xFontLB);
- if (m_xSubsetLB->get_count())
- m_xSubsetLB->set_active(0);
-
- m_xFontLB->connect_changed(LINK( this, SvxCharacterMap, FontSelectHdl));
- m_xSubsetLB->connect_changed(LINK( this, SvxCharacterMap, SubsetSelectHdl));
- m_xOKBtn->connect_clicked(LINK(this, SvxCharacterMap, InsertClickHdl));
- m_xOKBtn->show();
-
- m_xShowSet->SetDoubleClickHdl( LINK( this, SvxCharacterMap, CharDoubleClickHdl ) );
- m_xShowSet->SetSelectHdl( LINK( this, SvxCharacterMap, CharSelectHdl ) );
- m_xShowSet->SetHighlightHdl( LINK( this, SvxCharacterMap, CharHighlightHdl ) );
- m_xShowSet->SetPreSelectHdl( LINK( this, SvxCharacterMap, CharPreSelectHdl ) );
- m_xShowSet->SetFavClickHdl( LINK( this, SvxCharacterMap, FavClickHdl ) );
-
- m_xSearchSet->SetDoubleClickHdl( LINK( this, SvxCharacterMap, SearchCharDoubleClickHdl ) );
- m_xSearchSet->SetSelectHdl( LINK( this, SvxCharacterMap, SearchCharSelectHdl ) );
- m_xSearchSet->SetHighlightHdl( LINK( this, SvxCharacterMap, SearchCharHighlightHdl ) );
- m_xSearchSet->SetPreSelectHdl( LINK( this, SvxCharacterMap, SearchCharPreSelectHdl ) );
- m_xSearchSet->SetFavClickHdl( LINK( this, SvxCharacterMap, FavClickHdl ) );
-
- m_xDecimalCodeText->connect_changed( LINK( this, SvxCharacterMap, DecimalCodeChangeHdl ) );
- m_xHexCodeText->connect_changed( LINK( this, SvxCharacterMap, HexCodeChangeHdl ) );
- m_xFavouritesBtn->connect_clicked( LINK(this, SvxCharacterMap, FavSelectHdl));
-
- // tdf#117038 set the buttons width to its max possible width so it doesn't
- // make layout change when the label changes
- m_xFavouritesBtn->set_label(CuiResId(RID_SVXSTR_REMOVE_FAVORITES));
- auto nMaxWidth = m_xFavouritesBtn->get_preferred_size().Width();
- m_xFavouritesBtn->set_label(CuiResId(RID_SVXSTR_ADD_FAVORITES));
- nMaxWidth = std::max(nMaxWidth, m_xFavouritesBtn->get_preferred_size().Width());
- m_xFavouritesBtn->set_size_request(nMaxWidth, -1);
-
- if( SvxShowCharSet::getSelectedChar() == ' ')
- {
- m_xOKBtn->set_sensitive(false);
- }
- else
- {
- sal_UCS4 cChar = m_xShowSet->GetSelectCharacter();
- // using the new UCS4 constructor
- OUString aOUStr( &cChar, 1 );
- m_aShowChar.SetText(aOUStr);
-
- setFavButtonState(aOUStr, aDefStr);
- m_xOKBtn->set_sensitive(true);
- }
-
- getRecentCharacterList();
- updateRecentCharControl();
-
- getFavCharacterList();
- updateFavCharControl();
-
- bool bHasInsert = m_xFrame.is();
-
- for(int i = 0; i < 16; i++)
- {
- m_aRecentCharView[i].SetHasInsert(bHasInsert);
- m_aRecentCharView[i].setMouseClickHdl(LINK(this,SvxCharacterMap, CharClickHdl));
- m_aRecentCharView[i].setClearClickHdl(LINK(this,SvxCharacterMap, RecentClearClickHdl));
- m_aRecentCharView[i].setClearAllClickHdl(LINK(this,SvxCharacterMap, RecentClearAllClickHdl));
- m_aFavCharView[i].SetHasInsert(bHasInsert);
- m_aFavCharView[i].setMouseClickHdl(LINK(this,SvxCharacterMap, CharClickHdl));
- m_aFavCharView[i].setClearClickHdl(LINK(this,SvxCharacterMap, FavClearClickHdl));
- m_aFavCharView[i].setClearAllClickHdl(LINK(this,SvxCharacterMap, FavClearAllClickHdl));
- }
-
- setCharName(90);
-
- m_xSearchText->connect_focus_in(LINK( this, SvxCharacterMap, SearchFieldGetFocusHdl ));
- m_xSearchText->connect_changed(LINK(this, SvxCharacterMap, SearchUpdateHdl));
-}
-
-bool SvxCharacterMap::isFavChar(std::u16string_view sTitle, std::u16string_view rFont)
-{
- const auto& [itChar, itFont] = getFavChar(sTitle, rFont);
- return itChar != maFavCharList.end() && itFont != maFavCharFontList.end();
-}
-
-
-void SvxCharacterMap::setFavButtonState(std::u16string_view sTitle, std::u16string_view rFont)
-{
- if(sTitle.empty() || rFont.empty())
- {
- m_xFavouritesBtn->set_sensitive(false);
- return;
- }
- else
- m_xFavouritesBtn->set_sensitive(true);
-
- if (isFavChar(sTitle, rFont))
- {
- m_xFavouritesBtn->set_label(CuiResId(RID_SVXSTR_REMOVE_FAVORITES));
- }
- else
- {
- if(maFavCharList.size() == 16)
- {
- m_xFavouritesBtn->set_sensitive(false);
- }
-
- m_xFavouritesBtn->set_label(CuiResId(RID_SVXSTR_ADD_FAVORITES));
- }
-}
-
-
-void SvxCharacterMap::SetCharFont( const vcl::Font& rFont )
-{
- // first get the underlying info in order to get font names
- // like "Times New Roman;Times" resolved
- vcl::Font aTmp(m_xVirDev->GetFontMetric(rFont));
-
- if (aTmp.GetFamilyName() == "StarSymbol" && m_xFontLB->find_text(aTmp.GetFamilyName()) == -1)
- {
- //if for some reason, like font in an old document, StarSymbol is requested and it's not available, then
- //try OpenSymbol instead
- aTmp.SetFamilyName("OpenSymbol");
- }
-
- if (m_xFontLB->find_text(aTmp.GetFamilyName()) == -1)
- return;
-
- m_xFontLB->set_active_text(aTmp.GetFamilyName());
- aFont = aTmp;
- FontSelectHdl(*m_xFontLB);
- if (m_xSubsetLB->get_count())
- m_xSubsetLB->set_active(0);
-}
-
-void SvxCharacterMap::fillAllSubsets(weld::ComboBox& rListBox)
-{
- SubsetMap aAll(nullptr);
- std::vector<weld::ComboBoxEntry> aEntries;
- for (auto & subset : aAll.GetSubsetMap())
- aEntries.emplace_back(subset.GetName());
- rListBox.insert_vector(aEntries, true);
-}
-
-void SvxCharacterMap::insertCharToDoc(const OUString& sGlyph)
-{
- if(sGlyph.isEmpty())
- return;
-
- if (m_xFrame.is()) {
- uno::Sequence<beans::PropertyValue> aArgs{
- comphelper::makePropertyValue("Symbols", sGlyph),
- comphelper::makePropertyValue("FontName", aFont.GetFamilyName())
- };
- comphelper::dispatchCommand(".uno:InsertSymbol", m_xFrame, aArgs);
-
- updateRecentCharacterList(sGlyph, aFont.GetFamilyName());
-
- } else {
- sal_UCS4 cChar = sGlyph.iterateCodePoints(&o3tl::temporary(sal_Int32(0)));
- const SfxItemPool* pPool = m_xOutputSet->GetPool();
- m_xOutputSet->Put( SfxStringItem( pPool->GetWhich(SID_CHARMAP), sGlyph ) );
- m_xOutputSet->Put( SvxFontItem( aFont.GetFamilyType(), aFont.GetFamilyName(),
- aFont.GetStyleName(), aFont.GetPitch(), aFont.GetCharSet(), pPool->GetWhich(SID_ATTR_CHAR_FONT) ) );
- m_xOutputSet->Put( SfxStringItem( pPool->GetWhich(SID_FONT_NAME), aFont.GetFamilyName() ) );
- m_xOutputSet->Put( SfxInt32Item( pPool->GetWhich(SID_ATTR_CHAR), cChar ) );
- }
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, FontSelectHdl, weld::ComboBox&, void)
-{
- const sal_uInt32 nFont = m_xFontLB->get_active_id().toUInt32();
- aFont = m_xVirDev->GetFontMetricFromCollection(nFont);
- aFont.SetWeight( WEIGHT_DONTKNOW );
- aFont.SetItalic( ITALIC_NONE );
- aFont.SetWidthType( WIDTH_DONTKNOW );
- aFont.SetPitch( PITCH_DONTKNOW );
- aFont.SetFamily( FAMILY_DONTKNOW );
-
- // notify children using this font
- m_xShowSet->SetFont( aFont );
- m_xSearchSet->SetFont( aFont );
- m_aShowChar.SetFont( aFont );
-
- // setup unicode subset listbar with font specific subsets,
- // hide unicode subset listbar for symbol fonts
- // TODO: get info from the Font once it provides it
- pSubsetMap.reset();
- m_xSubsetLB->clear();
-
- bool bNeedSubset = (aFont.GetCharSet() != RTL_TEXTENCODING_SYMBOL);
- if (bNeedSubset)
- {
- FontCharMapRef xFontCharMap = m_xShowSet->GetFontCharMap();
- pSubsetMap.reset(new SubsetMap( xFontCharMap ));
-
- // update subset listbox for new font's unicode subsets
- for (auto const& subset : pSubsetMap->GetSubsetMap())
- {
- m_xSubsetLB->append(OUString::number(reinterpret_cast<sal_uInt64>(&subset)), subset.GetName());
- // NOTE: subset must live at least as long as the selected font
- }
-
- if (m_xSubsetLB->get_count() <= 1)
- bNeedSubset = false;
- }
-
- m_xSubsetText->set_sensitive(bNeedSubset);
- m_xSubsetLB->set_sensitive(bNeedSubset);
-
- if (isSearchMode)
- {
- // tdf#137294 do this after modifying m_xSubsetLB sensitivity to
- // restore insensitive for the search case
- SearchUpdateHdl(*m_xSearchText);
- SearchCharHighlightHdl(m_xSearchSet.get());
- }
-
- // tdf#118304 reselect current glyph to see if its still there in new font
- selectCharByCode(Radix::hexadecimal);
-}
-
-void SvxCharacterMap::toggleSearchView(bool state)
-{
- isSearchMode = state;
- m_xHexCodeText->set_editable(!state);
- m_xDecimalCodeText->set_editable(!state);
- m_xSubsetLB->set_sensitive(!state);
-
- if(state)
- {
- m_xSearchSet->Show();
- m_xShowSet->Hide();
- }
- else
- {
- m_xSearchSet->Hide();
- m_xShowSet->Show();
- }
-}
-
-void SvxCharacterMap::setCharName(sal_UCS4 nDecimalValue)
-{
- /* get the character name */
- UErrorCode errorCode = U_ZERO_ERROR;
- // icu has a private uprv_getMaxCharNameLength function which returns the max possible
- // length of this property. Unicode 3.2 max char name length was 83
- char buffer[100];
- u_charName(nDecimalValue, U_UNICODE_CHAR_NAME, buffer, sizeof(buffer), &errorCode);
- if (U_SUCCESS(errorCode))
- m_xCharName->set_label(OUString::createFromAscii(buffer));
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, SubsetSelectHdl, weld::ComboBox&, void)
-{
- const sal_Int32 nPos = m_xSubsetLB->get_active();
- const Subset* pSubset = reinterpret_cast<const Subset*>(m_xSubsetLB->get_active_id().toUInt64());
-
- if( pSubset && !isSearchMode)
- {
- sal_UCS4 cFirst = pSubset->GetRangeMin();
- m_xShowSet->SelectCharacter( cFirst );
-
- setFavButtonState(OUString(&cFirst, 1), aFont.GetFamilyName());
- m_xSubsetLB->set_active(nPos);
- }
- else if( pSubset && isSearchMode)
- {
- m_xSearchSet->SelectCharacter( pSubset );
-
- const Subset* curSubset = nullptr;
- if( pSubsetMap )
- curSubset = pSubsetMap->GetSubsetByUnicode( m_xSearchSet->GetSelectCharacter() );
- if( curSubset )
- m_xSubsetLB->set_active_text(curSubset->GetName());
- else
- m_xSubsetLB->set_active(-1);
-
- sal_UCS4 sChar = m_xSearchSet->GetSelectCharacter();
- setFavButtonState(OUString(&sChar, 1), aFont.GetFamilyName());
- }
-}
-
-IMPL_LINK(SvxCharacterMap, RecentClearClickHdl, SvxCharView*, rView, void)
-{
- const OUString& sTitle = rView->GetText();
- OUString sFont = rView->GetFont().GetFamilyName();
-
- // if recent char to be added is already in list, remove it
- if( const auto& [itChar, itChar2] = getRecentChar(sTitle, sFont);
- itChar != maRecentCharList.end() && itChar2 != maRecentCharFontList.end() )
- {
- maRecentCharList.erase( itChar );
- maRecentCharFontList.erase( itChar2);
- }
-
- css::uno::Sequence< OUString > aRecentCharList(maRecentCharList.size());
- auto aRecentCharListRange = asNonConstRange(aRecentCharList);
- css::uno::Sequence< OUString > aRecentCharFontList(maRecentCharFontList.size());
- auto aRecentCharFontListRange = asNonConstRange(aRecentCharFontList);
-
- for (size_t i = 0; i < maRecentCharList.size(); ++i)
- {
- aRecentCharListRange[i] = maRecentCharList[i];
- aRecentCharFontListRange[i] = maRecentCharFontList[i];
- }
-
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(mxContext));
- officecfg::Office::Common::RecentCharacters::RecentCharacterList::set(aRecentCharList, batch);
- officecfg::Office::Common::RecentCharacters::RecentCharacterFontList::set(aRecentCharFontList, batch);
- batch->commit();
-
- updateRecentCharControl();
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, RecentClearAllClickHdl, SvxCharView*, void)
-{
- css::uno::Sequence< OUString > aRecentCharList(0);
- css::uno::Sequence< OUString > aRecentCharFontList(0);
-
- maRecentCharList.clear();
- maRecentCharFontList.clear();
-
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(mxContext));
- officecfg::Office::Common::RecentCharacters::RecentCharacterList::set(aRecentCharList, batch);
- officecfg::Office::Common::RecentCharacters::RecentCharacterFontList::set(aRecentCharFontList, batch);
- batch->commit();
-
- updateRecentCharControl();
-}
-
-IMPL_LINK(SvxCharacterMap, FavClearClickHdl, SvxCharView*, rView, void)
-{
- deleteFavCharacterFromList(rView->GetText(), rView->GetFont().GetFamilyName());
- updateFavCharControl();
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, FavClearAllClickHdl, SvxCharView*, void)
-{
- css::uno::Sequence< OUString > aFavCharList(0);
- css::uno::Sequence< OUString > aFavCharFontList(0);
-
- maFavCharList.clear();
- maFavCharFontList.clear();
-
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(mxContext));
- officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterList::set(aFavCharList, batch);
- officecfg::Office::Common::FavoriteCharacters::FavoriteCharacterFontList::set(aFavCharFontList, batch);
- batch->commit();
-
- updateFavCharControl();
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, SearchFieldGetFocusHdl, weld::Widget&, void)
-{
- m_xOKBtn->set_sensitive(false);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, SearchUpdateHdl, weld::Entry&, void)
-{
- if (!m_xSearchText->get_text().isEmpty())
- {
- m_xSearchSet->ClearPreviousData();
- OUString aKeyword = m_xSearchText->get_text();
-
- toggleSearchView(true);
-
- FontCharMapRef xFontCharMap = m_xSearchSet->GetFontCharMap();
-
- sal_UCS4 sChar = xFontCharMap->GetFirstChar();
- while(sChar != xFontCharMap->GetLastChar())
- {
- UErrorCode errorCode = U_ZERO_ERROR;
- char buffer[100];
- u_charName(sChar, U_UNICODE_CHAR_NAME, buffer, sizeof(buffer), &errorCode);
- if (U_SUCCESS(errorCode))
- {
- OUString sName = OUString::createFromAscii(buffer);
- if(!sName.isEmpty() && sName.toAsciiLowerCase().indexOf(aKeyword.toAsciiLowerCase()) >= 0)
- m_xSearchSet->AppendCharToList(sChar);
- }
- sChar = xFontCharMap->GetNextChar(sChar);
- }
- //for last char
- UErrorCode errorCode = U_ZERO_ERROR;
- char buffer[100];
- u_charName(sChar, U_UNICODE_CHAR_NAME, buffer, sizeof(buffer), &errorCode);
- if (U_SUCCESS(errorCode))
- {
- OUString sName = OUString::createFromAscii(buffer);
- if(!sName.isEmpty() && sName.toAsciiLowerCase().indexOf(aKeyword.toAsciiLowerCase()) >= 0)
- m_xSearchSet->AppendCharToList(sChar);
- }
- }
- else
- {
- toggleSearchView(false);
- }
-}
-
-
-IMPL_LINK(SvxCharacterMap, CharClickHdl, SvxCharView*, rView, void)
-{
- rView->GrabFocus();
-
- m_aShowChar.SetText( rView->GetText() );
- m_aShowChar.SetFont(rView->GetFont());
- m_aShowChar.Invalidate();
-
- setFavButtonState(rView->GetText(), rView->GetFont().GetFamilyName());//check state
-
- // Get the hexadecimal code
- OUString charValue = rView->GetText();
- sal_UCS4 cChar = charValue.iterateCodePoints(&o3tl::temporary(sal_Int32(1)), -1);
- OUString aHexText = OUString::number(cChar, 16).toAsciiUpperCase();
-
- // Get the decimal code
- OUString aDecimalText = OUString::number(cChar);
-
- m_xHexCodeText->set_text(aHexText);
- m_xDecimalCodeText->set_text(aDecimalText);
- setCharName(cChar);
-
- rView->Invalidate();
- m_xOKBtn->set_sensitive(true);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, CharDoubleClickHdl, SvxShowCharSet*, void)
-{
- sal_UCS4 cChar = m_xShowSet->GetSelectCharacter();
- // using the new UCS4 constructor
- OUString aOUStr( &cChar, 1 );
- setFavButtonState(aOUStr, aFont.GetFamilyName());
- insertCharToDoc(aOUStr);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, SearchCharDoubleClickHdl, SvxShowCharSet*, void)
-{
- sal_UCS4 cChar = m_xSearchSet->GetSelectCharacter();
- // using the new UCS4 constructor
- OUString aOUStr( &cChar, 1 );
- setFavButtonState(aOUStr, aFont.GetFamilyName());
- insertCharToDoc(aOUStr);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, CharSelectHdl, SvxShowCharSet*, void)
-{
- m_xOKBtn->set_sensitive(true);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, SearchCharSelectHdl, SvxShowCharSet*, void)
-{
- m_xOKBtn->set_sensitive(true);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, InsertClickHdl, weld::Button&, void)
-{
- OUString sChar = m_aShowChar.GetText();
- insertCharToDoc(sChar);
- // Need to update recent character list, when OK button does not insert
- if(!m_xFrame.is())
- updateRecentCharacterList(sChar, aFont.GetFamilyName());
- m_xDialog->response(RET_OK);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, FavSelectHdl, weld::Button&, void)
-{
- if (m_xFavouritesBtn->get_label().match(CuiResId(RID_SVXSTR_ADD_FAVORITES)))
- {
- updateFavCharacterList(m_aShowChar.GetText(), m_aShowChar.GetFont().GetFamilyName());
- setFavButtonState(m_aShowChar.GetText(), m_aShowChar.GetFont().GetFamilyName());
- }
- else
- {
- deleteFavCharacterFromList(m_aShowChar.GetText(), m_aShowChar.GetFont().GetFamilyName());
- m_xFavouritesBtn->set_label(CuiResId(RID_SVXSTR_ADD_FAVORITES));
- m_xFavouritesBtn->set_sensitive(false);
- }
-
- updateFavCharControl();
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, FavClickHdl, SvxShowCharSet*, void)
-{
- getFavCharacterList();
- updateFavCharControl();
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, CharHighlightHdl, SvxShowCharSet*, void)
-{
- OUString aText;
- sal_UCS4 cChar = m_xShowSet->GetSelectCharacter();
- bool bSelect = (cChar > 0);
-
- // show char sample
- if ( bSelect )
- {
- // using the new UCS4 constructor
- aText = OUString( &cChar, 1 );
- // Get the hexadecimal code
- OUString aHexText = OUString::number(cChar, 16).toAsciiUpperCase();
- // Get the decimal code
- OUString aDecimalText = OUString::number(cChar);
- setCharName(cChar);
-
- // Update the hex and decimal codes only if necessary
- if (!m_xHexCodeText->get_text().equalsIgnoreAsciiCase(aHexText))
- m_xHexCodeText->set_text(aHexText);
- if (m_xDecimalCodeText->get_text() != aDecimalText)
- m_xDecimalCodeText->set_text( aDecimalText );
-
- const Subset* pSubset = nullptr;
- if( pSubsetMap )
- pSubset = pSubsetMap->GetSubsetByUnicode( cChar );
- if( pSubset )
- m_xSubsetLB->set_active_text(pSubset->GetName());
- else
- m_xSubsetLB->set_active(-1);
- }
-
- m_aShowChar.SetText( aText );
- m_aShowChar.SetFont( aFont );
- m_aShowChar.Invalidate();
-
- setFavButtonState(aText, aFont.GetFamilyName());
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, SearchCharHighlightHdl, SvxShowCharSet*, void)
-{
- OUString aText;
- sal_UCS4 cChar = m_xSearchSet->GetSelectCharacter();
- bool bSelect = (cChar > 0);
-
- // show char sample
- if ( bSelect )
- {
- aText = OUString( &cChar, 1 );
- // Get the hexadecimal code
- OUString aHexText = OUString::number(cChar, 16).toAsciiUpperCase();
- // Get the decimal code
- OUString aDecimalText = OUString::number(cChar);
- setCharName(cChar);
-
- // Update the hex and decimal codes only if necessary
- if (!m_xHexCodeText->get_text().equalsIgnoreAsciiCase(aHexText))
- m_xHexCodeText->set_text(aHexText);
- if (m_xDecimalCodeText->get_text() != aDecimalText)
- m_xDecimalCodeText->set_text( aDecimalText );
-
- const Subset* pSubset = nullptr;
- if( pSubsetMap )
- pSubset = pSubsetMap->GetSubsetByUnicode( cChar );
- if( pSubset )
- m_xSubsetLB->set_active_text(pSubset->GetName());
- else
- m_xSubsetLB->set_active(-1);
- }
-
- if(m_xSearchSet->HasFocus())
- {
- m_aShowChar.SetText( aText );
- m_aShowChar.SetFont( aFont );
- m_aShowChar.Invalidate();
-
- setFavButtonState(aText, aFont.GetFamilyName());
- }
-}
-
-void SvxCharacterMap::selectCharByCode(Radix radix)
-{
- OUString aCodeString;
- switch(radix)
- {
- case Radix::decimal:
- aCodeString = m_xDecimalCodeText->get_text();
- break;
- case Radix::hexadecimal:
- aCodeString = m_xHexCodeText->get_text();
- break;
- }
- // Convert the code back to a character using the appropriate radix
- sal_UCS4 cChar = aCodeString.toUInt32(static_cast<sal_Int16> (radix));
- // Use FontCharMap::HasChar(sal_UCS4 cChar) to see if the desired character is in the font
- FontCharMapRef xFontCharMap = m_xShowSet->GetFontCharMap();
- if (xFontCharMap->HasChar(cChar))
- // Select the corresponding character
- SetChar(cChar);
- else {
- m_xCharName->set_label(CuiResId(RID_SVXSTR_MISSING_CHAR));
- m_aShowChar.SetText(" ");
- switch(radix)
- {
- case Radix::decimal:
- m_xHexCodeText->set_text(OUString::number(cChar, 16));
- break;
- case Radix::hexadecimal:
- m_xDecimalCodeText->set_text(OUString::number(cChar));
- break;
- }
- }
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, DecimalCodeChangeHdl, weld::Entry&, void)
-{
- selectCharByCode(Radix::decimal);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, HexCodeChangeHdl, weld::Entry&, void)
-{
- selectCharByCode(Radix::hexadecimal);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, CharPreSelectHdl, SvxShowCharSet*, void)
-{
- // adjust subset selection
- if( pSubsetMap )
- {
- sal_UCS4 cChar = m_xShowSet->GetSelectCharacter();
-
- setFavButtonState(OUString(&cChar, 1), aFont.GetFamilyName());
- const Subset* pSubset = pSubsetMap->GetSubsetByUnicode( cChar );
- if( pSubset )
- m_xSubsetLB->set_active_text(pSubset->GetName());
- }
-
- m_xOKBtn->set_sensitive(true);
-}
-
-IMPL_LINK_NOARG(SvxCharacterMap, SearchCharPreSelectHdl, SvxShowCharSet*, void)
-{
- // adjust subset selection
- if( pSubsetMap )
- {
- sal_UCS4 cChar = m_xSearchSet->GetSelectCharacter();
-
- setFavButtonState(OUString(&cChar, 1), aFont.GetFamilyName());
- const Subset* pSubset = pSubsetMap->GetSubsetByUnicode( cChar );
- if( pSubset )
- m_xSubsetLB->set_active_text(pSubset->GetName());
- }
-
- m_xOKBtn->set_sensitive(true);
-}
-
-// class SvxShowText =====================================================
-SvxShowText::SvxShowText(const VclPtr<VirtualDevice>& rVirDev)
- : m_xVirDev(rVirDev)
- , mnY(0)
- , mbCenter(false)
-{
-}
-
-void SvxShowText::SetDrawingArea(weld::DrawingArea* pDrawingArea)
-{
- CustomWidgetController::SetDrawingArea(pDrawingArea);
- vcl::Font aFont = m_xVirDev->GetFont();
- Size aFontSize(aFont.GetFontSize().Width() * 5, aFont.GetFontSize().Height() * 5);
- aFont.SetFontSize(aFontSize);
- m_xVirDev->Push(PUSH_ALLFONT);
- m_xVirDev->SetFont(aFont);
- pDrawingArea->set_size_request(m_xVirDev->approximate_digit_width() + 2 * 12,
- m_xVirDev->LogicToPixel(aFontSize).Height() * 2);
- m_xVirDev->Pop();
-}
-
-void SvxShowText::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
-{
- rRenderContext.SetFont(m_aFont);
-
- Color aTextCol = rRenderContext.GetTextColor();
- Color aFillCol = rRenderContext.GetFillColor();
-
- const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
- const Color aWindowTextColor(rStyleSettings.GetDialogTextColor());
- const Color aWindowColor(rStyleSettings.GetWindowColor());
- rRenderContext.SetTextColor(aWindowTextColor);
- rRenderContext.SetFillColor(aWindowColor);
-
- const OUString aText = GetText();
-
- Size aSize(GetOutputSizePixel());
- tools::Long nAvailWidth = aSize.Width();
- tools::Long nWinHeight = aSize.Height();
-
- bool bGotBoundary = true;
- bool bShrankFont = false;
- vcl::Font aOrigFont(rRenderContext.GetFont());
- Size aFontSize(aOrigFont.GetFontSize());
- ::tools::Rectangle aBoundRect;
-
- for (tools::Long nFontHeight = aFontSize.Height(); nFontHeight > 0; nFontHeight -= 5)
- {
- if (!rRenderContext.GetTextBoundRect( aBoundRect, aText ) || aBoundRect.IsEmpty())
- {
- bGotBoundary = false;
- break;
- }
- if (!mbCenter)
- break;
- //only shrink in the single glyph large view mode
- tools::Long nTextWidth = aBoundRect.GetWidth();
- if (nAvailWidth > nTextWidth)
- break;
- vcl::Font aFont(aOrigFont);
- aFontSize.setHeight( nFontHeight );
- aFont.SetFontSize(aFontSize);
- rRenderContext.SetFont(aFont);
- mnY = (nWinHeight - rRenderContext.GetTextHeight()) / 2;
- bShrankFont = true;
- }
-
- Point aPoint(2, mnY);
- // adjust position using ink boundary if possible
- if (!bGotBoundary)
- aPoint.setX( (aSize.Width() - rRenderContext.GetTextWidth(aText)) / 2 );
- else
- {
- // adjust position before it gets out of bounds
- aBoundRect += aPoint;
-
- // shift back vertically if needed
- int nYLDelta = aBoundRect.Top();
- int nYHDelta = aSize.Height() - aBoundRect.Bottom();
- if( nYLDelta <= 0 )
- aPoint.AdjustY( -(nYLDelta - 1) );
- else if( nYHDelta <= 0 )
- aPoint.AdjustY(nYHDelta - 1 );
-
- if (mbCenter)
- {
- // move glyph to middle of cell
- aPoint.setX( -aBoundRect.Left() + (aSize.Width() - aBoundRect.GetWidth()) / 2 );
- }
- else
- {
- // shift back horizontally if needed
- int nXLDelta = aBoundRect.Left();
- int nXHDelta = aSize.Width() - aBoundRect.Right();
- if( nXLDelta <= 0 )
- aPoint.AdjustX( -(nXLDelta - 1) );
- else if( nXHDelta <= 0 )
- aPoint.AdjustX(nXHDelta - 1 );
- }
- }
-
- rRenderContext.DrawRect(tools::Rectangle(Point(0, 0), aSize));
- rRenderContext.DrawText(aPoint, aText);
- rRenderContext.SetTextColor(aTextCol);
- rRenderContext.SetFillColor(aFillCol);
- if (bShrankFont)
- rRenderContext.SetFont(aOrigFont);
-}
-
-void SvxShowText::SetFont( const vcl::Font& rFont )
-{
- tools::Long nWinHeight = GetOutputSizePixel().Height();
-
- m_aFont = rFont;
- m_aFont.SetWeight(WEIGHT_NORMAL);
- m_aFont.SetAlignment(ALIGN_TOP);
- m_aFont.SetFontSize(m_xVirDev->PixelToLogic(Size(0, nWinHeight / 2)));
- m_aFont.SetTransparent(true);
-
- m_xVirDev->Push(PUSH_ALLFONT);
- m_xVirDev->SetFont(m_aFont);
- mnY = (nWinHeight - m_xVirDev->GetTextHeight()) / 2;
- m_xVirDev->Pop();
-
- Invalidate();
-}
-
-void SvxShowText::Resize()
-{
- SetFont(GetFont()); //force recalculation of size
-}
-
-void SvxShowText::SetText(const OUString& rText)
-{
- m_sText = rText;
- Invalidate();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/cuifmsearch.cxx b/cui/source/dialogs/cuifmsearch.cxx
index 18f9cae66536..89eee514e193 100644
--- a/cui/source/dialogs/cuifmsearch.cxx
+++ b/cui/source/dialogs/cuifmsearch.cxx
@@ -31,12 +31,11 @@
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <svx/svxdlg.hxx>
+#include <o3tl/string_view.hxx>
using namespace css::uno;
-using namespace css::i18n;
using namespace ::svxform;
using namespace css::sdbc;
-using namespace css::util;
#define MAX_HISTORY_ENTRIES 50
@@ -69,35 +68,35 @@ void FmSearchDialog::initCommon( const Reference< XResultSet >& _rxCursor )
FmSearchDialog::FmSearchDialog(weld::Window* pParent, const OUString& sInitialText, const std::vector< OUString >& _rContexts, sal_Int16 nInitialContext,
const Link<FmSearchContext&,sal_uInt32>& lnkContextSupplier)
- : GenericDialogController(pParent, "cui/ui/fmsearchdialog.ui", "RecordSearchDialog")
+ : GenericDialogController(pParent, u"cui/ui/fmsearchdialog.ui"_ustr, u"RecordSearchDialog"_ustr)
, m_sCancel( GetStandardText( StandardButtonType::Cancel ) )
, m_lnkContextSupplier(lnkContextSupplier)
- , m_prbSearchForText(m_xBuilder->weld_radio_button("rbSearchForText"))
- , m_prbSearchForNull(m_xBuilder->weld_radio_button("rbSearchForNull"))
- , m_prbSearchForNotNull(m_xBuilder->weld_radio_button("rbSearchForNotNull"))
- , m_pcmbSearchText(m_xBuilder->weld_combo_box("cmbSearchText"))
- , m_pftForm(m_xBuilder->weld_label("ftForm"))
- , m_plbForm(m_xBuilder->weld_combo_box("lbForm"))
- , m_prbAllFields(m_xBuilder->weld_radio_button("rbAllFields"))
- , m_prbSingleField(m_xBuilder->weld_radio_button("rbSingleField"))
- , m_plbField(m_xBuilder->weld_combo_box("lbField"))
- , m_pftPosition(m_xBuilder->weld_label("ftPosition"))
- , m_plbPosition(m_xBuilder->weld_combo_box("lbPosition"))
- , m_pcbUseFormat(m_xBuilder->weld_check_button("cbUseFormat"))
- , m_pcbCase(m_xBuilder->weld_check_button("cbCase"))
- , m_pcbBackwards(m_xBuilder->weld_check_button("cbBackwards"))
- , m_pcbStartOver(m_xBuilder->weld_check_button("cbStartOver"))
- , m_pcbWildCard(m_xBuilder->weld_check_button("cbWildCard"))
- , m_pcbRegular(m_xBuilder->weld_check_button("cbRegular"))
- , m_pcbApprox(m_xBuilder->weld_check_button("cbApprox"))
- , m_ppbApproxSettings(m_xBuilder->weld_button("pbApproxSettings"))
- , m_pHalfFullFormsCJK(m_xBuilder->weld_check_button("HalfFullFormsCJK"))
- , m_pSoundsLikeCJK(m_xBuilder->weld_check_button("SoundsLikeCJK"))
- , m_pSoundsLikeCJKSettings(m_xBuilder->weld_button("SoundsLikeCJKSettings"))
- , m_pftRecord(m_xBuilder->weld_label("ftRecord"))
- , m_pftHint(m_xBuilder->weld_label("ftHint"))
- , m_pbSearchAgain(m_xBuilder->weld_button("pbSearchAgain"))
- , m_pbClose(m_xBuilder->weld_button("close"))
+ , m_prbSearchForText(m_xBuilder->weld_radio_button(u"rbSearchForText"_ustr))
+ , m_prbSearchForNull(m_xBuilder->weld_radio_button(u"rbSearchForNull"_ustr))
+ , m_prbSearchForNotNull(m_xBuilder->weld_radio_button(u"rbSearchForNotNull"_ustr))
+ , m_pcmbSearchText(m_xBuilder->weld_combo_box(u"cmbSearchText"_ustr))
+ , m_pftForm(m_xBuilder->weld_label(u"ftForm"_ustr))
+ , m_plbForm(m_xBuilder->weld_combo_box(u"lbForm"_ustr))
+ , m_prbAllFields(m_xBuilder->weld_radio_button(u"rbAllFields"_ustr))
+ , m_prbSingleField(m_xBuilder->weld_radio_button(u"rbSingleField"_ustr))
+ , m_plbField(m_xBuilder->weld_combo_box(u"lbField"_ustr))
+ , m_pftPosition(m_xBuilder->weld_label(u"ftPosition"_ustr))
+ , m_plbPosition(m_xBuilder->weld_combo_box(u"lbPosition"_ustr))
+ , m_pcbUseFormat(m_xBuilder->weld_check_button(u"cbUseFormat"_ustr))
+ , m_pcbCase(m_xBuilder->weld_check_button(u"cbCase"_ustr))
+ , m_pcbBackwards(m_xBuilder->weld_check_button(u"cbBackwards"_ustr))
+ , m_pcbStartOver(m_xBuilder->weld_check_button(u"cbStartOver"_ustr))
+ , m_pcbWildCard(m_xBuilder->weld_check_button(u"cbWildCard"_ustr))
+ , m_pcbRegular(m_xBuilder->weld_check_button(u"cbRegular"_ustr))
+ , m_pcbApprox(m_xBuilder->weld_check_button(u"cbApprox"_ustr))
+ , m_ppbApproxSettings(m_xBuilder->weld_button(u"pbApproxSettings"_ustr))
+ , m_pHalfFullFormsCJK(m_xBuilder->weld_check_button(u"HalfFullFormsCJK"_ustr))
+ , m_pSoundsLikeCJK(m_xBuilder->weld_check_button(u"SoundsLikeCJK"_ustr))
+ , m_pSoundsLikeCJKSettings(m_xBuilder->weld_button(u"SoundsLikeCJKSettings"_ustr))
+ , m_pftRecord(m_xBuilder->weld_label(u"ftRecord"_ustr))
+ , m_pftHint(m_xBuilder->weld_label(u"ftHint"_ustr))
+ , m_pbSearchAgain(m_xBuilder->weld_button(u"pbSearchAgain"_ustr))
+ , m_pbClose(m_xBuilder->weld_button(u"close"_ustr))
{
m_pcmbSearchText->set_size_request(m_pcmbSearchText->get_approximate_digit_width() * 38, -1);
m_plbForm->set_size_request(m_plbForm->get_approximate_digit_width() * 38, -1);
@@ -159,7 +158,7 @@ FmSearchDialog::~FmSearchDialog()
m_pSearchEngine.reset();
}
-void FmSearchDialog::Init(const OUString& strVisibleFields, const OUString& sInitialText)
+void FmSearchDialog::Init(std::u16string_view strVisibleFields, const OUString& sInitialText)
{
//the initialization of all the Controls
m_prbSearchForText->connect_toggled(LINK(this, FmSearchDialog, OnToggledSearchRadio));
@@ -203,11 +202,11 @@ void FmSearchDialog::Init(const OUString& strVisibleFields, const OUString& sIni
m_plbPosition->set_active(MATCHING_ANYWHERE);
// the field listbox
- if (!strVisibleFields.isEmpty())
+ if (!strVisibleFields.empty())
{
sal_Int32 nPos {0};
do {
- m_plbField->append_text(strVisibleFields.getToken(0, ';', nPos));
+ m_plbField->append_text(OUString(o3tl::getToken(strVisibleFields, 0, ';', nPos)));
} while (nPos>=0);
}
@@ -311,15 +310,20 @@ IMPL_LINK(FmSearchDialog, OnClickedSpecialSettings, weld::Button&, rButton, void
if (m_ppbApproxSettings.get() == &rButton)
{
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- ScopedVclPtr<AbstractSvxSearchSimilarityDialog> pDlg(pFact->CreateSvxSearchSimilarityDialog(m_xDialog.get(), m_pSearchEngine->GetLevRelaxed(), m_pSearchEngine->GetLevOther(),
+
+ VclPtr<AbstractSvxSearchSimilarityDialog> pDlg(pFact->CreateSvxSearchSimilarityDialog(m_xDialog.get(), m_pSearchEngine->GetLevRelaxed(), m_pSearchEngine->GetLevOther(),
m_pSearchEngine->GetLevShorter(), m_pSearchEngine->GetLevLonger() ));
- if (pDlg->Execute() == RET_OK)
+ pDlg->StartExecuteAsync([pDlg, this](sal_Int32 nResult){
+
+ if (nResult == RET_OK)
{
m_pSearchEngine->SetLevRelaxed( pDlg->IsRelaxed() );
m_pSearchEngine->SetLevOther( pDlg->GetOther() );
m_pSearchEngine->SetLevShorter(pDlg->GetShorter() );
m_pSearchEngine->SetLevLonger( pDlg->GetLonger() );
}
+ pDlg->disposeOnce();
+ });
}
else if (m_pSoundsLikeCJKSettings.get() == &rButton)
{
@@ -628,10 +632,8 @@ void FmSearchDialog::LoadParams()
{
FmSearchParams aParams(m_pConfig->getParams());
- const OUString* pHistory = aParams.aHistory.getConstArray();
- const OUString* pHistoryEnd = pHistory + aParams.aHistory.getLength();
- for (; pHistory != pHistoryEnd; ++pHistory)
- m_pcmbSearchText->append_text( *pHistory );
+ for (auto& historystr : aParams.aHistory)
+ m_pcmbSearchText->append_text(historystr);
// I do the settings at my UI-elements and then I simply call the respective change-handler,
// that way the data is handed on to the SearchEngine and all dependent settings are done
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index 118fb06cce00..fb2007532fc2 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -24,6 +24,7 @@
#include <algorithm>
#include <cassert>
+#include <utility>
#include <vcl/errinf.hxx>
#include <ucbhelper/content.hxx>
#include <vcl/svapp.hxx>
@@ -46,13 +47,13 @@
#include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/ucb/ContentCreationException.hpp>
#include <com/sun/star/ucb/XContentAccess.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
#include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
#include <dialmgr.hxx>
#include <strings.hrc>
#include <svx/dialmgr.hxx>
#include <svx/strings.hrc>
#include <osl/diagnose.h>
+#include <o3tl/string_view.hxx>
using namespace ::ucbhelper;
using namespace ::cppu;
@@ -65,11 +66,11 @@ using namespace ::com::sun::star::uno;
SearchThread::SearchThread(SearchProgress* pProgress,
TPGalleryThemeProperties* pBrowser,
- const INetURLObject& rStartURL)
+ INetURLObject aStartURL)
: Thread("cuiSearchThread")
, mpProgress(pProgress)
, mpBrowser(pBrowser)
- , maStartURL(rStartURL)
+ , maStartURL(std::move(aStartURL))
{
}
@@ -188,13 +189,13 @@ void SearchThread::ImplSearch( const INetURLObject& rStartURL,
}
}
-SearchProgress::SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, const INetURLObject& rStartURL)
- : GenericDialogController(pParent, "cui/ui/gallerysearchprogress.ui", "GallerySearchProgress")
- , startUrl_(rStartURL)
+SearchProgress::SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, INetURLObject aStartURL)
+ : GenericDialogController(pParent, u"cui/ui/gallerysearchprogress.ui"_ustr, u"GallerySearchProgress"_ustr)
+ , startUrl_(std::move(aStartURL))
, m_pTabPage(pTabPage)
- , m_xFtSearchDir(m_xBuilder->weld_label("dir"))
- , m_xFtSearchType(m_xBuilder->weld_label("file"))
- , m_xBtnCancel(m_xBuilder->weld_button("cancel"))
+ , m_xFtSearchDir(m_xBuilder->weld_label(u"dir"_ustr))
+ , m_xFtSearchType(m_xBuilder->weld_label(u"file"_ustr))
+ , m_xBtnCancel(m_xBuilder->weld_button(u"cancel"_ustr))
{
m_xFtSearchType->set_size_request(m_xFtSearchType->get_preferred_size().Width(), -1);
m_xBtnCancel->connect_clicked(LINK(this, SearchProgress, ClickCancelBtn));
@@ -290,12 +291,12 @@ void TakeThread::execute()
}
TakeProgress::TakeProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage)
- : GenericDialogController(pParent, "cui/ui/galleryapplyprogress.ui",
- "GalleryApplyProgress")
+ : GenericDialogController(pParent, u"cui/ui/galleryapplyprogress.ui"_ustr,
+ u"GalleryApplyProgress"_ustr)
, m_pParent(pParent)
, m_pTabPage(pTabPage)
- , m_xFtTakeFile(m_xBuilder->weld_label("file"))
- , m_xBtnCancel(m_xBuilder->weld_button("cancel"))
+ , m_xFtTakeFile(m_xBuilder->weld_label(u"file"_ustr))
+ , m_xBtnCancel(m_xBuilder->weld_button(u"cancel"_ustr))
{
m_xBtnCancel->connect_clicked(LINK(this, TakeProgress, ClickCancelBtn));
}
@@ -335,7 +336,8 @@ IMPL_LINK_NOARG(TakeProgress, CleanUpHdl, void*, void)
if( !aRemoveEntries[ i ] )
aRemainingVector.push_back( m_pTabPage->aFoundList[i] );
- m_pTabPage->aFoundList = std::move(aRemainingVector);
+ std::swap(m_pTabPage->aFoundList, aRemainingVector);
+ aRemainingVector.clear();
// refill list box
for( i = 0, nCount = aRemoveEntries.size(); i < nCount; ++i )
@@ -343,10 +345,8 @@ IMPL_LINK_NOARG(TakeProgress, CleanUpHdl, void*, void)
aRemainingVector.push_back(m_pTabPage->m_xLbxFound->get_text(i));
m_pTabPage->m_xLbxFound->clear();
-
for( i = 0, nCount = aRemainingVector.size(); i < nCount; ++i )
m_pTabPage->m_xLbxFound->append_text(aRemainingVector[i]);
-
aRemainingVector.clear();
m_pTabPage->m_xLbxFound->thaw();
@@ -365,12 +365,12 @@ void TakeProgress::LaunchThread()
}
ActualizeProgress::ActualizeProgress(weld::Widget* pWindow, GalleryTheme* pThm)
- : GenericDialogController(pWindow, "cui/ui/galleryupdateprogress.ui",
- "GalleryUpdateProgress")
+ : GenericDialogController(pWindow, u"cui/ui/galleryupdateprogress.ui"_ustr,
+ u"GalleryUpdateProgress"_ustr)
, pIdle(nullptr)
, pTheme(pThm)
- , m_xFtActualizeFile(m_xBuilder->weld_label("file"))
- , m_xBtnCancel(m_xBuilder->weld_button("cancel"))
+ , m_xFtActualizeFile(m_xBuilder->weld_label(u"file"_ustr))
+ , m_xBtnCancel(m_xBuilder->weld_button(u"cancel"_ustr))
{
m_xBtnCancel->connect_clicked(LINK(this, ActualizeProgress, ClickCancelBtn));
}
@@ -414,8 +414,8 @@ IMPL_LINK( ActualizeProgress, ActualizeHdl, const INetURLObject&, rURL, void )
}
TitleDialog::TitleDialog(weld::Widget* pParent, const OUString& rOldTitle)
- : GenericDialogController(pParent, "cui/ui/gallerytitledialog.ui", "GalleryTitleDialog")
- , m_xEdit(m_xBuilder->weld_entry("entry"))
+ : GenericDialogController(pParent, u"cui/ui/gallerytitledialog.ui"_ustr, u"GalleryTitleDialog"_ustr)
+ , m_xEdit(m_xBuilder->weld_entry(u"entry"_ustr))
{
m_xEdit->set_text(rOldTitle);
m_xEdit->grab_focus();
@@ -426,12 +426,12 @@ TitleDialog::~TitleDialog()
}
GalleryIdDialog::GalleryIdDialog(weld::Widget* pParent, GalleryTheme* _pThm)
- : GenericDialogController(pParent, "cui/ui/gallerythemeiddialog.ui", "GalleryThemeIDDialog")
+ : GenericDialogController(pParent, u"cui/ui/gallerythemeiddialog.ui"_ustr, u"GalleryThemeIDDialog"_ustr)
, m_pThm(_pThm)
- , m_xBtnOk(m_xBuilder->weld_button("ok"))
- , m_xLbResName(m_xBuilder->weld_combo_box("entry"))
+ , m_xBtnOk(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xLbResName(m_xBuilder->weld_combo_box(u"entry"_ustr))
{
- m_xLbResName->append_text("!!! No Id !!!");
+ m_xLbResName->append_text(u"!!! No Id !!!"_ustr);
GalleryTheme::InsertAllThemes(*m_xLbResName);
@@ -457,7 +457,7 @@ IMPL_LINK_NOARG(GalleryIdDialog, ClickOkHdl, weld::Button&, void)
if ((pInfo->GetId() == nId) && (pInfo->GetThemeName() != m_pThm->GetName()))
{
- OUString aStr = CuiResId( RID_SVXSTR_GALLERY_ID_EXISTS ) +
+ OUString aStr = CuiResId( RID_CUISTR_GALLERY_ID_EXISTS ) +
" (" + pInfo->GetThemeName() + ")";
std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_xDialog.get(),
@@ -475,24 +475,24 @@ IMPL_LINK_NOARG(GalleryIdDialog, ClickOkHdl, weld::Button&, void)
GalleryThemeProperties::GalleryThemeProperties(weld::Widget* pParent,
ExchangeData* _pData, SfxItemSet const * pItemSet)
- : SfxTabDialogController(pParent, "cui/ui/gallerythemedialog.ui",
- "GalleryThemeDialog", pItemSet)
+ : SfxTabDialogController(pParent, u"cui/ui/gallerythemedialog.ui"_ustr,
+ u"GalleryThemeDialog"_ustr, pItemSet)
, pData(_pData)
{
- AddTabPage("general", TPGalleryThemeGeneral::Create, nullptr);
- AddTabPage("files", TPGalleryThemeProperties::Create, nullptr);
+ AddTabPage(u"general"_ustr, TPGalleryThemeGeneral::Create, nullptr);
+ AddTabPage(u"files"_ustr, TPGalleryThemeProperties::Create, nullptr);
if (pData->pTheme->IsReadOnly())
- RemoveTabPage("files");
+ RemoveTabPage(u"files"_ustr);
OUString aText = m_xDialog->get_title().replaceFirst( "%1", pData->pTheme->GetName() );
if (pData->pTheme->IsReadOnly())
- aText += " " + CuiResId( RID_SVXSTR_GALLERY_READONLY );
+ aText += " " + CuiResId( RID_CUISTR_GALLERY_READONLY );
m_xDialog->set_title(aText);
}
-void GalleryThemeProperties::PageCreated(const OString& rId, SfxTabPage &rPage)
+void GalleryThemeProperties::PageCreated(const OUString& rId, SfxTabPage &rPage)
{
if (rId == "general")
static_cast<TPGalleryThemeGeneral&>( rPage ).SetXChgData( pData );
@@ -501,14 +501,14 @@ void GalleryThemeProperties::PageCreated(const OString& rId, SfxTabPage &rPage)
}
TPGalleryThemeGeneral::TPGalleryThemeGeneral(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/gallerygeneralpage.ui", "GalleryGeneralPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/gallerygeneralpage.ui"_ustr, u"GalleryGeneralPage"_ustr, &rSet)
, pData(nullptr)
- , m_xFiMSImage(m_xBuilder->weld_image("image"))
- , m_xEdtMSName(m_xBuilder->weld_entry("name"))
- , m_xFtMSShowType(m_xBuilder->weld_label("type"))
- , m_xFtMSShowPath(m_xBuilder->weld_label("location"))
- , m_xFtMSShowContent(m_xBuilder->weld_label("contents"))
- , m_xFtMSShowChangeDate(m_xBuilder->weld_label("modified"))
+ , m_xFiMSImage(m_xBuilder->weld_image(u"image"_ustr))
+ , m_xEdtMSName(m_xBuilder->weld_entry(u"name"_ustr))
+ , m_xFtMSShowType(m_xBuilder->weld_label(u"type"_ustr))
+ , m_xFtMSShowPath(m_xBuilder->weld_label(u"location"_ustr))
+ , m_xFtMSShowContent(m_xBuilder->weld_label(u"contents"_ustr))
+ , m_xFtMSShowChangeDate(m_xBuilder->weld_label(u"modified"_ustr))
{
}
@@ -518,7 +518,7 @@ void TPGalleryThemeGeneral::SetXChgData( ExchangeData* _pData )
GalleryTheme* pThm = pData->pTheme;
OUString aOutStr( OUString::number(pThm->GetObjectCount()) );
- OUString aObjStr( CuiResId( RID_SVXSTR_GALLERYPROPS_OBJECT ) );
+ OUString aObjStr( CuiResId( RID_CUISTR_GALLERYPROPS_OBJECT ) );
OUString aAccess;
OUString aType( SvxResId( RID_SVXSTR_GALLERYPROPS_GALTHEME ) );
bool bReadOnly = pThm->IsReadOnly();
@@ -528,7 +528,7 @@ void TPGalleryThemeGeneral::SetXChgData( ExchangeData* _pData )
m_xEdtMSName->set_sensitive(!bReadOnly);
if( pThm->IsReadOnly() )
- aType += CuiResId( RID_SVXSTR_GALLERY_READONLY );
+ aType += CuiResId( RID_CUISTR_GALLERY_READONLY );
m_xFtMSShowType->set_label(aType);
m_xFtMSShowPath->set_label(pThm->getThemeURL().GetMainURL(INetURLObject::DecodeMechanism::Unambiguous));
@@ -576,7 +576,7 @@ std::unique_ptr<SfxTabPage> TPGalleryThemeGeneral::Create(weld::Container* pPage
}
TPGalleryThemeProperties::TPGalleryThemeProperties(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/galleryfilespage.ui", "GalleryFilesPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/galleryfilespage.ui"_ustr, u"GalleryFilesPage"_ustr, &rSet)
, pData(nullptr)
, aPreviewTimer("cui TPGalleryThemeProperties aPreviewTimer")
, bEntriesFound(false)
@@ -584,13 +584,13 @@ TPGalleryThemeProperties::TPGalleryThemeProperties(weld::Container* pPage, weld:
, bTakeAll(false)
, bSearchRecursive(false)
, xDialogListener(new ::svt::DialogClosedListener())
- , m_xCbbFileType(m_xBuilder->weld_combo_box("filetype"))
- , m_xLbxFound(m_xBuilder->weld_tree_view("files"))
- , m_xBtnSearch(m_xBuilder->weld_button("findfiles"))
- , m_xBtnTake(m_xBuilder->weld_button("add"))
- , m_xBtnTakeAll(m_xBuilder->weld_button("addall"))
- , m_xCbxPreview(m_xBuilder->weld_check_button("preview"))
- , m_xWndPreview(new weld::CustomWeld(*m_xBuilder, "image", m_aWndPreview))
+ , m_xCbbFileType(m_xBuilder->weld_combo_box(u"filetype"_ustr))
+ , m_xLbxFound(m_xBuilder->weld_tree_view(u"files"_ustr))
+ , m_xBtnSearch(m_xBuilder->weld_button(u"findfiles"_ustr))
+ , m_xBtnTake(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xBtnTakeAll(m_xBuilder->weld_button(u"addall"_ustr))
+ , m_xCbxPreview(m_xBuilder->weld_check_button(u"preview"_ustr))
+ , m_xWndPreview(new weld::CustomWeld(*m_xBuilder, u"image"_ustr, m_aWndPreview))
{
m_xLbxFound->set_size_request(m_xLbxFound->get_approximate_digit_width() * 35,
m_xLbxFound->get_height_rows(15));
@@ -611,7 +611,7 @@ void TPGalleryThemeProperties::SetXChgData( ExchangeData* _pData )
m_xCbbFileType->connect_changed(LINK(this, TPGalleryThemeProperties, SelectFileTypeHdl));
m_xLbxFound->connect_row_activated(LINK(this, TPGalleryThemeProperties, DClickFoundHdl));
m_xLbxFound->connect_changed(LINK(this, TPGalleryThemeProperties, SelectFoundHdl));
- m_xLbxFound->append_text(CuiResId(RID_SVXSTR_GALLERY_NOFILES));
+ m_xLbxFound->append_text(CuiResId(RID_CUISTR_GALLERY_NOFILES));
m_xLbxFound->show();
FillFilterList();
@@ -621,7 +621,7 @@ void TPGalleryThemeProperties::SetXChgData( ExchangeData* _pData )
m_xCbxPreview->set_sensitive(false);
}
-void TPGalleryThemeProperties::StartSearchFiles( const OUString& _rFolderURL, short _nDlgResult )
+void TPGalleryThemeProperties::StartSearchFiles( std::u16string_view _rFolderURL, short _nDlgResult )
{
if ( RET_OK == _nDlgResult )
{
@@ -707,7 +707,7 @@ void TPGalleryThemeProperties::FillFilterList()
#if HAVE_FEATURE_AVMEDIA
// media filters
- static constexpr OUStringLiteral aWildcard = u"*.";
+ static constexpr OUString aWildcard = u"*."_ustr;
::avmedia::FilterNameVector aFilters= ::avmedia::MediaWindow::getMediaFilters();
for(const std::pair<OUString,OUString> & aFilter : aFilters)
@@ -756,7 +756,7 @@ void TPGalleryThemeProperties::FillFilterList()
{
if ( !aExtensions.isEmpty() )
aExtensions += ";";
- aExtensions += aWildcard + aFilter.second.getToken( 0, ';', nIndex );
+ aExtensions += OUString::Concat(aWildcard) + o3tl::getToken(aFilter.second, 0, ';', nIndex );
}
}
#endif
@@ -767,7 +767,7 @@ void TPGalleryThemeProperties::FillFilterList()
#endif
std::unique_ptr<FilterEntry> pFilterEntry(new FilterEntry);
- pFilterEntry->aFilterName = CuiResId(RID_SVXSTR_GALLERY_ALLFILES);
+ pFilterEntry->aFilterName = CuiResId(RID_CUISTR_GALLERY_ALLFILES);
pFilterEntry->aFilterName = addExtension(pFilterEntry->aFilterName, aExtensions);
m_xCbbFileType->insert_text(0, pFilterEntry->aFilterName);
m_xCbbFileType->set_active(0);
@@ -782,8 +782,8 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, SelectFileTypeHdl, weld::ComboBox&, vo
{
aLastFilterName = aText;
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryupdategalleryfilelistdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("QueryUpdateFileListDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryupdategalleryfilelistdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(u"QueryUpdateFileListDialog"_ustr));
if (xQuery->run() == RET_YES)
SearchFiles();
}
@@ -889,9 +889,9 @@ void TPGalleryThemeProperties::DoPreview()
ErrorHandler::HandleError(ERRCODE_IO_NOTEXISTSPATH, GetFrameWeld());
}
#if HAVE_FEATURE_AVMEDIA
- else if( ::avmedia::MediaWindow::isMediaURL( _aURL.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous ), "" ) )
+ else if( ::avmedia::MediaWindow::isMediaURL( _aURL.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous ), u""_ustr ) )
{
- xMediaPlayer = ::avmedia::MediaWindow::createPlayer( _aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), "" );
+ xMediaPlayer = ::avmedia::MediaWindow::createPlayer( _aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), u""_ustr );
if( xMediaPlayer.is() )
xMediaPlayer->start();
}
@@ -909,7 +909,7 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, ClickTakeHdl, weld::Button&, void)
if (!m_xLbxFound->count_selected_rows() || !bEntriesFound)
{
- SvxOpenGraphicDialog aDlg(CuiResId(RID_SVXSTR_KEY_GALLERY_DIR), GetFrameWeld());
+ SvxOpenGraphicDialog aDlg(CuiResId(RID_CUISTR_KEY_GALLERY_DIR), GetFrameWeld());
aDlg.EnableLink(false);
aDlg.AsLink(false);
@@ -991,7 +991,7 @@ void TPGalleryThemeProperties::EndSearchProgressHdl(sal_Int32 /*nResult*/)
}
else
{
- m_xLbxFound->append_text(CuiResId(RID_SVXSTR_GALLERY_NOFILES));
+ m_xLbxFound->append_text(CuiResId(RID_CUISTR_GALLERY_NOFILES));
m_xBtnTakeAll->set_sensitive(false);
m_xCbxPreview->set_sensitive(false);
bEntriesFound = false;
diff --git a/cui/source/dialogs/cuigrfflt.cxx b/cui/source/dialogs/cuigrfflt.cxx
index c67ee92d141c..3522fa200e05 100644
--- a/cui/source/dialogs/cuigrfflt.cxx
+++ b/cui/source/dialogs/cuigrfflt.cxx
@@ -124,12 +124,12 @@ void CuiGraphicPreviewWindow::Resize()
}
GraphicFilterDialog::GraphicFilterDialog(weld::Window* pParent,
- const OUString& rUIXMLDescription, const OString& rID,
+ const OUString& rUIXMLDescription, const OUString& rID,
const Graphic& rGraphic)
: GenericDialogController(pParent, rUIXMLDescription, rID)
, maTimer("cui GraphicFilterDialog maTimer")
, maModifyHdl(LINK(this, GraphicFilterDialog, ImplModifyHdl))
- , mxPreview(new weld::CustomWeld(*m_xBuilder, "preview", maPreview))
+ , mxPreview(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, maPreview))
{
bIsBitmap = rGraphic.GetType() == GraphicType::Bitmap;
@@ -157,10 +157,10 @@ IMPL_LINK_NOARG(GraphicFilterDialog, ImplModifyHdl, LinkParamNone*, void)
GraphicFilterMosaic::GraphicFilterMosaic(weld::Window* pParent, const Graphic& rGraphic,
sal_uInt16 nTileWidth, sal_uInt16 nTileHeight, bool bEnhanceEdges)
- : GraphicFilterDialog(pParent, "cui/ui/mosaicdialog.ui", "MosaicDialog", rGraphic)
- , mxMtrWidth(m_xBuilder->weld_metric_spin_button("width", FieldUnit::PIXEL))
- , mxMtrHeight(m_xBuilder->weld_metric_spin_button("height", FieldUnit::PIXEL))
- , mxCbxEdges(m_xBuilder->weld_check_button("edges"))
+ : GraphicFilterDialog(pParent, u"cui/ui/mosaicdialog.ui"_ustr, u"MosaicDialog"_ustr, rGraphic)
+ , mxMtrWidth(m_xBuilder->weld_metric_spin_button(u"width"_ustr, FieldUnit::PIXEL))
+ , mxMtrHeight(m_xBuilder->weld_metric_spin_button(u"height"_ustr, FieldUnit::PIXEL))
+ , mxCbxEdges(m_xBuilder->weld_check_button(u"edges"_ustr))
{
mxMtrWidth->set_value(nTileWidth, FieldUnit::PIXEL);
mxMtrWidth->set_max(GetGraphicSizePixel().Width(), FieldUnit::PIXEL);
@@ -192,8 +192,8 @@ Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic,
Graphic aRet;
tools::Long nTileWidth = static_cast<tools::Long>(mxMtrWidth->get_value(FieldUnit::PIXEL));
tools::Long nTileHeight = static_cast<tools::Long>(mxMtrHeight->get_value(FieldUnit::PIXEL));
- const Size aSize( std::max( FRound( nTileWidth * fScaleX ), tools::Long(1) ),
- std::max( FRound( nTileHeight * fScaleY ), tools::Long(1) ) );
+ const Size aSize( std::max( basegfx::fround<tools::Long>( nTileWidth * fScaleX ), tools::Long(1) ),
+ std::max( basegfx::fround<tools::Long>( nTileHeight * fScaleY ), tools::Long(1) ) );
if( rGraphic.IsAnimated() )
{
@@ -224,8 +224,8 @@ Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic,
}
GraphicFilterSmooth::GraphicFilterSmooth(weld::Window* pParent, const Graphic& rGraphic, double nRadius)
- : GraphicFilterDialog(pParent, "cui/ui/smoothdialog.ui", "SmoothDialog", rGraphic)
- , mxMtrRadius(m_xBuilder->weld_spin_button("radius"))
+ : GraphicFilterDialog(pParent, u"cui/ui/smoothdialog.ui"_ustr, u"SmoothDialog"_ustr, rGraphic)
+ , mxMtrRadius(m_xBuilder->weld_spin_button(u"radius"_ustr))
{
mxMtrRadius->set_value(nRadius * 10);
mxMtrRadius->connect_value_changed(LINK(this, GraphicFilterSmooth, EditModifyHdl));
@@ -266,11 +266,11 @@ Graphic GraphicFilterSmooth::GetFilteredGraphic( const Graphic& rGraphic, double
GraphicFilterSolarize::GraphicFilterSolarize(weld::Window* pParent, const Graphic& rGraphic,
sal_uInt8 cGreyThreshold, bool bInvert)
- : GraphicFilterDialog(pParent, "cui/ui/solarizedialog.ui", "SolarizeDialog", rGraphic)
- , mxMtrThreshold(m_xBuilder->weld_metric_spin_button("value", FieldUnit::PERCENT))
- , mxCbxInvert(m_xBuilder->weld_check_button("invert"))
+ : GraphicFilterDialog(pParent, u"cui/ui/solarizedialog.ui"_ustr, u"SolarizeDialog"_ustr, rGraphic)
+ , mxMtrThreshold(m_xBuilder->weld_metric_spin_button(u"value"_ustr, FieldUnit::PERCENT))
+ , mxCbxInvert(m_xBuilder->weld_check_button(u"invert"_ustr))
{
- mxMtrThreshold->set_value(FRound(cGreyThreshold / 2.55), FieldUnit::PERCENT);
+ mxMtrThreshold->set_value(basegfx::fround(cGreyThreshold / 2.55), FieldUnit::PERCENT);
mxMtrThreshold->connect_value_changed(LINK(this, GraphicFilterSolarize, EditModifyHdl));
mxCbxInvert->set_active(bInvert);
@@ -290,7 +290,7 @@ IMPL_LINK_NOARG(GraphicFilterSolarize, EditModifyHdl, weld::MetricSpinButton&, v
Graphic GraphicFilterSolarize::GetFilteredGraphic( const Graphic& rGraphic, double, double )
{
Graphic aRet;
- sal_uInt8 nGreyThreshold = static_cast<sal_uInt8>(FRound(mxMtrThreshold->get_value(FieldUnit::PERCENT) * 2.55));
+ sal_uInt8 nGreyThreshold = basegfx::fround<sal_uInt8>(mxMtrThreshold->get_value(FieldUnit::PERCENT) * 2.55);
if( rGraphic.IsAnimated() )
{
@@ -322,8 +322,8 @@ Graphic GraphicFilterSolarize::GetFilteredGraphic( const Graphic& rGraphic, doub
GraphicFilterSepia::GraphicFilterSepia(weld::Window* pParent, const Graphic& rGraphic,
sal_uInt16 nSepiaPercent)
- : GraphicFilterDialog(pParent, "cui/ui/agingdialog.ui", "AgingDialog", rGraphic)
- , mxMtrSepia(m_xBuilder->weld_metric_spin_button("value", FieldUnit::PERCENT))
+ : GraphicFilterDialog(pParent, u"cui/ui/agingdialog.ui"_ustr, u"AgingDialog"_ustr, rGraphic)
+ , mxMtrSepia(m_xBuilder->weld_metric_spin_button(u"value"_ustr, FieldUnit::PERCENT))
{
mxMtrSepia->set_value(nSepiaPercent, FieldUnit::PERCENT);
mxMtrSepia->connect_value_changed(LINK(this, GraphicFilterSepia, EditModifyHdl));
@@ -359,8 +359,8 @@ Graphic GraphicFilterSepia::GetFilteredGraphic( const Graphic& rGraphic, double,
GraphicFilterPoster::GraphicFilterPoster(weld::Window* pParent, const Graphic& rGraphic,
sal_uInt16 nPosterCount)
- : GraphicFilterDialog(pParent, "cui/ui/posterdialog.ui", "PosterDialog", rGraphic)
- , mxNumPoster(m_xBuilder->weld_spin_button("value"))
+ : GraphicFilterDialog(pParent, u"cui/ui/posterdialog.ui"_ustr, u"PosterDialog"_ustr, rGraphic)
+ , mxNumPoster(m_xBuilder->weld_spin_button(u"value"_ustr))
{
mxNumPoster->set_range(2, vcl::pixelFormatBitCount(rGraphic.GetBitmapEx().getPixelFormat()));
mxNumPoster->set_value(nPosterCount);
@@ -416,8 +416,8 @@ void EmbossControl::SetDrawingArea(weld::DrawingArea* pDrawingArea)
GraphicFilterEmboss::GraphicFilterEmboss(weld::Window* pParent,
const Graphic& rGraphic, RectPoint eLightSource)
- : GraphicFilterDialog(pParent, "cui/ui/embossdialog.ui", "EmbossDialog", rGraphic)
- , mxCtlLight(new weld::CustomWeld(*m_xBuilder, "lightsource", maCtlLight))
+ : GraphicFilterDialog(pParent, u"cui/ui/embossdialog.ui"_ustr, u"EmbossDialog"_ustr, rGraphic)
+ , mxCtlLight(new weld::CustomWeld(*m_xBuilder, u"lightsource"_ustr, maCtlLight))
{
maCtlLight.SetActualRP(eLightSource);
maCtlLight.SetModifyHdl( GetModifyHdl() );
@@ -431,21 +431,21 @@ GraphicFilterEmboss::~GraphicFilterEmboss()
Graphic GraphicFilterEmboss::GetFilteredGraphic( const Graphic& rGraphic, double, double )
{
Graphic aRet;
- sal_uInt16 nAzim, nElev;
+ Degree100 nAzim, nElev;
switch (maCtlLight.GetActualRP())
{
default: OSL_FAIL("svx::GraphicFilterEmboss::GetFilteredGraphic(), unknown Reference Point!" );
[[fallthrough]];
- case RectPoint::LT: nAzim = 4500; nElev = 4500; break;
- case RectPoint::MT: nAzim = 9000; nElev = 4500; break;
- case RectPoint::RT: nAzim = 13500; nElev = 4500; break;
- case RectPoint::LM: nAzim = 0; nElev = 4500; break;
- case RectPoint::MM: nAzim = 0; nElev = 9000; break;
- case RectPoint::RM: nAzim = 18000; nElev = 4500; break;
- case RectPoint::LB: nAzim = 31500; nElev = 4500; break;
- case RectPoint::MB: nAzim = 27000; nElev = 4500; break;
- case RectPoint::RB: nAzim = 22500; nElev = 4500; break;
+ case RectPoint::LT: nAzim = 4500_deg100; nElev = 4500_deg100; break;
+ case RectPoint::MT: nAzim = 9000_deg100; nElev = 4500_deg100; break;
+ case RectPoint::RT: nAzim = 13500_deg100; nElev = 4500_deg100; break;
+ case RectPoint::LM: nAzim = 0_deg100; nElev = 4500_deg100; break;
+ case RectPoint::MM: nAzim = 0_deg100; nElev = 9000_deg100; break;
+ case RectPoint::RM: nAzim = 18000_deg100; nElev = 4500_deg100; break;
+ case RectPoint::LB: nAzim = 31500_deg100; nElev = 4500_deg100; break;
+ case RectPoint::MB: nAzim = 27000_deg100; nElev = 4500_deg100; break;
+ case RectPoint::RB: nAzim = 22500_deg100; nElev = 4500_deg100; break;
}
if( rGraphic.IsAnimated() )
diff --git a/cui/source/dialogs/cuihyperdlg.cxx b/cui/source/dialogs/cuihyperdlg.cxx
index 66068c084274..2270ab330f0b 100644
--- a/cui/source/dialogs/cuihyperdlg.cxx
+++ b/cui/source/dialogs/cuihyperdlg.cxx
@@ -79,20 +79,23 @@ void SvxHlinkCtrl::StateChangedAtToolBoxControl( sal_uInt16 nSID, SfxItemState e
}
}
+// tdf#90496 - remember last used view in hyperlink dialog
+OUString SvxHpLinkDlg::msRememberedPageId(u"internet"_ustr);
+
//# #
//# Hyperlink - Dialog #
//# #
SvxHpLinkDlg::SvxHpLinkDlg(SfxBindings* pBindings, SfxChildWindow* pChild, weld::Window* pParent)
- : SfxModelessDialogController(pBindings, pChild, pParent, "cui/ui/hyperlinkdialog.ui", "HyperlinkDialog")
+ : SfxModelessDialogController(pBindings, pChild, pParent, u"cui/ui/hyperlinkdialog.ui"_ustr, u"HyperlinkDialog"_ustr)
, pSet ( nullptr )
, maCtrl ( SID_HYPERLINK_GETLINK, *pBindings, this )
, mbIsHTMLDoc ( false )
- , m_xIconCtrl(m_xBuilder->weld_notebook("tabcontrol"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
- , m_xApplyBtn(m_xBuilder->weld_button("apply"))
- , m_xCancelBtn(m_xBuilder->weld_button("cancel"))
- , m_xHelpBtn(m_xBuilder->weld_button("help"))
- , m_xResetBtn(m_xBuilder->weld_button("reset"))
+ , m_xIconCtrl(m_xBuilder->weld_notebook(u"tabcontrol"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xApplyBtn(m_xBuilder->weld_button(u"apply"_ustr))
+ , m_xCancelBtn(m_xBuilder->weld_button(u"cancel"_ustr))
+ , m_xHelpBtn(m_xBuilder->weld_button(u"help"_ustr))
+ , m_xResetBtn(m_xBuilder->weld_button(u"reset"_ustr))
{
m_xIconCtrl->connect_enter_page( LINK ( this, SvxHpLinkDlg, ChosePageHdl_Impl ) );
m_xIconCtrl->show();
@@ -106,15 +109,25 @@ SvxHpLinkDlg::SvxHpLinkDlg(SfxBindings* pBindings, SfxChildWindow* pChild, weld:
// Buttons
m_xOKBtn->show();
- m_xApplyBtn->show();
m_xCancelBtn->show();
- m_xHelpBtn->show();
- m_xResetBtn->show();
+
+ if (comphelper::LibreOfficeKit::isActive())
+ {
+ m_xApplyBtn->hide();
+ m_xHelpBtn->hide();
+ m_xResetBtn->hide();
+ }
+ else
+ {
+ m_xApplyBtn->show();
+ m_xHelpBtn->show();
+ m_xResetBtn->show();
+ }
mbGrabFocus = true;
// set OK/Cancel - button
- m_xCancelBtn->set_label(CuiResId(RID_SVXSTR_HYPDLG_CLOSEBUT));
+ m_xCancelBtn->set_label(CuiResId(RID_CUISTR_HYPDLG_CLOSEBUT));
// create itemset for tabpages
mpItemSet = std::make_unique<SfxItemSetFixed<SID_HYPERLINK_GETLINK,
@@ -126,15 +139,16 @@ SvxHpLinkDlg::SvxHpLinkDlg(SfxBindings* pBindings, SfxChildWindow* pChild, weld:
SetInputSet (mpItemSet.get());
// insert pages
- AddTabPage("internet", SvxHyperlinkInternetTp::Create);
- AddTabPage("mail", SvxHyperlinkMailTp::Create);
+ AddTabPage(u"internet"_ustr, SvxHyperlinkInternetTp::Create);
+ AddTabPage(u"mail"_ustr, SvxHyperlinkMailTp::Create);
if (!comphelper::LibreOfficeKit::isActive())
{
- AddTabPage("document", SvxHyperlinkDocTp::Create);
- AddTabPage("newdocument", SvxHyperlinkNewDocTp::Create);
+ AddTabPage(u"document"_ustr, SvxHyperlinkDocTp::Create);
+ AddTabPage(u"newdocument"_ustr, SvxHyperlinkNewDocTp::Create);
}
- SetCurPageId("internet");
+ // tdf#90496 - remember last used view in hyperlink dialog
+ SetCurPageId(msRememberedPageId);
// Init Dialog
Start();
@@ -177,8 +191,7 @@ void SvxHpLinkDlg::Close()
{
if (IsClosing())
return;
- SfxViewFrame* pViewFrame = SfxViewFrame::Current();
- if (pViewFrame)
+ if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
pViewFrame->ToggleChildWindow(SID_HYPERLINK_DIALOG);
}
@@ -189,17 +202,14 @@ void SvxHpLinkDlg::Apply()
SvxHyperlinkTabPageBase* pCurrentPage = static_cast<SvxHyperlinkTabPageBase*>(
GetTabPage( GetCurPageId() ) );
- if ( pCurrentPage->AskApply() )
- {
- pCurrentPage->FillItemSet( &aItemSet );
+ pCurrentPage->FillItemSet( &aItemSet );
- const SvxHyperlinkItem *aItem = aItemSet.GetItem(SID_HYPERLINK_SETLINK);
- if ( !aItem->GetURL().isEmpty() )
- GetDispatcher()->ExecuteList(SID_HYPERLINK_SETLINK,
- SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { aItem });
+ const SvxHyperlinkItem *aItem = aItemSet.GetItem(SID_HYPERLINK_SETLINK);
+ if ( !aItem->GetURL().isEmpty() )
+ GetDispatcher()->ExecuteList(SID_HYPERLINK_SETLINK,
+ SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { aItem });
- static_cast<SvxHyperlinkTabPageBase*>( GetTabPage( GetCurPageId() ) )->DoApply();
- }
+ static_cast<SvxHyperlinkTabPageBase*>( GetTabPage( GetCurPageId() ) )->DoApply();
}
/// Click on OK button
@@ -226,7 +236,7 @@ IMPL_LINK_NOARG(SvxHpLinkDlg, ClickApplyHdl_Impl, weld::Button&, void)
|************************************************************************/
void SvxHpLinkDlg::SetPage ( SvxHyperlinkItem const * pItem )
{
- OString sPageId("internet");
+ OUString sPageId(u"internet"_ustr);
OUString aStrURL(pItem->GetURL());
INetURLObject aURL(aStrURL);
diff --git a/cui/source/dialogs/cuiimapwnd.cxx b/cui/source/dialogs/cuiimapwnd.cxx
index d613e1a804ee..f850210018bb 100644
--- a/cui/source/dialogs/cuiimapwnd.cxx
+++ b/cui/source/dialogs/cuiimapwnd.cxx
@@ -28,12 +28,12 @@
URLDlg::URLDlg(weld::Widget* pWindow, const OUString& rURL, const OUString& rAlternativeText,
const OUString& rDescription, const OUString& rTarget, const OUString& rName,
TargetList& rTargetList)
- : GenericDialogController(pWindow, "cui/ui/cuiimapdlg.ui", "IMapDialog")
- , m_xEdtURL(m_xBuilder->weld_entry("urlentry"))
- , m_xCbbTargets(m_xBuilder->weld_combo_box("frameCB"))
- , m_xEdtName(m_xBuilder->weld_entry("nameentry"))
- , m_xEdtAlternativeText(m_xBuilder->weld_entry("textentry"))
- , m_xEdtDescription(m_xBuilder->weld_text_view("descTV"))
+ : GenericDialogController(pWindow, u"cui/ui/cuiimapdlg.ui"_ustr, u"IMapDialog"_ustr)
+ , m_xEdtURL(m_xBuilder->weld_entry(u"urlentry"_ustr))
+ , m_xCbbTargets(m_xBuilder->weld_combo_box(u"frameCB"_ustr))
+ , m_xEdtName(m_xBuilder->weld_entry(u"nameentry"_ustr))
+ , m_xEdtAlternativeText(m_xBuilder->weld_entry(u"textentry"_ustr))
+ , m_xEdtDescription(m_xBuilder->weld_text_view(u"descTV"_ustr))
{
m_xEdtDescription->set_size_request(m_xEdtDescription->get_approximate_digit_width() * 51,
m_xEdtDescription->get_height_rows(5));
@@ -47,7 +47,7 @@ URLDlg::URLDlg(weld::Widget* pWindow, const OUString& rURL, const OUString& rAlt
m_xCbbTargets->append_text(a);
if (rTarget.isEmpty())
- m_xCbbTargets->set_entry_text("_self");
+ m_xCbbTargets->set_entry_text(u"_self"_ustr);
else
m_xCbbTargets->set_entry_text(rTarget);
}
diff --git a/cui/source/dialogs/cuitbxform.cxx b/cui/source/dialogs/cuitbxform.cxx
index 55d21325d5bc..a058acc1a877 100644
--- a/cui/source/dialogs/cuitbxform.cxx
+++ b/cui/source/dialogs/cuitbxform.cxx
@@ -20,8 +20,9 @@
#include <cuitbxform.hxx>
FmInputRecordNoDialog::FmInputRecordNoDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/recordnumberdialog.ui", "RecordNumberDialog")
- , m_xRecordNo(m_xBuilder->weld_spin_button("entry"))
+ : GenericDialogController(pParent, u"cui/ui/recordnumberdialog.ui"_ustr,
+ u"RecordNumberDialog"_ustr)
+ , m_xRecordNo(m_xBuilder->weld_spin_button(u"entry"_ustr))
{
m_xRecordNo->set_range(1, 0x7FFFFFFF);
}
diff --git a/cui/source/dialogs/dlgname.cxx b/cui/source/dialogs/dlgname.cxx
index ffa540bbca5b..8067e29bb7c7 100644
--- a/cui/source/dialogs/dlgname.cxx
+++ b/cui/source/dialogs/dlgname.cxx
@@ -19,52 +19,79 @@
#include <dlgname.hxx>
+#include <comphelper/string.hxx>
+
/*************************************************************************
|*
|* Dialog for editing a name
|*
\************************************************************************/
-SvxNameDialog::SvxNameDialog(weld::Window* pParent, const OUString& rName, const OUString& rDesc)
- : GenericDialogController(pParent, "cui/ui/namedialog.ui", "NameDialog")
- , m_xEdtName(m_xBuilder->weld_entry("name_entry"))
- , m_xFtDescription(m_xBuilder->weld_label("description_label"))
- , m_xBtnOK(m_xBuilder->weld_button("ok"))
+SvxNameDialog::SvxNameDialog(weld::Window* pParent, const OUString& rName, const OUString& rDesc,
+ const OUString& rTitle)
+ : GenericDialogController(pParent, u"cui/ui/namedialog.ui"_ustr, u"NameDialog"_ustr)
+ , m_xEdtName(m_xBuilder->weld_entry(u"name_entry"_ustr))
+ , m_xFtDescription(m_xBuilder->weld_label(u"description_label"_ustr))
+ , m_xBtnOK(m_xBuilder->weld_button(u"ok"_ustr))
{
m_xFtDescription->set_label(rDesc);
m_xEdtName->set_text(rName);
m_xEdtName->select_region(0, -1);
ModifyHdl(*m_xEdtName);
m_xEdtName->connect_changed(LINK(this, SvxNameDialog, ModifyHdl));
+ if (!rTitle.isEmpty())
+ set_title(rTitle);
}
IMPL_LINK_NOARG(SvxNameDialog, ModifyHdl, weld::Entry&, void)
{
- // Do not allow empty names
+ // Do not allow empty names, unless custom CheckNameHdl is specified
bool bEnable;
if (m_aCheckNameHdl.IsSet())
- bEnable = !m_xEdtName->get_text().isEmpty() && m_aCheckNameHdl.Call(*this);
+ bEnable = m_aCheckNameHdl.Call(*this);
else
bEnable = !m_xEdtName->get_text().isEmpty();
m_xBtnOK->set_sensitive(bEnable);
// tdf#129032: feedback on reason to disabled controls
m_xEdtName->set_message_type(bEnable ? weld::EntryMessageType::Normal
: weld::EntryMessageType::Error);
- OUString rTip = "";
+ OUString rTip = u""_ustr;
if (!bEnable && m_aCheckNameTooltipHdl.IsSet())
rTip = m_aCheckNameTooltipHdl.Call(*this);
m_xBtnOK->set_tooltip_text(rTip);
m_xEdtName->set_tooltip_text(rTip);
}
+SvxNumberDialog::SvxNumberDialog(weld::Window* pParent, const OUString& rDesc, sal_Int64 nValue,
+ sal_Int64 nMin, sal_Int64 nMax)
+ : GenericDialogController(pParent, u"cui/ui/numberdialog.ui"_ustr, u"NumberDialog"_ustr)
+ , m_xEdtNumber(m_xBuilder->weld_spin_button(u"number_spinbtn"_ustr))
+ , m_xFtDescription(m_xBuilder->weld_label(u"description_label"_ustr))
+{
+ m_xFtDescription->set_label(rDesc);
+ m_xEdtNumber->set_min(nMin);
+ m_xEdtNumber->set_max(nMax);
+ m_xEdtNumber->set_value(nValue);
+}
+
+SvxDecimalNumberDialog::SvxDecimalNumberDialog(weld::Window* pParent, const OUString& rDesc,
+ double fValue)
+ : GenericDialogController(pParent, u"cui/ui/numberdialog.ui"_ustr, u"NumberDialog"_ustr)
+ , m_xEdtNumber(m_xBuilder->weld_formatted_spin_button(u"number_spinbtn"_ustr))
+ , m_xFtDescription(m_xBuilder->weld_label(u"description_label"_ustr))
+{
+ m_xFtDescription->set_label(rDesc);
+ m_xEdtNumber->GetFormatter().SetValue(fValue);
+}
+
// #i68101#
// Dialog for editing Object Name
// plus uniqueness-callback-linkHandler
SvxObjectNameDialog::SvxObjectNameDialog(weld::Window* pParent, const OUString& rName)
- : GenericDialogController(pParent, "cui/ui/objectnamedialog.ui", "ObjectNameDialog")
- , m_xEdtName(m_xBuilder->weld_entry("object_name_entry"))
- , m_xBtnOK(m_xBuilder->weld_button("ok"))
+ : GenericDialogController(pParent, u"cui/ui/objectnamedialog.ui"_ustr, u"ObjectNameDialog"_ustr)
+ , m_xEdtName(m_xBuilder->weld_entry(u"object_name_entry"_ustr))
+ , m_xBtnOK(m_xBuilder->weld_button(u"ok"_ustr))
{
// set name
m_xEdtName->set_text(rName);
@@ -87,10 +114,15 @@ IMPL_LINK_NOARG(SvxObjectNameDialog, ModifyHdl, weld::Entry&, void)
// Dialog for editing Object Title and Description
SvxObjectTitleDescDialog::SvxObjectTitleDescDialog(weld::Window* pParent, const OUString& rTitle,
- const OUString& rDescription)
- : GenericDialogController(pParent, "cui/ui/objecttitledescdialog.ui", "ObjectTitleDescDialog")
- , m_xEdtTitle(m_xBuilder->weld_entry("object_title_entry"))
- , m_xEdtDescription(m_xBuilder->weld_text_view("desc_entry"))
+ const OUString& rDescription,
+ bool const isDecorative)
+ : GenericDialogController(pParent, u"cui/ui/objecttitledescdialog.ui"_ustr,
+ u"ObjectTitleDescDialog"_ustr)
+ , m_xTitleFT(m_xBuilder->weld_label(u"object_title_label"_ustr))
+ , m_xEdtTitle(m_xBuilder->weld_entry(u"object_title_entry"_ustr))
+ , m_xDescriptionFT(m_xBuilder->weld_label(u"desc_label"_ustr))
+ , m_xEdtDescription(m_xBuilder->weld_text_view(u"desc_entry"_ustr))
+ , m_xDecorativeCB(m_xBuilder->weld_check_button(u"decorative"_ustr))
{
//lock height to initial height
m_xEdtDescription->set_size_request(-1, m_xEdtDescription->get_text_height() * 5);
@@ -100,6 +132,154 @@ SvxObjectTitleDescDialog::SvxObjectTitleDescDialog(weld::Window* pParent, const
// activate title
m_xEdtTitle->select_region(0, -1);
+
+ m_xDecorativeCB->set_active(isDecorative);
+ m_xDecorativeCB->connect_toggled(LINK(this, SvxObjectTitleDescDialog, DecorativeHdl));
+ DecorativeHdl(*m_xDecorativeCB);
+}
+
+IMPL_LINK_NOARG(SvxObjectTitleDescDialog, DecorativeHdl, weld::Toggleable&, void)
+{
+ bool const bEnable(!m_xDecorativeCB->get_active());
+ m_xEdtTitle->set_sensitive(bEnable);
+ m_xTitleFT->set_sensitive(bEnable);
+ m_xEdtDescription->set_sensitive(bEnable);
+ m_xDescriptionFT->set_sensitive(bEnable);
+}
+
+SvxListDialog::SvxListDialog(weld::Window* pParent)
+ : GenericDialogController(pParent, u"cui/ui/listdialog.ui"_ustr, u"ListDialog"_ustr)
+ , m_aMode(ListMode::String)
+ , m_xList(m_xBuilder->weld_tree_view(u"assignlist"_ustr))
+ , m_xAddBtn(m_xBuilder->weld_button(u"addbtn"_ustr))
+ , m_xRemoveBtn(m_xBuilder->weld_button(u"removebtn"_ustr))
+ , m_xEditBtn(m_xBuilder->weld_button(u"editbtn"_ustr))
+{
+ m_xList->set_size_request(m_xList->get_approximate_digit_width() * 54,
+ m_xList->get_height_rows(6));
+ m_xAddBtn->connect_clicked(LINK(this, SvxListDialog, AddHdl_Impl));
+ m_xRemoveBtn->connect_clicked(LINK(this, SvxListDialog, RemoveHdl_Impl));
+ m_xEditBtn->connect_clicked(LINK(this, SvxListDialog, EditHdl_Impl));
+ m_xList->connect_changed(LINK(this, SvxListDialog, SelectHdl_Impl));
+ m_xList->connect_row_activated(LINK(this, SvxListDialog, DblClickHdl_Impl));
+
+ SelectionChanged();
+}
+
+SvxListDialog::~SvxListDialog() {}
+
+IMPL_LINK_NOARG(SvxListDialog, AddHdl_Impl, weld::Button&, void)
+{
+ SvxNameDialog aNameDlg(m_xDialog.get(), u""_ustr, u""_ustr);
+
+ if (!aNameDlg.run())
+ return;
+ OUString sNewText = comphelper::string::strip(aNameDlg.GetName(), ' ');
+ if (!sNewText.isEmpty())
+ {
+ m_xList->insert_text(-1, sNewText);
+ m_xList->select(-1);
+ }
+}
+
+IMPL_LINK_NOARG(SvxListDialog, EditHdl_Impl, weld::Button&, void) { EditEntry(); }
+
+IMPL_LINK_NOARG(SvxListDialog, SelectHdl_Impl, weld::TreeView&, void) { SelectionChanged(); }
+
+IMPL_LINK_NOARG(SvxListDialog, DblClickHdl_Impl, weld::TreeView&, bool)
+{
+ EditEntry();
+ return true;
+}
+
+IMPL_LINK_NOARG(SvxListDialog, RemoveHdl_Impl, weld::Button&, void)
+{
+ int nPos = m_xList->get_selected_index();
+ if (nPos == -1)
+ return;
+ m_xList->remove(nPos);
+ int nCount = m_xList->n_children();
+ if (nCount)
+ {
+ if (nPos >= nCount)
+ nPos = nCount - 1;
+ m_xList->select(nPos);
+ }
+ SelectionChanged();
+}
+
+void SvxListDialog::SelectionChanged()
+{
+ bool bEnable = m_xList->get_selected_index() != -1;
+ m_xRemoveBtn->set_sensitive(bEnable);
+ m_xEditBtn->set_sensitive(bEnable);
+}
+
+std::vector<OUString> SvxListDialog::GetEntries()
+{
+ int nCount = m_xList->n_children();
+ std::vector<OUString> aList;
+ aList.reserve(nCount);
+ for (int i = 0; i < nCount; ++i)
+ aList.push_back(m_xList->get_text(i));
+ return aList;
+}
+
+void SvxListDialog::SetEntries(std::vector<OUString> const& rEntries)
+{
+ m_xList->clear();
+ for (auto const& sEntry : rEntries)
+ {
+ m_xList->append_text(sEntry);
+ }
+ SelectionChanged();
}
+void SvxListDialog::EditEntry()
+{
+ int nPos = m_xList->get_selected_index();
+ if (nPos == -1)
+ return;
+
+ OUString sOldText(m_xList->get_selected_text());
+ OUString sNewText;
+
+ if (m_aMode == ListMode::String)
+ {
+ SvxNameDialog aNameDlg(m_xDialog.get(), sOldText, u""_ustr);
+ if (!aNameDlg.run())
+ return;
+ sNewText = comphelper::string::strip(aNameDlg.GetName(), ' ');
+ }
+ else if (m_aMode == ListMode::Int16 || m_aMode == ListMode::Int32 || m_aMode == ListMode::Int64)
+ {
+ sal_Int64 nMin = m_aMode == ListMode::Int16
+ ? SAL_MIN_INT16
+ : m_aMode == ListMode::Int32 ? SAL_MIN_INT32 : SAL_MIN_INT64;
+ sal_Int64 nMax = m_aMode == ListMode::Int16
+ ? SAL_MAX_INT16
+ : m_aMode == ListMode::Int32 ? SAL_MAX_INT32 : SAL_MAX_INT64;
+ SvxNumberDialog aNumberDlg(m_xDialog.get(), u""_ustr, sOldText.toInt64(), nMin, nMax);
+ if (!aNumberDlg.run())
+ return;
+ sNewText = OUString::number(aNumberDlg.GetNumber());
+ }
+ else if (m_aMode == ListMode::Double)
+ {
+ SvxDecimalNumberDialog aNumberDlg(m_xDialog.get(), u""_ustr, sOldText.toDouble());
+ if (!aNumberDlg.run())
+ return;
+ sNewText = OUString::number(aNumberDlg.GetNumber());
+ }
+
+ if (!sNewText.isEmpty() && sNewText != sOldText)
+ {
+ m_xList->remove(nPos);
+ m_xList->insert_text(nPos, sNewText);
+ m_xList->select(nPos);
+ }
+}
+
+void SvxListDialog::SetMode(ListMode aMode) { m_aMode = aMode; };
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/hangulhanjadlg.cxx b/cui/source/dialogs/hangulhanjadlg.cxx
index ec46262284c5..576055575751 100644
--- a/cui/source/dialogs/hangulhanjadlg.cxx
+++ b/cui/source/dialogs/hangulhanjadlg.cxx
@@ -28,7 +28,6 @@
#include <osl/diagnose.h>
#include <tools/debug.hxx>
#include <i18nlangtag/languagetag.hxx>
-#include <vcl/svapp.hxx>
#include <vcl/virdev.hxx>
#include <vcl/weldutils.hxx>
#include <unotools/lingucfg.hxx>
@@ -290,9 +289,9 @@ namespace svx
SuggestionDisplay::SuggestionDisplay(weld::Builder& rBuilder)
: m_bDisplayListBox( true )
, m_bInSelectionUpdate( false )
- , m_xValueSet(new SuggestionSet(rBuilder.weld_scrolled_window("scrollwin", true)))
- , m_xValueSetWin(new weld::CustomWeld(rBuilder, "valueset", *m_xValueSet))
- , m_xListBox(rBuilder.weld_tree_view("listbox"))
+ , m_xValueSet(new SuggestionSet(rBuilder.weld_scrolled_window(u"scrollwin"_ustr, true)))
+ , m_xValueSetWin(new weld::CustomWeld(rBuilder, u"valueset"_ustr, *m_xValueSet))
+ , m_xListBox(rBuilder.weld_tree_view(u"listbox"_ustr))
{
m_xValueSet->SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionValueSetHdl ) );
m_xListBox->connect_changed( LINK( this, SuggestionDisplay, SelectSuggestionListBoxHdl ) );
@@ -300,7 +299,7 @@ namespace svx
m_xValueSet->SetLineCount( LINE_CNT );
m_xValueSet->SetStyle( m_xValueSet->GetStyle() | WB_ITEMBORDER | WB_VSCROLL );
- auto nItemWidth = 2 * m_xListBox->get_pixel_size("AU").Width();
+ auto nItemWidth = 2 * m_xListBox->get_pixel_size(u"AU"_ustr).Width();
m_xValueSet->SetItemWidth( nItemWidth );
Size aSize(m_xListBox->get_approximate_digit_width() * 42, m_xListBox->get_text_height() * 5);
@@ -423,37 +422,37 @@ namespace svx
}
HangulHanjaConversionDialog::HangulHanjaConversionDialog(weld::Widget* pParent)
- : GenericDialogController(pParent, "cui/ui/hangulhanjaconversiondialog.ui", "HangulHanjaConversionDialog")
+ : GenericDialogController(pParent, u"cui/ui/hangulhanjaconversiondialog.ui"_ustr, u"HangulHanjaConversionDialog"_ustr)
, m_bDocumentMode( true )
- , m_xFind(m_xBuilder->weld_button("find"))
- , m_xIgnore(m_xBuilder->weld_button("ignore"))
- , m_xIgnoreAll(m_xBuilder->weld_button("ignoreall"))
- , m_xReplace(m_xBuilder->weld_button("replace"))
- , m_xReplaceAll(m_xBuilder->weld_button("replaceall"))
- , m_xOptions(m_xBuilder->weld_button("options"))
+ , m_xFind(m_xBuilder->weld_button(u"find"_ustr))
+ , m_xIgnore(m_xBuilder->weld_button(u"ignore"_ustr))
+ , m_xIgnoreAll(m_xBuilder->weld_button(u"ignoreall"_ustr))
+ , m_xReplace(m_xBuilder->weld_button(u"replace"_ustr))
+ , m_xReplaceAll(m_xBuilder->weld_button(u"replaceall"_ustr))
+ , m_xOptions(m_xBuilder->weld_button(u"options"_ustr))
, m_xSuggestions(new SuggestionDisplay(*m_xBuilder))
- , m_xSimpleConversion(m_xBuilder->weld_radio_button("simpleconversion"))
- , m_xHangulBracketed(m_xBuilder->weld_radio_button("hangulbracket"))
- , m_xHanjaBracketed(m_xBuilder->weld_radio_button("hanjabracket"))
- , m_xWordInput(m_xBuilder->weld_entry("wordinput"))
- , m_xOriginalWord(m_xBuilder->weld_label("originalword"))
- , m_xHanjaAbove(new RubyRadioButton(m_xBuilder->weld_radio_button("hanja_above"),
- m_xBuilder->weld_image("hanja_above_img")))
- , m_xHanjaBelow(new RubyRadioButton(m_xBuilder->weld_radio_button("hanja_below"),
- m_xBuilder->weld_image("hanja_below_img")))
- , m_xHangulAbove(new RubyRadioButton(m_xBuilder->weld_radio_button("hangul_above"),
- m_xBuilder->weld_image("hangul_above_img")))
- , m_xHangulBelow(new RubyRadioButton(m_xBuilder->weld_radio_button("hangul_below"),
- m_xBuilder->weld_image("hangul_below_img")))
- , m_xHangulOnly(m_xBuilder->weld_check_button("hangulonly"))
- , m_xHanjaOnly(m_xBuilder->weld_check_button("hanjaonly"))
- , m_xReplaceByChar(m_xBuilder->weld_check_button("replacebychar"))
+ , m_xSimpleConversion(m_xBuilder->weld_radio_button(u"simpleconversion"_ustr))
+ , m_xHangulBracketed(m_xBuilder->weld_radio_button(u"hangulbracket"_ustr))
+ , m_xHanjaBracketed(m_xBuilder->weld_radio_button(u"hanjabracket"_ustr))
+ , m_xWordInput(m_xBuilder->weld_entry(u"wordinput"_ustr))
+ , m_xOriginalWord(m_xBuilder->weld_label(u"originalword"_ustr))
+ , m_xHanjaAbove(new RubyRadioButton(m_xBuilder->weld_radio_button(u"hanja_above"_ustr),
+ m_xBuilder->weld_image(u"hanja_above_img"_ustr)))
+ , m_xHanjaBelow(new RubyRadioButton(m_xBuilder->weld_radio_button(u"hanja_below"_ustr),
+ m_xBuilder->weld_image(u"hanja_below_img"_ustr)))
+ , m_xHangulAbove(new RubyRadioButton(m_xBuilder->weld_radio_button(u"hangul_above"_ustr),
+ m_xBuilder->weld_image(u"hangul_above_img"_ustr)))
+ , m_xHangulBelow(new RubyRadioButton(m_xBuilder->weld_radio_button(u"hangul_below"_ustr),
+ m_xBuilder->weld_image(u"hangul_below_img"_ustr)))
+ , m_xHangulOnly(m_xBuilder->weld_check_button(u"hangulonly"_ustr))
+ , m_xHanjaOnly(m_xBuilder->weld_check_button(u"hanjaonly"_ustr))
+ , m_xReplaceByChar(m_xBuilder->weld_check_button(u"replacebychar"_ustr))
{
m_xSuggestions->set_size_request(m_xOriginalWord->get_approximate_digit_width() * 42,
m_xOriginalWord->get_text_height() * 5);
- const OUString sHangul(CuiResId(RID_SVXSTR_HANGUL));
- const OUString sHanja(CuiResId(RID_SVXSTR_HANJA));
+ const OUString sHangul(CuiResId(RID_CUISTR_HANGUL));
+ const OUString sHanja(CuiResId(RID_CUISTR_HANJA));
m_xHanjaAbove->init( sHangul, sHanja, PseudoRubyText::eAbove );
m_xHanjaBelow->init( sHangul, sHanja, PseudoRubyText::eBelow );
m_xHangulAbove->init( sHanja, sHangul, PseudoRubyText::eAbove );
@@ -623,8 +622,7 @@ namespace svx
pNewDefButton = m_xFind.get();
}
- pOldDefButton->set_has_default(false);
- pNewDefButton->set_has_default(true);
+ m_xDialog->change_default_widget(pOldDefButton, pNewDefButton);
}
OUString HangulHanjaConversionDialog::GetCurrentSuggestion( ) const
@@ -731,15 +729,9 @@ namespace svx
Reference< XNameContainer > xNameCont = m_xConversionDictionaryList->getDictionaryContainer();
if( xNameCont.is() )
{
- Sequence< OUString > aDictNames( xNameCont->getElementNames() );
-
- const OUString* pDic = aDictNames.getConstArray();
- sal_Int32 nCount = aDictNames.getLength();
-
- sal_Int32 i;
- for( i = 0 ; i < nCount ; ++i )
+ for (auto& name : xNameCont->getElementNames())
{
- Any aAny( xNameCont->getByName( pDic[ i ] ) );
+ Any aAny(xNameCont->getByName(name));
Reference< XConversionDictionary > xDic;
if( ( aAny >>= xDic ) && xDic.is() )
{
@@ -887,15 +879,15 @@ namespace svx
}
HangulHanjaOptionsDialog::HangulHanjaOptionsDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/hangulhanjaoptdialog.ui", "HangulHanjaOptDialog")
- , m_xDictsLB(m_xBuilder->weld_tree_view("dicts"))
- , m_xIgnorepostCB(m_xBuilder->weld_check_button("ignorepost"))
- , m_xShowrecentlyfirstCB(m_xBuilder->weld_check_button("showrecentfirst"))
- , m_xAutoreplaceuniqueCB(m_xBuilder->weld_check_button("autoreplaceunique"))
- , m_xNewPB(m_xBuilder->weld_button("new"))
- , m_xEditPB(m_xBuilder->weld_button("edit"))
- , m_xDeletePB(m_xBuilder->weld_button("delete"))
- , m_xOkPB(m_xBuilder->weld_button("ok"))
+ : GenericDialogController(pParent, u"cui/ui/hangulhanjaoptdialog.ui"_ustr, u"HangulHanjaOptDialog"_ustr)
+ , m_xDictsLB(m_xBuilder->weld_tree_view(u"dicts"_ustr))
+ , m_xIgnorepostCB(m_xBuilder->weld_check_button(u"ignorepost"_ustr))
+ , m_xShowrecentlyfirstCB(m_xBuilder->weld_check_button(u"showrecentfirst"_ustr))
+ , m_xAutoreplaceuniqueCB(m_xBuilder->weld_check_button(u"autoreplaceunique"_ustr))
+ , m_xNewPB(m_xBuilder->weld_button(u"new"_ustr))
+ , m_xEditPB(m_xBuilder->weld_button(u"edit"_ustr))
+ , m_xDeletePB(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xOkPB(m_xBuilder->weld_button(u"ok"_ustr))
{
m_xDictsLB->set_size_request(m_xDictsLB->get_approximate_digit_width() * 32,
m_xDictsLB->get_height_rows(5));
@@ -959,10 +951,10 @@ namespace svx
}
HangulHanjaNewDictDialog::HangulHanjaNewDictDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/hangulhanjaadddialog.ui", "HangulHanjaAddDialog")
+ : GenericDialogController(pParent, u"cui/ui/hangulhanjaadddialog.ui"_ustr, u"HangulHanjaAddDialog"_ustr)
, m_bEntered(false)
- , m_xOkBtn(m_xBuilder->weld_button("ok"))
- , m_xDictNameED(m_xBuilder->weld_entry("entry"))
+ , m_xOkBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xDictNameED(m_xBuilder->weld_entry(u"entry"_ustr))
{
m_xOkBtn->connect_clicked( LINK( this, HangulHanjaNewDictDialog, OKHdl ) );
m_xDictNameED->connect_changed( LINK( this, HangulHanjaNewDictDialog, ModifyHdl ) );
@@ -1374,20 +1366,13 @@ namespace svx
m_xSuggestions->Clear();
//fill found entries into boxes
- sal_uInt32 nCnt = aEntries.getLength();
- if( nCnt )
+ if (aEntries.hasElements())
{
if( !m_xSuggestions )
m_xSuggestions.reset(new SuggestionList);
- const OUString* pSugg = aEntries.getConstArray();
- sal_uInt32 n = 0;
- while( nCnt )
- {
- m_xSuggestions->Set( pSugg[ n ], sal_uInt16( n ) );
- ++n;
- --nCnt;
- }
+ for (sal_Int32 n = 0; n < aEntries.getLength(); ++n)
+ m_xSuggestions->Set(aEntries[n], n);
}
m_bModifiedSuggestions = false;
}
@@ -1431,23 +1416,23 @@ namespace svx
}
HangulHanjaEditDictDialog::HangulHanjaEditDictDialog(weld::Window* pParent, HHDictList& _rDictList, sal_uInt32 nSelDict)
- : GenericDialogController(pParent, "cui/ui/hangulhanjaeditdictdialog.ui", "HangulHanjaEditDictDialog")
- , m_aEditHintText ( CuiResId(RID_SVXSTR_EDITHINT) )
+ : GenericDialogController(pParent, u"cui/ui/hangulhanjaeditdictdialog.ui"_ustr, u"HangulHanjaEditDictDialog"_ustr)
+ , m_aEditHintText ( CuiResId(RID_CUISTR_EDITHINT) )
, m_rDictList ( _rDictList )
, m_nCurrentDict ( 0xFFFFFFFF )
, m_nTopPos ( 0 )
, m_bModifiedSuggestions ( false )
, m_bModifiedOriginal ( false )
- , m_xBookLB(m_xBuilder->weld_combo_box("book"))
- , m_xOriginalLB(m_xBuilder->weld_combo_box("original"))
- , m_xEdit1(new SuggestionEdit(m_xBuilder->weld_entry("edit1"), this))
- , m_xEdit2(new SuggestionEdit(m_xBuilder->weld_entry("edit2"), this))
- , m_xEdit3(new SuggestionEdit(m_xBuilder->weld_entry("edit3"), this))
- , m_xEdit4(new SuggestionEdit(m_xBuilder->weld_entry("edit4"), this))
- , m_xContents(m_xBuilder->weld_widget("box"))
- , m_xScrollSB(m_xBuilder->weld_scrolled_window("scrollbar", true))
- , m_xNewPB(m_xBuilder->weld_button("new"))
- , m_xDeletePB(m_xBuilder->weld_button("delete"))
+ , m_xBookLB(m_xBuilder->weld_combo_box(u"book"_ustr))
+ , m_xOriginalLB(m_xBuilder->weld_combo_box(u"original"_ustr))
+ , m_xEdit1(new SuggestionEdit(m_xBuilder->weld_entry(u"edit1"_ustr), this))
+ , m_xEdit2(new SuggestionEdit(m_xBuilder->weld_entry(u"edit2"_ustr), this))
+ , m_xEdit3(new SuggestionEdit(m_xBuilder->weld_entry(u"edit3"_ustr), this))
+ , m_xEdit4(new SuggestionEdit(m_xBuilder->weld_entry(u"edit4"_ustr), this))
+ , m_xContents(m_xBuilder->weld_widget(u"box"_ustr))
+ , m_xScrollSB(m_xBuilder->weld_scrolled_window(u"scrollbar"_ustr, true))
+ , m_xNewPB(m_xBuilder->weld_button(u"new"_ustr))
+ , m_xDeletePB(m_xBuilder->weld_button(u"delete"_ustr))
{
Size aSize(m_xContents->get_preferred_size());
m_xScrollSB->set_size_request(-1, aSize.Height());
diff --git a/cui/source/dialogs/hldocntp.cxx b/cui/source/dialogs/hldocntp.cxx
index 8d8628ded6ed..b09fbafe9764 100644
--- a/cui/source/dialogs/hldocntp.cxx
+++ b/cui/source/dialogs/hldocntp.cxx
@@ -25,9 +25,8 @@
#include <svl/stritem.hxx>
#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/uno/Sequence.h>
-#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/uno/Exception.hpp>
+#include <utility>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <tools/urlobj.hxx>
@@ -37,14 +36,13 @@
#include <unotools/ucbhelper.hxx>
#include <comphelper/processfactory.hxx>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
+#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <cuihyperdlg.hxx>
#include <dialmgr.hxx>
#include <strings.hrc>
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno;
@@ -62,13 +60,13 @@ struct DocumentTypeData
{
OUString aStrURL;
OUString aStrExt;
- DocumentTypeData (const OUString& aURL, const OUString& aExt) : aStrURL(aURL), aStrExt(aExt)
+ DocumentTypeData (OUString aURL, OUString aExt) : aStrURL(std::move(aURL)), aStrExt(std::move(aExt))
{}
};
}
-bool SvxHyperlinkNewDocTp::ImplGetURLObject( const OUString& rPath, const OUString& rBase, INetURLObject& aURLObject ) const
+bool SvxHyperlinkNewDocTp::ImplGetURLObject( const OUString& rPath, std::u16string_view rBase, INetURLObject& aURLObject ) const
{
bool bIsValidURL = !rPath.isEmpty();
if ( bIsValidURL )
@@ -94,7 +92,7 @@ bool SvxHyperlinkNewDocTp::ImplGetURLObject( const OUString& rPath, const OUStri
{
sal_Int32 nPos = m_xLbDocTypes->get_selected_index();
if (nPos != -1)
- aURLObject.SetExtension(reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos).toInt64())->aStrExt);
+ aURLObject.SetExtension(weld::fromId<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos))->aStrExt);
}
}
@@ -108,12 +106,12 @@ bool SvxHyperlinkNewDocTp::ImplGetURLObject( const OUString& rPath, const OUStri
|************************************************************************/
SvxHyperlinkNewDocTp::SvxHyperlinkNewDocTp(weld::Container* pParent, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet)
- : SvxHyperlinkTabPageBase(pParent, pDlg, "cui/ui/hyperlinknewdocpage.ui", "HyperlinkNewDocPage", pItemSet)
- , m_xRbtEditNow(xBuilder->weld_radio_button("editnow"))
- , m_xRbtEditLater(xBuilder->weld_radio_button("editlater"))
- , m_xCbbPath(new SvxHyperURLBox(xBuilder->weld_combo_box("path")))
- , m_xBtCreate(xBuilder->weld_button("create"))
- , m_xLbDocTypes(xBuilder->weld_tree_view("types"))
+ : SvxHyperlinkTabPageBase(pParent, pDlg, u"cui/ui/hyperlinknewdocpage.ui"_ustr, u"HyperlinkNewDocPage"_ustr, pItemSet)
+ , m_xRbtEditNow(xBuilder->weld_radio_button(u"editnow"_ustr))
+ , m_xRbtEditLater(xBuilder->weld_radio_button(u"editlater"_ustr))
+ , m_xCbbPath(new SvxHyperURLBox(xBuilder->weld_combo_box(u"path"_ustr)))
+ , m_xBtCreate(xBuilder->weld_button(u"create"_ustr))
+ , m_xLbDocTypes(xBuilder->weld_tree_view(u"types"_ustr))
{
m_xCbbPath->SetSmartProtocol(INetProtocol::File);
m_xLbDocTypes->set_size_request(-1, m_xLbDocTypes->get_height_rows(5));
@@ -138,7 +136,7 @@ SvxHyperlinkNewDocTp::~SvxHyperlinkNewDocTp ()
if (m_xLbDocTypes)
{
for (sal_Int32 n = 0, nEntryCount = m_xLbDocTypes->n_children(); n < nEntryCount; ++n)
- delete reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(n).toInt64());
+ delete weld::fromId<DocumentTypeData*>(m_xLbDocTypes->get_id(n));
m_xLbDocTypes = nullptr;
}
}
@@ -186,7 +184,7 @@ void SvxHyperlinkNewDocTp::FillDocumentList()
OUString aStrDefExt(pFilter->GetDefaultExtension());
DocumentTypeData *pTypeData = new DocumentTypeData(aDocumentUrl, aStrDefExt.copy(2));
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pTypeData)));
+ OUString sId(weld::toId(pTypeData));
m_xLbDocTypes->append(sId, aTitleName);
}
}
@@ -200,7 +198,7 @@ void SvxHyperlinkNewDocTp::FillDocumentList()
|*
|************************************************************************/
-void SvxHyperlinkNewDocTp::GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+void SvxHyperlinkNewDocTp::GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode )
{
@@ -236,25 +234,6 @@ void SvxHyperlinkNewDocTp::SetInitFocus()
m_xCbbPath->grab_focus();
}
-/*************************************************************************
-|*
-|* Ask page whether an insert is possible
-|*
-\************************************************************************/
-bool SvxHyperlinkNewDocTp::AskApply()
-{
- INetURLObject aINetURLObject;
- bool bRet = ImplGetURLObject(m_xCbbPath->get_active_text(), m_xCbbPath->GetBaseURL(), aINetURLObject);
- if ( !bRet )
- {
- std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(mpDialog->getDialog(),
- VclMessageType::Warning, VclButtonsType::Ok,
- CuiResId(RID_SVXSTR_HYPDLG_NOVALIDFILENAME)));
- xWarn->run();
- }
- return bRet;
-}
-
namespace
{
struct ExecuteInfo
@@ -283,8 +262,8 @@ IMPL_STATIC_LINK(SvxHyperlinkNewDocTp, DispatchDocument, void*, p, void)
// create items
SfxStringItem aName( SID_FILE_NAME, xExecuteInfo->aStrDocName );
- SfxStringItem aReferer( SID_REFERER, "private:user" );
- SfxStringItem aFrame( SID_TARGETNAME, "_blank");
+ SfxStringItem aReferer( SID_REFERER, u"private:user"_ustr );
+ SfxStringItem aFrame( SID_TARGETNAME, u"_blank"_ustr);
OUString aStrFlags('S');
if (xExecuteInfo->bRbtEditLater)
@@ -294,12 +273,12 @@ IMPL_STATIC_LINK(SvxHyperlinkNewDocTp, DispatchDocument, void*, p, void)
SfxStringItem aFlags (SID_OPTIONS, aStrFlags);
// open url
- const SfxPoolItem* pReturn = xExecuteInfo->pDispatcher->ExecuteList(
- SID_OPENDOC, SfxCallMode::SYNCHRON,
- { &aName, &aFlags, &aFrame, &aReferer });
+ const SfxPoolItemHolder aResult(xExecuteInfo->pDispatcher->ExecuteList(
+ SID_OPENDOC, SfxCallMode::SYNCHRON,
+ { &aName, &aFlags, &aFrame, &aReferer }));
// save new doc
- const SfxViewFrameItem *pItem = dynamic_cast<const SfxViewFrameItem*>( pReturn ); // SJ: pReturn is NULL if the Hyperlink
+ const SfxViewFrameItem *pItem = dynamic_cast<const SfxViewFrameItem*>(aResult.getItem()); // aResult is NULL if the Hyperlink
if ( pItem ) // creation is cancelled #106216#
{
pViewFrame = pItem->GetFrame();
@@ -307,7 +286,6 @@ IMPL_STATIC_LINK(SvxHyperlinkNewDocTp, DispatchDocument, void*, p, void)
{
SfxStringItem aNewName( SID_FILE_NAME, xExecuteInfo->aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
SfxUnoFrameItem aDocFrame( SID_FILLFRAME, pViewFrame->GetFrame().GetFrameInterface() );
- fprintf(stderr, "is there a frame int %p\n", pViewFrame->GetFrame().GetFrameInterface().get() );
pViewFrame->GetDispatcher()->ExecuteList(
SID_SAVEASDOC, SfxCallMode::SYNCHRON,
{ &aNewName }, { &aDocFrame });
@@ -368,7 +346,7 @@ void SvxHyperlinkNewDocTp::DoApply()
{
std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(mpDialog->getDialog(),
VclMessageType::Warning, VclButtonsType::YesNo,
- CuiResId(RID_SVXSTR_HYPERDLG_QUERYOVERWRITE)));
+ CuiResId(RID_CUISTR_HYPERDLG_QUERYOVERWRITE)));
bCreate = xWarn->run() == RET_YES;
}
}
@@ -388,7 +366,7 @@ void SvxHyperlinkNewDocTp::DoApply()
if (nPos == -1)
nPos = 0;
pExecuteInfo->aURL = aURL;
- pExecuteInfo->aStrDocName = reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos).toInt64())->aStrURL;
+ pExecuteInfo->aStrDocName = weld::fromId<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos))->aStrURL;
// current document
pExecuteInfo->xFrame = GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface();
@@ -452,7 +430,7 @@ IMPL_LINK_NOARG(SvxHyperlinkNewDocTp, ClickNewHdl_Impl, weld::Button&, void)
{
// get private-url
const sal_Int32 nPos = m_xLbDocTypes->get_selected_index();
- aNewURL.setExtension(reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos).toInt64())->aStrExt);
+ aNewURL.setExtension(weld::fromId<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos))->aStrExt);
}
if( aNewURL.GetProtocol() == INetProtocol::File )
diff --git a/cui/source/dialogs/hldoctp.cxx b/cui/source/dialogs/hldoctp.cxx
index 152a7ec7fbc1..b414309bea0b 100644
--- a/cui/source/dialogs/hldoctp.cxx
+++ b/cui/source/dialogs/hldoctp.cxx
@@ -34,12 +34,12 @@ char const sHash[] = "#";
|************************************************************************/
SvxHyperlinkDocTp::SvxHyperlinkDocTp(weld::Container* pParent, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet)
- : SvxHyperlinkTabPageBase(pParent, pDlg, "cui/ui/hyperlinkdocpage.ui", "HyperlinkDocPage", pItemSet)
- , m_xCbbPath(new SvxHyperURLBox(xBuilder->weld_combo_box("path")))
- , m_xBtFileopen(xBuilder->weld_button("fileopen"))
- , m_xEdTarget(xBuilder->weld_entry("target"))
- , m_xFtFullURL(xBuilder->weld_label("url"))
- , m_xBtBrowse(xBuilder->weld_button("browse"))
+ : SvxHyperlinkTabPageBase(pParent, pDlg, u"cui/ui/hyperlinkdocpage.ui"_ustr, u"HyperlinkDocPage"_ustr, pItemSet)
+ , m_xCbbPath(new SvxHyperURLBox(xBuilder->weld_combo_box(u"path"_ustr)))
+ , m_xBtFileopen(xBuilder->weld_button(u"fileopen"_ustr))
+ , m_xEdTarget(xBuilder->weld_entry(u"target"_ustr))
+ , m_xFtFullURL(xBuilder->weld_label(u"url"_ustr))
+ , m_xBtBrowse(xBuilder->weld_button(u"browse"_ustr))
, m_bMarkWndOpen(false)
{
m_xCbbPath->SetSmartProtocol(INetProtocol::File);
@@ -127,7 +127,7 @@ OUString SvxHyperlinkDocTp::GetCurrentURL () const
|* retrieve and prepare data from dialog-fields
|*
|************************************************************************/
-void SvxHyperlinkDocTp::GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+void SvxHyperlinkDocTp::GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode )
{
@@ -217,7 +217,7 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, ClickTargetHdl_Impl, weld::Button&, void)
weld::WaitObject aWait(mpDialog->getDialog());
if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) )
- mxMarkWnd->RefreshTree ( "" );
+ mxMarkWnd->RefreshTree ( u""_ustr );
else
mxMarkWnd->RefreshTree ( maStrURL );
}
@@ -254,7 +254,7 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, TimeoutHdl_Impl, Timer *, void)
weld::WaitObject aWait(mpDialog->getDialog());
if ( maStrURL.equalsIgnoreAsciiCase( INET_FILE_SCHEME ) )
- mxMarkWnd->RefreshTree ( "" );
+ mxMarkWnd->RefreshTree ( u""_ustr );
else
mxMarkWnd->RefreshTree ( maStrURL );
}
@@ -304,7 +304,7 @@ void SvxHyperlinkDocTp::SetMarkStr ( const OUString& aStrMark )
|* retrieve kind of pathstr
|*
|************************************************************************/
-SvxHyperlinkDocTp::EPathType SvxHyperlinkDocTp::GetPathType ( const OUString& rStrPath )
+SvxHyperlinkDocTp::EPathType SvxHyperlinkDocTp::GetPathType ( std::u16string_view rStrPath )
{
INetURLObject aURL( rStrPath, INetProtocol::File );
diff --git a/cui/source/dialogs/hlinettp.cxx b/cui/source/dialogs/hlinettp.cxx
index c26420d5703a..90348fe3f508 100644
--- a/cui/source/dialogs/hlinettp.cxx
+++ b/cui/source/dialogs/hlinettp.cxx
@@ -24,7 +24,6 @@
#include <hlinettp.hxx>
#include <hlmarkwn_def.hxx>
-constexpr OUStringLiteral sAnonymous = u"anonymous";
/*************************************************************************
|*
@@ -34,18 +33,11 @@ constexpr OUStringLiteral sAnonymous = u"anonymous";
SvxHyperlinkInternetTp::SvxHyperlinkInternetTp(weld::Container* pParent,
SvxHpLinkDlg* pDlg,
const SfxItemSet* pItemSet)
- : SvxHyperlinkTabPageBase(pParent, pDlg, "cui/ui/hyperlinkinternetpage.ui", "HyperlinkInternetPage",
+ : SvxHyperlinkTabPageBase(pParent, pDlg, u"cui/ui/hyperlinkinternetpage.ui"_ustr, u"HyperlinkInternetPage"_ustr,
pItemSet)
, m_bMarkWndOpen(false)
- , m_xRbtLinktypInternet(xBuilder->weld_radio_button("linktyp_internet"))
- , m_xRbtLinktypFTP(xBuilder->weld_radio_button("linktyp_ftp"))
- , m_xCbbTarget(new SvxHyperURLBox(xBuilder->weld_combo_box("target")))
- , m_xFtTarget(xBuilder->weld_label("target_label"))
- , m_xFtLogin(xBuilder->weld_label("login_label"))
- , m_xEdLogin(xBuilder->weld_entry("login"))
- , m_xFtPassword(xBuilder->weld_label("password_label"))
- , m_xEdPassword(xBuilder->weld_entry("password"))
- , m_xCbAnonymous(xBuilder->weld_check_button("anonymous"))
+ , m_xCbbTarget(new SvxHyperURLBox(xBuilder->weld_combo_box(u"target"_ustr)))
+ , m_xFtTarget(xBuilder->weld_label(u"target_label"_ustr))
{
// gtk_size_group_set_ignore_hidden, "Measuring the size of hidden widgets
// ... they will report a size of 0 nowadays, and thus, their size will
@@ -63,15 +55,7 @@ SvxHyperlinkInternetTp::SvxHyperlinkInternetTp(weld::Container* pParent,
SetExchangeSupport ();
- // set defaults
- m_xRbtLinktypInternet->set_active(true);
-
// set handlers
- Link<weld::Toggleable&, void> aLink( LINK ( this, SvxHyperlinkInternetTp, Click_SmartProtocol_Impl ) );
- m_xRbtLinktypInternet->connect_toggled( aLink );
- m_xRbtLinktypFTP->connect_toggled( aLink );
- m_xCbAnonymous->connect_toggled( LINK ( this, SvxHyperlinkInternetTp, ClickAnonymousHdl_Impl ) );
- m_xEdLogin->connect_changed( LINK ( this, SvxHyperlinkInternetTp, ModifiedLoginHdl_Impl ) );
m_xCbbTarget->connect_focus_out( LINK ( this, SvxHyperlinkInternetTp, LostFocusTargetHdl_Impl ) );
m_xCbbTarget->connect_changed( LINK ( this, SvxHyperlinkInternetTp, ModifiedTargetHdl_Impl ) );
maTimer.SetInvokeHandler ( LINK ( this, SvxHyperlinkInternetTp, TimeoutHdl_Impl ) );
@@ -91,19 +75,6 @@ void SvxHyperlinkInternetTp::FillDlgFields(const OUString& rStrURL)
INetURLObject aURL(rStrURL);
OUString aStrScheme(GetSchemeFromURL(rStrURL));
- // set additional controls for FTP: Username / Password
- if (aStrScheme.startsWith(INET_FTP_SCHEME))
- {
- if ( aURL.GetUser().toAsciiLowerCase().startsWith( sAnonymous ) )
- setAnonymousFTPUser();
- else
- setFTPUser(aURL.GetUser(), aURL.GetPass());
-
- //do not show password and user in url
- if(!aURL.GetUser().isEmpty() || !aURL.GetPass().isEmpty() )
- aURL.SetUserAndPass(u"", u"");
- }
-
// set URL-field
// Show the scheme, #72740
if ( aURL.GetProtocol() != INetProtocol::NotValid )
@@ -114,38 +85,13 @@ void SvxHyperlinkInternetTp::FillDlgFields(const OUString& rStrURL)
SetScheme(aStrScheme);
}
-void SvxHyperlinkInternetTp::setAnonymousFTPUser()
-{
- m_xEdLogin->set_text(sAnonymous);
- SvAddressParser aAddress(SvtUserOptions().GetEmail());
- m_xEdPassword->set_text(aAddress.Count() ? aAddress.GetEmailAddress(0) : OUString());
-
- m_xFtLogin->set_sensitive(false);
- m_xFtPassword->set_sensitive(false);
- m_xEdLogin->set_sensitive(false);
- m_xEdPassword->set_sensitive(false);
- m_xCbAnonymous->set_active(true);
-}
-
-void SvxHyperlinkInternetTp::setFTPUser(const OUString& rUser, const OUString& rPassword)
-{
- m_xEdLogin->set_text(rUser);
- m_xEdPassword->set_text(rPassword);
-
- m_xFtLogin->set_sensitive(true);
- m_xFtPassword->set_sensitive(true);
- m_xEdLogin->set_sensitive(true);
- m_xEdPassword->set_sensitive(true);
- m_xCbAnonymous->set_active(false);
-}
-
/*************************************************************************
|*
|* retrieve and prepare data from dialog-fields
|*
|************************************************************************/
-void SvxHyperlinkInternetTp::GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+void SvxHyperlinkInternetTp::GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode )
{
@@ -158,17 +104,7 @@ OUString SvxHyperlinkInternetTp::CreateAbsoluteURL() const
// erase leading and trailing whitespaces
OUString aStrURL(m_xCbbTarget->get_active_text().trim());
- INetURLObject aURL(aStrURL);
-
- if( aURL.GetProtocol() == INetProtocol::NotValid )
- {
- aURL.SetSmartProtocol( GetSmartProtocolFromButtons() );
- aURL.SetSmartURL(aStrURL);
- }
-
- // username and password for ftp-url
- if( aURL.GetProtocol() == INetProtocol::Ftp && !m_xEdLogin->get_text().isEmpty() )
- aURL.SetUserAndPass ( m_xEdLogin->get_text(), m_xEdPassword->get_text() );
+ INetURLObject aURL(aStrURL, GetSmartProtocolFromButtons());
if ( aURL.GetProtocol() != INetProtocol::NotValid )
return aURL.GetMainURL( INetURLObject::DecodeMechanism::ToIUri );
@@ -223,42 +159,12 @@ IMPL_LINK_NOARG(SvxHyperlinkInternetTp, TimeoutHdl_Impl, Timer *, void)
RefreshMarkWindow();
}
-/*************************************************************************
-|*
-|* Contents of editfield "Login" modified
-|*
-|************************************************************************/
-IMPL_LINK_NOARG(SvxHyperlinkInternetTp, ModifiedLoginHdl_Impl, weld::Entry&, void)
-{
- OUString aStrLogin ( m_xEdLogin->get_text() );
- if ( aStrLogin.equalsIgnoreAsciiCase( sAnonymous ) )
- {
- m_xCbAnonymous->set_active(true);
- ClickAnonymousHdl_Impl(*m_xCbAnonymous);
- }
-}
-
void SvxHyperlinkInternetTp::SetScheme(std::u16string_view rScheme)
{
- //if rScheme is empty or unknown the default behaviour is like it where HTTP
- bool bFTP = o3tl::starts_with(rScheme, INET_FTP_SCHEME);
- bool bInternet = !bFTP;
-
- //update protocol button selection:
- m_xRbtLinktypFTP->set_active(bFTP);
- m_xRbtLinktypInternet->set_active(bInternet);
-
//update target:
RemoveImproperProtocol(rScheme);
m_xCbbTarget->SetSmartProtocol( GetSmartProtocolFromButtons() );
- //show/hide special fields for FTP:
- m_xFtLogin->set_visible( bFTP );
- m_xFtPassword->set_visible( bFTP );
- m_xEdLogin->set_visible( bFTP );
- m_xEdPassword->set_visible( bFTP );
- m_xCbAnonymous->set_visible( bFTP );
-
//update 'link target in document'-window and opening-button
if (o3tl::starts_with(rScheme, INET_HTTP_SCHEME) || rScheme.empty())
{
@@ -293,64 +199,13 @@ void SvxHyperlinkInternetTp::RemoveImproperProtocol(std::u16string_view aProperS
}
}
-OUString SvxHyperlinkInternetTp::GetSchemeFromButtons() const
+INetProtocol SvxHyperlinkInternetTp::GetSmartProtocolFromButtons()
{
- if( m_xRbtLinktypFTP->get_active() )
- return INET_FTP_SCHEME;
- return INET_HTTP_SCHEME;
-}
-
-INetProtocol SvxHyperlinkInternetTp::GetSmartProtocolFromButtons() const
-{
- if( m_xRbtLinktypFTP->get_active() )
- {
- return INetProtocol::Ftp;
- }
return INetProtocol::Http;
}
/*************************************************************************
|*
-|* Click on Radiobutton : Internet or FTP
-|*
-|************************************************************************/
-IMPL_LINK(SvxHyperlinkInternetTp, Click_SmartProtocol_Impl, weld::Toggleable&, rButton, void)
-{
- if (!rButton.get_active())
- return;
- OUString aScheme = GetSchemeFromButtons();
- SetScheme(aScheme);
-}
-
-/*************************************************************************
-|*
-|* Click on Checkbox : Anonymous user
-|*
-|************************************************************************/
-IMPL_LINK_NOARG(SvxHyperlinkInternetTp, ClickAnonymousHdl_Impl, weld::Toggleable&, void)
-{
- // disable login-editfields if checked
- if ( m_xCbAnonymous->get_active() )
- {
- if ( m_xEdLogin->get_text().toAsciiLowerCase().startsWith( sAnonymous ) )
- {
- maStrOldUser.clear();
- maStrOldPassword.clear();
- }
- else
- {
- maStrOldUser = m_xEdLogin->get_text();
- maStrOldPassword = m_xEdPassword->get_text();
- }
-
- setAnonymousFTPUser();
- }
- else
- setFTPUser(maStrOldUser, maStrOldPassword);
-}
-
-/*************************************************************************
-|*
|* Combobox Target lost the focus
|*
|************************************************************************/
@@ -361,7 +216,7 @@ IMPL_LINK_NOARG(SvxHyperlinkInternetTp, LostFocusTargetHdl_Impl, weld::Widget&,
void SvxHyperlinkInternetTp::RefreshMarkWindow()
{
- if (m_xRbtLinktypInternet->get_active() && IsMarkWndVisible())
+ if (IsMarkWndVisible())
{
weld::WaitObject aWait(mpDialog->getDialog());
OUString aStrURL( CreateAbsoluteURL() );
diff --git a/cui/source/dialogs/hlmailtp.cxx b/cui/source/dialogs/hlmailtp.cxx
index 521af033b422..73904ed34258 100644
--- a/cui/source/dialogs/hlmailtp.cxx
+++ b/cui/source/dialogs/hlmailtp.cxx
@@ -34,11 +34,10 @@ using namespace ::com::sun::star;
|*
|************************************************************************/
SvxHyperlinkMailTp::SvxHyperlinkMailTp(weld::Container* pParent, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet)
- : SvxHyperlinkTabPageBase(pParent, pDlg, "cui/ui/hyperlinkmailpage.ui", "HyperlinkMailPage", pItemSet)
- , m_xCbbReceiver(new SvxHyperURLBox(xBuilder->weld_combo_box("receiver")))
- , m_xBtAdrBook(xBuilder->weld_button("addressbook"))
- , m_xFtSubject(xBuilder->weld_label("subject_label"))
- , m_xEdSubject(xBuilder->weld_entry("subject"))
+ : SvxHyperlinkTabPageBase(pParent, pDlg, u"cui/ui/hyperlinkmailpage.ui"_ustr, u"HyperlinkMailPage"_ustr, pItemSet)
+ , m_xCbbReceiver(new SvxHyperURLBox(xBuilder->weld_combo_box(u"receiver"_ustr)))
+ , m_xBtAdrBook(xBuilder->weld_button(u"addressbook"_ustr))
+ , m_xEdSubject(xBuilder->weld_entry(u"subject"_ustr))
{
m_xCbbReceiver->SetSmartProtocol(INetProtocol::Mailto);
@@ -96,7 +95,7 @@ void SvxHyperlinkMailTp::FillDlgFields(const OUString& rStrURL)
}
else
{
- m_xEdSubject->set_text("");
+ m_xEdSubject->set_text(u""_ustr);
}
m_xCbbReceiver->set_entry_text(aStrURLc);
@@ -109,7 +108,7 @@ void SvxHyperlinkMailTp::FillDlgFields(const OUString& rStrURL)
|* retrieve and prepare data from dialog-fields
|*
|************************************************************************/
-void SvxHyperlinkMailTp::GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+void SvxHyperlinkMailTp::GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode )
{
@@ -120,13 +119,7 @@ void SvxHyperlinkMailTp::GetCurentItemData ( OUString& rStrURL, OUString& aStrNa
OUString SvxHyperlinkMailTp::CreateAbsoluteURL() const
{
OUString aStrURL = m_xCbbReceiver->get_active_text();
- INetURLObject aURL(aStrURL);
-
- if( aURL.GetProtocol() == INetProtocol::NotValid )
- {
- aURL.SetSmartProtocol( INetProtocol::Mailto );
- aURL.SetSmartURL(aStrURL);
- }
+ INetURLObject aURL(aStrURL, INetProtocol::Mailto);
// subject for EMail-url
if( aURL.GetProtocol() == INetProtocol::Mailto )
@@ -216,8 +209,7 @@ IMPL_LINK_NOARG(SvxHyperlinkMailTp, ModifiedReceiverHdl_Impl, weld::ComboBox&, v
|************************************************************************/
IMPL_STATIC_LINK_NOARG(SvxHyperlinkMailTp, ClickAdrBookHdl_Impl, weld::Button&, void)
{
- SfxViewFrame* pViewFrame = SfxViewFrame::Current();
- if( pViewFrame )
+ if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
{
SfxItemPool &rPool = pViewFrame->GetPool();
SfxRequest aReq(SID_VIEW_DATA_SOURCE_BROWSER, SfxCallMode::SLOT, rPool);
diff --git a/cui/source/dialogs/hlmarkwn.cxx b/cui/source/dialogs/hlmarkwn.cxx
index 45b9a75eb2eb..0f45cfe9680a 100644
--- a/cui/source/dialogs/hlmarkwn.cxx
+++ b/cui/source/dialogs/hlmarkwn.cxx
@@ -19,6 +19,7 @@
#include <dialmgr.hxx>
#include <o3tl/any.hxx>
+#include <comphelper/propertyvalue.hxx>
#include <unotools/viewoptions.hxx>
#include <vcl/graph.hxx>
@@ -65,38 +66,46 @@ struct TargetData
//*** Window-Class ***
// Constructor / Destructor
SvxHlinkDlgMarkWnd::SvxHlinkDlgMarkWnd(weld::Window* pParentDialog, SvxHyperlinkTabPageBase *pParentPage)
- : GenericDialogController(pParentDialog, "cui/ui/hyperlinkmarkdialog.ui", "HyperlinkMark")
+ : GenericDialogController(pParentDialog, u"cui/ui/hyperlinkmarkdialog.ui"_ustr, u"HyperlinkMark"_ustr)
, mpParent(pParentPage)
, mnError(LERR_NOERROR)
- , mxBtApply(m_xBuilder->weld_button("ok"))
- , mxBtClose(m_xBuilder->weld_button("close"))
- , mxLbTree(m_xBuilder->weld_tree_view("TreeListBox"))
- , mxError(m_xBuilder->weld_label("error"))
+ , mxBtApply(m_xBuilder->weld_button(u"ok"_ustr))
+ , mxBtClose(m_xBuilder->weld_button(u"close"_ustr))
+ , mxLbTree(m_xBuilder->weld_tree_view(u"TreeListBox"_ustr))
+ , mxError(m_xBuilder->weld_label(u"error"_ustr))
{
mxLbTree->set_size_request(mxLbTree->get_approximate_digit_width() * 25,
mxLbTree->get_height_rows(12));
mxBtApply->connect_clicked( LINK ( this, SvxHlinkDlgMarkWnd, ClickApplyHdl_Impl ) );
mxBtClose->connect_clicked( LINK ( this, SvxHlinkDlgMarkWnd, ClickCloseHdl_Impl ) );
mxLbTree->connect_row_activated( LINK ( this, SvxHlinkDlgMarkWnd, DoubleClickApplyHdl_Impl ) );
+
+ // tdf#149935 - remember last used position and size
+ SvtViewOptions aDlgOpt(EViewType::Dialog, m_xDialog->get_help_id());
+ if (aDlgOpt.Exists())
+ m_xDialog->set_window_state(aDlgOpt.GetWindowState());
}
SvxHlinkDlgMarkWnd::~SvxHlinkDlgMarkWnd()
{
ClearTree();
+ // tdf#149935 - remember last used position and size
+ SvtViewOptions aDlgOpt(EViewType::Dialog, m_xDialog->get_help_id());
+ aDlgOpt.SetWindowState(m_xDialog->get_window_state(vcl::WindowDataMask::PosSize));
}
void SvxHlinkDlgMarkWnd::ErrorChanged()
{
if (mnError == LERR_NOENTRIES)
{
- OUString aStrMessage = CuiResId( RID_SVXSTR_HYPDLG_ERR_LERR_NOENTRIES );
+ OUString aStrMessage = CuiResId( RID_CUISTR_HYPDLG_ERR_LERR_NOENTRIES );
mxError->set_label(aStrMessage);
mxError->show();
mxLbTree->hide();
}
else if (mnError == LERR_DOCNOTOPEN)
{
- OUString aStrMessage = CuiResId( RID_SVXSTR_HYPDLG_ERR_LERR_DOCNOTOPEN );
+ OUString aStrMessage = CuiResId( RID_CUISTR_HYPDLG_ERR_LERR_DOCNOTOPEN );
mxError->set_label(aStrMessage);
mxError->show();
mxLbTree->hide();
@@ -125,7 +134,12 @@ sal_uInt16 SvxHlinkDlgMarkWnd::SetError( sal_uInt16 nError)
// Move window
void SvxHlinkDlgMarkWnd::MoveTo(const Point& rNewPos)
{
- m_xDialog->window_move(rNewPos.X(), rNewPos.Y());
+ // tdf#149935 - remember last used position and size
+ SvtViewOptions aDlgOpt(EViewType::Dialog, m_xDialog->get_help_id());
+ if (aDlgOpt.Exists())
+ m_xDialog->set_window_state(aDlgOpt.GetWindowState());
+ else
+ m_xDialog->window_move(rNewPos.X(), rNewPos.Y());
}
namespace
@@ -158,9 +172,9 @@ namespace
}
}
-constexpr OUStringLiteral TG_SETTING_MANAGER = u"TargetInDocument";
-constexpr OUStringLiteral TG_SETTING_LASTMARK = u"LastSelectedMark";
-constexpr OUStringLiteral TG_SETTING_LASTPATH = u"LastSelectedPath";
+constexpr OUString TG_SETTING_MANAGER = u"TargetInDocument"_ustr;
+constexpr OUString TG_SETTING_LASTMARK = u"LastSelectedMark"_ustr;
+constexpr OUString TG_SETTING_LASTPATH = u"LastSelectedPath"_ustr;
void SvxHlinkDlgMarkWnd::RestoreLastSelection()
{
@@ -239,10 +253,8 @@ bool SvxHlinkDlgMarkWnd::RefreshFromDoc(const OUString& aURL)
{
try
{
- uno::Sequence< beans::PropertyValue > aArg(1);
- aArg.getArray()[0].Name = "Hidden";
- aArg.getArray()[0].Value <<= true;
- xComp = xDesktop->loadComponentFromURL( aURL, "_blank", 0, aArg );
+ uno::Sequence< beans::PropertyValue > aArg { comphelper::makePropertyValue(u"Hidden"_ustr, true) };
+ xComp = xDesktop->loadComponentFromURL( aURL, u"_blank"_ustr, 0, aArg );
}
catch( const io::IOException& )
{
@@ -290,19 +302,14 @@ int SvxHlinkDlgMarkWnd::FillTree( const uno::Reference< container::XNameAccess >
std::stack<std::pair<std::unique_ptr<weld::TreeIter>, const sal_Int32>> aHeadingsParentEntryStack;
int nEntries=0;
- const uno::Sequence< OUString > aNames( xLinks->getElementNames() );
- const sal_Int32 nLinks = aNames.getLength();
- const OUString* pNames = aNames.getConstArray();
-
- static const OUStringLiteral aProp_LinkDisplayName( u"LinkDisplayName" );
- static const OUStringLiteral aProp_LinkTarget( u"com.sun.star.document.LinkTarget" );
- static const OUStringLiteral aProp_LinkDisplayBitmap( u"LinkDisplayBitmap" );
- for( sal_Int32 i = 0; i < nLinks; i++ )
+
+ static constexpr OUStringLiteral aProp_LinkDisplayName( u"LinkDisplayName" );
+ static constexpr OUStringLiteral aProp_LinkTarget( u"com.sun.star.document.LinkTarget" );
+ static constexpr OUStringLiteral aProp_LinkDisplayBitmap( u"LinkDisplayBitmap" );
+ for (auto& aLink : xLinks->getElementNames())
{
uno::Any aAny;
- OUString aLink( *pNames++ );
- bool bError = false;
try
{
aAny = xLinks->getByName( aLink );
@@ -311,10 +318,8 @@ int SvxHlinkDlgMarkWnd::FillTree( const uno::Reference< container::XNameAccess >
{
// if the name of the target was invalid (like empty headings)
// no object can be provided
- bError = true;
- }
- if(bError)
continue;
+ }
uno::Reference< beans::XPropertySet > xTarget;
@@ -334,7 +339,7 @@ int SvxHlinkDlgMarkWnd::FillTree( const uno::Reference< container::XNameAccess >
// create userdata
TargetData *pData = new TargetData ( aLink, bIsTarget );
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pData)));
+ OUString sId(weld::toId(pData));
std::unique_ptr<weld::TreeIter> xEntry(mxLbTree->make_iterator());
if (pParentEntry)
@@ -347,12 +352,12 @@ int SvxHlinkDlgMarkWnd::FillTree( const uno::Reference< container::XNameAccess >
std::pair(mxLbTree->make_iterator(pParentEntry), -1));
// get the headings name to display
- aAny = xTarget->getPropertyValue("ActualOutlineName");
+ aAny = xTarget->getPropertyValue(u"ActualOutlineName"_ustr);
OUString sActualOutlineName;
aAny >>= sActualOutlineName;
// get the headings outline level
- aAny = xTarget->getPropertyValue("OutlineLevel");
+ aAny = xTarget->getPropertyValue(u"OutlineLevel"_ustr);
sal_Int32 nOutlineLevel = *o3tl::doAccess<sal_Int32>(aAny);
// pop until the top of stack entry has an outline level less than
@@ -367,7 +372,7 @@ int SvxHlinkDlgMarkWnd::FillTree( const uno::Reference< container::XNameAccess >
// push if the inserted entry is a child
if (nOutlineLevel > aHeadingsParentEntryStack.top().second)
aHeadingsParentEntryStack.push(
- std::pair(std::move(xEntry), nOutlineLevel));
+ std::pair(mxLbTree->make_iterator(xEntry.get()), nOutlineLevel));
}
else
{
@@ -420,7 +425,7 @@ void SvxHlinkDlgMarkWnd::ClearTree()
while (bEntry)
{
- TargetData* pUserData = reinterpret_cast<TargetData*>(mxLbTree->get_id(*xEntry).toInt64());
+ TargetData* pUserData = weld::fromId<TargetData*>(mxLbTree->get_id(*xEntry));
delete pUserData;
bEntry = mxLbTree->iter_next(*xEntry);
@@ -438,7 +443,7 @@ std::unique_ptr<weld::TreeIter> SvxHlinkDlgMarkWnd::FindEntry (std::u16string_vi
while (bEntry && !bFound)
{
- TargetData* pUserData = reinterpret_cast<TargetData*>(mxLbTree->get_id(*xEntry).toInt64());
+ TargetData* pUserData = weld::fromId<TargetData*>(mxLbTree->get_id(*xEntry));
if (aStrName == pUserData->aUStrLinkname)
bFound = true;
else
@@ -457,8 +462,7 @@ bool SvxHlinkDlgMarkWnd::SelectEntry(std::u16string_view aStrMark)
std::unique_ptr<weld::TreeIter> xEntry = FindEntry(aStrMark);
if (!xEntry)
return false;
- mxLbTree->select(*xEntry);
- mxLbTree->scroll_to_row(*xEntry);
+ mxLbTree->set_cursor(*xEntry);
return true;
}
@@ -475,7 +479,7 @@ IMPL_LINK_NOARG(SvxHlinkDlgMarkWnd, ClickApplyHdl_Impl, weld::Button&, void)
bool bEntry = mxLbTree->get_cursor(xEntry.get());
if (bEntry)
{
- TargetData* pData = reinterpret_cast<TargetData*>(mxLbTree->get_id(*xEntry).toInt64());
+ TargetData* pData = weld::fromId<TargetData*>(mxLbTree->get_id(*xEntry));
if (pData->bIsTarget)
{
mpParent->SetMarkStr(pData->aUStrLinkname);
@@ -490,7 +494,7 @@ IMPL_LINK_NOARG(SvxHlinkDlgMarkWnd, ClickCloseHdl_Impl, weld::Button&, void)
bool bEntry = mxLbTree->get_cursor(xEntry.get());
if (bEntry)
{
- TargetData* pUserData = reinterpret_cast<TargetData*>(mxLbTree->get_id(*xEntry).toInt64());
+ TargetData* pUserData = weld::fromId<TargetData*>(mxLbTree->get_id(*xEntry));
OUString sLastSelectedMark = pUserData->aUStrLinkname;
std::deque<OUString> aLastSelectedPath;
diff --git a/cui/source/dialogs/hltpbase.cxx b/cui/source/dialogs/hltpbase.cxx
index 987cf97514a9..9ac9be2baf8b 100644
--- a/cui/source/dialogs/hltpbase.cxx
+++ b/cui/source/dialogs/hltpbase.cxx
@@ -37,8 +37,7 @@
#include <strings.hrc>
#include <dialmgr.hxx>
#include <bitmaps.hlst>
-
-using namespace ::ucbhelper;
+#include <com/sun/star/datatransfer/UnsupportedFlavorException.hpp>
namespace {
@@ -105,16 +104,16 @@ sal_Int8 SvxHyperURLBox::ExecuteDrop( const ExecuteDropEvent& rEvt )
SvxHyperlinkTabPageBase::SvxHyperlinkTabPageBase(weld::Container* pParent,
SvxHpLinkDlg* pDlg,
const OUString& rUIXMLDescription,
- const OString& rID,
+ const OUString& rID,
const SfxItemSet* pItemSet)
: IconChoicePage(pParent, rUIXMLDescription, rID, pItemSet)
- , mxCbbFrame(xBuilder->weld_combo_box("frame"))
- , mxLbForm(xBuilder->weld_combo_box("form"))
- , mxEdIndication(xBuilder->weld_entry("indication"))
- , mxEdText(xBuilder->weld_entry("name"))
- , mxBtScript(xBuilder->weld_button("script"))
- , mxFormLabel(xBuilder->weld_label("form_label"))
- , mxFrameLabel(xBuilder->weld_label("frame_label"))
+ , mxCbbFrame(xBuilder->weld_combo_box(u"frame"_ustr))
+ , mxLbForm(xBuilder->weld_combo_box(u"form"_ustr))
+ , mxEdIndication(xBuilder->weld_entry(u"indication"_ustr))
+ , mxEdText(xBuilder->weld_entry(u"name"_ustr))
+ , mxBtScript(xBuilder->weld_button(u"script"_ustr))
+ , mxFormLabel(xBuilder->weld_label(u"form_label"_ustr))
+ , mxFrameLabel(xBuilder->weld_label(u"frame_label"_ustr))
, mbIsCloseDisabled( false )
, mpDialog( pDlg )
, mbStdControlsInit( false )
@@ -240,9 +239,9 @@ void SvxHyperlinkTabPageBase::FillStandardDlgFields ( const SvxHyperlinkItem* pH
mxCbbFrame->set_active(nPos);
// Form
- OUString aStrFormText = CuiResId( RID_SVXSTR_HYPERDLG_FROM_TEXT );
+ OUString aStrFormText = CuiResId( RID_CUISTR_HYPERDLG_FROM_TEXT );
- OUString aStrFormButton = CuiResId( RID_SVXSTR_HYPERDLG_FORM_BUTTON );
+ OUString aStrFormButton = CuiResId( RID_CUISTR_HYPERDLG_FORM_BUTTON );
if( pHyperlinkItem->GetInsertMode() & HLINK_HTMLMODE )
{
@@ -292,13 +291,6 @@ void SvxHyperlinkTabPageBase::DoApply ()
// default-implementation : do nothing
}
-// Ask page whether an insert is possible
-bool SvxHyperlinkTabPageBase::AskApply ()
-{
- // default-implementation
- return true;
-}
-
// This method would be called from bookmark-window to set new mark-string
void SvxHyperlinkTabPageBase::SetMarkStr ( const OUString& /*aStrMark*/ )
{
@@ -329,8 +321,8 @@ void SvxHyperlinkTabPageBase::DisableClose(bool _bDisable)
// Click on imagebutton : Script
IMPL_LINK_NOARG(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, weld::Button&, void)
{
- SvxHyperlinkItem *pHyperlinkItem = const_cast<SvxHyperlinkItem*>(static_cast<const SvxHyperlinkItem *>(
- GetItemSet().GetItem (SID_HYPERLINK_GETLINK)));
+ SvxHyperlinkItem *pHyperlinkItem = const_cast<SvxHyperlinkItem*>(
+ GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
if (!pHyperlinkItem || pHyperlinkItem->GetMacroEvents() == HyperDialogEvent::NONE)
return;
@@ -353,13 +345,13 @@ IMPL_LINK_NOARG(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, weld::Button&, voi
SfxMacroTabPage *pMacroPage = aDlg.GetTabPage();
if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseOverObject )
- pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT1),
+ pMacroPage->AddEvent( CuiResId(RID_CUISTR_HYPDLG_MACROACT1),
SvMacroItemId::OnMouseOver );
if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseClickObject )
- pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT2),
+ pMacroPage->AddEvent( CuiResId(RID_CUISTR_HYPDLG_MACROACT2),
SvMacroItemId::OnClick);
if ( pHyperlinkItem->GetMacroEvents() & HyperDialogEvent::MouseOutObject )
- pMacroPage->AddEvent( CuiResId(RID_SVXSTR_HYPDLG_MACROACT3),
+ pMacroPage->AddEvent( CuiResId(RID_CUISTR_HYPDLG_MACROACT3),
SvMacroItemId::OnMouseOut);
// execute dlg
short nRet = aDlg.run();
@@ -378,16 +370,16 @@ IMPL_LINK_NOARG(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, weld::Button&, voi
// Get Macro-Infos
HyperDialogEvent SvxHyperlinkTabPageBase::GetMacroEvents() const
{
- const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
- GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
+ const SvxHyperlinkItem *pHyperlinkItem =
+ GetItemSet().GetItem (SID_HYPERLINK_GETLINK);
return pHyperlinkItem ? pHyperlinkItem->GetMacroEvents() : HyperDialogEvent();
}
SvxMacroTableDtor* SvxHyperlinkTabPageBase::GetMacroTable()
{
- const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
- GetItemSet().GetItem (SID_HYPERLINK_GETLINK));
+ const SvxHyperlinkItem *pHyperlinkItem =
+ GetItemSet().GetItem (SID_HYPERLINK_GETLINK);
return const_cast<SvxMacroTableDtor*>(pHyperlinkItem->GetMacroTable());
}
@@ -452,19 +444,52 @@ void SvxHyperlinkTabPageBase::Reset( const SfxItemSet& rItemSet)
// Set dialog-fields from create-itemset
maStrInitURL.clear();
- const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
- rItemSet.GetItem (SID_HYPERLINK_GETLINK));
+ const SvxHyperlinkItem *pHyperlinkItem =
+ rItemSet.GetItem (SID_HYPERLINK_GETLINK);
if ( pHyperlinkItem )
{
+ // tdf#146576 - propose clipboard content when inserting a hyperlink
+ OUString aStrURL(pHyperlinkItem->GetURL());
+ // Store initial URL
+ maStrInitURL = aStrURL;
+ if (aStrURL.isEmpty())
+ {
+ if (auto xClipboard = GetSystemClipboard())
+ {
+ if (auto xTransferable = xClipboard->getContents())
+ {
+ css::datatransfer::DataFlavor aFlavor;
+ SotExchange::GetFormatDataFlavor(SotClipboardFormatId::STRING, aFlavor);
+ if (xTransferable->isDataFlavorSupported(aFlavor))
+ {
+ OUString aClipBoardContent;
+ try
+ {
+ if (xTransferable->getTransferData(aFlavor) >>= aClipBoardContent)
+ {
+ INetURLObject aURL;
+ aURL.SetSmartURL(aClipBoardContent);
+ if (!aURL.HasError())
+ aStrURL
+ = aURL.GetMainURL(INetURLObject::DecodeMechanism::Unambiguous);
+ }
+ }
+ // tdf#158345: Opening Hyperlink dialog leads to crash
+ // MimeType = "text/plain;charset=utf-16"
+ catch(const css::datatransfer::UnsupportedFlavorException&)
+ {
+ }
+ }
+ }
+ }
+ }
+
// set dialog-fields
FillStandardDlgFields (pHyperlinkItem);
// set all other fields
- FillDlgFields ( pHyperlinkItem->GetURL() );
-
- // Store initial URL
- maStrInitURL = pHyperlinkItem->GetURL();
+ FillDlgFields(aStrURL);
}
}
@@ -474,7 +499,7 @@ bool SvxHyperlinkTabPageBase::FillItemSet( SfxItemSet* rOut)
OUString aStrURL, aStrName, aStrIntName, aStrFrame;
SvxLinkInsertMode eMode;
- GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
+ GetCurrentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
if ( aStrName.isEmpty() ) //automatically create a visible name if the link is created without name
aStrName = CreateUiNameFromURL(aStrURL);
@@ -493,8 +518,8 @@ void SvxHyperlinkTabPageBase::ActivatePage( const SfxItemSet& rItemSet )
{
// Set dialog-fields from input-itemset
- const SvxHyperlinkItem *pHyperlinkItem = static_cast<const SvxHyperlinkItem *>(
- rItemSet.GetItem (SID_HYPERLINK_GETLINK));
+ const SvxHyperlinkItem *pHyperlinkItem =
+ rItemSet.GetItem (SID_HYPERLINK_GETLINK);
if ( pHyperlinkItem )
{
@@ -517,7 +542,7 @@ DeactivateRC SvxHyperlinkTabPageBase::DeactivatePage( SfxItemSet* _pSet)
OUString aStrURL, aStrName, aStrIntName, aStrFrame;
SvxLinkInsertMode eMode;
- GetCurentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
+ GetCurrentItemData ( aStrURL, aStrName, aStrIntName, aStrFrame, eMode);
HyperDialogEvent nEvents = GetMacroEvents();
SvxMacroTableDtor* pTable = GetMacroTable();
diff --git a/cui/source/dialogs/hyphen.cxx b/cui/source/dialogs/hyphen.cxx
index 0535902d4447..afaf415468e8 100644
--- a/cui/source/dialogs/hyphen.cxx
+++ b/cui/source/dialogs/hyphen.cxx
@@ -27,6 +27,7 @@
#include <sal/log.hxx>
#include <i18nlangtag/languagetag.hxx>
#include <tools/debug.hxx>
+#include <utility>
#define HYPH_POS_CHAR '='
@@ -115,61 +116,47 @@ OUString SvxHyphenWordDialog::EraseUnusableHyphens_Impl()
aTxt = m_xPossHyph->getPossibleHyphens();
m_nHyphenationPositionsOffset = 0;
- uno::Sequence< sal_Int16 > aHyphenationPositions(
- m_xPossHyph->getHyphenationPositions() );
- sal_Int32 nLen = aHyphenationPositions.getLength();
- const sal_Int16 *pHyphenationPos = aHyphenationPositions.getConstArray();
// find position nIdx after which all hyphen positions are unusable
sal_Int32 nIdx = -1;
- sal_Int32 nPos = 0, nPos1 = 0;
- if (nLen)
+ for (sal_Int16 hyphenationPos : m_xPossHyph->getHyphenationPositions())
{
- sal_Int32 nStart = 0;
- for (sal_Int32 i = 0; i < nLen; ++i)
+ if (hyphenationPos > m_nMaxHyphenationPos)
+ break;
+ else
{
- if (pHyphenationPos[i] > m_nMaxHyphenationPos)
+ // find corresponding hyphen positions in string
+ nIdx = aTxt.indexOf(sal_Unicode(HYPH_POS_CHAR), nIdx + 1);
+
+ if (nIdx == -1)
break;
- else
- {
- // find corresponding hyphen positions in string
- nPos = aTxt.indexOf( sal_Unicode( HYPH_POS_CHAR ), nStart );
-
- if (nPos == -1)
- break;
- else
- {
- nIdx = nPos;
- nStart = nPos + 1;
- }
- }
}
}
DBG_ASSERT(nIdx != -1, "no usable hyphenation position");
// 1) remove all not usable hyphenation positions from the end of the string
- nPos = nIdx == -1 ? 0 : nIdx + 1;
- nPos1 = nPos; //save for later use in 2) below
+ sal_Int32 nPos1 = nIdx + 1; //save for later use in 2) below
const OUString aTmp( sal_Unicode( HYPH_POS_CHAR ) );
- while (nPos != -1)
+ for (sal_Int32 nPos = nPos1; nPos != -1;)
{
nPos++;
aTxt = aTxt.replaceFirst( aTmp, "", &nPos);
}
// 2) remove all hyphenation positions from the start that are not considered by the core
- const OUString aSearchRange( aTxt.copy( 0, nPos1 ) );
- sal_Int32 nPos2 = aSearchRange.lastIndexOf( '-' ); // the '-' position the core will use by default
- if (nPos2 != -1 )
+ const std::u16string_view aSearchRange( aTxt.subView( 0, nPos1 ) );
+ size_t nPos2 = aSearchRange.rfind( '-' ); // the '-' position the core will use by default
+ if (nPos2 != std::u16string_view::npos && nPos2 != 0)
{
- OUString aLeft( aSearchRange.copy( 0, nPos2 ) );
- nPos = 0;
- while (nPos != -1)
+ OUString aLeft( aSearchRange.substr( 0, nPos2 ) );
+ for (sal_Int32 nPos = 0; nPos != -1;)
{
nPos++;
aLeft = aLeft.replaceFirst( aTmp, "", &nPos );
if (nPos != -1)
++m_nHyphenationPositionsOffset;
+ if (nPos >= aLeft.getLength()) // tdf#158837
+ break;
}
aTxt = aTxt.replaceAt( 0, nPos2, aLeft );
}
@@ -219,7 +206,7 @@ void SvxHyphenWordDialog::ContinueHyph_Impl( sal_Int32 nInsPos )
DBG_ASSERT(0 <= nIdxPos && nIdxPos < nLen, "index out of range");
if (nLen && 0 <= nIdxPos && nIdxPos < nLen)
{
- nInsPos = aSeq.getConstArray()[ nIdxPos ];
+ nInsPos = aSeq[nIdxPos];
m_pHyphWrapper->InsertHyphen( nInsPos );
}
}
@@ -402,26 +389,26 @@ IMPL_LINK_NOARG(SvxHyphenWordDialog, GetFocusHdl_Impl, weld::Widget&, void)
// class SvxHyphenWordDialog ---------------------------------------------
SvxHyphenWordDialog::SvxHyphenWordDialog(
- const OUString &rWord, LanguageType nLang,
+ OUString aWord, LanguageType nLang,
weld::Widget* pParent,
uno::Reference< linguistic2::XHyphenator > const &xHyphen,
SvxSpellWrapper* pWrapper)
- : SfxDialogController(pParent, "cui/ui/hyphenate.ui", "HyphenateDialog")
+ : SfxDialogController(pParent, u"cui/ui/hyphenate.ui"_ustr, u"HyphenateDialog"_ustr)
, m_pHyphWrapper(pWrapper)
- , m_aActWord(rWord)
+ , m_aActWord(std::move(aWord))
, m_nActLanguage(nLang)
, m_nMaxHyphenationPos(0)
, m_nOldPos(0)
, m_nHyphenationPositionsOffset(0)
, m_bBusy(false)
- , m_xWordEdit(m_xBuilder->weld_entry("worded"))
- , m_xLeftBtn(m_xBuilder->weld_button("left"))
- , m_xRightBtn(m_xBuilder->weld_button("right"))
- , m_xOkBtn(m_xBuilder->weld_button("ok"))
- , m_xContBtn(m_xBuilder->weld_button("continue"))
- , m_xDelBtn(m_xBuilder->weld_button("delete"))
- , m_xHyphAll(m_xBuilder->weld_button("hyphall"))
- , m_xCloseBtn(m_xBuilder->weld_button("close"))
+ , m_xWordEdit(m_xBuilder->weld_entry(u"worded"_ustr))
+ , m_xLeftBtn(m_xBuilder->weld_button(u"left"_ustr))
+ , m_xRightBtn(m_xBuilder->weld_button(u"right"_ustr))
+ , m_xOkBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xContBtn(m_xBuilder->weld_button(u"continue"_ustr))
+ , m_xDelBtn(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xHyphAll(m_xBuilder->weld_button(u"hyphall"_ustr))
+ , m_xCloseBtn(m_xBuilder->weld_button(u"close"_ustr))
{
m_nWordEditWidth = m_xWordEdit->get_width_chars();
m_aLabel = m_xDialog->get_title();
diff --git a/cui/source/dialogs/iconcdlg.cxx b/cui/source/dialogs/iconcdlg.cxx
index 6e6ffaf5c53a..9bda9d215dcf 100644
--- a/cui/source/dialogs/iconcdlg.cxx
+++ b/cui/source/dialogs/iconcdlg.cxx
@@ -18,6 +18,7 @@
*/
#include <iconcdlg.hxx>
+#include <comphelper/lok.hxx>
#include <cuihyperdlg.hxx>
#include <cassert>
@@ -31,7 +32,7 @@
\**********************************************************************/
IconChoicePage::IconChoicePage(weld::Container* pParent,
- const OUString& rUIXMLDescription, const OString& rID,
+ const OUString& rUIXMLDescription, const OUString& rID,
const SfxItemSet* pItemSet)
: xBuilder(Application::CreateBuilder(pParent, rUIXMLDescription))
, xContainer(xBuilder->weld_container(rID))
@@ -70,7 +71,7 @@ bool IconChoicePage::QueryClose()
| add new page
|
\**********************************************************************/
-void SvxHpLinkDlg::AddTabPage(const OString& rId, CreatePage pCreateFunc /* != 0 */)
+void SvxHpLinkDlg::AddTabPage(const OUString& rId, CreatePage pCreateFunc /* != 0 */)
{
weld::Container* pPage = m_xIconCtrl->get_page(rId);
maPageList.emplace_back(new IconChoicePageData(rId, pCreateFunc(pPage, this, pSet)));
@@ -83,9 +84,9 @@ void SvxHpLinkDlg::AddTabPage(const OString& rId, CreatePage pCreateFunc /* != 0
| Show / Hide page or button
|
\**********************************************************************/
-void SvxHpLinkDlg::ShowPage(const OString& rId)
+void SvxHpLinkDlg::ShowPage(const OUString& rId)
{
- OString sOldPageId = GetCurPageId();
+ OUString sOldPageId = GetCurPageId();
bool bInvalidate = sOldPageId != rId;
if (bInvalidate)
{
@@ -104,7 +105,7 @@ void SvxHpLinkDlg::ShowPage(const OString& rId)
| select a page
|
\**********************************************************************/
-IMPL_LINK(SvxHpLinkDlg, ChosePageHdl_Impl, const OString&, rId, void)
+IMPL_LINK(SvxHpLinkDlg, ChosePageHdl_Impl, const OUString&, rId, void)
{
if (rId != msCurrentPageId)
{
@@ -148,7 +149,11 @@ void SvxHpLinkDlg::ActivatePageImpl()
pData->xPage->ActivatePage( *pExampleSet );
m_xDialog->set_help_id(pData->xPage->GetHelpId());
- m_xResetBtn->show();
+ // tdf#90496 - remember last used view in hyperlink dialog
+ msRememberedPageId = msCurrentPageId;
+
+ if (!comphelper::LibreOfficeKit::isActive())
+ m_xResetBtn->show();
}
void SvxHpLinkDlg::DeActivatePageImpl ()
@@ -280,7 +285,7 @@ void SvxHpLinkDlg::Start()
|
\**********************************************************************/
-IconChoicePageData* SvxHpLinkDlg::GetPageData ( std::string_view rId )
+IconChoicePageData* SvxHpLinkDlg::GetPageData ( std::u16string_view rId )
{
IconChoicePageData *pRet = nullptr;
for (const auto & pData : maPageList)
@@ -300,7 +305,7 @@ IconChoicePageData* SvxHpLinkDlg::GetPageData ( std::string_view rId )
|
\**********************************************************************/
-void SvxHpLinkDlg::SwitchPage( const OString& rId )
+void SvxHpLinkDlg::SwitchPage( const OUString& rId )
{
m_xIconCtrl->set_current_page(rId);
}
diff --git a/cui/source/dialogs/insdlg.cxx b/cui/source/dialogs/insdlg.cxx
index eddc80a83b09..814732173598 100644
--- a/cui/source/dialogs/insdlg.cxx
+++ b/cui/source/dialogs/insdlg.cxx
@@ -41,7 +41,8 @@
#include <tools/urlobj.hxx>
#include <tools/debug.hxx>
#include <tools/stream.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
+#include <utility>
#include <vcl/image.hxx>
#include <vcl/weld.hxx>
#include <vcl/svapp.hxx>
@@ -57,7 +58,6 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::ui::dialogs;
bool InsertObjectDialog_Impl::IsCreateNew() const
@@ -71,10 +71,10 @@ uno::Reference< io::XInputStream > InsertObjectDialog_Impl::GetIconIfIconified(
}
InsertObjectDialog_Impl::InsertObjectDialog_Impl(weld::Window* pParent,
- const OUString& rUIXMLDescription, const OString& rID,
- const css::uno::Reference < css::embed::XStorage >& xStorage)
+ const OUString& rUIXMLDescription, const OUString& rID,
+ css::uno::Reference < css::embed::XStorage > xStorage)
: GenericDialogController(pParent, rUIXMLDescription, rID)
- , m_xStorage( xStorage )
+ , m_xStorage(std::move( xStorage ))
, aCnt( m_xStorage )
{
}
@@ -94,7 +94,7 @@ IMPL_LINK_NOARG(SvInsertOleDlg, BrowseHdl, weld::Button&, void)
// add filter
try
{
- xFilePicker->appendFilter(CuiResId(RID_SVXSTR_FILTER_ALL), "*.*");
+ xFilePicker->appendFilter(CuiResId(RID_CUISTR_FILTER_ALL), u"*.*"_ustr);
}
catch( const IllegalArgumentException& )
{
@@ -128,17 +128,17 @@ IMPL_LINK(SvInsertOleDlg, RadioHdl, weld::Toggleable&, rButton, void)
SvInsertOleDlg::SvInsertOleDlg(weld::Window* pParent, const Reference<embed::XStorage>& xStorage,
const SvObjectServerList* pServers)
- : InsertObjectDialog_Impl( pParent, "cui/ui/insertoleobject.ui", "InsertOLEObjectDialog", xStorage)
+ : InsertObjectDialog_Impl( pParent, u"cui/ui/insertoleobject.ui"_ustr, u"InsertOLEObjectDialog"_ustr, xStorage)
, m_pServers( pServers )
- , m_xRbNewObject(m_xBuilder->weld_radio_button("createnew"))
- , m_xRbObjectFromfile(m_xBuilder->weld_radio_button("createfromfile"))
- , m_xObjectTypeFrame(m_xBuilder->weld_frame("objecttypeframe"))
- , m_xLbObjecttype(m_xBuilder->weld_tree_view("types"))
- , m_xFileFrame(m_xBuilder->weld_frame("fileframe"))
- , m_xEdFilepath(m_xBuilder->weld_entry("urled"))
- , m_xBtnFilepath(m_xBuilder->weld_button("urlbtn"))
- , m_xCbFilelink(m_xBuilder->weld_check_button("linktofile"))
- , m_xCbAsIcon(m_xBuilder->weld_check_button("asicon"))
+ , m_xRbNewObject(m_xBuilder->weld_radio_button(u"createnew"_ustr))
+ , m_xRbObjectFromfile(m_xBuilder->weld_radio_button(u"createfromfile"_ustr))
+ , m_xObjectTypeFrame(m_xBuilder->weld_frame(u"objecttypeframe"_ustr))
+ , m_xLbObjecttype(m_xBuilder->weld_tree_view(u"types"_ustr))
+ , m_xFileFrame(m_xBuilder->weld_frame(u"fileframe"_ustr))
+ , m_xEdFilepath(m_xBuilder->weld_entry(u"urled"_ustr))
+ , m_xBtnFilepath(m_xBuilder->weld_button(u"urlbtn"_ustr))
+ , m_xCbFilelink(m_xBuilder->weld_check_button(u"linktofile"_ustr))
+ , m_xCbAsIcon(m_xBuilder->weld_check_button(u"asicon"_ustr))
{
m_xLbObjecttype->set_size_request(m_xLbObjecttype->get_approximate_digit_width() * 32,
m_xLbObjecttype->get_height_rows(6));
@@ -195,8 +195,7 @@ short SvInsertOleDlg::run()
uno::Reference<task::XStatusIndicator> xProgress;
OUString aProgressText;
- SfxViewFrame* pFrame = SfxViewFrame::Current();
- if (pFrame)
+ if (SfxViewFrame* pFrame = SfxViewFrame::Current())
{
// Have a current frame, create a matching progressbar, but don't start it yet.
uno::Reference<frame::XFrame> xFrame
@@ -208,7 +207,7 @@ short SvInsertOleDlg::run()
xProgress = xProgressFactory->createStatusIndicator();
if (xProgress)
{
- aProgressText = CuiResId(RID_SVXSTR_OLE_INSERT);
+ aProgressText = CuiResId(RID_CUISTR_OLE_INSERT);
}
}
}
@@ -216,8 +215,8 @@ short SvInsertOleDlg::run()
const embed::InsertedObjectInfo aNewInf = xDialogCreator->createInstanceByDialog(
m_xStorage,
aName,
- {comphelper::makePropertyValue("StatusIndicator", xProgress),
- comphelper::makePropertyValue("StatusIndicatorText", aProgressText)} );
+ {comphelper::makePropertyValue(u"StatusIndicator"_ustr, xProgress),
+ comphelper::makePropertyValue(u"StatusIndicatorText"_ustr, aProgressText)} );
OSL_ENSURE( aNewInf.Object.is(), "The object must be created or an exception must be thrown!" );
m_xObj = aNewInf.Object;
@@ -294,15 +293,14 @@ short SvInsertOleDlg::run()
// create MediaDescriptor for file to create object from
uno::Sequence < beans::PropertyValue > aMedium{
- comphelper::makePropertyValue("URL", aFileName),
- comphelper::makePropertyValue("InteractionHandler", xInteraction)
+ comphelper::makePropertyValue(u"URL"_ustr, aFileName),
+ comphelper::makePropertyValue(u"InteractionHandler"_ustr, xInteraction)
};
// create object from media descriptor
uno::Reference<task::XStatusIndicator> xProgress;
- SfxViewFrame* pFrame = SfxViewFrame::Current();
- if (pFrame)
+ if (SfxViewFrame* pFrame = SfxViewFrame::Current())
{
// Have a current frame, create visual indication that insert is in progress.
uno::Reference<frame::XFrame> xFrame = pFrame->GetFrame().GetFrameInterface();
@@ -312,7 +310,7 @@ short SvInsertOleDlg::run()
xProgress = xProgressFactory->createStatusIndicator();
if (xProgress)
{
- OUString aOleInsert(CuiResId(RID_SVXSTR_OLE_INSERT));
+ OUString aOleInsert(CuiResId(RID_CUISTR_OLE_INSERT));
xProgress->start(aOleInsert, 100);
}
}
@@ -376,7 +374,7 @@ uno::Reference< io::XInputStream > SvInsertOleDlg::GetIconIfIconified( OUString*
SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog(weld::Window *pParent,
const css::uno::Reference < css::embed::XStorage >& xStorage)
- : InsertObjectDialog_Impl(pParent, "cui/ui/insertfloatingframe.ui", "InsertFloatingFrameDialog",
+ : InsertObjectDialog_Impl(pParent, u"cui/ui/insertfloatingframe.ui"_ustr, u"InsertFloatingFrameDialog"_ustr,
xStorage)
{
Init();
@@ -384,7 +382,7 @@ SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog(weld::Window *pParent
SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog(weld::Window *pParent,
const uno::Reference < embed::XEmbeddedObject >& xObj)
- : InsertObjectDialog_Impl(pParent, "cui/ui/insertfloatingframe.ui", "InsertFloatingFrameDialog",
+ : InsertObjectDialog_Impl(pParent, u"cui/ui/insertfloatingframe.ui"_ustr, u"InsertFloatingFrameDialog"_ustr,
uno::Reference<embed::XStorage>())
{
m_xObj = xObj;
@@ -394,20 +392,20 @@ SfxInsertFloatingFrameDialog::SfxInsertFloatingFrameDialog(weld::Window *pParent
void SfxInsertFloatingFrameDialog::Init()
{
- m_xEDName = m_xBuilder->weld_entry("edname");
- m_xEDURL = m_xBuilder->weld_entry("edurl");
- m_xBTOpen = m_xBuilder->weld_button("buttonbrowse");
- m_xRBScrollingOn = m_xBuilder->weld_radio_button("scrollbaron");
- m_xRBScrollingOff = m_xBuilder->weld_radio_button("scrollbaroff");
- m_xRBScrollingAuto = m_xBuilder->weld_radio_button("scrollbarauto");
- m_xRBFrameBorderOn = m_xBuilder->weld_radio_button("borderon");
- m_xRBFrameBorderOff = m_xBuilder->weld_radio_button("borderoff");
- m_xFTMarginWidth = m_xBuilder->weld_label("widthlabel");
- m_xNMMarginWidth = m_xBuilder->weld_spin_button("width");
- m_xCBMarginWidthDefault = m_xBuilder->weld_check_button("defaultwidth");
- m_xFTMarginHeight = m_xBuilder->weld_label("heightlabel");
- m_xNMMarginHeight = m_xBuilder->weld_spin_button("height");
- m_xCBMarginHeightDefault = m_xBuilder->weld_check_button("defaultheight");
+ m_xEDName = m_xBuilder->weld_entry(u"edname"_ustr);
+ m_xEDURL = m_xBuilder->weld_entry(u"edurl"_ustr);
+ m_xBTOpen = m_xBuilder->weld_button(u"buttonbrowse"_ustr);
+ m_xRBScrollingOn = m_xBuilder->weld_radio_button(u"scrollbaron"_ustr);
+ m_xRBScrollingOff = m_xBuilder->weld_radio_button(u"scrollbaroff"_ustr);
+ m_xRBScrollingAuto = m_xBuilder->weld_radio_button(u"scrollbarauto"_ustr);
+ m_xRBFrameBorderOn = m_xBuilder->weld_radio_button(u"borderon"_ustr);
+ m_xRBFrameBorderOff = m_xBuilder->weld_radio_button(u"borderoff"_ustr);
+ m_xFTMarginWidth = m_xBuilder->weld_label(u"widthlabel"_ustr);
+ m_xNMMarginWidth = m_xBuilder->weld_spin_button(u"width"_ustr);
+ m_xCBMarginWidthDefault = m_xBuilder->weld_check_button(u"defaultwidth"_ustr);
+ m_xFTMarginHeight = m_xBuilder->weld_label(u"heightlabel"_ustr);
+ m_xNMMarginHeight = m_xBuilder->weld_spin_button(u"height"_ustr);
+ m_xCBMarginHeightDefault = m_xBuilder->weld_check_button(u"defaultheight"_ustr);
Link<weld::Toggleable&, void> aLink(LINK(this, SfxInsertFloatingFrameDialog, CheckHdl));
m_xCBMarginWidthDefault->connect_toggled(aLink);
@@ -434,15 +432,15 @@ short SfxInsertFloatingFrameDialog::run()
m_xObj->changeState( embed::EmbedStates::RUNNING );
xSet.set( m_xObj->getComponent(), uno::UNO_QUERY );
OUString aStr;
- uno::Any aAny = xSet->getPropertyValue( "FrameURL" );
+ uno::Any aAny = xSet->getPropertyValue( u"FrameURL"_ustr );
if ( aAny >>= aStr )
m_xEDURL->set_text( aStr );
- aAny = xSet->getPropertyValue( "FrameName" );
+ aAny = xSet->getPropertyValue( u"FrameName"_ustr );
if ( aAny >>= aStr )
m_xEDName->set_text(aStr);
sal_Int32 nSize = SIZE_NOT_SET;
- aAny = xSet->getPropertyValue( "FrameMarginWidth" );
+ aAny = xSet->getPropertyValue( u"FrameMarginWidth"_ustr );
aAny >>= nSize;
if ( nSize == SIZE_NOT_SET )
@@ -455,7 +453,7 @@ short SfxInsertFloatingFrameDialog::run()
else
m_xNMMarginWidth->set_text(OUString::number(nSize));
- aAny = xSet->getPropertyValue( "FrameMarginHeight" );
+ aAny = xSet->getPropertyValue( u"FrameMarginHeight"_ustr );
aAny >>= nSize;
if ( nSize == SIZE_NOT_SET )
@@ -473,11 +471,11 @@ short SfxInsertFloatingFrameDialog::run()
bool bScrollAuto = false;
bool bSet = false;
- aAny = xSet->getPropertyValue( "FrameIsAutoScroll" );
+ aAny = xSet->getPropertyValue( u"FrameIsAutoScroll"_ustr );
aAny >>= bSet;
if ( !bSet )
{
- aAny = xSet->getPropertyValue( "FrameIsScrollingMode" );
+ aAny = xSet->getPropertyValue( u"FrameIsScrollingMode"_ustr );
aAny >>= bSet;
bScrollOn = bSet;
bScrollOff = !bSet;
@@ -490,11 +488,11 @@ short SfxInsertFloatingFrameDialog::run()
m_xRBScrollingAuto->set_sensitive(bScrollAuto);
bSet = false;
- aAny = xSet->getPropertyValue( "FrameIsAutoBorder" );
+ aAny = xSet->getPropertyValue( u"FrameIsAutoBorder"_ustr );
aAny >>= bSet;
if ( !bSet )
{
- aAny = xSet->getPropertyValue( "FrameIsBorder" );
+ aAny = xSet->getPropertyValue( u"FrameIsBorder"_ustr );
aAny >>= bSet;
m_xRBFrameBorderOn->set_active(bSet);
m_xRBFrameBorderOff->set_active(!bSet);
@@ -571,17 +569,17 @@ short SfxInsertFloatingFrameDialog::run()
else
lMarginHeight = SIZE_NOT_SET;
- xSet->setPropertyValue( "FrameURL", Any( aURL ) );
- xSet->setPropertyValue( "FrameName", Any( aName ) );
+ xSet->setPropertyValue( u"FrameURL"_ustr, Any( aURL ) );
+ xSet->setPropertyValue( u"FrameName"_ustr, Any( aName ) );
if ( eScroll == ScrollingMode::Auto )
- xSet->setPropertyValue( "FrameIsAutoScroll", Any( true ) );
+ xSet->setPropertyValue( u"FrameIsAutoScroll"_ustr, Any( true ) );
else
- xSet->setPropertyValue( "FrameIsScrollingMode", Any( eScroll == ScrollingMode::Yes ) );
+ xSet->setPropertyValue( u"FrameIsScrollingMode"_ustr, Any( eScroll == ScrollingMode::Yes ) );
- xSet->setPropertyValue( "FrameIsBorder", Any( bHasBorder ) );
- xSet->setPropertyValue( "FrameMarginWidth", Any( sal_Int32( lMarginWidth ) ) );
- xSet->setPropertyValue( "FrameMarginHeight", Any( sal_Int32( lMarginHeight ) ) );
+ xSet->setPropertyValue( u"FrameIsBorder"_ustr, Any( bHasBorder ) );
+ xSet->setPropertyValue( u"FrameMarginWidth"_ustr, Any( sal_Int32( lMarginWidth ) ) );
+ xSet->setPropertyValue( u"FrameMarginHeight"_ustr, Any( sal_Int32( lMarginHeight ) ) );
if ( bIPActive )
m_xObj->changeState( embed::EmbedStates::INPLACE_ACTIVE );
@@ -624,7 +622,7 @@ IMPL_LINK_NOARG( SfxInsertFloatingFrameDialog, OpenHdl, weld::Button&, void)
SfxFilterFlags::NONE, SfxFilterFlags::NONE, m_xDialog.get());
// set the title
- aFileDlg.SetTitle(CuiResId(RID_SVXSTR_SELECT_FILE_IFRAME));
+ aFileDlg.SetTitle(CuiResId(RID_CUISTR_SELECT_FILE_IFRAME));
// show the dialog
if ( aFileDlg.Execute() == ERRCODE_NONE )
diff --git a/cui/source/dialogs/insrc.cxx b/cui/source/dialogs/insrc.cxx
index 862963275df8..c26e713181f9 100644
--- a/cui/source/dialogs/insrc.cxx
+++ b/cui/source/dialogs/insrc.cxx
@@ -31,29 +31,44 @@ sal_uInt16 SvxInsRowColDlg::getInsertCount() const
return m_xCountEdit->get_value();
}
-SvxInsRowColDlg::SvxInsRowColDlg(weld::Window* pParent, bool bColumn, const OString& rHelpId)
- : GenericDialogController(pParent, "cui/ui/insertrowcolumn.ui", "InsertRowColumnDialog")
- , m_xCountEdit(m_xBuilder->weld_spin_button("insert_number"))
- , m_xBeforeBtn(m_xBuilder->weld_radio_button("insert_before"))
- , m_xAfterBtn(m_xBuilder->weld_radio_button("insert_after"))
+SvxInsRowColDlg::SvxInsRowColDlg(weld::Window* pParent, bool bColumn, const OUString& rHelpId)
+ : GenericDialogController(pParent, u"cui/ui/insertrowcolumn.ui"_ustr, u"InsertRowColumnDialog"_ustr)
+ , m_xCountEdit(m_xBuilder->weld_spin_button(u"insert_number"_ustr))
+ , m_xBeforeBtn(m_xBuilder->weld_radio_button(u"insert_before"_ustr))
+ , m_xAfterBtn(m_xBuilder->weld_radio_button(u"insert_after"_ustr))
{
- m_xDialog->set_title(bColumn ? CuiResId(RID_SVXSTR_COL) : CuiResId(RID_SVXSTR_ROW));
+ m_xDialog->set_title(bColumn ? CuiResId(RID_CUISTR_COL) : CuiResId(RID_CUISTR_ROW));
// tdf#119293
if (bColumn) {
- m_xBeforeBtn->set_label(CuiResId(RID_SVXSTR_INSERTCOL_BEFORE));
- m_xAfterBtn->set_label(CuiResId(RID_SVXSTR_INSERTCOL_AFTER));
+ m_xBeforeBtn->set_label(CuiResId(RID_CUISTR_INSERTCOL_BEFORE));
+ m_xAfterBtn->set_label(CuiResId(RID_CUISTR_INSERTCOL_AFTER));
} else {
- m_xBeforeBtn->set_label(CuiResId(RID_SVXSTR_INSERTROW_BEFORE));
- m_xAfterBtn->set_label(CuiResId(RID_SVXSTR_INSERTROW_AFTER));
+ m_xBeforeBtn->set_label(CuiResId(RID_CUISTR_INSERTROW_BEFORE));
+ m_xAfterBtn->set_label(CuiResId(RID_CUISTR_INSERTROW_AFTER));
}
m_xDialog->set_help_id(rHelpId);
}
-short SvxInsRowColDlg::Execute()
+short SvxAbstractInsRowColDlg_Impl::Execute()
{
- return run();
+ return m_xDlg->run();
+}
+
+bool SvxAbstractInsRowColDlg_Impl::StartExecuteAsync(AsyncContext &rCtx)
+{
+ return weld::GenericDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn);
+}
+
+bool SvxAbstractInsRowColDlg_Impl::isInsertBefore() const
+{
+ return m_xDlg->isInsertBefore();
+}
+
+sal_uInt16 SvxAbstractInsRowColDlg_Impl::getInsertCount() const
+{
+ return m_xDlg->getInsertCount();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/linkdlg.cxx b/cui/source/dialogs/linkdlg.cxx
index 01026742da15..e0ff180e1235 100644
--- a/cui/source/dialogs/linkdlg.cxx
+++ b/cui/source/dialogs/linkdlg.cxx
@@ -21,7 +21,7 @@
#include <o3tl/safeint.hxx>
#include <vcl/svapp.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <tools/debug.hxx>
#include <tools/urlobj.hxx>
#include <vcl/idle.hxx>
@@ -37,7 +37,7 @@
#include <sfx2/objsh.hxx>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
+#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
#include <comphelper/processfactory.hxx>
#include <dialmgr.hxx>
@@ -76,7 +76,7 @@ public:
}
SvBaseLinksDlg::SvBaseLinksDlg(weld::Window * pParent, LinkManager* pMgr, bool bHtmlMode)
- : GenericDialogController(pParent, "cui/ui/baselinksdialog.ui", "BaseLinksDialog")
+ : GenericDialogController(pParent, u"cui/ui/baselinksdialog.ui"_ustr, u"BaseLinksDialog"_ustr)
, aStrAutolink( CuiResId( STR_AUTOLINK ) )
, aStrManuallink( CuiResId( STR_MANUALLINK ) )
, aStrBrokenlink( CuiResId( STR_BROKENLINK ) )
@@ -85,15 +85,15 @@ SvBaseLinksDlg::SvBaseLinksDlg(weld::Window * pParent, LinkManager* pMgr, bool b
, aStrWaitinglink( CuiResId( STR_WAITINGLINK ) )
, pLinkMgr( nullptr )
, aUpdateIdle("cui SvBaseLinksDlg UpdateIdle")
- , m_xTbLinks(m_xBuilder->weld_tree_view("TB_LINKS"))
- , m_xFtFullFileName(m_xBuilder->weld_link_button("FULL_FILE_NAME"))
- , m_xFtFullSourceName(m_xBuilder->weld_label("FULL_SOURCE_NAME"))
- , m_xFtFullTypeName(m_xBuilder->weld_label("FULL_TYPE_NAME"))
- , m_xRbAutomatic(m_xBuilder->weld_radio_button("AUTOMATIC"))
- , m_xRbManual(m_xBuilder->weld_radio_button("MANUAL"))
- , m_xPbUpdateNow(m_xBuilder->weld_button("UPDATE_NOW"))
- , m_xPbChangeSource(m_xBuilder->weld_button("CHANGE_SOURCE"))
- , m_xPbBreakLink(m_xBuilder->weld_button("BREAK_LINK"))
+ , m_xTbLinks(m_xBuilder->weld_tree_view(u"TB_LINKS"_ustr))
+ , m_xFtFullFileName(m_xBuilder->weld_link_button(u"FULL_FILE_NAME"_ustr))
+ , m_xFtFullSourceName(m_xBuilder->weld_label(u"FULL_SOURCE_NAME"_ustr))
+ , m_xFtFullTypeName(m_xBuilder->weld_label(u"FULL_TYPE_NAME"_ustr))
+ , m_xRbAutomatic(m_xBuilder->weld_radio_button(u"AUTOMATIC"_ustr))
+ , m_xRbManual(m_xBuilder->weld_radio_button(u"MANUAL"_ustr))
+ , m_xPbUpdateNow(m_xBuilder->weld_button(u"UPDATE_NOW"_ustr))
+ , m_xPbChangeSource(m_xBuilder->weld_button(u"CHANGE_SOURCE"_ustr))
+ , m_xPbBreakLink(m_xBuilder->weld_button(u"BREAK_LINK"_ustr))
, m_xVirDev(VclPtr<VirtualDevice>::Create())
{
// expand the point size of the desired font to the equivalent pixel size
@@ -149,7 +149,7 @@ void SvBaseLinksDlg::LinksSelectHdl(weld::TreeView* pSvTabListBox)
{
// possibly deselect old entries in case of multi-selection
int nSelEntry = pSvTabListBox->get_selected_index();
- SvBaseLink* pLink = reinterpret_cast<SvBaseLink*>(pSvTabListBox->get_id(nSelEntry).toInt64());
+ SvBaseLink* pLink = weld::fromId<SvBaseLink*>(pSvTabListBox->get_id(nSelEntry));
SvBaseLinkObjectType nObjectType = pLink->GetObjType();
if(!isClientFileType(nObjectType))
{
@@ -161,7 +161,7 @@ void SvBaseLinksDlg::LinksSelectHdl(weld::TreeView* pSvTabListBox)
std::vector<int> aRows = pSvTabListBox->get_selected_rows();
for (auto nEntry : aRows)
{
- pLink = reinterpret_cast<SvBaseLink*>(pSvTabListBox->get_id(nEntry).toInt64());
+ pLink = weld::fromId<SvBaseLink*>(pSvTabListBox->get_id(nEntry));
DBG_ASSERT(pLink, "Where is the Link?");
if (!pLink)
continue;
@@ -255,7 +255,7 @@ IMPL_LINK_NOARG(SvBaseLinksDlg, UpdateNowClickHdl, weld::Button&, void)
std::vector<int> aRows = m_xTbLinks->get_selected_rows();
for (int nFndPos : aRows)
{
- aLnkArr.push_back( reinterpret_cast<SvBaseLink*>( m_xTbLinks->get_id(nFndPos).toInt64() ) );
+ aLnkArr.push_back( weld::fromId<SvBaseLink*>( m_xTbLinks->get_id(nFndPos) ) );
aPosArr.push_back( nFndPos );
}
@@ -281,7 +281,7 @@ IMPL_LINK_NOARG(SvBaseLinksDlg, UpdateNowClickHdl, weld::Button&, void)
SetManager( pNewMgr );
- OUString sId = OUString::number(reinterpret_cast<sal_Int64>(aLnkArr[0]));
+ OUString sId = weld::toId(aLnkArr[0]);
int nE = m_xTbLinks->find_id(sId);
if (nE == -1)
nE = m_xTbLinks->get_selected_index();
@@ -306,7 +306,7 @@ IMPL_LINK_NOARG(SvBaseLinksDlg, ChangeSourceClickHdl, weld::Button&, void)
OUString sType, sFile, sLinkName;
OUString sFilter;
- SvBaseLink* pLink = reinterpret_cast<SvBaseLink*>(m_xTbLinks->get_id(aRows[0]).toInt64());
+ SvBaseLink* pLink = weld::fromId<SvBaseLink*>(m_xTbLinks->get_id(aRows[0]));
sfx2::LinkManager::GetDisplayNames( pLink, &sType, &sFile );
INetURLObject aUrl(sFile);
if(aUrl.GetProtocol() == INetProtocol::File)
@@ -322,7 +322,7 @@ IMPL_LINK_NOARG(SvBaseLinksDlg, ChangeSourceClickHdl, weld::Button&, void)
for (auto nRow : aRows)
{
- pLink = reinterpret_cast<SvBaseLink*>(m_xTbLinks->get_id(nRow).toInt64());
+ pLink = weld::fromId<SvBaseLink*>(m_xTbLinks->get_id(nRow));
DBG_ASSERT(pLink,"Where is the link?");
if (!pLink)
continue;
@@ -409,7 +409,7 @@ IMPL_LINK_NOARG( SvBaseLinksDlg, BreakLinkClickHdl, weld::Button&, void )
SvBaseLinkMemberList aLinkList;
for (auto nRow : aRows)
{
- SvBaseLink* pLink = reinterpret_cast<SvBaseLink*>(m_xTbLinks->get_id(nRow).toInt64());
+ SvBaseLink* pLink = weld::fromId<SvBaseLink*>(m_xTbLinks->get_id(nRow));
if (pLink)
aLinkList.push_back(pLink);
}
@@ -440,8 +440,8 @@ IMPL_LINK_NOARG( SvBaseLinksDlg, BreakLinkClickHdl, weld::Button&, void )
m_xPbChangeSource->set_sensitive(false);
m_xPbBreakLink->set_sensitive(false);
- m_xFtFullSourceName->set_label( "" );
- m_xFtFullTypeName->set_label( "" );
+ m_xFtFullSourceName->set_label( u""_ustr );
+ m_xFtFullTypeName->set_label( u""_ustr );
}
if( pLinkMgr && pLinkMgr->GetPersist() )
pLinkMgr->GetPersist()->SetModified();
@@ -452,7 +452,7 @@ IMPL_LINK_NOARG( SvBaseLinksDlg, UpdateWaitingHdl, Timer*, void )
m_xTbLinks->freeze();
for (int nPos = m_xTbLinks->n_children(); nPos; --nPos)
{
- tools::SvRef<SvBaseLink> xLink( reinterpret_cast<SvBaseLink*>(m_xTbLinks->get_id(nPos).toInt64()) );
+ tools::SvRef<SvBaseLink> xLink( weld::fromId<SvBaseLink*>(m_xTbLinks->get_id(nPos)) );
if( xLink.is() )
{
OUString sCur( ImplGetStateStr( *xLink ) ),
@@ -583,7 +583,7 @@ void SvBaseLinksDlg::InsertEntry(const SvBaseLink& rLink, int nPos, bool bSelect
nPos = m_xTbLinks->n_children();
m_xTbLinks->insert(nPos);
m_xTbLinks->set_text(nPos, aTxt, 0);
- m_xTbLinks->set_id(nPos, OUString::number(reinterpret_cast<sal_Int64>(&rLink)));
+ m_xTbLinks->set_id(nPos, weld::toId(&rLink));
if( SvBaseLinkObjectType::ClientGraphic == rLink.GetObjType() )
m_xTbLinks->set_text(nPos, sFilter, 1);
else
@@ -601,7 +601,7 @@ SvBaseLink* SvBaseLinksDlg::GetSelEntry(int* pPos)
{
if (pPos)
*pPos = nPos;
- return reinterpret_cast<SvBaseLink*>(m_xTbLinks->get_id(nPos).toInt64());
+ return weld::fromId<SvBaseLink*>(m_xTbLinks->get_id(nPos));
}
return nullptr;
}
diff --git a/cui/source/dialogs/multipat.cxx b/cui/source/dialogs/multipat.cxx
index aba063eb7b13..383c2ee1ab0b 100644
--- a/cui/source/dialogs/multipat.cxx
+++ b/cui/source/dialogs/multipat.cxx
@@ -30,12 +30,12 @@
#include <strings.hrc>
#include <comphelper/processfactory.hxx>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
+#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <unotools/pathoptions.hxx>
+#include <o3tl/string_view.hxx>
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno;
@@ -187,10 +187,10 @@ IMPL_LINK_NOARG(SvxPathSelectDialog, DelHdl_Impl, weld::Button&, void)
}
SvxMultiPathDialog::SvxMultiPathDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/multipathdialog.ui", "MultiPathDialog")
- , m_xRadioLB(m_xBuilder->weld_tree_view("paths"))
- , m_xAddBtn(m_xBuilder->weld_button("add"))
- , m_xDelBtn(m_xBuilder->weld_button("delete"))
+ : GenericDialogController(pParent, u"cui/ui/multipathdialog.ui"_ustr, u"MultiPathDialog"_ustr)
+ , m_xRadioLB(m_xBuilder->weld_tree_view(u"paths"_ustr))
+ , m_xAddBtn(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xDelBtn(m_xBuilder->weld_button(u"delete"_ustr))
{
m_xRadioLB->set_size_request(m_xRadioLB->get_approximate_digit_width() * 60,
m_xRadioLB->get_text_height() * 10);
@@ -205,10 +205,10 @@ SvxMultiPathDialog::SvxMultiPathDialog(weld::Window* pParent)
}
SvxPathSelectDialog::SvxPathSelectDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/selectpathdialog.ui", "SelectPathDialog")
- , m_xPathLB(m_xBuilder->weld_tree_view("paths"))
- , m_xAddBtn(m_xBuilder->weld_button("add"))
- , m_xDelBtn(m_xBuilder->weld_button("delete"))
+ : GenericDialogController(pParent, u"cui/ui/selectpathdialog.ui"_ustr, u"SelectPathDialog"_ustr)
+ , m_xPathLB(m_xBuilder->weld_tree_view(u"paths"_ustr))
+ , m_xAddBtn(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xDelBtn(m_xBuilder->weld_button(u"delete"_ustr))
{
m_xPathLB->set_size_request(m_xPathLB->get_approximate_digit_width() * 60,
m_xPathLB->get_text_height() * 10);
@@ -262,16 +262,16 @@ OUString SvxPathSelectDialog::GetPath() const
return sNewPath.makeStringAndClear();
}
-void SvxMultiPathDialog::SetPath( const OUString& rPath )
+void SvxMultiPathDialog::SetPath( std::u16string_view rPath )
{
- if ( !rPath.isEmpty() )
+ if ( !rPath.empty() )
{
const sal_Unicode cDelim = SVT_SEARCHPATH_DELIMITER;
int nCount = 0;
sal_Int32 nIndex = 0;
do
{
- const OUString sPath = rPath.getToken( 0, cDelim, nIndex );
+ const OUString sPath( o3tl::getToken(rPath, 0, cDelim, nIndex ) );
OUString sSystemPath;
bool bIsSystemPath =
osl::FileBase::getSystemPathFromFileURL(sPath, sSystemPath) == osl::FileBase::E_None;
@@ -292,14 +292,14 @@ void SvxMultiPathDialog::SetPath( const OUString& rPath )
SelectHdl_Impl(*m_xRadioLB);
}
-void SvxPathSelectDialog::SetPath(const OUString& rPath)
+void SvxPathSelectDialog::SetPath(std::u16string_view rPath)
{
- if ( !rPath.isEmpty() )
+ if ( !rPath.empty() )
{
sal_Int32 nIndex = 0;
do
{
- const OUString sPath = rPath.getToken( 0, SVT_SEARCHPATH_DELIMITER, nIndex );
+ const OUString sPath( o3tl::getToken(rPath, 0, SVT_SEARCHPATH_DELIMITER, nIndex ) );
OUString sSystemPath;
bool bIsSystemPath =
osl::FileBase::getSystemPathFromFileURL(sPath, sSystemPath) == osl::FileBase::E_None;
diff --git a/cui/source/dialogs/newtabledlg.cxx b/cui/source/dialogs/newtabledlg.cxx
index 9eb50987ea9a..123cc7b7f3c4 100644
--- a/cui/source/dialogs/newtabledlg.cxx
+++ b/cui/source/dialogs/newtabledlg.cxx
@@ -20,9 +20,9 @@
#include <newtabledlg.hxx>
SvxNewTableDialog::SvxNewTableDialog(weld::Window* pWindow)
- : GenericDialogController(pWindow, "cui/ui/newtabledialog.ui", "NewTableDialog")
- , mxNumColumns(m_xBuilder->weld_spin_button("columns"))
- , mxNumRows(m_xBuilder->weld_spin_button("rows"))
+ : GenericDialogController(pWindow, u"cui/ui/newtabledialog.ui"_ustr, u"NewTableDialog"_ustr)
+ , mxNumColumns(m_xBuilder->weld_spin_button(u"columns"_ustr))
+ , mxNumRows(m_xBuilder->weld_spin_button(u"rows"_ustr))
{
}
diff --git a/cui/source/dialogs/passwdomdlg.cxx b/cui/source/dialogs/passwdomdlg.cxx
index d84595ac89a7..5e90fc88725d 100644
--- a/cui/source/dialogs/passwdomdlg.cxx
+++ b/cui/source/dialogs/passwdomdlg.cxx
@@ -17,50 +17,72 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <sfx2/objsh.hxx>
+#include <svl/PasswordHelper.hxx>
#include <vcl/svapp.hxx>
+#include <officecfg/Office/Common.hxx>
#include <passwdomdlg.hxx>
#include <strings.hrc>
#include <dialmgr.hxx>
IMPL_LINK_NOARG(PasswordToOpenModifyDialog, OkBtnClickHdl, weld::Button&, void)
{
- bool bInvalidState = !m_xOpenReadonlyCB->get_active() &&
+ bool bInvalidState = !m_xOpenReadonlyCB->get_active() && !m_bAllowEmpty &&
m_xPasswdToOpenED->get_text().isEmpty() &&
m_xPasswdToModifyED->get_text().isEmpty();
if (bInvalidState)
{
- std::unique_ptr<weld::MessageDialog> xErrorBox(Application::CreateMessageDialog(m_xDialog.get(),
+ m_xErrorBox.reset(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok,
m_bIsPasswordToModify? m_aInvalidStateForOkButton : m_aInvalidStateForOkButton_v2));
- xErrorBox->run();
+ m_xErrorBox->runAsync(m_xErrorBox, [](sal_Int32 /*nResult*/) {});
}
- else // check for mismatched passwords...
+ else // check for mismatched passwords and password policy
{
+ if (m_oPasswordPolicy)
+ {
+ if (!SvPasswordHelper::PasswordMeetsPolicy(m_xPasswdToOpenED->get_text(),
+ m_oPasswordPolicy))
+ {
+ m_xPasswdToOpenED->grab_focus();
+ return;
+ }
+
+ if (m_xOpenReadonlyCB->get_active()
+ && !SvPasswordHelper::PasswordMeetsPolicy(m_xPasswdToModifyED->get_text(),
+ m_oPasswordPolicy))
+ {
+ m_xPasswdToModifyED->grab_focus();
+ return;
+ }
+ }
+
const bool bToOpenMatch = m_xPasswdToOpenED->get_text() == m_xReenterPasswdToOpenED->get_text();
const bool bToModifyMatch = m_xPasswdToModifyED->get_text() == m_xReenterPasswdToModifyED->get_text();
const int nMismatch = (bToOpenMatch? 0 : 1) + (bToModifyMatch? 0 : 1);
if (nMismatch > 0)
{
- std::unique_ptr<weld::MessageDialog> xErrorBox(Application::CreateMessageDialog(m_xDialog.get(),
+ m_xErrorBox.reset(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok,
nMismatch == 1 ? m_aOneMismatch : m_aTwoMismatch));
- xErrorBox->run();
-
- weld::Entry* pEdit = !bToOpenMatch ? m_xPasswdToOpenED.get() : m_xPasswdToModifyED.get();
- weld::Entry* pRepeatEdit = !bToOpenMatch? m_xReenterPasswdToOpenED.get() : m_xReenterPasswdToModifyED.get();
- if (nMismatch == 1)
- {
- pEdit->set_text( "" );
- pRepeatEdit->set_text( "" );
- }
- else if (nMismatch == 2)
+ m_xErrorBox->runAsync(m_xErrorBox, [this, bToOpenMatch, nMismatch](sal_Int32 /*nResult*/)
{
- m_xPasswdToOpenED->set_text( "" );
- m_xReenterPasswdToOpenED->set_text( "" );
- m_xPasswdToModifyED->set_text( "" );
- m_xReenterPasswdToModifyED->set_text( "" );
- }
- pEdit->grab_focus();
+ weld::Entry* pEdit = !bToOpenMatch ? m_xPasswdToOpenED.get() : m_xPasswdToModifyED.get();
+ weld::Entry* pRepeatEdit = !bToOpenMatch? m_xReenterPasswdToOpenED.get() : m_xReenterPasswdToModifyED.get();
+ if (nMismatch == 1)
+ {
+ pEdit->set_text( u""_ustr );
+ pRepeatEdit->set_text( u""_ustr );
+ }
+ else if (nMismatch == 2)
+ {
+ m_xPasswdToOpenED->set_text( u""_ustr );
+ m_xReenterPasswdToOpenED->set_text( u""_ustr );
+ m_xPasswdToModifyED->set_text( u""_ustr );
+ m_xReenterPasswdToModifyED->set_text( u""_ustr );
+ }
+ pEdit->grab_focus();
+ });
}
else
{
@@ -71,59 +93,118 @@ IMPL_LINK_NOARG(PasswordToOpenModifyDialog, OkBtnClickHdl, weld::Button&, void)
IMPL_LINK(PasswordToOpenModifyDialog, ChangeHdl, weld::Entry&, rEntry, void)
{
+ auto aPasswordText = rEntry.get_text();
+
weld::Label* pIndicator = nullptr;
- int nLength = rEntry.get_text().getLength();
+ weld::LevelBar* pLevelBar = nullptr;
if (&rEntry == m_xPasswdToOpenED.get())
+ {
pIndicator = m_xPasswdToOpenInd.get();
+ pLevelBar = m_xPasswdToOpenBar.get();
+ }
else if (&rEntry == m_xReenterPasswdToOpenED.get())
+ {
pIndicator = m_xReenterPasswdToOpenInd.get();
+ }
else if (&rEntry == m_xPasswdToModifyED.get())
+ {
pIndicator = m_xPasswdToModifyInd.get();
+ pLevelBar = m_xPasswdToModifyBar.get();
+ }
else if (&rEntry == m_xReenterPasswdToModifyED.get())
+ {
pIndicator = m_xReenterPasswdToModifyInd.get();
+ }
assert(pIndicator);
- pIndicator->set_visible(nLength >= m_nMaxPasswdLen);
+
+ bool bPasswordMeetsPolicy
+ = SvPasswordHelper::PasswordMeetsPolicy(aPasswordText, m_oPasswordPolicy);
+ if (pLevelBar)
+ {
+ rEntry.set_message_type(bPasswordMeetsPolicy ? weld::EntryMessageType::Normal
+ : weld::EntryMessageType::Error);
+ pIndicator->set_visible(!bPasswordMeetsPolicy);
+ }
+
+ // if password doesn't meet policy cap the percentage at 70%
+ if (pLevelBar)
+ pLevelBar->set_percentage(
+ std::min(SvPasswordHelper::GetPasswordStrengthPercentage(aPasswordText),
+ bPasswordMeetsPolicy ? std::numeric_limits<double>::max() : 70.0));
+
+ if (m_nMaxPasswdLen)
+ {
+ int nLength = aPasswordText.getLength();
+ pIndicator->set_visible(nLength >= m_nMaxPasswdLen);
+ }
}
PasswordToOpenModifyDialog::PasswordToOpenModifyDialog(weld::Window * pParent, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify)
- : SfxDialogController(pParent, "cui/ui/password.ui", "PasswordDialog")
- , m_xPasswdToOpenED(m_xBuilder->weld_entry("newpassEntry"))
- , m_xPasswdToOpenInd(m_xBuilder->weld_label("newpassIndicator"))
- , m_xReenterPasswdToOpenED(m_xBuilder->weld_entry("confirmpassEntry"))
- , m_xReenterPasswdToOpenInd(m_xBuilder->weld_label("confirmpassIndicator"))
- , m_xOptionsExpander(m_xBuilder->weld_expander("expander"))
- , m_xOk(m_xBuilder->weld_button("ok"))
- , m_xOpenReadonlyCB(m_xBuilder->weld_check_button("readonly"))
- , m_xPasswdToModifyFT(m_xBuilder->weld_label("label7"))
- , m_xPasswdToModifyED(m_xBuilder->weld_entry("newpassroEntry"))
- , m_xPasswdToModifyInd(m_xBuilder->weld_label("newpassroIndicator"))
- , m_xReenterPasswdToModifyFT(m_xBuilder->weld_label("label8"))
- , m_xReenterPasswdToModifyED(m_xBuilder->weld_entry("confirmropassEntry"))
- , m_xReenterPasswdToModifyInd(m_xBuilder->weld_label("confirmropassIndicator"))
- , m_aOneMismatch( CuiResId( RID_SVXSTR_ONE_PASSWORD_MISMATCH ) )
- , m_aTwoMismatch( CuiResId( RID_SVXSTR_TWO_PASSWORDS_MISMATCH ) )
- , m_aInvalidStateForOkButton( CuiResId( RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON ) )
- , m_aInvalidStateForOkButton_v2( CuiResId( RID_SVXSTR_INVALID_STATE_FOR_OK_BUTTON_V2 ) )
+ : SfxDialogController(pParent, u"cui/ui/password.ui"_ustr, u"PasswordDialog"_ustr)
+ , m_xPasswdToOpenED(m_xBuilder->weld_entry(u"newpassEntry"_ustr))
+ , m_xPasswdToOpenInd(m_xBuilder->weld_label(u"newpassIndicator"_ustr))
+ , m_xPasswdToOpenBar(m_xBuilder->weld_level_bar(u"passlevelbar"_ustr))
+ , m_xReenterPasswdToOpenED(m_xBuilder->weld_entry(u"confirmpassEntry"_ustr))
+ , m_xReenterPasswdToOpenInd(m_xBuilder->weld_label(u"confirmpassIndicator"_ustr))
+ , m_xOptionsExpander(m_xBuilder->weld_expander(u"expander"_ustr))
+ , m_xOk(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xOpenReadonlyCB(m_xBuilder->weld_check_button(u"readonly"_ustr))
+ , m_xPasswdToModifyFT(m_xBuilder->weld_label(u"label7"_ustr))
+ , m_xPasswdToModifyED(m_xBuilder->weld_entry(u"newpassroEntry"_ustr))
+ , m_xPasswdToModifyInd(m_xBuilder->weld_label(u"newpassroIndicator"_ustr))
+ , m_xPasswdToModifyBar(m_xBuilder->weld_level_bar(u"ropasslevelbar"_ustr))
+ , m_xReenterPasswdToModifyFT(m_xBuilder->weld_label(u"label8"_ustr))
+ , m_xReenterPasswdToModifyED(m_xBuilder->weld_entry(u"confirmropassEntry"_ustr))
+ , m_xReenterPasswdToModifyInd(m_xBuilder->weld_label(u"confirmropassIndicator"_ustr))
+ , m_aOneMismatch( CuiResId( RID_CUISTR_ONE_PASSWORD_MISMATCH ) )
+ , m_aTwoMismatch( CuiResId( RID_CUISTR_TWO_PASSWORDS_MISMATCH ) )
+ , m_aInvalidStateForOkButton( CuiResId( RID_CUISTR_INVALID_STATE_FOR_OK_BUTTON ) )
+ , m_aInvalidStateForOkButton_v2( CuiResId( RID_CUISTR_INVALID_STATE_FOR_OK_BUTTON_V2 ) )
+ , m_oPasswordPolicy(officecfg::Office::Common::Security::Scripting::PasswordPolicy::get())
, m_nMaxPasswdLen(nMaxPasswdLen)
, m_bIsPasswordToModify( bIsPasswordToModify )
+ , m_bAllowEmpty( false )
{
m_xOk->connect_clicked(LINK(this, PasswordToOpenModifyDialog, OkBtnClickHdl));
-
- if (nMaxPasswdLen)
+ m_xPasswdToOpenED->connect_changed(LINK(this, PasswordToOpenModifyDialog, ChangeHdl));
+ m_xPasswdToModifyED->connect_changed(LINK(this, PasswordToOpenModifyDialog, ChangeHdl));
+ if(m_oPasswordPolicy || nMaxPasswdLen)
{
- OUString aIndicatorTemplate(CuiResId(RID_SVXSTR_PASSWORD_LEN_INDICATOR).replaceFirst("%1", OUString::number(nMaxPasswdLen)));
- m_xPasswdToOpenED->set_max_length( nMaxPasswdLen );
- m_xPasswdToOpenED->connect_changed(LINK(this, PasswordToOpenModifyDialog, ChangeHdl));
- m_xPasswdToOpenInd->set_label(aIndicatorTemplate);
- m_xReenterPasswdToOpenED->set_max_length( nMaxPasswdLen );
m_xReenterPasswdToOpenED->connect_changed(LINK(this, PasswordToOpenModifyDialog, ChangeHdl));
- m_xReenterPasswdToOpenInd->set_label(aIndicatorTemplate);
- m_xPasswdToModifyED->set_max_length( nMaxPasswdLen );
- m_xPasswdToModifyED->connect_changed(LINK(this, PasswordToOpenModifyDialog, ChangeHdl));
- m_xPasswdToModifyInd->set_label(aIndicatorTemplate);
- m_xReenterPasswdToModifyED->set_max_length( nMaxPasswdLen );
m_xReenterPasswdToModifyED->connect_changed(LINK(this, PasswordToOpenModifyDialog, ChangeHdl));
- m_xReenterPasswdToModifyInd->set_label(aIndicatorTemplate);
+
+ OUString aIndicatorText{};
+ OUString aMaxPassLengthIndicator{ CuiResId(RID_CUISTR_PASSWORD_LEN_INDICATOR)
+ .replaceFirst("%1",
+ OUString::number(nMaxPasswdLen)) };
+ if (m_oPasswordPolicy && nMaxPasswdLen)
+ {
+ aIndicatorText
+ = officecfg::Office::Common::Security::Scripting::PasswordPolicyErrorMessage::get()
+ + "\n" + aMaxPassLengthIndicator;
+ }
+ else if (m_oPasswordPolicy)
+ {
+ aIndicatorText
+ = officecfg::Office::Common::Security::Scripting::PasswordPolicyErrorMessage::get();
+ }
+ else if (nMaxPasswdLen)
+ {
+ aIndicatorText = aMaxPassLengthIndicator;
+ }
+
+ m_xPasswdToOpenInd->set_label(aIndicatorText);
+ m_xReenterPasswdToOpenInd->set_label(aMaxPassLengthIndicator);
+ m_xPasswdToModifyInd->set_label(aIndicatorText);
+ m_xReenterPasswdToModifyInd->set_label(aMaxPassLengthIndicator);
+
+ if (nMaxPasswdLen)
+ {
+ m_xPasswdToOpenED->set_max_length(nMaxPasswdLen);
+ m_xReenterPasswdToOpenED->set_max_length(nMaxPasswdLen);
+ m_xPasswdToModifyED->set_max_length(nMaxPasswdLen);
+ m_xReenterPasswdToModifyED->set_max_length(nMaxPasswdLen);
+ }
}
m_xPasswdToOpenED->grab_focus();
@@ -131,11 +212,32 @@ PasswordToOpenModifyDialog::PasswordToOpenModifyDialog(weld::Window * pParent, s
m_xOptionsExpander->set_sensitive(bIsPasswordToModify);
if (!bIsPasswordToModify)
m_xOptionsExpander->hide();
+ else if (SfxObjectShell* pSh = SfxObjectShell::Current())
+ {
+ if (pSh->IsLoadReadonly())
+ {
+ m_xOpenReadonlyCB->set_active(true);
+ m_xOptionsExpander->set_expanded(true);
+ }
+ }
m_xOpenReadonlyCB->connect_toggled(LINK(this, PasswordToOpenModifyDialog, ReadonlyOnOffHdl));
ReadonlyOnOffHdl(*m_xOpenReadonlyCB);
}
+PasswordToOpenModifyDialog::~PasswordToOpenModifyDialog()
+{
+ if (m_xErrorBox)
+ {
+ m_xErrorBox->response(RET_CANCEL);
+ }
+}
+
+void PasswordToOpenModifyDialog::AllowEmpty()
+{
+ m_bAllowEmpty = true;
+}
+
OUString PasswordToOpenModifyDialog::GetPasswordToOpen() const
{
const bool bPasswdOk =
diff --git a/cui/source/dialogs/pastedlg.cxx b/cui/source/dialogs/pastedlg.cxx
index d86d277cc34f..91e91bf0dcec 100644
--- a/cui/source/dialogs/pastedlg.cxx
+++ b/cui/source/dialogs/pastedlg.cxx
@@ -30,10 +30,10 @@
#include <com/sun/star/beans/PropertyValue.hpp>
SvPasteObjectDialog::SvPasteObjectDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/pastespecial.ui", "PasteSpecialDialog")
- , m_xFtObjectSource(m_xBuilder->weld_label("source"))
- , m_xLbInsertList(m_xBuilder->weld_tree_view("list"))
- , m_xOKButton(m_xBuilder->weld_button("ok"))
+ : GenericDialogController(pParent, u"cui/ui/pastespecial.ui"_ustr, u"PasteSpecialDialog"_ustr)
+ , m_xFtObjectSource(m_xBuilder->weld_label(u"source"_ustr))
+ , m_xLbInsertList(m_xBuilder->weld_tree_view(u"list"_ustr))
+ , m_xOKButton(m_xBuilder->weld_button(u"ok"_ustr))
{
m_xLbInsertList->set_size_request(m_xLbInsertList->get_approximate_digit_width() * 40,
m_xLbInsertList->get_height_rows(6));
@@ -85,7 +85,7 @@ void SvPasteObjectDialog::PreGetFormat( const TransferableDataHelper &rHelper )
TransferableObjectDescriptor aDesc;
if (rHelper.HasFormat(SotClipboardFormatId::OBJECTDESCRIPTOR))
{
- (void)const_cast<TransferableDataHelper&>(rHelper).GetTransferableObjectDescriptor(
+ (void)rHelper.GetTransferableObjectDescriptor(
SotClipboardFormatId::OBJECTDESCRIPTOR, aDesc);
}
const DataFlavorExVector* pFormats = &rHelper.GetDataFlavorExVector();
@@ -204,7 +204,7 @@ SotClipboardFormatId SvPasteObjectDialog::GetFormat( const TransferableDataHelpe
TransferableObjectDescriptor aDesc;
if (rHelper.HasFormat(SotClipboardFormatId::OBJECTDESCRIPTOR))
{
- (void)const_cast<TransferableDataHelper&>(rHelper).GetTransferableObjectDescriptor(
+ (void)rHelper.GetTransferableObjectDescriptor(
SotClipboardFormatId::OBJECTDESCRIPTOR, aDesc);
}
const DataFlavorExVector* pFormats = &rHelper.GetDataFlavorExVector();
diff --git a/cui/source/dialogs/postdlg.cxx b/cui/source/dialogs/postdlg.cxx
index 6bd7766b04c2..f7c251055e18 100644
--- a/cui/source/dialogs/postdlg.cxx
+++ b/cui/source/dialogs/postdlg.cxx
@@ -35,16 +35,16 @@
SvxPostItDialog::SvxPostItDialog(weld::Widget* pParent, const SfxItemSet& rCoreSet,
bool bPrevNext)
- : SfxDialogController(pParent, "cui/ui/comment.ui", "CommentDialog")
+ : SfxDialogController(pParent, u"cui/ui/comment.ui"_ustr, u"CommentDialog"_ustr)
, m_rSet(rCoreSet)
- , m_xLastEditFT(m_xBuilder->weld_label("lastedit"))
- , m_xAltTitle(m_xBuilder->weld_label("alttitle"))
- , m_xEditED(m_xBuilder->weld_text_view("edit"))
- , m_xInsertAuthor(m_xBuilder->weld_widget("insertauthor"))
- , m_xAuthorBtn(m_xBuilder->weld_button("author"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
- , m_xPrevBtn(m_xBuilder->weld_button("previous"))
- , m_xNextBtn(m_xBuilder->weld_button("next"))
+ , m_xLastEditFT(m_xBuilder->weld_label(u"lastedit"_ustr))
+ , m_xAltTitle(m_xBuilder->weld_label(u"alttitle"_ustr))
+ , m_xEditED(m_xBuilder->weld_text_view(u"edit"_ustr))
+ , m_xInsertAuthor(m_xBuilder->weld_widget(u"insertauthor"_ustr))
+ , m_xAuthorBtn(m_xBuilder->weld_button(u"author"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xPrevBtn(m_xBuilder->weld_button(u"previous"_ustr))
+ , m_xNextBtn(m_xBuilder->weld_button(u"next"_ustr))
{
m_xPrevBtn->connect_clicked( LINK( this, SvxPostItDialog, PrevHdl ) );
m_xNextBtn->connect_clicked( LINK( this, SvxPostItDialog, NextHdl ) );
@@ -52,30 +52,24 @@ SvxPostItDialog::SvxPostItDialog(weld::Widget* pParent, const SfxItemSet& rCoreS
m_xOKBtn->connect_clicked( LINK( this, SvxPostItDialog, OKHdl ) );
bool bNew = true;
- sal_uInt16 nWhich = 0;
m_xPrevBtn->set_visible(bPrevNext);
m_xNextBtn->set_visible(bPrevNext);
- nWhich = m_rSet.GetPool()->GetWhich( SID_ATTR_POSTIT_AUTHOR );
OUString aAuthorStr, aDateStr;
- if (m_rSet.GetItemState( nWhich ) >= SfxItemState::DEFAULT)
+ if (m_rSet.GetItemState( SID_ATTR_POSTIT_AUTHOR ) >= SfxItemState::DEFAULT)
{
bNew = false;
- const SvxPostItAuthorItem& rAuthor =
- static_cast<const SvxPostItAuthorItem&>(m_rSet.Get(nWhich));
+ const SvxPostItAuthorItem& rAuthor = m_rSet.Get(SID_ATTR_POSTIT_AUTHOR);
aAuthorStr = rAuthor.GetValue();
}
else
aAuthorStr = SvtUserOptions().GetID();
- nWhich = m_rSet.GetPool()->GetWhich( SID_ATTR_POSTIT_DATE );
-
- if (m_rSet.GetItemState( nWhich ) >= SfxItemState::DEFAULT)
+ if (m_rSet.GetItemState( SID_ATTR_POSTIT_DATE ) >= SfxItemState::DEFAULT)
{
- const SvxPostItDateItem& rDate =
- static_cast<const SvxPostItDateItem&>(m_rSet.Get( nWhich ));
+ const SvxPostItDateItem& rDate = m_rSet.Get( SID_ATTR_POSTIT_DATE );
aDateStr = rDate.GetValue();
}
else
@@ -84,13 +78,10 @@ SvxPostItDialog::SvxPostItDialog(weld::Widget* pParent, const SfxItemSet& rCoreS
aDateStr = rLocaleWrapper.getDate( Date( Date::SYSTEM ) );
}
- nWhich = m_rSet.GetPool()->GetWhich( SID_ATTR_POSTIT_TEXT );
-
OUString aTextStr;
- if (m_rSet.GetItemState( nWhich ) >= SfxItemState::DEFAULT)
+ if (m_rSet.GetItemState( SID_ATTR_POSTIT_TEXT ) >= SfxItemState::DEFAULT)
{
- const SvxPostItTextItem& rText =
- static_cast<const SvxPostItTextItem&>(m_rSet.Get( nWhich ));
+ const SvxPostItTextItem& rText = m_rSet.Get( SID_ATTR_POSTIT_TEXT );
aTextStr = rText.GetValue();
}
@@ -162,12 +153,9 @@ IMPL_LINK_NOARG(SvxPostItDialog, OKHdl, weld::Button&, void)
{
const LocaleDataWrapper& rLocaleWrapper( Application::GetSettings().GetLocaleDataWrapper() );
m_xOutSet.reset(new SfxItemSet(m_rSet));
- m_xOutSet->Put( SvxPostItAuthorItem(SvtUserOptions().GetID(),
- m_rSet.GetPool()->GetWhich( SID_ATTR_POSTIT_AUTHOR ) ) );
- m_xOutSet->Put( SvxPostItDateItem(rLocaleWrapper.getDate( Date( Date::SYSTEM ) ),
- m_rSet.GetPool()->GetWhich( SID_ATTR_POSTIT_DATE ) ) );
- m_xOutSet->Put( SvxPostItTextItem(m_xEditED->get_text(),
- m_rSet.GetPool()->GetWhich( SID_ATTR_POSTIT_TEXT ) ) );
+ m_xOutSet->Put( SvxPostItAuthorItem(SvtUserOptions().GetID(), SID_ATTR_POSTIT_AUTHOR ) );
+ m_xOutSet->Put( SvxPostItDateItem(rLocaleWrapper.getDate( Date( Date::SYSTEM ) ), SID_ATTR_POSTIT_DATE ) );
+ m_xOutSet->Put( SvxPostItTextItem(m_xEditED->get_text(), SID_ATTR_POSTIT_TEXT ) );
m_xDialog->response(RET_OK);
}
diff --git a/cui/source/dialogs/screenshotannotationdlg.cxx b/cui/source/dialogs/screenshotannotationdlg.cxx
index 802453d2206c..8fc2ea362b32 100644
--- a/cui/source/dialogs/screenshotannotationdlg.cxx
+++ b/cui/source/dialogs/screenshotannotationdlg.cxx
@@ -35,7 +35,7 @@
#include <vcl/bitmapex.hxx>
#include <vcl/customweld.hxx>
#include <vcl/event.hxx>
-#include <vcl/pngwrite.hxx>
+#include <vcl/filter/PngImageWriter.hxx>
#include <vcl/svapp.hxx>
#include <vcl/salgtype.hxx>
#include <vcl/virdev.hxx>
@@ -59,9 +59,9 @@ namespace
OUString lcl_AltDescr()
{
- OUString aTempl("<alt id=\"%1\">"
+ OUString aTempl(u"<alt id=\"%1\">"
" " //FIXME real dialog title or something
- "</alt>");
+ "</alt>"_ustr);
aTempl = aTempl.replaceFirst( "%1", lcl_genRandom(u"alt_id") );
return aTempl;
@@ -69,10 +69,10 @@ namespace
OUString lcl_Image( std::u16string_view rScreenshotId, const Size& rSize )
{
- OUString aTempl("<image id=\"%1\" src=\"media/screenshots/%2.png\""
+ OUString aTempl(u"<image id=\"%1\" src=\"media/screenshots/%2.png\""
" width=\"%3cm\" height=\"%4cm\">"
"%5"
- "</image>");
+ "</image>"_ustr);
aTempl = aTempl.replaceFirst( "%1", lcl_genRandom(u"img_id") );
aTempl = aTempl.replaceFirst( "%2", rScreenshotId );
aTempl = aTempl.replaceFirst( "%3", OUString::number( rSize.Width() ) );
@@ -84,8 +84,8 @@ namespace
OUString lcl_ParagraphWithImage( std::u16string_view rScreenshotId, const Size& rSize )
{
- OUString aTempl( "<paragraph id=\"%1\" role=\"paragraph\">%2"
- "</paragraph>" SAL_NEWLINE_STRING );
+ OUString aTempl( u"<paragraph id=\"%1\" role=\"paragraph\">%2"
+ "</paragraph>" SAL_NEWLINE_STRING ""_ustr );
aTempl = aTempl.replaceFirst( "%1", lcl_genRandom(u"par_id") );
aTempl = aTempl.replaceFirst( "%2", lcl_Image(rScreenshotId, rSize) );
@@ -94,8 +94,8 @@ namespace
OUString lcl_Bookmark( std::u16string_view rWidgetId )
{
- OUString aTempl = "<!-- Bookmark for widget %1 -->" SAL_NEWLINE_STRING
- "<bookmark branch=\"hid/%2\" id=\"%3\" localize=\"false\"/>" SAL_NEWLINE_STRING;
+ OUString aTempl = u"<!-- Bookmark for widget %1 -->" SAL_NEWLINE_STRING
+ "<bookmark branch=\"hid/%2\" id=\"%3\" localize=\"false\"/>" SAL_NEWLINE_STRING ""_ustr;
aTempl = aTempl.replaceFirst( "%1", rWidgetId );
aTempl = aTempl.replaceFirst( "%2", rWidgetId );
aTempl = aTempl.replaceFirst( "%3", lcl_genRandom(u"bm_id") );
@@ -202,7 +202,7 @@ ScreenshotAnnotationDlg_Impl::ScreenshotAnnotationDlg_Impl(
mxVirtualBufferDevice(nullptr),
mpHilighted(nullptr),
maPicture(this),
- maSaveAsText(CuiResId(RID_SVXSTR_SAVE_SCREENSHOT_AS))
+ maSaveAsText(CuiResId(RID_CUISTR_SAVE_SCREENSHOT_AS))
{
VclPtr<VirtualDevice> xParentDialogSurface(rParentDialog.screenshot());
maParentDialogSize = xParentDialogSurface->GetOutputSizePixel();
@@ -215,11 +215,11 @@ ScreenshotAnnotationDlg_Impl::ScreenshotAnnotationDlg_Impl(
assert(0 != maParentDialogBitmap.GetSizePixel().Height());
// get needed widgets
- mxPicture.reset(new weld::CustomWeld(rParentBuilder, "picture", maPicture));
+ mxPicture.reset(new weld::CustomWeld(rParentBuilder, u"picture"_ustr, maPicture));
assert(mxPicture);
- mxText = rParentBuilder.weld_text_view("text");
+ mxText = rParentBuilder.weld_text_view(u"text"_ustr);
assert(mxText);
- mxSave = rParentBuilder.weld_button("save");
+ mxSave = rParentBuilder.weld_button(u"save"_ustr);
assert(mxSave);
// set screenshot image at DrawingArea, resize, set event listener
@@ -232,7 +232,7 @@ ScreenshotAnnotationDlg_Impl::ScreenshotAnnotationDlg_Impl(
maDimmedDialogBitmap.Adjust(-15, 0, 0, 0, 0);
// init paint buffering VirtualDevice
- mxVirtualBufferDevice = VclPtr<VirtualDevice>::Create(*Application::GetDefaultDevice(), DeviceFormat::DEFAULT);
+ mxVirtualBufferDevice = VclPtr<VirtualDevice>::Create(*Application::GetDefaultDevice(), DeviceFormat::WITHOUT_ALPHA);
mxVirtualBufferDevice->SetOutputSizePixel(maParentDialogSize);
mxVirtualBufferDevice->SetFillColor(COL_TRANSPARENT);
@@ -252,7 +252,7 @@ ScreenshotAnnotationDlg_Impl::ScreenshotAnnotationDlg_Impl(
if (mxText)
{
mxText->set_size_request(400, mxText->get_height_rows(10));
- OUString aHelpId = OStringToOUString( mrParentDialog.get_help_id(), RTL_TEXTENCODING_UTF8 );
+ OUString aHelpId = mrParentDialog.get_help_id();
Size aSizeCm = Application::GetDefaultDevice()->PixelToLogic(maParentDialogSize, MapMode(MapUnit::MapCM));
maMainMarkupText = lcl_ParagraphWithImage( aHelpId, aSizeCm );
mxText->set_text( maMainMarkupText );
@@ -276,7 +276,7 @@ IMPL_LINK_NOARG(ScreenshotAnnotationDlg_Impl, saveButtonHandler, weld::Button&,
// 'save screenshot...' pressed, offer to save maParentDialogBitmap
// as PNG image, use *.id file name as screenshot file name offering
// get a suggestion for the filename from buildable name
- OString aDerivedFileName = mrParentDialog.get_buildable_name();
+ OUString aDerivedFileName = mrParentDialog.get_buildable_name();
auto xFileDlg = std::make_unique<sfx2::FileDialogHelper>(ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION,
FileDialogFlags::NONE, mpParentWindow);
@@ -291,9 +291,9 @@ IMPL_LINK_NOARG(ScreenshotAnnotationDlg_Impl, saveButtonHandler, weld::Button&,
xFilePicker->setDisplayDirectory(maLastFolderURL);
}
- xFilePicker->appendFilter("*.png", "*.png");
- xFilePicker->setCurrentFilter("*.png");
- xFilePicker->setDefaultName(OStringToOUString(aDerivedFileName, RTL_TEXTENCODING_UTF8));
+ xFilePicker->appendFilter(u"*.png"_ustr, u"*.png"_ustr);
+ xFilePicker->setCurrentFilter(u"*.png"_ustr);
+ xFilePicker->setDefaultName(aDerivedFileName);
xFilePicker->setMultiSelectionMode(false);
if (xFilePicker->execute() != ui::dialogs::ExecutableDialogResults::OK)
@@ -341,8 +341,8 @@ IMPL_LINK_NOARG(ScreenshotAnnotationDlg_Impl, saveButtonHandler, weld::Button&,
mxVirtualBufferDevice->GetOutputSizePixel()));
// write as PNG
- vcl::PNGWriter aPNGWriter(aTargetBitmap);
- aPNGWriter.Write(aNew);
+ vcl::PngImageWriter aPNGWriter(aNew);
+ aPNGWriter.write(aTargetBitmap);
}
weld::ScreenShotEntry* ScreenshotAnnotationDlg_Impl::CheckHit(const basegfx::B2IPoint& rPosition)
@@ -546,10 +546,7 @@ bool ScreenshotAnnotationDlg_Impl::MouseButtonUp()
OUStringBuffer aBookmarks(maMainMarkupText);
for (auto&& rCandidate : maSelected)
- {
- OUString aHelpId = OStringToOUString( rCandidate->GetHelpId(), RTL_TEXTENCODING_UTF8 );
- aBookmarks.append(lcl_Bookmark( aHelpId ));
- }
+ aBookmarks.append(lcl_Bookmark(rCandidate->GetHelpId()));
mxText->set_text( aBookmarks.makeStringAndClear() );
bRepaint = true;
@@ -569,7 +566,7 @@ bool Picture::MouseButtonUp(const MouseEvent&)
}
ScreenshotAnnotationDlg::ScreenshotAnnotationDlg(weld::Dialog& rParentDialog)
- : GenericDialogController(&rParentDialog, "cui/ui/screenshotannotationdialog.ui", "ScreenshotAnnotationDialog")
+ : GenericDialogController(&rParentDialog, u"cui/ui/screenshotannotationdialog.ui"_ustr, u"ScreenshotAnnotationDialog"_ustr)
{
m_pImpl.reset(new ScreenshotAnnotationDlg_Impl(m_xDialog.get(), *m_xBuilder, rParentDialog));
}
diff --git a/cui/source/dialogs/scriptdlg.cxx b/cui/source/dialogs/scriptdlg.cxx
index acbdad7a1b16..017f1178be8b 100644
--- a/cui/source/dialogs/scriptdlg.cxx
+++ b/cui/source/dialogs/scriptdlg.cxx
@@ -50,10 +50,11 @@
#include <comphelper/SetFlagContextHelper.hxx>
#include <comphelper/documentinfo.hxx>
#include <comphelper/processfactory.hxx>
+#include <o3tl/string_view.hxx>
#include <svtools/imagemgr.hxx>
#include <tools/urlobj.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
using namespace ::com::sun::star;
using namespace css::uno;
@@ -63,7 +64,7 @@ using namespace css::document;
void SvxScriptOrgDialog::delUserData(const weld::TreeIter& rIter)
{
- SFEntry* pUserData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(rIter).toInt64());
+ SFEntry* pUserData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(rIter));
if (pUserData)
{
delete pUserData;
@@ -127,9 +128,6 @@ void SvxScriptOrgDialog::Init( std::u16string_view language )
Sequence< Reference< browse::XBrowseNode > > children;
- OUString userStr("user");
- OUString const shareStr("share");
-
try
{
Reference< browse::XBrowseNodeFactory > xFac = browse::theBrowseNodeFactory::get(xCtx);
@@ -149,22 +147,20 @@ void SvxScriptOrgDialog::Init( std::u16string_view language )
}
Reference<XModel> xDocumentModel;
- for ( const Reference< browse::XBrowseNode >& childNode : std::as_const(children) )
+ for (const Reference<browse::XBrowseNode>& childNode : children)
{
bool app = false;
OUString uiName = childNode->getName();
OUString factoryURL;
- if ( uiName == userStr || uiName == shareStr )
+ if (uiName == "user")
{
app = true;
- if ( uiName == userStr )
- {
- uiName = m_sMyMacros;
- }
- else
- {
- uiName = m_sProdMacros;
- }
+ uiName = m_sMyMacros;
+ }
+ else if (uiName == "share")
+ {
+ app = true;
+ uiName = m_sProdMacros;
}
else
{
@@ -182,7 +178,7 @@ void SvxScriptOrgDialog::Init( std::u16string_view language )
} catch(const uno::Exception&)
{}
- for ( const beans::PropertyValue& prop : std::as_const(moduleDescr))
+ for (const beans::PropertyValue& prop : moduleDescr)
{
if ( prop.Name == "ooSetupFactoryEmptyDocumentURL" )
{
@@ -196,7 +192,7 @@ void SvxScriptOrgDialog::Init( std::u16string_view language )
Reference< browse::XBrowseNode > langEntries =
getLangNodeFromRootNode( childNode, language );
- insertEntry( uiName, app ? OUString(RID_CUIBMP_HARDDISK) : OUString(RID_CUIBMP_DOC),
+ insertEntry( uiName, app ? RID_CUIBMP_HARDDISK : RID_CUIBMP_DOC,
nullptr, true, std::make_unique< SFEntry >( langEntries, xDocumentModel ), factoryURL, false );
}
@@ -282,7 +278,7 @@ void SvxScriptOrgDialog::RequestSubEntries(const weld::TreeIter& rRootEntry, Ref
// if we catch an exception in getChildNodes then no entries are added
}
- for ( const Reference< browse::XBrowseNode >& childNode : std::as_const(children) )
+ for (const Reference<browse::XBrowseNode>& childNode : children)
{
OUString name( childNode->getName() );
if ( childNode->getType() != browse::BrowseNodeTypes::SCRIPT)
@@ -298,9 +294,9 @@ void SvxScriptOrgDialog::RequestSubEntries(const weld::TreeIter& rRootEntry, Ref
void SvxScriptOrgDialog::insertEntry(const OUString& rText, const OUString& rBitmap,
const weld::TreeIter* pParent, bool bChildrenOnDemand, std::unique_ptr<SFEntry> && aUserData,
- const OUString& factoryURL, bool bSelect)
+ std::u16string_view factoryURL, bool bSelect)
{
- if (rBitmap == RID_CUIBMP_DOC && !factoryURL.isEmpty())
+ if (rBitmap == RID_CUIBMP_DOC && !factoryURL.empty())
{
OUString aImage = SvFileInformationManager::GetFileImageId(INetURLObject(factoryURL));
insertEntry(rText, aImage, pParent, bChildrenOnDemand, std::move(aUserData), bSelect);
@@ -313,7 +309,7 @@ void SvxScriptOrgDialog::insertEntry(
const OUString& rText, const OUString& rBitmap, const weld::TreeIter* pParent,
bool bChildrenOnDemand, std::unique_ptr<SFEntry> && aUserData, bool bSelect)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(aUserData.release()))); // XXX possible leak
+ OUString sId(weld::toId(aUserData.release())); // XXX possible leak
m_xScriptsBox->insert(pParent, -1, &rText, &sId, nullptr, nullptr,
bChildrenOnDemand, m_xScratchIter.get());
m_xScriptsBox->set_image(*m_xScratchIter, rBitmap);
@@ -326,7 +322,7 @@ void SvxScriptOrgDialog::insertEntry(
IMPL_LINK(SvxScriptOrgDialog, ExpandingHdl, const weld::TreeIter&, rIter, bool)
{
- SFEntry* userData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(rIter).toInt64());
+ SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(rIter));
Reference< browse::XBrowseNode > node;
Reference< XModel > model;
@@ -343,56 +339,56 @@ IMPL_LINK(SvxScriptOrgDialog, ExpandingHdl, const weld::TreeIter&, rIter, bool)
// CuiInputDialog ------------------------------------------------------------
CuiInputDialog::CuiInputDialog(weld::Window * pParent, InputDialogMode nMode)
- : GenericDialogController(pParent, "cui/ui/newlibdialog.ui", "NewLibDialog")
- , m_xEdit(m_xBuilder->weld_entry("entry"))
+ : GenericDialogController(pParent, u"cui/ui/newlibdialog.ui"_ustr, u"NewLibDialog"_ustr)
+ , m_xEdit(m_xBuilder->weld_entry(u"entry"_ustr))
{
m_xEdit->grab_focus();
- std::unique_ptr<weld::Label> xNewLibFT(m_xBuilder->weld_label("newlibft"));
+ std::unique_ptr<weld::Label> xNewLibFT(m_xBuilder->weld_label(u"newlibft"_ustr));
if ( nMode == InputDialogMode::NEWMACRO )
{
xNewLibFT->hide();
- std::unique_ptr<weld::Label> xNewMacroFT(m_xBuilder->weld_label("newmacroft"));
+ std::unique_ptr<weld::Label> xNewMacroFT(m_xBuilder->weld_label(u"newmacroft"_ustr));
xNewMacroFT->show();
- std::unique_ptr<weld::Label> xAltTitle(m_xBuilder->weld_label("altmacrotitle"));
+ std::unique_ptr<weld::Label> xAltTitle(m_xBuilder->weld_label(u"altmacrotitle"_ustr));
m_xDialog->set_title(xAltTitle->get_label());
}
else if ( nMode == InputDialogMode::RENAME )
{
xNewLibFT->hide();
- std::unique_ptr<weld::Label> xRenameFT(m_xBuilder->weld_label("renameft"));
+ std::unique_ptr<weld::Label> xRenameFT(m_xBuilder->weld_label(u"renameft"_ustr));
xRenameFT->show();
- std::unique_ptr<weld::Label> xAltTitle(m_xBuilder->weld_label("altrenametitle"));
+ std::unique_ptr<weld::Label> xAltTitle(m_xBuilder->weld_label(u"altrenametitle"_ustr));
m_xDialog->set_title(xAltTitle->get_label());
}
}
// ScriptOrgDialog ------------------------------------------------------------
-SvxScriptOrgDialog::SvxScriptOrgDialog(weld::Window* pParent, const OUString& language)
- : SfxDialogController(pParent, "cui/ui/scriptorganizer.ui", "ScriptOrganizerDialog")
+SvxScriptOrgDialog::SvxScriptOrgDialog(weld::Window* pParent, OUString language)
+ : SfxDialogController(pParent, u"cui/ui/scriptorganizer.ui"_ustr, u"ScriptOrganizerDialog"_ustr)
, m_pParent(pParent)
- , m_sLanguage(language)
- , m_delErrStr(CuiResId(RID_SVXSTR_DELFAILED))
- , m_delErrTitleStr(CuiResId(RID_SVXSTR_DELFAILED_TITLE))
- , m_delQueryStr(CuiResId(RID_SVXSTR_DELQUERY))
- , m_delQueryTitleStr(CuiResId(RID_SVXSTR_DELQUERY_TITLE))
- , m_createErrStr(CuiResId(RID_SVXSTR_CREATEFAILED))
- , m_createDupStr(CuiResId(RID_SVXSTR_CREATEFAILEDDUP))
- , m_createErrTitleStr(CuiResId(RID_SVXSTR_CREATEFAILED_TITLE))
- , m_renameErrStr(CuiResId(RID_SVXSTR_RENAMEFAILED))
- , m_renameErrTitleStr(CuiResId(RID_SVXSTR_RENAMEFAILED_TITLE))
- , m_sMyMacros(CuiResId(RID_SVXSTR_MYMACROS))
- , m_sProdMacros(CuiResId(RID_SVXSTR_PRODMACROS))
- , m_xScriptsBox(m_xBuilder->weld_tree_view("scripts"))
+ , m_sLanguage(std::move(language))
+ , m_delErrStr(CuiResId(RID_CUISTR_DELFAILED))
+ , m_delErrTitleStr(CuiResId(RID_CUISTR_DELFAILED_TITLE))
+ , m_delQueryStr(CuiResId(RID_CUISTR_DELQUERY))
+ , m_delQueryTitleStr(CuiResId(RID_CUISTR_DELQUERY_TITLE))
+ , m_createErrStr(CuiResId(RID_CUISTR_CREATEFAILED))
+ , m_createDupStr(CuiResId(RID_CUISTR_CREATEFAILEDDUP))
+ , m_createErrTitleStr(CuiResId(RID_CUISTR_CREATEFAILED_TITLE))
+ , m_renameErrStr(CuiResId(RID_CUISTR_RENAMEFAILED))
+ , m_renameErrTitleStr(CuiResId(RID_CUISTR_RENAMEFAILED_TITLE))
+ , m_sMyMacros(CuiResId(RID_CUISTR_MYMACROS))
+ , m_sProdMacros(CuiResId(RID_CUISTR_PRODMACROS))
+ , m_xScriptsBox(m_xBuilder->weld_tree_view(u"scripts"_ustr))
, m_xScratchIter(m_xScriptsBox->make_iterator())
- , m_xRunButton(m_xBuilder->weld_button("ok"))
- , m_xCloseButton(m_xBuilder->weld_button("close"))
- , m_xCreateButton(m_xBuilder->weld_button("create"))
- , m_xEditButton(m_xBuilder->weld_button("edit"))
- , m_xRenameButton(m_xBuilder->weld_button("rename"))
- , m_xDelButton(m_xBuilder->weld_button("delete"))
+ , m_xRunButton(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xCloseButton(m_xBuilder->weld_button(u"close"_ustr))
+ , m_xCreateButton(m_xBuilder->weld_button(u"create"_ustr))
+ , m_xEditButton(m_xBuilder->weld_button(u"edit"_ustr))
+ , m_xRenameButton(m_xBuilder->weld_button(u"rename"_ustr))
+ , m_xDelButton(m_xBuilder->weld_button(u"delete"_ustr))
{
// must be a neater way to deal with the strings than as above
// append the language to the dialog title
@@ -469,7 +465,7 @@ void SvxScriptOrgDialog::CheckButtons( Reference< browse::XBrowseNode > const &
return;
}
- OUString sName("Editable");
+ OUString sName(u"Editable"_ustr);
if ( getBoolProperty( xProps, sName ) )
{
@@ -530,7 +526,7 @@ IMPL_LINK_NOARG(SvxScriptOrgDialog, ScriptSelectHdl, weld::TreeView&, void)
if (!m_xScriptsBox->get_selected(xIter.get()))
return;
- SFEntry* userData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(*xIter).toInt64());
+ SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(*xIter));
Reference< browse::XBrowseNode > node;
if (userData)
@@ -558,7 +554,7 @@ IMPL_LINK(SvxScriptOrgDialog, ButtonHdl, weld::Button&, rButton, void)
std::unique_ptr<weld::TreeIter> xIter = m_xScriptsBox->make_iterator();
if (!m_xScriptsBox->get_selected(xIter.get()))
return;
- SFEntry* userData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(*xIter).toInt64());
+ SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(*xIter));
if (!userData)
return;
@@ -602,11 +598,11 @@ IMPL_LINK(SvxScriptOrgDialog, ButtonHdl, weld::Button&, rButton, void)
bool bParent = m_xScriptsBox->iter_parent(*xParentIter);
while (bParent && !mspNode.is() )
{
- SFEntry* mspUserData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(*xParentIter).toInt64());
+ SFEntry* mspUserData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(*xParentIter));
mspNode.set( mspUserData->GetNode() , UNO_QUERY );
bParent = m_xScriptsBox->iter_parent(*xParentIter);
}
- xProp->getPropertyValue("URI") >>= tmpString;
+ xProp->getPropertyValue(u"URI"_ustr) >>= tmpString;
const OUString scriptURL( tmpString );
if ( mspNode.is() )
@@ -654,7 +650,7 @@ IMPL_LINK(SvxScriptOrgDialog, ButtonHdl, weld::Button&, rButton, void)
try
{
// ISSUE need code to run script here
- xInv->invoke( "Editable", args, outIndex, outArgs );
+ xInv->invoke( u"Editable"_ustr, args, outIndex, outArgs );
}
catch( Exception const & )
{
@@ -679,7 +675,7 @@ IMPL_LINK(SvxScriptOrgDialog, ButtonHdl, weld::Button&, rButton, void)
Reference< browse::XBrowseNode > SvxScriptOrgDialog::getBrowseNode(const weld::TreeIter& rEntry)
{
Reference< browse::XBrowseNode > node;
- SFEntry* userData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(rEntry).toInt64());
+ SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(rEntry));
if (userData)
{
node = userData->GetNode();
@@ -690,7 +686,7 @@ Reference< browse::XBrowseNode > SvxScriptOrgDialog::getBrowseNode(const weld::T
Reference< XModel > SvxScriptOrgDialog::getModel(const weld::TreeIter& rEntry)
{
Reference< XModel > model;
- SFEntry* userData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(rEntry).toInt64());
+ SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(rEntry));
if ( userData )
{
model = userData->GetModel();
@@ -755,9 +751,9 @@ void SvxScriptOrgDialog::createEntry(const weld::TreeIter& rEntry)
if(extnPos>0)
extn = nodeName.copy(extnPos);
}
- for( const Reference< browse::XBrowseNode >& n : std::as_const(childNodes) )
+ for (const Reference<browse::XBrowseNode>& n : childNodes)
{
- if (OUStringConcatenation(aNewName+extn) == n->getName())
+ if (Concat2View(aNewName+extn) == n->getName())
{
bFound = true;
break;
@@ -782,9 +778,9 @@ void SvxScriptOrgDialog::createEntry(const weld::TreeIter& rEntry)
{
OUString aUserSuppliedName = aNewDlg.GetObjectName();
bValid = true;
- for( const Reference< browse::XBrowseNode >& n : std::as_const(childNodes) )
+ for (const Reference<browse::XBrowseNode>& n : childNodes)
{
- if (OUStringConcatenation(aUserSuppliedName+extn) == n->getName())
+ if (Concat2View(aUserSuppliedName+extn) == n->getName())
{
bValid = false;
OUString aError = m_createErrStr + m_createDupStr;
@@ -817,9 +813,8 @@ void SvxScriptOrgDialog::createEntry(const weld::TreeIter& rEntry)
Sequence< sal_Int16 > outIndex;
try
{
- Any aResult = xInv->invoke( "Creatable", args, outIndex, outArgs );
- Reference< browse::XBrowseNode > newNode( aResult, UNO_QUERY );
- aChildNode = newNode;
+ Any aResult = xInv->invoke( u"Creatable"_ustr, args, outIndex, outArgs );
+ aChildNode.set(aResult, UNO_QUERY);
}
catch( Exception const & )
@@ -852,7 +847,7 @@ void SvxScriptOrgDialog::createEntry(const weld::TreeIter& rEntry)
// loaded, this will prevent RequestingChildren ( called
// from vcl via RequestingChildren ) from
// creating new ( duplicate ) children
- SFEntry* userData = reinterpret_cast<SFEntry*>(m_xScriptsBox->get_id(rEntry).toInt64());
+ SFEntry* userData = weld::fromId<SFEntry*>(m_xScriptsBox->get_id(rEntry));
if ( userData && !userData->isLoaded() )
{
userData->setLoaded();
@@ -898,9 +893,8 @@ void SvxScriptOrgDialog::renameEntry(const weld::TreeIter& rEntry)
Sequence< sal_Int16 > outIndex;
try
{
- Any aResult = xInv->invoke( "Renamable", args, outIndex, outArgs );
- Reference< browse::XBrowseNode > newNode( aResult, UNO_QUERY );
- aChildNode = newNode;
+ Any aResult = xInv->invoke( u"Renamable"_ustr, args, outIndex, outArgs );
+ aChildNode.set(aResult, UNO_QUERY);
}
catch( Exception const & )
@@ -948,7 +942,7 @@ void SvxScriptOrgDialog::deleteEntry(const weld::TreeIter& rEntry)
Sequence< sal_Int16 > outIndex;
try
{
- Any aResult = xInv->invoke( "Deletable", args, outIndex, outArgs );
+ Any aResult = xInv->invoke( u"Deletable"_ustr, args, outIndex, outArgs );
aResult >>= result; // or do we just assume true if no exception ?
}
catch( Exception const & )
@@ -1034,8 +1028,7 @@ void SvxScriptOrgDialog::StoreCurrentSelection()
aDescription = ";" + aDescription;
}
while (bEntry);
- OUString sDesc( aDescription );
- m_lastSelection[ m_sLanguage ] = sDesc;
+ m_lastSelection[m_sLanguage] = aDescription;
}
void SvxScriptOrgDialog::RestorePreviousSelection()
@@ -1048,7 +1041,7 @@ void SvxScriptOrgDialog::RestorePreviousSelection()
sal_Int32 nIndex = 0;
while (nIndex != -1)
{
- OUString aTmp( aStoredEntry.getToken( 0, ';', nIndex ) );
+ std::u16string_view aTmp( o3tl::getToken(aStoredEntry, 0, ';', nIndex ) );
bool bTmpEntry;
if (!xEntry)
@@ -1090,14 +1083,14 @@ namespace {
OUString ReplaceString(
const OUString& source,
- const OUString& token,
+ std::u16string_view token,
std::u16string_view value )
{
sal_Int32 pos = source.indexOf( token );
if ( pos != -1 && !value.empty() )
{
- return source.replaceAt( pos, token.getLength(), value );
+ return source.replaceAt( pos, token.size(), value );
}
else
{
@@ -1113,20 +1106,20 @@ OUString FormatErrorString(
std::u16string_view type,
std::u16string_view message )
{
- OUString result = unformatted.copy( 0 );
+ OUString result = unformatted;
- result = ReplaceString(result, "%LANGUAGENAME", language );
- result = ReplaceString(result, "%SCRIPTNAME", script );
- result = ReplaceString(result, "%LINENUMBER", line );
+ result = ReplaceString(result, u"%LANGUAGENAME", language );
+ result = ReplaceString(result, u"%SCRIPTNAME", script );
+ result = ReplaceString(result, u"%LINENUMBER", line );
if ( !type.empty() )
{
- result += "\n\n" + CuiResId(RID_SVXSTR_ERROR_TYPE_LABEL) + " " + type;
+ result += "\n\n" + CuiResId(RID_CUISTR_ERROR_TYPE_LABEL) + " " + type;
}
if ( !message.empty() )
{
- result += "\n\n" + CuiResId(RID_SVXSTR_ERROR_MESSAGE_LABEL) + " " + message;
+ result += "\n\n" + CuiResId(RID_CUISTR_ERROR_MESSAGE_LABEL) + " " + message;
}
return result;
@@ -1135,9 +1128,9 @@ OUString FormatErrorString(
OUString GetErrorMessage(
const provider::ScriptErrorRaisedException& eScriptError )
{
- OUString unformatted = CuiResId( RID_SVXSTR_ERROR_AT_LINE );
+ OUString unformatted = CuiResId( RID_CUISTR_ERROR_AT_LINE );
- OUString unknown("UNKNOWN");
+ OUString unknown(u"UNKNOWN"_ustr);
OUString language = unknown;
OUString script = unknown;
OUString line = unknown;
@@ -1160,11 +1153,11 @@ OUString GetErrorMessage(
if ( eScriptError.lineNum != -1 )
{
line = OUString::number( eScriptError.lineNum );
- unformatted = CuiResId( RID_SVXSTR_ERROR_AT_LINE );
+ unformatted = CuiResId( RID_CUISTR_ERROR_AT_LINE );
}
else
{
- unformatted = CuiResId( RID_SVXSTR_ERROR_RUNNING );
+ unformatted = CuiResId( RID_CUISTR_ERROR_RUNNING );
}
return FormatErrorString(
@@ -1174,9 +1167,9 @@ OUString GetErrorMessage(
OUString GetErrorMessage(
const provider::ScriptExceptionRaisedException& eScriptException )
{
- OUString unformatted = CuiResId( RID_SVXSTR_EXCEPTION_AT_LINE );
+ OUString unformatted = CuiResId( RID_CUISTR_EXCEPTION_AT_LINE );
- OUString unknown("UNKNOWN");
+ OUString unknown(u"UNKNOWN"_ustr);
OUString language = unknown;
OUString script = unknown;
OUString line = unknown;
@@ -1200,11 +1193,11 @@ OUString GetErrorMessage(
if ( eScriptException.lineNum != -1 )
{
line = OUString::number( eScriptException.lineNum );
- unformatted = CuiResId( RID_SVXSTR_EXCEPTION_AT_LINE );
+ unformatted = CuiResId( RID_CUISTR_EXCEPTION_AT_LINE );
}
else
{
- unformatted = CuiResId( RID_SVXSTR_EXCEPTION_RUNNING );
+ unformatted = CuiResId( RID_CUISTR_EXCEPTION_RUNNING );
}
if ( !eScriptException.exceptionType.isEmpty() )
@@ -1219,11 +1212,11 @@ OUString GetErrorMessage(
OUString GetErrorMessage(
const provider::ScriptFrameworkErrorException& sError )
{
- OUString unformatted = CuiResId( RID_SVXSTR_FRAMEWORK_ERROR_RUNNING );
+ OUString unformatted = CuiResId( RID_CUISTR_FRAMEWORK_ERROR_RUNNING );
- OUString language("UNKNOWN");
+ OUString language(u"UNKNOWN"_ustr);
- OUString script("UNKNOWN");
+ OUString script(u"UNKNOWN"_ustr);
OUString message;
@@ -1237,9 +1230,8 @@ OUString GetErrorMessage(
}
if ( sError.errorType == provider::ScriptFrameworkErrorType::NOTSUPPORTED )
{
- message =
- CuiResId( RID_SVXSTR_ERROR_LANG_NOT_SUPPORTED );
- message = ReplaceString(message, "%LANGUAGENAME", language );
+ message = CuiResId(RID_CUISTR_ERROR_LANG_NOT_SUPPORTED);
+ message = ReplaceString(message, u"%LANGUAGENAME", language );
}
else
@@ -1302,12 +1294,11 @@ OUString GetErrorMessage( const css::uno::Any& aException )
void SvxScriptErrorDialog::ShowAsyncErrorDialog( weld::Window* pParent, css::uno::Any const & aException )
{
SolarMutexGuard aGuard;
- OUString sMessage = GetErrorMessage( aException );
// Pass a copy of the message to the ShowDialog method as the
// SvxScriptErrorDialog may be deleted before ShowDialog is called
DialogData* pData = new DialogData;
- pData->sMessage = sMessage;
+ pData->sMessage = GetErrorMessage(aException);
pData->pParent = pParent;
Application::PostUserEvent(
LINK( nullptr, SvxScriptErrorDialog, ShowDialog ),
@@ -1320,17 +1311,16 @@ IMPL_STATIC_LINK( SvxScriptErrorDialog, ShowDialog, void*, p, void )
OUString message = xData->sMessage;
if ( message.isEmpty() )
- message = CuiResId( RID_SVXSTR_ERROR_TITLE );
+ message = CuiResId( RID_CUISTR_ERROR_TITLE );
std::shared_ptr<weld::MessageDialog> xBox;
xBox.reset(Application::CreateMessageDialog(
xData->pParent,
VclMessageType::Warning,
VclButtonsType::Ok,
- message,
- comphelper::LibreOfficeKit::isActive()));
+ message));
- xBox->set_title(CuiResId(RID_SVXSTR_ERROR_TITLE));
+ xBox->set_title(CuiResId(RID_CUISTR_ERROR_TITLE));
xBox->runAsync(xBox, [](sal_Int32 /*nResult*/) {});
}
diff --git a/cui/source/dialogs/sdrcelldlg.cxx b/cui/source/dialogs/sdrcelldlg.cxx
index fda8b4ce1385..dce598ec961d 100644
--- a/cui/source/dialogs/sdrcelldlg.cxx
+++ b/cui/source/dialogs/sdrcelldlg.cxx
@@ -21,11 +21,16 @@
#include <cuitabarea.hxx>
#include <svx/svdmodel.hxx>
#include <border.hxx>
+#include <paragrph.hxx>
+#include <svl/intitem.hxx>
+#include <svl/cjkoptions.hxx>
+#include <svx/flagsdef.hxx>
+#include <svx/svxids.hrc>
#include <svx/dialogs.hrc>
-SvxFormatCellsDialog::SvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel)
- : SfxTabDialogController(pParent, "cui/ui/formatcellsdialog.ui", "FormatCellsDialog", pAttr)
- , mrOutAttrs(*pAttr)
+SvxFormatCellsDialog::SvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet& rAttr, const SdrModel& rModel, bool bStyle)
+ : SfxTabDialogController(pParent, u"cui/ui/formatcellsdialog.ui"_ustr, u"FormatCellsDialog"_ustr, &rAttr, bStyle)
+ , mrOutAttrs(rAttr)
, mpColorTab(rModel.GetColorList())
, mnColorTabState ( ChangeType::NONE )
, mpGradientList(rModel.GetGradientList())
@@ -33,14 +38,36 @@ SvxFormatCellsDialog::SvxFormatCellsDialog(weld::Window* pParent, const SfxItemS
, mpBitmapList(rModel.GetBitmapList())
, mpPatternList(rModel.GetPatternList())
{
- AddTabPage("name", RID_SVXPAGE_CHAR_NAME);
- AddTabPage("effects", RID_SVXPAGE_CHAR_EFFECTS);
- AddTabPage("border", RID_SVXPAGE_BORDER );
- AddTabPage("area", RID_SVXPAGE_AREA);
- AddTabPage("shadow", SvxShadowTabPage::Create, nullptr);
+ AddTabPage(u"name"_ustr, RID_SVXPAGE_CHAR_NAME);
+ AddTabPage(u"effects"_ustr, RID_SVXPAGE_CHAR_EFFECTS);
+ AddTabPage(u"border"_ustr, RID_SVXPAGE_BORDER );
+ AddTabPage(u"area"_ustr, RID_SVXPAGE_AREA);
+
+ if (bStyle)
+ {
+ AddTabPage(u"position"_ustr, RID_SVXPAGE_CHAR_POSITION);
+ AddTabPage(u"highlight"_ustr, RID_SVXPAGE_BKG);
+ AddTabPage(u"indentspacing"_ustr, RID_SVXPAGE_STD_PARAGRAPH);
+ AddTabPage(u"alignment"_ustr, SvxParaAlignTabPage::Create, SvxParaAlignTabPage::GetSdrRanges);
+ RemoveTabPage(u"shadow"_ustr);
+ }
+ else
+ {
+ RemoveTabPage(u"position"_ustr);
+ RemoveTabPage(u"highlight"_ustr);
+ RemoveTabPage(u"indentspacing"_ustr);
+ RemoveTabPage(u"alignment"_ustr);
+ AddTabPage(u"shadow"_ustr, SvxShadowTabPage::Create, nullptr);
+ RemoveStandardButton();
+ }
+
+ if (bStyle && SvtCJKOptions::IsAsianTypographyEnabled())
+ AddTabPage(u"asian"_ustr, RID_SVXPAGE_PARA_ASIAN);
+ else
+ RemoveTabPage(u"asian"_ustr);
}
-void SvxFormatCellsDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
+void SvxFormatCellsDialog::PageCreated(const OUString& rId, SfxTabPage &rPage)
{
if (rId == "area")
{
@@ -62,6 +89,16 @@ void SvxFormatCellsDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
static_cast<SvxShadowTabPage&>(rPage).SetColorList( mpColorTab );
static_cast<SvxShadowTabPage&>(rPage).SetColorChgd( &mnColorTabState );
}
+ else if (rId == "alignment")
+ {
+ static_cast<SvxParaAlignTabPage&>(rPage).EnableSdrVertAlign();
+ }
+ else if (rId == "highlight")
+ {
+ SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
+ aSet.Put(SfxUInt32Item(SID_FLAG_TYPE,static_cast<sal_uInt32>(SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR)));
+ rPage.PageCreated(aSet);
+ }
else
SfxTabDialogController::PageCreated(rId, rPage);
}
diff --git a/cui/source/dialogs/showcols.cxx b/cui/source/dialogs/showcols.cxx
index b089f5f8e14b..e7f1ae746727 100644
--- a/cui/source/dialogs/showcols.cxx
+++ b/cui/source/dialogs/showcols.cxx
@@ -19,19 +19,18 @@
#include <showcols.hxx>
-#include <osl/diagnose.h>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <comphelper/types.hxx>
#include <tools/debug.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
-constexpr OUStringLiteral CUIFM_PROP_HIDDEN = u"Hidden";
+constexpr OUString CUIFM_PROP_HIDDEN = u"Hidden"_ustr;
constexpr OUStringLiteral CUIFM_PROP_LABEL = u"Label";
FmShowColsDialog::FmShowColsDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/showcoldialog.ui", "ShowColDialog")
- , m_xList(m_xBuilder->weld_tree_view("treeview"))
- , m_xOK(m_xBuilder->weld_button("ok"))
+ : GenericDialogController(pParent, u"cui/ui/showcoldialog.ui"_ustr, u"ShowColDialog"_ustr)
+ , m_xList(m_xBuilder->weld_tree_view(u"treeview"_ustr))
+ , m_xOK(m_xBuilder->weld_button(u"ok"_ustr))
{
m_xList->set_size_request(m_xList->get_approximate_digit_width() * 40,
m_xList->get_height_rows(8));
diff --git a/cui/source/dialogs/splitcelldlg.cxx b/cui/source/dialogs/splitcelldlg.cxx
index 14146b44c373..a734b69e732a 100644
--- a/cui/source/dialogs/splitcelldlg.cxx
+++ b/cui/source/dialogs/splitcelldlg.cxx
@@ -20,11 +20,11 @@
#include <splitcelldlg.hxx>
SvxSplitTableDlg::SvxSplitTableDlg(weld::Window *pParent, bool bIsTableVertical, tools::Long nMaxVertical, tools::Long nMaxHorizontal)
- : GenericDialogController(pParent, "cui/ui/splitcellsdialog.ui", "SplitCellsDialog")
- , m_xCountEdit(m_xBuilder->weld_spin_button("countnf"))
- , m_xHorzBox(!bIsTableVertical ? m_xBuilder->weld_radio_button("hori") : m_xBuilder->weld_radio_button("vert"))
- , m_xVertBox(!bIsTableVertical ? m_xBuilder->weld_radio_button("vert") : m_xBuilder->weld_radio_button("hori"))
- , m_xPropCB(m_xBuilder->weld_check_button("prop"))
+ : GenericDialogController(pParent, u"cui/ui/splitcellsdialog.ui"_ustr, u"SplitCellsDialog"_ustr)
+ , m_xCountEdit(m_xBuilder->weld_spin_button(u"countnf"_ustr))
+ , m_xHorzBox(!bIsTableVertical ? m_xBuilder->weld_radio_button(u"hori"_ustr) : m_xBuilder->weld_radio_button(u"vert"_ustr))
+ , m_xVertBox(!bIsTableVertical ? m_xBuilder->weld_radio_button(u"vert"_ustr) : m_xBuilder->weld_radio_button(u"hori"_ustr))
+ , m_xPropCB(m_xBuilder->weld_check_button(u"prop"_ustr))
, mnMaxVertical(nMaxVertical)
, mnMaxHorizontal(nMaxHorizontal)
{
diff --git a/cui/source/dialogs/srchxtra.cxx b/cui/source/dialogs/srchxtra.cxx
index d857f77c42df..efa37ecb945c 100644
--- a/cui/source/dialogs/srchxtra.cxx
+++ b/cui/source/dialogs/srchxtra.cxx
@@ -36,37 +36,35 @@
#include <vcl/svapp.hxx>
SvxSearchFormatDialog::SvxSearchFormatDialog(weld::Window* pParent, const SfxItemSet& rSet)
- : SfxTabDialogController(pParent, "cui/ui/searchformatdialog.ui", "SearchFormatDialog", &rSet)
+ : SfxTabDialogController(pParent, u"cui/ui/searchformatdialog.ui"_ustr, u"SearchFormatDialog"_ustr, &rSet)
{
- AddTabPage("font", SvxCharNamePage::Create, nullptr);
- AddTabPage("fonteffects", SvxCharEffectsPage::Create, nullptr);
- AddTabPage("position", SvxCharPositionPage::Create, nullptr);
- AddTabPage("asianlayout", SvxCharTwoLinesPage::Create, nullptr);
- AddTabPage("labelTP_PARA_STD", SvxStdParagraphTabPage::Create, nullptr);
- AddTabPage("labelTP_PARA_ALIGN", SvxParaAlignTabPage::Create, nullptr);
- AddTabPage("labelTP_PARA_EXT", SvxExtParagraphTabPage::Create, nullptr);
- AddTabPage("labelTP_PARA_ASIAN", SvxAsianTabPage::Create, nullptr );
- AddTabPage("background", SvxBkgTabPage::Create, nullptr);
+ AddTabPage(u"font"_ustr, SvxCharNamePage::Create, nullptr);
+ AddTabPage(u"fonteffects"_ustr, SvxCharEffectsPage::Create, nullptr);
+ AddTabPage(u"position"_ustr, SvxCharPositionPage::Create, nullptr);
+ AddTabPage(u"asianlayout"_ustr, SvxCharTwoLinesPage::Create, nullptr);
+ AddTabPage(u"labelTP_PARA_STD"_ustr, SvxStdParagraphTabPage::Create, nullptr);
+ AddTabPage(u"labelTP_PARA_ALIGN"_ustr, SvxParaAlignTabPage::Create, nullptr);
+ AddTabPage(u"labelTP_PARA_EXT"_ustr, SvxExtParagraphTabPage::Create, nullptr);
+ AddTabPage(u"labelTP_PARA_ASIAN"_ustr, SvxAsianTabPage::Create, nullptr );
+ AddTabPage(u"background"_ustr, SvxBkgTabPage::Create, nullptr);
// remove asian tabpages if necessary
if ( !SvtCJKOptions::IsDoubleLinesEnabled() )
- RemoveTabPage("asianlayout");
+ RemoveTabPage(u"asianlayout"_ustr);
if ( !SvtCJKOptions::IsAsianTypographyEnabled() )
- RemoveTabPage("labelTP_PARA_ASIAN");
+ RemoveTabPage(u"labelTP_PARA_ASIAN"_ustr);
}
SvxSearchFormatDialog::~SvxSearchFormatDialog()
{
}
-void SvxSearchFormatDialog::PageCreated(const OString& rId, SfxTabPage& rPage)
+void SvxSearchFormatDialog::PageCreated(const OUString& rId, SfxTabPage& rPage)
{
if (rId == "font")
{
const FontList* pApm_pFontList = nullptr;
- SfxObjectShell* pSh = SfxObjectShell::Current();
-
- if ( pSh )
+ if (SfxObjectShell* pSh = SfxObjectShell::Current())
{
const SvxFontListItem* pFLItem = static_cast<const SvxFontListItem*>(
pSh->GetItem( SID_ATTR_CHAR_FONTLIST ));
@@ -105,10 +103,10 @@ void SvxSearchFormatDialog::PageCreated(const OString& rId, SfxTabPage& rPage)
SvxSearchAttributeDialog::SvxSearchAttributeDialog(weld::Window* pParent,
SearchAttrItemList& rLst, const WhichRangesContainer& pWhRanges)
- : GenericDialogController(pParent, "cui/ui/searchattrdialog.ui", "SearchAttrDialog")
+ : GenericDialogController(pParent, u"cui/ui/searchattrdialog.ui"_ustr, u"SearchAttrDialog"_ustr)
, rList(rLst)
- , m_xAttrLB(m_xBuilder->weld_tree_view("treeview"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
+ , m_xAttrLB(m_xBuilder->weld_tree_view(u"treeview"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
{
m_xAttrLB->set_size_request(m_xAttrLB->get_approximate_digit_width() * 50,
m_xAttrLB->get_height_rows(12));
@@ -119,42 +117,44 @@ SvxSearchAttributeDialog::SvxSearchAttributeDialog(weld::Window* pParent,
SfxObjectShell* pSh = SfxObjectShell::Current();
DBG_ASSERT( pSh, "No DocShell" );
-
- SfxItemPool& rPool = pSh->GetPool();
- SfxItemSet aSet( rPool, pWhRanges );
- SfxWhichIter aIter( aSet );
- sal_uInt16 nWhich = aIter.FirstWhich();
-
- while ( nWhich )
+ if (pSh)
{
- sal_uInt16 nSlot = rPool.GetSlotId( nWhich );
- if ( nSlot >= SID_SVX_START )
+ SfxItemPool& rPool = pSh->GetPool();
+ SfxItemSet aSet( rPool, pWhRanges );
+ SfxWhichIter aIter( aSet );
+ sal_uInt16 nWhich = aIter.FirstWhich();
+
+ while ( nWhich )
{
- bool bChecked = false, bFound = false;
- for ( sal_uInt16 i = 0; !bFound && i < rList.Count(); ++i )
+ sal_uInt16 nSlot = rPool.GetSlotId( nWhich );
+ if ( nSlot >= SID_SVX_START )
{
- if ( nSlot == rList[i].nSlot )
+ bool bChecked = false, bFound = false;
+ for ( sal_uInt16 i = 0; !bFound && i < rList.Count(); ++i )
{
- bFound = true;
- if ( IsInvalidItem( rList[i].pItem ) )
- bChecked = true;
+ if ( nSlot == rList[i].nSlot )
+ {
+ bFound = true;
+ if ( IsInvalidItem( rList[i].aItemPtr.getItem() ) )
+ bChecked = true;
+ }
}
- }
- // item resources are in svx
- sal_uInt32 nId = SvxAttrNameTable::FindIndex(nSlot);
- if (RESARRAY_INDEX_NOTFOUND != nId)
- {
- m_xAttrLB->append();
- const int nRow = m_xAttrLB->n_children() - 1;
- m_xAttrLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
- m_xAttrLB->set_text(nRow, SvxAttrNameTable::GetString(nId), 0);
- m_xAttrLB->set_id(nRow, OUString::number(nSlot));
+ // item resources are in svx
+ sal_uInt32 nId = SvxAttrNameTable::FindIndex(nSlot);
+ if (RESARRAY_INDEX_NOTFOUND != nId)
+ {
+ m_xAttrLB->append();
+ const int nRow = m_xAttrLB->n_children() - 1;
+ m_xAttrLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xAttrLB->set_text(nRow, SvxAttrNameTable::GetString(nId), 0);
+ m_xAttrLB->set_id(nRow, OUString::number(nSlot));
+ }
+ else
+ SAL_WARN( "cui.dialogs", "no resource for slot id " << static_cast<sal_Int32>(nSlot) );
}
- else
- SAL_WARN( "cui.dialogs", "no resource for slot id " << static_cast<sal_Int32>(nSlot) );
+ nWhich = aIter.NextWhich();
}
- nWhich = aIter.NextWhich();
}
m_xAttrLB->make_sorted();
@@ -167,28 +167,27 @@ SvxSearchAttributeDialog::~SvxSearchAttributeDialog()
IMPL_LINK_NOARG(SvxSearchAttributeDialog, OKHdl, weld::Button&, void)
{
- SearchAttrItem aInvalidItem;
- aInvalidItem.pItem = INVALID_POOL_ITEM;
+ SfxObjectShell* pObjSh = SfxObjectShell::Current();
+ DBG_ASSERT( pObjSh, "No DocShell" );
+ if (!pObjSh)
+ return;
+ SfxItemPool& rPool(pObjSh->GetPool());
for (int i = 0, nCount = m_xAttrLB->n_children(); i < nCount; ++i)
{
- sal_uInt16 nSlot = m_xAttrLB->get_id(i).toUInt32();
- bool bChecked = m_xAttrLB->get_toggle(i) == TRISTATE_TRUE;
+ const sal_uInt16 nSlot(m_xAttrLB->get_id(i).toUInt32());
+ const bool bChecked(TRISTATE_TRUE == m_xAttrLB->get_toggle(i));
sal_uInt16 j;
for ( j = rList.Count(); j; )
{
- SearchAttrItem& rItem = rList[ --j ];
+ SearchAttrInfo& rItem = rList[ --j ];
if( rItem.nSlot == nSlot )
{
if( bChecked )
- {
- if( !IsInvalidItem( rItem.pItem ) )
- delete rItem.pItem;
- rItem.pItem = INVALID_POOL_ITEM;
- }
- else if( IsInvalidItem( rItem.pItem ) )
- rItem.pItem = nullptr;
+ rItem.aItemPtr = SfxPoolItemHolder(rPool, INVALID_POOL_ITEM);
+ else if( IsInvalidItem( rItem.aItemPtr.getItem() ) )
+ rItem.aItemPtr = SfxPoolItemHolder();
j = 1;
break;
}
@@ -196,14 +195,13 @@ IMPL_LINK_NOARG(SvxSearchAttributeDialog, OKHdl, weld::Button&, void)
if ( !j && bChecked )
{
- aInvalidItem.nSlot = nSlot;
- rList.Insert( aInvalidItem );
+ rList.Insert( { nSlot, SfxPoolItemHolder(rPool, INVALID_POOL_ITEM) });
}
}
// remove invalid items (pItem == NULL)
for ( sal_uInt16 n = rList.Count(); n; )
- if ( !rList[ --n ].pItem )
+ if ( !rList[ --n ].aItemPtr.getItem() )
rList.Remove( n );
m_xDialog->response(RET_OK);
@@ -213,11 +211,11 @@ IMPL_LINK_NOARG(SvxSearchAttributeDialog, OKHdl, weld::Button&, void)
SvxSearchSimilarityDialog::SvxSearchSimilarityDialog(weld::Window* pParent, bool bRelax,
sal_uInt16 nOther, sal_uInt16 nShorter, sal_uInt16 nLonger)
- : GenericDialogController(pParent, "cui/ui/similaritysearchdialog.ui", "SimilaritySearchDialog")
- , m_xOtherFld(m_xBuilder->weld_spin_button("otherfld"))
- , m_xLongerFld(m_xBuilder->weld_spin_button("longerfld"))
- , m_xShorterFld(m_xBuilder->weld_spin_button("shorterfld"))
- , m_xRelaxBox(m_xBuilder->weld_check_button("relaxbox"))
+ : GenericDialogController(pParent, u"cui/ui/similaritysearchdialog.ui"_ustr, u"SimilaritySearchDialog"_ustr)
+ , m_xOtherFld(m_xBuilder->weld_spin_button(u"otherfld"_ustr))
+ , m_xLongerFld(m_xBuilder->weld_spin_button(u"longerfld"_ustr))
+ , m_xShorterFld(m_xBuilder->weld_spin_button(u"shorterfld"_ustr))
+ , m_xRelaxBox(m_xBuilder->weld_check_button(u"relaxbox"_ustr))
{
m_xOtherFld->set_value(nOther);
m_xShorterFld->set_value(nShorter);
diff --git a/cui/source/dialogs/thesdlg.cxx b/cui/source/dialogs/thesdlg.cxx
index a9f4883f4c70..d1c284b65b82 100644
--- a/cui/source/dialogs/thesdlg.cxx
+++ b/cui/source/dialogs/thesdlg.cxx
@@ -89,7 +89,6 @@ bool SvxThesaurusDialog::UpdateAlternativesBox_Impl()
uno::Sequence< uno::Reference< linguistic2::XMeaning > > aMeanings = queryMeanings_Impl(
aLookUpText, aLocale, uno::Sequence< beans::PropertyValue >() );
const sal_Int32 nMeanings = aMeanings.getLength();
- const uno::Reference< linguistic2::XMeaning > *pMeanings = aMeanings.getConstArray();
m_xAlternativesCT->freeze();
@@ -97,22 +96,20 @@ bool SvxThesaurusDialog::UpdateAlternativesBox_Impl()
int nRow = 0;
for (sal_Int32 i = 0; i < nMeanings; ++i)
{
- OUString rMeaningTxt = pMeanings[i]->getMeaning();
- uno::Sequence< OUString > aSynonyms( pMeanings[i]->querySynonyms() );
- const sal_Int32 nSynonyms = aSynonyms.getLength();
- const OUString *pSynonyms = aSynonyms.getConstArray();
+ OUString rMeaningTxt = aMeanings[i]->getMeaning();
+ uno::Sequence<OUString> aSynonyms(aMeanings[i]->querySynonyms());
DBG_ASSERT( !rMeaningTxt.isEmpty(), "meaning with empty text" );
- DBG_ASSERT( nSynonyms > 0, "meaning without synonym" );
+ DBG_ASSERT(aSynonyms.hasElements(), "meaning without synonym");
OUString sHeading = OUString::number(i + 1) + ". " + rMeaningTxt;
m_xAlternativesCT->append_text(sHeading);
m_xAlternativesCT->set_text_emphasis(nRow, true, 0);
++nRow;
- for (sal_Int32 k = 0; k < nSynonyms; ++k)
+ for (auto& synonym : aSynonyms)
{
// GetThesaurusReplaceText will strip the leading spaces
- m_xAlternativesCT->append_text(" " + pSynonyms[k]);
+ m_xAlternativesCT->append_text(" " + synonym);
m_xAlternativesCT->set_text_emphasis(nRow, false, 0);
++nRow;
}
@@ -165,8 +162,8 @@ void SvxThesaurusDialog::LookUp_Impl()
m_xAlternativesCT->set_visible(m_bWordFound);
m_xNotFound->set_visible(!m_bWordFound);
- if (m_bWordFound)
- Application::PostUserEvent(LINK(this, SvxThesaurusDialog, SelectFirstHdl_Impl));
+ if (m_bWordFound && !m_nSelectFirstEvent)
+ m_nSelectFirstEvent = Application::PostUserEvent(LINK(this, SvxThesaurusDialog, SelectFirstHdl_Impl));
if (m_xWordCB->find_text(aText) == -1)
m_xWordCB->append_text(aText);
@@ -217,13 +214,15 @@ IMPL_LINK( SvxThesaurusDialog, AlternativesDoubleClickHdl_Impl, weld::TreeView&,
//! workaround to set the selection since calling SelectEntryPos within
//! the double click handler does not work
- Application::PostUserEvent(LINK(this, SvxThesaurusDialog, SelectFirstHdl_Impl));
+ if (!m_nSelectFirstEvent)
+ m_nSelectFirstEvent = Application::PostUserEvent(LINK(this, SvxThesaurusDialog, SelectFirstHdl_Impl));
return true;
}
IMPL_LINK_NOARG(SvxThesaurusDialog, SelectFirstHdl_Impl, void *, void)
{
+ m_nSelectFirstEvent = nullptr;
if (m_xAlternativesCT->n_children() >= 2)
{
m_xAlternativesCT->select(1); // pos 0 is a 'header' that is not selectable
@@ -238,17 +237,18 @@ SvxThesaurusDialog::SvxThesaurusDialog(
uno::Reference< linguistic2::XThesaurus > const & xThes,
const OUString &rWord,
LanguageType nLanguage)
- : SfxDialogController(pParent, "cui/ui/thesaurus.ui", "ThesaurusDialog")
+ : SfxDialogController(pParent, u"cui/ui/thesaurus.ui"_ustr, u"ThesaurusDialog"_ustr)
, m_aModifyIdle("cui SvxThesaurusDialog LookUp Modify")
, nLookUpLanguage(LANGUAGE_NONE)
, m_bWordFound(false)
- , m_xLeftBtn(m_xBuilder->weld_button("left"))
- , m_xWordCB(m_xBuilder->weld_combo_box("wordcb"))
- , m_xAlternativesCT(m_xBuilder->weld_tree_view("alternatives"))
- , m_xNotFound(m_xBuilder->weld_label("notfound"))
- , m_xReplaceEdit(m_xBuilder->weld_entry("replaceed"))
- , m_xLangLB(m_xBuilder->weld_combo_box("langcb"))
- , m_xReplaceBtn(m_xBuilder->weld_button("ok"))
+ , m_xLeftBtn(m_xBuilder->weld_button(u"left"_ustr))
+ , m_xWordCB(m_xBuilder->weld_combo_box(u"wordcb"_ustr))
+ , m_xAlternativesCT(m_xBuilder->weld_tree_view(u"alternatives"_ustr))
+ , m_xNotFound(m_xBuilder->weld_label(u"notfound"_ustr))
+ , m_xReplaceEdit(m_xBuilder->weld_entry(u"replaceed"_ustr))
+ , m_xLangLB(m_xBuilder->weld_combo_box(u"langcb"_ustr))
+ , m_xReplaceBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_nSelectFirstEvent(nullptr)
{
m_aModifyIdle.SetInvokeHandler( LINK( this, SvxThesaurusDialog, ModifyTimer_Hdl ) );
m_aModifyIdle.SetPriority( TaskPriority::LOWEST );
@@ -284,13 +284,11 @@ SvxThesaurusDialog::SvxThesaurusDialog(
uno::Sequence< lang::Locale > aLocales;
if (xThesaurus.is())
aLocales = xThesaurus->getLocales();
- const sal_Int32 nLocales = aLocales.getLength();
- const lang::Locale *pLocales = aLocales.getConstArray();
m_xLangLB->clear();
std::vector< OUString > aLangVec;
- for (sal_Int32 i = 0; i < nLocales; ++i)
+ for (auto& locale : aLocales)
{
- const LanguageType nLang = LanguageTag::convertToLanguageType( pLocales[i] );
+ const LanguageType nLang = LanguageTag::convertToLanguageType(locale);
DBG_ASSERT( nLang != LANGUAGE_NONE && nLang != LANGUAGE_DONTKNOW, "failed to get language" );
aLangVec.push_back( SvtLanguageTable::GetLanguageString( nLang ) );
}
@@ -312,10 +310,17 @@ SvxThesaurusDialog::SvxThesaurusDialog(
// disable controls if service is missing
if (!xThesaurus.is())
m_xDialog->set_sensitive(false);
+ else
+ m_xWordCB->grab_focus();
}
SvxThesaurusDialog::~SvxThesaurusDialog()
{
+ if (m_nSelectFirstEvent)
+ {
+ Application::RemoveUserEvent(m_nSelectFirstEvent);
+ m_nSelectFirstEvent = nullptr;
+ }
}
IMPL_LINK_NOARG(SvxThesaurusDialog, ReplaceBtnHdl_Impl, weld::Button&, void)
diff --git a/cui/source/dialogs/tipofthedaydlg.cxx b/cui/source/dialogs/tipofthedaydlg.cxx
index 34193bff90de..22b669ccae75 100644
--- a/cui/source/dialogs/tipofthedaydlg.cxx
+++ b/cui/source/dialogs/tipofthedaydlg.cxx
@@ -26,8 +26,8 @@
#include <vcl/graphicfilter.hxx>
#include <vcl/help.hxx>
#include <vcl/window.hxx>
+#include <vcl/ImageTree.hxx>
-#include <com/sun/star/frame/XDesktop2.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/util/URL.hpp>
@@ -43,33 +43,31 @@
#include <unotools/resmgr.hxx>
#include <unotools/configmgr.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
+#include <bitmaps.hlst>
//size of preview
const Size ThumbSize(150, 150);
TipOfTheDayDialog::TipOfTheDayDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/tipofthedaydialog.ui", "TipOfTheDayDialog")
- , m_pParent(pParent)
- , m_pText(m_xBuilder->weld_label("lbText"))
- , m_pShowTip(m_xBuilder->weld_check_button("cbShowTip"))
- , m_pNext(m_xBuilder->weld_button("btnNext"))
- , m_pLink(m_xBuilder->weld_link_button("btnLink"))
- , m_pPreview(new weld::CustomWeld(*m_xBuilder, "imPreview", m_aPreview))
+ : GenericDialogController(pParent, u"cui/ui/tipofthedaydialog.ui"_ustr,
+ u"TipOfTheDayDialog"_ustr)
+ , m_xParent(pParent ? pParent->GetXWindow() : nullptr)
+ , m_pText(m_xBuilder->weld_label(u"lbText"_ustr))
+ , m_pShowTip(m_xBuilder->weld_check_button(u"cbShowTip"_ustr))
+ , m_pNext(m_xBuilder->weld_button(u"btnNext"_ustr))
+ , m_pLink(m_xBuilder->weld_link_button(u"btnLink"_ustr))
+ , m_pPreview(new weld::CustomWeld(*m_xBuilder, u"imPreview"_ustr, m_aPreview))
{
m_pShowTip->set_active(officecfg::Office::Common::Misc::ShowTipOfTheDay::get());
m_pNext->connect_clicked(LINK(this, TipOfTheDayDialog, OnNextClick));
m_nCurrentTip = officecfg::Office::Common::Misc::LastTipOfTheDayID::get();
m_pPreview->set_size_request(ThumbSize.Width(), ThumbSize.Height());
- if (pParent != nullptr)
+ if (m_xParent.is())
{
- css::uno::Reference<css::awt::XWindow> xWindow = pParent->GetXWindow();
- if (xWindow.is())
- {
- VclPtr<vcl::Window> xVclWin(VCLUnoHelper::GetWindow(xWindow));
- if (xVclWin != nullptr)
- xVclWin->AddEventListener(LINK(this, TipOfTheDayDialog, Terminated));
- }
+ VclPtr<vcl::Window> xVclWin(VCLUnoHelper::GetWindow(m_xParent));
+ if (xVclWin != nullptr)
+ xVclWin->AddEventListener(LINK(this, TipOfTheDayDialog, Terminated));
}
const auto t0 = std::chrono::system_clock::now().time_since_epoch();
@@ -92,7 +90,10 @@ TipOfTheDayDialog::TipOfTheDayDialog(weld::Window* pParent)
IMPL_LINK(TipOfTheDayDialog, Terminated, VclWindowEvent&, rEvent, void)
{
if (rEvent.GetId() == VclEventId::ObjectDying)
+ {
+ m_xParent.clear();
TipOfTheDayDialog::response(RET_OK);
+ }
}
TipOfTheDayDialog::~TipOfTheDayDialog()
@@ -103,15 +104,11 @@ TipOfTheDayDialog::~TipOfTheDayDialog()
officecfg::Office::Common::Misc::ShowTipOfTheDay::set(m_pShowTip->get_active(), xChanges);
xChanges->commit();
- if (m_pParent != nullptr)
+ if (m_xParent.is())
{
- css::uno::Reference<css::awt::XWindow> xWindow = m_pParent->GetXWindow();
- if (xWindow.is())
- {
- VclPtr<vcl::Window> xVclWin(VCLUnoHelper::GetWindow(xWindow));
- if (xVclWin != nullptr)
- xVclWin->RemoveEventListener(LINK(this, TipOfTheDayDialog, Terminated));
- }
+ VclPtr<vcl::Window> xVclWin(VCLUnoHelper::GetWindow(m_xParent));
+ if (xVclWin != nullptr)
+ xVclWin->RemoveEventListener(LINK(this, TipOfTheDayDialog, Terminated));
}
}
@@ -123,17 +120,30 @@ static bool file_exists(const OUString& fileName)
void TipOfTheDayDialog::UpdateTip()
{
- constexpr sal_Int32 nNumberOfTips = SAL_N_ELEMENTS(TIPOFTHEDAY_STRINGARRAY);
+ constexpr sal_Int32 nNumberOfTips = std::size(TIPOFTHEDAY_STRINGARRAY);
- if ((m_nCurrentTip >= nNumberOfTips) || (m_nCurrentTip < 0))
- m_nCurrentTip = 0;
+ for (;;)
+ {
+ if ((m_nCurrentTip >= nNumberOfTips) || (m_nCurrentTip < 0))
+ m_nCurrentTip = 0;
+ if (std::get<1>(TIPOFTHEDAY_STRINGARRAY[m_nCurrentTip])
+ == "svx/ui/safemodedialog/SafeModeDialog"
+ && !officecfg::Office::Common::Misc::OfferSafeMode::get())
+ {
+ ++m_nCurrentTip;
+ }
+ else
+ {
+ break;
+ }
+ }
//title
m_xDialog->set_title(CuiResId(STR_TITLE)
.replaceFirst("%CURRENT", OUString::number(m_nCurrentTip + 1))
.replaceFirst("%TOTAL", OUString::number(nNumberOfTips)));
- auto[sTip, sLink, sImage] = TIPOFTHEDAY_STRINGARRAY[m_nCurrentTip];
+ auto[sTip, sLink, sImage, nType] = TIPOFTHEDAY_STRINGARRAY[m_nCurrentTip];
// text
//replace MOD1 & MOD2 shortcuts depending on platform
@@ -155,8 +165,7 @@ void TipOfTheDayDialog::UpdateTip()
{
m_pLink->set_visible(false);
//show the link only if the UNO command is available in the current module
- SfxViewFrame* pViewFrame = SfxViewFrame::Current();
- if (pViewFrame)
+ if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
{
const auto xFrame = pViewFrame->GetFrame().GetFrameInterface();
const css::uno::Reference<css::frame::XDispatchProvider> xDispatchProvider(
@@ -210,14 +219,25 @@ void TipOfTheDayDialog::UpdateTip()
m_pLink->connect_activate_link(LINK(this, TipOfTheDayDialog, OnLinkClick));
}
// image
- OUString aURL("$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/tipoftheday/");
+ OUString aURL(u"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/tipoftheday/"_ustr);
rtl::Bootstrap::expandMacros(aURL);
OUString aImageName = sImage;
- // use default image if none is available with the number
- if (aImageName.isEmpty() || !file_exists(aURL + aImageName))
- aImageName = "tipoftheday.png";
Graphic aGraphic;
- GraphicFilter::LoadGraphic(aURL + aImageName, OUString(), aGraphic);
+
+ if (!aImageName.isEmpty() && file_exists(aURL + aImageName))
+ GraphicFilter::LoadGraphic(aURL + aImageName, OUString(), aGraphic);
+ else
+ {
+ const OUString sModuleImage[5]
+ = { RID_SVXBMP_TOTD_WRITER, RID_SVXBMP_TOTD_CALC, RID_SVXBMP_TOTD_DRAW,
+ RID_SVXBMP_TOTD_IMPRESS, RID_SVXBMP_TOTD_SOFFICE };
+ const OUString aIconTheme
+ = Application::GetSettings().GetStyleSettings().DetermineIconTheme();
+ BitmapEx aBmpEx;
+ ImageTree::get().loadImage(sModuleImage[nType], aIconTheme, aBmpEx, true,
+ ImageLoadFlags::IgnoreDarkTheme);
+ aGraphic = aBmpEx;
+ }
if (!aGraphic.IsAnimated())
{
diff --git a/cui/source/dialogs/toolbarmodedlg.cxx b/cui/source/dialogs/toolbarmodedlg.cxx
index e3064451cae3..25cd4a7b9ac0 100644
--- a/cui/source/dialogs/toolbarmodedlg.cxx
+++ b/cui/source/dialogs/toolbarmodedlg.cxx
@@ -67,41 +67,40 @@ static OUString GetCurrentApp()
static OUString GetCurrentMode()
{
OUString sResult;
- if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
+ if (SfxViewFrame::Current())
{
- const auto xCurrentFrame = pViewFrame->GetFrame().GetFrameInterface();
const auto xContext = comphelper::getProcessComponentContext();
- const auto xModuleManager = css::frame::ModuleManager::create(xContext);
const utl::OConfigurationTreeRoot aAppNode(
xContext, "org.openoffice.Office.UI.ToolbarMode/Applications/" + GetCurrentApp(), true);
if (aAppNode.isValid())
- sResult = comphelper::getString(aAppNode.getNodeValue("Active"));
+ sResult = comphelper::getString(aAppNode.getNodeValue(u"Active"_ustr));
};
return sResult;
}
ToolbarmodeDialog::ToolbarmodeDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/toolbarmodedialog.ui", "ToolbarmodeDialog")
- , m_pImage(m_xBuilder->weld_image("imImage"))
- , m_pApply(m_xBuilder->weld_button("btnApply"))
- , m_pApplyAll(m_xBuilder->weld_button("btnApplyAll"))
- , m_pRadioButtons{ (m_xBuilder->weld_radio_button("rbButton1")),
- (m_xBuilder->weld_radio_button("rbButton2")),
- (m_xBuilder->weld_radio_button("rbButton3")),
- (m_xBuilder->weld_radio_button("rbButton4")),
- (m_xBuilder->weld_radio_button("rbButton5")),
- (m_xBuilder->weld_radio_button("rbButton6")),
- (m_xBuilder->weld_radio_button("rbButton7")),
- (m_xBuilder->weld_radio_button("rbButton8")),
- (m_xBuilder->weld_radio_button("rbButton9")) }
- , m_pInfoLabel(m_xBuilder->weld_label("lbInfo"))
+ : GenericDialogController(pParent, u"cui/ui/toolbarmodedialog.ui"_ustr,
+ u"ToolbarmodeDialog"_ustr)
+ , m_pImage(m_xBuilder->weld_image(u"imImage"_ustr))
+ , m_pApply(m_xBuilder->weld_button(u"btnApply"_ustr))
+ , m_pApplyAll(m_xBuilder->weld_button(u"btnApplyAll"_ustr))
+ , m_pRadioButtons{ (m_xBuilder->weld_radio_button(u"rbButton1"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton2"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton3"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton4"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton5"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton6"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton7"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton8"_ustr)),
+ (m_xBuilder->weld_radio_button(u"rbButton9"_ustr)) }
+ , m_pInfoLabel(m_xBuilder->weld_label(u"lbInfo"_ustr))
{
- static_assert(SAL_N_ELEMENTS(m_pRadioButtons) == SAL_N_ELEMENTS(TOOLBARMODES_ARRAY));
+ static_assert(SAL_N_ELEMENTS(m_pRadioButtons) == std::size(TOOLBARMODES_ARRAY));
Link<weld::Toggleable&, void> aLink = LINK(this, ToolbarmodeDialog, SelectToolbarmode);
const OUString sCurrentMode = GetCurrentMode();
- for (tools::ULong i = 0; i < SAL_N_ELEMENTS(m_pRadioButtons); i++)
+ for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
{
m_pRadioButtons[i]->connect_toggled(aLink);
if (sCurrentMode == std::get<1>(TOOLBARMODES_ARRAY[i]))
@@ -112,7 +111,7 @@ ToolbarmodeDialog::ToolbarmodeDialog(weld::Window* pParent)
}
}
- m_pApply->set_label(CuiResId(RID_SVXSTR_UI_APPLYALL).replaceFirst("%MODULE", GetCurrentApp()));
+ m_pApply->set_label(CuiResId(RID_CUISTR_UI_APPLYALL).replaceFirst("%MODULE", GetCurrentApp()));
m_pApply->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
m_pApplyAll->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
@@ -133,7 +132,7 @@ static bool file_exists(const OUString& fileName)
int ToolbarmodeDialog::GetActiveRadioButton()
{
- for (tools::ULong i = 0; i < SAL_N_ELEMENTS(m_pRadioButtons); i++)
+ for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
{
if (m_pRadioButtons[i]->get_active())
return i;
@@ -144,7 +143,7 @@ int ToolbarmodeDialog::GetActiveRadioButton()
void ToolbarmodeDialog::UpdateImage(std::u16string_view sFileName)
{
// load image
- OUString aURL("$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/toolbarmode/");
+ OUString aURL(u"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/toolbarmode/"_ustr);
rtl::Bootstrap::expandMacros(aURL);
aURL += sFileName;
if (sFileName.empty() || !file_exists(aURL))
@@ -181,7 +180,7 @@ IMPL_LINK(ToolbarmodeDialog, OnApplyClick, weld::Button&, rButton, void)
if (&rButton == m_pApplyAll.get())
{
std::shared_ptr<comphelper::ConfigurationChanges> aBatch(
- comphelper::ConfigurationChanges::create(::comphelper::getProcessComponentContext()));
+ comphelper::ConfigurationChanges::create());
officecfg::Office::UI::ToolbarMode::ActiveWriter::set(sCmd, aBatch);
officecfg::Office::UI::ToolbarMode::ActiveCalc::set(sCmd, aBatch);
officecfg::Office::UI::ToolbarMode::ActiveImpress::set(sCmd, aBatch);
@@ -189,21 +188,19 @@ IMPL_LINK(ToolbarmodeDialog, OnApplyClick, weld::Button&, rButton, void)
aBatch->commit();
OUString sCurrentApp = GetCurrentApp();
- if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
+ if (SfxViewFrame::Current())
{
- const auto xCurrentFrame = pViewFrame->GetFrame().GetFrameInterface();
const auto xContext = comphelper::getProcessComponentContext();
- const auto xModuleManager = css::frame::ModuleManager::create(xContext);
const utl::OConfigurationTreeRoot aAppNode(
- xContext, "org.openoffice.Office.UI.ToolbarMode/Applications/", true);
+ xContext, u"org.openoffice.Office.UI.ToolbarMode/Applications/"_ustr, true);
if (sCurrentApp != "Writer")
- aAppNode.setNodeValue("Writer/Active", css::uno::makeAny(sCmd));
+ aAppNode.setNodeValue(u"Writer/Active"_ustr, css::uno::Any(sCmd));
if (sCurrentApp != "Calc")
- aAppNode.setNodeValue("Calc/Active", css::uno::makeAny(sCmd));
+ aAppNode.setNodeValue(u"Calc/Active"_ustr, css::uno::Any(sCmd));
if (sCurrentApp != "Impress")
- aAppNode.setNodeValue("Impress/Active", css::uno::makeAny(sCmd));
+ aAppNode.setNodeValue(u"Impress/Active"_ustr, css::uno::Any(sCmd));
if (sCurrentApp != "Draw")
- aAppNode.setNodeValue("Draw/Active", css::uno::makeAny(sCmd));
+ aAppNode.setNodeValue(u"Draw/Active"_ustr, css::uno::Any(sCmd));
aAppNode.commit();
};
}
diff --git a/cui/source/dialogs/whatsnew.cxx b/cui/source/dialogs/whatsnew.cxx
new file mode 100644
index 000000000000..6092b7e4af50
--- /dev/null
+++ b/cui/source/dialogs/whatsnew.cxx
@@ -0,0 +1,172 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice 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 <whatsnew.hxx>
+#include <whatsnew.hrc>
+
+#include <dialmgr.hxx>
+#include <comphelper/DirectoryHelper.hxx>
+#include <rtl/bootstrap.hxx>
+#include <vcl/graphicfilter.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/gdimtf.hxx>
+
+constexpr tools::Long TEXT_HEIGHT(120);
+constexpr tools::Long PROGRESS_DOTSIZE(24);
+constexpr tools::Long PROGRESS_DOTSPACING(4);
+
+WhatsNewDialog::WhatsNewDialog(weld::Window* pParent, const bool bWelcome)
+ : GenericDialogController(pParent, u"cui/ui/whatsnewdialog.ui"_ustr, u"WhatsNewDialog"_ustr)
+ , m_bWelcome(bWelcome)
+ , m_aPreview()
+ , m_aProgress()
+ , m_pPrevBtn(m_xBuilder->weld_button(u"btnPrev"_ustr))
+ , m_pNextBtn(m_xBuilder->weld_button(u"btnNext"_ustr))
+ , m_pProgress(new weld::CustomWeld(*m_xBuilder, u"imProgress"_ustr, m_aProgress))
+ , m_pImage(new weld::CustomWeld(*m_xBuilder, u"imNews"_ustr, m_aPreview))
+{
+ if (m_bWelcome)
+ m_xDialog->set_title(CuiResId(STR_WELCOME));
+ m_pPrevBtn->set_sensitive(false);
+
+ m_pPrevBtn->connect_clicked(LINK(this, WhatsNewDialog, OnPrevClick));
+ m_pNextBtn->connect_clicked(LINK(this, WhatsNewDialog, OnNextClick));
+
+ m_nNumberOfNews = m_bWelcome ? std::size(WELCOME_STRINGARRAY) : std::size(WHATSNEW_STRINGARRAY);
+ m_nCurrentNews = 0;
+ m_pNextBtn->set_sensitive(m_nNumberOfNews > 1);
+ m_pProgress->set_size_request(m_nNumberOfNews * (PROGRESS_DOTSIZE + PROGRESS_DOTSPACING),
+ PROGRESS_DOTSIZE + 1);
+
+ LoadImage();
+}
+
+WhatsNewDialog::~WhatsNewDialog() {}
+
+void WhatsNewDialog::LoadImage()
+{
+ if (m_nCurrentNews < m_nNumberOfNews)
+ {
+ auto[sText, sImage] = m_bWelcome ? WELCOME_STRINGARRAY[m_nCurrentNews]
+ : WHATSNEW_STRINGARRAY[m_nCurrentNews];
+ OUString aURL(u"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/whatsnew/"_ustr);
+ rtl::Bootstrap::expandMacros(aURL);
+
+ const bool bFileExists = comphelper::DirectoryHelper::fileExists(aURL + sImage);
+ if (!sImage.isEmpty() && bFileExists)
+ m_aPreview.Update(aURL + sImage, CuiResId(sText));
+
+ m_aProgress.Update(m_nCurrentNews, m_nNumberOfNews);
+ }
+}
+
+IMPL_LINK_NOARG(WhatsNewDialog, OnPrevClick, weld::Button&, void)
+{
+ m_nCurrentNews--;
+ if (m_nCurrentNews == 0)
+ m_pPrevBtn->set_sensitive(false);
+ m_pNextBtn->set_sensitive(true);
+ LoadImage();
+}
+
+IMPL_LINK_NOARG(WhatsNewDialog, OnNextClick, weld::Button&, void)
+{
+ m_nCurrentNews++;
+ if (m_nCurrentNews == m_nNumberOfNews - 1)
+ m_pNextBtn->set_sensitive(false);
+ m_pPrevBtn->set_sensitive(true);
+ LoadImage();
+}
+
+void WhatsNewImg::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
+{
+ const StyleSettings rSettings(Application::GetSettings().GetStyleSettings());
+
+ //clear
+ rRenderContext.SetBackground(Wallpaper(rSettings.GetDialogColor()));
+ rRenderContext.Erase();
+
+ //background image
+ Graphic aGraphic;
+ GraphicFilter::LoadGraphic(m_sImage, OUString(), aGraphic);
+ const Size aGraphicSize(aGraphic.GetSizePixel());
+
+ if (aGraphic.IsAnimated())
+ aGraphic.StartAnimation(rRenderContext, Point(), aGraphicSize);
+ else
+ aGraphic.Draw(rRenderContext, Point(), aGraphicSize);
+
+ tools::Rectangle aRect(Point(0, aGraphicSize.Height() - TEXT_HEIGHT),
+ Size(aGraphicSize.Width(), TEXT_HEIGHT));
+
+ //transparent text background
+ ScopedVclPtrInstance<VirtualDevice> aVDev;
+ GDIMetaFile aMetafile;
+
+ aMetafile.Record(aVDev.get());
+ aMetafile.SetPrefSize(aRect.GetSize());
+ aVDev->SetOutputSize(aRect.GetSize());
+ aVDev->SetBackground(Color(0x10, 0x68, 0x02));
+ aVDev->Erase();
+ aMetafile.Stop();
+
+ Gradient aVCLGradient;
+ aVCLGradient.SetStyle(css::awt::GradientStyle_LINEAR);
+ aVCLGradient.SetStartColor(COL_GRAY);
+ aVCLGradient.SetEndColor(COL_GRAY);
+ aVCLGradient.SetStartIntensity(33);
+ aVCLGradient.SetEndIntensity(66);
+
+ rRenderContext.DrawTransparent(aMetafile, aRect.TopLeft(), aRect.GetSize(), aVCLGradient);
+
+ //text
+ vcl::Font aFont = rRenderContext.GetFont();
+ const Size aFontSize = aFont.GetFontSize();
+ aFont.SetFontSize(Size(0, 24));
+ aFont.SetColor(COL_WHITE);
+ aFont.SetWeight(WEIGHT_BOLD);
+ rRenderContext.SetFont(aFont);
+
+ DrawTextFlags nDrawTextStyle(DrawTextFlags::MultiLine | DrawTextFlags::WordBreak
+ | DrawTextFlags::EndEllipsis);
+ const bool bIsRTL = rRenderContext.GetTextIsRTL(m_sText, 0, m_sText.getLength());
+ if (bIsRTL)
+ nDrawTextStyle |= DrawTextFlags::Right;
+
+ aRect.shrink(6);
+ aRect.setWidth(rRenderContext.GetOutputSizePixel().Width() - 12);
+ rRenderContext.DrawText(aRect, m_sText, nDrawTextStyle);
+
+ aFont.SetFontSize(aFontSize);
+ aFont.SetWeight(WEIGHT_NORMAL);
+ rRenderContext.SetFont(aFont);
+}
+
+void WhatsNewProgress::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&)
+{
+ const StyleSettings rSettings(Application::GetSettings().GetStyleSettings());
+ rRenderContext.SetBackground(rSettings.GetDialogColor());
+ rRenderContext.Erase();
+ rRenderContext.SetAntialiasing(AntialiasingFlags::Enable);
+
+ tools::Rectangle aRect(Point(0, 0), Size(PROGRESS_DOTSIZE, PROGRESS_DOTSIZE));
+ for (sal_Int32 i = 0; i < m_nTotal; i++)
+ {
+ if (i == m_nCurrent)
+ rRenderContext.SetFillColor(rSettings.GetAccentColor());
+ else
+ rRenderContext.SetFillColor(COL_WHITE);
+ rRenderContext.DrawEllipse(aRect);
+
+ aRect.AdjustLeft(PROGRESS_DOTSIZE + PROGRESS_DOTSPACING);
+ aRect.AdjustRight(PROGRESS_DOTSIZE + PROGRESS_DOTSPACING);
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ \ No newline at end of file
diff --git a/cui/source/dialogs/widgettestdlg.cxx b/cui/source/dialogs/widgettestdlg.cxx
new file mode 100644
index 000000000000..0de81751d35d
--- /dev/null
+++ b/cui/source/dialogs/widgettestdlg.cxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+* This file is part of the LibreOffice 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 <widgettestdlg.hxx>
+#include <bitmaps.hlst>
+
+WidgetTestDialog::WidgetTestDialog(weld::Window* pParent)
+ : GenericDialogController(pParent, u"cui/ui/widgettestdialog.ui"_ustr, u"WidgetTestDialog"_ustr)
+{
+ m_xOKButton = m_xBuilder->weld_button(u"ok_btn"_ustr);
+ m_xCancelButton = m_xBuilder->weld_button(u"cancel_btn"_ustr);
+ m_xTreeView = m_xBuilder->weld_tree_view(u"contenttree"_ustr);
+ m_xTreeView2 = m_xBuilder->weld_tree_view(u"contenttree2"_ustr);
+
+ m_xOKButton->connect_clicked(LINK(this, WidgetTestDialog, OkHdl));
+ m_xCancelButton->connect_clicked(LINK(this, WidgetTestDialog, CancelHdl));
+
+ FillTreeView();
+}
+
+WidgetTestDialog::~WidgetTestDialog() {}
+
+IMPL_LINK_NOARG(WidgetTestDialog, OkHdl, weld::Button&, void) { m_xDialog->response(RET_OK); }
+
+IMPL_LINK_NOARG(WidgetTestDialog, CancelHdl, weld::Button&, void)
+{
+ m_xDialog->response(RET_CANCEL);
+}
+
+void WidgetTestDialog::FillTreeView()
+{
+ OUString aImage1(RID_SVXBMP_CELL_LR);
+ OUString aImage2(RID_SVXBMP_SHADOW_BOT_LEFT);
+
+ for (size_t nCount = 0; nCount < 4; nCount++)
+ {
+ OUString sText = OUString::Concat("Test ") + OUString::Concat(OUString::number(nCount));
+ std::unique_ptr<weld::TreeIter> xEntry = m_xTreeView->make_iterator();
+ m_xTreeView->insert(nullptr, -1, &sText, &sText, nullptr, nullptr, false, xEntry.get());
+ m_xTreeView->set_image(*xEntry, (nCount % 2 == 0) ? aImage1 : aImage2);
+
+ m_xTreeView2->append();
+ m_xTreeView2->set_image(nCount, (nCount % 2 == 0) ? aImage1 : aImage2);
+ m_xTreeView2->set_text(nCount, u"First Column"_ustr, 0);
+ m_xTreeView2->set_text(
+ nCount, OUString::Concat("Row ") + OUString::Concat(OUString::number(nCount)), 1);
+ m_xTreeView2->set_id(nCount, OUString::number(nCount));
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/zoom.cxx b/cui/source/dialogs/zoom.cxx
index 90999d96798a..0fe135d3c49c 100644
--- a/cui/source/dialogs/zoom.cxx
+++ b/cui/source/dialogs/zoom.cxx
@@ -121,22 +121,22 @@ void SvxZoomDialog::SetLimits(sal_uInt16 nMin, sal_uInt16 nMax)
const SfxItemSet* SvxZoomDialog::GetOutputItemSet() const { return m_pOutSet.get(); }
SvxZoomDialog::SvxZoomDialog(weld::Window* pParent, const SfxItemSet& rCoreSet)
- : SfxDialogController(pParent, "cui/ui/zoomdialog.ui", "ZoomDialog")
+ : SfxDialogController(pParent, u"cui/ui/zoomdialog.ui"_ustr, u"ZoomDialog"_ustr)
, m_rSet(rCoreSet)
, m_bModified(false)
- , m_xOptimalBtn(m_xBuilder->weld_radio_button("optimal"))
- , m_xWholePageBtn(m_xBuilder->weld_radio_button("fitwandh"))
- , m_xPageWidthBtn(m_xBuilder->weld_radio_button("fitw"))
- , m_x100Btn(m_xBuilder->weld_radio_button("100pc"))
- , m_xUserBtn(m_xBuilder->weld_radio_button("variable"))
- , m_xUserEdit(m_xBuilder->weld_metric_spin_button("zoomsb", FieldUnit::PERCENT))
- , m_xViewFrame(m_xBuilder->weld_widget("viewframe"))
- , m_xAutomaticBtn(m_xBuilder->weld_radio_button("automatic"))
- , m_xSingleBtn(m_xBuilder->weld_radio_button("singlepage"))
- , m_xColumnsBtn(m_xBuilder->weld_radio_button("columns"))
- , m_xColumnsEdit(m_xBuilder->weld_spin_button("columnssb"))
- , m_xBookModeChk(m_xBuilder->weld_check_button("bookmode"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
+ , m_xOptimalBtn(m_xBuilder->weld_radio_button(u"optimal"_ustr))
+ , m_xWholePageBtn(m_xBuilder->weld_radio_button(u"fitwandh"_ustr))
+ , m_xPageWidthBtn(m_xBuilder->weld_radio_button(u"fitw"_ustr))
+ , m_x100Btn(m_xBuilder->weld_radio_button(u"100pc"_ustr))
+ , m_xUserBtn(m_xBuilder->weld_radio_button(u"variable"_ustr))
+ , m_xUserEdit(m_xBuilder->weld_metric_spin_button(u"zoomsb"_ustr, FieldUnit::PERCENT))
+ , m_xViewFrame(m_xBuilder->weld_widget(u"viewframe"_ustr))
+ , m_xAutomaticBtn(m_xBuilder->weld_radio_button(u"automatic"_ustr))
+ , m_xSingleBtn(m_xBuilder->weld_radio_button(u"singlepage"_ustr))
+ , m_xColumnsBtn(m_xBuilder->weld_radio_button(u"columns"_ustr))
+ , m_xColumnsEdit(m_xBuilder->weld_spin_button(u"columnssb"_ustr))
+ , m_xBookModeChk(m_xBuilder->weld_check_button(u"bookmode"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
{
Link<weld::Toggleable&, void> aLink = LINK(this, SvxZoomDialog, UserHdl);
m_x100Btn->connect_toggled(aLink);
@@ -168,9 +168,7 @@ SvxZoomDialog::SvxZoomDialog(weld::Window* pParent, const SfxItemSet& rCoreSet)
// maybe get the old value first
const SfxUInt16Item* pOldUserItem = nullptr;
- SfxObjectShell* pShell = SfxObjectShell::Current();
-
- if (pShell)
+ if (SfxObjectShell* pShell = SfxObjectShell::Current())
pOldUserItem = pShell->GetItem(SID_ATTR_ZOOM_USER);
if (pOldUserItem)
@@ -185,7 +183,7 @@ SvxZoomDialog::SvxZoomDialog(weld::Window* pParent, const SfxItemSet& rCoreSet)
SetLimits(nMin, nMax);
m_xUserEdit->set_value(nValue, FieldUnit::PERCENT);
- const SfxPoolItem& rItem = m_rSet.Get(m_rSet.GetPool()->GetWhich(SID_ATTR_ZOOM));
+ const SfxPoolItem& rItem = m_rSet.Get(SID_ATTR_ZOOM);
if (auto pZoomItem = dynamic_cast<const SvxZoomItem*>(&rItem))
{
@@ -228,11 +226,8 @@ SvxZoomDialog::SvxZoomDialog(weld::Window* pParent, const SfxItemSet& rCoreSet)
SetFactor(nZoom);
}
- const SfxPoolItem* pPoolViewLayoutItem = nullptr;
- if (SfxItemState::SET == m_rSet.GetItemState(SID_ATTR_VIEWLAYOUT, false, &pPoolViewLayoutItem))
+ if (const SvxViewLayoutItem* pViewLayoutItem = m_rSet.GetItemIfSet(SID_ATTR_VIEWLAYOUT, false))
{
- const SvxViewLayoutItem* pViewLayoutItem
- = static_cast<const SvxViewLayoutItem*>(pPoolViewLayoutItem);
const sal_uInt16 nColumns = pViewLayoutItem->GetValue();
const bool bBookMode = pViewLayoutItem->IsBookMode();
@@ -269,7 +264,7 @@ SvxZoomDialog::SvxZoomDialog(weld::Window* pParent, const SfxItemSet& rCoreSet)
else
{
// hide view layout related controls:
- m_xViewFrame->set_sensitive(false);
+ m_xViewFrame->set_visible(false);
}
}
@@ -344,9 +339,8 @@ IMPL_LINK_NOARG(SvxZoomDialog, OKHdl, weld::Button&, void)
{
if (m_bModified)
{
- SvxZoomItem aZoomItem(SvxZoomType::PERCENT, 0, m_rSet.GetPool()->GetWhich(SID_ATTR_ZOOM));
- SvxViewLayoutItem aViewLayoutItem(0, false,
- m_rSet.GetPool()->GetWhich(SID_ATTR_VIEWLAYOUT));
+ SvxZoomItem aZoomItem(SvxZoomType::PERCENT, 0, SID_ATTR_ZOOM);
+ SvxViewLayoutItem aViewLayoutItem(0, false, SID_ATTR_VIEWLAYOUT);
sal_uInt16 nFactor = GetFactor();
@@ -388,9 +382,7 @@ IMPL_LINK_NOARG(SvxZoomDialog, OKHdl, weld::Button&, void)
m_pOutSet->Put(aViewLayoutItem);
// memorize value from the UserEdit beyond the dialog
- SfxObjectShell* pShell = SfxObjectShell::Current();
-
- if (pShell)
+ if (SfxObjectShell* pShell = SfxObjectShell::Current())
{
sal_uInt16 nZoomValue
= static_cast<sal_uInt16>(m_xUserEdit->get_value(FieldUnit::PERCENT));
diff --git a/cui/source/factory/cuiexp.cxx b/cui/source/factory/cuiexp.cxx
index 06557be56779..788304de2e3e 100644
--- a/cui/source/factory/cuiexp.cxx
+++ b/cui/source/factory/cuiexp.cxx
@@ -19,18 +19,50 @@
#include "dlgfact.hxx"
#include <sal/types.h>
+#include <cppuhelper/supportsservice.hxx>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
-namespace cui
+/// anonymous implementation namespace
+namespace
{
-static AbstractDialogFactory_Impl* GetFactory()
+class GetCreateDialogFactoryService
+ : public ::cppu::WeakImplHelper<css::lang::XServiceInfo, css::lang::XUnoTunnel>
{
- static AbstractDialogFactory_Impl* pFactory = new AbstractDialogFactory_Impl;
- return pFactory;
-}
-}
+public:
+ // css::lang::XServiceInfo:
+ virtual OUString SAL_CALL getImplementationName() override
+ {
+ return u"com.sun.star.cui.GetCreateDialogFactoryService"_ustr;
+ }
+ virtual sal_Bool SAL_CALL supportsService(const OUString& serviceName) override
+ {
+ return cppu::supportsService(this, serviceName);
+ }
+ virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override
+ {
+ return { u"com.sun.star.cui.GetCreateDialogFactoryService"_ustr };
+ }
+
+ // XUnoTunnel
+ virtual sal_Int64 SAL_CALL
+ getSomething(const ::css::uno::Sequence<::sal_Int8>& /*aIdentifier*/) override
+ {
+ // Noting that we have to return a pointer to **VclAbstractDialogFactory** otherwise
+ // the dynamic_casting on the other end will fail on Windows (possibly because of the virtual base involved).
+ static VclAbstractDialogFactory* pFactory = new AbstractDialogFactory_Impl;
+ return reinterpret_cast<sal_Int64>(pFactory);
+ }
+};
+
+} // closing anonymous implementation namespace
extern "C" {
-SAL_DLLPUBLIC_EXPORT VclAbstractDialogFactory* CreateDialogFactory() { return ::cui::GetFactory(); }
+SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+com_sun_star_cui_GetCreateDialogFactoryService(css::uno::XComponentContext*,
+ css::uno::Sequence<css::uno::Any> const&)
+{
+ return cppu::acquire(new GetCreateDialogFactoryService);
+}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index bd3130fd0fc7..afd9f41b1616 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -18,11 +18,13 @@
*/
#include <config_extensions.h>
+#include <config_wasm_strip.h>
#include <align.hxx>
#include "dlgfact.hxx"
#include <about.hxx>
+#include <whatsnew.hxx>
#include <sfx2/app.hxx>
#include <sfx2/basedlgs.hxx>
#include <sfx2/pageids.hxx>
@@ -31,7 +33,7 @@
#include <numfmt.hxx>
#include <splitcelldlg.hxx>
#include <cuiimapwnd.hxx>
-#include <cui/cuicharmap.hxx>
+#include <svx/cuicharmap.hxx>
#include <srchxtra.hxx>
#include <textanim.hxx>
#include <autocdlg.hxx>
@@ -46,7 +48,6 @@
#include <cuisrchdlg.hxx>
#include <cuitbxform.hxx>
#include <optdict.hxx>
-#include <dlgname.hxx>
#include <multipat.hxx>
#include <cuihyperdlg.hxx>
#include <cuifmsearch.hxx>
@@ -88,6 +89,7 @@
#include <hyphen.hxx>
#include <thesdlg.hxx>
#include <tipofthedaydlg.hxx>
+#include <widgettestdlg.hxx>
#include <toolbarmodedlg.hxx>
#include <DiagramDialog.hxx>
#include <fileextcheckdlg.hxx>
@@ -101,36 +103,36 @@ using ::com::sun::star::uno::Reference;
using namespace svx;
-IMPL_ABSTDLG_CLASS(AbstractAdditionsDialog)
-IMPL_ABSTDLG_CLASS(AbstractDiagramDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractAdditionsDialog, weld::GenericDialogController)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractDiagramDialog, DiagramDialog)
IMPL_ABSTDLG_CLASS(AbstractFmInputRecordNoDialog)
IMPL_ABSTDLG_CLASS(AbstractFmSearchDialog)
IMPL_ABSTDLG_CLASS(AbstractFmShowColsDialog)
IMPL_ABSTDLG_CLASS(AbstractGalleryIdDialog)
-IMPL_ABSTDLG_CLASS(AbstractGraphicFilterDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractGraphicFilterDialog, GraphicFilterDialog)
IMPL_ABSTDLG_CLASS(AbstractHangulHanjaConversionDialog)
-IMPL_ABSTDLG_CLASS(AbstractHyphenWordDialog)
IMPL_ABSTDLG_CLASS(AbstractInsertObjectDialog)
-IMPL_ABSTDLG_CLASS(AbstractLinksDialog)
-IMPL_ABSTDLG_CLASS(AbstractPasswordToOpenModifyDialog)
-IMPL_ABSTDLG_CLASS(AbstractQrCodeGenDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractLinksDialog, SvBaseLinksDlg)
IMPL_ABSTDLG_CLASS(AbstractScreenshotAnnotationDlg)
-IMPL_ABSTDLG_CLASS(AbstractSignatureLineDialog)
-IMPL_ABSTDLG_CLASS(AbstractSignSignatureLineDialog)
-IMPL_ABSTDLG_CLASS(AbstractSvxCharacterMapDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractSignatureLineDialog, SignatureLineDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractSignSignatureLineDialog, SignSignatureLineDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractSvxCharacterMapDialog, SvxCharacterMap)
+IMPL_ABSTDLG_CLASS(AbstractSecurityOptionsDialog)
IMPL_ABSTDLG_CLASS(AbstractSvxHpLinkDlg)
IMPL_ABSTDLG_CLASS(AbstractSvxJSearchOptionsDialog)
IMPL_ABSTDLG_CLASS(AbstractSvxMultiPathDialog)
IMPL_ABSTDLG_CLASS(AbstractSvxNameDialog)
IMPL_ABSTDLG_CLASS(AbstractSvxNewDictionaryDialog)
-IMPL_ABSTDLG_CLASS(AbstractSvxObjectNameDialog)
-IMPL_ABSTDLG_CLASS(AbstractSvxObjectTitleDescDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractSvxObjectNameDialog, SvxObjectNameDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractSvxObjectTitleDescDialog, SvxObjectTitleDescDialog)
IMPL_ABSTDLG_CLASS(AbstractSvxPathSelectDialog)
IMPL_ABSTDLG_CLASS(AbstractSvxPostItDialog)
-IMPL_ABSTDLG_CLASS(AbstractSvxSearchSimilarityDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractSvxSearchSimilarityDialog,SvxSearchSimilarityDialog)
IMPL_ABSTDLG_CLASS(AbstractSvxZoomDialog)
IMPL_ABSTDLG_CLASS(AbstractTitleDialog)
IMPL_ABSTDLG_CLASS(AbstractURLDlg)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractPasswordToOpenModifyDialog,weld::DialogController)
+IMPL_ABSTDLG_CLASS_ASYNC(AbstractQrCodeGenDialog,QrCodeGenDialog)
IMPL_ABSTDLG_CLASS_ASYNC(AbstractPasteDialog,SfxDialogController)
IMPL_ABSTDLG_CLASS_ASYNC(AbstractScriptSelectorDialog,SfxDialogController)
IMPL_ABSTDLG_CLASS_ASYNC(AbstractSpellDialog,SfxDialogController)
@@ -141,7 +143,17 @@ IMPL_ABSTDLG_CLASS_ASYNC(AbstractThesaurusDialog,SfxDialogController)
IMPL_ABSTDLG_CLASS_ASYNC(CuiAbstractControllerAsync,weld::DialogController)
IMPL_ABSTDLG_CLASS_ASYNC(CuiAbstractTabController,SfxTabDialogController)
IMPL_ABSTDLG_CLASS(CuiAbstractController)
-IMPL_ABSTDLG_CLASS(CuiAbstractSingleTabController)
+IMPL_ABSTDLG_CLASS_ASYNC(CuiAbstractSingleTabController, SfxSingleTabDialogController)
+IMPL_ABSTDLG_CLASS_ASYNC(CuiAbstractWidgetTestControllerAsync,weld::GenericDialogController)
+
+short AbstractHyphenWordDialog_Impl::Execute()
+{
+#if !ENABLE_WASM_STRIP_HUNSPELL
+ return m_xDlg->run();
+#else
+ return 0;
+#endif
+}
const SfxItemSet* AbstractSvxCharacterMapDialog_Impl::GetOutputItemSet() const
{
@@ -153,7 +165,7 @@ void AbstractSvxCharacterMapDialog_Impl::SetText(const OUString& rStr)
m_xDlg->set_title(rStr);
}
-void CuiAbstractTabController_Impl::SetCurPageId( const OString &rName )
+void CuiAbstractTabController_Impl::SetCurPageId( const OUString &rName )
{
m_xDlg->SetCurPageId( rName );
}
@@ -179,12 +191,12 @@ void CuiAbstractTabController_Impl::SetText( const OUString& rStr )
m_xDlg->set_title(rStr);
}
-std::vector<OString> CuiAbstractTabController_Impl::getAllPageUIXMLDescriptions() const
+std::vector<OUString> CuiAbstractTabController_Impl::getAllPageUIXMLDescriptions() const
{
return m_xDlg->getAllPageUIXMLDescriptions();
}
-bool CuiAbstractTabController_Impl::selectPageByUIXMLDescription(const OString& rUIXMLDescription)
+bool CuiAbstractTabController_Impl::selectPageByUIXMLDescription(const OUString& rUIXMLDescription)
{
return m_xDlg->selectPageByUIXMLDescription(rUIXMLDescription);
}
@@ -194,7 +206,7 @@ BitmapEx CuiAbstractTabController_Impl::createScreenshot() const
return m_xDlg->createScreenshot();
}
-OString CuiAbstractTabController_Impl::GetScreenshotId() const
+OUString CuiAbstractTabController_Impl::GetScreenshotId() const
{
return m_xDlg->GetScreenshotId();
}
@@ -454,7 +466,7 @@ bool AbstractSvxSearchSimilarityDialog_Impl::IsRelaxed()
}
// AbstractSvxTransformTabDialog implementations just forwards everything to the dialog
-void AbstractSvxTransformTabDialog_Impl::SetCurPageId( const OString& rName )
+void AbstractSvxTransformTabDialog_Impl::SetCurPageId( const OUString& rName )
{
m_xDlg->SetCurPageId( rName );
}
@@ -486,7 +498,7 @@ void AbstractSvxTransformTabDialog_Impl::SetValidateFramePosLink( const Link<Svx
}
// AbstractSvxCaptionDialog implementations just forwards everything to the dialog
-void AbstractSvxCaptionDialog_Impl::SetCurPageId( const OString& rName )
+void AbstractSvxCaptionDialog_Impl::SetCurPageId( const OUString& rName )
{
m_xDlg->SetCurPageId(rName);
}
@@ -536,18 +548,18 @@ tools::Long AbstractFmInputRecordNoDialog_Impl::GetValue() const
return m_xDlg->GetNewDictionary();
}
-void AbstractSvxNameDialog_Impl::GetName(OUString& rName)
+OUString AbstractSvxNameDialog_Impl::GetName()
{
- rName = m_xDlg->GetName();
+ return m_xDlg->GetName();
}
-void AbstractSvxNameDialog_Impl::SetCheckNameHdl( const Link<AbstractSvxNameDialog&,bool>& rLink, bool bCheckImmediately )
+void AbstractSvxNameDialog_Impl::SetCheckNameHdl( const Link<AbstractSvxNameDialog&,bool>& rLink )
{
aCheckNameHdl = rLink;
if( rLink.IsSet() )
- m_xDlg->SetCheckNameHdl( LINK(this, AbstractSvxNameDialog_Impl, CheckNameHdl), bCheckImmediately );
+ m_xDlg->SetCheckNameHdl( LINK(this, AbstractSvxNameDialog_Impl, CheckNameHdl) );
else
- m_xDlg->SetCheckNameHdl( Link<SvxNameDialog&,bool>(), bCheckImmediately );
+ m_xDlg->SetCheckNameHdl( Link<SvxNameDialog&,bool>() );
}
void AbstractSvxNameDialog_Impl::SetCheckNameTooltipHdl( const Link<AbstractSvxNameDialog&,OUString>& rLink)
@@ -559,12 +571,12 @@ void AbstractSvxNameDialog_Impl::SetCheckNameTooltipHdl( const Link<AbstractSvxN
m_xDlg->SetCheckNameTooltipHdl( Link<SvxNameDialog&,OUString>());
}
-void AbstractSvxNameDialog_Impl::SetEditHelpId(const OString& rHelpId)
+void AbstractSvxNameDialog_Impl::SetEditHelpId(const OUString& rHelpId)
{
m_xDlg->SetEditHelpId(rHelpId);
}
-void AbstractSvxNameDialog_Impl::SetHelpId(const OString& rHelpId)
+void AbstractSvxNameDialog_Impl::SetHelpId(const OUString& rHelpId)
{
m_xDlg->set_help_id(rHelpId);
}
@@ -584,9 +596,9 @@ IMPL_LINK_NOARG(AbstractSvxNameDialog_Impl, CheckNameTooltipHdl, SvxNameDialog&,
return aCheckNameTooltipHdl.Call(*this);
}
-void AbstractSvxObjectNameDialog_Impl::GetName(OUString& rName)
+OUString AbstractSvxObjectNameDialog_Impl::GetName()
{
- rName = m_xDlg->GetName();
+ return m_xDlg->GetName();
}
void AbstractSvxObjectNameDialog_Impl::SetCheckNameHdl(const Link<AbstractSvxObjectNameDialog&,bool>& rLink)
@@ -608,14 +620,19 @@ IMPL_LINK_NOARG(AbstractSvxObjectNameDialog_Impl, CheckNameHdl, SvxObjectNameDia
return aCheckNameHdl.Call(*this);
}
-void AbstractSvxObjectTitleDescDialog_Impl::GetTitle(OUString& rTitle)
+OUString AbstractSvxObjectTitleDescDialog_Impl::GetTitle()
+{
+ return m_xDlg->GetTitle();
+}
+
+OUString AbstractSvxObjectTitleDescDialog_Impl::GetDescription()
{
- rTitle = m_xDlg->GetTitle();
+ return m_xDlg->GetDescription();
}
-void AbstractSvxObjectTitleDescDialog_Impl::GetDescription(OUString& rDescription)
+bool AbstractSvxObjectTitleDescDialog_Impl::IsDecorative()
{
- rDescription = m_xDlg->GetDescription();
+ return m_xDlg->IsDecorative();
}
OUString AbstractSvxMultiPathDialog_Impl::GetPath() const
@@ -679,7 +696,7 @@ Graphic AbstractGraphicFilterDialog_Impl::GetFilteredGraphic(const Graphic& rGra
}
// AbstractSvxAreaTabDialog implementations just forwards everything to the dialog
-void AbstractSvxAreaTabDialog_Impl::SetCurPageId( const OString& rName )
+void AbstractSvxAreaTabDialog_Impl::SetCurPageId( const OUString& rName )
{
m_xDlg->SetCurPageId( rName );
}
@@ -792,52 +809,64 @@ bool AbstractPasswordToOpenModifyDialog_Impl::IsRecommendToOpenReadonly() const
return m_xDlg->IsRecommendToOpenReadonly();
}
+void AbstractPasswordToOpenModifyDialog_Impl::Response(sal_Int32 nResult)
+{
+ m_xDlg->response(nResult);
+}
+
+void AbstractPasswordToOpenModifyDialog_Impl::AllowEmpty()
+{
+ m_xDlg->AllowEmpty();
+}
+
// Create dialogs with simplest interface
VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateVclDialog(weld::Window* pParent, sal_uInt32 nResId)
{
- std::unique_ptr<OfaTreeOptionsDialog> xDlg;
switch ( nResId )
{
- case SID_OPTIONS_TREEDIALOG :
case SID_OPTIONS_DATABASES :
+ {
+ Reference< frame::XFrame > xFrame;
+ auto xDlg = std::make_shared<OfaTreeOptionsDialog>(pParent, xFrame, /*bActivateLastSelection*/false);
+ xDlg->ActivatePage(SID_SB_DBREGISTEROPTIONS);
+ return VclPtr<CuiAbstractControllerAsync_Impl>::Create(std::move(xDlg));
+ }
+ case SID_OPTIONS_TREEDIALOG :
case SID_LANGUAGE_OPTIONS :
{
bool bActivateLastSelection = false;
if (nResId == SID_OPTIONS_TREEDIALOG)
bActivateLastSelection = true;
Reference< frame::XFrame > xFrame;
- xDlg = std::make_unique<OfaTreeOptionsDialog>(pParent, xFrame, bActivateLastSelection);
- if (nResId == SID_OPTIONS_DATABASES)
- {
- xDlg->ActivatePage(SID_SB_DBREGISTEROPTIONS);
- }
- else if (nResId == SID_LANGUAGE_OPTIONS)
+ auto xDlg = std::make_unique<OfaTreeOptionsDialog>(pParent, xFrame, bActivateLastSelection);
+ if (nResId == SID_LANGUAGE_OPTIONS)
{
//open the tab page "tools/options/languages"
xDlg->ActivatePage(OFA_TP_LANGUAGES_FOR_SET_DOCUMENT_LANGUAGE);
}
+ return VclPtr<CuiAbstractController_Impl>::Create(std::move(xDlg));
}
break;
+
default:
- break;
+ assert(false);
+ return nullptr;
}
-
- if (xDlg)
- return VclPtr<CuiAbstractController_Impl>::Create(std::move(xDlg));
- return nullptr;
}
VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateFrameDialog(weld::Window* pParent, const Reference< frame::XFrame >& rxFrame,
- sal_uInt32 nResId, const OUString& rParameter )
+ sal_uInt32 nResId, sal_uInt16 nPageId, const OUString& rParameter)
{
std::unique_ptr<OfaTreeOptionsDialog> xDlg;
if (SID_OPTIONS_TREEDIALOG == nResId || SID_OPTIONS_DATABASES == nResId)
{
// only activate last page if we don't want to activate a special page
- bool bActivateLastSelection = ( nResId != SID_OPTIONS_DATABASES && rParameter.isEmpty() );
+ bool bActivateLastSelection = ( nResId != SID_OPTIONS_DATABASES && rParameter.isEmpty() && !nPageId);
xDlg = std::make_unique<OfaTreeOptionsDialog>(pParent, rxFrame, bActivateLastSelection);
if ( nResId == SID_OPTIONS_DATABASES )
xDlg->ActivatePage(SID_SB_DBREGISTEROPTIONS);
+ else if (nPageId)
+ xDlg->ActivatePage(nPageId);
else if ( !rParameter.isEmpty() )
xDlg->ActivatePage( rParameter );
}
@@ -847,6 +876,16 @@ VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateFrameDialog(weld::Wi
return nullptr;
}
+VclPtr<AbstractSecurityOptionsDialog> AbstractDialogFactory_Impl::CreateSvxSecurityOptionsDialog(weld::Window* pParent)
+{
+ return VclPtr<AbstractSecurityOptionsDialog_Impl>::Create(std::make_unique<svx::SecurityOptionsDialog>(pParent));
+}
+
+bool AbstractSecurityOptionsDialog_Impl::SetSecurityOptions()
+{
+ return m_xDlg->SetSecurityOptions();
+}
+
// TabDialog outside the drawing layer
VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateAutoCorrTabDialog(weld::Window* pParent, const SfxItemSet* pAttrSet)
{
@@ -895,7 +934,16 @@ VclPtr<AbstractHyphenWordDialog> AbstractDialogFactory_Impl::CreateHyphenWordDia
css::uno::Reference< css::linguistic2::XHyphenator > &xHyphen,
SvxSpellWrapper* pWrapper)
{
+#if !ENABLE_WASM_STRIP_EXTRA
return VclPtr<AbstractHyphenWordDialog_Impl>::Create(std::make_unique<SvxHyphenWordDialog>(rWord, nLang, pParent, xHyphen, pWrapper));
+#else
+ (void) pParent;
+ (void) rWord;
+ (void) nLang;
+ (void) xHyphen;
+ (void) pWrapper;
+ return nullptr;
+#endif
}
VclPtr<AbstractFmShowColsDialog> AbstractDialogFactory_Impl::CreateFmShowColsDialog(weld::Window* pParent)
@@ -1029,8 +1077,8 @@ VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSchTransformTabDi
{
auto pDlg = std::make_shared<SvxTransformTabDialog>(pParent, pAttr, pSdrView,
bSizeTabPage ? SvxAnchorIds::NoProtect : SvxAnchorIds::NoProtect|SvxAnchorIds::NoResize);
- pDlg->RemoveTabPage( "RID_SVXPAGE_ANGLE" );
- pDlg->RemoveTabPage( "RID_SVXPAGE_SLANT" );
+ pDlg->RemoveTabPage( u"RID_SVXPAGE_ANGLE"_ustr );
+ pDlg->RemoveTabPage( u"RID_SVXPAGE_SLANT"_ustr );
return VclPtr<CuiAbstractTabController_Impl>::Create(std::move(pDlg));
}
@@ -1057,9 +1105,9 @@ VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxEditDictionaryDia
}
VclPtr<AbstractSvxNameDialog> AbstractDialogFactory_Impl::CreateSvxNameDialog(weld::Window* pParent,
- const OUString& rName, const OUString& rDesc)
+ const OUString& rName, const OUString& rDesc, const OUString& rTitle)
{
- return VclPtr<AbstractSvxNameDialog_Impl>::Create(std::make_unique<SvxNameDialog>(pParent, rName, rDesc));
+ return VclPtr<AbstractSvxNameDialog_Impl>::Create(std::make_unique<SvxNameDialog>(pParent, rName, rDesc, rTitle));
}
VclPtr<AbstractSvxObjectNameDialog> AbstractDialogFactory_Impl::CreateSvxObjectNameDialog(weld::Window* pParent, const OUString& rName)
@@ -1067,9 +1115,9 @@ VclPtr<AbstractSvxObjectNameDialog> AbstractDialogFactory_Impl::CreateSvxObjectN
return VclPtr<AbstractSvxObjectNameDialog_Impl>::Create(std::make_unique<SvxObjectNameDialog>(pParent, rName));
}
-VclPtr<AbstractSvxObjectTitleDescDialog> AbstractDialogFactory_Impl::CreateSvxObjectTitleDescDialog(weld::Window* pParent, const OUString& rTitle, const OUString& rDescription)
+VclPtr<AbstractSvxObjectTitleDescDialog> AbstractDialogFactory_Impl::CreateSvxObjectTitleDescDialog(weld::Window* pParent, const OUString& rTitle, const OUString& rDescription, bool const isDecorative)
{
- return VclPtr<AbstractSvxObjectTitleDescDialog_Impl>::Create(std::make_unique<SvxObjectTitleDescDialog>(pParent, rTitle, rDescription));
+ return VclPtr<AbstractSvxObjectTitleDescDialog_Impl>::Create(std::make_unique<SvxObjectTitleDescDialog>(pParent, rTitle, rDescription, isDecorative));
}
VclPtr<AbstractSvxMultiPathDialog> AbstractDialogFactory_Impl::CreateSvxMultiPathDialog(weld::Window* pParent)
@@ -1137,9 +1185,11 @@ VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFil
VclPtr<AbstractSvxAreaTabDialog> AbstractDialogFactory_Impl::CreateSvxAreaTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
SdrModel* pModel,
- bool bShadow)
+ bool bShadow,
+ bool bSlideBackground)
{
- return VclPtr<AbstractSvxAreaTabDialog_Impl>::Create(std::make_shared<SvxAreaTabDialog>(pParent, pAttr, pModel, bShadow));
+ return VclPtr<AbstractSvxAreaTabDialog_Impl>::Create(
+ std::make_shared<SvxAreaTabDialog>(pParent, pAttr, pModel, bShadow, bSlideBackground));
}
VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxLineTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, //add forSvxLineTabDialog
@@ -1198,17 +1248,18 @@ public:
:m_aItems( SfxGetpApp()->GetPool(), svl::Items<SID_ATTR_MACROITEM, SID_ATTR_MACROITEM> )
{
m_aItems.Put( SfxBoolItem( SID_ATTR_MACROITEM, _bUnoDialogMode ) );
- m_xDlg.reset(new SvxMacroAssignDlg(_pParent, _rxDocumentFrame, m_aItems, _rxEvents, _nInitiallySelectedEvent));
+ m_xDlg = std::make_shared<SvxMacroAssignDlg>(_pParent, _rxDocumentFrame, m_aItems, _rxEvents, _nInitiallySelectedEvent);
}
virtual short Execute() override;
+ virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override;
private:
SfxItemSet m_aItems;
- std::unique_ptr<SvxMacroAssignDlg> m_xDlg;
+ std::shared_ptr<SvxMacroAssignDlg> m_xDlg;
};
-IMPL_ABSTDLG_CLASS(SvxMacroAssignDialog)
+IMPL_ABSTDLG_CLASS_ASYNC(SvxMacroAssignDialog, SvxMacroAssignDlg)
}
@@ -1372,7 +1423,7 @@ VclPtr<SfxAbstractInsertObjectDialog> AbstractDialogFactory_Impl::CreateInsertOb
if ( pDlg )
{
- pDlg->SetHelpId( OUStringToOString( rCommand, RTL_TEXTENCODING_UTF8 ) );
+ pDlg->SetHelpId(rCommand);
return VclPtr<AbstractInsertObjectDialog_Impl>::Create( std::move(pDlg) );
}
return nullptr;
@@ -1384,7 +1435,7 @@ VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateEditObjectDialog(wel
if ( rCommand == ".uno:InsertObjectFloatingFrame" )
{
auto pDlg = std::make_unique<SfxInsertFloatingFrameDialog>(pParent, xObj);
- pDlg->SetHelpId( OUStringToOString( rCommand, RTL_TEXTENCODING_UTF8 ) );
+ pDlg->SetHelpId(rCommand);
return VclPtr<AbstractInsertObjectDialog_Impl>::Create( std::move(pDlg) );
}
return nullptr;
@@ -1403,9 +1454,9 @@ VclPtr<SfxAbstractLinksDialog> AbstractDialogFactory_Impl::CreateLinksDialog(wel
return VclPtr<AbstractLinksDialog_Impl>::Create(std::move(xLinkDlg));
}
-VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel)
+VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet& rAttr, const SdrModel& rModel, bool bStyle)
{
- return VclPtr<CuiAbstractTabController_Impl>::Create(std::make_shared<SvxFormatCellsDialog>(pParent, pAttr, rModel));
+ return VclPtr<CuiAbstractTabController_Impl>::Create(std::make_shared<SvxFormatCellsDialog>(pParent, rAttr, rModel, bStyle));
}
VclPtr<SvxAbstractSplitTableDialog> AbstractDialogFactory_Impl::CreateSvxSplitTableDialog(weld::Window* pParent, bool bIsTableVertical, tools::Long nMaxVertical)
@@ -1423,9 +1474,9 @@ VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateOptionsDialog(weld::
return VclPtr<CuiAbstractController_Impl>::Create(std::make_unique<OfaTreeOptionsDialog>(pParent, rExtensionId));
}
-VclPtr<SvxAbstractInsRowColDlg> AbstractDialogFactory_Impl::CreateSvxInsRowColDlg(weld::Window* pParent, bool bCol, const OString& rHelpId)
+VclPtr<SvxAbstractInsRowColDlg> AbstractDialogFactory_Impl::CreateSvxInsRowColDlg(weld::Window* pParent, bool bCol, const OUString& rHelpId)
{
- return VclPtr<SvxInsRowColDlg>::Create(pParent, bCol, rHelpId);
+ return VclPtr<SvxAbstractInsRowColDlg_Impl>::Create(std::make_shared<SvxInsRowColDlg>(pParent, bCol, rHelpId));
}
VclPtr<AbstractPasswordToOpenModifyDialog> AbstractDialogFactory_Impl::CreatePasswordToOpenModifyDialog(
@@ -1458,7 +1509,7 @@ VclPtr<AbstractQrCodeGenDialog> AbstractDialogFactory_Impl::CreateQrCodeGenDialo
weld::Window* pParent, const Reference<XModel> xModel, bool bEditExisting)
{
return VclPtr<AbstractQrCodeGenDialog_Impl>::Create(
- std::make_unique<QrCodeGenDialog>(pParent, xModel, bEditExisting));
+ std::make_shared<QrCodeGenDialog>(pParent, xModel, bEditExisting));
}
VclPtr<AbstractAdditionsDialog> AbstractDialogFactory_Impl::CreateAdditionsDialog(
@@ -1470,7 +1521,7 @@ VclPtr<AbstractAdditionsDialog> AbstractDialogFactory_Impl::CreateAdditionsDialo
#else
(void) pParent;
(void) sAdditionsTag;
- return VclPtr<AbstractAdditionsDialog>(nullptr);
+ return nullptr;
#endif
}
@@ -1482,10 +1533,35 @@ AbstractDialogFactory_Impl::CreateAboutDialog(weld::Window* pParent)
}
VclPtr<VclAbstractDialog>
+AbstractDialogFactory_Impl::CreateWhatsNewDialog(weld::Window* pParent, const bool bWelcome)
+{
+#if !ENABLE_WASM_STRIP_PINGUSER
+ return VclPtr<CuiAbstractControllerAsync_Impl>::Create(
+ std::make_shared<WhatsNewDialog>(pParent, bWelcome));
+#else
+ (void) pParent;
+ (void) bWelcome;
+ return nullptr;
+#endif
+}
+
+VclPtr<VclAbstractDialog>
AbstractDialogFactory_Impl::CreateTipOfTheDayDialog(weld::Window* pParent)
{
+#if !ENABLE_WASM_STRIP_PINGUSER
return VclPtr<CuiAbstractControllerAsync_Impl>::Create(
std::make_shared<TipOfTheDayDialog>(pParent));
+#else
+ (void) pParent;
+ return nullptr;
+#endif
+}
+
+VclPtr<VclAbstractDialog>
+AbstractDialogFactory_Impl::CreateWidgetTestDialog(weld::Window* pParent)
+{
+ return VclPtr<CuiAbstractWidgetTestControllerAsync_Impl>::Create(
+ std::make_shared<WidgetTestDialog>(pParent));
}
VclPtr<VclAbstractDialog>
@@ -1496,10 +1572,12 @@ AbstractDialogFactory_Impl::CreateToolbarmodeDialog(weld::Window* pParent)
}
VclPtr<AbstractDiagramDialog>
-AbstractDialogFactory_Impl::CreateDiagramDialog(weld::Window* pParent, std::shared_ptr<DiagramDataInterface> pDiagramData)
+AbstractDialogFactory_Impl::CreateDiagramDialog(
+ weld::Window* pParent,
+ SdrObjGroup& rDiagram)
{
return VclPtr<AbstractDiagramDialog_Impl>::Create(
- std::make_unique<DiagramDialog>(pParent, pDiagramData));
+ std::make_unique<DiagramDialog>(pParent, rDiagram));
}
#ifdef _WIN32
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 5a07bf8e95fb..a10837f6cd48 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -26,7 +26,8 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <cfgutil.hxx>
-#include <cui/cuicharmap.hxx>
+#include <svx/cuicharmap.hxx>
+#include <dlgname.hxx>
#include <cuifmsearch.hxx>
#include <cuigaldlg.hxx>
#include <cuigrfflt.hxx>
@@ -35,7 +36,6 @@
#include <cuisrchdlg.hxx>
#include <cuitabarea.hxx>
#include <cuitbxform.hxx>
-#include <dlgname.hxx>
#include <DiagramDialog.hxx>
#include <hangulhanjadlg.hxx>
#include <hyphen.hxx>
@@ -49,6 +49,7 @@
#include <postdlg.hxx>
#include <QrCodeGenDialog.hxx>
#include <screenshotannotationdlg.hxx>
+#include <securityoptions.hxx>
#include <showcols.hxx>
#include <SignatureLineDialog.hxx>
#include <SignSignatureLineDialog.hxx>
@@ -109,8 +110,12 @@ DECL_ABSTDLG_CLASS_UNIQUE(CuiAbstractController, VclAbstractDialog, weld::Dialog
DECL_ABSTDLG_CLASS_SHARED_ASYNC(CuiAbstractControllerAsync, VclAbstractDialog, weld::DialogController)
};
+// CuiAbstractWidgetTestControllerAsync_Impl
+DECL_ABSTDLG_CLASS_SHARED_ASYNC(CuiAbstractWidgetTestControllerAsync, VclAbstractDialog, weld::GenericDialogController)
+};
+
// CuiAbstractSingleTabController_Impl
-DECL_ABSTDLG_CLASS_UNIQUE(CuiAbstractSingleTabController, SfxAbstractDialog, SfxSingleTabDialogController)
+DECL_ABSTDLG_CLASS_SHARED_ASYNC(CuiAbstractSingleTabController, SfxAbstractDialog, SfxSingleTabDialogController)
virtual const SfxItemSet* GetOutputItemSet() const override;
//From class Window.
virtual void SetText( const OUString& rStr ) override;
@@ -118,17 +123,17 @@ DECL_ABSTDLG_CLASS_UNIQUE(CuiAbstractSingleTabController, SfxAbstractDialog, Sfx
// CuiAbstractTabController_Impl
DECL_ABSTDLG_CLASS_SHARED_ASYNC(CuiAbstractTabController, SfxAbstractTabDialog, SfxTabDialogController)
- virtual void SetCurPageId( const OString &rName ) override;
+ virtual void SetCurPageId( const OUString &rName ) override;
virtual const SfxItemSet* GetOutputItemSet() const override;
virtual WhichRangesContainer GetInputRanges( const SfxItemPool& pItem ) override;
virtual void SetInputSet( const SfxItemSet* pInSet ) override;
virtual void SetText( const OUString& rStr ) override;
// screenshotting
- virtual std::vector<OString> getAllPageUIXMLDescriptions() const override;
- virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription) override;
+ virtual std::vector<OUString> getAllPageUIXMLDescriptions() const override;
+ virtual bool selectPageByUIXMLDescription(const OUString& rUIXMLDescription) override;
virtual BitmapEx createScreenshot() const override;
- virtual OString GetScreenshotId() const override;
+ virtual OUString GetScreenshotId() const override;
};
// AbstractHangulHanjaConversionDialog_Impl
@@ -216,7 +221,7 @@ DECL_ABSTDLG_CLASS(AbstractURLDlg, URLDlg)
};
// AbstractSvxSearchSimilarityDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractSvxSearchSimilarityDialog,SvxSearchSimilarityDialog)
+DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxSearchSimilarityDialog,SvxSearchSimilarityDialog)
virtual sal_uInt16 GetOther() override;
virtual sal_uInt16 GetShorter() override;
virtual sal_uInt16 GetLonger() override;
@@ -231,7 +236,7 @@ DECL_ABSTDLG_CLASS(AbstractSvxJSearchOptionsDialog,SvxJSearchOptionsDialog)
// AbstractSvxTransformTabDialog_Impl
DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxTransformTabDialog,SvxTransformTabDialog)
virtual void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink ) override;
- virtual void SetCurPageId( const OString& rName ) override;
+ virtual void SetCurPageId( const OUString& rName ) override;
virtual const SfxItemSet* GetOutputItemSet() const override;
virtual WhichRangesContainer GetInputRanges( const SfxItemPool& pItem ) override;
virtual void SetInputSet( const SfxItemSet* pInSet ) override;
@@ -241,7 +246,7 @@ DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxTransformTabDialog,SvxTransformTabDialog)
// AbstractSvxCaptionDialog_Impl
DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxCaptionDialog,SvxCaptionTabDialog)
virtual void SetValidateFramePosLink( const Link<SvxSwFrameValidation&,void>& rLink ) override;
- virtual void SetCurPageId( const OString& rName ) override;
+ virtual void SetCurPageId( const OUString& rName ) override;
virtual const SfxItemSet* GetOutputItemSet() const override;
virtual WhichRangesContainer GetInputRanges( const SfxItemPool& pItem ) override;
virtual void SetInputSet( const SfxItemSet* pInSet ) override;
@@ -261,12 +266,12 @@ DECL_ABSTDLG_CLASS(AbstractSvxNewDictionaryDialog,SvxNewDictionaryDialog)
// AbstractSvxNameDialog_Impl
DECL_ABSTDLG_CLASS(AbstractSvxNameDialog,SvxNameDialog)
- virtual void GetName( OUString& rName ) override ;
- virtual void SetCheckNameHdl( const Link<AbstractSvxNameDialog&,bool>& rLink, bool bCheckImmediately = false ) override ;
+ virtual OUString GetName() override;
+ virtual void SetCheckNameHdl( const Link<AbstractSvxNameDialog&,bool>& rLink ) override ;
virtual void SetCheckNameTooltipHdl( const Link<AbstractSvxNameDialog&, OUString>& rLink ) override ;
- virtual void SetEditHelpId(const OString&) override ;
+ virtual void SetEditHelpId(const OUString&) override ;
//from class Window
- virtual void SetHelpId( const OString& ) override ;
+ virtual void SetHelpId( const OUString& ) override ;
virtual void SetText( const OUString& rStr ) override ;
private:
@@ -280,8 +285,8 @@ class SvxObjectNameDialog;
class SvxObjectTitleDescDialog;
// AbstractSvxObjectNameDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractSvxObjectNameDialog,SvxObjectNameDialog)
- virtual void GetName(OUString& rName) override ;
+DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxObjectNameDialog,SvxObjectNameDialog)
+ virtual OUString GetName() override;
virtual void SetCheckNameHdl(const Link<AbstractSvxObjectNameDialog&,bool>& rLink) override;
private:
@@ -290,9 +295,10 @@ private:
};
// AbstractSvxObjectTitleDescDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractSvxObjectTitleDescDialog,SvxObjectTitleDescDialog)
- virtual void GetTitle(OUString& rName) override;
- virtual void GetDescription(OUString& rName) override;
+DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxObjectTitleDescDialog,SvxObjectTitleDescDialog)
+ virtual OUString GetTitle() override;
+ virtual OUString GetDescription() override;
+ virtual bool IsDecorative() override;
};
// AbstractSvxMultiPathDialog_Impl
@@ -324,13 +330,13 @@ DECL_ABSTDLG_CLASS(AbstractFmSearchDialog,FmSearchDialog)
};
// AbstractGraphicFilterDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractGraphicFilterDialog,GraphicFilterDialog)
+DECL_ABSTDLG_CLASS_ASYNC(AbstractGraphicFilterDialog,GraphicFilterDialog)
virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) override;
};
// AbstractSvxAreaTabDialog_Impl
DECL_ABSTDLG_CLASS_ASYNC(AbstractSvxAreaTabDialog,SvxAreaTabDialog)
- virtual void SetCurPageId(const OString& rName) override;
+ virtual void SetCurPageId(const OUString& rName) override;
virtual const SfxItemSet* GetOutputItemSet() const override;
virtual WhichRangesContainer GetInputRanges( const SfxItemPool& pItem ) override;
virtual void SetInputSet(const SfxItemSet* pInSet) override;
@@ -355,7 +361,7 @@ DECL_ABSTDLG_CLASS_SHARED_ASYNC(AbstractPasteDialog,SfxAbstractPasteDialog,SvPas
};
// AbstractLinksDialog_Impl
-DECL_ABSTDLG_CLASS_UNIQUE(AbstractLinksDialog,SfxAbstractLinksDialog,SvBaseLinksDlg)
+DECL_ABSTDLG_CLASS_SHARED_ASYNC(AbstractLinksDialog,SfxAbstractLinksDialog,SvBaseLinksDlg)
};
// AbstractSvxPostItDialog_Impl
@@ -379,14 +385,16 @@ private:
};
// AbstractPasswordToOpenModifyDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractPasswordToOpenModifyDialog,PasswordToOpenModifyDialog)
+DECL_ABSTDLG_CLASS_SHARED_ASYNC(AbstractPasswordToOpenModifyDialog,AbstractPasswordToOpenModifyDialog, PasswordToOpenModifyDialog)
virtual OUString GetPasswordToOpen() const override;
virtual OUString GetPasswordToModify() const override;
virtual bool IsRecommendToOpenReadonly() const override;
+ virtual void Response(sal_Int32) override;
+ virtual void AllowEmpty() override;
};
// AbstractSvxCharacterMapDialog_Impl
-DECL_ABSTDLG_CLASS_UNIQUE(AbstractSvxCharacterMapDialog,SfxAbstractDialog,SvxCharacterMap)
+DECL_ABSTDLG_CLASS_SHARED_ASYNC(AbstractSvxCharacterMapDialog,SfxAbstractDialog,SvxCharacterMap)
virtual const SfxItemSet* GetOutputItemSet() const override;
virtual void SetText(const OUString& rStr) override;
};
@@ -395,24 +403,31 @@ DECL_ABSTDLG_CLASS_UNIQUE(AbstractSvxCharacterMapDialog,SfxAbstractDialog,SvxCha
DECL_ABSTDLG_CLASS(AbstractScreenshotAnnotationDlg,ScreenshotAnnotationDlg)
};
+// AbstractSecurityOptionsDialog_Impl
+DECL_ABSTDLG_CLASS(AbstractSecurityOptionsDialog, svx::SecurityOptionsDialog)
+ virtual bool SetSecurityOptions() override;
+};
+
// AbstractSignatureLineDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractSignatureLineDialog,SignatureLineDialog)
+DECL_ABSTDLG_CLASS_ASYNC(AbstractSignatureLineDialog,SignatureLineDialog)
+ virtual void Apply() override { m_xDlg->Apply(); }
};
// AbstractQrCodeGenDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractQrCodeGenDialog,QrCodeGenDialog)
+DECL_ABSTDLG_CLASS_ASYNC(AbstractQrCodeGenDialog,QrCodeGenDialog)
};
// AbstractSignSignatureLineDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractSignSignatureLineDialog,SignSignatureLineDialog)
+DECL_ABSTDLG_CLASS_ASYNC(AbstractSignSignatureLineDialog,SignSignatureLineDialog)
+ virtual void Apply() override { m_xDlg->Apply(); }
};
// AbstractAdditionsDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractAdditionsDialog,AdditionsDialog)
+DECL_ABSTDLG_CLASS_ASYNC(AbstractAdditionsDialog,weld::GenericDialogController)
};
// AbstractDiagramDialog_Impl
-DECL_ABSTDLG_CLASS(AbstractDiagramDialog,DiagramDialog)
+DECL_ABSTDLG_CLASS_ASYNC(AbstractDiagramDialog,DiagramDialog)
};
//AbstractDialogFactory_Impl implementations
@@ -432,8 +447,7 @@ public:
const SfxItemSet& rAttr,
const css::uno::Reference< css::frame::XFrame >& rFrame) override;
virtual VclPtr<VclAbstractDialog> CreateFrameDialog(weld::Window* pParent, const css::uno::Reference< css::frame::XFrame >& rxFrame,
- sal_uInt32 nResId,
- const OUString& rParameter ) override;
+ sal_uInt32 nResId, sal_uInt16 nPageId, const OUString& rParameter) override;
virtual VclPtr<SfxAbstractTabDialog> CreateAutoCorrTabDialog(weld::Window* pParent, const SfxItemSet* pAttrSet) override;
virtual VclPtr<SfxAbstractTabDialog> CreateCustomizeTabDialog(weld::Window* pParent,
const SfxItemSet* pAttrSet,
@@ -514,10 +528,10 @@ public:
virtual VclPtr<AbstractSvxNewDictionaryDialog> CreateSvxNewDictionaryDialog(weld::Window* pParent) override;
virtual VclPtr<VclAbstractDialog> CreateSvxEditDictionaryDialog(weld::Window* pParent, const OUString& rName) override;
virtual VclPtr<AbstractSvxNameDialog> CreateSvxNameDialog(weld::Window* pParent,
- const OUString& rName, const OUString& rDesc) override;
+ const OUString& rName, const OUString& rDesc, const OUString& rTitle = u""_ustr) override;
// #i68101#
virtual VclPtr<AbstractSvxObjectNameDialog> CreateSvxObjectNameDialog(weld::Window* pParent, const OUString& rName) override;
- virtual VclPtr<AbstractSvxObjectTitleDescDialog> CreateSvxObjectTitleDescDialog(weld::Window* pParent, const OUString& rTitle, const OUString& rDescription) override;
+ virtual VclPtr<AbstractSvxObjectTitleDescDialog> CreateSvxObjectTitleDescDialog(weld::Window* pParent, const OUString& rTitle, const OUString& rDescription, bool isDecorative) override;
virtual VclPtr<AbstractSvxMultiPathDialog> CreateSvxMultiPathDialog(weld::Window* pParent) override;
virtual VclPtr<AbstractSvxMultiPathDialog> CreateSvxPathSelectDialog(weld::Window* pParent) override;
virtual VclPtr<AbstractSvxHpLinkDlg> CreateSvxHpLinkDlg(SfxChildWindow* pChild, SfxBindings* pBindings, weld::Window* pParent) override;
@@ -541,7 +555,8 @@ public:
virtual VclPtr<AbstractSvxAreaTabDialog> CreateSvxAreaTabDialog(weld::Window* pParent,
const SfxItemSet* pAttr,
SdrModel* pModel,
- bool bShadow) override;
+ bool bShadow,
+ bool bSlideBackground) override;
virtual VclPtr<SfxAbstractTabDialog> CreateSvxLineTabDialog(weld::Window* pParent, const SfxItemSet* pAttr,
SdrModel* pModel,
const SdrObject* pObj,
@@ -570,7 +585,7 @@ public:
const sal_uInt16 _nInitiallySelectedEvent
) override;
- virtual VclPtr<SfxAbstractTabDialog> CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel) override;
+ virtual VclPtr<SfxAbstractTabDialog> CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet& rAttr, const SdrModel& rModel, bool bStyle) override;
virtual VclPtr<SvxAbstractSplitTableDialog> CreateSvxSplitTableDialog(weld::Window* pParent, bool bIsTableVertical, tools::Long nMaxVertical) override;
@@ -579,12 +594,14 @@ public:
virtual VclPtr<VclAbstractDialog> CreateOptionsDialog(
weld::Window* pParent, const OUString& rExtensionId ) override;
- virtual VclPtr<SvxAbstractInsRowColDlg> CreateSvxInsRowColDlg(weld::Window* pParent, bool bCol, const OString& rHelpId) override;
+ virtual VclPtr<SvxAbstractInsRowColDlg> CreateSvxInsRowColDlg(weld::Window* pParent, bool bCol, const OUString& rHelpId) override;
virtual VclPtr<AbstractPasswordToOpenModifyDialog> CreatePasswordToOpenModifyDialog(weld::Window* pParent, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify) override;
virtual VclPtr<AbstractScreenshotAnnotationDlg> CreateScreenshotAnnotationDlg(weld::Dialog& rParentDialog) override;
+ virtual VclPtr<AbstractSecurityOptionsDialog> CreateSvxSecurityOptionsDialog(weld::Window* pParent) override;
+
virtual VclPtr<AbstractSignatureLineDialog>
CreateSignatureLineDialog(weld::Window* pParent,
const css::uno::Reference<css::frame::XModel> xModel, bool bEditExisting) override;
@@ -602,13 +619,17 @@ public:
virtual VclPtr<VclAbstractDialog> CreateAboutDialog(weld::Window* pParent) override;
+ virtual VclPtr<VclAbstractDialog> CreateWhatsNewDialog(weld::Window* pParent, const bool bWelcome) override;
+
virtual VclPtr<VclAbstractDialog> CreateTipOfTheDayDialog(weld::Window* pParent) override;
+ virtual VclPtr<VclAbstractDialog> CreateWidgetTestDialog(weld::Window* pParent) override;
+
virtual VclPtr<VclAbstractDialog> CreateToolbarmodeDialog(weld::Window* pParent) override;
virtual VclPtr<AbstractDiagramDialog> CreateDiagramDialog(
weld::Window* pParent,
- std::shared_ptr<DiagramDataInterface> pDiagramData) override;
+ SdrObjGroup& rDiagram) override;
#ifdef _WIN32
virtual VclPtr<VclAbstractDialog> CreateFileExtCheckDialog(weld::Window* pParent,
diff --git a/cui/source/factory/init.cxx b/cui/source/factory/init.cxx
index 87f3105a0875..6b363f9bf543 100644
--- a/cui/source/factory/init.cxx
+++ b/cui/source/factory/init.cxx
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <cui/cuicharmap.hxx>
+#include <svx/cuicharmap.hxx>
// hook to call special character dialog for edits
// caution: needs C-Linkage since dynamically loaded via symbol name
@@ -32,9 +32,8 @@ SAL_DLLPUBLIC_EXPORT bool GetSpecialCharsForEdit(weld::Widget* i_pParent, const
if (aDlg.run() == RET_OK)
{
sal_UCS4 cChar = aDlg.GetChar();
- // using the new UCS4 constructor
- OUString aOUStr( &cChar, 1 );
- o_rResult = aOUStr;
+ // using the UCS4 constructor
+ o_rResult = OUString(&cChar, 1);
bRet = true;
}
return bRet;
diff --git a/cui/source/inc/AdditionsDialog.hxx b/cui/source/inc/AdditionsDialog.hxx
index 0e7620b38268..559a4ca911ff 100644
--- a/cui/source/inc/AdditionsDialog.hxx
+++ b/cui/source/inc/AdditionsDialog.hxx
@@ -58,7 +58,7 @@ class AdditionsDialog : public weld::GenericDialogController
private:
Timer m_aSearchDataTimer;
- DECL_LINK(GearHdl, const OString&, void);
+ DECL_LINK(GearHdl, const OUString&, void);
DECL_LINK(SearchUpdateHdl, weld::Entry&, void);
DECL_LINK(ImplUpdateDataHdl, Timer*, void);
DECL_LINK(FocusOut_Impl, weld::Widget&, void);
@@ -68,7 +68,6 @@ public:
css::uno::Reference<css::deployment::XExtensionManager> m_xExtensionManager;
std::unique_ptr<weld::Entry> m_xEntrySearch;
std::unique_ptr<weld::Button> m_xButtonClose;
- std::unique_ptr<weld::MenuButton> m_xMenuButtonSettings;
std::vector<std::shared_ptr<AdditionsItem>> m_aAdditionsItems; // UI components
std::vector<AdditionInfo> m_aAllExtensionsVector; // Stores the all extensions' info
@@ -117,19 +116,15 @@ public:
std::unique_ptr<weld::LinkButton> m_xLinkButtonWebsite;
std::unique_ptr<weld::Label> m_xLabelName;
std::unique_ptr<weld::Label> m_xLabelAuthor;
- std::unique_ptr<weld::Label> m_xLabelDesc;
std::unique_ptr<weld::Label> m_xLabelDescription;
std::unique_ptr<weld::Label> m_xLabelLicense;
std::unique_ptr<weld::Label> m_xLabelVersion;
- std::unique_ptr<weld::Label> m_xLabelComments;
std::unique_ptr<weld::LinkButton> m_xLinkButtonComments;
std::unique_ptr<weld::Image> m_xImageVoting1;
std::unique_ptr<weld::Image> m_xImageVoting2;
std::unique_ptr<weld::Image> m_xImageVoting3;
std::unique_ptr<weld::Image> m_xImageVoting4;
std::unique_ptr<weld::Image> m_xImageVoting5;
- std::unique_ptr<weld::Label> m_xLabelNoVoting;
- std::unique_ptr<weld::Image> m_xImageDownloadNumber;
std::unique_ptr<weld::Label> m_xLabelDownloadNumber;
std::unique_ptr<weld::Button> m_xButtonShowMore;
AdditionsDialog* m_pParentDialog;
@@ -143,6 +138,7 @@ private:
AdditionsDialog* m_pAdditionsDialog;
std::atomic<bool> m_bExecute;
bool m_bIsFirstLoading;
+ bool m_bUITest;
void Search();
void Append(AdditionInfo& additionInfo);
diff --git a/cui/source/inc/CustomNotebookbarGenerator.hxx b/cui/source/inc/CustomNotebookbarGenerator.hxx
index b06848dbb955..a7149879aef0 100644
--- a/cui/source/inc/CustomNotebookbarGenerator.hxx
+++ b/cui/source/inc/CustomNotebookbarGenerator.hxx
@@ -35,8 +35,8 @@ public:
static void getFileNameAndAppName(OUString& sAppName, OUString& sNotebookbarUIFileName);
static void modifyCustomizedUIFile(const Sequence<OUString>& sUIItemProperties);
static void createCustomizedUIFile();
- static void setCustomizedUIItem(Sequence<OUString> sUIItemProperties,
- OUString sNotebookbarConfigType);
+ static void setCustomizedUIItem(const Sequence<OUString>& rUIItemProperties,
+ const OUString& rNotebookbarConfigType);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/DiagramDialog.hxx b/cui/source/inc/DiagramDialog.hxx
index adc8328969a8..a612e092a8e7 100644
--- a/cui/source/inc/DiagramDialog.hxx
+++ b/cui/source/inc/DiagramDialog.hxx
@@ -12,24 +12,26 @@
#include <tools/link.hxx>
#include <vcl/weld.hxx>
-class DiagramDataInterface;
+class SdrObjGroup;
/** Edit Diagram dialog */
class DiagramDialog : public weld::GenericDialogController
{
public:
- DiagramDialog(weld::Window* pWindow, std::shared_ptr<DiagramDataInterface> pDiagramData);
+ DiagramDialog(weld::Window* pWindow, SdrObjGroup& rDiagram);
virtual ~DiagramDialog() override;
private:
- std::shared_ptr<DiagramDataInterface> mpDiagramData;
- std::unique_ptr<weld::Button> mpBtnOk;
+ SdrObjGroup& m_rDiagram;
+ sal_uInt32 m_nUndos;
+
std::unique_ptr<weld::Button> mpBtnCancel;
std::unique_ptr<weld::Button> mpBtnAdd;
std::unique_ptr<weld::Button> mpBtnRemove;
std::unique_ptr<weld::TreeView> mpTreeDiagram;
std::unique_ptr<weld::TextView> mpTextAdd;
+ DECL_LINK(OnAddCancel, weld::Button&, void);
DECL_LINK(OnAddClick, weld::Button&, void);
DECL_LINK(OnRemoveClick, weld::Button&, void);
diff --git a/cui/source/inc/FontFeaturesDialog.hxx b/cui/source/inc/FontFeaturesDialog.hxx
index aee4da9f3c72..e1c8d9d97163 100644
--- a/cui/source/inc/FontFeaturesDialog.hxx
+++ b/cui/source/inc/FontFeaturesDialog.hxx
@@ -22,34 +22,45 @@ struct FontFeatureItem
{
FontFeatureItem(weld::Widget* pParent)
: m_aFeatureCode(0)
- , m_nDefault(0)
- , m_xBuilder(Application::CreateBuilder(pParent, "cui/ui/fontfragment.ui"))
- , m_xContainer(m_xBuilder->weld_widget("fontentry"))
- , m_xText(m_xBuilder->weld_label("label"))
- , m_xCombo(m_xBuilder->weld_combo_box("combo"))
- , m_xCheck(m_xBuilder->weld_check_button("check"))
+ , m_nDefault(-1)
+ , m_xBuilder(Application::CreateBuilder(pParent, u"cui/ui/fontfragment.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_widget(u"fontentry"_ustr))
+ , m_xText(m_xBuilder->weld_label(u"label"_ustr))
+ , m_xCombo(m_xBuilder->weld_combo_box(u"combo"_ustr))
+ , m_xCheck(m_xBuilder->weld_check_button(u"check"_ustr))
{
+ m_xCheck->connect_toggled(LINK(this, FontFeatureItem, CheckBoxToggledHdl));
}
sal_uInt32 m_aFeatureCode;
- sal_uInt32 m_nDefault;
+ sal_Int32 m_nDefault;
+ weld::TriStateEnabled m_aTriStateEnabled;
+ Link<weld::Toggleable&, void> m_aToggleHdl;
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<weld::Widget> m_xContainer;
std::unique_ptr<weld::Label> m_xText;
std::unique_ptr<weld::ComboBox> m_xCombo;
std::unique_ptr<weld::CheckButton> m_xCheck;
+
+private:
+ DECL_LINK(CheckBoxToggledHdl, weld::Toggleable&, void);
};
class FontFeaturesDialog : public weld::GenericDialogController
{
private:
- std::vector<FontFeatureItem> m_aFeatureItems;
+ std::vector<std::unique_ptr<FontFeatureItem>> m_aFeatureItems;
OUString m_sFontName;
OUString m_sResultFontName;
SvxFontPrevWindow m_aPreviewWindow;
std::unique_ptr<weld::ScrolledWindow> m_xContentWindow;
+ std::unique_ptr<weld::Container> m_xContentBox;
std::unique_ptr<weld::Container> m_xContentGrid;
+ std::unique_ptr<weld::Container> m_xStylisticSetsBox;
+ std::unique_ptr<weld::Container> m_xStylisticSetsGrid;
+ std::unique_ptr<weld::Container> m_xCharacterVariantsBox;
+ std::unique_ptr<weld::Container> m_xCharacterVariantsGrid;
std::unique_ptr<weld::CustomWeld> m_xPreviewWindow;
void initialize();
@@ -62,7 +73,7 @@ private:
DECL_LINK(CheckBoxToggledHdl, weld::Toggleable&, void);
public:
- FontFeaturesDialog(weld::Window* pParent, OUString const& rFontName);
+ FontFeaturesDialog(weld::Window* pParent, OUString aFontName);
~FontFeaturesDialog() override;
virtual short run() override;
diff --git a/cui/source/inc/GraphicsTestsDialog.hxx b/cui/source/inc/GraphicsTestsDialog.hxx
index 3f8a151f8080..2bf18de5dde7 100644
--- a/cui/source/inc/GraphicsTestsDialog.hxx
+++ b/cui/source/inc/GraphicsTestsDialog.hxx
@@ -8,13 +8,9 @@
*/
#pragma once
-#include <vcl/bitmapex.hxx>
-#include <vcl/svapp.hxx>
+#include <vcl/bitmap.hxx>
#include <vcl/weld.hxx>
#include <tools/link.hxx>
-#include <svx/FileExportedDialog.hxx>
-
-#include "ImageViewerDialog.hxx"
#include <vector>
diff --git a/cui/source/inc/QrCodeGenDialog.hxx b/cui/source/inc/QrCodeGenDialog.hxx
index 165bc6d75f4a..02037ad4cdf6 100644
--- a/cui/source/inc/QrCodeGenDialog.hxx
+++ b/cui/source/inc/QrCodeGenDialog.hxx
@@ -24,16 +24,21 @@ public:
bool bEditExisting);
virtual short run() override;
+ static bool runAsync(const std::shared_ptr<QrCodeGenDialog>& rController,
+ const std::function<void(sal_Int32)>& rFunc);
-protected:
- css::uno::Reference<css::frame::XModel> m_xModel;
void Apply();
+#if ENABLE_ZXING
+ weld::Widget* GetParent() { return mpParent; }
+#endif
private:
- std::unique_ptr<weld::Entry> m_xEdittext;
+ css::uno::Reference<css::frame::XModel> m_xModel;
+ std::unique_ptr<weld::TextView> m_xEdittext;
std::unique_ptr<weld::RadioButton> m_xECC[4];
std::unique_ptr<weld::SpinButton> m_xSpinBorder;
std::unique_ptr<weld::ComboBox> m_xComboType;
+
#if ENABLE_ZXING
weld::Widget* mpParent;
#endif
diff --git a/cui/source/inc/SignSignatureLineDialog.hxx b/cui/source/inc/SignSignatureLineDialog.hxx
index 5abe1969e32c..7c894a16a0b3 100644
--- a/cui/source/inc/SignSignatureLineDialog.hxx
+++ b/cui/source/inc/SignSignatureLineDialog.hxx
@@ -20,6 +20,8 @@ class SignSignatureLineDialog : public SignatureLineDialogBase
public:
SignSignatureLineDialog(weld::Widget* pParent, css::uno::Reference<css::frame::XModel> xModel);
+ void Apply();
+
private:
std::unique_ptr<weld::Entry> m_xEditName;
std::unique_ptr<weld::TextView> m_xEditComment;
@@ -42,7 +44,6 @@ private:
void ValidateFields();
css::uno::Reference<css::graphic::XGraphic> getSignedGraphic(bool bValid);
- virtual void Apply() override;
DECL_LINK(clearImage, weld::Button&, void);
DECL_LINK(loadImage, weld::Button&, void);
diff --git a/cui/source/inc/SignatureLineDialog.hxx b/cui/source/inc/SignatureLineDialog.hxx
index 73b093f601a5..e686cb4a4123 100644
--- a/cui/source/inc/SignatureLineDialog.hxx
+++ b/cui/source/inc/SignatureLineDialog.hxx
@@ -19,6 +19,8 @@ public:
SignatureLineDialog(weld::Widget* pParent, css::uno::Reference<css::frame::XModel> xModel,
bool bEditExisting);
+ void Apply();
+
private:
std::unique_ptr<weld::Entry> m_xEditName;
std::unique_ptr<weld::Entry> m_xEditTitle;
@@ -29,8 +31,6 @@ private:
css::uno::Reference<css::beans::XPropertySet> m_xExistingShapeProperties;
OUString m_aSignatureLineId;
-
- virtual void Apply() override;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/cui/source/inc/SignatureLineDialogBase.hxx b/cui/source/inc/SignatureLineDialogBase.hxx
index 3cc645819be8..4e0a3f298e5b 100644
--- a/cui/source/inc/SignatureLineDialogBase.hxx
+++ b/cui/source/inc/SignatureLineDialogBase.hxx
@@ -21,13 +21,12 @@ class SignatureLineDialogBase : public weld::GenericDialogController
{
public:
SignatureLineDialogBase(weld::Widget* pParent, css::uno::Reference<css::frame::XModel> xModel,
- const OUString& rUIFile, const OString& rDialogId);
+ const OUString& rUIFile, const OUString& rDialogId);
virtual short run() override;
protected:
css::uno::Reference<css::frame::XModel> m_xModel;
- virtual void Apply() = 0;
static OUString getCDataString(std::u16string_view rString);
};
diff --git a/cui/source/inc/SpellDialog.hxx b/cui/source/inc/SpellDialog.hxx
index 69f491fc6586..81d68e214314 100644
--- a/cui/source/inc/SpellDialog.hxx
+++ b/cui/source/inc/SpellDialog.hxx
@@ -46,6 +46,7 @@ struct SpellErrorDescription;
class SentenceEditWindow_Impl : public WeldEditView
{
private:
+ std::unique_ptr<weld::ScrolledWindow> m_xScrolledWindow;
std::set<sal_Int32> m_aIgnoreErrorsAt;
SpellDialog* m_pSpellDialog;
weld::Toolbar* m_pToolbar;
@@ -61,14 +62,21 @@ private:
bool GetErrorDescription(SpellErrorDescription& rSpellErrorDescription, sal_Int32 nPosition);
- DECL_LINK(ToolbarHdl, const OString&, void);
+ DECL_LINK(ScrollHdl, weld::ScrolledWindow&, void);
+ DECL_LINK(EditStatusHdl, EditStatus&, void);
+ DECL_LINK(ToolbarHdl, const OUString&, void);
+
+ void DoScroll();
+ void SetScrollBarRange();
protected:
virtual bool KeyInput( const KeyEvent& rKEvt ) override;
+ virtual void StyleUpdated() override;
public:
- SentenceEditWindow_Impl();
+ SentenceEditWindow_Impl(std::unique_ptr<weld::ScrolledWindow> xScrolledWindow);
virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
+ virtual void EditViewScrollStateChange() override;
void SetSpellDialog(SpellDialog* pDialog) { m_pSpellDialog = pDialog; }
virtual ~SentenceEditWindow_Impl() override;
@@ -113,6 +121,8 @@ public:
void MoveErrorEnd(tools::Long nOffset);
void ResetIgnoreErrorsAt() { m_aIgnoreErrorsAt.clear(); }
+
+ void SetDocumentColor(weld::DrawingArea* pDrawingArea);
};
// class SvxSpellDialog ---------------------------------------------
@@ -130,7 +140,7 @@ private:
OUString m_sTitleSpellingGrammar;
Link<SpellUndoAction_Impl&,void> aDialogUndoLink;
-
+ ImplSVEvent * m_pInitHdlEvent;
bool bFocusLocked;
svx::SpellDialogChildWindow& rParent;
@@ -143,7 +153,6 @@ private:
std::unique_ptr<weld::Label> m_xAltTitle;
std::unique_ptr<weld::Label> m_xResumeFT;
std::unique_ptr<weld::Label> m_xNoSuggestionsFT;
- std::unique_ptr<weld::Label> m_xIgnoreOnceFT;
std::unique_ptr<weld::Label> m_xLanguageFT;
std::unique_ptr<SvxLanguageBox> m_xLanguageLB;
std::unique_ptr<weld::Label> m_xExplainFT;
@@ -166,6 +175,7 @@ private:
std::unique_ptr<weld::Button> m_xClosePB;
std::unique_ptr<weld::Toolbar> m_xToolbar;
std::unique_ptr<weld::CustomWeld> m_xSentenceEDWeld;
+ std::shared_ptr<SfxSingleTabDialogController> m_xOptionsDlg;
DECL_LINK(ChangeHdl, weld::Button&, void);
DECL_LINK(DoubleClickChangeHdl, weld::TreeView&, bool);
@@ -177,14 +187,14 @@ private:
DECL_LINK(CancelHdl, weld::Button&, void);
DECL_LINK(ModifyHdl, LinkParamNone*, void);
DECL_LINK(UndoHdl, weld::Button&, void);
- DECL_LINK(AddToDictSelectHdl, const OString&, void);
+ DECL_LINK(AddToDictSelectHdl, const OUString&, void);
DECL_LINK(AddToDictClickHdl, weld::Button&, void);
DECL_LINK(LanguageSelectHdl, weld::ComboBox&, void);
DECL_LINK(DialogUndoHdl, SpellUndoAction_Impl&, void);
DECL_LINK(InitHdl, void*, void);
- void AddToDictionaryExecute(const OString& rItemId);
+ void AddToDictionaryExecute(const OUString& rItemId);
void StartSpellOptDlg_Impl();
int InitUserDicts();
void UpdateBoxes_Impl(bool bCallFromSelectHdl = false);
diff --git a/cui/source/inc/SvxMenuConfigPage.hxx b/cui/source/inc/SvxMenuConfigPage.hxx
index bc8fba3f5780..36fee041de76 100644
--- a/cui/source/inc/SvxMenuConfigPage.hxx
+++ b/cui/source/inc/SvxMenuConfigPage.hxx
@@ -33,15 +33,15 @@ private:
DECL_LINK(ContentContextMenuHdl, const CommandEvent&, bool);
DECL_LINK(FunctionContextMenuHdl, const CommandEvent&, bool);
- DECL_LINK(GearHdl, const OString&, void);
+ DECL_LINK(GearHdl, const OUString&, void);
DECL_LINK(SelectCategory, weld::ComboBox&, void);
DECL_LINK(AddCommandHdl, weld::Button&, void);
DECL_LINK(RemoveCommandHdl, weld::Button&, void);
- DECL_LINK(InsertHdl, const OString&, void);
- DECL_LINK(ModifyItemHdl, const OString&, void);
+ DECL_LINK(InsertHdl, const OUString&, void);
+ DECL_LINK(ModifyItemHdl, const OUString&, void);
DECL_LINK(ResetMenuHdl, weld::Button&, void);
DECL_LINK(MenuEntriesSizeAllocHdl, const Size&, void);
diff --git a/cui/source/inc/SvxNotebookbarConfigPage.hxx b/cui/source/inc/SvxNotebookbarConfigPage.hxx
index 7e417463ab30..672d2e8299e4 100644
--- a/cui/source/inc/SvxNotebookbarConfigPage.hxx
+++ b/cui/source/inc/SvxNotebookbarConfigPage.hxx
@@ -74,13 +74,19 @@ public:
class SvxNotebookbarEntriesListBox final : public SvxMenuEntriesListBox
{
+ typedef std::unordered_map<OUString, OUString> TooltipMap;
+ TooltipMap m_aTooltipMap;
+
void ChangedVisibility(int nRow);
DECL_LINK(CheckButtonHdl, const weld::TreeView::iter_col&, void);
DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
+ DECL_LINK(QueryTooltip, const weld::TreeIter& rIter, OUString);
public:
SvxNotebookbarEntriesListBox(std::unique_ptr<weld::TreeView> xControl, SvxConfigPage* pPg);
virtual ~SvxNotebookbarEntriesListBox() override;
+
+ TooltipMap& GetTooltipMap() { return m_aTooltipMap; }
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/SvxToolbarConfigPage.hxx b/cui/source/inc/SvxToolbarConfigPage.hxx
index e035d6b7ef31..28fe658f2cca 100644
--- a/cui/source/inc/SvxToolbarConfigPage.hxx
+++ b/cui/source/inc/SvxToolbarConfigPage.hxx
@@ -32,7 +32,7 @@ private:
DECL_LINK(SelectToolbarEntry, weld::TreeView&, void);
DECL_LINK(MoveHdl, weld::Button&, void);
- DECL_LINK(GearHdl, const OString&, void);
+ DECL_LINK(GearHdl, const OUString&, void);
DECL_LINK(SelectCategory, weld::ComboBox&, void);
@@ -42,8 +42,8 @@ private:
DECL_LINK(AddCommandHdl, weld::Button&, void);
DECL_LINK(RemoveCommandHdl, weld::Button&, void);
- DECL_LINK(InsertHdl, const OString&, void);
- DECL_LINK(ModifyItemHdl, const OString&, void);
+ DECL_LINK(InsertHdl, const OUString&, void);
+ DECL_LINK(ModifyItemHdl, const OUString&, void);
DECL_LINK(ResetToolbarHdl, weld::Button&, void);
virtual void ListModified() override;
diff --git a/cui/source/inc/about.hxx b/cui/source/inc/about.hxx
index 2cfc65a894f4..42eae5467eab 100644
--- a/cui/source/inc/about.hxx
+++ b/cui/source/inc/about.hxx
@@ -46,7 +46,7 @@ private:
static OUString GetMiscString();
static OUString GetCopyrightString();
- static bool IsStringValidGitHash(const OUString& hash);
+ static bool IsStringValidGitHash(std::u16string_view hash);
DECL_LINK(HandleClick, weld::Button&, void);
diff --git a/cui/source/inc/align.hxx b/cui/source/inc/align.hxx
index 2be30aec6c71..a1761607cfd8 100644
--- a/cui/source/inc/align.hxx
+++ b/cui/source/inc/align.hxx
@@ -19,20 +19,24 @@
#pragma once
// list box indexes
-#define ALIGNDLG_HORALIGN_STD 0
-#define ALIGNDLG_HORALIGN_LEFT 1
-#define ALIGNDLG_HORALIGN_CENTER 2
-#define ALIGNDLG_HORALIGN_RIGHT 3
-#define ALIGNDLG_HORALIGN_BLOCK 4
-#define ALIGNDLG_HORALIGN_FILL 5
-#define ALIGNDLG_HORALIGN_DISTRIBUTED 6
-
-#define ALIGNDLG_VERALIGN_STD 0
-#define ALIGNDLG_VERALIGN_TOP 1
-#define ALIGNDLG_VERALIGN_MID 2
-#define ALIGNDLG_VERALIGN_BOTTOM 3
-#define ALIGNDLG_VERALIGN_BLOCK 4
-#define ALIGNDLG_VERALIGN_DISTRIBUTED 5
+enum HorizontalAlign {
+ ALIGNDLG_HORALIGN_STD = 0,
+ ALIGNDLG_HORALIGN_LEFT = 1,
+ ALIGNDLG_HORALIGN_CENTER = 2,
+ ALIGNDLG_HORALIGN_RIGHT = 3,
+ ALIGNDLG_HORALIGN_BLOCK = 4,
+ ALIGNDLG_HORALIGN_FILL = 5,
+ ALIGNDLG_HORALIGN_DISTRIBUTED = 6
+};
+
+enum VerticalAlign {
+ ALIGNDLG_VERALIGN_STD = 0,
+ ALIGNDLG_VERALIGN_TOP = 1,
+ ALIGNDLG_VERALIGN_MID = 2,
+ ALIGNDLG_VERALIGN_BOTTOM = 3,
+ ALIGNDLG_VERALIGN_BLOCK = 4,
+ ALIGNDLG_VERALIGN_DISTRIBUTED = 5
+};
#include <sfx2/tabdlg.hxx>
#include <svtools/valueset.hxx>
@@ -40,6 +44,8 @@
#include <svx/frmdirlbox.hxx>
#include <vcl/weld.hxx>
+class SfxEnumItemInterface;
+
namespace svx {
@@ -62,7 +68,7 @@ private:
void InitVsRefEgde();
void UpdateEnableControls();
- bool HasAlignmentChanged( const SfxItemSet& rNew, sal_uInt16 nWhich ) const;
+ bool HasAlignmentChanged( const SfxItemSet& rNew, TypedWhichId<SfxEnumItemInterface> nWhich ) const;
DECL_LINK(UpdateEnableHdl, weld::ComboBox&, void);
DECL_LINK(StackedClickHdl, weld::Toggleable&, void);
@@ -92,7 +98,6 @@ private:
std::unique_ptr<weld::CheckButton> m_xCbStacked;
std::unique_ptr<weld::CheckButton> m_xCbAsianMode;
- std::unique_ptr<weld::Widget> m_xBoxDirection;
std::unique_ptr<weld::CheckButton> m_xBtnWrap;
std::unique_ptr<weld::CheckButton> m_xBtnHyphen;
std::unique_ptr<weld::CheckButton> m_xBtnShrink;
diff --git a/cui/source/inc/autocdlg.hxx b/cui/source/inc/autocdlg.hxx
index ca7d778830ea..2677b8535ebe 100644
--- a/cui/source/inc/autocdlg.hxx
+++ b/cui/source/inc/autocdlg.hxx
@@ -20,12 +20,13 @@
#include <sfx2/tabdlg.hxx>
#include <svx/langbox.hxx>
+#include <unotools/collatorwrapper.hxx>
#include <map>
#include <set>
+#include <utility>
class CharClass;
-class CollatorWrapper;
class SmartTagMgr;
namespace editeng { class SortedAutoCompleteStrings; }
@@ -56,6 +57,7 @@ private:
OUString m_sStartCap;
OUString m_sBoldUnderline;
OUString m_sURL;
+ OUString m_sDOI;
OUString m_sNoDblSpaces;
OUString m_sDash;
OUString m_sAccidentalCaps;
@@ -91,9 +93,11 @@ class OfaSwAutoFmtOptionsPage : public SfxTabPage
OUString sNoDblSpaces;
OUString sCorrectCapsLock;
OUString sDetectURL;
+ OUString sDetectDOI;
OUString sDash;
OUString sRightMargin;
OUString sNum;
+ OUString sBulletsAfterSpace;
OUString sBorder;
OUString sTable;
OUString sReplaceTemplates;
@@ -135,9 +139,9 @@ struct DoubleString
OUString sShort;
OUString sLong;
void* pUserData; ///< CheckBox -> form. Text Bool -> selection text
- DoubleString(const OUString& rShort, const OUString& rLong)
- : sShort(rShort)
- , sLong(rLong)
+ DoubleString(OUString aShort, OUString aLong)
+ : sShort(std::move(aShort))
+ , sLong(std::move(aLong))
, pUserData(nullptr)
{
}
@@ -165,7 +169,7 @@ private:
std::set<OUString> aFormatText;
std::map<LanguageType, DoubleStringArray>
aDoubleStringTable;
- std::unique_ptr<CollatorWrapper> pCompareClass;
+ CollatorWrapper maCompareClass;
std::unique_ptr<CharClass> pCharClass;
LanguageType eLang;
@@ -226,7 +230,7 @@ class OfaAutocorrExceptPage : public SfxTabPage
{
private:
StringsTable aStringsTable;
- std::unique_ptr<CollatorWrapper> pCompareClass;
+ CollatorWrapper maCompareClass;
LanguageType eLang;
std::unique_ptr<weld::Entry> m_xAbbrevED;
diff --git a/cui/source/inc/backgrnd.hxx b/cui/source/inc/backgrnd.hxx
index 450fbdaaa27f..3d50d69e95f4 100644
--- a/cui/source/inc/backgrnd.hxx
+++ b/cui/source/inc/backgrnd.hxx
@@ -37,23 +37,28 @@ class SvxBrushItem;
class SvxBkgTabPage : public SvxAreaTabPage
{
- static const WhichRangesContainer pPageRanges;
+ static const WhichRangesContainer pBkgRanges;
std::unique_ptr<weld::ComboBox> m_xTblLBox;
- bool bHighlighting : 1;
- bool bCharBackColor : 1;
- SfxItemSet maSet;
- std::unique_ptr<SfxItemSet> m_pResetSet;
+ bool m_bHighlighting = false;
+ bool m_bCharBackColor = false;
+
+ // m_aAttrSet is used to convert between SvxBrushItem and XFILL item attributes and also to
+ // allow for cell, row, and table backgrounds to be set in one Table dialog opening.
+ SfxItemSet m_aAttrSet;
sal_Int32 m_nActPos = -1;
DECL_LINK(TblDestinationHdl_Impl, weld::ComboBox&, void);
+
+ void SetActiveTableDestinationBrushItem();
+
public:
SvxBkgTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs);
virtual ~SvxBkgTabPage() override;
// returns the area of the which-values
- static WhichRangesContainer GetRanges() { return pPageRanges; }
+ static WhichRangesContainer GetRanges() { return pBkgRanges; }
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* );
virtual bool FillItemSet( SfxItemSet* ) override;
diff --git a/cui/source/inc/bbdlg.hxx b/cui/source/inc/bbdlg.hxx
index 1c7a289723a6..c18b5b3da4e6 100644
--- a/cui/source/inc/bbdlg.hxx
+++ b/cui/source/inc/bbdlg.hxx
@@ -32,7 +32,7 @@ public:
bool bEnableSelector,
bool bEnableDrawingLayerFillStyles);
protected:
- virtual void PageCreated(const OString& rPageId, SfxTabPage& rTabPage) override;
+ virtual void PageCreated(const OUString& rPageId, SfxTabPage& rTabPage) override;
private:
bool mbEnableBackgroundSelector : 1; ///< for Border/Background
diff --git a/cui/source/inc/border.hxx b/cui/source/inc/border.hxx
index 2a3d14ed5062..accb555930dc 100644
--- a/cui/source/inc/border.hxx
+++ b/cui/source/inc/border.hxx
@@ -77,7 +77,6 @@ private:
class SvxBorderTabPage : public SfxTabPage
{
static const WhichRangesContainer pRanges;
- static const std::vector<int> m_aLineWidths;
public:
SvxBorderTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs);
@@ -178,7 +177,7 @@ private:
void FillPresetVS();
void FillShadowVS();
void FillValueSets();
- void SetLineWidth(sal_Int64 nWidth);
+ void SetLineWidth(sal_Int64 nWidth, sal_Int32 nRemovedType = 0);
// Filler
void FillLineListBox_Impl();
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index 361e801d723c..1ae5b23a2999 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -40,23 +40,24 @@
#include "cfgutil.hxx"
#include "CommandCategoryListBox.hxx"
-inline constexpr OUStringLiteral notebookbarTabScope = u"notebookbarTabScope";
+inline constexpr OUString notebookbarTabScope = u"notebookbarTabScope"_ustr;
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_COMMANDURL = u"CommandURL";
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_CONTAINER = u"ItemDescriptorContainer";
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_LABEL = u"Label";
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_TYPE = u"Type";
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_STYLE = u"Style";
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_ISVISIBLE = u"IsVisible";
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_RESOURCEURL = u"ResourceURL";
-inline constexpr OUStringLiteral ITEM_DESCRIPTOR_UINAME = u"UIName";
+inline constexpr OUString ITEM_DESCRIPTOR_COMMANDURL = u"CommandURL"_ustr;
+inline constexpr OUString ITEM_DESCRIPTOR_CONTAINER = u"ItemDescriptorContainer"_ustr;
+inline constexpr OUString ITEM_DESCRIPTOR_LABEL = u"Label"_ustr;
+inline constexpr OUString ITEM_DESCRIPTOR_TYPE = u"Type"_ustr;
+inline constexpr OUString ITEM_DESCRIPTOR_STYLE = u"Style"_ustr;
+inline constexpr OUString ITEM_DESCRIPTOR_ISVISIBLE = u"IsVisible"_ustr;
+inline constexpr OUString ITEM_DESCRIPTOR_RESOURCEURL = u"ResourceURL"_ustr;
+inline constexpr OUString ITEM_DESCRIPTOR_UINAME = u"UIName"_ustr;
-inline constexpr OUStringLiteral ITEM_MENUBAR_URL = u"private:resource/menubar/menubar";
-inline constexpr OUStringLiteral ITEM_TOOLBAR_URL = u"private:resource/toolbar/";
+inline constexpr OUString ITEM_MENUBAR_URL = u"private:resource/menubar/menubar"_ustr;
+inline constexpr OUString ITEM_TOOLBAR_URL = u"private:resource/toolbar/"_ustr;
+inline constexpr OUString ITEM_EVENT_URL = u"private:resource/event/"_ustr;
-inline constexpr OUStringLiteral CUSTOM_TOOLBAR_STR = u"custom_toolbar_";
+inline constexpr OUString CUSTOM_TOOLBAR_STR = u"custom_toolbar_"_ustr;
-inline constexpr OUStringLiteral aMenuSeparatorStr = u" | ";
+inline constexpr OUString aMenuSeparatorStr = u" | "_ustr;
class SvxConfigEntry;
class SvxConfigPage;
@@ -68,10 +69,12 @@ class SvxConfigDialog : public SfxTabDialogController
private:
css::uno::Reference< css::frame::XFrame > m_xFrame;
+ virtual void ActivatePage(const OUString& rPage) override;
+
public:
SvxConfigDialog(weld::Window*, const SfxItemSet*);
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
void SetFrame(const css::uno::Reference< css::frame::XFrame >& xFrame);
};
@@ -113,8 +116,8 @@ protected:
public:
SaveInData(
- const css::uno::Reference < css::ui::XUIConfigurationManager >& xCfgMgr,
- const css::uno::Reference < css::ui::XUIConfigurationManager >& xParentCfgMgr,
+ css::uno::Reference < css::ui::XUIConfigurationManager > xCfgMgr,
+ css::uno::Reference < css::ui::XUIConfigurationManager > xParentCfgMgr,
const OUString& aModuleId,
bool docConfig );
@@ -253,8 +256,8 @@ private:
public:
- SvxConfigEntry( const OUString& rDisplayName,
- const OUString& rCommandURL,
+ SvxConfigEntry( OUString aDisplayName,
+ OUString aCommandURL,
bool bPopup,
bool bParentData );
@@ -348,6 +351,7 @@ public:
}
DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
+ DECL_LINK(QueryTooltip, const weld::TreeIter& rIter, OUString);
void CreateDropDown();
};
@@ -408,12 +412,14 @@ protected:
std::unique_ptr<weld::ComboBox> m_xSaveInListBox;
+ std::unique_ptr<weld::Widget> m_xCustomizeBox;
std::unique_ptr<weld::MenuButton> m_xInsertBtn;
std::unique_ptr<weld::MenuButton> m_xModifyBtn;
// Used to reset the selected toolbar/menu/context menu
std::unique_ptr<weld::Button> m_xResetBtn;
// Middle buttons
+ std::unique_ptr<weld::Widget> m_xCommandButtons;
std::unique_ptr<weld::Button> m_xAddCommandButton;
std::unique_ptr<weld::Button> m_xRemoveCommandButton;
@@ -496,7 +502,7 @@ public:
SvxConfigEntry* GetTopLevelSelection()
{
- return reinterpret_cast<SvxConfigEntry*>(m_xTopLevelListBox->get_active_id().toInt64());
+ return weld::fromId<SvxConfigEntry*>(m_xTopLevelListBox->get_active_id());
}
/** identifies the module in the given frame. If the frame is <NULL/>, a default
@@ -599,7 +605,6 @@ class SvxNewToolbarDialog : public weld::GenericDialogController
{
private:
std::unique_ptr<weld::Entry> m_xEdtName;
- std::unique_ptr<weld::Button> m_xBtnOK;
public:
std::unique_ptr<weld::ComboBox> m_xSaveInListBox;
@@ -647,8 +652,8 @@ public:
SvxIconSelectorDialog(
weld::Window *pWindow,
- const css::uno::Reference< css::ui::XImageManager >& rXImageManager,
- const css::uno::Reference< css::ui::XImageManager >& rXParentImageManager);
+ css::uno::Reference< css::ui::XImageManager > xImageManager,
+ css::uno::Reference< css::ui::XImageManager > xParentImageManager);
virtual ~SvxIconSelectorDialog() override;
diff --git a/cui/source/inc/cfgutil.hxx b/cui/source/inc/cfgutil.hxx
index 8040b90afa8f..b1f22e4065b9 100644
--- a/cui/source/inc/cfgutil.hxx
+++ b/cui/source/inc/cfgutil.hxx
@@ -204,7 +204,7 @@ class CuiConfigGroupListBox
css::uno::Reference< css::uno::XComponentContext > const & xCtx,
std::u16string_view docName);
- void InitModule();
+ sal_Int32 InitModule();
void FillScriptList(const css::uno::Reference< css::script::browse::XBrowseNode >& xRootNode,
const weld::TreeIter* pParentEntry);
void FillFunctionsList(const css::uno::Sequence< css::frame::DispatchInformation >& xCommands);
@@ -230,7 +230,6 @@ public:
void GroupSelected();
#if HAVE_FEATURE_SCRIPTING
void SelectMacro(const SfxMacroInfoItem*);
- void SelectMacro(std::u16string_view, const OUString&);
#endif
void SetStylesInfo(SfxStylesInfo_Impl* pStyles);
};
@@ -264,6 +263,8 @@ public:
OUString GetScriptURL() const;
void SetRunLabel();
+ void SaveLastUsedMacro();
+ void LoadLastUsedMacro();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx
index be4db989b57d..b484c7419b83 100644
--- a/cui/source/inc/chardlg.hxx
+++ b/cui/source/inc/chardlg.hxx
@@ -39,7 +39,7 @@ protected:
bool m_bPreviewBackgroundToCharacter;
- SvxCharBasePage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rID, const SfxItemSet& rAttrSet);
+ SvxCharBasePage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rID, const SfxItemSet& rAttrSet);
void SetPrevFontWidthScale( const SfxItemSet& rSet );
void SetPrevFontEscapement( sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc );
@@ -65,7 +65,7 @@ private:
std::unique_ptr<SvxCharNamePage_Impl> m_pImpl;
- std::unique_ptr<weld::Widget> m_xWestFrame;
+ std::unique_ptr<weld::Notebook> m_xWestern;
std::unique_ptr<weld::Label> m_xWestFontNameFT;
std::unique_ptr<weld::ComboBox> m_xWestFontNameLB;
std::unique_ptr<weld::Label> m_xWestFontStyleFT;
@@ -74,10 +74,10 @@ private:
std::unique_ptr<FontSizeBox> m_xWestFontSizeLB;
std::unique_ptr<weld::Label> m_xWestFontLanguageFT;
std::unique_ptr<SvxLanguageBox> m_xWestFontLanguageLB;
- std::unique_ptr<weld::Label> m_xWestFontTypeFT;
std::unique_ptr<weld::Button> m_xWestFontFeaturesButton;
+ std::unique_ptr<weld::Label> m_xWestFontTypeFT;
- std::unique_ptr<weld::Widget> m_xEastFrame;
+ std::unique_ptr<weld::Notebook> m_xCJK_CTL;
std::unique_ptr<weld::Label> m_xEastFontNameFT;
std::unique_ptr<weld::ComboBox> m_xEastFontNameLB;
std::unique_ptr<weld::Label> m_xEastFontStyleFT;
@@ -86,10 +86,9 @@ private:
std::unique_ptr<FontSizeBox> m_xEastFontSizeLB;
std::unique_ptr<weld::Label> m_xEastFontLanguageFT;
std::unique_ptr<SvxLanguageBox> m_xEastFontLanguageLB;
- std::unique_ptr<weld::Label> m_xEastFontTypeFT;
std::unique_ptr<weld::Button> m_xEastFontFeaturesButton;
+ std::unique_ptr<weld::Label> m_xEastFontTypeFT;
- std::unique_ptr<weld::Widget> m_xCTLFrame;
std::unique_ptr<weld::Label> m_xCTLFontNameFT;
std::unique_ptr<weld::ComboBox> m_xCTLFontNameLB;
std::unique_ptr<weld::Label> m_xCTLFontStyleFT;
@@ -98,8 +97,8 @@ private:
std::unique_ptr<FontSizeBox> m_xCTLFontSizeLB;
std::unique_ptr<weld::Label> m_xCTLFontLanguageFT;
std::unique_ptr<SvxLanguageBox> m_xCTLFontLanguageLB;
- std::unique_ptr<weld::Label> m_xCTLFontTypeFT;
std::unique_ptr<weld::Button> m_xCTLFontFeaturesButton;
+ std::unique_ptr<weld::Label> m_xCTLFontTypeFT;
//for getting FontFeatures
ScopedVclPtrInstance<VirtualDevice> m_xVDev;
@@ -168,7 +167,6 @@ private:
bool m_bNewFontColor;
bool m_bEnableNoneFontColor;
Color m_aOrigFontColor;
- sal_uInt16 m_nHtmlMode;
weld::TriStateEnabled m_aOutlineState;
weld::TriStateEnabled m_aShadowState;
@@ -271,6 +269,7 @@ private:
std::unique_ptr<weld::MetricSpinButton> m_xKerningMF;
std::unique_ptr<weld::CheckButton> m_xPairKerningBtn;
+ std::unique_ptr<weld::CheckButton> m_xNoHyphenationBtn;
void Initialize();
void UpdatePreview_Impl( sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc );
diff --git a/cui/source/inc/connect.hxx b/cui/source/inc/connect.hxx
index 8b7119f0dcaf..73891d0ff8e6 100644
--- a/cui/source/inc/connect.hxx
+++ b/cui/source/inc/connect.hxx
@@ -55,6 +55,8 @@ private:
DECL_LINK(ChangeAttrEditHdl_Impl, weld::MetricSpinButton&, void);
DECL_LINK(ChangeAttrListBoxHdl_Impl, weld::ComboBox&, void);
+ template<class T>
+ void SetMetricValueAndSave(const SfxItemSet *rAttrs, weld::MetricSpinButton &rField, TypedWhichId<T> nWhich);
public:
SvxConnectionPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs);
diff --git a/cui/source/inc/cuifmsearch.hxx b/cui/source/inc/cuifmsearch.hxx
index 46284c6d8d4d..29484ef8f69c 100644
--- a/cui/source/inc/cuifmsearch.hxx
+++ b/cui/source/inc/cuifmsearch.hxx
@@ -133,7 +133,7 @@ public:
inline void SetActiveField(const OUString& strField);
private:
- void Init(const OUString& strVisibleFields, const OUString& strInitialText);
+ void Init(std::u16string_view strVisibleFields, const OUString& strInitialText);
// only to be used out of the constructors
void OnFound(const css::uno::Any& aCursorPos, sal_Int16 nFieldPos);
diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx
index 0850cd0bcb02..cac63d8a6b1e 100644
--- a/cui/source/inc/cuigaldlg.hxx
+++ b/cui/source/inc/cuigaldlg.hxx
@@ -39,7 +39,7 @@ class SearchProgress;
class TakeProgress;
class TPGalleryThemeProperties;
-typedef std::vector< sal_uLong > TokenList_impl;
+typedef std::vector< sal_Int32 > TokenList_impl;
struct FilterEntry
{
@@ -65,7 +65,7 @@ public:
SearchThread(SearchProgress* pProgress,
TPGalleryThemeProperties* pBrowser,
- const INetURLObject& rStartURL);
+ INetURLObject aStartURL);
};
class SearchProgress : public weld::GenericDialogController
@@ -81,7 +81,7 @@ private:
DECL_LINK(ClickCancelBtn, weld::Button&, void);
public:
- SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, const INetURLObject& rStartURL);
+ SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, INetURLObject aStartURL);
void LaunchThread();
virtual ~SearchProgress() override;
@@ -182,7 +182,7 @@ class GalleryThemeProperties : public SfxTabDialogController
{
ExchangeData* pData;
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
public:
GalleryThemeProperties(weld::Widget* pParent, ExchangeData* pData, SfxItemSet const * pItemSet);
@@ -268,7 +268,7 @@ public:
void SetXChgData( ExchangeData* pData );
const ExchangeData* GetXChgData() const { return pData; }
- void StartSearchFiles( const OUString& _rFolderURL, short _nDlgResult );
+ void StartSearchFiles( std::u16string_view _rFolderURL, short _nDlgResult );
static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet);
};
diff --git a/cui/source/inc/cuigrfflt.hxx b/cui/source/inc/cuigrfflt.hxx
index 122ac87724da..075c74c29f42 100644
--- a/cui/source/inc/cuigrfflt.hxx
+++ b/cui/source/inc/cuigrfflt.hxx
@@ -79,7 +79,7 @@ protected:
public:
- GraphicFilterDialog(weld::Window* pParent, const OUString& rUIXMLDescription, const OString& rID, const Graphic& rGraphic);
+ GraphicFilterDialog(weld::Window* pParent, const OUString& rUIXMLDescription, const OUString& rID, const Graphic& rGraphic);
virtual Graphic GetFilteredGraphic(const Graphic& rGraphic, double fScaleX, double fScaleY) = 0;
};
diff --git a/cui/source/inc/cuihyperdlg.hxx b/cui/source/inc/cuihyperdlg.hxx
index b43361edfea1..8423d8c49759 100644
--- a/cui/source/inc/cuihyperdlg.hxx
+++ b/cui/source/inc/cuihyperdlg.hxx
@@ -67,7 +67,9 @@ private:
std::vector< std::unique_ptr<IconChoicePageData> > maPageList;
- OString msCurrentPageId;
+ OUString msCurrentPageId;
+ // tdf#90496 - remember last used view in hyperlink dialog
+ static OUString msRememberedPageId;
const SfxItemSet* pSet;
std::unique_ptr<SfxItemSet> pOutSet;
@@ -87,17 +89,17 @@ private:
std::unique_ptr<weld::Button> m_xHelpBtn;
std::unique_ptr<weld::Button> m_xResetBtn;
- DECL_LINK( ChosePageHdl_Impl, const OString&, void );
+ DECL_LINK( ChosePageHdl_Impl, const OUString&, void );
- IconChoicePageData* GetPageData ( std::string_view rId );
+ IconChoicePageData* GetPageData ( std::u16string_view rId );
- void SwitchPage( const OString& rId );
+ void SwitchPage( const OUString& rId );
DECL_LINK( ResetHdl, weld::Button&, void) ;
DECL_LINK (ClickOkHdl_Impl, weld::Button&, void );
DECL_LINK (ClickApplyHdl_Impl, weld::Button&, void );
- IconChoicePage* GetTabPage( std::string_view rPageId )
+ IconChoicePage* GetTabPage( std::u16string_view rPageId )
{ return GetPageData(rPageId)->xPage.get(); }
void ActivatePageImpl ();
@@ -113,11 +115,11 @@ public:
virtual ~SvxHpLinkDlg () override;
// interface
- void AddTabPage(const OString &rId, CreatePage pCreateFunc /* != NULL */);
+ void AddTabPage(const OUString &rId, CreatePage pCreateFunc /* != NULL */);
- void SetCurPageId( const OString& rId ) { msCurrentPageId = rId; SwitchPage(rId ); }
- const OString & GetCurPageId() const { return msCurrentPageId; }
- void ShowPage( const OString& rId );
+ void SetCurPageId( const OUString& rId ) { msCurrentPageId = rId; SwitchPage(rId ); }
+ const OUString& GetCurPageId() const { return msCurrentPageId; }
+ void ShowPage( const OUString& rId );
/// gives via map converted local slots if applicable
WhichRangesContainer GetInputRanges( const SfxItemPool& );
diff --git a/cui/source/inc/cuioptgenrl.hxx b/cui/source/inc/cuioptgenrl.hxx
index 42cdbbec3aa9..0ee8cacb6c50 100644
--- a/cui/source/inc/cuioptgenrl.hxx
+++ b/cui/source/inc/cuioptgenrl.hxx
@@ -32,10 +32,16 @@ class SvxGeneralTabPage : public SfxTabPage
private:
// the "Use data for document properties" checkbox
std::unique_ptr<weld::CheckButton> m_xUseDataCB;
+ std::unique_ptr<weld::Widget> m_xUseDataImg;
std::unique_ptr<weld::Widget> m_xCryptoFrame;
std::unique_ptr<weld::ComboBox> m_xSigningKeyLB;
+ std::unique_ptr<weld::Label> m_xSigningKeyFT;
+ std::unique_ptr<weld::Widget> m_xSigningKeyImg;
std::unique_ptr<weld::ComboBox> m_xEncryptionKeyLB;
+ std::unique_ptr<weld::Label> m_xEncryptionKeyFT;
+ std::unique_ptr<weld::Widget> m_xEncryptionKeyImg;
std::unique_ptr<weld::CheckButton> m_xEncryptToSelfCB;
+ std::unique_ptr<weld::Widget> m_xEncryptToSelfImg;
// rows
struct Row;
std::vector<std::shared_ptr<Row> > vRows;
@@ -64,6 +70,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index b5af2475a218..3e810c5b0dbe 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -108,14 +108,15 @@ class SvxAreaTabDialog final : public SfxTabDialogController
ChangeType mnGradientListState;
ChangeType mnHatchingListState;
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
virtual short Ok() override;
DECL_LINK(CancelHdlImpl, weld::Button&, void);
void SavePalettes();
public:
- SvxAreaTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, bool bShadow);
+ SvxAreaTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, bool bShadow,
+ bool bSlideBackground);
void SetNewColorList( XColorListRef const & pColorList )
{ mpNewColorList = pColorList; }
@@ -168,6 +169,9 @@ class SvxTransparenceTabPage : public SfxTabPage
std::unique_ptr<weld::CustomWeld> m_xCtlBitmapPreview;
std::unique_ptr<weld::CustomWeld> m_xCtlXRectPreview;
+ // MCGR: Preserve ColorStops until we have a UI to edit these
+ basegfx::BColorStops maColorStops;
+
DECL_LINK(ClickTransOffHdl_Impl, weld::Toggleable&, void);
DECL_LINK(ClickTransLinearHdl_Impl, weld::Toggleable&, void);
DECL_LINK(ClickTransGradientHdl_Impl, weld::Toggleable&, void );
@@ -183,6 +187,9 @@ class SvxTransparenceTabPage : public SfxTabPage
bool InitPreview ( const SfxItemSet& rSet );
void InvalidatePreview (bool bEnable = true );
+ // MCGR: Preserve ColorStops until we have a UI to edit these
+ basegfx::BColorStops createColorStops();
+
public:
SvxTransparenceTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs);
virtual ~SvxTransparenceTabPage() override;
@@ -241,11 +248,11 @@ protected:
std::unique_ptr<weld::Toggleable> m_xBtnHatch;
std::unique_ptr<weld::Toggleable> m_xBtnBitmap;
std::unique_ptr<weld::Toggleable> m_xBtnPattern;
+ std::unique_ptr<weld::Toggleable> m_xBtnUseBackground;
void SetOptimalSize(weld::DialogController* pController);
void SelectFillType( weld::Toggleable& rButton, const SfxItemSet* _pSet = nullptr );
- SfxTabPage* GetFillTabPage() { return m_xFillTabPage.get(); }
bool IsBtnClicked() const { return m_bBtnClicked; }
@@ -260,12 +267,18 @@ private:
DeactivateRC DeactivatePage_Impl( SfxItemSet* pSet );
public:
- SvxAreaTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs);
+ SvxAreaTabPage(weld::Container* pPage, weld::DialogController* pController,
+ const SfxItemSet& rInAttrs, bool bSlideBackground = false);
virtual ~SvxAreaTabPage() override;
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* );
+ static std::unique_ptr<SfxTabPage>
+ CreateWithSlideBackground(weld::Container* pPage, weld::DialogController* pController,
+ const SfxItemSet*);
static WhichRangesContainer GetRanges() { return pAreaRanges; }
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* ) override;
virtual void Reset( const SfxItemSet * ) override;
virtual void ActivatePage( const SfxItemSet& rSet ) override;
@@ -279,7 +292,7 @@ public:
void SetBitmapList( XBitmapListRef const & pBmpLst) { m_pBitmapList = pBmpLst; }
void SetPatternList( XPatternListRef const &pPtrnLst ) { m_pPatternList = pPtrnLst; }
virtual void PageCreated(const SfxAllItemSet& aSet) override;
- void CreatePage(sal_Int32 nId, SfxTabPage* pTab);
+ void CreatePage(sal_Int32 nId, SfxTabPage& rTab);
void SetColorChgd( ChangeType* pIn ) { m_pnColorListState = pIn; }
void SetGrdChgd( ChangeType* pIn ) { m_pnGradientListState = pIn; }
void SetHtchChgd( ChangeType* pIn ) { m_pnHatchingListState = pIn; }
@@ -355,6 +368,9 @@ private:
XFillAttrSetItem m_aXFillAttr;
SfxItemSet& m_rXFSet;
+ // MCGR: Preserve ColorStops until we have a UI to edit these
+ basegfx::BColorStops m_aColorStops;
+
SvxXRectPreview m_aCtlPreview;
std::unique_ptr<weld::ComboBox> m_xLbGradientType;
std::unique_ptr<weld::Label> m_xFtCenter;
@@ -394,6 +410,9 @@ private:
void SetControlState_Impl( css::awt::GradientStyle eXGS );
sal_Int32 SearchGradientList(std::u16string_view rGradientName);
+ // MCGR: Preserve ColorStops until we have a UI to edit these
+ basegfx::BColorStops createColorStops();
+
public:
SvxGradientTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs);
virtual ~SvxGradientTabPage() override;
@@ -639,10 +658,8 @@ private:
ColorModel eCM;
- Color aPreviousColor;
- Color aCurrentColor;
-
- css::uno::Reference< css::uno::XComponentContext > m_context;
+ Color m_aPreviousColor;
+ NamedColor m_aCurrentColor;
PaletteManager maPaletteManager;
SvxXRectPreview m_aCtlPreviewOld;
@@ -698,7 +715,7 @@ private:
DECL_LINK(SelectPaletteLBHdl, weld::ComboBox&, void);
DECL_LINK( SelectValSetHdl_Impl, ValueSet*, void );
DECL_LINK( SelectColorModeHdl_Impl, weld::Toggleable&, void );
- void ChangeColor(const Color &rNewColor, bool bUpdatePreset = true);
+ void ChangeColor(const NamedColor &rNewColor, bool bUpdatePreset = true);
void SetColorModel(ColorModel eModel);
void ChangeColorModel();
void UpdateColorValues( bool bUpdatePreset = true );
@@ -730,8 +747,6 @@ public:
void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; }
- void SetCtlPreviewOld( const SfxItemSet& rAttrs ) { m_aCtlPreviewOld.SetAttributes( rAttrs ); }
-
virtual void FillUserData() override;
};
diff --git a/cui/source/inc/cuitabline.hxx b/cui/source/inc/cuitabline.hxx
index 704852b187fe..1122a2017f00 100644
--- a/cui/source/inc/cuitabline.hxx
+++ b/cui/source/inc/cuitabline.hxx
@@ -54,7 +54,7 @@ class SvxLineTabDialog final : public SfxTabDialogController
sal_Int32 nPosDashLb;
sal_Int32 nPosLineEndLb;
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
virtual short Ok() override;
DECL_LINK(CancelHdlImpl, weld::Button&, void);
@@ -96,7 +96,7 @@ private:
bool m_bNewSize;
/// a graphic to be displayed in the preview in case that an automatic symbol is chosen
Graphic m_aAutoSymbolGraphic;
- tools::Long m_nSymbolType;
+ sal_Int32 m_nSymbolType;
/// attributes for the shown symbols; only necessary if not equal to line properties
std::unique_ptr<SfxItemSet> m_xSymbolAttr;
@@ -170,7 +170,7 @@ private:
std::unique_ptr<weld::CheckButton> m_xSymbolRatioCB;
// handler for gallery popup menu button + size
- DECL_LINK(GraphicHdl_Impl, const OString&, void);
+ DECL_LINK(GraphicHdl_Impl, const OUString&, void);
DECL_LINK(SizeHdl_Impl, weld::MetricSpinButton&, void);
DECL_LINK(MenuCreateHdl_Impl, weld::Toggleable&, void);
DECL_LINK(RatioHdl_Impl, weld::Toggleable&, void);
diff --git a/cui/source/inc/dbregister.hxx b/cui/source/inc/dbregister.hxx
index 3e8b592228bb..3b26e5190cb0 100644
--- a/cui/source/inc/dbregister.hxx
+++ b/cui/source/inc/dbregister.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <rtl/ustring.hxx>
+#include <tools/solar.h>
#include <sfx2/basedlgs.hxx>
#include <sfx2/tabdlg.hxx>
@@ -29,7 +30,7 @@ namespace svx
class DbRegistrationOptionsPage : public SfxTabPage
{
private:
- sal_uLong m_nOldCount;
+ size_t m_nOldCount;
bool m_bModified;
std::unique_ptr<weld::Button> m_xNew;
@@ -72,6 +73,8 @@ namespace svx
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
virtual void FillUserData() override;
@@ -88,7 +91,7 @@ namespace svx
SfxItemSet m_aRegistrationItems;
protected:
- RegistrationItemSetHolder( const SfxItemSet& _rMasterSet );
+ RegistrationItemSetHolder( SfxItemSet _aMasterSet );
~RegistrationItemSetHolder();
protected:
diff --git a/cui/source/inc/grfpage.hxx b/cui/source/inc/grfpage.hxx
index 35653eaf6ade..673062b7593a 100644
--- a/cui/source/inc/grfpage.hxx
+++ b/cui/source/inc/grfpage.hxx
@@ -49,13 +49,14 @@ class SvxGrfCropPage : public SfxTabPage
{
friend class VclPtr<SvxGrfCropPage>;
- OUString aGraphicName;
- Size aOrigSize;
- Size aOrigPixelSize;
- Size aPageSize;
- tools::Long nOldWidth;
- tools::Long nOldHeight;
- bool bSetOrigSize;
+ OUString m_aGraphicName;
+ Size m_aOrigSize;
+ Size m_aOrigPixelSize;
+ Size m_aPageSize;
+ tools::Long m_nOldWidth;
+ tools::Long m_nOldHeight;
+ bool m_bSetOrigSize;
+ sal_Int32 m_aPreferredDPI;
SvxCropExample m_aExampleWN;
@@ -79,6 +80,8 @@ class SvxGrfCropPage : public SfxTabPage
std::unique_ptr<weld::Label> m_xOrigSizeFT;
std::unique_ptr<weld::Button> m_xOrigSizePB;
+ std::unique_ptr<weld::Button> m_xUncropPB;
+
// Example
std::unique_ptr<weld::CustomWeld> m_xExampleWN;
@@ -86,13 +89,14 @@ class SvxGrfCropPage : public SfxTabPage
DECL_LINK(SizeHdl, weld::MetricSpinButton&, void);
DECL_LINK(CropModifyHdl, weld::MetricSpinButton&, void);
DECL_LINK(OrigSizeHdl, weld::Button&, void);
+ DECL_LINK(UncropHdl, weld::Button&, void);
void CalcZoom();
void CalcMinMaxBorder();
void GraphicHasChanged(bool bFound);
virtual void ActivatePage(const SfxItemSet& rSet) override;
- static Size GetGrfOrigSize(const Graphic&);
+ Size GetGrfOrigSize(const Graphic& rGraphic);
public:
SvxGrfCropPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rSet);
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet *rSet );
diff --git a/cui/source/inc/helpids.h b/cui/source/inc/helpids.h
index 2ac2fbd0b02c..8f9af7fd9570 100644
--- a/cui/source/inc/helpids.h
+++ b/cui/source/inc/helpids.h
@@ -18,33 +18,35 @@
*/
#pragma once
-inline constexpr OStringLiteral HID_OPTIONS_COLORCONFIG_SAVE_SCHEME
- = "CUI_HID_OPTIONS_COLORCONFIG_SAVE_SCHEME";
-inline constexpr OStringLiteral HID_OFA_FONT_SUBST_CLB = "CUI_HID_OFA_FONT_SUBST_CLB";
-inline constexpr OStringLiteral HID_DBPATH_CTL_PATH = "CUI_HID_DBPATH_CTL_PATH";
+#include <rtl/ustring.hxx>
+
+inline constexpr OUString HID_OPTIONS_COLORCONFIG_SAVE_SCHEME
+ = u"CUI_HID_OPTIONS_COLORCONFIG_SAVE_SCHEME"_ustr;
+inline constexpr OUString HID_OFA_FONT_SUBST_CLB = u"CUI_HID_OFA_FONT_SUBST_CLB"_ustr;
+inline constexpr OUString HID_DBPATH_CTL_PATH = u"CUI_HID_DBPATH_CTL_PATH"_ustr;
#define HID_DBPATH_HEADERBAR "CUI_HID_DBPATH_HEADERBAR"
-inline constexpr OStringLiteral HID_OFADLG_TREELISTBOX = "CUI_HID_OFADLG_TREELISTBOX";
-inline constexpr OStringLiteral HID_SVX_CONFIG_TOOLBAR = "CUI_HID_SVX_CONFIG_TOOLBAR";
-inline constexpr OStringLiteral HID_SVX_CONFIG_TOOLBAR_CONTENTS
- = "CUI_HID_SVX_CONFIG_TOOLBAR_CONTENTS";
-inline constexpr OStringLiteral HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS
- = "CUI_HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS";
-inline constexpr OStringLiteral HID_HANGULDLG_SUGGESTIONS_GRID
- = "CUI_HID_HANGULDLG_SUGGESTIONS_GRID";
-inline constexpr OStringLiteral HID_HANGULDLG_SUGGESTIONS_LIST
- = "CUI_HID_HANGULDLG_SUGGESTIONS_LIST";
-inline constexpr OStringLiteral HID_SVX_CONFIG_NAME_SUBMENU = "CUI_HID_SVX_CONFIG_NAME_SUBMENU";
-inline constexpr OStringLiteral HID_SVX_CONFIG_RENAME_MENU = "CUI_HID_SVX_CONFIG_RENAME_MENU";
-inline constexpr OStringLiteral HID_SVX_CONFIG_RENAME_MENU_ITEM
- = "CUI_HID_SVX_CONFIG_RENAME_MENU_ITEM";
-inline constexpr OStringLiteral HID_SVX_CONFIG_RENAME_TOOLBAR = "CUI_HID_SVX_CONFIG_RENAME_TOOLBAR";
-inline constexpr OStringLiteral HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM
- = "CUI_HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM";
-inline constexpr OStringLiteral HID_SVX_UP_TOOLBAR_ITEM = "CUI_HID_SVX_UP_TOOLBAR_ITEM";
-inline constexpr OStringLiteral HID_SVX_DOWN_TOOLBAR_ITEM = "CUI_HID_SVX_DOWN_TOOLBAR_ITEM";
-inline constexpr OStringLiteral HID_SVX_SAVE_IN = "CUI_HID_SVX_SAVE_IN";
-inline constexpr OStringLiteral HID_SVX_TOPLEVELLISTBOX = "CUI_HID_SVX_TOPLEVELLISTBOX";
-inline constexpr OStringLiteral HID_SVX_DESCFIELD = "CUI_HID_SVX_DESCFIELD";
-inline constexpr OStringLiteral HID_MACRO_HEADERTABLISTBOX = "CUI_HID_MACRO_HEADERTABLISTBOX";
+inline constexpr OUString HID_OFADLG_TREELISTBOX = u"CUI_HID_OFADLG_TREELISTBOX"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_TOOLBAR = u"CUI_HID_SVX_CONFIG_TOOLBAR"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_TOOLBAR_CONTENTS
+ = u"CUI_HID_SVX_CONFIG_TOOLBAR_CONTENTS"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS
+ = u"CUI_HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS"_ustr;
+inline constexpr OUString HID_HANGULDLG_SUGGESTIONS_GRID
+ = u"CUI_HID_HANGULDLG_SUGGESTIONS_GRID"_ustr;
+inline constexpr OUString HID_HANGULDLG_SUGGESTIONS_LIST
+ = u"CUI_HID_HANGULDLG_SUGGESTIONS_LIST"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_NAME_SUBMENU = u"CUI_HID_SVX_CONFIG_NAME_SUBMENU"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_RENAME_MENU = u"CUI_HID_SVX_CONFIG_RENAME_MENU"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_RENAME_MENU_ITEM
+ = u"CUI_HID_SVX_CONFIG_RENAME_MENU_ITEM"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_RENAME_TOOLBAR = u"CUI_HID_SVX_CONFIG_RENAME_TOOLBAR"_ustr;
+inline constexpr OUString HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM
+ = u"CUI_HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM"_ustr;
+inline constexpr OUString HID_SVX_UP_TOOLBAR_ITEM = u"CUI_HID_SVX_UP_TOOLBAR_ITEM"_ustr;
+inline constexpr OUString HID_SVX_DOWN_TOOLBAR_ITEM = u"CUI_HID_SVX_DOWN_TOOLBAR_ITEM"_ustr;
+inline constexpr OUString HID_SVX_SAVE_IN = u"CUI_HID_SVX_SAVE_IN"_ustr;
+inline constexpr OUString HID_SVX_TOPLEVELLISTBOX = u"CUI_HID_SVX_TOPLEVELLISTBOX"_ustr;
+inline constexpr OUString HID_SVX_DESCFIELD = u"CUI_HID_SVX_DESCFIELD"_ustr;
+inline constexpr OUString HID_MACRO_HEADERTABLISTBOX = u"CUI_HID_MACRO_HEADERTABLISTBOX"_ustr;
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/hldocntp.hxx b/cui/source/inc/hldocntp.hxx
index 95a11dd9f1fc..68bce1650a00 100644
--- a/cui/source/inc/hldocntp.hxx
+++ b/cui/source/inc/hldocntp.hxx
@@ -34,7 +34,7 @@ private:
std::unique_ptr<weld::Button> m_xBtCreate;
std::unique_ptr<weld::TreeView> m_xLbDocTypes;
- bool ImplGetURLObject( const OUString& rPath, const OUString& rBase, INetURLObject& aURLObject ) const;
+ bool ImplGetURLObject( const OUString& rPath, std::u16string_view rBase, INetURLObject& aURLObject ) const;
void FillDocumentList ();
DECL_LINK (ClickNewHdl_Impl, weld::Button&, void );
@@ -42,7 +42,7 @@ private:
protected:
void FillDlgFields(const OUString& rStrURL) override;
- void GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+ void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode ) override;
@@ -52,7 +52,6 @@ public:
static std::unique_ptr<IconChoicePage> Create(weld::Container* pWindow, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet);
- virtual bool AskApply () override;
virtual void DoApply () override;
virtual void SetInitFocus() override;
diff --git a/cui/source/inc/hldoctp.hxx b/cui/source/inc/hldoctp.hxx
index 73f6218eabc5..61005a42d635 100644
--- a/cui/source/inc/hldoctp.hxx
+++ b/cui/source/inc/hldoctp.hxx
@@ -49,10 +49,10 @@ private:
DECL_LINK( TimeoutHdl_Impl, Timer *, void ); ///< Handler for timer -timeout
enum class EPathType { Invalid, ExistsFile };
- static EPathType GetPathType ( const OUString& rStrPath );
+ static EPathType GetPathType ( std::u16string_view rStrPath );
void FillDlgFields(const OUString& rStrURL) override;
- void GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+ void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode ) override;
virtual bool ShouldOpenMarkWnd () override {return m_bMarkWndOpen;}
diff --git a/cui/source/inc/hlinettp.hxx b/cui/source/inc/hlinettp.hxx
index c2340fdde2f7..366d8243a8b6 100644
--- a/cui/source/inc/hlinettp.hxx
+++ b/cui/source/inc/hlinettp.hxx
@@ -34,24 +34,11 @@
class SvxHyperlinkInternetTp : public SvxHyperlinkTabPageBase
{
private:
- OUString maStrOldUser;
- OUString maStrOldPassword;
-
bool m_bMarkWndOpen;
- std::unique_ptr<weld::RadioButton> m_xRbtLinktypInternet;
- std::unique_ptr<weld::RadioButton> m_xRbtLinktypFTP;
std::unique_ptr<SvxHyperURLBox> m_xCbbTarget;
std::unique_ptr<weld::Label> m_xFtTarget;
- std::unique_ptr<weld::Label> m_xFtLogin;
- std::unique_ptr<weld::Entry> m_xEdLogin;
- std::unique_ptr<weld::Label> m_xFtPassword;
- std::unique_ptr<weld::Entry> m_xEdPassword;
- std::unique_ptr<weld::CheckButton> m_xCbAnonymous;
-
- DECL_LINK( Click_SmartProtocol_Impl, weld::Toggleable&, void ); ///< Radiobutton toggled: Type HTTP or FTP
- DECL_LINK( ClickAnonymousHdl_Impl, weld::Toggleable&, void ); ///< Checkbox : Anonymous User
- DECL_LINK( ModifiedLoginHdl_Impl, weld::Entry&, void ); ///< Contents of editfield "Login" modified
+
DECL_LINK( LostFocusTargetHdl_Impl, weld::Widget&, void ); ///< Combobox "Target" lost its focus
DECL_LINK( ModifiedTargetHdl_Impl, weld::ComboBox&, void ); ///< Contents of editfield "Target" modified
@@ -60,21 +47,18 @@ private:
void SetScheme(std::u16string_view rScheme);
void RemoveImproperProtocol(std::u16string_view rProperScheme);
- OUString GetSchemeFromButtons() const;
- INetProtocol GetSmartProtocolFromButtons() const;
+ static INetProtocol GetSmartProtocolFromButtons();
OUString CreateAbsoluteURL() const;
- void setAnonymousFTPUser();
- void setFTPUser(const OUString& rUser, const OUString& rPassword);
void RefreshMarkWindow();
protected:
virtual void FillDlgFields(const OUString& rStrURL) override;
- virtual void GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+ virtual void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode ) override;
- virtual bool ShouldOpenMarkWnd () override {return ( m_bMarkWndOpen && m_xRbtLinktypInternet->get_active() );}
+ virtual bool ShouldOpenMarkWnd () override { return false; }
virtual void SetMarkWndShouldOpen (bool bOpen) override {m_bMarkWndOpen=bOpen;}
public:
diff --git a/cui/source/inc/hlmailtp.hxx b/cui/source/inc/hlmailtp.hxx
index 8b8bc39d88cb..b7c76c52cb18 100644
--- a/cui/source/inc/hlmailtp.hxx
+++ b/cui/source/inc/hlmailtp.hxx
@@ -31,7 +31,6 @@ class SvxHyperlinkMailTp : public SvxHyperlinkTabPageBase
private:
std::unique_ptr<SvxHyperURLBox> m_xCbbReceiver;
std::unique_ptr<weld::Button> m_xBtAdrBook;
- std::unique_ptr<weld::Label> m_xFtSubject;
std::unique_ptr<weld::Entry> m_xEdSubject;
DECL_STATIC_LINK(SvxHyperlinkMailTp, ClickAdrBookHdl_Impl, weld::Button&, void);
@@ -45,7 +44,7 @@ private:
protected:
virtual void FillDlgFields(const OUString& rStrURL) override;
- virtual void GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+ virtual void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode ) override;
diff --git a/cui/source/inc/hltpbase.hxx b/cui/source/inc/hltpbase.hxx
index 2ad0007c83cb..acb84198ad25 100644
--- a/cui/source/inc/hltpbase.hxx
+++ b/cui/source/inc/hltpbase.hxx
@@ -75,7 +75,7 @@ protected:
void InitStdControls ();
void FillStandardDlgFields ( const SvxHyperlinkItem* pHyperlinkItem );
virtual void FillDlgFields(const OUString& rStrURL) = 0;
- virtual void GetCurentItemData ( OUString& rStrURL, OUString& aStrName,
+ virtual void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName,
OUString& aStrIntName, OUString& aStrFrame,
SvxLinkInsertMode& eMode ) = 0;
@@ -94,7 +94,7 @@ public:
weld::Container* pParent,
SvxHpLinkDlg* pDlg,
const OUString& rUIXMLDescription,
- const OString& rID,
+ const OUString& rID,
const SfxItemSet* pItemSet
);
virtual ~SvxHyperlinkTabPageBase () override;
@@ -105,7 +105,6 @@ public:
mxDocumentFrame = rxDocumentFrame;
}
- virtual bool AskApply ();
virtual void DoApply ();
virtual void SetInitFocus();
virtual void SetMarkStr ( const OUString& aStrMark );
diff --git a/cui/source/inc/hyphen.hxx b/cui/source/inc/hyphen.hxx
index cb8104c70315..0b304e9439f9 100644
--- a/cui/source/inc/hyphen.hxx
+++ b/cui/source/inc/hyphen.hxx
@@ -71,7 +71,7 @@ class SvxHyphenWordDialog : public SfxDialogController
DECL_LINK(CursorChangeHdl_Impl, weld::Entry&, void);
public:
- SvxHyphenWordDialog(const OUString &rWord, LanguageType nLang,
+ SvxHyphenWordDialog(OUString aWord, LanguageType nLang,
weld::Widget* pParent,
css::uno::Reference<css::linguistic2::XHyphenator> const &xHyphen,
SvxSpellWrapper* pWrapper);
diff --git a/cui/source/inc/iconcdlg.hxx b/cui/source/inc/iconcdlg.hxx
index 5cf1ab54f6d7..e31aaa74e0db 100644
--- a/cui/source/inc/iconcdlg.hxx
+++ b/cui/source/inc/iconcdlg.hxx
@@ -20,6 +20,7 @@
#include <rtl/ustring.hxx>
#include <sfx2/tabdlg.hxx>
+#include <utility>
// forward-declarations
struct IconChoicePageData;
@@ -31,21 +32,6 @@ class SfxItemSet;
// Create-Function
typedef std::unique_ptr<IconChoicePage> (*CreatePage)(weld::Container* pParent, SvxHpLinkDlg* pDlg, const SfxItemSet* pAttrSet);
-/// Data-structure for pages in dialog
-struct IconChoicePageData
-{
- OString sId;
- std::unique_ptr<IconChoicePage> xPage; ///< the TabPage itself
- bool bRefresh; ///< Flag: page has to be newly initialized
-
- // constructor
- IconChoicePageData(const OString& rId, std::unique_ptr<IconChoicePage> xInPage)
- : sId(rId)
- , xPage(std::move(xInPage))
- , bRefresh(false)
- {}
-};
-
class IconChoicePage
{
protected:
@@ -58,12 +44,12 @@ private:
protected:
- IconChoicePage(weld::Container* pParent, const OUString& rUIXMLDescription, const OString& rID, const SfxItemSet* pItemSet);
+ IconChoicePage(weld::Container* pParent, const OUString& rUIXMLDescription, const OUString& rID, const SfxItemSet* pItemSet);
public:
virtual ~IconChoicePage();
- OString GetHelpId() const { return xContainer->get_help_id(); }
+ OUString GetHelpId() const { return xContainer->get_help_id(); }
const SfxItemSet& GetItemSet() const { return *pSet; }
@@ -78,4 +64,19 @@ public:
virtual bool QueryClose();
};
+/// Data-structure for pages in dialog
+struct IconChoicePageData
+{
+ OUString sId;
+ std::unique_ptr<IconChoicePage> xPage; ///< the TabPage itself
+ bool bRefresh; ///< Flag: page has to be newly initialized
+
+ // constructor
+ IconChoicePageData(OUString aId, std::unique_ptr<IconChoicePage> xInPage)
+ : sId(std::move(aId))
+ , xPage(std::move(xInPage))
+ , bRefresh(false)
+ {}
+};
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/insdlg.hxx b/cui/source/inc/insdlg.hxx
index c76658470450..61c707507087 100644
--- a/cui/source/inc/insdlg.hxx
+++ b/cui/source/inc/insdlg.hxx
@@ -36,12 +36,12 @@ protected:
comphelper::EmbeddedObjectContainer aCnt;
InsertObjectDialog_Impl(weld::Window * pParent,
- const OUString& rUIXMLDescription, const OString& rID,
- const css::uno::Reference < css::embed::XStorage >& xStorage);
+ const OUString& rUIXMLDescription, const OUString& rID,
+ css::uno::Reference < css::embed::XStorage > xStorage);
public:
const css::uno::Reference<css::embed::XEmbeddedObject>& GetObject() const { return m_xObj; }
virtual css::uno::Reference<css::io::XInputStream> GetIconIfIconified(OUString* pGraphicMediaType);
- void SetHelpId(const OString& rHelpId) { m_xDialog->set_help_id(rHelpId); }
+ void SetHelpId(const OUString& rHelpId) { m_xDialog->set_help_id(rHelpId); }
virtual bool IsCreateNew() const;
};
diff --git a/cui/source/inc/insrc.hxx b/cui/source/inc/insrc.hxx
index e003795383dc..9ab7f0fed466 100644
--- a/cui/source/inc/insrc.hxx
+++ b/cui/source/inc/insrc.hxx
@@ -22,7 +22,7 @@
#include <svx/svxdlg.hxx>
#include <vcl/weld.hxx>
-class SvxInsRowColDlg : public SvxAbstractInsRowColDlg, public weld::GenericDialogController
+class SvxInsRowColDlg : public weld::GenericDialogController
{
private:
std::unique_ptr<weld::SpinButton> m_xCountEdit;
@@ -30,10 +30,23 @@ private:
std::unique_ptr<weld::RadioButton> m_xAfterBtn;
public:
- SvxInsRowColDlg(weld::Window* pParent, bool bCol, const OString& rHelpId);
+ SvxInsRowColDlg(weld::Window* pParent, bool bCol, const OUString& rHelpId);
- virtual short Execute() override;
+ bool isInsertBefore() const;
+ sal_uInt16 getInsertCount() const;
+};
+
+class SvxAbstractInsRowColDlg_Impl final : public SvxAbstractInsRowColDlg
+{
+ std::shared_ptr<SvxInsRowColDlg> m_xDlg;
+public:
+ explicit SvxAbstractInsRowColDlg_Impl(std::shared_ptr<SvxInsRowColDlg> p)
+ : m_xDlg(std::move(p))
+ {
+ }
+ virtual short Execute() override;
+ virtual bool StartExecuteAsync(AsyncContext& rCtx) override;
virtual bool isInsertBefore() const override;
virtual sal_uInt16 getInsertCount() const override;
};
diff --git a/cui/source/inc/labdlg.hxx b/cui/source/inc/labdlg.hxx
index 8146ec388f53..5d7f778d5c38 100644
--- a/cui/source/inc/labdlg.hxx
+++ b/cui/source/inc/labdlg.hxx
@@ -102,7 +102,7 @@ private:
Link<SvxSwFrameValidation&,void> aValidateLink;
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
public:
SvxCaptionTabDialog(weld::Window* pParent, const SdrView* pView,
diff --git a/cui/source/inc/macroass.hxx b/cui/source/inc/macroass.hxx
index ea365b225747..ba3c1de11717 100644
--- a/cui/source/inc/macroass.hxx
+++ b/cui/source/inc/macroass.hxx
@@ -29,6 +29,7 @@
class SfxMacroTabPage_;
class SfxMacroTabPage_Impl;
+class Timer;
class SfxMacroTabPage final : public SfxTabPage
{
diff --git a/cui/source/inc/macropg.hxx b/cui/source/inc/macropg.hxx
index 39e4ef284384..1d9f2230f048 100644
--- a/cui/source/inc/macropg.hxx
+++ b/cui/source/inc/macropg.hxx
@@ -30,22 +30,11 @@
#include <unordered_map>
#include <vector>
-typedef std::unordered_map< OUString, std::pair< OUString, OUString > > EventsHash;
-
-struct EventDisplayName
-{
- const char* pAsciiEventName;
- TranslateId pEventResourceID;
- EventDisplayName(const char* pAsciiName, TranslateId pResId)
- : pAsciiEventName(pAsciiName)
- , pEventResourceID(pResId)
- {
- }
-};
+typedef std::pair<OUString, OUString> EventPair;
+typedef std::unordered_map<OUString, EventPair> EventsHash;
class SvxMacroTabPage_;
class SvTabListBox;
-
class SvxMacroTabPage_Impl;
@@ -54,8 +43,10 @@ class SvxMacroTabPage_ : public SfxTabPage
DECL_LINK( SelectEvent_Impl, weld::TreeView&, void );
DECL_LINK( AssignDeleteHdl_Impl, weld::Button&, void );
DECL_LINK( DoubleClickHdl_Impl, weld::TreeView&, bool );
+ DECL_LINK( DeleteAllHdl_Impl, weld::Button&, void );
- static void GenericHandler_Impl( SvxMacroTabPage_* pThis, const weld::Button* pBtn );
+ void GenericHandler_Impl(const weld::Button* pBtn);
+ const EventPair* LookupEvent(const OUString& rEventName);
css::uno::Reference< css::container::XNameReplace > m_xAppEvents;
protected:
@@ -64,19 +55,18 @@ protected:
css::uno::Reference< css::util::XModifiable > m_xModifiable;
EventsHash m_appEventsHash;
EventsHash m_docEventsHash;
+ int m_nAssignedEvents;
bool bDocModified, bAppEvents, bInitialized;
- std::vector< EventDisplayName > aDisplayNames;
- SvxMacroTabPage_(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rID, const SfxItemSet& rItemSet);
+ SvxMacroTabPage_(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rID, const SfxItemSet& rItemSet);
void EnableButtons();
static css::uno::Any GetPropsByName( const OUString& eventName, EventsHash& eventsHash );
- static std::pair< OUString, OUString > GetPairFromAny( const css::uno::Any& aAny );
+ static EventPair GetPairFromAny(const css::uno::Any& aAny);
public:
virtual ~SvxMacroTabPage_() override;
- void InitResources();
void InitAndSetHandler( const css::uno::Reference< css::container::XNameReplace >& xAppEvents, const css::uno::Reference< css::container::XNameReplace >& xDocEvents, const css::uno::Reference< css::util::XModifiable >& xModifiable );
virtual bool FillItemSet( SfxItemSet* rSet ) override;
diff --git a/cui/source/inc/multipat.hxx b/cui/source/inc/multipat.hxx
index 3f747f21aadd..258e446e80f8 100644
--- a/cui/source/inc/multipat.hxx
+++ b/cui/source/inc/multipat.hxx
@@ -20,16 +20,6 @@
#include <vcl/weld.hxx>
-// define ----------------------------------------------------------------
-
-// different delimiter for Unix (:) and Windows (;)
-
-#ifdef UNX
-#define CLASSPATH_DELIMITER ':'
-#else
-#define CLASSPATH_DELIMITER ';'
-#endif
-
class SvxMultiPathDialog : public weld::GenericDialogController
{
private:
@@ -50,7 +40,7 @@ public:
virtual ~SvxMultiPathDialog() override;
OUString GetPath() const;
- void SetPath(const OUString& rPath);
+ void SetPath(std::u16string_view rPath);
void SetTitle(const OUString& rTitle) { m_xDialog->set_title(rTitle); }
};
@@ -69,7 +59,7 @@ public:
SvxPathSelectDialog(weld::Window* pParent);
OUString GetPath() const;
- void SetPath( const OUString& rPath );
+ void SetPath( std::u16string_view rPath );
void SetTitle(const OUString& rTitle) { m_xDialog->set_title(rTitle); }
};
diff --git a/cui/source/inc/newtabledlg.hxx b/cui/source/inc/newtabledlg.hxx
index b62e1199e44d..4a34cb37712c 100644
--- a/cui/source/inc/newtabledlg.hxx
+++ b/cui/source/inc/newtabledlg.hxx
@@ -37,7 +37,7 @@ public:
class SvxNewTableDialogWrapper : public SvxAbstractNewTableDialog
{
private:
- std::shared_ptr<weld::DialogController> m_xDlg;
+ std::shared_ptr<SvxNewTableDialog> m_xDlg;
public:
SvxNewTableDialogWrapper(weld::Window* pParent)
@@ -52,18 +52,16 @@ public:
virtual sal_Int32 getRows() const override
{
- SvxNewTableDialog* pDlg = dynamic_cast<SvxNewTableDialog*>(m_xDlg.get());
- if (pDlg)
- return pDlg->getRows();
+ if (m_xDlg)
+ return m_xDlg->getRows();
return 0;
}
virtual sal_Int32 getColumns() const override
{
- SvxNewTableDialog* pDlg = dynamic_cast<SvxNewTableDialog*>(m_xDlg.get());
- if (pDlg)
- return pDlg->getColumns();
+ if (m_xDlg)
+ return m_xDlg->getColumns();
return 0;
}
diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx
index c4f6961f82b0..7c34d49fcc62 100644
--- a/cui/source/inc/numpages.hxx
+++ b/cui/source/inc/numpages.hxx
@@ -25,9 +25,10 @@
#include <editeng/numdef.hxx>
#include <editeng/svxenum.hxx>
#include <svtools/ctrlbox.hxx>
+#include <svx/numberingpreview.hxx>
#include <vcl/customweld.hxx>
#include <vcl/timer.hxx>
-#include <cui/numberingpreview.hxx>
+#include <svx/dlgutil.hxx>
#define MN_GALLERY_ENTRY 100
@@ -63,8 +64,7 @@ class SvxSingleNumPickTabPage final : public SfxTabPage
sal_uInt16 nActNumLvl;
bool bModified : 1;
bool bPreset : 1;
-
- sal_uInt16 nNumItemId;
+ TypedWhichId<SvxNumBulletItem> nNumItemId;
std::unique_ptr<SvxNumValueSet> m_xExamplesVS;
std::unique_ptr<weld::CustomWeld> m_xExamplesVSWin;
@@ -92,7 +92,7 @@ class SvxBulletPickTabPage final : public SfxTabPage
sal_uInt16 nActNumLvl;
bool bModified : 1;
bool bPreset : 1;
- sal_uInt16 nNumItemId;
+ TypedWhichId<SvxNumBulletItem> nNumItemId;
OUString sBulletCharFormatName;
@@ -129,7 +129,7 @@ class SvxNumPickTabPage final : public SfxTabPage
std::unique_ptr<SvxNumRule> pActNum;
std::unique_ptr<SvxNumRule> pSaveNum;
sal_uInt16 nActNumLvl;
- sal_uInt16 nNumItemId;
+ TypedWhichId<SvxNumBulletItem> nNumItemId;
bool bModified : 1;
bool bPreset : 1;
@@ -164,7 +164,7 @@ class SvxBitmapPickTabPage final : public SfxTabPage
std::unique_ptr<SvxNumRule> pActNum;
std::unique_ptr<SvxNumRule> pSaveNum;
sal_uInt16 nActNumLvl;
- sal_uInt16 nNumItemId;
+ TypedWhichId<SvxNumBulletItem> nNumItemId;
MapUnit eCoreUnit;
bool bModified : 1;
bool bPreset : 1;
@@ -216,9 +216,11 @@ class SvxNumOptionsTabPage : public SfxTabPage
sal_uInt8 nBullet;
sal_uInt16 nActNumLvl;
- sal_uInt16 nNumItemId;
+ TypedWhichId<SvxNumBulletItem> nNumItemId;
MapUnit eCoreUnit;
+ SvxRatioConnector m_aRatioTop;
+ SvxRatioConnector m_aRatioBottom;
SvxNumberingPreview m_aPreviewWIN;
std::unique_ptr<weld::Widget> m_xGrid;
std::unique_ptr<weld::TreeView> m_xLevelLB;
@@ -236,6 +238,7 @@ class SvxNumOptionsTabPage : public SfxTabPage
std::unique_ptr<weld::MetricSpinButton> m_xBulRelSizeMF;
std::unique_ptr<weld::Label> m_xAllLevelFT;
std::unique_ptr<weld::SpinButton> m_xAllLevelNF;
+ std::unique_ptr<weld::CheckButton> m_xIsLegalCB;
std::unique_ptr<weld::Label> m_xStartFT;
std::unique_ptr<weld::SpinButton> m_xStartED;
std::unique_ptr<weld::Label> m_xBulletFT;
@@ -247,6 +250,9 @@ class SvxNumOptionsTabPage : public SfxTabPage
std::unique_ptr<weld::Label> m_xHeightFT;
std::unique_ptr<weld::MetricSpinButton> m_xHeightMF;
std::unique_ptr<weld::CheckButton> m_xRatioCB;
+ std::unique_ptr<weld::Image> m_xCbxScaleImg;
+ std::unique_ptr<weld::CustomWeld> m_xImgRatioTop;
+ std::unique_ptr<weld::CustomWeld> m_xImgRatioBottom;
std::unique_ptr<weld::Label> m_xOrientFT;
std::unique_ptr<weld::ComboBox> m_xOrientLB;
std::unique_ptr<weld::Widget> m_xAllLevelsFrame;
@@ -266,7 +272,7 @@ class SvxNumOptionsTabPage : public SfxTabPage
DECL_LINK(LevelHdl_Impl, weld::TreeView&, void);
DECL_LINK(LevelHdl, void *, void);
DECL_LINK(PopupActivateHdl_Impl, weld::Toggleable&, void);
- DECL_LINK(GraphicHdl_Impl, const OString&, void);
+ DECL_LINK(GraphicHdl_Impl, const OUString&, void);
DECL_LINK(BulletHdl_Impl, weld::Button&, void);
DECL_LINK(SizeHdl_Impl, weld::MetricSpinButton&, void);
DECL_LINK(RatioHdl_Impl, weld::Toggleable&, void);
@@ -274,6 +280,7 @@ class SvxNumOptionsTabPage : public SfxTabPage
DECL_LINK(EditModifyHdl_Impl, weld::Entry&, void);
DECL_LINK(SpinModifyHdl_Impl, weld::SpinButton&, void);
DECL_LINK(AllLevelHdl_Impl, weld::SpinButton&, void);
+ DECL_LINK(IsLegalHdl_Impl, weld::Toggleable&, void);
DECL_LINK(OrientHdl_Impl, weld::ComboBox&, void);
DECL_LINK(SameLevelHdl_Impl, weld::Toggleable&, void);
DECL_LINK(BulColorHdl_Impl, ColorListBox&, void);
@@ -312,7 +319,7 @@ class SvxNumPositionTabPage : public SfxTabPage
ImplSVEvent* m_pLevelHdlEvent;
sal_uInt16 nActNumLvl;
- sal_uInt16 nNumItemId;
+ TypedWhichId<SvxNumBulletItem> nNumItemId;
MapUnit eCoreUnit;
bool bModified : 1;
diff --git a/cui/source/inc/optasian.hxx b/cui/source/inc/optasian.hxx
index 9d9815ea49f0..31a622f7a50d 100644
--- a/cui/source/inc/optasian.hxx
+++ b/cui/source/inc/optasian.hxx
@@ -53,6 +53,9 @@ public:
static std::unique_ptr<SfxTabPage>
Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet);
static WhichRangesContainer GetRanges();
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet(SfxItemSet* rSet) override;
virtual void Reset(const SfxItemSet* rSet) override;
};
diff --git a/cui/source/inc/optdict.hxx b/cui/source/inc/optdict.hxx
index e2dcf55953a8..8e382cc32e8f 100644
--- a/cui/source/inc/optdict.hxx
+++ b/cui/source/inc/optdict.hxx
@@ -89,7 +89,6 @@ private:
DECL_LINK(NewDelActionHdl, weld::Entry&, bool);
DECL_LINK(ModifyHdl, weld::Entry&, void);
DECL_LINK(EntrySizeAllocHdl, const Size&, void);
- DECL_STATIC_LINK(SvxEditDictionaryDialog, InsertTextHdl, OUString&, bool);
bool NewDelHdl(const weld::Widget*);
void ShowWords_Impl( sal_uInt16 nId );
diff --git a/cui/source/inc/optlingu.hxx b/cui/source/inc/optlingu.hxx
index 365acfbbb0fb..6c5657acf7bd 100644
--- a/cui/source/inc/optlingu.hxx
+++ b/cui/source/inc/optlingu.hxx
@@ -22,6 +22,7 @@
#include <svx/langbox.hxx>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/configuration/ReadWriteAccess.hpp>
namespace com::sun::star{
namespace beans{
@@ -60,6 +61,8 @@ class SvxEditModulesDlg : public weld::GenericDialogController
std::unique_ptr<weld::Button> m_xClosePB;
std::unique_ptr<SvxLanguageBox> m_xLanguageLB;
+ css::uno::Reference< css::configuration::XReadWriteAccess> m_xReadWriteAccess;
+
DECL_LINK( SelectHdl_Impl, weld::TreeView&, void );
DECL_LINK( UpDownHdl_Impl, weld::Button&, void );
DECL_LINK( ClickHdl_Impl, weld::Button&, void );
@@ -84,6 +87,8 @@ private:
OUString sWordsWithDigits;
OUString sSpellSpecial;
OUString sSpellAuto;
+ OUString sSpellClosedCompound;
+ OUString sSpellHyphenatedCompound;
OUString sGrammarAuto;
OUString sNumMinWordlen;
OUString sNumPreBreak;
@@ -118,6 +123,7 @@ private:
std::unique_ptr<weld::Button> m_xLinguDicsDelPB;
std::unique_ptr<weld::TreeView> m_xLinguOptionsCLB;
std::unique_ptr<weld::Button> m_xLinguOptionsEditPB;
+ std::unique_ptr<weld::Box> m_xMoreDictsBox;
std::unique_ptr<weld::LinkButton> m_xMoreDictsLink;
void AddDicBoxEntry( const css::uno::Reference< css::linguistic2::XDictionary > &rxDic, sal_uInt16 nIdx );
@@ -139,6 +145,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet );
virtual ~SvxLinguTabPage() override;
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
diff --git a/cui/source/inc/optpath.hxx b/cui/source/inc/optpath.hxx
index c3b9aafbbae5..ccfeb70e0072 100644
--- a/cui/source/inc/optpath.hxx
+++ b/cui/source/inc/optpath.hxx
@@ -56,13 +56,15 @@ private:
void GetPathList( SvtPathOptions::Paths _nPathHandle, OUString& _rInternalPath,
OUString& _rUserPath, OUString& _rWritablePath, bool& _rReadOnly );
void SetPathList( SvtPathOptions::Paths _nPathHandle,
- const OUString& _rUserPath, const OUString& _rWritablePath );
+ std::u16string_view _rUserPath, const OUString& _rWritablePath );
public:
SvxPathTabPage( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet );
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet );
virtual ~SvxPathTabPage() override;
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/inc/page.hxx b/cui/source/inc/page.hxx
index 02af8079a88c..151569ac4634 100644
--- a/cui/source/inc/page.hxx
+++ b/cui/source/inc/page.hxx
@@ -38,7 +38,6 @@
<SvxSizeItem>: <SID_ATTR_MAXSIZE>
<SvxULSpaceItem>: <SID_ATTR_LRSPACE>
<SvxLRSpaceItem>: <SID_ATTR_ULSPACE>
- <SfxAllEnumItem>: <SID_ATTR_PAPERTRAY>
<SvxPaperBinItem>: <SID_ATTR_PAPERBIN>
<SvxBoolItem>: <SID_ATTR_EXT1>
<SvxBoolItem>: <SID_ATTR_EXT2>
@@ -93,7 +92,6 @@ private:
std::unique_ptr<SvxPaperSizeListBox> m_xPaperSizeBox;
std::unique_ptr<weld::MetricSpinButton> m_xPaperWidthEdit;
std::unique_ptr<weld::MetricSpinButton> m_xPaperHeightEdit;
- std::unique_ptr<weld::Label> m_xOrientationFT;
std::unique_ptr<weld::RadioButton> m_xPortraitBtn;
std::unique_ptr<weld::RadioButton> m_xLandscapeBtn;
std::unique_ptr<weld::Label> m_xTextFlowLbl;
diff --git a/cui/source/inc/paragrph.hxx b/cui/source/inc/paragrph.hxx
index 73cc5faf32cd..e219aa622e07 100644
--- a/cui/source/inc/paragrph.hxx
+++ b/cui/source/inc/paragrph.hxx
@@ -46,29 +46,29 @@ private:
tools::Long nWidth;
tools::Long nMinFixDist;
bool bRelativeMode;
- OUString sAbsDist;
SvxParaPrevWindow m_aExampleWin;
- // indention
- std::unique_ptr<SvxRelativeField> m_xLeftIndent;
+ // indentation
+ bool m_bSplitLRSpace = false; ///< which items to use?
+ SvxRelativeField m_aLeftIndent;
- std::unique_ptr<weld::Label> m_xRightLabel;
- std::unique_ptr<SvxRelativeField> m_xRightIndent;
+ SvxRelativeField m_aRightIndent;
std::unique_ptr<weld::Label> m_xFLineLabel;
- std::unique_ptr<SvxRelativeField> m_xFLineIndent;
+ SvxRelativeField m_aFLineIndent;
std::unique_ptr<weld::CheckButton> m_xAutoCB;
// distance
- std::unique_ptr<SvxRelativeField> m_xTopDist;
- std::unique_ptr<SvxRelativeField> m_xBottomDist;
+ SvxRelativeField m_aTopDist;
+ SvxRelativeField m_aBottomDist;
std::unique_ptr<weld::CheckButton> m_xContextualCB;
// line spacing
std::unique_ptr<weld::ComboBox> m_xLineDist;
std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtPercentBox;
std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtMetricBox;
+ std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtPlaceHolderBox;
std::unique_ptr<weld::Label> m_xLineDistAtLabel;
std::unique_ptr<weld::Label> m_xAbsDist;
@@ -112,7 +112,6 @@ public:
void EnableRegisterMode();
void EnableContextualMode();
void EnableAutoFirstLine();
- void EnableAbsLineDist(tools::Long nMinTwip);
void EnableNegativeMode();
virtual void PageCreated(const SfxAllItemSet& aSet) override;
};
@@ -121,7 +120,9 @@ public:
class SvxParaAlignTabPage : public SfxTabPage
{
- static const WhichRangesContainer pAlignRanges;
+ static const WhichRangesContainer pAlignRanges, pSdrAlignRanges;
+
+ bool m_bSdrVertAlign;
SvxParaPrevWindow m_aExampleWin;
@@ -144,8 +145,9 @@ class SvxParaAlignTabPage : public SfxTabPage
//vertical alignment
std::unique_ptr<weld::Widget> m_xVertAlignFL;
std::unique_ptr<weld::ComboBox> m_xVertAlignLB;
+ std::unique_ptr<weld::Label> m_xVertAlign;
+ std::unique_ptr<weld::Label> m_xVertAlignSdr;
- std::unique_ptr<weld::Widget> m_xPropertiesFL;
std::unique_ptr<svx::FrameDirectionListBox> m_xTextDirectionLB;
DECL_LINK(AlignHdl_Impl, weld::Toggleable&, void);
@@ -164,12 +166,14 @@ public:
virtual ~SvxParaAlignTabPage() override;
static WhichRangesContainer GetRanges() { return pAlignRanges; }
+ static WhichRangesContainer GetSdrRanges() { return pSdrAlignRanges; }
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
virtual void ChangesApplied() override;
void EnableJustifyExt();
+ void EnableSdrVertAlign();
virtual void PageCreated(const SfxAllItemSet& aSet) override;
};
@@ -213,10 +217,14 @@ private:
weld::TriStateEnabled aPageBreakState;
weld::TriStateEnabled aApplyCollState;
weld::TriStateEnabled aPageNumState;
- weld::TriStateEnabled aKeepTogetherState;
+ weld::TriStateEnabled aAllowSplitState;
weld::TriStateEnabled aKeepParaState;
weld::TriStateEnabled aOrphanState;
weld::TriStateEnabled aWidowState;
+ weld::TriStateEnabled aAcrossParagraphState;
+ weld::TriStateEnabled aAcrossColumnState;
+ weld::TriStateEnabled aAcrossPageState;
+ weld::TriStateEnabled aAcrossSpreadState;
bool bPageBreak;
bool bHtmlMode;
@@ -225,12 +233,19 @@ private:
// hyphenation
std::unique_ptr<weld::CheckButton> m_xHyphenBox;
std::unique_ptr<weld::CheckButton> m_xHyphenNoCapsBox;
+ std::unique_ptr<weld::CheckButton> m_xHyphenNoLastWordBox;
std::unique_ptr<weld::Label> m_xBeforeText;
std::unique_ptr<weld::SpinButton> m_xExtHyphenBeforeBox;
std::unique_ptr<weld::Label> m_xAfterText;
std::unique_ptr<weld::SpinButton> m_xExtHyphenAfterBox;
+ std::unique_ptr<weld::Label> m_xCompoundBeforeText;
+ std::unique_ptr<weld::SpinButton> m_xExtCompoundHyphenBeforeBox;
std::unique_ptr<weld::Label> m_xMaxHyphenLabel;
std::unique_ptr<weld::SpinButton> m_xMaxHyphenEdit;
+ std::unique_ptr<weld::Label> m_xMinWordLabel;
+ std::unique_ptr<weld::SpinButton> m_xMinWordLength;
+ std::unique_ptr<weld::Label> m_xHyphenZoneLabel;
+ SvxRelativeField m_aHyphenZone;
// pagebreak
std::unique_ptr<weld::CheckButton> m_xPageBreakBox;
@@ -244,7 +259,7 @@ private:
std::unique_ptr<weld::SpinButton> m_xPagenumEdit;
// paragraph division
- std::unique_ptr<weld::CheckButton> m_xKeepTogetherBox;
+ std::unique_ptr<weld::CheckButton> m_xAllowSplitBox;
std::unique_ptr<weld::CheckButton> m_xKeepParaBox;
// orphan/widow
@@ -256,16 +271,23 @@ private:
std::unique_ptr<weld::SpinButton> m_xWidowRowNo;
std::unique_ptr<weld::Label> m_xWidowRowLabel;
+ // avoid hyphenation across
+ std::unique_ptr<weld::Label> m_xAcrossText;
+ std::unique_ptr<weld::CheckButton> m_xAcrossParagraphBox;
+ std::unique_ptr<weld::CheckButton> m_xAcrossColumnBox;
+ std::unique_ptr<weld::CheckButton> m_xAcrossPageBox;
+ std::unique_ptr<weld::CheckButton> m_xAcrossSpreadBox;
+
void HyphenClickHdl();
void PageNumBoxClickHdl();
void ApplyCollClickHdl();
void PageBreakHdl();
- void KeepTogetherHdl();
+ void AllowSplitHdl();
void OrphanHdl();
void WidowHdl();
DECL_LINK(PageBreakHdl_Impl, weld::Toggleable&, void);
- DECL_LINK(KeepTogetherHdl_Impl, weld::Toggleable&, void);
+ DECL_LINK(AllowSplitHdl_Impl, weld::Toggleable&, void);
DECL_LINK(WidowHdl_Impl, weld::Toggleable&, void);
DECL_LINK(OrphanHdl_Impl, weld::Toggleable&, void);
DECL_LINK(HyphenClickHdl_Impl, weld::Toggleable&, void);
@@ -274,6 +296,10 @@ private:
DECL_LINK(PageBreakTypeHdl_Impl, weld::ComboBox&, void);
DECL_LINK(PageNumBoxClickHdl_Impl, weld::Toggleable&, void);
DECL_LINK(KeepParaBoxClickHdl_Impl, weld::Toggleable&, void);
+ DECL_LINK(AcrossParagraphHdl_Impl, weld::Toggleable&, void);
+ DECL_LINK(AcrossColumnHdl_Impl, weld::Toggleable&, void);
+ DECL_LINK(AcrossPageHdl_Impl, weld::Toggleable&, void);
+ DECL_LINK(AcrossSpreadHdl_Impl, weld::Toggleable&, void);
virtual void PageCreated(const SfxAllItemSet& aSet) override;
};
diff --git a/cui/source/inc/passwdomdlg.hxx b/cui/source/inc/passwdomdlg.hxx
index 2e13cc1b616c..1077195f7a85 100644
--- a/cui/source/inc/passwdomdlg.hxx
+++ b/cui/source/inc/passwdomdlg.hxx
@@ -25,6 +25,7 @@ class PasswordToOpenModifyDialog : public SfxDialogController
{
std::unique_ptr<weld::Entry> m_xPasswdToOpenED;
std::unique_ptr<weld::Label> m_xPasswdToOpenInd;
+ std::unique_ptr<weld::LevelBar> m_xPasswdToOpenBar;
std::unique_ptr<weld::Entry> m_xReenterPasswdToOpenED;
std::unique_ptr<weld::Label> m_xReenterPasswdToOpenInd;
std::unique_ptr<weld::Expander> m_xOptionsExpander;
@@ -33,17 +34,21 @@ class PasswordToOpenModifyDialog : public SfxDialogController
std::unique_ptr<weld::Label> m_xPasswdToModifyFT;
std::unique_ptr<weld::Entry> m_xPasswdToModifyED;
std::unique_ptr<weld::Label> m_xPasswdToModifyInd;
+ std::unique_ptr<weld::LevelBar> m_xPasswdToModifyBar;
std::unique_ptr<weld::Label> m_xReenterPasswdToModifyFT;
std::unique_ptr<weld::Entry> m_xReenterPasswdToModifyED;
std::unique_ptr<weld::Label> m_xReenterPasswdToModifyInd;
+ std::shared_ptr<weld::MessageDialog> m_xErrorBox;
OUString m_aOneMismatch;
OUString m_aTwoMismatch;
OUString m_aInvalidStateForOkButton;
OUString m_aInvalidStateForOkButton_v2;
+ std::optional<OUString> m_oPasswordPolicy;
int m_nMaxPasswdLen;
bool m_bIsPasswordToModify;
+ bool m_bAllowEmpty;
DECL_LINK(OkBtnClickHdl, weld::Button&, void);
@@ -57,11 +62,13 @@ public:
PasswordToOpenModifyDialog(weld::Window* pParent,
sal_uInt16 nMaxPasswdLen /* 0 -> no max len enforced */,
bool bIsPasswordToModify );
+ ~PasswordToOpenModifyDialog();
// AbstractPasswordToOpenModifyDialog
OUString GetPasswordToOpen() const;
OUString GetPasswordToModify() const;
bool IsRecommendToOpenReadonly() const;
+ void AllowEmpty();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/scriptdlg.hxx b/cui/source/inc/scriptdlg.hxx
index d2e5cae7f27d..b1b014771dae 100644
--- a/cui/source/inc/scriptdlg.hxx
+++ b/cui/source/inc/scriptdlg.hxx
@@ -76,7 +76,6 @@ public:
class SvxScriptOrgDialog : public SfxDialogController
{
-protected:
weld::Window* m_pParent;
OUString m_sLanguage;
static Selection_hash m_lastSelection;
@@ -124,7 +123,7 @@ protected:
const weld::TreeIter* pParent,
bool bChildrenOnDemand,
std::unique_ptr< SFEntry > && aUserData,
- const OUString& factoryURL, bool bSelect);
+ std::u16string_view factoryURL, bool bSelect);
void insertEntry(OUString const & rText, OUString const & rBitmap,
const weld::TreeIter* pParent,
bool bChildrenOnDemand,
@@ -143,7 +142,7 @@ protected:
public:
// prob need another arg in the ctor
// to specify the language or provider
- SvxScriptOrgDialog(weld::Window* pParent, const OUString& language);
+ SvxScriptOrgDialog(weld::Window* pParent, OUString language);
virtual ~SvxScriptOrgDialog() override;
virtual short run() override;
diff --git a/cui/source/inc/sdrcelldlg.hxx b/cui/source/inc/sdrcelldlg.hxx
index 5b7e9ca71a20..46f34c0dae28 100644
--- a/cui/source/inc/sdrcelldlg.hxx
+++ b/cui/source/inc/sdrcelldlg.hxx
@@ -38,9 +38,9 @@ private:
XPatternListRef mpPatternList;
public:
- SvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel);
+ SvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet& rAttr, const SdrModel& rModel, bool bStyle);
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
};
diff --git a/cui/source/options/securityoptions.hxx b/cui/source/inc/securityoptions.hxx
index dc05f5bb8150..a86b4f0c605a 100644
--- a/cui/source/options/securityoptions.hxx
+++ b/cui/source/inc/securityoptions.hxx
@@ -22,7 +22,6 @@
namespace svx
{
-
class SecurityOptionsDialog : public weld::GenericDialogController
{
private:
@@ -43,18 +42,44 @@ namespace svx
std::unique_ptr<weld::Widget> m_xCtrlHyperlinkImg;
std::unique_ptr<weld::CheckButton> m_xBlockUntrustedRefererLinksCB;
std::unique_ptr<weld::Widget> m_xBlockUntrustedRefererLinksImg;
+ std::unique_ptr<weld::CheckButton> m_xDisableActiveContentCB;
+ std::unique_ptr<weld::Widget> m_xDisableActiveContentImg;
+
+ std::unique_ptr<weld::CheckButton> m_xRedlineinfoCB;
+ std::unique_ptr<weld::Widget> m_xRedlineinfoImg;
+ std::unique_ptr<weld::CheckButton> m_xDocPropertiesCB;
+ std::unique_ptr<weld::Widget> m_xDocPropertiesImg;
+ std::unique_ptr<weld::CheckButton> m_xNoteAuthorCB;
+ std::unique_ptr<weld::Widget> m_xNoteAuthorImg;
+ std::unique_ptr<weld::CheckButton> m_xDocumentVersionCB;
+ std::unique_ptr<weld::Widget> m_xDocumentVersionImg;
+ std::unique_ptr<weld::CheckButton> m_xPrinterSettingsCB;
+ std::unique_ptr<weld::Widget> m_xPrinterSettingsImg;
public:
SecurityOptionsDialog(weld::Window* pParent);
+ void init();
+
bool IsSaveOrSendDocsChecked() const { return m_xSaveOrSendDocsCB->get_active(); }
bool IsSignDocsChecked() const { return m_xSignDocsCB->get_active(); }
bool IsPrintDocsChecked() const { return m_xPrintDocsCB->get_active(); }
bool IsCreatePdfChecked() const { return m_xCreatePdfCB->get_active(); }
bool IsRemovePersInfoChecked() const { return m_xRemovePersInfoCB->get_active(); }
+ bool IsRemoveRedlineInfoChecked() const { return m_xRedlineinfoCB->get_active(); }
+ bool IsRemoveDocUserInfoChecked() const { return m_xDocPropertiesCB->get_active(); }
+ bool IsRemoveNoteAuthorInfoChecked() const { return m_xNoteAuthorCB->get_active(); }
+ bool IsRemoveDocVersionInfoChecked() const { return m_xDocumentVersionCB->get_active(); }
+ bool IsKeepPrinterSettingsChecked() const { return m_xPrinterSettingsCB->get_active(); }
bool IsRecommPasswdChecked() const { return m_xRecommPasswdCB->get_active(); }
bool IsCtrlHyperlinkChecked() const { return m_xCtrlHyperlinkCB->get_active(); }
bool IsBlockUntrustedRefererLinksChecked() const { return m_xBlockUntrustedRefererLinksCB->get_active(); }
+ bool IsDisableActiveContentChecked() const { return m_xDisableActiveContentCB->get_active(); }
+
+ DECL_LINK(ShowPersonalInfosToggle, weld::Toggleable&, void);
+
+ bool SetSecurityOptions();
+ void changeKeepSecurityInfosEnabled();
};
}
diff --git a/cui/source/inc/srchxtra.hxx b/cui/source/inc/srchxtra.hxx
index e95fccd413fd..712abc8b55bc 100644
--- a/cui/source/inc/srchxtra.hxx
+++ b/cui/source/inc/srchxtra.hxx
@@ -30,7 +30,7 @@ public:
virtual ~SvxSearchFormatDialog() override;
protected:
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
private:
std::unique_ptr<FontList> m_pFontList;
diff --git a/cui/source/inc/swpossizetabpage.hxx b/cui/source/inc/swpossizetabpage.hxx
index eb73196986bf..037cede29326 100644
--- a/cui/source/inc/swpossizetabpage.hxx
+++ b/cui/source/inc/swpossizetabpage.hxx
@@ -21,6 +21,7 @@
#include <sfx2/tabdlg.hxx>
#include <svx/swframeexample.hxx>
#include <vcl/weld.hxx>
+#include <svx/dlgutil.hxx>
// SvxSwPosSizeTabPage - position and size page for Writer drawing objects
struct FrmMap;
@@ -52,13 +53,19 @@ class SvxSwPosSizeTabPage : public SfxTabPage
bool m_bPositioningDisabled;
bool m_bIsMultiSelection;
bool m_bIsInRightToLeft;
+ bool m_bDoNotMirrorRtlDrawObjs = false;
TriState m_nProtectSizeState;
SwFrameExample m_aExampleWN;
+ SvxRatioConnector m_aRatioTop;
+ SvxRatioConnector m_aRatioBottom;
std::unique_ptr<weld::MetricSpinButton> m_xWidthMF;
std::unique_ptr<weld::MetricSpinButton> m_xHeightMF;
std::unique_ptr<weld::CheckButton> m_xKeepRatioCB;
+ std::unique_ptr<weld::Image> m_xCbxScaleImg;
+ std::unique_ptr<weld::CustomWeld> m_xImgRatioTop;
+ std::unique_ptr<weld::CustomWeld> m_xImgRatioBottom;
std::unique_ptr<weld::RadioButton> m_xToPageRB;
std::unique_ptr<weld::RadioButton> m_xToParaRB;
std::unique_ptr<weld::RadioButton> m_xToCharRB;
@@ -91,6 +98,7 @@ class SvxSwPosSizeTabPage : public SfxTabPage
DECL_LINK(MirrorHdl, weld::Toggleable&, void);
DECL_LINK(ModifyHdl, weld::MetricSpinButton&, void);
DECL_LINK(ProtectHdl, weld::Toggleable&, void);
+ DECL_LINK(RatioHdl_Impl, weld::Toggleable&, void);
void InitPos(RndStdIds nAnchorType, sal_uInt16 nH, sal_uInt16 nHRel,
sal_uInt16 nV, sal_uInt16 nVRel,
diff --git a/cui/source/inc/textanim.hxx b/cui/source/inc/textanim.hxx
index 8f4767e22fe8..010d3954716c 100644
--- a/cui/source/inc/textanim.hxx
+++ b/cui/source/inc/textanim.hxx
@@ -96,7 +96,7 @@ class SvxTextTabDialog : public SfxTabDialogController
private:
const SdrView* pView;
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
public:
SvxTextTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrView* pView);
diff --git a/cui/source/inc/textattr.hxx b/cui/source/inc/textattr.hxx
index d48e87b7d759..a6a7f2bd6f46 100644
--- a/cui/source/inc/textattr.hxx
+++ b/cui/source/inc/textattr.hxx
@@ -19,7 +19,7 @@
#pragma once
#include <svx/dlgctrl.hxx>
-#include <svx/svdobj.hxx>
+#include <svx/svdobjkind.hxx>
class SdrView;
diff --git a/cui/source/inc/thesdlg.hxx b/cui/source/inc/thesdlg.hxx
index de085d678682..05865d68d92f 100644
--- a/cui/source/inc/thesdlg.hxx
+++ b/cui/source/inc/thesdlg.hxx
@@ -26,6 +26,8 @@
#include <memory>
#include <stack>
+struct ImplSVEvent;
+
class SvxThesaurusDialog : public SfxDialogController
{
Idle m_aModifyIdle;
@@ -43,6 +45,7 @@ class SvxThesaurusDialog : public SfxDialogController
std::unique_ptr<weld::Entry> m_xReplaceEdit;
std::unique_ptr<weld::ComboBox> m_xLangLB;
std::unique_ptr<weld::Button> m_xReplaceBtn;
+ ImplSVEvent* m_nSelectFirstEvent;
public:
virtual ~SvxThesaurusDialog() override;
diff --git a/cui/source/inc/tipofthedaydlg.hxx b/cui/source/inc/tipofthedaydlg.hxx
index 69af1996e454..1f86d1bf238c 100644
--- a/cui/source/inc/tipofthedaydlg.hxx
+++ b/cui/source/inc/tipofthedaydlg.hxx
@@ -27,7 +27,7 @@ class TipOfTheDayDialog : public weld::GenericDialogController
{
private:
CuiGraphicPreviewWindow m_aPreview;
- weld::Window* m_pParent;
+ css::uno::Reference<css::awt::XWindow> m_xParent;
std::unique_ptr<weld::Label> m_pText;
std::unique_ptr<weld::CheckButton> m_pShowTip;
diff --git a/cui/source/inc/transfrm.hxx b/cui/source/inc/transfrm.hxx
index 30b789dc73c4..78ffd84e2794 100644
--- a/cui/source/inc/transfrm.hxx
+++ b/cui/source/inc/transfrm.hxx
@@ -19,6 +19,7 @@
#pragma once
#include <svx/dlgctrl.hxx>
+#include <svx/dlgutil.hxx>
#include <svx/dialcontrol.hxx>
#include <svx/anchorid.hxx>
#include <basegfx/range/b2drange.hxx>
@@ -41,7 +42,7 @@ private:
SvxAnchorIds nAnchorCtrls;
Link<SvxSwFrameValidation&,void> aValidateLink;
- virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override;
public:
SvxTransformTabDialog(weld::Window* pParent, const SfxItemSet* pAttr,
@@ -91,6 +92,9 @@ private:
SvxRectCtl m_aCtlPos;
SvxRectCtl m_aCtlSize;
+ SvxRatioConnector m_aRatioTop;
+ SvxRatioConnector m_aRatioBottom;
+
// position
std::unique_ptr<weld::Widget> m_xFlPosition;
std::unique_ptr<weld::MetricSpinButton> m_xMtrPosX;
@@ -104,6 +108,9 @@ private:
std::unique_ptr<weld::Label> m_xFtHeight;
std::unique_ptr<weld::MetricSpinButton> m_xMtrHeight;
std::unique_ptr<weld::CheckButton> m_xCbxScale;
+ std::unique_ptr<weld::Image> m_xCbxScaleImg;
+ std::unique_ptr<weld::CustomWeld> m_xImgRatioTop;
+ std::unique_ptr<weld::CustomWeld> m_xImgRatioBottom;
std::unique_ptr<weld::CustomWeld> m_xCtlSize;
// protect
diff --git a/cui/source/inc/treeopt.hxx b/cui/source/inc/treeopt.hxx
index 541726b27a90..367d42c8ff50 100644
--- a/cui/source/inc/treeopt.hxx
+++ b/cui/source/inc/treeopt.hxx
@@ -25,6 +25,9 @@
#include <sfx2/basedlgs.hxx>
#include <svtools/restartdialog.hxx>
+#include <utility>
+#include <i18nutil/searchopt.hxx>
+#include <vcl/timer.hxx>
class SfxModule;
class SfxShell;
@@ -36,8 +39,8 @@ struct OrderedEntry
sal_Int32 m_nIndex;
OUString m_sId;
- OrderedEntry( sal_Int32 nIndex, const OUString& rId ) :
- m_nIndex( nIndex ), m_sId( rId ) {}
+ OrderedEntry( sal_Int32 nIndex, OUString aId ) :
+ m_nIndex( nIndex ), m_sId(std::move( aId )) {}
};
@@ -61,15 +64,15 @@ struct OptionsLeaf
OUString m_sGroupId;
sal_Int32 m_nGroupIndex;
- OptionsLeaf( const OUString& rLabel,
- const OUString& rPageURL,
- const OUString& rEventHdl,
- const OUString& rGroupId,
+ OptionsLeaf( OUString aLabel,
+ OUString aPageURL,
+ OUString aEventHdl,
+ OUString aGroupId,
sal_Int32 nGroupIndex ) :
- m_sLabel( rLabel ),
- m_sPageURL( rPageURL ),
- m_sEventHdl( rEventHdl ),
- m_sGroupId( rGroupId ),
+ m_sLabel(std::move( aLabel )),
+ m_sPageURL(std::move( aPageURL )),
+ m_sEventHdl(std::move( aEventHdl )),
+ m_sGroupId(std::move( aGroupId )),
m_nGroupIndex( nGroupIndex ) {}
};
@@ -84,11 +87,11 @@ struct OptionsNode
std::vector< std::vector< std::unique_ptr<OptionsLeaf> > >
m_aGroupedLeaves;
- OptionsNode( const OUString& rId,
- const OUString& rLabel,
+ OptionsNode( OUString aId,
+ OUString aLabel,
bool bAllModules ) :
- m_sId( rId ),
- m_sLabel( rLabel ),
+ m_sId(std::move( aId )),
+ m_sLabel(std::move( aLabel )),
m_bAllModules( bAllModules ) {}
};
@@ -113,6 +116,7 @@ struct Module;
class ExtensionsTabPage;
class SvxColorTabPage;
struct OptionsGroupInfo;
+struct OptionsPageIdInfo;
class OfaTreeOptionsDialog final: public SfxOkDialogController
{
@@ -123,11 +127,38 @@ private:
std::unique_ptr<weld::TreeView> xTreeLB;
std::unique_ptr<weld::Container> xTabBox;
+ std::unique_ptr<weld::Entry> m_xSearchEdit;
weld::Window* m_pParent;
std::unique_ptr<weld::TreeIter> xCurrentPageEntry;
+ // For search
+ Timer m_aUpdateDataTimer;
+ i18nutil::SearchOptions2 m_options;
+
+ bool bIsFirtsInitialize;
+ std::vector<OptionsPageIdInfo*> m_aTreePageIds;
+ typedef std::vector<std::pair<sal_uInt16, std::vector<sal_uInt16>>> VectorOfMatchedIds;
+
+ void generalOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_GENERAL_OPTIONS
+ void loadAndSaveOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_FILTER_DLG
+ void languageOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_LANGUAGE_OPTIONS
+ void writerOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SW_EDITOPTIONS
+ void writerWebOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SW_ONLINEOPTIONS
+ void calcOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SC_EDITOPTIONS
+ void impressOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SD_EDITOPTIONS
+ void drawOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SD_GRAPHIC_OPTIONS
+ void mathOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SM_EDITOPTIONS
+ void databaseOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SB_STARBASEOPTIONS
+ void chartOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SCH_EDITOPTIONS
+ void internetOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_INET_DLG
+
+ void clearOptionsDialog();
+ void selectFirstEntry();
+ void storeOptionsTree();
+ void showDialog(VectorOfMatchedIds& pSearchIds);
+
OUString sTitle;
bool bForgetSelection;
@@ -141,14 +172,13 @@ private:
css::uno::Reference < css::awt::XContainerWindowProvider >
m_xContainerWinProvider;
+ css::uno::Reference<css::frame::XFrame> m_xFrame;
static LastPageSaver* pLastPageSaver;
std::optional<SfxItemSet> CreateItemSet( sal_uInt16 nId );
static void ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet );
- void InitTreeAndHandler();
void Initialize( const css::uno::Reference< css::frame::XFrame >& _xFrame );
- void InitWidgets();
void LoadExtensionOptions( std::u16string_view rExtensionId );
static OUString GetModuleIdentifier( const css::uno::Reference<
@@ -163,8 +193,13 @@ private:
DECL_LINK(BackHdl_Impl, weld::Button&, void);
DECL_LINK(ApplyHdl_Impl, weld::Button&, void);
DECL_LINK(HelpHdl_Impl, weld::Widget&, bool);
+ DECL_LINK(SearchUpdateHdl, weld::Entry&, void);
+ DECL_LINK(ImplUpdateDataHdl, Timer*, void);
+ DECL_LINK(FocusOut_Impl, weld::Widget&, void);
void ResetCurrentPageFromConfig();
void SelectHdl_Impl();
+ void initializeCurrentDialog(OptionsPageInfo*& pPageInfo,
+ std::unique_ptr<weld::TreeIter>& xEntry);
void InitItemSets(OptionsGroupInfo& rGroupInfo);
@@ -173,6 +208,13 @@ private:
virtual weld::Button& GetOKButton() const override { return *xOkPB; }
virtual const SfxItemSet* GetExampleSet() const override { return nullptr; }
+ int applySearchFilter(const OUString& rSearchTerm);
+
+ void ImplDestroy();
+
+ // Common initialization
+ OfaTreeOptionsDialog(weld::Window* pParent, bool fromExtensionManager);
+
public:
OfaTreeOptionsDialog(weld::Window* pParent,
const css::uno::Reference< css::frame::XFrame >& _xFrame,
@@ -189,8 +231,12 @@ public:
void ActivatePage( const OUString& rPageURL );
void ApplyItemSets();
- // helper functions to call the language settings TabPage from the SpellDialog
+ // initialize all dialogs in "Tools > Options"
+ void initializeAllDialogs();
+
+ // helper functions to call the Languages and Locales TabPage from the SpellDialog
static void ApplyLanguageOptions(const SfxItemSet& rSet);
+ static OUString getCurrentFactory_Impl( const css::uno::Reference< css::frame::XFrame >& _xFrame );
void SetNeedsRestart( svtools::RestartReason eReason );
};
@@ -219,7 +265,7 @@ private:
public:
ExtensionsTabPage(
weld::Container* pParent,
- const OUString& rPageURL, const OUString& rEvtHdl,
+ OUString rPageURL, OUString aEvtHdl,
const css::uno::Reference<
css::awt::XContainerWindowProvider >& rProvider );
@@ -235,4 +281,13 @@ public:
void SavePage();
};
+// class TreeOptHelper ---------------------------------------------------
+
+class TreeOptHelper
+{
+public:
+ static void storeStringsOfDialog(sal_uInt16 nPageId, const OUString& sPageStrings);
+ static OUString getStringsFromDialog(sal_uInt16 nPageId);
+};
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/whatsnew.hxx b/cui/source/inc/whatsnew.hxx
new file mode 100644
index 000000000000..979fff919df2
--- /dev/null
+++ b/cui/source/inc/whatsnew.hxx
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ */
+
+#pragma once
+
+#include <vcl/customweld.hxx>
+#include <vcl/weld.hxx>
+#include "cuigrfflt.hxx"
+
+class WhatsNewImg : public weld::CustomWidgetController
+{
+ OUString m_sImage;
+ OUString m_sText;
+ virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override;
+
+public:
+ WhatsNewImg() {}
+ void Update(const OUString& sImage, const OUString& sText)
+ {
+ m_sImage = sImage;
+ m_sText = sText;
+ SetAccessibleName(m_sText);
+ Invalidate();
+ }
+};
+
+class WhatsNewProgress : public weld::CustomWidgetController
+{
+ sal_Int32 m_nTotal;
+ sal_Int32 m_nCurrent;
+ virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override;
+
+public:
+ WhatsNewProgress()
+ : m_nTotal(0)
+ , m_nCurrent(0)
+ {
+ }
+ void Update(const sal_Int32 nCurrent, const sal_Int32 nTotal)
+ {
+ m_nTotal = nTotal;
+ m_nCurrent = nCurrent;
+ Invalidate();
+ }
+};
+
+class WhatsNewDialog : public weld::GenericDialogController
+{
+private:
+ const bool m_bWelcome;
+
+ WhatsNewImg m_aPreview;
+ WhatsNewProgress m_aProgress;
+
+ std::unique_ptr<weld::Button> m_pPrevBtn;
+ std::unique_ptr<weld::Button> m_pNextBtn;
+ std::unique_ptr<weld::CustomWeld> m_pProgress;
+ std::unique_ptr<weld::CustomWeld> m_pImage;
+
+ DECL_LINK(OnPrevClick, weld::Button&, void);
+ DECL_LINK(OnNextClick, weld::Button&, void);
+
+ void LoadImage(); // loads WHATSNEW_STRINGARRAY[m_nCurrentNews]
+
+ sal_Int32 m_nNumberOfNews;
+ sal_Int32 m_nCurrentNews;
+
+public:
+ WhatsNewDialog(weld::Window* pParent, const bool bWelcome);
+ virtual ~WhatsNewDialog() override;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/cui/source/options/certpath.cxx b/cui/source/options/certpath.cxx
index 0932ac2e7a84..cbc5e8af2676 100644
--- a/cui/source/options/certpath.cxx
+++ b/cui/source/options/certpath.cxx
@@ -11,23 +11,23 @@
#include <osl/file.hxx>
#include <osl/security.hxx>
#include <sfx2/filedlghelper.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include "certpath.hxx"
#include <com/sun/star/xml/crypto/NSSInitializer.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
+#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
#include <comphelper/processfactory.hxx>
using namespace ::com::sun::star;
CertPathDialog::CertPathDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/certdialog.ui", "CertDialog")
- , m_xManualButton(m_xBuilder->weld_button("add"))
- , m_xOKButton(m_xBuilder->weld_button("ok"))
- , m_xCertPathList(m_xBuilder->weld_tree_view("paths"))
- , m_sAddDialogText(m_xBuilder->weld_label("certdir")->get_label())
- , m_sManualLabel(m_xBuilder->weld_label("manual")->get_label())
+ : GenericDialogController(pParent, u"cui/ui/certdialog.ui"_ustr, u"CertDialog"_ustr)
+ , m_xManualButton(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xOKButton(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xCertPathList(m_xBuilder->weld_tree_view(u"paths"_ustr))
+ , m_sAddDialogText(m_xBuilder->weld_label(u"certdir"_ustr)->get_label())
+ , m_sManualLabel(m_xBuilder->weld_label(u"manual"_ustr)->get_label())
{
m_xCertPathList->set_size_request(m_xCertPathList->get_approximate_digit_width() * 70,
m_xCertPathList->get_height_rows(6));
@@ -60,13 +60,13 @@ void CertPathDialog::Init()
"thunderbird"
};
- for (const auto& rNSSProfile : std::as_const(aProductList))
+ for (const auto& rNSSProfile : aProductList)
{
if (rNSSProfile.Type == mozilla::MozillaProductType_Default)
{
if (rNSSProfile.Name == "MOZILLA_CERTIFICATE_FOLDER" && !rNSSProfile.Path.isEmpty())
{
- AddCertPath("$MOZILLA_CERTIFICATE_FOLDER", rNSSProfile.Path);
+ AddCertPath(u"$MOZILLA_CERTIFICATE_FOLDER"_ustr, rNSSProfile.Path);
m_xCertPathList->set_sensitive(false);
}
else if (rNSSProfile.Name == "MANUAL")
diff --git a/cui/source/options/cfgchart.cxx b/cui/source/options/cfgchart.cxx
index 5649c4ea53f3..8d1bd5e4130e 100644
--- a/cui/source/options/cfgchart.cxx
+++ b/cui/source/options/cfgchart.cxx
@@ -23,6 +23,8 @@
#include "cfgchart.hxx"
#include <dialmgr.hxx>
#include <strings.hrc>
+#include <utility>
+#include <officecfg/Office/Chart.hxx>
#define ROW_COLOR_COUNT 12
@@ -115,14 +117,14 @@ OUString SvxChartColorTable::getDefaultName( size_t _nIndex )
{
OUString aName;
- OUString sDefaultNamePrefix;
- OUString sDefaultNamePostfix;
- OUString aResName( CuiResId( RID_SVXSTR_DIAGRAM_ROW ) );
+ std::u16string_view sDefaultNamePrefix;
+ std::u16string_view sDefaultNamePostfix;
+ OUString aResName( CuiResId( RID_CUISTR_DIAGRAM_ROW ) );
sal_Int32 nPos = aResName.indexOf( "$(ROW)" );
if( nPos != -1 )
{
- sDefaultNamePrefix = aResName.copy( 0, nPos );
- sDefaultNamePostfix = aResName.copy( nPos + sizeof( "$(ROW)" ) - 1 );
+ sDefaultNamePrefix = aResName.subView( 0, nPos );
+ sDefaultNamePostfix = aResName.subView( nPos + sizeof( "$(ROW)" ) - 1 );
}
else
{
@@ -158,109 +160,63 @@ bool SvxChartColorTable::operator==( const SvxChartColorTable & _rOther ) const
-SvxChartOptions::SvxChartOptions() :
- ::utl::ConfigItem( "Office.Chart" ),
- mbIsInitialized( false ),
- maPropertyNames{ "DefaultColor/Series" }
+SvxChartColorTable SvxChartOptions::GetDefaultColors()
{
-}
+ // 1. default colors for series
+ uno::Sequence< sal_Int64 > aColorSeq = officecfg::Office::Chart::DefaultColor::Series::get();
-SvxChartOptions::~SvxChartOptions()
-{
-}
-
-const SvxChartColorTable& SvxChartOptions::GetDefaultColors()
-{
- if ( !mbIsInitialized )
- mbIsInitialized = RetrieveOptions();
- return maDefColors;
-}
-
-void SvxChartOptions::SetDefaultColors( const SvxChartColorTable& aCol )
-{
- maDefColors = aCol;
- SetModified();
-}
+ sal_Int32 nCount = aColorSeq.getLength();
+ Color aCol;
-bool SvxChartOptions::RetrieveOptions()
-{
- // get sequence containing all properties
-
- uno::Sequence< OUString > aNames = GetPropertyNames();
- uno::Sequence< uno::Any > aProperties( aNames.getLength());
- aProperties = GetProperties( aNames );
-
- if( aProperties.getLength() == aNames.getLength())
+ // create strings for entry names
+ OUString aResName( CuiResId( RID_CUISTR_DIAGRAM_ROW ) );
+ std::u16string_view aPrefix, aPostfix;
+ OUString aName;
+ sal_Int32 nPos = aResName.indexOf( "$(ROW)" );
+ if( nPos != -1 )
{
- // 1. default colors for series
- maDefColors.clear();
- uno::Sequence< sal_Int64 > aColorSeq;
- aProperties[ 0 ] >>= aColorSeq;
-
- sal_Int32 nCount = aColorSeq.getLength();
- Color aCol;
-
- // create strings for entry names
- OUString aResName( CuiResId( RID_SVXSTR_DIAGRAM_ROW ) );
- OUString aPrefix, aPostfix, aName;
- sal_Int32 nPos = aResName.indexOf( "$(ROW)" );
- if( nPos != -1 )
- {
- aPrefix = aResName.copy( 0, nPos );
- sal_Int32 idx = nPos + sizeof( "$(ROW)" ) - 1;
- aPostfix = aResName.copy( idx );
- }
- else
- aPrefix = aResName;
-
- // set color values
- for( sal_Int32 i=0; i < nCount; i++ )
- {
- aCol = Color(ColorTransparency, aColorSeq[ i ]);
-
- aName = aPrefix + OUString::number(i + 1) + aPostfix;
-
- maDefColors.append( XColorEntry( aCol, aName ));
- }
- return true;
+ aPrefix = aResName.subView( 0, nPos );
+ sal_Int32 idx = nPos + sizeof( "$(ROW)" ) - 1;
+ aPostfix = aResName.subView( idx );
}
- return false;
-}
-
-void SvxChartOptions::ImplCommit()
-{
- uno::Sequence< OUString > aNames = GetPropertyNames();
- uno::Sequence< uno::Any > aValues( aNames.getLength());
+ else
+ aPrefix = aResName;
- if( aValues.hasElements() )
+ // set color values
+ SvxChartColorTable aDefColors;
+ for( sal_Int32 i=0; i < nCount; i++ )
{
- // 1. default colors for series
- // convert list to sequence
- const size_t nCount = maDefColors.size();
- uno::Sequence< sal_Int64 > aColors( nCount );
- auto aColorsRange = asNonConstRange(aColors);
- for( size_t i=0; i < nCount; i++ )
- {
- Color aData = maDefColors.getColor( i );
- aColorsRange[ i ] = sal_uInt32(aData);
- }
+ aCol = Color(ColorTransparency, aColorSeq[ i ]);
+
+ aName = aPrefix + OUString::number(i + 1) + aPostfix;
- aValues.getArray()[0] <<= aColors;
+ aDefColors.append( XColorEntry( aCol, aName ));
}
- PutProperties( aNames, aValues );
+ return aDefColors;
}
-void SvxChartOptions::Notify( const css::uno::Sequence< OUString >& )
+void SvxChartOptions::SetDefaultColors( const SvxChartColorTable& rDefColors )
{
+ // 1. default colors for series
+ // convert list to sequence
+ const size_t nCount = rDefColors.size();
+ uno::Sequence< sal_Int64 > aColors( nCount );
+ auto aColorsRange = asNonConstRange(aColors);
+ for( size_t i=0; i < nCount; i++ )
+ {
+ Color aData = rDefColors.getColor( i );
+ aColorsRange[ i ] = sal_uInt32(aData);
+ }
+ std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Chart::DefaultColor::Series::set(aColors, batch);
+ batch->commit();
}
-
-
-SvxChartColorTableItem::SvxChartColorTableItem( sal_uInt16 nWhich_, const SvxChartColorTable& aTable ) :
+SvxChartColorTableItem::SvxChartColorTableItem( sal_uInt16 nWhich_, SvxChartColorTable aTable ) :
SfxPoolItem( nWhich_ ),
- m_aColorTable( aTable )
+ m_aColorTable(std::move( aTable ))
{
}
diff --git a/cui/source/options/cfgchart.hxx b/cui/source/options/cfgchart.hxx
index acbe41a9b41e..ce39b0a1734a 100644
--- a/cui/source/options/cfgchart.hxx
+++ b/cui/source/options/cfgchart.hxx
@@ -19,10 +19,8 @@
#pragma once
-#include <unotools/configitem.hxx>
#include <svl/poolitem.hxx>
#include <svx/xtable.hxx>
-
#include <vector>
class SvxChartColorTable
@@ -51,29 +49,10 @@ public:
// all options
-class SvxChartOptions : public ::utl::ConfigItem
+namespace SvxChartOptions
{
-private:
- SvxChartColorTable maDefColors;
- bool mbIsInitialized;
-
- css::uno::Sequence< OUString >
- maPropertyNames;
-
- const css::uno::Sequence< OUString >& GetPropertyNames() const
- { return maPropertyNames; }
- bool RetrieveOptions();
-
- virtual void ImplCommit() override;
-
-public:
- SvxChartOptions();
- virtual ~SvxChartOptions() override;
-
- const SvxChartColorTable& GetDefaultColors();
- void SetDefaultColors( const SvxChartColorTable& aCol );
-
- virtual void Notify( const css::uno::Sequence< OUString >& _rPropertyNames) override;
+ SvxChartColorTable GetDefaultColors();
+ void SetDefaultColors( const SvxChartColorTable& aCol );
};
@@ -86,7 +65,7 @@ public:
class SvxChartColorTableItem : public SfxPoolItem
{
public:
- SvxChartColorTableItem( sal_uInt16 nWhich, const SvxChartColorTable& );
+ SvxChartColorTableItem( sal_uInt16 nWhich, SvxChartColorTable );
virtual SvxChartColorTableItem* Clone( SfxItemPool *pPool = nullptr ) const override;
virtual bool operator==( const SfxPoolItem& ) const override;
diff --git a/cui/source/options/connpoolconfig.cxx b/cui/source/options/connpoolconfig.cxx
index 8bf95ee0db5d..12aee9933f4e 100644
--- a/cui/source/options/connpoolconfig.cxx
+++ b/cui/source/options/connpoolconfig.cxx
@@ -36,50 +36,21 @@ namespace offapp
using namespace ::utl;
using namespace ::com::sun::star::uno;
-
- static OUString getConnectionPoolNodeName()
- {
- return "org.openoffice.Office.DataAccess/ConnectionPool";
- }
-
-
- static OUString getEnablePoolingNodeName()
- {
- return "EnablePooling";
- }
-
-
- static OUString getDriverSettingsNodeName()
- {
- return "DriverSettings";
- }
-
-
- static OUString getDriverNameNodeName()
- {
- return "DriverName";
- }
-
-
- static OUString getEnableNodeName()
- {
- return "Enable";
- }
-
-
- static OUString getTimeoutNodeName()
- {
- return "Timeout";
- }
+ constexpr OUString CONNECTIONPOOL_NODENAME = u"org.openoffice.Office.DataAccess/ConnectionPool"_ustr;
+ constexpr OUString ENABLE_POOLING = u"EnablePooling"_ustr;
+ constexpr OUString DRIVER_SETTINGS = u"DriverSettings"_ustr;
+ constexpr OUString DRIVER_NAME = u"DriverName"_ustr;
+ constexpr OUString ENABLE = u"Enable"_ustr;
+ constexpr OUString TIMEOUT = u"Timeout"_ustr;
void ConnectionPoolConfig::GetOptions(SfxItemSet& _rFillItems)
{
// the config node where all pooling relevant info are stored under
OConfigurationTreeRoot aConnectionPoolRoot = OConfigurationTreeRoot::createWithComponentContext(
- ::comphelper::getProcessComponentContext(), getConnectionPoolNodeName(), -1, OConfigurationTreeRoot::CM_READONLY);
+ ::comphelper::getProcessComponentContext(), CONNECTIONPOOL_NODENAME, -1, OConfigurationTreeRoot::CM_READONLY);
// the global "enabled" flag
- Any aEnabled = aConnectionPoolRoot.getNodeValue(getEnablePoolingNodeName());
+ Any aEnabled = aConnectionPoolRoot.getNodeValue(ENABLE_POOLING);
bool bEnabled = true;
aEnabled >>= bEnabled;
_rFillItems.Put(SfxBoolItem(SID_SB_POOLING_ENABLED, bEnabled));
@@ -94,17 +65,14 @@ namespace offapp
}
// then look for which of them settings are stored in the configuration
- OConfigurationNode aDriverSettings = aConnectionPoolRoot.openNode(getDriverSettingsNodeName());
+ OConfigurationNode aDriverSettings = aConnectionPoolRoot.openNode(DRIVER_SETTINGS);
- Sequence< OUString > aDriverKeys = aDriverSettings.getNodeNames();
- const OUString* pDriverKeys = aDriverKeys.getConstArray();
- const OUString* pDriverKeysEnd = pDriverKeys + aDriverKeys.getLength();
- for (;pDriverKeys != pDriverKeysEnd; ++pDriverKeys)
+ for (auto& driverKey : aDriverSettings.getNodeNames())
{
// the name of the driver in this round
- OConfigurationNode aThisDriverSettings = aDriverSettings.openNode(*pDriverKeys);
+ OConfigurationNode aThisDriverSettings = aDriverSettings.openNode(driverKey);
OUString sThisDriverName;
- aThisDriverSettings.getNodeValue(getDriverNameNodeName()) >>= sThisDriverName;
+ aThisDriverSettings.getNodeValue(DRIVER_NAME) >>= sThisDriverName;
// look if we (resp. the driver manager) know this driver
// doing O(n) search here, which is expensive, but this doesn't matter in this small case ...
@@ -126,8 +94,8 @@ namespace offapp
}
// now fill this entry with the settings from the configuration
- aThisDriverSettings.getNodeValue(getEnableNodeName()) >>= aLookup->bEnabled;
- aThisDriverSettings.getNodeValue(getTimeoutNodeName()) >>= aLookup->nTimeoutSeconds;
+ aThisDriverSettings.getNodeValue(ENABLE) >>= aLookup->bEnabled;
+ aThisDriverSettings.getNodeValue(TIMEOUT) >>= aLookup->nTimeoutSeconds;
}
_rFillItems.Put(DriverPoolingSettingsItem(SID_SB_DRIVER_TIMEOUTS, aSettings));
@@ -138,7 +106,7 @@ namespace offapp
{
// the config node where all pooling relevant info are stored under
OConfigurationTreeRoot aConnectionPoolRoot = OConfigurationTreeRoot::createWithComponentContext(
- ::comphelper::getProcessComponentContext(), getConnectionPoolNodeName());
+ ::comphelper::getProcessComponentContext(), CONNECTIONPOOL_NODENAME);
if (!aConnectionPoolRoot.isValid())
// already asserted by the OConfigurationTreeRoot
@@ -151,7 +119,7 @@ namespace offapp
if (pEnabled)
{
bool bEnabled = pEnabled->GetValue();
- aConnectionPoolRoot.setNodeValue(getEnablePoolingNodeName(), Any(bEnabled));
+ aConnectionPoolRoot.setNodeValue(ENABLE_POOLING, Any(bEnabled));
bNeedCommit = true;
}
@@ -159,7 +127,7 @@ namespace offapp
const DriverPoolingSettingsItem* pDriverSettings = _rSourceItems.GetItem<DriverPoolingSettingsItem>(SID_SB_DRIVER_TIMEOUTS);
if (pDriverSettings)
{
- OConfigurationNode aDriverSettings = aConnectionPoolRoot.openNode(getDriverSettingsNodeName());
+ OConfigurationNode aDriverSettings = aConnectionPoolRoot.openNode(DRIVER_SETTINGS);
if (!aDriverSettings.isValid())
return;
@@ -179,9 +147,9 @@ namespace offapp
aThisDriverSettings = aDriverSettings.createNode(newSetting.sName);
// set the values
- aThisDriverSettings.setNodeValue(getDriverNameNodeName(), Any(sThisDriverName));
- aThisDriverSettings.setNodeValue(getEnableNodeName(), Any(newSetting.bEnabled));
- aThisDriverSettings.setNodeValue(getTimeoutNodeName(), Any(newSetting.nTimeoutSeconds));
+ aThisDriverSettings.setNodeValue(DRIVER_NAME, Any(sThisDriverName));
+ aThisDriverSettings.setNodeValue(ENABLE, Any(newSetting.bEnabled));
+ aThisDriverSettings.setNodeValue(TIMEOUT, Any(newSetting.nTimeoutSeconds));
}
bNeedCommit = true;
}
diff --git a/cui/source/options/connpooloptions.cxx b/cui/source/options/connpooloptions.cxx
index 1e1fa02a5529..32c5cd7033e0 100644
--- a/cui/source/options/connpooloptions.cxx
+++ b/cui/source/options/connpooloptions.cxx
@@ -25,6 +25,8 @@
#include <svx/databaseregistrationui.hxx>
#include <strings.hrc>
#include <dialmgr.hxx>
+#include <officecfg/Office/DataAccess.hxx>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
namespace offapp
{
@@ -45,17 +47,20 @@ namespace offapp
}
ConnectionPoolOptionsPage::ConnectionPoolOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet)
- : SfxTabPage(pPage, pController, "cui/ui/connpooloptions.ui", "ConnPoolPage", &_rAttrSet)
- , m_sYes(CuiResId(RID_SVXSTR_YES))
- , m_sNo(CuiResId(RID_SVXSTR_NO))
- , m_xEnablePooling(m_xBuilder->weld_check_button("connectionpooling"))
- , m_xDriversLabel(m_xBuilder->weld_label("driverslabel"))
- , m_xDriverList(m_xBuilder->weld_tree_view("driverlist"))
- , m_xDriverLabel(m_xBuilder->weld_label("driverlabel"))
- , m_xDriver(m_xBuilder->weld_label("driver"))
- , m_xDriverPoolingEnabled(m_xBuilder->weld_check_button("enablepooling"))
- , m_xTimeoutLabel(m_xBuilder->weld_label("timeoutlabel"))
- , m_xTimeout(m_xBuilder->weld_spin_button("timeout"))
+ : SfxTabPage(pPage, pController, u"cui/ui/connpooloptions.ui"_ustr, u"ConnPoolPage"_ustr, &_rAttrSet)
+ , m_sYes(CuiResId(RID_CUISTR_YES))
+ , m_sNo(CuiResId(RID_CUISTR_NO))
+ , m_xEnablePooling(m_xBuilder->weld_check_button(u"connectionpooling"_ustr))
+ , m_xEnablePoolingImg(m_xBuilder->weld_widget(u"lockconnectionpooling"_ustr))
+ , m_xDriversLabel(m_xBuilder->weld_label(u"driverslabel"_ustr))
+ , m_xDriverList(m_xBuilder->weld_tree_view(u"driverlist"_ustr))
+ , m_xDriverLabel(m_xBuilder->weld_label(u"driverlabel"_ustr))
+ , m_xDriver(m_xBuilder->weld_label(u"driver"_ustr))
+ , m_xDriverPoolingEnabled(m_xBuilder->weld_check_button(u"enablepooling"_ustr))
+ , m_xDriverPoolingEnabledImg(m_xBuilder->weld_widget(u"lockenablepooling"_ustr))
+ , m_xTimeoutLabel(m_xBuilder->weld_label(u"timeoutlabel"_ustr))
+ , m_xTimeout(m_xBuilder->weld_spin_button(u"timeout"_ustr))
+ , m_xTimeoutImg(m_xBuilder->weld_widget(u"locktimeout"_ustr))
{
m_xDriverList->set_size_request(m_xDriverList->get_approximate_digit_width() * 60,
m_xDriverList->get_height_rows(15));
@@ -68,6 +73,9 @@ namespace offapp
};
m_xDriverList->set_column_fixed_widths(aWidths);
+ css::uno::Reference < css::uno::XComponentContext > xContext(::comphelper::getProcessComponentContext());
+ m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(xContext, u"*"_ustr);
+
m_xEnablePooling->connect_toggled( LINK(this, ConnectionPoolOptionsPage, OnEnabledDisabled) );
m_xDriverPoolingEnabled->connect_toggled( LINK(this, ConnectionPoolOptionsPage, OnEnabledDisabled) );
@@ -87,7 +95,7 @@ namespace offapp
else
{
m_xDriverList->set_text(nRow, m_sNo, 1);
- m_xDriverList->set_text(nRow, "-", 2);
+ m_xDriverList->set_text(nRow, u"-"_ustr, 2);
}
}
@@ -136,6 +144,8 @@ namespace offapp
const SfxBoolItem* pEnabled = _rSet.GetItem<SfxBoolItem>(SID_SB_POOLING_ENABLED);
OSL_ENSURE(pEnabled, "ConnectionPoolOptionsPage::implInitControls: missing the Enabled item!");
m_xEnablePooling->set_active(pEnabled == nullptr || pEnabled->GetValue());
+ m_xEnablePooling->set_sensitive(!officecfg::Office::DataAccess::ConnectionPool::EnablePooling::isReadOnly());
+ m_xEnablePoolingImg->set_visible(officecfg::Office::DataAccess::ConnectionPool::EnablePooling::isReadOnly());
m_xEnablePooling->save_state();
@@ -145,7 +155,7 @@ namespace offapp
UpdateDriverList(pDriverSettings->getSettings());
else
{
- OSL_FAIL("ConnectionPoolOptionsPage::implInitControls: missing the DriverTimeouts item!");
+ SAL_WARN("cui.options", "ConnectionPoolOptionsPage::implInitControls: missing the DriverTimeouts item!");
UpdateDriverList(DriverPoolingSettings());
}
saveDriverList();
@@ -159,6 +169,28 @@ namespace offapp
commitTimeoutField();
}
+ OUString ConnectionPoolOptionsPage::GetAllStrings()
+ {
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"driverslabel"_ustr, u"driverlabel"_ustr, u"timeoutlabel"_ustr, u"driver"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"connectionpooling"_ustr, u"enablepooling"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+ }
+
bool ConnectionPoolOptionsPage::FillItemSet(SfxItemSet* _rSet)
{
commitTimeoutField();
@@ -211,6 +243,20 @@ namespace offapp
m_xDriverPoolingEnabled->set_active(currentSetting.bEnabled);
m_xTimeout->set_value(currentSetting.nTimeoutSeconds);
+ OUString aConfigPath = officecfg::Office::DataAccess::ConnectionPool::DriverSettings::path() + "/" + currentSetting.sName;
+ css::beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath + "/Enable");
+ bool bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+
+ m_xDriverPoolingEnabled->set_sensitive(!bReadOnly);
+ m_xDriverPoolingEnabledImg->set_visible(bReadOnly);
+
+ aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath + "/Timeout");
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+
+ m_xTimeout->set_sensitive(!bReadOnly);
+ m_xTimeoutLabel->set_sensitive(!bReadOnly);
+ m_xTimeoutImg->set_visible(bReadOnly);
+
OnEnabledDisabled(*m_xDriverPoolingEnabled);
}
}
@@ -237,13 +283,13 @@ namespace offapp
m_xDriverList->select(-1);
m_xDriverLabel->set_sensitive(bGloballyEnabled);
m_xDriver->set_sensitive(bGloballyEnabled);
- m_xDriverPoolingEnabled->set_sensitive(bGloballyEnabled);
+ m_xDriverPoolingEnabled->set_sensitive(bGloballyEnabled && !m_xDriverPoolingEnabledImg->get_visible());
}
else
OSL_ENSURE(bLocalDriverChanged, "ConnectionPoolOptionsPage::OnEnabledDisabled: where did this come from?");
- m_xTimeoutLabel->set_sensitive(bGloballyEnabled && m_xDriverPoolingEnabled->get_active());
- m_xTimeout->set_sensitive(bGloballyEnabled && m_xDriverPoolingEnabled->get_active());
+ m_xTimeoutLabel->set_sensitive(bGloballyEnabled && m_xDriverPoolingEnabled->get_active() && !m_xTimeoutImg->get_visible());
+ m_xTimeout->set_sensitive(bGloballyEnabled && m_xDriverPoolingEnabled->get_active() && !m_xTimeoutImg->get_visible());
if (bLocalDriverChanged)
{
diff --git a/cui/source/options/connpooloptions.hxx b/cui/source/options/connpooloptions.hxx
index 549448e21ff6..2413f0d16de3 100644
--- a/cui/source/options/connpooloptions.hxx
+++ b/cui/source/options/connpooloptions.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <sfx2/tabdlg.hxx>
+#include <com/sun/star/configuration/ReadWriteAccess.hpp>
#include "connpoolsettings.hxx"
@@ -32,19 +33,25 @@ namespace offapp
DriverPoolingSettings m_aSettings;
DriverPoolingSettings m_aSavedSettings;
+ css::uno::Reference< css::configuration::XReadWriteAccess> m_xReadWriteAccess;
+
std::unique_ptr<weld::CheckButton> m_xEnablePooling;
+ std::unique_ptr<weld::Widget> m_xEnablePoolingImg;
std::unique_ptr<weld::Label> m_xDriversLabel;
std::unique_ptr<weld::TreeView> m_xDriverList;
std::unique_ptr<weld::Label> m_xDriverLabel;
std::unique_ptr<weld::Label> m_xDriver;
std::unique_ptr<weld::CheckButton> m_xDriverPoolingEnabled;
+ std::unique_ptr<weld::Widget> m_xDriverPoolingEnabledImg;
std::unique_ptr<weld::Label> m_xTimeoutLabel;
std::unique_ptr<weld::SpinButton> m_xTimeout;
+ std::unique_ptr<weld::Widget> m_xTimeoutImg;
public:
ConnectionPoolOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet);
virtual ~ConnectionPoolOptionsPage() override;
static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* _rAttrSet);
+ virtual OUString GetAllStrings() override;
private:
virtual bool FillItemSet(SfxItemSet* _rSet) override;
diff --git a/cui/source/options/connpoolsettings.cxx b/cui/source/options/connpoolsettings.cxx
index 46742d826aa5..e92b26da555f 100644
--- a/cui/source/options/connpoolsettings.cxx
+++ b/cui/source/options/connpoolsettings.cxx
@@ -17,14 +17,16 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <utility>
+
#include "connpoolsettings.hxx"
namespace offapp
{
- DriverPooling::DriverPooling( const OUString& _rName )
- :sName(_rName)
+ DriverPooling::DriverPooling( OUString _aName )
+ :sName(std::move(_aName))
,bEnabled(false)
,nTimeoutSeconds(120)
{
@@ -43,9 +45,9 @@ namespace offapp
}
- DriverPoolingSettingsItem::DriverPoolingSettingsItem( sal_uInt16 _nId, const DriverPoolingSettings &_rSettings )
+ DriverPoolingSettingsItem::DriverPoolingSettingsItem( sal_uInt16 _nId, DriverPoolingSettings _aSettings )
:SfxPoolItem(_nId)
- ,m_aSettings(_rSettings)
+ ,m_aSettings(std::move(_aSettings))
{
}
diff --git a/cui/source/options/connpoolsettings.hxx b/cui/source/options/connpoolsettings.hxx
index 8f8c6bc3b361..1e2404b88583 100644
--- a/cui/source/options/connpoolsettings.hxx
+++ b/cui/source/options/connpoolsettings.hxx
@@ -36,7 +36,7 @@ namespace offapp
bool bEnabled;
sal_Int32 nTimeoutSeconds;
- explicit DriverPooling( const OUString& _rName );
+ explicit DriverPooling( OUString _aName );
bool operator == (const DriverPooling& _rR) const;
bool operator != (const DriverPooling& _rR) const { return !operator ==(_rR); }
@@ -72,7 +72,7 @@ namespace offapp
public:
- DriverPoolingSettingsItem( sal_uInt16 _nId, const DriverPoolingSettings &_rSettings );
+ DriverPoolingSettingsItem( sal_uInt16 _nId, DriverPoolingSettings _aSettings );
virtual bool operator==( const SfxPoolItem& ) const override;
virtual DriverPoolingSettingsItem* Clone( SfxItemPool *pPool = nullptr ) const override;
diff --git a/cui/source/options/dbregister.cxx b/cui/source/options/dbregister.cxx
index 357a4af426c9..91781be7f0df 100644
--- a/cui/source/options/dbregister.cxx
+++ b/cui/source/options/dbregister.cxx
@@ -29,6 +29,7 @@
#include <tools/debug.hxx>
#include <strings.hrc>
#include <bitmaps.hlst>
+#include <utility>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <svl/itemset.hxx>
@@ -36,6 +37,7 @@
#include <dialmgr.hxx>
#include "dbregisterednamesconfig.hxx"
#include <svx/databaseregistrationui.hxx>
+#include <o3tl/string_view.hxx>
#define COL_TYPE 0
@@ -43,15 +45,13 @@ namespace svx
{
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ui::dialogs;
-using namespace ::com::sun::star::uno;
using namespace ::svt;
// class RegistrationItemSetHolder -------------------------------------------------
-RegistrationItemSetHolder::RegistrationItemSetHolder( const SfxItemSet& _rMasterSet )
- :m_aRegistrationItems( _rMasterSet )
+RegistrationItemSetHolder::RegistrationItemSetHolder( SfxItemSet _aMasterSet )
+ :m_aRegistrationItems(std::move( _aMasterSet ))
{
DbRegisteredNamesConfig::GetOptions( m_aRegistrationItems );
}
@@ -67,7 +67,7 @@ DatabaseRegistrationDialog::DatabaseRegistrationDialog(weld::Window* pParent, co
, SfxSingleTabDialogController(pParent, &getRegistrationItems())
{
SetTabPage(DbRegistrationOptionsPage::Create(get_content_area(), this, &getRegistrationItems()));
- m_xDialog->set_title(CuiResId(RID_SVXSTR_REGISTERED_DATABASES));
+ m_xDialog->set_title(CuiResId(RID_CUISTR_REGISTERED_DATABASES));
}
short DatabaseRegistrationDialog::run()
@@ -85,13 +85,13 @@ short DatabaseRegistrationDialog::run()
// class DbRegistrationOptionsPage --------------------------------------------------
DbRegistrationOptionsPage::DbRegistrationOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/dbregisterpage.ui", "DbRegisterPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/dbregisterpage.ui"_ustr, u"DbRegisterPage"_ustr, &rSet)
, m_nOldCount(0)
, m_bModified(false)
- , m_xNew(m_xBuilder->weld_button("new"))
- , m_xEdit(m_xBuilder->weld_button("edit"))
- , m_xDelete(m_xBuilder->weld_button("delete"))
- , m_xPathBox(m_xBuilder->weld_tree_view("pathctrl"))
+ , m_xNew(m_xBuilder->weld_button(u"new"_ustr))
+ , m_xEdit(m_xBuilder->weld_button(u"edit"_ustr))
+ , m_xDelete(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xPathBox(m_xBuilder->weld_tree_view(u"pathctrl"_ustr))
, m_xIter(m_xPathBox->make_iterator())
{
Size aControlSize(m_xPathBox->get_approximate_digit_width() * 60,
@@ -120,7 +120,7 @@ DbRegistrationOptionsPage::DbRegistrationOptionsPage(weld::Container* pPage, wel
DbRegistrationOptionsPage::~DbRegistrationOptionsPage()
{
for (int i = 0, nCount = m_xPathBox->n_children(); i < nCount; ++i )
- delete reinterpret_cast<DatabaseRegistration*>(m_xPathBox->get_id(i).toInt64());
+ delete weld::fromId<DatabaseRegistration*>(m_xPathBox->get_id(i));
}
std::unique_ptr<SfxTabPage> DbRegistrationOptionsPage::Create( weld::Container* pPage, weld::DialogController* pController,
@@ -129,6 +129,16 @@ std::unique_ptr<SfxTabPage> DbRegistrationOptionsPage::Create( weld::Container*
return std::make_unique<DbRegistrationOptionsPage>(pPage, pController, *rAttrSet);
}
+OUString DbRegistrationOptionsPage::GetAllStrings()
+{
+ OUString sAllStrings;
+
+ if (const auto& pString = m_xBuilder->weld_label(u"label1"_ustr))
+ sAllStrings += pString->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool DbRegistrationOptionsPage::FillItemSet( SfxItemSet* rCoreSet )
{
// the settings for the single drivers
@@ -137,7 +147,7 @@ bool DbRegistrationOptionsPage::FillItemSet( SfxItemSet* rCoreSet )
int nCount = m_xPathBox->n_children();
for (int i = 0; i < nCount; ++i)
{
- DatabaseRegistration* pRegistration = reinterpret_cast<DatabaseRegistration*>(m_xPathBox->get_id(i).toInt64());
+ DatabaseRegistration* pRegistration = weld::fromId<DatabaseRegistration*>(m_xPathBox->get_id(i));
if ( pRegistration && !pRegistration->sLocation.isEmpty() )
{
OUString sName(m_xPathBox->get_text(i, 0));
@@ -179,11 +189,11 @@ void DbRegistrationOptionsPage::Reset( const SfxItemSet* rSet )
// restore column width
std::vector<int> aWidths
{
- aUserData.getToken(0, ';', nIdx).toInt32()
+ o3tl::toInt32(o3tl::getToken(aUserData, 0, ';', nIdx))
};
m_xPathBox->set_column_fixed_widths(aWidths);
// restore sort direction
- bool bUp = aUserData.getToken(0, ';', nIdx).toInt32() != 0;
+ bool bUp = o3tl::toInt32(o3tl::getToken(aUserData, 0, ';', nIdx)) != 0;
m_xPathBox->set_sort_order(bUp);
m_xPathBox->set_sort_indicator(bUp ? TRISTATE_TRUE : TRISTATE_FALSE, COL_TYPE);
}
@@ -202,7 +212,7 @@ IMPL_LINK_NOARG(DbRegistrationOptionsPage, DeleteHdl, weld::Button&, void)
if (nEntry != -1)
{
std::unique_ptr<weld::MessageDialog> xQuery(Application::CreateMessageDialog(GetFrameWeld(),
- VclMessageType::Question, VclButtonsType::YesNo, CuiResId(RID_SVXSTR_QUERY_DELETE_CONFIRM)));
+ VclMessageType::Question, VclButtonsType::YesNo, CuiResId(RID_CUISTR_QUERY_DELETE_CONFIRM)));
if (xQuery->run() == RET_YES)
m_xPathBox->remove(nEntry);
}
@@ -225,7 +235,7 @@ IMPL_LINK_NOARG(DbRegistrationOptionsPage, EditHdl, weld::Button&, void)
if (nEntry == -1)
return;
- DatabaseRegistration* pOldRegistration = reinterpret_cast<DatabaseRegistration*>(m_xPathBox->get_id(nEntry).toInt64());
+ DatabaseRegistration* pOldRegistration = weld::fromId<DatabaseRegistration*>(m_xPathBox->get_id(nEntry));
if (!pOldRegistration || pOldRegistration->bReadOnly)
return;
@@ -250,7 +260,7 @@ IMPL_LINK( DbRegistrationOptionsPage, HeaderSelect_Impl, int, nCol, void )
IMPL_LINK_NOARG(DbRegistrationOptionsPage, PathSelect_Impl, weld::TreeView&, void)
{
- DatabaseRegistration* pRegistration = reinterpret_cast<DatabaseRegistration*>(m_xPathBox->get_selected_id().toInt64());
+ DatabaseRegistration* pRegistration = weld::fromId<DatabaseRegistration*>(m_xPathBox->get_selected_id());
bool bReadOnly = true;
if (pRegistration)
@@ -264,7 +274,7 @@ IMPL_LINK_NOARG(DbRegistrationOptionsPage, PathSelect_Impl, weld::TreeView&, voi
void DbRegistrationOptionsPage::insertNewEntry(const OUString& _sName,const OUString& _sLocation, const bool _bReadOnly)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(new DatabaseRegistration(_sLocation, _bReadOnly))));
+ OUString sId(weld::toId(new DatabaseRegistration(_sLocation, _bReadOnly)));
m_xPathBox->insert(nullptr, -1, &_sName, &sId, nullptr, nullptr, false, m_xIter.get());
if (_bReadOnly)
@@ -278,7 +288,10 @@ void DbRegistrationOptionsPage::openLinkDialog(const OUString& sOldName, const O
ODocumentLinkDialog aDlg(GetFrameWeld(), nEntry == -1);
aDlg.setLink(sOldName, sOldLocation);
- aDlg.setNameValidator(LINK( this, DbRegistrationOptionsPage, NameValidator ) );
+
+ // tdf#149195: control the name (ie check duplicate) only if new entry case
+ if (nEntry == -1)
+ aDlg.setNameValidator(LINK( this, DbRegistrationOptionsPage, NameValidator ) );
if (aDlg.run() != RET_OK)
return;
@@ -289,7 +302,7 @@ void DbRegistrationOptionsPage::openLinkDialog(const OUString& sOldName, const O
{
if (nEntry != -1)
{
- delete reinterpret_cast<DatabaseRegistration*>(m_xPathBox->get_id(nEntry).toInt64());
+ delete weld::fromId<DatabaseRegistration*>(m_xPathBox->get_id(nEntry));
m_xPathBox->remove(nEntry);
}
insertNewEntry( sNewName, sNewLocation, false );
diff --git a/cui/source/options/dbregisterednamesconfig.cxx b/cui/source/options/dbregisterednamesconfig.cxx
index b33e9ded61c5..9c087d2823d0 100644
--- a/cui/source/options/dbregisterednamesconfig.cxx
+++ b/cui/source/options/dbregisterednamesconfig.cxx
@@ -23,7 +23,7 @@
#include <com/sun/star/sdb/DatabaseContext.hpp>
#include <comphelper/processfactory.hxx>
#include <svl/itemset.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace svx
@@ -32,7 +32,6 @@ namespace svx
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdb;
- using namespace ::com::sun::star::container;
void DbRegisteredNamesConfig::GetOptions( SfxItemSet& _rFillItems )
{
@@ -44,14 +43,11 @@ namespace svx
Reference< XDatabaseContext > xRegistrations(
DatabaseContext::create(xContext) );
- Sequence< OUString > aRegistrationNames( xRegistrations->getRegistrationNames() );
- const OUString* pRegistrationName = aRegistrationNames.getConstArray();
- const OUString* pRegistrationNamesEnd = pRegistrationName + aRegistrationNames.getLength();
- for ( ; pRegistrationName != pRegistrationNamesEnd; ++pRegistrationName )
+ for (auto& registrationName : xRegistrations->getRegistrationNames())
{
- OUString sLocation( xRegistrations->getDatabaseLocation( *pRegistrationName ) );
- aSettings[ *pRegistrationName ] =
- DatabaseRegistration( sLocation, xRegistrations->isDatabaseRegistrationReadOnly( *pRegistrationName ) );
+ aSettings[registrationName] = DatabaseRegistration(
+ xRegistrations->getDatabaseLocation(registrationName),
+ xRegistrations->isDatabaseRegistrationReadOnly(registrationName));
}
}
catch( const Exception& )
@@ -100,13 +96,10 @@ namespace svx
}
// delete unused entries
- Sequence< OUString > aRegistrationNames = xRegistrations->getRegistrationNames();
- const OUString* pRegistrationName = aRegistrationNames.getConstArray();
- const OUString* pRegistrationNamesEnd = pRegistrationName + aRegistrationNames.getLength();
- for ( ; pRegistrationName != pRegistrationNamesEnd; ++pRegistrationName )
+ for (auto& registrationName : xRegistrations->getRegistrationNames())
{
- if ( rNewRegistrations.find( *pRegistrationName ) == rNewRegistrations.end() )
- xRegistrations->revokeDatabaseLocation( *pRegistrationName );
+ if (rNewRegistrations.find(registrationName) == rNewRegistrations.end())
+ xRegistrations->revokeDatabaseLocation(registrationName);
}
}
catch( const Exception& )
diff --git a/cui/source/options/dbregistersettings.hxx b/cui/source/options/dbregistersettings.hxx
index 2f86392bc9cf..b1db16542f02 100644
--- a/cui/source/options/dbregistersettings.hxx
+++ b/cui/source/options/dbregistersettings.hxx
@@ -24,6 +24,7 @@
#include <map>
#include <svl/poolitem.hxx>
+#include <utility>
namespace svx
@@ -41,8 +42,8 @@ namespace svx
{
}
- DatabaseRegistration( const OUString& _rLocation, const bool _bReadOnly )
- :sLocation( _rLocation )
+ DatabaseRegistration( OUString _aLocation, const bool _bReadOnly )
+ :sLocation(std::move( _aLocation ))
,bReadOnly( _bReadOnly )
{
}
diff --git a/cui/source/options/doclinkdialog.cxx b/cui/source/options/doclinkdialog.cxx
index 4218a18a1a04..4d4c17c2a409 100644
--- a/cui/source/options/doclinkdialog.cxx
+++ b/cui/source/options/doclinkdialog.cxx
@@ -20,7 +20,11 @@
#include "doclinkdialog.hxx"
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
#include <comphelper/processfactory.hxx>
+#include <officecfg/Office/DataAccess.hxx>
#include <strings.hrc>
#include <svl/filenotation.hxx>
#include <vcl/svapp.hxx>
@@ -39,19 +43,22 @@ namespace svx
using namespace ::svt;
ODocumentLinkDialog::ODocumentLinkDialog(weld::Window* pParent, bool _bCreateNew)
- : GenericDialogController(pParent, "cui/ui/databaselinkdialog.ui", "DatabaseLinkDialog")
- , m_xBrowseFile(m_xBuilder->weld_button("browse"))
- , m_xName(m_xBuilder->weld_entry("name"))
- , m_xOK(m_xBuilder->weld_button("ok"))
- , m_xAltTitle(m_xBuilder->weld_label("alttitle"))
- , m_xURL(new SvtURLBox(m_xBuilder->weld_combo_box("url")))
+ : GenericDialogController(pParent, u"cui/ui/databaselinkdialog.ui"_ustr, u"DatabaseLinkDialog"_ustr)
+ , m_xBrowseFile(m_xBuilder->weld_button(u"browse"_ustr))
+ , m_xName(m_xBuilder->weld_entry(u"name"_ustr))
+ , m_xOK(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xAltTitle(m_xBuilder->weld_label(u"alttitle"_ustr))
+ , m_xURL(new SvtURLBox(m_xBuilder->weld_combo_box(u"url"_ustr)))
{
if (!_bCreateNew)
m_xDialog->set_title(m_xAltTitle->get_label());
m_xURL->SetSmartProtocol(INetProtocol::File);
m_xURL->DisableHistory();
- m_xURL->SetFilter("*.odb");
+ m_xURL->SetFilter(u"*.odb");
+
+ css::uno::Reference < css::uno::XComponentContext > xContext(::comphelper::getProcessComponentContext());
+ m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(xContext, u"*"_ustr);
m_xName->connect_changed( LINK(this, ODocumentLinkDialog, OnEntryModified) );
m_xURL->connect_changed( LINK(this, ODocumentLinkDialog, OnComboBoxModified) );
@@ -81,6 +88,44 @@ namespace svx
void ODocumentLinkDialog::validate( )
{
m_xOK->set_sensitive((!m_xName->get_text().isEmpty()) && (!m_xURL->get_active_text().isEmpty()));
+
+ if (m_xOK->get_sensitive())
+ {
+ Reference<container::XNameAccess> xItemList = officecfg::Office::DataAccess::RegisteredNames::get();
+ Sequence< OUString > lNodeNames = xItemList->getElementNames();
+
+ for (const OUString& sNodeName : lNodeNames)
+ {
+ Reference<css::beans::XPropertySet> xSet;
+ xItemList->getByName(sNodeName) >>= xSet;
+
+ OUString aDatabaseName;
+ if (xSet->getPropertySetInfo()->hasPropertyByName(u"Name"_ustr))
+ xSet->getPropertyValue(u"Name"_ustr) >>= aDatabaseName;
+
+ if (!aDatabaseName.isEmpty() && m_xName->get_text() == aDatabaseName)
+ {
+ const OUString aConfigPath = officecfg::Office::DataAccess::RegisteredNames::path() + "/" + sNodeName;
+ if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath + "/Name"))
+ {
+ css::beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath + "/Name");
+ bool bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+
+ m_xURL->set_sensitive(!bReadOnly);
+ m_xBrowseFile->set_sensitive(!bReadOnly);
+ }
+
+ if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath + "/Location"))
+ {
+ css::beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath + "/Location");
+ bool bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+
+ m_xName->set_sensitive(!bReadOnly);
+ }
+ break;
+ }
+ }
+ }
}
IMPL_LINK_NOARG(ODocumentLinkDialog, OnOk, weld::Button&, void)
@@ -146,7 +191,7 @@ namespace svx
{
::sfx2::FileDialogHelper aFileDlg(
ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION, FileDialogFlags::NONE, m_xDialog.get());
- std::shared_ptr<const SfxFilter> pFilter = SfxFilter::GetFilterByName("StarOffice XML (Base)");
+ std::shared_ptr<const SfxFilter> pFilter = SfxFilter::GetFilterByName(u"StarOffice XML (Base)"_ustr);
if ( pFilter )
{
aFileDlg.AddFilter(pFilter->GetUIName(),pFilter->GetDefaultExtension());
diff --git a/cui/source/options/doclinkdialog.hxx b/cui/source/options/doclinkdialog.hxx
index 371dc6504fe9..3ea0d5027d0f 100644
--- a/cui/source/options/doclinkdialog.hxx
+++ b/cui/source/options/doclinkdialog.hxx
@@ -21,6 +21,7 @@
#include <vcl/weld.hxx>
#include <svtools/inettbc.hxx>
+#include <com/sun/star/configuration/ReadWriteAccess.hpp>
namespace svx
{
@@ -30,6 +31,8 @@ namespace svx
{
Link<const OUString&,bool> m_aNameValidator;
+ css::uno::Reference< css::configuration::XReadWriteAccess> m_xReadWriteAccess;
+
std::unique_ptr<weld::Button> m_xBrowseFile;
std::unique_ptr<weld::Entry> m_xName;
std::unique_ptr<weld::Button> m_xOK;
diff --git a/cui/source/options/fontsubs.cxx b/cui/source/options/fontsubs.cxx
index 67a34dec489e..89b217fa8d6e 100644
--- a/cui/source/options/fontsubs.cxx
+++ b/cui/source/options/fontsubs.cxx
@@ -33,16 +33,22 @@
/*********************************************************************/
SvxFontSubstTabPage::SvxFontSubstTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optfontspage.ui", "OptFontsPage", &rSet)
- , m_xUseTableCB(m_xBuilder->weld_check_button("usetable"))
- , m_xFont1CB(m_xBuilder->weld_combo_box("font1"))
- , m_xFont2CB(m_xBuilder->weld_combo_box("font2"))
- , m_xApply(m_xBuilder->weld_button("apply"))
- , m_xDelete(m_xBuilder->weld_button("delete"))
- , m_xCheckLB(m_xBuilder->weld_tree_view("checklb"))
- , m_xFontNameLB(m_xBuilder->weld_combo_box("fontname"))
- , m_xNonPropFontsOnlyCB(m_xBuilder->weld_check_button("nonpropfontonly"))
- , m_xFontHeightLB(m_xBuilder->weld_combo_box("fontheight"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optfontspage.ui"_ustr, u"OptFontsPage"_ustr, &rSet)
+ , m_xUseTableCB(m_xBuilder->weld_check_button(u"usetable"_ustr))
+ , m_xUseTableImg(m_xBuilder->weld_widget(u"lockusetable"_ustr))
+ , m_xFont1CB(m_xBuilder->weld_combo_box(u"font1"_ustr))
+ , m_xFont2CB(m_xBuilder->weld_combo_box(u"font2"_ustr))
+ , m_xApply(m_xBuilder->weld_button(u"apply"_ustr))
+ , m_xDelete(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xCheckLB(m_xBuilder->weld_tree_view(u"checklb"_ustr))
+ , m_xFontNameLB(m_xBuilder->weld_combo_box(u"fontname"_ustr))
+ , m_xFontNameLabel(m_xBuilder->weld_label(u"label8"_ustr))
+ , m_xFontNameImg(m_xBuilder->weld_widget(u"lockfontname"_ustr))
+ , m_xNonPropFontsOnlyCB(m_xBuilder->weld_check_button(u"nonpropfontonly"_ustr))
+ , m_xNonPropFontsOnlyImg(m_xBuilder->weld_widget(u"locknonpropfontonly"_ustr))
+ , m_xFontHeightLB(m_xBuilder->weld_combo_box(u"fontheight"_ustr))
+ , m_xFontHeightLabel(m_xBuilder->weld_label(u"label9"_ustr))
+ , m_xFontHeightImg(m_xBuilder->weld_widget(u"lockfontheight"_ustr))
{
m_xFont1CB->make_sorted();
m_xFont1CB->set_size_request(1, -1);
@@ -140,6 +146,28 @@ std::unique_ptr<SfxTabPage> SvxFontSubstTabPage::Create( weld::Container* pPage,
return std::make_unique<SvxFontSubstTabPage>(pPage, pController, *rAttrSet);
}
+OUString SvxFontSubstTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label4"_ustr, u"label2"_ustr, u"label3"_ustr, u"label1"_ustr, u"label8"_ustr, u"label9"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"usetable"_ustr, u"nonpropfontonly"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxFontSubstTabPage::FillItemSet( SfxItemSet* )
{
std::vector<SubstitutionStruct> aNewFontSubs;
@@ -200,18 +228,20 @@ void SvxFontSubstTabPage::Reset( const SfxItemSet* )
m_xFont2CB->thaw();
m_xFont1CB->thaw();
+ bool bEnable = !officecfg::Office::Common::Font::Substitution::Replacement::isReadOnly();
m_xUseTableCB->set_active(svtools::IsFontSubstitutionsEnabled());
+ m_xUseTableCB->set_sensitive(bEnable);
+ m_xUseTableImg->set_visible(!bEnable);
std::vector<SubstitutionStruct> aFontSubs = svtools::GetFontSubstitutions();
std::unique_ptr<weld::TreeIter> xIter(m_xCheckLB->make_iterator());
- for (sal_Int32 i = 0; i < static_cast<sal_Int32>(aFontSubs.size()); ++i)
+ for (auto const & sub: aFontSubs)
{
m_xCheckLB->append(xIter.get());
- const SubstitutionStruct* pSubs = &aFontSubs[i];
- m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceAlways ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
- m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceOnScreenOnly ? TRISTATE_TRUE : TRISTATE_FALSE, 1);
- m_xCheckLB->set_text(*xIter, pSubs->sFont, 2);
- m_xCheckLB->set_text(*xIter, pSubs->sReplaceBy, 3);
+ m_xCheckLB->set_toggle(*xIter, sub.bReplaceAlways ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xCheckLB->set_toggle(*xIter, sub.bReplaceOnScreenOnly ? TRISTATE_TRUE : TRISTATE_FALSE, 1);
+ m_xCheckLB->set_text(*xIter, sub.sFont, 2);
+ m_xCheckLB->set_text(*xIter, sub.sReplaceBy, 3);
}
m_xCheckLB->thaw();
@@ -238,6 +268,19 @@ void SvxFontSubstTabPage::Reset( const SfxItemSet* )
OUString::number(
officecfg::Office::Common::Font::SourceViewFont::FontHeight::
get()));
+
+ bEnable = !officecfg::Office::Common::Font::SourceViewFont::FontName::isReadOnly();
+ m_xFontNameLB->set_sensitive(bEnable);
+ m_xFontNameLabel->set_sensitive(bEnable);
+ m_xFontNameImg->set_visible(!bEnable);
+
+ m_xNonPropFontsOnlyCB->set_sensitive(bEnable);
+ m_xNonPropFontsOnlyImg->set_visible(!bEnable);
+
+ m_xFontHeightLB->set_sensitive(bEnable);
+ m_xFontHeightLabel->set_sensitive(bEnable);
+ m_xFontHeightImg->set_visible(!bEnable);
+
m_xNonPropFontsOnlyCB->save_state();
m_xFontHeightLB->save_value();
}
@@ -374,7 +417,7 @@ IMPL_LINK(SvxFontSubstTabPage, NonPropFontsHdl, weld::Toggleable&, rBox, void)
void SvxFontSubstTabPage::CheckEnable()
{
- bool bEnableAll = m_xUseTableCB->get_active();
+ bool bEnableAll = m_xUseTableCB->get_active() && !officecfg::Office::Common::Font::SourceViewFont::FontName::isReadOnly();
m_xCheckLB->set_sensitive(bEnableAll);
m_xFont1CB->set_sensitive(bEnableAll);
m_xFont2CB->set_sensitive(bEnableAll);
diff --git a/cui/source/options/fontsubs.hxx b/cui/source/options/fontsubs.hxx
index dc55d9434ba9..e91a9818e56c 100644
--- a/cui/source/options/fontsubs.hxx
+++ b/cui/source/options/fontsubs.hxx
@@ -28,14 +28,20 @@ class SvxFontSubstTabPage : public SfxTabPage
OUString m_sAutomatic;
std::unique_ptr<weld::CheckButton> m_xUseTableCB;
+ std::unique_ptr<weld::Widget> m_xUseTableImg;
std::unique_ptr<weld::ComboBox> m_xFont1CB;
std::unique_ptr<weld::ComboBox> m_xFont2CB;
std::unique_ptr<weld::Button> m_xApply;
std::unique_ptr<weld::Button> m_xDelete;
std::unique_ptr<weld::TreeView> m_xCheckLB;
std::unique_ptr<weld::ComboBox> m_xFontNameLB;
+ std::unique_ptr<weld::Label> m_xFontNameLabel;
+ std::unique_ptr<weld::Widget> m_xFontNameImg;
std::unique_ptr<weld::CheckButton> m_xNonPropFontsOnlyCB;
+ std::unique_ptr<weld::Widget> m_xNonPropFontsOnlyImg;
std::unique_ptr<weld::ComboBox> m_xFontHeightLB;
+ std::unique_ptr<weld::Label> m_xFontHeightLabel;
+ std::unique_ptr<weld::Widget> m_xFontHeightImg;
DECL_LINK(SelectComboBoxHdl, weld::ComboBox&, void);
DECL_LINK(ToggleHdl, weld::Toggleable&, void);
@@ -54,6 +60,9 @@ public:
SvxFontSubstTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet);
virtual ~SvxFontSubstTabPage() override;
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx
index 55941f765dd9..d7eeed7f3a56 100644
--- a/cui/source/options/optaboutconfig.cxx
+++ b/cui/source/options/optaboutconfig.cxx
@@ -7,25 +7,40 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-#include <o3tl/safeint.hxx>
#include "optaboutconfig.hxx"
+#include <o3tl/safeint.hxx>
+#include <o3tl/string_view.hxx>
-#include <comphelper/processfactory.hxx>
-#include <comphelper/sequence.hxx>
-#include <com/sun/star/configuration/theDefaultProvider.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <com/sun/star/beans/UnknownPropertyException.hpp>
+#include <com/sun/star/beans/XPropertySetInfo.hpp>
+#include <com/sun/star/configuration/ReadWriteAccess.hpp>
+#include <com/sun/star/configuration/XDocumentation.hpp>
+#include <com/sun/star/configuration/theDefaultProvider.hpp>
+#include <com/sun/star/container/XHierarchicalName.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/container/XNameReplace.hpp>
-#include <com/sun/star/container/XHierarchicalName.hpp>
-#include <com/sun/star/util/XChangesBatch.hpp>
-#include <com/sun/star/util/SearchFlags.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/Type.hxx>
+#include <com/sun/star/uno/TypeClass.hpp>
+#include <com/sun/star/util/InvalidStateException.hpp>
#include <com/sun/star/util/SearchAlgorithms2.hpp>
+#include <com/sun/star/util/SearchFlags.hpp>
+#include <com/sun/star/util/XChangesBatch.hpp>
+#include <comphelper/diagnose_ex.hxx>
+#include <comphelper/processfactory.hxx>
+#include <comphelper/sequence.hxx>
+#include <cppu/unotype.hxx>
#include <rtl/ustrbuf.hxx>
+#include <sal/log.hxx>
#include <unotools/textsearch.hxx>
+#include <utility>
#include <vcl/event.hxx>
-#include <sal/log.hxx>
-#include <tools/diagnose_ex.h>
+
+#include <dialmgr.hxx>
+#include <strings.hrc>
#include <algorithm>
#include <memory>
@@ -35,108 +50,61 @@ using namespace ::com::sun::star;
using namespace com::sun::star::uno;
using namespace com::sun::star::container;
-#define SHORT_LEN_LIMIT 7
-#define LONG_LEN_LIMIT 11
-#define HYPER_LEN_LIMIT 20
-
struct Prop_Impl
{
- OUString Name;
- OUString Property;
- Any Value;
-
- Prop_Impl( const OUString& sName, const OUString& sProperty, const Any& aValue )
- : Name( sName )
- , Property( sProperty )
- , Value( aValue )
- {}
+ OUString Name;
+ OUString Property;
+ Any Value;
+
+ Prop_Impl(OUString sName, OUString sProperty, Any aValue)
+ : Name(std::move(sName))
+ , Property(std::move(sProperty))
+ , Value(std::move(aValue))
+ {
+ }
};
struct UserData
{
bool bIsPropertyPath;
+ bool bIsReadOnly;
+ bool bWasModified;
OUString sPropertyPath;
+ Any aPropertyValue;
+ OUString sTooltip;
int aLineage;
Reference<XNameAccess> aXNameAccess;
- explicit UserData( OUString const & rPropertyPath )
- : bIsPropertyPath( true )
- , sPropertyPath(rPropertyPath)
+ explicit UserData(OUString aPropertyPath, Any aPropValue, OUString aTooltip, bool isReadOnly,
+ bool wasModified)
+ : bIsPropertyPath(true)
+ , bIsReadOnly(isReadOnly)
+ , bWasModified(wasModified)
+ , sPropertyPath(std::move(aPropertyPath))
+ , aPropertyValue(aPropValue)
+ , sTooltip(std::move(aTooltip))
, aLineage(0)
- {}
+ {
+ }
- explicit UserData( Reference<XNameAccess> const & rXNameAccess, int rIndex )
- : bIsPropertyPath( false )
+ explicit UserData(Reference<XNameAccess> const& rXNameAccess, int rIndex)
+ : bIsPropertyPath(false)
+ , bIsReadOnly(false)
+ , bWasModified(false)
, aLineage(rIndex)
- , aXNameAccess( rXNameAccess )
- {}
-};
-
-IMPL_LINK(CuiAboutConfigValueDialog, KeyInputHdl, const KeyEvent&, rKeyEvent, bool)
-{
- bool bValid = false;
- bool bNonSpace = rKeyEvent.GetKeyCode().GetCode() != KEY_SPACE;
- if (m_bNumericOnly && bNonSpace )
+ , aXNameAccess(rXNameAccess)
{
- const vcl::KeyCode& rKeyCode = rKeyEvent.GetKeyCode();
- sal_uInt16 nGroup = rKeyCode.GetGroup();
- sal_uInt16 nKey = rKeyCode.GetCode();
-
- switch ( nGroup ) {
- case KEYGROUP_NUM :
- case KEYGROUP_CURSOR :
- {
- bValid = true;
- break;
- }
-
- case KEYGROUP_MISC :
- {
- switch ( nKey ) {
- case KEY_SUBTRACT :
- case KEY_COMMA :
- case KEY_POINT :
- {
- bValid = true;
- break;
- }
-
- default :
- {
- if( nKey < KEY_ADD || nKey > KEY_EQUAL )
- bValid = true;
- break;
- }
- }
- break;
- }
-
- default :
- {
- bValid = false;
- break;
- }
- }
-
- //Select all, Copy, Paste, Cut, Undo Keys
- if ( !bValid && ( rKeyCode.IsMod1() && (
- KEY_A == nKey || KEY_C == nKey || KEY_V == nKey || KEY_X == nKey || KEY_Z == nKey ) ) )
- bValid = true;
}
- else
- bValid = true;
-
- //if value return true to claim that it has been handled
- return !bValid;
-}
+};
CuiAboutConfigTabPage::CuiAboutConfigTabPage(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/aboutconfigdialog.ui", "AboutConfig")
- , m_xResetBtn(m_xBuilder->weld_button("reset"))
- , m_xEditBtn(m_xBuilder->weld_button("edit"))
- , m_xSearchBtn(m_xBuilder->weld_button("searchButton"))
- , m_xSearchEdit(m_xBuilder->weld_entry("searchEntry"))
- , m_xPrefBox(m_xBuilder->weld_tree_view("preferences"))
+ : GenericDialogController(pParent, u"cui/ui/aboutconfigdialog.ui"_ustr, u"AboutConfig"_ustr)
+ , m_xResetBtn(m_xBuilder->weld_button(u"reset"_ustr))
+ , m_xEditBtn(m_xBuilder->weld_button(u"edit"_ustr))
+ , m_xSearchBtn(m_xBuilder->weld_button(u"searchButton"_ustr))
+ , m_xModifiedCheckBtn(m_xBuilder->weld_check_button(u"modifiedButton"_ustr))
+ , m_xSearchEdit(m_xBuilder->weld_entry(u"searchEntry"_ustr))
+ , m_xPrefBox(m_xBuilder->weld_tree_view(u"preferences"_ustr))
, m_xScratchIter(m_xPrefBox->make_iterator())
, m_bSorted(false)
{
@@ -144,25 +112,42 @@ CuiAboutConfigTabPage::CuiAboutConfigTabPage(weld::Window* pParent)
m_xPrefBox->get_height_rows(23));
m_xPrefBox->connect_column_clicked(LINK(this, CuiAboutConfigTabPage, HeaderBarClick));
- m_xEditBtn->connect_clicked(LINK( this, CuiAboutConfigTabPage, StandardHdl_Impl));
- m_xResetBtn->connect_clicked(LINK( this, CuiAboutConfigTabPage, ResetBtnHdl_Impl));
+ m_xEditBtn->connect_clicked(LINK(this, CuiAboutConfigTabPage, StandardHdl_Impl));
+ m_xResetBtn->connect_clicked(LINK(this, CuiAboutConfigTabPage, ResetBtnHdl_Impl));
m_xPrefBox->connect_row_activated(LINK(this, CuiAboutConfigTabPage, DoubleClickHdl_Impl));
m_xPrefBox->connect_expanding(LINK(this, CuiAboutConfigTabPage, ExpandingHdl_Impl));
m_xSearchBtn->connect_clicked(LINK(this, CuiAboutConfigTabPage, SearchHdl_Impl));
+ m_xModifiedCheckBtn->connect_toggled(LINK(this, CuiAboutConfigTabPage, ModifiedHdl_Impl));
m_options.AlgorithmType2 = util::SearchAlgorithms2::ABSOLUTE;
m_options.transliterateFlags |= TransliterationFlags::IGNORE_CASE;
- m_options.searchFlag |= (util::SearchFlags::REG_NOT_BEGINOFLINE |
- util::SearchFlags::REG_NOT_ENDOFLINE);
+ m_options.searchFlag
+ |= (util::SearchFlags::REG_NOT_BEGINOFLINE | util::SearchFlags::REG_NOT_ENDOFLINE);
float fWidth = m_xPrefBox->get_approximate_digit_width();
- std::vector<int> aWidths
- {
- o3tl::narrowing<int>(fWidth * 65),
- o3tl::narrowing<int>(fWidth * 20),
- o3tl::narrowing<int>(fWidth * 8)
- };
+ std::vector<int> aWidths{ o3tl::narrowing<int>(fWidth * 65), o3tl::narrowing<int>(fWidth * 20),
+ o3tl::narrowing<int>(fWidth * 8) };
m_xPrefBox->set_column_fixed_widths(aWidths);
+
+ m_xPrefBox->connect_query_tooltip(LINK(this, CuiAboutConfigTabPage, QueryTooltip));
+}
+
+IMPL_LINK(CuiAboutConfigTabPage, QueryTooltip, const weld::TreeIter&, rIter, OUString)
+{
+ UserData* pUserData = weld::fromId<UserData*>(m_xPrefBox->get_id(rIter));
+ OUStringBuffer ret;
+ if (pUserData && pUserData->bIsReadOnly)
+ {
+ ret.append(CuiResId(RID_CUISTR_OPT_READONLY));
+ }
+ if (pUserData && !pUserData->sTooltip.isEmpty())
+ {
+ if (pUserData->bIsReadOnly)
+ ret.append("\n\n");
+ ret.append(pUserData->sTooltip);
+ }
+
+ return ret.makeStringAndClear();
}
IMPL_LINK(CuiAboutConfigTabPage, HeaderBarClick, int, nColumn, void)
@@ -196,29 +181,106 @@ IMPL_LINK(CuiAboutConfigTabPage, HeaderBarClick, int, nColumn, void)
}
}
-CuiAboutConfigTabPage::~CuiAboutConfigTabPage()
+IMPL_STATIC_LINK_NOARG(CuiAboutConfigTabPage, ValidNameHdl, SvxNameDialog&, bool)
{
+ // Allow empty value
+ return true;
}
-void CuiAboutConfigTabPage::InsertEntry(const OUString& rPropertyPath, const OUString& rProp, const OUString& rStatus,
- const OUString& rType, const OUString& rValue, const weld::TreeIter* pParentEntry,
- bool bInsertToPrefBox)
+CuiAboutConfigTabPage::~CuiAboutConfigTabPage() {}
+
+void CuiAboutConfigTabPage::InsertEntry(const OUString& rPropertyPath, Any aPropertyValue,
+ const OUString& rProp, const OUString& rStatus,
+ const OUString& rType, const OUString& rValue,
+ const OUString& rTooltip,
+ const weld::TreeIter* pParentEntry, bool bInsertToPrefBox,
+ bool bIsReadOnly, bool bWasModified)
{
- m_vectorUserData.push_back(std::make_unique<UserData>(rPropertyPath));
+ bool bOnlyModified = m_xModifiedCheckBtn->get_active();
+ if (bOnlyModified && !bWasModified)
+ return;
+
+ m_vectorUserData.push_back(std::make_unique<UserData>(rPropertyPath, aPropertyValue, rTooltip,
+ bIsReadOnly, bWasModified));
if (bInsertToPrefBox)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(m_vectorUserData.back().get())));
- m_xPrefBox->insert(pParentEntry, -1, &rProp, &sId, nullptr, nullptr, false, m_xScratchIter.get());
+ OUString sId(weld::toId(m_vectorUserData.back().get()));
+ m_xPrefBox->insert(pParentEntry, -1, &rProp, &sId, nullptr, nullptr, false,
+ m_xScratchIter.get());
m_xPrefBox->set_text(*m_xScratchIter, rStatus, 1);
m_xPrefBox->set_text(*m_xScratchIter, rType, 2);
m_xPrefBox->set_text(*m_xScratchIter, rValue, 3);
+ m_xPrefBox->set_text_emphasis(*m_xScratchIter, bWasModified, -1);
+ m_xPrefBox->set_sensitive(*m_xScratchIter, !bIsReadOnly, -1);
}
else
{
- m_prefBoxEntries.push_back({rProp, rStatus, rType, rValue, m_vectorUserData.back().get()});
+ m_prefBoxEntries.push_back(
+ { rProp, rStatus, rType, rValue, m_vectorUserData.back().get() });
}
}
+void CuiAboutConfigTabPage::InputChanged()
+{
+ weld::WaitObject aWait(m_xDialog.get());
+
+ m_xPrefBox->hide();
+ m_xPrefBox->clear();
+ m_xPrefBox->freeze();
+
+ if (m_bSorted)
+ m_xPrefBox->make_unsorted();
+
+ if (m_xSearchEdit->get_text().isEmpty())
+ {
+ m_xPrefBox->clear();
+ Reference<XNameAccess> xConfigAccess = getConfigAccess(u"/"_ustr, false);
+ FillItems(xConfigAccess);
+ }
+ else
+ {
+ m_options.searchString = m_xSearchEdit->get_text();
+ utl::TextSearch textSearch(m_options);
+ for (auto const& it : m_prefBoxEntries)
+ {
+ sal_Int32 endPos, startPos = 0;
+
+ for (size_t i = 0; i < 5; ++i)
+ {
+ OUString scrTxt;
+
+ if (i == 0)
+ scrTxt = it.pUserData->sPropertyPath;
+ else if (i == 1)
+ scrTxt = it.sProp;
+ else if (i == 2)
+ scrTxt = it.sStatus;
+ else if (i == 3)
+ scrTxt = it.sType;
+ else if (i == 4)
+ scrTxt = it.sValue;
+
+ endPos = scrTxt.getLength();
+ if (textSearch.SearchForward(scrTxt, &startPos, &endPos))
+ {
+ InsertEntry(it);
+ break;
+ }
+ }
+ }
+ }
+
+ m_xPrefBox->thaw();
+ if (m_bSorted)
+ m_xPrefBox->make_sorted();
+
+ m_xPrefBox->all_foreach([this](weld::TreeIter& rEntry) {
+ m_xPrefBox->expand_row(rEntry);
+ return false;
+ });
+ m_xPrefBox->show();
+}
+
void CuiAboutConfigTabPage::Reset()
{
weld::WaitObject aWait(m_xDialog.get());
@@ -235,42 +297,106 @@ void CuiAboutConfigTabPage::Reset()
m_modifiedPrefBoxEntries.clear();
m_xPrefBox->freeze();
- Reference< XNameAccess > xConfigAccess = getConfigAccess( "/", false );
+ Reference<XNameAccess> xConfigAccess = getConfigAccess(u"/"_ustr, false);
//Load all XNameAccess to m_prefBoxEntries
- FillItems( xConfigAccess, nullptr, 0, true );
+ FillItems(xConfigAccess, nullptr, 0, true);
//Load xConfigAccess' children to m_prefBox
- FillItems( xConfigAccess );
+ FillItems(xConfigAccess);
m_xPrefBox->thaw();
}
void CuiAboutConfigTabPage::FillItemSet()
{
- std::vector< std::shared_ptr< Prop_Impl > >::iterator pIter;
- for( pIter = m_vectorOfModified.begin() ; pIter != m_vectorOfModified.end(); ++pIter )
+ std::vector<std::shared_ptr<Prop_Impl>>::iterator pIter;
+ for (pIter = m_vectorOfModified.begin(); pIter != m_vectorOfModified.end(); ++pIter)
{
- Reference< XNameAccess > xUpdateAccess = getConfigAccess( (*pIter)->Name , true );
- Reference< XNameReplace > xNameReplace( xUpdateAccess, UNO_QUERY_THROW );
+ Reference<XNameAccess> xUpdateAccess = getConfigAccess((*pIter)->Name, true);
+ Reference<XNameReplace> xNameReplace(xUpdateAccess, UNO_QUERY_THROW);
- xNameReplace->replaceByName( (*pIter)->Property, (*pIter)->Value );
+ xNameReplace->replaceByName((*pIter)->Property, (*pIter)->Value);
- Reference< util::XChangesBatch > xChangesBatch( xUpdateAccess, UNO_QUERY_THROW );
+ Reference<util::XChangesBatch> xChangesBatch(xUpdateAccess, UNO_QUERY_THROW);
xChangesBatch->commitChanges();
}
}
-void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAccess, const weld::TreeIter* pParentEntry,
- int lineage, bool bLoadAll)
+namespace
{
- OUString sPath = Reference< XHierarchicalName >(
- xNameAccess, uno::UNO_QUERY_THROW )->getHierarchicalName();
- const uno::Sequence< OUString > seqItems = xNameAccess->getElementNames();
- for( const OUString& item : seqItems )
+OUString lcl_StringListToString(const uno::Sequence<OUString>& seq)
+{
+ OUStringBuffer sBuffer;
+ for (sal_Int32 i = 0; i != seq.getLength(); ++i)
{
- Any aNode = xNameAccess->getByName( item );
+ if (i != 0)
+ sBuffer.append(",");
+ sBuffer.append(seq[i]);
+ }
+ return sBuffer.makeStringAndClear();
+}
+
+OUString lcl_IntListToString(const uno::Sequence<sal_Int16>& seq)
+{
+ OUStringBuffer sBuffer;
+ for (sal_Int32 i = 0; i != seq.getLength(); ++i)
+ {
+ if (i != 0)
+ sBuffer.append(",");
+ sBuffer.append(OUString::number(seq[i]));
+ }
+ return sBuffer.makeStringAndClear();
+}
+
+OUString lcl_IntListToString(const uno::Sequence<sal_Int32>& seq)
+{
+ OUStringBuffer sBuffer;
+ for (sal_Int32 i = 0; i != seq.getLength(); ++i)
+ {
+ if (i != 0)
+ sBuffer.append(",");
+ sBuffer.append(OUString::number(seq[i]));
+ }
+ return sBuffer.makeStringAndClear();
+}
+
+OUString lcl_IntListToString(const uno::Sequence<sal_Int64>& seq)
+{
+ OUStringBuffer sBuffer;
+ for (sal_Int32 i = 0; i != seq.getLength(); ++i)
+ {
+ if (i != 0)
+ sBuffer.append(",");
+ sBuffer.append(OUString::number(seq[i]));
+ }
+ return sBuffer.makeStringAndClear();
+}
+
+OUString lcl_DoubleListToString(const uno::Sequence<double>& seq)
+{
+ OUStringBuffer sBuffer;
+ for (sal_Int32 i = 0; i != seq.getLength(); ++i)
+ {
+ if (i != 0)
+ sBuffer.append(",");
+ sBuffer.append(OUString::number(seq[i]));
+ }
+ return sBuffer.makeStringAndClear();
+}
+}
+
+void CuiAboutConfigTabPage::FillItems(const Reference<XNameAccess>& xNameAccess,
+ const weld::TreeIter* pParentEntry, int lineage,
+ bool bLoadAll)
+{
+ OUString sPath
+ = Reference<XHierarchicalName>(xNameAccess, uno::UNO_QUERY_THROW)->getHierarchicalName();
+ const uno::Sequence<OUString> seqItems = xNameAccess->getElementNames();
+ for (const OUString& item : seqItems)
+ {
+ Any aNode = xNameAccess->getByName(item);
bool bNotLeaf = false;
- Reference< XNameAccess > xNextNameAccess;
+ Reference<XNameAccess> xNextNameAccess;
try
{
xNextNameAccess.set(aNode, uno::UNO_QUERY);
@@ -278,24 +404,27 @@ void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAcces
}
catch (const RuntimeException&)
{
- TOOLS_WARN_EXCEPTION( "cui.options", "CuiAboutConfigTabPage");
+ TOOLS_WARN_EXCEPTION("cui.options", "CuiAboutConfigTabPage");
}
if (bNotLeaf)
{
- if(bLoadAll)
+ if (bLoadAll)
FillItems(xNextNameAccess, nullptr, lineage + 1, true);
else
{
// not leaf node
- m_vectorUserData.push_back(std::make_unique<UserData>(xNextNameAccess, lineage + 1));
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(m_vectorUserData.back().get())));
+ m_vectorUserData.push_back(
+ std::make_unique<UserData>(xNextNameAccess, lineage + 1));
+ OUString sId(weld::toId(m_vectorUserData.back().get()));
- m_xPrefBox->insert(pParentEntry, -1, &item, &sId, nullptr, nullptr, true, m_xScratchIter.get());
+ m_xPrefBox->insert(pParentEntry, -1, &item, &sId, nullptr, nullptr, true,
+ m_xScratchIter.get());
// Necessary, without this the selection line will be truncated.
- m_xPrefBox->set_text(*m_xScratchIter, "", 1);
- m_xPrefBox->set_text(*m_xScratchIter, "", 2);
- m_xPrefBox->set_text(*m_xScratchIter, "", 3);
+ m_xPrefBox->set_text(*m_xScratchIter, u""_ustr, 1);
+ m_xPrefBox->set_text(*m_xScratchIter, u""_ustr, 2);
+ m_xPrefBox->set_text(*m_xScratchIter, u""_ustr, 3);
+ m_xPrefBox->set_sensitive(*m_xScratchIter, true);
}
}
else
@@ -303,214 +432,308 @@ void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAcces
// leaf node
OUString sPropertyName = item;
auto it = std::find_if(m_modifiedPrefBoxEntries.begin(), m_modifiedPrefBoxEntries.end(),
- [&sPath, &sPropertyName](const prefBoxEntry& rEntry) -> bool
- {
- return rEntry.pUserData->sPropertyPath == sPath
- && rEntry.sStatus == sPropertyName;
- }
- );
-
- OUString sType = aNode.getValueTypeName();
+ [&sPath, &sPropertyName](const prefBoxEntry& rEntry) -> bool {
+ return rEntry.pUserData->sPropertyPath == sPath
+ && rEntry.sStatus == sPropertyName;
+ });
+
+ css::uno::Reference<css::configuration::XReadWriteAccess> m_xReadWriteAccess;
+ m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(
+ ::comphelper::getProcessComponentContext(), u"*"_ustr);
+ beans::Property aProperty;
+ bool bReadOnly = false;
+ OUString sFullPath(sPath + "/" + sPropertyName);
+ try
+ {
+ aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(sFullPath);
+ bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
+ }
+ catch (css::beans::UnknownPropertyException)
+ {
+ SAL_WARN("cui.options", "unknown property: " << sFullPath);
+ }
+
+ OUString sTooltip;
+ OUString sType;
+ bool bWasModified = false;
+ css::uno::Type aType = cppu::UnoType<void>::get();
+ OUString sDynamicType = aNode.getValueTypeName();
+ try
+ {
+ Reference<configuration::XDocumentation> xDocumentation(xNameAccess,
+ UNO_QUERY_THROW);
+ sTooltip
+ = xDocumentation->getDescriptionByHierarchicalName(sPath + "/" + sPropertyName);
+ aType = xDocumentation->getTypeByHierarchicalName(sFullPath);
+ bWasModified = xDocumentation->getModifiedByHierarchicalName(sFullPath);
+ }
+ catch (css::container::NoSuchElementException)
+ {
+ }
+ catch (css::util::InvalidStateException)
+ {
+ }
+
OUStringBuffer sValue;
+ // Fall back to dynamic type when this is empty
+ if (aType == cppu::UnoType<void>::get() && sDynamicType != "void")
+ {
+ if (sDynamicType == "boolean")
+ aType = cppu::UnoType<sal_Bool>::get();
+ else if (sDynamicType == "short")
+ aType = cppu::UnoType<sal_Int16>::get();
+ else if (sDynamicType == "long")
+ aType = cppu::UnoType<sal_Int32>::get();
+ else if (sDynamicType == "hyper")
+ aType = cppu::UnoType<sal_Int64>::get();
+ else if (sDynamicType == "double")
+ aType = cppu::UnoType<double>::get();
+ else if (sDynamicType == "string")
+ aType = cppu::UnoType<OUString>::get();
+ else if (sDynamicType == "[]byte")
+ aType = cppu::UnoType<css::uno::Sequence<sal_Int8>>::get();
+ else if (sDynamicType == "[]boolean")
+ aType = cppu::UnoType<css::uno::Sequence<sal_Bool>>::get();
+ else if (sDynamicType == "[]short")
+ aType = cppu::UnoType<css::uno::Sequence<sal_Int16>>::get();
+ else if (sDynamicType == "[]long")
+ aType = cppu::UnoType<css::uno::Sequence<sal_Int32>>::get();
+ else if (sDynamicType == "[]hyper")
+ aType = cppu::UnoType<css::uno::Sequence<sal_Int64>>::get();
+ else if (sDynamicType == "[]double")
+ aType = cppu::UnoType<css::uno::Sequence<double>>::get();
+ else if (sDynamicType == "[]string")
+ aType = cppu::UnoType<css::uno::Sequence<OUString>>::get();
+ else if (sDynamicType == "[][]byte")
+ aType = cppu::UnoType<css::uno::Sequence<css::uno::Sequence<sal_Int8>>>::get();
+ }
+
if (it != m_modifiedPrefBoxEntries.end())
sValue = it->sValue;
else
{
- switch( aNode.getValueType().getTypeClass() )
+ bool bHasValue = sDynamicType != "void";
+ if (aType == cppu::UnoType<sal_Bool>::get())
{
- case css::uno::TypeClass_VOID:
- break;
-
- case css::uno::TypeClass_BOOLEAN:
- sValue = OUString::boolean( aNode.get<bool>() );
- break;
-
- case css::uno::TypeClass_SHORT:
- case css::uno::TypeClass_LONG:
- case css::uno::TypeClass_HYPER:
- sValue = OUString::number( aNode.get<sal_Int64>() );
- break;
-
- case css::uno::TypeClass_DOUBLE:
- sValue = OUString::number( aNode.get<double>() );
- break;
-
- case css::uno::TypeClass_STRING:
- sValue = aNode.get<OUString>();
- break;
-
- case css::uno::TypeClass_SEQUENCE:
- if( sType == "[]boolean" )
- {
- uno::Sequence<sal_Bool> seq = aNode.get< uno::Sequence<sal_Bool> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- if( j != 0 )
- {
- sValue.append(",");
- }
- sValue.append(OUString::boolean( seq[j] ));
- }
- }
- else if( sType == "[]byte" )
+ if (bHasValue)
+ sValue = OUString::boolean(aNode.get<bool>());
+ sType = "boolean";
+ }
+ else if (aType == cppu::UnoType<sal_Int16>::get())
+ {
+ if (bHasValue)
+ sValue = OUString::number(aNode.get<sal_Int16>());
+ sType = "short";
+ }
+ else if (aType == cppu::UnoType<sal_Int32>::get())
+ {
+ if (bHasValue)
+ sValue = OUString::number(aNode.get<sal_Int32>());
+ sType = "int";
+ }
+ else if (aType == cppu::UnoType<sal_Int64>::get())
+ {
+ if (bHasValue)
+ sValue = OUString::number(aNode.get<sal_Int64>());
+ sType = "long";
+ }
+ else if (aType == cppu::UnoType<double>::get())
+ {
+ if (bHasValue)
+ sValue = OUString::number(aNode.get<double>());
+ sType = "double";
+ }
+ else if (aType == cppu::UnoType<OUString>::get())
+ {
+ if (bHasValue)
+ sValue = aNode.get<OUString>();
+ sType = "string";
+ }
+ else if (aType == cppu::UnoType<css::uno::Sequence<sal_Int8>>::get())
+ {
+ if (bHasValue)
{
- const uno::Sequence<sal_Int8> seq = aNode.get< uno::Sequence<sal_Int8> >();
- for( sal_Int8 j : seq )
+ const uno::Sequence<sal_Int8> seq = aNode.get<uno::Sequence<sal_Int8>>();
+ for (sal_Int8 j : seq)
{
- OUString s = OUString::number(
- static_cast<sal_uInt8>(j), 16 );
- if( s.getLength() == 1 )
+ OUString s = OUString::number(static_cast<sal_uInt8>(j), 16);
+ if (s.getLength() == 1)
{
sValue.append("0");
}
sValue.append(s.toAsciiUpperCase());
}
}
- else if( sType == "[][]byte" )
+ sType = "hexBinary";
+ }
+ else if (aType == cppu::UnoType<css::uno::Sequence<sal_Bool>>::get())
+ {
+ if (bHasValue)
{
- const uno::Sequence< uno::Sequence<sal_Int8> > seq = aNode.get< uno::Sequence< uno::Sequence<sal_Int8> > >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ uno::Sequence<sal_Bool> seq = aNode.get<uno::Sequence<sal_Bool>>();
+ for (sal_Int32 j = 0; j != seq.getLength(); ++j)
{
- if( j != 0 )
+ if (j != 0)
{
sValue.append(",");
}
- for( sal_Int8 k : seq[j] )
- {
- OUString s = OUString::number(
- static_cast<sal_uInt8>(k), 16 );
- if( s.getLength() == 1 )
- {
- sValue.append("0");
- }
- sValue.append(s.toAsciiUpperCase());
- }
+ sValue.append(OUString::boolean(seq[j]));
}
}
- else if( sType == "[]short" )
+ sType = "boolean-list";
+ }
+ else if (aType == cppu::UnoType<css::uno::Sequence<sal_Int16>>::get())
+ {
+ if (bHasValue)
{
- uno::Sequence<sal_Int16> seq = aNode.get< uno::Sequence<sal_Int16> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ uno::Sequence<sal_Int16> seq = aNode.get<uno::Sequence<sal_Int16>>();
+ for (sal_Int32 j = 0; j != seq.getLength(); ++j)
{
- if( j != 0 )
+ if (j != 0)
{
sValue.append(",");
}
- sValue.append( static_cast<sal_Int32>(seq[j]) );
+ sValue.append(static_cast<sal_Int32>(seq[j]));
}
}
- else if( sType == "[]long" )
+ sType = "short-list";
+ }
+ else if (aType == cppu::UnoType<css::uno::Sequence<sal_Int32>>::get())
+ {
+ if (bHasValue)
{
- uno::Sequence<sal_Int32> seq = aNode.get< uno::Sequence<sal_Int32> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ uno::Sequence<sal_Int32> seq = aNode.get<uno::Sequence<sal_Int32>>();
+ for (sal_Int32 j = 0; j != seq.getLength(); ++j)
{
- if( j != 0 )
+ if (j != 0)
{
sValue.append(",");
}
- sValue.append( seq[j] );
+ sValue.append(seq[j]);
}
}
- else if( sType == "[]hyper" )
+ sType = "int-list";
+ }
+ else if (aType == cppu::UnoType<css::uno::Sequence<sal_Int64>>::get())
+ {
+ if (bHasValue)
{
- uno::Sequence<sal_Int64> seq = aNode.get< uno::Sequence<sal_Int64> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ uno::Sequence<sal_Int64> seq = aNode.get<uno::Sequence<sal_Int64>>();
+ for (sal_Int32 j = 0; j != seq.getLength(); ++j)
{
- if( j != 0 )
+ if (j != 0)
{
sValue.append(",");
}
- sValue.append( seq[j] );
+ sValue.append(seq[j]);
}
}
- else if( sType == "[]double" )
+ sType = "long-list";
+ }
+ else if (aType == cppu::UnoType<css::uno::Sequence<double>>::get())
+ {
+ if (bHasValue)
{
- uno::Sequence<double> seq = aNode.get< uno::Sequence<double> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ uno::Sequence<double> seq = aNode.get<uno::Sequence<double>>();
+ for (sal_Int32 j = 0; j != seq.getLength(); ++j)
{
- if( j != 0 )
+ if (j != 0)
{
sValue.append(",");
}
- sValue.append( seq[j] );
+ sValue.append(seq[j]);
}
}
- else if( sType == "[]string" )
+ sType = "double-list";
+ }
+ else if (aType == cppu::UnoType<css::uno::Sequence<OUString>>::get())
+ {
+ if (bHasValue)
+ sValue = lcl_StringListToString(aNode.get<uno::Sequence<OUString>>());
+ sType = "string-list";
+ }
+ else if (aType
+ == cppu::UnoType<css::uno::Sequence<css::uno::Sequence<sal_Int8>>>::get())
+ {
+ if (bHasValue)
{
- uno::Sequence<OUString> seq = aNode.get< uno::Sequence<OUString> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ const uno::Sequence<uno::Sequence<sal_Int8>> seq
+ = aNode.get<uno::Sequence<uno::Sequence<sal_Int8>>>();
+ for (sal_Int32 j = 0; j != seq.getLength(); ++j)
{
- if( j != 0 )
+ if (j != 0)
{
sValue.append(",");
}
- sValue.append(seq[j]);
+ for (sal_Int8 k : seq[j])
+ {
+ OUString s = OUString::number(static_cast<sal_uInt8>(k), 16);
+ if (s.getLength() == 1)
+ {
+ sValue.append("0");
+ }
+ sValue.append(s.toAsciiUpperCase());
+ }
}
}
- else
- {
- SAL_WARN(
- "cui.options",
- "path \"" << sPath << "\" member " << item
- << " of unsupported type " << sType);
- }
- break;
-
- default:
- SAL_WARN(
- "cui.options",
- "path \"" << sPath << "\" member " << item
- << " of unsupported type " << sType);
- break;
+ sType = "hexBinary-list";
+ }
+ else
+ {
+ SAL_INFO("cui.options", "path \"" << sPath << "\" member " << item
+ << " of unsupported type " << sType);
+ continue;
}
}
//Short name
int index = 0;
- for(int j = 1; j < lineage; ++j)
+ for (int j = 1; j < lineage; ++j)
index = sPath.indexOf("/", index + 1);
- InsertEntry(sPath, sPath.copy(index+1), item, sType, sValue.makeStringAndClear(), pParentEntry, !bLoadAll);
+ InsertEntry(sPath, aNode, sPath.copy(index + 1), item, sType,
+ sValue.makeStringAndClear(), sTooltip, pParentEntry, !bLoadAll, bReadOnly,
+ bWasModified);
}
}
}
-Reference< XNameAccess > CuiAboutConfigTabPage::getConfigAccess( const OUString& sNodePath, bool bUpdate )
+Reference<XNameAccess> CuiAboutConfigTabPage::getConfigAccess(const OUString& sNodePath,
+ bool bUpdate)
{
- uno::Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
+ uno::Reference<uno::XComponentContext> xContext(::comphelper::getProcessComponentContext());
- uno::Reference< lang::XMultiServiceFactory > xConfigProvider(
- css::configuration::theDefaultProvider::get( xContext ) );
+ uno::Reference<lang::XMultiServiceFactory> xConfigProvider(
+ css::configuration::theDefaultProvider::get(xContext));
beans::NamedValue aProperty;
aProperty.Name = "nodepath";
aProperty.Value <<= sNodePath;
- uno::Sequence< uno::Any > aArgumentList{ uno::Any(aProperty) };
+ uno::Sequence<uno::Any> aArgumentList{ uno::Any(aProperty) };
OUString sAccessString;
- if( bUpdate )
+ if (bUpdate)
sAccessString = "com.sun.star.configuration.ConfigurationUpdateAccess";
else
sAccessString = "com.sun.star.configuration.ConfigurationAccess";
- uno::Reference< container::XNameAccess > xNameAccess(
- xConfigProvider->createInstanceWithArguments(
- sAccessString, aArgumentList ),
- uno::UNO_QUERY_THROW );
+ uno::Reference<container::XNameAccess> xNameAccess(
+ xConfigProvider->createInstanceWithArguments(sAccessString, aArgumentList),
+ uno::UNO_QUERY_THROW);
return xNameAccess;
}
-void CuiAboutConfigTabPage::AddToModifiedVector( const std::shared_ptr< Prop_Impl >& rProp )
+void CuiAboutConfigTabPage::AddToModifiedVector(const std::shared_ptr<Prop_Impl>& rProp)
{
bool isModifiedBefore = false;
//Check if value modified before
- for(std::shared_ptr<Prop_Impl> & nInd : m_vectorOfModified)
+ for (std::shared_ptr<Prop_Impl>& nInd : m_vectorOfModified)
{
- if( rProp->Name == nInd->Name && rProp->Property == nInd->Property )
+ if (rProp->Name == nInd->Name && rProp->Property == nInd->Property)
{
//property modified before. Assign reference to the modified value
//do your changes on this object. They will be saved later.
@@ -520,47 +743,28 @@ void CuiAboutConfigTabPage::AddToModifiedVector( const std::shared_ptr< Prop_Imp
}
}
- if( !isModifiedBefore )
- m_vectorOfModified.push_back( rProp );
+ if (!isModifiedBefore)
+ m_vectorOfModified.push_back(rProp);
//property is not modified before
}
-std::vector< OUString > CuiAboutConfigTabPage::commaStringToSequence( const OUString& rCommaSepString )
+std::vector<OUString>
+CuiAboutConfigTabPage::commaStringToSequence(std::u16string_view rCommaSepString)
{
std::vector<OUString> tempVector;
sal_Int32 index = 0;
do
{
- OUString word = rCommaSepString.getToken(0, u',', index);
+ OUString word(o3tl::getToken(rCommaSepString, 0, u',', index));
word = word.trim();
- if( !word.isEmpty())
+ if (!word.isEmpty())
tempVector.push_back(word);
- }while( index >= 0 );
+ } while (index >= 0);
return tempVector;
}
-CuiAboutConfigValueDialog::CuiAboutConfigValueDialog(weld::Window* pWindow,
- const OUString& rValue,
- int limit)
- : GenericDialogController(pWindow, "cui/ui/aboutconfigvaluedialog.ui", "AboutConfigValueDialog")
- , m_bNumericOnly(limit != 0)
- , m_xEDValue(m_xBuilder->weld_entry("valuebox"))
-{
- if (limit)
- m_xEDValue->set_max_length(limit);
- m_xEDValue->set_text(rValue);
- m_xEDValue->connect_key_press(LINK(this, CuiAboutConfigValueDialog, KeyInputHdl));
-}
-
-CuiAboutConfigValueDialog::~CuiAboutConfigValueDialog()
-{
-}
-
-IMPL_LINK_NOARG( CuiAboutConfigTabPage, ResetBtnHdl_Impl, weld::Button&, void )
-{
- Reset();
-}
+IMPL_LINK_NOARG(CuiAboutConfigTabPage, ResetBtnHdl_Impl, weld::Button&, void) { Reset(); }
IMPL_LINK_NOARG(CuiAboutConfigTabPage, DoubleClickHdl_Impl, weld::TreeView&, bool)
{
@@ -568,13 +772,13 @@ IMPL_LINK_NOARG(CuiAboutConfigTabPage, DoubleClickHdl_Impl, weld::TreeView&, boo
return true;
}
-IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void )
+IMPL_LINK_NOARG(CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void)
{
if (!m_xPrefBox->get_selected(m_xScratchIter.get()))
return;
- UserData *pUserData = reinterpret_cast<UserData*>(m_xPrefBox->get_id(*m_xScratchIter).toInt64());
- if (!(pUserData && pUserData->bIsPropertyPath))
+ UserData* pUserData = weld::fromId<UserData*>(m_xPrefBox->get_id(*m_xScratchIter));
+ if (!pUserData || !pUserData->bIsPropertyPath || pUserData->bIsReadOnly)
return;
//if selection is a node
@@ -582,16 +786,17 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void )
OUString sPropertyType = m_xPrefBox->get_text(*m_xScratchIter, 2);
OUString sPropertyValue = m_xPrefBox->get_text(*m_xScratchIter, 3);
- auto pProperty = std::make_shared<Prop_Impl>( pUserData->sPropertyPath, sPropertyName, Any( sPropertyValue ) );
+ auto pProperty
+ = std::make_shared<Prop_Impl>(pUserData->sPropertyPath, sPropertyName, Any(sPropertyValue));
bool bSaveChanges = false;
bool bOpenDialog = true;
OUString sDialogValue;
- if( sPropertyType == "boolean" )
+ if (sPropertyType == "boolean")
{
bool bValue;
- if( sPropertyValue == "true" )
+ if (sPropertyValue == "true")
{
sDialogValue = "false";
bValue = false;
@@ -606,10 +811,6 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void )
bOpenDialog = false;
bSaveChanges = true;
}
- else if ( sPropertyType == "void" )
- {
- bOpenDialog = false;
- }
else
{
sDialogValue = sPropertyValue;
@@ -618,154 +819,180 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void )
try
{
- if( bOpenDialog )
+ if (bOpenDialog)
{
- //Cosmetic length limit for integer values.
- int limit=0;
- if( sPropertyType == "short" )
- limit = SHORT_LEN_LIMIT;
- else if( sPropertyType == "long" )
- limit = LONG_LEN_LIMIT;
- else if( sPropertyType == "hyper" )
- limit = HYPER_LEN_LIMIT;
-
- CuiAboutConfigValueDialog aValueDialog(m_xDialog.get(), sDialogValue, limit);
-
- if (aValueDialog.run() == RET_OK )
+ if (sPropertyType == "short" || sPropertyType == "int" || sPropertyType == "long")
{
- OUString sNewValue = aValueDialog.getValue();
- bSaveChanges = true;
- if ( sPropertyType == "short")
- {
- sal_Int16 nShort;
- sal_Int32 nNumb = sNewValue.toInt32();
-
- //if the value is 0 and length is not 1, there is something wrong
- if( ( nNumb==0 && sNewValue.getLength()!=1 ) || nNumb > SAL_MAX_INT16 || nNumb < SAL_MIN_INT16)
- throw uno::Exception("out of range short", nullptr);
- nShort = static_cast<sal_Int16>(nNumb);
- pProperty->Value <<= nShort;
- }
- else if( sPropertyType == "long" )
+ sal_Int64 nMin = sPropertyType == "short"
+ ? SAL_MIN_INT16
+ : sPropertyType == "int" ? SAL_MIN_INT32 : SAL_MIN_INT64;
+ sal_Int64 nMax = sPropertyType == "short"
+ ? SAL_MAX_INT16
+ : sPropertyType == "int" ? SAL_MAX_INT32 : SAL_MAX_INT64;
+ SvxNumberDialog aNumberDialog(m_xDialog.get(), sPropertyName,
+ sDialogValue.toInt64(), nMin, nMax);
+ if (aNumberDialog.run() == RET_OK)
{
- sal_Int32 nLong = sNewValue.toInt32();
- if( nLong==0 && sNewValue.getLength()!=1)
- throw uno::Exception("out of range long", nullptr);
- pProperty->Value <<= nLong;
- }
- else if( sPropertyType == "hyper")
- {
- sal_Int64 nHyper = sNewValue.toInt64();
- if( nHyper==0 && sNewValue.getLength()!=1)
- throw uno::Exception("out of range hyper", nullptr);
- pProperty->Value <<= nHyper;
- }
- else if( sPropertyType == "double")
- {
- double nDoub = sNewValue.toDouble();
- if( nDoub ==0 && sNewValue.getLength()!=1)
- throw uno::Exception("out of range double", nullptr);
- pProperty->Value <<= nDoub;
+ sal_Int64 nNewValue = aNumberDialog.GetNumber();
+ if (sPropertyType == "short")
+ {
+ pProperty->Value <<= static_cast<sal_Int16>(nNewValue);
+ }
+ else if (sPropertyType == "int")
+ {
+ pProperty->Value <<= static_cast<sal_Int32>(nNewValue);
+ }
+ else if (sPropertyType == "long")
+ {
+ pProperty->Value <<= nNewValue;
+ }
+ bSaveChanges = true;
+ sDialogValue = OUString::number(nNewValue);
}
- else if( sPropertyType == "float")
+ }
+ else if (sPropertyType == "double")
+ {
+ SvxDecimalNumberDialog aNumberDialog(m_xDialog.get(), sPropertyName,
+ sDialogValue.toDouble());
+ if (aNumberDialog.run() == RET_OK)
{
- float nFloat = sNewValue.toFloat();
- if( nFloat ==0 && sNewValue.getLength()!=1)
- throw uno::Exception("out of range float", nullptr);
- pProperty->Value <<= nFloat;
+ double fNewValue = aNumberDialog.GetNumber();
+ pProperty->Value <<= fNewValue;
+ bSaveChanges = true;
+ sDialogValue = OUString::number(fNewValue);
}
- else if( sPropertyType == "string" )
+ }
+ else if (sPropertyType == "string")
+ {
+ SvxNameDialog aNameDialog(m_xDialog.get(), sDialogValue, sPropertyName);
+ aNameDialog.SetCheckNameHdl(LINK(this, CuiAboutConfigTabPage, ValidNameHdl));
+ if (aNameDialog.run() == RET_OK)
{
- pProperty->Value <<= sNewValue;
+ sDialogValue = aNameDialog.GetName();
+ pProperty->Value <<= sDialogValue;
+ bSaveChanges = true;
}
- else if( sPropertyType == "[]short" )
+ }
+ else if (sPropertyType == "short-list")
+ {
+ SvxListDialog aListDialog(m_xDialog.get());
+ aListDialog.SetEntries(commaStringToSequence(sDialogValue));
+ aListDialog.SetMode(ListMode::Int16);
+ if (aListDialog.run() == RET_OK)
{
- //create string sequence from comma separated string
- //uno::Sequence< OUString > seqStr;
- std::vector< OUString > seqStr = commaStringToSequence( sNewValue );
-
- //create appropriate sequence with same size as string sequence
- uno::Sequence< sal_Int16 > seqShort( seqStr.size() );
- //convert all strings to appropriate type
- std::transform(seqStr.begin(), seqStr.end(), seqShort.getArray(),
- [](const auto& str)
- { return static_cast<sal_Int16>(str.toInt32()); });
+ std::vector<OUString> seqStr = aListDialog.GetEntries();
+ uno::Sequence<sal_Int16> seqShort(seqStr.size());
+ std::transform(
+ seqStr.begin(), seqStr.end(), seqShort.getArray(),
+ [](const auto& str) { return static_cast<sal_Int16>(str.toInt32()); });
pProperty->Value <<= seqShort;
+ sDialogValue = lcl_IntListToString(seqShort);
+ bSaveChanges = true;
}
- else if( sPropertyType == "[]long" )
- {
- std::vector< OUString > seqStrLong = commaStringToSequence( sNewValue );
-
- uno::Sequence< sal_Int32 > seqLong( seqStrLong.size() );
- std::transform(seqStrLong.begin(), seqStrLong.end(), seqLong.getArray(),
- [](const auto& str) { return str.toInt32(); });
- pProperty->Value <<= seqLong;
- }
- else if( sPropertyType == "[]hyper" )
+ }
+ else if (sPropertyType == "int-list")
+ {
+ SvxListDialog aListDialog(m_xDialog.get());
+ aListDialog.SetEntries(commaStringToSequence(sDialogValue));
+ aListDialog.SetMode(ListMode::Int32);
+ if (aListDialog.run() == RET_OK)
{
- std::vector< OUString > seqStrHyper = commaStringToSequence( sNewValue );
- uno::Sequence< sal_Int64 > seqHyper( seqStrHyper.size() );
- std::transform(seqStrHyper.begin(), seqStrHyper.end(), seqHyper.getArray(),
- [](const auto& str) { return str.toInt64(); });
- pProperty->Value <<= seqHyper;
+ std::vector<OUString> seqStr = aListDialog.GetEntries();
+ uno::Sequence<sal_Int32> seq(seqStr.size());
+ std::transform(
+ seqStr.begin(), seqStr.end(), seq.getArray(),
+ [](const auto& str) { return static_cast<sal_Int32>(str.toInt32()); });
+ pProperty->Value <<= seq;
+ sDialogValue = lcl_IntListToString(seq);
+ bSaveChanges = true;
}
- else if( sPropertyType == "[]double" )
+ }
+ else if (sPropertyType == "long-list")
+ {
+ SvxListDialog aListDialog(m_xDialog.get());
+ aListDialog.SetEntries(commaStringToSequence(sDialogValue));
+ aListDialog.SetMode(ListMode::Int64);
+ if (aListDialog.run() == RET_OK)
{
- std::vector< OUString > seqStrDoub = commaStringToSequence( sNewValue );
- uno::Sequence< double > seqDoub( seqStrDoub.size() );
- std::transform(seqStrDoub.begin(), seqStrDoub.end(), seqDoub.getArray(),
- [](const auto& str) { return str.toDouble(); });
- pProperty->Value <<= seqDoub;
+ std::vector<OUString> seqStr = aListDialog.GetEntries();
+ uno::Sequence<sal_Int64> seq(seqStr.size());
+ std::transform(
+ seqStr.begin(), seqStr.end(), seq.getArray(),
+ [](const auto& str) { return static_cast<sal_Int64>(str.toInt32()); });
+ pProperty->Value <<= seq;
+ sDialogValue = lcl_IntListToString(seq);
+ bSaveChanges = true;
}
- else if( sPropertyType == "[]float" )
+ }
+ else if (sPropertyType == "double-list")
+ {
+ SvxListDialog aListDialog(m_xDialog.get());
+ aListDialog.SetEntries(commaStringToSequence(sDialogValue));
+ aListDialog.SetMode(ListMode::Double);
+ if (aListDialog.run() == RET_OK)
{
- std::vector< OUString > seqStrFloat = commaStringToSequence( sNewValue );
- uno::Sequence< sal_Int16 > seqFloat( seqStrFloat.size() );
- std::transform(seqStrFloat.begin(), seqStrFloat.end(), seqFloat.getArray(),
- [](const auto& str) { return str.toFloat(); });
- pProperty->Value <<= seqFloat;
+ std::vector<OUString> seqStr = aListDialog.GetEntries();
+ uno::Sequence<double> seq(seqStr.size());
+ std::transform(
+ seqStr.begin(), seqStr.end(), seq.getArray(),
+ [](const auto& str) { return static_cast<double>(str.toDouble()); });
+ pProperty->Value <<= seq;
+ sDialogValue = lcl_DoubleListToString(seq);
+ bSaveChanges = true;
}
- else if( sPropertyType == "[]string" )
+ }
+ else if (sPropertyType == "string-list")
+ {
+ SvxListDialog aListDialog(m_xDialog.get());
+ uno::Sequence<OUString> aList
+ = pUserData->aPropertyValue.get<uno::Sequence<OUString>>();
+ aListDialog.SetEntries(
+ comphelper::sequenceToContainer<std::vector<OUString>>(aList));
+ aListDialog.SetMode(ListMode::String);
+ if (aListDialog.run() == RET_OK)
{
- pProperty->Value <<= comphelper::containerToSequence( commaStringToSequence( sNewValue ));
+ auto seq = comphelper::containerToSequence(aListDialog.GetEntries());
+ sDialogValue = lcl_StringListToString(seq);
+ pProperty->Value <<= seq;
+ bSaveChanges = true;
}
- else //unknown
- throw uno::Exception("unknown property type " + sPropertyType, nullptr);
-
- sDialogValue = sNewValue;
}
+ else //unknown
+ throw uno::Exception("unknown property type " + sPropertyType, nullptr);
}
- if(bSaveChanges)
+ if (bSaveChanges)
{
- AddToModifiedVector( pProperty );
+ AddToModifiedVector(pProperty);
+ pUserData->aPropertyValue = pProperty->Value;
//update listbox value.
+ m_xPrefBox->set_text(*m_xScratchIter, sPropertyType, 2);
m_xPrefBox->set_text(*m_xScratchIter, sDialogValue, 3);
+ m_xPrefBox->set_text_emphasis(*m_xScratchIter, true, -1);
//update m_prefBoxEntries
- auto it = std::find_if(m_prefBoxEntries.begin(), m_prefBoxEntries.end(),
- [&pUserData, &sPropertyName](const prefBoxEntry& rEntry) -> bool
- {
- return rEntry.pUserData->sPropertyPath == pUserData->sPropertyPath
- && rEntry.sStatus == sPropertyName;
- }
- );
+ auto it = std::find_if(
+ m_prefBoxEntries.begin(), m_prefBoxEntries.end(),
+ [&pUserData, &sPropertyName](const prefBoxEntry& rEntry) -> bool {
+ return rEntry.pUserData->sPropertyPath == pUserData->sPropertyPath
+ && rEntry.sStatus == sPropertyName;
+ });
if (it != m_prefBoxEntries.end())
{
it->sValue = sDialogValue;
+ it->pUserData->bWasModified = true;
auto modifiedIt = std::find_if(
- m_modifiedPrefBoxEntries.begin(), m_modifiedPrefBoxEntries.end(),
- [&pUserData, &sPropertyName](const prefBoxEntry& rEntry) -> bool
- {
- return rEntry.pUserData->sPropertyPath == pUserData->sPropertyPath
- && rEntry.sStatus == sPropertyName;
- }
- );
+ m_modifiedPrefBoxEntries.begin(), m_modifiedPrefBoxEntries.end(),
+ [&pUserData, &sPropertyName](const prefBoxEntry& rEntry) -> bool {
+ return rEntry.pUserData->sPropertyPath == pUserData->sPropertyPath
+ && rEntry.sStatus == sPropertyName;
+ });
if (modifiedIt != m_modifiedPrefBoxEntries.end())
{
modifiedIt->sValue = sDialogValue;
+ modifiedIt->pUserData->bWasModified = true;
}
else
{
@@ -774,74 +1001,24 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl, weld::Button&, void )
}
}
}
- catch( uno::Exception& )
+ catch (uno::Exception&)
{
}
}
-IMPL_LINK_NOARG( CuiAboutConfigTabPage, SearchHdl_Impl, weld::Button&, void)
-{
- weld::WaitObject aWait(m_xDialog.get());
-
- m_xPrefBox->hide();
- m_xPrefBox->clear();
- m_xPrefBox->freeze();
-
- if (m_bSorted)
- m_xPrefBox->make_unsorted();
+IMPL_LINK_NOARG(CuiAboutConfigTabPage, SearchHdl_Impl, weld::Button&, void) { InputChanged(); }
- if (m_xSearchEdit->get_text().isEmpty())
- {
- m_xPrefBox->clear();
- Reference< XNameAccess > xConfigAccess = getConfigAccess( "/", false );
- FillItems( xConfigAccess );
- }
- else
- {
- m_options.searchString = m_xSearchEdit->get_text();
- utl::TextSearch textSearch( m_options );
- for (auto const& it : m_prefBoxEntries)
- {
- sal_Int32 endPos, startPos = 0;
-
- for(size_t i = 0; i < 5; ++i)
- {
- OUString scrTxt;
-
- if (i == 0)
- scrTxt = it.pUserData->sPropertyPath;
- else if (i == 1)
- scrTxt = it.sProp;
- else if (i == 2)
- scrTxt = it.sStatus;
- else if (i == 3)
- scrTxt = it.sType;
- else if (i == 4)
- scrTxt = it.sValue;
-
- endPos = scrTxt.getLength();
- if (textSearch.SearchForward(scrTxt, &startPos, &endPos))
- {
- InsertEntry(it);
- break;
- }
- }
- }
- }
-
- m_xPrefBox->thaw();
- if (m_bSorted)
- m_xPrefBox->make_sorted();
-
- m_xPrefBox->all_foreach([this](weld::TreeIter& rEntry) {
- m_xPrefBox->expand_row(rEntry);
- return false;
- });
- m_xPrefBox->show();
+IMPL_LINK_NOARG(CuiAboutConfigTabPage, ModifiedHdl_Impl, weld::Toggleable&, void)
+{
+ InputChanged();
}
void CuiAboutConfigTabPage::InsertEntry(const prefBoxEntry& rEntry)
{
+ bool bOnlyModified = m_xModifiedCheckBtn->get_active();
+ if (bOnlyModified && !rEntry.pUserData->bWasModified)
+ return;
+
OUString sPathWithProperty = rEntry.pUserData->sPropertyPath;
sal_Int32 index = sPathWithProperty.lastIndexOf(rEntry.sProp);
OUString sPath = sPathWithProperty.copy(0, index);
@@ -852,18 +1029,21 @@ void CuiAboutConfigTabPage::InsertEntry(const prefBoxEntry& rEntry)
do
{
int prevIndex = index;
- index = sPath.indexOf("/", index+1);
+ index = sPath.indexOf("/", index + 1);
// deal with no parent case (tdf#107811)
if (index < 0)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(rEntry.pUserData)));
- m_xPrefBox->insert(nullptr, -1, &rEntry.sProp, &sId, nullptr, nullptr, false, m_xScratchIter.get());
+ OUString sId(weld::toId(rEntry.pUserData));
+ m_xPrefBox->insert(nullptr, -1, &rEntry.sProp, &sId, nullptr, nullptr, false,
+ m_xScratchIter.get());
m_xPrefBox->set_text(*m_xScratchIter, rEntry.sStatus, 1);
m_xPrefBox->set_text(*m_xScratchIter, rEntry.sType, 2);
m_xPrefBox->set_text(*m_xScratchIter, rEntry.sValue, 3);
+ m_xPrefBox->set_text_emphasis(*m_xScratchIter, rEntry.pUserData->bWasModified, -1);
+ m_xPrefBox->set_sensitive(*m_xScratchIter, !rEntry.pUserData->bIsReadOnly);
return;
}
- OUString sParentName = sPath.copy(prevIndex+1, index - prevIndex - 1);
+ OUString sParentName = sPath.copy(prevIndex + 1, index - prevIndex - 1);
bool hasEntry = false;
bool bStartOk;
@@ -890,28 +1070,33 @@ void CuiAboutConfigTabPage::InsertEntry(const prefBoxEntry& rEntry)
if (!hasEntry)
{
- m_xPrefBox->insert(xGrandParentEntry.get(), -1, &sParentName, nullptr, nullptr, nullptr, false, xParentEntry.get());
+ m_xPrefBox->insert(xGrandParentEntry.get(), -1, &sParentName, nullptr, nullptr, nullptr,
+ false, xParentEntry.get());
//It is needed, without this the selection line will be truncated.
- m_xPrefBox->set_text(*xParentEntry, "", 1);
- m_xPrefBox->set_text(*xParentEntry, "", 2);
- m_xPrefBox->set_text(*xParentEntry, "", 3);
+ m_xPrefBox->set_text(*xParentEntry, u""_ustr, 1);
+ m_xPrefBox->set_text(*xParentEntry, u""_ustr, 2);
+ m_xPrefBox->set_text(*xParentEntry, u""_ustr, 3);
+ m_xPrefBox->set_sensitive(*xParentEntry, true);
}
xGrandParentEntry = m_xPrefBox->make_iterator(xParentEntry.get());
- } while(index < sPath.getLength() - 1);
+ } while (index < sPath.getLength() - 1);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(rEntry.pUserData)));
- m_xPrefBox->insert(xParentEntry.get(), -1, &rEntry.sProp, &sId, nullptr, nullptr, false, m_xScratchIter.get());
+ OUString sId(weld::toId(rEntry.pUserData));
+ m_xPrefBox->insert(xParentEntry.get(), -1, &rEntry.sProp, &sId, nullptr, nullptr, false,
+ m_xScratchIter.get());
m_xPrefBox->set_text(*m_xScratchIter, rEntry.sStatus, 1);
m_xPrefBox->set_text(*m_xScratchIter, rEntry.sType, 2);
m_xPrefBox->set_text(*m_xScratchIter, rEntry.sValue, 3);
+ m_xPrefBox->set_text_emphasis(*m_xScratchIter, rEntry.pUserData->bWasModified, -1);
+ m_xPrefBox->set_sensitive(*m_xScratchIter, !rEntry.pUserData->bIsReadOnly);
}
IMPL_LINK(CuiAboutConfigTabPage, ExpandingHdl_Impl, const weld::TreeIter&, rEntry, bool)
{
if (m_xPrefBox->iter_has_child(rEntry))
return true;
- UserData *pUserData = reinterpret_cast<UserData*>(m_xPrefBox->get_id(rEntry).toInt64());
+ UserData* pUserData = weld::fromId<UserData*>(m_xPrefBox->get_id(rEntry));
if (pUserData && !pUserData->bIsPropertyPath)
{
assert(pUserData->aXNameAccess.is());
diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx
index 69a207da6712..2b9402369a26 100644
--- a/cui/source/options/optaboutconfig.hxx
+++ b/cui/source/options/optaboutconfig.hxx
@@ -11,6 +11,7 @@
#include <com/sun/star/container/XNameAccess.hpp>
+#include <dlgname.hxx>
#include <i18nutil/searchopt.hxx>
#include <vcl/weld.hxx>
@@ -36,60 +37,52 @@ private:
std::unique_ptr<weld::Button> m_xResetBtn;
std::unique_ptr<weld::Button> m_xEditBtn;
std::unique_ptr<weld::Button> m_xSearchBtn;
+ std::unique_ptr<weld::CheckButton> m_xModifiedCheckBtn;
std::unique_ptr<weld::Entry> m_xSearchEdit;
std::unique_ptr<weld::TreeView> m_xPrefBox;
std::unique_ptr<weld::TreeIter> m_xScratchIter;
- std::vector < std::unique_ptr<UserData> > m_vectorUserData;
+ std::vector<std::unique_ptr<UserData>> m_vectorUserData;
std::vector<prefBoxEntry> m_modifiedPrefBoxEntries;
- std::vector< std::shared_ptr< Prop_Impl > > m_vectorOfModified;
+ std::vector<std::shared_ptr<Prop_Impl>> m_vectorOfModified;
- //for search
+ //for search
i18nutil::SearchOptions2 m_options;
std::vector<prefBoxEntry> m_prefBoxEntries;
bool m_bSorted;
- void AddToModifiedVector( const std::shared_ptr< Prop_Impl >& rProp );
- static std::vector< OUString > commaStringToSequence( const OUString& rCommaSepString );
+ void AddToModifiedVector(const std::shared_ptr<Prop_Impl>& rProp);
+ static std::vector<OUString> commaStringToSequence(std::u16string_view rCommaSepString);
void InsertEntry(const prefBoxEntry& rEntry);
+ DECL_LINK(QueryTooltip, const weld::TreeIter& rIter, OUString);
DECL_LINK(StandardHdl_Impl, weld::Button&, void);
DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, bool);
DECL_LINK(ResetBtnHdl_Impl, weld::Button&, void);
DECL_LINK(SearchHdl_Impl, weld::Button&, void);
+ DECL_LINK(ModifiedHdl_Impl, weld::Toggleable&, void);
DECL_LINK(ExpandingHdl_Impl, const weld::TreeIter&, bool);
DECL_LINK(HeaderBarClick, int, void);
+ DECL_STATIC_LINK(CuiAboutConfigTabPage, ValidNameHdl, SvxNameDialog&, bool);
public:
- explicit CuiAboutConfigTabPage(weld::Window* pParent);
- virtual ~CuiAboutConfigTabPage() override;
- void InsertEntry(const OUString &rPropertyPath, const OUString& rProp, const OUString& rStatus, const OUString& rType, const OUString& rValue,
- const weld::TreeIter* pParentEntry, bool bInsertToPrefBox);
- void Reset();
- void FillItems(const css::uno::Reference<css::container::XNameAccess>& xNameAccess,
- const weld::TreeIter* pParentEntry = nullptr, int lineage = 0, bool bLoadAll = false);
- static css::uno::Reference< css::container::XNameAccess > getConfigAccess( const OUString& sNodePath, bool bUpdate );
- void FillItemSet();
-};
-
-class CuiAboutConfigValueDialog : public weld::GenericDialogController
-{
-private:
- bool m_bNumericOnly;
- std::unique_ptr<weld::Entry> m_xEDValue;
-
- DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
-
-public:
- CuiAboutConfigValueDialog(weld::Window* pWindow, const OUString& rValue , int limit);
- virtual ~CuiAboutConfigValueDialog() override;
-
- OUString getValue() const
- {
- return m_xEDValue->get_text();
- }
+ explicit CuiAboutConfigTabPage(weld::Window* pParent);
+ virtual ~CuiAboutConfigTabPage() override;
+ void InsertEntry(const OUString& rPropertyPath, css::uno::Any aPropertyValue,
+ const OUString& rProp, const OUString& rStatus, const OUString& rType,
+ const OUString& rValue, const OUString& rTooltip,
+ const weld::TreeIter* pParentEntry, bool bInsertToPrefBox, bool bIsReadOnly,
+ bool bWasMOdified);
+ void Reset();
+ void InputChanged();
+ void FillItems(const css::uno::Reference<css::container::XNameAccess>& xNameAccess,
+ const weld::TreeIter* pParentEntry = nullptr, int lineage = 0,
+ bool bLoadAll = false);
+ static css::uno::Reference<css::container::XNameAccess>
+ getConfigAccess(const OUString& sNodePath, bool bUpdate);
+ void FillItemSet();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optaccessibility.cxx b/cui/source/options/optaccessibility.cxx
index a394ff955a4a..dfb9d386bed8 100644
--- a/cui/source/options/optaccessibility.cxx
+++ b/cui/source/options/optaccessibility.cxx
@@ -24,14 +24,21 @@
SvxAccessibilityOptionsTabPage::SvxAccessibilityOptionsTabPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optaccessibilitypage.ui", "OptAccessibilityPage", &rSet)
- , m_xAccessibilityTool(m_xBuilder->weld_check_button("acctool"))
- , m_xTextSelectionInReadonly(m_xBuilder->weld_check_button("textselinreadonly"))
- , m_xAnimatedGraphics(m_xBuilder->weld_check_button("animatedgraphics"))
- , m_xAnimatedTexts(m_xBuilder->weld_check_button("animatedtext"))
- , m_xAutoDetectHC(m_xBuilder->weld_check_button("autodetecthc"))
- , m_xAutomaticFontColor(m_xBuilder->weld_check_button("autofontcolor"))
- , m_xPagePreviews(m_xBuilder->weld_check_button("systempagepreviewcolor"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optaccessibilitypage.ui"_ustr, u"OptAccessibilityPage"_ustr, &rSet)
+ , m_xAccessibilityTool(m_xBuilder->weld_check_button(u"acctool"_ustr))
+ , m_xTextSelectionInReadonly(m_xBuilder->weld_check_button(u"textselinreadonly"_ustr))
+ , m_xTextSelectionInReadonlyImg(m_xBuilder->weld_widget(u"locktextselinreadonly"_ustr))
+ , m_xAnimatedGraphics(m_xBuilder->weld_check_button(u"animatedgraphics"_ustr))
+ , m_xAnimatedGraphicsImg(m_xBuilder->weld_widget(u"lockanimatedgraphics"_ustr))
+ , m_xAnimatedTexts(m_xBuilder->weld_check_button(u"animatedtext"_ustr))
+ , m_xAnimatedTextsImg(m_xBuilder->weld_widget(u"lockanimatedtext"_ustr))
+ , m_xHighContrast(m_xBuilder->weld_combo_box(u"highcontrast"_ustr))
+ , m_xHighContrastImg(m_xBuilder->weld_widget(u"lockhighcontrast"_ustr))
+ , m_xHighContrastLabel(m_xBuilder->weld_label(u"label13"_ustr))
+ , m_xAutomaticFontColor(m_xBuilder->weld_check_button(u"autofontcolor"_ustr))
+ , m_xAutomaticFontColorImg(m_xBuilder->weld_widget(u"lockautofontcolor"_ustr))
+ , m_xPagePreviews(m_xBuilder->weld_check_button(u"systempagepreviewcolor"_ustr))
+ , m_xPagePreviewsImg(m_xBuilder->weld_widget(u"locksystempagepreviewcolor"_ustr))
{
#ifdef UNX
// UNIX: read the gconf2 setting instead to use the checkbox
@@ -48,6 +55,29 @@ std::unique_ptr<SfxTabPage> SvxAccessibilityOptionsTabPage::Create(weld::Contain
return std::make_unique<SvxAccessibilityOptionsTabPage>(pPage, pController, *rAttrSet);
}
+OUString SvxAccessibilityOptionsTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label13"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"acctool"_ustr, u"textselinreadonly"_ustr, u"animatedgraphics"_ustr,
+ u"animatedtext"_ustr, u"autofontcolor"_ustr, u"systempagepreviewcolor"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxAccessibilityOptionsTabPage::FillItemSet( SfxItemSet* )
{
std::shared_ptr<comphelper::ConfigurationChanges> batch( comphelper::ConfigurationChanges::create() );
@@ -61,8 +91,8 @@ bool SvxAccessibilityOptionsTabPage::FillItemSet( SfxItemSet* )
officecfg::Office::Common::Accessibility::IsAutomaticFontColor::set(m_xAutomaticFontColor->get_active(), batch);
if ( !officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly() )
officecfg::Office::Common::Accessibility::IsSelectionInReadonly::set(m_xTextSelectionInReadonly->get_active(), batch);
- if ( !officecfg::Office::Common::Accessibility::AutoDetectSystemHC::isReadOnly() )
- officecfg::Office::Common::Accessibility::AutoDetectSystemHC::set(m_xAutoDetectHC->get_active(), batch);
+ if ( !officecfg::Office::Common::Accessibility::HighContrast::isReadOnly() )
+ officecfg::Office::Common::Accessibility::HighContrast::set(m_xHighContrast->get_active(), batch);
batch->commit();
AllSettings aAllSettings = Application::GetSettings();
@@ -80,28 +110,47 @@ bool SvxAccessibilityOptionsTabPage::FillItemSet( SfxItemSet* )
void SvxAccessibilityOptionsTabPage::Reset( const SfxItemSet* )
{
m_xPagePreviews->set_active( officecfg::Office::Common::Accessibility::IsForPagePreviews::get() );
- if( officecfg::Office::Common::Accessibility::IsForPagePreviews::isReadOnly() )
+ if (officecfg::Office::Common::Accessibility::IsForPagePreviews::isReadOnly())
+ {
m_xPagePreviews->set_sensitive(false);
+ m_xPagePreviewsImg->set_visible(true);
+ }
m_xAnimatedGraphics->set_active( officecfg::Office::Common::Accessibility::IsAllowAnimatedGraphics::get() );
- if( officecfg::Office::Common::Accessibility::IsAllowAnimatedGraphics::isReadOnly() )
+ if (officecfg::Office::Common::Accessibility::IsAllowAnimatedGraphics::isReadOnly())
+ {
m_xAnimatedGraphics->set_sensitive(false);
+ m_xAnimatedGraphicsImg->set_visible(true);
+ }
m_xAnimatedTexts->set_active( officecfg::Office::Common::Accessibility::IsAllowAnimatedText::get() );
- if( officecfg::Office::Common::Accessibility::IsAllowAnimatedText::isReadOnly() )
+ if (officecfg::Office::Common::Accessibility::IsAllowAnimatedText::isReadOnly())
+ {
m_xAnimatedTexts->set_sensitive(false);
+ m_xAnimatedTextsImg->set_visible(true);
+ }
m_xAutomaticFontColor->set_active( officecfg::Office::Common::Accessibility::IsAutomaticFontColor::get() );
- if( officecfg::Office::Common::Accessibility::IsAutomaticFontColor::isReadOnly() )
+ if (officecfg::Office::Common::Accessibility::IsAutomaticFontColor::isReadOnly())
+ {
m_xAutomaticFontColor->set_sensitive(false);
+ m_xAutomaticFontColorImg->set_visible(true);
+ }
m_xTextSelectionInReadonly->set_active( officecfg::Office::Common::Accessibility::IsSelectionInReadonly::get() );
- if( officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly() )
+ if (officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly())
+ {
m_xTextSelectionInReadonly->set_sensitive(false);
+ m_xTextSelectionInReadonlyImg->set_visible(true);
+ }
- m_xAutoDetectHC->set_active( officecfg::Office::Common::Accessibility::AutoDetectSystemHC::get() );
- if( officecfg::Office::Common::Accessibility::AutoDetectSystemHC::isReadOnly() )
- m_xAutoDetectHC->set_sensitive(false);
+ m_xHighContrast->set_active( officecfg::Office::Common::Accessibility::HighContrast::get() );
+ if (officecfg::Office::Common::Accessibility::HighContrast::isReadOnly())
+ {
+ m_xHighContrast->set_sensitive(false);
+ m_xHighContrastLabel->set_sensitive(false);
+ m_xHighContrastImg->set_visible(true);
+ }
AllSettings aAllSettings = Application::GetSettings();
const MiscSettings& aMiscSettings = aAllSettings.GetMiscSettings();
diff --git a/cui/source/options/optaccessibility.hxx b/cui/source/options/optaccessibility.hxx
index 35d5fdefde03..73fe167c1679 100644
--- a/cui/source/options/optaccessibility.hxx
+++ b/cui/source/options/optaccessibility.hxx
@@ -24,17 +24,27 @@ class SvxAccessibilityOptionsTabPage : public SfxTabPage
{
std::unique_ptr<weld::CheckButton> m_xAccessibilityTool;
std::unique_ptr<weld::CheckButton> m_xTextSelectionInReadonly;
+ std::unique_ptr<weld::Widget> m_xTextSelectionInReadonlyImg;
std::unique_ptr<weld::CheckButton> m_xAnimatedGraphics;
+ std::unique_ptr<weld::Widget> m_xAnimatedGraphicsImg;
std::unique_ptr<weld::CheckButton> m_xAnimatedTexts;
- std::unique_ptr<weld::CheckButton> m_xAutoDetectHC;
+ std::unique_ptr<weld::Widget> m_xAnimatedTextsImg;
+ std::unique_ptr<weld::ComboBox> m_xHighContrast;
+ std::unique_ptr<weld::Widget> m_xHighContrastImg;
+ std::unique_ptr<weld::Label> m_xHighContrastLabel;
std::unique_ptr<weld::CheckButton> m_xAutomaticFontColor;
+ std::unique_ptr<weld::Widget> m_xAutomaticFontColorImg;
std::unique_ptr<weld::CheckButton> m_xPagePreviews;
+ std::unique_ptr<weld::Widget> m_xPagePreviewsImg;
public:
SvxAccessibilityOptionsTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
virtual ~SvxAccessibilityOptionsTabPage() override;
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/options/optasian.cxx b/cui/source/options/optasian.cxx
index 94a192cfddc7..66f7f9818851 100644
--- a/cui/source/options/optasian.cxx
+++ b/cui/source/options/optasian.cxx
@@ -20,9 +20,8 @@
#include <memory>
#include <map>
#include <optasian.hxx>
-#include <osl/diagnose.h>
#include <tools/debug.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <o3tl/any.hxx>
#include <i18nlangtag/mslangid.hxx>
#include <svl/asiancfg.hxx>
@@ -43,15 +42,15 @@ using namespace com::sun::star::i18n;
using namespace com::sun::star::frame;
using namespace com::sun::star::beans;
-constexpr OUStringLiteral cIsKernAsianPunctuation = u"IsKernAsianPunctuation";
-constexpr OUStringLiteral cCharacterCompressionType = u"CharacterCompressionType";
+constexpr OUString cIsKernAsianPunctuation = u"IsKernAsianPunctuation"_ustr;
+constexpr OUString cCharacterCompressionType = u"CharacterCompressionType"_ustr;
namespace {
struct SvxForbiddenChars_Impl
{
bool bRemoved;
- std::unique_ptr<ForbiddenCharacters> pCharacters;
+ std::optional<ForbiddenCharacters> oCharacters;
};
}
@@ -64,12 +63,12 @@ struct SvxAsianLayoutPage_Impl
Reference< XForbiddenCharacters > xForbidden;
Reference< XPropertySet > xPrSet;
Reference< XPropertySetInfo > xPrSetInfo;
- std::map< LanguageType, std::unique_ptr<SvxForbiddenChars_Impl> >
+ std::map< LanguageType, SvxForbiddenChars_Impl >
aChangedLanguagesMap;
bool hasForbiddenCharacters(LanguageType eLang);
SvxForbiddenChars_Impl* getForbiddenCharacters(LanguageType eLang);
- void addForbiddenCharacters(LanguageType eLang, std::unique_ptr<ForbiddenCharacters> pForbidden);
+ void addForbiddenCharacters(LanguageType eLang, std::optional<ForbiddenCharacters> oForbidden);
};
bool SvxAsianLayoutPage_Impl::hasForbiddenCharacters(LanguageType eLang)
@@ -82,46 +81,46 @@ SvxForbiddenChars_Impl* SvxAsianLayoutPage_Impl::getForbiddenCharacters(Language
auto it = aChangedLanguagesMap.find( eLang );
DBG_ASSERT( ( it != aChangedLanguagesMap.end() ), "language not available");
if( it != aChangedLanguagesMap.end() )
- return it->second.get();
+ return &it->second;
return nullptr;
}
void SvxAsianLayoutPage_Impl::addForbiddenCharacters(
- LanguageType eLang, std::unique_ptr<ForbiddenCharacters> pForbidden)
+ LanguageType eLang, std::optional<ForbiddenCharacters> oForbidden)
{
auto itOld = aChangedLanguagesMap.find( eLang );
if( itOld == aChangedLanguagesMap.end() )
{
- std::unique_ptr<SvxForbiddenChars_Impl> pChar(new SvxForbiddenChars_Impl);
- pChar->bRemoved = nullptr == pForbidden;
- pChar->pCharacters = std::move(pForbidden);
- aChangedLanguagesMap.emplace( eLang, std::move(pChar) );
+ SvxForbiddenChars_Impl aChar;
+ aChar.bRemoved = !oForbidden.has_value();
+ aChar.oCharacters = std::move(oForbidden);
+ aChangedLanguagesMap.emplace( eLang, std::move(aChar) );
}
else
{
- itOld->second->bRemoved = nullptr == pForbidden;
- itOld->second->pCharacters = std::move(pForbidden);
+ itOld->second.bRemoved = !oForbidden.has_value();
+ itOld->second.oCharacters = std::move(oForbidden);
}
}
static LanguageType eLastUsedLanguageTypeForForbiddenCharacters(USHRT_MAX);
SvxAsianLayoutPage::SvxAsianLayoutPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optasianpage.ui", "OptAsianPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/optasianpage.ui"_ustr, u"OptAsianPage"_ustr, &rSet)
, pImpl(new SvxAsianLayoutPage_Impl)
- , m_xCharKerningRB(m_xBuilder->weld_radio_button("charkerning"))
- , m_xCharPunctKerningRB(m_xBuilder->weld_radio_button("charpunctkerning"))
- , m_xNoCompressionRB(m_xBuilder->weld_radio_button("nocompression"))
- , m_xPunctCompressionRB(m_xBuilder->weld_radio_button("punctcompression"))
- , m_xPunctKanaCompressionRB(m_xBuilder->weld_radio_button("punctkanacompression"))
- , m_xLanguageFT(m_xBuilder->weld_label("languageft"))
- , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("language")))
- , m_xStandardCB(m_xBuilder->weld_check_button("standard"))
- , m_xStartFT(m_xBuilder->weld_label("startft"))
- , m_xStartED(m_xBuilder->weld_entry("start"))
- , m_xEndFT(m_xBuilder->weld_label("endft"))
- , m_xEndED(m_xBuilder->weld_entry("end"))
- , m_xHintFT(m_xBuilder->weld_label("hintft"))
+ , m_xCharKerningRB(m_xBuilder->weld_radio_button(u"charkerning"_ustr))
+ , m_xCharPunctKerningRB(m_xBuilder->weld_radio_button(u"charpunctkerning"_ustr))
+ , m_xNoCompressionRB(m_xBuilder->weld_radio_button(u"nocompression"_ustr))
+ , m_xPunctCompressionRB(m_xBuilder->weld_radio_button(u"punctcompression"_ustr))
+ , m_xPunctKanaCompressionRB(m_xBuilder->weld_radio_button(u"punctkanacompression"_ustr))
+ , m_xLanguageFT(m_xBuilder->weld_label(u"languageft"_ustr))
+ , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"language"_ustr)))
+ , m_xStandardCB(m_xBuilder->weld_check_button(u"standard"_ustr))
+ , m_xStartFT(m_xBuilder->weld_label(u"startft"_ustr))
+ , m_xStartED(m_xBuilder->weld_entry(u"start"_ustr))
+ , m_xEndFT(m_xBuilder->weld_label(u"endft"_ustr))
+ , m_xEndED(m_xBuilder->weld_entry(u"end"_ustr))
+ , m_xHintFT(m_xBuilder->weld_label(u"hintft"_ustr))
{
LanguageHdl(*m_xLanguageLB->get_widget());
m_xLanguageLB->connect_changed(LINK(this, SvxAsianLayoutPage, LanguageHdl));
@@ -142,6 +141,32 @@ std::unique_ptr<SfxTabPage> SvxAsianLayoutPage::Create(weld::Container* pPage, w
return std::make_unique<SvxAsianLayoutPage>(pPage, pController, *rAttrSet);
}
+OUString SvxAsianLayoutPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[]
+ = { u"label1"_ustr, u"label2"_ustr, u"label3"_ustr, u"languageft"_ustr, u"startft"_ustr, u"endft"_ustr, u"hintft"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString radioButton[] = { u"charkerning"_ustr, u"charpunctkerning"_ustr, u"nocompression"_ustr,
+ u"punctcompression"_ustr, u"punctkanacompression"_ustr };
+
+ for (const auto& radio : radioButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_radio_button(radio))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ sAllStrings += m_xStandardCB->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxAsianLayoutPage::FillItemSet( SfxItemSet* )
{
if(m_xCharKerningRB->get_state_changed_from_saved())
@@ -176,10 +201,10 @@ bool SvxAsianLayoutPage::FillItemSet( SfxItemSet* )
for (auto const& changedLanguage : pImpl->aChangedLanguagesMap)
{
Locale aLocale( LanguageTag::convertToLocale(changedLanguage.first));
- if(changedLanguage.second->bRemoved)
+ if(changedLanguage.second.bRemoved)
pImpl->xForbidden->removeForbiddenCharacters( aLocale );
- else if(changedLanguage.second->pCharacters)
- pImpl->xForbidden->setForbiddenCharacters( aLocale, *( changedLanguage.second->pCharacters ) );
+ else if(changedLanguage.second.oCharacters)
+ pImpl->xForbidden->setForbiddenCharacters( aLocale, *( changedLanguage.second.oCharacters ) );
}
}
catch (const Exception&)
@@ -202,15 +227,15 @@ void SvxAsianLayoutPage::Reset( const SfxItemSet* )
Reference<XMultiServiceFactory> xFact(xModel, UNO_QUERY);
if(xFact.is())
{
- pImpl->xPrSet.set(xFact->createInstance("com.sun.star.document.Settings"), UNO_QUERY);
+ pImpl->xPrSet.set(xFact->createInstance(u"com.sun.star.document.Settings"_ustr), UNO_QUERY);
}
if( pImpl->xPrSet.is() )
pImpl->xPrSetInfo = pImpl->xPrSet->getPropertySetInfo();
- bool bKernWesternText = pImpl->aConfig.IsKerningWesternTextOnly();
- CharCompressType nCompress = pImpl->aConfig.GetCharDistanceCompression();
+ bool bKernWesternText = SvxAsianConfig::IsKerningWesternTextOnly();
+ CharCompressType nCompress = SvxAsianConfig::GetCharDistanceCompression();
if(pImpl->xPrSetInfo.is())
{
- OUString sForbidden("ForbiddenCharacters");
+ OUString sForbidden(u"ForbiddenCharacters"_ustr);
if(pImpl->xPrSetInfo->hasPropertyByName(sForbidden))
{
Any aForbidden = pImpl->xPrSet->getPropertyValue(sForbidden);
@@ -287,14 +312,14 @@ IMPL_LINK_NOARG(SvxAsianLayoutPage, LanguageHdl, weld::ComboBox&, void)
if(bAvail)
{
SvxForbiddenChars_Impl* pElement = pImpl->getForbiddenCharacters(eSelectLanguage);
- if(pElement->bRemoved || !pElement->pCharacters)
+ if(pElement->bRemoved || !pElement->oCharacters)
{
bAvail = false;
}
else
{
- sStart = pElement->pCharacters->beginLine;
- sEnd = pElement->pCharacters->endLine;
+ sStart = pElement->oCharacters->beginLine;
+ sEnd = pElement->oCharacters->endLine;
}
}
else
@@ -317,11 +342,11 @@ IMPL_LINK_NOARG(SvxAsianLayoutPage, LanguageHdl, weld::ComboBox&, void)
}
else
{
- bAvail = pImpl->aConfig.GetStartEndChars( aLocale, sStart, sEnd );
+ bAvail = SvxAsianConfig::GetStartEndChars( aLocale, sStart, sEnd );
}
if(!bAvail)
{
- LocaleDataWrapper aWrap( aLanguageTag );
+ LocaleDataWrapper aWrap( std::move(aLanguageTag) );
ForbiddenCharacters aForbidden = aWrap.getForbiddenCharacters();
sStart = aForbidden.beginLine;
sEnd = aForbidden.endLine;
@@ -359,13 +384,13 @@ IMPL_LINK(SvxAsianLayoutPage, ModifyHdl, weld::Entry&, rEdit, void)
{
if(bEnable)
{
- std::unique_ptr<ForbiddenCharacters> pFCSet(new ForbiddenCharacters);
- pFCSet->beginLine = sStart;
- pFCSet->endLine = sEnd;
- pImpl->addForbiddenCharacters(eSelectLanguage, std::move(pFCSet));
+ ForbiddenCharacters aFCSet;
+ aFCSet.beginLine = sStart;
+ aFCSet.endLine = sEnd;
+ pImpl->addForbiddenCharacters(eSelectLanguage, std::move(aFCSet));
}
else
- pImpl->addForbiddenCharacters(eSelectLanguage, nullptr);
+ pImpl->addForbiddenCharacters(eSelectLanguage, std::nullopt);
}
catch (const Exception&)
{
diff --git a/cui/source/options/optbasic.cxx b/cui/source/options/optbasic.cxx
index c550d9440edd..d7bd06d94626 100644
--- a/cui/source/options/optbasic.cxx
+++ b/cui/source/options/optbasic.cxx
@@ -22,13 +22,13 @@
#include <officecfg/Office/BasicIDE.hxx>
SvxBasicIDEOptionsPage::SvxBasicIDEOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optbasicidepage.ui", "OptBasicIDEPage", &rSet)
- , m_xCodeCompleteChk(m_xBuilder->weld_check_button("codecomplete_enable"))
- , m_xAutocloseProcChk(m_xBuilder->weld_check_button("autoclose_proc"))
- , m_xAutocloseParenChk(m_xBuilder->weld_check_button("autoclose_paren"))
- , m_xAutocloseQuotesChk(m_xBuilder->weld_check_button("autoclose_quotes"))
- , m_xAutoCorrectChk(m_xBuilder->weld_check_button("autocorrect"))
- , m_xUseExtendedTypesChk(m_xBuilder->weld_check_button("extendedtypes_enable"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optbasicidepage.ui"_ustr, u"OptBasicIDEPage"_ustr, &rSet)
+ , m_xCodeCompleteChk(m_xBuilder->weld_check_button(u"codecomplete_enable"_ustr))
+ , m_xAutocloseProcChk(m_xBuilder->weld_check_button(u"autoclose_proc"_ustr))
+ , m_xAutocloseParenChk(m_xBuilder->weld_check_button(u"autoclose_paren"_ustr))
+ , m_xAutocloseQuotesChk(m_xBuilder->weld_check_button(u"autoclose_quotes"_ustr))
+ , m_xAutoCorrectChk(m_xBuilder->weld_check_button(u"autocorrect"_ustr))
+ , m_xUseExtendedTypesChk(m_xBuilder->weld_check_button(u"extendedtypes_enable"_ustr))
{
LoadConfig();
}
@@ -53,6 +53,29 @@ void SvxBasicIDEOptionsPage::LoadConfig()
m_xUseExtendedTypesChk->set_sensitive( !officecfg::Office::BasicIDE::Autocomplete::UseExtended::isReadOnly() );
}
+OUString SvxBasicIDEOptionsPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label3"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"codecomplete_enable"_ustr, u"autocorrect"_ustr, u"autoclose_quotes"_ustr,
+ u"autoclose_paren"_ustr, u"autoclose_proc"_ustr, u"extendedtypes_enable"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxBasicIDEOptionsPage::FillItemSet( SfxItemSet* /*rCoreSet*/ )
{
bool bModified = false;
diff --git a/cui/source/options/optbasic.hxx b/cui/source/options/optbasic.hxx
index 990b54d4e3bb..bc4274eaca1e 100644
--- a/cui/source/options/optbasic.hxx
+++ b/cui/source/options/optbasic.hxx
@@ -38,6 +38,9 @@ public:
virtual ~SvxBasicIDEOptionsPage() override;
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet );
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
virtual void FillUserData() override;
diff --git a/cui/source/options/optchart.cxx b/cui/source/options/optchart.cxx
index b8499c5ee886..ec5c92c4a1c8 100644
--- a/cui/source/options/optchart.cxx
+++ b/cui/source/options/optchart.cxx
@@ -26,6 +26,7 @@
#include <svx/svxids.hrc>
#include <osl/diagnose.h>
#include <officecfg/Office/Common.hxx>
+#include <officecfg/Office/Chart.hxx>
void SvxDefaultColorOptPage::InsertColorEntry(const XColorEntry& rEntry, sal_Int32 nPos)
{
@@ -89,17 +90,25 @@ void SvxDefaultColorOptPage::FillBoxChartColorLB()
}
SvxDefaultColorOptPage::SvxDefaultColorOptPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/optchartcolorspage.ui", "OptChartColorsPage", &rInAttrs)
- , m_xLbChartColors(m_xBuilder->weld_tree_view("colors"))
- , m_xLbPaletteSelector(m_xBuilder->weld_combo_box("paletteselector"))
- , m_xPBDefault(m_xBuilder->weld_button("default"))
- , m_xPBAdd(m_xBuilder->weld_button("add"))
- , m_xPBRemove(m_xBuilder->weld_button("delete"))
- , m_xValSetColorBox(new SvxColorValueSet(m_xBuilder->weld_scrolled_window("tablewin", true)))
- , m_xValSetColorBoxWin(new weld::CustomWeld(*m_xBuilder, "table", *m_xValSetColorBox))
+ : SfxTabPage(pPage, pController, u"cui/ui/optchartcolorspage.ui"_ustr, u"OptChartColorsPage"_ustr, &rInAttrs)
+ , m_xLbChartColors(m_xBuilder->weld_tree_view(u"colors"_ustr))
+ , m_xLbPaletteSelector(m_xBuilder->weld_combo_box(u"paletteselector"_ustr))
+ , m_xPBDefault(m_xBuilder->weld_button(u"default"_ustr))
+ , m_xPBAdd(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xPBRemove(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xValSetColorBox(new SvxColorValueSet(m_xBuilder->weld_scrolled_window(u"tablewin"_ustr, true)))
+ , m_xValSetColorBoxWin(new weld::CustomWeld(*m_xBuilder, u"table"_ustr, *m_xValSetColorBox))
{
m_xLbChartColors->set_size_request(-1, m_xLbChartColors->get_height_rows(16));
+ if (officecfg::Office::Chart::DefaultColor::Series::isReadOnly())
+ {
+ m_xPBDefault->set_sensitive(false);
+ m_xPBAdd->set_sensitive(false);
+ m_xPBRemove->set_sensitive(false);
+ m_xValSetColorBoxWin->set_sensitive(false);
+ }
+
m_xPBDefault->connect_clicked( LINK( this, SvxDefaultColorOptPage, ResetToDefaults ) );
m_xPBAdd->connect_clicked( LINK( this, SvxDefaultColorOptPage, AddChartColor ) );
m_xPBRemove->connect_clicked( LINK( this, SvxDefaultColorOptPage, RemoveChartColor ) );
@@ -109,19 +118,16 @@ SvxDefaultColorOptPage::SvxDefaultColorOptPage(weld::Container* pPage, weld::Dia
m_xValSetColorBox->SetStyle( m_xValSetColorBox->GetStyle()
| WB_ITEMBORDER | WB_NAMEFIELD | WB_VSCROLL );
- m_SvxChartOptionsUniquePtr.reset(new SvxChartOptions);
-
- const SfxPoolItem* pItem = nullptr;
- if ( rInAttrs.GetItemState( SID_SCH_EDITOPTIONS, false, &pItem ) == SfxItemState::SET )
+ if ( const SvxChartColorTableItem* pEditOptionsItem = rInAttrs.GetItemIfSet( SID_SCH_EDITOPTIONS, false ) )
{
m_SvxChartColorTableUniquePtr = std::make_unique<SvxChartColorTable>(
- static_cast<const SvxChartColorTableItem*>(pItem)->GetColorList());
+ pEditOptionsItem->GetColorList());
}
else
{
m_SvxChartColorTableUniquePtr = std::make_unique<SvxChartColorTable>();
m_SvxChartColorTableUniquePtr->useDefault();
- m_SvxChartOptionsUniquePtr->SetDefaultColors(*m_SvxChartColorTableUniquePtr);
+ SvxChartOptions::SetDefaultColors(*m_SvxChartColorTableUniquePtr);
}
Construct();
@@ -146,6 +152,28 @@ std::unique_ptr<SfxTabPage> SvxDefaultColorOptPage::Create( weld::Container* pPa
return std::make_unique<SvxDefaultColorOptPage>( pPage, pController, *rAttrs );
}
+OUString SvxDefaultColorOptPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label20"_ustr, u"label1"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString buttons[] = { u"add"_ustr, u"delete"_ustr, u"default"_ustr };
+
+ for (const auto& btn : buttons)
+ {
+ if (const auto& pString = m_xBuilder->weld_button(btn))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxDefaultColorOptPage::FillItemSet( SfxItemSet* rOutAttrs )
{
if( m_SvxChartColorTableUniquePtr )
@@ -176,11 +204,8 @@ void SvxDefaultColorOptPage::FillPaletteLB()
void SvxDefaultColorOptPage::SaveChartOptions()
{
- if (m_SvxChartOptionsUniquePtr && m_SvxChartColorTableUniquePtr)
- {
- m_SvxChartOptionsUniquePtr->SetDefaultColors(*m_SvxChartColorTableUniquePtr);
- m_SvxChartOptionsUniquePtr->Commit();
- }
+ if (m_SvxChartColorTableUniquePtr)
+ SvxChartOptions::SetDefaultColors(*m_SvxChartColorTableUniquePtr);
}
// event handlers
@@ -230,8 +255,8 @@ IMPL_LINK_NOARG( SvxDefaultColorOptPage, RemoveChartColor, weld::Button&, void )
OSL_ENSURE(m_SvxChartColorTableUniquePtr->size() > 1, "don't delete the last chart color");
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletechartcolordialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("QueryDeleteChartColorDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletechartcolordialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(u"QueryDeleteChartColorDialog"_ustr));
if (RET_YES != xQuery->run())
return;
diff --git a/cui/source/options/optchart.hxx b/cui/source/options/optchart.hxx
index 11221617a9d1..22a01495b276 100644
--- a/cui/source/options/optchart.hxx
+++ b/cui/source/options/optchart.hxx
@@ -32,7 +32,6 @@ typedef std::vector<Color> ImpColorList;
class SvxDefaultColorOptPage : public SfxTabPage
{
private:
- std::unique_ptr<SvxChartOptions> m_SvxChartOptionsUniquePtr;
// no reason to use a cloned SfxItem here (SvxChartColorTableItem)
// that just leads to non-const SfxItem and potential trouble
std::unique_ptr<SvxChartColorTable> m_SvxChartColorTableUniquePtr;
@@ -70,6 +69,9 @@ public:
void Construct();
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rInAttrs );
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rOutAttrs ) override;
virtual void Reset( const SfxItemSet* rInAttrs ) override;
diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx
index ebe066b1073e..0987e25ca923 100644
--- a/cui/source/options/optcolor.cxx
+++ b/cui/source/options/optcolor.cxx
@@ -21,6 +21,8 @@
#include <bitset>
+#include <com/sun/star/configuration/ReadWriteAccess.hpp>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <tools/debug.hxx>
#include <editeng/editids.hrc>
#include <svtools/colorcfg.hxx>
@@ -34,7 +36,10 @@
#include <dialmgr.hxx>
#include "optcolor.hxx"
#include <strings.hrc>
-
+#include <svtools/miscopt.hxx>
+#include <officecfg/Office/Common.hxx>
+#include <officecfg/Office/ExtendedColorScheme.hxx>
+#include <officecfg/Office/UI.hxx>
using namespace ::com::sun::star;
using namespace ::svtools;
@@ -61,18 +66,18 @@ struct
// group
Group eGroup;
// .ui group name
- const char *pGroup;
+ OUString pGroup;
}
const vGroupInfo[] =
{
// the groups are in the same order as in enum Group above
- { Group_General, "general" },
- { Group_Writer, "writer" },
- { Group_Html, "html" },
- { Group_Calc, "calc" },
- { Group_Draw, "draw" },
- { Group_Basic, "basic" },
- { Group_Sql, "sql" }
+ { Group_General, u"general"_ustr },
+ { Group_Writer, u"writer"_ustr },
+ { Group_Html, u"html"_ustr },
+ { Group_Calc, u"calc"_ustr },
+ { Group_Draw, u"draw"_ustr },
+ { Group_Basic, u"basic"_ustr },
+ { Group_Sql, u"sql"_ustr }
};
// color config entry data (see ColorConfigWindow_Impl::Entry below)
@@ -81,82 +86,120 @@ struct
// group
Group eGroup;
//checkbox (or simple text)
- const char *pText;
+ OUString pText;
//color listbox
- const char *pColor;
+ OUString pColor;
// has checkbox?
bool bCheckBox;
+ //prop name
+ std::u16string_view sPropName;
}
const vEntryInfo[] =
{
#define IDS(Name) \
- SAL_STRINGIFY(Name), SAL_STRINGIFY(Name##_lb), false
+ u"" SAL_STRINGIFY(Name) ""_ustr, u"" SAL_STRINGIFY(Name##_lb) ""_ustr, false
#define IDS_CB(Name) \
- SAL_STRINGIFY(Name), SAL_STRINGIFY(Name##_lb), true
+ u"" SAL_STRINGIFY(Name) ""_ustr, u"" SAL_STRINGIFY(Name##_lb) ""_ustr, true
// The list of these entries (enum ColorConfigEntry) are in colorcfg.hxx.
- { Group_General, IDS(doccolor) },
- { Group_General, IDS_CB(docboundaries) },
- { Group_General, IDS(appback) },
- { Group_General, IDS_CB(objboundaries) },
- { Group_General, IDS_CB(tblboundaries) },
- { Group_General, IDS(font) },
- { Group_General, IDS_CB(unvisitedlinks) },
- { Group_General, IDS_CB(visitedlinks) },
- { Group_General, IDS(autospellcheck) },
- { Group_General, IDS(smarttags) },
- { Group_General, IDS_CB(shadows) },
-
- { Group_Writer, IDS(writergrid) },
- { Group_Writer, IDS_CB(field) },
- { Group_Writer, IDS_CB(index) },
- { Group_Writer, IDS(direct) },
- { Group_Writer, IDS(script) },
- { Group_Writer, IDS_CB(section) },
- { Group_Writer, IDS(hdft) },
- { Group_Writer, IDS(pagebreak) },
-
- { Group_Html, IDS(sgml) },
- { Group_Html, IDS(htmlcomment) },
- { Group_Html, IDS(htmlkeyword) },
- { Group_Html, IDS(unknown) },
-
- { Group_Calc, IDS(calcgrid) },
- { Group_Calc, IDS(brk) },
- { Group_Calc, IDS(brkmanual) },
- { Group_Calc, IDS(brkauto) },
- { Group_Calc, IDS(det) },
- { Group_Calc, IDS(deterror) },
- { Group_Calc, IDS(ref) },
- { Group_Calc, IDS(notes) },
- { Group_Calc, IDS(values) },
- { Group_Calc, IDS(formulas) },
- { Group_Calc, IDS(text) },
- { Group_Calc, IDS(protectedcells) },
-
- { Group_Draw, IDS(drawgrid) },
-
- { Group_Basic, IDS(basicid) },
- { Group_Basic, IDS(basiccomment) },
- { Group_Basic, IDS(basicnumber) },
- { Group_Basic, IDS(basicstring) },
- { Group_Basic, IDS(basicop) },
- { Group_Basic, IDS(basickeyword) },
- { Group_Basic, IDS(error) },
-
- { Group_Sql, IDS(sqlid) },
- { Group_Sql, IDS(sqlnumber) },
- { Group_Sql, IDS(sqlstring) },
- { Group_Sql, IDS(sqlop) },
- { Group_Sql, IDS(sqlkeyword) },
- { Group_Sql, IDS(sqlparam) },
- { Group_Sql, IDS(sqlcomment) }
+ { Group_General, IDS(doccolor), std::u16string_view(u"/DocColor") },
+ { Group_General, IDS_CB(docboundaries), std::u16string_view(u"/DocBoundaries") },
+ { Group_General, IDS(appback), std::u16string_view(u"/AppBackground") },
+ { Group_General, IDS_CB(objboundaries), std::u16string_view(u"/ObjectBoundaries") },
+ { Group_General, IDS_CB(tblboundaries), std::u16string_view(u"/TableBoundaries") },
+ { Group_General, IDS(font), std::u16string_view(u"/FontColor") },
+ { Group_General, IDS_CB(unvisitedlinks), std::u16string_view(u"/Links") },
+ { Group_General, IDS_CB(visitedlinks), std::u16string_view(u"/LinksVisited") },
+ { Group_General, IDS(autospellcheck), std::u16string_view(u"/Spell") },
+ { Group_General, IDS(grammarcheck), std::u16string_view(u"/Grammar") },
+ { Group_General, IDS(smarttags), std::u16string_view(u"/SmartTags") },
+ { Group_General, IDS_CB(shadows), std::u16string_view(u"/Shadow") },
+
+ { Group_Writer, IDS(writergrid), std::u16string_view(u"/WriterTextGrid") },
+ { Group_Writer, IDS_CB(field), std::u16string_view(u"/WriterFieldShadings") },
+ { Group_Writer, IDS_CB(index), std::u16string_view(u"/WriterIdxShadings") },
+ { Group_Writer, IDS(direct), std::u16string_view(u"/WriterDirectCursor") },
+ { Group_Writer, IDS(script), std::u16string_view(u"/WriterScriptIndicator") },
+ { Group_Writer, IDS_CB(section), std::u16string_view(u"/WriterSectionBoundaries") },
+ { Group_Writer, IDS(hdft), std::u16string_view(u"/WriterHeaderFooterMark") },
+ { Group_Writer, IDS(pagebreak), std::u16string_view(u"/WriterPageBreaks") },
+
+ { Group_Html, IDS(sgml), std::u16string_view(u"/HTMLSGML") },
+ { Group_Html, IDS(htmlcomment), std::u16string_view(u"/HTMLComment") },
+ { Group_Html, IDS(htmlkeyword), std::u16string_view(u"/HTMLKeyword") },
+ { Group_Html, IDS(unknown), std::u16string_view(u"/HTMLUnknown") },
+
+ { Group_Calc, IDS(calcgrid), std::u16string_view(u"/CalcGrid") },
+ { Group_Calc, IDS(calccellfocus), std::u16string_view(u"/CalcCellFocus") },
+ { Group_Calc, IDS(brk), std::u16string_view(u"/CalcPageBreak") },
+ { Group_Calc, IDS(brkmanual), std::u16string_view(u"/CalcPageBreakManual") },
+ { Group_Calc, IDS(brkauto), std::u16string_view(u"/CalcPageBreakAutomatic") },
+ { Group_Calc, IDS_CB(hiddencolrow), std::u16string_view(u"/CalcHiddenColRow") },
+ { Group_Calc, IDS_CB(textoverflow), std::u16string_view(u"/CalcTextOverflow") },
+ { Group_Calc, IDS(comments), std::u16string_view(u"/CalcComments") },
+ { Group_Calc, IDS(det), std::u16string_view(u"/CalcDetective") },
+ { Group_Calc, IDS(deterror), std::u16string_view(u"/CalcDetectiveError") },
+ { Group_Calc, IDS(ref), std::u16string_view(u"/CalcReference") },
+ { Group_Calc, IDS(notes), std::u16string_view(u"/CalcNotesBackground") },
+ { Group_Calc, IDS(values), std::u16string_view(u"/CalcValue") },
+ { Group_Calc, IDS(formulas), std::u16string_view(u"/CalcFormula") },
+ { Group_Calc, IDS(text), std::u16string_view(u"/CalcText") },
+ { Group_Calc, IDS(protectedcells), std::u16string_view(u"/CalcProtectedBackground") },
+
+ { Group_Draw, IDS(drawgrid), std::u16string_view(u"/DrawGrid") },
+
+ { Group_Basic, IDS(basiceditor), std::u16string_view(u"/BASICEditor") },
+ { Group_Basic, IDS(basicid), std::u16string_view(u"/BASICIdentifier") },
+ { Group_Basic, IDS(basiccomment), std::u16string_view(u"/BASICComment") },
+ { Group_Basic, IDS(basicnumber), std::u16string_view(u"/BASICNumber") },
+ { Group_Basic, IDS(basicstring), std::u16string_view(u"/BASICString") },
+ { Group_Basic, IDS(basicop), std::u16string_view(u"/BASICOperator") },
+ { Group_Basic, IDS(basickeyword), std::u16string_view(u"/BASICKeyword") },
+ { Group_Basic, IDS(error), std::u16string_view(u"/BASICError") },
+
+ { Group_Sql, IDS(sqlid), std::u16string_view(u"/SQLIdentifier") },
+ { Group_Sql, IDS(sqlnumber), std::u16string_view(u"/SQLNumber") },
+ { Group_Sql, IDS(sqlstring), std::u16string_view(u"/SQLString") },
+ { Group_Sql, IDS(sqlop), std::u16string_view(u"/SQLOperator") },
+ { Group_Sql, IDS(sqlkeyword), std::u16string_view(u"/SQLKeyword") },
+ { Group_Sql, IDS(sqlparam), std::u16string_view(u"/SQLParameter") },
+ { Group_Sql, IDS(sqlcomment), std::u16string_view(u"/SQLComment") }
#undef IDS
};
+// Maps the names of default color schemes to the corresponding TranslateId
+const std::map<OUString, OUString> &getColorSchemes()
+{
+ static std::map<OUString, OUString> const vColorSchemes = {
+ {"COLOR_SCHEME_LIBREOFFICE_AUTOMATIC", CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC)},
+ };
+ return vColorSchemes;
+};
+
+// If the color scheme name has a translated string, then return the translation
+// Or else simply return the input string
+// For non-translatable color schemes, the ID and the name are the same
+OUString lcl_SchemeIdToTranslatedName(const OUString& sSchemeId)
+{
+ auto it = getColorSchemes().find(sSchemeId);
+ if (it != getColorSchemes().end())
+ return it->second;
+ return sSchemeId;
+}
+
+// Given a translated color scheme name, return the scheme ID used in the UI.xcu file
+// For non-translatable color schemes, the ID and the name are the same
+OUString lcl_TranslatedNameToSchemeId(const OUString& sName)
+{
+ for (auto it = getColorSchemes().begin(); it != getColorSchemes().end(); ++it)
+ if (it->second == sName)
+ return it->first;
+ return sName;
+}
+
// ColorConfigWindow_Impl
class ColorConfigWindow_Impl
@@ -170,6 +213,7 @@ public:
Link<weld::Widget&,void> const&,
weld::ScrolledWindow& rScroll);
void Update(EditableColorConfig const*, EditableExtendedColorConfig const*);
+ void UpdateEntries();
void ClickHdl(EditableColorConfig*, const weld::Toggleable&);
void ColorHdl(EditableColorConfig*, EditableExtendedColorConfig*, const ColorListBox*);
@@ -188,7 +232,10 @@ public:
return *m_xBox;
}
- void AdjustExtraWidths(int nTextWidth);
+ int GetLabelIndent() const
+ {
+ return m_nCheckBoxLabelOffset;
+ }
private:
// Chapter -- horizontal group separator stripe with text
@@ -197,38 +244,37 @@ private:
// text
std::unique_ptr<weld::Label> m_xText;
public:
- Chapter(weld::Builder& rBuilder, const char* pLabelWidget, bool bShow);
+ Chapter(weld::Builder& rBuilder, const OUString& pLabelWidget, bool bShow);
void SetText(const OUString& rLabel) { m_xText->set_label(rLabel); }
};
// Entry -- a color config entry:
// text (checkbox) + color list box
- class Entry
+ struct Entry
{
- public:
- Entry(weld::Window* pTopLevel, weld::Builder& rBuilder, const char* pTextWidget, const char* pColorWidget,
- const Color& rColor, tools::Long nCheckBoxLabelOffset, bool bCheckBox, bool bShow);
- public:
+ Entry(weld::Window* pTopLevel, weld::Builder& rBuilder, const OUString& pTextWidget, const OUString& pColorWidget,
+ const Color& rColor, int nCheckBoxLabelOffset, const ColorListBox* pCache, bool bCheckBox, bool bShow);
void SetText(const OUString& rLabel) { dynamic_cast<weld::Label&>(*m_xText).set_label(rLabel); }
- void set_width_request(int nTextWidth) { m_xText->set_size_request(nTextWidth, -1); }
int get_height_request() const
{
return std::max(m_xText->get_preferred_size().Height(),
m_xColorList->get_widget().get_preferred_size().Height());
}
- void Hide ();
- public:
+ void Hide();
+
void SetLinks(Link<weld::Toggleable&,void> const&,
Link<ColorListBox&,void> const&,
Link<weld::Widget&,void> const&);
- void Update (ColorConfigValue const&);
- void Update (ExtendedColorConfigValue const&);
+ void Update (ColorConfigValue const&, const std::u16string_view&,
+ css::uno::Reference<css::configuration::XReadWriteAccess> const&);
+ void Update (ExtendedColorConfigValue const&, const std::u16string_view&,
+ css::uno::Reference<css::configuration::XReadWriteAccess> const&);
void ColorChanged (ColorConfigValue&);
void ColorChanged (ExtendedColorConfigValue&);
- public:
+
bool Is(const weld::Toggleable* pBox) const { return m_xText.get() == pBox; }
bool Is(const ColorListBox* pBox) const { return m_xColorList.get() == pBox; }
- private:
+
// checkbox (CheckBox) or simple text (FixedText)
std::unique_ptr<weld::Widget> m_xText;
// color list box
@@ -237,8 +283,11 @@ private:
Color m_aDefaultColor;
};
+ css::uno::Reference<css::configuration::XReadWriteAccess> m_xReadWriteAccess;
+
private:
weld::Window* m_pTopLevel;
+ int m_nCheckBoxLabelOffset;
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<weld::Box> m_xBox;
std::unique_ptr<weld::Widget> m_xWidget1;
@@ -269,7 +318,7 @@ private:
// ctor for default groups
// rParent: parent window (ColorConfigWindow_Impl)
// eGroup: which group is this?
-ColorConfigWindow_Impl::Chapter::Chapter(weld::Builder& rBuilder, const char* pLabelWidget, bool bShow)
+ColorConfigWindow_Impl::Chapter::Chapter(weld::Builder& rBuilder, const OUString& pLabelWidget, bool bShow)
: m_xText(rBuilder.weld_label(pLabelWidget))
{
if (!bShow)
@@ -278,10 +327,11 @@ ColorConfigWindow_Impl::Chapter::Chapter(weld::Builder& rBuilder, const char* pL
// ColorConfigWindow_Impl::Entry
ColorConfigWindow_Impl::Entry::Entry(weld::Window* pTopLevel, weld::Builder& rBuilder,
- const char* pTextWidget, const char* pColorWidget,
- const Color& rColor,
- tools::Long nCheckBoxLabelOffset, bool bCheckBox, bool bShow)
- : m_xColorList(new ColorListBox(rBuilder.weld_menu_button(pColorWidget), [pTopLevel]{ return pTopLevel; }))
+ const OUString& pTextWidget, const OUString& pColorWidget,
+ const Color& rColor, int nCheckBoxLabelOffset,
+ const ColorListBox* pCache, bool bCheckBox, bool bShow)
+ : m_xColorList(new ColorListBox(rBuilder.weld_menu_button(pColorWidget),
+ [pTopLevel]{ return pTopLevel; }, pCache))
, m_aDefaultColor(rColor)
{
if (bCheckBox)
@@ -324,22 +374,54 @@ void ColorConfigWindow_Impl::Entry::SetLinks(Link<weld::Toggleable&,void> const&
}
// updates a default color config entry
-void ColorConfigWindow_Impl::Entry::Update(ColorConfigValue const& rValue)
+void ColorConfigWindow_Impl::Entry::Update(ColorConfigValue const& rValue, const std::u16string_view& rConfigPath,
+ css::uno::Reference<css::configuration::XReadWriteAccess> const& xReadWriteAccess)
{
Color aColor(rValue.nColor);
m_xColorList->SelectEntry(aColor);
+
+ bool bReadOnly = false;
+ OUString aConfigPath = OUString::Concat(rConfigPath) + "/Color";
+ if (xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath))
+ {
+ css::beans::Property aProperty = xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath);
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+ }
+ m_xColorList->set_sensitive(!bReadOnly);
+
if (weld::Toggleable* pCheckBox = dynamic_cast<weld::Toggleable*>(m_xText.get()))
+ {
+ bReadOnly = false;
pCheckBox->set_active(rValue.bIsVisible);
+
+ aConfigPath = OUString::Concat(rConfigPath) + "/IsVisible";
+ if (xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath))
+ {
+ css::beans::Property aProperty = xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath);
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+ }
+ pCheckBox->set_sensitive(!bReadOnly);
+ }
}
// updates an extended color config entry
-void ColorConfigWindow_Impl::Entry::Update(ExtendedColorConfigValue const& rValue)
+void ColorConfigWindow_Impl::Entry::Update(ExtendedColorConfigValue const& rValue, const std::u16string_view& rConfigPath,
+ css::uno::Reference<css::configuration::XReadWriteAccess> const& xReadWriteAccess)
{
Color aColor(rValue.getColor());
if (rValue.getColor() == rValue.getDefaultColor())
m_xColorList->SelectEntry(COL_AUTO);
else
m_xColorList->SelectEntry(aColor);
+
+ bool bReadOnly = false;
+ OUString aConfigPath = OUString::Concat(rConfigPath) + rValue.getName() + "/Color";
+ if (xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath))
+ {
+ css::beans::Property aProperty = xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath);
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+ }
+ m_xColorList->set_sensitive(!bReadOnly);
}
// color of a default entry has changed
@@ -363,11 +445,14 @@ void ColorConfigWindow_Impl::Entry::ColorChanged(ExtendedColorConfigValue& rValu
// ColorConfigWindow_Impl
ColorConfigWindow_Impl::ColorConfigWindow_Impl(weld::Window* pTopLevel, weld::Container* pParent)
: m_pTopLevel(pTopLevel)
- , m_xBuilder(Application::CreateBuilder(pParent, "cui/ui/colorconfigwin.ui"))
- , m_xBox(m_xBuilder->weld_box("ColorConfigWindow"))
- , m_xWidget1(m_xBuilder->weld_widget("doccolor"))
- , m_xWidget2(m_xBuilder->weld_widget("doccolor_lb"))
+ , m_xBuilder(Application::CreateBuilder(pParent, u"cui/ui/colorconfigwin.ui"_ustr))
+ , m_xBox(m_xBuilder->weld_box(u"ColorConfigWindow"_ustr))
+ , m_xWidget1(m_xBuilder->weld_widget(u"docboundaries"_ustr))
+ , m_xWidget2(m_xBuilder->weld_widget(u"docboundaries_lb"_ustr))
{
+ css::uno::Reference < css::uno::XComponentContext > xContext(::comphelper::getProcessComponentContext());
+ m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(xContext, u"*"_ustr);
+
CreateEntries();
}
@@ -384,11 +469,10 @@ void ColorConfigWindow_Impl::CreateEntries()
// Here we want to get the amount to add to the position of a FixedText to
// get it to align its contents with that of a CheckBox
- tools::Long nCheckBoxLabelOffset = 0;
{
- OUString sSampleText("X");
- std::unique_ptr<weld::CheckButton> xCheckBox(m_xBuilder->weld_check_button("docboundaries"));
- std::unique_ptr<weld::Label> xFixedText(m_xBuilder->weld_label("doccolor"));
+ OUString sSampleText(u"XXXXXX"_ustr);
+ std::unique_ptr<weld::CheckButton> xCheckBox(m_xBuilder->weld_check_button(u"docboundaries"_ustr));
+ std::unique_ptr<weld::Label> xFixedText(m_xBuilder->weld_label(u"doccolor"_ustr));
OUString sOrigCheck(xCheckBox->get_label());
OUString sOrigFixed(xFixedText->get_label());
xCheckBox->set_label(sSampleText);
@@ -397,19 +481,23 @@ void ColorConfigWindow_Impl::CreateEntries()
Size aFixedSize(xFixedText->get_preferred_size());
xCheckBox->set_label(sOrigCheck);
xFixedText->set_label(sOrigFixed);
- nCheckBoxLabelOffset = aCheckSize.Width() - aFixedSize.Width();
+ m_nCheckBoxLabelOffset = aCheckSize.Width() - aFixedSize.Width();
}
+ const ColorListBox* pCache = nullptr;
+
// creating entries
vEntries.reserve(ColorConfigEntryCount);
- for (size_t i = 0; i < SAL_N_ELEMENTS(vEntryInfo); ++i)
+ for (size_t i = 0; i < std::size(vEntryInfo); ++i)
{
vEntries.push_back(std::make_shared<Entry>(m_pTopLevel, *m_xBuilder,
vEntryInfo[i].pText, vEntryInfo[i].pColor,
ColorConfig::GetDefaultColor(static_cast<ColorConfigEntry>(i)),
- nCheckBoxLabelOffset,
+ m_nCheckBoxLabelOffset, pCache,
vEntryInfo[i].bCheckBox,
aModulesInstalled[vEntryInfo[i].eGroup]));
+ if (!pCache)
+ pCache = vEntries.back()->m_xColorList.get();
}
// extended entries
@@ -420,39 +508,33 @@ void ColorConfigWindow_Impl::CreateEntries()
for (unsigned j = 0; j != nExtGroupCount; ++j)
{
- vExtBuilders.emplace_back(Application::CreateBuilder(m_xBox.get(), "cui/ui/chapterfragment.ui"));
- vExtContainers.emplace_back(vExtBuilders.back()->weld_frame("ChapterFragment"));
+ vExtBuilders.emplace_back(Application::CreateBuilder(m_xBox.get(), u"cui/ui/chapterfragment.ui"_ustr));
+ vExtContainers.emplace_back(vExtBuilders.back()->weld_frame(u"ChapterFragment"_ustr));
OUString const sComponentName = aExtConfig.GetComponentName(j);
vChapters.push_back(std::make_shared<Chapter>(
*vExtBuilders.back(), "chapter", true));
vChapters.back()->SetText(aExtConfig.GetComponentDisplayName(sComponentName));
- vExtContainers.emplace_back(vExtBuilders.back()->weld_box("contents"));
+ vExtContainers.emplace_back(vExtBuilders.back()->weld_box(u"contents"_ustr));
weld::Container* pChapterBox = vExtContainers.back().get();
unsigned nColorCount = aExtConfig.GetComponentColorCount(sComponentName);
for (unsigned i = 0; i != nColorCount; ++i)
{
- vExtBuilders.emplace_back(Application::CreateBuilder(pChapterBox, "cui/ui/colorfragment.ui"));
- vExtContainers.emplace_back(vExtBuilders.back()->weld_container("ColorFragment"));
+ vExtBuilders.emplace_back(Application::CreateBuilder(pChapterBox, u"cui/ui/colorfragment.ui"_ustr));
+ vExtContainers.emplace_back(vExtBuilders.back()->weld_container(u"ColorFragment"_ustr));
ExtendedColorConfigValue const aColorEntry =
aExtConfig.GetComponentColorConfigValue(sComponentName, i);
vEntries.push_back(std::make_shared<Entry>(m_pTopLevel, *vExtBuilders.back(),
"label", "button", aColorEntry.getDefaultColor(),
- nCheckBoxLabelOffset, false, true));
+ m_nCheckBoxLabelOffset, pCache, false, true));
vEntries.back()->SetText(aColorEntry.getDisplayName());
}
}
}
-void ColorConfigWindow_Impl::AdjustExtraWidths(int nTextWidth)
-{
- for (size_t i = SAL_N_ELEMENTS(vEntryInfo); i < vEntries.size(); ++i)
- vEntries[i]->set_width_request(nTextWidth);
-}
-
// SetLinks()
void ColorConfigWindow_Impl::SetLinks(Link<weld::Toggleable&,void> const& aCheckLink,
Link<ColorListBox&,void> const& aColorLink,
@@ -473,11 +555,17 @@ void ColorConfigWindow_Impl::Update (
EditableExtendedColorConfig const* pExtConfig)
{
// updating default entries
+ std::optional<OUString> aUIColorSchemeName = officecfg::Office::UI::ColorScheme::CurrentColorScheme::get();
+ OUString aUIColorSchemePath = officecfg::Office::UI::ColorScheme::ColorSchemes::path() + u"/" + aUIColorSchemeName.value();
+
for (unsigned i = 0; i != ColorConfigEntryCount; ++i)
{
+ OUString sPath = aUIColorSchemePath + vEntryInfo[i].sPropName;
ColorConfigEntry const aColorEntry = static_cast<ColorConfigEntry>(i);
vEntries[i]->Update(
- pConfig->GetColorValue(aColorEntry)
+ pConfig->GetColorValue(aColorEntry),
+ sPath,
+ m_xReadWriteAccess
);
}
@@ -487,14 +575,28 @@ void ColorConfigWindow_Impl::Update (
for (unsigned j = 0; j != nExtCount; ++j)
{
OUString sComponentName = pExtConfig->GetComponentName(j);
+ aUIColorSchemePath = officecfg::Office::ExtendedColorScheme::ExtendedColorScheme::ColorSchemes::path() + u"/" +
+ aUIColorSchemeName.value() + u"/" + sComponentName + u"/Entries/";
unsigned const nColorCount = pExtConfig->GetComponentColorCount(sComponentName);
for (unsigned k = 0; i != vEntries.size() && k != nColorCount; ++i, ++k)
vEntries[i]->Update(
- pExtConfig->GetComponentColorConfigValue(sComponentName, k)
+ pExtConfig->GetComponentColorConfigValue(sComponentName, k),
+ aUIColorSchemePath,
+ m_xReadWriteAccess
);
}
}
+void ColorConfigWindow_Impl::UpdateEntries()
+{
+ for (unsigned i = 0; i != ColorConfigEntryCount; ++i)
+ {
+ ColorConfigEntry const aEntry = static_cast<ColorConfigEntry>(i);
+ Color aColor = ColorConfig::GetDefaultColor(aEntry);
+ vEntries[i]->m_xColorList->SetAutoDisplayColor(aColor);
+ }
+}
+
// ClickHdl()
void ColorConfigWindow_Impl::ClickHdl(EditableColorConfig* pConfig, const weld::Toggleable& rBox)
{
@@ -591,10 +693,10 @@ class ColorConfigCtrl_Impl
public:
explicit ColorConfigCtrl_Impl(weld::Window* pTopLevel, weld::Builder& rbuilder);
- void AdjustExtraWidths(int nTextWidth) { m_xScrollWindow->AdjustExtraWidths(nTextWidth); }
void SetConfig (EditableColorConfig& rConfig) { pColorConfig = &rConfig; }
void SetExtendedConfig (EditableExtendedColorConfig& rConfig) { pExtColorConfig = &rConfig; }
void Update();
+ void UpdateEntries();
tools::Long GetScrollPosition() const
{
return m_xVScroll->vadjustment_get_value();
@@ -611,11 +713,15 @@ public:
{
return m_xScrollWindow->GetWidget2();
}
+ int GetLabelIndent() const
+ {
+ return m_xScrollWindow->GetLabelIndent();
+ }
};
ColorConfigCtrl_Impl::ColorConfigCtrl_Impl(weld::Window* pTopLevel, weld::Builder& rBuilder)
- : m_xVScroll(rBuilder.weld_scrolled_window("scroll"))
- , m_xBody(rBuilder.weld_container("colorconfig"))
+ : m_xVScroll(rBuilder.weld_scrolled_window(u"scroll"_ustr))
+ , m_xBody(rBuilder.weld_container(u"colorconfig"_ustr))
, m_xScrollWindow(std::make_unique<ColorConfigWindow_Impl>(pTopLevel, m_xBody.get()))
, pColorConfig(nullptr)
, pExtColorConfig(nullptr)
@@ -634,6 +740,11 @@ void ColorConfigCtrl_Impl::Update ()
m_xScrollWindow->Update(pColorConfig, pExtColorConfig);
}
+void ColorConfigCtrl_Impl::UpdateEntries()
+{
+ m_xScrollWindow->UpdateEntries();
+}
+
IMPL_LINK(ColorConfigCtrl_Impl, ClickHdl, weld::Toggleable&, rBox, void)
{
DBG_ASSERT(pColorConfig, "Configuration not set");
@@ -687,21 +798,25 @@ IMPL_LINK(ColorConfigCtrl_Impl, ControlFocusHdl, weld::Widget&, rCtrl, void)
// SvxColorOptionsTabPage
SvxColorOptionsTabPage::SvxColorOptionsTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreSet)
- : SfxTabPage(pPage, pController, "cui/ui/optappearancepage.ui", "OptAppearancePage", &rCoreSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/optappearancepage.ui"_ustr, u"OptAppearancePage"_ustr, &rCoreSet)
, bFillItemSetCalled(false)
- , m_xColorSchemeLB(m_xBuilder->weld_combo_box("colorschemelb"))
- , m_xSaveSchemePB(m_xBuilder->weld_button("save"))
- , m_xDeleteSchemePB(m_xBuilder->weld_button("delete"))
+ , m_nSizeAllocEventId(nullptr)
+ , m_xAutoColorLB(m_xBuilder->weld_combo_box(u"autocolorlb"_ustr))
+ , m_xAutoColorImg(m_xBuilder->weld_widget(u"lockautocolorlb"_ustr))
+ , m_xColorSchemeLB(m_xBuilder->weld_combo_box(u"colorschemelb"_ustr))
+ , m_xColorSchemeImg(m_xBuilder->weld_widget(u"lockcolorschemelb"_ustr))
+ , m_xSaveSchemePB(m_xBuilder->weld_button(u"save"_ustr))
+ , m_xDeleteSchemePB(m_xBuilder->weld_button(u"delete"_ustr))
, m_xColorConfigCT(new ColorConfigCtrl_Impl(pController->getDialog(), *m_xBuilder))
- , m_xTable(m_xBuilder->weld_widget("table"))
- , m_xOnFT(m_xBuilder->weld_label("on"))
- , m_xElementFT(m_xBuilder->weld_label("uielements"))
- , m_xColorFT(m_xBuilder->weld_label("colorsetting"))
+ , m_xTable(m_xBuilder->weld_widget(u"table"_ustr))
+ , m_xOnFT(m_xBuilder->weld_label(u"on"_ustr))
+ , m_xColorFT(m_xBuilder->weld_label(u"colorsetting"_ustr))
, m_rWidget1(m_xColorConfigCT->GetWidget1())
, m_rWidget2(m_xColorConfigCT->GetWidget2())
{
m_xColorSchemeLB->make_sorted();
m_xColorSchemeLB->connect_changed(LINK(this, SvxColorOptionsTabPage, SchemeChangedHdl_Impl));
+ m_xAutoColorLB->connect_changed(LINK(this, SvxColorOptionsTabPage, onAutoColorChanged));
Link<weld::Button&,void> aLk = LINK(this, SvxColorOptionsTabPage, SaveDeleteHdl_Impl );
m_xSaveSchemePB->connect_clicked(aLk);
m_xDeleteSchemePB->connect_clicked(aLk);
@@ -734,6 +849,8 @@ SvxColorOptionsTabPage::~SvxColorOptionsTabPage()
pExtColorConfig.reset();
}
m_xColorConfigCT.reset();
+ if (m_nSizeAllocEventId)
+ Application::RemoveUserEvent(m_nSizeAllocEventId);
}
std::unique_ptr<SfxTabPage> SvxColorOptionsTabPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet)
@@ -741,6 +858,21 @@ std::unique_ptr<SfxTabPage> SvxColorOptionsTabPage::Create(weld::Container* pPag
return std::make_unique<SvxColorOptionsTabPage>(pPage, pController, *rAttrSet);
}
+OUString SvxColorOptionsTabPage::GetAllStrings()
+{
+ // buttons are excluded
+ OUString sAllStrings;
+ OUString labels[] = { u"label2"_ustr, u"label3"_ustr, u"autocolor"_ustr, u"uielements"_ustr, u"colorsetting"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxColorOptionsTabPage::FillItemSet( SfxItemSet* )
{
bFillItemSetCalled = true;
@@ -774,16 +906,30 @@ void SvxColorOptionsTabPage::Reset( const SfxItemSet* )
pExtColorConfig.reset(new EditableExtendedColorConfig);
m_xColorConfigCT->SetExtendedConfig(*pExtColorConfig);
+ m_xAutoColorLB->set_active( MiscSettings::GetAppColorMode() );
+
+ bool bReadOnly = officecfg::Office::ExtendedColorScheme::ExtendedColorScheme::CurrentColorScheme::isReadOnly() ||
+ officecfg::Office::UI::ColorScheme::CurrentColorScheme::isReadOnly();
+ m_xAutoColorLB->set_sensitive(!bReadOnly);
+ m_xSaveSchemePB->set_sensitive(!bReadOnly);
+ m_xDeleteSchemePB->set_sensitive(!bReadOnly);
+ m_xAutoColorImg->set_visible(bReadOnly);
+
OUString sUser = GetUserData();
//has to be called always to speed up accessibility tools
m_xColorConfigCT->SetScrollPosition(sUser.toInt32());
m_xColorSchemeLB->clear();
const uno::Sequence< OUString > aSchemes = pColorConfig->GetSchemeNames();
for(const OUString& s : aSchemes)
- m_xColorSchemeLB->append_text(s);
- m_xColorSchemeLB->set_active_text(pColorConfig->GetCurrentSchemeName());
+ m_xColorSchemeLB->append_text(lcl_SchemeIdToTranslatedName(s));
+
+ m_xColorSchemeLB->set_active_text(lcl_SchemeIdToTranslatedName(pColorConfig->GetCurrentSchemeName()));
+ m_xColorSchemeLB->set_sensitive(!officecfg::Office::Common::Misc::ApplicationAppearance::isReadOnly());
+ m_xColorSchemeImg->set_visible(officecfg::Office::Common::Misc::ApplicationAppearance::isReadOnly());
m_xColorSchemeLB->save_value();
- m_xDeleteSchemePB->set_sensitive( aSchemes.getLength() > 1 );
+
+ m_xDeleteSchemePB->set_sensitive( aSchemes.getLength() > 1 &&
+ !officecfg::Office::ExtendedColorScheme::ExtendedColorScheme::CurrentColorScheme::isReadOnly() );
UpdateColorConfig();
}
@@ -800,10 +946,21 @@ void SvxColorOptionsTabPage::UpdateColorConfig()
m_xColorConfigCT->Update();
}
+IMPL_LINK_NOARG(SvxColorOptionsTabPage, onAutoColorChanged, weld::ComboBox&, void)
+{
+ MiscSettings::SetAppColorMode( m_xAutoColorLB->get_active() );
+
+ m_xColorConfigCT->UpdateEntries();
+
+ pColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(m_xColorSchemeLB->get_active_text()));
+ pExtColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(m_xColorSchemeLB->get_active_text()));
+ UpdateColorConfig();
+}
+
IMPL_LINK(SvxColorOptionsTabPage, SchemeChangedHdl_Impl, weld::ComboBox&, rBox, void)
{
- pColorConfig->LoadScheme(rBox.get_active_text());
- pExtColorConfig->LoadScheme(rBox.get_active_text());
+ pColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(rBox.get_active_text()));
+ pExtColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(rBox.get_active_text()));
UpdateColorConfig();
}
@@ -815,14 +972,14 @@ IMPL_LINK(SvxColorOptionsTabPage, SaveDeleteHdl_Impl, weld::Button&, rButton, vo
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> aNameDlg(pFact->CreateSvxNameDialog(GetFrameWeld(),
- sName, CuiResId(RID_SVXSTR_COLOR_CONFIG_SAVE2) ));
+ sName, CuiResId(RID_CUISTR_COLOR_CONFIG_SAVE2) ));
aNameDlg->SetCheckNameHdl( LINK(this, SvxColorOptionsTabPage, CheckNameHdl_Impl));
- aNameDlg->SetText(CuiResId(RID_SVXSTR_COLOR_CONFIG_SAVE1));
+ aNameDlg->SetText(CuiResId(RID_CUISTR_COLOR_CONFIG_SAVE1));
aNameDlg->SetHelpId(HID_OPTIONS_COLORCONFIG_SAVE_SCHEME);
aNameDlg->SetCheckNameHdl( LINK(this, SvxColorOptionsTabPage, CheckNameHdl_Impl));
if(RET_OK == aNameDlg->Execute())
{
- aNameDlg->GetName(sName);
+ sName = aNameDlg->GetName();
pColorConfig->AddScheme(sName);
pExtColorConfig->AddScheme(sName);
m_xColorSchemeLB->append_text(sName);
@@ -835,8 +992,8 @@ IMPL_LINK(SvxColorOptionsTabPage, SaveDeleteHdl_Impl, weld::Button&, rButton, vo
DBG_ASSERT(m_xColorSchemeLB->get_count() > 1, "don't delete the last scheme");
std::unique_ptr<weld::MessageDialog> xQuery(Application::CreateMessageDialog(GetFrameWeld(),
VclMessageType::Question, VclButtonsType::YesNo,
- CuiResId(RID_SVXSTR_COLOR_CONFIG_DELETE)));
- xQuery->set_title(CuiResId(RID_SVXSTR_COLOR_CONFIG_DELETE_TITLE));
+ CuiResId(RID_CUISTR_COLOR_CONFIG_DELETE)));
+ xQuery->set_title(CuiResId(RID_CUISTR_COLOR_CONFIG_DELETE_TITLE));
if (RET_YES == xQuery->run())
{
OUString sDeleteScheme(m_xColorSchemeLB->get_active_text());
@@ -853,8 +1010,7 @@ IMPL_LINK(SvxColorOptionsTabPage, SaveDeleteHdl_Impl, weld::Button&, rButton, vo
IMPL_LINK(SvxColorOptionsTabPage, CheckNameHdl_Impl, AbstractSvxNameDialog&, rDialog, bool )
{
- OUString sName;
- rDialog.GetName(sName);
+ OUString sName = rDialog.GetName();
return !sName.isEmpty() && m_xColorSchemeLB->find_text(sName) == -1;
}
@@ -865,17 +1021,29 @@ void SvxColorOptionsTabPage::FillUserData()
IMPL_LINK_NOARG(SvxColorOptionsTabPage, AdjustHeaderBar, const Size&, void)
{
+ if (m_nSizeAllocEventId)
+ return;
+ m_nSizeAllocEventId = Application::PostUserEvent(LINK(this, SvxColorOptionsTabPage, PostAdjustHeaderBar));
+}
+
+IMPL_LINK_NOARG(SvxColorOptionsTabPage, PostAdjustHeaderBar, void*, void)
+{
+ m_nSizeAllocEventId = nullptr;
+
// horizontal positions
- int nX0 = 0, nX1, nX2, y, width, height;
+ int nX1, nX2, nX3, y, width, height;
if (!m_rWidget1.get_extents_relative_to(*m_xTable, nX1, y, width, height))
return;
if (!m_rWidget2.get_extents_relative_to(*m_xTable, nX2, y, width, height))
return;
- auto nTextWidth1 = nX1 - nX0;
- auto nTextWidth2 = nX2 - nX1;
+ if (!m_xTable->get_extents_relative_to(*m_xTable, nX3, y, width, height))
+ return;
+
+ // 6 is the column-spacing of the parent grid of these labels
+ auto nTextWidth1 = nX1 + m_xColorConfigCT->GetLabelIndent() - 6;
m_xOnFT->set_size_request(nTextWidth1, -1);
- m_xElementFT->set_size_request(nTextWidth2, -1);
- m_xColorConfigCT->AdjustExtraWidths(nTextWidth2 - 12);
+ auto nTextWidth3 = width - nX2;
+ m_xColorFT->set_size_request(nTextWidth3, -1);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optcolor.hxx b/cui/source/options/optcolor.hxx
index de84e06b1405..7b5cdbca7451 100644
--- a/cui/source/options/optcolor.hxx
+++ b/cui/source/options/optcolor.hxx
@@ -23,18 +23,25 @@
namespace svtools {class EditableColorConfig;class EditableExtendedColorConfig;}
class ColorConfigCtrl_Impl;
class AbstractSvxNameDialog;
+struct ImplSVEvent;
+
class SvxColorOptionsTabPage : public SfxTabPage
{
bool bFillItemSetCalled;
+ ImplSVEvent* m_nSizeAllocEventId;
+
+ std::unique_ptr<weld::ComboBox> m_xAutoColorLB;
+ std::unique_ptr<weld::Widget> m_xAutoColorImg;
std::unique_ptr<weld::ComboBox> m_xColorSchemeLB;
+ std::unique_ptr<weld::Widget> m_xColorSchemeImg;
std::unique_ptr<weld::Button> m_xSaveSchemePB;
std::unique_ptr<weld::Button> m_xDeleteSchemePB;
std::unique_ptr<ColorConfigCtrl_Impl> m_xColorConfigCT;
std::unique_ptr<weld::Widget> m_xTable;
std::unique_ptr<weld::Label> m_xOnFT;
- std::unique_ptr<weld::Label> m_xElementFT;
std::unique_ptr<weld::Label> m_xColorFT;
+
weld::Widget& m_rWidget1;
weld::Widget& m_rWidget2;
@@ -42,9 +49,11 @@ class SvxColorOptionsTabPage : public SfxTabPage
std::unique_ptr<svtools::EditableExtendedColorConfig> pExtColorConfig;
DECL_LINK(SchemeChangedHdl_Impl, weld::ComboBox&, void);
+ DECL_LINK(onAutoColorChanged, weld::ComboBox&, void);
DECL_LINK(SaveDeleteHdl_Impl, weld::Button&, void);
DECL_LINK(CheckNameHdl_Impl, AbstractSvxNameDialog&, bool);
DECL_LINK(AdjustHeaderBar, const Size&, void);
+ DECL_LINK(PostAdjustHeaderBar, void *, void);
void UpdateColorConfig();
public:
@@ -53,6 +62,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
diff --git a/cui/source/options/optctl.cxx b/cui/source/options/optctl.cxx
index 52bd18fc8788..df2cfbd3b538 100644
--- a/cui/source/options/optctl.cxx
+++ b/cui/source/options/optctl.cxx
@@ -38,13 +38,13 @@ IMPL_LINK_NOARG(SvxCTLOptionsPage, SequenceCheckingCB_Hdl, weld::Toggleable&, vo
}
SvxCTLOptionsPage::SvxCTLOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optctlpage.ui", "OptCTLPage", &rSet)
- , m_xSequenceCheckingCB(m_xBuilder->weld_check_button("sequencechecking"))
- , m_xRestrictedCB(m_xBuilder->weld_check_button("restricted"))
- , m_xTypeReplaceCB(m_xBuilder->weld_check_button("typeandreplace"))
- , m_xMovementLogicalRB(m_xBuilder->weld_radio_button("movementlogical"))
- , m_xMovementVisualRB(m_xBuilder->weld_radio_button("movementvisual"))
- , m_xNumeralsLB(m_xBuilder->weld_combo_box("numerals"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optctlpage.ui"_ustr, u"OptCTLPage"_ustr, &rSet)
+ , m_xSequenceCheckingCB(m_xBuilder->weld_check_button(u"sequencechecking"_ustr))
+ , m_xRestrictedCB(m_xBuilder->weld_check_button(u"restricted"_ustr))
+ , m_xTypeReplaceCB(m_xBuilder->weld_check_button(u"typeandreplace"_ustr))
+ , m_xMovementLogicalRB(m_xBuilder->weld_radio_button(u"movementlogical"_ustr))
+ , m_xMovementVisualRB(m_xBuilder->weld_radio_button(u"movementvisual"_ustr))
+ , m_xNumeralsLB(m_xBuilder->weld_combo_box(u"numerals"_ustr))
{
m_xSequenceCheckingCB->connect_toggled(LINK(this, SvxCTLOptionsPage, SequenceCheckingCB_Hdl));
}
@@ -58,6 +58,36 @@ std::unique_ptr<SfxTabPage> SvxCTLOptionsPage::Create( weld::Container* pPage, w
return std::make_unique<SvxCTLOptionsPage>( pPage, pController, *rAttrSet );
}
+OUString SvxCTLOptionsPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label3"_ustr, u"label4"_ustr, u"label5"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"sequencechecking"_ustr, u"restricted"_ustr, u"typeandreplace"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString radioButton[] = { u"movementlogical"_ustr, u"movementvisual"_ustr };
+
+ for (const auto& radio : radioButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_radio_button(radio))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxCTLOptionsPage::FillItemSet( SfxItemSet* )
{
bool bModified = false;
@@ -106,13 +136,11 @@ bool SvxCTLOptionsPage::FillItemSet( SfxItemSet* )
void SvxCTLOptionsPage::Reset( const SfxItemSet* )
{
- SvtCTLOptions aCTLOptions;
-
- m_xSequenceCheckingCB->set_active( aCTLOptions.IsCTLSequenceChecking() );
- m_xRestrictedCB->set_active( aCTLOptions.IsCTLSequenceCheckingRestricted() );
- m_xTypeReplaceCB->set_active( aCTLOptions.IsCTLSequenceCheckingTypeAndReplace() );
+ m_xSequenceCheckingCB->set_active( SvtCTLOptions::IsCTLSequenceChecking() );
+ m_xRestrictedCB->set_active( SvtCTLOptions::IsCTLSequenceCheckingRestricted() );
+ m_xTypeReplaceCB->set_active( SvtCTLOptions::IsCTLSequenceCheckingTypeAndReplace() );
- SvtCTLOptions::CursorMovement eMovement = aCTLOptions.GetCTLCursorMovement();
+ SvtCTLOptions::CursorMovement eMovement = SvtCTLOptions::GetCTLCursorMovement();
switch ( eMovement )
{
case SvtCTLOptions::MOVEMENT_LOGICAL :
@@ -127,7 +155,7 @@ void SvxCTLOptionsPage::Reset( const SfxItemSet* )
SAL_WARN( "cui.options", "SvxCTLOptionsPage::Reset(): invalid movement enum" );
}
- sal_uInt16 nPos = static_cast<sal_uInt16>(aCTLOptions.GetCTLTextNumerals());
+ sal_uInt16 nPos = static_cast<sal_uInt16>(SvtCTLOptions::GetCTLTextNumerals());
DBG_ASSERT( nPos < m_xNumeralsLB->get_count(), "SvxCTLOptionsPage::Reset(): invalid numerals enum" );
m_xNumeralsLB->set_active(nPos);
diff --git a/cui/source/options/optctl.hxx b/cui/source/options/optctl.hxx
index 0cc24951b54b..35c07d3a81df 100644
--- a/cui/source/options/optctl.hxx
+++ b/cui/source/options/optctl.hxx
@@ -38,6 +38,9 @@ public:
SvxCTLOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
virtual ~SvxCTLOptionsPage() override;
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/options/optdeepl.cxx b/cui/source/options/optdeepl.cxx
new file mode 100644
index 000000000000..0028ab22d49e
--- /dev/null
+++ b/cui/source/options/optdeepl.cxx
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include "optdeepl.hxx"
+#include <officecfg/Office/Linguistic.hxx>
+
+OptDeeplTabPage::OptDeeplTabPage(weld::Container* pPage, weld::DialogController* pController,
+ const SfxItemSet& rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/optdeeplpage.ui"_ustr, u"OptDeeplPage"_ustr, &rSet)
+ , m_xAPIUrl(m_xBuilder->weld_entry(u"apiurl"_ustr))
+ , m_xAuthKey(m_xBuilder->weld_entry(u"authkey"_ustr))
+{
+}
+
+OptDeeplTabPage::~OptDeeplTabPage() {}
+
+void OptDeeplTabPage::Reset(const SfxItemSet*)
+{
+ std::optional<OUString> oDeeplAPIUrl
+ = officecfg::Office::Linguistic::Translation::Deepl::ApiURL::get();
+ if (oDeeplAPIUrl && !oDeeplAPIUrl->isEmpty())
+ m_xAPIUrl->set_text(*officecfg::Office::Linguistic::Translation::Deepl::ApiURL::get());
+
+ std::optional<OUString> oDeeplAuthKey
+ = officecfg::Office::Linguistic::Translation::Deepl::AuthKey::get();
+ if (oDeeplAuthKey && !oDeeplAuthKey->isEmpty())
+ m_xAuthKey->set_text(*officecfg::Office::Linguistic::Translation::Deepl::AuthKey::get());
+}
+
+OUString OptDeeplTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label3"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ if (const auto& pString = m_xBuilder->weld_link_button(u"privacy"_ustr))
+ sAllStrings += pString->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
+bool OptDeeplTabPage::FillItemSet(SfxItemSet*)
+{
+ std::shared_ptr<comphelper::ConfigurationChanges> batch(
+ comphelper::ConfigurationChanges::create());
+ officecfg::Office::Linguistic::Translation::Deepl::ApiURL::set(m_xAPIUrl->get_text(), batch);
+ officecfg::Office::Linguistic::Translation::Deepl::AuthKey::set(m_xAuthKey->get_text(), batch);
+ batch->commit();
+ return false;
+}
+
+std::unique_ptr<SfxTabPage> OptDeeplTabPage::Create(weld::Container* pPage,
+ weld::DialogController* pController,
+ const SfxItemSet* rAttrSet)
+{
+ return std::make_unique<OptDeeplTabPage>(pPage, pController, *rAttrSet);
+}
diff --git a/cui/source/options/optdeepl.hxx b/cui/source/options/optdeepl.hxx
new file mode 100644
index 000000000000..51714c685084
--- /dev/null
+++ b/cui/source/options/optdeepl.hxx
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#pragma once
+#include <sfx2/tabdlg.hxx>
+
+class OptDeeplTabPage : public SfxTabPage
+{
+public:
+ OptDeeplTabPage(weld::Container* pPage, weld::DialogController* pController,
+ const SfxItemSet& rSet);
+ virtual ~OptDeeplTabPage() override;
+ static std::unique_ptr<SfxTabPage>
+ Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet);
+
+ virtual OUString GetAllStrings() override;
+
+ virtual bool FillItemSet(SfxItemSet* rSet) override;
+ virtual void Reset(const SfxItemSet* rSet) override;
+
+private:
+ std::unique_ptr<weld::Entry> m_xAPIUrl;
+ std::unique_ptr<weld::Entry> m_xAuthKey;
+};
diff --git a/cui/source/options/optdict.cxx b/cui/source/options/optdict.cxx
index 7e3ebc7a9ced..f190a587a170 100644
--- a/cui/source/options/optdict.cxx
+++ b/cui/source/options/optdict.cxx
@@ -67,6 +67,23 @@ static OUString getNormDicEntry_Impl(std::u16string_view rText)
return aTmp.replaceAll("=", "");
}
+// tdf#154499 separate words of a phrase only by a single space,
+// i.e. trim terminating spaces and replace space sequences with single spaces
+static OUString fixSpace(OUString sText)
+{
+ sText = sText.trim();
+
+ sal_Int32 nLen;
+ do
+ {
+ nLen = sText.getLength();
+ sText = sText.replaceAll(" ", " ");
+ }
+ while ( sText.getLength() < nLen );
+
+ return sText;
+}
+
namespace {
// Compare Dictionary Entry result
@@ -93,11 +110,11 @@ static CDE_RESULT cmpDicEntry_Impl( std::u16string_view rText1, std::u16string_v
// class SvxNewDictionaryDialog -------------------------------------------
SvxNewDictionaryDialog::SvxNewDictionaryDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/optnewdictionarydialog.ui", "OptNewDictionaryDialog")
- , m_xNameEdit(m_xBuilder->weld_entry("nameedit"))
- , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("language")))
- , m_xExceptBtn(m_xBuilder->weld_check_button("except"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
+ : GenericDialogController(pParent, u"cui/ui/optnewdictionarydialog.ui"_ustr, u"OptNewDictionaryDialog"_ustr)
+ , m_xNameEdit(m_xBuilder->weld_entry(u"nameedit"_ustr))
+ , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"language"_ustr)))
+ , m_xExceptBtn(m_xBuilder->weld_check_button(u"except"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
{
// Prevent creation of dictionary without a name.
m_xOKBtn->set_sensitive(false);
@@ -119,35 +136,28 @@ IMPL_LINK_NOARG(SvxNewDictionaryDialog, OKHdl_Impl, weld::Button&, void)
Reference< XSearchableDictionaryList > xDicList( LinguMgr::GetDictionaryList() );
- Sequence< Reference< XDictionary > > aDics;
- if (xDicList.is())
- aDics = xDicList->getDictionaries();
- const Reference< XDictionary > *pDic = aDics.getConstArray();
- sal_Int32 nCount = aDics.getLength();
-
- bool bFound = false;
- sal_Int32 i;
- for (i = 0; !bFound && i < nCount; ++i )
- if ( sDict.equalsIgnoreAsciiCase( pDic[i]->getName()) )
- bFound = true;
-
if ( sDict.indexOf("/") != -1 || sDict.indexOf("\\") != -1 )
{
// Detected an invalid character.
std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Info, VclButtonsType::Ok,
- CuiResId(RID_SVXSTR_OPT_INVALID_DICT_NAME)));
+ CuiResId(RID_CUISTR_OPT_INVALID_DICT_NAME)));
xInfoBox->run();
m_xNameEdit->grab_focus();
return;
}
- if ( bFound )
+ Sequence< Reference< XDictionary > > aDics;
+ if (xDicList.is())
+ aDics = xDicList->getDictionaries();
+
+ if (std::any_of(aDics.begin(), aDics.end(),
+ [&sDict](auto& d) { return sDict.equalsIgnoreAsciiCase(d->getName()); }))
{
// duplicate names?
std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Info, VclButtonsType::Ok,
- CuiResId(RID_SVXSTR_OPT_DOUBLE_DICTS)));
+ CuiResId(RID_CUISTR_OPT_DOUBLE_DICTS)));
xInfoBox->run();
m_xNameEdit->grab_focus();
return;
@@ -175,7 +185,7 @@ IMPL_LINK_NOARG(SvxNewDictionaryDialog, OKHdl_Impl, weld::Button&, void)
// error: couldn't create new dictionary
SfxErrorContext aContext( ERRCTX_SVX_LINGU_DICTIONARY, OUString(),
m_xDialog.get(), RID_SVXERRCTX, SvxResLocale() );
- ErrorHandler::HandleError( *new StringErrorInfo(
+ ErrorHandler::HandleError( ErrCodeMsg(
ERRCODE_SVX_LINGU_DICT_NOTWRITEABLE, sDict ) );
m_xDialog->response(RET_CANCEL);
}
@@ -200,21 +210,21 @@ IMPL_LINK_NOARG(SvxNewDictionaryDialog, ModifyHdl_Impl, weld::Entry&, void)
// class SvxEditDictionaryDialog -------------------------------------------
SvxEditDictionaryDialog::SvxEditDictionaryDialog(weld::Window* pParent, std::u16string_view rName)
- : GenericDialogController(pParent, "cui/ui/editdictionarydialog.ui", "EditDictionaryDialog")
+ : GenericDialogController(pParent, u"cui/ui/editdictionarydialog.ui"_ustr, u"EditDictionaryDialog"_ustr)
, sModify(CuiResId(STR_MODIFY))
, bFirstSelect(false)
, bDoNothing(false)
, bDicIsReadonly(false)
- , m_xAllDictsLB(m_xBuilder->weld_combo_box("book"))
- , m_xLangFT(m_xBuilder->weld_label("lang_label"))
- , m_xLangLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("lang")))
- , m_xWordED(m_xBuilder->weld_entry("word"))
- , m_xReplaceFT(m_xBuilder->weld_label("replace_label"))
- , m_xReplaceED(m_xBuilder->weld_entry("replace"))
- , m_xSingleColumnLB(m_xBuilder->weld_tree_view("words"))
- , m_xDoubleColumnLB(m_xBuilder->weld_tree_view("replaces"))
- , m_xNewReplacePB(m_xBuilder->weld_button("newreplace"))
- , m_xDeletePB(m_xBuilder->weld_button("delete"))
+ , m_xAllDictsLB(m_xBuilder->weld_combo_box(u"book"_ustr))
+ , m_xLangFT(m_xBuilder->weld_label(u"lang_label"_ustr))
+ , m_xLangLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"lang"_ustr)))
+ , m_xWordED(m_xBuilder->weld_entry(u"word"_ustr))
+ , m_xReplaceFT(m_xBuilder->weld_label(u"replace_label"_ustr))
+ , m_xReplaceED(m_xBuilder->weld_entry(u"replace"_ustr))
+ , m_xSingleColumnLB(m_xBuilder->weld_tree_view(u"words"_ustr))
+ , m_xDoubleColumnLB(m_xBuilder->weld_tree_view(u"replaces"_ustr))
+ , m_xNewReplacePB(m_xBuilder->weld_button(u"newreplace"_ustr))
+ , m_xDeletePB(m_xBuilder->weld_button(u"delete"_ustr))
{
sReplaceFT_Text = m_xReplaceFT->get_label();
m_xSingleColumnLB->set_size_request(-1, m_xSingleColumnLB->get_height_rows(8));
@@ -259,13 +269,9 @@ SvxEditDictionaryDialog::SvxEditDictionaryDialog(weld::Window* pParent, std::u16
m_xReplaceED->connect_activate(LINK(this, SvxEditDictionaryDialog, NewDelActionHdl));
// fill listbox with all available WB's
- const Reference< XDictionary > *pDic = aDics.getConstArray();
- sal_Int32 nCount = aDics.getLength();
-
OUString aLookUpEntry;
- for ( sal_Int32 i = 0; i < nCount; ++i )
+ for (auto& xDic : aDics)
{
- Reference< XDictionary > xDic = pDic[i];
if (xDic.is())
{
bool bNegative = xDic->getDictionaryType() == DictionaryType_NEGATIVE;
@@ -281,11 +287,7 @@ SvxEditDictionaryDialog::SvxEditDictionaryDialog(weld::Window* pParent, std::u16
m_xLangLB->SetLanguageList( SvxLanguageListFlags::ALL, true, true );
- Link<OUString&,bool> aLink = LINK(this, SvxEditDictionaryDialog, InsertTextHdl);
- m_xReplaceED->connect_insert_text(aLink);
- m_xWordED->connect_insert_text(aLink);
-
- if ( nCount > 0 )
+ if (aDics.hasElements())
{
m_xAllDictsLB->set_active_text(aLookUpEntry);
int nPos = m_xAllDictsLB->get_active();
@@ -383,7 +385,7 @@ void SvxEditDictionaryDialog::RemoveDictEntry(int nEntry)
{
OUString sTmpShort(m_pWordsLB->get_text(nEntry, 0));
- Reference<XDictionary> xDic = aDics.getConstArray()[nLBPos];
+ Reference<XDictionary> xDic = aDics[nLBPos];
if (xDic->remove(sTmpShort)) // sal_True on success
{
m_pWordsLB->remove(nEntry);
@@ -425,7 +427,7 @@ IMPL_LINK_NOARG(SvxEditDictionaryDialog, SelectLangHdl_Impl, weld::ComboBox&, vo
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Question, VclButtonsType::YesNo,
- CuiResId(RID_SVXSTR_CONFIRM_SET_LANGUAGE)));
+ CuiResId(RID_CUISTR_CONFIRM_SET_LANGUAGE)));
OUString sTxt(xBox->get_primary_text());
sTxt = sTxt.replaceFirst("%1", m_xAllDictsLB->get_active_text());
xBox->set_primary_text(sTxt);
@@ -449,7 +451,7 @@ IMPL_LINK_NOARG(SvxEditDictionaryDialog, SelectLangHdl_Impl, weld::ComboBox&, vo
void SvxEditDictionaryDialog::ShowWords_Impl( sal_uInt16 nId )
{
- Reference< XDictionary > xDic = aDics.getConstArray()[ nId ];
+ Reference<XDictionary> xDic = aDics[nId];
weld::WaitObject aWait(m_xDialog.get());
@@ -468,7 +470,7 @@ void SvxEditDictionaryDialog::ShowWords_Impl( sal_uInt16 nId )
{
m_xReplaceFT->set_label(sReplaceFT_Text);
} else if (!bLangNone) {
- m_xReplaceFT->set_label(CuiResId(RID_SVXSTR_OPT_GRAMMAR_BY));
+ m_xReplaceFT->set_label(CuiResId(RID_CUISTR_OPT_GRAMMAR_BY));
}
if(bIsNegative || !bLangNone)
@@ -499,16 +501,14 @@ void SvxEditDictionaryDialog::ShowWords_Impl( sal_uInt16 nId )
m_pWordsLB->clear();
Sequence< Reference< XDictionaryEntry > > aEntries( xDic->getEntries() );
- const Reference< XDictionaryEntry > *pEntry = aEntries.getConstArray();
- sal_Int32 nCount = aEntries.getLength();
std::vector<OUString> aSortedDicEntries;
- aSortedDicEntries.reserve(nCount);
- for (sal_Int32 i = 0; i < nCount; i++)
+ aSortedDicEntries.reserve(aEntries.getLength());
+ for (auto& xDictionaryEntry : aEntries)
{
- OUString aStr = pEntry[i]->getDictionaryWord();
- if(!pEntry[i]->getReplacementText().isEmpty())
+ OUString aStr = xDictionaryEntry->getDictionaryWord();
+ if (!xDictionaryEntry->getReplacementText().isEmpty())
{
- aStr += "\t" + pEntry[i]->getReplacementText();
+ aStr += "\t" + xDictionaryEntry->getReplacementText();
}
aSortedDicEntries.push_back(aStr);
}
@@ -527,10 +527,11 @@ void SvxEditDictionaryDialog::ShowWords_Impl( sal_uInt16 nId )
int nRow = 0;
for (OUString const & rStr : aSortedDicEntries)
{
- m_pWordsLB->append_text(rStr.getToken(0, '\t'));
- if (m_pWordsLB == m_xDoubleColumnLB.get())
+ sal_Int32 index = 0;
+ m_pWordsLB->append_text(rStr.getToken(0, '\t', index));
+ if (index != -1 && m_pWordsLB == m_xDoubleColumnLB.get())
{
- OUString sReplace = rStr.getToken(1, '\t');
+ OUString sReplace = rStr.getToken(0, '\t', index);
m_pWordsLB->set_text(nRow, sReplace, 1);
++nRow;
}
@@ -588,8 +589,8 @@ bool SvxEditDictionaryDialog::NewDelHdl(const weld::Widget* pBtn)
{
if (pBtn == m_xDeletePB.get())
{
- m_xWordED->set_text("");
- m_xReplaceED->set_text("");
+ m_xWordED->set_text(u""_ustr);
+ m_xReplaceED->set_text(u""_ustr);
m_xDeletePB->set_sensitive(false);
int nEntry = m_pWordsLB->get_selected_index();
@@ -598,9 +599,9 @@ bool SvxEditDictionaryDialog::NewDelHdl(const weld::Widget* pBtn)
if (pBtn == m_xNewReplacePB.get() || m_xNewReplacePB->get_sensitive())
{
int nEntry = m_pWordsLB->get_selected_index();
- OUString aNewWord(m_xWordED->get_text());
+ OUString aNewWord(fixSpace(m_xWordED->get_text()));
OUString sEntry(aNewWord);
- OUString aReplaceStr(m_xReplaceED->get_text());
+ OUString aReplaceStr(fixSpace(m_xReplaceED->get_text()));
DictionaryError nAddRes = DictionaryError::UNKNOWN;
int nPos = m_xAllDictsLB->get_active();
@@ -673,7 +674,7 @@ IMPL_LINK(SvxEditDictionaryDialog, ModifyHdl, weld::Entry&, rEdt, void)
OUString rEntry = rEdt.get_text();
sal_Int32 nWordLen = rEntry.getLength();
- const OUString& rRepString = m_xReplaceED->get_text();
+ const OUString& rRepString = fixSpace(m_xReplaceED->get_text());
bool bEnableNewReplace = false;
bool bEnableDelete = false;
@@ -754,9 +755,9 @@ IMPL_LINK(SvxEditDictionaryDialog, ModifyHdl, weld::Entry&, rEdt, void)
bEnableDelete = true;
}
bool bIsChange =
- CDE_EQUAL != cmpDicEntry_Impl(m_xWordED->get_text(), aWordText)
- || CDE_EQUAL != cmpDicEntry_Impl(m_xReplaceED->get_text(), aReplaceText);
- if (!m_xWordED->get_text().isEmpty() && bIsChange)
+ CDE_EQUAL != cmpDicEntry_Impl(fixSpace(m_xWordED->get_text()), aWordText)
+ || CDE_EQUAL != cmpDicEntry_Impl(fixSpace(m_xReplaceED->get_text()), aReplaceText);
+ if (!fixSpace(m_xWordED->get_text()).isEmpty() && bIsChange)
bEnableNewReplace = true;
}
@@ -765,10 +766,4 @@ IMPL_LINK(SvxEditDictionaryDialog, ModifyHdl, weld::Entry&, rEdt, void)
m_xDeletePB->set_sensitive(bEnableDelete && !IsDicReadonly_Impl());
}
-IMPL_STATIC_LINK(SvxEditDictionaryDialog, InsertTextHdl, OUString&, rText, bool)
-{
- rText = rText.replaceAll(" ", "");
- return true;
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optfltr.cxx b/cui/source/options/optfltr.cxx
index 607f7759b614..29d83596ab01 100644
--- a/cui/source/options/optfltr.cxx
+++ b/cui/source/options/optfltr.cxx
@@ -18,8 +18,10 @@
*/
#include <unotools/moduleoptions.hxx>
-#include <unotools/fltrcfg.hxx>
#include <officecfg/Office/Common.hxx>
+#include <officecfg/Office/Calc.hxx>
+#include <officecfg/Office/Writer.hxx>
+#include <officecfg/Office/Impress.hxx>
#include "optfltr.hxx"
#include <strings.hrc>
#include <dialmgr.hxx>
@@ -37,15 +39,23 @@ enum class MSFltrPg2_CheckBoxEntries {
OfaMSFilterTabPage::OfaMSFilterTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optfltrpage.ui", "OptFltrPage", &rSet)
- , m_xWBasicCodeCB(m_xBuilder->weld_check_button("wo_basic"))
- , m_xWBasicWbctblCB(m_xBuilder->weld_check_button("wo_exec"))
- , m_xWBasicStgCB(m_xBuilder->weld_check_button("wo_saveorig"))
- , m_xEBasicCodeCB(m_xBuilder->weld_check_button("ex_basic"))
- , m_xEBasicExectblCB(m_xBuilder->weld_check_button("ex_exec"))
- , m_xEBasicStgCB(m_xBuilder->weld_check_button("ex_saveorig"))
- , m_xPBasicCodeCB(m_xBuilder->weld_check_button("pp_basic"))
- , m_xPBasicStgCB(m_xBuilder->weld_check_button("pp_saveorig"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optfltrpage.ui"_ustr, u"OptFltrPage"_ustr, &rSet)
+ , m_xWBasicCodeCB(m_xBuilder->weld_check_button(u"wo_basic"_ustr))
+ , m_xWBasicCodeImg(m_xBuilder->weld_widget(u"lockwo_basic"_ustr))
+ , m_xWBasicWbctblCB(m_xBuilder->weld_check_button(u"wo_exec"_ustr))
+ , m_xWBasicWbctblImg(m_xBuilder->weld_widget(u"lockwo_exec"_ustr))
+ , m_xWBasicStgCB(m_xBuilder->weld_check_button(u"wo_saveorig"_ustr))
+ , m_xWBasicStgImg(m_xBuilder->weld_widget(u"lockwo_saveorig"_ustr))
+ , m_xEBasicCodeCB(m_xBuilder->weld_check_button(u"ex_basic"_ustr))
+ , m_xEBasicCodeImg(m_xBuilder->weld_widget(u"lockex_basic"_ustr))
+ , m_xEBasicExectblCB(m_xBuilder->weld_check_button(u"ex_exec"_ustr))
+ , m_xEBasicExectblImg(m_xBuilder->weld_widget(u"lockex_exec"_ustr))
+ , m_xEBasicStgCB(m_xBuilder->weld_check_button(u"ex_saveorig"_ustr))
+ , m_xEBasicStgImg(m_xBuilder->weld_widget(u"lockex_saveorig"_ustr))
+ , m_xPBasicCodeCB(m_xBuilder->weld_check_button(u"pp_basic"_ustr))
+ , m_xPBasicCodeImg(m_xBuilder->weld_widget(u"lockpp_basic"_ustr))
+ , m_xPBasicStgCB(m_xBuilder->weld_check_button(u"pp_saveorig"_ustr))
+ , m_xPBasicStgImg(m_xBuilder->weld_widget(u"lockpp_saveorig"_ustr))
{
m_xWBasicCodeCB->connect_toggled( LINK( this, OfaMSFilterTabPage, LoadWordBasicCheckHdl_Impl ) );
m_xEBasicCodeCB->connect_toggled( LINK( this, OfaMSFilterTabPage, LoadExcelBasicCheckHdl_Impl ) );
@@ -57,12 +67,14 @@ OfaMSFilterTabPage::~OfaMSFilterTabPage()
IMPL_LINK_NOARG(OfaMSFilterTabPage, LoadWordBasicCheckHdl_Impl, weld::Toggleable&, void)
{
- m_xWBasicWbctblCB->set_sensitive(m_xWBasicCodeCB->get_active());
+ m_xWBasicWbctblCB->set_sensitive(m_xWBasicCodeCB->get_active() && !officecfg::Office::Writer::Filter::Import::VBA::Executable::isReadOnly());
+ m_xWBasicWbctblImg->set_visible(officecfg::Office::Writer::Filter::Import::VBA::Executable::isReadOnly());
}
IMPL_LINK_NOARG(OfaMSFilterTabPage, LoadExcelBasicCheckHdl_Impl, weld::Toggleable&, void)
{
- m_xEBasicExectblCB->set_sensitive(m_xEBasicCodeCB->get_active());
+ m_xEBasicExectblCB->set_sensitive(m_xEBasicCodeCB->get_active() && !officecfg::Office::Calc::Filter::Import::VBA::Executable::isReadOnly());
+ m_xEBasicExectblImg->set_visible(officecfg::Office::Calc::Filter::Import::VBA::Executable::isReadOnly());
}
std::unique_ptr<SfxTabPage> OfaMSFilterTabPage::Create( weld::Container* pPage, weld::DialogController* pController,
@@ -71,71 +83,113 @@ std::unique_ptr<SfxTabPage> OfaMSFilterTabPage::Create( weld::Container* pPage,
return std::make_unique<OfaMSFilterTabPage>(pPage, pController, *rAttrSet);
}
+OUString OfaMSFilterTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label3"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"wo_basic"_ustr, u"wo_exec"_ustr, u"wo_saveorig"_ustr, u"ex_basic"_ustr,
+ u"ex_exec"_ustr, u"ex_saveorig"_ustr, u"pp_basic"_ustr, u"pp_saveorig"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool OfaMSFilterTabPage::FillItemSet( SfxItemSet* )
{
- SvtFilterOptions& rOpt = SvtFilterOptions::Get();
+ auto batch = comphelper::ConfigurationChanges::create();
if( m_xWBasicCodeCB->get_state_changed_from_saved() )
- rOpt.SetLoadWordBasicCode( m_xWBasicCodeCB->get_active() );
+ officecfg::Office::Writer::Filter::Import::VBA::Load::set(m_xWBasicCodeCB->get_active(), batch);
if( m_xWBasicWbctblCB->get_state_changed_from_saved() )
- rOpt.SetLoadWordBasicExecutable( m_xWBasicWbctblCB->get_active() );
+ officecfg::Office::Writer::Filter::Import::VBA::Executable::set(m_xWBasicWbctblCB->get_active(), batch);
if( m_xWBasicStgCB->get_state_changed_from_saved() )
- rOpt.SetLoadWordBasicStorage( m_xWBasicStgCB->get_active() );
+ officecfg::Office::Writer::Filter::Import::VBA::Save::set(m_xWBasicStgCB->get_active(), batch);
if( m_xEBasicCodeCB->get_state_changed_from_saved())
- rOpt.SetLoadExcelBasicCode( m_xEBasicCodeCB->get_active() );
+ officecfg::Office::Calc::Filter::Import::VBA::Load::set(m_xEBasicCodeCB->get_active(), batch);
if( m_xEBasicExectblCB->get_state_changed_from_saved())
- rOpt.SetLoadExcelBasicExecutable( m_xEBasicExectblCB->get_active() );
+ officecfg::Office::Calc::Filter::Import::VBA::Executable::set(m_xEBasicExectblCB->get_active(), batch);
if( m_xEBasicStgCB->get_state_changed_from_saved())
- rOpt.SetLoadExcelBasicStorage( m_xEBasicStgCB->get_active() );
+ officecfg::Office::Calc::Filter::Import::VBA::Save::set(m_xEBasicStgCB->get_active(), batch);
if( m_xPBasicCodeCB->get_state_changed_from_saved())
- rOpt.SetLoadPPointBasicCode( m_xPBasicCodeCB->get_active() );
+ officecfg::Office::Impress::Filter::Import::VBA::Load::set(m_xPBasicCodeCB->get_active(), batch);
if( m_xPBasicStgCB->get_state_changed_from_saved())
- rOpt.SetLoadPPointBasicStorage( m_xPBasicStgCB->get_active() );
+ officecfg::Office::Impress::Filter::Import::VBA::Save::set(m_xPBasicStgCB->get_active(), batch);
+
+ batch->commit();
return false;
}
void OfaMSFilterTabPage::Reset( const SfxItemSet* )
{
- const SvtFilterOptions& rOpt = SvtFilterOptions::Get();
-
- m_xWBasicCodeCB->set_active( rOpt.IsLoadWordBasicCode() );
+ m_xWBasicCodeCB->set_active(officecfg::Office::Writer::Filter::Import::VBA::Load::get());
+ m_xWBasicCodeCB->set_sensitive(!officecfg::Office::Writer::Filter::Import::VBA::Load::isReadOnly());
+ m_xWBasicCodeImg->set_visible(officecfg::Office::Writer::Filter::Import::VBA::Load::isReadOnly());
m_xWBasicCodeCB->save_state();
- m_xWBasicWbctblCB->set_active( rOpt.IsLoadWordBasicExecutable() );
+ m_xWBasicWbctblCB->set_active(officecfg::Office::Writer::Filter::Import::VBA::Executable::get());
+ m_xWBasicWbctblCB->set_sensitive(!officecfg::Office::Writer::Filter::Import::VBA::Executable::isReadOnly());
+ m_xWBasicWbctblImg->set_visible(officecfg::Office::Writer::Filter::Import::VBA::Executable::isReadOnly());
m_xWBasicWbctblCB->save_state();
- m_xWBasicStgCB->set_active( rOpt.IsLoadWordBasicStorage() );
+ m_xWBasicStgCB->set_active(officecfg::Office::Writer::Filter::Import::VBA::Save::get());
+ m_xWBasicStgCB->set_sensitive(!officecfg::Office::Writer::Filter::Import::VBA::Save::isReadOnly());
+ m_xWBasicStgImg->set_visible(officecfg::Office::Writer::Filter::Import::VBA::Save::isReadOnly());
m_xWBasicStgCB->save_state();
LoadWordBasicCheckHdl_Impl( *m_xWBasicCodeCB );
- m_xEBasicCodeCB->set_active( rOpt.IsLoadExcelBasicCode() );
+ m_xEBasicCodeCB->set_active(officecfg::Office::Calc::Filter::Import::VBA::Load::get());
+ m_xEBasicCodeCB->set_sensitive(!officecfg::Office::Calc::Filter::Import::VBA::Load::isReadOnly());
+ m_xEBasicCodeImg->set_visible(officecfg::Office::Calc::Filter::Import::VBA::Load::isReadOnly());
m_xEBasicCodeCB->save_state();
- m_xEBasicExectblCB->set_active( rOpt.IsLoadExcelBasicExecutable() );
+ m_xEBasicExectblCB->set_active(officecfg::Office::Calc::Filter::Import::VBA::Executable::get());
+ m_xEBasicExectblCB->set_sensitive(!officecfg::Office::Calc::Filter::Import::VBA::Executable::isReadOnly());
+ m_xEBasicExectblImg->set_visible(officecfg::Office::Calc::Filter::Import::VBA::Executable::isReadOnly());
m_xEBasicExectblCB->save_state();
- m_xEBasicStgCB->set_active( rOpt.IsLoadExcelBasicStorage() );
+ m_xEBasicStgCB->set_active(officecfg::Office::Calc::Filter::Import::VBA::Save::get());
+ m_xEBasicStgCB->set_sensitive(!officecfg::Office::Calc::Filter::Import::VBA::Save::isReadOnly());
+ m_xEBasicStgImg->set_visible(officecfg::Office::Calc::Filter::Import::VBA::Save::isReadOnly());
m_xEBasicStgCB->save_state();
LoadExcelBasicCheckHdl_Impl( *m_xEBasicCodeCB );
- m_xPBasicCodeCB->set_active( rOpt.IsLoadPPointBasicCode() );
+ m_xPBasicCodeCB->set_active(officecfg::Office::Impress::Filter::Import::VBA::Load::get());
+ m_xPBasicCodeCB->set_sensitive(!officecfg::Office::Impress::Filter::Import::VBA::Load::isReadOnly());
+ m_xPBasicCodeImg->set_visible(officecfg::Office::Impress::Filter::Import::VBA::Load::isReadOnly());
m_xPBasicCodeCB->save_state();
- m_xPBasicStgCB->set_active( rOpt.IsLoadPPointBasicStorage() );
+ m_xPBasicStgCB->set_active(officecfg::Office::Impress::Filter::Import::VBA::Save::get());
+ m_xPBasicStgCB->set_sensitive(!officecfg::Office::Impress::Filter::Import::VBA::Save::isReadOnly());
+ m_xPBasicStgImg->set_visible(officecfg::Office::Impress::Filter::Import::VBA::Save::isReadOnly());
m_xPBasicStgCB->save_state();
}
OfaMSFilterTabPage2::OfaMSFilterTabPage2(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optfltrembedpage.ui", "OptFilterPage", &rSet)
- , sChgToFromMath(CuiResId(RID_SVXSTR_CHG_MATH))
- , sChgToFromWriter(CuiResId(RID_SVXSTR_CHG_WRITER))
- , sChgToFromCalc(CuiResId(RID_SVXSTR_CHG_CALC))
- , sChgToFromImpress(CuiResId(RID_SVXSTR_CHG_IMPRESS))
- , sChgToFromSmartArt(CuiResId(RID_SVXSTR_CHG_SMARTART))
- , sChgToFromVisio(CuiResId(RID_SVXSTR_CHG_VISIO))
- , sChgToFromPDF(CuiResId(RID_SVXSTR_CHG_PDF))
- , m_xCheckLB(m_xBuilder->weld_tree_view("checklbcontainer"))
- , m_xHighlightingRB(m_xBuilder->weld_radio_button("highlighting"))
- , m_xShadingRB(m_xBuilder->weld_radio_button("shading"))
- , m_xMSOLockFileCB(m_xBuilder->weld_check_button("mso_lockfile"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optfltrembedpage.ui"_ustr, u"OptFilterPage"_ustr, &rSet)
+ , sChgToFromMath(CuiResId(RID_CUISTR_CHG_MATH))
+ , sChgToFromWriter(CuiResId(RID_CUISTR_CHG_WRITER))
+ , sChgToFromCalc(CuiResId(RID_CUISTR_CHG_CALC))
+ , sChgToFromImpress(CuiResId(RID_CUISTR_CHG_IMPRESS))
+ , sChgToFromSmartArt(CuiResId(RID_CUISTR_CHG_SMARTART))
+ , sChgToFromVisio(CuiResId(RID_CUISTR_CHG_VISIO))
+ , sChgToFromPDF(CuiResId(RID_CUISTR_CHG_PDF))
+ , m_xCheckLB(m_xBuilder->weld_tree_view(u"checklbcontainer"_ustr))
+ , m_xHighlightingFT(m_xBuilder->weld_label(u"label5"_ustr))
+ , m_xHighlightingRB(m_xBuilder->weld_radio_button(u"highlighting"_ustr))
+ , m_xShadingRB(m_xBuilder->weld_radio_button(u"shading"_ustr))
+ , m_xShadingImg(m_xBuilder->weld_widget(u"lockbuttonbox1"_ustr))
+ , m_xMSOLockFileCB(m_xBuilder->weld_check_button(u"mso_lockfile"_ustr))
+ , m_xMSOLockFileImg(m_xBuilder->weld_widget(u"lockmso_lockfile"_ustr))
{
std::vector<int> aWidths
{
@@ -155,87 +209,122 @@ std::unique_ptr<SfxTabPage> OfaMSFilterTabPage2::Create( weld::Container* pPage,
return std::make_unique<OfaMSFilterTabPage2>( pPage, pController, *rAttrSet );
}
+OUString OfaMSFilterTabPage2::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label3"_ustr, u"label4"_ustr, u"label5"_ustr, u"label6"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString radioButton[] = { u"highlighting"_ustr, u"shading"_ustr };
+
+ for (const auto& radio : radioButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_radio_button(radio))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ sAllStrings += m_xMSOLockFileCB->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
+namespace
+{
+struct Functions
+{
+ bool (*FnIs)(css::uno::Reference<css::uno::XComponentContext> const &);
+ bool (*FnIsReadOnly)(css::uno::Reference<css::uno::XComponentContext> const &);
+ void (*FnSet)(const bool& bFlag, const std::shared_ptr<comphelper::ConfigurationChanges>&);
+ template <class reg> static constexpr Functions fromReg()
+ {
+ return { reg::get, reg::isReadOnly, reg::set };
+ }
+};
+struct ChkCBoxPair
+{
+ MSFltrPg2_CheckBoxEntries eType;
+ Functions load;
+ Functions save;
+};
+template <class regLoad, class regSave> constexpr ChkCBoxPair Pair(MSFltrPg2_CheckBoxEntries eType)
+{
+ return { eType, Functions::fromReg<regLoad>(), Functions::fromReg<regSave>() };
+}
+template <class regLoad> constexpr ChkCBoxPair Load(MSFltrPg2_CheckBoxEntries eType)
+{
+ return { eType, Functions::fromReg<regLoad>(), {} };
+}
+constexpr ChkCBoxPair aChkArr[] = {
+ Pair<officecfg::Office::Common::Filter::Microsoft::Import::MathTypeToMath,
+ officecfg::Office::Common::Filter::Microsoft::Export::MathToMathType>(
+ MSFltrPg2_CheckBoxEntries::Math),
+ Pair<officecfg::Office::Common::Filter::Microsoft::Import::WinWordToWriter,
+ officecfg::Office::Common::Filter::Microsoft::Export::WriterToWinWord>(
+ MSFltrPg2_CheckBoxEntries::Writer),
+ Pair<officecfg::Office::Common::Filter::Microsoft::Import::ExcelToCalc,
+ officecfg::Office::Common::Filter::Microsoft::Export::CalcToExcel>(
+ MSFltrPg2_CheckBoxEntries::Calc),
+ Pair<officecfg::Office::Common::Filter::Microsoft::Import::PowerPointToImpress,
+ officecfg::Office::Common::Filter::Microsoft::Export::ImpressToPowerPoint>(
+ MSFltrPg2_CheckBoxEntries::Impress),
+ Load<officecfg::Office::Common::Filter::Microsoft::Import::SmartArtToShapes>(
+ MSFltrPg2_CheckBoxEntries::SmartArt),
+ Load<officecfg::Office::Common::Filter::Microsoft::Import::VisioToDraw>(
+ MSFltrPg2_CheckBoxEntries::Visio),
+ Load<officecfg::Office::Common::Filter::Adobe::Import::PDFToDraw>(
+ MSFltrPg2_CheckBoxEntries::PDF),
+};
+}
+
bool OfaMSFilterTabPage2::FillItemSet( SfxItemSet* )
{
- SvtFilterOptions& rOpt = SvtFilterOptions::Get();
-
- static struct ChkCBoxEntries{
- MSFltrPg2_CheckBoxEntries eType;
- bool (SvtFilterOptions::*FnIs)() const;
- void (SvtFilterOptions::*FnSet)( bool bFlag );
- } const aChkArr[] = {
- { MSFltrPg2_CheckBoxEntries::Math, &SvtFilterOptions::IsMathType2Math,
- &SvtFilterOptions::SetMathType2Math },
- { MSFltrPg2_CheckBoxEntries::Math, &SvtFilterOptions::IsMath2MathType,
- &SvtFilterOptions::SetMath2MathType },
- { MSFltrPg2_CheckBoxEntries::Writer, &SvtFilterOptions::IsWinWord2Writer,
- &SvtFilterOptions::SetWinWord2Writer },
- { MSFltrPg2_CheckBoxEntries::Writer, &SvtFilterOptions::IsWriter2WinWord,
- &SvtFilterOptions::SetWriter2WinWord },
- { MSFltrPg2_CheckBoxEntries::Calc, &SvtFilterOptions::IsExcel2Calc,
- &SvtFilterOptions::SetExcel2Calc },
- { MSFltrPg2_CheckBoxEntries::Calc, &SvtFilterOptions::IsCalc2Excel,
- &SvtFilterOptions::SetCalc2Excel },
- { MSFltrPg2_CheckBoxEntries::Impress, &SvtFilterOptions::IsPowerPoint2Impress,
- &SvtFilterOptions::SetPowerPoint2Impress },
- { MSFltrPg2_CheckBoxEntries::Impress, &SvtFilterOptions::IsImpress2PowerPoint,
- &SvtFilterOptions::SetImpress2PowerPoint },
- { MSFltrPg2_CheckBoxEntries::SmartArt, &SvtFilterOptions::IsSmartArt2Shape,
- &SvtFilterOptions::SetSmartArt2Shape },
- { MSFltrPg2_CheckBoxEntries::Visio, &SvtFilterOptions::IsVisio2Draw,
- &SvtFilterOptions::SetVisio2Draw },
- };
- bool bFirstCol = true;
- for( const ChkCBoxEntries & rEntry : aChkArr )
+ auto pBatch = comphelper::ConfigurationChanges::create();
+ for (const ChkCBoxPair& rEntry : aChkArr)
{
// we loop through the list, alternating reading the first/second column,
// each row appears twice in the list (except for smartart and later entries, which are
// import only)
- sal_uInt16 nCol = bFirstCol ? 0 : 1;
- bFirstCol = !bFirstCol;
int nEntry = GetEntry4Type(rEntry.eType);
if (nEntry != -1)
{
- bool bCheck = m_xCheckLB->get_toggle(nEntry, nCol);
- if( bCheck != (rOpt.*rEntry.FnIs)() )
- (rOpt.*rEntry.FnSet)( bCheck );
- }
- if (rEntry.eType == MSFltrPg2_CheckBoxEntries::SmartArt)
- {
- bFirstCol = !bFirstCol;
+ bool bCheck = m_xCheckLB->get_toggle(nEntry, 0);
+ if (bCheck != (rEntry.load.FnIs)(css::uno::Reference<css::uno::XComponentContext>()))
+ (rEntry.load.FnSet)(bCheck, pBatch);
+
+ if (rEntry.save.FnIs)
+ {
+ bCheck = m_xCheckLB->get_toggle(nEntry, 1);
+ if (bCheck != (rEntry.save.FnIs)(
+ css::uno::Reference<css::uno::XComponentContext>()))
+ (rEntry.save.FnSet)(bCheck, pBatch);
+ }
}
}
- int nPDFEntry = GetEntry4Type(MSFltrPg2_CheckBoxEntries::PDF);
- bool bPDFCheck = m_xCheckLB->get_toggle(nPDFEntry, 0);
- if (bPDFCheck != officecfg::Office::Common::Filter::Adobe::Import::PDFToDraw::get())
- {
- std::shared_ptr<comphelper::ConfigurationChanges> pBatch(
- comphelper::ConfigurationChanges::create());
- officecfg::Office::Common::Filter::Adobe::Import::PDFToDraw::set(bPDFCheck, pBatch);
- pBatch->commit();
- }
if( m_xHighlightingRB->get_state_changed_from_saved() )
{
- if (m_xHighlightingRB->get_active())
- rOpt.SetCharBackground2Highlighting();
- else
- rOpt.SetCharBackground2Shading();
+ officecfg::Office::Common::Filter::Microsoft::Export::CharBackgroundToHighlighting::set(
+ m_xHighlightingRB->get_active(), pBatch);
}
if (m_xMSOLockFileCB->get_state_changed_from_saved())
{
- rOpt.EnableMSOLockFileCreation(m_xMSOLockFileCB->get_active());
+ officecfg::Office::Common::Filter::Microsoft::Import::CreateMSOLockFiles::set(
+ m_xMSOLockFileCB->get_active(), pBatch);
}
+ pBatch->commit();
return true;
}
void OfaMSFilterTabPage2::Reset( const SfxItemSet* )
{
- SvtFilterOptions& rOpt = SvtFilterOptions::Get();
-
m_xCheckLB->freeze();
m_xCheckLB->clear();
@@ -257,63 +346,51 @@ void OfaMSFilterTabPage2::Reset( const SfxItemSet* )
InsertEntry(sChgToFromPDF, MSFltrPg2_CheckBoxEntries::PDF, false);
}
- static struct ChkCBoxEntries{
- MSFltrPg2_CheckBoxEntries eType;
- bool (SvtFilterOptions::*FnIs)() const;
- } const aChkArr[] = {
- { MSFltrPg2_CheckBoxEntries::Math, &SvtFilterOptions::IsMathType2Math },
- { MSFltrPg2_CheckBoxEntries::Math, &SvtFilterOptions::IsMath2MathType },
- { MSFltrPg2_CheckBoxEntries::Writer, &SvtFilterOptions::IsWinWord2Writer },
- { MSFltrPg2_CheckBoxEntries::Writer, &SvtFilterOptions::IsWriter2WinWord },
- { MSFltrPg2_CheckBoxEntries::Calc, &SvtFilterOptions::IsExcel2Calc },
- { MSFltrPg2_CheckBoxEntries::Calc, &SvtFilterOptions::IsCalc2Excel },
- { MSFltrPg2_CheckBoxEntries::Impress, &SvtFilterOptions::IsPowerPoint2Impress },
- { MSFltrPg2_CheckBoxEntries::Impress, &SvtFilterOptions::IsImpress2PowerPoint },
- { MSFltrPg2_CheckBoxEntries::SmartArt, &SvtFilterOptions::IsSmartArt2Shape },
- { MSFltrPg2_CheckBoxEntries::Visio, &SvtFilterOptions::IsVisio2Draw },
- { MSFltrPg2_CheckBoxEntries::PDF, nullptr },
- };
-
- bool bFirstCol = true;
- for( const ChkCBoxEntries & rArr : aChkArr )
+ for (const ChkCBoxPair& rArr : aChkArr)
{
// we loop through the list, alternating reading the first/second column,
// each row appears twice in the list (except for smartart and later entries, which are
// import only)
- sal_uInt16 nCol = bFirstCol ? 0 : 1;
- bFirstCol = !bFirstCol;
int nEntry = GetEntry4Type( rArr.eType );
if (nEntry != -1)
{
- bool bCheck = false;
- if (rArr.eType != MSFltrPg2_CheckBoxEntries::PDF)
- {
- bCheck = (rOpt.*rArr.FnIs)();
- }
- else
+ bool bCheck = (rArr.load.FnIs)(css::uno::Reference<css::uno::XComponentContext>());
+ bool bReadOnly = (rArr.load.FnIsReadOnly)(
+ css::uno::Reference<css::uno::XComponentContext>());
+ m_xCheckLB->set_toggle(nEntry, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ m_xCheckLB->set_sensitive(nEntry, !bReadOnly, 0);
+
+ if (rArr.save.FnIs)
{
- bCheck = officecfg::Office::Common::Filter::Adobe::Import::PDFToDraw::get();
- nCol = 0;
+ bCheck = (rArr.save.FnIs)(css::uno::Reference<css::uno::XComponentContext>());
+ bReadOnly = (rArr.save.FnIsReadOnly)(
+ css::uno::Reference<css::uno::XComponentContext>());
+ m_xCheckLB->set_toggle(nEntry, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 1);
+ m_xCheckLB->set_sensitive(nEntry, !bReadOnly, 1);
}
- m_xCheckLB->set_toggle(nEntry, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, nCol);
- }
- if (rArr.eType == MSFltrPg2_CheckBoxEntries::SmartArt)
- {
- bFirstCol = !bFirstCol;
}
}
m_xCheckLB->thaw();
- if (rOpt.IsCharBackground2Highlighting())
+ if (officecfg::Office::Common::Filter::Microsoft::Export::CharBackgroundToHighlighting::get())
m_xHighlightingRB->set_active(true);
else
m_xShadingRB->set_active(true);
+ if (officecfg::Office::Common::Filter::Microsoft::Export::CharBackgroundToHighlighting::isReadOnly())
+ {
+ m_xHighlightingRB->set_sensitive(false);
+ m_xShadingRB->set_sensitive(false);
+ m_xHighlightingFT->set_sensitive(false);
+ m_xShadingImg->set_visible(true);
+ }
+
m_xHighlightingRB->save_state();
- m_xMSOLockFileCB->set_active(rOpt.IsMSOLockFileCreationIsEnabled());
+ m_xMSOLockFileCB->set_active(officecfg::Office::Common::Filter::Microsoft::Import::CreateMSOLockFiles::get());
m_xMSOLockFileCB->save_state();
m_xMSOLockFileCB->set_sensitive(!officecfg::Office::Common::Filter::Microsoft::Import::CreateMSOLockFiles::isReadOnly());
+ m_xMSOLockFileImg->set_visible(officecfg::Office::Common::Filter::Microsoft::Import::CreateMSOLockFiles::isReadOnly());
}
void OfaMSFilterTabPage2::InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBoxEntries _nType )
diff --git a/cui/source/options/optfltr.hxx b/cui/source/options/optfltr.hxx
index f38a89366286..51a51ec04456 100644
--- a/cui/source/options/optfltr.hxx
+++ b/cui/source/options/optfltr.hxx
@@ -23,13 +23,21 @@
class OfaMSFilterTabPage : public SfxTabPage
{
std::unique_ptr<weld::CheckButton> m_xWBasicCodeCB;
+ std::unique_ptr<weld::Widget> m_xWBasicCodeImg;
std::unique_ptr<weld::CheckButton> m_xWBasicWbctblCB;
+ std::unique_ptr<weld::Widget> m_xWBasicWbctblImg;
std::unique_ptr<weld::CheckButton> m_xWBasicStgCB;
+ std::unique_ptr<weld::Widget> m_xWBasicStgImg;
std::unique_ptr<weld::CheckButton> m_xEBasicCodeCB;
+ std::unique_ptr<weld::Widget> m_xEBasicCodeImg;
std::unique_ptr<weld::CheckButton> m_xEBasicExectblCB;
+ std::unique_ptr<weld::Widget> m_xEBasicExectblImg;
std::unique_ptr<weld::CheckButton> m_xEBasicStgCB;
+ std::unique_ptr<weld::Widget> m_xEBasicStgImg;
std::unique_ptr<weld::CheckButton> m_xPBasicCodeCB;
+ std::unique_ptr<weld::Widget> m_xPBasicCodeImg;
std::unique_ptr<weld::CheckButton> m_xPBasicStgCB;
+ std::unique_ptr<weld::Widget> m_xPBasicStgImg;
DECL_LINK(LoadWordBasicCheckHdl_Impl, weld::Toggleable&, void);
DECL_LINK(LoadExcelBasicCheckHdl_Impl, weld::Toggleable&, void);
@@ -40,6 +48,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
@@ -57,9 +67,12 @@ class OfaMSFilterTabPage2 : public SfxTabPage
sChgToFromPDF;
std::unique_ptr<weld::TreeView> m_xCheckLB;
+ std::unique_ptr<weld::Label> m_xHighlightingFT;
std::unique_ptr<weld::RadioButton> m_xHighlightingRB;
std::unique_ptr<weld::RadioButton> m_xShadingRB;
+ std::unique_ptr<weld::Widget> m_xShadingImg;
std::unique_ptr<weld::CheckButton> m_xMSOLockFileCB;
+ std::unique_ptr<weld::Widget> m_xMSOLockFileImg;
void InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBoxEntries _nType );
void InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBoxEntries _nType,
@@ -71,6 +84,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
virtual ~OfaMSFilterTabPage2() override;
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index 43b529a82718..7364ba963896 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -48,13 +48,14 @@
#include <editeng/editids.hrc>
#include <svx/svxids.hrc>
#include <svl/intitem.hxx>
+#include <svl/voiditem.hxx>
#include <GraphicsTestsDialog.hxx>
#include <unotools/searchopt.hxx>
#include <sal/log.hxx>
#include <officecfg/Office/Common.hxx>
#include <officecfg/Setup.hxx>
#include <comphelper/configuration.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#if HAVE_FEATURE_BREAKPAD
#include <desktop/crashreport.hxx>
#endif
@@ -81,13 +82,18 @@
#include <vcl/window.hxx>
#include <vcl/IconThemeInfo.hxx>
#include <vcl/skia/SkiaHelper.hxx>
+#include <bitmaps.hlst>
+
#include "optgdlg.hxx"
#include <svtools/apearcfg.hxx>
#include <svtools/optionsdrawinglayer.hxx>
#include <svtools/restartdialog.hxx>
#include <svtools/imgdef.hxx>
+#include <com/sun/star/datatransfer/clipboard/SystemClipboard.hpp>
+#include <vcl/unohelp2.hxx>
#if defined(_WIN32)
+#include <systools/win32/winstoreutil.hxx>
#include <vcl/fileregistration.hxx>
#endif
using namespace ::com::sun::star::uno;
@@ -152,50 +158,48 @@ bool lcl_HasSystemFilePicker()
}
OfaMiscTabPage::OfaMiscTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optgeneralpage.ui", "OptGeneralPage", &rSet)
- , m_xExtHelpCB(m_xBuilder->weld_check_button("exthelp"))
- , m_xPopUpNoHelpCB(m_xBuilder->weld_check_button("popupnohelp"))
- , m_xShowTipOfTheDay(m_xBuilder->weld_check_button("cbShowTipOfTheDay"))
- , m_xFileDlgFrame(m_xBuilder->weld_widget("filedlgframe"))
- , m_xFileDlgROImage(m_xBuilder->weld_widget("lockimage"))
- , m_xFileDlgCB(m_xBuilder->weld_check_button("filedlg"))
- , m_xPrintDlgCB(m_xBuilder->weld_check_button("printdlg"))
- , m_xDocStatusCB(m_xBuilder->weld_check_button("docstatus"))
- , m_xYearFrame(m_xBuilder->weld_widget("yearframe"))
- , m_xYearValueField(m_xBuilder->weld_spin_button("year"))
- , m_xToYearFT(m_xBuilder->weld_label("toyear"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optgeneralpage.ui"_ustr, u"OptGeneralPage"_ustr, &rSet)
+ , m_xExtHelpCB(m_xBuilder->weld_check_button(u"exthelp"_ustr))
+ , m_xExtHelpImg(m_xBuilder->weld_widget(u"lockexthelp"_ustr))
+ , m_xPopUpNoHelpCB(m_xBuilder->weld_check_button(u"popupnohelp"_ustr))
+ , m_xPopUpNoHelpImg(m_xBuilder->weld_widget(u"lockpopupnohelp"_ustr))
+ , m_xShowTipOfTheDay(m_xBuilder->weld_check_button(u"cbShowTipOfTheDay"_ustr))
+ , m_xShowTipOfTheDayImg(m_xBuilder->weld_widget(u"lockcbShowTipOfTheDay"_ustr))
+ , m_xFileDlgFrame(m_xBuilder->weld_widget(u"filedlgframe"_ustr))
+ , m_xFileDlgROImage(m_xBuilder->weld_widget(u"lockimage"_ustr))
+ , m_xFileDlgCB(m_xBuilder->weld_check_button(u"filedlg"_ustr))
+ , m_xDocStatusCB(m_xBuilder->weld_check_button(u"docstatus"_ustr))
+ , m_xDocStatusImg(m_xBuilder->weld_widget(u"lockdocstatus"_ustr))
+ , m_xYearFrame(m_xBuilder->weld_widget(u"yearframe"_ustr))
+ , m_xYearLabel(m_xBuilder->weld_label(u"yearslabel"_ustr))
+ , m_xYearValueField(m_xBuilder->weld_spin_button(u"year"_ustr))
+ , m_xToYearFT(m_xBuilder->weld_label(u"toyear"_ustr))
+ , m_xYearFrameImg(m_xBuilder->weld_widget(u"lockyears"_ustr))
+#if HAVE_FEATURE_BREAKPAD
+ , m_xPrivacyFrame(m_xBuilder->weld_widget("privacyframe"))
, m_xCrashReport(m_xBuilder->weld_check_button("crashreport"))
- , m_xQuickStarterFrame(m_xBuilder->weld_widget("quickstarter"))
- , m_xHelpImproveLabel(m_xBuilder->weld_label("label7")) //"Help Improve"
-#if defined(UNX)
- , m_xQuickLaunchCB(m_xBuilder->weld_check_button("systray"))
-#else
- , m_xQuickLaunchCB(m_xBuilder->weld_check_button("quicklaunch"))
+ , m_xCrashReportImg(m_xBuilder->weld_widget("lockcrashreport"))
#endif
#if defined(_WIN32)
+ , m_xQuickStarterFrame(m_xBuilder->weld_widget("quickstarter"))
+ , m_xQuickLaunchCB(m_xBuilder->weld_check_button("quicklaunch"))
+ , m_xQuickLaunchImg(m_xBuilder->weld_widget("lockquicklaunch"))
, m_xFileAssocFrame(m_xBuilder->weld_widget("fileassoc"))
, m_xFileAssocBtn(m_xBuilder->weld_button("assocfiles"))
, m_xPerformFileExtCheck(m_xBuilder->weld_check_button("cbPerformFileExtCheck"))
+ , m_xPerformFileExtImg(m_xBuilder->weld_widget("lockcbPerformFileExtCheck"))
#endif
{
- if (!lcl_HasSystemFilePicker())
- m_xFileDlgFrame->hide();
- else if (officecfg::Office::Common::Misc::UseSystemFileDialog::isReadOnly())
- {
- m_xFileDlgROImage->show();
- m_xFileDlgCB->set_sensitive(false);
- }
-
- m_xQuickLaunchCB->show();
-
- //Only available in Win or if building the gtk systray
-#if !defined(_WIN32)
- m_xQuickStarterFrame->hide();
- //Hide frame label in case of no content
- m_xHelpImproveLabel->hide();
+#if HAVE_FEATURE_BREAKPAD
+ m_xPrivacyFrame->show();
#endif
#if defined(_WIN32)
+ // Store-packaged apps (located under the protected Program Files\WindowsApps) can't use normal
+ // shell shortcuts to their exe. TODO: show a button to open "Startup Apps" system applet?
+ if (!sal::systools::IsStorePackagedApp())
+ m_xQuickStarterFrame->show();
+
m_xFileAssocFrame->show();
m_xFileAssocBtn->connect_clicked(LINK(this, OfaMiscTabPage, FileAssocClick));
#endif
@@ -215,6 +219,34 @@ std::unique_ptr<SfxTabPage> OfaMiscTabPage::Create( weld::Container* pPage, weld
return std::make_unique<OfaMiscTabPage>( pPage, pController, *rAttrSet );
}
+OUString OfaMiscTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label4"_ustr, u"label5"_ustr, u"yearslabel"_ustr,
+ u"toyear"_ustr, u"label7"_ustr, u"label8"_ustr, u"label9"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[]
+ = { u"exthelp"_ustr, u"popupnohelp"_ustr, u"cbShowTipOfTheDay"_ustr, u"filedlg"_ustr,
+ u"docstatus"_ustr, u"crashreport"_ustr, u"quicklaunch"_ustr, u"cbPerformFileExtCheck"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ if (const auto& pString = m_xBuilder->weld_button(u"assocfiles"_ustr))
+ sAllStrings += pString->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
{
bool bModified = false;
@@ -244,7 +276,7 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
bModified = true;
}
- const SfxUInt16Item* pUInt16Item = dynamic_cast< const SfxUInt16Item* >( GetOldItem( *rSet, SID_ATTR_YEAR2000 ) );
+ const SfxUInt16Item* pUInt16Item = GetOldItem( *rSet, SID_ATTR_YEAR2000 );
sal_uInt16 nNum = static_cast<sal_uInt16>(m_xYearValueField->get_text().toInt32());
if ( pUInt16Item && pUInt16Item->GetValue() != nNum )
{
@@ -267,38 +299,66 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
m_xPerformFileExtCheck->get_active(), batch);
bModified = true;
}
-#endif
-
- batch->commit();
if( m_xQuickLaunchCB->get_state_changed_from_saved())
{
rSet->Put(SfxBoolItem(SID_ATTR_QUICKLAUNCHER, m_xQuickLaunchCB->get_active()));
bModified = true;
}
+#endif
+
+ batch->commit();
return bModified;
}
void OfaMiscTabPage::Reset( const SfxItemSet* rSet )
{
+ bool bEnable = !officecfg::Office::Common::Help::ExtendedTip::isReadOnly();
m_xExtHelpCB->set_active( officecfg::Office::Common::Help::Tip::get() &&
officecfg::Office::Common::Help::ExtendedTip::get() );
+ m_xExtHelpCB->set_sensitive(bEnable);
+ m_xExtHelpImg->set_visible(!bEnable);
m_xExtHelpCB->save_state();
+
+ bEnable = !officecfg::Office::Common::Help::BuiltInHelpNotInstalledPopUp::isReadOnly();
m_xPopUpNoHelpCB->set_active( officecfg::Office::Common::Help::BuiltInHelpNotInstalledPopUp::get() );
+ m_xPopUpNoHelpCB->set_sensitive(bEnable);
+ m_xPopUpNoHelpImg->set_visible(!bEnable);
m_xPopUpNoHelpCB->save_state();
+
+ bEnable = !officecfg::Office::Common::Misc::ShowTipOfTheDay::isReadOnly();
m_xShowTipOfTheDay->set_active( officecfg::Office::Common::Misc::ShowTipOfTheDay::get() );
+ m_xShowTipOfTheDay->set_sensitive(bEnable);
+ m_xShowTipOfTheDayImg->set_visible(!bEnable);
m_xShowTipOfTheDay->save_state();
- m_xFileDlgCB->set_active( !officecfg::Office::Common::Misc::UseSystemFileDialog::get() );
+
+ if (!lcl_HasSystemFilePicker())
+ m_xFileDlgFrame->hide();
+ else
+ {
+ bEnable = !officecfg::Office::Common::Misc::UseSystemFileDialog::isReadOnly();
+ m_xFileDlgCB->set_sensitive(bEnable);
+ m_xFileDlgROImage->set_visible(!bEnable);
+ }
+ m_xFileDlgCB->set_active(!officecfg::Office::Common::Misc::UseSystemFileDialog::get());
m_xFileDlgCB->save_state();
+ bEnable = !officecfg::Office::Common::Print::PrintingModifiesDocument::isReadOnly();
m_xDocStatusCB->set_active(officecfg::Office::Common::Print::PrintingModifiesDocument::get());
+ m_xDocStatusCB->set_sensitive(bEnable);
+ m_xDocStatusImg->set_visible(!bEnable);
m_xDocStatusCB->save_state();
- const SfxPoolItem* pItem = nullptr;
- if ( SfxItemState::SET == rSet->GetItemState( SID_ATTR_YEAR2000, false, &pItem ) )
+ bEnable = !officecfg::Office::Common::DateFormat::TwoDigitYear::isReadOnly();
+ m_xYearLabel->set_sensitive(bEnable);
+ m_xYearValueField->set_sensitive(bEnable);
+ m_xToYearFT->set_sensitive(bEnable);
+ m_xYearFrameImg->set_visible(!bEnable);
+
+ if ( const SfxUInt16Item* pYearItem = rSet->GetItemIfSet( SID_ATTR_YEAR2000, false ) )
{
- m_xYearValueField->set_value( static_cast<const SfxUInt16Item*>(pItem)->GetValue() );
+ m_xYearValueField->set_value( pYearItem->GetValue() );
TwoFigureHdl(*m_xYearValueField);
}
else
@@ -307,11 +367,12 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet )
#if HAVE_FEATURE_BREAKPAD
m_xCrashReport->set_active(officecfg::Office::Common::Misc::CrashReport::get() && CrashReporter::IsDumpEnable());
m_xCrashReport->set_sensitive(!officecfg::Office::Common::Misc::CrashReport::isReadOnly() && CrashReporter::IsDumpEnable());
+ m_xCrashReportImg->set_visible(officecfg::Office::Common::Misc::CrashReport::isReadOnly() && CrashReporter::IsDumpEnable());
m_xCrashReport->save_state();
-#else
- m_xCrashReport->hide();
#endif
+#if defined(_WIN32)
+ const SfxPoolItem* pItem = nullptr;
SfxItemState eState = rSet->GetItemState( SID_ATTR_QUICKLAUNCHER, false, &pItem );
if ( SfxItemState::SET == eState )
m_xQuickLaunchCB->set_active( static_cast<const SfxBoolItem*>(pItem)->GetValue() );
@@ -323,11 +384,11 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet )
m_xQuickLaunchCB->save_state();
-#if defined(_WIN32)
m_xPerformFileExtCheck->set_active(
officecfg::Office::Common::Misc::PerformFileExtCheck::get());
m_xPerformFileExtCheck->save_state();
m_xPerformFileExtCheck->set_sensitive(!officecfg::Office::Common::Misc::PerformFileExtCheck::isReadOnly());
+ m_xPerformFileExtImg->set_visible(officecfg::Office::Common::Misc::PerformFileExtCheck::isReadOnly());
#endif
}
@@ -384,42 +445,37 @@ CanvasSettings::CanvasSettings() :
Sequence<Any> aArgs1(comphelper::InitAnyPropertySequence(
{
- {"nodepath", Any(OUString("/org.openoffice.Office.Canvas"))}
+ {"nodepath", Any(u"/org.openoffice.Office.Canvas"_ustr)}
}));
mxForceFlagNameAccess.set(
xConfigProvider->createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationUpdateAccess",
+ u"com.sun.star.configuration.ConfigurationUpdateAccess"_ustr,
aArgs1 ),
UNO_QUERY_THROW );
Sequence<Any> aArgs2(comphelper::InitAnyPropertySequence(
{
- {"nodepath", Any(OUString("/org.openoffice.Office.Canvas/CanvasServiceList"))}
+ {"nodepath", Any(u"/org.openoffice.Office.Canvas/CanvasServiceList"_ustr)}
}));
Reference<XNameAccess> xNameAccess(
xConfigProvider->createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationAccess",
+ u"com.sun.star.configuration.ConfigurationAccess"_ustr,
aArgs2 ), UNO_QUERY_THROW );
Reference<XHierarchicalNameAccess> xHierarchicalNameAccess(
xNameAccess, UNO_QUERY_THROW);
- Sequence<OUString> serviceNames = xNameAccess->getElementNames();
- const OUString* pCurr = serviceNames.getConstArray();
- const OUString* const pEnd = pCurr + serviceNames.getLength();
- while( pCurr != pEnd )
+ for (auto& serviceName : xNameAccess->getElementNames())
{
Reference<XNameAccess> xEntryNameAccess(
- xHierarchicalNameAccess->getByHierarchicalName(*pCurr),
+ xHierarchicalNameAccess->getByHierarchicalName(serviceName),
UNO_QUERY );
if( xEntryNameAccess.is() )
{
Sequence<OUString> preferredImplementations;
- if( xEntryNameAccess->getByName("PreferredImplementations") >>= preferredImplementations )
- maAvailableImplementations.emplace_back(*pCurr,preferredImplementations );
+ if( xEntryNameAccess->getByName(u"PreferredImplementations"_ustr) >>= preferredImplementations )
+ maAvailableImplementations.emplace_back(serviceName, preferredImplementations);
}
-
- ++pCurr;
}
}
catch (const Exception&)
@@ -439,18 +495,15 @@ bool CanvasSettings::IsHardwareAccelerationAvailable() const
// implementation that presents the "HardwareAcceleration" property
for (auto const& availableImpl : maAvailableImplementations)
{
- const OUString* pCurrImpl = availableImpl.second.getConstArray();
- const OUString* const pEndImpl = pCurrImpl + availableImpl.second.getLength();
-
- while( pCurrImpl != pEndImpl )
+ for (auto& currImpl : availableImpl.second)
{
try
{
Reference<XPropertySet> xPropSet( xFactory->createInstance(
- pCurrImpl->trim() ),
+ currImpl.trim() ),
UNO_QUERY_THROW );
bool bHasAccel(false);
- if( xPropSet->getPropertyValue("HardwareAcceleration") >>= bHasAccel )
+ if( xPropSet->getPropertyValue(u"HardwareAcceleration"_ustr) >>= bHasAccel )
if( bHasAccel )
{
mbHWAccelAvailable = true;
@@ -460,8 +513,6 @@ bool CanvasSettings::IsHardwareAccelerationAvailable() const
catch (const Exception&)
{
}
-
- ++pCurrImpl;
}
}
}
@@ -475,7 +526,7 @@ bool CanvasSettings::IsHardwareAccelerationEnabled() const
if( !mxForceFlagNameAccess.is() )
return true;
- if( !(mxForceFlagNameAccess->getByName("ForceSafeServiceImpl") >>= bForceLastEntry) )
+ if( !(mxForceFlagNameAccess->getByName(u"ForceSafeServiceImpl"_ustr) >>= bForceLastEntry) )
return true;
return !bForceLastEntry;
@@ -488,7 +539,7 @@ bool CanvasSettings::IsHardwareAccelerationRO() const
return true;
Reference< XPropertySetInfo > xInfo = xSet->getPropertySetInfo();
- Property aProp = xInfo->getPropertyByName("ForceSafeServiceImpl");
+ Property aProp = xInfo->getPropertyByName(u"ForceSafeServiceImpl"_ustr);
return ((aProp.Attributes & css::beans::PropertyAttribute::READONLY ) == css::beans::PropertyAttribute::READONLY);
}
@@ -500,7 +551,7 @@ void CanvasSettings::EnabledHardwareAcceleration( bool _bEnabled ) const
if( !xNameReplace.is() )
return;
- xNameReplace->replaceByName( "ForceSafeServiceImpl", Any(!_bEnabled) );
+ xNameReplace->replaceByName( u"ForceSafeServiceImpl"_ustr, Any(!_bEnabled) );
Reference< XChangesBatch > xChangesBatch(
mxForceFlagNameAccess, UNO_QUERY );
@@ -519,44 +570,74 @@ static bool DisplayNameCompareLessThan(const vcl::IconThemeInfo& rInfo1, const v
}
OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optviewpage.ui", "OptViewPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/optviewpage.ui"_ustr, u"OptViewPage"_ustr, &rSet)
, nSizeLB_InitialSelection(0)
, nSidebarSizeLB_InitialSelection(0)
, nNotebookbarSizeLB_InitialSelection(0)
, nStyleLB_InitialSelection(0)
- , pAppearanceCfg(new SvtTabAppearanceCfg)
, pCanvasSettings(new CanvasSettings)
- , m_xIconSizeLB(m_xBuilder->weld_combo_box("iconsize"))
- , m_xSidebarIconSizeLB(m_xBuilder->weld_combo_box("sidebariconsize"))
- , m_xNotebookbarIconSizeLB(m_xBuilder->weld_combo_box("notebookbariconsize"))
- , m_xIconStyleLB(m_xBuilder->weld_combo_box("iconstyle"))
- , m_xFontAntiAliasing(m_xBuilder->weld_check_button("aafont"))
- , m_xAAPointLimitLabel(m_xBuilder->weld_label("aafrom"))
- , m_xAAPointLimit(m_xBuilder->weld_metric_spin_button("aanf", FieldUnit::PIXEL))
- , m_xMenuIconBox(m_xBuilder->weld_widget("menuiconsbox"))
- , m_xMenuIconsLB(m_xBuilder->weld_combo_box("menuicons"))
- , m_xContextMenuShortcutsLB(m_xBuilder->weld_combo_box("contextmenushortcuts"))
- , m_xFontShowCB(m_xBuilder->weld_check_button("showfontpreview"))
- , m_xUseHardwareAccell(m_xBuilder->weld_check_button("useaccel"))
- , m_xUseAntiAliase(m_xBuilder->weld_check_button("useaa"))
- , m_xUseSkia(m_xBuilder->weld_check_button("useskia"))
- , m_xForceSkiaRaster(m_xBuilder->weld_check_button("forceskiaraster"))
- , m_xSkiaStatusEnabled(m_xBuilder->weld_label("skiaenabled"))
- , m_xSkiaStatusDisabled(m_xBuilder->weld_label("skiadisabled"))
- , m_xMousePosLB(m_xBuilder->weld_combo_box("mousepos"))
- , m_xMouseMiddleLB(m_xBuilder->weld_combo_box("mousemiddle"))
- , m_xMoreIcons(m_xBuilder->weld_button("btnMoreIcons"))
- , m_xRunGPTests(m_xBuilder->weld_button("btn_rungptest"))
+ , m_xIconSizeLabel(m_xBuilder->weld_label(u"label14"_ustr))
+ , m_xIconSizeLB(m_xBuilder->weld_combo_box(u"iconsize"_ustr))
+ , m_xIconSizeImg(m_xBuilder->weld_widget(u"lockiconsize"_ustr))
+ , m_xSidebarIconSizeLabel(m_xBuilder->weld_label(u"label9"_ustr))
+ , m_xSidebarIconSizeLB(m_xBuilder->weld_combo_box(u"sidebariconsize"_ustr))
+ , m_xSidebarIconSizeImg(m_xBuilder->weld_widget(u"locksidebariconsize"_ustr))
+ , m_xNotebookbarIconSizeLabel(m_xBuilder->weld_label(u"label8"_ustr))
+ , m_xNotebookbarIconSizeLB(m_xBuilder->weld_combo_box(u"notebookbariconsize"_ustr))
+ , m_xNotebookbarIconSizeImg(m_xBuilder->weld_widget(u"locknotebookbariconsize"_ustr))
+ , m_xDarkModeFrame(m_xBuilder->weld_widget(u"darkmode"_ustr))
+ , m_xAppearanceStyleLabel(m_xBuilder->weld_label(u"label7"_ustr))
+ , m_xAppearanceStyleLB(m_xBuilder->weld_combo_box(u"appearance"_ustr))
+ , m_xAppearanceStyleImg(m_xBuilder->weld_widget(u"lockappearance"_ustr))
+ , m_xIconStyleLabel(m_xBuilder->weld_label(u"label6"_ustr))
+ , m_xIconStyleLB(m_xBuilder->weld_combo_box(u"iconstyle"_ustr))
+ , m_xIconStyleImg(m_xBuilder->weld_widget(u"lockiconstyle"_ustr))
+ , m_xFontAntiAliasing(m_xBuilder->weld_check_button(u"aafont"_ustr))
+ , m_xFontAntiAliasingImg(m_xBuilder->weld_widget(u"lockaafont"_ustr))
+ , m_xAAPointLimitLabel(m_xBuilder->weld_label(u"aafrom"_ustr))
+ , m_xAAPointLimitLabelImg(m_xBuilder->weld_widget(u"lockaafrom"_ustr))
+ , m_xAAPointLimit(m_xBuilder->weld_metric_spin_button(u"aanf"_ustr, FieldUnit::PIXEL))
+ , m_xFontShowCB(m_xBuilder->weld_check_button(u"showfontpreview"_ustr))
+ , m_xFontShowImg(m_xBuilder->weld_widget(u"lockshowfontpreview"_ustr))
+ , m_xUseHardwareAccell(m_xBuilder->weld_check_button(u"useaccel"_ustr))
+ , m_xUseHardwareAccellImg(m_xBuilder->weld_widget(u"lockuseaccel"_ustr))
+ , m_xUseAntiAliase(m_xBuilder->weld_check_button(u"useaa"_ustr))
+ , m_xUseAntiAliaseImg(m_xBuilder->weld_widget(u"lockuseaa"_ustr))
+ , m_xUseSkia(m_xBuilder->weld_check_button(u"useskia"_ustr))
+ , m_xUseSkiaImg(m_xBuilder->weld_widget(u"lockuseskia"_ustr))
+ , m_xForceSkiaRaster(m_xBuilder->weld_check_button(u"forceskiaraster"_ustr))
+ , m_xForceSkiaRasterImg(m_xBuilder->weld_widget(u"lockforceskiaraster"_ustr))
+ , m_xSkiaStatusEnabled(m_xBuilder->weld_label(u"skiaenabled"_ustr))
+ , m_xSkiaStatusDisabled(m_xBuilder->weld_label(u"skiadisabled"_ustr))
+ , m_xSkiaLog(m_xBuilder->weld_button(u"btnSkialog"_ustr))
+ , m_xMouseMiddleLabel(m_xBuilder->weld_label(u"label12"_ustr))
+ , m_xMouseMiddleLB(m_xBuilder->weld_combo_box(u"mousemiddle"_ustr))
+ , m_xMouseMiddleImg(m_xBuilder->weld_widget(u"lockmousemiddle"_ustr))
+ , m_xMoreIcons(m_xBuilder->weld_button(u"btnMoreIcons"_ustr))
+ , m_xRunGPTests(m_xBuilder->weld_button(u"btn_rungptest"_ustr))
+ , m_sAutoStr(m_xIconStyleLB->get_text(0))
{
- if (Application::GetToolkitName().startsWith("gtk"))
- m_xMenuIconBox->hide();
+ OUString sToolKitName(Application::GetToolkitName());
+ const bool bHasDarkMode = sToolKitName.startsWith("gtk") || sToolKitName == "osx" || sToolKitName == "win";
+ if (!bHasDarkMode)
+ m_xDarkModeFrame->hide();
m_xFontAntiAliasing->connect_toggled( LINK( this, OfaViewTabPage, OnAntialiasingToggled ) );
m_xUseSkia->connect_toggled(LINK(this, OfaViewTabPage, OnUseSkiaToggled));
+ m_xSkiaLog->connect_clicked(LINK(this, OfaViewTabPage, OnCopySkiaLog));
+
+ UpdateIconThemes();
+
+ m_xIconStyleLB->set_active(0);
+
+ m_xMoreIcons->connect_clicked(LINK(this, OfaViewTabPage, OnMoreIconsClick));
+ m_xRunGPTests->connect_clicked( LINK( this, OfaViewTabPage, OnRunGPTestClick));
+}
+void OfaViewTabPage::UpdateIconThemes()
+{
// Set known icon themes
- OUString sAutoStr( m_xIconStyleLB->get_text( 0 ) );
m_xIconStyleLB->clear();
StyleSettings aStyleSettings = Application::GetSettings().GetStyleSettings();
mInstalledIconThemes = aStyleSettings.GetInstalledIconThemes();
@@ -566,22 +647,14 @@ OfaViewTabPage::OfaViewTabPage(weld::Container* pPage, weld::DialogController* p
OUString autoThemeId = aStyleSettings.GetAutomaticallyChosenIconTheme();
const vcl::IconThemeInfo& autoIconTheme = vcl::IconThemeInfo::FindIconThemeById(mInstalledIconThemes, autoThemeId);
- OUString entryForAuto = sAutoStr + " (" +
- autoIconTheme.GetDisplayName() +
- ")";
- m_xIconStyleLB->append("auto", entryForAuto); // index 0 means choose style automatically
+ OUString entryForAuto = m_sAutoStr + " (" + autoIconTheme.GetDisplayName() + ")";
+ m_xIconStyleLB->append(u"auto"_ustr, entryForAuto); // index 0 means choose style automatically
// separate auto and other icon themes
- m_xIconStyleLB->append_separator("");
+ m_xIconStyleLB->append_separator(u""_ustr);
for (auto const& installIconTheme : mInstalledIconThemes)
m_xIconStyleLB->append(installIconTheme.GetThemeId(), installIconTheme.GetDisplayName());
-
- m_xIconStyleLB->set_active(0);
-
- m_xMoreIcons->set_from_icon_name("cmd/sc_additionsdialog.png");
- m_xMoreIcons->connect_clicked(LINK(this, OfaViewTabPage, OnMoreIconsClick));
- m_xRunGPTests->connect_clicked( LINK( this, OfaViewTabPage, OnRunGPTestClick));
}
OfaViewTabPage::~OfaViewTabPage()
@@ -597,13 +670,13 @@ IMPL_LINK_NOARG(OfaViewTabPage, OnRunGPTestClick, weld::Button&, void)
IMPL_STATIC_LINK_NOARG(OfaViewTabPage, OnMoreIconsClick, weld::Button&, void)
{
css::uno::Sequence<css::beans::PropertyValue> aArgs{ comphelper::makePropertyValue(
- "AdditionsTag", OUString("Icons")) };
- comphelper::dispatchCommand(".uno:AdditionsDialog", aArgs);
+ u"AdditionsTag"_ustr, u"Icons"_ustr) };
+ comphelper::dispatchCommand(u".uno:AdditionsDialog"_ustr, aArgs);
}
IMPL_LINK_NOARG( OfaViewTabPage, OnAntialiasingToggled, weld::Toggleable&, void )
{
- bool bAAEnabled = m_xFontAntiAliasing->get_active();
+ bool bAAEnabled = m_xFontAntiAliasing->get_active() && !officecfg::Office::Common::View::FontAntiAliasing::MinPixelHeight::isReadOnly();
m_xAAPointLimitLabel->set_sensitive(bAAEnabled);
m_xAAPointLimit->set_sensitive(bAAEnabled);
@@ -614,12 +687,25 @@ IMPL_LINK_NOARG(OfaViewTabPage, OnUseSkiaToggled, weld::Toggleable&, void)
UpdateSkiaStatus();
}
+IMPL_LINK_NOARG(OfaViewTabPage, OnCopySkiaLog, weld::Button&, void)
+{
+#if HAVE_FEATURE_SKIA
+ css::uno::Reference<css::datatransfer::clipboard::XClipboard> xClipboard =
+ css::datatransfer::clipboard::SystemClipboard::create(
+ comphelper::getProcessComponentContext());
+ OUString sInfo = SkiaHelper::readLog();
+ vcl::unohelper::TextDataObject::CopyStringTo(sInfo, xClipboard);
+ m_xSkiaLog->set_from_icon_name(RID_SVXBMP_COPY);
+#endif
+}
+
void OfaViewTabPage::HideSkiaWidgets()
{
m_xUseSkia->hide();
m_xForceSkiaRaster->hide();
m_xSkiaStatusEnabled->hide();
m_xSkiaStatusDisabled->hide();
+ m_xSkiaLog->hide();
}
void OfaViewTabPage::UpdateSkiaStatus()
@@ -648,9 +734,11 @@ void OfaViewTabPage::UpdateSkiaStatus()
m_xSkiaStatusEnabled->set_visible(bEnabled);
m_xSkiaStatusDisabled->set_visible(!bEnabled);
- // FIXME: should really add code to show a 'lock' icon here.
m_xUseSkia->set_sensitive(!officecfg::Office::Common::VCL::UseSkia::isReadOnly());
+ m_xUseSkiaImg->set_visible(officecfg::Office::Common::VCL::UseSkia::isReadOnly());
m_xForceSkiaRaster->set_sensitive(m_xUseSkia->get_active() && !officecfg::Office::Common::VCL::ForceSkiaRaster::isReadOnly());
+ m_xForceSkiaRasterImg->set_visible(officecfg::Office::Common::VCL::ForceSkiaRaster::isReadOnly());
+ m_xSkiaLog->set_sensitive(bEnabled);
// Technically the 'use hardware acceleration' option could be used to mean !forceSkiaRaster, but the implementation
// of the option is so tied to the implementation of the canvas module that it's simpler to ignore it.
@@ -665,10 +753,37 @@ std::unique_ptr<SfxTabPage> OfaViewTabPage::Create( weld::Container* pPage, weld
return std::make_unique<OfaViewTabPage>(pPage, pController, *rAttrSet);
}
+OUString OfaViewTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label16"_ustr, u"label7"_ustr, u"label1"_ustr, u"label6"_ustr, u"label15"_ustr,
+ u"label14"_ustr, u"label8"_ustr, u"label9"_ustr, u"label4"_ustr, u"label12"_ustr,
+ u"label2"_ustr, u"skiaenabled"_ustr, u"skiadisabled"_ustr, u"label5"_ustr, u"aafrom"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[]
+ = { u"useaccel"_ustr, u"useaa"_ustr, u"useskia"_ustr, u"forceskiaraster"_ustr, u"showfontpreview"_ustr, u"aafont"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ sAllStrings += m_xSkiaLog->get_label() + " " + m_xRunGPTests->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool OfaViewTabPage::FillItemSet( SfxItemSet* )
{
bool bModified = false;
- bool bMenuOptModified = false;
+ bool bDarkModeOptModified = false;
bool bRepaintWindows(false);
std::shared_ptr<comphelper::ConfigurationChanges> xChanges(comphelper::ConfigurationChanges::create());
@@ -685,7 +800,7 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
case 2: eSet = SFX_SYMBOLS_SIZE_LARGE; break;
case 3: eSet = SFX_SYMBOLS_SIZE_32; break;
default:
- OSL_FAIL( "OfaViewTabPage::FillItemSet(): This state of m_xIconSizeLB should not be possible!" );
+ SAL_WARN("cui.options", "OfaViewTabPage::FillItemSet(): This state of m_xIconSizeLB should not be possible!");
}
aMiscOptions.SetSymbolsSize( eSet );
}
@@ -701,7 +816,7 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
case 1: eSet = ToolBoxButtonSize::Small; break;
case 2: eSet = ToolBoxButtonSize::Large; break;
default:
- OSL_FAIL( "OfaViewTabPage::FillItemSet(): This state of m_xSidebarIconSizeLB should not be possible!" );
+ SAL_WARN("cui.options", "OfaViewTabPage::FillItemSet(): This state of m_xSidebarIconSizeLB should not be possible!");
}
officecfg::Office::Common::Misc::SidebarIconSize::set(static_cast<sal_Int16>(eSet), xChanges);
}
@@ -717,7 +832,7 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
case 1: eSet = ToolBoxButtonSize::Small; break;
case 2: eSet = ToolBoxButtonSize::Large; break;
default:
- OSL_FAIL( "OfaViewTabPage::FillItemSet(): This state of m_xNotebookbarIconSizeLB should not be possible!" );
+ SAL_WARN("cui.options", "OfaViewTabPage::FillItemSet(): This state of m_xNotebookbarIconSizeLB should not be possible!");
}
officecfg::Office::Common::Misc::NotebookbarIconSize::set(static_cast<sal_Int16>(eSet), xChanges);
}
@@ -730,40 +845,31 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
}
bool bAppearanceChanged = false;
-
- // Mouse Snap Mode
- SnapType eOldSnap = pAppearanceCfg->GetSnapMode();
- SnapType eNewSnap = static_cast<SnapType>(m_xMousePosLB->get_active());
- if(eNewSnap > SnapType::NONE)
- eNewSnap = SnapType::NONE;
-
- if ( eNewSnap != eOldSnap )
- {
- pAppearanceCfg->SetSnapMode(eNewSnap );
- bAppearanceChanged = true;
- }
+ std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
// Middle Mouse Button
- MouseMiddleButtonAction eOldMiddleMouse = pAppearanceCfg->GetMiddleMouseButton();
+ MouseMiddleButtonAction eOldMiddleMouse = static_cast<MouseMiddleButtonAction>(officecfg::Office::Common::View::Dialog::MiddleMouseButton::get());
short eNewMiddleMouse = m_xMouseMiddleLB->get_active();
if(eNewMiddleMouse > 2)
eNewMiddleMouse = 2;
if ( eNewMiddleMouse != static_cast<short>(eOldMiddleMouse) )
{
- pAppearanceCfg->SetMiddleMouseButton( static_cast<MouseMiddleButtonAction>(eNewMiddleMouse) );
+ officecfg::Office::Common::View::Dialog::MiddleMouseButton::set(eNewMiddleMouse, batch);
bAppearanceChanged = true;
}
if (m_xFontAntiAliasing->get_state_changed_from_saved())
{
- pAppearanceCfg->SetFontAntiAliasing(m_xFontAntiAliasing->get_active());
+ bool b = m_xFontAntiAliasing->get_active();
+ officecfg::Office::Common::View::FontAntiAliasing::Enabled::set(b, batch);
bAppearanceChanged = true;
}
if (m_xAAPointLimit->get_value_changed_from_saved())
{
- pAppearanceCfg->SetFontAntialiasingMinPixelHeight(m_xAAPointLimit->get_value(FieldUnit::PIXEL));
+ sal_Int64 i = m_xAAPointLimit->get_value(FieldUnit::PIXEL);
+ officecfg::Office::Common::View::FontAntiAliasing::MinPixelHeight::set(i, batch);
bAppearanceChanged = true;
}
@@ -773,30 +879,10 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
bModified = true;
}
- if (m_xMenuIconsLB->get_value_changed_from_saved())
+ if (m_xAppearanceStyleLB->get_value_changed_from_saved())
{
- TriState eMenuIcons = m_xMenuIconsLB->get_active() == 0 ?
- TRISTATE_INDET :
- static_cast<TriState>(m_xMenuIconsLB->get_active() - 1);
- // Output cache of current setting as possibly modified by System Theme for older version
- bool bMenuIcons = Application::GetSettings().GetStyleSettings().GetUseImagesInMenus();
- officecfg::Office::Common::View::Menu::IsSystemIconsInMenus::set(eMenuIcons == TRISTATE_INDET, xChanges);
- officecfg::Office::Common::View::Menu::ShowIconsInMenues::set(bMenuIcons, xChanges);
+ bDarkModeOptModified = true;
bModified = true;
- bMenuOptModified = true;
- bAppearanceChanged = true;
- }
-
- if (m_xContextMenuShortcutsLB->get_value_changed_from_saved())
- {
- officecfg::Office::Common::View::Menu::ShortcutsInContextMenus::set(
- m_xContextMenuShortcutsLB->get_active() == 0 ?
- TRISTATE_INDET :
- static_cast<TriState>(m_xContextMenuShortcutsLB->get_active() - 1),
- xChanges);
- bModified = true;
- bMenuOptModified = true;
- bAppearanceChanged = true;
}
// #i95644# if disabled, do not use value, see in ::Reset()
@@ -830,20 +916,13 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
xChanges->commit();
- if( bMenuOptModified )
- {
- // Set changed settings to the application instance
- AllSettings aAllSettings = Application::GetSettings();
- StyleSettings aStyleSettings = aAllSettings.GetStyleSettings();
- aAllSettings.SetStyleSettings(aStyleSettings);
- Application::MergeSystemSettings( aAllSettings );
- Application::SetSettings(aAllSettings);
- }
+ if (bDarkModeOptModified)
+ MiscSettings::SetDarkMode(m_xAppearanceStyleLB->get_active());
if ( bAppearanceChanged )
{
- pAppearanceCfg->Commit();
- pAppearanceCfg->SetApplicationDefaults ( GetpApp() );
+ batch->commit();
+ SvtTabAppearanceCfg::SetApplicationDefaults ( GetpApp() );
}
if(bRepaintWindows)
@@ -873,17 +952,23 @@ bool OfaViewTabPage::FillItemSet( SfxItemSet* )
void OfaViewTabPage::Reset( const SfxItemSet* )
{
SvtMiscOptions aMiscOptions;
+ bool bEnable = true;
- if (aMiscOptions.GetSymbolsSize() != SFX_SYMBOLS_SIZE_AUTO)
+ if (SvtMiscOptions::GetSymbolsSize() != SFX_SYMBOLS_SIZE_AUTO)
{
nSizeLB_InitialSelection = 1;
- if (aMiscOptions.GetSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE)
+ if (SvtMiscOptions::GetSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE)
nSizeLB_InitialSelection = 2;
- else if (aMiscOptions.GetSymbolsSize() == SFX_SYMBOLS_SIZE_32)
+ else if (SvtMiscOptions::GetSymbolsSize() == SFX_SYMBOLS_SIZE_32)
nSizeLB_InitialSelection = 3;
}
+ bEnable = !officecfg::Office::Common::Misc::SymbolSet::isReadOnly();
m_xIconSizeLB->set_active( nSizeLB_InitialSelection );
+ m_xIconSizeLabel->set_sensitive(bEnable);
+ m_xIconSizeLB->set_sensitive(bEnable);
+ m_xMoreIcons->set_sensitive(bEnable);
+ m_xIconSizeImg->set_visible(!bEnable);
m_xIconSizeLB->save_value();
ToolBoxButtonSize eSidebarIconSize = static_cast<ToolBoxButtonSize>(officecfg::Office::Common::Misc::SidebarIconSize::get());
@@ -893,8 +978,14 @@ void OfaViewTabPage::Reset( const SfxItemSet* )
nSidebarSizeLB_InitialSelection = 1;
else if( eSidebarIconSize == ToolBoxButtonSize::Large )
nSidebarSizeLB_InitialSelection = 2;
+
+ bEnable = !officecfg::Office::Common::Misc::SidebarIconSize::isReadOnly();
m_xSidebarIconSizeLB->set_active( nSidebarSizeLB_InitialSelection );
+ m_xSidebarIconSizeLabel->set_sensitive(bEnable);
+ m_xSidebarIconSizeLB->set_sensitive(bEnable);
+ m_xSidebarIconSizeImg->set_visible(!bEnable);
m_xSidebarIconSizeLB->save_value();
+
ToolBoxButtonSize eNotebookbarIconSize = static_cast<ToolBoxButtonSize>(officecfg::Office::Common::Misc::NotebookbarIconSize::get());
if( eNotebookbarIconSize == ToolBoxButtonSize::DontCare )
; // do nothing
@@ -902,45 +993,67 @@ void OfaViewTabPage::Reset( const SfxItemSet* )
nNotebookbarSizeLB_InitialSelection = 1;
else if( eNotebookbarIconSize == ToolBoxButtonSize::Large )
nNotebookbarSizeLB_InitialSelection = 2;
+
+ bEnable = !officecfg::Office::Common::Misc::NotebookbarIconSize::isReadOnly();
m_xNotebookbarIconSizeLB->set_active(nNotebookbarSizeLB_InitialSelection);
+ m_xNotebookbarIconSizeLabel->set_sensitive(bEnable);
+ m_xNotebookbarIconSizeLB->set_sensitive(bEnable);
+ m_xNotebookbarIconSizeImg->set_visible(!bEnable);
m_xNotebookbarIconSizeLB->save_value();
+ // tdf#153497 set name of automatic icon theme, it may have changed due to "Apply" while this page is visible
+ UpdateIconThemes();
+
if (aMiscOptions.IconThemeWasSetAutomatically()) {
nStyleLB_InitialSelection = 0;
}
else {
- const OUString& selected = aMiscOptions.GetIconTheme();
+ const OUString& selected = SvtMiscOptions::GetIconTheme();
const vcl::IconThemeInfo& selectedInfo =
vcl::IconThemeInfo::FindIconThemeById(mInstalledIconThemes, selected);
nStyleLB_InitialSelection = m_xIconStyleLB->find_text(selectedInfo.GetDisplayName());
}
+ bEnable = !officecfg::Office::Common::Misc::SymbolStyle::isReadOnly();
m_xIconStyleLB->set_active(nStyleLB_InitialSelection);
+ m_xIconStyleLabel->set_sensitive(bEnable);
+ m_xIconStyleLB->set_sensitive(bEnable);
+ m_xIconStyleImg->set_visible(!bEnable);
m_xIconStyleLB->save_value();
- // Mouse Snap
- m_xMousePosLB->set_active(static_cast<sal_Int32>(pAppearanceCfg->GetSnapMode()));
- m_xMousePosLB->save_value();
+ bEnable = !officecfg::Office::Common::Misc::Appearance::isReadOnly();
+ m_xAppearanceStyleLB->set_active(officecfg::Office::Common::Misc::Appearance::get());
+ m_xAppearanceStyleLabel->set_sensitive(bEnable);
+ m_xAppearanceStyleLB->set_sensitive(bEnable);
+ m_xAppearanceStyleImg->set_visible(!bEnable);
+ m_xAppearanceStyleLB->save_value();
- // Mouse Snap
- m_xMouseMiddleLB->set_active(static_cast<short>(pAppearanceCfg->GetMiddleMouseButton()));
+ // Middle Mouse Button
+ bEnable = !officecfg::Office::Common::View::Dialog::MiddleMouseButton::isReadOnly();
+ sal_Int16 nMiddleMouseButton = officecfg::Office::Common::View::Dialog::MiddleMouseButton::get();
+ m_xMouseMiddleLB->set_active(static_cast<short>(nMiddleMouseButton));
+ m_xMouseMiddleLabel->set_sensitive(bEnable);
+ m_xMouseMiddleLB->set_sensitive(bEnable);
+ m_xMouseMiddleImg->set_visible(!bEnable);
m_xMouseMiddleLB->save_value();
- m_xFontAntiAliasing->set_active( pAppearanceCfg->IsFontAntiAliasing() );
- m_xAAPointLimit->set_value(pAppearanceCfg->GetFontAntialiasingMinPixelHeight(), FieldUnit::PIXEL);
+ bEnable = !officecfg::Office::Common::View::FontAntiAliasing::Enabled::isReadOnly();
+ bool bFontAntiAliasing = officecfg::Office::Common::View::FontAntiAliasing::Enabled::get();
+ m_xFontAntiAliasing->set_active( bFontAntiAliasing );
+ m_xFontAntiAliasing->set_sensitive(bEnable);
+ m_xFontAntiAliasingImg->set_visible(!bEnable);
+
+ bEnable = !officecfg::Office::Common::View::FontAntiAliasing::MinPixelHeight::isReadOnly();
+ sal_Int16 nFontAntiAliasingMinPixelHeight = officecfg::Office::Common::View::FontAntiAliasing::MinPixelHeight::get();
+ m_xAAPointLimit->set_value(nFontAntiAliasingMinPixelHeight, FieldUnit::PIXEL);
+ m_xAAPointLimit->set_sensitive(bEnable);
+ m_xAAPointLimitLabelImg->set_visible(!bEnable);
// WorkingSet
+ bEnable = !officecfg::Office::Common::Font::View::ShowFontBoxWYSIWYG::isReadOnly();
m_xFontShowCB->set_active(officecfg::Office::Common::Font::View::ShowFontBoxWYSIWYG::get());
- bool bMenuIcons = officecfg::Office::Common::View::Menu::ShowIconsInMenues::get();
- bool bSystemMenuIcons = officecfg::Office::Common::View::Menu::IsSystemIconsInMenus::get();
- TriState eMenuIcons = bSystemMenuIcons ? TRISTATE_INDET : static_cast<TriState>(bMenuIcons);
- m_xMenuIconsLB->set_active(eMenuIcons == 2 ? 0 : eMenuIcons + 1);
- m_xMenuIconsLB->save_value();
-
- TriState eContextMenuShortcuts = static_cast<TriState>(officecfg::Office::Common::View::Menu::ShortcutsInContextMenus::get());
- bool bContextMenuShortcutsNonDefault = eContextMenuShortcuts == TRISTATE_FALSE || eContextMenuShortcuts == TRISTATE_TRUE;
- m_xContextMenuShortcutsLB->set_active(bContextMenuShortcutsNonDefault ? eContextMenuShortcuts + 1 : 0);
- m_xContextMenuShortcutsLB->save_value();
+ m_xFontShowCB->set_sensitive(bEnable);
+ m_xFontShowImg->set_visible(!bEnable);
UpdateHardwareAccelStatus();
m_xUseHardwareAccell->save_state();
@@ -954,8 +1067,12 @@ void OfaViewTabPage::Reset( const SfxItemSet* )
{
m_xUseAntiAliase->set_active(false);
m_xUseAntiAliase->set_sensitive(false);
+ m_xUseAntiAliaseImg->set_visible(true);
}
+ bEnable = !officecfg::Office::Common::Drawinglayer::AntiAliasing::isReadOnly();
+ m_xUseAntiAliase->set_sensitive(bEnable);
+ m_xUseAntiAliaseImg->set_visible(!bEnable);
m_xUseAntiAliase->save_state();
}
@@ -979,11 +1096,13 @@ void OfaViewTabPage::UpdateHardwareAccelStatus()
{
m_xUseHardwareAccell->set_active(pCanvasSettings->IsHardwareAccelerationEnabled());
m_xUseHardwareAccell->set_sensitive(!pCanvasSettings->IsHardwareAccelerationRO());
+ m_xUseHardwareAccellImg->set_visible(pCanvasSettings->IsHardwareAccelerationRO());
}
else
{
m_xUseHardwareAccell->set_active(false);
m_xUseHardwareAccell->set_sensitive(false);
+ m_xUseHardwareAccellImg->set_visible(true);
}
#if HAVE_FEATURE_SKIA
m_xUseHardwareAccell->set_sensitive(!m_xUseSkia->get_active());
@@ -1000,11 +1119,11 @@ struct LanguageConfig_Impl
static bool bLanguageCurrentDoc_Impl = false;
// some things we'll need...
-constexpr OUStringLiteral sAccessSrvc = u"com.sun.star.configuration.ConfigurationAccess";
+constexpr OUString sAccessSrvc = u"com.sun.star.configuration.ConfigurationAccess"_ustr;
constexpr OUStringLiteral sAccessUpdSrvc = u"com.sun.star.configuration.ConfigurationUpdateAccess";
-constexpr OUStringLiteral sInstalledLocalesPath = u"org.openoffice.Setup/Office/InstalledLocales";
-constexpr OUStringLiteral sUserLocalePath = u"org.openoffice.Office.Linguistic/General";
-constexpr OUStringLiteral sUserLocaleKey = u"UILocale";
+constexpr OUString sInstalledLocalesPath = u"org.openoffice.Setup/Office/InstalledLocales"_ustr;
+constexpr OUString sUserLocalePath = u"org.openoffice.Office.Linguistic/General"_ustr;
+constexpr OUString sUserLocaleKey = u"UILocale"_ustr;
static Sequence< OUString > seqInstalledLanguages;
static OUString lcl_getDatePatternsConfigString( const LocaleDataWrapper& rLocaleWrapper )
@@ -1015,10 +1134,9 @@ static OUString lcl_getDatePatternsConfigString( const LocaleDataWrapper& rLocal
SAL_WARN_IF( !nPatterns, "cui.options", "No date acceptance pattern");
if (nPatterns)
{
- const OUString* pPatterns = aDateAcceptancePatterns.getConstArray();
- aBuf.append( pPatterns[0]);
+ aBuf.append(aDateAcceptancePatterns[0]);
for (sal_Int32 i=1; i < nPatterns; ++i)
- aBuf.append(';').append( pPatterns[i]);
+ aBuf.append(";" + aDateAcceptancePatterns[i]);
}
return aBuf.makeStringAndClear();
}
@@ -1034,25 +1152,34 @@ namespace
}
OfaLanguagesTabPage::OfaLanguagesTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optlanguagespage.ui", "OptLanguagesPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/optlanguagespage.ui"_ustr, u"OptLanguagesPage"_ustr, &rSet)
, pLangConfig(new LanguageConfig_Impl)
, m_bDatePatternsValid(false)
- , m_xUserInterfaceLB(m_xBuilder->weld_combo_box("userinterface"))
- , m_xLocaleSettingFT(m_xBuilder->weld_label("localesettingFT"))
- , m_xLocaleSettingLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("localesetting")))
- , m_xDecimalSeparatorCB(m_xBuilder->weld_check_button("decimalseparator"))
- , m_xCurrencyFT(m_xBuilder->weld_label("defaultcurrency"))
- , m_xCurrencyLB(m_xBuilder->weld_combo_box("currencylb"))
- , m_xDatePatternsFT(m_xBuilder->weld_label("dataaccpatterns"))
- , m_xDatePatternsED(m_xBuilder->weld_entry("datepatterns"))
- , m_xWesternLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("westernlanguage")))
- , m_xWesternLanguageFT(m_xBuilder->weld_label("western"))
- , m_xAsianLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("asianlanguage")))
- , m_xComplexLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("complexlanguage")))
- , m_xCurrentDocCB(m_xBuilder->weld_check_button("currentdoc"))
- , m_xAsianSupportCB(m_xBuilder->weld_check_button("asiansupport"))
- , m_xCTLSupportCB(m_xBuilder->weld_check_button("ctlsupport"))
- , m_xIgnoreLanguageChangeCB(m_xBuilder->weld_check_button("ignorelanguagechange"))
+ , m_xUserInterfaceLB(m_xBuilder->weld_combo_box(u"userinterface"_ustr))
+ , m_xLocaleSettingFT(m_xBuilder->weld_label(u"localesettingFT"_ustr))
+ , m_xLocaleSettingLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"localesetting"_ustr)))
+ , m_xLocaleSettingImg(m_xBuilder->weld_widget(u"locklocalesetting"_ustr))
+ , m_xDecimalSeparatorFT(m_xBuilder->weld_label(u"label6"_ustr))
+ , m_xDecimalSeparatorCB(m_xBuilder->weld_check_button(u"decimalseparator"_ustr))
+ , m_xDecimalSeparatorImg(m_xBuilder->weld_widget(u"lockdecimalseparator"_ustr))
+ , m_xCurrencyFT(m_xBuilder->weld_label(u"defaultcurrency"_ustr))
+ , m_xCurrencyLB(m_xBuilder->weld_combo_box(u"currencylb"_ustr))
+ , m_xCurrencyImg(m_xBuilder->weld_widget(u"lockcurrencylb"_ustr))
+ , m_xDatePatternsFT(m_xBuilder->weld_label(u"dataaccpatterns"_ustr))
+ , m_xDatePatternsED(m_xBuilder->weld_entry(u"datepatterns"_ustr))
+ , m_xDatePatternsImg(m_xBuilder->weld_widget(u"lockdatepatterns"_ustr))
+ , m_xWesternLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"westernlanguage"_ustr)))
+ , m_xWesternLanguageFT(m_xBuilder->weld_label(u"western"_ustr))
+ , m_xWesternLanguageImg(m_xBuilder->weld_widget(u"lockwesternlanguage"_ustr))
+ , m_xAsianLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"asianlanguage"_ustr)))
+ , m_xComplexLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"complexlanguage"_ustr)))
+ , m_xCurrentDocCB(m_xBuilder->weld_check_button(u"currentdoc"_ustr))
+ , m_xAsianSupportCB(m_xBuilder->weld_check_button(u"asiansupport"_ustr))
+ , m_xAsianSupportImg(m_xBuilder->weld_widget(u"lockasiansupport"_ustr))
+ , m_xCTLSupportCB(m_xBuilder->weld_check_button(u"ctlsupport"_ustr))
+ , m_xCTLSupportImg(m_xBuilder->weld_widget(u"lockctlsupport"_ustr))
+ , m_xIgnoreLanguageChangeCB(m_xBuilder->weld_check_button(u"ignorelanguagechange"_ustr))
+ , m_xIgnoreLanguageChangeImg(m_xBuilder->weld_widget(u"lockignorelanguagechange"_ustr))
{
// tdf#125483 save original default label
m_sDecimalSeparatorLabel = m_xDecimalSeparatorCB->get_label();
@@ -1064,15 +1191,15 @@ OfaLanguagesTabPage::OfaLanguagesTabPage(weld::Container* pPage, weld::DialogCon
" - " +
SvtLanguageTable::GetLanguageString(GetInstalledLocaleForSystemUILanguage().getLanguageType());
- m_xUserInterfaceLB->append("0", aUILang);
- m_xUserInterfaceLB->append_separator("");
+ m_xUserInterfaceLB->append(u"0"_ustr, aUILang);
+ m_xUserInterfaceLB->append_separator(u""_ustr);
try
{
Reference< XMultiServiceFactory > theConfigProvider(
css::configuration::theDefaultProvider::get(
comphelper::getProcessComponentContext()));
// find out which locales are currently installed and add them to the listbox
- Sequence< Any > theArgs{ Any(NamedValue("nodepath", Any(OUString(sInstalledLocalesPath)))) };
+ Sequence< Any > theArgs{ Any(NamedValue(u"nodepath"_ustr, Any(sInstalledLocalesPath))) };
Reference< XNameAccess > theNameAccess(
theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs ), UNO_QUERY_THROW );
seqInstalledLanguages = theNameAccess->getElementNames();
@@ -1091,7 +1218,7 @@ OfaLanguagesTabPage::OfaLanguagesTabPage(weld::Container* pPage, weld::DialogCon
std::sort(aUILanguages.begin(), aUILanguages.end(), [](const auto& l1, const auto& l2) {
static const auto aSorter = comphelper::string::NaturalStringSorter(
comphelper::getProcessComponentContext(),
- Application::GetSettings().GetLanguageTag().getLocale());
+ Application::GetSettings().GetUILanguageTag().getLocale());
return aSorter.compare(l1.second, l2.second) < 0;
});
@@ -1104,7 +1231,7 @@ OfaLanguagesTabPage::OfaLanguagesTabPage(weld::Container* pPage, weld::DialogCon
m_xUserInterfaceLB->set_active(0);
// find out whether the user has a specific locale specified
- Sequence< Any > theArgs2{ Any(NamedValue("nodepath", Any(OUString(sUserLocalePath)))) };
+ Sequence< Any > theArgs2{ Any(NamedValue(u"nodepath"_ustr, Any(sUserLocalePath))) };
theNameAccess.set(
theConfigProvider->createInstanceWithArguments(sAccessSrvc, theArgs2 ), UNO_QUERY_THROW );
if (theNameAccess->hasByName(sUserLocaleKey))
@@ -1148,12 +1275,12 @@ OfaLanguagesTabPage::OfaLanguagesTabPage(weld::Container* pPage, weld::DialogCon
const NfCurrencyEntry& rCurr = SvNumberFormatter::GetCurrencyEntry( LANGUAGE_SYSTEM );
// insert SYSTEM entry
OUString aDefaultCurr = m_sSystemDefaultString + " - " + rCurr.GetBankSymbol();
- m_xCurrencyLB->append("default", aDefaultCurr);
- m_xCurrencyLB->append_separator("");
+ m_xCurrencyLB->append(u"default"_ustr, aDefaultCurr);
+ m_xCurrencyLB->append_separator(u""_ustr);
- assert(m_xCurrencyLB->find_id("default") != -1);
+ assert(m_xCurrencyLB->find_id(u"default"_ustr) != -1);
// all currencies
- OUString aTwoSpace( " " );
+ OUString aTwoSpace( u" "_ustr );
sal_uInt16 nCurrCount = rCurrTab.size();
std::vector< const NfCurrencyEntry* > aCurrencies;
// first entry is SYSTEM, skip it
@@ -1174,7 +1301,7 @@ OfaLanguagesTabPage::OfaLanguagesTabPage(weld::Container* pPage, weld::DialogCon
aStr_ = ApplyLreOrRleEmbedding( aStr_ ) +
aTwoSpace +
ApplyLreOrRleEmbedding( SvtLanguageTable::GetLanguageString( v->GetLanguage() ) );
- m_xCurrencyLB->append(OUString::number(reinterpret_cast<sal_Int64>(v)), aStr_);
+ m_xCurrencyLB->append(weld::toId(v), aStr_);
}
m_xCurrencyLB->set_active(0);
@@ -1189,15 +1316,17 @@ OfaLanguagesTabPage::OfaLanguagesTabPage(weld::Container* pPage, weld::DialogCon
m_bOldAsian = SvtCJKOptions::IsAnyEnabled();
m_xAsianSupportCB->set_active(m_bOldAsian);
m_xAsianSupportCB->save_state();
- bool bReadonly = SvtCJKOptions::IsReadOnly(SvtCJKOptions::E_ALL);
+ bool bReadonly = SvtCJKOptions::IsAnyReadOnly();
m_xAsianSupportCB->set_sensitive(!bReadonly);
+ m_xAsianSupportImg->set_visible(bReadonly);
SupportHdl(*m_xAsianSupportCB);
- m_bOldCtl = pLangConfig->aCTLLanguageOptions.IsCTLFontEnabled();
+ m_bOldCtl = SvtCTLOptions::IsCTLFontEnabled();
m_xCTLSupportCB->set_active(m_bOldCtl);
m_xCTLSupportCB->save_state();
bReadonly = pLangConfig->aCTLLanguageOptions.IsReadOnly(SvtCTLOptions::E_CTLFONT);
m_xCTLSupportCB->set_sensitive(!bReadonly);
+ m_xCTLSupportImg->set_visible(bReadonly);
SupportHdl(*m_xCTLSupportCB);
m_xIgnoreLanguageChangeCB->set_active( pLangConfig->aSysLocaleOptions.IsIgnoreLanguageChange() );
@@ -1230,6 +1359,31 @@ static void lcl_Update(std::unique_ptr<SfxVoidItem> pInvalidItems[], std::unique
}
}
+OUString OfaLanguagesTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[]
+ = { u"label1"_ustr, u"label4"_ustr, u"label7"_ustr, u"localesettingFT"_ustr, u"defaultcurrency"_ustr,
+ u"label6"_ustr, u"dataaccpatterns"_ustr, u"label2"_ustr, u"western"_ustr, u"label3"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"decimalseparator"_ustr, u"asiansupport"_ustr, u"ctlsupport"_ustr, u"currentdoc"_ustr,
+ u"ignorelanguagechange"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet )
{
// lock configuration broadcasters so that we can coordinate the notifications
@@ -1273,7 +1427,7 @@ bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet )
Reference< XMultiServiceFactory > theConfigProvider(
css::configuration::theDefaultProvider::get(
comphelper::getProcessComponentContext()));
- Sequence< Any > theArgs{ Any(NamedValue("nodepath", Any(OUString(sUserLocalePath)))) };
+ Sequence< Any > theArgs{ Any(NamedValue(u"nodepath"_ustr, Any(sUserLocalePath))) };
Reference< XPropertySet >xProp(
theConfigProvider->createInstanceWithArguments(sAccessUpdSrvc, theArgs ), UNO_QUERY_THROW );
if ( m_sUserLocaleValue != aLangString)
@@ -1329,8 +1483,10 @@ bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet )
SvtScriptType nNewType = SvtLanguageOptions::GetScriptTypeOfLanguage( eNewLocale );
bool bNewCJK = bool( nNewType & SvtScriptType::ASIAN );
- SvtCompatibilityOptions aCompatOpts;
- aCompatOpts.SetDefault( SvtCompatibilityEntry::Index::ExpandWordSpace, !bNewCJK );
+ auto batch = comphelper::ConfigurationChanges::create();
+ SvtCompatibilityDefault aCompatOpts(batch);
+ aCompatOpts.set(u"ExpandWordSpace"_ustr, !bNewCJK);
+ batch->commit();
}
if(m_xDecimalSeparatorCB->get_state_changed_from_saved())
@@ -1342,7 +1498,7 @@ bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet )
// Configured currency, for example, USD-en-US or EUR-de-DE, or empty for locale default.
OUString sOldCurr = pLangConfig->aSysLocaleOptions.GetCurrencyConfigString();
OUString sId = m_xCurrencyLB->get_active_id();
- const NfCurrencyEntry* pCurr = sId == "default" ? nullptr : reinterpret_cast<const NfCurrencyEntry*>(sId.toInt64());
+ const NfCurrencyEntry* pCurr = sId == "default" ? nullptr : weld::fromId<const NfCurrencyEntry*>(sId);
OUString sNewCurr;
if ( pCurr )
sNewCurr = SvtSysLocaleOptions::CreateCurrencyConfigString(
@@ -1371,7 +1527,7 @@ bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet )
Any aValue;
Locale aLocale = LanguageTag::convertToLocale( eSelectLang, false);
aValue <<= aLocale;
- pLangConfig->aLinguConfig.SetProperty( "DefaultLocale", aValue );
+ pLangConfig->aLinguConfig.SetProperty( u"DefaultLocale", aValue );
if (xLinguProp.is())
xLinguProp->setDefaultLocale( aLocale );
}
@@ -1390,7 +1546,7 @@ bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet )
Any aValue;
Locale aLocale = LanguageTag::convertToLocale( eSelectLang, false);
aValue <<= aLocale;
- pLangConfig->aLinguConfig.SetProperty( "DefaultLocale_CJK", aValue );
+ pLangConfig->aLinguConfig.SetProperty( u"DefaultLocale_CJK", aValue );
if (xLinguProp.is())
xLinguProp->setDefaultLocale_CJK( aLocale );
}
@@ -1409,7 +1565,7 @@ bool OfaLanguagesTabPage::FillItemSet( SfxItemSet* rSet )
Any aValue;
Locale aLocale = LanguageTag::convertToLocale( eSelectLang, false);
aValue <<= aLocale;
- pLangConfig->aLinguConfig.SetProperty( "DefaultLocale_CTL", aValue );
+ pLangConfig->aLinguConfig.SetProperty( u"DefaultLocale_CTL", aValue );
if (xLinguProp.is())
xLinguProp->setDefaultLocale_CTL( aLocale );
}
@@ -1478,12 +1634,20 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet* rSet )
bool bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::EOption::Locale);
m_xLocaleSettingLB->set_sensitive(!bReadonly);
m_xLocaleSettingFT->set_sensitive(!bReadonly);
+ m_xLocaleSettingImg->set_visible(bReadonly);
m_xDecimalSeparatorCB->set_active( pLangConfig->aSysLocaleOptions.IsDecimalSeparatorAsLocale());
+ bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::EOption::DecimalSeparator);
+ m_xDecimalSeparatorCB->set_sensitive(!bReadonly);
+ m_xDecimalSeparatorFT->set_sensitive(!bReadonly);
+ m_xDecimalSeparatorImg->set_visible(bReadonly);
m_xDecimalSeparatorCB->save_state();
m_xIgnoreLanguageChangeCB->set_active( pLangConfig->aSysLocaleOptions.IsIgnoreLanguageChange());
+ bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::EOption::IgnoreLanguageChange);
+ m_xIgnoreLanguageChangeCB->set_sensitive(!bReadonly);
+ m_xIgnoreLanguageChangeImg->set_visible(bReadonly);
m_xIgnoreLanguageChangeCB->save_state();
// let LocaleSettingHdl enable/disable checkboxes for CJK/CTL support
@@ -1502,11 +1666,12 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet* rSet )
pCurr = SvNumberFormatter::GetCurrencyEntry( aAbbrev, eLang );
}
// if pCurr==nullptr the SYSTEM entry is selected
- OUString sId = !pCurr ? OUString("default") : OUString::number(reinterpret_cast<sal_Int64>(pCurr));
+ OUString sId = !pCurr ? u"default"_ustr : weld::toId(pCurr);
m_xCurrencyLB->set_active_id(sId);
bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::EOption::Currency);
m_xCurrencyLB->set_sensitive(!bReadonly);
m_xCurrencyFT->set_sensitive(!bReadonly);
+ m_xCurrencyImg->set_visible(bReadonly);
// date acceptance patterns
OUString aDatePatternsString = pLangConfig->aSysLocaleOptions.GetDatePatternsConfigString();
@@ -1514,13 +1679,21 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet* rSet )
{
const LocaleDataWrapper& rLocaleWrapper( Application::GetSettings().GetLocaleDataWrapper() );
aDatePatternsString = lcl_getDatePatternsConfigString( rLocaleWrapper);
+ // Let's assume patterns are valid at this point.
+ m_bDatePatternsValid = true;
+ }
+ else
+ {
+ bool bModified = false;
+ m_bDatePatternsValid = validateDatePatterns( bModified, aDatePatternsString);
}
- // Let's assume patterns are valid at this point.
- m_bDatePatternsValid = true;
m_xDatePatternsED->set_text(aDatePatternsString);
+ m_xDatePatternsED->set_message_type( m_bDatePatternsValid ?
+ weld::EntryMessageType::Normal : weld::EntryMessageType::Error);
bReadonly = pLangConfig->aSysLocaleOptions.IsReadOnly(SvtSysLocaleOptions::EOption::DatePatterns);
m_xDatePatternsED->set_sensitive(!bReadonly);
m_xDatePatternsFT->set_sensitive(!bReadonly);
+ m_xDatePatternsImg->set_visible(bReadonly);
m_xDatePatternsED->save_value();
//western/CJK/CLK language
@@ -1536,18 +1709,18 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet* rSet )
Any aCTLLang;
try
{
- aWestLang = pLangConfig->aLinguConfig.GetProperty("DefaultLocale");
+ aWestLang = pLangConfig->aLinguConfig.GetProperty(u"DefaultLocale");
Locale aLocale;
aWestLang >>= aLocale;
eCurLang = LanguageTag::convertToLanguageType( aLocale, false);
- aCJKLang = pLangConfig->aLinguConfig.GetProperty("DefaultLocale_CJK");
+ aCJKLang = pLangConfig->aLinguConfig.GetProperty(u"DefaultLocale_CJK");
aLocale = Locale();
aCJKLang >>= aLocale;
eCurLangCJK = LanguageTag::convertToLanguageType( aLocale, false);
- aCTLLang = pLangConfig->aLinguConfig.GetProperty("DefaultLocale_CTL");
+ aCTLLang = pLangConfig->aLinguConfig.GetProperty(u"DefaultLocale_CTL");
aLocale = Locale();
aCTLLang >>= aLocale;
eCurLangCTL = LanguageTag::convertToLanguageType( aLocale, false);
@@ -1560,24 +1733,23 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet* rSet )
{
m_xCurrentDocCB->set_sensitive(true);
m_xCurrentDocCB->set_active(bLanguageCurrentDoc_Impl);
- const SfxPoolItem* pLang;
- if( SfxItemState::SET == rSet->GetItemState(SID_ATTR_LANGUAGE, false, &pLang))
+ if( const SvxLanguageItem* pLangItem = rSet->GetItemIfSet(SID_ATTR_LANGUAGE, false))
{
- LanguageType eTempCurLang = static_cast<const SvxLanguageItem*>(pLang)->GetValue();
+ LanguageType eTempCurLang = pLangItem->GetValue();
if (MsLangId::resolveSystemLanguageByScriptType(eCurLang, css::i18n::ScriptType::LATIN) != eTempCurLang)
eCurLang = eTempCurLang;
}
- if( SfxItemState::SET == rSet->GetItemState(SID_ATTR_CHAR_CJK_LANGUAGE, false, &pLang))
+ if( const SvxLanguageItem* pLang = rSet->GetItemIfSet(SID_ATTR_CHAR_CJK_LANGUAGE, false))
{
- LanguageType eTempCurLang = static_cast<const SvxLanguageItem*>(pLang)->GetValue();
+ LanguageType eTempCurLang = pLang->GetValue();
if (MsLangId::resolveSystemLanguageByScriptType(eCurLangCJK, css::i18n::ScriptType::ASIAN) != eTempCurLang)
eCurLangCJK = eTempCurLang;
}
- if( SfxItemState::SET == rSet->GetItemState(SID_ATTR_CHAR_CTL_LANGUAGE, false, &pLang))
+ if( const SvxLanguageItem* pLang = rSet->GetItemIfSet(SID_ATTR_CHAR_CTL_LANGUAGE, false))
{
- LanguageType eTempCurLang = static_cast<const SvxLanguageItem*>(pLang)->GetValue();
+ LanguageType eTempCurLang = pLang->GetValue();
if (MsLangId::resolveSystemLanguageByScriptType(eCurLangCTL, css::i18n::ScriptType::COMPLEX) != eTempCurLang)
eCurLangCTL = eTempCurLang;
}
@@ -1603,14 +1775,15 @@ void OfaLanguagesTabPage::Reset( const SfxItemSet* rSet )
m_xIgnoreLanguageChangeCB->save_state();
m_xCurrentDocCB->save_state();
- bool bEnable = !pLangConfig->aLinguConfig.IsReadOnly( "DefaultLocale" );
+ bool bEnable = !pLangConfig->aLinguConfig.IsReadOnly( u"DefaultLocale" );
m_xWesternLanguageFT->set_sensitive( bEnable );
m_xWesternLanguageLB->set_sensitive( bEnable );
+ m_xWesternLanguageImg->set_visible( !bEnable );
// check the box "For the current document only"
// set the focus to the Western Language box
- const SfxPoolItem* pLang = nullptr;
- if ( SfxItemState::SET == rSet->GetItemState(SID_SET_DOCUMENT_LANGUAGE, false, &pLang ) && static_cast<const SfxBoolItem*>(pLang)->GetValue() )
+ const SfxBoolItem* pLang = rSet->GetItemIfSet(SID_SET_DOCUMENT_LANGUAGE, false );
+ if ( pLang && pLang->GetValue() )
{
m_xWesternLanguageLB->grab_focus();
m_xCurrentDocCB->set_sensitive(true);
@@ -1623,7 +1796,7 @@ IMPL_LINK(OfaLanguagesTabPage, SupportHdl, weld::Toggleable&, rBox, void)
bool bCheck = rBox.get_active();
if ( m_xAsianSupportCB.get() == &rBox )
{
- bool bReadonly = pLangConfig->aLinguConfig.IsReadOnly("DefaultLocale_CJK");
+ bool bReadonly = pLangConfig->aLinguConfig.IsReadOnly(u"DefaultLocale_CJK");
bCheck = ( bCheck && !bReadonly );
m_xAsianLanguageLB->set_sensitive( bCheck );
if (rBox.get_sensitive())
@@ -1631,7 +1804,7 @@ IMPL_LINK(OfaLanguagesTabPage, SupportHdl, weld::Toggleable&, rBox, void)
}
else if ( m_xCTLSupportCB.get() == &rBox )
{
- bool bReadonly = pLangConfig->aLinguConfig.IsReadOnly("DefaultLocale_CTL");
+ bool bReadonly = pLangConfig->aLinguConfig.IsReadOnly(u"DefaultLocale_CTL");
bCheck = ( bCheck && !bReadonly );
m_xComplexLanguageLB->set_sensitive( bCheck );
if (rBox.get_sensitive())
@@ -1669,7 +1842,7 @@ IMPL_LINK_NOARG(OfaLanguagesTabPage, LocaleSettingHdl, weld::ComboBox&, void)
}
// second check if CJK must be enabled
// #103299# - if CJK support is not readonly
- if(!SvtCJKOptions::IsReadOnly(SvtCJKOptions::E_ALL))
+ if(!SvtCJKOptions::IsAnyReadOnly())
{
bool bIsCJKFixed = bool(nType & SvtScriptType::ASIAN);
lcl_checkLanguageCheckBox(*m_xAsianSupportCB, bIsCJKFixed, m_bOldAsian);
@@ -1678,7 +1851,7 @@ IMPL_LINK_NOARG(OfaLanguagesTabPage, LocaleSettingHdl, weld::ComboBox&, void)
const NfCurrencyEntry& rCurr = SvNumberFormatter::GetCurrencyEntry(
(eLang == LANGUAGE_USER_SYSTEM_CONFIG) ? MsLangId::getConfiguredSystemLanguage() : eLang);
- const OUString aDefaultID = "default";
+ constexpr OUString aDefaultID = u"default"_ustr;
// Update the "Default ..." currency.
m_xCurrencyLB->remove_id(aDefaultID);
OUString aDefaultCurr = m_sSystemDefaultString + " - " + rCurr.GetBankSymbol();
@@ -1687,8 +1860,7 @@ IMPL_LINK_NOARG(OfaLanguagesTabPage, LocaleSettingHdl, weld::ComboBox&, void)
m_xCurrencyLB->set_active_text(aDefaultCurr);
// obtain corresponding locale data
- LanguageTag aLanguageTag( eLang);
- LocaleDataWrapper aLocaleWrapper( aLanguageTag );
+ LocaleDataWrapper aLocaleWrapper(( LanguageTag(eLang) ));
// update the decimal separator key of the related CheckBox
OUString sTempLabel(m_sDecimalSeparatorLabel);
@@ -1699,20 +1871,39 @@ IMPL_LINK_NOARG(OfaLanguagesTabPage, LocaleSettingHdl, weld::ComboBox&, void)
OUString aDatePatternsString = lcl_getDatePatternsConfigString( aLocaleWrapper);
m_bDatePatternsValid = true;
m_xDatePatternsED->set_text( aDatePatternsString);
+ m_xDatePatternsED->set_message_type(weld::EntryMessageType::Normal);
}
IMPL_LINK( OfaLanguagesTabPage, DatePatternsHdl, weld::Entry&, rEd, void )
{
- const OUString aPatterns(rEd.get_text());
- OUStringBuffer aBuf( aPatterns);
- sal_Int32 nChar = 0;
- bool bValid = true;
+ OUString aPatterns(rEd.get_text());
bool bModified = false;
- if (!aPatterns.isEmpty())
+ const bool bValid = validateDatePatterns( bModified, aPatterns);
+ if (bModified)
{
+ // gtk3 keeps the cursor position on equal length set_text() but at
+ // least the 'gen' backend does not and resets to 0.
+ const int nCursorPos = rEd.get_position();
+ rEd.set_text(aPatterns);
+ rEd.set_position(nCursorPos);
+ }
+ if (bValid)
+ rEd.set_message_type(weld::EntryMessageType::Normal);
+ else
+ rEd.set_message_type(weld::EntryMessageType::Error);
+ m_bDatePatternsValid = bValid;
+}
+
+bool OfaLanguagesTabPage::validateDatePatterns( bool& rbModified, OUString& rPatterns )
+{
+ bool bValid = true;
+ if (!rPatterns.isEmpty())
+ {
+ OUStringBuffer aBuf( rPatterns);
+ sal_Int32 nChar = 0;
for (sal_Int32 nIndex=0; nIndex >= 0 && bValid; ++nChar)
{
- const OUString aPat( aPatterns.getToken( 0, ';', nIndex));
+ const OUString aPat( rPatterns.getToken( 0, ';', nIndex));
if (aPat.isEmpty() && nIndex < 0)
{
// Indicating failure when about to append a pattern is too
@@ -1727,6 +1918,18 @@ IMPL_LINK( OfaLanguagesTabPage, DatePatternsHdl, weld::Entry&, rEd, void )
bool bY, bM, bD;
bY = bM = bD = false;
bool bSep = true;
+ if (aPat.getLength() == 3)
+ {
+ // Disallow a pattern that would match a numeric input with
+ // decimal separator, like M.D
+ const LanguageType eLang = m_xLocaleSettingLB->get_active_id();
+ const LocaleDataWrapper aLocaleWrapper(( LanguageTag(eLang)));
+ if ( aPat[1] == aLocaleWrapper.getNumDecimalSep().toChar()
+ || aPat[1] == aLocaleWrapper.getNumDecimalSepAlt().toChar())
+ {
+ bValid = false;
+ }
+ }
for (sal_Int32 i = 0; i < aPat.getLength() && bValid; /*nop*/)
{
const sal_Int32 j = i;
@@ -1741,7 +1944,7 @@ IMPL_LINK( OfaLanguagesTabPage, DatePatternsHdl, weld::Entry&, rEd, void )
else if (c == 'y')
{
aBuf[nChar] = 'Y';
- bModified = true;
+ rbModified = true;
}
bY = true;
bSep = false;
@@ -1753,7 +1956,7 @@ IMPL_LINK( OfaLanguagesTabPage, DatePatternsHdl, weld::Entry&, rEd, void )
else if (c == 'm')
{
aBuf[nChar] = 'M';
- bModified = true;
+ rbModified = true;
}
bM = true;
bSep = false;
@@ -1765,7 +1968,7 @@ IMPL_LINK( OfaLanguagesTabPage, DatePatternsHdl, weld::Entry&, rEd, void )
else if (c == 'd')
{
aBuf[nChar] = 'D';
- bModified = true;
+ rbModified = true;
}
bD = true;
bSep = false;
@@ -1783,20 +1986,10 @@ IMPL_LINK( OfaLanguagesTabPage, DatePatternsHdl, weld::Entry&, rEd, void )
bValid &= (bY || bM || bD);
}
}
+ if (rbModified)
+ rPatterns = aBuf.makeStringAndClear();
}
- if (bModified)
- {
- // gtk3 keeps the cursor position on equal length set_text() but at
- // least the 'gen' backend does not and resets to 0.
- const int nCursorPos = rEd.get_position();
- rEd.set_text(aBuf.makeStringAndClear());
- rEd.set_position(nCursorPos);
- }
- if (bValid)
- rEd.set_message_type(weld::EntryMessageType::Normal);
- else
- rEd.set_message_type(weld::EntryMessageType::Error);
- m_bDatePatternsValid = bValid;
+ return bValid;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx
index 75f29c6c5a34..2c62e569ea75 100644
--- a/cui/source/options/optgdlg.hxx
+++ b/cui/source/options/optgdlg.hxx
@@ -18,6 +18,7 @@
*/
#pragma once
#include <memory>
+#include <config_features.h>
#include <sfx2/tabdlg.hxx>
#include <svx/langbox.hxx>
@@ -33,24 +34,34 @@ private:
OUString m_aStrDateInfo;
std::unique_ptr<weld::CheckButton> m_xExtHelpCB;
+ std::unique_ptr<weld::Widget> m_xExtHelpImg;
std::unique_ptr<weld::CheckButton> m_xPopUpNoHelpCB;
+ std::unique_ptr<weld::Widget> m_xPopUpNoHelpImg;
std::unique_ptr<weld::CheckButton> m_xShowTipOfTheDay;
+ std::unique_ptr<weld::Widget> m_xShowTipOfTheDayImg;
std::unique_ptr<weld::Widget> m_xFileDlgFrame;
std::unique_ptr<weld::Widget> m_xFileDlgROImage;
std::unique_ptr<weld::CheckButton> m_xFileDlgCB;
- std::unique_ptr<weld::CheckButton> m_xPrintDlgCB;
std::unique_ptr<weld::CheckButton> m_xDocStatusCB;
+ std::unique_ptr<weld::Widget> m_xDocStatusImg;
std::unique_ptr<weld::Widget> m_xYearFrame;
+ std::unique_ptr<weld::Label> m_xYearLabel;
std::unique_ptr<weld::SpinButton> m_xYearValueField;
std::unique_ptr<weld::Label> m_xToYearFT;
+ std::unique_ptr<weld::Widget> m_xYearFrameImg;
+#if HAVE_FEATURE_BREAKPAD
+ std::unique_ptr<weld::Widget> m_xPrivacyFrame;
std::unique_ptr<weld::CheckButton> m_xCrashReport;
+ std::unique_ptr<weld::Widget> m_xCrashReportImg;
+#endif
+#if defined(_WIN32)
std::unique_ptr<weld::Widget> m_xQuickStarterFrame;
- std::unique_ptr<weld::Label> m_xHelpImproveLabel;
std::unique_ptr<weld::CheckButton> m_xQuickLaunchCB;
-#if defined(_WIN32)
+ std::unique_ptr<weld::Widget> m_xQuickLaunchImg;
std::unique_ptr<weld::Widget> m_xFileAssocFrame;
std::unique_ptr<weld::Button> m_xFileAssocBtn;
std::unique_ptr<weld::CheckButton> m_xPerformFileExtCheck;
+ std::unique_ptr<weld::Widget> m_xPerformFileExtImg;
#endif
DECL_LINK(TwoFigureHdl, weld::SpinButton&, void);
@@ -66,12 +77,12 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
-class SvtTabAppearanceCfg;
-
class OfaViewTabPage : public SfxTabPage
{
private:
@@ -80,47 +91,66 @@ private:
sal_Int32 nNotebookbarSizeLB_InitialSelection;
sal_Int32 nStyleLB_InitialSelection;
- std::unique_ptr<SvtTabAppearanceCfg> pAppearanceCfg;
std::unique_ptr<CanvasSettings> pCanvasSettings;
std::vector<vcl::IconThemeInfo> mInstalledIconThemes;
+ std::unique_ptr<weld::Label> m_xIconSizeLabel;
std::unique_ptr<weld::ComboBox> m_xIconSizeLB;
+ std::unique_ptr<weld::Widget> m_xIconSizeImg;
+ std::unique_ptr<weld::Label> m_xSidebarIconSizeLabel;
std::unique_ptr<weld::ComboBox> m_xSidebarIconSizeLB;
+ std::unique_ptr<weld::Widget> m_xSidebarIconSizeImg;
+ std::unique_ptr<weld::Label> m_xNotebookbarIconSizeLabel;
std::unique_ptr<weld::ComboBox> m_xNotebookbarIconSizeLB;
+ std::unique_ptr<weld::Widget> m_xNotebookbarIconSizeImg;
+ std::unique_ptr<weld::Widget> m_xDarkModeFrame;
+ std::unique_ptr<weld::Label> m_xAppearanceStyleLabel;
+ std::unique_ptr<weld::ComboBox> m_xAppearanceStyleLB;
+ std::unique_ptr<weld::Widget> m_xAppearanceStyleImg;
+ std::unique_ptr<weld::Label> m_xIconStyleLabel;
std::unique_ptr<weld::ComboBox> m_xIconStyleLB;
+ std::unique_ptr<weld::Widget> m_xIconStyleImg;
std::unique_ptr<weld::CheckButton> m_xFontAntiAliasing;
+ std::unique_ptr<weld::Widget> m_xFontAntiAliasingImg;
std::unique_ptr<weld::Label> m_xAAPointLimitLabel;
+ std::unique_ptr<weld::Widget> m_xAAPointLimitLabelImg;
std::unique_ptr<weld::MetricSpinButton> m_xAAPointLimit;
- std::unique_ptr<weld::Widget> m_xMenuIconBox;
- std::unique_ptr<weld::ComboBox> m_xMenuIconsLB;
-
- std::unique_ptr<weld::ComboBox> m_xContextMenuShortcutsLB;
-
std::unique_ptr<weld::CheckButton> m_xFontShowCB;
+ std::unique_ptr<weld::Widget> m_xFontShowImg;
std::unique_ptr<weld::CheckButton> m_xUseHardwareAccell;
+ std::unique_ptr<weld::Widget> m_xUseHardwareAccellImg;
std::unique_ptr<weld::CheckButton> m_xUseAntiAliase;
+ std::unique_ptr<weld::Widget> m_xUseAntiAliaseImg;
std::unique_ptr<weld::CheckButton> m_xUseSkia;
+ std::unique_ptr<weld::Widget> m_xUseSkiaImg;
std::unique_ptr<weld::CheckButton> m_xForceSkiaRaster;
+ std::unique_ptr<weld::Widget> m_xForceSkiaRasterImg;
std::unique_ptr<weld::Label> m_xSkiaStatusEnabled;
std::unique_ptr<weld::Label> m_xSkiaStatusDisabled;
+ std::unique_ptr<weld::Button> m_xSkiaLog;
- std::unique_ptr<weld::ComboBox> m_xMousePosLB;
+ std::unique_ptr<weld::Label> m_xMouseMiddleLabel;
std::unique_ptr<weld::ComboBox> m_xMouseMiddleLB;
+ std::unique_ptr<weld::Widget> m_xMouseMiddleImg;
std::unique_ptr<weld::Button> m_xMoreIcons;
std::unique_ptr<weld::Button> m_xRunGPTests;
+ OUString m_sAutoStr;
+
DECL_LINK(OnAntialiasingToggled, weld::Toggleable&, void);
DECL_LINK(OnUseSkiaToggled, weld::Toggleable&, void);
+ DECL_LINK(OnCopySkiaLog, weld::Button&, void);
DECL_STATIC_LINK(OfaViewTabPage, OnMoreIconsClick, weld::Button&, void);
DECL_LINK(OnRunGPTestClick, weld::Button&, void);
void UpdateSkiaStatus();
void HideSkiaWidgets();
void UpdateHardwareAccelStatus();
+ void UpdateIconThemes();
public:
OfaViewTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
@@ -128,6 +158,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
@@ -149,31 +181,44 @@ class OfaLanguagesTabPage : public SfxTabPage
std::unique_ptr<weld::ComboBox> m_xUserInterfaceLB;
std::unique_ptr<weld::Label> m_xLocaleSettingFT;
std::unique_ptr<SvxLanguageBox> m_xLocaleSettingLB;
+ std::unique_ptr<weld::Widget> m_xLocaleSettingImg;
+ std::unique_ptr<weld::Label> m_xDecimalSeparatorFT;
std::unique_ptr<weld::CheckButton> m_xDecimalSeparatorCB;
+ std::unique_ptr<weld::Widget> m_xDecimalSeparatorImg;
std::unique_ptr<weld::Label> m_xCurrencyFT;
std::unique_ptr<weld::ComboBox> m_xCurrencyLB;
+ std::unique_ptr<weld::Widget> m_xCurrencyImg;
std::unique_ptr<weld::Label> m_xDatePatternsFT;
std::unique_ptr<weld::Entry> m_xDatePatternsED;
+ std::unique_ptr<weld::Widget> m_xDatePatternsImg;
std::unique_ptr<SvxLanguageBox> m_xWesternLanguageLB;
std::unique_ptr<weld::Label> m_xWesternLanguageFT;
+ std::unique_ptr<weld::Widget> m_xWesternLanguageImg;
std::unique_ptr<SvxLanguageBox> m_xAsianLanguageLB;
std::unique_ptr<SvxLanguageBox> m_xComplexLanguageLB;
std::unique_ptr<weld::CheckButton> m_xCurrentDocCB;
std::unique_ptr<weld::CheckButton> m_xAsianSupportCB;
+ std::unique_ptr<weld::Widget> m_xAsianSupportImg;
std::unique_ptr<weld::CheckButton> m_xCTLSupportCB;
+ std::unique_ptr<weld::Widget> m_xCTLSupportImg;
std::unique_ptr<weld::CheckButton> m_xIgnoreLanguageChangeCB;
+ std::unique_ptr<weld::Widget> m_xIgnoreLanguageChangeImg;
DECL_LINK(SupportHdl, weld::Toggleable&, void);
DECL_LINK(LocaleSettingHdl, weld::ComboBox&, void);
DECL_LINK(DatePatternsHdl, weld::Entry&, void);
+ bool validateDatePatterns( bool& rbModified, OUString& rPatterns );
+
public:
OfaLanguagesTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
virtual ~OfaLanguagesTabPage() override;
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/options/optgenrl.cxx b/cui/source/options/optgenrl.cxx
index 9c657176527f..54963bb86c97 100644
--- a/cui/source/options/optgenrl.cxx
+++ b/cui/source/options/optgenrl.cxx
@@ -30,7 +30,6 @@
#include <i18nlangtag/mslangid.hxx>
#include <o3tl/safeint.hxx>
#include <vcl/svapp.hxx>
-#include <unotools/saveopt.hxx>
#include <svl/intitem.hxx>
#include <vcl/settings.hxx>
@@ -80,26 +79,28 @@ namespace Lang
struct
{
+ // id of the lockimage
+ OUString pLockId;
// id of the text
- const char *pTextId;
+ OUString pTextId;
// language flags (see Lang above):
// which language is this row for?
unsigned nLangFlags;
}
const vRowInfo[] =
{
- { "companyft", Lang::All },
- { "nameft", Lang::All & ~Lang::Russian & ~Lang::Eastern },
- { "rusnameft", Lang::Russian },
- { "eastnameft", Lang::Eastern },
- { "streetft", Lang::All & ~Lang::Russian },
- { "russtreetft", Lang::Russian },
- { "icityft", Lang::All & ~Lang::US },
- { "cityft", Lang::US },
- { "countryft", Lang::All },
- { "titleft", Lang::All },
- { "phoneft", Lang::All },
- { "faxft", Lang::All },
+ { u"lockcompanyft"_ustr, u"companyft"_ustr, Lang::All },
+ { u"locknameft"_ustr, u"nameft"_ustr, Lang::All & ~Lang::Russian & ~Lang::Eastern },
+ { u"lockrusnameft"_ustr, u"rusnameft"_ustr, Lang::Russian },
+ { u"lockeastnameft"_ustr, u"eastnameft"_ustr, Lang::Eastern },
+ { u"lockstreetft"_ustr, u"streetft"_ustr, Lang::All & ~Lang::Russian },
+ { u"lockrusstreetft"_ustr,u"russtreetft"_ustr, Lang::Russian },
+ { u"lockicityft"_ustr, u"icityft"_ustr, Lang::All & ~Lang::US },
+ { u"lockcityft"_ustr, u"cityft"_ustr, Lang::US },
+ { u"lockcountryft"_ustr, u"countryft"_ustr, Lang::All },
+ { u"locktitleft"_ustr, u"titleft"_ustr, Lang::All },
+ { u"lockphoneft"_ustr, u"phoneft"_ustr, Lang::All },
+ { u"lockfaxft"_ustr, u"faxft"_ustr, Lang::All },
};
@@ -111,7 +112,7 @@ struct
// in which row?
RowType eRow;
// id of the edit box
- const char *pEditId;
+ OUString pEditId;
// id for SvtUserOptions in unotools/useroptions.hxx
UserOptToken nUserOptionsId;
// id for settings the focus (defined in svx/optgenrl.hxx)
@@ -120,43 +121,43 @@ struct
const vFieldInfo[] =
{
// Company
- { Row_Company, "company", UserOptToken::Company, EditPosition::COMPANY },
+ { Row_Company, u"company"_ustr, UserOptToken::Company, EditPosition::COMPANY },
// Name
- { Row_Name, "firstname", UserOptToken::FirstName, EditPosition::FIRSTNAME },
- { Row_Name, "lastname", UserOptToken::LastName, EditPosition::LASTNAME },
- { Row_Name, "shortname", UserOptToken::ID, EditPosition::SHORTNAME },
+ { Row_Name, u"firstname"_ustr, UserOptToken::FirstName, EditPosition::FIRSTNAME },
+ { Row_Name, u"lastname"_ustr, UserOptToken::LastName, EditPosition::LASTNAME },
+ { Row_Name, u"shortname"_ustr, UserOptToken::ID, EditPosition::SHORTNAME },
// Name (russian)
- { Row_Name_Russian, "ruslastname", UserOptToken::LastName, EditPosition::LASTNAME },
- { Row_Name_Russian, "rusfirstname", UserOptToken::FirstName, EditPosition::FIRSTNAME },
- { Row_Name_Russian, "rusfathersname", UserOptToken::FathersName, EditPosition::UNKNOWN },
- { Row_Name_Russian, "russhortname", UserOptToken::ID, EditPosition::SHORTNAME },
+ { Row_Name_Russian, u"ruslastname"_ustr, UserOptToken::LastName, EditPosition::LASTNAME },
+ { Row_Name_Russian, u"rusfirstname"_ustr, UserOptToken::FirstName, EditPosition::FIRSTNAME },
+ { Row_Name_Russian, u"rusfathersname"_ustr, UserOptToken::FathersName, EditPosition::UNKNOWN },
+ { Row_Name_Russian, u"russhortname"_ustr, UserOptToken::ID, EditPosition::SHORTNAME },
// Name (eastern: reversed name ord
- { Row_Name_Eastern, "eastlastname", UserOptToken::LastName, EditPosition::LASTNAME },
- { Row_Name_Eastern, "eastfirstname", UserOptToken::FirstName, EditPosition::FIRSTNAME },
- { Row_Name_Eastern, "eastshortname", UserOptToken::ID, EditPosition::SHORTNAME },
+ { Row_Name_Eastern, u"eastlastname"_ustr, UserOptToken::LastName, EditPosition::LASTNAME },
+ { Row_Name_Eastern, u"eastfirstname"_ustr, UserOptToken::FirstName, EditPosition::FIRSTNAME },
+ { Row_Name_Eastern, u"eastshortname"_ustr, UserOptToken::ID, EditPosition::SHORTNAME },
// Street
- { Row_Street, "street", UserOptToken::Street, EditPosition::STREET },
+ { Row_Street, u"street"_ustr, UserOptToken::Street, EditPosition::STREET },
// Street (russian)
- { Row_Street_Russian, "russtreet", UserOptToken::Street, EditPosition::STREET },
- { Row_Street_Russian, "apartnum", UserOptToken::Apartment, EditPosition::UNKNOWN },
+ { Row_Street_Russian, u"russtreet"_ustr, UserOptToken::Street, EditPosition::STREET },
+ { Row_Street_Russian, u"apartnum"_ustr, UserOptToken::Apartment, EditPosition::UNKNOWN },
// City
- { Row_City, "izip", UserOptToken::Zip, EditPosition::PLZ },
- { Row_City, "icity", UserOptToken::City, EditPosition::CITY },
+ { Row_City, u"izip"_ustr, UserOptToken::Zip, EditPosition::PLZ },
+ { Row_City, u"icity"_ustr, UserOptToken::City, EditPosition::CITY },
// City (US)
- { Row_City_US, "city", UserOptToken::City, EditPosition::CITY },
- { Row_City_US, "state", UserOptToken::State, EditPosition::STATE },
- { Row_City_US, "zip", UserOptToken::Zip, EditPosition::PLZ },
+ { Row_City_US, u"city"_ustr, UserOptToken::City, EditPosition::CITY },
+ { Row_City_US, u"state"_ustr, UserOptToken::State, EditPosition::STATE },
+ { Row_City_US, u"zip"_ustr, UserOptToken::Zip, EditPosition::PLZ },
// Country
- { Row_Country, "country", UserOptToken::Country, EditPosition::COUNTRY },
+ { Row_Country, u"country"_ustr, UserOptToken::Country, EditPosition::COUNTRY },
// Title/Position
- { Row_TitlePos, "title", UserOptToken::Title, EditPosition::TITLE },
- { Row_TitlePos, "position", UserOptToken::Position, EditPosition::POSITION },
+ { Row_TitlePos, u"title"_ustr, UserOptToken::Title, EditPosition::TITLE },
+ { Row_TitlePos, u"position"_ustr, UserOptToken::Position, EditPosition::POSITION },
// Phone
- { Row_Phone, "home", UserOptToken::TelephoneHome, EditPosition::TELPRIV },
- { Row_Phone, "work", UserOptToken::TelephoneWork, EditPosition::TELCOMPANY },
+ { Row_Phone, u"home"_ustr, UserOptToken::TelephoneHome, EditPosition::TELPRIV },
+ { Row_Phone, u"work"_ustr, UserOptToken::TelephoneWork, EditPosition::TELCOMPANY },
// Fax/Mail
- { Row_FaxMail, "fax", UserOptToken::Fax, EditPosition::FAX },
- { Row_FaxMail, "email", UserOptToken::Email, EditPosition::EMAIL },
+ { Row_FaxMail, u"fax"_ustr, UserOptToken::Fax, EditPosition::FAX },
+ { Row_FaxMail, u"email"_ustr, UserOptToken::Email, EditPosition::EMAIL },
};
@@ -167,14 +168,17 @@ const vFieldInfo[] =
struct SvxGeneralTabPage::Row
{
+ // row lockdown icon
+ std::unique_ptr<weld::Widget> xLockImg;
// row label
std::unique_ptr<weld::Label> xLabel;
// first and last field in the row (last is exclusive)
unsigned nFirstField, nLastField;
public:
- explicit Row (std::unique_ptr<weld::Label> xLabel_)
- : xLabel(std::move(xLabel_))
+ explicit Row (std::unique_ptr<weld::Widget> xLockImg_, std::unique_ptr<weld::Label> xLabel_)
+ : xLockImg(std::move(xLockImg_))
+ , xLabel(std::move(xLabel_))
, nFirstField(0)
, nLastField(0)
{
@@ -209,12 +213,18 @@ public:
};
SvxGeneralTabPage::SvxGeneralTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreSet)
- : SfxTabPage(pPage, pController, "cui/ui/optuserpage.ui", "OptUserPage", &rCoreSet)
- , m_xUseDataCB(m_xBuilder->weld_check_button("usefordocprop"))
- , m_xCryptoFrame(m_xBuilder->weld_widget( "cryptography"))
- , m_xSigningKeyLB(m_xBuilder->weld_combo_box("signingkey"))
- , m_xEncryptionKeyLB(m_xBuilder->weld_combo_box("encryptionkey"))
- , m_xEncryptToSelfCB(m_xBuilder->weld_check_button("encrypttoself"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optuserpage.ui"_ustr, u"OptUserPage"_ustr, &rCoreSet)
+ , m_xUseDataCB(m_xBuilder->weld_check_button(u"usefordocprop"_ustr))
+ , m_xUseDataImg(m_xBuilder->weld_widget(u"lockusefordocprop"_ustr))
+ , m_xCryptoFrame(m_xBuilder->weld_widget( u"cryptography"_ustr))
+ , m_xSigningKeyLB(m_xBuilder->weld_combo_box(u"signingkey"_ustr))
+ , m_xSigningKeyFT(m_xBuilder->weld_label(u"signingkeylabel"_ustr))
+ , m_xSigningKeyImg(m_xBuilder->weld_widget(u"locksigningkey"_ustr))
+ , m_xEncryptionKeyLB(m_xBuilder->weld_combo_box(u"encryptionkey"_ustr))
+ , m_xEncryptionKeyFT(m_xBuilder->weld_label(u"encryptionkeylabel"_ustr))
+ , m_xEncryptionKeyImg(m_xBuilder->weld_widget(u"lockencryptionkey"_ustr))
+ , m_xEncryptToSelfCB(m_xBuilder->weld_check_button(u"encrypttoself"_ustr))
+ , m_xEncryptToSelfImg(m_xBuilder->weld_widget(u"lockencrypttoself"_ustr))
{
InitControls();
#if HAVE_FEATURE_GPGME
@@ -259,11 +269,11 @@ void SvxGeneralTabPage::InitControls ()
if (!(vRowInfo[iRow].nLangFlags & LangBit))
continue;
// creating row
- vRows.push_back(std::make_shared<Row>(
+ vRows.push_back(std::make_shared<Row>(m_xBuilder->weld_widget(vRowInfo[iRow].pLockId),
m_xBuilder->weld_label(vRowInfo[iRow].pTextId)));
Row& rRow = *vRows.back();
// fields in the row
- static unsigned const nFieldCount = SAL_N_ELEMENTS(vFieldInfo);
+ static unsigned const nFieldCount = std::size(vFieldInfo);
// skipping other (invisible) rows
while (iField != nFieldCount && vFieldInfo[iField].eRow != eRow)
++iField;
@@ -342,6 +352,26 @@ std::unique_ptr<SfxTabPage> SvxGeneralTabPage::Create( weld::Container* pPage, w
return std::make_unique<SvxGeneralTabPage>( pPage, pController, *rAttrSet );
}
+OUString SvxGeneralTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[]
+ = { u"label1"_ustr, u"companyft"_ustr, u"nameft"_ustr, u"rusnameft"_ustr,
+ u"eastnameft"_ustr, u"streetft"_ustr, u"russtreetft"_ustr, u"icityft"_ustr,
+ u"cityft"_ustr, u"countryft"_ustr, u"titleft"_ustr, u"phoneft"_ustr,
+ u"faxft"_ustr, u"cryptographylabel"_ustr, u"signingkeylabel"_ustr, u"encryptionkeylabel"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ sAllStrings += m_xUseDataCB->get_label() + " " + m_xEncryptToSelfCB->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxGeneralTabPage::FillItemSet( SfxItemSet* )
{
// remove leading and trailing whitespaces
@@ -364,11 +394,9 @@ void SvxGeneralTabPage::Reset( const SfxItemSet* rSet )
{
SetData_Impl();
- sal_uInt16 const nWhich = GetWhich(SID_FIELD_GRABFOCUS);
-
- if (rSet->GetItemState(nWhich) == SfxItemState::SET)
+ if (rSet->GetItemState(SID_FIELD_GRABFOCUS) == SfxItemState::SET)
{
- EditPosition nField = static_cast<EditPosition>(static_cast<const SfxUInt16Item&>(rSet->Get(nWhich)).GetValue());
+ EditPosition nField = static_cast<EditPosition>(rSet->Get(SID_FIELD_GRABFOCUS).GetValue());
if (nField != EditPosition::UNKNOWN)
{
for (auto const & i: vFields)
@@ -480,13 +508,33 @@ void SvxGeneralTabPage::SetData_Impl()
bEnableLabel = bEnableLabel || bEnableEdit;
}
rRow.xLabel->set_sensitive(bEnableLabel);
+ rRow.xLockImg->set_visible(!bEnableLabel);
}
// saving
for (auto const & i: vFields)
i->xEdit->save_value();
+ //enabling and disabling remaining fields
+ bool bEnable = !officecfg::Office::Common::Save::Document::UseUserData::isReadOnly();
+ m_xUseDataCB->set_sensitive(bEnable);
+ m_xUseDataImg->set_visible(!bEnable);
+
#if HAVE_FEATURE_GPGME
+ bEnable = !aUserOpt.IsTokenReadonly(UserOptToken::SigningKey);
+ m_xSigningKeyLB->set_sensitive(bEnable);
+ m_xSigningKeyFT->set_sensitive(bEnable);
+ m_xSigningKeyImg->set_visible(!bEnable);
+
+ bEnable = !aUserOpt.IsTokenReadonly(UserOptToken::EncryptionKey);
+ m_xEncryptionKeyLB->set_sensitive(bEnable);
+ m_xEncryptionKeyFT->set_sensitive(bEnable);
+ m_xEncryptionKeyImg->set_visible(!bEnable);
+
+ bEnable = !aUserOpt.IsTokenReadonly(UserOptToken::EncryptToSelf);
+ m_xEncryptToSelfCB->set_sensitive(bEnable);
+ m_xEncryptToSelfImg->set_visible(!bEnable);
+
OUString aSK = aUserOpt.GetToken(UserOptToken::SigningKey);
aSK.isEmpty() ? m_xSigningKeyLB->set_active( 0 ) //i.e. 'No Key'
: m_xSigningKeyLB->set_active_text( aSK );
diff --git a/cui/source/options/opthtml.cxx b/cui/source/options/opthtml.cxx
index 5fb93652b9a9..f8d9619b1faf 100644
--- a/cui/source/options/opthtml.cxx
+++ b/cui/source/options/opthtml.cxx
@@ -18,33 +18,45 @@
*/
#include <svtools/langtab.hxx>
-#include <svtools/htmlcfg.hxx>
#include <comphelper/configuration.hxx>
#include <officecfg/Office/Common.hxx>
#include "opthtml.hxx"
OfaHtmlTabPage::OfaHtmlTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/opthtmlpage.ui", "OptHtmlPage", &rSet)
- , m_xSize1NF(m_xBuilder->weld_spin_button("size1"))
- , m_xSize2NF(m_xBuilder->weld_spin_button("size2"))
- , m_xSize3NF(m_xBuilder->weld_spin_button("size3"))
- , m_xSize4NF(m_xBuilder->weld_spin_button("size4"))
- , m_xSize5NF(m_xBuilder->weld_spin_button("size5"))
- , m_xSize6NF(m_xBuilder->weld_spin_button("size6"))
- , m_xSize7NF(m_xBuilder->weld_spin_button("size7"))
- , m_xNumbersEnglishUSCB(m_xBuilder->weld_check_button("numbersenglishus"))
- , m_xUnknownTagCB(m_xBuilder->weld_check_button("unknowntag"))
- , m_xIgnoreFontNamesCB(m_xBuilder->weld_check_button("ignorefontnames"))
- , m_xStarBasicCB(m_xBuilder->weld_check_button("starbasic"))
- , m_xStarBasicWarningCB(m_xBuilder->weld_check_button("starbasicwarning"))
- , m_xPrintExtensionCB(m_xBuilder->weld_check_button("printextension"))
- , m_xSaveGrfLocalCB(m_xBuilder->weld_check_button("savegrflocal"))
- , m_xCharSetLB(new SvxTextEncodingBox(m_xBuilder->weld_combo_box("charset")))
+ : SfxTabPage(pPage, pController, u"cui/ui/opthtmlpage.ui"_ustr, u"OptHtmlPage"_ustr, &rSet)
+ , m_xSize1NF(m_xBuilder->weld_spin_button(u"size1"_ustr))
+ , m_xSize1Img(m_xBuilder->weld_widget(u"locksize1"_ustr))
+ , m_xSize2NF(m_xBuilder->weld_spin_button(u"size2"_ustr))
+ , m_xSize2Img(m_xBuilder->weld_widget(u"locksize2"_ustr))
+ , m_xSize3NF(m_xBuilder->weld_spin_button(u"size3"_ustr))
+ , m_xSize3Img(m_xBuilder->weld_widget(u"locksize3"_ustr))
+ , m_xSize4NF(m_xBuilder->weld_spin_button(u"size4"_ustr))
+ , m_xSize4Img(m_xBuilder->weld_widget(u"locksize4"_ustr))
+ , m_xSize5NF(m_xBuilder->weld_spin_button(u"size5"_ustr))
+ , m_xSize5Img(m_xBuilder->weld_widget(u"locksize5"_ustr))
+ , m_xSize6NF(m_xBuilder->weld_spin_button(u"size6"_ustr))
+ , m_xSize6Img(m_xBuilder->weld_widget(u"locksize6"_ustr))
+ , m_xSize7NF(m_xBuilder->weld_spin_button(u"size7"_ustr))
+ , m_xSize7Img(m_xBuilder->weld_widget(u"locksize7"_ustr))
+ , m_xNumbersEnglishUSCB(m_xBuilder->weld_check_button(u"numbersenglishus"_ustr))
+ , m_xNumbersEnglishUSImg(m_xBuilder->weld_widget(u"locknumbersenglishus"_ustr))
+ , m_xUnknownTagCB(m_xBuilder->weld_check_button(u"unknowntag"_ustr))
+ , m_xUnknownTagImg(m_xBuilder->weld_widget(u"lockunknowntag"_ustr))
+ , m_xIgnoreFontNamesCB(m_xBuilder->weld_check_button(u"ignorefontnames"_ustr))
+ , m_xIgnoreFontNamesImg(m_xBuilder->weld_widget(u"lockignorefontnames"_ustr))
+ , m_xStarBasicCB(m_xBuilder->weld_check_button(u"starbasic"_ustr))
+ , m_xStarBasicImg(m_xBuilder->weld_widget(u"lockstarbasic"_ustr))
+ , m_xStarBasicWarningCB(m_xBuilder->weld_check_button(u"starbasicwarning"_ustr))
+ , m_xStarBasicWarningImg(m_xBuilder->weld_widget(u"lockstarbasicwarning"_ustr))
+ , m_xPrintExtensionCB(m_xBuilder->weld_check_button(u"printextension"_ustr))
+ , m_xPrintExtensionImg(m_xBuilder->weld_widget(u"lockprintextension"_ustr))
+ , m_xSaveGrfLocalCB(m_xBuilder->weld_check_button(u"savegrflocal"_ustr))
+ , m_xSaveGrfLocalImg(m_xBuilder->weld_widget(u"locksavegrflocal"_ustr))
{
// replace placeholder with UI string from language list
OUString aText(m_xNumbersEnglishUSCB->get_label());
- OUString aPlaceholder("%ENGLISHUSLOCALE");
+ OUString aPlaceholder(u"%ENGLISHUSLOCALE"_ustr);
sal_Int32 nPos;
if ((nPos = aText.indexOf( aPlaceholder)) != -1)
{
@@ -57,9 +69,6 @@ OfaHtmlTabPage::OfaHtmlTabPage(weld::Container* pPage, weld::DialogController* p
}
m_xStarBasicCB->connect_toggled(LINK(this, OfaHtmlTabPage, CheckBoxHdl_Impl));
-
- // initialize the characterset listbox
- m_xCharSetLB->FillWithMimeAndSelectBest();
}
OfaHtmlTabPage::~OfaHtmlTabPage()
@@ -72,6 +81,30 @@ std::unique_ptr<SfxTabPage> OfaHtmlTabPage::Create( weld::Container* pPage, weld
return std::make_unique<OfaHtmlTabPage>(pPage, pController, *rAttrSet);
}
+OUString OfaHtmlTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"label3"_ustr, u"size1FT"_ustr, u"size2FT"_ustr,
+ u"size3FT"_ustr, u"size4FT"_ustr, u"size5FT"_ustr, u"size6FT"_ustr, u"size7FT"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"numbersenglishus"_ustr, u"unknowntag"_ustr, u"ignorefontnames"_ustr, u"starbasic"_ustr,
+ u"starbasicwarning"_ustr, u"printextension"_ustr, u"savegrflocal"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool OfaHtmlTabPage::FillItemSet( SfxItemSet* )
{
std::shared_ptr<comphelper::ConfigurationChanges> xChanges = comphelper::ConfigurationChanges::create();
@@ -125,10 +158,6 @@ bool OfaHtmlTabPage::FillItemSet( SfxItemSet* )
officecfg::Office::Common::Filter::HTML::Export::PrintLayout::set(
m_xPrintExtensionCB->get_active(), xChanges);
- if( m_xCharSetLB->GetSelectTextEncoding() != SvxHtmlOptions::GetTextEncoding() )
- officecfg::Office::Common::Filter::HTML::Export::Encoding::set(
- m_xCharSetLB->GetSelectTextEncoding(), xChanges );
-
xChanges->commit();
return false;
}
@@ -136,21 +165,99 @@ bool OfaHtmlTabPage::FillItemSet( SfxItemSet* )
void OfaHtmlTabPage::Reset( const SfxItemSet* )
{
m_xSize1NF->set_value(officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_1::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_1::isReadOnly())
+ {
+ m_xSize1NF->set_sensitive(false);
+ m_xSize1Img->set_visible(true);
+ }
+
m_xSize2NF->set_value(officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_2::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_2::isReadOnly())
+ {
+ m_xSize2NF->set_sensitive(false);
+ m_xSize2Img->set_visible(true);
+ }
+
m_xSize3NF->set_value(officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_3::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_3::isReadOnly())
+ {
+ m_xSize3NF->set_sensitive(false);
+ m_xSize3Img->set_visible(true);
+ }
+
m_xSize4NF->set_value(officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_4::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_4::isReadOnly())
+ {
+ m_xSize4NF->set_sensitive(false);
+ m_xSize4Img->set_visible(true);
+ }
+
m_xSize5NF->set_value(officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_5::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_5::isReadOnly())
+ {
+ m_xSize5NF->set_sensitive(false);
+ m_xSize5Img->set_visible(true);
+ }
+
m_xSize6NF->set_value(officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_6::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_6::isReadOnly())
+ {
+ m_xSize6NF->set_sensitive(false);
+ m_xSize6Img->set_visible(true);
+ }
+
m_xSize7NF->set_value(officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_7::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSize::Size_7::isReadOnly())
+ {
+ m_xSize7NF->set_sensitive(false);
+ m_xSize7Img->set_visible(true);
+ }
+
m_xNumbersEnglishUSCB->set_active(officecfg::Office::Common::Filter::HTML::Import::NumbersEnglishUS::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::NumbersEnglishUS::isReadOnly())
+ {
+ m_xNumbersEnglishUSCB->set_sensitive(false);
+ m_xNumbersEnglishUSImg->set_visible(true);
+ }
+
m_xUnknownTagCB->set_active(officecfg::Office::Common::Filter::HTML::Import::UnknownTag::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::UnknownTag::isReadOnly())
+ {
+ m_xUnknownTagCB->set_sensitive(false);
+ m_xUnknownTagImg->set_visible(true);
+ }
+
m_xIgnoreFontNamesCB->set_active(officecfg::Office::Common::Filter::HTML::Import::FontSetting::get());
+ if (officecfg::Office::Common::Filter::HTML::Import::FontSetting::isReadOnly())
+ {
+ m_xIgnoreFontNamesCB->set_sensitive(false);
+ m_xIgnoreFontNamesImg->set_visible(true);
+ }
m_xStarBasicCB->set_active(officecfg::Office::Common::Filter::HTML::Export::Basic::get());
+ if (officecfg::Office::Common::Filter::HTML::Export::Basic::isReadOnly())
+ {
+ m_xStarBasicCB->set_sensitive(false);
+ m_xStarBasicImg->set_visible(true);
+ }
+
m_xStarBasicWarningCB->set_active(officecfg::Office::Common::Filter::HTML::Export::Warning::get());
- m_xStarBasicWarningCB->set_sensitive(!m_xStarBasicCB->get_active());
+ m_xStarBasicWarningCB->set_sensitive(!m_xStarBasicCB->get_active() && !officecfg::Office::Common::Filter::HTML::Export::Warning::isReadOnly());
+ m_xStarBasicWarningImg->set_visible(officecfg::Office::Common::Filter::HTML::Export::Warning::isReadOnly());
+
m_xSaveGrfLocalCB->set_active(officecfg::Office::Common::Filter::HTML::Export::LocalGraphic::get());
- m_xPrintExtensionCB->set_active(SvxHtmlOptions::IsPrintLayoutExtension());
+ if (officecfg::Office::Common::Filter::HTML::Export::LocalGraphic::isReadOnly())
+ {
+ m_xSaveGrfLocalCB->set_sensitive(false);
+ m_xSaveGrfLocalImg->set_visible(true);
+ }
+
+ m_xPrintExtensionCB->set_active(officecfg::Office::Common::Filter::HTML::Export::PrintLayout::get());
+ if (officecfg::Office::Common::Filter::HTML::Export::PrintLayout::isReadOnly())
+ {
+ m_xPrintExtensionCB->set_sensitive(false);
+ m_xPrintExtensionImg->set_visible(true);
+ }
m_xPrintExtensionCB->save_state();
m_xStarBasicCB->save_state();
@@ -166,10 +273,6 @@ void OfaHtmlTabPage::Reset( const SfxItemSet* )
m_xNumbersEnglishUSCB->save_state();
m_xUnknownTagCB->save_state();
m_xIgnoreFontNamesCB->save_state();
-
- if( !SvxHtmlOptions::IsDefaultTextEncoding() &&
- m_xCharSetLB->GetSelectTextEncoding() != SvxHtmlOptions::GetTextEncoding() )
- m_xCharSetLB->SelectTextEncoding( SvxHtmlOptions::GetTextEncoding() );
}
IMPL_LINK(OfaHtmlTabPage, CheckBoxHdl_Impl, weld::Toggleable&, rBox, void)
diff --git a/cui/source/options/opthtml.hxx b/cui/source/options/opthtml.hxx
index 4fdb9d754451..2f389a7af571 100644
--- a/cui/source/options/opthtml.hxx
+++ b/cui/source/options/opthtml.hxx
@@ -25,22 +25,35 @@ class OfaHtmlTabPage : public SfxTabPage
{
std::unique_ptr<weld::SpinButton> m_xSize1NF;
+ std::unique_ptr<weld::Widget> m_xSize1Img;
std::unique_ptr<weld::SpinButton> m_xSize2NF;
+ std::unique_ptr<weld::Widget> m_xSize2Img;
std::unique_ptr<weld::SpinButton> m_xSize3NF;
+ std::unique_ptr<weld::Widget> m_xSize3Img;
std::unique_ptr<weld::SpinButton> m_xSize4NF;
+ std::unique_ptr<weld::Widget> m_xSize4Img;
std::unique_ptr<weld::SpinButton> m_xSize5NF;
+ std::unique_ptr<weld::Widget> m_xSize5Img;
std::unique_ptr<weld::SpinButton> m_xSize6NF;
+ std::unique_ptr<weld::Widget> m_xSize6Img;
std::unique_ptr<weld::SpinButton> m_xSize7NF;
+ std::unique_ptr<weld::Widget> m_xSize7Img;
std::unique_ptr<weld::CheckButton> m_xNumbersEnglishUSCB;
+ std::unique_ptr<weld::Widget> m_xNumbersEnglishUSImg;
std::unique_ptr<weld::CheckButton> m_xUnknownTagCB;
+ std::unique_ptr<weld::Widget> m_xUnknownTagImg;
std::unique_ptr<weld::CheckButton> m_xIgnoreFontNamesCB;
+ std::unique_ptr<weld::Widget> m_xIgnoreFontNamesImg;
std::unique_ptr<weld::CheckButton> m_xStarBasicCB;
+ std::unique_ptr<weld::Widget> m_xStarBasicImg;
std::unique_ptr<weld::CheckButton> m_xStarBasicWarningCB;
+ std::unique_ptr<weld::Widget> m_xStarBasicWarningImg;
std::unique_ptr<weld::CheckButton> m_xPrintExtensionCB;
+ std::unique_ptr<weld::Widget> m_xPrintExtensionImg;
std::unique_ptr<weld::CheckButton> m_xSaveGrfLocalCB;
- std::unique_ptr<SvxTextEncodingBox> m_xCharSetLB;
+ std::unique_ptr<weld::Widget> m_xSaveGrfLocalImg;
DECL_LINK(CheckBoxHdl_Impl, weld::Toggleable&, void);
@@ -50,6 +63,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
diff --git a/cui/source/options/optinet2.cxx b/cui/source/options/optinet2.cxx
index be01007e026c..3d16985a8c40 100644
--- a/cui/source/options/optinet2.cxx
+++ b/cui/source/options/optinet2.cxx
@@ -27,9 +27,8 @@
#include <vcl/weld.hxx>
#include <sfx2/filedlghelper.hxx>
#include <vcl/svapp.hxx>
-#include <unotools/securityoptions.hxx>
#include <com/sun/star/uno/Sequence.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <dialmgr.hxx>
#include "optinet2.hxx"
@@ -52,7 +51,7 @@
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <com/sun/star/task/PasswordContainer.hpp>
#include <com/sun/star/task/XPasswordContainer2.hpp>
-#include "securityoptions.hxx"
+#include <securityoptions.hxx>
#include "webconninfo.hxx"
#include "certpath.hxx"
#include "tsaurls.hxx"
@@ -88,19 +87,17 @@ IMPL_LINK(SvxProxyTabPage, PortChangedHdl, weld::Entry&, rEdit, void)
{
std::unique_ptr<weld::MessageDialog> xErrorBox(Application::CreateMessageDialog(GetFrameWeld(),
VclMessageType::Warning, VclButtonsType::Ok,
- CuiResId( RID_SVXSTR_OPT_PROXYPORTS)));
+ CuiResId(RID_CUISTR_OPT_PROXYPORTS)));
xErrorBox->run();
}
}
-constexpr OUStringLiteral g_aProxyModePN = u"ooInetProxyType";
-constexpr OUStringLiteral g_aHttpProxyPN = u"ooInetHTTPProxyName";
-constexpr OUStringLiteral g_aHttpPortPN = u"ooInetHTTPProxyPort";
-constexpr OUStringLiteral g_aHttpsProxyPN = u"ooInetHTTPSProxyName";
-constexpr OUStringLiteral g_aHttpsPortPN = u"ooInetHTTPSProxyPort";
-constexpr OUStringLiteral g_aFtpProxyPN = u"ooInetFTPProxyName";
-constexpr OUStringLiteral g_aFtpPortPN = u"ooInetFTPProxyPort";
-constexpr OUStringLiteral g_aNoProxyDescPN = u"ooInetNoProxy";
+constexpr OUString g_aProxyModePN = u"ooInetProxyType"_ustr;
+constexpr OUString g_aHttpProxyPN = u"ooInetHTTPProxyName"_ustr;
+constexpr OUString g_aHttpPortPN = u"ooInetHTTPProxyPort"_ustr;
+constexpr OUString g_aHttpsProxyPN = u"ooInetHTTPSProxyName"_ustr;
+constexpr OUString g_aHttpsPortPN = u"ooInetHTTPSProxyPort"_ustr;
+constexpr OUString g_aNoProxyDescPN = u"ooInetNoProxy"_ustr;
IMPL_STATIC_LINK(SvxProxyTabPage, NumberOnlyTextFilterHdl, OUString&, rTest, bool)
{
@@ -126,23 +123,26 @@ IMPL_STATIC_LINK(SvxProxyTabPage, NoSpaceTextFilterHdl, OUString&, rTest, bool)
/* */
/********************************************************************/
SvxProxyTabPage::SvxProxyTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optproxypage.ui", "OptProxyPage", &rSet)
- , m_xProxyModeLB(m_xBuilder->weld_combo_box("proxymode"))
- , m_xHttpProxyFT(m_xBuilder->weld_label("httpft"))
- , m_xHttpProxyED(m_xBuilder->weld_entry("http"))
- , m_xHttpPortFT(m_xBuilder->weld_label("httpportft"))
- , m_xHttpPortED(m_xBuilder->weld_entry("httpport"))
- , m_xHttpsProxyFT(m_xBuilder->weld_label("httpsft"))
- , m_xHttpsProxyED(m_xBuilder->weld_entry("https"))
- , m_xHttpsPortFT(m_xBuilder->weld_label("httpsportft"))
- , m_xHttpsPortED(m_xBuilder->weld_entry("httpsport"))
- , m_xFtpProxyFT(m_xBuilder->weld_label("ftpft"))
- , m_xFtpProxyED(m_xBuilder->weld_entry("ftp"))
- , m_xFtpPortFT(m_xBuilder->weld_label("ftpportft"))
- , m_xFtpPortED(m_xBuilder->weld_entry("ftpport"))
- , m_xNoProxyForFT(m_xBuilder->weld_label("noproxyft"))
- , m_xNoProxyForED(m_xBuilder->weld_entry("noproxy"))
- , m_xNoProxyDescFT(m_xBuilder->weld_label("noproxydesc"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optproxypage.ui"_ustr, u"OptProxyPage"_ustr, &rSet)
+ , m_xProxyModeFT(m_xBuilder->weld_label(u"label2"_ustr))
+ , m_xProxyModeLB(m_xBuilder->weld_combo_box(u"proxymode"_ustr))
+ , m_xProxyModeImg(m_xBuilder->weld_widget(u"lockproxymode"_ustr))
+ , m_xHttpProxyFT(m_xBuilder->weld_label(u"httpft"_ustr))
+ , m_xHttpProxyED(m_xBuilder->weld_entry(u"http"_ustr))
+ , m_xHttpProxyImg(m_xBuilder->weld_widget(u"lockhttp"_ustr))
+ , m_xHttpPortFT(m_xBuilder->weld_label(u"httpportft"_ustr))
+ , m_xHttpPortED(m_xBuilder->weld_entry(u"httpport"_ustr))
+ , m_xHttpPortImg(m_xBuilder->weld_widget(u"lockhttpport"_ustr))
+ , m_xHttpsProxyFT(m_xBuilder->weld_label(u"httpsft"_ustr))
+ , m_xHttpsProxyED(m_xBuilder->weld_entry(u"https"_ustr))
+ , m_xHttpsProxyImg(m_xBuilder->weld_widget(u"lockhttps"_ustr))
+ , m_xHttpsPortFT(m_xBuilder->weld_label(u"httpsportft"_ustr))
+ , m_xHttpsPortED(m_xBuilder->weld_entry(u"httpsport"_ustr))
+ , m_xHttpsPortImg(m_xBuilder->weld_widget(u"lockhttpsport"_ustr))
+ , m_xNoProxyForFT(m_xBuilder->weld_label(u"noproxyft"_ustr))
+ , m_xNoProxyForED(m_xBuilder->weld_entry(u"noproxy"_ustr))
+ , m_xNoProxyForImg(m_xBuilder->weld_widget(u"locknoproxy"_ustr))
+ , m_xNoProxyDescFT(m_xBuilder->weld_label(u"noproxydesc"_ustr))
{
m_xHttpProxyED->connect_insert_text(LINK(this, SvxProxyTabPage, NoSpaceTextFilterHdl));
m_xHttpPortED->connect_insert_text(LINK(this, SvxProxyTabPage, NumberOnlyTextFilterHdl));
@@ -150,14 +150,10 @@ SvxProxyTabPage::SvxProxyTabPage(weld::Container* pPage, weld::DialogController*
m_xHttpsProxyED->connect_insert_text(LINK(this, SvxProxyTabPage, NoSpaceTextFilterHdl));
m_xHttpsPortED->connect_insert_text(LINK(this, SvxProxyTabPage, NumberOnlyTextFilterHdl));
m_xHttpsPortED->connect_changed(LINK(this, SvxProxyTabPage, PortChangedHdl));
- m_xFtpProxyED->connect_insert_text(LINK(this, SvxProxyTabPage, NoSpaceTextFilterHdl));
- m_xFtpPortED->connect_insert_text(LINK(this, SvxProxyTabPage, NumberOnlyTextFilterHdl));
- m_xFtpPortED->connect_changed(LINK(this, SvxProxyTabPage, PortChangedHdl));
Link<weld::Widget&,void> aLink = LINK( this, SvxProxyTabPage, LoseFocusHdl_Impl );
m_xHttpPortED->connect_focus_out( aLink );
m_xHttpsPortED->connect_focus_out( aLink );
- m_xFtpPortED->connect_focus_out( aLink );
m_xProxyModeLB->connect_changed(LINK( this, SvxProxyTabPage, ProxyHdl_Impl ));
@@ -168,12 +164,12 @@ SvxProxyTabPage::SvxProxyTabPage(weld::Container* pPage, weld::DialogController*
beans::NamedValue aProperty;
aProperty.Name = "nodepath";
- aProperty.Value <<= OUString( "org.openoffice.Inet/Settings" );
+ aProperty.Value <<= u"org.openoffice.Inet/Settings"_ustr;
Sequence< Any > aArgumentList{ Any(aProperty) };
m_xConfigurationUpdateAccess = xConfigurationProvider->createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationUpdateAccess",
+ u"com.sun.star.configuration.ConfigurationUpdateAccess"_ustr,
aArgumentList );
}
@@ -204,6 +200,8 @@ void SvxProxyTabPage::ReadConfigData_Impl()
nIntValue = *x;
m_xHttpPortED->set_text( OUString::number( nIntValue ));
}
+ else
+ m_xHttpPortED->set_text( u""_ustr );
m_xHttpsProxyED->set_text( officecfg::Inet::Settings::ooInetHTTPSProxyName::get() );
x = officecfg::Inet::Settings::ooInetHTTPSProxyPort::get();
@@ -212,14 +210,8 @@ void SvxProxyTabPage::ReadConfigData_Impl()
nIntValue = *x;
m_xHttpsPortED->set_text( OUString::number( nIntValue ));
}
-
- m_xFtpProxyED->set_text( officecfg::Inet::Settings::ooInetFTPProxyName::get() );
- x = officecfg::Inet::Settings::ooInetFTPProxyPort::get();
- if (x)
- {
- nIntValue = *x;
- m_xFtpPortED->set_text( OUString::number( nIntValue ));
- }
+ else
+ m_xHttpsPortED->set_text( u""_ustr );
m_xNoProxyForED->set_text( officecfg::Inet::Settings::ooInetNoProxy::get() );
}
@@ -253,16 +245,6 @@ void SvxProxyTabPage::ReadConfigDefaults_Impl()
m_xHttpsPortED->set_text( OUString::number( nIntValue ));
}
- if( xPropertyState->getPropertyDefault(g_aFtpProxyPN) >>= aStringValue )
- {
- m_xFtpProxyED->set_text( aStringValue );
- }
-
- if( xPropertyState->getPropertyDefault(g_aFtpPortPN) >>= nIntValue )
- {
- m_xFtpPortED->set_text( OUString::number( nIntValue ));
- }
-
if( xPropertyState->getPropertyDefault(g_aNoProxyDescPN) >>= aStringValue )
{
m_xNoProxyForED->set_text( aStringValue );
@@ -293,8 +275,6 @@ void SvxProxyTabPage::RestoreConfigDefaults_Impl()
xPropertyState->setPropertyToDefault(g_aHttpPortPN);
xPropertyState->setPropertyToDefault(g_aHttpsProxyPN);
xPropertyState->setPropertyToDefault(g_aHttpsPortPN);
- xPropertyState->setPropertyToDefault(g_aFtpProxyPN);
- xPropertyState->setPropertyToDefault(g_aFtpPortPN);
xPropertyState->setPropertyToDefault(g_aNoProxyDescPN);
Reference< util::XChangesBatch > xChangesBatch(m_xConfigurationUpdateAccess, UNO_QUERY_THROW);
@@ -323,13 +303,26 @@ void SvxProxyTabPage::Reset(const SfxItemSet*)
m_xHttpPortED->save_value();
m_xHttpsProxyED->save_value();
m_xHttpsPortED->save_value();
- m_xFtpProxyED->save_value();
- m_xFtpPortED->save_value();
m_xNoProxyForED->save_value();
EnableControls_Impl();
}
+OUString SvxProxyTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"httpft"_ustr, u"httpsft"_ustr,
+ u"noproxyft"_ustr, u"httpportft"_ustr, u"httpsportft"_ustr, u"noproxydesc"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxProxyTabPage::FillItemSet(SfxItemSet* )
{
bool bModified = false;
@@ -374,18 +367,6 @@ bool SvxProxyTabPage::FillItemSet(SfxItemSet* )
bModified = true;
}
- if( m_xFtpProxyED->get_value_changed_from_saved())
- {
- xPropertySet->setPropertyValue( g_aFtpProxyPN, Any(m_xFtpProxyED->get_text()) );
- bModified = true;
- }
-
- if ( m_xFtpPortED->get_value_changed_from_saved() )
- {
- xPropertySet->setPropertyValue( g_aFtpPortPN, Any(m_xFtpPortED->get_text().toInt32()));
- bModified = true;
- }
-
if ( m_xNoProxyForED->get_value_changed_from_saved() )
{
xPropertySet->setPropertyValue( g_aNoProxyDescPN, Any( m_xNoProxyForED->get_text()));
@@ -416,34 +397,38 @@ bool SvxProxyTabPage::FillItemSet(SfxItemSet* )
void SvxProxyTabPage::EnableControls_Impl()
{
- m_xProxyModeLB->set_sensitive(!officecfg::Inet::Settings::ooInetNoProxy::isReadOnly());
+ bool bEnable = !officecfg::Inet::Settings::ooInetNoProxy::isReadOnly();
+ m_xProxyModeFT->set_sensitive(bEnable);
+ m_xProxyModeLB->set_sensitive(bEnable);
+ m_xProxyModeImg->set_visible(!bEnable);
const bool bManualConfig = m_xProxyModeLB->get_active() == 2;
- const bool bHTTPProxyNameEnabled = bManualConfig && !officecfg::Inet::Settings::ooInetHTTPProxyName::isReadOnly();
- const bool bHTTPProxyPortEnabled = bManualConfig && !officecfg::Inet::Settings::ooInetHTTPProxyPort::isReadOnly();
+ bEnable = !officecfg::Inet::Settings::ooInetHTTPProxyName::isReadOnly();
+ const bool bHTTPProxyNameEnabled = bManualConfig && bEnable;
+ const bool bHTTPProxyPortEnabled = bManualConfig && bEnable;
m_xHttpProxyFT->set_sensitive(bHTTPProxyNameEnabled);
m_xHttpProxyED->set_sensitive(bHTTPProxyNameEnabled);
+ m_xHttpProxyImg->set_visible(!bEnable);
m_xHttpPortFT->set_sensitive(bHTTPProxyPortEnabled);
m_xHttpPortED->set_sensitive(bHTTPProxyPortEnabled);
+ m_xHttpPortImg->set_visible(!bEnable);
- const bool bHTTPSProxyNameEnabled = bManualConfig && !officecfg::Inet::Settings::ooInetHTTPSProxyName::isReadOnly();
- const bool bHTTPSProxyPortEnabled = bManualConfig && !officecfg::Inet::Settings::ooInetHTTPSProxyPort::isReadOnly();
+ bEnable = !officecfg::Inet::Settings::ooInetHTTPSProxyName::isReadOnly();
+ const bool bHTTPSProxyNameEnabled = bManualConfig && bEnable;
+ const bool bHTTPSProxyPortEnabled = bManualConfig && bEnable;
m_xHttpsProxyFT->set_sensitive(bHTTPSProxyNameEnabled);
m_xHttpsProxyED->set_sensitive(bHTTPSProxyNameEnabled);
+ m_xHttpsProxyImg->set_visible(!bEnable);
m_xHttpsPortFT->set_sensitive(bHTTPSProxyPortEnabled);
m_xHttpsPortED->set_sensitive(bHTTPSProxyPortEnabled);
+ m_xHttpsPortImg->set_visible(!bEnable);
- const bool bFTPProxyNameEnabled = bManualConfig && !officecfg::Inet::Settings::ooInetFTPProxyName::isReadOnly();
- const bool bFTPProxyPortEnabled = bManualConfig && !officecfg::Inet::Settings::ooInetFTPProxyPort::isReadOnly();
- m_xFtpProxyFT->set_sensitive(bFTPProxyNameEnabled);
- m_xFtpProxyED->set_sensitive(bFTPProxyNameEnabled);
- m_xFtpPortFT->set_sensitive(bFTPProxyPortEnabled);
- m_xFtpPortED->set_sensitive(bFTPProxyPortEnabled);
-
- const bool bInetNoProxyEnabled = bManualConfig && !officecfg::Inet::Settings::ooInetNoProxy::isReadOnly();
+ bEnable = !officecfg::Inet::Settings::ooInetNoProxy::isReadOnly();
+ const bool bInetNoProxyEnabled = bManualConfig && bEnable;
m_xNoProxyForFT->set_sensitive(bInetNoProxyEnabled);
m_xNoProxyForED->set_sensitive(bInetNoProxyEnabled);
+ m_xNoProxyForImg->set_visible(!bEnable);
m_xNoProxyDescFT->set_sensitive(bInetNoProxyEnabled);
}
@@ -473,20 +458,30 @@ IMPL_STATIC_LINK(SvxProxyTabPage, LoseFocusHdl_Impl, weld::Widget&, rControl, vo
/* */
/********************************************************************/
SvxSecurityTabPage::SvxSecurityTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optsecuritypage.ui", "OptSecurityPage", &rSet)
- , m_xSecurityOptionsPB(m_xBuilder->weld_button("options"))
- , m_xSavePasswordsCB(m_xBuilder->weld_check_button("savepassword"))
- , m_xShowConnectionsPB(m_xBuilder->weld_button("connections"))
- , m_xMasterPasswordCB(m_xBuilder->weld_check_button("usemasterpassword"))
- , m_xMasterPasswordFT(m_xBuilder->weld_label("masterpasswordtext"))
- , m_xMasterPasswordPB(m_xBuilder->weld_button("masterpassword"))
- , m_xMacroSecFrame(m_xBuilder->weld_container("macrosecurity"))
- , m_xMacroSecPB(m_xBuilder->weld_button("macro"))
- , m_xCertFrame(m_xBuilder->weld_container("certificatepath"))
- , m_xCertPathPB(m_xBuilder->weld_button("cert"))
- , m_xTSAURLsFrame(m_xBuilder->weld_container("tsaurls"))
- , m_xTSAURLsPB(m_xBuilder->weld_button("tsas"))
- , m_xNoPasswordSaveFT(m_xBuilder->weld_label("nopasswordsave"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optsecuritypage.ui"_ustr, u"OptSecurityPage"_ustr, &rSet)
+ , m_xSecurityOptionsPB(m_xBuilder->weld_button(u"options"_ustr))
+ , m_xSavePasswordsCB(m_xBuilder->weld_check_button(u"savepassword"_ustr))
+ , m_xSavePasswordsImg(m_xBuilder->weld_widget(u"locksavepassword"_ustr))
+ , m_xShowConnectionsPB(m_xBuilder->weld_button(u"connections"_ustr))
+ , m_xMasterPasswordCB(m_xBuilder->weld_check_button(u"usemasterpassword"_ustr))
+ , m_xMasterPasswordImg(m_xBuilder->weld_widget(u"lockusemasterpassword"_ustr))
+ , m_xMasterPasswordFT(m_xBuilder->weld_label(u"masterpasswordtext"_ustr))
+ , m_xMasterPasswordPB(m_xBuilder->weld_button(u"masterpassword"_ustr))
+ , m_xMacroSecFrame(m_xBuilder->weld_container(u"macrosecurity"_ustr))
+ , m_xMacroSecPB(m_xBuilder->weld_button(u"macro"_ustr))
+ , m_xCertFrame(m_xBuilder->weld_container(u"certificatepath"_ustr))
+ , m_xCertPathPB(m_xBuilder->weld_button(u"cert"_ustr))
+ , m_xCertPathImg(m_xBuilder->weld_widget(u"lockcertipath"_ustr))
+ , m_xCertPathLabel(m_xBuilder->weld_label(u"label7"_ustr))
+ , m_xTSAURLsFrame(m_xBuilder->weld_container(u"tsaurls"_ustr))
+ , m_xTSAURLsPB(m_xBuilder->weld_button(u"tsas"_ustr))
+ , m_xTSAURLsImg(m_xBuilder->weld_widget(u"locktsas"_ustr))
+ , m_xTSAURLsLabel(m_xBuilder->weld_label(u"label9"_ustr))
+ , m_xNoPasswordSaveFT(m_xBuilder->weld_label(u"nopasswordsave"_ustr))
+ , m_xCertMgrPathLB(m_xBuilder->weld_button(u"browse"_ustr))
+ , m_xParameterEdit(m_xBuilder->weld_entry(u"parameterfield"_ustr))
+ , m_xCertMgrPathImg(m_xBuilder->weld_widget(u"lockcertimanager"_ustr))
+ , m_xCertMgrPathLabel(m_xBuilder->weld_label(u"label11"_ustr))
{
//fdo#65595, we need height-for-width support here, but for now we can
//bodge it
@@ -510,10 +505,46 @@ SvxSecurityTabPage::SvxSecurityTabPage(weld::Container* pPage, weld::DialogContr
m_xMacroSecPB->connect_clicked( LINK( this, SvxSecurityTabPage, MacroSecPBHdl ) );
m_xCertPathPB->connect_clicked( LINK( this, SvxSecurityTabPage, CertPathPBHdl ) );
m_xTSAURLsPB->connect_clicked( LINK( this, SvxSecurityTabPage, TSAURLsPBHdl ) );
+ m_xCertMgrPathLB->connect_clicked( LINK( this, SvxSecurityTabPage, CertMgrPBHdl ) );
ActivatePage( rSet );
}
+IMPL_LINK_NOARG(SvxSecurityTabPage, CertMgrPBHdl, weld::Button&, void)
+{
+ try
+ {
+ FileDialogHelper aHelper(css::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
+ FileDialogFlags::NONE, nullptr);
+ OUString sPath = m_xParameterEdit->get_text();
+ if (sPath.isEmpty())
+ sPath = "/usr/bin";
+
+ OUString sUrl;
+ osl::FileBase::getFileURLFromSystemPath(sPath, sUrl);
+ aHelper.SetDisplayDirectory(sUrl);
+
+ if (ERRCODE_NONE == aHelper.Execute())
+ {
+ sUrl = aHelper.GetPath();
+ if (osl::FileBase::getSystemPathFromFileURL(sUrl, sPath) != osl::FileBase::E_None)
+ {
+ sPath.clear();
+ }
+ m_xParameterEdit->set_text(sPath);
+ }
+ std::shared_ptr<comphelper::ConfigurationChanges> pBatch(
+ comphelper::ConfigurationChanges::create());
+ OUString sCurCertMgr = m_xParameterEdit->get_text();
+ officecfg::Office::Common::Security::Scripting::CertMgrPath::set(sCurCertMgr, pBatch);
+ pBatch->commit();
+ }
+ catch (const uno::Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("cui.options", "CertMgrPBHdl");
+ }
+}
+
SvxSecurityTabPage::~SvxSecurityTabPage()
{
}
@@ -739,11 +770,51 @@ void SvxSecurityTabPage::InitControls()
m_xMasterPasswordFT->set_sensitive(true);
}
}
+
+ if (officecfg::Office::Common::Passwords::UseStorage::isReadOnly())
+ {
+ m_xSavePasswordsCB->set_sensitive(false);
+ m_xShowConnectionsPB->set_sensitive(false);
+ m_xSavePasswordsImg->set_visible(true);
+ m_xMasterPasswordCB->set_sensitive(false);
+ m_xMasterPasswordPB->set_sensitive(false);
+ m_xMasterPasswordImg->set_visible(true);
+ }
}
catch (const Exception&)
{
m_xSavePasswordsCB->set_sensitive( false );
}
+
+ try
+ {
+ OUString sCurCertMgr = officecfg::Office::Common::Security::Scripting::CertMgrPath::get();
+
+ if (!sCurCertMgr.isEmpty())
+ m_xParameterEdit->set_text(sCurCertMgr);
+
+ bool bEnable = !officecfg::Office::Common::Security::Scripting::CertMgrPath::isReadOnly();
+ m_xCertMgrPathLB->set_sensitive(bEnable);
+ m_xParameterEdit->set_sensitive(bEnable);
+ m_xCertMgrPathLabel->set_sensitive(bEnable);
+ m_xCertMgrPathImg->set_visible(!bEnable);
+
+ bEnable = !officecfg::Office::Common::Security::Scripting::TSAURLs::isReadOnly();
+ m_xTSAURLsPB->set_sensitive(bEnable);
+ m_xTSAURLsLabel->set_sensitive(bEnable);
+ m_xTSAURLsImg->set_visible(!bEnable);
+
+#ifndef UNX
+ bEnable = !officecfg::Office::Common::Security::Scripting::CertDir::isReadOnly() ||
+ !officecfg::Office::Common::Security::Scripting::ManualCertDir::isReadOnly();
+ m_xCertPathPB->set_sensitive(bEnable);
+ m_xCertPathLabel->set_sensitive(bEnable);
+ m_xCertPathImg->set_visible(!bEnable);
+#endif
+ }
+ catch (const uno::Exception&)
+ {
+ }
}
std::unique_ptr<SfxTabPage> SvxSecurityTabPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet )
@@ -762,39 +833,56 @@ DeactivateRC SvxSecurityTabPage::DeactivatePage( SfxItemSet* _pSet )
return DeactivateRC::LeavePage;
}
-namespace
+OUString SvxSecurityTabPage::GetAllStrings()
{
- bool CheckAndSave( SvtSecurityOptions::EOption _eOpt, const bool _bIsChecked, bool& _rModified )
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label4"_ustr, u"label2"_ustr, u"masterpasswordtext"_ustr,
+ u"nopasswordsave"_ustr, u"label3"_ustr, u"label5"_ustr, u"label8"_ustr,
+ u"label7"_ustr, u"label10"_ustr, u"label9"_ustr, u"label12"_ustr,
+ u"label11"_ustr };
+
+ for (const auto& label : labels)
{
- bool bModified = false;
- if ( !SvtSecurityOptions::IsReadOnly( _eOpt ) )
- {
- bModified = SvtSecurityOptions::IsOptionSet( _eOpt ) != _bIsChecked;
- if ( bModified )
- {
- SvtSecurityOptions::SetOption( _eOpt, _bIsChecked );
- _rModified = true;
- }
- }
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"savepassword"_ustr, u"usemasterpassword"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
- return bModified;
+ // TODO: Should we exclude button strings from the search?
+ // button id: "browse" is excluded
+ OUString buttons[] = { u"options"_ustr, u"connections"_ustr, u"masterpassword"_ustr, u"macro"_ustr, u"cert"_ustr, u"tsas"_ustr };
+
+ for (const auto& btn : buttons)
+ {
+ if (const auto& pString = m_xBuilder->weld_button(btn))
+ sAllStrings += pString->get_label() + " ";
}
+
+ return sAllStrings.replaceAll("_", "");
}
bool SvxSecurityTabPage::FillItemSet( SfxItemSet* )
{
bool bModified = false;
- if (m_xSecOptDlg)
+ if (m_xSecOptDlg) {
+ bModified = m_xSecOptDlg->SetSecurityOptions();
+ }
+
+ std::shared_ptr<comphelper::ConfigurationChanges> pBatch(
+ comphelper::ConfigurationChanges::create());
+ if (m_xParameterEdit->get_value_changed_from_saved())
{
- CheckAndSave( SvtSecurityOptions::EOption::DocWarnSaveOrSend, m_xSecOptDlg->IsSaveOrSendDocsChecked(), bModified );
- CheckAndSave( SvtSecurityOptions::EOption::DocWarnSigning, m_xSecOptDlg->IsSignDocsChecked(), bModified );
- CheckAndSave( SvtSecurityOptions::EOption::DocWarnPrint, m_xSecOptDlg->IsPrintDocsChecked(), bModified );
- CheckAndSave( SvtSecurityOptions::EOption::DocWarnCreatePdf, m_xSecOptDlg->IsCreatePdfChecked(), bModified );
- CheckAndSave( SvtSecurityOptions::EOption::DocWarnRemovePersonalInfo, m_xSecOptDlg->IsRemovePersInfoChecked(), bModified );
- CheckAndSave( SvtSecurityOptions::EOption::DocWarnRecommendPassword, m_xSecOptDlg->IsRecommPasswdChecked(), bModified );
- CheckAndSave( SvtSecurityOptions::EOption::CtrlClickHyperlink, m_xSecOptDlg->IsCtrlHyperlinkChecked(), bModified );
- CheckAndSave( SvtSecurityOptions::EOption::BlockUntrustedRefererLinks, m_xSecOptDlg->IsBlockUntrustedRefererLinksChecked(), bModified );
+ OUString sCurCertMgr = m_xParameterEdit->get_text();
+ officecfg::Office::Common::Security::Scripting::CertMgrPath::set(sCurCertMgr, pBatch);
+ pBatch->commit();
}
return bModified;
@@ -825,16 +913,16 @@ struct SvxEMailTabPage_Impl
};
SvxEMailTabPage::SvxEMailTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage( pPage, pController, "cui/ui/optemailpage.ui", "OptEmailPage", &rSet)
+ : SfxTabPage( pPage, pController, u"cui/ui/optemailpage.ui"_ustr, u"OptEmailPage"_ustr, &rSet)
, pImpl(new SvxEMailTabPage_Impl)
- , m_xMailContainer(m_xBuilder->weld_container("program"))
- , m_xMailerURLFI(m_xBuilder->weld_image("lockemail"))
- , m_xMailerURLED(m_xBuilder->weld_entry("url"))
- , m_xMailerURLPB(m_xBuilder->weld_button("browse"))
- , m_xSuppressHiddenContainer(m_xBuilder->weld_container("suppressHiddenCont"))
- , m_xSuppressHiddenFI(m_xBuilder->weld_image("lockSuppressHidden"))
- , m_xSuppressHidden(m_xBuilder->weld_check_button("suppressHidden"))
- , m_xDefaultFilterFT(m_xBuilder->weld_label("browsetitle"))
+ , m_xMailContainer(m_xBuilder->weld_container(u"program"_ustr))
+ , m_xMailerURLFI(m_xBuilder->weld_image(u"lockemail"_ustr))
+ , m_xMailerURLED(m_xBuilder->weld_entry(u"url"_ustr))
+ , m_xMailerURLPB(m_xBuilder->weld_button(u"browse"_ustr))
+ , m_xSuppressHiddenContainer(m_xBuilder->weld_container(u"suppressHiddenCont"_ustr))
+ , m_xSuppressHiddenFI(m_xBuilder->weld_image(u"lockSuppressHidden"_ustr))
+ , m_xSuppressHidden(m_xBuilder->weld_check_button(u"suppressHidden"_ustr))
+ , m_xDefaultFilterFT(m_xBuilder->weld_label(u"browsetitle"_ustr))
{
m_sDefaultFilterName = m_xDefaultFilterFT->get_label();
m_xMailerURLPB->connect_clicked( LINK( this, SvxEMailTabPage, FileDialogHdl_Impl ) );
@@ -855,6 +943,22 @@ std::unique_ptr<SfxTabPage> SvxEMailTabPage::Create( weld::Container* pPage, wel
/* -------------------------------------------------------------------------*/
+OUString SvxEMailTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"browsetitle"_ustr, u"suppress"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
+/* -------------------------------------------------------------------------*/
+
bool SvxEMailTabPage::FillItemSet( SfxItemSet* )
{
std::shared_ptr<comphelper::ConfigurationChanges> batch(
@@ -914,7 +1018,7 @@ IMPL_LINK_NOARG(SvxEMailTabPage, FileDialogHdl_Impl, weld::Button&, void)
OUString sUrl;
osl::FileBase::getFileURLFromSystemPath(sPath, sUrl);
aHelper.SetDisplayDirectory(sUrl);
- aHelper.AddFilter( m_sDefaultFilterName, "*");
+ aHelper.AddFilter( m_sDefaultFilterName, u"*"_ustr);
if ( ERRCODE_NONE == aHelper.Execute() )
{
diff --git a/cui/source/options/optinet2.hxx b/cui/source/options/optinet2.hxx
index 4d03d2d04337..e05a79be029b 100644
--- a/cui/source/options/optinet2.hxx
+++ b/cui/source/options/optinet2.hxx
@@ -30,25 +30,27 @@ class SvxProxyTabPage : public SfxTabPage
{
private:
+ std::unique_ptr<weld::Label> m_xProxyModeFT;
std::unique_ptr<weld::ComboBox> m_xProxyModeLB;
+ std::unique_ptr<weld::Widget> m_xProxyModeImg;
std::unique_ptr<weld::Label> m_xHttpProxyFT;
std::unique_ptr<weld::Entry> m_xHttpProxyED;
+ std::unique_ptr<weld::Widget> m_xHttpProxyImg;
std::unique_ptr<weld::Label> m_xHttpPortFT;
std::unique_ptr<weld::Entry> m_xHttpPortED;
+ std::unique_ptr<weld::Widget> m_xHttpPortImg;
std::unique_ptr<weld::Label> m_xHttpsProxyFT;
std::unique_ptr<weld::Entry> m_xHttpsProxyED;
+ std::unique_ptr<weld::Widget> m_xHttpsProxyImg;
std::unique_ptr<weld::Label> m_xHttpsPortFT;
std::unique_ptr<weld::Entry> m_xHttpsPortED;
-
- std::unique_ptr<weld::Label> m_xFtpProxyFT;
- std::unique_ptr<weld::Entry> m_xFtpProxyED;
- std::unique_ptr<weld::Label> m_xFtpPortFT;
- std::unique_ptr<weld::Entry> m_xFtpPortED;
+ std::unique_ptr<weld::Widget> m_xHttpsPortImg;
std::unique_ptr<weld::Label> m_xNoProxyForFT;
std::unique_ptr<weld::Entry> m_xNoProxyForED;
+ std::unique_ptr<weld::Widget> m_xNoProxyForImg;
std::unique_ptr<weld::Label> m_xNoProxyDescFT;
css::uno::Reference< css::uno::XInterface > m_xConfigurationUpdateAccess;
@@ -68,6 +70,9 @@ public:
SvxProxyTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
virtual ~SvxProxyTabPage() override;
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
@@ -87,9 +92,11 @@ private:
std::unique_ptr<weld::Button> m_xSecurityOptionsPB;
std::unique_ptr<weld::CheckButton> m_xSavePasswordsCB;
+ std::unique_ptr<weld::Widget> m_xSavePasswordsImg;
std::unique_ptr<weld::Button> m_xShowConnectionsPB;
std::unique_ptr<weld::CheckButton> m_xMasterPasswordCB;
+ std::unique_ptr<weld::Widget> m_xMasterPasswordImg;
std::unique_ptr<weld::Label> m_xMasterPasswordFT;
std::unique_ptr<weld::Button> m_xMasterPasswordPB;
@@ -98,12 +105,21 @@ private:
std::unique_ptr<weld::Container> m_xCertFrame;
std::unique_ptr<weld::Button> m_xCertPathPB;
+ std::unique_ptr<weld::Widget> m_xCertPathImg;
+ std::unique_ptr<weld::Label> m_xCertPathLabel;
std::unique_ptr<weld::Container> m_xTSAURLsFrame;
std::unique_ptr<weld::Button> m_xTSAURLsPB;
+ std::unique_ptr<weld::Widget> m_xTSAURLsImg;
+ std::unique_ptr<weld::Label> m_xTSAURLsLabel;
std::unique_ptr<weld::Label> m_xNoPasswordSaveFT;
+ std::unique_ptr<weld::Button> m_xCertMgrPathLB;
+ std::unique_ptr<weld::Entry> m_xParameterEdit;
+ std::unique_ptr<weld::Widget> m_xCertMgrPathImg;
+ std::unique_ptr<weld::Label> m_xCertMgrPathLabel;
+
DECL_LINK(SecurityOptionsHdl, weld::Button&, void);
DECL_LINK(SavePasswordHdl, weld::Toggleable&, void);
DECL_LINK(MasterPasswordHdl, weld::Button&, void);
@@ -112,6 +128,7 @@ private:
DECL_LINK(MacroSecPBHdl, weld::Button&, void );
DECL_LINK(CertPathPBHdl, weld::Button&, void );
DECL_LINK(TSAURLsPBHdl, weld::Button&, void );
+ DECL_LINK(CertMgrPBHdl, weld::Button&, void );
void InitControls();
@@ -123,6 +140,9 @@ public:
SvxSecurityTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
virtual ~SvxSecurityTabPage() override;
+
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
@@ -151,6 +171,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx
index ce535b9f6a6c..323fb34d3b6b 100644
--- a/cui/source/options/optjava.cxx
+++ b/cui/source/options/optjava.cxx
@@ -33,6 +33,7 @@
#include <officecfg/Office/Common.hxx>
#include <osl/file.hxx>
+#include <rtl/bootstrap.hxx>
#include <strings.hrc>
#include <vcl/svapp.hxx>
@@ -44,14 +45,12 @@
#include <svtools/restartdialog.hxx>
#include <sfx2/filedlghelper.hxx>
#include <sfx2/inputdlg.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
-#include <com/sun/star/ucb/XContentProvider.hpp>
#if HAVE_FEATURE_JAVA
#include <jvmfwk/framework.hxx>
#endif
@@ -60,27 +59,27 @@
#define CLASSPATH_DELIMITER SAL_PATHSEPARATOR
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno;
// class SvxJavaOptionsPage ----------------------------------------------
SvxJavaOptionsPage::SvxJavaOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optadvancedpage.ui", "OptAdvancedPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/optadvancedpage.ui"_ustr, u"OptAdvancedPage"_ustr, &rSet)
, m_aResetIdle("cui options SvxJavaOptionsPage Reset")
, xDialogListener(new ::svt::DialogClosedListener())
- , m_xJavaEnableCB(m_xBuilder->weld_check_button("javaenabled"))
- , m_xJavaList(m_xBuilder->weld_tree_view("javas"))
- , m_xJavaPathText(m_xBuilder->weld_label("javapath"))
- , m_xAddBtn(m_xBuilder->weld_button("add"))
- , m_xParameterBtn(m_xBuilder->weld_button("parameters"))
- , m_xClassPathBtn(m_xBuilder->weld_button("classpath"))
- , m_xExpertConfigBtn(m_xBuilder->weld_button("expertconfig"))
- , m_xExperimentalCB(m_xBuilder->weld_check_button("experimental"))
- , m_xMacroCB(m_xBuilder->weld_check_button("macrorecording"))
- , m_xAddDialogText(m_xBuilder->weld_label("selectruntime"))
- , m_xJavaFrame(m_xBuilder->weld_widget("javaframe"))
+ , m_xJavaEnableCB(m_xBuilder->weld_check_button(u"javaenabled"_ustr))
+ , m_xJavaList(m_xBuilder->weld_tree_view(u"javas"_ustr))
+ , m_xJavaPathText(m_xBuilder->weld_label(u"javapath"_ustr))
+ , m_xAddBtn(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xParameterBtn(m_xBuilder->weld_button(u"parameters"_ustr))
+ , m_xClassPathBtn(m_xBuilder->weld_button(u"classpath"_ustr))
+ , m_xExpertConfigBtn(m_xBuilder->weld_button(u"expertconfig"_ustr))
+ , m_xExperimentalCB(m_xBuilder->weld_check_button(u"experimental"_ustr))
+ , m_xExperimentalImg(m_xBuilder->weld_widget(u"lockexperimental"_ustr))
+ , m_xMacroCB(m_xBuilder->weld_check_button(u"macrorecording"_ustr))
+ , m_xMacroImg(m_xBuilder->weld_widget(u"lockmacrorecording"_ustr))
+ , m_xAddDialogText(m_xBuilder->weld_label(u"selectruntime"_ustr))
+ , m_xJavaFrame(m_xBuilder->weld_widget(u"javaframe"_ustr))
{
m_sInstallText = m_xJavaPathText->get_label();
m_sAddDialogText = m_xAddDialogText->get_label();
@@ -95,7 +94,7 @@ SvxJavaOptionsPage::SvxJavaOptionsPage(weld::Container* pPage, weld::DialogContr
std::vector<int> aWidths
{
m_xJavaList->get_checkbox_column_width(),
- o3tl::narrowing<int>(m_xJavaList->get_pixel_size("Sun Microsystems Inc.").Width())
+ o3tl::narrowing<int>(m_xJavaList->get_pixel_size(u"Sun Microsystems Inc."_ustr).Width())
};
m_xJavaList->set_column_fixed_widths(aWidths);
@@ -110,10 +109,16 @@ SvxJavaOptionsPage::SvxJavaOptionsPage(weld::Container* pPage, weld::DialogContr
m_xExpertConfigBtn->set_sensitive(false);
if (officecfg::Office::Common::Misc::MacroRecorderMode::isReadOnly())
+ {
m_xMacroCB->set_sensitive(false);
+ m_xMacroImg->set_visible(true);
+ }
if (officecfg::Office::Common::Misc::ExperimentalMode::isReadOnly())
+ {
m_xExperimentalCB->set_sensitive(false);
+ m_xExperimentalImg->set_visible(true);
+ }
xDialogListener->SetDialogClosedLink( LINK( this, SvxJavaOptionsPage, DialogClosedHdl ) );
@@ -434,14 +439,14 @@ void SvxJavaOptionsPage::AddFolder( const OUString& _rFolder )
{
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetFrameWeld(),
VclMessageType::Warning, VclButtonsType::Ok,
- CuiResId(RID_SVXSTR_JRE_NOT_RECOGNIZED)));
+ CuiResId(RID_CUISTR_JRE_NOT_RECOGNIZED)));
xBox->run();
}
else if ( JFW_E_FAILED_VERSION == eErr )
{
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetFrameWeld(),
VclMessageType::Warning, VclButtonsType::Ok,
- CuiResId(RID_SVXSTR_JRE_FAILED_VERSION)));
+ CuiResId(RID_CUISTR_JRE_FAILED_VERSION)));
xBox->run();
}
@@ -468,6 +473,36 @@ std::unique_ptr<SfxTabPage> SvxJavaOptionsPage::Create(weld::Container* pPage, w
return std::make_unique<SvxJavaOptionsPage>(pPage, pController, *rAttrSet);
}
+OUString SvxJavaOptionsPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"javapath"_ustr, u"selectruntime"_ustr, u"label12"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"javaenabled"_ustr, u"experimental"_ustr, u"macrorecording"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString buttons[] = { u"add"_ustr, u"parameters"_ustr, u"classpath"_ustr, u"expertconfig"_ustr };
+
+ for (const auto& btn : buttons)
+ {
+ if (const auto& pString = m_xBuilder->weld_button(btn))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxJavaOptionsPage::FillItemSet( SfxItemSet* /*rCoreSet*/ )
{
bool bModified = false;
@@ -603,13 +638,13 @@ void SvxJavaOptionsPage::FillUserData()
// class SvxJavaParameterDlg ---------------------------------------------
SvxJavaParameterDlg::SvxJavaParameterDlg(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/javastartparametersdialog.ui",
- "JavaStartParameters")
- , m_xParameterEdit(m_xBuilder->weld_entry("parameterfield"))
- , m_xAssignBtn(m_xBuilder->weld_button("assignbtn"))
- , m_xAssignedList(m_xBuilder->weld_tree_view("assignlist"))
- , m_xRemoveBtn(m_xBuilder->weld_button("removebtn"))
- , m_xEditBtn(m_xBuilder->weld_button("editbtn"))
+ : GenericDialogController(pParent, u"cui/ui/javastartparametersdialog.ui"_ustr,
+ u"JavaStartParameters"_ustr)
+ , m_xParameterEdit(m_xBuilder->weld_entry(u"parameterfield"_ustr))
+ , m_xAssignBtn(m_xBuilder->weld_button(u"assignbtn"_ustr))
+ , m_xAssignedList(m_xBuilder->weld_tree_view(u"assignlist"_ustr))
+ , m_xRemoveBtn(m_xBuilder->weld_button(u"removebtn"_ustr))
+ , m_xEditBtn(m_xBuilder->weld_button(u"editbtn"_ustr))
{
m_xAssignedList->set_size_request(m_xAssignedList->get_approximate_digit_width() * 54,
m_xAssignedList->get_height_rows(6));
@@ -712,7 +747,7 @@ void SvxJavaParameterDlg::EditParameter()
if (nPos == -1)
return;
- InputDialog aParamEditDlg(m_xDialog.get(), CuiResId(RID_SVXSTR_JAVA_START_PARAM));
+ InputDialog aParamEditDlg(m_xDialog.get(), CuiResId(RID_CUISTR_JAVA_START_PARAM));
OUString editableClassPath = m_xAssignedList->get_selected_text();
aParamEditDlg.SetEntryText(editableClassPath);
aParamEditDlg.HideHelpBtn();
@@ -768,11 +803,11 @@ void SvxJavaParameterDlg::SetParameters( std::vector< OUString > const & rParams
// class SvxJavaClassPathDlg ---------------------------------------------
SvxJavaClassPathDlg::SvxJavaClassPathDlg(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/javaclasspathdialog.ui", "JavaClassPath")
- , m_xPathList(m_xBuilder->weld_tree_view("paths"))
- , m_xAddArchiveBtn(m_xBuilder->weld_button("archive"))
- , m_xAddPathBtn(m_xBuilder->weld_button("folder"))
- , m_xRemoveBtn(m_xBuilder->weld_button("remove"))
+ : GenericDialogController(pParent, u"cui/ui/javaclasspathdialog.ui"_ustr, u"JavaClassPath"_ustr)
+ , m_xPathList(m_xBuilder->weld_tree_view(u"paths"_ustr))
+ , m_xAddArchiveBtn(m_xBuilder->weld_button(u"archive"_ustr))
+ , m_xAddPathBtn(m_xBuilder->weld_button(u"folder"_ustr))
+ , m_xRemoveBtn(m_xBuilder->weld_button(u"remove"_ustr))
{
m_xPathList->set_size_request(m_xPathList->get_approximate_digit_width() * 54,
m_xPathList->get_height_rows(8));
@@ -792,8 +827,8 @@ SvxJavaClassPathDlg::~SvxJavaClassPathDlg()
IMPL_LINK_NOARG(SvxJavaClassPathDlg, AddArchiveHdl_Impl, weld::Button&, void)
{
sfx2::FileDialogHelper aDlg(TemplateDescription::FILEOPEN_SIMPLE, FileDialogFlags::NONE, m_xDialog.get());
- aDlg.SetTitle( CuiResId( RID_SVXSTR_ARCHIVE_TITLE ) );
- aDlg.AddFilter( CuiResId( RID_SVXSTR_ARCHIVE_HEADLINE ), "*.jar;*.zip" );
+ aDlg.SetTitle( CuiResId( RID_CUISTR_ARCHIVE_TITLE ) );
+ aDlg.AddFilter( CuiResId( RID_CUISTR_ARCHIVE_HEADLINE ), u"*.jar;*.zip"_ustr );
aDlg.SetContext(sfx2::FileDialogHelper::JavaClassPath);
OUString sFolder;
if (m_xPathList->count_selected_rows() > 0)
@@ -812,12 +847,12 @@ IMPL_LINK_NOARG(SvxJavaClassPathDlg, AddArchiveHdl_Impl, weld::Button&, void)
INetURLObject aURL( sURL );
if ( !IsPathDuplicate( sFile ) )
{
- m_xPathList->append("", sFile, SvFileInformationManager::GetImageId(aURL));
+ m_xPathList->append(u""_ustr, sFile, SvFileInformationManager::GetImageId(aURL));
m_xPathList->select(m_xPathList->n_children() - 1);
}
else
{
- OUString sMsg( CuiResId( RID_SVXSTR_MULTIFILE_DBL_ERR ) );
+ OUString sMsg( CuiResId( RID_CUISTR_MULTIFILE_DBL_ERR ) );
sMsg = sMsg.replaceFirst( "%1", sFile );
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok, sMsg));
@@ -826,7 +861,7 @@ IMPL_LINK_NOARG(SvxJavaClassPathDlg, AddArchiveHdl_Impl, weld::Button&, void)
}
else
{
- OUString sMsg( CuiResId( RID_SVXSTR_CANNOTCONVERTURL_ERR ) );
+ OUString sMsg( CuiResId( RID_CUISTR_CANNOTCONVERTURL_ERR ) );
sMsg = sMsg.replaceFirst( "%1", sURL );
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok, sMsg));
@@ -860,12 +895,12 @@ IMPL_LINK_NOARG(SvxJavaClassPathDlg, AddPathHdl_Impl, weld::Button&, void)
{
if ( !IsPathDuplicate( sNewFolder ) )
{
- m_xPathList->append("", sNewFolder, SvFileInformationManager::GetImageId(aURL));
+ m_xPathList->append(u""_ustr, sNewFolder, SvFileInformationManager::GetImageId(aURL));
m_xPathList->select(m_xPathList->n_children() - 1);
}
else
{
- OUString sMsg( CuiResId( RID_SVXSTR_MULTIFILE_DBL_ERR ) );
+ OUString sMsg( CuiResId( RID_CUISTR_MULTIFILE_DBL_ERR ) );
sMsg = sMsg.replaceFirst( "%1", sNewFolder );
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok, sMsg));
@@ -874,7 +909,7 @@ IMPL_LINK_NOARG(SvxJavaClassPathDlg, AddPathHdl_Impl, weld::Button&, void)
}
else
{
- OUString sMsg( CuiResId( RID_SVXSTR_CANNOTCONVERTURL_ERR ) );
+ OUString sMsg( CuiResId( RID_CUISTR_CANNOTCONVERTURL_ERR ) );
sMsg = sMsg.replaceFirst( "%1", sFolderURL );
std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok, sMsg));
@@ -936,6 +971,7 @@ OUString SvxJavaClassPathDlg::GetClassPath() const
return sPath.makeStringAndClear();
}
+#if HAVE_FEATURE_JAVA
void SvxJavaClassPathDlg::SetClassPath( const OUString& _rPath )
{
if ( m_sOldPath.isEmpty() )
@@ -943,20 +979,27 @@ void SvxJavaClassPathDlg::SetClassPath( const OUString& _rPath )
m_xPathList->clear();
if (!_rPath.isEmpty())
{
- sal_Int32 nIdx = 0;
- do
+ std::vector paths = jfw_convertUserPathList(_rPath);
+ for (auto const& path : paths)
{
- OUString sToken = _rPath.getToken( 0, CLASSPATH_DELIMITER, nIdx );
OUString sURL;
- osl::FileBase::getFileURLFromSystemPath(sToken, sURL); // best effort
+ if (path.startsWith("$"))
+ {
+ sURL = path;
+ rtl::Bootstrap::expandMacros(sURL);
+ }
+ else
+ {
+ osl::FileBase::getFileURLFromSystemPath(path, sURL);
+ }
INetURLObject aURL( sURL );
- m_xPathList->append("", sToken, SvFileInformationManager::GetImageId(aURL));
+ m_xPathList->append(u""_ustr, path, SvFileInformationManager::GetImageId(aURL));
}
- while (nIdx>=0);
// select first entry
m_xPathList->select(0);
}
SelectHdl_Impl(*m_xPathList);
}
+#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optjava.hxx b/cui/source/options/optjava.hxx
index 097b7ffb5336..84422c903056 100644
--- a/cui/source/options/optjava.hxx
+++ b/cui/source/options/optjava.hxx
@@ -75,7 +75,9 @@ private:
std::unique_ptr<SvxJavaClassPathDlg> m_xPathDlg;
std::unique_ptr<weld::CheckButton> m_xExperimentalCB;
+ std::unique_ptr<weld::Widget> m_xExperimentalImg;
std::unique_ptr<weld::CheckButton> m_xMacroCB;
+ std::unique_ptr<weld::Widget> m_xMacroImg;
std::unique_ptr<weld::Label> m_xAddDialogText;
@@ -108,6 +110,8 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
virtual void FillUserData() override;
@@ -200,7 +204,9 @@ public:
void SetFocus() { m_xPathList->grab_focus(); }
OUString GetClassPath() const;
+#if HAVE_FEATURE_JAVA
void SetClassPath( const OUString& _rPath );
+#endif
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optjsearch.cxx b/cui/source/options/optjsearch.cxx
index 4a2c31c49f76..34c4faf149c6 100644
--- a/cui/source/options/optjsearch.cxx
+++ b/cui/source/options/optjsearch.cxx
@@ -22,30 +22,28 @@
#include <i18nutil/transliteration.hxx>
#include "optjsearch.hxx"
-using namespace com::sun::star::i18n;
-
SvxJSearchOptionsPage::SvxJSearchOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optjsearchpage.ui", "OptJSearchPage", &rSet)
- , m_xMatchCase(m_xBuilder->weld_check_button("matchcase"))
- , m_xMatchFullHalfWidth(m_xBuilder->weld_check_button("matchfullhalfwidth"))
- , m_xMatchHiraganaKatakana(m_xBuilder->weld_check_button("matchhiraganakatakana"))
- , m_xMatchContractions(m_xBuilder->weld_check_button("matchcontractions"))
- , m_xMatchMinusDashChoon(m_xBuilder->weld_check_button("matchminusdashchoon"))
- , m_xMatchRepeatCharMarks(m_xBuilder->weld_check_button("matchrepeatcharmarks"))
- , m_xMatchVariantFormKanji(m_xBuilder->weld_check_button("matchvariantformkanji"))
- , m_xMatchOldKanaForms(m_xBuilder->weld_check_button("matcholdkanaforms"))
- , m_xMatchDiziDuzu(m_xBuilder->weld_check_button("matchdiziduzu"))
- , m_xMatchBavaHafa(m_xBuilder->weld_check_button("matchbavahafa"))
- , m_xMatchTsithichiDhizi(m_xBuilder->weld_check_button("matchtsithichidhizi"))
- , m_xMatchHyuiyuByuvyu(m_xBuilder->weld_check_button("matchhyuiyubyuvyu"))
- , m_xMatchSesheZeje(m_xBuilder->weld_check_button("matchseshezeje"))
- , m_xMatchIaiya(m_xBuilder->weld_check_button("matchiaiya"))
- , m_xMatchKiku(m_xBuilder->weld_check_button("matchkiku"))
- , m_xMatchProlongedSoundMark(m_xBuilder->weld_check_button("matchprolongedsoundmark"))
- , m_xIgnorePunctuation(m_xBuilder->weld_check_button("ignorepunctuation"))
- , m_xIgnoreWhitespace(m_xBuilder->weld_check_button("ignorewhitespace"))
- , m_xIgnoreMiddleDot(m_xBuilder->weld_check_button("ignoremiddledot"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optjsearchpage.ui"_ustr, u"OptJSearchPage"_ustr, &rSet)
+ , m_xMatchCase(m_xBuilder->weld_check_button(u"matchcase"_ustr))
+ , m_xMatchFullHalfWidth(m_xBuilder->weld_check_button(u"matchfullhalfwidth"_ustr))
+ , m_xMatchHiraganaKatakana(m_xBuilder->weld_check_button(u"matchhiraganakatakana"_ustr))
+ , m_xMatchContractions(m_xBuilder->weld_check_button(u"matchcontractions"_ustr))
+ , m_xMatchMinusDashChoon(m_xBuilder->weld_check_button(u"matchminusdashchoon"_ustr))
+ , m_xMatchRepeatCharMarks(m_xBuilder->weld_check_button(u"matchrepeatcharmarks"_ustr))
+ , m_xMatchVariantFormKanji(m_xBuilder->weld_check_button(u"matchvariantformkanji"_ustr))
+ , m_xMatchOldKanaForms(m_xBuilder->weld_check_button(u"matcholdkanaforms"_ustr))
+ , m_xMatchDiziDuzu(m_xBuilder->weld_check_button(u"matchdiziduzu"_ustr))
+ , m_xMatchBavaHafa(m_xBuilder->weld_check_button(u"matchbavahafa"_ustr))
+ , m_xMatchTsithichiDhizi(m_xBuilder->weld_check_button(u"matchtsithichidhizi"_ustr))
+ , m_xMatchHyuiyuByuvyu(m_xBuilder->weld_check_button(u"matchhyuiyubyuvyu"_ustr))
+ , m_xMatchSesheZeje(m_xBuilder->weld_check_button(u"matchseshezeje"_ustr))
+ , m_xMatchIaiya(m_xBuilder->weld_check_button(u"matchiaiya"_ustr))
+ , m_xMatchKiku(m_xBuilder->weld_check_button(u"matchkiku"_ustr))
+ , m_xMatchProlongedSoundMark(m_xBuilder->weld_check_button(u"matchprolongedsoundmark"_ustr))
+ , m_xIgnorePunctuation(m_xBuilder->weld_check_button(u"ignorepunctuation"_ustr))
+ , m_xIgnoreWhitespace(m_xBuilder->weld_check_button(u"ignorewhitespace"_ustr))
+ , m_xIgnoreMiddleDot(m_xBuilder->weld_check_button(u"ignoremiddledot"_ustr))
, nTransliterationFlags(TransliterationFlags::NONE)
, bSaveOptions(true)
{
@@ -201,6 +199,45 @@ void SvxJSearchOptionsPage::Reset( const SfxItemSet* )
m_xIgnoreMiddleDot ->save_state();
}
+OUString SvxJSearchOptionsPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"matchcase"_ustr,
+ u"matchfullhalfwidth"_ustr,
+ u"matchhiraganakatakana"_ustr,
+ u"matchcontractions"_ustr,
+ u"matchminusdashchoon"_ustr,
+ u"matchrepeatcharmarks"_ustr,
+ u"matchvariantformkanji"_ustr,
+ u"matcholdkanaforms"_ustr,
+ u"ignorepunctuation"_ustr,
+ u"ignorewhitespace"_ustr,
+ u"matchdiziduzu"_ustr,
+ u"matchbavahafa"_ustr,
+ u"matchtsithichidhizi"_ustr,
+ u"matchhyuiyubyuvyu"_ustr,
+ u"matchseshezeje"_ustr,
+ u"matchiaiya"_ustr,
+ u"matchkiku"_ustr,
+ u"matchprolongedsoundmark"_ustr,
+ u"ignoremiddledot"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
bool SvxJSearchOptionsPage::FillItemSet( SfxItemSet* )
{
diff --git a/cui/source/options/optjsearch.hxx b/cui/source/options/optjsearch.hxx
index f0da350ae651..96b7d73f1f11 100644
--- a/cui/source/options/optjsearch.hxx
+++ b/cui/source/options/optjsearch.hxx
@@ -59,6 +59,8 @@ public:
virtual ~SvxJSearchOptionsPage() override;
static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet);
+ virtual OUString GetAllStrings() override;
+
virtual void Reset( const SfxItemSet* rSet ) override;
virtual bool FillItemSet( SfxItemSet* rSet ) override;
diff --git a/cui/source/options/optlanguagetool.cxx b/cui/source/options/optlanguagetool.cxx
new file mode 100644
index 000000000000..0f3636ebec46
--- /dev/null
+++ b/cui/source/options/optlanguagetool.cxx
@@ -0,0 +1,173 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include "optlanguagetool.hxx"
+#include <officecfg/Office/Linguistic.hxx>
+#include <sal/log.hxx>
+#include <dialmgr.hxx>
+#include <strings.hrc>
+
+using LanguageToolCfg = officecfg::Office::Linguistic::GrammarChecking::LanguageTool;
+constexpr OUString LANGUAGETOOL_DEFAULT_URL = u"https://api.languagetool.org/v2"_ustr;
+constexpr OUString LANGUAGETOOLPLUS_DEFAULT_URL = u"https://api.languagetoolplus.com/v2"_ustr;
+
+OptLanguageToolTabPage::OptLanguageToolTabPage(weld::Container* pPage,
+ weld::DialogController* pController,
+ const SfxItemSet& rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/langtoolconfigpage.ui"_ustr, u"OptLangToolPage"_ustr,
+ &rSet)
+ , m_xBaseURLED(m_xBuilder->weld_entry(u"baseurl"_ustr))
+ , m_xBaseURLImg(m_xBuilder->weld_widget(u"lockbaseurl"_ustr))
+ , m_xUsernameED(m_xBuilder->weld_entry(u"username"_ustr))
+ , m_xUsernameImg(m_xBuilder->weld_widget(u"lockusername"_ustr))
+ , m_xApiKeyED(m_xBuilder->weld_entry(u"apikey"_ustr))
+ , m_xApiKeyImg(m_xBuilder->weld_widget(u"lockapikey"_ustr))
+ , m_xRestProtocol(m_xBuilder->weld_entry(u"restprotocol"_ustr))
+ , m_xRestProtocolImg(m_xBuilder->weld_widget(u"lockrestprotocol"_ustr))
+ , m_xActivateBox(m_xBuilder->weld_check_button(u"activate"_ustr))
+ , m_xActivateBoxImg(m_xBuilder->weld_widget(u"lockactivate"_ustr))
+ , m_xSSLDisableVerificationBox(m_xBuilder->weld_check_button(u"verifyssl"_ustr))
+ , m_xSSLDisableVerificationBoxImg(m_xBuilder->weld_widget(u"lockverifyssl"_ustr))
+ , m_xApiSettingsFrame(m_xBuilder->weld_frame(u"apisettings"_ustr))
+{
+ m_xActivateBox->connect_toggled(LINK(this, OptLanguageToolTabPage, CheckHdl));
+ EnableControls(LanguageToolCfg::IsEnabled::get());
+
+ // tdf#150494 Set default values as placeholder text
+ m_xBaseURLED->set_placeholder_text(CuiResId(RID_LANGUAGETOOL_LEAVE_EMPTY));
+ m_xUsernameED->set_placeholder_text(CuiResId(RID_LANGUAGETOOL_LEAVE_EMPTY));
+ m_xApiKeyED->set_placeholder_text(CuiResId(RID_LANGUAGETOOL_LEAVE_EMPTY));
+ m_xRestProtocol->set_placeholder_text(CuiResId(RID_LANGUAGETOOL_REST_LEAVE_EMPTY));
+}
+
+OptLanguageToolTabPage::~OptLanguageToolTabPage() {}
+
+void OptLanguageToolTabPage::EnableControls(bool bEnable)
+{
+ if (bEnable != LanguageToolCfg::IsEnabled::get())
+ {
+ auto batch(comphelper::ConfigurationChanges::create());
+ LanguageToolCfg::IsEnabled::set(bEnable, batch);
+ batch->commit();
+ }
+ m_xApiSettingsFrame->set_visible(bEnable);
+ m_xActivateBox->set_active(bEnable);
+ m_xActivateBox->set_sensitive(!LanguageToolCfg::IsEnabled::isReadOnly());
+ m_xActivateBoxImg->set_visible(LanguageToolCfg::IsEnabled::isReadOnly());
+ m_xSSLDisableVerificationBox->set_active(!LanguageToolCfg::SSLCertVerify::get());
+ m_xSSLDisableVerificationBox->set_sensitive(!LanguageToolCfg::SSLCertVerify::isReadOnly());
+ m_xSSLDisableVerificationBoxImg->set_visible(LanguageToolCfg::SSLCertVerify::isReadOnly());
+}
+
+IMPL_LINK_NOARG(OptLanguageToolTabPage, CheckHdl, weld::Toggleable&, void)
+{
+ EnableControls(m_xActivateBox->get_active());
+}
+
+void OptLanguageToolTabPage::Reset(const SfxItemSet*)
+{
+ // tdf#150494 If no URL has been set, use the default URL
+ OUString aUsername = LanguageToolCfg::Username::get().value_or("");
+ OUString aApiKey = LanguageToolCfg::ApiKey::get().value_or("");
+ OUString aBaseURL = LanguageToolCfg::BaseURL::get().value_or(
+ (aUsername.isEmpty() && aApiKey.isEmpty()) ? LANGUAGETOOL_DEFAULT_URL
+ : LANGUAGETOOLPLUS_DEFAULT_URL);
+
+ m_xBaseURLED->set_text(aBaseURL);
+ m_xBaseURLED->set_sensitive(!LanguageToolCfg::BaseURL::isReadOnly());
+ m_xBaseURLImg->set_visible(LanguageToolCfg::BaseURL::isReadOnly());
+
+ m_xUsernameED->set_text(aUsername);
+ m_xUsernameED->set_sensitive(!LanguageToolCfg::Username::isReadOnly());
+ m_xUsernameImg->set_visible(LanguageToolCfg::Username::isReadOnly());
+
+ m_xApiKeyED->set_text(aApiKey);
+ m_xApiKeyED->set_sensitive(!LanguageToolCfg::ApiKey::isReadOnly());
+ m_xApiKeyImg->set_visible(LanguageToolCfg::ApiKey::isReadOnly());
+
+ m_xRestProtocol->set_text(LanguageToolCfg::RestProtocol::get().value_or(""));
+ m_xRestProtocol->set_sensitive(!LanguageToolCfg::RestProtocol::isReadOnly());
+ m_xRestProtocolImg->set_visible(LanguageToolCfg::RestProtocol::isReadOnly());
+
+ m_xSSLDisableVerificationBox->set_active(!LanguageToolCfg::SSLCertVerify::get());
+ m_xSSLDisableVerificationBox->set_sensitive(!LanguageToolCfg::SSLCertVerify::isReadOnly());
+ m_xSSLDisableVerificationBoxImg->set_visible(LanguageToolCfg::SSLCertVerify::isReadOnly());
+}
+
+OUString OptLanguageToolTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = {
+ u"langtoolsettings"_ustr, u"disclaimer"_ustr, u"apisettingsheader"_ustr, u"base"_ustr,
+ u"urldesc"_ustr, u"usernamelbl"_ustr, u"usernamedesc"_ustr, u"apikeylbl"_ustr,
+ u"apikeydesc"_ustr, u"restlbl"_ustr, u"restdesc"_ustr
+ };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString checkButton[] = { u"activate"_ustr, u"verifyssl"_ustr };
+
+ for (const auto& check : checkButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ if (const auto& pString = m_xBuilder->weld_link_button(u"policy"_ustr))
+ sAllStrings += pString->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
+bool OptLanguageToolTabPage::FillItemSet(SfxItemSet*)
+{
+ auto batch(comphelper::ConfigurationChanges::create());
+
+ // tdf#150494 If no URL has been set, then save the default URL
+ // tdf#159395 If Username and ApiKey are set, then save the default URL for paid service
+ OUString aBaseURL = m_xBaseURLED->get_text();
+ OUString aUsername = m_xUsernameED->get_text();
+ OUString aApiKey = m_xApiKeyED->get_text();
+
+ if (aBaseURL.isEmpty()
+ || (aUsername.isEmpty() && aApiKey.isEmpty() && aBaseURL == LANGUAGETOOLPLUS_DEFAULT_URL))
+ aBaseURL = LANGUAGETOOL_DEFAULT_URL;
+
+ if (!aUsername.isEmpty() && !aApiKey.isEmpty() && aBaseURL == LANGUAGETOOL_DEFAULT_URL)
+ aBaseURL = LANGUAGETOOLPLUS_DEFAULT_URL;
+
+ LanguageToolCfg::BaseURL::set(aBaseURL, batch);
+ LanguageToolCfg::Username::set(aUsername, batch);
+ LanguageToolCfg::ApiKey::set(aApiKey, batch);
+ LanguageToolCfg::RestProtocol::set(m_xRestProtocol->get_text(), batch);
+ LanguageToolCfg::SSLCertVerify::set(!m_xSSLDisableVerificationBox->get_active(), batch);
+ batch->commit();
+ return false;
+}
+
+std::unique_ptr<SfxTabPage> OptLanguageToolTabPage::Create(weld::Container* pPage,
+ weld::DialogController* pController,
+ const SfxItemSet* rAttrSet)
+{
+ return std::make_unique<OptLanguageToolTabPage>(pPage, pController, *rAttrSet);
+}
diff --git a/cui/source/options/optlanguagetool.hxx b/cui/source/options/optlanguagetool.hxx
new file mode 100644
index 000000000000..3e3c3e8da0c7
--- /dev/null
+++ b/cui/source/options/optlanguagetool.hxx
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#pragma once
+#include <sfx2/tabdlg.hxx>
+#include <rtl/ustring.hxx>
+
+class OptLanguageToolTabPage : public SfxTabPage
+{
+public:
+ OptLanguageToolTabPage(weld::Container* pPage, weld::DialogController* pController,
+ const SfxItemSet& rSet);
+ virtual ~OptLanguageToolTabPage() override;
+ static std::unique_ptr<SfxTabPage>
+ Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet);
+
+ virtual OUString GetAllStrings() override;
+
+ virtual bool FillItemSet(SfxItemSet* rSet) override;
+ virtual void Reset(const SfxItemSet* rSet) override;
+
+private:
+ std::unique_ptr<weld::Entry> m_xBaseURLED;
+ std::unique_ptr<weld::Widget> m_xBaseURLImg;
+ std::unique_ptr<weld::Entry> m_xUsernameED;
+ std::unique_ptr<weld::Widget> m_xUsernameImg;
+ std::unique_ptr<weld::Entry> m_xApiKeyED;
+ std::unique_ptr<weld::Widget> m_xApiKeyImg;
+ std::unique_ptr<weld::Entry> m_xRestProtocol;
+ std::unique_ptr<weld::Widget> m_xRestProtocolImg;
+ std::unique_ptr<weld::CheckButton> m_xActivateBox;
+ std::unique_ptr<weld::Widget> m_xActivateBoxImg;
+ std::unique_ptr<weld::CheckButton> m_xSSLDisableVerificationBox;
+ std::unique_ptr<weld::Widget> m_xSSLDisableVerificationBoxImg;
+ std::unique_ptr<weld::Frame> m_xApiSettingsFrame;
+
+ void EnableControls(bool bEnable);
+
+ DECL_LINK(CheckHdl, weld::Toggleable&, void);
+};
diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx
index 3e0acc1c05d7..8cdc7997531b 100644
--- a/cui/source/options/optlingu.cxx
+++ b/cui/source/options/optlingu.cxx
@@ -17,11 +17,14 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <utility>
#include <vcl/settings.hxx>
#include <vcl/weld.hxx>
#include <i18nlangtag/languagetag.hxx>
#include <i18nlangtag/mslangid.hxx>
+#include <o3tl/safeint.hxx>
#include <officecfg/Office/Security.hxx>
+#include <officecfg/Office/Linguistic.hxx>
#include <unotools/lingucfg.hxx>
#include <unotools/linguprops.hxx>
#include <editeng/unolingu.hxx>
@@ -29,8 +32,9 @@
#include <sfx2/sfxsids.hrc>
#include <tools/debug.hxx>
#include <tools/urlobj.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <comphelper/dispatchcommand.hxx>
+#include <comphelper/lok.hxx>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/linguistic2/LinguServiceManager.hpp>
#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
@@ -43,6 +47,8 @@
#include <com/sun/star/linguistic2/XLinguProperties.hpp>
#include <com/sun/star/lang/XServiceDisplayName.hpp>
#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <unotools/extendedsecurityoptions.hxx>
#include <svl/eitem.hxx>
#include <vcl/svapp.hxx>
@@ -57,6 +63,7 @@
#include <ucbhelper/content.hxx>
+#include <set>
#include <vector>
#include <map>
@@ -67,25 +74,18 @@ using namespace css::uno;
using namespace css::linguistic2;
using namespace css::beans;
-constexpr OUStringLiteral cSpell(SN_SPELLCHECKER);
-constexpr OUStringLiteral cGrammar(SN_GRAMMARCHECKER);
-constexpr OUStringLiteral cHyph(SN_HYPHENATOR);
-constexpr OUStringLiteral cThes(SN_THESAURUS);
+constexpr OUString cSpell(SN_SPELLCHECKER);
+constexpr OUString cGrammar(SN_GRAMMARCHECKER);
+constexpr OUString cHyph(SN_HYPHENATOR);
+constexpr OUString cThes(SN_THESAURUS);
// static ----------------------------------------------------------------
static sal_Int32 lcl_SeqGetEntryPos(
const Sequence< OUString > &rSeq, std::u16string_view rEntry )
{
- sal_Int32 i;
- sal_Int32 nLen = rSeq.getLength();
- const OUString *pItem = rSeq.getConstArray();
- for (i = 0; i < nLen; ++i)
- {
- if (rEntry == pItem[i])
- break;
- }
- return i < nLen ? i : -1;
+ auto it = std::find(rSeq.begin(), rSeq.end(), rEntry);
+ return it == rSeq.end() ? -1 : std::distance(rSeq.begin(), it);
}
static bool KillFile_Impl( const OUString& rURL )
@@ -94,7 +94,7 @@ static bool KillFile_Impl( const OUString& rURL )
try
{
Content aCnt( rURL, uno::Reference< css::ucb::XCommandEnvironment >(), comphelper::getProcessComponentContext() );
- aCnt.executeCommand( "delete", Any( true ) );
+ aCnt.executeCommand( u"delete"_ustr, Any( true ) );
}
catch( ... )
{
@@ -127,12 +127,12 @@ class ModuleUserData_Impl
OUString sImplName;
public:
- ModuleUserData_Impl( const OUString& sImpName, bool bIsParent, bool bChecked, sal_uInt8 nSetType, sal_uInt8 nSetIndex ) :
+ ModuleUserData_Impl( OUString sImpName, bool bIsParent, bool bChecked, sal_uInt8 nSetType, sal_uInt8 nSetIndex ) :
bParent(bIsParent),
bIsChecked(bChecked),
nType(nSetType),
nIndex(nSetIndex),
- sImplName(sImpName)
+ sImplName(std::move(sImpName))
{
}
bool IsParent() const {return bParent;}
@@ -191,7 +191,9 @@ enum EID_OPTIONS
EID_NUM_PRE_BREAK,
EID_NUM_POST_BREAK,
EID_HYPH_AUTO,
- EID_HYPH_SPECIAL
+ EID_HYPH_SPECIAL,
+ EID_SPELL_CLOSED_COMPOUND,
+ EID_SPELL_HYPHENATED_COMPOUND
};
}
@@ -203,6 +205,8 @@ static OUString lcl_GetPropertyName( EID_OPTIONS eEntryId )
case EID_SPELL_AUTO: return UPN_IS_SPELL_AUTO;
case EID_GRAMMAR_AUTO: return UPN_IS_GRAMMAR_AUTO;
case EID_CAPITAL_WORDS: return UPN_IS_SPELL_UPPER_CASE;
+ case EID_SPELL_CLOSED_COMPOUND: return UPN_IS_SPELL_CLOSED_COMPOUND;
+ case EID_SPELL_HYPHENATED_COMPOUND: return UPN_IS_SPELL_HYPHENATED_COMPOUND;
case EID_WORDS_WITH_DIGITS: return UPN_IS_SPELL_WITH_DIGITS;
case EID_SPELL_SPECIAL: return UPN_IS_SPELL_SPECIAL;
case EID_NUM_MIN_WORDLEN: return UPN_HYPH_MIN_WORD_LENGTH;
@@ -225,27 +229,27 @@ class OptionsBreakSet : public weld::GenericDialogController
public:
OptionsBreakSet(weld::Window* pParent, sal_uInt16 nRID)
- : GenericDialogController(pParent, "cui/ui/breaknumberoption.ui", "BreakNumberOption")
- , m_xBeforeFrame(m_xBuilder->weld_widget("beforeframe"))
- , m_xAfterFrame(m_xBuilder->weld_widget("afterframe"))
- , m_xMinimalFrame(m_xBuilder->weld_widget("miniframe"))
+ : GenericDialogController(pParent, u"cui/ui/breaknumberoption.ui"_ustr, u"BreakNumberOption"_ustr)
+ , m_xBeforeFrame(m_xBuilder->weld_widget(u"beforeframe"_ustr))
+ , m_xAfterFrame(m_xBuilder->weld_widget(u"afterframe"_ustr))
+ , m_xMinimalFrame(m_xBuilder->weld_widget(u"miniframe"_ustr))
{
assert(EID_NUM_PRE_BREAK == nRID || EID_NUM_POST_BREAK == nRID || EID_NUM_MIN_WORDLEN == nRID); //unexpected ID
if (nRID == EID_NUM_PRE_BREAK)
{
m_xBeforeFrame->show();
- m_xBreakNF = m_xBuilder->weld_spin_button("beforebreak");
+ m_xBreakNF = m_xBuilder->weld_spin_button(u"beforebreak"_ustr);
}
else if(nRID == EID_NUM_POST_BREAK)
{
m_xAfterFrame->show();
- m_xBreakNF = m_xBuilder->weld_spin_button("afterbreak");
+ m_xBreakNF = m_xBuilder->weld_spin_button(u"afterbreak"_ustr);
}
else if(nRID == EID_NUM_MIN_WORDLEN)
{
m_xMinimalFrame->show();
- m_xBreakNF = m_xBuilder->weld_spin_button("wordlength");
+ m_xBreakNF = m_xBuilder->weld_spin_button(u"wordlength"_ustr);
}
}
@@ -322,6 +326,22 @@ struct ServiceInfo_Impl
ServiceInfo_Impl() : bConfigured(false) {}
};
+struct Locale_less
+{
+ bool operator()(const css::lang::Locale& lhs, const css::lang::Locale& rhs) const
+ {
+ if (lhs.Language < rhs.Language)
+ return true;
+ if (lhs.Language > rhs.Language)
+ return false;
+ if (lhs.Country < rhs.Country)
+ return true;
+ if (lhs.Country > rhs.Country)
+ return false;
+ return lhs.Variant < rhs.Variant;
+ }
+};
+
}
typedef std::vector< ServiceInfo_Impl > ServiceInfoArr;
@@ -336,7 +356,7 @@ class SvxLinguData_Impl
ServiceInfoArr aDisplayServiceArr;
sal_uInt32 nDisplayServices;
- Sequence< Locale > aAllServiceLocales;
+ std::set<Locale, Locale_less> aAllServiceLocales;
LangImplNameTable aCfgSpellTable;
LangImplNameTable aCfgHyphTable;
LangImplNameTable aCfgThesTable;
@@ -355,7 +375,7 @@ public:
void SetChecked( const Sequence< OUString > &rConfiguredServices );
void Reconfigure( std::u16string_view rDisplayName, bool bEnable );
- const Sequence<Locale> & GetAllSupportedLocales() const { return aAllServiceLocales; }
+ const auto& GetAllSupportedLocales() const { return aAllServiceLocales; }
LangImplNameTable & GetSpellTable() { return aCfgSpellTable; }
LangImplNameTable & GetHyphTable() { return aCfgHyphTable; }
@@ -380,20 +400,6 @@ public:
};
-static sal_Int32 lcl_SeqGetIndex( const Sequence< OUString > &rSeq, std::u16string_view rTxt )
-{
- sal_Int32 nRes = -1;
- sal_Int32 nLen = rSeq.getLength();
- const OUString *pString = rSeq.getConstArray();
- for (sal_Int32 i = 0; i < nLen && nRes == -1; ++i)
- {
- if (pString[i] == rTxt)
- nRes = i;
- }
- return nRes;
-}
-
-
Sequence< OUString > SvxLinguData_Impl::GetSortedImplNames( LanguageType nLang, sal_uInt8 nType )
{
LangImplNameTable *pTable = nullptr;
@@ -413,12 +419,12 @@ Sequence< OUString > SvxLinguData_Impl::GetSortedImplNames( LanguageType nLang,
if (pTable->count( nLang ))
aRes = (*pTable)[ nLang ]; // add configured services
sal_Int32 nIdx = aRes.getLength();
- DBG_ASSERT( static_cast<sal_Int32>(nDisplayServices) >= nIdx, "size mismatch" );
+ DBG_ASSERT( nDisplayServices >= o3tl::make_unsigned(nIdx), "size mismatch" );
aRes.realloc( nDisplayServices );
OUString *pRes = aRes.getArray();
// add not configured services
- for (sal_Int32 i = 0; i < static_cast<sal_Int32>(nDisplayServices); ++i)
+ for (sal_uInt32 i = 0; i < nDisplayServices; ++i)
{
const ServiceInfo_Impl &rInfo = aDisplayServiceArr[ i ];
OUString aImplName;
@@ -430,7 +436,7 @@ Sequence< OUString > SvxLinguData_Impl::GetSortedImplNames( LanguageType nLang,
case TYPE_GRAMMAR : aImplName = rInfo.sGrammarImplName; break;
}
- if (!aImplName.isEmpty() && (lcl_SeqGetIndex( aRes, aImplName) == -1)) // name not yet added
+ if (!aImplName.isEmpty() && (lcl_SeqGetEntryPos( aRes, aImplName) == -1)) // name not yet added
{
DBG_ASSERT( nIdx < aRes.getLength(), "index out of range" );
if (nIdx < aRes.getLength())
@@ -461,37 +467,6 @@ ServiceInfo_Impl * SvxLinguData_Impl::GetInfoByImplName( std::u16string_view rSv
return nullptr;
}
-
-static void lcl_MergeLocales(Sequence< Locale >& aAllLocales, const Sequence< Locale >& rAdd)
-{
- Sequence<Locale> aLocToAdd(rAdd.getLength());
- Locale* pLocToAdd = aLocToAdd.getArray();
- sal_Int32 nFound = 0;
- for(const Locale& i : rAdd)
- {
- bool bFound = false;
- for(const Locale& j : std::as_const(aAllLocales))
- {
- if (i.Language == j.Language &&
- i.Country == j.Country &&
- i.Variant == j.Variant)
- {
- bFound = true;
- break;
- }
- }
- if(!bFound)
- {
- pLocToAdd[nFound++] = i;
- }
- }
- sal_Int32 nLength = aAllLocales.getLength();
- aAllLocales.realloc( nLength + nFound);
- Locale* pAllLocales2 = aAllLocales.getArray();
- for(sal_Int32 i = 0; i < nFound; i++)
- pAllLocales2[nLength++] = pLocToAdd[i];
-}
-
static void lcl_MergeDisplayArray(
SvxLinguData_Impl &rData,
const ServiceInfo_Impl &rToAdd )
@@ -552,9 +527,12 @@ SvxLinguData_Impl::SvxLinguData_Impl() :
uno::Reference< XComponentContext > xContext = ::comphelper::getProcessComponentContext();
xLinguSrvcMgr = LinguServiceManager::create(xContext);
- const Locale& rCurrentLocale = Application::GetSettings().GetLanguageTag().getLocale();
- Sequence<Any> aArgs(2);//second arguments has to be empty!
- aArgs.getArray()[0] <<= LinguMgr::GetLinguPropertySet();
+ const Locale& rCurrentLocale = Application::GetSettings().GetUILanguageTag().getLocale();
+ Sequence<Any> aArgs
+ {
+ Any(LinguMgr::GetLinguPropertySet()),
+ Any() // second argument has to be empty!
+ };
//read spell checker
const Sequence< OUString > aSpellNames = xLinguSrvcMgr->getAvailableServices(
@@ -575,7 +553,7 @@ SvxLinguData_Impl::SvxLinguData_Impl() :
//! suppress display of entries with no supported languages (see feature 110994)
if (aLocales.hasElements())
{
- lcl_MergeLocales( aAllServiceLocales, aLocales );
+ aAllServiceLocales.insert(aLocales.begin(), aLocales.end());
lcl_MergeDisplayArray( *this, aInfo );
}
}
@@ -598,7 +576,7 @@ SvxLinguData_Impl::SvxLinguData_Impl() :
//! suppress display of entries with no supported languages (see feature 110994)
if (aLocales.hasElements())
{
- lcl_MergeLocales( aAllServiceLocales, aLocales );
+ aAllServiceLocales.insert(aLocales.begin(), aLocales.end());
lcl_MergeDisplayArray( *this, aInfo );
}
}
@@ -620,7 +598,7 @@ SvxLinguData_Impl::SvxLinguData_Impl() :
//! suppress display of entries with no supported languages (see feature 110994)
if (aLocales.hasElements())
{
- lcl_MergeLocales( aAllServiceLocales, aLocales );
+ aAllServiceLocales.insert(aLocales.begin(), aLocales.end());
lcl_MergeDisplayArray( *this, aInfo );
}
}
@@ -642,13 +620,13 @@ SvxLinguData_Impl::SvxLinguData_Impl() :
//! suppress display of entries with no supported languages (see feature 110994)
if (aLocales.hasElements())
{
- lcl_MergeLocales( aAllServiceLocales, aLocales );
+ aAllServiceLocales.insert(aLocales.begin(), aLocales.end());
lcl_MergeDisplayArray( *this, aInfo );
}
}
Sequence< OUString > aCfgSvcs;
- for(auto const & locale : std::as_const(aAllServiceLocales))
+ for (auto const& locale : aAllServiceLocales)
{
LanguageType nLang = LanguageTag::convertToLanguageType( locale );
@@ -746,20 +724,12 @@ void SvxLinguData_Impl::Reconfigure( std::u16string_view rDisplayName, bool bEna
pInfo->bConfigured = bEnable;
- Sequence< Locale > aLocales;
- const Locale *pLocale = nullptr;
- sal_Int32 nLocales = 0;
- sal_Int32 i;
-
// update configured spellchecker entries
if (pInfo->xSpell.is())
{
- aLocales = pInfo->xSpell->getLocales();
- pLocale = aLocales.getConstArray();
- nLocales = aLocales.getLength();
- for (i = 0; i < nLocales; ++i)
+ for (auto& locale : pInfo->xSpell->getLocales())
{
- LanguageType nLang = LanguageTag::convertToLanguageType( pLocale[i] );
+ LanguageType nLang = LanguageTag::convertToLanguageType(locale);
if (!aCfgSpellTable.count( nLang ) && bEnable)
aCfgSpellTable[ nLang ] = Sequence< OUString >();
if (aCfgSpellTable.count( nLang ))
@@ -770,12 +740,9 @@ void SvxLinguData_Impl::Reconfigure( std::u16string_view rDisplayName, bool bEna
// update configured grammar checker entries
if (pInfo->xGrammar.is())
{
- aLocales = pInfo->xGrammar->getLocales();
- pLocale = aLocales.getConstArray();
- nLocales = aLocales.getLength();
- for (i = 0; i < nLocales; ++i)
+ for (auto& locale : pInfo->xGrammar->getLocales())
{
- LanguageType nLang = LanguageTag::convertToLanguageType( pLocale[i] );
+ LanguageType nLang = LanguageTag::convertToLanguageType(locale);
if (!aCfgGrammarTable.count( nLang ) && bEnable)
aCfgGrammarTable[ nLang ] = Sequence< OUString >();
if (aCfgGrammarTable.count( nLang ))
@@ -786,12 +753,9 @@ void SvxLinguData_Impl::Reconfigure( std::u16string_view rDisplayName, bool bEna
// update configured hyphenator entries
if (pInfo->xHyph.is())
{
- aLocales = pInfo->xHyph->getLocales();
- pLocale = aLocales.getConstArray();
- nLocales = aLocales.getLength();
- for (i = 0; i < nLocales; ++i)
+ for (auto& locale : pInfo->xHyph->getLocales())
{
- LanguageType nLang = LanguageTag::convertToLanguageType( pLocale[i] );
+ LanguageType nLang = LanguageTag::convertToLanguageType(locale);
if (!aCfgHyphTable.count( nLang ) && bEnable)
aCfgHyphTable[ nLang ] = Sequence< OUString >();
if (aCfgHyphTable.count( nLang ))
@@ -803,12 +767,9 @@ void SvxLinguData_Impl::Reconfigure( std::u16string_view rDisplayName, bool bEna
if (!pInfo->xThes.is())
return;
- aLocales = pInfo->xThes->getLocales();
- pLocale = aLocales.getConstArray();
- nLocales = aLocales.getLength();
- for (i = 0; i < nLocales; ++i)
+ for (auto& locale : pInfo->xThes->getLocales())
{
- LanguageType nLang = LanguageTag::convertToLanguageType( pLocale[i] );
+ LanguageType nLang = LanguageTag::convertToLanguageType(locale);
if (!aCfgThesTable.count( nLang ) && bEnable)
aCfgThesTable[ nLang ] = Sequence< OUString >();
if (aCfgThesTable.count( nLang ))
@@ -820,32 +781,35 @@ void SvxLinguData_Impl::Reconfigure( std::u16string_view rDisplayName, bool bEna
// class SvxLinguTabPage -------------------------------------------------
SvxLinguTabPage::SvxLinguTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optlingupage.ui", "OptLinguPage", &rSet)
- , sCapitalWords (CuiResId(RID_SVXSTR_CAPITAL_WORDS))
- , sWordsWithDigits(CuiResId(RID_SVXSTR_WORDS_WITH_DIGITS))
- , sSpellSpecial (CuiResId(RID_SVXSTR_SPELL_SPECIAL))
- , sSpellAuto (CuiResId(RID_SVXSTR_SPELL_AUTO))
- , sGrammarAuto (CuiResId(RID_SVXSTR_GRAMMAR_AUTO))
- , sNumMinWordlen (CuiResId(RID_SVXSTR_NUM_MIN_WORDLEN))
- , sNumPreBreak (CuiResId(RID_SVXSTR_NUM_PRE_BREAK))
- , sNumPostBreak (CuiResId(RID_SVXSTR_NUM_POST_BREAK))
- , sHyphAuto (CuiResId(RID_SVXSTR_HYPH_AUTO))
- , sHyphSpecial (CuiResId(RID_SVXSTR_HYPH_SPECIAL))
+ : SfxTabPage(pPage, pController, u"cui/ui/optlingupage.ui"_ustr, u"OptLinguPage"_ustr, &rSet)
+ , sCapitalWords (CuiResId(RID_CUISTR_CAPITAL_WORDS))
+ , sWordsWithDigits(CuiResId(RID_CUISTR_WORDS_WITH_DIGITS))
+ , sSpellSpecial (CuiResId(RID_CUISTR_SPELL_SPECIAL))
+ , sSpellAuto (CuiResId(RID_CUISTR_SPELL_AUTO))
+ , sSpellClosedCompound (CuiResId(RID_CUISTR_SPELL_CLOSED_COMPOUND))
+ , sSpellHyphenatedCompound (CuiResId(RID_CUISTR_SPELL_HYPHENATED_COMPOUND))
+ , sGrammarAuto (CuiResId(RID_CUISTR_GRAMMAR_AUTO))
+ , sNumMinWordlen (CuiResId(RID_CUISTR_NUM_MIN_WORDLEN))
+ , sNumPreBreak (CuiResId(RID_CUISTR_NUM_PRE_BREAK))
+ , sNumPostBreak (CuiResId(RID_CUISTR_NUM_POST_BREAK))
+ , sHyphAuto (CuiResId(RID_CUISTR_HYPH_AUTO))
+ , sHyphSpecial (CuiResId(RID_CUISTR_HYPH_SPECIAL))
, nUPN_HYPH_MIN_WORD_LENGTH(-1)
, nUPN_HYPH_MIN_LEADING(-1)
, nUPN_HYPH_MIN_TRAILING(-1)
, m_nDlbClickEventId(nullptr)
- , m_xLinguModulesFT(m_xBuilder->weld_label("lingumodulesft"))
- , m_xLinguModulesCLB(m_xBuilder->weld_tree_view("lingumodules"))
- , m_xLinguModulesEditPB(m_xBuilder->weld_button("lingumodulesedit"))
- , m_xLinguDicsFT(m_xBuilder->weld_label("lingudictsft"))
- , m_xLinguDicsCLB(m_xBuilder->weld_tree_view("lingudicts"))
- , m_xLinguDicsNewPB(m_xBuilder->weld_button("lingudictsnew"))
- , m_xLinguDicsEditPB(m_xBuilder->weld_button("lingudictsedit"))
- , m_xLinguDicsDelPB(m_xBuilder->weld_button("lingudictsdelete"))
- , m_xLinguOptionsCLB(m_xBuilder->weld_tree_view("linguoptions"))
- , m_xLinguOptionsEditPB(m_xBuilder->weld_button("linguoptionsedit"))
- , m_xMoreDictsLink(m_xBuilder->weld_link_button("moredictslink"))
+ , m_xLinguModulesFT(m_xBuilder->weld_label(u"lingumodulesft"_ustr))
+ , m_xLinguModulesCLB(m_xBuilder->weld_tree_view(u"lingumodules"_ustr))
+ , m_xLinguModulesEditPB(m_xBuilder->weld_button(u"lingumodulesedit"_ustr))
+ , m_xLinguDicsFT(m_xBuilder->weld_label(u"lingudictsft"_ustr))
+ , m_xLinguDicsCLB(m_xBuilder->weld_tree_view(u"lingudicts"_ustr))
+ , m_xLinguDicsNewPB(m_xBuilder->weld_button(u"lingudictsnew"_ustr))
+ , m_xLinguDicsEditPB(m_xBuilder->weld_button(u"lingudictsedit"_ustr))
+ , m_xLinguDicsDelPB(m_xBuilder->weld_button(u"lingudictsdelete"_ustr))
+ , m_xLinguOptionsCLB(m_xBuilder->weld_tree_view(u"linguoptions"_ustr))
+ , m_xLinguOptionsEditPB(m_xBuilder->weld_button(u"linguoptionsedit"_ustr))
+ , m_xMoreDictsBox(m_xBuilder->weld_box(u"moredictsbox"_ustr))
+ , m_xMoreDictsLink(m_xBuilder->weld_link_button(u"moredictslink"_ustr))
{
m_xLinguModulesCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xLinguDicsCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
@@ -870,7 +834,15 @@ SvxLinguTabPage::SvxLinguTabPage(weld::Container* pPage, weld::DialogController*
m_xMoreDictsLink->connect_activate_link(LINK(this, SvxLinguTabPage, OnLinkClick));
if (officecfg::Office::Security::Hyperlinks::Open::get() == SvtExtendedSecurityOptions::OPEN_NEVER)
- m_xMoreDictsLink->hide();
+ m_xMoreDictsBox->hide();
+
+ if (comphelper::LibreOfficeKit::isActive())
+ {
+ // hide User-defined Dictionaries part
+ m_xBuilder->weld_frame(u"dictsframe"_ustr)->hide();
+ // hide Get more dictionaries URL + icon
+ m_xMoreDictsBox->hide();
+ }
xProp = LinguMgr::GetLinguPropertySet();
xDicList.set( LinguMgr::GetDictionaryList() );
@@ -914,6 +886,22 @@ std::unique_ptr<SfxTabPage> SvxLinguTabPage::Create( weld::Container* pPage, wel
return std::make_unique<SvxLinguTabPage>( pPage, pController, *rAttrSet );
}
+OUString SvxLinguTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"lingumodulesft"_ustr, u"lingudictsft"_ustr, u"label4"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ sAllStrings += m_xMoreDictsLink->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
{
bool bModified = true; // !!!!
@@ -991,18 +979,14 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
if (aData.GetEntryId() < nDics)
{
bool bChecked = m_xLinguDicsCLB->get_toggle(i) == TRISTATE_TRUE;
- uno::Reference< XDictionary > xDic( aDics.getConstArray()[ i ] );
+ uno::Reference<XDictionary> xDic(aDics[i]);
if (xDic.is())
{
if (LinguMgr::GetIgnoreAllList() == xDic)
bChecked = true;
xDic->setActive( bChecked );
-
if (bChecked)
- {
- OUString aDicName( xDic->getName() );
- pActiveDic[ nActiveDics++ ] = aDicName;
- }
+ pActiveDic[nActiveDics++] = xDic->getName();
}
}
}
@@ -1041,7 +1025,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
OptionsUserData aPostBreakData(m_xLinguOptionsCLB->get_id(EID_NUM_POST_BREAK).toUInt32());
if ( aPreBreakData.IsModified() || aPostBreakData.IsModified() )
{
- SfxHyphenRegionItem aHyp( GetWhich( SID_ATTR_HYPHENREGION ) );
+ SfxHyphenRegionItem aHyp( SID_ATTR_HYPHENREGION );
aHyp.GetMinLead() = static_cast<sal_uInt8>(aPreBreakData.GetNumericValue());
aHyp.GetMinTrail() = static_cast<sal_uInt8>(aPostBreakData.GetNumericValue());
rCoreSet->Put( aHyp );
@@ -1052,8 +1036,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
const SfxPoolItem* pOld = GetOldItem( *rCoreSet, SID_AUTOSPELL_CHECK );
if ( !pOld || static_cast<const SfxBoolItem*>(pOld)->GetValue() != bNewAutoCheck )
{
- rCoreSet->Put( SfxBoolItem( GetWhich( SID_AUTOSPELL_CHECK ),
- bNewAutoCheck ) );
+ rCoreSet->Put( SfxBoolItem( SID_AUTOSPELL_CHECK, bNewAutoCheck ) );
bModified = true;
}
@@ -1103,11 +1086,9 @@ void SvxLinguTabPage::UpdateDicBox_Impl()
m_xLinguDicsCLB->freeze();
m_xLinguDicsCLB->clear();
- sal_Int32 nDics = aDics.getLength();
- const uno::Reference< XDictionary > *pDic = aDics.getConstArray();
- for (sal_Int32 i = 0; i < nDics; ++i)
+ for (sal_Int32 i = 0; i < aDics.getLength(); ++i)
{
- const uno::Reference< XDictionary > &rDic = pDic[i];
+ const uno::Reference<XDictionary>& rDic = aDics[i];
if (rDic.is())
AddDicBoxEntry( rDic, static_cast<sal_uInt16>(i) );
}
@@ -1134,7 +1115,7 @@ void SvxLinguTabPage::UpdateModulesBox_Impl()
{
const ServiceInfo_Impl &rInfo = rAllDispSrvcArr[i];
m_xLinguModulesCLB->append();
- m_xLinguModulesCLB->set_id(i, OUString::number(reinterpret_cast<sal_Int64>(&rInfo)));
+ m_xLinguModulesCLB->set_id(i, weld::toId(&rInfo));
m_xLinguModulesCLB->set_toggle(i, rInfo.bConfigured ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguModulesCLB->set_text(i, rInfo.sDisplayName, 0);
}
@@ -1178,6 +1159,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguOptionsCLB->set_text(nEntry, sSpellAuto, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_SPELL_AUTO));
m_xLinguOptionsCLB->append();
++nEntry;
@@ -1187,6 +1169,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguOptionsCLB->set_text(nEntry, sGrammarAuto, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_GRAMMAR_AUTO));
m_xLinguOptionsCLB->append();
++nEntry;
@@ -1196,6 +1179,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguOptionsCLB->set_text(nEntry, sCapitalWords, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_SPELL_UPPER_CASE));
m_xLinguOptionsCLB->append();
++nEntry;
@@ -1205,6 +1189,27 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguOptionsCLB->set_text(nEntry, sWordsWithDigits, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_SPELL_WITH_DIGITS));
+
+ m_xLinguOptionsCLB->append();
+ ++nEntry;
+
+ aLngCfg.GetProperty( UPN_IS_SPELL_CLOSED_COMPOUND ) >>= bVal;
+ nUserData = OptionsUserData( EID_SPELL_CLOSED_COMPOUND, false, 0, true, bVal).GetUserData();
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sSpellClosedCompound, 0);
+ m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_SPELL_CLOSED_COMPOUND));
+
+ m_xLinguOptionsCLB->append();
+ ++nEntry;
+
+ aLngCfg.GetProperty( UPN_IS_SPELL_HYPHENATED_COMPOUND ) >>= bVal;
+ nUserData = OptionsUserData( EID_SPELL_HYPHENATED_COMPOUND, false, 0, true, bVal).GetUserData();
+ m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xLinguOptionsCLB->set_text(nEntry, sSpellHyphenatedCompound, 0);
+ m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_SPELL_HYPHENATED_COMPOUND));
m_xLinguOptionsCLB->append();
++nEntry;
@@ -1214,6 +1219,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguOptionsCLB->set_text(nEntry, sSpellSpecial, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_SPELL_SPECIAL));
m_xLinguOptionsCLB->append();
++nEntry;
@@ -1222,12 +1228,12 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
nUserData = OptionsUserData( EID_NUM_MIN_WORDLEN, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_HYPH_MIN_WORD_LENGTH));
nUPN_HYPH_MIN_WORD_LENGTH = nEntry;
const SfxHyphenRegionItem *pHyp = nullptr;
- sal_uInt16 nWhich = GetWhich( SID_ATTR_HYPHENREGION );
- if ( rSet->GetItemState( nWhich, false ) == SfxItemState::SET )
- pHyp = &static_cast<const SfxHyphenRegionItem &>( rSet->Get( nWhich ) );
+ if ( rSet->GetItemState( SID_ATTR_HYPHENREGION, false ) == SfxItemState::SET )
+ pHyp = & rSet->Get( SID_ATTR_HYPHENREGION );
m_xLinguOptionsCLB->append();
++nEntry;
@@ -1238,6 +1244,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
nUserData = OptionsUserData( EID_NUM_PRE_BREAK, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_HYPH_MIN_LEADING));
nUPN_HYPH_MIN_LEADING = nEntry;
m_xLinguOptionsCLB->append();
@@ -1249,6 +1256,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
nUserData = OptionsUserData( EID_NUM_POST_BREAK, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_HYPH_MIN_TRAILING));
nUPN_HYPH_MIN_TRAILING = nEntry;
m_xLinguOptionsCLB->append();
@@ -1259,6 +1267,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguOptionsCLB->set_text(nEntry, sHyphAuto, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_HYPH_AUTO));
m_xLinguOptionsCLB->append();
++nEntry;
@@ -1268,6 +1277,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xLinguOptionsCLB->set_text(nEntry, sHyphSpecial, 0);
m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
+ m_xLinguOptionsCLB->set_sensitive(nEntry, !aLngCfg.IsReadOnly(UPN_IS_HYPH_SPECIAL));
m_xLinguOptionsCLB->thaw();
@@ -1280,6 +1290,15 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
m_xLinguDicsCLB->get_height_rows(5));
m_xLinguOptionsCLB->set_size_request(m_xLinguOptionsCLB->get_preferred_size().Width(),
m_xLinguOptionsCLB->get_height_rows(5));
+
+ if (officecfg::Office::Linguistic::General::DictionaryList::ActiveDictionaries::isReadOnly())
+ {
+ m_xLinguDicsFT->set_sensitive(false);
+ m_xLinguDicsCLB->set_sensitive(false);
+ m_xLinguDicsNewPB->set_sensitive(false);
+ m_xLinguDicsEditPB->set_sensitive(false);
+ m_xLinguDicsDelPB->set_sensitive(false);
+ }
}
IMPL_LINK(SvxLinguTabPage, BoxDoubleClickHdl_Impl, weld::TreeView&, rBox, bool)
@@ -1314,7 +1333,7 @@ IMPL_LINK(SvxLinguTabPage, ModulesBoxCheckButtonHdl_Impl, const weld::TreeView::
IMPL_LINK(SvxLinguTabPage, DicsBoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void)
{
- const uno::Reference<XDictionary> &rDic = aDics.getConstArray()[m_xLinguDicsCLB->get_iter_index_in_parent(rRowCol.first)];
+ const uno::Reference<XDictionary> &rDic = aDics[m_xLinguDicsCLB->get_iter_index_in_parent(rRowCol.first)];
if (LinguMgr::GetIgnoreAllList() == rDic)
m_xLinguDicsCLB->set_toggle(rRowCol.first, TRISTATE_TRUE);
}
@@ -1326,20 +1345,18 @@ IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
if (!pLinguData)
pLinguData.reset( new SvxLinguData_Impl );
- SvxLinguData_Impl aOldLinguData( *pLinguData );
+ SvxLinguData_Impl aOldLinguData(*pLinguData);
SvxEditModulesDlg aDlg(GetFrameWeld(), *pLinguData);
if (aDlg.run() != RET_OK)
- *pLinguData = aOldLinguData;
+ *pLinguData = std::move(aOldLinguData);
// evaluate new status of 'bConfigured' flag
sal_uInt32 nLen = pLinguData->GetDisplayServiceCount();
for (sal_uInt32 i = 0; i < nLen; ++i)
pLinguData->GetDisplayServiceArray()[i].bConfigured = false;
- const Locale* pAllLocales = pLinguData->GetAllSupportedLocales().getConstArray();
- sal_Int32 nLocales = pLinguData->GetAllSupportedLocales().getLength();
- for (sal_Int32 k = 0; k < nLocales; ++k)
+ for (const auto& locale : pLinguData->GetAllSupportedLocales())
{
- LanguageType nLang = LanguageTag::convertToLanguageType( pAllLocales[k] );
+ LanguageType nLang = LanguageTag::convertToLanguageType(locale);
if (pLinguData->GetSpellTable().count( nLang ))
pLinguData->SetChecked( pLinguData->GetSpellTable()[ nLang ] );
if (pLinguData->GetGrammarTable().count( nLang ))
@@ -1381,7 +1398,7 @@ IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
sal_Int32 nDics = aDics.getLength();
if (nDicPos < nDics)
{
- uno::Reference< XDictionary > xDic = aDics.getConstArray()[ nDicPos ];
+ uno::Reference<XDictionary> xDic = aDics[nDicPos];
if (xDic.is())
{
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -1393,8 +1410,8 @@ IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
}
else if (m_xLinguDicsDelPB.get() == &rBtn)
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletedictionarydialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("QueryDeleteDictionaryDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletedictionarydialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(u"QueryDeleteDictionaryDialog"_ustr));
if (RET_NO == xQuery->run())
return;
@@ -1406,7 +1423,7 @@ IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
sal_Int32 nDics = aDics.getLength();
if (nDicPos < nDics)
{
- uno::Reference< XDictionary > xDic = aDics.getConstArray()[ nDicPos ];
+ uno::Reference<XDictionary> xDic = aDics[nDicPos];
if (xDic.is())
{
if (LinguMgr::GetIgnoreAllList() == xDic)
@@ -1482,7 +1499,7 @@ IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
}
else
{
- OSL_FAIL( "rBtn unexpected value" );
+ SAL_WARN("cui.options", "rBtn unexpected value");
}
}
@@ -1514,7 +1531,7 @@ IMPL_LINK(SvxLinguTabPage, SelectHdl_Impl, weld::TreeView&, rBox, void)
}
else
{
- OSL_FAIL( "rBox unexpected value" );
+ SAL_WARN("cui.options", "rBtn unexpected value");
}
}
@@ -1526,33 +1543,34 @@ void SvxLinguTabPage::HideGroups( sal_uInt16 nGrp )
m_xLinguModulesCLB->hide();
m_xLinguModulesEditPB->hide();
- if (officecfg::Office::Security::Hyperlinks::Open::get() != SvtExtendedSecurityOptions::OPEN_NEVER)
+ if (officecfg::Office::Security::Hyperlinks::Open::get() != SvtExtendedSecurityOptions::OPEN_NEVER &&
+ !comphelper::LibreOfficeKit::isActive())
{
- m_xMoreDictsLink->show();
+ m_xMoreDictsBox->show();
}
}
}
IMPL_STATIC_LINK_NOARG(SvxLinguTabPage, OnLinkClick, weld::LinkButton&, bool)
{
- comphelper::dispatchCommand(".uno:MoreDictionaries", {});
+ comphelper::dispatchCommand(u".uno:MoreDictionaries"_ustr, {});
return true;
}
SvxEditModulesDlg::SvxEditModulesDlg(weld::Window* pParent, SvxLinguData_Impl& rData)
- : GenericDialogController(pParent, "cui/ui/editmodulesdialog.ui", "EditModulesDialog")
- , sSpell(CuiResId(RID_SVXSTR_SPELL))
- , sHyph(CuiResId(RID_SVXSTR_HYPH))
- , sThes(CuiResId(RID_SVXSTR_THES))
- , sGrammar(CuiResId(RID_SVXSTR_GRAMMAR))
+ : GenericDialogController(pParent, u"cui/ui/editmodulesdialog.ui"_ustr, u"EditModulesDialog"_ustr)
+ , sSpell(CuiResId(RID_CUISTR_SPELL))
+ , sHyph(CuiResId(RID_CUISTR_HYPH))
+ , sThes(CuiResId(RID_CUISTR_THES))
+ , sGrammar(CuiResId(RID_CUISTR_GRAMMAR))
, rLinguData(rData)
- , m_xModulesCLB(m_xBuilder->weld_tree_view("lingudicts"))
- , m_xPrioUpPB(m_xBuilder->weld_button("up"))
- , m_xPrioDownPB(m_xBuilder->weld_button("down"))
- , m_xBackPB(m_xBuilder->weld_button("back"))
- , m_xMoreDictsLink(m_xBuilder->weld_link_button("moredictslink"))
- , m_xClosePB(m_xBuilder->weld_button("close"))
- , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("language")))
+ , m_xModulesCLB(m_xBuilder->weld_tree_view(u"lingudicts"_ustr))
+ , m_xPrioUpPB(m_xBuilder->weld_button(u"up"_ustr))
+ , m_xPrioDownPB(m_xBuilder->weld_button(u"down"_ustr))
+ , m_xBackPB(m_xBuilder->weld_button(u"back"_ustr))
+ , m_xMoreDictsLink(m_xBuilder->weld_link_button(u"moredictslink"_ustr))
+ , m_xClosePB(m_xBuilder->weld_button(u"close"_ustr))
+ , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"language"_ustr)))
{
m_xModulesCLB->set_size_request(m_xModulesCLB->get_approximate_digit_width() * 40,
m_xModulesCLB->get_height_rows(12));
@@ -1580,17 +1598,20 @@ SvxEditModulesDlg::SvxEditModulesDlg(weld::Window* pParent, SvxLinguData_Impl& r
m_xLanguageLB->SetLanguageList(SvxLanguageListFlags::EMPTY, false, false, true);
//fill language box
- const Sequence< Locale >& rLoc = rLinguData.GetAllSupportedLocales();
- for (Locale const & locale : rLoc)
- {
- LanguageType nLang = LanguageTag::convertToLanguageType( locale );
- m_xLanguageLB->InsertLanguage(nLang);
- }
+ const auto& rLoc = rLinguData.GetAllSupportedLocales();
+ std::vector<LanguageType> aLanguages;
+ aLanguages.reserve(rLoc.size());
+ std::transform(rLoc.begin(), rLoc.end(), std::back_inserter(aLanguages),
+ [](Locale const& locale) { return LanguageTag::convertToLanguageType(locale); });
+ m_xLanguageLB->InsertLanguages(aLanguages);
LanguageType eSysLang = MsLangId::getConfiguredSystemLanguage();
m_xLanguageLB->set_active_id( eSysLang );
if (m_xLanguageLB->get_active_id() != eSysLang)
m_xLanguageLB->set_active(0);
+ css::uno::Reference < css::uno::XComponentContext > xContext(::comphelper::getProcessComponentContext());
+ m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(xContext, u"*"_ustr);
+
m_xLanguageLB->connect_changed( LINK( this, SvxEditModulesDlg, LangSelectListBoxHdl_Impl ));
LangSelectHdl_Impl(m_xLanguageLB.get());
}
@@ -1598,7 +1619,7 @@ SvxEditModulesDlg::SvxEditModulesDlg(weld::Window* pParent, SvxLinguData_Impl& r
SvxEditModulesDlg::~SvxEditModulesDlg()
{
for (int i = 0, nEntryCount = m_xModulesCLB->n_children(); i < nEntryCount; ++i)
- delete reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i).toInt64());
+ delete weld::fromId<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i));
}
IMPL_LINK( SvxEditModulesDlg, SelectHdl_Impl, weld::TreeView&, rBox, void )
@@ -1609,16 +1630,16 @@ IMPL_LINK( SvxEditModulesDlg, SelectHdl_Impl, weld::TreeView&, rBox, void )
bool bDisableUp = true;
bool bDisableDown = true;
- ModuleUserData_Impl* pData = reinterpret_cast<ModuleUserData_Impl*>(rBox.get_id(nCurPos).toInt64());
+ ModuleUserData_Impl* pData = weld::fromId<ModuleUserData_Impl*>(rBox.get_id(nCurPos));
if (!pData->IsParent() && pData->GetType() != TYPE_HYPH)
{
if (nCurPos < rBox.n_children() - 1)
{
- bDisableDown = reinterpret_cast<ModuleUserData_Impl*>(rBox.get_id(nCurPos + 1).toInt64())->IsParent();
+ bDisableDown = weld::fromId<ModuleUserData_Impl*>(rBox.get_id(nCurPos + 1))->IsParent();
}
if (nCurPos > 1)
{
- bDisableUp = reinterpret_cast<ModuleUserData_Impl*>(rBox.get_id(nCurPos - 1).toInt64())->IsParent();
+ bDisableUp = weld::fromId<ModuleUserData_Impl*>(rBox.get_id(nCurPos - 1))->IsParent();
}
}
m_xPrioUpPB->set_sensitive(!bDisableUp);
@@ -1627,7 +1648,7 @@ IMPL_LINK( SvxEditModulesDlg, SelectHdl_Impl, weld::TreeView&, rBox, void )
IMPL_LINK( SvxEditModulesDlg, BoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void )
{
- ModuleUserData_Impl* pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(rRowCol.first).toInt64());
+ ModuleUserData_Impl* pData = weld::fromId<ModuleUserData_Impl*>(m_xModulesCLB->get_id(rRowCol.first));
if (pData->IsParent() || pData->GetType() != TYPE_HYPH)
return;
@@ -1636,7 +1657,7 @@ IMPL_LINK( SvxEditModulesDlg, BoxCheckButtonHdl_Impl, const weld::TreeView::iter
auto nPos = m_xModulesCLB->get_iter_index_in_parent(rRowCol.first);
for (int i = 0, nEntryCount = m_xModulesCLB->n_children(); i < nEntryCount; ++i)
{
- pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i).toInt64());
+ pData = weld::fromId<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i));
if (!pData->IsParent() && pData->GetType() == TYPE_HYPH && i != nPos)
{
m_xModulesCLB->set_toggle(i, TRISTATE_FALSE);
@@ -1667,7 +1688,7 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
bool bChanged = false;
for (int i = 0, nEntryCount = m_xModulesCLB->n_children(); i < nEntryCount; ++i)
{
- ModuleUserData_Impl* pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i).toInt64());
+ ModuleUserData_Impl* pData = weld::fromId<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i));
if (pData->IsParent())
{
if (bChanged)
@@ -1710,38 +1731,42 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
}
for (int i = 0, nEntryCount = m_xModulesCLB->n_children(); i < nEntryCount; ++i)
- delete reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i).toInt64());
+ delete weld::fromId<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i));
m_xModulesCLB->clear();
// display entries for new selected language
if (LANGUAGE_DONTKNOW != eCurLanguage)
{
- sal_Int32 n;
- ServiceInfo_Impl* pInfo;
+ bool bReadOnly = false;
int nRow = 0;
// spellchecker entries
ModuleUserData_Impl* pUserData = new ModuleUserData_Impl(
OUString(), true, false, TYPE_SPELL, 0 );
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pUserData)));
+ OUString sId(weld::toId(pUserData));
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_text(nRow, sSpell, 0);
m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
- Sequence< OUString > aNames( rLinguData.GetSortedImplNames( eCurLanguage, TYPE_SPELL ) );
- const OUString *pName = aNames.getConstArray();
- sal_Int32 nNames = aNames.getLength();
+ OUString aLangNodeName = LanguageTag::convertToBcp47(aCurLocale);
+ OUString aConfigPath = officecfg::Office::Linguistic::ServiceManager::path() + "/SpellCheckerList/" + aLangNodeName;
+ if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath))
+ {
+ css::beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath);
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+ }
+
sal_Int32 nLocalIndex = 0; // index relative to parent
- for (n = 0; n < nNames; ++n)
+ for (auto& name : rLinguData.GetSortedImplNames(eCurLanguage, TYPE_SPELL))
{
OUString aImplName;
bool bIsSuppLang = false;
- pInfo = rLinguData.GetInfoByImplName( pName[n] );
+ ServiceInfo_Impl* pInfo = rLinguData.GetInfoByImplName(name);
if (pInfo)
{
bIsSuppLang = pInfo->xSpell.is() &&
@@ -1761,13 +1786,14 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
const bool bCheck = bHasLang && lcl_SeqGetEntryPos( rTable[ eCurLanguage ], aImplName ) >= 0;
pUserData = new ModuleUserData_Impl( aImplName, false,
bCheck, TYPE_SPELL, static_cast<sal_uInt8>(nLocalIndex++) );
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xModulesCLB->set_text(nRow, aTxt, 0);
m_xModulesCLB->set_text_emphasis(nRow, false, 0);
+ m_xModulesCLB->set_sensitive(nRow, !bReadOnly);
++nRow;
}
}
@@ -1775,23 +1801,27 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
// grammar checker entries
pUserData = new ModuleUserData_Impl( OUString(), true, false, TYPE_GRAMMAR, 0 );
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_text(nRow, sGrammar, 0);
m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
- aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_GRAMMAR );
- pName = aNames.getConstArray();
- nNames = aNames.getLength();
+ aConfigPath = officecfg::Office::Linguistic::ServiceManager::path() + "/GrammarCheckerList/" + aLangNodeName;
+ if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath))
+ {
+ css::beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath);
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+ }
+
nLocalIndex = 0;
- for (n = 0; n < nNames; ++n)
+ for (auto& name : rLinguData.GetSortedImplNames(eCurLanguage, TYPE_GRAMMAR))
{
OUString aImplName;
bool bIsSuppLang = false;
- pInfo = rLinguData.GetInfoByImplName( pName[n] );
+ ServiceInfo_Impl* pInfo = rLinguData.GetInfoByImplName(name);
if (pInfo)
{
bIsSuppLang = pInfo->xGrammar.is() &&
@@ -1812,13 +1842,14 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
pUserData = new ModuleUserData_Impl( aImplName, false,
bCheck, TYPE_GRAMMAR, static_cast<sal_uInt8>(nLocalIndex++) );
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xModulesCLB->set_text(nRow, aTxt, 0);
m_xModulesCLB->set_text_emphasis(nRow, false, 0);
+ m_xModulesCLB->set_sensitive(nRow, !bReadOnly);
++nRow;
}
}
@@ -1826,23 +1857,27 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
// hyphenator entries
pUserData = new ModuleUserData_Impl( OUString(), true, false, TYPE_HYPH, 0 );
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_text(nRow, sHyph, 0);
m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
- aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_HYPH );
- pName = aNames.getConstArray();
- nNames = aNames.getLength();
+ aConfigPath = officecfg::Office::Linguistic::ServiceManager::path() + "/HyphenatorList/" + aLangNodeName;
+ if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath))
+ {
+ css::beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath);
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+ }
+
nLocalIndex = 0;
- for (n = 0; n < nNames; ++n)
+ for (auto& name : rLinguData.GetSortedImplNames(eCurLanguage, TYPE_HYPH))
{
OUString aImplName;
bool bIsSuppLang = false;
- pInfo = rLinguData.GetInfoByImplName( pName[n] );
+ ServiceInfo_Impl* pInfo = rLinguData.GetInfoByImplName(name);
if (pInfo)
{
bIsSuppLang = pInfo->xHyph.is() &&
@@ -1862,13 +1897,14 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
const bool bCheck = bHasLang && lcl_SeqGetEntryPos( rTable[ eCurLanguage ], aImplName ) >= 0;
pUserData = new ModuleUserData_Impl( aImplName, false,
bCheck, TYPE_HYPH, static_cast<sal_uInt8>(nLocalIndex++) );
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xModulesCLB->set_text(nRow, aTxt, 0);
m_xModulesCLB->set_text_emphasis(nRow, false, 0);
+ m_xModulesCLB->set_sensitive(nRow, !bReadOnly);
++nRow;
}
}
@@ -1876,23 +1912,27 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
// thesaurus entries
pUserData = new ModuleUserData_Impl( OUString(), true, false, TYPE_THES, 0 );
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_text(nRow, sThes, 0);
m_xModulesCLB->set_text_emphasis(nRow, true, 0);
++nRow;
- aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_THES );
- pName = aNames.getConstArray();
- nNames = aNames.getLength();
+ aConfigPath = officecfg::Office::Linguistic::ServiceManager::path() + "/ThesaurusList/" + aLangNodeName;
+ if (m_xReadWriteAccess->hasPropertyByHierarchicalName(aConfigPath))
+ {
+ css::beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(aConfigPath);
+ bReadOnly = (aProperty.Attributes & css::beans::PropertyAttribute::READONLY) != 0;
+ }
+
nLocalIndex = 0;
- for (n = 0; n < nNames; ++n)
+ for (auto& name : rLinguData.GetSortedImplNames(eCurLanguage, TYPE_THES))
{
OUString aImplName;
bool bIsSuppLang = false;
- pInfo = rLinguData.GetInfoByImplName( pName[n] );
+ ServiceInfo_Impl* pInfo = rLinguData.GetInfoByImplName(name);
if (pInfo)
{
bIsSuppLang = pInfo->xThes.is() &&
@@ -1912,13 +1952,14 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
const bool bCheck = bHasLang && lcl_SeqGetEntryPos( rTable[ eCurLanguage ], aImplName ) >= 0;
pUserData = new ModuleUserData_Impl( aImplName, false,
bCheck, TYPE_THES, static_cast<sal_uInt8>(nLocalIndex++) );
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xModulesCLB->append(nullptr);
m_xModulesCLB->set_id(nRow, sId);
m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xModulesCLB->set_text(nRow, aTxt, 0);
m_xModulesCLB->set_text_emphasis(nRow, false, 0);
+ m_xModulesCLB->set_sensitive(nRow, !bReadOnly);
++nRow;
}
}
@@ -1968,7 +2009,7 @@ IMPL_LINK_NOARG(SvxEditModulesDlg, BackHdl_Impl, weld::Button&, void)
IMPL_STATIC_LINK_NOARG(SvxEditModulesDlg, OnLinkClick, weld::LinkButton&, bool)
{
- comphelper::dispatchCommand(".uno:MoreDictionaries", {});
+ comphelper::dispatchCommand(u".uno:MoreDictionaries"_ustr, {});
return true;
}
diff --git a/cui/source/options/optopencl.cxx b/cui/source/options/optopencl.cxx
index e85ef1d7e23a..207f2b924a0c 100644
--- a/cui/source/options/optopencl.cxx
+++ b/cui/source/options/optopencl.cxx
@@ -27,14 +27,16 @@
#include "optopencl.hxx"
SvxOpenCLTabPage::SvxOpenCLTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optopenclpage.ui", "OptOpenCLPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/optopenclpage.ui"_ustr, u"OptOpenCLPage"_ustr, &rSet)
, maConfig(OpenCLConfig::get())
- , mxUseOpenCL(m_xBuilder->weld_check_button("useopencl"))
- , mxOclUsed(m_xBuilder->weld_label("openclused"))
- , mxOclNotUsed(m_xBuilder->weld_label("openclnotused"))
+ , mxUseOpenCL(m_xBuilder->weld_check_button(u"useopencl"_ustr))
+ , mxUseOpenImg(m_xBuilder->weld_widget(u"lockuseopencl"_ustr))
+ , mxOclUsed(m_xBuilder->weld_label(u"openclused"_ustr))
+ , mxOclNotUsed(m_xBuilder->weld_label(u"openclnotused"_ustr))
{
mxUseOpenCL->set_active(maConfig.mbUseOpenCL);
mxUseOpenCL->set_sensitive(!officecfg::Office::Common::Misc::UseOpenCL::isReadOnly());
+ mxUseOpenImg->set_visible(officecfg::Office::Common::Misc::UseOpenCL::isReadOnly());
bool bCLUsed = openclwrapper::GPUEnv::isOpenCLEnabled();
mxOclUsed->set_visible(bCLUsed);
@@ -50,6 +52,22 @@ std::unique_ptr<SfxTabPage> SvxOpenCLTabPage::Create(weld::Container* pPage, wel
return std::make_unique<SvxOpenCLTabPage>(pPage, pController, *rAttrSet);
}
+OUString SvxOpenCLTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"openclnotused"_ustr, u"openclused"_ustr };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ sAllStrings += mxUseOpenCL->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxOpenCLTabPage::FillItemSet( SfxItemSet* )
{
bool bModified = false;
@@ -81,6 +99,7 @@ void SvxOpenCLTabPage::Reset( const SfxItemSet* )
maConfig = OpenCLConfig::get();
mxUseOpenCL->set_active(maConfig.mbUseOpenCL);
+ mxUseOpenImg->set_visible(officecfg::Office::Common::Misc::UseOpenCL::isReadOnly());
mxUseOpenCL->save_state();
}
diff --git a/cui/source/options/optopencl.hxx b/cui/source/options/optopencl.hxx
index f7097d3fdba6..e6414245da8f 100644
--- a/cui/source/options/optopencl.hxx
+++ b/cui/source/options/optopencl.hxx
@@ -27,6 +27,7 @@ private:
OpenCLConfig maConfig;
std::unique_ptr<weld::CheckButton> mxUseOpenCL;
+ std::unique_ptr<weld::Widget> mxUseOpenImg;
std::unique_ptr<weld::Label> mxOclUsed;
std::unique_ptr<weld::Label> mxOclNotUsed;
@@ -34,6 +35,7 @@ public:
SvxOpenCLTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet );
virtual ~SvxOpenCLTabPage() override;
+ virtual OUString GetAllStrings() override;
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx
index bdd7db2ca89e..6357989e5fb9 100644
--- a/cui/source/options/optpath.cxx
+++ b/cui/source/options/optpath.cxx
@@ -36,16 +36,16 @@
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
-#include <com/sun/star/ui/dialogs/FilePicker.hpp>
+#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
+#include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <com/sun/star/util/thePathSettings.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <sal/log.hxx>
+#include <o3tl/string_view.hxx>
using namespace css;
using namespace css::beans;
-using namespace css::lang;
using namespace css::ui::dialogs;
using namespace css::uno;
using namespace svx;
@@ -53,8 +53,8 @@ using namespace svx;
// define ----------------------------------------------------------------
constexpr OUStringLiteral POSTFIX_INTERNAL = u"_internal";
-constexpr OUStringLiteral POSTFIX_USER = u"_user";
-constexpr OUStringLiteral POSTFIX_WRITABLE = u"_writable";
+constexpr OUString POSTFIX_USER = u"_user"_ustr;
+constexpr OUString POSTFIX_WRITABLE = u"_writable"_ustr;
constexpr OUStringLiteral VAR_ONE = u"%1";
constexpr OUStringLiteral IODLG_CONFIGNAME = u"FilePicker_Save";
@@ -66,7 +66,7 @@ struct OptPath_Impl
Reference< css::util::XPathSettings > m_xPathSettings;
OptPath_Impl()
- : m_sMultiPathDlg(CuiResId(RID_SVXSTR_EDIT_PATHS))
+ : m_sMultiPathDlg(CuiResId(RID_CUISTR_EDIT_PATHS))
{
}
};
@@ -92,42 +92,39 @@ struct PathUserData_Impl
struct Handle2CfgNameMapping_Impl
{
SvtPathOptions::Paths m_nHandle;
- const char* m_pCfgName;
+ OUString m_aCfgName;
};
}
-Handle2CfgNameMapping_Impl const Hdl2CfgMap_Impl[] =
+constexpr Handle2CfgNameMapping_Impl Hdl2CfgMap_Impl[]
{
- { SvtPathOptions::Paths::AutoCorrect, "AutoCorrect" },
- { SvtPathOptions::Paths::AutoText, "AutoText" },
- { SvtPathOptions::Paths::Backup, "Backup" },
- { SvtPathOptions::Paths::Gallery, "Gallery" },
- { SvtPathOptions::Paths::Graphic, "Graphic" },
- { SvtPathOptions::Paths::Temp, "Temp" },
- { SvtPathOptions::Paths::Template, "Template" },
- { SvtPathOptions::Paths::Work, "Work" },
- { SvtPathOptions::Paths::Dictionary, "Dictionary" },
- { SvtPathOptions::Paths::Classification, "Classification" },
+ { SvtPathOptions::Paths::AutoCorrect, u"AutoCorrect"_ustr },
+ { SvtPathOptions::Paths::AutoText, u"AutoText"_ustr },
+ { SvtPathOptions::Paths::Backup, u"Backup"_ustr },
+ { SvtPathOptions::Paths::Gallery, u"Gallery"_ustr },
+ { SvtPathOptions::Paths::Graphic, u"Graphic"_ustr },
+ { SvtPathOptions::Paths::Temp, u"Temp"_ustr },
+ { SvtPathOptions::Paths::Template, u"Template"_ustr },
+ { SvtPathOptions::Paths::Work, u"Work"_ustr },
+ { SvtPathOptions::Paths::Dictionary, u"Dictionary"_ustr },
+ { SvtPathOptions::Paths::Classification, u"Classification"_ustr },
#if OSL_DEBUG_LEVEL > 1
- { SvtPathOptions::Paths::Linguistic, "Linguistic" },
+ { SvtPathOptions::Paths::Linguistic, u"Linguistic"_ustr },
#endif
- { SvtPathOptions::Paths::LAST, nullptr }
};
static OUString getCfgName_Impl( SvtPathOptions::Paths _nHandle )
{
OUString sCfgName;
- sal_uInt16 nIndex = 0;
- while ( Hdl2CfgMap_Impl[ nIndex ].m_nHandle != SvtPathOptions::Paths::LAST )
+ for (const auto & rMapping : Hdl2CfgMap_Impl)
{
- if ( Hdl2CfgMap_Impl[ nIndex ].m_nHandle == _nHandle )
+ if ( rMapping.m_nHandle == _nHandle )
{
// config name found
- sCfgName = OUString::createFromAscii( Hdl2CfgMap_Impl[ nIndex ].m_pCfgName );
+ sCfgName = rMapping.m_aCfgName;
break;
}
- ++nIndex;
}
return sCfgName;
@@ -135,16 +132,16 @@ static OUString getCfgName_Impl( SvtPathOptions::Paths _nHandle )
#define MULTIPATH_DELIMITER ';'
-static OUString Convert_Impl( const OUString& rValue )
+static OUString Convert_Impl( std::u16string_view rValue )
{
- if (rValue.isEmpty())
+ if (rValue.empty())
return OUString();
sal_Int32 nPos = 0;
OUStringBuffer aReturn;
for (;;)
{
- OUString aValue = rValue.getToken( 0, MULTIPATH_DELIMITER, nPos );
+ OUString aValue( o3tl::getToken(rValue, 0, MULTIPATH_DELIMITER, nPos ) );
INetURLObject aObj( aValue );
if ( aObj.GetProtocol() == INetProtocol::File )
aReturn.append(aObj.PathToFileName());
@@ -180,12 +177,12 @@ static bool IsMultiPath_Impl( const SvtPathOptions::Paths nIndex )
// class SvxPathTabPage --------------------------------------------------
SvxPathTabPage::SvxPathTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage( pPage, pController, "cui/ui/optpathspage.ui", "OptPathsPage", &rSet)
+ : SfxTabPage( pPage, pController, u"cui/ui/optpathspage.ui"_ustr, u"OptPathsPage"_ustr, &rSet)
, pImpl(new OptPath_Impl)
, xDialogListener ( new ::svt::DialogClosedListener() )
- , m_xStandardBtn(m_xBuilder->weld_button("default"))
- , m_xPathBtn(m_xBuilder->weld_button("edit"))
- , m_xPathBox(m_xBuilder->weld_tree_view("paths"))
+ , m_xStandardBtn(m_xBuilder->weld_button(u"default"_ustr))
+ , m_xPathBtn(m_xBuilder->weld_button(u"edit"_ustr))
+ , m_xPathBox(m_xBuilder->weld_tree_view(u"paths"_ustr))
{
m_xStandardBtn->connect_clicked(LINK(this, SvxPathTabPage, StandardHdl_Impl));
m_xPathBtn->connect_clicked( LINK( this, SvxPathTabPage, PathHdl_Impl ) );
@@ -211,7 +208,7 @@ IMPL_LINK(SvxPathTabPage, HeaderBarClick, int, nColumn, void)
SvxPathTabPage::~SvxPathTabPage()
{
for (int i = 0, nEntryCount = m_xPathBox->n_children(); i < nEntryCount; ++i)
- delete reinterpret_cast<PathUserData_Impl*>(m_xPathBox->get_id(i).toInt64());
+ delete weld::fromId<PathUserData_Impl*>(m_xPathBox->get_id(i));
}
std::unique_ptr<SfxTabPage> SvxPathTabPage::Create( weld::Container* pPage, weld::DialogController* pController,
@@ -220,11 +217,19 @@ std::unique_ptr<SfxTabPage> SvxPathTabPage::Create( weld::Container* pPage, weld
return std::make_unique<SvxPathTabPage>( pPage, pController, *rAttrSet );
}
+OUString SvxPathTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ if (const auto& pString = m_xBuilder->weld_label(u"label1"_ustr))
+ sAllStrings += pString->get_label() + " ";
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxPathTabPage::FillItemSet( SfxItemSet* )
{
for (int i = 0, nEntryCount = m_xPathBox->n_children(); i < nEntryCount; ++i)
{
- PathUserData_Impl* pPathImpl = reinterpret_cast<PathUserData_Impl*>(m_xPathBox->get_id(i).toInt64());
+ PathUserData_Impl* pPathImpl = weld::fromId<PathUserData_Impl*>(m_xPathBox->get_id(i));
SvtPathOptions::Paths nRealId = pPathImpl->nRealId;
if (pPathImpl->bItemStateSet )
SetPathList( nRealId, pPathImpl->sUserPath, pPathImpl->sWritablePath );
@@ -250,39 +255,39 @@ void SvxPathTabPage::Reset( const SfxItemSet* )
switch (static_cast<SvtPathOptions::Paths>(i))
{
case SvtPathOptions::Paths::AutoCorrect:
- pId = RID_SVXSTR_KEY_AUTOCORRECT_DIR;
+ pId = RID_CUISTR_KEY_AUTOCORRECT_DIR;
break;
case SvtPathOptions::Paths::AutoText:
- pId = RID_SVXSTR_KEY_GLOSSARY_PATH;
+ pId = RID_CUISTR_KEY_GLOSSARY_PATH;
break;
case SvtPathOptions::Paths::Backup:
- pId = RID_SVXSTR_KEY_BACKUP_PATH;
+ pId = RID_CUISTR_KEY_BACKUP_PATH;
break;
case SvtPathOptions::Paths::Gallery:
- pId = RID_SVXSTR_KEY_GALLERY_DIR;
+ pId = RID_CUISTR_KEY_GALLERY_DIR;
break;
case SvtPathOptions::Paths::Graphic:
- pId = RID_SVXSTR_KEY_GRAPHICS_PATH;
+ pId = RID_CUISTR_KEY_GRAPHICS_PATH;
break;
case SvtPathOptions::Paths::Temp:
- pId = RID_SVXSTR_KEY_TEMP_PATH;
+ pId = RID_CUISTR_KEY_TEMP_PATH;
break;
case SvtPathOptions::Paths::Template:
- pId = RID_SVXSTR_KEY_TEMPLATE_PATH;
+ pId = RID_CUISTR_KEY_TEMPLATE_PATH;
break;
case SvtPathOptions::Paths::Dictionary:
- pId = RID_SVXSTR_KEY_DICTIONARY_PATH;
+ pId = RID_CUISTR_KEY_DICTIONARY_PATH;
break;
case SvtPathOptions::Paths::Classification:
- pId = RID_SVXSTR_KEY_CLASSIFICATION_PATH;
+ pId = RID_CUISTR_KEY_CLASSIFICATION_PATH;
break;
#if OSL_DEBUG_LEVEL > 1
case SvtPathOptions::Paths::Linguistic:
- pId = RID_SVXSTR_KEY_LINGUISTIC_DIR;
+ pId = RID_CUISTR_KEY_LINGUISTIC_DIR;
break;
#endif
case SvtPathOptions::Paths::Work:
- pId = RID_SVXSTR_KEY_WORK_PATH;
+ pId = RID_CUISTR_KEY_WORK_PATH;
break;
default: break;
}
@@ -322,7 +327,7 @@ void SvxPathTabPage::Reset( const SfxItemSet* )
pPathImpl->sWritablePath = sWritable;
pPathImpl->bReadOnly = bReadOnly;
- OUString sId = OUString::number(reinterpret_cast<sal_Int64>(pPathImpl));
+ OUString sId = weld::toId(pPathImpl);
m_xPathBox->set_id(*xIter, sId);
}
}
@@ -338,7 +343,7 @@ IMPL_LINK_NOARG(SvxPathTabPage, PathSelect_Impl, weld::TreeView&, void)
int nEntry = m_xPathBox->get_selected_index();
if (nEntry != -1)
{
- PathUserData_Impl* pPathImpl = reinterpret_cast<PathUserData_Impl*>(m_xPathBox->get_id(nEntry).toInt64());
+ PathUserData_Impl* pPathImpl = weld::fromId<PathUserData_Impl*>(m_xPathBox->get_id(nEntry));
bEnable = !pPathImpl->bReadOnly;
}
sal_uInt16 nSelCount = m_xPathBox->count_selected_rows();
@@ -349,7 +354,7 @@ IMPL_LINK_NOARG(SvxPathTabPage, PathSelect_Impl, weld::TreeView&, void)
IMPL_LINK_NOARG(SvxPathTabPage, StandardHdl_Impl, weld::Button&, void)
{
m_xPathBox->selected_foreach([this](weld::TreeIter& rEntry){
- PathUserData_Impl* pPathImpl = reinterpret_cast<PathUserData_Impl*>(m_xPathBox->get_id(rEntry).toInt64());
+ PathUserData_Impl* pPathImpl = weld::fromId<PathUserData_Impl*>(m_xPathBox->get_id(rEntry));
OUString aOldPath = SvtDefaultOptions::GetDefaultPath( pPathImpl->nRealId );
if ( !aOldPath.isEmpty() )
@@ -362,13 +367,13 @@ IMPL_LINK_NOARG(SvxPathTabPage, StandardHdl_Impl, weld::Button&, void)
do
{
bool bFound = false;
- const OUString sOnePath = aOldPath.getToken( 0, MULTIPATH_DELIMITER, nOldPos );
+ const std::u16string_view sOnePath = o3tl::getToken(aOldPath, 0, MULTIPATH_DELIMITER, nOldPos );
if ( !sInternal.isEmpty() )
{
sal_Int32 nInternalPos = 0;
do
{
- if ( sInternal.getToken( 0, MULTIPATH_DELIMITER, nInternalPos ) == sOnePath )
+ if ( o3tl::getToken(sInternal, 0, MULTIPATH_DELIMITER, nInternalPos ) == sOnePath )
bFound = true;
}
while ( !bFound && nInternalPos >= 0 );
@@ -420,7 +425,7 @@ void SvxPathTabPage::ChangeCurrentEntry( const OUString& _rFolder )
}
OUString sInternal, sUser, sWritable;
- PathUserData_Impl* pPathImpl = reinterpret_cast<PathUserData_Impl*>(m_xPathBox->get_id(nEntry).toInt64());
+ PathUserData_Impl* pPathImpl = weld::fromId<PathUserData_Impl*>(m_xPathBox->get_id(nEntry));
bool bReadOnly = false;
GetPathList( pPathImpl->nRealId, sInternal, sUser, sWritable, bReadOnly );
sUser = pPathImpl->sUserPath;
@@ -470,7 +475,7 @@ IMPL_LINK_NOARG(SvxPathTabPage, DoubleClickPathHdl_Impl, weld::TreeView&, bool)
IMPL_LINK_NOARG(SvxPathTabPage, PathHdl_Impl, weld::Button&, void)
{
int nEntry = m_xPathBox->get_cursor_index();
- PathUserData_Impl* pPathImpl = nEntry != -1 ? reinterpret_cast<PathUserData_Impl*>(m_xPathBox->get_id(nEntry).toInt64()) : nullptr;
+ PathUserData_Impl* pPathImpl = nEntry != -1 ? weld::fromId<PathUserData_Impl*>(m_xPathBox->get_id(nEntry)) : nullptr;
if (!pPathImpl || pPathImpl->bReadOnly)
return;
@@ -568,7 +573,7 @@ IMPL_LINK_NOARG(SvxPathTabPage, PathHdl_Impl, weld::Button&, void)
{
sfx2::FileDialogHelper aHelper(ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, FileDialogFlags::NONE, GetFrameWeld());
uno::Reference<ui::dialogs::XFilePicker3> xFilePicker = aHelper.GetFilePicker();
- xFilePicker->appendFilter(OUString(), "*.xml");
+ xFilePicker->appendFilter(OUString(), u"*.xml"_ustr);
if (xFilePicker->execute() == ui::dialogs::ExecutableDialogResults::OK)
{
uno::Sequence<OUString> aPathSeq(xFilePicker->getSelectedFiles());
@@ -613,14 +618,11 @@ void SvxPathTabPage::GetPathList(
Sequence< OUString > aPathSeq;
if ( aAny >>= aPathSeq )
{
- tools::Long i, nCount = aPathSeq.getLength();
- const OUString* pPaths = aPathSeq.getConstArray();
-
- for ( i = 0; i < nCount; ++i )
+ for (auto& path : aPathSeq)
{
if ( !_rInternalPath.isEmpty() )
_rInternalPath += ";";
- _rInternalPath += pPaths[i];
+ _rInternalPath += path;
}
}
// load user paths
@@ -628,14 +630,11 @@ void SvxPathTabPage::GetPathList(
sCfgName + POSTFIX_USER);
if ( aAny >>= aPathSeq )
{
- tools::Long i, nCount = aPathSeq.getLength();
- const OUString* pPaths = aPathSeq.getConstArray();
-
- for ( i = 0; i < nCount; ++i )
+ for (auto& path : aPathSeq)
{
if ( !_rUserPath.isEmpty() )
_rUserPath += ";";
- _rUserPath += pPaths[i];
+ _rUserPath += path;
}
}
// then the writable path
@@ -658,7 +657,7 @@ void SvxPathTabPage::GetPathList(
void SvxPathTabPage::SetPathList(
- SvtPathOptions::Paths _nPathHandle, const OUString& _rUserPath, const OUString& _rWritablePath )
+ SvtPathOptions::Paths _nPathHandle, std::u16string_view _rUserPath, const OUString& _rWritablePath )
{
OUString sCfgName = getCfgName_Impl( _nPathHandle );
@@ -677,7 +676,7 @@ void SvxPathTabPage::SetPathList(
OUString* pArray = aPathSeq.getArray();
sal_Int32 nPos = 0;
for ( sal_Int32 i = 0; i < nCount; ++i )
- pArray[i] = _rUserPath.getToken( 0, MULTIPATH_DELIMITER, nPos );
+ pArray[i] = o3tl::getToken(_rUserPath, 0, MULTIPATH_DELIMITER, nPos );
Any aValue( aPathSeq );
pImpl->m_xPathSettings->setPropertyValue(
sCfgName + POSTFIX_USER, aValue);
diff --git a/cui/source/options/optsave.cxx b/cui/source/options/optsave.cxx
index 08e4ce219197..84ecc43b5766 100644
--- a/cui/source/options/optsave.cxx
+++ b/cui/source/options/optsave.cxx
@@ -21,9 +21,13 @@
#include <string_view>
+#include <o3tl/string_view.hxx>
#include <svl/eitem.hxx>
#include <svl/intitem.hxx>
+#include <dialmgr.hxx>
#include "optsave.hxx"
+#include <strings.hrc>
+#include <treeopt.hxx>
#include <officecfg/Office/Common.hxx>
#include <comphelper/processfactory.hxx>
#include <unotools/moduleoptions.hxx>
@@ -36,22 +40,19 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <sfx2/sfxsids.hrc>
#include <sfx2/docfilt.hxx>
-#include <unotools/optionsdlg.hxx>
#include <osl/diagnose.h>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <officecfg/Office/Recovery.hxx>
+#include <unotools/confignode.hxx>
#include <sfx2/fcontnr.hxx>
using namespace com::sun::star::uno;
-using namespace com::sun::star::util;
using namespace com::sun::star::lang;
using namespace com::sun::star::beans;
using namespace com::sun::star::container;
using namespace comphelper;
-#define CFG_PAGE_AND_GROUP u"General", u"LoadSave"
-
struct SvxSaveTabPage_Impl
{
@@ -73,27 +74,43 @@ SvxSaveTabPage_Impl::SvxSaveTabPage_Impl() : bInitialized( false )
// class SvxSaveTabPage --------------------------------------------------
SvxSaveTabPage::SvxSaveTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreSet)
- : SfxTabPage( pPage, pController, "cui/ui/optsavepage.ui", "OptSavePage", &rCoreSet )
+ : SfxTabPage( pPage, pController, u"cui/ui/optsavepage.ui"_ustr, u"OptSavePage"_ustr, &rCoreSet )
, pImpl(new SvxSaveTabPage_Impl)
- , m_xLoadUserSettingsCB(m_xBuilder->weld_check_button("load_settings"))
- , m_xLoadDocPrinterCB(m_xBuilder->weld_check_button("load_docprinter"))
- , m_xDocInfoCB(m_xBuilder->weld_check_button("docinfo"))
- , m_xBackupCB(m_xBuilder->weld_check_button("backup"))
- , m_xAutoSaveCB(m_xBuilder->weld_check_button("autosave"))
- , m_xAutoSaveEdit(m_xBuilder->weld_spin_button("autosave_spin"))
- , m_xMinuteFT(m_xBuilder->weld_label("autosave_mins"))
- , m_xUserAutoSaveCB(m_xBuilder->weld_check_button("userautosave"))
- , m_xRelativeFsysCB(m_xBuilder->weld_check_button("relative_fsys"))
- , m_xRelativeInetCB(m_xBuilder->weld_check_button("relative_inet"))
- , m_xODFVersionLB(m_xBuilder->weld_combo_box("odfversion"))
- , m_xWarnAlienFormatCB(m_xBuilder->weld_check_button("warnalienformat"))
- , m_xDocTypeLB(m_xBuilder->weld_combo_box("doctype"))
- , m_xSaveAsFT(m_xBuilder->weld_label("saveas_label"))
- , m_xSaveAsLB(m_xBuilder->weld_combo_box("saveas"))
- , m_xODFWarningFI(m_xBuilder->weld_widget("odfwarning_image"))
- , m_xODFWarningFT(m_xBuilder->weld_label("odfwarning_label"))
+ , m_xLoadViewPosAnyUserCB(m_xBuilder->weld_check_button(u"load_anyuser"_ustr))
+ , m_xLoadViewPosAnyUserImg(m_xBuilder->weld_widget(u"lockload_anyuser"_ustr))
+ , m_xLoadUserSettingsCB(m_xBuilder->weld_check_button(u"load_settings"_ustr))
+ , m_xLoadUserSettingsImg(m_xBuilder->weld_widget(u"lockload_settings"_ustr))
+ , m_xLoadDocPrinterCB(m_xBuilder->weld_check_button(u"load_docprinter"_ustr))
+ , m_xLoadDocPrinterImg(m_xBuilder->weld_widget(u"lockload_docprinter"_ustr))
+ , m_xDocInfoCB(m_xBuilder->weld_check_button(u"docinfo"_ustr))
+ , m_xDocInfoImg(m_xBuilder->weld_widget(u"lockdocinfo"_ustr))
+ , m_xBackupCB(m_xBuilder->weld_check_button(u"backup"_ustr))
+ , m_xBackupImg(m_xBuilder->weld_widget(u"lockbackup"_ustr))
+ , m_xBackupIntoDocumentFolderCB(m_xBuilder->weld_check_button(u"backupintodocumentfolder"_ustr))
+ , m_xBackupIntoDocumentFolderImg(m_xBuilder->weld_widget(u"lockbackupintodoc"_ustr))
+ , m_xAutoSaveCB(m_xBuilder->weld_check_button(u"autosave"_ustr))
+ , m_xAutoSaveImg(m_xBuilder->weld_widget(u"lockautosave"_ustr))
+ , m_xAutoSaveEdit(m_xBuilder->weld_spin_button(u"autosave_spin"_ustr))
+ , m_xMinuteFT(m_xBuilder->weld_label(u"autosave_mins"_ustr))
+ , m_xUserAutoSaveCB(m_xBuilder->weld_check_button(u"userautosave"_ustr))
+ , m_xUserAutoSaveImg(m_xBuilder->weld_widget(u"lockuserautosave"_ustr))
+ , m_xRelativeFsysCB(m_xBuilder->weld_check_button(u"relative_fsys"_ustr))
+ , m_xRelativeFsysImg(m_xBuilder->weld_widget(u"lockrelative_fsys"_ustr))
+ , m_xRelativeInetCB(m_xBuilder->weld_check_button(u"relative_inet"_ustr))
+ , m_xRelativeInetImg(m_xBuilder->weld_widget(u"lockrelative_inet"_ustr))
+ , m_xODFVersionLB(m_xBuilder->weld_combo_box(u"odfversion"_ustr))
+ , m_xODFVersionFT(m_xBuilder->weld_label(u"label5"_ustr))
+ , m_xODFVersionImg(m_xBuilder->weld_widget(u"lockodfversion"_ustr))
+ , m_xWarnAlienFormatCB(m_xBuilder->weld_check_button(u"warnalienformat"_ustr))
+ , m_xWarnAlienFormatImg(m_xBuilder->weld_widget(u"lockwarnalienformat"_ustr))
+ , m_xDocTypeLB(m_xBuilder->weld_combo_box(u"doctype"_ustr))
+ , m_xSaveAsFT(m_xBuilder->weld_label(u"saveas_label"_ustr))
+ , m_xSaveAsLB(m_xBuilder->weld_combo_box(u"saveas"_ustr))
+ , m_xODFWarningFI(m_xBuilder->weld_widget(u"odfwarning_image"_ustr))
+ , m_xODFWarningFT(m_xBuilder->weld_label(u"odfwarning_label"_ustr))
{
m_xAutoSaveEdit->set_max_length(2);
+ m_xBackupIntoDocumentFolderCB->set_accessible_description(CuiResId(RID_CUISTR_A11Y_DESC_BACKUP));
m_xODFVersionLB->set_id(0, OUString::number(SvtSaveOptions::ODFVER_011)); // 1.0/1.1
m_xODFVersionLB->set_id(1, OUString::number(SvtSaveOptions::ODFVER_012)); // 1.2
@@ -102,15 +119,23 @@ SvxSaveTabPage::SvxSaveTabPage(weld::Container* pPage, weld::DialogController* p
m_xODFVersionLB->set_id(4, OUString::number(SvtSaveOptions::ODFVER_013)); // 1.3
m_xODFVersionLB->set_id(5, OUString::number(SvtSaveOptions::ODFVER_LATEST)); // 1.3 Extended (recommended)
- m_xDocTypeLB->set_id(0, OUString::number(APP_WRITER) );
- m_xDocTypeLB->set_id(1, OUString::number(APP_WRITER_WEB) );
- m_xDocTypeLB->set_id(2, OUString::number(APP_WRITER_GLOBAL));
- m_xDocTypeLB->set_id(3, OUString::number(APP_CALC) );
- m_xDocTypeLB->set_id(4, OUString::number(APP_IMPRESS) );
- m_xDocTypeLB->set_id(5, OUString::number(APP_DRAW) );
- m_xDocTypeLB->set_id(6, OUString::number(APP_MATH) );
+ auto aFilterClassesNode = utl::OConfigurationTreeRoot::createWithComponentContext(
+ comphelper::getProcessComponentContext(),
+ u"org.openoffice.Office.UI/FilterClassification/GlobalFilters/Classes"_ustr,
+ -1,
+ utl::OConfigurationTreeRoot::CM_READONLY
+ );
+
+ m_xDocTypeLB->append(OUString::number(APP_WRITER), aFilterClassesNode.getNodeValue(u"com.sun.star.text.TextDocument/DisplayName"_ustr).get<OUString>());
+ m_xDocTypeLB->append(OUString::number(APP_WRITER_WEB), aFilterClassesNode.getNodeValue(u"com.sun.star.text.WebDocument/DisplayName"_ustr).get<OUString>());
+ m_xDocTypeLB->append(OUString::number(APP_WRITER_GLOBAL), aFilterClassesNode.getNodeValue(u"com.sun.star.text.GlobalDocument/DisplayName"_ustr).get<OUString>());
+ m_xDocTypeLB->append(OUString::number(APP_CALC), aFilterClassesNode.getNodeValue(u"com.sun.star.sheet.SpreadsheetDocument/DisplayName"_ustr).get<OUString>());
+ m_xDocTypeLB->append(OUString::number(APP_IMPRESS), aFilterClassesNode.getNodeValue(u"com.sun.star.presentation.PresentationDocument/DisplayName"_ustr).get<OUString>());
+ m_xDocTypeLB->append(OUString::number(APP_DRAW), aFilterClassesNode.getNodeValue(u"com.sun.star.drawing.DrawingDocument/DisplayName"_ustr).get<OUString>());
+ m_xDocTypeLB->append(OUString::number(APP_MATH), aFilterClassesNode.getNodeValue(u"com.sun.star.formula.FormulaProperties/DisplayName"_ustr).get<OUString>());
m_xAutoSaveCB->connect_toggled( LINK( this, SvxSaveTabPage, AutoClickHdl_Impl ) );
+ m_xBackupCB->connect_toggled(LINK(this, SvxSaveTabPage, BackupClickHdl_Impl));
SvtModuleOptions aModuleOpt;
if ( !aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
@@ -181,8 +206,6 @@ SvxSaveTabPage::SvxSaveTabPage(weld::Container* pPage, weld::DialogController* p
aLink = LINK( this, SvxSaveTabPage, FilterHdl_Impl );
m_xDocTypeLB->connect_changed( aLink );
m_xSaveAsLB->connect_changed( aLink );
-
- DetectHiddenControls();
}
SvxSaveTabPage::~SvxSaveTabPage()
@@ -195,36 +218,40 @@ std::unique_ptr<SfxTabPage> SvxSaveTabPage::Create(weld::Container* pPage, weld:
return std::make_unique<SvxSaveTabPage>(pPage, pController, *rAttrSet);
}
-void SvxSaveTabPage::DetectHiddenControls()
+OUString SvxSaveTabPage::GetAllStrings()
{
- SvtOptionsDialogOptions aOptionsDlgOpt;
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"label2"_ustr, u"autosave_mins"_ustr, u"label3"_ustr,
+ u"label5"_ustr, u"label6"_ustr, u"saveas_label"_ustr, u"odfwarning_label"_ustr };
- if ( aOptionsDlgOpt.IsOptionHidden( u"Backup", CFG_PAGE_AND_GROUP ) )
+ for (const auto& label : labels)
{
- // hide controls of "Backup"
- m_xBackupCB->hide();
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
}
- if ( aOptionsDlgOpt.IsOptionHidden( u"AutoSave", CFG_PAGE_AND_GROUP ) )
- {
- // hide controls of "AutoSave"
- m_xAutoSaveCB->hide();
- m_xAutoSaveEdit->hide();
- m_xMinuteFT->hide();
- }
+ OUString checkButton[]
+ = { u"load_settings"_ustr, u"load_docprinter"_ustr, u"load_anyuser"_ustr, u"autosave"_ustr,
+ u"userautosave"_ustr, u"docinfo"_ustr, u"backup"_ustr, u"backupintodocumentfolder"_ustr,
+ u"relative_fsys"_ustr, u"relative_inet"_ustr, u"warnalienformat"_ustr };
- if ( aOptionsDlgOpt.IsOptionHidden( u"UserAutoSave", CFG_PAGE_AND_GROUP ) )
+ for (const auto& check : checkButton)
{
- // hide controls of "UserAutoSave"
- m_xUserAutoSaveCB->hide();
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
}
+ return sAllStrings.replaceAll("_", "");
}
bool SvxSaveTabPage::FillItemSet( SfxItemSet* rSet )
{
auto xChanges = comphelper::ConfigurationChanges::create();
bool bModified = false;
+ if (m_xLoadViewPosAnyUserCB->get_state_changed_from_saved())
+ {
+ officecfg::Office::Common::Load::ViewPositionForAnyUser::set(m_xLoadViewPosAnyUserCB->get_active(), xChanges);
+ }
if(m_xLoadUserSettingsCB->get_state_changed_from_saved())
officecfg::Office::Common::Load::UserDefinedSettings::set(m_xLoadUserSettingsCB->get_active(), xChanges);
@@ -239,55 +266,62 @@ bool SvxSaveTabPage::FillItemSet( SfxItemSet* rSet )
if ( m_xDocInfoCB->get_state_changed_from_saved() )
{
- rSet->Put( SfxBoolItem( GetWhich( SID_ATTR_DOCINFO ),
+ rSet->Put( SfxBoolItem( SID_ATTR_DOCINFO,
m_xDocInfoCB->get_active() ) );
bModified = true;
}
if ( m_xBackupCB->get_sensitive() && m_xBackupCB->get_state_changed_from_saved() )
{
- rSet->Put( SfxBoolItem( GetWhich( SID_ATTR_BACKUP ),
- m_xBackupCB->get_active() ) );
+ rSet->Put( SfxBoolItem( SID_ATTR_BACKUP, m_xBackupCB->get_active() ) );
+ bModified = true;
+ }
+
+ if (m_xBackupIntoDocumentFolderCB->get_sensitive()
+ && m_xBackupIntoDocumentFolderCB->get_state_changed_from_saved())
+ {
+ rSet->Put(
+ SfxBoolItem(SID_ATTR_BACKUP_BESIDE_ORIGINAL, m_xBackupIntoDocumentFolderCB->get_active()));
bModified = true;
}
if ( m_xAutoSaveCB->get_state_changed_from_saved() )
{
- rSet->Put( SfxBoolItem( GetWhich( SID_ATTR_AUTOSAVE ),
+ rSet->Put( SfxBoolItem( SID_ATTR_AUTOSAVE,
m_xAutoSaveCB->get_active() ) );
bModified = true;
}
if ( m_xWarnAlienFormatCB->get_state_changed_from_saved() )
{
- rSet->Put( SfxBoolItem( GetWhich( SID_ATTR_WARNALIENFORMAT ),
+ rSet->Put( SfxBoolItem( SID_ATTR_WARNALIENFORMAT,
m_xWarnAlienFormatCB->get_active() ) );
bModified = true;
}
if ( m_xAutoSaveEdit->get_value_changed_from_saved() )
{
- rSet->Put( SfxUInt16Item( GetWhich( SID_ATTR_AUTOSAVEMINUTE ),
+ rSet->Put( SfxUInt16Item( SID_ATTR_AUTOSAVEMINUTE,
static_cast<sal_uInt16>(m_xAutoSaveEdit->get_value()) ) );
bModified = true;
}
if ( m_xUserAutoSaveCB->get_state_changed_from_saved() )
{
- rSet->Put( SfxBoolItem( GetWhich( SID_ATTR_USERAUTOSAVE ),
+ rSet->Put( SfxBoolItem( SID_ATTR_USERAUTOSAVE,
m_xUserAutoSaveCB->get_active() ) );
bModified = true;
}
// save relatively
if ( m_xRelativeFsysCB->get_state_changed_from_saved() )
{
- rSet->Put( SfxBoolItem( GetWhich( SID_SAVEREL_FSYS ),
+ rSet->Put( SfxBoolItem( SID_SAVEREL_FSYS,
m_xRelativeFsysCB->get_active() ) );
bModified = true;
}
if ( m_xRelativeInetCB->get_state_changed_from_saved() )
{
- rSet->Put( SfxBoolItem( GetWhich( SID_SAVEREL_INET ),
+ rSet->Put( SfxBoolItem( SID_SAVEREL_INET,
m_xRelativeInetCB->get_active() ) );
bModified = true;
}
@@ -325,7 +359,7 @@ bool SvxSaveTabPage::FillItemSet( SfxItemSet* rSet )
return bModified;
}
-static bool isODFFormat( const OUString& sFilter )
+static bool isODFFormat( std::u16string_view sFilter )
{
static const char* aODFFormats[] =
{
@@ -349,7 +383,7 @@ static bool isODFFormat( const OUString& sFilter )
int i = 0;
while ( aODFFormats[i] != nullptr )
{
- if ( sFilter.equalsAscii( aODFFormats[i++] ) )
+ if ( o3tl::equalsAscii( sFilter, aODFFormats[i++] ) )
{
bRet = true;
break;
@@ -361,19 +395,27 @@ static bool isODFFormat( const OUString& sFilter )
void SvxSaveTabPage::Reset( const SfxItemSet* )
{
+ m_xLoadViewPosAnyUserCB->set_active(officecfg::Office::Common::Load::ViewPositionForAnyUser::get());
+ m_xLoadViewPosAnyUserCB->save_state();
+ m_xLoadViewPosAnyUserCB->set_sensitive(!officecfg::Office::Common::Load::ViewPositionForAnyUser::isReadOnly());
+ m_xLoadViewPosAnyUserImg->set_visible(officecfg::Office::Common::Load::ViewPositionForAnyUser::isReadOnly());
+
m_xLoadUserSettingsCB->set_active(officecfg::Office::Common::Load::UserDefinedSettings::get());
m_xLoadUserSettingsCB->save_state();
m_xLoadUserSettingsCB->set_sensitive(!officecfg::Office::Common::Load::UserDefinedSettings::isReadOnly());
+ m_xLoadUserSettingsImg->set_visible(officecfg::Office::Common::Load::UserDefinedSettings::isReadOnly());
+
m_xLoadDocPrinterCB->set_active( officecfg::Office::Common::Save::Document::LoadPrinter::get() );
m_xLoadDocPrinterCB->save_state();
m_xLoadDocPrinterCB->set_sensitive(!officecfg::Office::Common::Save::Document::LoadPrinter::isReadOnly());
+ m_xLoadDocPrinterImg->set_visible(officecfg::Office::Common::Save::Document::LoadPrinter::isReadOnly());
if ( !pImpl->bInitialized )
{
try
{
Reference< XMultiServiceFactory > xMSF = comphelper::getProcessServiceFactory();
- pImpl->xFact.set(xMSF->createInstance("com.sun.star.document.FilterFactory"), UNO_QUERY);
+ pImpl->xFact.set(xMSF->createInstance(u"com.sun.star.document.FilterFactory"_ustr), UNO_QUERY);
DBG_ASSERT(pImpl->xFact.is(), "service com.sun.star.document.FilterFactory unavailable");
Reference< XContainerQuery > xQuery(pImpl->xFact, UNO_QUERY);
@@ -396,7 +438,7 @@ void SvxSaveTabPage::Reset( const SfxItemSet* )
case APP_IMPRESS : sReplace = "com.sun.star.presentation.PresentationDocument";break;
case APP_DRAW : sReplace = "com.sun.star.drawing.DrawingDocument";break;
case APP_MATH : sReplace = "com.sun.star.formula.FormulaProperties";break;
- default: OSL_FAIL("illegal user data");
+ default: SAL_WARN("cui.options", "illegal user data");
}
sCommand = sCommand.replaceFirst("%1", sReplace);
Reference< XEnumeration > xList = xQuery->createSubSetEnumerationByQuery(sCommand);
@@ -405,7 +447,7 @@ void SvxSaveTabPage::Reset( const SfxItemSet* )
while(xList->hasMoreElements())
{
SequenceAsHashMap aFilter(xList->nextElement());
- OUString sFilter = aFilter.getUnpackedValueOrDefault("Name",OUString());
+ OUString sFilter = aFilter.getUnpackedValueOrDefault(u"Name"_ustr,OUString());
if (!sFilter.isEmpty())
{
lList.push_back(sFilter);
@@ -416,7 +458,23 @@ void SvxSaveTabPage::Reset( const SfxItemSet* )
pImpl->aODFArr[nData] = lODFList;
}
}
- m_xDocTypeLB->set_active(0);
+ OUString sModule = OfaTreeOptionsDialog::getCurrentFactory_Impl(GetFrame());
+ sal_Int32 docId = 0;
+ if (sModule == "com.sun.star.text.TextDocument")
+ docId = APP_WRITER;
+ else if (sModule == "com.sun.star.text.WebDocument")
+ docId = APP_WRITER_WEB;
+ else if (sModule == "com.sun.star.text.GlobalDocument")
+ docId = APP_WRITER_GLOBAL;
+ else if (sModule == "com.sun.star.sheet.SpreadsheetDocument")
+ docId = APP_CALC;
+ else if (sModule == "com.sun.star.presentation.PresentationDocument")
+ docId = APP_IMPRESS;
+ else if (sModule == "com.sun.star.drawing.DrawingDocument")
+ docId = APP_DRAW;
+ else if (sModule == "com.sun.star.formula.FormulaProperties")
+ docId = APP_MATH;
+ m_xDocTypeLB->set_active_id(OUString::number(docId));
FilterHdl_Impl(*m_xDocTypeLB);
}
catch(Exception const &)
@@ -429,38 +487,56 @@ void SvxSaveTabPage::Reset( const SfxItemSet* )
m_xDocInfoCB->set_active(officecfg::Office::Common::Save::Document::EditProperty::get());
m_xDocInfoCB->set_sensitive(!officecfg::Office::Common::Save::Document::EditProperty::isReadOnly());
+ m_xDocInfoImg->set_visible(officecfg::Office::Common::Save::Document::EditProperty::isReadOnly());
m_xBackupCB->set_active(officecfg::Office::Common::Save::Document::CreateBackup::get());
m_xBackupCB->set_sensitive(!officecfg::Office::Common::Save::Document::CreateBackup::isReadOnly());
+ m_xBackupImg->set_visible(officecfg::Office::Common::Save::Document::CreateBackup::isReadOnly());
+
+ m_xBackupIntoDocumentFolderCB->set_active(
+ officecfg::Office::Common::Save::Document::BackupIntoDocumentFolder::get());
+ m_xBackupIntoDocumentFolderCB->set_sensitive(
+ !officecfg::Office::Common::Save::Document::BackupIntoDocumentFolder::isReadOnly()
+ && m_xBackupCB->get_active());
+ m_xBackupIntoDocumentFolderImg->set_visible(
+ officecfg::Office::Common::Save::Document::BackupIntoDocumentFolder::isReadOnly());
- m_xAutoSaveCB->set_active(officecfg::Office::Common::Save::Document::AutoSave::get());
- m_xAutoSaveCB->set_sensitive(!officecfg::Office::Common::Save::Document::AutoSave::isReadOnly());
+ m_xAutoSaveCB->set_active(officecfg::Office::Recovery::AutoSave::Enabled::get());
+ m_xAutoSaveCB->set_sensitive(!officecfg::Office::Recovery::AutoSave::Enabled::isReadOnly());
+ m_xAutoSaveImg->set_visible(officecfg::Office::Recovery::AutoSave::Enabled::isReadOnly());
m_xUserAutoSaveCB->set_active(officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::get());
m_xUserAutoSaveCB->set_sensitive(!officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::isReadOnly());
+ m_xUserAutoSaveImg->set_visible(officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::isReadOnly());
m_xWarnAlienFormatCB->set_active(officecfg::Office::Common::Save::Document::WarnAlienFormat::get());
m_xWarnAlienFormatCB->set_sensitive(!officecfg::Office::Common::Save::Document::WarnAlienFormat::isReadOnly());
+ m_xWarnAlienFormatImg->set_visible(officecfg::Office::Common::Save::Document::WarnAlienFormat::isReadOnly());
- m_xAutoSaveEdit->set_value(officecfg::Office::Common::Save::Document::AutoSaveTimeIntervall::get());
- m_xAutoSaveEdit->set_sensitive(!officecfg::Office::Common::Save::Document::AutoSaveTimeIntervall::isReadOnly());
+ m_xAutoSaveEdit->set_value(officecfg::Office::Recovery::AutoSave::TimeIntervall::get());
+ m_xAutoSaveEdit->set_sensitive(!officecfg::Office::Recovery::AutoSave::TimeIntervall::isReadOnly());
// save relatively
m_xRelativeFsysCB->set_active(officecfg::Office::Common::Save::URL::FileSystem::get());
m_xRelativeFsysCB->set_sensitive(!officecfg::Office::Common::Save::URL::FileSystem::isReadOnly());
+ m_xRelativeFsysImg->set_visible(officecfg::Office::Common::Save::URL::FileSystem::isReadOnly());
m_xRelativeInetCB->set_active(officecfg::Office::Common::Save::URL::Internet::get());
m_xRelativeInetCB->set_sensitive(!officecfg::Office::Common::Save::URL::Internet::isReadOnly());
+ m_xRelativeInetImg->set_visible(officecfg::Office::Common::Save::URL::Internet::isReadOnly());
sal_Int32 nDefaultVersion = GetODFDefaultVersion();
m_xODFVersionLB->set_active_id(OUString::number(nDefaultVersion));
m_xODFVersionLB->set_sensitive(!officecfg::Office::Common::Save::ODF::DefaultVersion::isReadOnly());
+ m_xODFVersionFT->set_sensitive(!officecfg::Office::Common::Save::ODF::DefaultVersion::isReadOnly());
+ m_xODFVersionImg->set_visible(officecfg::Office::Common::Save::ODF::DefaultVersion::isReadOnly());
AutoClickHdl_Impl(*m_xAutoSaveCB);
ODFVersionHdl_Impl(*m_xODFVersionLB);
m_xDocInfoCB->save_state();
m_xBackupCB->save_state();
+ m_xBackupIntoDocumentFolderCB->save_state();
m_xWarnAlienFormatCB->save_state();
m_xAutoSaveCB->save_state();
m_xAutoSaveEdit->save_value();
@@ -479,9 +555,9 @@ IMPL_LINK(SvxSaveTabPage, AutoClickHdl_Impl, weld::Toggleable&, rBox, void)
if (m_xAutoSaveCB->get_active())
{
- m_xAutoSaveEdit->set_sensitive(true);
- m_xMinuteFT->set_sensitive(true);
- m_xUserAutoSaveCB->set_sensitive(true);
+ m_xAutoSaveEdit->set_sensitive(!officecfg::Office::Recovery::AutoSave::Enabled::isReadOnly());
+ m_xMinuteFT->set_sensitive(!officecfg::Office::Recovery::AutoSave::Enabled::isReadOnly());
+ m_xUserAutoSaveCB->set_sensitive(!officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::isReadOnly());
}
else
{
@@ -491,32 +567,31 @@ IMPL_LINK(SvxSaveTabPage, AutoClickHdl_Impl, weld::Toggleable&, rBox, void)
}
}
+IMPL_LINK_NOARG(SvxSaveTabPage, BackupClickHdl_Impl, weld::Toggleable&, void)
+{
+ m_xBackupIntoDocumentFolderCB->set_sensitive(m_xBackupCB->get_active() &&
+ !officecfg::Office::Common::Save::Document::BackupIntoDocumentFolder::isReadOnly());
+}
+
static OUString lcl_ExtracUIName(const Sequence<PropertyValue> &rProperties, std::u16string_view rExtension)
{
OUString sName;
- const PropertyValue* pPropVal = rProperties.getConstArray();
- const PropertyValue* const pEnd = pPropVal + rProperties.getLength();
- for( ; pPropVal != pEnd; pPropVal++ )
+ for (auto& propVal : rProperties)
{
- const OUString &rName = pPropVal->Name;
+ const OUString &rName = propVal.Name;
if (rName == "UIName")
{
OUString sUIName;
- if ( ( pPropVal->Value >>= sUIName ) && sUIName.getLength() )
+ if ((propVal.Value >>= sUIName) && sUIName.getLength())
{
if (!rExtension.empty())
- {
- return sUIName + " (" + rExtension + ")";
- }
- else
- {
- return sUIName;
- }
+ sUIName += OUString::Concat(" (") + rExtension + ")";
+ return sUIName;
}
}
else if (rName == "Name")
{
- pPropVal->Value >>= sName;
+ propVal.Value >>= sName;
}
}
@@ -565,7 +640,7 @@ IMPL_LINK( SvxSaveTabPage, FilterHdl_Impl, weld::ComboBox&, rBox, void )
{
OUString sId;
if (pImpl->aODFArr[nData][i])
- sId = OUString::number(reinterpret_cast<sal_Int64>(pImpl.get()));
+ sId = weld::toId(pImpl.get());
m_xSaveAsLB->append(sId, rUIFilters[i]);
if (rFilters[i] == pImpl->aDefaultArr[nData])
sSelect = rUIFilters[i];
diff --git a/cui/source/options/optsave.hxx b/cui/source/options/optsave.hxx
index 4ec3b1ddada5..255719184d63 100644
--- a/cui/source/options/optsave.hxx
+++ b/cui/source/options/optsave.hxx
@@ -41,18 +41,33 @@ class SvxSaveTabPage : public SfxTabPage
private:
std::unique_ptr<SvxSaveTabPage_Impl> pImpl;
+ std::unique_ptr<weld::CheckButton> m_xLoadViewPosAnyUserCB;
+ std::unique_ptr<weld::Widget> m_xLoadViewPosAnyUserImg;
std::unique_ptr<weld::CheckButton> m_xLoadUserSettingsCB;
+ std::unique_ptr<weld::Widget> m_xLoadUserSettingsImg;
std::unique_ptr<weld::CheckButton> m_xLoadDocPrinterCB;
+ std::unique_ptr<weld::Widget> m_xLoadDocPrinterImg;
std::unique_ptr<weld::CheckButton> m_xDocInfoCB;
+ std::unique_ptr<weld::Widget> m_xDocInfoImg;
std::unique_ptr<weld::CheckButton> m_xBackupCB;
+ std::unique_ptr<weld::Widget> m_xBackupImg;
+ std::unique_ptr<weld::CheckButton> m_xBackupIntoDocumentFolderCB;
+ std::unique_ptr<weld::Widget> m_xBackupIntoDocumentFolderImg;
std::unique_ptr<weld::CheckButton> m_xAutoSaveCB;
+ std::unique_ptr<weld::Widget> m_xAutoSaveImg;
std::unique_ptr<weld::SpinButton> m_xAutoSaveEdit;
std::unique_ptr<weld::Label> m_xMinuteFT;
std::unique_ptr<weld::CheckButton> m_xUserAutoSaveCB;
+ std::unique_ptr<weld::Widget> m_xUserAutoSaveImg;
std::unique_ptr<weld::CheckButton> m_xRelativeFsysCB;
+ std::unique_ptr<weld::Widget> m_xRelativeFsysImg;
std::unique_ptr<weld::CheckButton> m_xRelativeInetCB;
+ std::unique_ptr<weld::Widget> m_xRelativeInetImg;
std::unique_ptr<weld::ComboBox> m_xODFVersionLB;
+ std::unique_ptr<weld::Label> m_xODFVersionFT;
+ std::unique_ptr<weld::Widget> m_xODFVersionImg;
std::unique_ptr<weld::CheckButton> m_xWarnAlienFormatCB;
+ std::unique_ptr<weld::Widget> m_xWarnAlienFormatImg;
std::unique_ptr<weld::ComboBox> m_xDocTypeLB;
std::unique_ptr<weld::Label> m_xSaveAsFT;
std::unique_ptr<weld::ComboBox> m_xSaveAsLB;
@@ -60,17 +75,18 @@ private:
std::unique_ptr<weld::Label> m_xODFWarningFT;
DECL_LINK( AutoClickHdl_Impl, weld::Toggleable&, void );
+ DECL_LINK(BackupClickHdl_Impl, weld::Toggleable&, void);
DECL_LINK( FilterHdl_Impl, weld::ComboBox&, void );
DECL_LINK(ODFVersionHdl_Impl, weld::ComboBox&, void );
- void DetectHiddenControls();
-
public:
SvxSaveTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
virtual ~SvxSaveTabPage() override;
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet );
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
};
diff --git a/cui/source/options/optupdt.cxx b/cui/source/options/optupdt.cxx
index 6b0dbe2cd2cd..71433ab2258f 100644
--- a/cui/source/options/optupdt.cxx
+++ b/cui/source/options/optupdt.cxx
@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <config_features.h>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <svl/numformat.hxx>
@@ -25,7 +26,7 @@
#include <comphelper/processfactory.hxx>
#include <com/sun/star/configuration/theDefaultProvider.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
+#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/deployment/UpdateInformationProvider.hpp>
#include <com/sun/star/ucb/XWebDAVCommandEnvironment.hpp>
@@ -34,65 +35,99 @@
#include <com/sun/star/util/XChangesBatch.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
#include <com/sun/star/util/XURLTransformer.hpp>
+#include <com/sun/star/setup/UpdateCheck.hpp>
#include <com/sun/star/setup/UpdateCheckConfig.hpp>
#include <com/sun/star/configuration/ReadWriteAccess.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
#include <sfx2/filedlghelper.hxx>
#include <officecfg/Office/Common.hxx>
+#include <officecfg/Office/Update.hxx>
#include <osl/file.hxx>
#include <osl/security.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <unotools/configmgr.hxx>
using namespace ::css;
SvxOnlineUpdateTabPage::SvxOnlineUpdateTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/optonlineupdatepage.ui", "OptOnlineUpdatePage", &rSet)
- , m_xNeverChecked(m_xBuilder->weld_label("neverchecked"))
- , m_xAutoCheckCheckBox(m_xBuilder->weld_check_button("autocheck"))
- , m_xEveryDayButton(m_xBuilder->weld_radio_button("everyday"))
- , m_xEveryWeekButton(m_xBuilder->weld_radio_button("everyweek"))
- , m_xEveryMonthButton(m_xBuilder->weld_radio_button("everymonth"))
- , m_xCheckNowButton(m_xBuilder->weld_button("checknow"))
- , m_xAutoDownloadCheckBox(m_xBuilder->weld_check_button("autodownload"))
- , m_xDestPathLabel(m_xBuilder->weld_label("destpathlabel"))
- , m_xDestPath(m_xBuilder->weld_label("destpath"))
- , m_xChangePathButton(m_xBuilder->weld_button("changepath"))
- , m_xLastChecked(m_xBuilder->weld_label("lastchecked"))
- , m_xExtrasCheckBox(m_xBuilder->weld_check_button("extrabits"))
- , m_xUserAgentLabel(m_xBuilder->weld_label("useragent"))
- , m_xPrivacyPolicyButton(m_xBuilder->weld_link_button("btnPrivacyPolicy"))
+ : SfxTabPage(pPage, pController, u"cui/ui/optonlineupdatepage.ui"_ustr, u"OptOnlineUpdatePage"_ustr, &rSet)
+ , m_showTraditionalOnlineUpdate(isTraditionalOnlineUpdateAvailable())
+ , m_showMarOnlineUpdate(isMarOnlineUpdateAvailable())
+ , m_xNeverChecked(m_xBuilder->weld_label(u"neverchecked"_ustr))
+ , m_xAutoCheckCheckBox(m_xBuilder->weld_check_button(u"autocheck"_ustr))
+ , m_xAutoCheckImg(m_xBuilder->weld_widget(u"lockautocheck"_ustr))
+ , m_xEveryDayButton(m_xBuilder->weld_radio_button(u"everyday"_ustr))
+ , m_xEveryWeekButton(m_xBuilder->weld_radio_button(u"everyweek"_ustr))
+ , m_xEveryMonthButton(m_xBuilder->weld_radio_button(u"everymonth"_ustr))
+ , m_xCheckIntervalImg(m_xBuilder->weld_widget(u"lockcheckinterval"_ustr))
+ , m_xCheckNowButton(m_xBuilder->weld_button(u"checknow"_ustr))
+ , m_xAutoDownloadCheckBox(m_xBuilder->weld_check_button(u"autodownload"_ustr))
+ , m_xAutoDownloadImg(m_xBuilder->weld_widget(u"lockautodownload"_ustr))
+ , m_xDestPathLabel(m_xBuilder->weld_label(u"destpathlabel"_ustr))
+ , m_xDestPath(m_xBuilder->weld_label(u"destpath"_ustr))
+ , m_xChangePathButton(m_xBuilder->weld_button(u"changepath"_ustr))
+ , m_xLastChecked(m_xBuilder->weld_label(u"lastchecked"_ustr))
+ , m_xExtrasCheckBox(m_xBuilder->weld_check_button(u"extrabits"_ustr))
+ , m_xExtrasImg(m_xBuilder->weld_widget(u"lockextrabits"_ustr))
+ , m_xUserAgentLabel(m_xBuilder->weld_label(u"useragent"_ustr))
+ , m_xPrivacyPolicyButton(m_xBuilder->weld_link_button(u"btnPrivacyPolicy"_ustr))
+ , m_xBox2(m_xBuilder->weld_box(u"box2"_ustr))
+ , m_xFrameDest(m_xBuilder->weld_frame(u"frameDest"_ustr))
+ , m_xFrameAgent(m_xBuilder->weld_frame(u"frameAgent"_ustr))
+ , m_xMar(m_xBuilder->weld_frame(u"frameMar"_ustr))
+ , m_xEnableMar(m_xBuilder->weld_check_button(u"enableMar"_ustr))
{
- m_aNeverChecked = m_xNeverChecked->get_label();
+ if (m_showTraditionalOnlineUpdate) {
+ m_aNeverChecked = m_xNeverChecked->get_label();
- m_xAutoCheckCheckBox->connect_toggled( LINK( this, SvxOnlineUpdateTabPage, AutoCheckHdl_Impl ) );
- m_xExtrasCheckBox->connect_toggled( LINK( this, SvxOnlineUpdateTabPage, ExtrasCheckHdl_Impl ) );
- m_xCheckNowButton->connect_clicked( LINK( this, SvxOnlineUpdateTabPage, CheckNowHdl_Impl ) );
- m_xChangePathButton->connect_clicked( LINK( this, SvxOnlineUpdateTabPage, FileDialogHdl_Impl ) );
- m_xPrivacyPolicyButton->set_uri(
- officecfg::Office::Common::Menus::PrivacyPolicyURL::get()
- + "?type=updatecheck&LOvers=" + utl::ConfigManager::getProductVersion()
- + "&LOlocale=" + LanguageTag(utl::ConfigManager::getUILocale()).getBcp47());
+ m_xAutoCheckCheckBox->connect_toggled( LINK( this, SvxOnlineUpdateTabPage, AutoCheckHdl_Impl ) );
+ m_xExtrasCheckBox->connect_toggled( LINK( this, SvxOnlineUpdateTabPage, ExtrasCheckHdl_Impl ) );
+ m_xCheckNowButton->connect_clicked( LINK( this, SvxOnlineUpdateTabPage, CheckNowHdl_Impl ) );
+ m_xChangePathButton->connect_clicked( LINK( this, SvxOnlineUpdateTabPage, FileDialogHdl_Impl ) );
+ m_xPrivacyPolicyButton->set_uri(
+ officecfg::Office::Common::Menus::PrivacyPolicyURL::get()
+ + "?type=updatecheck&LOvers=" + utl::ConfigManager::getProductVersion()
+ + "&LOlocale=" + LanguageTag(utl::ConfigManager::getUILocale()).getBcp47());
- uno::Reference < uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
+ uno::Reference < uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
- m_xUpdateAccess = setup::UpdateCheckConfig::create( xContext );
- m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(xContext, "*");
+ m_xUpdateAccess = setup::UpdateCheckConfig::create( xContext );
+ m_xReadWriteAccess = css::configuration::ReadWriteAccess::create(xContext, u"*"_ustr);
- bool bDownloadSupported = false;
- m_xUpdateAccess->getByName( "DownloadSupported" ) >>= bDownloadSupported;
+ bool bDownloadSupported = false;
+ m_xUpdateAccess->getByName( u"DownloadSupported"_ustr ) >>= bDownloadSupported;
- m_xAutoDownloadCheckBox->set_visible(bDownloadSupported);
- m_xDestPathLabel->set_visible(bDownloadSupported);
- m_xDestPath->set_visible(bDownloadSupported);
- m_xChangePathButton->set_visible(bDownloadSupported);
+ m_xAutoDownloadCheckBox->set_visible(bDownloadSupported);
+ m_xDestPathLabel->set_visible(bDownloadSupported);
+ m_xDestPath->set_visible(bDownloadSupported);
+ m_xChangePathButton->set_visible(bDownloadSupported);
- m_aLastCheckedTemplate = m_xLastChecked->get_label();
+ m_aLastCheckedTemplate = m_xLastChecked->get_label();
- UpdateLastCheckedText();
- UpdateUserAgent();
+ UpdateLastCheckedText();
+ UpdateUserAgent();
+ } else {
+ m_xAutoCheckCheckBox->hide();
+ m_xEveryDayButton->hide();
+ m_xEveryWeekButton->hide();
+ m_xEveryMonthButton->hide();
+ m_xCheckNowButton->hide();
+ m_xBox2->hide();
+ m_xAutoCheckImg->hide();
+ m_xCheckIntervalImg->hide();
+ m_xFrameDest->hide();
+ m_xFrameAgent->hide();
+ m_xPrivacyPolicyButton->hide();
+ }
+
+ if (m_showMarOnlineUpdate) {
+ m_xMar->show();
+ m_xEnableMar->set_sensitive(!officecfg::Office::Update::Update::Enabled::isReadOnly());
+ } else {
+ m_xMar->hide();
+ }
}
SvxOnlineUpdateTabPage::~SvxOnlineUpdateTabPage()
@@ -104,7 +139,7 @@ void SvxOnlineUpdateTabPage::UpdateLastCheckedText()
OUString aText;
sal_Int64 lastChecked = 0;
- m_xUpdateAccess->getByName("LastCheck") >>= lastChecked;
+ m_xUpdateAccess->getByName(u"LastCheck"_ustr) >>= lastChecked;
if( lastChecked == 0 ) // never checked
{
@@ -163,7 +198,7 @@ void SvxOnlineUpdateTabPage::UpdateUserAgent()
::comphelper::getProcessComponentContext() ),
css::uno::UNO_QUERY_THROW );
- OUString aPseudoURL = "useragent:normal";
+ OUString aPseudoURL = u"useragent:normal"_ustr;
if( m_xExtrasCheckBox->get_active() )
aPseudoURL = "useragent:extended";
const uno::Sequence< beans::StringPair > aHeaders
@@ -190,130 +225,184 @@ std::unique_ptr<SfxTabPage> SvxOnlineUpdateTabPage::Create( weld::Container* pPa
return std::make_unique<SvxOnlineUpdateTabPage>( pPage, pController, *rAttrSet );
}
-bool SvxOnlineUpdateTabPage::FillItemSet( SfxItemSet* )
+OUString SvxOnlineUpdateTabPage::GetAllStrings()
{
- bool bModified = false;
-
- bool bValue;
- sal_Int64 nValue;
+ OUString sAllStrings;
+ OUString labels[] = { u"label1"_ustr, u"lastchecked"_ustr, u"neverchecked"_ustr, u"labeldest"_ustr,
+ u"destpathlabel"_ustr, u"labelagent"_ustr, u"useragent_label"_ustr, u"useragent_changed"_ustr };
- if( m_xAutoCheckCheckBox->get_state_changed_from_saved() )
+ for (const auto& label : labels)
{
- bValue = m_xAutoCheckCheckBox->get_active();
- m_xUpdateAccess->replaceByName( "AutoCheckEnabled", uno::Any( bValue ) );
- bModified = true;
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
}
- nValue = 0;
- if( m_xEveryDayButton->get_active() )
- {
- if( !m_xEveryDayButton->get_saved_state() )
- nValue = 86400;
- }
- else if( m_xEveryWeekButton->get_active() )
- {
- if( !m_xEveryWeekButton->get_saved_state() )
- nValue = 604800;
- }
- else if( m_xEveryMonthButton->get_active() )
- {
- if( !m_xEveryMonthButton->get_saved_state() )
- nValue = 2592000;
- }
+ OUString checkButton[] = { u"autocheck"_ustr, u"autodownload"_ustr, u"extrabits"_ustr };
- if( nValue > 0 )
+ for (const auto& check : checkButton)
{
- m_xUpdateAccess->replaceByName( "CheckInterval", uno::Any( nValue ) );
- bModified = true;
+ if (const auto& pString = m_xBuilder->weld_check_button(check))
+ sAllStrings += pString->get_label() + " ";
}
- if( m_xAutoDownloadCheckBox->get_state_changed_from_saved() )
+ OUString radioButton[] = { u"everyday"_ustr, u"everyweek"_ustr, u"everymonth"_ustr };
+
+ for (const auto& radio : radioButton)
{
- bValue = m_xAutoDownloadCheckBox->get_active();
- m_xUpdateAccess->replaceByName( "AutoDownloadEnabled", uno::Any( bValue ) );
- bModified = true;
+ if (const auto& pString = m_xBuilder->weld_radio_button(radio))
+ sAllStrings += pString->get_label() + " ";
}
- OUString sValue, aURL;
- m_xUpdateAccess->getByName( "DownloadDestination" ) >>= sValue;
+ // some buttons are not included
+ sAllStrings += m_xPrivacyPolicyButton->get_label() + " ";
- if( ( osl::FileBase::E_None == osl::FileBase::getFileURLFromSystemPath(m_xDestPath->get_label(), aURL) ) &&
- ( aURL != sValue ) )
- {
- m_xUpdateAccess->replaceByName( "DownloadDestination", uno::Any( aURL ) );
- bModified = true;
+ return sAllStrings.replaceAll("_", "");
+}
+
+bool SvxOnlineUpdateTabPage::FillItemSet( SfxItemSet* )
+{
+ bool bModified = false;
+
+ if (m_showTraditionalOnlineUpdate) {
+ bool bValue;
+ sal_Int64 nValue;
+
+ if( m_xAutoCheckCheckBox->get_state_changed_from_saved() )
+ {
+ bValue = m_xAutoCheckCheckBox->get_active();
+ m_xUpdateAccess->replaceByName( u"AutoCheckEnabled"_ustr, uno::Any( bValue ) );
+ bModified = true;
+ }
+
+ nValue = 0;
+ if( m_xEveryDayButton->get_active() )
+ {
+ if( !m_xEveryDayButton->get_saved_state() )
+ nValue = 86400;
+ }
+ else if( m_xEveryWeekButton->get_active() )
+ {
+ if( !m_xEveryWeekButton->get_saved_state() )
+ nValue = 604800;
+ }
+ else if( m_xEveryMonthButton->get_active() )
+ {
+ if( !m_xEveryMonthButton->get_saved_state() )
+ nValue = 2592000;
+ }
+
+ if( nValue > 0 )
+ {
+ m_xUpdateAccess->replaceByName( u"CheckInterval"_ustr, uno::Any( nValue ) );
+ bModified = true;
+ }
+
+ if( m_xAutoDownloadCheckBox->get_state_changed_from_saved() )
+ {
+ bValue = m_xAutoDownloadCheckBox->get_active();
+ m_xUpdateAccess->replaceByName( u"AutoDownloadEnabled"_ustr, uno::Any( bValue ) );
+ bModified = true;
+ }
+
+ OUString sValue, aURL;
+ m_xUpdateAccess->getByName( u"DownloadDestination"_ustr ) >>= sValue;
+
+ if( ( osl::FileBase::E_None == osl::FileBase::getFileURLFromSystemPath(m_xDestPath->get_label(), aURL) ) &&
+ ( aURL != sValue ) )
+ {
+ m_xUpdateAccess->replaceByName( u"DownloadDestination"_ustr, uno::Any( aURL ) );
+ bModified = true;
+ }
+
+ if( m_xExtrasCheckBox->get_state_changed_from_saved() )
+ {
+ bValue = m_xExtrasCheckBox->get_active();
+ m_xUpdateAccess->replaceByName( u"ExtendedUserAgent"_ustr, uno::Any( bValue ) );
+ bModified = true;
+ }
+
+ uno::Reference< util::XChangesBatch > xChangesBatch(m_xUpdateAccess, uno::UNO_QUERY);
+ if( xChangesBatch.is() && xChangesBatch->hasPendingChanges() )
+ xChangesBatch->commitChanges();
}
- if( m_xExtrasCheckBox->get_state_changed_from_saved() )
- {
- bValue = m_xExtrasCheckBox->get_active();
- m_xUpdateAccess->replaceByName( "ExtendedUserAgent", uno::Any( bValue ) );
+ if (m_showMarOnlineUpdate && m_xEnableMar->get_state_changed_from_saved()) {
+ auto batch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Update::Update::Enabled::set(m_xEnableMar->get_active(), batch);
+ batch->commit();
bModified = true;
}
- uno::Reference< util::XChangesBatch > xChangesBatch(m_xUpdateAccess, uno::UNO_QUERY);
- if( xChangesBatch.is() && xChangesBatch->hasPendingChanges() )
- xChangesBatch->commitChanges();
-
return bModified;
}
void SvxOnlineUpdateTabPage::Reset( const SfxItemSet* )
{
- bool bValue = false;
- m_xUpdateAccess->getByName( "AutoCheckEnabled" ) >>= bValue;
- beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName("/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/AutoCheckEnabled");
- bool bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
-
- m_xAutoCheckCheckBox->set_active(bValue);
- m_xAutoCheckCheckBox->set_sensitive(!bReadOnly);
-
- sal_Int64 nValue = 0;
- m_xUpdateAccess->getByName( "CheckInterval" ) >>= nValue;
- aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName("/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/CheckInterval");
- bool bReadOnly2 = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
- m_xEveryDayButton->set_sensitive(bValue && !(bReadOnly || bReadOnly2));
- m_xEveryWeekButton->set_sensitive(bValue && !(bReadOnly || bReadOnly2));
- m_xEveryMonthButton->set_sensitive(bValue && !(bReadOnly || bReadOnly2));
-
- if( nValue == 86400 )
- m_xEveryDayButton->set_active(true);
- else if( nValue == 604800 )
- m_xEveryWeekButton->set_active(true);
- else
- m_xEveryMonthButton->set_active(true);
-
- m_xAutoCheckCheckBox->save_state();
- m_xEveryDayButton->save_state();
- m_xEveryWeekButton->save_state();
- m_xEveryMonthButton->save_state();
-
- m_xUpdateAccess->getByName( "AutoDownloadEnabled" ) >>= bValue;
- aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName("/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/AutoDownloadEnabled");
- bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
- m_xAutoDownloadCheckBox->set_active(bValue);
- m_xAutoDownloadCheckBox->set_sensitive(!bReadOnly);
- m_xDestPathLabel->set_sensitive(true);
- m_xDestPath->set_sensitive(true);
-
- OUString sValue, aPath;
- m_xUpdateAccess->getByName( "DownloadDestination" ) >>= sValue;
- aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName("/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/DownloadDestination");
- bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
- m_xChangePathButton->set_sensitive(!bReadOnly);
-
- if( osl::FileBase::E_None == osl::FileBase::getSystemPathFromFileURL(sValue, aPath) )
- m_xDestPath->set_label(aPath);
-
- m_xUpdateAccess->getByName( "ExtendedUserAgent" ) >>= bValue;
- aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName("/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/ExtendedUserAgent");
- bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
- m_xExtrasCheckBox->set_active(bValue);
- m_xExtrasCheckBox->set_sensitive(!bReadOnly);
- m_xExtrasCheckBox->save_state();
- UpdateUserAgent();
+ if (m_showTraditionalOnlineUpdate) {
+ bool bValue = false;
+ m_xUpdateAccess->getByName( u"AutoCheckEnabled"_ustr ) >>= bValue;
+ beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(u"/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/AutoCheckEnabled"_ustr);
+ bool bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
+
+ m_xAutoCheckCheckBox->set_active(bValue);
+ m_xAutoCheckCheckBox->set_sensitive(!bReadOnly);
+ m_xAutoCheckImg->set_visible(bReadOnly);
+
+ sal_Int64 nValue = 0;
+ m_xUpdateAccess->getByName( u"CheckInterval"_ustr ) >>= nValue;
+ aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(u"/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/CheckInterval"_ustr);
+ bool bReadOnly2 = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
+ m_xEveryDayButton->set_sensitive(bValue && !(bReadOnly || bReadOnly2));
+ m_xEveryWeekButton->set_sensitive(bValue && !(bReadOnly || bReadOnly2));
+ m_xEveryMonthButton->set_sensitive(bValue && !(bReadOnly || bReadOnly2));
+ m_xCheckIntervalImg->set_visible(bReadOnly2);
+
+ if( nValue == 86400 )
+ m_xEveryDayButton->set_active(true);
+ else if( nValue == 604800 )
+ m_xEveryWeekButton->set_active(true);
+ else
+ m_xEveryMonthButton->set_active(true);
+
+ m_xAutoCheckCheckBox->save_state();
+ m_xEveryDayButton->save_state();
+ m_xEveryWeekButton->save_state();
+ m_xEveryMonthButton->save_state();
+
+ m_xUpdateAccess->getByName( u"AutoDownloadEnabled"_ustr ) >>= bValue;
+ aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(u"/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/AutoDownloadEnabled"_ustr);
+ bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
+ m_xAutoDownloadCheckBox->set_active(bValue);
+ m_xAutoDownloadCheckBox->set_sensitive(!bReadOnly);
+ m_xAutoDownloadImg->set_visible(bReadOnly);
+ m_xDestPathLabel->set_sensitive(true);
+ m_xDestPath->set_sensitive(true);
+
+ OUString sValue, aPath;
+ m_xUpdateAccess->getByName( u"DownloadDestination"_ustr ) >>= sValue;
+ aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(u"/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/DownloadDestination"_ustr);
+ bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
+ m_xChangePathButton->set_sensitive(!bReadOnly);
+
+ if( osl::FileBase::E_None == osl::FileBase::getSystemPathFromFileURL(sValue, aPath) )
+ m_xDestPath->set_label(aPath);
+
+ m_xUpdateAccess->getByName( u"ExtendedUserAgent"_ustr ) >>= bValue;
+ aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(u"/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/ExtendedUserAgent"_ustr);
+ bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
+ m_xExtrasCheckBox->set_active(bValue);
+ m_xExtrasCheckBox->set_sensitive(!bReadOnly);
+ m_xExtrasImg->set_visible(bReadOnly);
+ m_xExtrasCheckBox->save_state();
+ UpdateUserAgent();
+
+ m_xAutoDownloadCheckBox->save_state();
+ }
- m_xAutoDownloadCheckBox->save_state();
+ if (m_showMarOnlineUpdate) {
+ m_xEnableMar->set_active(officecfg::Office::Update::Update::Enabled::get());
+ m_xEnableMar->save_state();
+ }
}
void SvxOnlineUpdateTabPage::FillUserData()
@@ -323,11 +412,12 @@ void SvxOnlineUpdateTabPage::FillUserData()
IMPL_LINK(SvxOnlineUpdateTabPage, AutoCheckHdl_Impl, weld::Toggleable&, rBox, void)
{
bool bEnabled = rBox.get_active();
- beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName("/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/CheckInterval");
+ beans::Property aProperty = m_xReadWriteAccess->getPropertyByHierarchicalName(u"/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job['UpdateCheck']/Arguments/CheckInterval"_ustr);
bool bReadOnly = (aProperty.Attributes & beans::PropertyAttribute::READONLY) != 0;
m_xEveryDayButton->set_sensitive(bEnabled && !bReadOnly);
m_xEveryWeekButton->set_sensitive(bEnabled && !bReadOnly);
m_xEveryMonthButton->set_sensitive(bEnabled && !bReadOnly);
+ m_xCheckIntervalImg->set_visible(bReadOnly);
}
IMPL_LINK_NOARG(SvxOnlineUpdateTabPage, ExtrasCheckHdl_Impl, weld::Toggleable&, void)
@@ -366,17 +456,17 @@ IMPL_LINK_NOARG(SvxOnlineUpdateTabPage, CheckNowHdl_Impl, weld::Button&, void)
beans::NamedValue aProperty;
aProperty.Name = "nodepath";
- aProperty.Value <<= OUString("org.openoffice.Office.Addons/AddonUI/OfficeHelp/UpdateCheckJob");
+ aProperty.Value <<= u"org.openoffice.Office.Addons/AddonUI/OfficeHelp/UpdateCheckJob"_ustr;
uno::Sequence< uno::Any > aArgumentList{ uno::Any(aProperty) };
uno::Reference< container::XNameAccess > xNameAccess(
xConfigProvider->createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationAccess", aArgumentList ),
+ u"com.sun.star.configuration.ConfigurationAccess"_ustr, aArgumentList ),
uno::UNO_QUERY_THROW );
util::URL aURL;
- xNameAccess->getByName("URL") >>= aURL.Complete;
+ xNameAccess->getByName(u"URL"_ustr) >>= aURL.Complete;
uno::Reference < util::XURLTransformer > xTransformer( util::URLTransformer::create( xContext ) );
@@ -402,4 +492,25 @@ IMPL_LINK_NOARG(SvxOnlineUpdateTabPage, CheckNowHdl_Impl, weld::Button&, void)
}
}
+bool SvxOnlineUpdateTabPage::isTraditionalOnlineUpdateAvailable() {
+ try
+ {
+ css::uno::Reference < css::uno::XInterface > xService( setup::UpdateCheck::create( ::comphelper::getProcessComponentContext() ) );
+ if( xService.is() )
+ return true;
+ }
+ catch ( css::uno::DeploymentException& )
+ {
+ }
+ return false;
+}
+
+bool SvxOnlineUpdateTabPage::isMarOnlineUpdateAvailable() {
+#if HAVE_FEATURE_UPDATE_MAR
+ return true;
+#else
+ return false;
+#endif
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optupdt.hxx b/cui/source/options/optupdt.hxx
index 7143bf333f65..48113c8079d6 100644
--- a/cui/source/options/optupdt.hxx
+++ b/cui/source/options/optupdt.hxx
@@ -28,6 +28,9 @@
class SvxOnlineUpdateTabPage : public SfxTabPage
{
private:
+ bool m_showTraditionalOnlineUpdate;
+ bool m_showMarOnlineUpdate;
+
OUString m_aNeverChecked;
OUString m_aLastCheckedTemplate;
@@ -36,18 +39,27 @@ private:
std::unique_ptr<weld::Label> m_xNeverChecked;
std::unique_ptr<weld::CheckButton> m_xAutoCheckCheckBox;
+ std::unique_ptr<weld::Widget> m_xAutoCheckImg;
std::unique_ptr<weld::RadioButton> m_xEveryDayButton;
std::unique_ptr<weld::RadioButton> m_xEveryWeekButton;
std::unique_ptr<weld::RadioButton> m_xEveryMonthButton;
+ std::unique_ptr<weld::Widget> m_xCheckIntervalImg;
std::unique_ptr<weld::Button> m_xCheckNowButton;
std::unique_ptr<weld::CheckButton> m_xAutoDownloadCheckBox;
+ std::unique_ptr<weld::Widget> m_xAutoDownloadImg;
std::unique_ptr<weld::Label> m_xDestPathLabel;
std::unique_ptr<weld::Label> m_xDestPath;
std::unique_ptr<weld::Button> m_xChangePathButton;
std::unique_ptr<weld::Label> m_xLastChecked;
std::unique_ptr<weld::CheckButton> m_xExtrasCheckBox;
+ std::unique_ptr<weld::Widget> m_xExtrasImg;
std::unique_ptr<weld::Label> m_xUserAgentLabel;
std::unique_ptr<weld::LinkButton> m_xPrivacyPolicyButton;
+ std::unique_ptr<weld::Box> m_xBox2;
+ std::unique_ptr<weld::Frame> m_xFrameDest;
+ std::unique_ptr<weld::Frame> m_xFrameAgent;
+ std::unique_ptr<weld::Frame> m_xMar;
+ std::unique_ptr<weld::CheckButton> m_xEnableMar;
DECL_LINK(FileDialogHdl_Impl, weld::Button&, void);
DECL_LINK(CheckNowHdl_Impl, weld::Button&, void);
@@ -62,9 +74,14 @@ public:
static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet );
virtual ~SvxOnlineUpdateTabPage() override;
+ virtual OUString GetAllStrings() override;
+
virtual bool FillItemSet( SfxItemSet* rSet ) override;
virtual void Reset( const SfxItemSet* rSet ) override;
virtual void FillUserData() override;
+
+ static bool isTraditionalOnlineUpdateAvailable();
+ static bool isMarOnlineUpdateAvailable();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/personalization.cxx b/cui/source/options/personalization.cxx
index 02c064d1b2e7..a4223d73d7e8 100644
--- a/cui/source/options/personalization.cxx
+++ b/cui/source/options/personalization.cxx
@@ -11,6 +11,8 @@
#include "personalization.hxx"
+#include <dialmgr.hxx>
+
#include <comphelper/processfactory.hxx>
#include <officecfg/Office/Common.hxx>
#include <rtl/bootstrap.hxx>
@@ -21,23 +23,25 @@
#include <vcl/settings.hxx>
#include <vcl/graphicfilter.hxx>
#include <vcl/virdev.hxx>
+#include <personas.hrc>
using namespace com::sun::star;
-using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
// persona
SvxPersonalizationTabPage::SvxPersonalizationTabPage(weld::Container* pPage,
weld::DialogController* pController,
const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/personalization_tab.ui", "PersonalizationTabPage",
- &rSet)
- , m_xNoPersona(m_xBuilder->weld_radio_button("no_persona"))
- , m_xDefaultPersona(m_xBuilder->weld_radio_button("default_persona"))
+ : SfxTabPage(pPage, pController, u"cui/ui/personalization_tab.ui"_ustr,
+ u"PersonalizationTabPage"_ustr, &rSet)
+ , m_xNoPersona(m_xBuilder->weld_radio_button(u"no_persona"_ustr))
+ , m_xPersonaImg(m_xBuilder->weld_widget(u"lockpersona"_ustr))
+ , m_xDefaultPersona(m_xBuilder->weld_radio_button(u"default_persona"_ustr))
+ , m_xContentGrid(m_xBuilder->weld_container(u"gridpersonasetting"_ustr))
{
for (sal_uInt32 i = 0; i < MAX_DEFAULT_PERSONAS; ++i)
{
- OString sDefaultId("default" + OString::number(i));
+ OUString sDefaultId("default" + OUString::number(i));
m_vDefaultPersonaImages[i] = m_xBuilder->weld_toggle_button(sDefaultId);
m_vDefaultPersonaImages[i]->connect_clicked(
LINK(this, SvxPersonalizationTabPage, DefaultPersona));
@@ -55,19 +59,33 @@ std::unique_ptr<SfxTabPage> SvxPersonalizationTabPage::Create(weld::Container* p
return std::make_unique<SvxPersonalizationTabPage>(pPage, pController, *rSet);
}
+OUString SvxPersonalizationTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString radioButton[] = { u"no_persona"_ustr, u"default_persona"_ustr };
+
+ for (const auto& radio : radioButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_radio_button(radio))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ if (const auto& pString = m_xBuilder->weld_label(u"personas_label"_ustr))
+ sAllStrings += pString->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxPersonalizationTabPage::FillItemSet(SfxItemSet*)
{
// persona
- OUString aPersona("default");
+ OUString aPersona(u"default"_ustr);
if (m_xNoPersona->get_active())
aPersona = "no";
bool bModified = false;
- uno::Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext());
- if (xContext.is()
- && (aPersona != officecfg::Office::Common::Misc::Persona::get(xContext)
- || m_aPersonaSettings
- != officecfg::Office::Common::Misc::PersonaSettings::get(xContext)))
+ if (aPersona != officecfg::Office::Common::Misc::Persona::get()
+ || m_aPersonaSettings != officecfg::Office::Common::Misc::PersonaSettings::get())
{
bModified = true;
}
@@ -94,27 +112,31 @@ bool SvxPersonalizationTabPage::FillItemSet(SfxItemSet*)
void SvxPersonalizationTabPage::Reset(const SfxItemSet*)
{
- uno::Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext());
-
// persona
- OUString aPersona("default");
- if (xContext.is())
- {
- aPersona = officecfg::Office::Common::Misc::Persona::get(xContext);
- m_aPersonaSettings = officecfg::Office::Common::Misc::PersonaSettings::get(xContext);
- }
+ OUString aPersona = officecfg::Office::Common::Misc::Persona::get();
+ m_aPersonaSettings = officecfg::Office::Common::Misc::PersonaSettings::get();
if (aPersona == "no")
m_xNoPersona->set_active(true);
else
m_xDefaultPersona->set_active(true);
+
+ if (officecfg::Office::Common::Misc::Persona::isReadOnly())
+ {
+ m_xNoPersona->set_sensitive(false);
+ m_xDefaultPersona->set_sensitive(false);
+ m_xPersonaImg->set_visible(true);
+ }
+
+ if (officecfg::Office::Common::Misc::PersonaSettings::isReadOnly())
+ m_xContentGrid->set_sensitive(false);
}
void SvxPersonalizationTabPage::LoadDefaultImages()
{
// Load the pre saved personas
- OUString gallery = "$BRAND_BASE_DIR/" LIBO_SHARE_FOLDER "/gallery/personas/";
+ OUString gallery = u"$BRAND_BASE_DIR/" LIBO_SHARE_FOLDER "/gallery/personas/"_ustr;
rtl::Bootstrap::expandMacros(gallery);
OUString aPersonasList = gallery + "personas_list.txt";
SvFileStream aStream(aPersonasList, StreamMode::READ);
@@ -123,23 +145,24 @@ void SvxPersonalizationTabPage::LoadDefaultImages()
sal_Int32 nIndex = 0;
bool foundOne = false;
+ OStringBuffer aLine;
+ int nLineNumberFilePersona = 0;
while (aStream.IsOpen() && !aStream.eof() && nIndex < MAX_DEFAULT_PERSONAS)
{
- OString aLine;
OUString aPersonaSetting, aPreviewFile, aName;
sal_Int32 nParseIndex = 0;
aStream.ReadLine(aLine);
aPersonaSetting = OStringToOUString(aLine, RTL_TEXTENCODING_UTF8);
- aName = aPersonaSetting.getToken(1, ';', nParseIndex);
- aPreviewFile = aPersonaSetting.getToken(0, ';', nParseIndex);
+ aName = CuiResId(RID_PERSONAS_COLOR[nLineNumberFilePersona].first);
+ aPreviewFile = aPersonaSetting.getToken(2, ';', nParseIndex);
if (aPreviewFile.isEmpty())
break;
m_vDefaultPersonaSettings.push_back(aPersonaSetting);
- INetURLObject aURLObj(gallery + aPreviewFile);
+ INetURLObject aURLObj(rtl::Concat2View(gallery + aPreviewFile));
aFilter.ImportGraphic(aGraphic, aURLObj);
Size aSize(aGraphic.GetSizePixel());
@@ -155,6 +178,7 @@ void SvxPersonalizationTabPage::LoadDefaultImages()
m_vDefaultPersonaImages[nIndex]->set_tooltip_text(aName);
m_vDefaultPersonaImages[nIndex++]->show();
foundOne = true;
+ ++nLineNumberFilePersona;
}
m_xDefaultPersona->set_sensitive(foundOne);
diff --git a/cui/source/options/personalization.hxx b/cui/source/options/personalization.hxx
index 671f194c244b..786b22c7d7b3 100644
--- a/cui/source/options/personalization.hxx
+++ b/cui/source/options/personalization.hxx
@@ -18,7 +18,9 @@ class SvxPersonalizationTabPage : public SfxTabPage
{
private:
std::unique_ptr<weld::RadioButton> m_xNoPersona; ///< Just the default look, without any bitmap
+ std::unique_ptr<weld::Widget> m_xPersonaImg;
std::unique_ptr<weld::RadioButton> m_xDefaultPersona; ///< Use the built-in bitmap
+ std::unique_ptr<weld::Container> m_xContentGrid;
std::unique_ptr<weld::ToggleButton> m_vDefaultPersonaImages
[MAX_DEFAULT_PERSONAS]; ///< Buttons to show the default persona images
OUString m_aPersonaSettings; ///< Header and footer images + color to be set in the settings.
@@ -33,6 +35,8 @@ public:
static std::unique_ptr<SfxTabPage>
Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet);
+ virtual OUString GetAllStrings() override;
+
/// Apply the settings ([OK] button).
virtual bool FillItemSet(SfxItemSet* rSet) override;
diff --git a/cui/source/options/sdbcdriverenum.cxx b/cui/source/options/sdbcdriverenum.cxx
index 629fb7056c1e..0ddd7f8f9f08 100644
--- a/cui/source/options/sdbcdriverenum.cxx
+++ b/cui/source/options/sdbcdriverenum.cxx
@@ -20,7 +20,7 @@
#include "sdbcdriverenum.hxx"
#include <comphelper/processfactory.hxx>
#include <osl/diagnose.h>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/sdbc/DriverManager.hpp>
diff --git a/cui/source/options/securityoptions.cxx b/cui/source/options/securityoptions.cxx
index f5c94edf1029..02fab4bfdeee 100644
--- a/cui/source/options/securityoptions.cxx
+++ b/cui/source/options/securityoptions.cxx
@@ -17,9 +17,8 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <tools/debug.hxx>
+#include <securityoptions.hxx>
#include <unotools/securityoptions.hxx>
-#include "securityoptions.hxx"
namespace
{
@@ -32,29 +31,61 @@ namespace
rCheckBox.set_active(SvtSecurityOptions::IsOptionSet(eOption));
return bEnable;
}
+
+ void CheckAndSave(SvtSecurityOptions::EOption _eOpt, const bool _bIsChecked, bool& _rModified)
+ {
+ if (!SvtSecurityOptions::IsReadOnly(_eOpt) && SvtSecurityOptions::IsOptionSet(_eOpt) != _bIsChecked)
+ {
+ SvtSecurityOptions::SetOption(_eOpt, _bIsChecked);
+ _rModified = true;
+ }
+ }
}
namespace svx
{
SecurityOptionsDialog::SecurityOptionsDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/securityoptionsdialog.ui", "SecurityOptionsDialog")
- , m_xSaveOrSendDocsCB(m_xBuilder->weld_check_button("savesenddocs"))
- , m_xSaveOrSendDocsImg(m_xBuilder->weld_widget("locksavesenddocs"))
- , m_xSignDocsCB(m_xBuilder->weld_check_button("whensigning"))
- , m_xSignDocsImg(m_xBuilder->weld_widget("lockwhensigning"))
- , m_xPrintDocsCB(m_xBuilder->weld_check_button("whenprinting"))
- , m_xPrintDocsImg(m_xBuilder->weld_widget("lockwhenprinting"))
- , m_xCreatePdfCB(m_xBuilder->weld_check_button("whenpdf"))
- , m_xCreatePdfImg(m_xBuilder->weld_widget("lockwhenpdf"))
- , m_xRemovePersInfoCB(m_xBuilder->weld_check_button("removepersonal"))
- , m_xRemovePersInfoImg(m_xBuilder->weld_widget("lockremovepersonal"))
- , m_xRecommPasswdCB(m_xBuilder->weld_check_button("password"))
- , m_xRecommPasswdImg(m_xBuilder->weld_widget("lockpassword"))
- , m_xCtrlHyperlinkCB(m_xBuilder->weld_check_button("ctrlclick"))
- , m_xCtrlHyperlinkImg(m_xBuilder->weld_widget("lockctrlclick"))
- , m_xBlockUntrustedRefererLinksCB(m_xBuilder->weld_check_button("blockuntrusted"))
- , m_xBlockUntrustedRefererLinksImg(m_xBuilder->weld_widget("lockblockuntrusted"))
+ : GenericDialogController(pParent, u"cui/ui/securityoptionsdialog.ui"_ustr, u"SecurityOptionsDialog"_ustr)
+ , m_xSaveOrSendDocsCB(m_xBuilder->weld_check_button(u"savesenddocs"_ustr))
+ , m_xSaveOrSendDocsImg(m_xBuilder->weld_widget(u"locksavesenddocs"_ustr))
+ , m_xSignDocsCB(m_xBuilder->weld_check_button(u"whensigning"_ustr))
+ , m_xSignDocsImg(m_xBuilder->weld_widget(u"lockwhensigning"_ustr))
+ , m_xPrintDocsCB(m_xBuilder->weld_check_button(u"whenprinting"_ustr))
+ , m_xPrintDocsImg(m_xBuilder->weld_widget(u"lockwhenprinting"_ustr))
+ , m_xCreatePdfCB(m_xBuilder->weld_check_button(u"whenpdf"_ustr))
+ , m_xCreatePdfImg(m_xBuilder->weld_widget(u"lockwhenpdf"_ustr))
+ , m_xRemovePersInfoCB(m_xBuilder->weld_check_button(u"removepersonal"_ustr))
+ , m_xRemovePersInfoImg(m_xBuilder->weld_widget(u"lockremovepersonal"_ustr))
+ , m_xRecommPasswdCB(m_xBuilder->weld_check_button(u"password"_ustr))
+ , m_xRecommPasswdImg(m_xBuilder->weld_widget(u"lockpassword"_ustr))
+ , m_xCtrlHyperlinkCB(m_xBuilder->weld_check_button(u"ctrlclick"_ustr))
+ , m_xCtrlHyperlinkImg(m_xBuilder->weld_widget(u"lockctrlclick"_ustr))
+ , m_xBlockUntrustedRefererLinksCB(m_xBuilder->weld_check_button(u"blockuntrusted"_ustr))
+ , m_xBlockUntrustedRefererLinksImg(m_xBuilder->weld_widget(u"lockblockuntrusted"_ustr))
+ , m_xDisableActiveContentCB(m_xBuilder->weld_check_button(u"disableactivecontent"_ustr))
+ , m_xDisableActiveContentImg(m_xBuilder->weld_widget(u"lockdisableactivecontent"_ustr))
+ , m_xRedlineinfoCB(m_xBuilder->weld_check_button(u"redlineinfo"_ustr))
+ , m_xRedlineinfoImg(m_xBuilder->weld_widget(u"lockredlineinfo"_ustr))
+ , m_xDocPropertiesCB(m_xBuilder->weld_check_button(u"docproperties"_ustr))
+ , m_xDocPropertiesImg(m_xBuilder->weld_widget(u"lockdocproperties"_ustr))
+ , m_xNoteAuthorCB(m_xBuilder->weld_check_button(u"noteauthor"_ustr))
+ , m_xNoteAuthorImg(m_xBuilder->weld_widget(u"locknoteauthor"_ustr))
+ , m_xDocumentVersionCB(m_xBuilder->weld_check_button(u"documentversion"_ustr))
+ , m_xDocumentVersionImg(m_xBuilder->weld_widget(u"lockdocumentversion"_ustr))
+ , m_xPrinterSettingsCB(m_xBuilder->weld_check_button(u"printersettings"_ustr))
+ , m_xPrinterSettingsImg(m_xBuilder->weld_widget(u"lockprintersettings"_ustr))
+{
+ m_xRemovePersInfoCB->connect_toggled(LINK(this, SecurityOptionsDialog, ShowPersonalInfosToggle));
+ init();
+}
+
+IMPL_LINK_NOARG(SecurityOptionsDialog, ShowPersonalInfosToggle, weld::Toggleable&, void)
+{
+ changeKeepSecurityInfosEnabled();
+}
+
+void SecurityOptionsDialog::init()
{
enableAndSet(SvtSecurityOptions::EOption::DocWarnSaveOrSend, *m_xSaveOrSendDocsCB,
*m_xSaveOrSendDocsImg);
@@ -66,12 +97,58 @@ SecurityOptionsDialog::SecurityOptionsDialog(weld::Window* pParent)
*m_xCreatePdfImg);
enableAndSet(SvtSecurityOptions::EOption::DocWarnRemovePersonalInfo, *m_xRemovePersInfoCB,
*m_xRemovePersInfoImg);
+ enableAndSet(SvtSecurityOptions::EOption::DocWarnKeepRedlineInfo, *m_xRedlineinfoCB,
+ *m_xRedlineinfoImg);
+ enableAndSet(SvtSecurityOptions::EOption::DocWarnKeepDocUserInfo, *m_xDocPropertiesCB,
+ *m_xDocPropertiesImg);
+ enableAndSet(SvtSecurityOptions::EOption::DocWarnKeepNoteAuthorDateInfo, *m_xNoteAuthorCB,
+ *m_xNoteAuthorImg);
+ enableAndSet(SvtSecurityOptions::EOption::DocWarnKeepDocVersionInfo, *m_xDocumentVersionCB,
+ *m_xDocumentVersionImg);
+ enableAndSet(SvtSecurityOptions::EOption::DocKeepPrinterSettings, *m_xPrinterSettingsCB,
+ *m_xPrinterSettingsImg);
enableAndSet(SvtSecurityOptions::EOption::DocWarnRecommendPassword, *m_xRecommPasswdCB,
*m_xRecommPasswdImg);
enableAndSet(SvtSecurityOptions::EOption::CtrlClickHyperlink, *m_xCtrlHyperlinkCB,
*m_xCtrlHyperlinkImg);
enableAndSet(SvtSecurityOptions::EOption::BlockUntrustedRefererLinks, *m_xBlockUntrustedRefererLinksCB,
*m_xBlockUntrustedRefererLinksImg);
+ enableAndSet(SvtSecurityOptions::EOption::DisableActiveContent,
+ *m_xDisableActiveContentCB, *m_xDisableActiveContentImg);
+
+ if (!SvtSecurityOptions::IsReadOnly(SvtSecurityOptions::EOption::DocWarnRemovePersonalInfo))
+ changeKeepSecurityInfosEnabled();
+}
+
+bool SecurityOptionsDialog::SetSecurityOptions()
+{
+ bool bModified = false;
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnSaveOrSend, IsSaveOrSendDocsChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnSigning, IsSignDocsChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnPrint, IsPrintDocsChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnCreatePdf, IsCreatePdfChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnRemovePersonalInfo, IsRemovePersInfoChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepRedlineInfo, IsRemoveRedlineInfoChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepDocUserInfo, IsRemoveDocUserInfoChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepNoteAuthorDateInfo, IsRemoveNoteAuthorInfoChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepDocVersionInfo, IsRemoveDocVersionInfoChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocKeepPrinterSettings, IsKeepPrinterSettingsChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DocWarnRecommendPassword, IsRecommPasswdChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::CtrlClickHyperlink, IsCtrlHyperlinkChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::BlockUntrustedRefererLinks, IsBlockUntrustedRefererLinksChecked(), bModified);
+ CheckAndSave(SvtSecurityOptions::EOption::DisableActiveContent, IsDisableActiveContentChecked(), bModified);
+
+ return bModified;
+}
+
+void SecurityOptionsDialog::changeKeepSecurityInfosEnabled()
+{
+ bool bEnable = m_xRemovePersInfoCB->get_active();
+ m_xRedlineinfoCB->set_sensitive(bEnable);
+ m_xDocPropertiesCB->set_sensitive(bEnable);
+ m_xNoteAuthorCB->set_sensitive(bEnable);
+ m_xDocumentVersionCB->set_sensitive(bEnable);
+ m_xPrinterSettingsCB->set_sensitive(bEnable);
}
}
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index a3d2fc54819d..f010df6f42a1 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -26,10 +26,10 @@
#include <config_gpgme.h>
#include <officecfg/Office/Common.hxx>
+#include <officecfg/Office/Writer.hxx>
#include <svx/dialogs.hrc>
#include <svx/svxids.hrc>
-#include <unotools/resmgr.hxx>
#include <treeopt.hrc>
#include <helpids.h>
@@ -63,6 +63,13 @@
#include "personalization.hxx"
#include <treeopt.hxx>
#include "optbasic.hxx"
+#include "optlanguagetool.hxx"
+#include "optdeepl.hxx"
+
+// include search util
+#include <com/sun/star/util/SearchFlags.hpp>
+#include <com/sun/star/util/SearchAlgorithms2.hpp>
+#include <unotools/textsearch.hxx>
#include <com/sun/star/awt/XContainerWindowEventHandler.hpp>
#include <com/sun/star/awt/ContainerWindowProvider.hpp>
@@ -73,13 +80,13 @@
#include <com/sun/star/frame/UnknownModuleException.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/linguistic2/LinguProperties.hpp>
-#include <com/sun/star/setup/UpdateCheck.hpp>
#include <comphelper/getexpandeduri.hxx>
#include <comphelper/processfactory.hxx>
#include <editeng/langitem.hxx>
#include <editeng/optitems.hxx>
#include <editeng/unolingu.hxx>
#include <linguistic/misc.hxx>
+#include <o3tl/deleter.hxx>
#include <officecfg/Office/OptionsDialog.hxx>
#include <sfx2/app.hxx>
#include <sfx2/dispatch.hxx>
@@ -90,17 +97,17 @@
#include <sfx2/viewfrm.hxx>
#include <svl/flagitem.hxx>
#include <svl/intitem.hxx>
-#include <svl/languageoptions.hxx>
#include <svl/cjkoptions.hxx>
#include <svl/ctloptions.hxx>
#include <svx/databaseregistrationui.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <tools/urlobj.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <unotools/configmgr.hxx>
#include <unotools/moduleoptions.hxx>
#include <unotools/optionsdlg.hxx>
#include <unotools/viewoptions.hxx>
+#include <utility>
#include <vcl/help.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weldutils.hxx>
@@ -108,7 +115,6 @@
#include <sal/log.hxx>
using namespace ::com::sun::star;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::lang;
@@ -119,7 +125,7 @@ using namespace ::com::sun::star::util;
LastPageSaver* OfaTreeOptionsDialog::pLastPageSaver = nullptr;
// some stuff for easier changes for SvtViewOptions
-constexpr OUStringLiteral VIEWOPT_DATANAME = u"page data";
+constexpr OUString VIEWOPT_DATANAME = u"page data"_ustr;
static void SetViewOptUserItem( SvtViewOptions& rOpt, const OUString& rData )
{
@@ -228,42 +234,12 @@ static sal_uInt16 getGroupNodeId( std::u16string_view rModule )
namespace {
-class MailMergeCfg_Impl : public utl::ConfigItem
+bool MailMergeCfgIsEmailSupported()
{
-private:
- // variables
- bool bIsEmailSupported;
-
- virtual void ImplCommit() override;
-
-public:
- MailMergeCfg_Impl();
-
- virtual void Notify( const css::uno::Sequence< OUString >& _rPropertyNames) override;
-
- bool IsEmailSupported() const {return bIsEmailSupported;}
-
-};
-
-}
-
-MailMergeCfg_Impl::MailMergeCfg_Impl() :
- utl::ConfigItem("Office.Writer/MailMergeWizard"),
- bIsEmailSupported(false)
-{
- Sequence<OUString> aNames { "EMailSupported" };
- const Sequence< Any > aValues = GetProperties(aNames);
- const Any* pValues = aValues.getConstArray();
- if(aValues.hasElements() && pValues[0].hasValue())
- pValues[0] >>= bIsEmailSupported;
+ std::optional<bool> b = officecfg::Office::Writer::MailMergeWizard::EMailSupported::get();
+ return b.has_value() && *b;
}
-void MailMergeCfg_Impl::ImplCommit()
-{
-}
-
-void MailMergeCfg_Impl::Notify( const css::uno::Sequence< OUString >& )
-{
}
//typedef SfxTabPage* (*FNCreateTabPage)(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rAttrSet);
@@ -297,6 +273,8 @@ static std::unique_ptr<SfxTabPage> CreateGeneralTabPage(sal_uInt16 nId, weld::Co
case SID_SB_DBREGISTEROPTIONS: fnCreate = &svx::DbRegistrationOptionsPage::Create; break;
case RID_SVXPAGE_ACCESSIBILITYCONFIG: fnCreate = &SvxAccessibilityOptionsTabPage::Create; break;
case RID_SVXPAGE_OPTIONS_CTL: fnCreate = &SvxCTLOptionsPage::Create ; break;
+ case RID_SVXPAGE_LANGTOOL_OPTIONS: fnCreate = &OptLanguageToolTabPage::Create ; break;
+ case RID_SVXPAGE_DEEPL_OPTIONS: fnCreate = &OptDeeplTabPage::Create ; break;
case RID_SVXPAGE_OPTIONS_JAVA: fnCreate = &SvxJavaOptionsPage::Create ; break;
#if HAVE_FEATURE_OPENCL
case RID_SVXPAGE_OPENCL: fnCreate = &SvxOpenCLTabPage::Create ; break;
@@ -315,112 +293,109 @@ namespace {
struct OptionsMapping_Impl
{
- const char* m_pGroupName;
- const char* m_pPageName;
+ OUString m_aGroupName;
+ OUString m_aPageName;
sal_uInt16 m_nPageId;
};
}
-OptionsMapping_Impl const OptionsMap_Impl[] =
+constexpr OptionsMapping_Impl OptionsMap_Impl[]
{
// GROUP PAGE PAGE-ID
- { "ProductName", nullptr, SID_GENERAL_OPTIONS },
- { "ProductName", "UserData", RID_SFXPAGE_GENERAL },
- { "ProductName", "General", OFA_TP_MISC },
- { "ProductName", "View", OFA_TP_VIEW },
- { "ProductName", "Print", RID_SFXPAGE_PRINTOPTIONS },
- { "ProductName", "Paths", RID_SFXPAGE_PATH },
- { "ProductName", "Fonts", RID_SVX_FONT_SUBSTITUTION },
- { "ProductName", "Security", RID_SVXPAGE_INET_SECURITY },
- { "ProductName", "Personalization", RID_SVXPAGE_PERSONALIZATION },
- { "ProductName", "Appearance", RID_SVXPAGE_COLORCONFIG },
- { "ProductName", "Accessibility", RID_SVXPAGE_ACCESSIBILITYCONFIG },
- { "ProductName", "Java", RID_SVXPAGE_OPTIONS_JAVA },
- { "ProductName", "BasicIDEOptions", RID_SVXPAGE_BASICIDE_OPTIONS },
- { "ProductName", "OnlineUpdate", RID_SVXPAGE_ONLINEUPDATE },
- { "LanguageSettings", nullptr, SID_LANGUAGE_OPTIONS },
- { "LanguageSettings", "Languages", OFA_TP_LANGUAGES },
- { "LanguageSettings", "WritingAids", RID_SFXPAGE_LINGU },
- { "LanguageSettings", "SearchingInJapanese", RID_SVXPAGE_JSEARCH_OPTIONS },
- { "LanguageSettings", "AsianLayout", RID_SVXPAGE_ASIAN_LAYOUT },
- { "LanguageSettings", "ComplexTextLayout", RID_SVXPAGE_OPTIONS_CTL },
- { "Internet", nullptr, SID_INET_DLG },
- { "Internet", "Proxy", RID_SVXPAGE_INET_PROXY },
- { "Internet", "Email", RID_SVXPAGE_INET_MAIL },
- { "LoadSave", nullptr, SID_FILTER_DLG },
- { "LoadSave", "General", RID_SFXPAGE_SAVE },
- { "LoadSave", "VBAProperties", SID_OPTFILTER_MSOFFICE },
- { "LoadSave", "MicrosoftOffice", RID_OFAPAGE_MSFILTEROPT2 },
- { "LoadSave", "HTMLCompatibility", RID_OFAPAGE_HTMLOPT },
- { "Writer", nullptr, SID_SW_EDITOPTIONS },
- { "Writer", "General", RID_SW_TP_OPTLOAD_PAGE },
- { "Writer", "View", RID_SW_TP_CONTENT_OPT },
- { "Writer", "FormattingAids", RID_SW_TP_OPTSHDWCRSR },
- { "Writer", "Grid", RID_SVXPAGE_GRID },
- { "Writer", "BasicFontsWestern", RID_SW_TP_STD_FONT },
- { "Writer", "BasicFontsAsian", RID_SW_TP_STD_FONT_CJK },
- { "Writer", "BasicFontsCTL", RID_SW_TP_STD_FONT_CTL },
- { "Writer", "Print", RID_SW_TP_OPTPRINT_PAGE },
- { "Writer", "Table", RID_SW_TP_OPTTABLE_PAGE },
- { "Writer", "Changes", RID_SW_TP_REDLINE_OPT },
- { "Writer", "Comparison", RID_SW_TP_COMPARISON_OPT },
- { "Writer", "Compatibility", RID_SW_TP_OPTCOMPATIBILITY_PAGE },
- { "Writer", "AutoCaption", RID_SW_TP_OPTCAPTION_PAGE },
- { "Writer", "MailMerge", RID_SW_TP_MAILCONFIG },
- { "WriterWeb", nullptr, SID_SW_ONLINEOPTIONS },
- { "WriterWeb", "View", RID_SW_TP_HTML_CONTENT_OPT },
- { "WriterWeb", "FormattingAids", RID_SW_TP_HTML_OPTSHDWCRSR },
- { "WriterWeb", "Grid", RID_SW_TP_HTML_OPTGRID_PAGE },
- { "WriterWeb", "Print", RID_SW_TP_HTML_OPTPRINT_PAGE },
- { "WriterWeb", "Table", RID_SW_TP_HTML_OPTTABLE_PAGE },
- { "WriterWeb", "Background", RID_SW_TP_BACKGROUND },
- { "Math", nullptr, SID_SM_EDITOPTIONS },
- { "Math", "Settings", SID_SM_TP_PRINTOPTIONS },
- { "Calc", nullptr, SID_SC_EDITOPTIONS },
- { "Calc", "General", SID_SC_TP_LAYOUT },
- { "Calc", "View", SID_SC_TP_CONTENT },
- { "Calc", "Calculate", SID_SC_TP_CALC },
- { "Calc", "Formula", SID_SC_TP_FORMULA },
- { "Calc", "SortLists", SID_SC_TP_USERLISTS },
- { "Calc", "Changes", SID_SC_TP_CHANGES },
- { "Calc", "Compatibility", SID_SC_TP_COMPATIBILITY },
- { "Calc", "Grid", SID_SC_TP_GRID },
- { "Calc", "Print", RID_SC_TP_PRINT },
- { "Impress", nullptr, SID_SD_EDITOPTIONS },
- { "Impress", "General", SID_SI_TP_MISC },
- { "Impress", "View", SID_SI_TP_CONTENTS },
- { "Impress", "Grid", SID_SI_TP_SNAP },
- { "Impress", "Print", SID_SI_TP_PRINT },
- { "Draw", nullptr, SID_SD_GRAPHIC_OPTIONS },
- { "Draw", "General", SID_SD_TP_MISC },
- { "Draw", "View", SID_SD_TP_CONTENTS },
- { "Draw", "Grid", SID_SD_TP_SNAP },
- { "Draw", "Print", SID_SD_TP_PRINT },
- { "Charts", nullptr, SID_SCH_EDITOPTIONS },
- { "Charts", "DefaultColors", RID_OPTPAGE_CHART_DEFCOLORS },
- { "Base", nullptr, SID_SB_STARBASEOPTIONS },
- { "Base", "Connections", SID_SB_CONNECTIONPOOLING },
- { "Base", "Databases", SID_SB_DBREGISTEROPTIONS },
- { nullptr, nullptr, 0 }
+ { u"ProductName"_ustr, u""_ustr, SID_GENERAL_OPTIONS },
+ { u"ProductName"_ustr, u"UserData"_ustr, RID_SFXPAGE_GENERAL },
+ { u"ProductName"_ustr, u"General"_ustr, OFA_TP_MISC },
+ { u"ProductName"_ustr, u"View"_ustr, OFA_TP_VIEW },
+ { u"ProductName"_ustr, u"Print"_ustr, RID_SFXPAGE_PRINTOPTIONS },
+ { u"ProductName"_ustr, u"Paths"_ustr, RID_SFXPAGE_PATH },
+ { u"ProductName"_ustr, u"Fonts"_ustr, RID_SVX_FONT_SUBSTITUTION },
+ { u"ProductName"_ustr, u"Security"_ustr, RID_SVXPAGE_INET_SECURITY },
+ { u"ProductName"_ustr, u"Personalization"_ustr, RID_SVXPAGE_PERSONALIZATION },
+ { u"ProductName"_ustr, u"Appearance"_ustr, RID_SVXPAGE_COLORCONFIG },
+ { u"ProductName"_ustr, u"Accessibility"_ustr, RID_SVXPAGE_ACCESSIBILITYCONFIG },
+ { u"ProductName"_ustr, u"Java"_ustr, RID_SVXPAGE_OPTIONS_JAVA },
+ { u"ProductName"_ustr, u"BasicIDEOptions"_ustr, RID_SVXPAGE_BASICIDE_OPTIONS },
+ { u"ProductName"_ustr, u"OnlineUpdate"_ustr, RID_SVXPAGE_ONLINEUPDATE },
+ { u"LanguageSettings"_ustr, u""_ustr, SID_LANGUAGE_OPTIONS },
+ { u"LanguageSettings"_ustr, u"Languages"_ustr, OFA_TP_LANGUAGES },
+ { u"LanguageSettings"_ustr, u"WritingAids"_ustr, RID_SFXPAGE_LINGU },
+ { u"LanguageSettings"_ustr, u"SearchingInJapanese"_ustr, RID_SVXPAGE_JSEARCH_OPTIONS },
+ { u"LanguageSettings"_ustr, u"AsianLayout"_ustr, RID_SVXPAGE_ASIAN_LAYOUT },
+ { u"LanguageSettings"_ustr, u"ComplexTextLayout"_ustr, RID_SVXPAGE_OPTIONS_CTL },
+ { u"Internet"_ustr, u""_ustr, SID_INET_DLG },
+ { u"Internet"_ustr, u"Proxy"_ustr, RID_SVXPAGE_INET_PROXY },
+ { u"Internet"_ustr, u"Email"_ustr, RID_SVXPAGE_INET_MAIL },
+ { u"LoadSave"_ustr, u""_ustr, SID_FILTER_DLG },
+ { u"LoadSave"_ustr, u"General"_ustr, RID_SFXPAGE_SAVE },
+ { u"LoadSave"_ustr, u"VBAProperties"_ustr, SID_OPTFILTER_MSOFFICE },
+ { u"LoadSave"_ustr, u"MicrosoftOffice"_ustr, RID_OFAPAGE_MSFILTEROPT2 },
+ { u"LoadSave"_ustr, u"HTMLCompatibility"_ustr, RID_OFAPAGE_HTMLOPT },
+ { u"Writer"_ustr, u""_ustr, SID_SW_EDITOPTIONS },
+ { u"Writer"_ustr, u"General"_ustr, RID_SW_TP_OPTLOAD_PAGE },
+ { u"Writer"_ustr, u"View"_ustr, RID_SW_TP_CONTENT_OPT },
+ { u"Writer"_ustr, u"FormattingAids"_ustr, RID_SW_TP_OPTSHDWCRSR },
+ { u"Writer"_ustr, u"Grid"_ustr, RID_SVXPAGE_GRID },
+ { u"Writer"_ustr, u"BasicFontsWestern"_ustr, RID_SW_TP_STD_FONT },
+ { u"Writer"_ustr, u"BasicFontsAsian"_ustr, RID_SW_TP_STD_FONT_CJK },
+ { u"Writer"_ustr, u"BasicFontsCTL"_ustr, RID_SW_TP_STD_FONT_CTL },
+ { u"Writer"_ustr, u"Print"_ustr, RID_SW_TP_OPTPRINT_PAGE },
+ { u"Writer"_ustr, u"Table"_ustr, RID_SW_TP_OPTTABLE_PAGE },
+ { u"Writer"_ustr, u"Changes"_ustr, RID_SW_TP_REDLINE_OPT },
+ { u"Writer"_ustr, u"Comparison"_ustr, RID_SW_TP_COMPARISON_OPT },
+ { u"Writer"_ustr, u"Compatibility"_ustr, RID_SW_TP_OPTCOMPATIBILITY_PAGE },
+ { u"Writer"_ustr, u"AutoCaption"_ustr, RID_SW_TP_OPTCAPTION_PAGE },
+ { u"Writer"_ustr, u"MailMerge"_ustr, RID_SW_TP_MAILCONFIG },
+ { u"WriterWeb"_ustr, u""_ustr, SID_SW_ONLINEOPTIONS },
+ { u"WriterWeb"_ustr, u"View"_ustr, RID_SW_TP_HTML_CONTENT_OPT },
+ { u"WriterWeb"_ustr, u"FormattingAids"_ustr, RID_SW_TP_HTML_OPTSHDWCRSR },
+ { u"WriterWeb"_ustr, u"Grid"_ustr, RID_SW_TP_HTML_OPTGRID_PAGE },
+ { u"WriterWeb"_ustr, u"Print"_ustr, RID_SW_TP_HTML_OPTPRINT_PAGE },
+ { u"WriterWeb"_ustr, u"Table"_ustr, RID_SW_TP_HTML_OPTTABLE_PAGE },
+ { u"WriterWeb"_ustr, u"Background"_ustr, RID_SW_TP_BACKGROUND },
+ { u"Math"_ustr, u""_ustr, SID_SM_EDITOPTIONS },
+ { u"Math"_ustr, u"Settings"_ustr, SID_SM_TP_PRINTOPTIONS },
+ { u"Calc"_ustr, u""_ustr, SID_SC_EDITOPTIONS },
+ { u"Calc"_ustr, u"General"_ustr, SID_SC_TP_LAYOUT },
+ { u"Calc"_ustr, u"View"_ustr, SID_SC_TP_CONTENT },
+ { u"Calc"_ustr, u"Calculate"_ustr, SID_SC_TP_CALC },
+ { u"Calc"_ustr, u"Formula"_ustr, SID_SC_TP_FORMULA },
+ { u"Calc"_ustr, u"SortLists"_ustr, SID_SC_TP_USERLISTS },
+ { u"Calc"_ustr, u"Changes"_ustr, SID_SC_TP_CHANGES },
+ { u"Calc"_ustr, u"Compatibility"_ustr, SID_SC_TP_COMPATIBILITY },
+ { u"Calc"_ustr, u"Grid"_ustr, SID_SC_TP_GRID },
+ { u"Calc"_ustr, u"Print"_ustr, RID_SC_TP_PRINT },
+ { u"Impress"_ustr, u""_ustr, SID_SD_EDITOPTIONS },
+ { u"Impress"_ustr, u"General"_ustr, SID_SI_TP_MISC },
+ { u"Impress"_ustr, u"View"_ustr, SID_SI_TP_CONTENTS },
+ { u"Impress"_ustr, u"Grid"_ustr, SID_SI_TP_SNAP },
+ { u"Impress"_ustr, u"Print"_ustr, SID_SI_TP_PRINT },
+ { u"Draw"_ustr, u""_ustr, SID_SD_GRAPHIC_OPTIONS },
+ { u"Draw"_ustr, u"General"_ustr, SID_SD_TP_MISC },
+ { u"Draw"_ustr, u"View"_ustr, SID_SD_TP_CONTENTS },
+ { u"Draw"_ustr, u"Grid"_ustr, SID_SD_TP_SNAP },
+ { u"Draw"_ustr, u"Print"_ustr, SID_SD_TP_PRINT },
+ { u"Charts"_ustr, u""_ustr, SID_SCH_EDITOPTIONS },
+ { u"Charts"_ustr, u"DefaultColors"_ustr, RID_OPTPAGE_CHART_DEFCOLORS },
+ { u"Base"_ustr, u""_ustr, SID_SB_STARBASEOPTIONS },
+ { u"Base"_ustr, u"Connections"_ustr, SID_SB_CONNECTIONPOOLING },
+ { u"Base"_ustr, u"Databases"_ustr, SID_SB_DBREGISTEROPTIONS },
};
static bool lcl_getStringFromID( sal_uInt16 _nPageId, OUString& _rGroupName, OUString& _rPageName )
{
bool bRet = false;
- sal_uInt16 nIdx = 0;
- while ( OptionsMap_Impl[nIdx].m_pGroupName != nullptr )
+ for (const auto & rMapping : OptionsMap_Impl )
{
- if ( _nPageId == OptionsMap_Impl[nIdx].m_nPageId )
+ if ( _nPageId == rMapping.m_nPageId )
{
bRet = true;
- _rGroupName = OUString::createFromAscii( OptionsMap_Impl[nIdx].m_pGroupName );
- if ( OptionsMap_Impl[nIdx].m_pPageName != nullptr )
- _rPageName = OUString::createFromAscii( OptionsMap_Impl[nIdx].m_pPageName );
+ _rGroupName = rMapping.m_aGroupName;
+ if ( !rMapping.m_aPageName.isEmpty() )
+ _rPageName = rMapping.m_aPageName;
break;
}
- ++nIdx;
}
return bRet;
@@ -464,22 +439,42 @@ struct OptionsGroupInfo
m_pModule( pMod ), m_nDialogId( nId ) {}
};
-#define INI_LIST() \
- , m_pParent ( pParent )\
- , sTitle ( m_xDialog->get_title() )\
- , bForgetSelection ( false )\
- , bIsFromExtensionManager( false ) \
- , bIsForSetDocumentLanguage( false ) \
- , bNeedsRestart ( false ) \
- , eRestartReason( svtools::RESTART_REASON_NONE )
-
-void OfaTreeOptionsDialog::InitWidgets()
-{
- xOkPB = m_xBuilder->weld_button("ok");
- xApplyPB = m_xBuilder->weld_button("apply");
- xBackPB = m_xBuilder->weld_button("revert");
- xTreeLB = m_xBuilder->weld_tree_view("pages");
- xTabBox = m_xBuilder->weld_container("box");
+struct OptionsPageIdInfo
+{
+ OUString m_sParentName;
+ OUString m_sPageName;
+ sal_uInt16 m_nParentId;
+ sal_uInt16 m_nPageId;
+
+ OptionsPageIdInfo(OUString sParentName, OUString sPageName, sal_uInt16 nParentId,
+ sal_uInt16 nPageId)
+ : m_sParentName(std::move(sParentName))
+ , m_sPageName(std::move(sPageName))
+ , m_nParentId(nParentId)
+ , m_nPageId(nPageId)
+ {
+ }
+};
+
+// Basic ctor with common initialization
+OfaTreeOptionsDialog::OfaTreeOptionsDialog(weld::Window* pParent, bool fromExtensionManager)
+ : SfxOkDialogController(pParent, u"cui/ui/optionsdialog.ui"_ustr, u"OptionsDialog"_ustr)
+ , xOkPB(m_xBuilder->weld_button(u"ok"_ustr))
+ , xApplyPB(m_xBuilder->weld_button(u"apply"_ustr))
+ , xBackPB(m_xBuilder->weld_button(u"revert"_ustr))
+ , xTreeLB(m_xBuilder->weld_tree_view(u"pages"_ustr))
+ , xTabBox(m_xBuilder->weld_container(u"box"_ustr))
+ , m_xSearchEdit(m_xBuilder->weld_entry(u"searchEntry"_ustr))
+ , m_pParent(pParent)
+ , m_aUpdateDataTimer("OfaTreeOptionsDialog UpdateDataTimer")
+ , bIsFirtsInitialize(true)
+ , sTitle(m_xDialog->get_title())
+ , bForgetSelection(false)
+ , bIsFromExtensionManager(fromExtensionManager)
+ , bIsForSetDocumentLanguage(false)
+ , bNeedsRestart(false)
+ , eRestartReason(svtools::RESTART_REASON_NONE)
+{
Size aSize(xTreeLB->get_approximate_digit_width() * 82, xTreeLB->get_height_rows(30));
#if HAVE_FEATURE_GPGME
// tdf#115015: make enough space for crypto settings (approx. 14 text edits + padding)
@@ -487,38 +482,48 @@ void OfaTreeOptionsDialog::InitWidgets()
#endif
xTabBox->set_size_request(aSize.Width(), aSize.Height());
xTreeLB->set_size_request(xTreeLB->get_approximate_digit_width() * 35, aSize.Height());
+
+ // Init tree and handler
+ xTreeLB->set_help_id(HID_OFADLG_TREELISTBOX);
+ xTreeLB->connect_changed(LINK(this, OfaTreeOptionsDialog, ShowPageHdl_Impl));
+ xBackPB->connect_clicked(LINK(this, OfaTreeOptionsDialog, BackHdl_Impl));
+ xApplyPB->connect_clicked(LINK(this, OfaTreeOptionsDialog, ApplyHdl_Impl));
+ xOkPB->connect_clicked(LINK(this, OfaTreeOptionsDialog, ApplyHdl_Impl));
+ m_xSearchEdit->connect_changed(LINK(this, OfaTreeOptionsDialog, SearchUpdateHdl));
+ m_xSearchEdit->connect_focus_out(LINK(this, OfaTreeOptionsDialog, FocusOut_Impl));
+ m_xDialog->connect_help(LINK(this, OfaTreeOptionsDialog, HelpHdl_Impl));
+
+ m_aUpdateDataTimer.SetInvokeHandler(LINK(this, OfaTreeOptionsDialog, ImplUpdateDataHdl));
+ m_aUpdateDataTimer.SetTimeout(EDIT_UPDATEDATA_TIMEOUT);
+
+ // Initialize search util
+ m_options.AlgorithmType2 = util::SearchAlgorithms2::ABSOLUTE;
+ m_options.transliterateFlags |= TransliterationFlags::IGNORE_CASE;
+ m_options.searchFlag
+ |= (util::SearchFlags::REG_NOT_BEGINOFLINE | util::SearchFlags::REG_NOT_ENDOFLINE);
+
+ xTreeLB->set_accessible_name(sTitle);
}
// Ctor() with Frame -----------------------------------------------------
OfaTreeOptionsDialog::OfaTreeOptionsDialog(weld::Window* pParent, const Reference< XFrame >& _xFrame, bool bActivateLastSelection)
- : SfxOkDialogController(pParent, "cui/ui/optionsdialog.ui", "OptionsDialog")
- INI_LIST()
+ : OfaTreeOptionsDialog(pParent, false)
{
- InitWidgets();
-
- InitTreeAndHandler();
Initialize( _xFrame );
LoadExtensionOptions( u"" );
if (bActivateLastSelection)
ActivateLastSelection();
-
- xTreeLB->set_accessible_name(m_xDialog->get_title());
}
// Ctor() with ExtensionId -----------------------------------------------
OfaTreeOptionsDialog::OfaTreeOptionsDialog(weld::Window* pParent, std::u16string_view rExtensionId)
- : SfxOkDialogController(pParent, "cui/ui/optionsdialog.ui", "OptionsDialog")
- INI_LIST()
+ : OfaTreeOptionsDialog(pParent, !rExtensionId.empty())
{
- InitWidgets();
-
- bIsFromExtensionManager = ( !rExtensionId.empty() );
- InitTreeAndHandler();
LoadExtensionOptions( rExtensionId );
ActivateLastSelection();
}
-OfaTreeOptionsDialog::~OfaTreeOptionsDialog()
+void OfaTreeOptionsDialog::ImplDestroy()
{
xCurrentPageEntry.reset();
@@ -530,7 +535,7 @@ OfaTreeOptionsDialog::~OfaTreeOptionsDialog()
// if Child (has parent), then OptionsPageInfo
if (xTreeLB->get_iter_depth(*xEntry))
{
- OptionsPageInfo *pPageInfo = reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xEntry).toInt64());
+ OptionsPageInfo *pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xEntry));
if(pPageInfo->m_xPage)
{
pPageInfo->m_xPage->FillUserData();
@@ -566,7 +571,7 @@ OfaTreeOptionsDialog::~OfaTreeOptionsDialog()
{
if (!xTreeLB->get_iter_depth(*xEntry))
{
- OptionsGroupInfo* pGroupInfo = reinterpret_cast<OptionsGroupInfo*>(xTreeLB->get_id(*xEntry).toInt64());
+ OptionsGroupInfo* pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xEntry));
delete pGroupInfo;
}
bEntry = xTreeLB->iter_next(*xEntry);
@@ -574,6 +579,11 @@ OfaTreeOptionsDialog::~OfaTreeOptionsDialog()
deleteGroupNames();
}
+OfaTreeOptionsDialog::~OfaTreeOptionsDialog()
+{
+ suppress_fun_call_w_exception(ImplDestroy());
+}
+
OptionsPageInfo* OfaTreeOptionsDialog::AddTabPage(
sal_uInt16 nId, const OUString& rPageName, sal_uInt16 nGroup )
{
@@ -583,7 +593,7 @@ OptionsPageInfo* OfaTreeOptionsDialog::AddTabPage(
xTreeLB->iter_nth_sibling(*xParent, nGroup);
OptionsPageInfo* pPageInfo = new OptionsPageInfo( nId );
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pPageInfo)));
+ OUString sId(weld::toId(pPageInfo));
xTreeLB->insert(xParent.get(), -1, &rPageName, &sId, nullptr, nullptr, false, nullptr);
return pPageInfo;
}
@@ -596,7 +606,7 @@ sal_uInt16 OfaTreeOptionsDialog::AddGroup(const OUString& rGroupName,
{
OptionsGroupInfo* pInfo =
new OptionsGroupInfo( pCreateShell, pCreateModule, nDialogId );
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pInfo)));
+ OUString sId(weld::toId(pInfo));
xTreeLB->append(sId, rGroupName);
sal_uInt16 nRet = 0;
@@ -621,13 +631,13 @@ void OfaTreeOptionsDialog::ResetCurrentPageFromConfig()
if (!(xCurrentPageEntry && xTreeLB->get_iter_depth(*xCurrentPageEntry)))
return;
- OptionsPageInfo* pPageInfo = reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry).toInt64());
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry));
if (pPageInfo->m_xPage)
{
std::unique_ptr<weld::TreeIter> xParent = xTreeLB->make_iterator(xCurrentPageEntry.get());
xTreeLB->iter_parent(*xParent);
OptionsGroupInfo* pGroupInfo =
- reinterpret_cast<OptionsGroupInfo*>(xTreeLB->get_id(*xParent).toInt64());
+ weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xParent));
pPageInfo->m_xPage->Reset( &*pGroupInfo->m_pInItemSet );
}
else if ( pPageInfo->m_xExtPage )
@@ -647,13 +657,13 @@ void OfaTreeOptionsDialog::ApplyOptions()
{
if (xTreeLB->get_iter_depth(*xEntry))
{
- OptionsPageInfo* pPageInfo = reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xEntry).toInt64());
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xEntry));
if ( pPageInfo->m_xPage && !pPageInfo->m_xPage->HasExchangeSupport() )
{
std::unique_ptr<weld::TreeIter> xParent = xTreeLB->make_iterator(xEntry.get());
xTreeLB->iter_parent(*xParent);
OptionsGroupInfo* pGroupInfo =
- reinterpret_cast<OptionsGroupInfo*>(xTreeLB->get_id(*xParent).toInt64());
+ weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xParent));
pPageInfo->m_xPage->FillItemSet(pGroupInfo->m_pOutItemSet.get());
}
@@ -677,11 +687,11 @@ IMPL_LINK_NOARG(OfaTreeOptionsDialog, HelpHdl_Impl, weld::Widget&, bool)
Help* pHelp = Application::GetHelp();
if (pHelp && xCurrentPageEntry && xTreeLB->get_iter_depth(*xCurrentPageEntry))
{
- OptionsPageInfo* pPageInfo = reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry).toInt64());
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry));
if (pPageInfo->m_xPage)
{
- OString sHelpId(pPageInfo->m_xPage->GetHelpId());
- pHelp->Start(OStringToOUString(sHelpId, RTL_TEXTENCODING_UTF8), m_xDialog.get());
+ OUString sHelpId(pPageInfo->m_xPage->GetHelpId());
+ pHelp->Start(sHelpId, m_xDialog.get());
return false;
}
}
@@ -696,13 +706,13 @@ IMPL_LINK(OfaTreeOptionsDialog, ApplyHdl_Impl, weld::Button&, rButton, void)
if (xCurrentPageEntry && xTreeLB->get_iter_depth(*xCurrentPageEntry))
{
- OptionsPageInfo* pPageInfo = reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry).toInt64());
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry));
if ( pPageInfo->m_xPage )
{
std::unique_ptr<weld::TreeIter> xParent = xTreeLB->make_iterator(xCurrentPageEntry.get());
xTreeLB->iter_parent(*xParent);
- pGroupInfo = reinterpret_cast<OptionsGroupInfo*>(xTreeLB->get_id(*xParent).toInt64());
+ pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xParent));
if ( RID_SVXPAGE_COLOR != pPageInfo->m_nPageId
&& pPageInfo->m_xPage->HasExchangeSupport() )
{
@@ -766,6 +776,299 @@ IMPL_LINK(OfaTreeOptionsDialog, ApplyHdl_Impl, weld::Button&, rButton, void)
m_xDialog->response(RET_OK);
}
+IMPL_LINK_NOARG(OfaTreeOptionsDialog, FocusOut_Impl, weld::Widget&, void)
+{
+ if (m_aUpdateDataTimer.IsActive())
+ {
+ m_aUpdateDataTimer.Stop();
+ m_aUpdateDataTimer.Invoke();
+ }
+}
+
+IMPL_LINK_NOARG(OfaTreeOptionsDialog, SearchUpdateHdl, weld::Entry&, void)
+{
+ m_aUpdateDataTimer.Start();
+}
+
+IMPL_LINK_NOARG(OfaTreeOptionsDialog, ImplUpdateDataHdl, Timer*, void)
+{
+ // initializeAllDialogs() can take a long time, show wait cursor and disable input
+ std::unique_ptr<weld::WaitObject> xWait(m_pParent ? new weld::WaitObject(m_pParent) : nullptr);
+
+ // Pause redraw
+ xTreeLB->freeze();
+
+ if (bIsFirtsInitialize)
+ {
+ m_xSearchEdit->freeze();
+ xTreeLB->hide();
+
+ initializeAllDialogs();
+
+ m_xSearchEdit->thaw();
+ xTreeLB->show();
+ bIsFirtsInitialize = false;
+ }
+
+ // Apply the search filter
+ OUString aSearchTerm(m_xSearchEdit->get_text());
+ int nMatchFound = applySearchFilter(aSearchTerm);
+
+ // Resume redraw
+ xTreeLB->thaw();
+
+ // select first child of first node after the search done
+ if (nMatchFound != -1)
+ selectFirstEntry();
+}
+
+void OfaTreeOptionsDialog::selectFirstEntry()
+{
+ std::unique_ptr<weld::TreeIter> xTemp = xTreeLB->make_iterator();
+ bool bTemp = xTreeLB->get_iter_first(*xTemp);
+
+ while (bTemp)
+ {
+ // select only the first child
+ if (xTreeLB->get_iter_depth(*xTemp) && xTreeLB->get_id(*xTemp).toInt64())
+ {
+ std::unique_ptr<weld::TreeIter> xEntry(xTreeLB->make_iterator(xTemp.get()));
+
+ std::unique_ptr<weld::TreeIter> xParent(xTreeLB->make_iterator(xEntry.get()));
+ xTreeLB->iter_parent(*xParent);
+ xTreeLB->expand_row(*xParent);
+ xTreeLB->scroll_to_row(*xParent);
+ xTreeLB->scroll_to_row(*xEntry);
+ xTreeLB->set_cursor(*xEntry);
+ xTreeLB->select(*xEntry);
+ SelectHdl_Impl();
+
+ break;
+ }
+ bTemp = xTreeLB->iter_next(*xTemp);
+ }
+}
+
+void OfaTreeOptionsDialog::initializeAllDialogs()
+{
+ std::unique_ptr<weld::TreeIter> xEntry;
+
+ std::unique_ptr<weld::TreeIter> xTemp = xTreeLB->make_iterator();
+ bool bTemp = xTreeLB->get_iter_first(*xTemp);
+
+ while (bTemp)
+ {
+ if (xTreeLB->get_iter_depth(*xTemp) && xTreeLB->get_id(*xTemp).toInt64())
+ {
+ if (!(xEntry = xTreeLB->make_iterator(xTemp.get())))
+ {
+ xEntry = xTreeLB->make_iterator();
+ if (!xTreeLB->get_iter_first(*xEntry) || !xTreeLB->iter_next(*xEntry))
+ xEntry.reset();
+ }
+
+ if (!xEntry)
+ return;
+
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xEntry));
+ if (TreeOptHelper::getStringsFromDialog(pPageInfo->m_nPageId).isEmpty())
+ {
+ SolarMutexGuard aGuard;
+ initializeCurrentDialog(pPageInfo, xEntry);
+ }
+ }
+
+ bTemp = xTreeLB->iter_next(*xTemp);
+ }
+}
+
+void OfaTreeOptionsDialog::clearOptionsDialog()
+{
+ // clear and reset
+ std::unique_ptr<weld::TreeIter> xEntry = xTreeLB->make_iterator();
+ bool bEntry = xTreeLB->get_iter_first(*xEntry);
+
+ while (bEntry)
+ {
+ if (xTreeLB->get_iter_depth(*xEntry))
+ {
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xEntry));
+ if (pPageInfo->m_xPage)
+ pPageInfo->m_xPage.reset();
+ }
+ bEntry = xTreeLB->iter_next(*xEntry);
+ }
+ xCurrentPageEntry.reset();
+}
+
+// store Options tree with their page names
+void OfaTreeOptionsDialog::storeOptionsTree()
+{
+ m_aTreePageIds.clear();
+
+ sal_uInt16 aParentId = 0;
+ OUString sParentName;
+
+ std::unique_ptr<weld::TreeIter> xEntry = xTreeLB->make_iterator();
+ bool bEntry = xTreeLB->get_iter_first(*xEntry);
+
+ while (bEntry)
+ {
+ OptionsGroupInfo* pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xEntry));
+ bool bIsParentNode = !xTreeLB->get_iter_depth(*xEntry);
+
+ if (bIsParentNode)
+ {
+ // Parent node
+ sParentName = xTreeLB->get_text(*xEntry);
+ aParentId = pGroupInfo->m_nDialogId;
+ m_aTreePageIds.push_back(new OptionsPageIdInfo(sParentName, sParentName, aParentId, 0));
+ }
+ else
+ {
+ // Child node
+ OUString sChildName = xTreeLB->get_text(*xEntry);
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xEntry));
+ m_aTreePageIds.push_back(
+ new OptionsPageIdInfo(sParentName, sChildName, aParentId, pPageInfo->m_nPageId));
+ }
+ bEntry = xTreeLB->iter_next(*xEntry);
+ }
+}
+
+int OfaTreeOptionsDialog::applySearchFilter(const OUString& rSearchTerm)
+{
+ if (rSearchTerm.isEmpty())
+ {
+ clearOptionsDialog();
+ xTreeLB->clear();
+ Initialize(m_xFrame);
+
+ return 0;
+ }
+
+ m_options.searchString = rSearchTerm;
+ utl::TextSearch textSearch(m_options);
+
+ clearOptionsDialog();
+
+ if (xTreeLB->n_children() > 0)
+ xTreeLB->clear();
+
+ std::vector<std::pair<sal_uInt16, std::vector<sal_uInt16>>> aFoundIdsVector;
+
+ for (std::size_t i = 0; i < m_aTreePageIds.size(); ++i)
+ {
+ const OUString sParentName = m_aTreePageIds[i]->m_sParentName;
+ const OUString sPageName = m_aTreePageIds[i]->m_sPageName;
+ const sal_uInt16 nParentId = m_aTreePageIds[i]->m_nParentId;
+ const sal_uInt16 nPageId = m_aTreePageIds[i]->m_nPageId;
+
+ const OUString sPageStrings = TreeOptHelper::getStringsFromDialog(nPageId);
+ const OUString sPageNameAndStrings = sParentName + " " + sPageName + " " + sPageStrings;
+
+ sal_Int32 aStartPos = 0;
+ sal_Int32 aEndPos = sPageNameAndStrings.getLength();
+
+ // check if rSearchTerm matches with sPageNameAndStrings
+ if (textSearch.SearchForward(sPageNameAndStrings, &aStartPos, &aEndPos))
+ {
+ bool isFound = false;
+ for (auto& aEntryId : aFoundIdsVector)
+ {
+ if (aEntryId.first == nParentId)
+ {
+ isFound = true;
+ aEntryId.second.push_back(nPageId);
+ }
+ }
+
+ if (!isFound)
+ aFoundIdsVector.push_back({ nParentId, { nPageId } });
+ }
+ }
+
+ showDialog(aFoundIdsVector);
+
+ // if treeview is empty, return -1
+ return xTreeLB->n_children() ? 0 : -1;
+}
+
+void OfaTreeOptionsDialog::showDialog(VectorOfMatchedIds& pSearchIds)
+{
+ //
+ // void generalOptions(); // SID_GENERAL_OPTIONS
+ // void loadAndSaveOptions(); // SID_FILTER_DLG
+ // void languageOptions(); // SID_LANGUAGE_OPTIONS
+ // void writerOptions(); // SID_SW_EDITOPTIONS
+ // void writerWebOptions(); // SID_SW_ONLINEOPTIONS
+ // void calcOptions(); // SID_SC_EDITOPTIONS
+ // void impressOptions(); // SID_SD_EDITOPTIONS
+ // void drawOptions(); // SID_SD_GRAPHIC_OPTIONS
+ // void mathOptions(); // SID_SM_EDITOPTIONS
+ // void databaseOptions(); // SID_SB_STARBASEOPTIONS
+ // void chartOptions(); // SID_SCH_EDITOPTIONS
+ // void internetOptions(); // SID_INET_DLG
+ //
+
+ for (auto& aEntryId : pSearchIds)
+ {
+ switch (aEntryId.first)
+ {
+ case SID_GENERAL_OPTIONS:
+ generalOptions(aEntryId.second);
+ break;
+
+ case SID_FILTER_DLG:
+ loadAndSaveOptions(aEntryId.second);
+ break;
+
+ case SID_LANGUAGE_OPTIONS:
+ languageOptions(aEntryId.second);
+ break;
+
+ case SID_SW_EDITOPTIONS:
+ writerOptions(aEntryId.second);
+ break;
+
+ case SID_SW_ONLINEOPTIONS:
+ writerWebOptions(aEntryId.second);
+ break;
+
+ case SID_SC_EDITOPTIONS:
+ calcOptions(aEntryId.second);
+ break;
+
+ case SID_SD_EDITOPTIONS:
+ impressOptions(aEntryId.second);
+ break;
+
+ case SID_SD_GRAPHIC_OPTIONS:
+ drawOptions(aEntryId.second);
+ break;
+
+ case SID_SM_EDITOPTIONS:
+ mathOptions(aEntryId.second);
+ break;
+
+ case SID_SB_STARBASEOPTIONS:
+ databaseOptions(aEntryId.second);
+ break;
+
+ case SID_SCH_EDITOPTIONS:
+ chartOptions(aEntryId.second);
+ break;
+
+ case SID_INET_DLG:
+ internetOptions(aEntryId.second);
+ break;
+
+ default:
+ break;
+ }
+ }
+}
+
void OfaTreeOptionsDialog::ApplyItemSets()
{
std::unique_ptr<weld::TreeIter> xEntry = xTreeLB->make_iterator();
@@ -774,7 +1077,7 @@ void OfaTreeOptionsDialog::ApplyItemSets()
{
if (!xTreeLB->get_iter_depth(*xEntry))
{
- OptionsGroupInfo* pGroupInfo = reinterpret_cast<OptionsGroupInfo*>(xTreeLB->get_id(*xEntry).toInt64());
+ OptionsGroupInfo* pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xEntry));
if(pGroupInfo->m_pOutItemSet)
{
if(pGroupInfo->m_pShell)
@@ -787,16 +1090,6 @@ void OfaTreeOptionsDialog::ApplyItemSets()
}
}
-void OfaTreeOptionsDialog::InitTreeAndHandler()
-{
- xTreeLB->set_help_id(HID_OFADLG_TREELISTBOX);
- xTreeLB->connect_changed( LINK( this, OfaTreeOptionsDialog, ShowPageHdl_Impl ) );
- xBackPB->connect_clicked( LINK( this, OfaTreeOptionsDialog, BackHdl_Impl ) );
- xApplyPB->connect_clicked( LINK( this, OfaTreeOptionsDialog, ApplyHdl_Impl ) );
- xOkPB->connect_clicked( LINK( this, OfaTreeOptionsDialog, ApplyHdl_Impl ) );
- m_xDialog->connect_help( LINK( this, OfaTreeOptionsDialog, HelpHdl_Impl ) );
-}
-
void OfaTreeOptionsDialog::ActivatePage( sal_uInt16 nResId )
{
bIsForSetDocumentLanguage = false;
@@ -850,7 +1143,7 @@ void OfaTreeOptionsDialog::ActivateLastSelection()
// restore only selection of a leaf
if (xTreeLB->get_iter_depth(*xTemp) && xTreeLB->get_id(*xTemp).toInt64())
{
- OptionsPageInfo* pPageInfo = reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xTemp).toInt64());
+ OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xTemp));
OUString sPageURL = pPageInfo->m_sPageURL;
if ( bMustExpand )
{
@@ -887,7 +1180,7 @@ void OfaTreeOptionsDialog::ActivateLastSelection()
xTreeLB->scroll_to_row(*xEntry);
xTreeLB->set_cursor(*xEntry);
xTreeLB->select(*xEntry);
- xTreeLB->grab_focus();
+ m_xSearchEdit->grab_focus();
SelectHdl_Impl();
}
@@ -903,6 +1196,70 @@ void OfaTreeOptionsDialog::InitItemSets(OptionsGroupInfo& rGroupInfo)
rGroupInfo.m_pInItemSet->GetRanges());
}
+void OfaTreeOptionsDialog::initializeCurrentDialog(OptionsPageInfo*& pPageInfo,
+ std::unique_ptr<weld::TreeIter>& xEntry)
+{
+ std::unique_ptr<weld::TreeIter> xParent(xTreeLB->make_iterator(xEntry.get()));
+ bool bParent = xTreeLB->iter_parent(*xParent);
+
+ if (!bParent)
+ return;
+
+ if (pPageInfo->m_xPage)
+ {
+ TreeOptHelper::storeStringsOfDialog(pPageInfo->m_nPageId,
+ pPageInfo->m_xPage->GetAllStrings());
+ return;
+ }
+
+ OptionsGroupInfo* pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xParent));
+
+ if (!pPageInfo->m_xPage && pPageInfo->m_nPageId > 0)
+ {
+ InitItemSets(*pGroupInfo);
+
+ pPageInfo->m_xPage = ::CreateGeneralTabPage(pPageInfo->m_nPageId, xTabBox.get(), this,
+ *pGroupInfo->m_pInItemSet);
+
+ if (!pPageInfo->m_xPage && pGroupInfo->m_pModule)
+ pPageInfo->m_xPage = pGroupInfo->m_pModule->CreateTabPage(
+ pPageInfo->m_nPageId, xTabBox.get(), this, *pGroupInfo->m_pInItemSet);
+
+ DBG_ASSERT(pPageInfo->m_xPage, "tabpage could not created");
+ if (pPageInfo->m_xPage)
+ {
+ SvtViewOptions aTabPageOpt(EViewType::TabPage, OUString::number(pPageInfo->m_nPageId));
+ pPageInfo->m_xPage->SetUserData(GetViewOptUserItem(aTabPageOpt));
+ pPageInfo->m_xPage->SetFrame(m_xFrame);
+ pPageInfo->m_xPage->Reset(&*pGroupInfo->m_pInItemSet);
+ }
+
+ TreeOptHelper::storeStringsOfDialog(pPageInfo->m_nPageId,
+ pPageInfo->m_xPage->GetAllStrings());
+
+ pPageInfo->m_xPage->set_visible(false);
+ }
+ else if (0 == pPageInfo->m_nPageId && !pPageInfo->m_xExtPage)
+ {
+ if (!m_xContainerWinProvider.is())
+ m_xContainerWinProvider
+ = awt::ContainerWindowProvider::create(::comphelper::getProcessComponentContext());
+
+ pPageInfo->m_xExtPage = std::make_unique<ExtensionsTabPage>(
+ xTabBox.get(), pPageInfo->m_sPageURL, pPageInfo->m_sEventHdl, m_xContainerWinProvider);
+
+ pPageInfo->m_xExtPage->Hide();
+ }
+
+ BuilderPage* pNewPage = pPageInfo->m_xPage.get();
+
+ // fdo#58170 use current page's layout child HelpId, unless there isn't a current page
+ OUString sHelpId(pNewPage ? pNewPage->GetHelpId() : OUString());
+ if (sHelpId.isEmpty())
+ sHelpId = HID_OFADLG_TREELISTBOX;
+ xTreeLB->set_help_id(sHelpId);
+}
+
void OfaTreeOptionsDialog::SelectHdl_Impl()
{
std::unique_ptr<weld::TreeIter> xEntry(xTreeLB->make_iterator());
@@ -923,14 +1280,14 @@ void OfaTreeOptionsDialog::SelectHdl_Impl()
BuilderPage* pNewPage = nullptr;
OptionsPageInfo* pOptPageInfo = (xCurrentPageEntry && xTreeLB->get_iter_depth(*xCurrentPageEntry))
- ? reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry).toInt64()) : nullptr;
+ ? weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry)) : nullptr;
if (pOptPageInfo && pOptPageInfo->m_xPage && pOptPageInfo->m_xPage->IsVisible())
{
std::unique_ptr<weld::TreeIter> xCurParent(xTreeLB->make_iterator(xCurrentPageEntry.get()));
xTreeLB->iter_parent(*xCurParent);
- OptionsGroupInfo* pGroupInfo = reinterpret_cast<OptionsGroupInfo*>(xTreeLB->get_id(*xCurParent).toInt64());
+ OptionsGroupInfo* pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xCurParent));
DeactivateRC nLeave = DeactivateRC::LeavePage;
if ( RID_SVXPAGE_COLOR != pOptPageInfo->m_nPageId && pOptPageInfo->m_xPage->HasExchangeSupport() )
nLeave = pOptPageInfo->m_xPage->DeactivatePage( pGroupInfo->m_pOutItemSet.get() );
@@ -951,8 +1308,8 @@ void OfaTreeOptionsDialog::SelectHdl_Impl()
pOptPageInfo->m_xExtPage->DeactivatePage();
}
- OptionsPageInfo *pPageInfo = reinterpret_cast<OptionsPageInfo*>(xTreeLB->get_id(*xEntry).toInt64());
- OptionsGroupInfo* pGroupInfo = reinterpret_cast<OptionsGroupInfo*>(xTreeLB->get_id(*xParent).toInt64());
+ OptionsPageInfo *pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xEntry));
+ OptionsGroupInfo* pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xParent));
if(!pPageInfo->m_xPage && pPageInfo->m_nPageId > 0)
{
InitItemSets(*pGroupInfo);
@@ -967,6 +1324,7 @@ void OfaTreeOptionsDialog::SelectHdl_Impl()
{
SvtViewOptions aTabPageOpt( EViewType::TabPage, OUString::number( pPageInfo->m_nPageId) );
pPageInfo->m_xPage->SetUserData( GetViewOptUserItem( aTabPageOpt ) );
+ pPageInfo->m_xPage->SetFrame( m_xFrame );
pPageInfo->m_xPage->Reset( &*pGroupInfo->m_pInItemSet );
}
}
@@ -1022,7 +1380,7 @@ void OfaTreeOptionsDialog::SelectHdl_Impl()
pNewPage = pPageInfo->m_xPage.get();
// fdo#58170 use current page's layout child HelpId, unless there isn't a current page
- OString sHelpId(pNewPage ? pNewPage->GetHelpId() : OString());
+ OUString sHelpId(pNewPage ? pNewPage->GetHelpId() : OUString());
if (sHelpId.isEmpty())
sHelpId = HID_OFADLG_TREELISTBOX;
xTreeLB->set_help_id(sHelpId);
@@ -1046,18 +1404,19 @@ std::optional<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId )
SID_ATTR_YEAR2000, SID_ATTR_YEAR2000> );
SfxItemSetFixed<SID_ATTR_QUICKLAUNCHER, SID_ATTR_QUICKLAUNCHER> aOptSet( SfxGetpApp()->GetPool() );
- SfxGetpApp()->GetOptions(aOptSet);
+ SfxApplication::GetOptions(aOptSet);
pRet->Put(aOptSet);
SfxViewFrame* pViewFrame = SfxViewFrame::Current();
if ( pViewFrame )
{
- const SfxPoolItem* pItem = nullptr;
- SfxDispatcher* pDispatch = pViewFrame->GetDispatcher();
+ SfxPoolItemHolder aResult;
+ const SfxItemState aState(pViewFrame->GetDispatcher()->QueryState(SID_ATTR_YEAR2000, aResult));
+ const SfxUInt16Item* pItem(static_cast<const SfxUInt16Item*>(aResult.getItem()));
// miscellaneous - Year2000
- if( SfxItemState::DEFAULT <= pDispatch->QueryState( SID_ATTR_YEAR2000, pItem ) )
- pRet->Put( SfxUInt16Item( SID_ATTR_YEAR2000, static_cast<const SfxUInt16Item*>(pItem)->GetValue() ) );
+ if(SfxItemState::DEFAULT <= aState && nullptr != pItem)
+ pRet->Put( SfxUInt16Item( SID_ATTR_YEAR2000, pItem->GetValue() ) );
else
pRet->Put( SfxUInt16Item( SID_ATTR_YEAR2000, officecfg::Office::Common::DateFormat::TwoDigitYear::get() ) );
}
@@ -1102,31 +1461,28 @@ std::optional<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId )
SfxViewFrame* pViewFrame = SfxViewFrame::Current();
if ( pViewFrame )
{
- const SfxPoolItem* pItem = nullptr;
- SfxDispatcher* pDispatch = pViewFrame->GetDispatcher();
- if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_LANGUAGE, pItem))
- pRet->Put(
- SvxLanguageItem(
- (static_cast<const SvxLanguageItem*>(pItem)
- ->GetLanguage()),
- SID_ATTR_LANGUAGE));
- if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CJK_LANGUAGE, pItem))
- pRet->Put(
- SvxLanguageItem(
- (static_cast<const SvxLanguageItem*>(pItem)
- ->GetLanguage()),
- SID_ATTR_CHAR_CJK_LANGUAGE));
- if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CTL_LANGUAGE, pItem))
- pRet->Put(
- SvxLanguageItem(
- (static_cast<const SvxLanguageItem*>(pItem)
- ->GetLanguage()),
- SID_ATTR_CHAR_CTL_LANGUAGE));
+ SfxPoolItemHolder aResult;
+ SfxDispatcher* pDispatch(pViewFrame->GetDispatcher());
+
+ SfxItemState aState(pDispatch->QueryState(SID_ATTR_LANGUAGE, aResult));
+ if(SfxItemState::DEFAULT <= aState)
+ pRet->Put(*aResult.getItem());
+
+ aState = pDispatch->QueryState(SID_ATTR_CHAR_CJK_LANGUAGE, aResult);
+ if(SfxItemState::DEFAULT <= aState)
+ pRet->Put(*aResult.getItem());
+
+ aState = pDispatch->QueryState(SID_ATTR_CHAR_CTL_LANGUAGE, aResult);
+ if(SfxItemState::DEFAULT <= aState)
+ pRet->Put(*aResult.getItem());
pRet->Put(aHyphen);
- if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_AUTOSPELL_CHECK, pItem))
+
+ aState = pDispatch->QueryState(SID_AUTOSPELL_CHECK, aResult);
+ if(SfxItemState::DEFAULT <= aState)
{
- pRet->Put(std::unique_ptr<SfxPoolItem>(pItem->Clone()));
+ pRet->Put(*aResult.getItem()); // allow share/refcounting
+ // pRet->Put(std::unique_ptr<SfxPoolItem>(aResult.getItem()->Clone()));
}
else
{
@@ -1147,9 +1503,9 @@ std::optional<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId )
svl::Items<
//SID_OPTIONS_START - ..END
SID_SAVEREL_INET, SID_SAVEREL_FSYS,
- SID_INET_NOPROXY, SID_INET_FTP_PROXY_PORT,
+ SID_INET_NOPROXY, SID_INET_HTTP_PROXY_PORT,
SID_SECURE_URL, SID_SECURE_URL> );
- SfxGetpApp()->GetOptions(*pRet);
+ SfxApplication::GetOptions(*pRet);
break;
case SID_FILTER_DLG:
pRet.emplace(
@@ -1159,7 +1515,7 @@ std::optional<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId )
SID_ATTR_DOCINFO, SID_ATTR_AUTOSAVEMINUTE,
SID_SAVEREL_INET, SID_SAVEREL_FSYS,
SID_ATTR_PRETTYPRINTING, SID_ATTR_PRETTYPRINTING> );
- SfxGetpApp()->GetOptions(*pRet);
+ SfxApplication::GetOptions(*pRet);
break;
case SID_SB_STARBASEOPTIONS:
@@ -1171,9 +1527,8 @@ std::optional<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId )
case SID_SCH_EDITOPTIONS:
{
- SvxChartOptions aChartOpt;
pRet.emplace( SfxGetpApp()->GetPool(), svl::Items<SID_SCH_EDITOPTIONS, SID_SCH_EDITOPTIONS> );
- pRet->Put( SvxChartColorTableItem( SID_SCH_EDITOPTIONS, aChartOpt.GetDefaultColors() ) );
+ pRet->Put( SvxChartColorTableItem( SID_SCH_EDITOPTIONS, SvxChartOptions::GetDefaultColors() ) );
break;
}
}
@@ -1188,36 +1543,35 @@ void OfaTreeOptionsDialog::ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet
{
std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
- const SfxPoolItem* pItem = nullptr;
SfxItemSetFixed<SID_ATTR_QUICKLAUNCHER, SID_ATTR_QUICKLAUNCHER> aOptSet(SfxGetpApp()->GetPool());
aOptSet.Put(rSet);
if(aOptSet.Count())
- SfxGetpApp()->SetOptions( aOptSet );
+ SfxApplication::SetOptions( aOptSet );
// get dispatcher anew, because SetOptions() might have destroyed the dispatcher
SfxViewFrame *pViewFrame = SfxViewFrame::Current();
// evaluate Year2000
sal_uInt16 nY2K = USHRT_MAX;
- if( SfxItemState::SET == rSet.GetItemState( SID_ATTR_YEAR2000, false, &pItem ) )
- nY2K = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ const SfxUInt16Item* pYearItem = rSet.GetItemIfSet( SID_ATTR_YEAR2000, false );
+ if( pYearItem )
+ nY2K = pYearItem->GetValue();
if( USHRT_MAX != nY2K )
{
if ( pViewFrame )
{
SfxDispatcher* pDispatch = pViewFrame->GetDispatcher();
pDispatch->ExecuteList(SID_ATTR_YEAR2000,
- SfxCallMode::ASYNCHRON, { pItem });
+ SfxCallMode::ASYNCHRON, { pYearItem });
}
officecfg::Office::Common::DateFormat::TwoDigitYear::set(nY2K, batch);
}
// evaluate print
- if(SfxItemState::SET == rSet.GetItemState(SID_PRINTER_NOTFOUND_WARN, false, &pItem))
- officecfg::Office::Common::Print::Warning::NotFound::set(static_cast<const SfxBoolItem*>(pItem)->GetValue(), batch);
+ if(const SfxBoolItem* pWarnItem = rSet.GetItemIfSet(SID_PRINTER_NOTFOUND_WARN, false))
+ officecfg::Office::Common::Print::Warning::NotFound::set(pWarnItem->GetValue(), batch);
- if(SfxItemState::SET == rSet.GetItemState(SID_PRINTER_CHANGESTODOC, false, &pItem))
+ if(const SfxFlagItem* pFlag = rSet.GetItemIfSet(SID_PRINTER_CHANGESTODOC, false))
{
- const SfxFlagItem* pFlag = static_cast<const SfxFlagItem*>(pItem);
bool bPaperSizeWarning = bool(static_cast<SfxPrinterChangeFlags>(pFlag->GetValue()) & SfxPrinterChangeFlags::CHG_SIZE);
officecfg::Office::Common::Print::Warning::PaperSize::set(bPaperSizeWarning, batch);
bool bPaperOrientationWarning = bool(static_cast<SfxPrinterChangeFlags>(pFlag->GetValue()) & SfxPrinterChangeFlags::CHG_ORIENTATION);
@@ -1242,7 +1596,7 @@ void OfaTreeOptionsDialog::ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet
break;
case SID_INET_DLG :
case SID_FILTER_DLG:
- SfxGetpApp()->SetOptions( rSet );
+ SfxApplication::SetOptions( rSet );
break;
case SID_SB_STARBASEOPTIONS:
@@ -1256,7 +1610,7 @@ void OfaTreeOptionsDialog::ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet
default:
{
- OSL_FAIL( "Unhandled option in ApplyItemSet" );
+ SAL_WARN("cui.options", "Unhandled option in ApplyItemSet");
}
break;
}
@@ -1269,10 +1623,8 @@ void OfaTreeOptionsDialog::ApplyLanguageOptions(const SfxItemSet& rSet)
Reference< XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
Reference< XLinguProperties > xProp = LinguProperties::create( xContext );
- if ( SfxItemState::SET == rSet.GetItemState(SID_ATTR_HYPHENREGION, false, &pItem ) )
+ if ( const SfxHyphenRegionItem* pHyphenItem = rSet.GetItemIfSet(SID_ATTR_HYPHENREGION, false ) )
{
- const SfxHyphenRegionItem* pHyphenItem = static_cast<const SfxHyphenRegionItem*>(pItem);
-
xProp->setHyphMinLeading( static_cast<sal_Int16>(pHyphenItem->GetMinLead()) );
xProp->setHyphMinTrailing( static_cast<sal_Int16>(pHyphenItem->GetMinTrail()) );
bSaveSpellCheck = true;
@@ -1328,7 +1680,7 @@ void OfaTreeOptionsDialog::ApplyLanguageOptions(const SfxItemSet& rSet)
}
}
-static OUString getCurrentFactory_Impl( const Reference< XFrame >& _xFrame )
+OUString OfaTreeOptionsDialog::getCurrentFactory_Impl( const Reference< XFrame >& _xFrame )
{
OUString sIdentifier;
Reference < XFrame > xCurrentFrame( _xFrame );
@@ -1358,19 +1710,17 @@ static OUString getCurrentFactory_Impl( const Reference< XFrame >& _xFrame )
return sIdentifier;
}
-void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
+void OfaTreeOptionsDialog::generalOptions(const std::vector<sal_uInt16>& vPageId)
{
sal_uInt16 nGroup = 0;
-
SvtOptionsDialogOptions aOptionsDlgOpt;
- sal_uInt16 nPageId;
+ sal_uInt16 nPageId = 0;
- // %PRODUCTNAME options
if ( !lcl_isOptionHidden( SID_GENERAL_OPTIONS, aOptionsDlgOpt ) )
{
setGroupName(u"ProductName", CuiResId(SID_GENERAL_OPTIONS_RES[0].first));
nGroup = AddGroup(CuiResId(SID_GENERAL_OPTIONS_RES[0].first), nullptr, nullptr, SID_GENERAL_OPTIONS );
- const sal_uInt16 nEnd = static_cast<sal_uInt16>(SAL_N_ELEMENTS(SID_GENERAL_OPTIONS_RES));
+ const sal_uInt16 nEnd = static_cast<sal_uInt16>(std::size(SID_GENERAL_OPTIONS_RES));
for (sal_uInt16 i = 1; i < nEnd; ++i)
{
@@ -1379,67 +1729,101 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
continue;
- // Disable Online Update page if service not installed
- if( RID_SVXPAGE_ONLINEUPDATE == nPageId )
+ // Disable Online Update page if neither mode is available
+ if( RID_SVXPAGE_ONLINEUPDATE == nPageId
+ && !(SvxOnlineUpdateTabPage::isTraditionalOnlineUpdateAvailable()
+ || SvxOnlineUpdateTabPage::isMarOnlineUpdateAvailable()) )
{
- try
- {
- Reference < XInterface > xService( setup::UpdateCheck::create( ::comphelper::getProcessComponentContext() ) );
- if( ! xService.is() )
- continue;
- }
- catch ( css::uno::DeploymentException& )
- {
- continue;
- }
+ continue;
}
- // Disable Basic IDE options, if experimental features are not enabled
- if( RID_SVXPAGE_BASICIDE_OPTIONS == nPageId )
+ if (!vPageId.empty())
{
- if( ! officecfg::Office::Common::Misc::ExperimentalMode::get() )
- continue;
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, sNewTitle, nGroup);
}
-
- AddTabPage( nPageId, sNewTitle, nGroup );
+ else
+ AddTabPage(nPageId, sNewTitle, nGroup);
}
}
+}
+
+void OfaTreeOptionsDialog::loadAndSaveOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
- // Load and Save options
if ( !lcl_isOptionHidden( SID_FILTER_DLG, aOptionsDlgOpt ) )
{
setGroupName( u"LoadSave", CuiResId(SID_FILTER_DLG_RES[0].first) );
nGroup = AddGroup( CuiResId(SID_FILTER_DLG_RES[0].first), nullptr, nullptr, SID_FILTER_DLG );
- for ( size_t i = 1; i < SAL_N_ELEMENTS(SID_FILTER_DLG_RES); ++i )
+ for ( size_t i = 1; i < std::size(SID_FILTER_DLG_RES); ++i )
{
nPageId = static_cast<sal_uInt16>(SID_FILTER_DLG_RES[i].second);
if ( !lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
- AddTabPage( nPageId, CuiResId(SID_FILTER_DLG_RES[i].first), nGroup );
+ {
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_FILTER_DLG_RES[i].first), nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_FILTER_DLG_RES[i].first), nGroup);
+ }
}
}
+}
+
+void OfaTreeOptionsDialog::languageOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
- // Language options
SvtCTLOptions aCTLLanguageOptions;
if ( !lcl_isOptionHidden( SID_LANGUAGE_OPTIONS, aOptionsDlgOpt ) )
{
setGroupName(u"LanguageSettings", CuiResId(SID_LANGUAGE_OPTIONS_RES[0].first));
nGroup = AddGroup(CuiResId(SID_LANGUAGE_OPTIONS_RES[0].first), nullptr, nullptr, SID_LANGUAGE_OPTIONS );
- for (size_t i = 1; i < SAL_N_ELEMENTS(SID_LANGUAGE_OPTIONS_RES); ++i)
+ for (size_t i = 1; i < std::size(SID_LANGUAGE_OPTIONS_RES); ++i)
{
nPageId = static_cast<sal_uInt16>(SID_LANGUAGE_OPTIONS_RES[i].second);
if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
continue;
+
+ // Disable DeepL translation settings, if experimental mode is not enabled
+ if( RID_SVXPAGE_DEEPL_OPTIONS == nPageId )
+ {
+ if( ! officecfg::Office::Common::Misc::ExperimentalMode::get() )
+ continue;
+ }
+
if ( ( RID_SVXPAGE_JSEARCH_OPTIONS != nPageId || SvtCJKOptions::IsJapaneseFindEnabled() ) &&
( RID_SVXPAGE_ASIAN_LAYOUT != nPageId || SvtCJKOptions::IsAsianTypographyEnabled() ) &&
- ( RID_SVXPAGE_OPTIONS_CTL != nPageId || aCTLLanguageOptions.IsCTLFontEnabled() ) )
- AddTabPage(nPageId, CuiResId(SID_LANGUAGE_OPTIONS_RES[i].first), nGroup);
+ ( RID_SVXPAGE_OPTIONS_CTL != nPageId || SvtCTLOptions::IsCTLFontEnabled() ) )
+ {
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_LANGUAGE_OPTIONS_RES[i].first), nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_LANGUAGE_OPTIONS_RES[i].first), nGroup);
+ }
}
}
+}
+
+void OfaTreeOptionsDialog::writerOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
- OUString aFactory = getCurrentFactory_Impl( _xFrame );
- DBG_ASSERT( GetModuleIdentifier( _xFrame ) == aFactory, "S H I T!!!" );
+ OUString aFactory = getCurrentFactory_Impl( m_xFrame );
+ DBG_ASSERT( GetModuleIdentifier( m_xFrame ) == aFactory, "This should not happen" );
- // Writer and Writer/Web options
SvtModuleOptions aModuleOpt;
if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
{
@@ -1456,38 +1840,105 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
else
setGroupName( u"Writer", CuiResId(SID_SW_EDITOPTIONS_RES[0].first) );
nGroup = AddGroup(CuiResId(SID_SW_EDITOPTIONS_RES[0].first), pSwMod, pSwMod, SID_SW_EDITOPTIONS );
- for ( size_t i = 1; i < SAL_N_ELEMENTS(SID_SW_EDITOPTIONS_RES); ++i )
+ SvtCTLOptions aCTLLanguageOptions;
+ for ( size_t i = 1; i < std::size(SID_SW_EDITOPTIONS_RES); ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SW_EDITOPTIONS_RES[i].second);
if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
continue;
if ( ( RID_SW_TP_STD_FONT_CJK != nPageId || SvtCJKOptions::IsCJKFontEnabled() ) &&
- ( RID_SW_TP_STD_FONT_CTL != nPageId || aCTLLanguageOptions.IsCTLFontEnabled() ) &&
- ( RID_SW_TP_MAILCONFIG != nPageId || MailMergeCfg_Impl().IsEmailSupported() ) )
- AddTabPage( nPageId, CuiResId(SID_SW_EDITOPTIONS_RES[i].first), nGroup );
+ ( RID_SW_TP_STD_FONT_CTL != nPageId || SvtCTLOptions::IsCTLFontEnabled() ) &&
+ ( RID_SW_TP_MAILCONFIG != nPageId || MailMergeCfgIsEmailSupported() ) )
+ {
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SW_EDITOPTIONS_RES[i].first),
+ nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SW_EDITOPTIONS_RES[i].first), nGroup);
+ }
}
#ifdef DBG_UTIL
- AddTabPage( RID_SW_TP_OPTTEST_PAGE, "Internal Test", nGroup );
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), RID_SW_TP_OPTTEST_PAGE)
+ != vPageId.end())
+ AddTabPage(RID_SW_TP_OPTTEST_PAGE, u"Internal Test"_ustr, nGroup);
+ }
+ else
+ AddTabPage(RID_SW_TP_OPTTEST_PAGE, u"Internal Test"_ustr, nGroup);
#endif
}
+ }
+ }
+}
+
+void OfaTreeOptionsDialog::writerWebOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
+
+ OUString aFactory = getCurrentFactory_Impl( m_xFrame );
+ DBG_ASSERT( GetModuleIdentifier( m_xFrame ) == aFactory, "This should not happen" );
+
+ SvtModuleOptions aModuleOpt;
+ if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::WRITER ) )
+ {
+ // text document
+ if ( aFactory == "com.sun.star.text.TextDocument"
+ || aFactory == "com.sun.star.text.WebDocument"
+ || aFactory == "com.sun.star.text.GlobalDocument" )
+ {
+ SfxModule* pSwMod = SfxApplication::GetModule(SfxToolsModule::Writer);
// HTML documents
if ( !lcl_isOptionHidden( SID_SW_ONLINEOPTIONS, aOptionsDlgOpt ) )
{
nGroup = AddGroup(CuiResId(SID_SW_ONLINEOPTIONS_RES[0].first), pSwMod, pSwMod, SID_SW_ONLINEOPTIONS );
- for( size_t i = 1; i < SAL_N_ELEMENTS(SID_SW_ONLINEOPTIONS_RES); ++i )
+ for( size_t i = 1; i < std::size(SID_SW_ONLINEOPTIONS_RES); ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SW_ONLINEOPTIONS_RES[i].second);
if ( !lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
- AddTabPage(nPageId, CuiResId(SID_SW_ONLINEOPTIONS_RES[i].first), nGroup);
+ {
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SW_ONLINEOPTIONS_RES[i].first),
+ nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SW_ONLINEOPTIONS_RES[i].first),
+ nGroup);
+ }
}
#ifdef DBG_UTIL
- AddTabPage( RID_SW_TP_OPTTEST_PAGE, "Internal Test", nGroup );
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), RID_SW_TP_OPTTEST_PAGE)
+ != vPageId.end())
+ AddTabPage(RID_SW_TP_OPTTEST_PAGE, u"Internal Test"_ustr, nGroup);
+ }
+ else
+ AddTabPage(RID_SW_TP_OPTTEST_PAGE, u"Internal Test"_ustr, nGroup);
#endif
}
}
}
+}
+
+void OfaTreeOptionsDialog::calcOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
+
+ OUString aFactory = getCurrentFactory_Impl( m_xFrame );
+ DBG_ASSERT( GetModuleIdentifier( m_xFrame ) == aFactory, "This should not happen" );
+ SvtModuleOptions aModuleOpt;
// Calc options
if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::CALC ) )
{
@@ -1498,18 +1949,35 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
SfxModule* pScMod = SfxApplication::GetModule( SfxToolsModule::Calc );
setGroupName( u"Calc", CuiResId(SID_SC_EDITOPTIONS_RES[0].first) );
nGroup = AddGroup( CuiResId(SID_SC_EDITOPTIONS_RES[0].first), pScMod, pScMod, SID_SC_EDITOPTIONS );
- const sal_uInt16 nCount = static_cast<sal_uInt16>(SAL_N_ELEMENTS(SID_SC_EDITOPTIONS_RES));
+ const sal_uInt16 nCount = static_cast<sal_uInt16>(std::size(SID_SC_EDITOPTIONS_RES));
for ( sal_uInt16 i = 1; i < nCount; ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SC_EDITOPTIONS_RES[i].second);
if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
continue;
- AddTabPage( nPageId, CuiResId(SID_SC_EDITOPTIONS_RES[i].first), nGroup );
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SC_EDITOPTIONS_RES[i].first), nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SC_EDITOPTIONS_RES[i].first), nGroup);
}
}
}
}
+}
+
+void OfaTreeOptionsDialog::impressOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
+
+ OUString aFactory = getCurrentFactory_Impl( m_xFrame );
+ DBG_ASSERT( GetModuleIdentifier( m_xFrame ) == aFactory, "This should not happen" );
+ SvtModuleOptions aModuleOpt;
// Impress options
SfxModule* pSdMod = SfxApplication::GetModule( SfxToolsModule::Draw );
@@ -1521,20 +1989,38 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
{
setGroupName( u"Impress", CuiResId(SID_SD_EDITOPTIONS_RES[0].first) );
nGroup = AddGroup( CuiResId(SID_SD_EDITOPTIONS_RES[0].first), pSdMod, pSdMod, SID_SD_EDITOPTIONS );
- const sal_uInt16 nCount = static_cast<sal_uInt16>(SAL_N_ELEMENTS(SID_SD_EDITOPTIONS_RES));
+ const sal_uInt16 nCount = static_cast<sal_uInt16>(std::size(SID_SD_EDITOPTIONS_RES));
for ( sal_uInt16 i = 1; i < nCount; ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SD_EDITOPTIONS_RES[i].second);
if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
continue;
- AddTabPage( nPageId, CuiResId(SID_SD_EDITOPTIONS_RES[i].first), nGroup );
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SD_EDITOPTIONS_RES[i].first), nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SD_EDITOPTIONS_RES[i].first), nGroup);
}
}
}
}
+}
+
+void OfaTreeOptionsDialog::drawOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
+
+ OUString aFactory = getCurrentFactory_Impl( m_xFrame );
+ DBG_ASSERT( GetModuleIdentifier( m_xFrame ) == aFactory, "This should not happen" );
+ SvtModuleOptions aModuleOpt;
// Draw options
+ SfxModule* pSdMod = SfxApplication::GetModule(SfxToolsModule::Draw);
if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::DRAW ) )
{
if ( aFactory == "com.sun.star.drawing.DrawingDocument" )
@@ -1543,18 +2029,36 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
{
setGroupName( u"Draw", CuiResId(SID_SD_GRAPHIC_OPTIONS_RES[0].first) );
nGroup = AddGroup( CuiResId(SID_SD_GRAPHIC_OPTIONS_RES[0].first), pSdMod, pSdMod, SID_SD_GRAPHIC_OPTIONS );
- const sal_uInt16 nCount = static_cast<sal_uInt16>(SAL_N_ELEMENTS(SID_SD_GRAPHIC_OPTIONS_RES));
+ const sal_uInt16 nCount = static_cast<sal_uInt16>(std::size(SID_SD_GRAPHIC_OPTIONS_RES));
for ( sal_uInt16 i = 1; i < nCount; ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SD_GRAPHIC_OPTIONS_RES[i].second);
if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
continue;
- AddTabPage( nPageId, CuiResId(SID_SD_GRAPHIC_OPTIONS_RES[i].first), nGroup );
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SD_GRAPHIC_OPTIONS_RES[i].first),
+ nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SD_GRAPHIC_OPTIONS_RES[i].first), nGroup);
}
}
}
}
+}
+
+void OfaTreeOptionsDialog::mathOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
+
+ OUString aFactory = getCurrentFactory_Impl( m_xFrame );
+ DBG_ASSERT( GetModuleIdentifier( m_xFrame ) == aFactory, "This should not happen" );
+ SvtModuleOptions aModuleOpt;
// Math options
if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::EModule::MATH ) )
@@ -1566,15 +2070,33 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
SfxModule* pSmMod = SfxApplication::GetModule(SfxToolsModule::Math);
setGroupName( u"Math", CuiResId(SID_SM_EDITOPTIONS_RES[0].first) );
nGroup = AddGroup(CuiResId(SID_SM_EDITOPTIONS_RES[0].first), pSmMod, pSmMod, SID_SM_EDITOPTIONS );
- for ( size_t i = 1; i < SAL_N_ELEMENTS(SID_SM_EDITOPTIONS_RES); ++i )
+ for ( size_t i = 1; i < std::size(SID_SM_EDITOPTIONS_RES); ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SM_EDITOPTIONS_RES[i].second);
if ( !lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
- AddTabPage( nPageId, CuiResId(SID_SM_EDITOPTIONS_RES[i].first), nGroup );
+ {
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SM_EDITOPTIONS_RES[i].first),
+ nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SM_EDITOPTIONS_RES[i].first), nGroup);
+ }
}
}
}
}
+}
+
+void OfaTreeOptionsDialog::databaseOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
+
+ SvtModuleOptions aModuleOpt;
// Database - needed only if there is an application which integrates with databases
if ( !lcl_isOptionHidden( SID_SB_STARBASEOPTIONS, aOptionsDlgOpt ) &&
@@ -1585,35 +2107,63 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
{
setGroupName( u"Base", CuiResId(SID_SB_STARBASEOPTIONS_RES[0].first) );
nGroup = AddGroup( CuiResId(SID_SB_STARBASEOPTIONS_RES[0].first), nullptr, nullptr, SID_SB_STARBASEOPTIONS );
- for ( size_t i = 1; i < SAL_N_ELEMENTS(SID_SB_STARBASEOPTIONS_RES); ++i )
+ for ( size_t i = 1; i < std::size(SID_SB_STARBASEOPTIONS_RES); ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SB_STARBASEOPTIONS_RES[i].second);
if ( !lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
- AddTabPage( nPageId, CuiResId(SID_SB_STARBASEOPTIONS_RES[i].first), nGroup );
+ {
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SB_STARBASEOPTIONS_RES[i].first), nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SB_STARBASEOPTIONS_RES[i].first), nGroup);
+ }
}
}
+}
+
+void OfaTreeOptionsDialog::chartOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
- // Chart options (always installed and active)
if ( !lcl_isOptionHidden( SID_SCH_EDITOPTIONS, aOptionsDlgOpt ) )
{
setGroupName( u"Charts", CuiResId(SID_SCH_EDITOPTIONS_RES[0].first) );
nGroup = AddGroup( CuiResId(SID_SCH_EDITOPTIONS_RES[0].first), nullptr, nullptr, SID_SCH_EDITOPTIONS );
- for ( size_t i = 1; i < SAL_N_ELEMENTS(SID_SCH_EDITOPTIONS_RES); ++i )
+ for ( size_t i = 1; i < std::size(SID_SCH_EDITOPTIONS_RES); ++i )
{
nPageId = static_cast<sal_uInt16>(SID_SCH_EDITOPTIONS_RES[i].second);
if ( !lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
- AddTabPage( nPageId, CuiResId(SID_SCH_EDITOPTIONS_RES[i].first), nGroup );
+ {
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_SCH_EDITOPTIONS_RES[i].first), nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_SCH_EDITOPTIONS_RES[i].first), nGroup);
+ }
}
}
+}
+
+void OfaTreeOptionsDialog::internetOptions(const std::vector<sal_uInt16>& vPageId)
+{
+ sal_uInt16 nGroup = 0;
+ SvtOptionsDialogOptions aOptionsDlgOpt;
+ sal_uInt16 nPageId = 0;
- // Internet options
if ( lcl_isOptionHidden( SID_INET_DLG, aOptionsDlgOpt ) )
return;
setGroupName(u"Internet", CuiResId(SID_INET_DLG_RES[0].first));
nGroup = AddGroup(CuiResId(SID_INET_DLG_RES[0].first), nullptr, nullptr, SID_INET_DLG );
- for ( size_t i = 1; i < SAL_N_ELEMENTS(SID_INET_DLG_RES); ++i )
+ for ( size_t i = 1; i < std::size(SID_INET_DLG_RES); ++i )
{
nPageId = static_cast<sal_uInt16>(SID_INET_DLG_RES[i].second);
if ( lcl_isOptionHidden( nPageId, aOptionsDlgOpt ) )
@@ -1623,33 +2173,82 @@ void OfaTreeOptionsDialog::Initialize( const Reference< XFrame >& _xFrame )
if ( nPageId == RID_SVXPAGE_INET_MAIL )
continue;
#endif
- AddTabPage( nPageId, CuiResId(SID_INET_DLG_RES[i].first), nGroup );
+ if (!vPageId.empty())
+ {
+ if (std::find(vPageId.begin(), vPageId.end(), nPageId) != vPageId.end())
+ AddTabPage(nPageId, CuiResId(SID_INET_DLG_RES[i].first), nGroup);
+ }
+ else
+ AddTabPage(nPageId, CuiResId(SID_INET_DLG_RES[i].first), nGroup);
}
}
+void OfaTreeOptionsDialog::Initialize(const Reference<XFrame>& _xFrame)
+{
+ m_xFrame = _xFrame;
+
+ // %PRODUCTNAME options
+ generalOptions();
+
+ // Load and Save options
+ loadAndSaveOptions();
+
+ // Language options
+ languageOptions();
+
+ // Writer and Writer/Web options
+ writerOptions();
+ writerWebOptions();
+
+ // Calc options
+ calcOptions();
+
+ // Impress options
+ impressOptions();
+
+ // Draw options
+ drawOptions();
+
+ // Math options
+ mathOptions();
+
+ // Database - needed only if there is an application which integrates with databases
+ databaseOptions();
+
+ // Chart options (always installed and active)
+ chartOptions();
+
+ // Internet options
+ internetOptions();
+
+ // store Options Dialogs with their page names and strings
+ // in order to use them when searching
+ storeOptionsTree();
+}
+
static bool isNodeActive( OptionsNode const * pNode, Module* pModule )
{
- if ( pNode )
- {
- // Node for all modules active?
- if ( pNode->m_bAllModules )
- return true;
+ if ( !pNode )
+ return false;
- // OOo-Nodes (Writer, Calc, Impress...) are active if node is already inserted
- if ( !getGroupName( pNode->m_sId, false ).isEmpty() )
- return true;
+ // Node for all modules active?
+ if ( pNode->m_bAllModules )
+ return true;
- // no module -> not active
- if ( !pModule )
- return false;
+ // OOo-Nodes (Writer, Calc, Impress...) are active if node is already inserted
+ if ( !getGroupName( pNode->m_sId, false ).isEmpty() )
+ return true;
- // search node in active module
- if ( pModule->m_bActive )
- {
- for (auto const& j : pModule->m_aNodeList)
- if ( j->m_sId == pNode->m_sId )
- return true;
- }
+ // no module -> not active
+ if ( !pModule )
+ return false;
+
+ // search node in active module
+ if ( pModule->m_bActive )
+ {
+ for (auto const& j : pModule->m_aNodeList)
+ if ( j->m_sId == pNode->m_sId )
+ return true;
}
return false;
}
@@ -1721,7 +2320,7 @@ std::unique_ptr<Module> OfaTreeOptionsDialog::LoadModule(
{
// load the nodes of this module
Reference< XNameAccess > xNodeAccess;
- xModAccess->getByName( "Nodes" ) >>= xNodeAccess;
+ xModAccess->getByName( u"Nodes"_ustr ) >>= xNodeAccess;
if ( xNodeAccess.is() )
{
const Sequence< OUString > xTemp = xNodeAccess->getElementNames();
@@ -1732,7 +2331,7 @@ std::unique_ptr<Module> OfaTreeOptionsDialog::LoadModule(
xNodeAccess->getByName( rNode ) >>= xAccess;
if ( xAccess.is() )
{
- xAccess->getByName( "Index" ) >>= nIndex;
+ xAccess->getByName( u"Index"_ustr ) >>= nIndex;
if ( nIndex < 0 )
// append nodes with index < 0
pModule->m_aNodeList.push_back(
@@ -1783,9 +2382,9 @@ VectorOfNodes OfaTreeOptionsDialog::LoadNodes(
bool bAllModules = false;
sNodeId = sGroupName;
- xNodeAccess->getByName( "Label" ) >>= sLabel;
- xNodeAccess->getByName( "OptionsPage" ) >>= sPageURL;
- xNodeAccess->getByName( "AllModules" ) >>= bAllModules;
+ xNodeAccess->getByName( u"Label"_ustr ) >>= sLabel;
+ xNodeAccess->getByName( u"OptionsPage"_ustr ) >>= sPageURL;
+ xNodeAccess->getByName( u"AllModules"_ustr ) >>= bAllModules;
if ( sLabel.isEmpty() )
sLabel = sGroupName;
@@ -1800,7 +2399,7 @@ VectorOfNodes OfaTreeOptionsDialog::LoadNodes(
}
Reference< XNameAccess > xLeavesSet;
- xNodeAccess->getByName( "Leaves" ) >>= xLeavesSet;
+ xNodeAccess->getByName( u"Leaves"_ustr ) >>= xLeavesSet;
if ( xLeavesSet.is() )
{
const Sequence< OUString > seqLeaves = xLeavesSet->getElementNames();
@@ -1814,12 +2413,12 @@ VectorOfNodes OfaTreeOptionsDialog::LoadNodes(
OUString sId, sLeafLabel, sEventHdl, sLeafURL, sLeafGrpId;
sal_Int32 nLeafGrpIdx = 0;
- xLeaveAccess->getByName( "Id" ) >>= sId;
- xLeaveAccess->getByName( "Label" ) >>= sLeafLabel;
- xLeaveAccess->getByName( "OptionsPage" ) >>= sLeafURL;
- xLeaveAccess->getByName( "EventHandlerService" ) >>= sEventHdl;
- xLeaveAccess->getByName( "GroupId" ) >>= sLeafGrpId;
- xLeaveAccess->getByName( "GroupIndex" ) >>= nLeafGrpIdx;
+ xLeaveAccess->getByName( u"Id"_ustr ) >>= sId;
+ xLeaveAccess->getByName( u"Label"_ustr ) >>= sLeafLabel;
+ xLeaveAccess->getByName( u"OptionsPage"_ustr ) >>= sLeafURL;
+ xLeaveAccess->getByName( u"EventHandlerService"_ustr ) >>= sEventHdl;
+ xLeaveAccess->getByName( u"GroupId"_ustr ) >>= sLeafGrpId;
+ xLeaveAccess->getByName( u"GroupIndex"_ustr ) >>= nLeafGrpIdx;
if ( rExtensionId.empty() || sId == rExtensionId )
{
@@ -1961,8 +2560,7 @@ short OfaTreeOptionsDialog::run()
if ( !bIsFromExtensionManager )
{
// collect all DictionaryList Events while the dialog is executed
- Reference<css::linguistic2::XSearchableDictionaryList> xDictionaryList(LinguMgr::GetDictionaryList());
- pClamp.reset( new SvxDicListChgClamp( xDictionaryList ) );
+ pClamp.reset(new SvxDicListChgClamp(LinguMgr::GetDictionaryList()));
}
return SfxOkDialogController::run();
@@ -1970,11 +2568,11 @@ short OfaTreeOptionsDialog::run()
// class ExtensionsTabPage -----------------------------------------------
ExtensionsTabPage::ExtensionsTabPage(
- weld::Container* pParent, const OUString& rPageURL,
- const OUString& rEvtHdl, const Reference< awt::XContainerWindowProvider >& rProvider )
+ weld::Container* pParent, OUString aPageURL,
+ OUString aEvtHdl, const Reference< awt::XContainerWindowProvider >& rProvider )
: m_pContainer(pParent)
- , m_sPageURL(rPageURL)
- , m_sEventHdl(rEvtHdl)
+ , m_sPageURL(std::move(aPageURL))
+ , m_sEventHdl(std::move(aEvtHdl))
, m_xWinProvider(rProvider)
{
}
@@ -2054,7 +2652,7 @@ bool ExtensionsTabPage::DispatchAction( const OUString& rAction )
{
try
{
- bRet = m_xEventHdl->callHandlerMethod( m_xPage, Any( rAction ), "external_event" );
+ bRet = m_xEventHdl->callHandlerMethod( m_xPage, Any( rAction ), u"external_event"_ustr );
}
catch ( Exception const & )
{
@@ -2098,7 +2696,7 @@ void ExtensionsTabPage::ActivatePage()
auto aWindowRect = m_xPageParent->getPosSize();
m_xPage->setPosSize(0, 0, aWindowRect.Width, aWindowRect.Height, awt::PosSize::POSSIZE);
if ( !m_sEventHdl.isEmpty() )
- DispatchAction( "initialize" );
+ DispatchAction( u"initialize"_ustr );
}
}
@@ -2116,13 +2714,13 @@ void ExtensionsTabPage::DeactivatePage()
void ExtensionsTabPage::ResetPage()
{
- DispatchAction( "back" );
+ DispatchAction( u"back"_ustr );
ActivatePage();
}
void ExtensionsTabPage::SavePage()
{
- DispatchAction( "ok" );
+ DispatchAction( u"ok"_ustr );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/treeopthelper.cxx b/cui/source/options/treeopthelper.cxx
new file mode 100644
index 000000000000..b644a96da14c
--- /dev/null
+++ b/cui/source/options/treeopthelper.cxx
@@ -0,0 +1,184 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <fstream>
+#include <treeopt.hxx>
+
+#include <treeopt.hrc>
+#include <helpids.h>
+#include <svx/dialogs.hrc>
+#include <svx/svxids.hrc>
+
+namespace
+{
+struct PageIdToFileNameMap_Impl
+{
+ sal_uInt16 m_nPageId;
+ OUString m_sContent;
+};
+}
+
+static PageIdToFileNameMap_Impl FileMap_Impl[] = {
+
+ // { PAGE-ID, CONTENT },
+
+ // ProductName, SID_GENERAL_OPTIONS
+ { RID_SFXPAGE_GENERAL, u""_ustr }, // UserData
+
+ { OFA_TP_MISC, u""_ustr }, // General
+
+ { OFA_TP_VIEW, u""_ustr }, // View
+
+ { RID_SFXPAGE_PRINTOPTIONS, u""_ustr }, // Print
+
+ { RID_SFXPAGE_PATH, u""_ustr }, // Paths
+
+ { RID_SVX_FONT_SUBSTITUTION, u""_ustr }, // Fonts
+
+ { RID_SVXPAGE_INET_SECURITY, u""_ustr }, // Security
+
+ { RID_SVXPAGE_PERSONALIZATION, u""_ustr }, // Personalization
+ { RID_SVXPAGE_COLORCONFIG, u""_ustr }, // ApplicationColors
+ { RID_SVXPAGE_ACCESSIBILITYCONFIG, u""_ustr }, // Accessibility
+ { RID_SVXPAGE_OPTIONS_JAVA, u""_ustr }, // Java
+ { RID_SVXPAGE_BASICIDE_OPTIONS, u""_ustr }, // BasicIDEOptions
+ { RID_SVXPAGE_ONLINEUPDATE, u""_ustr }, // OnlineUpdate
+ { RID_SVXPAGE_OPENCL, u""_ustr }, // OpenCL
+
+ // LanguageSettings, SID_LANGUAGE_OPTIONS
+ { OFA_TP_LANGUAGES, u""_ustr }, // Languages
+ { RID_SFXPAGE_LINGU, u""_ustr }, // WritingAids
+ { RID_SVXPAGE_JSEARCH_OPTIONS, u""_ustr }, // SearchingInJapanese
+ { RID_SVXPAGE_ASIAN_LAYOUT, u""_ustr }, // AsianLayout
+ { RID_SVXPAGE_OPTIONS_CTL, u""_ustr }, // ComplexTextLayout
+ { RID_SVXPAGE_LANGTOOL_OPTIONS, u""_ustr }, // LanguageTool Server
+ { RID_SVXPAGE_DEEPL_OPTIONS, u""_ustr }, // DeepL Server
+
+ // Internet, SID_INET_DLG
+ { RID_SVXPAGE_INET_PROXY, u""_ustr }, // Proxy
+ { RID_SVXPAGE_INET_MAIL, u""_ustr }, // Email
+
+ // Load/Save, SID_FILTER_DLG
+ { RID_SFXPAGE_SAVE, u""_ustr }, // General
+ { SID_OPTFILTER_MSOFFICE, u""_ustr }, // VBA Properties
+ { RID_OFAPAGE_MSFILTEROPT2, u""_ustr }, // Microsoft Office
+ { RID_OFAPAGE_HTMLOPT, u""_ustr }, // HTML Compatibility
+
+ // Writer, SID_SW_EDITOPTIONS
+ { RID_SW_TP_OPTLOAD_PAGE, u""_ustr }, // General
+ { RID_SW_TP_CONTENT_OPT, u""_ustr }, // View
+ { RID_SW_TP_OPTSHDWCRSR, u""_ustr }, // FormattingAids
+ { RID_SVXPAGE_GRID, u""_ustr }, // Grid
+ { RID_SW_TP_STD_FONT, u""_ustr }, // BasicFontsWestern
+ { RID_SW_TP_STD_FONT_CJK, u""_ustr }, // BasicFontsAsian
+ { RID_SW_TP_STD_FONT_CTL, u""_ustr }, // BasicFontsCTL
+ { RID_SW_TP_OPTPRINT_PAGE, u""_ustr }, // Print
+ { RID_SW_TP_OPTTABLE_PAGE, u""_ustr }, // Table
+ { RID_SW_TP_REDLINE_OPT, u""_ustr }, // Changes
+ { RID_SW_TP_COMPARISON_OPT, u""_ustr }, // Comparison
+ { RID_SW_TP_OPTCOMPATIBILITY_PAGE, u""_ustr }, // Compatibility
+ { RID_SW_TP_OPTCAPTION_PAGE, u""_ustr }, // AutoCaption
+ { RID_SW_TP_MAILCONFIG, u""_ustr }, // MailMerge
+ { RID_SW_TP_OPTTEST_PAGE, u""_ustr }, // Internal Test (only in dev build)
+
+ // WriterWeb, SID_SW_ONLINEOPTIONS
+ { RID_SW_TP_HTML_CONTENT_OPT, u""_ustr }, // View
+ { RID_SW_TP_HTML_OPTSHDWCRSR, u""_ustr }, // FormattingAids
+ { RID_SW_TP_HTML_OPTGRID_PAGE, u""_ustr }, // Grid
+ { RID_SW_TP_HTML_OPTPRINT_PAGE, u""_ustr }, // Print
+ { RID_SW_TP_HTML_OPTTABLE_PAGE, u""_ustr }, // Table
+ { RID_SW_TP_BACKGROUND, u""_ustr }, // Background
+ { RID_SW_TP_OPTTEST_PAGE, u""_ustr }, // Internal Test (only in dev build)
+
+ // Math, SID_SM_EDITOPTIONS
+ { SID_SM_TP_PRINTOPTIONS, u""_ustr }, // Settings
+
+ // Calc, SID_SC_EDITOPTIONS
+ { SID_SC_TP_LAYOUT, u""_ustr }, // General
+ { RID_SC_TP_DEFAULTS, u""_ustr }, // Defaults
+ { SID_SC_TP_CONTENT, u""_ustr }, // View
+ { SID_SC_TP_CALC, u""_ustr }, // Calculate
+ { SID_SC_TP_FORMULA, u""_ustr }, // Formula
+ { SID_SC_TP_USERLISTS, u""_ustr }, // SortLists
+ { SID_SC_TP_CHANGES, u""_ustr }, // Changes
+ { SID_SC_TP_COMPATIBILITY, u""_ustr }, // Compatibility
+ { SID_SC_TP_GRID, u""_ustr }, // Grid
+ { RID_SC_TP_PRINT, u""_ustr }, // Print
+
+ // Impress, SID_SD_EDITOPTIONS
+ { SID_SI_TP_MISC, u""_ustr }, // General
+ { SID_SI_TP_CONTENTS, u""_ustr }, // View
+ { SID_SI_TP_SNAP, u""_ustr }, // Grid
+ { SID_SI_TP_PRINT, u""_ustr }, // Print
+
+ // Draw, SID_SD_GRAPHIC_OPTIONS
+ { SID_SD_TP_MISC, u""_ustr }, // General
+ { SID_SD_TP_CONTENTS, u""_ustr }, // View
+ { SID_SD_TP_SNAP, u""_ustr }, // Grid
+ { SID_SD_TP_PRINT, u""_ustr }, // Print
+
+ // Charts, SID_SCH_EDITOPTIONS
+ { RID_OPTPAGE_CHART_DEFCOLORS, u""_ustr }, // DefaultColor
+
+ // Base, SID_SB_STARBASEOPTIONS
+ { SID_SB_CONNECTIONPOOLING, u""_ustr }, // Connections
+ { SID_SB_DBREGISTEROPTIONS, u""_ustr } // Databases
+};
+
+void TreeOptHelper::storeStringsOfDialog(sal_uInt16 nPageId, const OUString& sPageStrings)
+{
+ for (PageIdToFileNameMap_Impl& rEntry : FileMap_Impl)
+ {
+ if (rEntry.m_nPageId == nPageId)
+ {
+ rEntry.m_sContent = sPageStrings.replaceAll("~", "");
+ break;
+ }
+ }
+}
+
+/*
+return the strings of:
+- labels,
+- check buttons,
+- radio buttons,
+- toggle buttons,
+- link buttons,
+- buttons
+
+TODO:
+- accessible-names
+- accessible-descriptions
+- tooltip-texts
+*/
+OUString TreeOptHelper::getStringsFromDialog(sal_uInt16 nPageId)
+{
+ if (nPageId == 0)
+ return OUString();
+
+ for (PageIdToFileNameMap_Impl& rEntry : FileMap_Impl)
+ {
+ if (rEntry.m_nPageId == nPageId)
+ return rEntry.m_sContent;
+ }
+
+ return OUString();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/tsaurls.cxx b/cui/source/options/tsaurls.cxx
index 5c01e1c5b425..925dafbccf21 100644
--- a/cui/source/options/tsaurls.cxx
+++ b/cui/source/options/tsaurls.cxx
@@ -10,19 +10,19 @@
#include <officecfg/Office/Common.hxx>
#include <svx/svxdlg.hxx>
#include <comphelper/sequence.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include "tsaurls.hxx"
using namespace ::com::sun::star;
TSAURLsDialog::TSAURLsDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/tsaurldialog.ui", "TSAURLDialog")
- , m_xAddBtn(m_xBuilder->weld_button("add"))
- , m_xDeleteBtn(m_xBuilder->weld_button("delete"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
- , m_xURLListBox(m_xBuilder->weld_tree_view("urls"))
- , m_xEnterAUrl(m_xBuilder->weld_label("enteraurl"))
+ : GenericDialogController(pParent, u"cui/ui/tsaurldialog.ui"_ustr, u"TSAURLDialog"_ustr)
+ , m_xAddBtn(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xDeleteBtn(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xURLListBox(m_xBuilder->weld_tree_view(u"urls"_ustr))
+ , m_xEnterAUrl(m_xBuilder->weld_label(u"enteraurl"_ustr))
{
m_xURLListBox->set_size_request(m_xURLListBox->get_approximate_digit_width() * 28,
m_xURLListBox->get_height_rows(8));
@@ -88,17 +88,15 @@ void TSAURLsDialog::AddTSAURL(const OUString& rURL)
IMPL_LINK_NOARG(TSAURLsDialog, AddHdl_Impl, weld::Button&, void)
{
- OUString aURL;
OUString aDesc(m_xEnterAUrl->get_label());
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSvxNameDialog> pDlg(
- pFact->CreateSvxNameDialog(m_xDialog.get(), aURL, aDesc));
+ pFact->CreateSvxNameDialog(m_xDialog.get(), OUString(), aDesc));
if (pDlg->Execute() == RET_OK)
{
- pDlg->GetName(aURL);
- AddTSAURL(aURL);
+ AddTSAURL(pDlg->GetName());
m_xOKBtn->set_sensitive(true);
}
m_xURLListBox->unselect_all();
diff --git a/cui/source/options/webconninfo.cxx b/cui/source/options/webconninfo.cxx
index d9acbd18f537..4ad32400ebe5 100644
--- a/cui/source/options/webconninfo.cxx
+++ b/cui/source/options/webconninfo.cxx
@@ -35,12 +35,12 @@ namespace svx
// class WebConnectionInfoDialog -----------------------------------------
WebConnectionInfoDialog::WebConnectionInfoDialog(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/storedwebconnectiondialog.ui", "StoredWebConnectionDialog")
+ : GenericDialogController(pParent, u"cui/ui/storedwebconnectiondialog.ui"_ustr, u"StoredWebConnectionDialog"_ustr)
, m_nPos( -1 )
- , m_xRemoveBtn(m_xBuilder->weld_button("remove"))
- , m_xRemoveAllBtn(m_xBuilder->weld_button("removeall"))
- , m_xChangeBtn(m_xBuilder->weld_button("change"))
- , m_xPasswordsLB(m_xBuilder->weld_tree_view("logins"))
+ , m_xRemoveBtn(m_xBuilder->weld_button(u"remove"_ustr))
+ , m_xRemoveAllBtn(m_xBuilder->weld_button(u"removeall"_ustr))
+ , m_xChangeBtn(m_xBuilder->weld_button(u"change"_ustr))
+ , m_xPasswordsLB(m_xBuilder->weld_tree_view(u"logins"_ustr))
{
std::vector<int> aWidths
{
@@ -110,7 +110,7 @@ void WebConnectionInfoDialog::FillPasswordList()
for ( OUString const & url : aUrls )
{
m_xPasswordsLB->append(OUString::number(nCount), url);
- m_xPasswordsLB->set_text(nCount, "*");
+ m_xPasswordsLB->set_text(nCount, u"*"_ustr);
++nCount;
}
}
@@ -190,8 +190,7 @@ IMPL_LINK_NOARG(WebConnectionInfoDialog, ChangePasswordHdl, weld::Button&, void)
if ( pPasswordRequest->isPassword() )
{
- OUString aNewPass = pPasswordRequest->getPassword();
- uno::Sequence<OUString> aPasswd { aNewPass };
+ uno::Sequence<OUString> aPasswd { pPasswordRequest->getPassword() };
uno::Reference< task::XPasswordContainer2 > xPasswdContainer(
task::PasswordContainer::create(comphelper::getProcessComponentContext()));
diff --git a/cui/source/tabpages/TextColumnsPage.cxx b/cui/source/tabpages/TextColumnsPage.cxx
index 5bfd3b47a69e..5723258ad8ee 100644
--- a/cui/source/tabpages/TextColumnsPage.cxx
+++ b/cui/source/tabpages/TextColumnsPage.cxx
@@ -21,10 +21,11 @@ const WhichRangesContainer
SvxTextColumnsPage::SvxTextColumnsPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/textcolumnstabpage.ui", "TextColumnsPage", &rInAttrs)
- , m_xColumnsNumber(m_xBuilder->weld_spin_button("FLD_COL_NUMBER"))
- , m_xColumnsSpacing(
- m_xBuilder->weld_metric_spin_button("MTR_FLD_COL_SPACING", GetModuleFieldUnit(rInAttrs)))
+ : SfxTabPage(pPage, pController, u"cui/ui/textcolumnstabpage.ui"_ustr, u"TextColumnsPage"_ustr,
+ &rInAttrs)
+ , m_xColumnsNumber(m_xBuilder->weld_spin_button(u"FLD_COL_NUMBER"_ustr))
+ , m_xColumnsSpacing(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_COL_SPACING"_ustr,
+ GetModuleFieldUnit(rInAttrs)))
{
}
@@ -39,7 +40,7 @@ void SvxTextColumnsPage::Reset(const SfxItemSet* rAttrs)
{
auto pItem = GetItem(*rAttrs, SDRATTR_TEXTCOLUMNS_NUMBER);
if (!pItem)
- pItem = &pPool->GetDefaultItem(SDRATTR_TEXTCOLUMNS_NUMBER);
+ pItem = &pPool->GetUserOrPoolDefaultItem(SDRATTR_TEXTCOLUMNS_NUMBER);
m_xColumnsNumber->set_value(pItem->GetValue());
m_xColumnsNumber->save_value();
}
@@ -48,7 +49,7 @@ void SvxTextColumnsPage::Reset(const SfxItemSet* rAttrs)
MapUnit eUnit = pPool->GetMetric(SDRATTR_TEXTCOLUMNS_SPACING);
auto pItem = GetItem(*rAttrs, SDRATTR_TEXTCOLUMNS_SPACING);
if (!pItem)
- pItem = &pPool->GetDefaultItem(SDRATTR_TEXTCOLUMNS_SPACING);
+ pItem = &pPool->GetUserOrPoolDefaultItem(SDRATTR_TEXTCOLUMNS_SPACING);
SetMetricValue(*m_xColumnsSpacing, pItem->GetValue(), eUnit);
m_xColumnsSpacing->save_value();
}
diff --git a/cui/source/tabpages/align.cxx b/cui/source/tabpages/align.cxx
index 3db4e5c20ca5..33ea17f11f4a 100644
--- a/cui/source/tabpages/align.cxx
+++ b/cui/source/tabpages/align.cxx
@@ -56,24 +56,23 @@ namespace {
template<typename JustContainerType, typename JustEnumType>
void lcl_MaybeResetAlignToDistro(
- weld::ComboBox& rLB, sal_uInt16 nListId, const SfxItemSet& rCoreAttrs, sal_uInt16 nWhichAlign, sal_uInt16 nWhichJM, JustEnumType eBlock)
+ weld::ComboBox& rLB, sal_uInt16 nListId, const SfxItemSet& rCoreAttrs, TypedWhichId<SfxEnumItemInterface> nWhichAlign, TypedWhichId<SfxEnumItemInterface> nWhichJM, JustEnumType eBlock)
{
- const SfxPoolItem* pItem;
- if (rCoreAttrs.GetItemState(nWhichAlign, true, &pItem) != SfxItemState::SET)
+ const SfxEnumItemInterface* p = rCoreAttrs.GetItemIfSet(nWhichAlign);
+ if (!p)
// alignment not set.
return;
- const SfxEnumItemInterface* p = static_cast<const SfxEnumItemInterface*>(pItem);
JustContainerType eVal = static_cast<JustContainerType>(p->GetEnumValue());
if (eVal != eBlock)
// alignment is not 'justify'. No need to go further.
return;
- if (rCoreAttrs.GetItemState(nWhichJM, true, &pItem) != SfxItemState::SET)
+ p = rCoreAttrs.GetItemIfSet(nWhichJM);
+ if (!p)
// justification method is not set.
return;
- p = static_cast<const SfxEnumItemInterface*>(pItem);
SvxCellJustifyMethod eMethod = static_cast<SvxCellJustifyMethod>(p->GetEnumValue());
if (eMethod == SvxCellJustifyMethod::Distribute)
{
@@ -108,38 +107,37 @@ void lcl_SetJustifyMethodToItemSet(SfxItemSet& rSet, const SfxItemSet& rOldSet,
}//namespace
AlignmentTabPage::AlignmentTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/cellalignment.ui", "CellAlignPage", &rCoreAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/cellalignment.ui"_ustr, u"CellAlignPage"_ustr, &rCoreAttrs)
, m_aVsRefEdge(nullptr)
// text alignment
- , m_xLbHorAlign(m_xBuilder->weld_combo_box("comboboxHorzAlign"))
- , m_xFtIndent(m_xBuilder->weld_label("labelIndent"))
- , m_xEdIndent(m_xBuilder->weld_metric_spin_button("spinIndentFrom", FieldUnit::POINT))
- , m_xFtVerAlign(m_xBuilder->weld_label("labelVertAlign"))
- , m_xLbVerAlign(m_xBuilder->weld_combo_box("comboboxVertAlign"))
+ , m_xLbHorAlign(m_xBuilder->weld_combo_box(u"comboboxHorzAlign"_ustr))
+ , m_xFtIndent(m_xBuilder->weld_label(u"labelIndent"_ustr))
+ , m_xEdIndent(m_xBuilder->weld_metric_spin_button(u"spinIndentFrom"_ustr, FieldUnit::POINT))
+ , m_xFtVerAlign(m_xBuilder->weld_label(u"labelVertAlign"_ustr))
+ , m_xLbVerAlign(m_xBuilder->weld_combo_box(u"comboboxVertAlign"_ustr))
//text rotation
- , m_xFtRotate(m_xBuilder->weld_label("labelDegrees"))
- , m_xNfRotate(m_xBuilder->weld_metric_spin_button("spinDegrees", FieldUnit::DEGREE))
- , m_xFtRefEdge(m_xBuilder->weld_label("labelRefEdge"))
+ , m_xFtRotate(m_xBuilder->weld_label(u"labelDegrees"_ustr))
+ , m_xNfRotate(m_xBuilder->weld_metric_spin_button(u"spinDegrees"_ustr, FieldUnit::DEGREE))
+ , m_xFtRefEdge(m_xBuilder->weld_label(u"labelRefEdge"_ustr))
//Asian mode
- , m_xCbStacked(m_xBuilder->weld_check_button("checkVertStack"))
- , m_xCbAsianMode(m_xBuilder->weld_check_button("checkAsianMode"))
+ , m_xCbStacked(m_xBuilder->weld_check_button(u"checkVertStack"_ustr))
+ , m_xCbAsianMode(m_xBuilder->weld_check_button(u"checkAsianMode"_ustr))
// Properties
- , m_xBoxDirection(m_xBuilder->weld_widget("boxDirection"))
- , m_xBtnWrap(m_xBuilder->weld_check_button("checkWrapTextAuto"))
- , m_xBtnHyphen(m_xBuilder->weld_check_button("checkHyphActive"))
- , m_xBtnShrink(m_xBuilder->weld_check_button("checkShrinkFitCellSize"))
- , m_xLbFrameDir(new svx::FrameDirectionListBox(m_xBuilder->weld_combo_box("comboTextDirBox")))
+ , m_xBtnWrap(m_xBuilder->weld_check_button(u"checkWrapTextAuto"_ustr))
+ , m_xBtnHyphen(m_xBuilder->weld_check_button(u"checkHyphActive"_ustr))
+ , m_xBtnShrink(m_xBuilder->weld_check_button(u"checkShrinkFitCellSize"_ustr))
+ , m_xLbFrameDir(new svx::FrameDirectionListBox(m_xBuilder->weld_combo_box(u"comboTextDirBox"_ustr)))
//ValueSet hover strings
- , m_xFtBotLock(m_xBuilder->weld_label("labelSTR_BOTTOMLOCK"))
- , m_xFtTopLock(m_xBuilder->weld_label("labelSTR_TOPLOCK"))
- , m_xFtCelLock(m_xBuilder->weld_label("labelSTR_CELLLOCK"))
- , m_xFtABCD(m_xBuilder->weld_label("labelABCD"))
- , m_xAlignmentFrame(m_xBuilder->weld_widget("alignment"))
- , m_xOrientFrame(m_xBuilder->weld_widget("orientation"))
- , m_xPropertiesFrame(m_xBuilder->weld_widget("properties"))
- , m_xVsRefEdge(new weld::CustomWeld(*m_xBuilder, "references", m_aVsRefEdge))
+ , m_xFtBotLock(m_xBuilder->weld_label(u"labelSTR_BOTTOMLOCK"_ustr))
+ , m_xFtTopLock(m_xBuilder->weld_label(u"labelSTR_TOPLOCK"_ustr))
+ , m_xFtCelLock(m_xBuilder->weld_label(u"labelSTR_CELLLOCK"_ustr))
+ , m_xFtABCD(m_xBuilder->weld_label(u"labelABCD"_ustr))
+ , m_xAlignmentFrame(m_xBuilder->weld_widget(u"alignment"_ustr))
+ , m_xOrientFrame(m_xBuilder->weld_widget(u"orientation"_ustr))
+ , m_xPropertiesFrame(m_xBuilder->weld_widget(u"properties"_ustr))
+ , m_xVsRefEdge(new weld::CustomWeld(*m_xBuilder, u"references"_ustr, m_aVsRefEdge))
, m_xCtrlDial(new DialControl)
- , m_xCtrlDialWin(new weld::CustomWeld(*m_xBuilder, "dialcontrol", *m_xCtrlDial))
+ , m_xCtrlDialWin(new weld::CustomWeld(*m_xBuilder, u"dialcontrol"_ustr, *m_xCtrlDial))
{
m_xCtrlDial->SetLinkedField(m_xNfRotate.get());
m_xCtrlDial->SetText(m_xFtABCD->get_label());
@@ -224,7 +222,7 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
assert(pIndentItem);
std::unique_ptr<SfxUInt16Item> pNewIndentItem(pIndentItem->Clone());
pNewIndentItem->SetValue(m_xEdIndent->get_value(FieldUnit::TWIP));
- rSet->Put(*pNewIndentItem);
+ rSet->Put(std::move(pNewIndentItem));
bChanged = true;
}
else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhich, false))
@@ -267,25 +265,25 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
assert(pAngleItem);
std::unique_ptr<SdrAngleItem> pNewAngleItem(pAngleItem->Clone());
pNewAngleItem->SetValue(m_xCtrlDial->GetRotation());
- rSet->Put(*pNewAngleItem);
+ rSet->Put(std::move(pNewAngleItem));
bChanged = true;
}
else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhich, false))
rSet->InvalidateItem(nWhich);
- nWhich = GetWhich(SID_ATTR_ALIGN_LOCKPOS);
+ TypedWhichId<SvxRotateModeItem> nWhichLockPos(GetWhich(SID_ATTR_ALIGN_LOCKPOS));
if (m_aVsRefEdge.IsValueChangedFromSaved())
{
switch (m_aVsRefEdge.GetSelectedItemId())
{
case IID_CELLLOCK:
- rSet->Put(SvxRotateModeItem(SvxRotateMode::SVX_ROTATE_MODE_STANDARD, nWhich));
+ rSet->Put(SvxRotateModeItem(SvxRotateMode::SVX_ROTATE_MODE_STANDARD, nWhichLockPos));
break;
case IID_TOPLOCK:
- rSet->Put(SvxRotateModeItem(SvxRotateMode::SVX_ROTATE_MODE_TOP, nWhich));
+ rSet->Put(SvxRotateModeItem(SvxRotateMode::SVX_ROTATE_MODE_TOP, nWhichLockPos));
break;
case IID_BOTTOMLOCK:
- rSet->Put(SvxRotateModeItem(SvxRotateMode::SVX_ROTATE_MODE_BOTTOM, nWhich));
+ rSet->Put(SvxRotateModeItem(SvxRotateMode::SVX_ROTATE_MODE_BOTTOM, nWhichLockPos));
break;
default:
m_aVsRefEdge.SetNoSelection();
@@ -293,8 +291,8 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
}
bChanged = true;
}
- else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhich, false))
- rSet->InvalidateItem(nWhich);
+ else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhichLockPos, false))
+ rSet->InvalidateItem(nWhichLockPos);
nWhich = GetWhich(SID_ATTR_ALIGN_STACKED);
if (m_xCbStacked->get_state_changed_from_saved())
@@ -304,7 +302,7 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
assert(pStackItem);
std::unique_ptr<SfxBoolItem> pNewStackItem(pStackItem->Clone());
pNewStackItem->SetValue(m_xCbStacked->get_active());
- rSet->Put(*pNewStackItem);
+ rSet->Put(std::move(pNewStackItem));
bChanged = true;
}
else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhich, false))
@@ -327,7 +325,7 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
assert(pWrapItem);
std::unique_ptr<SfxBoolItem> pNewWrapItem(pWrapItem->Clone());
pNewWrapItem->SetValue(m_xBtnWrap->get_active());
- rSet->Put(*pNewWrapItem);
+ rSet->Put(std::move(pNewWrapItem));
bChanged = true;
}
else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhich, false))
@@ -341,7 +339,7 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
assert(pHyphItem);
std::unique_ptr<SfxBoolItem> pNewHyphItem(pHyphItem->Clone());
pNewHyphItem->SetValue(m_xBtnHyphen->get_active());
- rSet->Put(*pNewHyphItem);
+ rSet->Put(std::move(pNewHyphItem));
bChanged = true;
}
else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhich, false))
@@ -355,7 +353,7 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
assert(pShrinkItem);
std::unique_ptr<SfxBoolItem> pNewShrinkItem(pShrinkItem->Clone());
pNewShrinkItem->SetValue(m_xBtnShrink->get_active());
- rSet->Put(*pNewShrinkItem);
+ rSet->Put(std::move(pNewShrinkItem));
bChanged = true;
}
else if (SfxItemState::DEFAULT == rOldSet.GetItemState(nWhich, false))
@@ -376,12 +374,12 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
// Special treatment for distributed alignment; we need to set the justify
// method to 'distribute' to distinguish from the normal justification.
- sal_uInt16 nWhichHorJM = GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD);
+ TypedWhichId<SfxEnumItemInterface> nWhichHorJM(GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD));
lcl_SetJustifyMethodToItemSet(*rSet, rOldSet, nWhichHorJM, *m_xLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED);
if (!bChanged)
bChanged = HasAlignmentChanged(*rSet, nWhichHorJM);
- sal_uInt16 nWhichVerJM = GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY_METHOD);
+ TypedWhichId<SfxEnumItemInterface> nWhichVerJM(GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY_METHOD));
lcl_SetJustifyMethodToItemSet(*rSet, rOldSet, nWhichVerJM, *m_xLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED);
if (!bChanged)
bChanged = HasAlignmentChanged(*rSet, nWhichVerJM);
@@ -404,7 +402,7 @@ namespace
rBtn.set_sensitive(false);
rTriState.bTriStateEnabled = false;
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
rBtn.set_state(TRISTATE_INDET);
rTriState.bTriStateEnabled = true;
break;
@@ -441,7 +439,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
case SfxItemState::DISABLED:
m_xLbHorAlign->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_xLbHorAlign->set_active(-1);
break;
case SfxItemState::DEFAULT:
@@ -484,8 +482,8 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
case SfxItemState::DISABLED:
m_xEdIndent->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
- m_xEdIndent->set_text("");
+ case SfxItemState::INVALID:
+ m_xEdIndent->set_text(u""_ustr);
break;
case SfxItemState::DEFAULT:
case SfxItemState::SET:
@@ -507,7 +505,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
case SfxItemState::DISABLED:
m_xLbVerAlign->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_xLbVerAlign->set_active(-1);
break;
case SfxItemState::DEFAULT:
@@ -548,7 +546,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
m_xNfRotate->set_sensitive(false);
m_xCtrlDialWin->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_xCtrlDial->SetNoRotation();
break;
case SfxItemState::DEFAULT:
@@ -570,7 +568,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
case SfxItemState::DISABLED:
m_xVsRefEdge->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_aVsRefEdge.SetNoSelection();
break;
case SfxItemState::DEFAULT:
@@ -608,7 +606,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
case SfxItemState::DISABLED:
m_xLbFrameDir->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_xLbFrameDir->set_active(-1);
break;
case SfxItemState::DEFAULT:
@@ -622,7 +620,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
// Special treatment for distributed alignment; we need to set the justify
// method to 'distribute' to distinguish from the normal justification.
- sal_uInt16 nHorJustifyMethodWhich = GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD);
+ TypedWhichId<SfxEnumItemInterface> nHorJustifyMethodWhich(GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD));
SfxItemState eHorJustifyMethodState = pCoreAttrs->GetItemState(nHorJustifyMethodWhich);
if (eHorJustifyMethodState == SfxItemState::UNKNOWN)
{
@@ -636,11 +634,11 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
// feature known, e.g. calc
lcl_MaybeResetAlignToDistro<SvxCellHorJustify, SvxCellHorJustify>(
*m_xLbHorAlign, ALIGNDLG_HORALIGN_DISTRIBUTED, *pCoreAttrs,
- GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY), nHorJustifyMethodWhich,
+ TypedWhichId<SfxEnumItemInterface>(GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY)), nHorJustifyMethodWhich,
SvxCellHorJustify::Block);
}
- sal_uInt16 nVerJustifyMethodWhich = GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY_METHOD);
+ TypedWhichId<SfxEnumItemInterface> nVerJustifyMethodWhich( GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY_METHOD) );
SfxItemState eVerJustifyMethodState = pCoreAttrs->GetItemState(nVerJustifyMethodWhich);
if (eVerJustifyMethodState == SfxItemState::UNKNOWN)
{
@@ -654,7 +652,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
// feature known, e.g. calc
lcl_MaybeResetAlignToDistro<SvxCellVerJustify, SvxCellVerJustify>(
*m_xLbVerAlign, ALIGNDLG_VERALIGN_DISTRIBUTED, *pCoreAttrs,
- GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY), nVerJustifyMethodWhich,
+ TypedWhichId<SfxEnumItemInterface>(GetWhich(SID_ATTR_ALIGN_VER_JUSTIFY)), nVerJustifyMethodWhich,
SvxCellVerJustify::Block);
}
@@ -736,21 +734,18 @@ void AlignmentTabPage::UpdateEnableControls()
m_xNfRotate->set_sensitive(!bHorFill && !bStackedText);
}
-bool AlignmentTabPage::HasAlignmentChanged( const SfxItemSet& rNew, sal_uInt16 nWhich ) const
+bool AlignmentTabPage::HasAlignmentChanged( const SfxItemSet& rNew, TypedWhichId<SfxEnumItemInterface> nWhich ) const
{
const SfxItemSet& rOld = GetItemSet();
- const SfxPoolItem* pItem;
SvxCellJustifyMethod eMethodOld = SvxCellJustifyMethod::Auto;
SvxCellJustifyMethod eMethodNew = SvxCellJustifyMethod::Auto;
- if (rOld.GetItemState(nWhich, true, &pItem) == SfxItemState::SET)
+ if (const SfxEnumItemInterface* p = rOld.GetItemIfSet(nWhich))
{
- const SfxEnumItemInterface* p = static_cast<const SfxEnumItemInterface*>(pItem);
eMethodOld = static_cast<SvxCellJustifyMethod>(p->GetEnumValue());
}
- if (rNew.GetItemState(nWhich, true, &pItem) == SfxItemState::SET)
+ if (const SfxEnumItemInterface* p = rNew.GetItemIfSet(nWhich))
{
- const SfxEnumItemInterface* p = static_cast<const SfxEnumItemInterface*>(pItem);
eMethodNew = static_cast<SvxCellJustifyMethod>(p->GetEnumValue());
}
diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 28bcbcf9f951..87e803f677b4 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -17,8 +17,11 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <sal/config.h>
+
#include <i18nutil/unicode.hxx>
#include <o3tl/safeint.hxx>
+#include <utility>
#include <vcl/event.hxx>
#include <vcl/keycodes.hxx>
#include <vcl/settings.hxx>
@@ -29,11 +32,9 @@
#include <unotools/charclass.hxx>
#include <unotools/collatorwrapper.hxx>
#include <comphelper/processfactory.hxx>
-#include <comphelper/string.hxx>
#include <vcl/svapp.hxx>
#include <sfx2/module.hxx>
#include <svl/eitem.hxx>
-#include <svl/languageoptions.hxx>
#include <svl/cjkoptions.hxx>
#include <svl/ctloptions.hxx>
#include <svx/SmartTagMgr.hxx>
@@ -46,20 +47,19 @@
#include <autocdlg.hxx>
#include <editeng/acorrcfg.hxx>
#include <editeng/svxacorr.hxx>
-#include <cui/cuicharmap.hxx>
+#include <svx/cuicharmap.hxx>
#include <strings.hrc>
#include <dialmgr.hxx>
#include <svx/svxids.hrc>
static LanguageType eLastDialogLanguage = LANGUAGE_SYSTEM;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star;
OfaAutoCorrDlg::OfaAutoCorrDlg(weld::Window* pParent, const SfxItemSet* _pSet )
- : SfxTabDialogController(pParent, "cui/ui/autocorrectdialog.ui", "AutoCorrectDialog", _pSet)
- , m_xLanguageBox(m_xBuilder->weld_widget("langbox"))
- , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("lang")))
+ : SfxTabDialogController(pParent, u"cui/ui/autocorrectdialog.ui"_ustr, u"AutoCorrectDialog"_ustr, _pSet)
+ , m_xLanguageBox(m_xBuilder->weld_widget(u"langbox"_ustr))
+ , m_xLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"lang"_ustr)))
{
bool bShowSWOptions = false;
bool bOpenSmartTagOptions = false;
@@ -75,16 +75,16 @@ OfaAutoCorrDlg::OfaAutoCorrDlg(weld::Window* pParent, const SfxItemSet* _pSet )
bOpenSmartTagOptions = true;
}
- AddTabPage("options", OfaAutocorrOptionsPage::Create, nullptr);
- AddTabPage("applypage", OfaSwAutoFmtOptionsPage::Create, nullptr);
- AddTabPage("wordcompletion", OfaAutoCompleteTabPage::Create, nullptr);
- AddTabPage("smarttags", OfaSmartTagOptionsTabPage::Create, nullptr);
+ AddTabPage(u"options"_ustr, OfaAutocorrOptionsPage::Create, nullptr);
+ AddTabPage(u"applypage"_ustr, OfaSwAutoFmtOptionsPage::Create, nullptr);
+ AddTabPage(u"wordcompletion"_ustr, OfaAutoCompleteTabPage::Create, nullptr);
+ AddTabPage(u"smarttags"_ustr, OfaSmartTagOptionsTabPage::Create, nullptr);
if (!bShowSWOptions)
{
- RemoveTabPage("applypage");
- RemoveTabPage("wordcompletion");
- RemoveTabPage("smarttags");
+ RemoveTabPage(u"applypage"_ustr);
+ RemoveTabPage(u"wordcompletion"_ustr);
+ RemoveTabPage(u"smarttags"_ustr);
}
else
{
@@ -92,21 +92,21 @@ OfaAutoCorrDlg::OfaAutoCorrDlg(weld::Window* pParent, const SfxItemSet* _pSet )
SvxAutoCorrect* pAutoCorrect = SvxAutoCorrCfg::Get().GetAutoCorrect();
SvxSwAutoFormatFlags& rOpt = pAutoCorrect->GetSwFlags();
if (!rOpt.pSmartTagMgr || 0 == rOpt.pSmartTagMgr->NumberOfRecognizers())
- RemoveTabPage("smarttags");
+ RemoveTabPage(u"smarttags"_ustr);
- RemoveTabPage("options");
+ RemoveTabPage(u"options"_ustr);
}
- AddTabPage("replace", OfaAutocorrReplacePage::Create, nullptr);
- AddTabPage("exceptions", OfaAutocorrExceptPage::Create, nullptr);
- AddTabPage("localized", OfaQuoteTabPage::Create, nullptr);
+ AddTabPage(u"replace"_ustr, OfaAutocorrReplacePage::Create, nullptr);
+ AddTabPage(u"exceptions"_ustr, OfaAutocorrExceptPage::Create, nullptr);
+ AddTabPage(u"localized"_ustr, OfaQuoteTabPage::Create, nullptr);
// initialize languages
//! LANGUAGE_NONE is displayed as '[All]' and the LanguageType
//! will be set to LANGUAGE_UNDETERMINED
SvxLanguageListFlags nLangList = SvxLanguageListFlags::WESTERN;
- if( SvtCTLOptions().IsCTLFontEnabled() )
+ if( SvtCTLOptions::IsCTLFontEnabled() )
nLangList |= SvxLanguageListFlags::CTL;
if( SvtCJKOptions::IsCJKFontEnabled() )
nLangList |= SvxLanguageListFlags::CJK;
@@ -129,7 +129,7 @@ OfaAutoCorrDlg::OfaAutoCorrDlg(weld::Window* pParent, const SfxItemSet* _pSet )
m_xLanguageLB->connect_changed(LINK(this, OfaAutoCorrDlg, SelectLanguageHdl));
if ( bOpenSmartTagOptions )
- SetCurPageId("smarttags");
+ SetCurPageId(u"smarttags"_ustr);
}
OfaAutoCorrDlg::~OfaAutoCorrDlg()
@@ -166,7 +166,7 @@ IMPL_LINK_NOARG(OfaAutoCorrDlg, SelectLanguageHdl, weld::ComboBox&, void)
if(eNewLang == eLastDialogLanguage)
return;
- OString sPageId = GetCurPageId();
+ OUString sPageId = GetCurPageId();
if (sPageId == "replace")
{
OfaAutocorrReplacePage* pPage = static_cast<OfaAutocorrReplacePage*>(GetTabPage(sPageId));
@@ -182,16 +182,17 @@ IMPL_LINK_NOARG(OfaAutoCorrDlg, SelectLanguageHdl, weld::ComboBox&, void)
}
OfaAutocorrOptionsPage::OfaAutocorrOptionsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/acoroptionspage.ui", "AutocorrectOptionsPage", &rSet)
- , m_sInput(CuiResId(RID_SVXSTR_USE_REPLACE))
- , m_sDoubleCaps(CuiResId(RID_SVXSTR_CPTL_STT_WORD))
- , m_sStartCap(CuiResId(RID_SVXSTR_CPTL_STT_SENT))
- , m_sBoldUnderline(CuiResId(RID_SVXSTR_BOLD_UNDER))
- , m_sURL(CuiResId(RID_SVXSTR_DETECT_URL))
- , m_sNoDblSpaces(CuiResId(RID_SVXSTR_NO_DBL_SPACES))
- , m_sDash(CuiResId(RID_SVXSTR_DASH))
- , m_sAccidentalCaps(CuiResId(RID_SVXSTR_CORRECT_ACCIDENTAL_CAPS_LOCK))
- , m_xCheckLB(m_xBuilder->weld_tree_view("checklist"))
+ : SfxTabPage(pPage, pController, u"cui/ui/acoroptionspage.ui"_ustr, u"AutocorrectOptionsPage"_ustr, &rSet)
+ , m_sInput(CuiResId(RID_CUISTR_USE_REPLACE))
+ , m_sDoubleCaps(CuiResId(RID_CUISTR_CPTL_STT_WORD))
+ , m_sStartCap(CuiResId(RID_CUISTR_CPTL_STT_SENT))
+ , m_sBoldUnderline(CuiResId(RID_CUISTR_BOLD_UNDER))
+ , m_sURL(CuiResId(RID_CUISTR_DETECT_URL))
+ , m_sDOI(CuiResId(RID_CUISTR_DETECT_DOI))
+ , m_sNoDblSpaces(CuiResId(RID_CUISTR_NO_DBL_SPACES))
+ , m_sDash(CuiResId(RID_CUISTR_DASH))
+ , m_sAccidentalCaps(CuiResId(RID_CUISTR_CORRECT_ACCIDENTAL_CAPS_LOCK))
+ , m_xCheckLB(m_xBuilder->weld_tree_view(u"checklist"_ustr))
{
m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
m_xCheckLB->set_size_request(-1, m_xCheckLB->get_height_rows(10));
@@ -222,6 +223,7 @@ bool OfaAutocorrOptionsPage::FillItemSet( SfxItemSet* )
pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::SetDOIAttr, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
pAutoCorrect->SetAutoCorrFlag(ACFlags::IgnoreDoubleSpace, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
@@ -262,6 +264,7 @@ void OfaAutocorrOptionsPage::Reset( const SfxItemSet* )
InsertEntry(m_sStartCap);
InsertEntry(m_sBoldUnderline);
InsertEntry(m_sURL);
+ InsertEntry(m_sDOI);
InsertEntry(m_sDash);
InsertEntry(m_sNoDblSpaces);
InsertEntry(m_sAccidentalCaps);
@@ -272,6 +275,7 @@ void OfaAutocorrOptionsPage::Reset( const SfxItemSet* )
m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartSentence) ? TRISTATE_TRUE : TRISTATE_FALSE );
m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgWeightUnderl) ? TRISTATE_TRUE : TRISTATE_FALSE );
m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::SetINetAttr) ? TRISTATE_TRUE : TRISTATE_FALSE );
+ m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::SetDOIAttr) ? TRISTATE_TRUE : TRISTATE_FALSE );
m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgToEnEmDash) ? TRISTATE_TRUE : TRISTATE_FALSE );
m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::IgnoreDoubleSpace) ? TRISTATE_TRUE : TRISTATE_FALSE );
m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CorrectCapsLock) ? TRISTATE_TRUE : TRISTATE_FALSE );
@@ -308,8 +312,8 @@ class OfaAutoFmtPrcntSet : public weld::GenericDialogController
std::unique_ptr<weld::MetricSpinButton> m_xPrcntMF;
public:
explicit OfaAutoFmtPrcntSet(weld::Window* pParent)
- : GenericDialogController(pParent, "cui/ui/percentdialog.ui", "PercentDialog")
- , m_xPrcntMF(m_xBuilder->weld_metric_spin_button("margin", FieldUnit::PERCENT))
+ : GenericDialogController(pParent, u"cui/ui/percentdialog.ui"_ustr, u"PercentDialog"_ustr)
+ , m_xPrcntMF(m_xBuilder->weld_metric_spin_button(u"margin"_ustr, FieldUnit::PERCENT))
{
}
@@ -332,12 +336,14 @@ enum OfaAutoFmtOptions
BEGIN_UPPER,
BOLD_UNDERLINE,
DETECT_URL,
+ DETECT_DOI,
REPLACE_DASHES,
DEL_SPACES_AT_STT_END,
DEL_SPACES_BETWEEN_LINES,
IGNORE_DBLSPACE,
CORRECT_CAPS_LOCK,
APPLY_NUMBERING,
+ APPLY_NUMBERING_AFTER_SPACE,
INSERT_BORDER,
CREATE_TABLE,
REPLACE_STYLES,
@@ -351,32 +357,33 @@ enum OfaAutoFmtOptions
OfaSwAutoFmtOptionsPage::OfaSwAutoFmtOptionsPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rSet )
- : SfxTabPage(pPage, pController, "cui/ui/applyautofmtpage.ui", "ApplyAutoFmtPage", &rSet)
- , sDeleteEmptyPara(CuiResId(RID_SVXSTR_DEL_EMPTY_PARA))
- , sUseReplaceTbl(CuiResId(RID_SVXSTR_USE_REPLACE))
- , sCapitalStartWord(CuiResId(RID_SVXSTR_CPTL_STT_WORD))
- , sCapitalStartSentence(CuiResId(RID_SVXSTR_CPTL_STT_SENT))
- , sUserStyle(CuiResId(RID_SVXSTR_USER_STYLE))
- , sBullet(CuiResId(RID_SVXSTR_BULLET))
- , sBoldUnder(CuiResId(RID_SVXSTR_BOLD_UNDER))
- , sNoDblSpaces(CuiResId(RID_SVXSTR_NO_DBL_SPACES))
- , sCorrectCapsLock(CuiResId(RID_SVXSTR_CORRECT_ACCIDENTAL_CAPS_LOCK))
- , sDetectURL(CuiResId(RID_SVXSTR_DETECT_URL))
- , sDash(CuiResId(RID_SVXSTR_DASH))
- , sRightMargin(CuiResId(RID_SVXSTR_RIGHT_MARGIN))
- , sNum(CuiResId(RID_SVXSTR_NUM))
- , sBorder(CuiResId(RID_SVXSTR_BORDER))
- , sTable(CuiResId(RID_SVXSTR_CREATE_TABLE))
- , sReplaceTemplates(CuiResId(RID_SVXSTR_REPLACE_TEMPLATES))
- , sDelSpaceAtSttEnd(CuiResId(RID_SVXSTR_DEL_SPACES_AT_STT_END))
- , sDelSpaceBetweenLines(CuiResId(RID_SVXSTR_DEL_SPACES_BETWEEN_LINES))
+ : SfxTabPage(pPage, pController, u"cui/ui/applyautofmtpage.ui"_ustr, u"ApplyAutoFmtPage"_ustr, &rSet)
+ , sDeleteEmptyPara(CuiResId(RID_CUISTR_DEL_EMPTY_PARA))
+ , sUseReplaceTbl(CuiResId(RID_CUISTR_USE_REPLACE))
+ , sCapitalStartWord(CuiResId(RID_CUISTR_CPTL_STT_WORD))
+ , sCapitalStartSentence(CuiResId(RID_CUISTR_CPTL_STT_SENT))
+ , sUserStyle(CuiResId(RID_CUISTR_USER_STYLE))
+ , sBullet(CuiResId(RID_CUISTR_BULLET))
+ , sBoldUnder(CuiResId(RID_CUISTR_BOLD_UNDER))
+ , sNoDblSpaces(CuiResId(RID_CUISTR_NO_DBL_SPACES))
+ , sCorrectCapsLock(CuiResId(RID_CUISTR_CORRECT_ACCIDENTAL_CAPS_LOCK))
+ , sDetectURL(CuiResId(RID_CUISTR_DETECT_URL))
+ , sDetectDOI(CuiResId(RID_CUISTR_DETECT_DOI))
+ , sDash(CuiResId(RID_CUISTR_DASH))
+ , sRightMargin(CuiResId(RID_CUISTR_RIGHT_MARGIN))
+ , sNum(CuiResId(RID_CUISTR_NUM))
+ , sBulletsAfterSpace(CuiResId(RID_SVXSTR_NUM_FORMAT_AFTER_SPACE))
+ , sBorder(CuiResId(RID_CUISTR_BORDER))
+ , sTable(CuiResId(RID_CUISTR_CREATE_TABLE))
+ , sReplaceTemplates(CuiResId(RID_CUISTR_REPLACE_TEMPLATES))
+ , sDelSpaceAtSttEnd(CuiResId(RID_CUISTR_DEL_SPACES_AT_STT_END))
+ , sDelSpaceBetweenLines(CuiResId(RID_CUISTR_DEL_SPACES_BETWEEN_LINES))
, nPercent(50)
- , m_xCheckLB(m_xBuilder->weld_tree_view("list"))
- , m_xEditPB(m_xBuilder->weld_button("edit"))
+ , m_xCheckLB(m_xBuilder->weld_tree_view(u"list"_ustr))
+ , m_xEditPB(m_xBuilder->weld_button(u"edit"_ustr))
{
m_xCheckLB->connect_changed(LINK(this, OfaSwAutoFmtOptionsPage, SelectHdl));
m_xCheckLB->connect_row_activated(LINK(this, OfaSwAutoFmtOptionsPage, DoubleClickEditHdl));
- m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
std::vector<int> aWidths
{
@@ -401,9 +408,9 @@ void OfaSwAutoFmtOptionsPage::CreateEntry(const OUString& rTxt, sal_uInt16 nCol)
OfaSwAutoFmtOptionsPage::~OfaSwAutoFmtOptionsPage()
{
- delete reinterpret_cast<ImpUserData*>(m_xCheckLB->get_id(REPLACE_BULLETS).toInt64());
- delete reinterpret_cast<ImpUserData*>(m_xCheckLB->get_id(APPLY_NUMBERING).toInt64());
- delete reinterpret_cast<ImpUserData*>(m_xCheckLB->get_id(MERGE_SINGLE_LINE_PARA).toInt64());
+ delete weld::fromId<ImpUserData*>(m_xCheckLB->get_id(REPLACE_BULLETS));
+ delete weld::fromId<ImpUserData*>(m_xCheckLB->get_id(APPLY_NUMBERING));
+ delete weld::fromId<ImpUserData*>(m_xCheckLB->get_id(MERGE_SINGLE_LINE_PARA));
}
std::unique_ptr<SfxTabPage> OfaSwAutoFmtOptionsPage::Create(weld::Container* pPage, weld::DialogController* pController,
@@ -455,6 +462,12 @@ bool OfaSwAutoFmtOptionsPage::FillItemSet( SfxItemSet* )
pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr,
m_xCheckLB->get_toggle(DETECT_URL, CBCOL_SECOND) == TRISTATE_TRUE);
+ bCheck = m_xCheckLB->get_toggle(DETECT_DOI, CBCOL_FIRST) == TRISTATE_TRUE;
+ bModified |= pOpt->bSetDOIAttr != bCheck;
+ pOpt->bSetDOIAttr = bCheck;
+ pAutoCorrect->SetAutoCorrFlag(ACFlags::SetDOIAttr,
+ m_xCheckLB->get_toggle(DETECT_DOI, CBCOL_SECOND) == TRISTATE_TRUE);
+
bCheck = m_xCheckLB->get_toggle(DEL_EMPTY_NODE, CBCOL_FIRST) == TRISTATE_TRUE;
bModified |= pOpt->bDelEmptyNode != bCheck;
pOpt->bDelEmptyNode = bCheck;
@@ -486,6 +499,10 @@ bool OfaSwAutoFmtOptionsPage::FillItemSet( SfxItemSet* )
bModified |= pOpt->bSetNumRule != bCheck;
pOpt->bSetNumRule = bCheck;
+ bCheck = m_xCheckLB->get_toggle(APPLY_NUMBERING_AFTER_SPACE, CBCOL_SECOND) == TRISTATE_TRUE;
+ bModified |= pOpt->bSetNumRuleAfterSpace != bCheck;
+ pOpt->bSetNumRuleAfterSpace = bCheck;
+
bCheck = m_xCheckLB->get_toggle(INSERT_BORDER, CBCOL_SECOND) == TRISTATE_TRUE;
bModified |= pOpt->bSetBorder != bCheck;
pOpt->bSetBorder = bCheck;
@@ -558,6 +575,7 @@ void OfaSwAutoFmtOptionsPage::Reset( const SfxItemSet* )
CreateEntry(sCapitalStartSentence, CBCOL_BOTH );
CreateEntry(sBoldUnder, CBCOL_BOTH );
CreateEntry(sDetectURL, CBCOL_BOTH );
+ CreateEntry(sDetectDOI, CBCOL_BOTH );
CreateEntry(sDash, CBCOL_BOTH );
CreateEntry(sDelSpaceAtSttEnd, CBCOL_BOTH );
CreateEntry(sDelSpaceBetweenLines, CBCOL_BOTH );
@@ -565,6 +583,7 @@ void OfaSwAutoFmtOptionsPage::Reset( const SfxItemSet* )
CreateEntry(sNoDblSpaces, CBCOL_SECOND);
CreateEntry(sCorrectCapsLock, CBCOL_SECOND);
CreateEntry(sNum.replaceFirst("%1", sBulletChar), CBCOL_SECOND);
+ CreateEntry(sBulletsAfterSpace, CBCOL_SECOND);
CreateEntry(sBorder, CBCOL_SECOND);
CreateEntry(sTable, CBCOL_SECOND);
CreateEntry(sReplaceTemplates, CBCOL_SECOND);
@@ -583,6 +602,8 @@ void OfaSwAutoFmtOptionsPage::Reset( const SfxItemSet* )
m_xCheckLB->set_toggle(BOLD_UNDERLINE, bool(nFlags & ACFlags::ChgWeightUnderl) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(DETECT_URL, pOpt->bSetINetAttr ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
m_xCheckLB->set_toggle(DETECT_URL, bool(nFlags & ACFlags::SetINetAttr) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
+ m_xCheckLB->set_toggle(DETECT_DOI, pOpt->bSetDOIAttr ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
+ m_xCheckLB->set_toggle(DETECT_DOI, bool(nFlags & ACFlags::SetDOIAttr) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(REPLACE_DASHES, pOpt->bChgToEnEmDash ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
m_xCheckLB->set_toggle(REPLACE_DASHES, bool(nFlags & ACFlags::ChgToEnEmDash) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(DEL_SPACES_AT_STT_END, pOpt->bAFormatDelSpacesAtSttEnd ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
@@ -592,6 +613,7 @@ void OfaSwAutoFmtOptionsPage::Reset( const SfxItemSet* )
m_xCheckLB->set_toggle(IGNORE_DBLSPACE, bool(nFlags & ACFlags::IgnoreDoubleSpace) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(CORRECT_CAPS_LOCK, bool(nFlags & ACFlags::CorrectCapsLock) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(APPLY_NUMBERING, pOpt->bSetNumRule ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
+ m_xCheckLB->set_toggle(APPLY_NUMBERING_AFTER_SPACE, pOpt->bSetNumRuleAfterSpace ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(INSERT_BORDER, pOpt->bSetBorder ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(CREATE_TABLE, pOpt->bCreateTable ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
m_xCheckLB->set_toggle(REPLACE_STYLES, pOpt->bReplaceStyles ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_SECOND);
@@ -601,15 +623,15 @@ void OfaSwAutoFmtOptionsPage::Reset( const SfxItemSet* )
m_xCheckLB->set_toggle(MERGE_SINGLE_LINE_PARA, pOpt->bRightMargin ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
ImpUserData* pUserData = new ImpUserData(&sBulletChar, &aBulletFont);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pUserData)));
+ OUString sId(weld::toId(pUserData));
m_xCheckLB->set_id(REPLACE_BULLETS, sId);
pUserData = new ImpUserData(&sMargin, nullptr);
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
+ sId = weld::toId(pUserData);
m_xCheckLB->set_id(MERGE_SINGLE_LINE_PARA, sId);
ImpUserData* pUserData2 = new ImpUserData(&sByInputBulletChar, &aByInputBulletFont);
- sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData2));
+ sId = weld::toId(pUserData2);
m_xCheckLB->set_id(APPLY_NUMBERING, sId);
m_xCheckLB->thaw();
@@ -632,7 +654,7 @@ IMPL_LINK_NOARG(OfaSwAutoFmtOptionsPage, EditHdl, weld::Button&, void)
if (nSelEntryPos == REPLACE_BULLETS || nSelEntryPos == APPLY_NUMBERING)
{
SvxCharacterMap aMapDlg(GetFrameWeld(), nullptr, nullptr);
- ImpUserData* pUserData = reinterpret_cast<ImpUserData*>(m_xCheckLB->get_id(nSelEntryPos).toInt64());
+ ImpUserData* pUserData = weld::fromId<ImpUserData*>(m_xCheckLB->get_id(nSelEntryPos));
aMapDlg.SetCharFont(*pUserData->pFont);
aMapDlg.SetChar( (*pUserData->pString)[0] );
if (RET_OK == aMapDlg.run())
@@ -666,20 +688,21 @@ IMPL_LINK_NOARG(OfaSwAutoFmtOptionsPage, EditHdl, weld::Button&, void)
OfaAutocorrReplacePage::OfaAutocorrReplacePage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/acorreplacepage.ui", "AcorReplacePage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/acorreplacepage.ui"_ustr, u"AcorReplacePage"_ustr, &rSet)
+ , maCompareClass(comphelper::getProcessComponentContext())
, eLang(eLastDialogLanguage)
, bHasSelectionText(false)
, bFirstSelect(true)
, bReplaceEditChanged(false)
, bSWriter(true)
- , m_xTextOnlyCB(m_xBuilder->weld_check_button("textonly"))
- , m_xShortED(m_xBuilder->weld_entry("origtext"))
- , m_xReplaceED(m_xBuilder->weld_entry("newtext"))
- , m_xReplaceTLB(m_xBuilder->weld_tree_view("tabview"))
- , m_xNewReplacePB(m_xBuilder->weld_button("new"))
- , m_xReplacePB(m_xBuilder->weld_button("replace"))
- , m_xDeleteReplacePB(m_xBuilder->weld_button("delete"))
- , m_xButtonBox(m_xBuilder->weld_container("buttonbox"))
+ , m_xTextOnlyCB(m_xBuilder->weld_check_button(u"textonly"_ustr))
+ , m_xShortED(m_xBuilder->weld_entry(u"origtext"_ustr))
+ , m_xReplaceED(m_xBuilder->weld_entry(u"newtext"_ustr))
+ , m_xReplaceTLB(m_xBuilder->weld_tree_view(u"tabview"_ustr))
+ , m_xNewReplacePB(m_xBuilder->weld_button(u"new"_ustr))
+ , m_xReplacePB(m_xBuilder->weld_button(u"replace"_ustr))
+ , m_xDeleteReplacePB(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xButtonBox(m_xBuilder->weld_container(u"buttonbox"_ustr))
{
sNew = m_xNewReplacePB->get_label();
sModify = m_xReplacePB->get_label();
@@ -698,9 +721,8 @@ OfaAutocorrReplacePage::OfaAutocorrReplacePage(weld::Container* pPage, weld::Dia
bSWriter = pMod == SfxModule::GetActiveModule();
LanguageTag aLanguageTag( eLastDialogLanguage );
- pCompareClass.reset( new CollatorWrapper( comphelper::getProcessComponentContext() ) );
- pCompareClass->loadDefaultCollator( aLanguageTag.getLocale(), 0 );
- pCharClass.reset( new CharClass( aLanguageTag ) );
+ maCompareClass.loadDefaultCollator( aLanguageTag.getLocale(), 0 );
+ pCharClass.reset( new CharClass( std::move(aLanguageTag) ) );
auto nColWidth = m_xReplaceTLB->get_approximate_digit_width() * 32;
m_aReplaceFixedWidths.push_back(nColWidth);
@@ -722,7 +744,6 @@ OfaAutocorrReplacePage::~OfaAutocorrReplacePage()
aDoubleStringTable.clear();
aChangesTable.clear();
- pCompareClass.reset();
pCharClass.reset();
}
@@ -770,7 +791,8 @@ bool OfaAutocorrReplacePage::FillItemSet( SfxItemSet* )
bool bKeepSourceFormatting = newEntry.pUserData == &bHasSelectionText;
if (bKeepSourceFormatting)
{
- pAutoCorrect->PutText(newEntry.sShort, *SfxObjectShell::Current(), eCurrentLang);
+ if (SfxObjectShell* pSh = SfxObjectShell::Current())
+ pAutoCorrect->PutText(newEntry.sShort, *pSh, eCurrentLang);
continue;
}
@@ -810,7 +832,7 @@ void OfaAutocorrReplacePage::RefillReplaceBox(bool bFromReset,
pArray->push_back(DoubleString(m_xReplaceTLB->get_text(rIter, 0),
m_xReplaceTLB->get_text(rIter, 1)));
DoubleString& rDouble = pArray->back();
- rDouble.pUserData = reinterpret_cast<void*>(m_xReplaceTLB->get_id(rIter).toInt64());
+ rDouble.pUserData = weld::fromId<void*>(m_xReplaceTLB->get_id(rIter));
return false;
});
}
@@ -831,7 +853,7 @@ void OfaAutocorrReplacePage::RefillReplaceBox(bool bFromReset,
if (!bTextOnly)
{
// that means: with format info or even with selection text
- OUString sId = OUString::number(reinterpret_cast<sal_Int64>(rDouble.pUserData));
+ OUString sId = weld::toId(rDouble.pUserData);
m_xReplaceTLB->set_id(rIter, sId);
}
m_xReplaceTLB->set_text(rIter, rDouble.sShort, 0);
@@ -857,7 +879,7 @@ void OfaAutocorrReplacePage::RefillReplaceBox(bool bFromReset,
if (!bTextOnly)
{
// that means: with format info or even with selection text
- OUString sId = OUString::number(reinterpret_cast<sal_Int64>(m_xTextOnlyCB.get()));
+ OUString sId = weld::toId(m_xTextOnlyCB.get());
m_xReplaceTLB->set_id(rIter, sId);
}
m_xReplaceTLB->set_text(rIter, elem.GetShort(), 0);
@@ -903,9 +925,9 @@ void OfaAutocorrReplacePage::SetLanguage(LanguageType eSet)
eLastDialogLanguage = eSet;
LanguageTag aLanguageTag( eLastDialogLanguage );
- pCompareClass.reset( new CollatorWrapper( comphelper::getProcessComponentContext() ) );
- pCompareClass->loadDefaultCollator( aLanguageTag.getLocale(), 0 );
- pCharClass.reset( new CharClass( aLanguageTag ) );
+ maCompareClass = CollatorWrapper( comphelper::getProcessComponentContext() );
+ maCompareClass.loadDefaultCollator( aLanguageTag.getLocale(), 0 );
+ pCharClass.reset( new CharClass( std::move(aLanguageTag) ) );
ModifyHdl(*m_xShortED);
}
}
@@ -918,7 +940,7 @@ IMPL_LINK(OfaAutocorrReplacePage, SelectHdl, weld::TreeView&, rBox, void)
OUString sTmpShort(rBox.get_text(nEntry, 0));
// if the text is set via ModifyHdl, the cursor is always at the beginning
// of a word, although you're editing here
- bool bSameContent = 0 == pCompareClass->compareString(sTmpShort, m_xShortED->get_text());
+ bool bSameContent = 0 == maCompareClass.compareString(sTmpShort, m_xShortED->get_text());
int nStartPos, nEndPos;
m_xShortED->get_selection_bounds(nStartPos, nEndPos);
if (m_xShortED->get_text() != sTmpShort)
@@ -1056,7 +1078,7 @@ bool OfaAutocorrReplacePage::NewDelHdl(const weld::Widget* pBtn)
int nCount = m_xReplaceTLB->n_children();
for (j = 0; j < nCount; ++j)
{
- if (0 >= pCompareClass->compareString(sEntry, m_xReplaceTLB->get_text(j, 0)))
+ if (0 >= maCompareClass.compareString(sEntry, m_xReplaceTLB->get_text(j, 0)))
break;
}
nPos = j;
@@ -1065,7 +1087,7 @@ bool OfaAutocorrReplacePage::NewDelHdl(const weld::Widget* pBtn)
OUString sId;
if (bKeepSourceFormatting)
{
- sId = OUString::number(reinterpret_cast<sal_Int64>(&bHasSelectionText)); // new formatted text
+ sId = weld::toId(&bHasSelectionText); // new formatted text
}
m_xReplaceTLB->insert(nPos, sEntry, &sId, nullptr, nullptr);
@@ -1109,7 +1131,7 @@ IMPL_LINK(OfaAutocorrReplacePage, ModifyHdl, weld::Entry&, rEdt, void)
&bTmpSelEntry, &bFirstSelIterSet,
&xFirstSel, &aWordStr](weld::TreeIter& rIter){
OUString aTestStr = m_xReplaceTLB->get_text(rIter, 0);
- if( pCompareClass->compareString(rEntry, aTestStr ) == 0 )
+ if( maCompareClass.compareString(rEntry, aTestStr ) == 0 )
{
if (!rRepString.isEmpty())
bFirstSelect = true;
@@ -1189,18 +1211,19 @@ static bool lcl_FindInArray(std::vector<OUString>& rStrings, std::u16string_view
}
OfaAutocorrExceptPage::OfaAutocorrExceptPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/acorexceptpage.ui", "AcorExceptPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/acorexceptpage.ui"_ustr, u"AcorExceptPage"_ustr, &rSet)
+ , maCompareClass(comphelper::getProcessComponentContext())
, eLang(eLastDialogLanguage)
- , m_xAbbrevED(m_xBuilder->weld_entry("abbrev"))
- , m_xAbbrevLB(m_xBuilder->weld_tree_view("abbrevlist"))
- , m_xNewAbbrevPB(m_xBuilder->weld_button("newabbrev"))
- , m_xDelAbbrevPB(m_xBuilder->weld_button("delabbrev"))
- , m_xAutoAbbrevCB(m_xBuilder->weld_check_button("autoabbrev"))
- , m_xDoubleCapsED(m_xBuilder->weld_entry("double"))
- , m_xDoubleCapsLB(m_xBuilder->weld_tree_view("doublelist"))
- , m_xNewDoublePB(m_xBuilder->weld_button("newdouble"))
- , m_xDelDoublePB(m_xBuilder->weld_button("deldouble"))
- , m_xAutoCapsCB(m_xBuilder->weld_check_button("autodouble"))
+ , m_xAbbrevED(m_xBuilder->weld_entry(u"abbrev"_ustr))
+ , m_xAbbrevLB(m_xBuilder->weld_tree_view(u"abbrevlist"_ustr))
+ , m_xNewAbbrevPB(m_xBuilder->weld_button(u"newabbrev"_ustr))
+ , m_xDelAbbrevPB(m_xBuilder->weld_button(u"delabbrev"_ustr))
+ , m_xAutoAbbrevCB(m_xBuilder->weld_check_button(u"autoabbrev"_ustr))
+ , m_xDoubleCapsED(m_xBuilder->weld_entry(u"double"_ustr))
+ , m_xDoubleCapsLB(m_xBuilder->weld_tree_view(u"doublelist"_ustr))
+ , m_xNewDoublePB(m_xBuilder->weld_button(u"newdouble"_ustr))
+ , m_xDelDoublePB(m_xBuilder->weld_button(u"deldouble"_ustr))
+ , m_xAutoCapsCB(m_xBuilder->weld_check_button(u"autodouble"_ustr))
{
m_xAbbrevLB->make_sorted();
m_xAbbrevLB->set_size_request(-1, m_xAbbrevLB->get_height_rows(6));
@@ -1209,8 +1232,7 @@ OfaAutocorrExceptPage::OfaAutocorrExceptPage(weld::Container* pPage, weld::Dialo
m_xDoubleCapsLB->set_size_request(-1, m_xDoubleCapsLB->get_height_rows(6));
css::lang::Locale aLcl( LanguageTag::convertToLocale(eLastDialogLanguage ));
- pCompareClass.reset( new CollatorWrapper( comphelper::getProcessComponentContext() ) );
- pCompareClass->loadDefaultCollator( aLcl, 0 );
+ maCompareClass.loadDefaultCollator( aLcl, 0 );
m_xNewAbbrevPB->connect_clicked(LINK(this, OfaAutocorrExceptPage, NewDelButtonHdl));
m_xDelAbbrevPB->connect_clicked(LINK(this, OfaAutocorrExceptPage, NewDelButtonHdl));
@@ -1229,7 +1251,6 @@ OfaAutocorrExceptPage::OfaAutocorrExceptPage(weld::Container* pPage, weld::Dialo
OfaAutocorrExceptPage::~OfaAutocorrExceptPage()
{
aStringsTable.clear();
- pCompareClass.reset();
}
std::unique_ptr<SfxTabPage> OfaAutocorrExceptPage::Create(weld::Container* pPage, weld::DialogController* pController,
@@ -1364,8 +1385,8 @@ void OfaAutocorrExceptPage::SetLanguage(LanguageType eSet)
// save old settings and fill anew
RefillReplaceBoxes(false, eLang, eSet);
eLastDialogLanguage = eSet;
- pCompareClass.reset( new CollatorWrapper( comphelper::getProcessComponentContext() ) );
- pCompareClass->loadDefaultCollator( LanguageTag::convertToLocale( eLastDialogLanguage ), 0 );
+ maCompareClass = CollatorWrapper( comphelper::getProcessComponentContext() );
+ maCompareClass.loadDefaultCollator( LanguageTag::convertToLocale( eLastDialogLanguage ), 0 );
ModifyHdl(*m_xAbbrevED);
ModifyHdl(*m_xDoubleCapsED);
}
@@ -1405,8 +1426,8 @@ void OfaAutocorrExceptPage::RefillReplaceBoxes(bool bFromReset,
}
m_xDoubleCapsLB->clear();
m_xAbbrevLB->clear();
- m_xAbbrevED->set_text("");
- m_xDoubleCapsED->set_text("");
+ m_xAbbrevED->set_text(u""_ustr);
+ m_xDoubleCapsED->set_text(u""_ustr);
if(aStringsTable.find(eLang) != aStringsTable.end())
{
@@ -1510,7 +1531,7 @@ IMPL_LINK(OfaAutocorrExceptPage, ModifyHdl, weld::Entry&, rEdt, void)
bool bEntryLen = !sEntry.isEmpty();
if (&rEdt == m_xAbbrevED.get())
{
- bool bSame = lcl_FindEntry(*m_xAbbrevLB, sEntry, *pCompareClass);
+ bool bSame = lcl_FindEntry(*m_xAbbrevLB, sEntry, maCompareClass);
if(bSame && sEntry != m_xAbbrevLB->get_selected_text())
rEdt.set_text(m_xAbbrevLB->get_selected_text());
m_xNewAbbrevPB->set_sensitive(!bSame && bEntryLen);
@@ -1518,7 +1539,7 @@ IMPL_LINK(OfaAutocorrExceptPage, ModifyHdl, weld::Entry&, rEdt, void)
}
else
{
- bool bSame = lcl_FindEntry(*m_xDoubleCapsLB, sEntry, *pCompareClass);
+ bool bSame = lcl_FindEntry(*m_xDoubleCapsLB, sEntry, maCompareClass);
if(bSame && sEntry != m_xDoubleCapsLB->get_selected_text())
rEdt.set_text(m_xDoubleCapsLB->get_selected_text());
m_xNewDoublePB->set_sensitive(!bSame && bEntryLen);
@@ -1550,30 +1571,30 @@ void OfaQuoteTabPage::CreateEntry(weld::TreeView& rCheckLB, const OUString& rTxt
}
OfaQuoteTabPage::OfaQuoteTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/applylocalizedpage.ui", "ApplyLocalizedPage", &rSet)
- , sNonBrkSpace(CuiResId(RID_SVXSTR_NON_BREAK_SPACE))
- , sOrdinal(CuiResId(RID_SVXSTR_ORDINAL))
- , sTransliterateRTL(CuiResId(RID_SVXSTR_OLD_HUNGARIAN))
- , sAngleQuotes(CuiResId(RID_SVXSTR_ANGLE_QUOTES))
+ : SfxTabPage(pPage, pController, u"cui/ui/applylocalizedpage.ui"_ustr, u"ApplyLocalizedPage"_ustr, &rSet)
+ , sNonBrkSpace(CuiResId(RID_CUISTR_NON_BREAK_SPACE))
+ , sOrdinal(CuiResId(RID_CUISTR_ORDINAL))
+ , sTransliterateRTL(CuiResId(RID_CUISTR_OLD_HUNGARIAN))
+ , sAngleQuotes(CuiResId(RID_CUISTR_ANGLE_QUOTES))
, cSglStartQuote(0)
, cSglEndQuote(0)
, cStartQuote(0)
, cEndQuote(0)
- , m_xSingleTypoCB(m_xBuilder->weld_check_button("singlereplace"))
- , m_xSglStartQuotePB(m_xBuilder->weld_button("startsingle"))
- , m_xSglStartExFT(m_xBuilder->weld_label("singlestartex"))
- , m_xSglEndQuotePB(m_xBuilder->weld_button("endsingle"))
- , m_xSglEndExFT(m_xBuilder->weld_label("singleendex"))
- , m_xSglStandardPB(m_xBuilder->weld_button("defaultsingle"))
- , m_xDoubleTypoCB(m_xBuilder->weld_check_button("doublereplace"))
- , m_xDblStartQuotePB(m_xBuilder->weld_button("startdouble"))
- , m_xDblStartExFT(m_xBuilder->weld_label("doublestartex"))
- , m_xDblEndQuotePB(m_xBuilder->weld_button("enddouble"))
- , m_xDblEndExFT(m_xBuilder->weld_label("doubleendex"))
- , m_xDblStandardPB(m_xBuilder->weld_button("defaultdouble"))
+ , m_xSingleTypoCB(m_xBuilder->weld_check_button(u"singlereplace"_ustr))
+ , m_xSglStartQuotePB(m_xBuilder->weld_button(u"startsingle"_ustr))
+ , m_xSglStartExFT(m_xBuilder->weld_label(u"singlestartex"_ustr))
+ , m_xSglEndQuotePB(m_xBuilder->weld_button(u"endsingle"_ustr))
+ , m_xSglEndExFT(m_xBuilder->weld_label(u"singleendex"_ustr))
+ , m_xSglStandardPB(m_xBuilder->weld_button(u"defaultsingle"_ustr))
+ , m_xDoubleTypoCB(m_xBuilder->weld_check_button(u"doublereplace"_ustr))
+ , m_xDblStartQuotePB(m_xBuilder->weld_button(u"startdouble"_ustr))
+ , m_xDblStartExFT(m_xBuilder->weld_label(u"doublestartex"_ustr))
+ , m_xDblEndQuotePB(m_xBuilder->weld_button(u"enddouble"_ustr))
+ , m_xDblEndExFT(m_xBuilder->weld_label(u"doubleendex"_ustr))
+ , m_xDblStandardPB(m_xBuilder->weld_button(u"defaultdouble"_ustr))
, m_sStandard(m_xSglStartExFT->get_label())
- , m_xCheckLB(m_xBuilder->weld_tree_view("checklist"))
- , m_xSwCheckLB(m_xBuilder->weld_tree_view("list"))
+ , m_xCheckLB(m_xBuilder->weld_tree_view(u"checklist"_ustr))
+ , m_xSwCheckLB(m_xBuilder->weld_tree_view(u"list"_ustr))
{
m_xSwCheckLB->set_size_request(m_xSwCheckLB->get_approximate_digit_width() * 50,
m_xSwCheckLB->get_height_rows(6));
@@ -1586,7 +1607,6 @@ OfaQuoteTabPage::OfaQuoteTabPage(weld::Container* pPage, weld::DialogController*
if ( bShowSWOptions )
{
- m_xSwCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
std::vector<int> aWidths
{
o3tl::narrowing<int>(m_xSwCheckLB->get_pixel_size(m_xSwCheckLB->get_column_title(0)).Width() * 2),
@@ -1795,7 +1815,7 @@ IMPL_LINK(OfaQuoteTabPage, QuoteHdl, weld::Button&, rBtn, void)
SvxCharacterMap aMap(GetFrameWeld(), nullptr, nullptr);
aMap.SetCharFont( OutputDevice::GetDefaultFont(DefaultFontType::LATIN_TEXT,
LANGUAGE_ENGLISH_US, GetDefaultFontFlags::OnlyOne ));
- aMap.set_title(nMode < SGL_END ? CuiResId(RID_SVXSTR_STARTQUOTE) : CuiResId(RID_SVXSTR_ENDQUOTE));
+ aMap.set_title(nMode < SGL_END ? CuiResId(RID_CUISTR_STARTQUOTE) : CuiResId(RID_CUISTR_ENDQUOTE));
sal_UCS4 cDlg;
SvxAutoCorrect* pAutoCorrect = SvxAutoCorrCfg::Get().GetAutoCorrect();
LanguageType eLang = Application::GetSettings().GetLanguageTag().getLanguageType();
@@ -1900,20 +1920,20 @@ OUString OfaQuoteTabPage::ChangeStringExt_Impl( sal_UCS4 cChar )
OfaAutoCompleteTabPage::OfaAutoCompleteTabPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/wordcompletionpage.ui",
- "WordCompletionPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/wordcompletionpage.ui"_ustr,
+ u"WordCompletionPage"_ustr, &rSet)
, m_pAutoCompleteList(nullptr)
, m_nAutoCmpltListCnt(0)
- , m_xCBActiv(m_xBuilder->weld_check_button("enablewordcomplete"))
- , m_xCBAppendSpace(m_xBuilder->weld_check_button("appendspace"))
- , m_xCBAsTip(m_xBuilder->weld_check_button("showastip"))
- , m_xCBCollect(m_xBuilder->weld_check_button("collectwords"))
- , m_xCBRemoveList(m_xBuilder->weld_check_button("whenclosing"))
- , m_xDCBExpandKey(m_xBuilder->weld_combo_box("acceptwith"))
- , m_xNFMinWordlen(m_xBuilder->weld_spin_button("minwordlen"))
- , m_xNFMaxEntries(m_xBuilder->weld_spin_button("maxentries"))
- , m_xLBEntries(m_xBuilder->weld_tree_view("entries"))
- , m_xPBEntries(m_xBuilder->weld_button("delete"))
+ , m_xCBActiv(m_xBuilder->weld_check_button(u"enablewordcomplete"_ustr))
+ , m_xCBAppendSpace(m_xBuilder->weld_check_button(u"appendspace"_ustr))
+ , m_xCBAsTip(m_xBuilder->weld_check_button(u"showastip"_ustr))
+ , m_xCBCollect(m_xBuilder->weld_check_button(u"collectwords"_ustr))
+ , m_xCBRemoveList(m_xBuilder->weld_check_button(u"whenclosing"_ustr))
+ , m_xDCBExpandKey(m_xBuilder->weld_combo_box(u"acceptwith"_ustr))
+ , m_xNFMinWordlen(m_xBuilder->weld_spin_button(u"minwordlen"_ustr))
+ , m_xNFMaxEntries(m_xBuilder->weld_spin_button(u"maxentries"_ustr))
+ , m_xLBEntries(m_xBuilder->weld_tree_view(u"entries"_ustr))
+ , m_xPBEntries(m_xBuilder->weld_button(u"delete"_ustr))
{
//fdo#65595, we need height-for-width support here, but for now we can
//bodge it
@@ -1968,7 +1988,6 @@ bool OfaAutoCompleteTabPage::FillItemSet( SfxItemSet* )
bool bModified = false, bCheck;
SvxAutoCorrect* pAutoCorrect = SvxAutoCorrCfg::Get().GetAutoCorrect();
SvxSwAutoFormatFlags *pOpt = &pAutoCorrect->GetSwFlags();
- sal_uInt16 nVal;
bCheck = m_xCBActiv->get_active();
bModified |= pOpt->bAutoCompleteWords != bCheck;
@@ -1986,13 +2005,13 @@ bool OfaAutoCompleteTabPage::FillItemSet( SfxItemSet* )
bModified |= pOpt->bAutoCmpltShowAsTip != bCheck;
pOpt->bAutoCmpltShowAsTip = bCheck;
- nVal = static_cast<sal_uInt16>(m_xNFMinWordlen->get_value());
+ sal_uInt16 nVal = static_cast<sal_uInt16>(m_xNFMinWordlen->get_value());
bModified |= nVal != pOpt->nAutoCmpltWordLen;
pOpt->nAutoCmpltWordLen = nVal;
- nVal = static_cast<sal_uInt16>(m_xNFMaxEntries->get_value());
- bModified |= nVal != pOpt->nAutoCmpltListLen;
- pOpt->nAutoCmpltListLen = nVal;
+ sal_uInt32 nList = static_cast<sal_uInt32>(m_xNFMaxEntries->get_value());
+ bModified |= nList != pOpt->nAutoCmpltListLen;
+ pOpt->nAutoCmpltListLen = nList;
const int nPos = m_xDCBExpandKey->get_active();
if (nPos != -1)
@@ -2053,7 +2072,7 @@ void OfaAutoCompleteTabPage::Reset( const SfxItemSet* )
{
const OUString* pStr =
&(*m_pAutoCompleteList)[n]->GetAutoCompleteString();
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pStr)));
+ OUString sId(weld::toId(pStr));
m_xLBEntries->append(sId, *pStr);
}
}
@@ -2079,7 +2098,7 @@ IMPL_LINK_NOARG(OfaAutoCompleteTabPage, DeleteHdl, weld::Button&, void)
while (!rows.empty())
{
sal_Int32 nPos = rows.back();
- OUString* pStr = reinterpret_cast<OUString*>(m_xLBEntries->get_id(nPos).toInt64());
+ OUString* pStr = weld::fromId<OUString*>(m_xLBEntries->get_id(nPos));
m_xLBEntries->remove(nPos);
editeng::IAutoCompleteString hack(*pStr); // UGLY
m_pAutoCompleteList->erase(&hack);
@@ -2115,12 +2134,7 @@ void OfaAutoCompleteTabPage::CopyToClipboard() const
for (auto a : rows)
{
- sData.append(OUStringToOString(m_xLBEntries->get_text(a), nEncode));
-#if defined(_WIN32)
- sData.append("\015\012");
-#else
- sData.append("\012");
-#endif
+ sData.append(OUStringToOString(m_xLBEntries->get_text(a), nEncode) + SAL_NEWLINE_STRING);
}
pCntnr->CopyByteString( SotClipboardFormatId::STRING, sData.makeStringAndClear() );
pCntnr->CopyToClipboard(m_xLBEntries->get_clipboard());
@@ -2151,10 +2165,10 @@ IMPL_LINK(OfaAutoCompleteTabPage, KeyReleaseHdl, const KeyEvent&, rEvent, bool)
OfaSmartTagOptionsTabPage::OfaSmartTagOptionsTabPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rSet )
- : SfxTabPage(pPage, pController, "cui/ui/smarttagoptionspage.ui", "SmartTagOptionsPage", &rSet)
- , m_xMainCB(m_xBuilder->weld_check_button("main"))
- , m_xSmartTagTypesLB(m_xBuilder->weld_tree_view("list"))
- , m_xPropertiesPB(m_xBuilder->weld_button("properties"))
+ : SfxTabPage(pPage, pController, u"cui/ui/smarttagoptionspage.ui"_ustr, u"SmartTagOptionsPage"_ustr, &rSet)
+ , m_xMainCB(m_xBuilder->weld_check_button(u"main"_ustr))
+ , m_xSmartTagTypesLB(m_xBuilder->weld_tree_view(u"list"_ustr))
+ , m_xPropertiesPB(m_xBuilder->weld_button(u"properties"_ustr))
{
m_xSmartTagTypesLB->set_size_request(m_xSmartTagTypesLB->get_approximate_digit_width() * 50,
m_xSmartTagTypesLB->get_height_rows(6));
@@ -2186,11 +2200,11 @@ struct ImplSmartTagLBUserData
uno::Reference< smarttags::XSmartTagRecognizer > mxRec;
sal_Int32 mnSmartTagIdx;
- ImplSmartTagLBUserData( const OUString& rSmartTagType,
- uno::Reference< smarttags::XSmartTagRecognizer > const & xRec,
+ ImplSmartTagLBUserData( OUString aSmartTagType,
+ uno::Reference< smarttags::XSmartTagRecognizer > xRec,
sal_Int32 nSmartTagIdx ) :
- maSmartTagType( rSmartTagType ),
- mxRec( xRec ),
+ maSmartTagType(std::move( aSmartTagType )),
+ mxRec(std::move( xRec )),
mnSmartTagIdx( nSmartTagIdx ) {}
};
@@ -2203,7 +2217,7 @@ void OfaSmartTagOptionsTabPage::ClearListBox()
const int nCount = m_xSmartTagTypesLB->n_children();
for (int i = 0; i < nCount; ++i)
{
- const ImplSmartTagLBUserData* pUserData = reinterpret_cast<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(i).toInt64());
+ const ImplSmartTagLBUserData* pUserData = weld::fromId<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(i));
delete pUserData;
}
@@ -2243,7 +2257,7 @@ void OfaSmartTagOptionsTabPage::FillListBox( const SmartTagMgr& rSmartTagMgr )
const bool bCheck = rSmartTagMgr.IsSmartTagTypeEnabled( aSmartTagType );
m_xSmartTagTypesLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
m_xSmartTagTypesLB->set_text(nRow, aLBEntry, 0);
- m_xSmartTagTypesLB->set_id(nRow, OUString::number(reinterpret_cast<sal_Int64>(new ImplSmartTagLBUserData(aSmartTagType, xRec, j))));
+ m_xSmartTagTypesLB->set_id(nRow, weld::toId(new ImplSmartTagLBUserData(aSmartTagType, xRec, j)));
}
}
}
@@ -2253,7 +2267,7 @@ void OfaSmartTagOptionsTabPage::FillListBox( const SmartTagMgr& rSmartTagMgr )
IMPL_LINK_NOARG(OfaSmartTagOptionsTabPage, ClickHdl, weld::Button&, void)
{
const int nPos = m_xSmartTagTypesLB->get_selected_index();
- const ImplSmartTagLBUserData* pUserData = reinterpret_cast<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(nPos).toInt64());
+ const ImplSmartTagLBUserData* pUserData = weld::fromId<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(nPos));
uno::Reference< smarttags::XSmartTagRecognizer > xRec = pUserData->mxRec;
const sal_Int32 nSmartTagIdx = pUserData->mnSmartTagIdx;
@@ -2285,7 +2299,7 @@ IMPL_LINK_NOARG(OfaSmartTagOptionsTabPage, SelectHdl, weld::TreeView&, void)
const int nPos = m_xSmartTagTypesLB->get_selected_index();
if (nPos == -1)
return;
- const ImplSmartTagLBUserData* pUserData = reinterpret_cast<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(nPos).toInt64());
+ const ImplSmartTagLBUserData* pUserData = weld::fromId<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(nPos));
uno::Reference< smarttags::XSmartTagRecognizer > xRec = pUserData->mxRec;
const sal_Int32 nSmartTagIdx = pUserData->mnSmartTagIdx;
@@ -2315,7 +2329,7 @@ bool OfaSmartTagOptionsTabPage::FillItemSet( SfxItemSet* )
for (int i = 0; i < nCount; ++i)
{
- const ImplSmartTagLBUserData* pUserData = reinterpret_cast<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(i).toInt64());
+ const ImplSmartTagLBUserData* pUserData = weld::fromId<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(i));
const bool bChecked = m_xSmartTagTypesLB->get_toggle(i) == TRISTATE_TRUE;
const bool bIsCurrentlyEnabled = pSmartTagMgr->IsSmartTagTypeEnabled( pUserData->maSmartTagType );
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 7b06e9a86092..aa53dcd64afe 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -36,7 +36,7 @@ using namespace css;
#define TBL_DEST_ROW 1
#define TBL_DEST_TBL 2
-const WhichRangesContainer SvxBkgTabPage::pPageRanges(svl::Items<
+const WhichRangesContainer SvxBkgTabPage::pBkgRanges(svl::Items<
SID_ATTR_BRUSH, SID_ATTR_BRUSH,
SID_ATTR_BRUSH_CHAR, SID_ATTR_BRUSH_CHAR
>);
@@ -63,32 +63,13 @@ static sal_uInt16 lcl_GetTableDestSlot(sal_Int32 nTblDest)
SvxBkgTabPage::SvxBkgTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
: SvxAreaTabPage(pPage, pController, rInAttrs),
- bHighlighting(false),
- bCharBackColor(false),
- maSet(rInAttrs)
+ m_aAttrSet(*rInAttrs.GetPool(),
+ rInAttrs.GetRanges().MergeRange(XATTR_FILL_FIRST, XATTR_FILL_LAST))
{
m_xBtnGradient->hide();
m_xBtnHatch->hide();
m_xBtnBitmap->hide();
m_xBtnPattern->hide();
-
- SfxObjectShell* pDocSh = SfxObjectShell::Current();
-
- XColorListRef pColorTable;
- if ( pDocSh )
- if (auto pItem = pDocSh->GetItem( SID_COLOR_TABLE ))
- pColorTable = pItem->GetColorList();
-
- if ( !pColorTable.is() )
- pColorTable = XColorList::CreateStdColorList();
-
- XBitmapListRef pBitmapList;
- if ( pDocSh )
- if (auto pItem = pDocSh->GetItem( SID_BITMAP_LIST ) )
- pBitmapList = pItem->GetBitmapList();
-
- SetColorList(pColorTable);
- SetBitmapList(pBitmapList);
}
SvxBkgTabPage::~SvxBkgTabPage()
@@ -98,12 +79,12 @@ SvxBkgTabPage::~SvxBkgTabPage()
void SvxBkgTabPage::ActivatePage( const SfxItemSet& )
{
- SvxAreaTabPage::ActivatePage( maSet );
+ SvxAreaTabPage::ActivatePage(m_aAttrSet);
}
DeactivateRC SvxBkgTabPage::DeactivatePage( SfxItemSet* _pSet )
{
- if ( DeactivateRC::KeepPage == SvxAreaTabPage::DeactivatePage( &maSet ) )
+ if (DeactivateRC::KeepPage == SvxAreaTabPage::DeactivatePage(&m_aAttrSet))
return DeactivateRC::KeepPage;
if ( _pSet )
@@ -112,37 +93,49 @@ DeactivateRC SvxBkgTabPage::DeactivatePage( SfxItemSet* _pSet )
return DeactivateRC::LeavePage;
}
-void SvxBkgTabPage::Reset( const SfxItemSet* )
+void SvxBkgTabPage::Reset(const SfxItemSet* pItemSet)
{
- maSet.Set( *m_pResetSet );
- if ( m_xTblLBox && m_xTblLBox->get_visible() )
+ if (m_xTblLBox && m_xTblLBox->get_visible())
{
- m_nActPos = -1;
- const SfxPoolItem* pItem;
- if ( SfxItemState::SET == m_pResetSet->GetItemState( SID_BACKGRND_DESTINATION, false, &pItem ) )
+ if (m_nActPos == -1) // initial reset
{
- sal_uInt16 nDestValue = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
- m_xTblLBox->set_active( nDestValue );
- TblDestinationHdl_Impl( *m_xTblLBox );
+ m_nActPos = 0;
+ if (const SfxUInt16Item* pDestItem = pItemSet->GetItemIfSet(SID_BACKGRND_DESTINATION, false))
+ m_nActPos = pDestItem->GetValue();
+ m_xTblLBox->set_active(m_nActPos);
}
- m_xTblLBox->save_value();
+ SetActiveTableDestinationBrushItem();
+ return;
+ }
+ else if (m_bCharBackColor)
+ {
+ sal_uInt16 nWhich(pItemSet->GetPool()->GetWhichIDFromSlotID(SID_ATTR_CHAR_BACK_COLOR));
+ Color aBackColor(static_cast<const SvxColorItem&>(pItemSet->Get(nWhich)).GetValue());
+ SvxBrushItem aBrushItem(SvxBrushItem(aBackColor, SID_ATTR_BRUSH_CHAR));
+ setSvxBrushItemAsFillAttributesToTargetSet(aBrushItem, m_aAttrSet);
+ }
+ else
+ {
+ sal_uInt16 nWhich(pItemSet->GetPool()->GetWhichIDFromSlotID(m_bHighlighting ? SID_ATTR_BRUSH_CHAR : SID_ATTR_BRUSH));
+ SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(pItemSet->Get(nWhich)));
+ setSvxBrushItemAsFillAttributesToTargetSet(aBrushItem, m_aAttrSet);
}
- SvxAreaTabPage::Reset( &maSet );
+ SvxAreaTabPage::Reset(&m_aAttrSet);
}
-bool SvxBkgTabPage::FillItemSet( SfxItemSet* rCoreSet )
+bool SvxBkgTabPage::FillItemSet(SfxItemSet* pCoreSet)
{
sal_uInt16 nSlot = SID_ATTR_BRUSH;
if (m_xTblLBox && m_xTblLBox->get_visible())
nSlot = lcl_GetTableDestSlot(m_xTblLBox->get_active());
- else if ( bHighlighting )
+ else if (m_bHighlighting)
nSlot = SID_ATTR_BRUSH_CHAR;
- else if( bCharBackColor )
+ else if (m_bCharBackColor)
nSlot = SID_ATTR_CHAR_BACK_COLOR;
sal_uInt16 nWhich = GetWhich(nSlot);
- drawing::FillStyle eFillType = maSet.Get( XATTR_FILLSTYLE ).GetValue();
+ drawing::FillStyle eFillType = m_aAttrSet.Get(XATTR_FILLSTYLE).GetValue();
switch( eFillType )
{
case drawing::FillStyle_NONE:
@@ -151,76 +144,77 @@ bool SvxBkgTabPage::FillItemSet( SfxItemSet* rCoreSet )
{
if ( SID_ATTR_CHAR_BACK_COLOR == nSlot )
{
- maSet.Put( SvxColorItem( COL_TRANSPARENT, nWhich ) );
- rCoreSet->Put( SvxColorItem( COL_TRANSPARENT, nWhich ) );
+ pCoreSet->Put(SvxColorItem(COL_TRANSPARENT, nWhich));
}
else
{
- maSet.Put( SvxBrushItem( COL_TRANSPARENT, nWhich ) );
- rCoreSet->Put( SvxBrushItem( COL_TRANSPARENT, nWhich ) );
+ pCoreSet->Put(SvxBrushItem(COL_TRANSPARENT, nWhich));
}
}
break;
}
case drawing::FillStyle_SOLID:
{
- XFillColorItem aColorItem( maSet.Get( XATTR_FILLCOLOR ) );
+ XFillColorItem aColorItem(m_aAttrSet.Get(XATTR_FILLCOLOR));
+
+ // tdf#157801 - don't change direct formatting when color is unchanged
+ if (const SfxPoolItem* pOldItem = GetOldItem(*pCoreSet, nSlot))
+ {
+ const SvxBrushItem* pOldBrushItem = static_cast<const SvxBrushItem*>(pOldItem);
+ if (pOldBrushItem->GetColor() == aColorItem.GetColorValue())
+ break;
+ }
+
if ( SID_ATTR_CHAR_BACK_COLOR == nSlot )
{
- maSet.Put( SvxColorItem( aColorItem.GetColorValue(), nWhich ) );
- rCoreSet->Put( SvxColorItem( aColorItem.GetColorValue(), nWhich ) );
+ pCoreSet->Put(SvxColorItem(aColorItem.GetColorValue(), aColorItem.getComplexColor(), nWhich));
}
else
{
- maSet.Put( SvxBrushItem( aColorItem.GetColorValue(), nWhich ) );
- rCoreSet->Put( SvxBrushItem( aColorItem.GetColorValue(), nWhich ) );
+ pCoreSet->Put(SvxBrushItem(aColorItem.GetColorValue(), aColorItem.getComplexColor(), nWhich));
}
break;
}
case drawing::FillStyle_BITMAP:
{
- std::unique_ptr<SvxBrushItem> aBrushItem( getSvxBrushItemFromSourceSet( maSet, nWhich ) );
+ std::unique_ptr<SvxBrushItem> aBrushItem(getSvxBrushItemFromSourceSet(m_aAttrSet, nWhich));
if ( GraphicType::NONE != aBrushItem->GetGraphicObject()->GetType() )
- rCoreSet->Put( *aBrushItem );
+ pCoreSet->Put(std::move(aBrushItem));
break;
}
default:
break;
}
- if (m_xTblLBox && m_xTblLBox->get_visible())
+ if (!m_xTblLBox || !m_xTblLBox->get_visible())
+ return true;
+
+ pCoreSet->Put(SfxUInt16Item(SID_BACKGRND_DESTINATION, m_xTblLBox->get_active()));
+
+ // *Put* in the core set all table brushes that are *SET* in the m_aAttrSet
+ if (nSlot != SID_ATTR_BRUSH)
{
- if (nSlot != SID_ATTR_BRUSH)
+ nWhich = m_aAttrSet.GetPool()->GetWhichIDFromSlotID(SID_ATTR_BRUSH);
+ if (SfxItemState::SET == m_aAttrSet.GetItemState(nWhich))
{
- nWhich = maSet.GetPool()->GetWhich(SID_ATTR_BRUSH);
- if (SfxItemState::SET == maSet.GetItemState(nWhich))
- {
- SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(maSet.Get(nWhich)));
- rCoreSet->Put(aBrushItem);
- }
+ SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(m_aAttrSet.Get(nWhich)));
+ pCoreSet->Put(aBrushItem);
}
- if (nSlot != SID_ATTR_BRUSH_ROW)
- {
- nWhich = maSet.GetPool()->GetWhich(SID_ATTR_BRUSH_ROW);
- if (SfxItemState::SET == maSet.GetItemState(nWhich))
- {
- SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(maSet.Get(nWhich)));
- rCoreSet->Put(aBrushItem);
- }
- }
- if (nSlot != SID_ATTR_BRUSH_TABLE)
+ }
+ if (nSlot != SID_ATTR_BRUSH_ROW)
+ {
+ if (SfxItemState::SET == m_aAttrSet.GetItemState(SID_ATTR_BRUSH_ROW))
{
- nWhich = maSet.GetPool()->GetWhich(SID_ATTR_BRUSH_TABLE);
- if (SfxItemState::SET == maSet.GetItemState(nWhich))
- {
- SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(maSet.Get(nWhich)));
- rCoreSet->Put(aBrushItem);
- }
+ SvxBrushItem aBrushItem(m_aAttrSet.Get(SID_ATTR_BRUSH_ROW));
+ pCoreSet->Put(aBrushItem);
}
-
- if (m_xTblLBox->get_value_changed_from_saved())
+ }
+ if (nSlot != SID_ATTR_BRUSH_TABLE)
+ {
+ if (SfxItemState::SET == m_aAttrSet.GetItemState(SID_ATTR_BRUSH_TABLE))
{
- rCoreSet->Put(SfxUInt16Item(SID_BACKGRND_DESTINATION, m_xTblLBox->get_active()));
+ SvxBrushItem aBrushItem(m_aAttrSet.Get(SID_ATTR_BRUSH_TABLE));
+ pCoreSet->Put(aBrushItem);
}
}
@@ -243,96 +237,97 @@ void SvxBkgTabPage::PageCreated(const SfxAllItemSet& aSet)
if ( nFlags & SvxBackgroundTabFlags::SHOW_TBLCTL )
{
m_xBtnBitmap->show();
- m_xTblLBox = m_xBuilder->weld_combo_box("tablelb");
+ m_xTblLBox = m_xBuilder->weld_combo_box(u"tablelb"_ustr);
m_xTblLBox->connect_changed(LINK(this, SvxBkgTabPage, TblDestinationHdl_Impl));
m_xTblLBox->show();
}
if ((nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING) ||
(nFlags & SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR))
{
- bHighlighting = bool(nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING);
- bCharBackColor = bool(nFlags & SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR);
+ m_bHighlighting = bool(nFlags & SvxBackgroundTabFlags::SHOW_HIGHLIGHTING);
+ m_bCharBackColor = bool(nFlags & SvxBackgroundTabFlags::SHOW_CHAR_BKGCOLOR);
}
if (nFlags & SvxBackgroundTabFlags::SHOW_SELECTOR)
m_xBtnBitmap->show();
SetOptimalSize(GetDialogController());
}
- if ( bCharBackColor )
+ SfxObjectShell* pObjSh = SfxObjectShell::Current();
+
+ // we always have the color page
+ XColorListRef xColorTable;
+ if (pObjSh)
{
- sal_uInt16 nWhich(maSet.GetPool()->GetWhich(SID_ATTR_CHAR_BACK_COLOR));
- Color aBackColor(static_cast<const SvxColorItem&>(maSet.Get(nWhich)).GetValue());
- SvxBrushItem aBrushItem(SvxBrushItem(aBackColor, SID_ATTR_BRUSH_CHAR));
- setSvxBrushItemAsFillAttributesToTargetSet(aBrushItem, maSet);
+ const SvxColorListItem* pItem = pObjSh->GetItem(SID_COLOR_TABLE);
+ if (pItem)
+ xColorTable = pItem->GetColorList();
}
- else
+ if (!xColorTable.is())
+ xColorTable = XColorList::CreateStdColorList();
+ SetColorList(xColorTable);
+
+ // sometimes we have the bitmap page
+ if (m_xBtnBitmap->get_visible())
{
- sal_uInt16 nWhich(maSet.GetPool()->GetWhich(bHighlighting ? SID_ATTR_BRUSH_CHAR : SID_ATTR_BRUSH));
- SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(maSet.Get(nWhich)));
- setSvxBrushItemAsFillAttributesToTargetSet(aBrushItem, maSet);
+ XBitmapListRef xBitmapList;
+ if (pObjSh)
+ if (const SvxBitmapListItem* pItem = pObjSh->GetItem(SID_BITMAP_LIST))
+ xBitmapList = pItem->GetBitmapList();
+ SetBitmapList(xBitmapList);
}
-
- m_pResetSet = maSet.Clone();
-
- SvxAreaTabPage::PageCreated(aSet);
}
IMPL_LINK(SvxBkgTabPage, TblDestinationHdl_Impl, weld::ComboBox&, rBox, void)
{
- if (m_nActPos > -1)
- {
- // fill local item set with XATTR_FILL settings gathered from tab page
- // and convert to SvxBrushItem and store in table destination slot Which
- SvxAreaTabPage::FillItemSet(&maSet);
- maSet.Put(*getSvxBrushItemFromSourceSet(maSet, maSet.GetPool()->GetWhich(lcl_GetTableDestSlot(m_nActPos))));
- }
-
sal_Int32 nSelPos = rBox.get_active();
+
if (m_nActPos == nSelPos)
return;
+ // Fill the local item set with XATTR_FILL settings gathered from the tab page, convert to
+ // SvxBrushItem and store in table destination slot Which. Do this so cell, row, and table
+ // brush items can be set together.
+ SvxAreaTabPage::FillItemSet(&m_aAttrSet);
+ m_aAttrSet.Put(getSvxBrushItemFromSourceSet(m_aAttrSet, GetWhich(lcl_GetTableDestSlot(m_nActPos))));
+
m_nActPos = nSelPos;
- // fill local item set with XATTR_FILL created from SvxBushItem for table destination slot Which
- sal_uInt16 nWhich = maSet.GetPool()->GetWhich(lcl_GetTableDestSlot(nSelPos));
- if (SfxItemState::SET == maSet.GetItemState(nWhich))
+ SetActiveTableDestinationBrushItem();
+}
+
+void SvxBkgTabPage::SetActiveTableDestinationBrushItem()
+{
+ // set the table destination (cell, row, table) brush item as a fill item in the local item set
+ sal_uInt16 nWhich = GetWhich(lcl_GetTableDestSlot(m_nActPos));
+ if (SfxItemState::SET == GetItemSet().GetItemState(nWhich))
{
- SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(maSet.Get(nWhich)));
- setSvxBrushItemAsFillAttributesToTargetSet(aBrushItem, maSet);
+ SvxBrushItem aBrushItem(static_cast<const SvxBrushItem&>(GetItemSet().Get(nWhich)));
+ setSvxBrushItemAsFillAttributesToTargetSet(aBrushItem, m_aAttrSet);
}
else
{
- SelectFillType(*m_xBtnNone, &maSet);
+ SelectFillType(*m_xBtnNone, &m_aAttrSet);
return;
}
- // show tab page
- drawing::FillStyle eXFS = drawing::FillStyle_NONE;
- if (maSet.GetItemState(XATTR_FILLSTYLE) != SfxItemState::DONTCARE)
- {
- XFillStyleItem aFillStyleItem(static_cast<const XFillStyleItem&>(maSet.Get(GetWhich( XATTR_FILLSTYLE))));
- eXFS = aFillStyleItem.GetValue();
- }
+ XFillStyleItem aFillStyleItem(m_aAttrSet.Get(m_aAttrSet.GetPool()->GetWhichIDFromSlotID(XATTR_FILLSTYLE)));
+ drawing::FillStyle eXFS = aFillStyleItem.GetValue();
switch(eXFS)
{
default:
case drawing::FillStyle_NONE:
{
- SelectFillType(*m_xBtnNone, &maSet);
+ SelectFillType(*m_xBtnNone, &m_aAttrSet);
break;
}
case drawing::FillStyle_SOLID:
{
- SelectFillType(*m_xBtnColor, &maSet);
- // color tab page Active and New preview controls are same after SelectFillType
- // hack to restore color tab page Active preview
- setSvxBrushItemAsFillAttributesToTargetSet(static_cast<const SvxBrushItem&>(m_pResetSet->Get(nWhich)), *m_pResetSet);
- static_cast<SvxColorTabPage*>(GetFillTabPage())->SetCtlPreviewOld(*m_pResetSet);
+ SelectFillType(*m_xBtnColor, &m_aAttrSet);
break;
}
case drawing::FillStyle_BITMAP:
{
- SelectFillType(*m_xBtnBitmap, &maSet);
+ SelectFillType(*m_xBtnBitmap, &m_aAttrSet);
break;
}
}
diff --git a/cui/source/tabpages/bbdlg.cxx b/cui/source/tabpages/bbdlg.cxx
index 488fc5283a6b..f2d6a567feb2 100644
--- a/cui/source/tabpages/bbdlg.cxx
+++ b/cui/source/tabpages/bbdlg.cxx
@@ -30,28 +30,28 @@ SvxBorderBackgroundDlg::SvxBorderBackgroundDlg(weld::Window *pParent,
bool bEnableDrawingLayerFillStyles)
: SfxTabDialogController(pParent,
bEnableDrawingLayerFillStyles
- ? OUString("cui/ui/borderareatransparencydialog.ui")
- : OUString("cui/ui/borderbackgrounddialog.ui"),
+ ? u"cui/ui/borderareatransparencydialog.ui"_ustr
+ : u"cui/ui/borderbackgrounddialog.ui"_ustr,
bEnableDrawingLayerFillStyles
- ? OString("BorderAreaTransparencyDialog")
- : OString("BorderBackgroundDialog"),
+ ? u"BorderAreaTransparencyDialog"_ustr
+ : u"BorderBackgroundDialog"_ustr,
&rCoreSet)
, mbEnableBackgroundSelector(bEnableSelector)
{
- AddTabPage("borders", SvxBorderTabPage::Create, nullptr );
+ AddTabPage(u"borders"_ustr, SvxBorderTabPage::Create, nullptr );
if (bEnableDrawingLayerFillStyles)
{
// Here we want full DrawingLayer FillStyle access, so add Area and Transparency TabPages
- AddTabPage("area", SvxAreaTabPage::Create, nullptr);
- AddTabPage("transparence", SvxTransparenceTabPage::Create, nullptr);
+ AddTabPage(u"area"_ustr, SvxAreaTabPage::Create, nullptr);
+ AddTabPage(u"transparence"_ustr, SvxTransparenceTabPage::Create, nullptr);
}
else
{
- AddTabPage("background", SvxBkgTabPage::Create, nullptr );
+ AddTabPage(u"background"_ustr, SvxBkgTabPage::Create, nullptr );
}
}
-void SvxBorderBackgroundDlg::PageCreated(const OString& rPageId, SfxTabPage& rTabPage)
+void SvxBorderBackgroundDlg::PageCreated(const OUString& rPageId, SfxTabPage& rTabPage)
{
if (rPageId == "background")
{
diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx
index 64558279be60..fe07cc5d8221 100644
--- a/cui/source/tabpages/border.cxx
+++ b/cui/source/tabpages/border.cxx
@@ -19,8 +19,6 @@
#include <sal/config.h>
-#include <string_view>
-
#include <sfx2/objsh.hxx>
#include <svx/strings.hrc>
#include <svx/svxids.hrc>
@@ -37,6 +35,7 @@
#include <vcl/fieldvalues.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
+#include <svx/dialmgr.hxx>
#include <svx/flagsdef.hxx>
#include <svl/grabbagitem.hxx>
#include <svl/intitem.hxx>
@@ -79,22 +78,19 @@ const WhichRangesContainer SvxBorderTabPage::pRanges(
namespace
{
-int lcl_twipsToPt(sal_Int64 nTwips)
+constexpr int twipsToPt100(sal_Int64 nTwips)
{
- return vcl::ConvertDoubleValue(nTwips, 0, FieldUnit::TWIP, MapUnit::MapPoint) * 100;
+ return o3tl::convert(nTwips * 100, o3tl::Length::twip, o3tl::Length::pt);
}
+constexpr int s_LineWidths[] = { twipsToPt100(SvxBorderLineWidth::Hairline),
+ twipsToPt100(SvxBorderLineWidth::VeryThin),
+ twipsToPt100(SvxBorderLineWidth::Thin),
+ twipsToPt100(SvxBorderLineWidth::Medium),
+ twipsToPt100(SvxBorderLineWidth::Thick),
+ twipsToPt100(SvxBorderLineWidth::ExtraThick),
+ -1 };
}
-const std::vector<int> SvxBorderTabPage::m_aLineWidths = {
- lcl_twipsToPt(SvxBorderLineWidth::Hairline),
- lcl_twipsToPt(SvxBorderLineWidth::VeryThin),
- lcl_twipsToPt(SvxBorderLineWidth::Thin),
- lcl_twipsToPt(SvxBorderLineWidth::Medium),
- lcl_twipsToPt(SvxBorderLineWidth::Thick),
- lcl_twipsToPt(SvxBorderLineWidth::ExtraThick),
- -1
-};
-
static void lcl_SetDecimalDigitsTo1(weld::MetricSpinButton& rField)
{
auto nMin = rField.denormalize(rField.get_min(FieldUnit::TWIP));
@@ -140,10 +136,10 @@ static sal_Int64 lcl_GetMinLineWidth(SvxBorderLineStyle aStyle)
}
// number of preset images to show
-const sal_uInt16 SVX_BORDER_PRESET_COUNT = 5;
+const sal_uInt16 BORDER_PRESET_COUNT = 5;
// number of shadow images to show
-const sal_uInt16 SVX_BORDER_SHADOW_COUNT = 5;
+const sal_uInt16 BORDER_SHADOW_COUNT = 5;
ShadowControlsWrapper::ShadowControlsWrapper(ValueSet& rVsPos, weld::MetricSpinButton& rMfSize, ColorListBox& rLbColor)
: mrVsPos(rVsPos)
@@ -229,7 +225,7 @@ bool ShadowControlsWrapper::get_value_changed_from_saved() const
void ShadowControlsWrapper::SetControlDontKnow()
{
mrVsPos.SetNoSelection();
- mrMfSize.set_text("");
+ mrMfSize.set_text(u""_ustr);
mrLbColor.SetNoSelection();
}
@@ -286,7 +282,7 @@ void MarginControlsWrapper::SetControlDontKnow()
}
SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/borderpage.ui", "BorderPage", &rCoreAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/borderpage.ui"_ustr, u"BorderPage"_ustr, &rCoreAttrs)
, nMinValue(0)
, nSWMode(SwBorderModes::NONE)
, mnBoxSlot(SID_ATTR_BORDER_OUTER)
@@ -304,37 +300,37 @@ SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogControlle
, mbRemoveAdjacentCellBorders(false)
, bIsCalcDoc(false)
, m_xWndPresets(new ValueSet(nullptr))
- , m_xWndPresetsWin(new weld::CustomWeld(*m_xBuilder, "presets", *m_xWndPresets))
- , m_xUserDefFT(m_xBuilder->weld_label("userdefft"))
- , m_xFrameSelWin(new weld::CustomWeld(*m_xBuilder, "framesel", m_aFrameSel))
- , m_xLbLineStyle(new SvtLineListBox(m_xBuilder->weld_menu_button("linestylelb")))
- , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"),
+ , m_xWndPresetsWin(new weld::CustomWeld(*m_xBuilder, u"presets"_ustr, *m_xWndPresets))
+ , m_xUserDefFT(m_xBuilder->weld_label(u"userdefft"_ustr))
+ , m_xFrameSelWin(new weld::CustomWeld(*m_xBuilder, u"framesel"_ustr, m_aFrameSel))
+ , m_xLbLineStyle(new SvtLineListBox(m_xBuilder->weld_menu_button(u"linestylelb"_ustr)))
+ , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button(u"linecolorlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xLineWidthLB(m_xBuilder->weld_combo_box("linewidthlb"))
- , m_xLineWidthMF(m_xBuilder->weld_metric_spin_button("linewidthmf", FieldUnit::POINT))
- , m_xSpacingFrame(m_xBuilder->weld_container("spacing"))
- , m_xLeftFT(m_xBuilder->weld_label("leftft"))
- , m_xLeftMF(m_xBuilder->weld_metric_spin_button("leftmf", FieldUnit::MM))
- , m_xRightFT(m_xBuilder->weld_label("rightft"))
- , m_xRightMF(m_xBuilder->weld_metric_spin_button("rightmf", FieldUnit::MM))
- , m_xTopFT(m_xBuilder->weld_label("topft"))
- , m_xTopMF(m_xBuilder->weld_metric_spin_button("topmf", FieldUnit::MM))
- , m_xBottomFT(m_xBuilder->weld_label("bottomft"))
- , m_xBottomMF(m_xBuilder->weld_metric_spin_button("bottommf", FieldUnit::MM))
- , m_xSynchronizeCB(m_xBuilder->weld_check_button("sync"))
- , m_xShadowFrame(m_xBuilder->weld_container("shadow"))
+ , m_xLineWidthLB(m_xBuilder->weld_combo_box(u"linewidthlb"_ustr))
+ , m_xLineWidthMF(m_xBuilder->weld_metric_spin_button(u"linewidthmf"_ustr, FieldUnit::POINT))
+ , m_xSpacingFrame(m_xBuilder->weld_container(u"spacing"_ustr))
+ , m_xLeftFT(m_xBuilder->weld_label(u"leftft"_ustr))
+ , m_xLeftMF(m_xBuilder->weld_metric_spin_button(u"leftmf"_ustr, FieldUnit::MM))
+ , m_xRightFT(m_xBuilder->weld_label(u"rightft"_ustr))
+ , m_xRightMF(m_xBuilder->weld_metric_spin_button(u"rightmf"_ustr, FieldUnit::MM))
+ , m_xTopFT(m_xBuilder->weld_label(u"topft"_ustr))
+ , m_xTopMF(m_xBuilder->weld_metric_spin_button(u"topmf"_ustr, FieldUnit::MM))
+ , m_xBottomFT(m_xBuilder->weld_label(u"bottomft"_ustr))
+ , m_xBottomMF(m_xBuilder->weld_metric_spin_button(u"bottommf"_ustr, FieldUnit::MM))
+ , m_xSynchronizeCB(m_xBuilder->weld_check_button(u"sync"_ustr))
+ , m_xShadowFrame(m_xBuilder->weld_container(u"shadow"_ustr))
, m_xWndShadows(new ValueSet(nullptr))
- , m_xWndShadowsWin(new weld::CustomWeld(*m_xBuilder, "shadows", *m_xWndShadows))
- , m_xFtShadowSize(m_xBuilder->weld_label("distanceft"))
- , m_xEdShadowSize(m_xBuilder->weld_metric_spin_button("distancemf", FieldUnit::MM))
- , m_xFtShadowColor(m_xBuilder->weld_label("shadowcolorft"))
- , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("shadowcolorlb"),
+ , m_xWndShadowsWin(new weld::CustomWeld(*m_xBuilder, u"shadows"_ustr, *m_xWndShadows))
+ , m_xFtShadowSize(m_xBuilder->weld_label(u"distanceft"_ustr))
+ , m_xEdShadowSize(m_xBuilder->weld_metric_spin_button(u"distancemf"_ustr, FieldUnit::MM))
+ , m_xFtShadowColor(m_xBuilder->weld_label(u"shadowcolorft"_ustr))
+ , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button(u"shadowcolorlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xPropertiesFrame(m_xBuilder->weld_container("properties"))
- , m_xMergeWithNextCB(m_xBuilder->weld_check_button("mergewithnext"))
- , m_xMergeAdjacentBordersCB(m_xBuilder->weld_check_button("mergeadjacent"))
- , m_xRemoveAdjacentCellBordersCB(m_xBuilder->weld_check_button("rmadjcellborders"))
- , m_xRemoveAdjacentCellBordersFT(m_xBuilder->weld_label("rmadjcellbordersft"))
+ , m_xPropertiesFrame(m_xBuilder->weld_container(u"properties"_ustr))
+ , m_xMergeWithNextCB(m_xBuilder->weld_check_button(u"mergewithnext"_ustr))
+ , m_xMergeAdjacentBordersCB(m_xBuilder->weld_check_button(u"mergeadjacent"_ustr))
+ , m_xRemoveAdjacentCellBordersCB(m_xBuilder->weld_check_button(u"rmadjcellborders"_ustr))
+ , m_xRemoveAdjacentCellBordersFT(m_xBuilder->weld_label(u"rmadjcellbordersft"_ustr))
{
static std::vector<OUString> aBorderImageIds;
@@ -412,7 +408,7 @@ SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogControlle
for (auto const & rImageId : aShadowImageIds)
m_aShadowImgVec.emplace_back(StockImage::Yes, rImageId);
- assert(m_aShadowImgVec.size() == SVX_BORDER_SHADOW_COUNT);
+ assert(m_aShadowImgVec.size() == BORDER_SHADOW_COUNT);
// this page needs ExchangeSupport
SetExchangeSupport();
@@ -422,19 +418,16 @@ SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogControlle
is needed across various functions... */
mbUseMarginItem = rCoreAttrs.GetItemState(GetWhich(SID_ATTR_ALIGN_MARGIN)) != SfxItemState::UNKNOWN;
- const SfxPoolItem* pItem = nullptr;
- if (rCoreAttrs.HasItem(SID_ATTR_BORDER_STYLES, &pItem))
+ if (const SfxIntegerListItem* p = rCoreAttrs.GetItemIfSet(SID_ATTR_BORDER_STYLES))
{
- const SfxIntegerListItem* p = static_cast<const SfxIntegerListItem*>(pItem);
std::vector<sal_Int32> aUsedStyles = p->GetList();
for (int aUsedStyle : aUsedStyles)
maUsedBorderStyles.insert(static_cast<SvxBorderLineStyle>(aUsedStyle));
}
- if (rCoreAttrs.HasItem(SID_ATTR_BORDER_DEFAULT_WIDTH, &pItem))
+ if (const SfxInt64Item* p = rCoreAttrs.GetItemIfSet(SID_ATTR_BORDER_DEFAULT_WIDTH))
{
// The caller specifies default line width. Honor it.
- const SfxInt64Item* p = static_cast<const SfxInt64Item*>(pItem);
SetLineWidth(p->GetValue());
}
@@ -547,10 +540,11 @@ SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogControlle
SetLineWidth(m_xLineWidthMF->get_value(FieldUnit::NONE));
// connections
+ const SfxPoolItem* pItem = nullptr;
if (rCoreAttrs.HasItem(GetWhich(SID_ATTR_PARA_GRABBAG), &pItem))
{
const SfxGrabBagItem* pGrabBag = static_cast<const SfxGrabBagItem*>(pItem);
- auto it = pGrabBag->GetGrabBag().find("DialogUseCharAttr");
+ auto it = pGrabBag->GetGrabBag().find(u"DialogUseCharAttr"_ustr);
if (it != pGrabBag->GetGrabBag().end())
{
bool bDialogUseCharAttr = false;
@@ -577,12 +571,11 @@ SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogControlle
// checkbox "Merge adjacent line styles" only visible for Writer dialog format.table
m_xMergeAdjacentBordersCB->hide();
- SfxObjectShell* pDocSh = SfxObjectShell::Current();
- if (pDocSh)
+ if (SfxObjectShell* pDocSh = SfxObjectShell::Current())
{
Reference< XServiceInfo > xSI( pDocSh->GetModel(), UNO_QUERY );
if ( xSI.is() )
- bIsCalcDoc = xSI->supportsService("com.sun.star.sheet.SpreadsheetDocument");
+ bIsCalcDoc = xSI->supportsService(u"com.sun.star.sheet.SpreadsheetDocument"_ustr);
}
if( bIsCalcDoc )
{
@@ -641,7 +634,7 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
if (m_aFrameSel.IsBorderEnabled(svx::FrameBorderType::TLBR))
{
- sal_uInt16 nBorderDiagId = pPool->GetWhich(SID_ATTR_BORDER_DIAG_TLBR);
+ sal_uInt16 nBorderDiagId = pPool->GetWhichIDFromSlotID(SID_ATTR_BORDER_DIAG_TLBR);
if (const SvxLineItem* pLineItem = static_cast<const SvxLineItem*>(rSet->GetItem(nBorderDiagId)))
m_aFrameSel.ShowBorder(svx::FrameBorderType::TLBR, pLineItem->GetLine());
else
@@ -650,7 +643,7 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
if (m_aFrameSel.IsBorderEnabled(svx::FrameBorderType::BLTR))
{
- sal_uInt16 nBorderDiagId = pPool->GetWhich(SID_ATTR_BORDER_DIAG_BLTR);
+ sal_uInt16 nBorderDiagId = pPool->GetWhichIDFromSlotID(SID_ATTR_BORDER_DIAG_BLTR);
if (const SvxLineItem* pLineItem = static_cast<const SvxLineItem*>(rSet->GetItem(nBorderDiagId)))
m_aFrameSel.ShowBorder(svx::FrameBorderType::BLTR, pLineItem->GetLine());
else
@@ -659,7 +652,7 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
if (m_xShadowControls)
{
- sal_uInt16 nShadowId = pPool->GetWhich(mnShadowSlot);
+ sal_uInt16 nShadowId = pPool->GetWhichIDFromSlotID(mnShadowSlot);
const SfxPoolItem* pItem = rSet->GetItem(nShadowId);
if (pItem)
m_xShadowControls->SetControlValue(*static_cast<const SvxShadowItem*>(pItem));
@@ -669,7 +662,7 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
if (m_xMarginControls)
{
- sal_uInt16 nAlignMarginId = pPool->GetWhich(SID_ATTR_ALIGN_MARGIN);
+ sal_uInt16 nAlignMarginId = pPool->GetWhichIDFromSlotID(SID_ATTR_ALIGN_MARGIN);
const SfxPoolItem* pItem = rSet->GetItem(nAlignMarginId);
if (pItem)
m_xMarginControls->SetControlValue(*static_cast<const SvxMarginItem*>(pItem));
@@ -677,7 +670,7 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
m_xMarginControls->SetControlDontKnow();
}
- sal_uInt16 nMergeAdjacentBordersId = pPool->GetWhich(SID_SW_COLLAPSING_BORDERS);
+ sal_uInt16 nMergeAdjacentBordersId = pPool->GetWhichIDFromSlotID(SID_SW_COLLAPSING_BORDERS);
const SfxBoolItem *pMergeAdjacentBorders = static_cast<const SfxBoolItem*>(rSet->GetItem(nMergeAdjacentBordersId));
if (!pMergeAdjacentBorders)
m_xMergeAdjacentBordersCB->set_state(TRISTATE_INDET);
@@ -685,7 +678,7 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
m_xMergeAdjacentBordersCB->set_active(pMergeAdjacentBorders->GetValue());
m_xMergeAdjacentBordersCB->save_state();
- sal_uInt16 nMergeWithNextId = pPool->GetWhich(SID_ATTR_BORDER_CONNECT);
+ sal_uInt16 nMergeWithNextId = pPool->GetWhichIDFromSlotID(SID_ATTR_BORDER_CONNECT);
const SfxBoolItem *pMergeWithNext = static_cast<const SfxBoolItem*>(rSet->GetItem(nMergeWithNextId));
if (!pMergeWithNext)
m_xMergeWithNextCB->set_state(TRISTATE_INDET);
@@ -846,13 +839,15 @@ void SvxBorderTabPage::Reset( const SfxItemSet* rSet )
SelStyleHdl_Impl(*m_xLbLineStyle);
}
- const SfxPoolItem* pItem;
- SfxObjectShell* pShell;
- if(SfxItemState::SET == rSet->GetItemState(SID_HTML_MODE, false, &pItem) ||
- ( nullptr != (pShell = SfxObjectShell::Current()) &&
- nullptr != (pItem = pShell->GetItem(SID_HTML_MODE))))
+ const SfxUInt16Item* pHtmlModeItem = rSet->GetItemIfSet(SID_HTML_MODE, false);
+ if(!pHtmlModeItem)
+ {
+ if (SfxObjectShell* pShell = SfxObjectShell::Current())
+ pHtmlModeItem = pShell->GetItem(SID_HTML_MODE);
+ }
+ if(pHtmlModeItem)
{
- sal_uInt16 nHtmlMode = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ sal_uInt16 nHtmlMode = pHtmlModeItem->GetValue();
if(nHtmlMode & HTMLMODE_ON)
{
// there are no shadows in Html-mode and only complete borders
@@ -958,7 +953,7 @@ bool SvxBorderTabPage::FillItemSet( SfxItemSet* rCoreAttrs )
auto nState = m_xMergeAdjacentBordersCB->get_state();
if (nState == TRISTATE_INDET)
{
- sal_uInt16 nMergeAdjacentBordersId = pPool->GetWhich(SID_SW_COLLAPSING_BORDERS);
+ sal_uInt16 nMergeAdjacentBordersId = pPool->GetWhichIDFromSlotID(SID_SW_COLLAPSING_BORDERS);
rCoreAttrs->ClearItem(nMergeAdjacentBordersId);
}
else
@@ -978,7 +973,7 @@ bool SvxBorderTabPage::FillItemSet( SfxItemSet* rCoreAttrs )
auto nState = m_xMergeWithNextCB->get_state();
if (nState == TRISTATE_INDET)
{
- sal_uInt16 nMergeWithNextId = pPool->GetWhich(SID_ATTR_BORDER_CONNECT);
+ sal_uInt16 nMergeWithNextId = pPool->GetWhichIDFromSlotID(SID_ATTR_BORDER_CONNECT);
rCoreAttrs->ClearItem(nMergeWithNextId);
}
else
@@ -995,7 +990,7 @@ bool SvxBorderTabPage::FillItemSet( SfxItemSet* rCoreAttrs )
bool bPut = true;
sal_uInt16 nBoxWhich = GetWhich( mnBoxSlot );
- sal_uInt16 nBoxInfoWhich = pPool->GetWhich( SID_ATTR_BORDER_INNER, false );
+ sal_uInt16 nBoxInfoWhich = pPool->GetWhichIDFromSlotID( SID_ATTR_BORDER_INNER, false );
const SfxItemSet& rOldSet = GetItemSet();
SvxBoxItem aBoxItem ( nBoxWhich );
SvxBoxInfoItem aBoxInfoItem ( nBoxInfoWhich );
@@ -1236,15 +1231,19 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelSdwHdl_Impl, ValueSet*, void)
IMPL_LINK(SvxBorderTabPage, SelColHdl_Impl, ColorListBox&, rColorBox, void)
{
- Color aColor = rColorBox.GetSelectEntryColor();
- m_aFrameSel.SetColorToSelection(aColor);
+ NamedColor aNamedColor = rColorBox.GetSelectedEntry();
+ m_aFrameSel.SetColorToSelection(aNamedColor.m_aColor, aNamedColor.getComplexColor());
}
IMPL_LINK_NOARG(SvxBorderTabPage, ModifyWidthLBHdl_Impl, weld::ComboBox&, void)
{
sal_Int32 nPos = m_xLineWidthLB->get_active();
+ sal_Int32 nRemovedType = 0;
+ if (m_xLineWidthLB->get_values_changed_from_saved()) {
+ nRemovedType = std::size(s_LineWidths) - m_xLineWidthLB->get_count();
+ }
- SetLineWidth(m_aLineWidths[nPos]);
+ SetLineWidth(s_LineWidths[nPos + nRemovedType], nRemovedType);
// Call the spinner handler to trigger all related modifications
ModifyWidthMFHdl_Impl(*m_xLineWidthMF);
@@ -1253,6 +1252,13 @@ IMPL_LINK_NOARG(SvxBorderTabPage, ModifyWidthLBHdl_Impl, weld::ComboBox&, void)
IMPL_LINK_NOARG(SvxBorderTabPage, ModifyWidthMFHdl_Impl, weld::MetricSpinButton&, void)
{
sal_Int64 nVal = m_xLineWidthMF->get_value(FieldUnit::NONE);
+
+ // for DOUBLE_THIN line style we cannot allow thinner line width then 1.10pt
+ if (m_xLbLineStyle->GetSelectEntryStyle() == SvxBorderLineStyle::DOUBLE_THIN)
+ m_xLineWidthMF->set_min(110, FieldUnit::NONE);
+ else
+ m_xLineWidthMF->set_min(5, FieldUnit::NONE);
+
nVal = static_cast<sal_Int64>(vcl::ConvertDoubleValue(
nVal,
m_xLineWidthMF->get_digits(),
@@ -1266,6 +1272,13 @@ IMPL_LINK_NOARG(SvxBorderTabPage, ModifyWidthMFHdl_Impl, weld::MetricSpinButton&
IMPL_LINK_NOARG(SvxBorderTabPage, SelStyleHdl_Impl, SvtLineListBox&, void)
{
sal_Int64 nOldWidth = m_xLineWidthMF->get_value(FieldUnit::NONE);
+
+ // for DOUBLE_THIN line style we cannot allow thinner line width then 1.10pt
+ if (m_xLbLineStyle->GetSelectEntryStyle() == SvxBorderLineStyle::DOUBLE_THIN)
+ m_xLineWidthMF->set_min(110, FieldUnit::NONE);
+ else
+ m_xLineWidthMF->set_min(5, FieldUnit::NONE);
+
nOldWidth = static_cast<sal_Int64>(vcl::ConvertDoubleValue(
nOldWidth,
m_xLineWidthMF->get_digits(),
@@ -1277,7 +1290,14 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelStyleHdl_Impl, SvtLineListBox&, void)
// auto change line-width if it doesn't correspond to minimal value
// let's change only in case when user has not changed the line-width into some custom value
- const sal_Int64 nNewWidth = (nOldMinWidth == nOldWidth)? nNewMinWidth : nOldWidth;
+ sal_Int64 nNewWidth = (nOldMinWidth == nOldWidth) ? nNewMinWidth : nOldWidth;
+
+ // if we had selected a predefined border width under SvxBorderLineWidth::Medium set the Medium as default
+ // otherwise if we had a custom border width under 1.10pt then set the spinner to the maximum allowed value for double border styles
+ bool bNewDoubleHairline = m_xLbLineStyle->GetSelectEntryStyle() == SvxBorderLineStyle::DOUBLE_THIN && !m_xLineWidthMF->get_visible() &&
+ (nOldWidth == SvxBorderLineWidth::Hairline || nOldWidth == SvxBorderLineWidth::VeryThin || nOldWidth == SvxBorderLineWidth::Thin);
+ if (bNewDoubleHairline && nNewWidth < SvxBorderLineWidth::Medium)
+ nNewWidth = SvxBorderLineWidth::Medium;
// set value inside edit box
if (nOldWidth != nNewWidth)
@@ -1290,6 +1310,26 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelStyleHdl_Impl, SvtLineListBox&, void)
SetLineWidth(nNewWidthPt);
}
+ if (m_xLbLineStyle->GetSelectEntryStyle() == SvxBorderLineStyle::DOUBLE_THIN)
+ {
+ for (size_t i = 0; i < 3; i++)
+ {
+ m_xLineWidthLB->save_values_by_id(OUString::number(i));
+ m_xLineWidthLB->remove_id(OUString::number(i));
+ }
+ if (m_xLineWidthLB->get_active_id().isEmpty())
+ m_xLineWidthLB->set_active_id(u"3"_ustr);
+ }
+ else
+ {
+ if (m_xLineWidthLB->get_values_changed_from_saved())
+ {
+ for (size_t i = 0; i < 3; i++)
+ m_xLineWidthLB->append(i, OUString::number(i), m_xLineWidthLB->get_saved_values(i));
+ m_xLineWidthLB->removeSavedValues();
+ }
+ }
+
// set value inside style box
m_aFrameSel.SetStyleToSelection( nNewWidth,
m_xLbLineStyle->GetSelectEntryStyle() );
@@ -1300,7 +1340,7 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelStyleHdl_Impl, SvtLineListBox&, void)
sal_uInt16 SvxBorderTabPage::GetPresetImageId( sal_uInt16 nValueSetIdx ) const
{
// table with all sets of predefined border styles
- static const sal_uInt16 ppnImgIds[][ SVX_BORDER_PRESET_COUNT ] =
+ static const sal_uInt16 ppnImgIds[][ BORDER_PRESET_COUNT ] =
{
// simple cell without diagonal frame borders
{ IID_PRE_CELL_NONE, IID_PRE_CELL_ALL, IID_PRE_CELL_LR, IID_PRE_CELL_TB, IID_PRE_CELL_L },
@@ -1325,7 +1365,7 @@ sal_uInt16 SvxBorderTabPage::GetPresetImageId( sal_uInt16 nValueSetIdx ) const
else
nLine = 4;
- DBG_ASSERT( (1 <= nValueSetIdx) && (nValueSetIdx <= SVX_BORDER_PRESET_COUNT),
+ DBG_ASSERT( (1 <= nValueSetIdx) && (nValueSetIdx <= BORDER_PRESET_COUNT),
"SvxBorderTabPage::GetPresetImageId - wrong index" );
return ppnImgIds[ nLine ][ nValueSetIdx - 1 ];
}
@@ -1367,14 +1407,14 @@ void SvxBorderTabPage::FillPresetVS()
{
// basic initialization of the ValueSet
m_xWndPresets->SetStyle( m_xWndPresets->GetStyle() | WB_ITEMBORDER | WB_DOUBLEBORDER );
- m_xWndPresets->SetColCount( SVX_BORDER_PRESET_COUNT );
+ m_xWndPresets->SetColCount( BORDER_PRESET_COUNT );
// insert images and help texts
- for( sal_uInt16 nVSIdx = 1; nVSIdx <= SVX_BORDER_PRESET_COUNT; ++nVSIdx )
+ for( sal_uInt16 nVSIdx = 1; nVSIdx <= BORDER_PRESET_COUNT; ++nVSIdx )
{
m_xWndPresets->InsertItem( nVSIdx );
m_xWndPresets->SetItemImage(nVSIdx, m_aBorderImgVec[GetPresetImageId(nVSIdx) - 1]);
- m_xWndPresets->SetItemText( nVSIdx, CuiResId( GetPresetStringId( nVSIdx ) ) );
+ m_xWndPresets->SetItemText( nVSIdx, SvxResId( GetPresetStringId( nVSIdx ) ) );
}
// show the control
@@ -1387,14 +1427,14 @@ void SvxBorderTabPage::FillShadowVS()
{
// basic initialization of the ValueSet
m_xWndShadows->SetStyle( m_xWndShadows->GetStyle() | WB_ITEMBORDER | WB_DOUBLEBORDER );
- m_xWndShadows->SetColCount( SVX_BORDER_SHADOW_COUNT );
+ m_xWndShadows->SetColCount( BORDER_SHADOW_COUNT );
// string resource IDs for each image
- static const TranslateId pnStrIds[ SVX_BORDER_SHADOW_COUNT ] =
- { RID_SVXSTR_SHADOW_STYLE_NONE, RID_SVXSTR_SHADOW_STYLE_BOTTOMRIGHT, RID_SVXSTR_SHADOW_STYLE_TOPRIGHT, RID_SVXSTR_SHADOW_STYLE_BOTTOMLEFT, RID_SVXSTR_SHADOW_STYLE_TOPLEFT };
+ static const TranslateId pnStrIds[ BORDER_SHADOW_COUNT ] =
+ { RID_CUISTR_SHADOW_STYLE_NONE, RID_CUISTR_SHADOW_STYLE_BOTTOMRIGHT, RID_CUISTR_SHADOW_STYLE_TOPRIGHT, RID_CUISTR_SHADOW_STYLE_BOTTOMLEFT, RID_CUISTR_SHADOW_STYLE_TOPLEFT };
// insert images and help texts
- for( sal_uInt16 nVSIdx = 1; nVSIdx <= SVX_BORDER_SHADOW_COUNT; ++nVSIdx )
+ for( sal_uInt16 nVSIdx = 1; nVSIdx <= BORDER_SHADOW_COUNT; ++nVSIdx )
{
m_xWndShadows->InsertItem( nVSIdx );
m_xWndShadows->SetItemImage(nVSIdx, m_aShadowImgVec[nVSIdx-1]);
@@ -1414,24 +1454,23 @@ void SvxBorderTabPage::FillValueSets()
FillShadowVS();
}
-void SvxBorderTabPage::SetLineWidth( sal_Int64 nWidth )
+void SvxBorderTabPage::SetLineWidth( sal_Int64 nWidth, sal_Int32 nRemovedType )
{
if ( nWidth >= 0 )
m_xLineWidthMF->set_value( nWidth, FieldUnit::POINT );
- auto it = std::find_if( m_aLineWidths.begin(), m_aLineWidths.end(),
- [nWidth](const int val) -> bool { return val == nWidth; } );
+ auto it = std::find( std::begin(s_LineWidths), std::end(s_LineWidths), nWidth );
- if ( it != m_aLineWidths.end() && *it >= 0 )
+ if ( it != std::end(s_LineWidths) && *it >= 0 )
{
// Select predefined value in combobox
m_xLineWidthMF->hide();
- m_xLineWidthLB->set_active(std::distance(m_aLineWidths.begin(), it));
+ m_xLineWidthLB->set_active(std::distance(std::begin(s_LineWidths), it) - nRemovedType);
}
else
{
// This is not one of predefined values. Show spinner
- m_xLineWidthLB->set_active(m_aLineWidths.size()-1);
+ m_xLineWidthLB->set_active(std::size(s_LineWidths) - nRemovedType -1);
m_xLineWidthMF->show();
}
}
@@ -1478,7 +1517,7 @@ void SvxBorderTabPage::FillLineListBox_Impl()
m_xLbLineStyle->SetSourceUnit( FieldUnit::TWIP );
- for (size_t i = 0; i < SAL_N_ELEMENTS(aLines); ++i)
+ for (size_t i = 0; i < std::size(aLines); ++i)
{
if (!IsBorderLineStyleAllowed(aLines[i].mnStyle))
continue;
@@ -1603,7 +1642,7 @@ void SvxBorderTabPage::UpdateRemoveAdjCellBorderCB( sal_uInt16 nPreset )
// Check if current selection involves deletion of at least one border
bool bBorderDeletionReq = false;
- for ( size_t i=0; i < SAL_N_ELEMENTS( eTypes1 ); ++i )
+ for ( size_t i=0; i < std::size( eTypes1 ); ++i )
{
if( pOldBoxItem->GetLine( eTypes2[i] ) || !( pOldBoxInfoItem->IsValid( eTypes1[i].second ) ) )
{
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index fef7b46fb537..bd1f6810cf31 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -23,7 +23,6 @@
#include <sfx2/objsh.hxx>
#include <svx/svxids.hrc>
#include <svtools/unitconv.hxx>
-#include <svl/languageoptions.hxx>
#include <svl/cjkoptions.hxx>
#include <svl/ctloptions.hxx>
#include <chardlg.hxx>
@@ -42,10 +41,11 @@
#include <editeng/kernitem.hxx>
#include <editeng/flstitem.hxx>
#include <editeng/autokernitem.hxx>
+#include <editeng/nhypitem.hxx>
#include <editeng/colritem.hxx>
#include <dialmgr.hxx>
#include <sfx2/htmlmode.hxx>
-#include <cui/cuicharmap.hxx>
+#include <svx/cuicharmap.hxx>
#include "chardlg.h"
#include <editeng/emphasismarkitem.hxx>
#include <editeng/charreliefitem.hxx>
@@ -63,6 +63,7 @@
#include <sal/log.hxx>
#include <osl/diagnose.h>
#include <o3tl/unit_conversion.hxx>
+#include <o3tl/string_view.hxx>
using namespace ::com::sun::star;
@@ -132,7 +133,7 @@ inline SvxFont& SvxCharBasePage::GetPreviewCTLFont()
return m_aPreviewWin.GetCTLFont();
}
-SvxCharBasePage::SvxCharBasePage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rID, const SfxItemSet& rItemset)
+SvxCharBasePage::SvxCharBasePage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rID, const SfxItemSet& rItemset)
: SfxTabPage(pPage, pController, rUIXMLDescription, rID, &rItemset)
, m_bPreviewBackgroundToCharacter( false )
{
@@ -188,86 +189,74 @@ struct SvxCharNamePage_Impl
// class SvxCharNamePage -------------------------------------------------
SvxCharNamePage::SvxCharNamePage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInSet)
- : SvxCharBasePage(pPage, pController, "cui/ui/charnamepage.ui", "CharNamePage", rInSet)
+ : SvxCharBasePage(pPage, pController, u"cui/ui/charnamepage.ui"_ustr, u"CharNamePage"_ustr, rInSet)
, m_pImpl(new SvxCharNamePage_Impl)
- , m_xEastFrame(m_xBuilder->weld_widget("asian"))
- , m_xEastFontNameFT(m_xBuilder->weld_label("eastfontnameft"))
- , m_xEastFontNameLB(m_xBuilder->weld_combo_box("eastfontnamelb"))
- , m_xEastFontStyleFT(m_xBuilder->weld_label("eaststyleft"))
- , m_xEastFontStyleLB(new FontStyleBox(m_xBuilder->weld_combo_box("eaststylelb")))
- , m_xEastFontSizeFT(m_xBuilder->weld_label("eastsizeft"))
- , m_xEastFontSizeLB(new FontSizeBox(m_xBuilder->weld_combo_box("eastsizelb")))
- , m_xEastFontLanguageFT(m_xBuilder->weld_label("eastlangft"))
- , m_xEastFontLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("eastlanglb")))
- , m_xEastFontTypeFT(m_xBuilder->weld_label("eastfontinfo"))
- , m_xEastFontFeaturesButton(m_xBuilder->weld_button("east_features_button"))
- , m_xCTLFrame(m_xBuilder->weld_widget("ctl"))
- , m_xCTLFontNameFT(m_xBuilder->weld_label("ctlfontnameft"))
- , m_xCTLFontNameLB(m_xBuilder->weld_combo_box("ctlfontnamelb"))
- , m_xCTLFontStyleFT(m_xBuilder->weld_label("ctlstyleft"))
- , m_xCTLFontStyleLB(new FontStyleBox(m_xBuilder->weld_combo_box("ctlstylelb")))
- , m_xCTLFontSizeFT(m_xBuilder->weld_label("ctlsizeft"))
- , m_xCTLFontSizeLB(new FontSizeBox(m_xBuilder->weld_combo_box("ctlsizelb")))
- , m_xCTLFontLanguageFT(m_xBuilder->weld_label("ctllangft"))
- , m_xCTLFontLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("ctllanglb")))
- , m_xCTLFontTypeFT(m_xBuilder->weld_label("ctlfontinfo"))
- , m_xCTLFontFeaturesButton(m_xBuilder->weld_button("ctl_features_button"))
- , m_xVDev(*Application::GetDefaultDevice(), DeviceFormat::DEFAULT, DeviceFormat::DEFAULT)
-{
- m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWin));
+ // Western
+ , m_xWestern(m_xBuilder->weld_notebook(u"nbWestern"_ustr))
+ , m_xWestFontNameFT(m_xBuilder->weld_label(u"lbWestFontname"_ustr))
+ , m_xWestFontStyleFT(m_xBuilder->weld_label(u"lbWestStyle"_ustr))
+ , m_xWestFontStyleLB(new FontStyleBox(m_xBuilder->weld_combo_box(u"cbWestStyle"_ustr)))
+ , m_xWestFontSizeFT(m_xBuilder->weld_label(u"lbWestSize"_ustr))
+ , m_xWestFontSizeLB(new FontSizeBox(m_xBuilder->weld_combo_box(u"cbWestSize"_ustr)))
+ , m_xWestFontLanguageFT(m_xBuilder->weld_label(u"lbWestLanguage"_ustr))
+ , m_xWestFontLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"cbWestLanguage"_ustr)))
+ , m_xWestFontFeaturesButton(m_xBuilder->weld_button(u"btnWestFeatures"_ustr))
+ , m_xWestFontTypeFT(m_xBuilder->weld_label(u"lbWestFontinfo"_ustr))
+ , m_xCJK_CTL(m_xBuilder->weld_notebook(u"nbCJKCTL"_ustr))
+ // CJK
+ , m_xEastFontNameFT(m_xBuilder->weld_label(u"lbCJKFontname"_ustr))
+ , m_xEastFontStyleFT(m_xBuilder->weld_label(u"lbCJKStyle"_ustr))
+ , m_xEastFontStyleLB(new FontStyleBox(m_xBuilder->weld_combo_box(u"cbCJKStyle"_ustr)))
+ , m_xEastFontSizeFT(m_xBuilder->weld_label(u"lbCJKSize"_ustr))
+ , m_xEastFontSizeLB(new FontSizeBox(m_xBuilder->weld_combo_box(u"cbCJKSize"_ustr)))
+ , m_xEastFontLanguageFT(m_xBuilder->weld_label(u"lbCJKLanguage"_ustr))
+ , m_xEastFontLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"cbCJKLanguage"_ustr)))
+ , m_xEastFontFeaturesButton(m_xBuilder->weld_button(u"btnCJKFeatures"_ustr))
+ , m_xEastFontTypeFT(m_xBuilder->weld_label(u"lbCJKFontinfo"_ustr))
+ // CTL
+ , m_xCTLFontNameFT(m_xBuilder->weld_label(u"lbCTLFontname"_ustr))
+ // tree
+ , m_xCTLFontStyleFT(m_xBuilder->weld_label(u"lbCTLStyle"_ustr))
+ , m_xCTLFontStyleLB(new FontStyleBox(m_xBuilder->weld_combo_box(u"cbCTLStyle"_ustr)))
+ , m_xCTLFontSizeFT(m_xBuilder->weld_label(u"lbCTLSize"_ustr))
+ , m_xCTLFontSizeLB(new FontSizeBox(m_xBuilder->weld_combo_box(u"cbCTLSize"_ustr)))
+ , m_xCTLFontLanguageFT(m_xBuilder->weld_label(u"lbCTLLanguage"_ustr))
+ , m_xCTLFontLanguageLB(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"cbCTLLanguage"_ustr)))
+ , m_xCTLFontFeaturesButton(m_xBuilder->weld_button(u"btnCTLFeatures"_ustr))
+ , m_xCTLFontTypeFT(m_xBuilder->weld_label(u"lbCTLFontinfo"_ustr))
+
+ , m_xVDev(*Application::GetDefaultDevice(), DeviceFormat::WITH_ALPHA)
+{
+ m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aPreviewWin));
#ifdef IOS
m_xPreviewWin->hide();
#endif
- m_pImpl->m_aNoStyleText = CuiResId( RID_SVXSTR_CHARNAME_NOSTYLE );
+ m_pImpl->m_aNoStyleText = CuiResId( RID_CUISTR_CHARNAME_NOSTYLE );
- SvtCTLOptions aCTLLanguageOptions;
- bool bShowCJK = SvtCJKOptions::IsCJKFontEnabled();
- bool bShowCTL = aCTLLanguageOptions.IsCTLFontEnabled();
- bool bShowNonWestern = bShowCJK || bShowCTL;
-
- if (bShowNonWestern)
- {
- m_xWestFrame = m_xBuilder->weld_widget("western");
- m_xWestFontNameFT = m_xBuilder->weld_label("westfontnameft-cjk");
- m_xWestFontNameLB = m_xBuilder->weld_combo_box("westfontnamelb-cjk");
- m_xWestFontStyleFT = m_xBuilder->weld_label("weststyleft-cjk");
- m_xWestFontSizeFT = m_xBuilder->weld_label("westsizeft-cjk");
+ std::unique_ptr<weld::EntryTreeView> xWestFontName = m_xBuilder->weld_entry_tree_view(u"gdWestern"_ustr, u"edWestFontName"_ustr, u"trWestFontName"_ustr);
+ std::unique_ptr<weld::EntryTreeView> xCJKFontName = m_xBuilder->weld_entry_tree_view(u"gdCJK"_ustr, u"edCJKFontName"_ustr, u"trCJKFontName"_ustr);
+ std::unique_ptr<weld::EntryTreeView> xCTLFontName = m_xBuilder->weld_entry_tree_view(u"gdCTL"_ustr, u"edCTLFontName"_ustr, u"trCTLFontName"_ustr);
- m_xWestFontStyleLB.reset(new FontStyleBox(m_xBuilder->weld_combo_box("weststylelb-cjk")));
- m_xWestFontSizeLB.reset(new FontSizeBox(m_xBuilder->weld_combo_box("westsizelb-cjk")));
+ // 7 lines in the treeview
+ xWestFontName->set_height_request_by_rows(7);
+ xCJKFontName->set_height_request_by_rows(7);
+ xCTLFontName->set_height_request_by_rows(7);
- m_xWestFontLanguageFT = m_xBuilder->weld_label("westlangft-cjk");
- m_xWestFontLanguageLB.reset(new SvxLanguageBox(m_xBuilder->weld_combo_box("westlanglb-cjk")));
- m_xWestFontTypeFT = m_xBuilder->weld_label("westfontinfo-cjk");
+ m_xWestFontNameLB = std::move(xWestFontName);
+ m_xEastFontNameLB = std::move(xCJKFontName);
+ m_xCTLFontNameLB = std::move(xCTLFontName);
- m_xWestFontFeaturesButton = m_xBuilder->weld_button("west_features_button-cjk");
- }
- else
+ bool bShowCJK = SvtCJKOptions::IsCJKFontEnabled();
+ bool bShowCTL = SvtCTLOptions::IsCTLFontEnabled();
+ bool bShowNonWestern = bShowCJK || bShowCTL;
+ if (!bShowNonWestern)
{
- m_xWestFrame = m_xBuilder->weld_widget("simple");
- m_xWestFontNameFT = m_xBuilder->weld_label("westfontnameft-nocjk");
- m_xWestFontStyleFT = m_xBuilder->weld_label("weststyleft-nocjk");
- m_xWestFontSizeFT = m_xBuilder->weld_label("westsizeft-nocjk");
-
- m_xWestFontLanguageFT = m_xBuilder->weld_label("westlangft-nocjk");
- m_xWestFontLanguageLB.reset(new SvxLanguageBox(m_xBuilder->weld_combo_box("westlanglb-nocjk")));
- m_xWestFontTypeFT = m_xBuilder->weld_label("westfontinfo-nocjk");
-
- m_xWestFontFeaturesButton = m_xBuilder->weld_button("west_features_button-nocjk");
-
- std::unique_ptr<weld::EntryTreeView> xWestFontNameLB = m_xBuilder->weld_entry_tree_view("namegrid", "westfontname-nocjk", "westfontnamelb-nocjk");
- std::unique_ptr<weld::EntryTreeView> xWestFontStyleLB = m_xBuilder->weld_entry_tree_view("stylegrid", "weststyle-nocjk", "weststylelb-nocjk");
- std::unique_ptr<weld::EntryTreeView> xWestFontSizeLB = m_xBuilder->weld_entry_tree_view("sizegrid", "westsize-nocjk", "westsizelb-nocjk");
-
- // 7 lines in the treeview
- xWestFontNameLB->set_height_request_by_rows(7);
- xWestFontStyleLB->set_height_request_by_rows(7);
- xWestFontSizeLB->set_height_request_by_rows(7);
-
- m_xWestFontNameLB = std::move(xWestFontNameLB);
- m_xWestFontStyleLB.reset(new FontStyleBox(std::move(xWestFontStyleLB)));
- m_xWestFontSizeLB.reset(new FontSizeBox(std::move(xWestFontSizeLB)));
+ m_xCJK_CTL->hide();
+ m_xWestern->set_show_tabs(false); //hide single tab in case of Western only
}
+ else if (!bShowCJK) m_xCJK_CTL->remove_page(u"nbCJK"_ustr);
+ else if (!bShowCTL) m_xCJK_CTL->remove_page(u"nbCTL"_ustr);
+
//In MacOSX the standard dialogs name font-name, font-style as
//Family, Typeface
@@ -276,33 +265,34 @@ SvxCharNamePage::SvxCharNamePage(weld::Container* pPage, weld::DialogController*
//In Windows the standard dialogs name font-name, font-style as
//Font, Style
#ifdef _WIN32
- OUString sFontFamilyString(CuiResId(RID_SVXSTR_CHARNAME_FONT));
+ OUString sFontFamilyString(CuiResId(RID_CUISTR_CHARNAME_FONT));
#else
- OUString sFontFamilyString(CuiResId(RID_SVXSTR_CHARNAME_FAMILY));
+ OUString sFontFamilyString(CuiResId(RID_CUISTR_CHARNAME_FAMILY));
#endif
m_xWestFontNameFT->set_label(sFontFamilyString);
- m_xEastFontNameFT->set_label(sFontFamilyString);
m_xCTLFontNameFT->set_label(sFontFamilyString);
+ m_xEastFontNameFT->set_label(sFontFamilyString);
#ifdef MACOSX
- OUString sFontStyleString(CuiResId(RID_SVXSTR_CHARNAME_TYPEFACE));
+ OUString sFontStyleString(CuiResId(RID_CUISTR_CHARNAME_TYPEFACE));
#else
- OUString sFontStyleString(CuiResId(RID_SVXSTR_CHARNAME_STYLE));
+ OUString sFontStyleString(CuiResId(RID_CUISTR_CHARNAME_STYLE));
#endif
m_xWestFontStyleFT->set_label(sFontStyleString);
m_xEastFontStyleFT->set_label(sFontStyleString);
m_xCTLFontStyleFT->set_label(sFontStyleString);
- m_xWestFrame->show();
- m_xEastFrame->set_visible(bShowCJK);
- m_xCTLFrame->set_visible(bShowCTL);
-
m_xWestFontLanguageLB->SetLanguageList(SvxLanguageListFlags::WESTERN, true, false, true, true,
- LANGUAGE_SYSTEM, css::i18n::ScriptType::LATIN);
+ LANGUAGE_SYSTEM, css::i18n::ScriptType::LATIN);
m_xEastFontLanguageLB->SetLanguageList(SvxLanguageListFlags::CJK, true, false, true, true,
- LANGUAGE_SYSTEM, css::i18n::ScriptType::ASIAN);
+ LANGUAGE_SYSTEM, css::i18n::ScriptType::ASIAN);
m_xCTLFontLanguageLB->SetLanguageList(SvxLanguageListFlags::CTL, true, false, true, true,
- LANGUAGE_SYSTEM, css::i18n::ScriptType::COMPLEX);
+ LANGUAGE_SYSTEM, css::i18n::ScriptType::COMPLEX);
+ int nVisibleChars = 15;
+ // read-only combobox / HasEntry asserts on set_width_char()
+ m_xWestFontLanguageLB->set_width_chars(nVisibleChars);
+ m_xEastFontLanguageLB->set_width_chars(nVisibleChars);
+ m_xCTLFontLanguageLB->set_width_chars(nVisibleChars);
Initialize();
}
@@ -354,10 +344,8 @@ const FontList* SvxCharNamePage::GetFontList() const
{
if ( !m_pImpl->m_pFontList )
{
- SfxObjectShell* pDocSh = SfxObjectShell::Current();
-
/* #110771# SvxFontListItem::GetFontList can return NULL */
- if ( pDocSh )
+ if (SfxObjectShell* pDocSh = SfxObjectShell::Current())
{
const SfxPoolItem* pItem = pDocSh->GetItem( SID_ATTR_CHAR_FONTLIST );
if ( pItem != nullptr )
@@ -515,7 +503,7 @@ void SvxCharNamePage::EnableFeatureButton(const weld::Widget& rNameBox)
void SvxCharNamePage::FillStyleBox_Impl(const weld::Widget& rNameBox)
{
const FontList* pFontList = GetFontList();
- DBG_ASSERT( pFontList, "no fontlist" );
+ assert(pFontList && "no fontlist");
FontStyleBox* pStyleBox = nullptr;
OUString sFontName;
@@ -691,7 +679,7 @@ void SvxCharNamePage::Reset_Impl( const SfxItemSet& rSet, LanguageGroup eLangGrp
eItalic = rItem.GetValue();
bStyle = true;
}
- bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::DONTCARE);
+ bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::INVALID);
switch ( eLangGrp )
{
@@ -708,7 +696,7 @@ void SvxCharNamePage::Reset_Impl( const SfxItemSet& rSet, LanguageGroup eLangGrp
}
else
bStyle = false;
- bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::DONTCARE);
+ bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::INVALID);
// currently chosen font
if ( bStyle && pFontItem )
@@ -804,7 +792,7 @@ void SvxCharNamePage::Reset_Impl( const SfxItemSet& rSet, LanguageGroup eLangGrp
pLangBox->set_active_id(eLangType);
break;
}
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
break;
}
@@ -1072,31 +1060,40 @@ bool SvxCharNamePage::FillItemSet_Impl( SfxItemSet& rSet, LanguageGroup eLangGrp
case Asian : nSlot = SID_ATTR_CHAR_CJK_LANGUAGE; break;
case Ctl : nSlot = SID_ATTR_CHAR_CTL_LANGUAGE; break;
}
- nWhich = GetWhich( nSlot );
- pOld = GetOldItem( rSet, nSlot );
// For language list boxes acting as ComboBox, check for, add and select an
// edited entry.
- if (pLangBox == m_xWestFontLanguageLB.get())
+ switch (pLangBox->GetEditedAndValid())
{
- switch (pLangBox->GetEditedAndValid())
- {
- case SvxLanguageBox::EditedAndValid::No:
- ; // nothing to do
- break;
- case SvxLanguageBox::EditedAndValid::Valid:
+ case SvxLanguageBox::EditedAndValid::No:
+ ; // nothing to do
+ break;
+ case SvxLanguageBox::EditedAndValid::Valid:
+ {
+ SvxLanguageBox* ppBoxes[3]
+ = {m_xWestFontLanguageLB.get(), m_xEastFontLanguageLB.get(), m_xCTLFontLanguageLB.get()};
+ SvxLanguageBox* pBox = pLangBox->SaveEditedAsEntry(ppBoxes);
+ if (pBox != pLangBox)
{
- const int nPos = pLangBox->SaveEditedAsEntry();
- if (nPos != -1)
- pLangBox->set_active(nPos);
+ // Get item from corresponding slot.
+ if (pBox == m_xWestFontLanguageLB.get())
+ nSlot = SID_ATTR_CHAR_LANGUAGE;
+ else if (pBox == m_xEastFontLanguageLB.get())
+ nSlot = SID_ATTR_CHAR_CJK_LANGUAGE;
+ else if (pBox == m_xCTLFontLanguageLB.get())
+ nSlot = SID_ATTR_CHAR_CTL_LANGUAGE;
+ pLangBox = pBox;
}
- break;
- case SvxLanguageBox::EditedAndValid::Invalid:
- pLangBox->set_active_id(pLangBox->get_saved_active_id());
- break;
- }
+ }
+ break;
+ case SvxLanguageBox::EditedAndValid::Invalid:
+ pLangBox->set_active_id(pLangBox->get_saved_active_id());
+ break;
}
+ nWhich = GetWhich( nSlot );
+ pOld = GetOldItem( rSet, nSlot );
+
int nLangPos = pLangBox->get_active();
LanguageType eLangType = pLangBox->get_active_id();
@@ -1301,40 +1298,40 @@ void SvxCharNamePage::PageCreated(const SfxAllItemSet& aSet)
// class SvxCharEffectsPage ----------------------------------------------
SvxCharEffectsPage::SvxCharEffectsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInSet)
- : SvxCharBasePage(pPage, pController, "cui/ui/effectspage.ui", "EffectsPage", rInSet)
+ : SvxCharBasePage(pPage, pController, u"cui/ui/effectspage.ui"_ustr, u"EffectsPage"_ustr, rInSet)
, m_bOrigFontColor(false)
, m_bNewFontColor(false)
, m_bEnableNoneFontColor(false)
- , m_xFontColorFT(m_xBuilder->weld_label("fontcolorft"))
- , m_xFontColorLB(new ColorListBox(m_xBuilder->weld_menu_button("fontcolorlb"),
+ , m_xFontColorFT(m_xBuilder->weld_label(u"fontcolorft"_ustr))
+ , m_xFontColorLB(new ColorListBox(m_xBuilder->weld_menu_button(u"fontcolorlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xFontTransparencyFT(m_xBuilder->weld_label("fonttransparencyft"))
+ , m_xFontTransparencyFT(m_xBuilder->weld_label(u"fonttransparencyft"_ustr))
, m_xFontTransparencyMtr(
- m_xBuilder->weld_metric_spin_button("fonttransparencymtr", FieldUnit::PERCENT))
- , m_xEffectsFT(m_xBuilder->weld_label("effectsft"))
- , m_xEffectsLB(m_xBuilder->weld_combo_box("effectslb"))
- , m_xReliefFT(m_xBuilder->weld_label("reliefft"))
- , m_xReliefLB(m_xBuilder->weld_combo_box("relieflb"))
- , m_xOutlineBtn(m_xBuilder->weld_check_button("outlinecb"))
- , m_xShadowBtn(m_xBuilder->weld_check_button("shadowcb"))
- , m_xHiddenBtn(m_xBuilder->weld_check_button("hiddencb"))
- , m_xOverlineLB(m_xBuilder->weld_combo_box("overlinelb"))
- , m_xOverlineColorFT(m_xBuilder->weld_label("overlinecolorft"))
- , m_xOverlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button("overlinecolorlb"),
+ m_xBuilder->weld_metric_spin_button(u"fonttransparencymtr"_ustr, FieldUnit::PERCENT))
+ , m_xEffectsFT(m_xBuilder->weld_label(u"effectsft"_ustr))
+ , m_xEffectsLB(m_xBuilder->weld_combo_box(u"effectslb"_ustr))
+ , m_xReliefFT(m_xBuilder->weld_label(u"reliefft"_ustr))
+ , m_xReliefLB(m_xBuilder->weld_combo_box(u"relieflb"_ustr))
+ , m_xOutlineBtn(m_xBuilder->weld_check_button(u"outlinecb"_ustr))
+ , m_xShadowBtn(m_xBuilder->weld_check_button(u"shadowcb"_ustr))
+ , m_xHiddenBtn(m_xBuilder->weld_check_button(u"hiddencb"_ustr))
+ , m_xOverlineLB(m_xBuilder->weld_combo_box(u"overlinelb"_ustr))
+ , m_xOverlineColorFT(m_xBuilder->weld_label(u"overlinecolorft"_ustr))
+ , m_xOverlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button(u"overlinecolorlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xStrikeoutLB(m_xBuilder->weld_combo_box("strikeoutlb"))
- , m_xUnderlineLB(m_xBuilder->weld_combo_box("underlinelb"))
- , m_xUnderlineColorFT(m_xBuilder->weld_label("underlinecolorft"))
- , m_xUnderlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button("underlinecolorlb"),
+ , m_xStrikeoutLB(m_xBuilder->weld_combo_box(u"strikeoutlb"_ustr))
+ , m_xUnderlineLB(m_xBuilder->weld_combo_box(u"underlinelb"_ustr))
+ , m_xUnderlineColorFT(m_xBuilder->weld_label(u"underlinecolorft"_ustr))
+ , m_xUnderlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button(u"underlinecolorlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xIndividualWordsBtn(m_xBuilder->weld_check_button("individualwordscb"))
- , m_xEmphasisFT(m_xBuilder->weld_label("emphasisft"))
- , m_xEmphasisLB(m_xBuilder->weld_combo_box("emphasislb"))
- , m_xPositionFT(m_xBuilder->weld_label("positionft"))
- , m_xPositionLB(m_xBuilder->weld_combo_box("positionlb"))
- , m_xA11yWarningFT(m_xBuilder->weld_label("a11ywarning"))
-{
- m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWin));
+ , m_xIndividualWordsBtn(m_xBuilder->weld_check_button(u"individualwordscb"_ustr))
+ , m_xEmphasisFT(m_xBuilder->weld_label(u"emphasisft"_ustr))
+ , m_xEmphasisLB(m_xBuilder->weld_combo_box(u"emphasislb"_ustr))
+ , m_xPositionFT(m_xBuilder->weld_label(u"positionft"_ustr))
+ , m_xPositionLB(m_xBuilder->weld_combo_box(u"positionlb"_ustr))
+ , m_xA11yWarningFT(m_xBuilder->weld_label(u"a11ywarning"_ustr))
+{
+ m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aPreviewWin));
#ifdef IOS
m_xPreviewWin->hide();
#endif
@@ -1364,14 +1361,16 @@ void SvxCharEffectsPage::Initialize()
SetExchangeSupport();
// HTML-Mode
- const SfxPoolItem* pItem;
- SfxObjectShell* pShell;
- if ( SfxItemState::SET == GetItemSet().GetItemState( SID_HTML_MODE, false, &pItem ) ||
- ( nullptr != ( pShell = SfxObjectShell::Current() ) &&
- nullptr != ( pItem = pShell->GetItem( SID_HTML_MODE ) ) ) )
+ const SfxUInt16Item* pHtmlModeItem = GetItemSet().GetItemIfSet( SID_HTML_MODE, false );
+ if ( !pHtmlModeItem)
+ {
+ if (SfxObjectShell* pShell = SfxObjectShell::Current())
+ pHtmlModeItem = pShell->GetItem( SID_HTML_MODE );
+ }
+ if (pHtmlModeItem)
{
- m_nHtmlMode = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
- if ( ( m_nHtmlMode & HTMLMODE_ON ) == HTMLMODE_ON )
+ sal_uInt16 nHtmlMode = pHtmlModeItem->GetValue();
+ if ( ( nHtmlMode & HTMLMODE_ON ) == HTMLMODE_ON )
{
//!!! hide some controls please
}
@@ -1523,7 +1522,7 @@ void SvxCharEffectsPage::ResetColor_Impl( const SfxItemSet& rSet )
m_xFontColorLB->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
//Related: tdf#106080 if there is no font color, then allow "none"
//as a color so the listbox can display that state.
EnableNoneFontColor();
@@ -1573,28 +1572,31 @@ bool SvxCharEffectsPage::FillItemSetColor_Impl( SfxItemSet& rSet )
sal_uInt16 nWhich = GetWhich( SID_ATTR_CHAR_COLOR );
const SfxItemSet& rOldSet = GetItemSet();
- Color aSelectedColor;
+ NamedColor aSelectedColor;
bool bChanged = m_bNewFontColor;
if (bChanged)
{
- aSelectedColor = m_xFontColorLB->GetSelectEntryColor();
+ aSelectedColor = m_xFontColorLB->GetSelectedEntryThemedColor();
if (m_xFontTransparencyMtr->get_value_changed_from_saved())
{
double fTransparency
= m_xFontTransparencyMtr->get_value(FieldUnit::PERCENT) * 255.0 / 100;
- aSelectedColor.SetAlpha(255 - static_cast<sal_uInt8>(basegfx::fround(fTransparency)));
+ aSelectedColor.m_aColor.SetAlpha(255 - static_cast<sal_uInt8>(basegfx::fround(fTransparency)));
}
if (m_bOrigFontColor)
- bChanged = aSelectedColor != m_aOrigFontColor;
- if (m_bEnableNoneFontColor && bChanged && aSelectedColor == COL_NONE_COLOR)
+ bChanged = aSelectedColor.m_aColor != m_aOrigFontColor;
+ if (m_bEnableNoneFontColor && bChanged && aSelectedColor.m_aColor == COL_NONE_COLOR)
bChanged = false;
}
if (bChanged)
- rSet.Put( SvxColorItem( aSelectedColor, nWhich ) );
+ {
+ SvxColorItem aItem(aSelectedColor.m_aColor, aSelectedColor.getComplexColor(), nWhich);
+ rSet.Put(aItem);
+ }
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
rSet.InvalidateItem(nWhich);
@@ -1687,9 +1689,9 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xUnderlineLB->set_active( 0 );
SfxItemState eState = rSet->GetItemState( nWhich );
- if ( eState >= SfxItemState::DONTCARE )
+ if ( eState >= SfxItemState::INVALID )
{
- if ( eState == SfxItemState::DONTCARE )
+ if ( eState == SfxItemState::INVALID )
m_xUnderlineLB->set_active(-1);
else
{
@@ -1727,9 +1729,9 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xOverlineLB->set_active( 0 );
eState = rSet->GetItemState( nWhich );
- if ( eState >= SfxItemState::DONTCARE )
+ if ( eState >= SfxItemState::INVALID )
{
- if ( eState == SfxItemState::DONTCARE )
+ if ( eState == SfxItemState::INVALID )
m_xOverlineLB->set_active(-1);
else
{
@@ -1767,9 +1769,9 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xStrikeoutLB->set_active( 0 );
eState = rSet->GetItemState( nWhich );
- if ( eState >= SfxItemState::DONTCARE )
+ if ( eState >= SfxItemState::INVALID )
{
- if ( eState == SfxItemState::DONTCARE )
+ if ( eState == SfxItemState::INVALID )
m_xStrikeoutLB->set_active(-1);
else
{
@@ -1807,7 +1809,7 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xIndividualWordsBtn->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_aIndividualWordsState.bTriStateEnabled = true;
m_xIndividualWordsBtn->set_state( TRISTATE_INDET );
break;
@@ -1849,7 +1851,7 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
if (nPos != -1)
m_xPositionLB->set_active(nPos);
}
- else if ( eState == SfxItemState::DONTCARE )
+ else if ( eState == SfxItemState::INVALID )
m_xEmphasisLB->set_active(-1);
else if ( eState == SfxItemState::UNKNOWN )
{
@@ -1884,7 +1886,7 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xEffectsLB->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_xEffectsLB->set_active(-1);
break;
@@ -1913,7 +1915,7 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xReliefLB->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_xReliefLB->set_active(-1);
break;
@@ -1942,7 +1944,7 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xOutlineBtn->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_aOutlineState.bTriStateEnabled = true;
m_xOutlineBtn->set_state(TRISTATE_INDET);
break;
@@ -1973,7 +1975,7 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xShadowBtn->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_aShadowState.bTriStateEnabled = true;
m_xShadowBtn->set_state( TRISTATE_INDET );
break;
@@ -2004,7 +2006,7 @@ void SvxCharEffectsPage::Reset( const SfxItemSet* rSet )
m_xHiddenBtn->set_sensitive(false);
break;
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
m_aHiddenState.bTriStateEnabled = true;
m_xHiddenBtn->set_state(TRISTATE_INDET);
break;
@@ -2081,21 +2083,26 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
//! item-state in the 'rOldSet' will be invalid. In this case
//! changing the underline style will be allowed if a style is
//! selected in the listbox.
- bool bAllowChg = nPos != -1 &&
+ bool bAllowChange = nPos != -1 &&
SfxItemState::DEFAULT > rOldSet.GetItemState( nWhich );
const SvxUnderlineItem& rItem = *static_cast<const SvxUnderlineItem*>(pOld);
- if ( rItem.GetValue() == eUnder &&
- ( LINESTYLE_NONE == eUnder || rItem.GetColor() == m_xUnderlineColorLB->GetSelectEntryColor() ) &&
- ! bAllowChg )
+ if (rItem.GetValue() == eUnder &&
+ (LINESTYLE_NONE == eUnder || (rItem.GetColor() == m_xUnderlineColorLB->GetSelectEntryColor() &&
+ rItem.getComplexColor() == m_xUnderlineColorLB->GetSelectedEntry().getComplexColor())) &&
+ !bAllowChange)
+ {
bChanged = false;
+ }
}
if ( bChanged )
{
SvxUnderlineItem aNewItem( eUnder, nWhich );
- aNewItem.SetColor( m_xUnderlineColorLB->GetSelectEntryColor() );
- rSet->Put( aNewItem );
+ auto aNamedColor = m_xUnderlineColorLB->GetSelectedEntry();
+ aNewItem.SetColor(aNamedColor.m_aColor);
+ aNewItem.setComplexColor(aNamedColor.getComplexColor());
+ rSet->Put(aNewItem);
bModified = true;
}
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
@@ -2115,21 +2122,26 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
//! item-state in the 'rOldSet' will be invalid. In this case
//! changing the underline style will be allowed if a style is
//! selected in the listbox.
- bool bAllowChg = nPos != -1 &&
+ bool bAllowChange = nPos != -1 &&
SfxItemState::DEFAULT > rOldSet.GetItemState( nWhich );
const SvxOverlineItem& rItem = *static_cast<const SvxOverlineItem*>(pOld);
- if ( rItem.GetValue() == eOver &&
- ( LINESTYLE_NONE == eOver || rItem.GetColor() == m_xOverlineColorLB->GetSelectEntryColor() ) &&
- ! bAllowChg )
+ if (rItem.GetValue() == eOver &&
+ (LINESTYLE_NONE == eOver || (rItem.GetColor() == m_xOverlineColorLB->GetSelectEntryColor() &&
+ rItem.getComplexColor() == m_xOverlineColorLB->GetSelectedEntry().getComplexColor())) &&
+ !bAllowChange)
+ {
bChanged = false;
+ }
}
if ( bChanged )
{
SvxOverlineItem aNewItem( eOver, nWhich );
- aNewItem.SetColor( m_xOverlineColorLB->GetSelectEntryColor() );
- rSet->Put( aNewItem );
+ auto aNamedColor = m_xOverlineColorLB->GetSelectedEntry();
+ aNewItem.SetColor(aNamedColor.m_aColor);
+ aNewItem.setComplexColor(aNamedColor.getComplexColor());
+ rSet->Put(aNewItem);
bModified = true;
}
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
@@ -2211,7 +2223,7 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
if ( pOld )
{
- if( rOldSet.GetItemState( nWhich ) != SfxItemState::DONTCARE )
+ if( rOldSet.GetItemState( nWhich ) != SfxItemState::INVALID )
{
const SvxEmphasisMarkItem& rItem = *static_cast<const SvxEmphasisMarkItem*>(pOld);
if ( rItem.GetEmphasisMark() == eMark )
@@ -2219,7 +2231,7 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
}
}
- if (rOldSet.GetItemState( nWhich ) == SfxItemState::DONTCARE &&
+ if (rOldSet.GetItemState( nWhich ) == SfxItemState::INVALID &&
m_xEmphasisLB->get_saved_value() == sMarkPos && m_xPositionLB->get_saved_value() == sPosPos)
{
bChanged = false;
@@ -2227,7 +2239,7 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
if (bChanged)
{
- rSet->Put( SvxEmphasisMarkItem( eMark, nWhich ) );
+ rSet->Put( SvxEmphasisMarkItem( eMark, TypedWhichId<SvxEmphasisMarkItem>(nWhich) ) );
bModified = true;
}
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
@@ -2378,10 +2390,7 @@ void SvxCharEffectsPage::PageCreated(const SfxAllItemSet& aSet)
if (pDisableCtlItem)
DisableControls(pDisableCtlItem->GetValue());
- if (!pFlagItem)
- return;
-
- sal_uInt32 nFlags=pFlagItem->GetValue();
+ sal_uInt32 nFlags = pFlagItem ? pFlagItem->GetValue() : 0;
if ( ( nFlags & SVX_PREVIEW_CHARACTER ) == SVX_PREVIEW_CHARACTER )
// the writer uses SID_ATTR_BRUSH as font background
m_bPreviewBackgroundToCharacter = true;
@@ -2396,33 +2405,34 @@ void SvxCharEffectsPage::PageCreated(const SfxAllItemSet& aSet)
// class SvxCharPositionPage ---------------------------------------------
SvxCharPositionPage::SvxCharPositionPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInSet)
- : SvxCharBasePage(pPage, pController, "cui/ui/positionpage.ui", "PositionPage", rInSet)
+ : SvxCharBasePage(pPage, pController, u"cui/ui/positionpage.ui"_ustr, u"PositionPage"_ustr, rInSet)
, m_nSuperEsc(short(DFLT_ESC_SUPER))
, m_nSubEsc(short(DFLT_ESC_SUB))
, m_nScaleWidthItemSetVal(100)
, m_nScaleWidthInitialVal(100)
, m_nSuperProp(sal_uInt8(DFLT_ESC_PROP))
, m_nSubProp(sal_uInt8(DFLT_ESC_PROP))
- , m_xHighPosBtn(m_xBuilder->weld_radio_button("superscript"))
- , m_xNormalPosBtn(m_xBuilder->weld_radio_button("normal"))
- , m_xLowPosBtn(m_xBuilder->weld_radio_button("subscript"))
- , m_xHighLowFT(m_xBuilder->weld_label("raiselower"))
- , m_xHighLowMF(m_xBuilder->weld_metric_spin_button("raiselowersb", FieldUnit::PERCENT))
- , m_xHighLowRB(m_xBuilder->weld_check_button("automatic"))
- , m_xFontSizeFT(m_xBuilder->weld_label("relativefontsize"))
- , m_xFontSizeMF(m_xBuilder->weld_metric_spin_button("fontsizesb", FieldUnit::PERCENT))
- , m_xRotationContainer(m_xBuilder->weld_widget("rotationcontainer"))
- , m_xScalingFT(m_xBuilder->weld_label("scale"))
- , m_xScalingAndRotationFT(m_xBuilder->weld_label("rotateandscale"))
- , m_x0degRB(m_xBuilder->weld_radio_button("0deg"))
- , m_x90degRB(m_xBuilder->weld_radio_button("90deg"))
- , m_x270degRB(m_xBuilder->weld_radio_button("270deg"))
- , m_xFitToLineCB(m_xBuilder->weld_check_button("fittoline"))
- , m_xScaleWidthMF(m_xBuilder->weld_metric_spin_button("scalewidthsb", FieldUnit::PERCENT))
- , m_xKerningMF(m_xBuilder->weld_metric_spin_button("kerningsb", FieldUnit::POINT))
- , m_xPairKerningBtn(m_xBuilder->weld_check_button("pairkerning"))
-{
- m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWin));
+ , m_xHighPosBtn(m_xBuilder->weld_radio_button(u"superscript"_ustr))
+ , m_xNormalPosBtn(m_xBuilder->weld_radio_button(u"normal"_ustr))
+ , m_xLowPosBtn(m_xBuilder->weld_radio_button(u"subscript"_ustr))
+ , m_xHighLowFT(m_xBuilder->weld_label(u"raiselower"_ustr))
+ , m_xHighLowMF(m_xBuilder->weld_metric_spin_button(u"raiselowersb"_ustr, FieldUnit::PERCENT))
+ , m_xHighLowRB(m_xBuilder->weld_check_button(u"automatic"_ustr))
+ , m_xFontSizeFT(m_xBuilder->weld_label(u"relativefontsize"_ustr))
+ , m_xFontSizeMF(m_xBuilder->weld_metric_spin_button(u"fontsizesb"_ustr, FieldUnit::PERCENT))
+ , m_xRotationContainer(m_xBuilder->weld_widget(u"rotationcontainer"_ustr))
+ , m_xScalingFT(m_xBuilder->weld_label(u"scale"_ustr))
+ , m_xScalingAndRotationFT(m_xBuilder->weld_label(u"rotateandscale"_ustr))
+ , m_x0degRB(m_xBuilder->weld_radio_button(u"0deg"_ustr))
+ , m_x90degRB(m_xBuilder->weld_radio_button(u"90deg"_ustr))
+ , m_x270degRB(m_xBuilder->weld_radio_button(u"270deg"_ustr))
+ , m_xFitToLineCB(m_xBuilder->weld_check_button(u"fittoline"_ustr))
+ , m_xScaleWidthMF(m_xBuilder->weld_metric_spin_button(u"scalewidthsb"_ustr, FieldUnit::PERCENT))
+ , m_xKerningMF(m_xBuilder->weld_metric_spin_button(u"kerningsb"_ustr, FieldUnit::POINT))
+ , m_xPairKerningBtn(m_xBuilder->weld_check_button(u"pairkerning"_ustr))
+ , m_xNoHyphenationBtn(m_xBuilder->weld_check_button(u"nohyphenation"_ustr))
+{
+ m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aPreviewWin));
#ifdef IOS
m_xPreviewWin->hide();
#endif
@@ -2636,10 +2646,10 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet )
if ( !sUser.isEmpty() )
{
sal_Int32 nIdx {0};
- m_nSuperEsc = static_cast<short>(sUser.getToken( 0, ';', nIdx ).toInt32());
- m_nSubEsc = static_cast<short>(sUser.getToken( 0, ';', nIdx ).toInt32());
- m_nSuperProp = static_cast<sal_uInt8>(sUser.getToken( 0, ';', nIdx ).toInt32());
- m_nSubProp = static_cast<sal_uInt8>(sUser.getToken( 0, ';', nIdx ).toInt32());
+ m_nSuperEsc = static_cast<short>(o3tl::toInt32(o3tl::getToken(sUser, 0, ';', nIdx )));
+ m_nSubEsc = static_cast<short>(o3tl::toInt32(o3tl::getToken(sUser, 0, ';', nIdx )));
+ m_nSuperProp = static_cast<sal_uInt8>(o3tl::toInt32(o3tl::getToken(sUser, 0, ';', nIdx )));
+ m_nSubProp = static_cast<sal_uInt8>(o3tl::toInt32(o3tl::getToken(sUser, 0, ';', nIdx )));
m_xHighLowMF->set_max(MAX_ESC_POS, FieldUnit::PERCENT);
@@ -2740,6 +2750,8 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet )
m_xHighPosBtn->set_active(false);
m_xNormalPosBtn->set_active(false);
m_xLowPosBtn->set_active(false);
+
+ m_xHighLowRB->set_active(true);
}
// set BspFont
@@ -2761,10 +2773,13 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet )
rCJKFont.SetFixKerning( static_cast<short>(nKern) );
rCTLFont.SetFixKerning( static_cast<short>(nKern) );
- //the attribute value must be displayed also if it's above the maximum allowed value
+ //the attribute value must be displayed also if it's above/below the maximum allowed value
tools::Long nVal = static_cast<tools::Long>(m_xKerningMF->get_max(FieldUnit::POINT));
if(nVal < nKerning)
m_xKerningMF->set_max(nKerning, FieldUnit::POINT);
+ nVal = static_cast<tools::Long>(m_xKerningMF->get_min(FieldUnit::POINT));
+ if (nVal > nKerning)
+ m_xKerningMF->set_min(nKerning, FieldUnit::POINT);
m_xKerningMF->set_value(nKerning, FieldUnit::POINT);
}
else
@@ -2781,6 +2796,16 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet )
else
m_xPairKerningBtn->set_active(false);
+ // No hyphenation
+ nWhich = GetWhich( sal_uInt16(19) ); // number borrowed from RES_CHRATR_NOHYPHEN
+ if ( rSet->GetItemState( nWhich ) >= SfxItemState::DEFAULT )
+ {
+ const SvxNoHyphenItem& rItem = static_cast<const SvxNoHyphenItem&>(rSet->Get( nWhich ));
+ m_xNoHyphenationBtn->set_active(rItem.GetValue());
+ }
+ else
+ m_xNoHyphenationBtn->set_active(false);
+
// Scale Width
nWhich = GetWhich( SID_ATTR_CHAR_SCALEWIDTH );
if ( rSet->GetItemState( nWhich ) >= SfxItemState::DEFAULT )
@@ -2792,9 +2817,8 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet )
else
m_xScaleWidthMF->set_value(100, FieldUnit::PERCENT);
- nWhich = GetWhich( SID_ATTR_CHAR_WIDTH_FIT_TO_LINE );
- if ( rSet->GetItemState( nWhich ) >= SfxItemState::DEFAULT )
- m_nScaleWidthItemSetVal = static_cast<const SfxUInt16Item&>( rSet->Get( nWhich )).GetValue();
+ if ( rSet->GetItemState( SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ) >= SfxItemState::DEFAULT )
+ m_nScaleWidthItemSetVal = rSet->Get( SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ).GetValue();
// Rotation
nWhich = GetWhich( SID_ATTR_CHAR_ROTATED );
@@ -2828,7 +2852,7 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet )
}
else
{
- if( eState == SfxItemState::DONTCARE )
+ if( eState == SfxItemState::INVALID )
{
m_x0degRB->set_active(false);
m_x90degRB->set_active(false);
@@ -2842,8 +2866,8 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet )
m_xFitToLineCB->set_sensitive(!m_x0degRB->get_active());
// is this value set?
- if( SfxItemState::UNKNOWN == rSet->GetItemState( GetWhich(
- SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ) ))
+ if( SfxItemState::UNKNOWN == rSet->GetItemState(
+ SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ))
m_xFitToLineCB->hide();
}
ChangesApplied();
@@ -2862,6 +2886,7 @@ void SvxCharPositionPage::ChangesApplied()
m_xScaleWidthMF->save_value();
m_xKerningMF->save_value();
m_xPairKerningBtn->save_state();
+ m_xNoHyphenationBtn->save_state();
}
bool SvxCharPositionPage::FillItemSet( SfxItemSet* rSet )
@@ -2951,11 +2976,23 @@ bool SvxCharPositionPage::FillItemSet( SfxItemSet* rSet )
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
rSet->InvalidateItem(nWhich);
+ // No hyphenation
+
+ nWhich = GetWhich( sal_uInt16(19) ); // number borrowed from RES_CHRATR_NOHYPHEN
+
+ if (m_xNoHyphenationBtn->get_state_changed_from_saved())
+ {
+ rSet->Put( SvxNoHyphenItem( m_xNoHyphenationBtn->get_active(), nWhich ) );
+ bModified = true;
+ }
+ else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
+ rSet->InvalidateItem(nWhich);
+
// Scale Width
nWhich = GetWhich( SID_ATTR_CHAR_SCALEWIDTH );
if (m_xScaleWidthMF->get_value_changed_from_saved())
{
- rSet->Put(SvxCharScaleWidthItem(static_cast<sal_uInt16>(m_xScaleWidthMF->get_value(FieldUnit::PERCENT)), nWhich));
+ rSet->Put(SvxCharScaleWidthItem(static_cast<sal_uInt16>(m_xScaleWidthMF->get_value(FieldUnit::PERCENT)), TypedWhichId<SvxCharScaleWidthItem>(nWhich)));
bModified = true;
}
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
@@ -2968,7 +3005,7 @@ bool SvxCharPositionPage::FillItemSet( SfxItemSet* rSet )
m_x270degRB->get_state_changed_from_saved() ||
m_xFitToLineCB->get_state_changed_from_saved() )
{
- SvxCharRotateItem aItem( 0_deg10, m_xFitToLineCB->get_active(), nWhich );
+ SvxCharRotateItem aItem( 0_deg10, m_xFitToLineCB->get_active(), TypedWhichId<SvxCharRotateItem>(nWhich) );
if (m_x90degRB->get_active())
aItem.SetBottomToTop();
else if (m_x270degRB->get_active())
@@ -2985,7 +3022,7 @@ bool SvxCharPositionPage::FillItemSet( SfxItemSet* rSet )
void SvxCharPositionPage::FillUserData()
{
- static const OUStringLiteral cTok( u";" );
+ static constexpr OUString cTok( u";"_ustr );
OUString sUser = OUString::number( m_nSuperEsc ) + cTok +
OUString::number( m_nSubEsc ) + cTok +
@@ -3009,20 +3046,20 @@ void SvxCharPositionPage::PageCreated(const SfxAllItemSet& aSet)
// class SvxCharTwoLinesPage ------------------------------------------------
SvxCharTwoLinesPage::SvxCharTwoLinesPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInSet)
- : SvxCharBasePage(pPage, pController, "cui/ui/twolinespage.ui", "TwoLinesPage", rInSet)
+ : SvxCharBasePage(pPage, pController, u"cui/ui/twolinespage.ui"_ustr, u"TwoLinesPage"_ustr, rInSet)
, m_nStartBracketPosition( 0 )
, m_nEndBracketPosition( 0 )
- , m_xTwoLinesBtn(m_xBuilder->weld_check_button("twolines"))
- , m_xEnclosingFrame(m_xBuilder->weld_widget("enclosing"))
- , m_xStartBracketLB(m_xBuilder->weld_tree_view("startbracket"))
- , m_xEndBracketLB(m_xBuilder->weld_tree_view("endbracket"))
+ , m_xTwoLinesBtn(m_xBuilder->weld_check_button(u"twolines"_ustr))
+ , m_xEnclosingFrame(m_xBuilder->weld_widget(u"enclosing"_ustr))
+ , m_xStartBracketLB(m_xBuilder->weld_tree_view(u"startbracket"_ustr))
+ , m_xEndBracketLB(m_xBuilder->weld_tree_view(u"endbracket"_ustr))
{
- for (size_t i = 0; i < SAL_N_ELEMENTS(TWOLINE_OPEN); ++i)
+ for (size_t i = 0; i < std::size(TWOLINE_OPEN); ++i)
m_xStartBracketLB->append(OUString::number(TWOLINE_OPEN[i].second), CuiResId(TWOLINE_OPEN[i].first));
- for (size_t i = 0; i < SAL_N_ELEMENTS(TWOLINE_CLOSE); ++i)
+ for (size_t i = 0; i < std::size(TWOLINE_CLOSE); ++i)
m_xEndBracketLB->append(OUString::number(TWOLINE_CLOSE[i].second), CuiResId(TWOLINE_CLOSE[i].first));
- m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWin));
+ m_xPreviewWin.reset(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aPreviewWin));
#ifdef IOS
m_xPreviewWin->hide();
#endif
@@ -3153,7 +3190,7 @@ void SvxCharTwoLinesPage::Reset( const SfxItemSet* rSet )
sal_uInt16 nWhich = GetWhich( SID_ATTR_CHAR_TWO_LINES );
SfxItemState eState = rSet->GetItemState( nWhich );
- if ( eState >= SfxItemState::DONTCARE )
+ if ( eState >= SfxItemState::INVALID )
{
const SvxTwoLinesItem& rItem = static_cast<const SvxTwoLinesItem&>(rSet->Get( nWhich ));
m_xTwoLinesBtn->set_active(rItem.GetValue());
diff --git a/cui/source/tabpages/connect.cxx b/cui/source/tabpages/connect.cxx
index 677613191130..fa7109844fec 100644
--- a/cui/source/tabpages/connect.cxx
+++ b/cui/source/tabpages/connect.cxx
@@ -50,7 +50,7 @@ SvxConnectionDialog::SvxConnectionDialog(weld::Window* pParent, const SfxItemSet
xPage->Construct();
SetTabPage(std::move(xPage));
- m_xDialog->set_title(CuiResId(RID_SVXSTR_CONNECTOR));
+ m_xDialog->set_title(CuiResId(RID_CUISTR_CONNECTOR));
}
/*************************************************************************
@@ -60,25 +60,25 @@ SvxConnectionDialog::SvxConnectionDialog(weld::Window* pParent, const SfxItemSet
\************************************************************************/
SvxConnectionPage::SvxConnectionPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/connectortabpage.ui", "ConnectorTabPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/connectortabpage.ui"_ustr, u"ConnectorTabPage"_ustr, &rInAttrs)
, rOutAttrs(rInAttrs)
, aAttrSet(*rInAttrs.GetPool())
, pView(nullptr)
- , m_xLbType(m_xBuilder->weld_combo_box("LB_TYPE"))
- , m_xFtLine1(m_xBuilder->weld_label("FT_LINE_1"))
- , m_xMtrFldLine1(m_xBuilder->weld_metric_spin_button("MTR_FLD_LINE_1", FieldUnit::CM))
- , m_xFtLine2(m_xBuilder->weld_label("FT_LINE_2"))
- , m_xMtrFldLine2(m_xBuilder->weld_metric_spin_button("MTR_FLD_LINE_2", FieldUnit::CM))
- , m_xFtLine3(m_xBuilder->weld_label("FT_LINE_3"))
- , m_xMtrFldLine3(m_xBuilder->weld_metric_spin_button("MTR_FLD_LINE_3", FieldUnit::CM))
- , m_xMtrFldHorz1(m_xBuilder->weld_metric_spin_button("MTR_FLD_HORZ_1", FieldUnit::MM))
- , m_xMtrFldVert1(m_xBuilder->weld_metric_spin_button("MTR_FLD_VERT_1", FieldUnit::MM))
- , m_xMtrFldHorz2(m_xBuilder->weld_metric_spin_button("MTR_FLD_HORZ_2", FieldUnit::MM))
- , m_xMtrFldVert2(m_xBuilder->weld_metric_spin_button("MTR_FLD_VERT_2", FieldUnit::MM))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
+ , m_xLbType(m_xBuilder->weld_combo_box(u"LB_TYPE"_ustr))
+ , m_xFtLine1(m_xBuilder->weld_label(u"FT_LINE_1"_ustr))
+ , m_xMtrFldLine1(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_LINE_1"_ustr, FieldUnit::CM))
+ , m_xFtLine2(m_xBuilder->weld_label(u"FT_LINE_2"_ustr))
+ , m_xMtrFldLine2(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_LINE_2"_ustr, FieldUnit::CM))
+ , m_xFtLine3(m_xBuilder->weld_label(u"FT_LINE_3"_ustr))
+ , m_xMtrFldLine3(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_LINE_3"_ustr, FieldUnit::CM))
+ , m_xMtrFldHorz1(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_HORZ_1"_ustr, FieldUnit::MM))
+ , m_xMtrFldVert1(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_VERT_1"_ustr, FieldUnit::MM))
+ , m_xMtrFldHorz2(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_HORZ_2"_ustr, FieldUnit::MM))
+ , m_xMtrFldVert2(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_VERT_2"_ustr, FieldUnit::MM))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_PREVIEW"_ustr, m_aCtlPreview))
{
SfxItemPool* pPool = rOutAttrs.GetPool();
- DBG_ASSERT( pPool, "Where is the pool" );
+ assert(pPool && "Where is the pool");
eUnit = pPool->GetMetric( SDRATTR_EDGENODE1HORZDIST );
FillTypeLB();
@@ -118,6 +118,17 @@ SvxConnectionPage::~SvxConnectionPage()
m_xCtlPreview.reset();
}
+template<class T>
+void SvxConnectionPage::SetMetricValueAndSave(const SfxItemSet* rAttrs, weld::MetricSpinButton& rField, TypedWhichId<T> nWhich)
+{
+ const SfxPoolItem* pItem = GetItem( *rAttrs, nWhich);
+ const SfxItemPool* pPool = rAttrs->GetPool();
+ if( !pItem )
+ pItem = &pPool->GetUserOrPoolDefaultItem( nWhich );
+ SetMetricValue(rField, pItem->StaticWhichCast(nWhich).GetValue(), eUnit);
+ rField.save_value();
+}
+
/*************************************************************************
|*
|* reads passed Item-Set
@@ -126,90 +137,59 @@ SvxConnectionPage::~SvxConnectionPage()
void SvxConnectionPage::Reset( const SfxItemSet* rAttrs )
{
- const SfxPoolItem* pItem = GetItem( *rAttrs, SDRATTR_EDGENODE1HORZDIST );
+ const SfxPoolItem* pItem;
const SfxItemPool* pPool = rAttrs->GetPool();
// SdrEdgeNode1HorzDistItem
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGENODE1HORZDIST );
- SetMetricValue(*m_xMtrFldHorz1, static_cast<const SdrEdgeNode1HorzDistItem*>(pItem)->GetValue(),
- eUnit);
- m_xMtrFldHorz1->save_value();
+ SetMetricValueAndSave(rAttrs, *m_xMtrFldHorz1, SDRATTR_EDGENODE1HORZDIST);
// SdrEdgeNode2HorzDistItem
- pItem = GetItem( *rAttrs, SDRATTR_EDGENODE2HORZDIST );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGENODE2HORZDIST );
- SetMetricValue(*m_xMtrFldHorz2, static_cast<const SdrEdgeNode2HorzDistItem*>(pItem)->GetValue(),
- eUnit);
- m_xMtrFldHorz2->save_value();
+ SetMetricValueAndSave(rAttrs, *m_xMtrFldHorz2, SDRATTR_EDGENODE2HORZDIST);
// SdrEdgeNode1VertDistItem
- pItem = GetItem( *rAttrs, SDRATTR_EDGENODE1VERTDIST );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGENODE1VERTDIST );
- SetMetricValue(*m_xMtrFldVert1, static_cast<const SdrEdgeNode1VertDistItem*>(pItem)->GetValue(),
- eUnit);
- m_xMtrFldVert1->save_value();
+ SetMetricValueAndSave(rAttrs, *m_xMtrFldVert1, SDRATTR_EDGENODE1VERTDIST);
// SdrEdgeNode2VertDistItem
- pItem = GetItem( *rAttrs, SDRATTR_EDGENODE2VERTDIST );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGENODE2VERTDIST );
- SetMetricValue(*m_xMtrFldVert2, static_cast<const SdrEdgeNode2VertDistItem*>(pItem)->GetValue(),
- eUnit);
- m_xMtrFldVert2->save_value();
+ SetMetricValueAndSave(rAttrs, *m_xMtrFldVert2, SDRATTR_EDGENODE2VERTDIST);
// SdrEdgeLine1DeltaItem
- pItem = GetItem( *rAttrs, SDRATTR_EDGELINE1DELTA );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGELINE1DELTA );
- SetMetricValue(*m_xMtrFldLine1, static_cast<const SdrMetricItem*>(pItem)->GetValue(), eUnit);
- m_xMtrFldLine1->save_value();
+ SetMetricValueAndSave(rAttrs, *m_xMtrFldLine1, SDRATTR_EDGELINE1DELTA);
// SdrEdgeLine2DeltaItem
- pItem = GetItem( *rAttrs, SDRATTR_EDGELINE2DELTA );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGELINE2DELTA );
- SetMetricValue(*m_xMtrFldLine2, static_cast<const SdrMetricItem*>(pItem)->GetValue(), eUnit);
- m_xMtrFldLine2->save_value();
+ SetMetricValueAndSave(rAttrs, *m_xMtrFldLine2, SDRATTR_EDGELINE2DELTA);
// SdrEdgeLine3DeltaItem
- pItem = GetItem( *rAttrs, SDRATTR_EDGELINE3DELTA );
- if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGELINE3DELTA );
- SetMetricValue(*m_xMtrFldLine3, static_cast<const SdrMetricItem*>(pItem)->GetValue(), eUnit);
- m_xMtrFldLine3->save_value();
+ SetMetricValueAndSave(rAttrs, *m_xMtrFldLine3, SDRATTR_EDGELINE3DELTA);
// SdrEdgeLineDeltaAnzItem
pItem = GetItem( *rAttrs, SDRATTR_EDGELINEDELTACOUNT );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGELINEDELTACOUNT );
- switch (static_cast<const SdrEdgeLineDeltaCountItem*>(pItem)->GetValue())
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_EDGELINEDELTACOUNT );
+ switch (pItem->StaticWhichCast(SDRATTR_EDGELINEDELTACOUNT).GetValue())
{
case 0:
m_xFtLine1->set_sensitive(false);
m_xMtrFldLine1->set_sensitive(false);
- m_xMtrFldLine1->set_text("");
+ m_xMtrFldLine1->set_text(u""_ustr);
[[fallthrough]];
case 1:
m_xFtLine2->set_sensitive(false);
m_xMtrFldLine2->set_sensitive(false);
- m_xMtrFldLine2->set_text("");
+ m_xMtrFldLine2->set_text(u""_ustr);
[[fallthrough]];
case 2:
m_xFtLine3->set_sensitive(false);
m_xMtrFldLine3->set_sensitive(false);
- m_xMtrFldLine3->set_text("");
+ m_xMtrFldLine3->set_text(u""_ustr);
break;
}
// SdrEdgeKindItem
pItem = GetItem( *rAttrs, SDRATTR_EDGEKIND );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGEKIND );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_EDGEKIND );
m_xLbType->set_active(
- sal::static_int_cast<sal_uInt16>(static_cast<const SdrEdgeKindItem*>(pItem)->GetValue()));
+ sal::static_int_cast<sal_uInt16>(pItem->StaticWhichCast(SDRATTR_EDGEKIND).GetValue()));
m_xLbType->save_value();
}
@@ -323,21 +303,21 @@ IMPL_LINK_NOARG(SvxConnectionPage, ChangeAttrListBoxHdl_Impl, weld::ComboBox&, v
if( nCount > 2 )
m_xMtrFldLine3->set_value(m_xMtrFldLine3->get_value(FieldUnit::NONE), FieldUnit::NONE);
else
- m_xMtrFldLine3->set_text("");
+ m_xMtrFldLine3->set_text(u""_ustr);
m_xFtLine2->set_sensitive( nCount > 1 );
m_xMtrFldLine2->set_sensitive( nCount > 1 );
if( nCount > 1 )
m_xMtrFldLine2->set_value(m_xMtrFldLine2->get_value(FieldUnit::NONE), FieldUnit::NONE);
else
- m_xMtrFldLine2->set_text("");
+ m_xMtrFldLine2->set_text(u""_ustr);
m_xFtLine1->set_sensitive( nCount > 0 );
m_xMtrFldLine1->set_sensitive( nCount > 0 );
if( nCount > 0 )
m_xMtrFldLine1->set_value(m_xMtrFldLine1->get_value(FieldUnit::NONE), FieldUnit::NONE);
else
- m_xMtrFldLine1->set_text("");
+ m_xMtrFldLine1->set_text(u""_ustr);
}
IMPL_LINK(SvxConnectionPage, ChangeAttrEditHdl_Impl, weld::MetricSpinButton&, r, void)
@@ -394,8 +374,8 @@ void SvxConnectionPage::FillTypeLB()
const SfxItemPool* pPool = rOutAttrs.GetPool();
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_EDGEKIND );
- const SdrEdgeKindItem* pEdgeKindItem = static_cast<const SdrEdgeKindItem*>(pItem);
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_EDGEKIND );
+ const SdrEdgeKindItem* pEdgeKindItem = &pItem->StaticWhichCast(SDRATTR_EDGEKIND);
const sal_uInt16 nCount = pEdgeKindItem->GetValueCount();
for (sal_uInt16 i = 0; i < nCount; i++)
{
diff --git a/cui/source/tabpages/grfpage.cxx b/cui/source/tabpages/grfpage.cxx
index 726b09647bc1..688e03cf5d7e 100644
--- a/cui/source/tabpages/grfpage.cxx
+++ b/cui/source/tabpages/grfpage.cxx
@@ -32,6 +32,7 @@
#include <svx/svxids.hrc>
#include <strings.hrc>
#include <vcl/fieldvalues.hxx>
+#include <vcl/outdev.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include <svtools/unitconv.hxx>
@@ -39,6 +40,7 @@
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <o3tl/unit_conversion.hxx>
+#include <officecfg/Office/Common.hxx>
constexpr auto CM_1_TO_TWIP = o3tl::convert(1, o3tl::Length::cm, o3tl::Length::twip); // 567
@@ -53,27 +55,29 @@ static int lcl_GetValue(const weld::MetricSpinButton& rMetric, FieldUnit eUnit)
--------------------------------------------------------------------*/
SvxGrfCropPage::SvxGrfCropPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rSet)
- : SfxTabPage(pPage, pController, "cui/ui/croppage.ui", "CropPage", &rSet)
- , nOldWidth(0)
- , nOldHeight(0)
- , bSetOrigSize(false)
- , m_xCropFrame(m_xBuilder->weld_widget("cropframe"))
- , m_xZoomConstRB(m_xBuilder->weld_radio_button("keepscale"))
- , m_xSizeConstRB(m_xBuilder->weld_radio_button("keepsize"))
- , m_xLeftMF(m_xBuilder->weld_metric_spin_button("left", FieldUnit::CM))
- , m_xRightMF(m_xBuilder->weld_metric_spin_button("right", FieldUnit::CM))
- , m_xTopMF(m_xBuilder->weld_metric_spin_button("top", FieldUnit::CM))
- , m_xBottomMF(m_xBuilder->weld_metric_spin_button("bottom", FieldUnit::CM))
- , m_xScaleFrame(m_xBuilder->weld_widget("scaleframe"))
- , m_xWidthZoomMF(m_xBuilder->weld_metric_spin_button("widthzoom", FieldUnit::PERCENT))
- , m_xHeightZoomMF(m_xBuilder->weld_metric_spin_button("heightzoom", FieldUnit::PERCENT))
- , m_xSizeFrame(m_xBuilder->weld_widget("sizeframe"))
- , m_xWidthMF(m_xBuilder->weld_metric_spin_button("width", FieldUnit::CM))
- , m_xHeightMF(m_xBuilder->weld_metric_spin_button("height", FieldUnit::CM))
- , m_xOrigSizeGrid(m_xBuilder->weld_widget("origsizegrid"))
- , m_xOrigSizeFT(m_xBuilder->weld_label("origsizeft"))
- , m_xOrigSizePB(m_xBuilder->weld_button("origsize"))
- , m_xExampleWN(new weld::CustomWeld(*m_xBuilder, "preview", m_aExampleWN))
+ : SfxTabPage(pPage, pController, u"cui/ui/croppage.ui"_ustr, u"CropPage"_ustr, &rSet)
+ , m_nOldWidth(0)
+ , m_nOldHeight(0)
+ , m_bSetOrigSize(false)
+ , m_aPreferredDPI(0)
+ , m_xCropFrame(m_xBuilder->weld_widget(u"cropframe"_ustr))
+ , m_xZoomConstRB(m_xBuilder->weld_radio_button(u"keepscale"_ustr))
+ , m_xSizeConstRB(m_xBuilder->weld_radio_button(u"keepsize"_ustr))
+ , m_xLeftMF(m_xBuilder->weld_metric_spin_button(u"left"_ustr, FieldUnit::CM))
+ , m_xRightMF(m_xBuilder->weld_metric_spin_button(u"right"_ustr, FieldUnit::CM))
+ , m_xTopMF(m_xBuilder->weld_metric_spin_button(u"top"_ustr, FieldUnit::CM))
+ , m_xBottomMF(m_xBuilder->weld_metric_spin_button(u"bottom"_ustr, FieldUnit::CM))
+ , m_xScaleFrame(m_xBuilder->weld_widget(u"scaleframe"_ustr))
+ , m_xWidthZoomMF(m_xBuilder->weld_metric_spin_button(u"widthzoom"_ustr, FieldUnit::PERCENT))
+ , m_xHeightZoomMF(m_xBuilder->weld_metric_spin_button(u"heightzoom"_ustr, FieldUnit::PERCENT))
+ , m_xSizeFrame(m_xBuilder->weld_widget(u"sizeframe"_ustr))
+ , m_xWidthMF(m_xBuilder->weld_metric_spin_button(u"width"_ustr, FieldUnit::CM))
+ , m_xHeightMF(m_xBuilder->weld_metric_spin_button(u"height"_ustr, FieldUnit::CM))
+ , m_xOrigSizeGrid(m_xBuilder->weld_widget(u"origsizegrid"_ustr))
+ , m_xOrigSizeFT(m_xBuilder->weld_label(u"origsizeft"_ustr))
+ , m_xOrigSizePB(m_xBuilder->weld_button(u"origsize"_ustr))
+ , m_xUncropPB(m_xBuilder->weld_button(u"uncrop"_ustr))
+ , m_xExampleWN(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aExampleWN))
{
SetExchangeSupport();
@@ -102,6 +106,7 @@ SvxGrfCropPage::SvxGrfCropPage(weld::Container* pPage, weld::DialogController* p
m_xBottomMF->connect_value_changed( aLk );
m_xOrigSizePB->connect_clicked(LINK(this, SvxGrfCropPage, OrigSizeHdl));
+ m_xUncropPB->connect_clicked(LINK(this, SvxGrfCropPage, UncropHdl));
}
SvxGrfCropPage::~SvxGrfCropPage()
@@ -119,7 +124,7 @@ void SvxGrfCropPage::Reset( const SfxItemSet *rSet )
const SfxPoolItem* pItem;
const SfxItemPool& rPool = *rSet->GetPool();
- if(SfxItemState::SET == rSet->GetItemState( rPool.GetWhich(
+ if(SfxItemState::SET == rSet->GetItemState( rPool.GetWhichIDFromSlotID(
SID_ATTR_GRAF_KEEP_ZOOM ), true, &pItem ))
{
if( static_cast<const SfxBoolItem*>(pItem)->GetValue() )
@@ -129,7 +134,7 @@ void SvxGrfCropPage::Reset( const SfxItemSet *rSet )
m_xZoomConstRB->save_state();
}
- sal_uInt16 nW = rPool.GetWhich( SID_ATTR_GRAF_CROP );
+ sal_uInt16 nW = rPool.GetWhichIDFromSlotID( SID_ATTR_GRAF_CROP );
if( SfxItemState::SET == rSet->GetItemState( nW, true, &pItem))
{
FieldUnit eUnit = MapToFieldUnit( rSet->GetPool()->GetMetric( nW ));
@@ -159,55 +164,54 @@ void SvxGrfCropPage::Reset( const SfxItemSet *rSet )
m_xTopMF->save_value();
m_xBottomMF->save_value();
- nW = rPool.GetWhich( SID_ATTR_PAGE_SIZE );
+ nW = rPool.GetWhichIDFromSlotID( SID_ATTR_PAGE_SIZE );
if ( SfxItemState::SET == rSet->GetItemState( nW, false, &pItem ) )
{
// orientation and size from the PageItem
FieldUnit eUnit = MapToFieldUnit( rSet->GetPool()->GetMetric( nW ));
- aPageSize = static_cast<const SvxSizeItem*>(pItem)->GetSize();
+ m_aPageSize = static_cast<const SvxSizeItem*>(pItem)->GetSize();
auto nMin = m_xWidthMF->normalize( 23 );
- auto nMax = m_xHeightMF->normalize(aPageSize.Height());
+ auto nMax = m_xHeightMF->normalize(m_aPageSize.Height());
m_xHeightMF->set_range(nMin, nMax, eUnit);
- nMax = m_xWidthMF->normalize(aPageSize.Width());
+ nMax = m_xWidthMF->normalize(m_aPageSize.Width());
m_xWidthMF->set_range(nMin, nMax, eUnit);
}
else
{
- aPageSize = OutputDevice::LogicToLogic(
+ m_aPageSize = OutputDevice::LogicToLogic(
Size( CM_1_TO_TWIP, CM_1_TO_TWIP ),
MapMode( MapUnit::MapTwip ),
MapMode( rSet->GetPool()->GetMetric( nW ) ) );
}
bool bFound = false;
- if( SfxItemState::SET == rSet->GetItemState( SID_ATTR_GRAF_GRAPHIC, false, &pItem ) )
+ if( const SvxBrushItem* pGraphicItem = rSet->GetItemIfSet( SID_ATTR_GRAF_GRAPHIC, false ) )
{
OUString referer;
- SfxStringItem const * it = static_cast<SfxStringItem const *>(
- rSet->GetItem(SID_REFERER));
+ SfxStringItem const * it = rSet->GetItem(SID_REFERER);
if (it != nullptr) {
referer = it->GetValue();
}
- const Graphic* pGrf = static_cast<const SvxBrushItem*>(pItem)->GetGraphic(referer);
+ const Graphic* pGrf = pGraphicItem->GetGraphic(referer);
if( pGrf )
{
- aOrigSize = GetGrfOrigSize( *pGrf );
- if (pGrf->GetType() == GraphicType::Bitmap && aOrigSize.Width() && aOrigSize.Height())
+ m_aOrigSize = GetGrfOrigSize( *pGrf );
+ if (pGrf->GetType() == GraphicType::Bitmap && m_aOrigSize.Width() && m_aOrigSize.Height())
{
- aOrigPixelSize = pGrf->GetSizePixel();
+ m_aOrigPixelSize = pGrf->GetSizePixel();
}
- if( aOrigSize.Width() && aOrigSize.Height() )
+ if( m_aOrigSize.Width() && m_aOrigSize.Height() )
{
CalcMinMaxBorder();
m_aExampleWN.SetGraphic( *pGrf );
- m_aExampleWN.SetFrameSize( aOrigSize );
+ m_aExampleWN.SetFrameSize( m_aOrigSize );
bFound = true;
- if( !static_cast<const SvxBrushItem*>(pItem)->GetGraphicLink().isEmpty() )
- aGraphicName = static_cast<const SvxBrushItem*>(pItem)->GetGraphicLink();
+ if( !pGraphicItem->GetGraphicLink().isEmpty() )
+ m_aGraphicName = pGraphicItem->GetGraphicLink();
}
}
}
@@ -223,21 +227,21 @@ bool SvxGrfCropPage::FillItemSet(SfxItemSet *rSet)
if( m_xWidthMF->get_value_changed_from_saved() ||
m_xHeightMF->get_value_changed_from_saved() )
{
- sal_uInt16 nW = rPool.GetWhich( SID_ATTR_GRAF_FRMSIZE );
+ constexpr TypedWhichId<SvxSizeItem> nW = SID_ATTR_GRAF_FRMSIZE;
FieldUnit eUnit = MapToFieldUnit( rSet->GetPool()->GetMetric( nW ));
std::shared_ptr<SvxSizeItem> aSz(std::make_shared<SvxSizeItem>(nW));
// size could already have been set from another page
const SfxItemSet* pExSet = GetDialogExampleSet();
- const SfxPoolItem* pItem = nullptr;
- if( pExSet && SfxItemState::SET ==pExSet->GetItemState( nW, false, &pItem ) )
+ const SvxSizeItem* pSizeItem = nullptr;
+ if( pExSet && (pSizeItem = pExSet->GetItemIfSet( nW, false )) )
{
- aSz.reset(static_cast< SvxSizeItem*>(pItem->Clone()));
+ aSz.reset(pSizeItem->Clone());
}
else
{
- aSz.reset(static_cast< SvxSizeItem*>(GetItemSet().Get(nW).Clone()));
+ aSz.reset(GetItemSet().Get(nW).Clone());
}
Size aTmpSz( aSz->GetSize() );
@@ -251,16 +255,16 @@ bool SvxGrfCropPage::FillItemSet(SfxItemSet *rSet)
bModified |= nullptr != rSet->Put( *aSz );
- if( bSetOrigSize )
+ if (m_bSetOrigSize)
{
- bModified |= nullptr != rSet->Put( SvxSizeItem( rPool.GetWhich(
+ bModified |= nullptr != rSet->Put( SvxSizeItem( rPool.GetWhichIDFromSlotID(
SID_ATTR_GRAF_FRMSIZE_PERCENT ), Size( 0, 0 )) );
}
}
if( m_xLeftMF->get_value_changed_from_saved() || m_xRightMF->get_value_changed_from_saved() ||
m_xTopMF->get_value_changed_from_saved() || m_xBottomMF->get_value_changed_from_saved() )
{
- sal_uInt16 nW = rPool.GetWhich( SID_ATTR_GRAF_CROP );
+ sal_uInt16 nW = rPool.GetWhichIDFromSlotID( SID_ATTR_GRAF_CROP );
FieldUnit eUnit = MapToFieldUnit( rSet->GetPool()->GetMetric( nW ));
std::unique_ptr<SvxGrfCrop> pNew(static_cast<SvxGrfCrop*>(rSet->Get( nW ).Clone()));
@@ -268,12 +272,12 @@ bool SvxGrfCropPage::FillItemSet(SfxItemSet *rSet)
pNew->SetRight( lcl_GetValue( *m_xRightMF, eUnit ) );
pNew->SetTop( lcl_GetValue( *m_xTopMF, eUnit ) );
pNew->SetBottom( lcl_GetValue( *m_xBottomMF, eUnit ) );
- bModified |= nullptr != rSet->Put( *pNew );
+ bModified |= nullptr != rSet->Put( std::move(pNew) );
}
if( m_xZoomConstRB->get_state_changed_from_saved() )
{
- bModified |= nullptr != rSet->Put( SfxBoolItem( rPool.GetWhich(
+ bModified |= nullptr != rSet->Put( SfxBoolItem( rPool.GetWhichIDFromSlotID(
SID_ATTR_GRAF_KEEP_ZOOM), m_xZoomConstRB->get_active() ) );
}
@@ -287,19 +291,23 @@ void SvxGrfCropPage::ActivatePage(const SfxItemSet& rSet)
DBG_ASSERT( pPool, "Where is the pool?" );
#endif
- bSetOrigSize = false;
+ auto& aProperties = getAdditionalProperties();
+ auto aIterator = aProperties.find(u"PreferredDPI"_ustr);
+ if (aIterator != aProperties.end())
+ m_aPreferredDPI = aIterator->second.get<sal_Int32>();
+
+ m_bSetOrigSize = false;
// Size
Size aSize;
- const SfxPoolItem* pItem;
- if( SfxItemState::SET == rSet.GetItemState( SID_ATTR_GRAF_FRMSIZE, false, &pItem ) )
- aSize = static_cast<const SvxSizeItem*>(pItem)->GetSize();
+ if( const SvxSizeItem* pFrmSizeItem = rSet.GetItemIfSet( SID_ATTR_GRAF_FRMSIZE, false ) )
+ aSize = pFrmSizeItem->GetSize();
- nOldWidth = aSize.Width();
- nOldHeight = aSize.Height();
+ m_nOldWidth = aSize.Width();
+ m_nOldHeight = aSize.Height();
- auto nWidth = m_xWidthMF->normalize(nOldWidth);
- auto nHeight = m_xHeightMF->normalize(nOldHeight);
+ auto nWidth = m_xWidthMF->normalize(m_nOldWidth);
+ auto nHeight = m_xHeightMF->normalize(m_nOldHeight);
if (nWidth != m_xWidthMF->get_value(FieldUnit::TWIP))
m_xWidthMF->set_value(nWidth, FieldUnit::TWIP);
@@ -309,29 +317,27 @@ void SvxGrfCropPage::ActivatePage(const SfxItemSet& rSet)
m_xHeightMF->set_value(nHeight, FieldUnit::TWIP);
m_xHeightMF->save_value();
- if( SfxItemState::SET == rSet.GetItemState( SID_ATTR_GRAF_GRAPHIC, false, &pItem ) )
+ if( const SvxBrushItem* pBrushItem = rSet.GetItemIfSet( SID_ATTR_GRAF_GRAPHIC, false ) )
{
- const SvxBrushItem& rBrush = *static_cast<const SvxBrushItem*>(pItem);
- if( !rBrush.GetGraphicLink().isEmpty() &&
- aGraphicName != rBrush.GetGraphicLink() )
- aGraphicName = rBrush.GetGraphicLink();
+ if( !pBrushItem->GetGraphicLink().isEmpty() &&
+ m_aGraphicName != pBrushItem->GetGraphicLink() )
+ m_aGraphicName = pBrushItem->GetGraphicLink();
OUString referer;
- SfxStringItem const * it = static_cast<SfxStringItem const *>(
- rSet.GetItem(SID_REFERER));
+ SfxStringItem const * it = rSet.GetItem(SID_REFERER);
if (it != nullptr) {
referer = it->GetValue();
}
- const Graphic* pGrf = rBrush.GetGraphic(referer);
+ const Graphic* pGrf = pBrushItem->GetGraphic(referer);
if( pGrf )
{
m_aExampleWN.SetGraphic( *pGrf );
- aOrigSize = GetGrfOrigSize( *pGrf );
- if (pGrf->GetType() == GraphicType::Bitmap && aOrigSize.Width() > 1 && aOrigSize.Height() > 1) {
- aOrigPixelSize = pGrf->GetSizePixel();
+ m_aOrigSize = GetGrfOrigSize( *pGrf );
+ if (pGrf->GetType() == GraphicType::Bitmap && m_aOrigSize.Width() > 1 && m_aOrigSize.Height() > 1) {
+ m_aOrigPixelSize = pGrf->GetSizePixel();
}
- m_aExampleWN.SetFrameSize(aOrigSize);
- GraphicHasChanged( aOrigSize.Width() && aOrigSize.Height() );
+ m_aExampleWN.SetFrameSize(m_aOrigSize);
+ GraphicHasChanged( m_aOrigSize.Width() && m_aOrigSize.Height() );
CalcMinMaxBorder();
}
else
@@ -355,8 +361,8 @@ DeactivateRC SvxGrfCropPage::DeactivatePage(SfxItemSet *_pSet)
IMPL_LINK( SvxGrfCropPage, ZoomHdl, weld::MetricSpinButton&, rField, void )
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
- FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhich(
+ assert(pPool && "Where is the pool?");
+ FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhichIDFromSlotID(
SID_ATTR_GRAF_CROP ) ) );
if (&rField == m_xWidthZoomMF.get())
@@ -364,7 +370,7 @@ IMPL_LINK( SvxGrfCropPage, ZoomHdl, weld::MetricSpinButton&, rField, void )
tools::Long nLRBorders = lcl_GetValue(*m_xLeftMF, eUnit)
+lcl_GetValue(*m_xRightMF, eUnit);
m_xWidthMF->set_value( m_xWidthMF->normalize(
- ((aOrigSize.Width() - nLRBorders) * rField.get_value(FieldUnit::NONE))/100),
+ ((m_aOrigSize.Width() - nLRBorders) * rField.get_value(FieldUnit::NONE))/100),
eUnit);
}
else
@@ -372,7 +378,7 @@ IMPL_LINK( SvxGrfCropPage, ZoomHdl, weld::MetricSpinButton&, rField, void )
tools::Long nULBorders = lcl_GetValue(*m_xTopMF, eUnit)
+lcl_GetValue(*m_xBottomMF, eUnit);
m_xHeightMF->set_value( m_xHeightMF->normalize(
- ((aOrigSize.Height() - nULBorders ) * rField.get_value(FieldUnit::NONE))/100) ,
+ ((m_aOrigSize.Height() - nULBorders ) * rField.get_value(FieldUnit::NONE))/100) ,
eUnit );
}
}
@@ -384,8 +390,8 @@ IMPL_LINK( SvxGrfCropPage, ZoomHdl, weld::MetricSpinButton&, rField, void )
IMPL_LINK( SvxGrfCropPage, SizeHdl, weld::MetricSpinButton&, rField, void )
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
- FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhich(
+ assert(pPool && "Where is the pool?");
+ FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhichIDFromSlotID(
SID_ATTR_GRAF_CROP ) ) );
Size aSize( lcl_GetValue(*m_xWidthMF, eUnit),
@@ -393,7 +399,7 @@ IMPL_LINK( SvxGrfCropPage, SizeHdl, weld::MetricSpinButton&, rField, void )
if(&rField == m_xWidthMF.get())
{
- tools::Long nWidth = aOrigSize.Width() -
+ tools::Long nWidth = m_aOrigSize.Width() -
( lcl_GetValue(*m_xLeftMF, eUnit) +
lcl_GetValue(*m_xRightMF, eUnit) );
if(!nWidth)
@@ -403,7 +409,7 @@ IMPL_LINK( SvxGrfCropPage, SizeHdl, weld::MetricSpinButton&, rField, void )
}
else
{
- tools::Long nHeight = aOrigSize.Height() -
+ tools::Long nHeight = m_aOrigSize.Height() -
( lcl_GetValue(*m_xTopMF, eUnit) +
lcl_GetValue(*m_xBottomMF, eUnit));
if(!nHeight)
@@ -420,8 +426,8 @@ IMPL_LINK( SvxGrfCropPage, SizeHdl, weld::MetricSpinButton&, rField, void )
IMPL_LINK( SvxGrfCropPage, CropModifyHdl, weld::MetricSpinButton&, rField, void )
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
- FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhich(
+ assert(pPool && "Where is the pool?");
+ FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhichIDFromSlotID(
SID_ATTR_GRAF_CROP ) ) );
bool bZoom = m_xZoomConstRB->get_active();
@@ -430,19 +436,19 @@ IMPL_LINK( SvxGrfCropPage, CropModifyHdl, weld::MetricSpinButton&, rField, void
tools::Long nLeft = lcl_GetValue( *m_xLeftMF, eUnit );
tools::Long nRight = lcl_GetValue( *m_xRightMF, eUnit );
tools::Long nWidthZoom = static_cast<tools::Long>(m_xWidthZoomMF->get_value(FieldUnit::NONE));
- if (bZoom && nWidthZoom != 0 && ( ( ( aOrigSize.Width() - (nLeft + nRight )) * nWidthZoom )
- / 100 >= aPageSize.Width() ) )
+ if (bZoom && nWidthZoom != 0 && ( ( ( m_aOrigSize.Width() - (nLeft + nRight )) * nWidthZoom )
+ / 100 >= m_aPageSize.Width() ) )
{
if (&rField == m_xLeftMF.get())
{
- nLeft = aOrigSize.Width() -
- ( aPageSize.Width() * 100 / nWidthZoom + nRight );
+ nLeft = m_aOrigSize.Width() -
+ ( m_aPageSize.Width() * 100 / nWidthZoom + nRight );
m_xLeftMF->set_value( m_xLeftMF->normalize( nLeft ), eUnit );
}
else
{
- nRight = aOrigSize.Width() -
- ( aPageSize.Width() * 100 / nWidthZoom + nLeft );
+ nRight = m_aOrigSize.Width() -
+ ( m_aPageSize.Width() * 100 / nWidthZoom + nLeft );
m_xRightMF->set_value( m_xRightMF->normalize( nRight ), eUnit );
}
}
@@ -467,20 +473,20 @@ IMPL_LINK( SvxGrfCropPage, CropModifyHdl, weld::MetricSpinButton&, rField, void
tools::Long nTop = lcl_GetValue( *m_xTopMF, eUnit );
tools::Long nBottom = lcl_GetValue( *m_xBottomMF, eUnit );
tools::Long nHeightZoom = static_cast<tools::Long>(m_xHeightZoomMF->get_value(FieldUnit::NONE));
- if(bZoom && ( ( ( aOrigSize.Height() - (nTop + nBottom )) * nHeightZoom)
- / 100 >= aPageSize.Height()))
+ if(bZoom && ( ( ( m_aOrigSize.Height() - (nTop + nBottom )) * nHeightZoom)
+ / 100 >= m_aPageSize.Height()))
{
assert(nHeightZoom && "div-by-zero");
if(&rField == m_xTopMF.get())
{
- nTop = aOrigSize.Height() -
- ( aPageSize.Height() * 100 / nHeightZoom + nBottom);
+ nTop = m_aOrigSize.Height() -
+ ( m_aPageSize.Height() * 100 / nHeightZoom + nBottom);
m_xTopMF->set_value( m_xWidthMF->normalize( nTop ), eUnit );
}
else
{
- nBottom = aOrigSize.Height() -
- ( aPageSize.Height() * 100 / nHeightZoom + nTop);
+ nBottom = m_aOrigSize.Height() -
+ ( m_aPageSize.Height() * 100 / nHeightZoom + nTop);
m_xBottomMF->set_value( m_xWidthMF->normalize( nBottom ), eUnit );
}
}
@@ -505,22 +511,48 @@ IMPL_LINK( SvxGrfCropPage, CropModifyHdl, weld::MetricSpinButton&, rField, void
IMPL_LINK_NOARG(SvxGrfCropPage, OrigSizeHdl, weld::Button&, void)
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
- FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhich(
+ assert(pPool && "Where is the pool?");
+ FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhichIDFromSlotID(
SID_ATTR_GRAF_CROP ) ) );
- tools::Long nWidth = aOrigSize.Width() -
+ tools::Long nWidth = m_aOrigSize.Width() -
lcl_GetValue( *m_xLeftMF, eUnit ) -
lcl_GetValue( *m_xRightMF, eUnit );
m_xWidthMF->set_value( m_xWidthMF->normalize( nWidth ), eUnit );
- tools::Long nHeight = aOrigSize.Height() -
+ tools::Long nHeight = m_aOrigSize.Height() -
lcl_GetValue( *m_xTopMF, eUnit ) -
lcl_GetValue( *m_xBottomMF, eUnit );
m_xHeightMF->set_value( m_xHeightMF->normalize( nHeight ), eUnit );
m_xWidthZoomMF->set_value(100, FieldUnit::NONE);
m_xHeightZoomMF->set_value(100, FieldUnit::NONE);
- bSetOrigSize = true;
+ m_bSetOrigSize = true;
}
+
+/*--------------------------------------------------------------------
+ description: reset crop
+ --------------------------------------------------------------------*/
+
+IMPL_LINK_NOARG(SvxGrfCropPage, UncropHdl, weld::Button&, void)
+{
+ SfxItemPool* pPool = GetItemSet().GetPool();
+ DBG_ASSERT( pPool, "Where is the pool?" );
+
+ m_xLeftMF->set_value(0, FieldUnit::NONE);
+ m_xRightMF->set_value(0, FieldUnit::NONE);
+ m_xTopMF->set_value(0, FieldUnit::NONE);
+ m_xBottomMF->set_value(0, FieldUnit::NONE);
+
+ m_aExampleWN.SetLeft(0);
+ m_aExampleWN.SetRight(0);
+ m_aExampleWN.SetTop(0);
+ m_aExampleWN.SetBottom(0);
+
+ m_aExampleWN.Invalidate();
+ CalcMinMaxBorder();
+
+}
+
+
/*--------------------------------------------------------------------
description: compute scale
--------------------------------------------------------------------*/
@@ -528,8 +560,8 @@ IMPL_LINK_NOARG(SvxGrfCropPage, OrigSizeHdl, weld::Button&, void)
void SvxGrfCropPage::CalcZoom()
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
- FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhich(
+ assert(pPool && "Where is the pool?");
+ FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhichIDFromSlotID(
SID_ATTR_GRAF_CROP ) ) );
tools::Long nWidth = lcl_GetValue( *m_xWidthMF, eUnit );
@@ -540,10 +572,10 @@ void SvxGrfCropPage::CalcZoom()
lcl_GetValue( *m_xBottomMF, eUnit );
sal_uInt16 nZoom = 0;
tools::Long nDen;
- if( (nDen = aOrigSize.Width() - nLRBorders) > 0)
+ if( (nDen = m_aOrigSize.Width() - nLRBorders) > 0)
nZoom = static_cast<sal_uInt16>((( nWidth * 1000 / nDen )+5)/10);
m_xWidthZoomMF->set_value(nZoom, FieldUnit::NONE);
- if( (nDen = aOrigSize.Height() - nULBorders) > 0)
+ if( (nDen = m_aOrigSize.Height() - nULBorders) > 0)
nZoom = static_cast<sal_uInt16>((( nHeight * 1000 / nDen )+5)/10);
else
nZoom = 0;
@@ -557,11 +589,11 @@ void SvxGrfCropPage::CalcZoom()
void SvxGrfCropPage::CalcMinMaxBorder()
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
- FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhich(
+ assert(pPool && "Where is the pool?");
+ FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhichIDFromSlotID(
SID_ATTR_GRAF_CROP ) ) );
tools::Long nR = lcl_GetValue(*m_xRightMF, eUnit );
- tools::Long nMinWidth = (aOrigSize.Width() * 10) /11;
+ tools::Long nMinWidth = (m_aOrigSize.Width() * 10) /11;
tools::Long nMin = nMinWidth - (nR >= 0 ? nR : 0);
m_xLeftMF->set_max( m_xLeftMF->normalize(nMin), eUnit );
@@ -570,7 +602,7 @@ void SvxGrfCropPage::CalcMinMaxBorder()
m_xRightMF->set_max( m_xRightMF->normalize(nMin), eUnit );
tools::Long nUp = lcl_GetValue( *m_xTopMF, eUnit );
- tools::Long nMinHeight = (aOrigSize.Height() * 10) /11;
+ tools::Long nMinHeight = (m_aOrigSize.Height() * 10) /11;
nMin = nMinHeight - (nUp >= 0 ? nUp : 0);
m_xBottomMF->set_max( m_xBottomMF->normalize(nMin), eUnit );
@@ -588,20 +620,20 @@ void SvxGrfCropPage::GraphicHasChanged( bool bFound )
if( bFound )
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
- FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhich(
+ assert(pPool && "Where is the pool?");
+ FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( pPool->GetWhichIDFromSlotID(
SID_ATTR_GRAF_CROP ) ));
- sal_Int64 nSpin = m_xLeftMF->normalize(aOrigSize.Width()) / 20;
- nSpin = vcl::ConvertValue( nSpin, aOrigSize.Width(), 0,
+ sal_Int64 nSpin = m_xLeftMF->normalize(m_aOrigSize.Width()) / 20;
+ nSpin = vcl::ConvertValue( nSpin, m_aOrigSize.Width(), 0,
eUnit, m_xLeftMF->get_unit());
// if the margin is too big, it is set to 1/3 on both pages
tools::Long nR = lcl_GetValue( *m_xRightMF, eUnit );
tools::Long nL = lcl_GetValue( *m_xLeftMF, eUnit );
- if((nL + nR) < - aOrigSize.Width())
+ if((nL + nR) < - m_aOrigSize.Width())
{
- tools::Long nVal = aOrigSize.Width() / -3;
+ tools::Long nVal = m_aOrigSize.Width() / -3;
m_xRightMF->set_value( m_xRightMF->normalize( nVal ), eUnit );
m_xLeftMF->set_value( m_xLeftMF->normalize( nVal ), eUnit );
m_aExampleWN.SetLeft(nVal);
@@ -609,9 +641,9 @@ void SvxGrfCropPage::GraphicHasChanged( bool bFound )
}
tools::Long nUp = lcl_GetValue(*m_xTopMF, eUnit );
tools::Long nLow = lcl_GetValue(*m_xBottomMF, eUnit );
- if((nUp + nLow) < - aOrigSize.Height())
+ if((nUp + nLow) < - m_aOrigSize.Height())
{
- tools::Long nVal = aOrigSize.Height() / -3;
+ tools::Long nVal = m_aOrigSize.Height() / -3;
m_xTopMF->set_value( m_xTopMF->normalize( nVal ), eUnit );
m_xBottomMF->set_value( m_xBottomMF->normalize( nVal ), eUnit );
m_aExampleWN.SetTop(nVal);
@@ -620,8 +652,8 @@ void SvxGrfCropPage::GraphicHasChanged( bool bFound )
m_xLeftMF->set_increments(nSpin, nSpin * 10, FieldUnit::NONE);
m_xRightMF->set_increments(nSpin, nSpin * 10, FieldUnit::NONE);
- nSpin = m_xTopMF->normalize(aOrigSize.Height()) / 20;
- nSpin = vcl::ConvertValue( nSpin, aOrigSize.Width(), 0,
+ nSpin = m_xTopMF->normalize(m_aOrigSize.Height()) / 20;
+ nSpin = vcl::ConvertValue( nSpin, m_aOrigSize.Width(), 0,
eUnit, m_xLeftMF->get_unit() );
m_xTopMF->set_increments(nSpin, nSpin * 10, FieldUnit::NONE);
m_xBottomMF->set_increments(nSpin, nSpin * 10, FieldUnit::NONE);
@@ -631,33 +663,34 @@ void SvxGrfCropPage::GraphicHasChanged( bool bFound )
OUString sTemp;
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/spinbox.ui"));
- std::unique_ptr<weld::Dialog> xTopLevel(xBuilder->weld_dialog("SpinDialog"));
- std::unique_ptr<weld::MetricSpinButton> xFld(xBuilder->weld_metric_spin_button("spin", FieldUnit::CM));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/spinbox.ui"_ustr));
+ std::unique_ptr<weld::Dialog> xTopLevel(xBuilder->weld_dialog(u"SpinDialog"_ustr));
+ std::unique_ptr<weld::MetricSpinButton> xFld(xBuilder->weld_metric_spin_button(u"spin"_ustr, FieldUnit::CM));
SetFieldUnit( *xFld, eMetric );
xFld->set_digits(m_xWidthMF->get_digits());
xFld->set_max(INT_MAX - 1, FieldUnit::NONE);
- xFld->set_value(xFld->normalize(aOrigSize.Width()), eUnit);
+ xFld->set_value(xFld->normalize(m_aOrigSize.Width()), eUnit);
sTemp = xFld->get_text();
- xFld->set_value(xFld->normalize(aOrigSize.Height()), eUnit);
+ xFld->set_value(xFld->normalize(m_aOrigSize.Height()), eUnit);
// multiplication sign (U+00D7)
sTemp += u"\u00D7" + xFld->get_text();
}
- if ( aOrigPixelSize.Width() && aOrigPixelSize.Height() ) {
- sal_Int32 ax = 0.5 + aOrigPixelSize.Width() /
- o3tl::convert<double>(aOrigSize.Width(), o3tl::Length::twip,
+ if ( m_aOrigPixelSize.Width() && m_aOrigPixelSize.Height() ) {
+ sal_Int32 ax = 0.5 + m_aOrigPixelSize.Width() /
+ o3tl::convert<double>(m_aOrigSize.Width(), o3tl::Length::twip,
o3tl::Length::in);
- sal_Int32 ay = 0.5 + aOrigPixelSize.Height() /
- o3tl::convert<double>(aOrigSize.Height(), o3tl::Length::twip,
+ sal_Int32 ay = 0.5 + m_aOrigPixelSize.Height() /
+ o3tl::convert<double>(m_aOrigSize.Height(), o3tl::Length::twip,
o3tl::Length::in);
OUString sPPI = OUString::number(ax);
if (abs(ax - ay) > 1) {
sPPI += u"\u00D7" + OUString::number(ay);
}
- sTemp += " " + CuiResId(RID_SVXSTR_PPI).replaceAll("%1", sPPI);
+ sTemp += " " + CuiResId(RID_CUISTR_PPI).replaceAll("%1", sPPI);
}
+ sTemp += "\n" + OUString::number(m_aOrigPixelSize.Width()) + u"\u00D7" + OUString::number(m_aOrigPixelSize.Height()) + " px";
m_xOrigSizeFT->set_label(sTemp);
}
@@ -670,13 +703,27 @@ void SvxGrfCropPage::GraphicHasChanged( bool bFound )
Size SvxGrfCropPage::GetGrfOrigSize(const Graphic& rGrf)
{
- const MapMode aMapTwip( MapUnit::MapTwip );
- Size aSize( rGrf.GetPrefSize() );
- if( MapUnit::MapPixel == rGrf.GetPrefMapMode().GetMapUnit() )
- aSize = Application::GetDefaultDevice()->PixelToLogic(aSize, aMapTwip);
+ Size aSize;
+
+ if (m_aPreferredDPI > 0)
+ {
+ Size aPixelSize = rGrf.GetSizePixel();
+ double fWidth = aPixelSize.Width() / double(m_aPreferredDPI);
+ double fHeight = aPixelSize.Height() / double(m_aPreferredDPI);
+ fWidth = o3tl::convert(fWidth, o3tl::Length::in, o3tl::Length::twip);
+ fHeight = o3tl::convert(fHeight, o3tl::Length::in, o3tl::Length::twip);
+ aSize = Size(fWidth, fHeight);
+ }
else
- aSize = OutputDevice::LogicToLogic( aSize,
- rGrf.GetPrefMapMode(), aMapTwip );
+ {
+ const MapMode aMapTwip( MapUnit::MapTwip );
+ aSize = rGrf.GetPrefSize();
+ if( MapUnit::MapPixel == rGrf.GetPrefMapMode().GetMapUnit() )
+ aSize = Application::GetDefaultDevice()->PixelToLogic(aSize, aMapTwip);
+ else
+ aSize = OutputDevice::LogicToLogic( aSize,
+ rGrf.GetPrefMapMode(), aMapTwip );
+ }
return aSize;
}
@@ -728,7 +775,7 @@ void SvxCropExample::Paint(vcl::RenderContext& rRenderContext, const ::tools::Re
// the former used XOR paint.
const Color aColA(SvtOptionsDrawinglayer::GetStripeColorA().getBColor());
const Color aColB(SvtOptionsDrawinglayer::GetStripeColorB().getBColor());
- const double fStripeLength(SvtOptionsDrawinglayer::GetStripeLength());
+ const double fStripeLength(officecfg::Office::Common::Drawinglayer::StripeLength::get());
const basegfx::B2DVector aDashVector(rRenderContext.GetInverseViewTransformation() * basegfx::B2DVector(fStripeLength, 0.0));
const double fLogicDashLength(aDashVector.getX());
diff --git a/cui/source/tabpages/labdlg.cxx b/cui/source/tabpages/labdlg.cxx
index 867a31885af7..2540c5335282 100644
--- a/cui/source/tabpages/labdlg.cxx
+++ b/cui/source/tabpages/labdlg.cxx
@@ -58,7 +58,7 @@ const WhichRangesContainer SvxCaptionTabPage::pCaptionRanges(
SDRATTR_CAPTIONLINELEN, SDRATTR_CAPTIONFITLINELEN>);
SvxCaptionTabPage::SvxCaptionTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/calloutpage.ui", "CalloutPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/calloutpage.ui"_ustr, u"CalloutPage"_ustr, &rInAttrs)
, nCaptionType(SdrCaptionType::Type1)
, nGap(0)
, nEscDir(SdrCaptionEscDir::Horizontal)
@@ -71,18 +71,18 @@ SvxCaptionTabPage::SvxCaptionTabPage(weld::Container* pPage, weld::DialogControl
, nExtension(0)
, rOutAttrs(rInAttrs)
, pView(nullptr)
- , m_xMF_SPACING(m_xBuilder->weld_metric_spin_button("spacing", FieldUnit::MM))
- , m_xLB_EXTENSION(m_xBuilder->weld_combo_box("extension"))
- , m_xFT_BYFT(m_xBuilder->weld_label("byft"))
- , m_xMF_BY(m_xBuilder->weld_metric_spin_button("by", FieldUnit::MM))
- , m_xFT_POSITIONFT(m_xBuilder->weld_label("positionft"))
- , m_xLB_POSITION(m_xBuilder->weld_combo_box("position"))
- , m_xLineTypes(m_xBuilder->weld_combo_box("linetypes"))
- , m_xFT_LENGTHFT(m_xBuilder->weld_label("lengthft"))
- , m_xMF_LENGTH(m_xBuilder->weld_metric_spin_button("length", FieldUnit::MM))
- , m_xCB_OPTIMAL(m_xBuilder->weld_check_button("optimal"))
- , m_xCT_CAPTTYPE(new ValueSet(m_xBuilder->weld_scrolled_window("valuesetwin", true)))
- , m_xCT_CAPTTYPEWin(new weld::CustomWeld(*m_xBuilder, "valueset", *m_xCT_CAPTTYPE))
+ , m_xMF_SPACING(m_xBuilder->weld_metric_spin_button(u"spacing"_ustr, FieldUnit::MM))
+ , m_xLB_EXTENSION(m_xBuilder->weld_combo_box(u"extension"_ustr))
+ , m_xFT_BYFT(m_xBuilder->weld_label(u"byft"_ustr))
+ , m_xMF_BY(m_xBuilder->weld_metric_spin_button(u"by"_ustr, FieldUnit::MM))
+ , m_xFT_POSITIONFT(m_xBuilder->weld_label(u"positionft"_ustr))
+ , m_xLB_POSITION(m_xBuilder->weld_combo_box(u"position"_ustr))
+ , m_xLineTypes(m_xBuilder->weld_combo_box(u"linetypes"_ustr))
+ , m_xFT_LENGTHFT(m_xBuilder->weld_label(u"lengthft"_ustr))
+ , m_xMF_LENGTH(m_xBuilder->weld_metric_spin_button(u"length"_ustr, FieldUnit::MM))
+ , m_xCB_OPTIMAL(m_xBuilder->weld_check_button(u"optimal"_ustr))
+ , m_xCT_CAPTTYPE(new ValueSet(m_xBuilder->weld_scrolled_window(u"valuesetwin"_ustr, true)))
+ , m_xCT_CAPTTYPEWin(new weld::CustomWeld(*m_xBuilder, u"valueset"_ustr, *m_xCT_CAPTTYPE))
{
Size aSize(m_xCT_CAPTTYPE->GetDrawingArea()->get_ref_device().LogicToPixel(Size(187, 38), MapMode(MapUnit::MapAppFont)));
m_xCT_CAPTTYPEWin->set_size_request(aSize.Width(), aSize.Height());
@@ -137,8 +137,8 @@ void SvxCaptionTabPage::Construct()
bool SvxCaptionTabPage::FillItemSet( SfxItemSet* _rOutAttrs)
{
- SfxItemPool* pPool = _rOutAttrs->GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ SfxItemPool* pPool = _rOutAttrs->GetPool();
+ assert(pPool && "Where is the pool?");
MapUnit eUnit;
@@ -227,7 +227,7 @@ void SvxCaptionTabPage::Reset( const SfxItemSet* )
SetFieldUnit( *m_xMF_LENGTH, eFUnit );
SfxItemPool* pPool = rOutAttrs.GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ assert(pPool && "Where is the pool?");
sal_uInt16 nWhich;
MapUnit eUnit;
@@ -255,9 +255,9 @@ void SvxCaptionTabPage::Reset( const SfxItemSet* )
SetMetricValue( *m_xMF_SPACING, nGap, eUnit );
nGap = m_xMF_SPACING->get_value(FieldUnit::NONE);
- nCaptionType = static_cast<const SdrCaptionTypeItem&>( rOutAttrs.Get( GetWhich( SDRATTR_CAPTIONTYPE ) ) ).GetValue();
+ nCaptionType = rOutAttrs.Get( GetWhich( SDRATTR_CAPTIONTYPE ) ).GetValue();
bFitLineLen = static_cast<const SfxBoolItem&>( rOutAttrs.Get( GetWhich( SDRATTR_CAPTIONFITLINELEN ) ) ).GetValue();
- nEscDir = static_cast<const SdrCaptionEscDirItem&>( rOutAttrs.Get( GetWhich( SDRATTR_CAPTIONESCDIR ) ) ).GetValue();
+ nEscDir = rOutAttrs.Get( GetWhich( SDRATTR_CAPTIONESCDIR ) ).GetValue();
bEscRel = static_cast<const SfxBoolItem&>( rOutAttrs.Get( GetWhich( SDRATTR_CAPTIONESCISREL ) ) ).GetValue();
// special treatment!!! XXX
@@ -451,7 +451,7 @@ void SvxCaptionTabPage::FillValueSet()
SvxCaptionTabDialog::SvxCaptionTabDialog(weld::Window* pParent, const SdrView* pSdrView,
SvxAnchorIds nAnchorTypes)
- : SfxTabDialogController(pParent, "cui/ui/calloutdialog.ui", "CalloutDialog")
+ : SfxTabDialogController(pParent, u"cui/ui/calloutdialog.ui"_ustr, u"CalloutDialog"_ustr)
, pView(pSdrView)
, nAnchorCtrls(nAnchorTypes)
{
@@ -460,21 +460,21 @@ SvxCaptionTabDialog::SvxCaptionTabDialog(weld::Window* pParent, const SdrView* p
//different positioning page in Writer
if (nAnchorCtrls & (SvxAnchorIds::Paragraph | SvxAnchorIds::Character | SvxAnchorIds::Page | SvxAnchorIds::Fly))
{
- AddTabPage("RID_SVXPAGE_SWPOSSIZE", SvxSwPosSizeTabPage::Create,
+ AddTabPage(u"RID_SVXPAGE_SWPOSSIZE"_ustr, SvxSwPosSizeTabPage::Create,
SvxSwPosSizeTabPage::GetRanges );
- RemoveTabPage("RID_SVXPAGE_POSITION_SIZE");
+ RemoveTabPage(u"RID_SVXPAGE_POSITION_SIZE"_ustr);
}
else
{
- AddTabPage("RID_SVXPAGE_POSITION_SIZE", SvxPositionSizeTabPage::Create,
+ AddTabPage(u"RID_SVXPAGE_POSITION_SIZE"_ustr, SvxPositionSizeTabPage::Create,
SvxPositionSizeTabPage::GetRanges );
- RemoveTabPage("RID_SVXPAGE_SWPOSSIZE");
+ RemoveTabPage(u"RID_SVXPAGE_SWPOSSIZE"_ustr);
}
- AddTabPage("RID_SVXPAGE_CAPTION", SvxCaptionTabPage::Create,
+ AddTabPage(u"RID_SVXPAGE_CAPTION"_ustr, SvxCaptionTabPage::Create,
SvxCaptionTabPage::GetRanges );
}
-void SvxCaptionTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
+void SvxCaptionTabDialog::PageCreated(const OUString& rId, SfxTabPage &rPage)
{
if (rId == "RID_SVXPAGE_POSITION_SIZE")
{
diff --git a/cui/source/tabpages/macroass.cxx b/cui/source/tabpages/macroass.cxx
index 94143e310ebd..9da8e8ce83fe 100644
--- a/cui/source/tabpages/macroass.cxx
+++ b/cui/source/tabpages/macroass.cxx
@@ -19,6 +19,7 @@
#include <macroass.hxx>
#include <o3tl/safeint.hxx>
+#include <o3tl/string_view.hxx>
#include <osl/diagnose.h>
#include <comphelper/string.hxx>
#include <comphelper/processfactory.hxx>
@@ -70,7 +71,7 @@ static OUString ConvertToUIName_Impl( SvxMacro const *pMacro )
OUString aEntry = aName.getToken( nCount-1, '.' );
if ( nCount > 2 )
{
- aEntry += "(" + aName.getToken( 0, '.' ) + "." + aName.getToken( nCount-2, '.' ) + ")";
+ aEntry += OUString::Concat("(") + o3tl::getToken(aName, 0, '.' ) + "." + o3tl::getToken(aName, nCount-2, '.' ) + ")";
}
return aEntry;
}
@@ -99,21 +100,21 @@ void SfxMacroTabPage::EnableButtons()
}
SfxMacroTabPage::SfxMacroTabPage(weld::Container* pPage, weld::DialogController* pController, const Reference< XFrame >& rxDocumentFrame, const SfxItemSet& rAttrSet )
- : SfxTabPage(pPage, pController, "cui/ui/eventassignpage.ui", "EventAssignPage", &rAttrSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/eventassignpage.ui"_ustr, u"EventAssignPage"_ustr, &rAttrSet)
{
mpImpl.reset(new SfxMacroTabPage_Impl);
mpImpl->m_aFillGroupIdle.SetInvokeHandler( LINK( this, SfxMacroTabPage, TimeOut_Impl ) );
mpImpl->m_aFillGroupIdle.SetPriority( TaskPriority::HIGHEST );
- mpImpl->m_xEventLB.reset(new MacroEventListBox(m_xBuilder->weld_tree_view("assignments")));
- mpImpl->m_xAssignPB = m_xBuilder->weld_button("assign");
- mpImpl->m_xDeletePB = m_xBuilder->weld_button("delete");
- mpImpl->m_xGroupFrame = m_xBuilder->weld_widget("groupframe");
- mpImpl->m_xGroupLB.reset(new CuiConfigGroupListBox(m_xBuilder->weld_tree_view("libraries")));
- mpImpl->m_xMacroFrame = m_xBuilder->weld_frame("macroframe");
+ mpImpl->m_xEventLB.reset(new MacroEventListBox(m_xBuilder->weld_tree_view(u"assignments"_ustr)));
+ mpImpl->m_xAssignPB = m_xBuilder->weld_button(u"assign"_ustr);
+ mpImpl->m_xDeletePB = m_xBuilder->weld_button(u"delete"_ustr);
+ mpImpl->m_xGroupFrame = m_xBuilder->weld_widget(u"groupframe"_ustr);
+ mpImpl->m_xGroupLB.reset(new CuiConfigGroupListBox(m_xBuilder->weld_tree_view(u"libraries"_ustr)));
+ mpImpl->m_xMacroFrame = m_xBuilder->weld_frame(u"macroframe"_ustr);
mpImpl->m_aStaticMacroLBLabel = mpImpl->m_xMacroFrame->get_label();
- mpImpl->m_xMacroLB.reset(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view("macros")));
+ mpImpl->m_xMacroLB.reset(new CuiConfigFunctionListBox(m_xBuilder->weld_tree_view(u"macros"_ustr)));
SetFrame( rxDocumentFrame );
@@ -155,9 +156,14 @@ bool SfxMacroTabPage::FillItemSet( SfxItemSet* rSet )
SvxMacroItem aItem( GetWhich( aPageRg[0] ) );
const_cast<SvxMacroTableDtor&>(aItem.GetMacroTable()) = aTbl;
- const SfxPoolItem* pItem;
- if( SfxItemState::SET != GetItemSet().GetItemState( aItem.Which(), true, &pItem )
- || aItem != *static_cast<const SvxMacroItem*>(pItem) )
+ const SfxPoolItem* pItem = nullptr;
+ SfxItemState eState = GetItemSet().GetItemState(aItem.Which(), true, &pItem);
+ if (eState == SfxItemState::DEFAULT && aTbl.empty())
+ {
+ // Don't touch the item set if there was no input and our table is empty.
+ return false;
+ }
+ if (SfxItemState::SET != eState || aItem != *static_cast<const SvxMacroItem*>(pItem))
{
rSet->Put( aItem );
return true;
@@ -178,11 +184,12 @@ void SfxMacroTabPage::ActivatePage( const SfxItemSet& )
void SfxMacroTabPage::PageCreated(const SfxAllItemSet& aSet)
{
- const SfxPoolItem* pEventsItem;
- if( !mpImpl->m_bGotEvents && SfxItemState::SET == aSet.GetItemState( SID_EVENTCONFIG, true, &pEventsItem ) )
+ if( mpImpl->m_bGotEvents )
+ return;
+ if( const SfxEventNamesItem* pEventsItem = aSet.GetItemIfSet( SID_EVENTCONFIG ) )
{
mpImpl->m_bGotEvents = true;
- const SfxEventNamesList& rList = static_cast<const SfxEventNamesItem*>(pEventsItem)->GetEvents();
+ const SfxEventNamesList& rList = pEventsItem->GetEvents();
for ( size_t nNo = 0, nCnt = rList.size(); nNo < nCnt; ++nNo )
{
const SfxEventName &rOwn = rList.at(nNo);
@@ -197,11 +204,11 @@ void SfxMacroTabPage::Reset( const SfxItemSet* rSet )
if( SfxItemState::SET == rSet->GetItemState( GetWhich( aPageRg[0] ), true, &pItem ))
aTbl = static_cast<const SvxMacroItem*>(pItem)->GetMacroTable();
- const SfxPoolItem* pEventsItem;
- if( !mpImpl->m_bGotEvents && SfxItemState::SET == rSet->GetItemState( SID_EVENTCONFIG, true, &pEventsItem ) )
+ const SfxEventNamesItem* pEventsItem;
+ if( !mpImpl->m_bGotEvents && (pEventsItem = rSet->GetItemIfSet( SID_EVENTCONFIG ) ) )
{
mpImpl->m_bGotEvents = true;
- const SfxEventNamesList& rList = static_cast<const SfxEventNamesItem*>(pEventsItem)->GetEvents();
+ const SfxEventNamesList& rList = pEventsItem->GetEvents();
for ( size_t nNo = 0, nCnt = rList.size(); nNo < nCnt; ++nNo )
{
const SfxEventName &rOwn = rList.at(nNo);
@@ -214,7 +221,10 @@ void SfxMacroTabPage::Reset( const SfxItemSet* rSet )
weld::TreeView& rListBox = mpImpl->m_xEventLB->GetListBox();
std::unique_ptr<weld::TreeIter> xIter(rListBox.make_iterator());
if (rListBox.get_iter_first(*xIter))
+ {
rListBox.set_cursor(*xIter);
+ EnableButtons();
+ }
}
bool SfxMacroTabPage::IsReadOnly() const
@@ -378,8 +388,8 @@ std::unique_ptr<SfxTabPage> SfxMacroTabPage::Create(weld::Container* pPage, weld
SfxMacroAssignDlg::SfxMacroAssignDlg(weld::Widget* pParent,
const Reference< XFrame >& rxDocumentFrame, const SfxItemSet& rSet)
- : SfxSingleTabDialogController(pParent, &rSet,"cui/ui/eventassigndialog.ui",
- "EventAssignDialog")
+ : SfxSingleTabDialogController(pParent, &rSet,u"cui/ui/eventassigndialog.ui"_ustr,
+ u"EventAssignDialog"_ustr)
{
std::unique_ptr<SfxMacroTabPage> xPage = CreateSfxMacroTabPage(get_content_area(), this, rSet);
xPage->SetFrame(rxDocumentFrame);
diff --git a/cui/source/tabpages/measure.cxx b/cui/source/tabpages/measure.cxx
index 027f52a77d18..c1873bfe785e 100644
--- a/cui/source/tabpages/measure.cxx
+++ b/cui/source/tabpages/measure.cxx
@@ -54,7 +54,7 @@ SvxMeasureDialog::SvxMeasureDialog(weld::Window* pParent, const SfxItemSet& rInA
xPage->Construct();
SetTabPage(std::move(xPage));
- m_xDialog->set_title(CuiResId(RID_SVXSTR_DIMENSION_LINE));
+ m_xDialog->set_title(CuiResId(RID_CUISTR_DIMENSION_LINE));
}
/*************************************************************************
@@ -64,28 +64,28 @@ SvxMeasureDialog::SvxMeasureDialog(weld::Window* pParent, const SfxItemSet& rInA
\************************************************************************/
SvxMeasurePage::SvxMeasurePage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SvxTabPage(pPage, pController, "cui/ui/dimensionlinestabpage.ui", "DimensionLinesTabPage", rInAttrs)
+ : SvxTabPage(pPage, pController, u"cui/ui/dimensionlinestabpage.ui"_ustr, u"DimensionLinesTabPage"_ustr, rInAttrs)
, rOutAttrs(rInAttrs)
, aAttrSet(*rInAttrs.GetPool())
, pView(nullptr)
, eUnit(MapUnit::Map100thMM)
, bPositionModified(false)
, m_aCtlPosition(this)
- , m_xMtrFldLineDist(m_xBuilder->weld_metric_spin_button("MTR_LINE_DIST", FieldUnit::MM))
- , m_xMtrFldHelplineOverhang(m_xBuilder->weld_metric_spin_button("MTR_FLD_HELPLINE_OVERHANG", FieldUnit::MM))
- , m_xMtrFldHelplineDist(m_xBuilder->weld_metric_spin_button("MTR_FLD_HELPLINE_DIST", FieldUnit::MM))
- , m_xMtrFldHelpline1Len(m_xBuilder->weld_metric_spin_button("MTR_FLD_HELPLINE1_LEN", FieldUnit::MM))
- , m_xMtrFldHelpline2Len(m_xBuilder->weld_metric_spin_button("MTR_FLD_HELPLINE2_LEN", FieldUnit::MM))
- , m_xTsbBelowRefEdge(m_xBuilder->weld_check_button("TSB_BELOW_REF_EDGE"))
- , m_xMtrFldDecimalPlaces(m_xBuilder->weld_spin_button("MTR_FLD_DECIMALPLACES"))
- , m_xTsbAutoPosV(m_xBuilder->weld_check_button("TSB_AUTOPOSV"))
- , m_xTsbAutoPosH(m_xBuilder->weld_check_button("TSB_AUTOPOSH"))
- , m_xTsbShowUnit(m_xBuilder->weld_check_button("TSB_SHOW_UNIT"))
- , m_xLbUnit(m_xBuilder->weld_combo_box("LB_UNIT"))
- , m_xTsbParallel(m_xBuilder->weld_check_button("TSB_PARALLEL"))
- , m_xFtAutomatic(m_xBuilder->weld_label("STR_MEASURE_AUTOMATIC"))
- , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, "CTL_POSITION", m_aCtlPosition))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
+ , m_xMtrFldLineDist(m_xBuilder->weld_metric_spin_button(u"MTR_LINE_DIST"_ustr, FieldUnit::MM))
+ , m_xMtrFldHelplineOverhang(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_HELPLINE_OVERHANG"_ustr, FieldUnit::MM))
+ , m_xMtrFldHelplineDist(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_HELPLINE_DIST"_ustr, FieldUnit::MM))
+ , m_xMtrFldHelpline1Len(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_HELPLINE1_LEN"_ustr, FieldUnit::MM))
+ , m_xMtrFldHelpline2Len(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_HELPLINE2_LEN"_ustr, FieldUnit::MM))
+ , m_xTsbBelowRefEdge(m_xBuilder->weld_check_button(u"TSB_BELOW_REF_EDGE"_ustr))
+ , m_xMtrFldDecimalPlaces(m_xBuilder->weld_spin_button(u"MTR_FLD_DECIMALPLACES"_ustr))
+ , m_xTsbAutoPosV(m_xBuilder->weld_check_button(u"TSB_AUTOPOSV"_ustr))
+ , m_xTsbAutoPosH(m_xBuilder->weld_check_button(u"TSB_AUTOPOSH"_ustr))
+ , m_xTsbShowUnit(m_xBuilder->weld_check_button(u"TSB_SHOW_UNIT"_ustr))
+ , m_xLbUnit(m_xBuilder->weld_combo_box(u"LB_UNIT"_ustr))
+ , m_xTsbParallel(m_xBuilder->weld_check_button(u"TSB_PARALLEL"_ustr))
+ , m_xFtAutomatic(m_xBuilder->weld_label(u"STR_MEASURE_AUTOMATIC"_ustr))
+ , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, u"CTL_POSITION"_ustr, m_aCtlPosition))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_PREVIEW"_ustr, m_aCtlPreview))
{
m_aCtlPreview.SetAttributes(rInAttrs);
@@ -110,11 +110,16 @@ SvxMeasurePage::SvxMeasurePage(weld::Container* pPage, weld::DialogController* p
m_xTsbAutoPosH->connect_toggled(LINK(this, SvxMeasurePage, ClickAutoPosHdl_Impl));
Link<weld::MetricSpinButton&,void> aLink(LINK(this, SvxMeasurePage, ChangeAttrEditHdl_Impl));
+ m_xMtrFldLineDist->set_range(-10000, 10000, FieldUnit::MM);
m_xMtrFldLineDist->connect_value_changed(aLink);
m_xMtrFldHelplineOverhang->connect_value_changed(aLink);
+ m_xMtrFldHelplineOverhang->set_range(-10000, 10000, FieldUnit::MM);
m_xMtrFldHelplineDist->connect_value_changed(aLink);
+ m_xMtrFldHelplineDist->set_range(-10000, 10000, FieldUnit::MM);
m_xMtrFldHelpline1Len->connect_value_changed(aLink);
+ m_xMtrFldHelpline1Len->set_range(-10000, 10000, FieldUnit::MM);
m_xMtrFldHelpline2Len->connect_value_changed(aLink);
+ m_xMtrFldHelpline2Len->set_range(-10000, 10000, FieldUnit::MM);
m_xMtrFldDecimalPlaces->connect_value_changed(LINK(this, SvxMeasurePage, ChangeAttrSpinHdl_Impl));
m_xTsbBelowRefEdge->connect_toggled(LINK(this, SvxMeasurePage, ChangeAttrClickHdl_Impl));
m_xTsbParallel->connect_toggled( LINK( this, SvxMeasurePage, ChangeAttrClickHdl_Impl));
@@ -144,14 +149,14 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
// SdrMeasureLineDistItem
if( pItem == nullptr )
- pItem = &pPool->GetDefaultItem( SDRATTR_MEASURELINEDIST );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_MEASURELINEDIST );
SetMetricValue(*m_xMtrFldLineDist, static_cast<const SdrMetricItem*>(pItem)->GetValue(), eUnit);
m_xMtrFldLineDist->save_value();
// SdrMeasureHelplineOverhangItem
pItem = GetItem( *rAttrs, SDRATTR_MEASUREHELPLINEOVERHANG );
if( pItem == nullptr )
- pItem = &pPool->GetDefaultItem( SDRATTR_MEASUREHELPLINEOVERHANG );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_MEASUREHELPLINEOVERHANG );
SetMetricValue(*m_xMtrFldHelplineOverhang, static_cast<const SdrMetricItem*>(pItem)->GetValue(),
eUnit);
m_xMtrFldHelplineOverhang->save_value();
@@ -159,7 +164,7 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
// SdrMeasureHelplineDistItem
pItem = GetItem( *rAttrs, SDRATTR_MEASUREHELPLINEDIST );
if( pItem == nullptr )
- pItem = &pPool->GetDefaultItem( SDRATTR_MEASUREHELPLINEDIST );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_MEASUREHELPLINEDIST );
SetMetricValue(*m_xMtrFldHelplineDist, static_cast<const SdrMetricItem*>(pItem)->GetValue(),
eUnit);
m_xMtrFldHelplineDist->save_value();
@@ -167,7 +172,7 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
// SdrMeasureHelpline1LenItem
pItem = GetItem( *rAttrs, SDRATTR_MEASUREHELPLINE1LEN );
if( pItem == nullptr )
- pItem = &pPool->GetDefaultItem( SDRATTR_MEASUREHELPLINE1LEN );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_MEASUREHELPLINE1LEN );
SetMetricValue(*m_xMtrFldHelpline1Len, static_cast<const SdrMetricItem*>(pItem)->GetValue(),
eUnit);
m_xMtrFldHelpline1Len->save_value();
@@ -175,13 +180,13 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
// SdrMeasureHelpline2LenItem
pItem = GetItem( *rAttrs, SDRATTR_MEASUREHELPLINE2LEN );
if( pItem == nullptr )
- pItem = &pPool->GetDefaultItem( SDRATTR_MEASUREHELPLINE2LEN );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_MEASUREHELPLINE2LEN );
SetMetricValue(*m_xMtrFldHelpline2Len, static_cast<const SdrMetricItem*>(pItem)->GetValue(),
eUnit);
m_xMtrFldHelpline2Len->save_value();
// SdrMeasureBelowRefEdgeItem
- if( rAttrs->GetItemState( SDRATTR_MEASUREBELOWREFEDGE ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_MEASUREBELOWREFEDGE ) != SfxItemState::INVALID )
{
m_xTsbBelowRefEdge->set_state( rAttrs->Get( SDRATTR_MEASUREBELOWREFEDGE ).
GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
@@ -195,14 +200,14 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
// SdrMeasureDecimalPlacesItem
pItem = GetItem( *rAttrs, SDRATTR_MEASUREDECIMALPLACES );
if( pItem == nullptr )
- pItem = &pPool->GetDefaultItem( SDRATTR_MEASUREDECIMALPLACES );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_MEASUREDECIMALPLACES );
m_xMtrFldDecimalPlaces->set_value(
static_cast<const SdrMeasureDecimalPlacesItem*>(pItem)->GetValue());
m_xMtrFldDecimalPlaces->save_value();
// SdrMeasureTextRota90Item
// Attention: negate !
- if( rAttrs->GetItemState( SDRATTR_MEASURETEXTROTA90 ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_MEASURETEXTROTA90 ) != SfxItemState::INVALID )
{
m_xTsbParallel->set_state( rAttrs->Get( SDRATTR_MEASURETEXTROTA90 ).
GetValue() ? TRISTATE_FALSE : TRISTATE_TRUE );
@@ -214,7 +219,7 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
m_xTsbParallel->save_state();
// SdrMeasureShowUnitItem
- if( rAttrs->GetItemState( SDRATTR_MEASURESHOWUNIT ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_MEASURESHOWUNIT ) != SfxItemState::INVALID )
{
m_xTsbShowUnit->set_state( rAttrs->Get( SDRATTR_MEASURESHOWUNIT ).
GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
@@ -226,7 +231,7 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
m_xTsbShowUnit->save_state();
// SdrMeasureUnitItem
- if( rAttrs->GetItemState( SDRATTR_MEASUREUNIT ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_MEASUREUNIT ) != SfxItemState::INVALID )
{
tools::Long nFieldUnit = static_cast<tools::Long>(rAttrs->Get( SDRATTR_MEASUREUNIT ).GetValue());
@@ -246,12 +251,12 @@ void SvxMeasurePage::Reset( const SfxItemSet* rAttrs )
m_xLbUnit->save_value();
// Position
- if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTVPOS ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTVPOS ) != SfxItemState::INVALID )
{
css::drawing::MeasureTextVertPos eVPos =
rAttrs->Get( SDRATTR_MEASURETEXTVPOS ).GetValue();
{
- if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTHPOS ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTHPOS ) != SfxItemState::INVALID )
{
css::drawing::MeasureTextHorzPos eHPos =
rAttrs->Get( SDRATTR_MEASURETEXTHPOS ).GetValue();
@@ -460,7 +465,7 @@ bool SvxMeasurePage::FillItemSet( SfxItemSet* rAttrs)
if (m_xTsbAutoPosV->get_state() == TRISTATE_TRUE)
eVPos = css::drawing::MeasureTextVertPos_AUTO;
- if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTVPOS ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTVPOS ) != SfxItemState::INVALID )
{
css::drawing::MeasureTextVertPos eOldVPos = rOutAttrs.Get(SDRATTR_MEASURETEXTVPOS).GetValue();
if( eOldVPos != eVPos )
@@ -475,7 +480,7 @@ bool SvxMeasurePage::FillItemSet( SfxItemSet* rAttrs)
bModified = true;
}
- if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTHPOS ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( SDRATTR_MEASURETEXTHPOS ) != SfxItemState::INVALID )
{
css::drawing::MeasureTextHorzPos eOldHPos = rOutAttrs.Get( SDRATTR_MEASURETEXTHPOS ).GetValue();
if( eOldHPos != eHPos )
diff --git a/cui/source/tabpages/numfmt.cxx b/cui/source/tabpages/numfmt.cxx
index 219972d75edc..7eed6df2e241 100644
--- a/cui/source/tabpages/numfmt.cxx
+++ b/cui/source/tabpages/numfmt.cxx
@@ -24,8 +24,6 @@
#include <svl/intitem.hxx>
#include <sfx2/objsh.hxx>
#include <vcl/outdev.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/settings.hxx>
#include <i18nlangtag/lang.h>
#include <svx/svxids.hrc>
#include <svtools/colorcfg.hxx>
@@ -113,9 +111,19 @@ void SvxNumberPreview::NotifyChange( const OUString& rPrevStr,
mnPos = -1;
}
}
- svtools::ColorConfig aColorConfig;
- Color aWindowTextColor( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor );
- aPrevCol = pColor ? *pColor : aWindowTextColor;
+ if (pColor)
+ aPrevCol = *pColor;
+ else
+ {
+ svtools::ColorConfig aColorConfig;
+ Color aFgColor = aColorConfig.GetColorValue(svtools::FONTCOLOR, false).nColor;
+ if (aFgColor == COL_AUTO)
+ {
+ Color aBgColor = aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor;
+ aFgColor = aBgColor.IsDark() ? COL_WHITE : COL_BLACK;
+ }
+ aPrevCol = aFgColor;
+ }
Invalidate();
}
@@ -135,8 +143,13 @@ void SvxNumberPreview::Paint(vcl::RenderContext& rRenderContext, const ::tools::
rRenderContext.Push(vcl::PushFlags::ALL);
svtools::ColorConfig aColorConfig;
- rRenderContext.SetTextColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
- rRenderContext.SetBackground(aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor);
+ Color aBgColor = aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor;
+ Color aFgColor = aColorConfig.GetColorValue(svtools::FONTCOLOR, false).nColor;
+ if (aFgColor == COL_AUTO)
+ aFgColor = aBgColor.IsDark() ? COL_WHITE : COL_BLACK;
+ rRenderContext.SetBackground(aBgColor);
+ rRenderContext.SetTextColor(aFgColor);
+ rRenderContext.Erase();
vcl::Font aDrawFont = rRenderContext.GetFont();
Size aSzWnd(GetOutputSizePixel());
@@ -185,39 +198,39 @@ void SvxNumberPreview::Paint(vcl::RenderContext& rRenderContext, const ::tools::
SvxNumberFormatTabPage::SvxNumberFormatTabPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rCoreAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/numberingformatpage.ui", "NumberingFormatPage", &rCoreAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/numberingformatpage.ui"_ustr, u"NumberingFormatPage"_ustr, &rCoreAttrs)
, nInitFormat(std::numeric_limits<sal_uInt32>::max())
, m_nLbFormatSelPosEdComment(SELPOS_NONE)
, bLegacyAutomaticCurrency(false)
- , sAutomaticLangEntry(CuiResId(RID_SVXSTR_AUTO_ENTRY))
- , m_xFtCategory(m_xBuilder->weld_label("categoryft"))
- , m_xLbCategory(m_xBuilder->weld_tree_view("categorylb"))
- , m_xFtFormat(m_xBuilder->weld_label("formatft"))
- , m_xLbCurrency(m_xBuilder->weld_combo_box("currencylb"))
- , m_xLbFormat(m_xBuilder->weld_tree_view("formatlb"))
- , m_xFtLanguage(m_xBuilder->weld_label("languageft"))
- , m_xCbSourceFormat(m_xBuilder->weld_check_button("sourceformat"))
- , m_xFtOptions(m_xBuilder->weld_label("optionsft"))
- , m_xFtDecimals(m_xBuilder->weld_label("decimalsft"))
- , m_xEdDecimals(m_xBuilder->weld_spin_button("decimalsed"))
- , m_xFtDenominator(m_xBuilder->weld_label("denominatorft"))
- , m_xEdDenominator(m_xBuilder->weld_spin_button("denominatored"))
- , m_xBtnNegRed(m_xBuilder->weld_check_button("negnumred"))
- , m_xFtLeadZeroes(m_xBuilder->weld_label("leadzerosft"))
- , m_xEdLeadZeroes(m_xBuilder->weld_spin_button("leadzerosed"))
- , m_xBtnThousand(m_xBuilder->weld_check_button("thousands"))
- , m_xBtnEngineering(m_xBuilder->weld_check_button("engineering"))
- , m_xFormatCodeFrame(m_xBuilder->weld_widget("formatcode"))
- , m_xEdFormat(m_xBuilder->weld_entry("formatted"))
- , m_xIbAdd(m_xBuilder->weld_button("add"))
- , m_xIbInfo(m_xBuilder->weld_button("edit"))
- , m_xIbRemove(m_xBuilder->weld_button("delete"))
- , m_xFtComment(m_xBuilder->weld_label("commentft"))
- , m_xEdComment(m_xBuilder->weld_entry("commented"))
- , m_xLbLanguage(new SvxLanguageBox(m_xBuilder->weld_combo_box("languagelb")))
- , m_xWndPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aWndPreview))
+ , sAutomaticLangEntry(CuiResId(RID_CUISTR_AUTO_ENTRY))
+ , m_xFtCategory(m_xBuilder->weld_label(u"categoryft"_ustr))
+ , m_xLbCategory(m_xBuilder->weld_tree_view(u"categorylb"_ustr))
+ , m_xFtFormat(m_xBuilder->weld_label(u"formatft"_ustr))
+ , m_xLbCurrency(m_xBuilder->weld_combo_box(u"currencylb"_ustr))
+ , m_xLbFormat(m_xBuilder->weld_tree_view(u"formatlb"_ustr))
+ , m_xFtLanguage(m_xBuilder->weld_label(u"languageft"_ustr))
+ , m_xCbSourceFormat(m_xBuilder->weld_check_button(u"sourceformat"_ustr))
+ , m_xFtOptions(m_xBuilder->weld_label(u"optionsft"_ustr))
+ , m_xFtDecimals(m_xBuilder->weld_label(u"decimalsft"_ustr))
+ , m_xEdDecimals(m_xBuilder->weld_spin_button(u"decimalsed"_ustr))
+ , m_xFtDenominator(m_xBuilder->weld_label(u"denominatorft"_ustr))
+ , m_xEdDenominator(m_xBuilder->weld_spin_button(u"denominatored"_ustr))
+ , m_xBtnNegRed(m_xBuilder->weld_check_button(u"negnumred"_ustr))
+ , m_xFtLeadZeroes(m_xBuilder->weld_label(u"leadzerosft"_ustr))
+ , m_xEdLeadZeroes(m_xBuilder->weld_spin_button(u"leadzerosed"_ustr))
+ , m_xBtnThousand(m_xBuilder->weld_check_button(u"thousands"_ustr))
+ , m_xBtnEngineering(m_xBuilder->weld_check_button(u"engineering"_ustr))
+ , m_xFormatCodeFrame(m_xBuilder->weld_widget(u"formatcode"_ustr))
+ , m_xEdFormat(m_xBuilder->weld_entry(u"formatted"_ustr))
+ , m_xIbAdd(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xIbInfo(m_xBuilder->weld_button(u"edit"_ustr))
+ , m_xIbRemove(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xFtComment(m_xBuilder->weld_label(u"commentft"_ustr))
+ , m_xEdComment(m_xBuilder->weld_entry(u"commented"_ustr))
+ , m_xLbLanguage(new SvxLanguageBox(m_xBuilder->weld_combo_box(u"languagelb"_ustr)))
+ , m_xWndPreview(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aWndPreview))
{
- for (size_t i = 0; i < SAL_N_ELEMENTS(NUM_CATEGORIES); ++i)
+ for (size_t i = 0; i < std::size(NUM_CATEGORIES); ++i)
m_xLbCategory->append_text(CuiResId(NUM_CATEGORIES[i]));
auto nWidth = m_xLbCategory->get_approximate_digit_width() * 22;
@@ -362,14 +375,9 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet* rSet )
double nValDouble = 0;
OUString aValString;
- SfxItemState eState = rSet->GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_NOLANGUAGE ),true,&pItem);
-
- if(eState==SfxItemState::SET)
+ if(const SfxBoolItem* pBoolLangItem = rSet->GetItemIfSet( SID_ATTR_NUMBERFORMAT_NOLANGUAGE ))
{
- const SfxBoolItem* pBoolLangItem = static_cast<const SfxBoolItem*>(
- GetItem( *rSet, SID_ATTR_NUMBERFORMAT_NOLANGUAGE));
-
- if(pBoolLangItem!=nullptr && pBoolLangItem->GetValue())
+ if(pBoolLangItem->GetValue())
{
HideLanguage();
}
@@ -380,7 +388,7 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet* rSet )
}
- eState = rSet->GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_INFO ),true,&pItem);
+ SfxItemState eState = rSet->GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_INFO ),true,&pItem);
if(eState==SfxItemState::SET)
{
@@ -404,8 +412,7 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet* rSet )
if(eState==SfxItemState::SET)
{
- const SfxBoolItem* pBoolItem = static_cast<const SfxBoolItem*>(
- GetItem( *rSet, SID_ATTR_NUMBERFORMAT_ONE_AREA));
+ const SfxBoolItem* pBoolItem = GetItem( *rSet, SID_ATTR_NUMBERFORMAT_ONE_AREA);
if(pBoolItem!=nullptr)
{
@@ -413,12 +420,12 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet* rSet )
}
}
- eState = rSet->GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_SOURCE ) );
+ eState = rSet->GetItemState( SID_ATTR_NUMBERFORMAT_SOURCE );
if ( eState == SfxItemState::SET )
{
- const SfxBoolItem* pBoolItem = static_cast<const SfxBoolItem*>(
- GetItem( *rSet, SID_ATTR_NUMBERFORMAT_SOURCE ));
+ const SfxBoolItem* pBoolItem =
+ GetItem( *rSet, SID_ATTR_NUMBERFORMAT_SOURCE );
if ( pBoolItem )
m_xCbSourceFormat->set_active(pBoolItem->GetValue());
else
@@ -439,7 +446,7 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet* rSet )
eState = rSet->GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_VALUE ) );
- if ( SfxItemState::DONTCARE != eState )
+ if ( SfxItemState::INVALID != eState )
pValFmtAttr = GetItem( *rSet, SID_ATTR_NUMBERFORMAT_VALUE );
eValType = pNumItem->GetValueType();
@@ -482,13 +489,12 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet* rSet )
bool bUseStarFormat = false;
- SfxObjectShell* pDocSh = SfxObjectShell::Current();
- if ( pDocSh )
+ if (SfxObjectShell* pDocSh = SfxObjectShell::Current())
{
// is this a calc document
Reference< XServiceInfo > xSI( pDocSh->GetModel(), UNO_QUERY );
if ( xSI.is() )
- bUseStarFormat = xSI->supportsService("com.sun.star.sheet.SpreadsheetDocument");
+ bUseStarFormat = xSI->supportsService(u"com.sun.star.sheet.SpreadsheetDocument"_ustr);
}
pNumFmtShell->SetUseStarFormat( bUseStarFormat );
@@ -514,10 +520,9 @@ void SvxNumberFormatTabPage::Reset( const SfxItemSet* rSet )
{
SetCategory(nCatLbSelPos );
}
- eState = rSet->GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_ADD_AUTO ) );
+ eState = rSet->GetItemState( SID_ATTR_NUMBERFORMAT_ADD_AUTO );
if(SfxItemState::SET == eState)
- pAutoEntryAttr = static_cast<const SfxBoolItem*>(
- GetItem( *rSet, SID_ATTR_NUMBERFORMAT_ADD_AUTO ));
+ pAutoEntryAttr = GetItem( *rSet, SID_ATTR_NUMBERFORMAT_ADD_AUTO );
// no_NO is an alias for nb_NO and normally isn't listed, we need it for
// backwards compatibility, but only if the format passed is of
// LanguageType no_NO.
@@ -636,7 +641,7 @@ void SvxNumberFormatTabPage::EnableBySourceFormat_Impl()
#*------------------------------------------------------------------------
#*
#* Class: SvxNumberFormatTabPage
-#* Function: Hides the language settings:
+#* Function: Hides the Languages and Locales:
#* Input: sal_Bool nFlag
#* Output: ---
#*
@@ -667,7 +672,7 @@ bool SvxNumberFormatTabPage::FillItemSet( SfxItemSet* rCoreAttrs )
if ( bDataChanged )
{
const SfxItemSet& rMyItemSet = GetItemSet();
- sal_uInt16 nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_VALUE );
+ TypedWhichId<SfxUInt32Item> nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_VALUE );
SfxItemState eItemState = rMyItemSet.GetItemState( nWhich, false );
// OK chosen - Is format code input entered already taken over?
@@ -722,11 +727,8 @@ bool SvxNumberFormatTabPage::FillItemSet( SfxItemSet* rCoreAttrs )
else
{
SfxObjectShell* pDocSh = SfxObjectShell::Current();
-
DBG_ASSERT( pDocSh, "DocShell not found!" );
-
-
- if ( pDocSh )
+ if (pDocSh)
pDocSh->PutItem( *pNumItem );
}
}
@@ -736,12 +738,11 @@ bool SvxNumberFormatTabPage::FillItemSet( SfxItemSet* rCoreAttrs )
if ( m_xCbSourceFormat->get_sensitive() )
{
- sal_uInt16 _nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_SOURCE );
- SfxItemState _eItemState = rMyItemSet.GetItemState( _nWhich, false );
- const SfxBoolItem* pBoolItem = static_cast<const SfxBoolItem*>(
- GetItem( rMyItemSet, SID_ATTR_NUMBERFORMAT_SOURCE ));
+ SfxItemState _eItemState = rMyItemSet.GetItemState( SID_ATTR_NUMBERFORMAT_SOURCE, false );
+ const SfxBoolItem* pBoolItem =
+ GetItem( rMyItemSet, SID_ATTR_NUMBERFORMAT_SOURCE );
bool bOld = pBoolItem && pBoolItem->GetValue();
- rCoreAttrs->Put( SfxBoolItem( _nWhich, m_xCbSourceFormat->get_active() ) );
+ rCoreAttrs->Put( SfxBoolItem( SID_ATTR_NUMBERFORMAT_SOURCE, m_xCbSourceFormat->get_active() ) );
if ( !bDataChanged )
bDataChanged = (bOld != m_xCbSourceFormat->get_active() ||
_eItemState != SfxItemState::SET);
@@ -929,7 +930,7 @@ void SvxNumberFormatTabPage::UpdateOptions_Impl( bool bCheckCatChange /*= sal_Fa
m_xEdLeadZeroes->set_sensitive( nCategory != CAT_TIME );
m_xBtnNegRed->set_sensitive(true);
if ( nCategory == CAT_NUMBER && m_xLbFormat->get_selected_index() == 0 )
- m_xEdDecimals->set_text( "" ); //General format tdf#44399
+ m_xEdDecimals->set_text( u""_ustr ); //General format tdf#44399
else
if ( nCategory == CAT_FRACTION )
m_xEdDenominator->set_value( nDecimals );
@@ -940,7 +941,8 @@ void SvxNumberFormatTabPage::UpdateOptions_Impl( bool bCheckCatChange /*= sal_Fa
m_xBtnNegRed->set_active( bNegRed );
if ( nCategory != CAT_SCIENTIFIC )
{
- m_xBtnThousand->set_sensitive( nCategory != CAT_TIME );
+ m_xBtnThousand->set_sensitive( nCategory != CAT_TIME
+ && !pNumFmtShell->IsNatNum12( theFormat ) );
m_xBtnThousand->set_active( bThousand && nCategory != CAT_TIME );
}
break;
@@ -1290,10 +1292,10 @@ IMPL_LINK( SvxNumberFormatTabPage, ClickHdl_Impl, weld::Button&, rIB, void)
bool SvxNumberFormatTabPage::Click_Impl(const weld::Button& rIB)
{
- sal_uLong nReturn = 0;
- constexpr sal_uLong nReturnChanged = 0x1; // THE boolean return value
- constexpr sal_uLong nReturnAdded = 0x2; // temp: format added
- constexpr sal_uLong nReturnOneArea = 0x4; // temp: one area but category changed => ignored
+ sal_uInt8 nReturn = 0;
+ constexpr sal_uInt8 nReturnChanged = 0x1; // THE boolean return value
+ constexpr sal_uInt8 nReturnAdded = 0x2; // temp: format added
+ constexpr sal_uInt8 nReturnOneArea = 0x4; // temp: one area but category changed => ignored
if (&rIB == m_xIbAdd.get())
{ // Also called from FillItemSet() if a temporary currency format has
@@ -1674,6 +1676,16 @@ OUString SvxNumberFormatTabPage::GetExpColorString(
}
double fVal = fSvxNumValConst[i];
+ // use lower number for long NatNum12 transliteration
+ if ( ( CAT_CURRENCY == nTmpCatPos || CAT_NUMBER == nTmpCatPos ) &&
+ rFormatStr.indexOf("NatNum12") >= 0 )
+ {
+ if ( CAT_CURRENCY == nTmpCatPos )
+ fVal = 1.2;
+ else
+ fVal = 100; // show also title case for English: One Hundred
+ }
+
OUString aPreviewString;
pNumFmtShell->MakePrevStringFromVal( rFormatStr, aPreviewString, rpPreviewColor, fVal );
return aPreviewString;
diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index ade080a1436a..320d6ab4e1dd 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -17,7 +17,6 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <com/sun/star/text/HoriOrientation.hpp>
#include <com/sun/star/text/VertOrientation.hpp>
#include <numpages.hxx>
@@ -29,6 +28,7 @@
#include <svl/eitem.hxx>
#include <vcl/svapp.hxx>
#include <svx/colorbox.hxx>
+#include <svx/dlgutil.hxx>
#include <svx/strarray.hxx>
#include <svx/gallery.hxx>
#include <editeng/brushitem.hxx>
@@ -36,13 +36,14 @@
#include <sfx2/objsh.hxx>
#include <vcl/graph.hxx>
#include <vcl/settings.hxx>
-#include <cui/cuicharmap.hxx>
+#include <svx/cuicharmap.hxx>
#include <editeng/flstitem.hxx>
#include <svx/numvset.hxx>
#include <sfx2/htmlmode.hxx>
#include <unotools/pathoptions.hxx>
#include <svtools/ctrltool.hxx>
#include <svtools/unitconv.hxx>
+#include <svtools/colorcfg.hxx>
#include <com/sun/star/style/NumberingType.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
@@ -51,7 +52,10 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/propertyvalue.hxx>
+#include <comphelper/lok.hxx>
#include <svx/svxids.hrc>
+#include <o3tl/string_view.hxx>
+#include <officecfg/Office/Common.hxx>
#include <algorithm>
#include <memory>
@@ -72,13 +76,14 @@
#include <o3tl/temporary.hxx>
#include <osl/diagnose.h>
+#include <bitmaps.hlst>
+
using namespace css;
using namespace css::uno;
using namespace css::beans;
using namespace css::lang;
using namespace css::text;
using namespace css::container;
-using namespace css::style;
#define SHOW_NUMBERING 0
#define SHOW_BULLET 1
@@ -93,43 +98,29 @@ static bool bLastRelative = false;
static SvxNumSettings_Impl* lcl_CreateNumSettingsPtr(const Sequence<PropertyValue>& rLevelProps)
{
- const PropertyValue* pValues = rLevelProps.getConstArray();
SvxNumSettings_Impl* pNew = new SvxNumSettings_Impl;
- for(sal_Int32 j = 0; j < rLevelProps.getLength(); j++)
+ for (auto& prop : rLevelProps)
{
- if ( pValues[j].Name == "NumberingType" )
+ if (prop.Name == "NumberingType")
{
sal_Int16 nTmp;
- if (pValues[j].Value >>= nTmp)
+ if (prop.Value >>= nTmp)
pNew->nNumberType = static_cast<SvxNumType>(nTmp);
}
- else if ( pValues[j].Name == "Prefix" )
- pValues[j].Value >>= pNew->sPrefix;
- else if ( pValues[j].Name == "Suffix" )
- pValues[j].Value >>= pNew->sSuffix;
- else if ( pValues[j].Name == "ParentNumbering" )
- pValues[j].Value >>= pNew->nParentNumbering;
- else if ( pValues[j].Name == "BulletChar" )
- pValues[j].Value >>= pNew->sBulletChar;
- else if ( pValues[j].Name == "BulletFontName" )
- pValues[j].Value >>= pNew->sBulletFont;
+ else if (prop.Name == "Prefix")
+ prop.Value >>= pNew->sPrefix;
+ else if (prop.Name == "Suffix")
+ prop.Value >>= pNew->sSuffix;
+ else if (prop.Name == "ParentNumbering")
+ prop.Value >>= pNew->nParentNumbering;
+ else if (prop.Name == "BulletChar")
+ prop.Value >>= pNew->sBulletChar;
+ else if (prop.Name == "BulletFontName")
+ prop.Value >>= pNew->sBulletFont;
}
return pNew;
}
-// the selection of bullets from the OpenSymbol
-const sal_Unicode aBulletTypes[] =
-{
- 0x2022,
- 0x25cf,
- 0xe00c,
- 0xe00a,
- 0x2794,
- 0x27a2,
- 0x2717,
- 0x2714
-};
-
// Is one of the masked formats set?
static bool lcl_IsNumFmtSet(SvxNumRule const * pNum, sal_uInt16 nLevelMask)
{
@@ -144,11 +135,11 @@ static bool lcl_IsNumFmtSet(SvxNumRule const * pNum, sal_uInt16 nLevelMask)
return bRet;
}
-static const vcl::Font& lcl_GetDefaultBulletFont()
+static vcl::Font& lcl_GetDefaultBulletFont()
{
static vcl::Font aDefBulletFont = []()
{
- vcl::Font tmp("OpenSymbol", "", Size(0, 14));
+ vcl::Font tmp(u"OpenSymbol"_ustr, u""_ustr, Size(0, 14));
tmp.SetCharSet( RTL_TEXTENCODING_SYMBOL );
tmp.SetFamily( FAMILY_DONTKNOW );
tmp.SetPitch( PITCH_DONTKNOW );
@@ -160,13 +151,13 @@ static const vcl::Font& lcl_GetDefaultBulletFont()
}
SvxSingleNumPickTabPage::SvxSingleNumPickTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/picknumberingpage.ui", "PickNumberingPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/picknumberingpage.ui"_ustr, u"PickNumberingPage"_ustr, &rSet)
, nActNumLvl(SAL_MAX_UINT16)
, bModified(false)
, bPreset(false)
, nNumItemId(SID_ATTR_NUMBERING_RULE)
- , m_xExamplesVS(new SvxNumValueSet(m_xBuilder->weld_scrolled_window("valuesetwin", true)))
- , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, "valueset", *m_xExamplesVS))
+ , m_xExamplesVS(new SvxNumValueSet(m_xBuilder->weld_scrolled_window(u"valuesetwin"_ustr, true)))
+ , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, u"valueset"_ustr, *m_xExamplesVS))
{
SetExchangeSupport();
m_xExamplesVS->init(NumberingPageType::SINGLENUM);
@@ -184,13 +175,10 @@ SvxSingleNumPickTabPage::SvxSingleNumPickTabPage(weld::Container* pPage, weld::D
aNumberings =
xDefNum->getDefaultContinuousNumberingLevels( rLocale );
-
sal_Int32 nLength = std::min<sal_Int32>(aNumberings.getLength(), NUM_VALUSET_COUNT);
-
- const Sequence<PropertyValue>* pValuesArr = aNumberings.getConstArray();
for(sal_Int32 i = 0; i < nLength; i++)
{
- SvxNumSettings_Impl* pNew = lcl_CreateNumSettingsPtr(pValuesArr[i]);
+ SvxNumSettings_Impl* pNew = lcl_CreateNumSettingsPtr(aNumberings[i]);
aNumSettingsArr.push_back(std::unique_ptr<SvxNumSettings_Impl>(pNew));
}
}
@@ -227,20 +215,19 @@ bool SvxSingleNumPickTabPage::FillItemSet( SfxItemSet* rSet )
void SvxSingleNumPickTabPage::ActivatePage(const SfxItemSet& rSet)
{
- const SfxPoolItem* pItem;
bPreset = false;
bool bIsPreset = false;
const SfxItemSet* pExampleSet = GetDialogExampleSet();
if(pExampleSet)
{
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, false, &pItem))
- bIsPreset = static_cast<const SfxBoolItem*>(pItem)->GetValue();
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, false, &pItem))
- nActNumLvl = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ if(const SfxBoolItem* pPresetItem = pExampleSet->GetItemIfSet(SID_PARAM_NUM_PRESET, false))
+ bIsPreset = pPresetItem->GetValue();
+ if(const SfxUInt16Item* pLevelItem = pExampleSet->GetItemIfSet(SID_PARAM_CUR_NUM_LEVEL, false))
+ nActNumLvl = pLevelItem->GetValue();
}
- if(SfxItemState::SET == rSet.GetItemState(nNumItemId, false, &pItem))
+ if(const SvxNumBulletItem* pNumItem = rSet.GetItemIfSet(nNumItemId, false))
{
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pNumItem->GetNumRule()) );
}
if(pActNum && *pSaveNum != *pActNum)
{
@@ -274,12 +261,12 @@ void SvxSingleNumPickTabPage::Reset( const SfxItemSet* rSet )
SfxItemState eState = rSet->GetItemState(SID_ATTR_NUMBERING_RULE, false, &pItem);
if(eState != SfxItemState::SET)
{
- nNumItemId = rSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
+ nNumItemId = rSet->GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE);
eState = rSet->GetItemState(nNumItemId, false, &pItem);
if( eState != SfxItemState::SET )
{
- pItem = &static_cast< const SvxNumBulletItem& >( rSet->Get( nNumItemId ) );
+ pItem = & rSet->Get( nNumItemId );
eState = SfxItemState::SET;
}
}
@@ -315,9 +302,9 @@ IMPL_LINK_NOARG(SvxSingleNumPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
{
SvxNumberFormat aFmt(pActNum->GetLevel(i));
aFmt.SetNumberingType(eNewType);
- aFmt.SetListFormat(cLocalPrefix == ' ' ? "" : _pSet->sPrefix,
- cLocalSuffix == ' ' ? "" : _pSet->sSuffix, i);
- aFmt.SetCharFormatName("");
+ aFmt.SetListFormat(cLocalPrefix == ' ' ? u""_ustr : _pSet->sPrefix,
+ cLocalSuffix == ' ' ? u""_ustr : _pSet->sSuffix, i);
+ aFmt.SetCharFormatName(u""_ustr);
aFmt.SetBulletRelSize(100);
pActNum->SetLevel(i, aFmt);
}
@@ -333,13 +320,13 @@ IMPL_LINK_NOARG(SvxSingleNumPickTabPage, DoubleClickHdl_Impl, ValueSet*, void)
}
SvxBulletPickTabPage::SvxBulletPickTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/pickbulletpage.ui", "PickBulletPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/pickbulletpage.ui"_ustr, u"PickBulletPage"_ustr, &rSet)
, nActNumLvl(SAL_MAX_UINT16)
, bModified(false)
, bPreset(false)
, nNumItemId(SID_ATTR_NUMBERING_RULE)
- , m_xExamplesVS(new SvxNumValueSet(m_xBuilder->weld_scrolled_window("valuesetwin", true)))
- , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, "valueset", *m_xExamplesVS))
+ , m_xExamplesVS(new SvxNumValueSet(m_xBuilder->weld_scrolled_window(u"valuesetwin"_ustr, true)))
+ , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, u"valueset"_ustr, *m_xExamplesVS))
{
SetExchangeSupport();
m_xExamplesVS->init(NumberingPageType::BULLET);
@@ -372,20 +359,19 @@ bool SvxBulletPickTabPage::FillItemSet( SfxItemSet* rSet )
void SvxBulletPickTabPage::ActivatePage(const SfxItemSet& rSet)
{
- const SfxPoolItem* pItem;
bPreset = false;
bool bIsPreset = false;
const SfxItemSet* pExampleSet = GetDialogExampleSet();
if(pExampleSet)
{
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, false, &pItem))
- bIsPreset = static_cast<const SfxBoolItem*>(pItem)->GetValue();
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, false, &pItem))
- nActNumLvl = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ if(const SfxBoolItem* pPresetItem = pExampleSet->GetItemIfSet(SID_PARAM_NUM_PRESET, false))
+ bIsPreset = pPresetItem->GetValue();
+ if(const SfxUInt16Item* pLevelItem = pExampleSet->GetItemIfSet(SID_PARAM_CUR_NUM_LEVEL, false))
+ nActNumLvl = pLevelItem->GetValue();
}
- if(SfxItemState::SET == rSet.GetItemState(nNumItemId, false, &pItem))
+ if(const SvxNumBulletItem* pBulletItem = rSet.GetItemIfSet(nNumItemId, false))
{
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pBulletItem->GetNumRule()) );
}
if(pActNum && *pSaveNum != *pActNum)
{
@@ -412,23 +398,20 @@ DeactivateRC SvxBulletPickTabPage::DeactivatePage(SfxItemSet *_pSet)
void SvxBulletPickTabPage::Reset( const SfxItemSet* rSet )
{
- const SfxPoolItem* pItem;
// in Draw the item exists as WhichId, in Writer only as SlotId
- SfxItemState eState = rSet->GetItemState(SID_ATTR_NUMBERING_RULE, false, &pItem);
- if(eState != SfxItemState::SET)
+ const SvxNumBulletItem* pItem = rSet->GetItemIfSet(SID_ATTR_NUMBERING_RULE, false);
+ if(!pItem)
{
- nNumItemId = rSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
- eState = rSet->GetItemState(nNumItemId, false, &pItem);
+ nNumItemId = rSet->GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE);
+ pItem = rSet->GetItemIfSet(nNumItemId, false);
- if( eState != SfxItemState::SET )
+ if( !pItem )
{
- pItem = &static_cast< const SvxNumBulletItem& >( rSet->Get( nNumItemId ) );
- eState = SfxItemState::SET;
+ pItem = & rSet->Get( nNumItemId );
}
}
- DBG_ASSERT(eState == SfxItemState::SET, "no item found!");
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pItem->GetNumRule()) );
if(!pActNum)
pActNum.reset( new SvxNumRule(*pSaveNum) );
@@ -443,8 +426,11 @@ IMPL_LINK_NOARG(SvxBulletPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
bPreset = false;
bModified = true;
- sal_Unicode cChar = aBulletTypes[m_xExamplesVS->GetSelectedItemId() - 1];
- const vcl::Font& rActBulletFont = lcl_GetDefaultBulletFont();
+ sal_uInt16 nIndex = m_xExamplesVS->GetSelectedItemId() - 1;
+ sal_Unicode cChar = officecfg::Office::Common::BulletsNumbering::DefaultBullets::get()[nIndex].toChar();
+ vcl::Font& rActBulletFont = lcl_GetDefaultBulletFont();
+ rActBulletFont.SetFamilyName(
+ officecfg::Office::Common::BulletsNumbering::DefaultBulletsFonts::get()[nIndex]);
sal_uInt16 nMask = 1;
for(sal_uInt16 i = 0; i < pActNum->GetLevelCount(); i++)
@@ -454,7 +440,7 @@ IMPL_LINK_NOARG(SvxBulletPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
SvxNumberFormat aFmt(pActNum->GetLevel(i));
aFmt.SetNumberingType( SVX_NUM_CHAR_SPECIAL );
// #i93908# clear suffix for bullet lists
- aFmt.SetListFormat("", "", i);
+ aFmt.SetListFormat(u""_ustr, u""_ustr, i);
aFmt.SetBulletFont(&rActBulletFont);
aFmt.SetBulletChar(cChar );
aFmt.SetCharFormatName(sBulletCharFormatName);
@@ -481,13 +467,13 @@ void SvxBulletPickTabPage::PageCreated(const SfxAllItemSet& aSet)
}
SvxNumPickTabPage::SvxNumPickTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/pickoutlinepage.ui", "PickOutlinePage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/pickoutlinepage.ui"_ustr, u"PickOutlinePage"_ustr, &rSet)
, nActNumLvl(SAL_MAX_UINT16)
, nNumItemId(SID_ATTR_NUMBERING_RULE)
, bModified(false)
, bPreset(false)
- , m_xExamplesVS(new SvxNumValueSet(m_xBuilder->weld_scrolled_window("valuesetwin", true)))
- , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, "valueset", *m_xExamplesVS))
+ , m_xExamplesVS(new SvxNumValueSet(m_xBuilder->weld_scrolled_window(u"valuesetwin"_ustr, true)))
+ , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, u"valueset"_ustr, *m_xExamplesVS))
{
SetExchangeSupport();
@@ -511,12 +497,15 @@ SvxNumPickTabPage::SvxNumPickTabPage(weld::Container* pPage, weld::DialogControl
{
SvxNumSettingsArr_Impl& rItemArr = aNumSettingsArrays[ nItem ];
- Reference<XIndexAccess> xLevel = aOutlineAccess.getConstArray()[nItem];
- for(sal_Int32 nLevel = 0; nLevel < xLevel->getCount() && nLevel < 5; nLevel++)
+ Reference<XIndexAccess> xLevel = aOutlineAccess[nItem];
+ for(sal_Int32 nLevel = 0; nLevel < SVX_MAX_NUM; nLevel++)
{
- Any aValueAny = xLevel->getByIndex(nLevel);
+ // use the last locale-defined level for all remaining levels.
+ sal_Int32 nLocaleLevel = std::min(nLevel, xLevel->getCount() - 1);
Sequence<PropertyValue> aLevelProps;
- aValueAny >>= aLevelProps;
+ if (nLocaleLevel >= 0)
+ xLevel->getByIndex(nLocaleLevel) >>= aLevelProps;
+
SvxNumSettings_Impl* pNew = lcl_CreateNumSettingsPtr(aLevelProps);
rItemArr.push_back( std::unique_ptr<SvxNumSettings_Impl>(pNew) );
}
@@ -554,20 +543,19 @@ bool SvxNumPickTabPage::FillItemSet( SfxItemSet* rSet )
void SvxNumPickTabPage::ActivatePage(const SfxItemSet& rSet)
{
- const SfxPoolItem* pItem;
bPreset = false;
bool bIsPreset = false;
const SfxItemSet* pExampleSet = GetDialogExampleSet();
if(pExampleSet)
{
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, false, &pItem))
- bIsPreset = static_cast<const SfxBoolItem*>(pItem)->GetValue();
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, false, &pItem))
- nActNumLvl = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ if(const SfxBoolItem* pPresetItem = pExampleSet->GetItemIfSet(SID_PARAM_NUM_PRESET, false))
+ bIsPreset = pPresetItem->GetValue();
+ if(const SfxUInt16Item* pLevelItem = pExampleSet->GetItemIfSet(SID_PARAM_CUR_NUM_LEVEL, false))
+ nActNumLvl = pLevelItem->GetValue();
}
- if(SfxItemState::SET == rSet.GetItemState(nNumItemId, false, &pItem))
+ if(const SvxNumBulletItem* pBulletItem = rSet.GetItemIfSet(nNumItemId, false))
{
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pBulletItem->GetNumRule()) );
}
if(pActNum && *pSaveNum != *pActNum)
{
@@ -594,23 +582,19 @@ DeactivateRC SvxNumPickTabPage::DeactivatePage(SfxItemSet *_pSet)
void SvxNumPickTabPage::Reset( const SfxItemSet* rSet )
{
- const SfxPoolItem* pItem;
// in Draw the item exists as WhichId, in Writer only as SlotId
- SfxItemState eState = rSet->GetItemState(SID_ATTR_NUMBERING_RULE, false, &pItem);
- if(eState != SfxItemState::SET)
+ const SvxNumBulletItem* pItem = rSet->GetItemIfSet(SID_ATTR_NUMBERING_RULE, false);
+ if(!pItem)
{
- nNumItemId = rSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
- eState = rSet->GetItemState(nNumItemId, false, &pItem);
+ nNumItemId = rSet->GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE);
+ pItem = rSet->GetItemIfSet(nNumItemId, false);
- if( eState != SfxItemState::SET )
+ if( !pItem )
{
- pItem = &static_cast< const SvxNumBulletItem& >( rSet->Get( nNumItemId ) );
- eState = SfxItemState::SET;
+ pItem = & rSet->Get( nNumItemId );
}
-
}
- DBG_ASSERT(eState == SfxItemState::SET, "no item found!");
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pItem->GetNumRule()) );
if(!pActNum)
pActNum.reset( new SvxNumRule(*pSaveNum) );
@@ -646,24 +630,25 @@ IMPL_LINK_NOARG(SvxNumPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
if(aFmt.GetNumberingType() == SVX_NUM_CHAR_SPECIAL)
{
// #i93908# clear suffix for bullet lists
- aFmt.SetListFormat("", "", i);
+ aFmt.SetListFormat(u""_ustr, u""_ustr, i);
if( !pLevelSettings->sBulletFont.isEmpty() &&
pLevelSettings->sBulletFont != rActBulletFont.GetFamilyName())
{
//search for the font
if(!pList)
{
- SfxObjectShell* pCurDocShell = SfxObjectShell::Current();
- const SvxFontListItem* pFontListItem =
- static_cast<const SvxFontListItem*>( pCurDocShell
- ->GetItem( SID_ATTR_CHAR_FONTLIST ));
- pList = pFontListItem ? pFontListItem->GetFontList() : nullptr;
+ if (SfxObjectShell* pCurDocShell = SfxObjectShell::Current())
+ {
+ const SvxFontListItem* pFontListItem =
+ static_cast<const SvxFontListItem*>( pCurDocShell
+ ->GetItem( SID_ATTR_CHAR_FONTLIST ));
+ pList = pFontListItem ? pFontListItem->GetFontList() : nullptr;
+ }
}
if(pList && pList->IsAvailable( pLevelSettings->sBulletFont ) )
{
- FontMetric aFontMetric = pList->Get(
- pLevelSettings->sBulletFont,WEIGHT_NORMAL, ITALIC_NONE);
- vcl::Font aFont(aFontMetric);
+ vcl::Font aFont(pList->Get(
+ pLevelSettings->sBulletFont,WEIGHT_NORMAL, ITALIC_NONE));
aFmt.SetBulletFont(&aFont);
}
else
@@ -694,6 +679,11 @@ IMPL_LINK_NOARG(SvxNumPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
aFmt.SetIncludeUpperLevels(sal::static_int_cast< sal_uInt8 >(0 != nUpperLevelOrChar ? pActNum->GetLevelCount() : 1));
aFmt.SetCharFormatName(sNumCharFmtName);
aFmt.SetBulletRelSize(100);
+
+ // Completely ignore the Left/Right value provided by the locale outline definition,
+ // because this function doesn't actually modify the indents at all,
+ // and right-adjusted numbering definitely needs a different FirstLineIndent.
+
// #i93908#
aFmt.SetListFormat(pLevelSettings->sPrefix, pLevelSettings->sSuffix, i);
}
@@ -719,15 +709,15 @@ void SvxNumPickTabPage::PageCreated(const SfxAllItemSet& aSet)
}
SvxBitmapPickTabPage::SvxBitmapPickTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/pickgraphicpage.ui", "PickGraphicPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/pickgraphicpage.ui"_ustr, u"PickGraphicPage"_ustr, &rSet)
, nActNumLvl(SAL_MAX_UINT16)
, nNumItemId(SID_ATTR_NUMBERING_RULE)
, bModified(false)
, bPreset(false)
- , m_xErrorText(m_xBuilder->weld_label("errorft"))
- , m_xBtBrowseFile(m_xBuilder->weld_button("browseBtn"))
- , m_xExamplesVS(new SvxBmpNumValueSet(m_xBuilder->weld_scrolled_window("valuesetwin", true)))
- , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, "valueset", *m_xExamplesVS))
+ , m_xErrorText(m_xBuilder->weld_label(u"errorft"_ustr))
+ , m_xBtBrowseFile(m_xBuilder->weld_button(u"browseBtn"_ustr))
+ , m_xExamplesVS(new SvxBmpNumValueSet(m_xBuilder->weld_scrolled_window(u"valuesetwin"_ustr, true)))
+ , m_xExamplesVSWin(new weld::CustomWeld(*m_xBuilder, u"valueset"_ustr, *m_xExamplesVS))
{
SetExchangeSupport();
@@ -736,7 +726,10 @@ SvxBitmapPickTabPage::SvxBitmapPickTabPage(weld::Container* pPage, weld::DialogC
m_xExamplesVS->SetDoubleClickHdl(LINK(this, SvxBitmapPickTabPage, DoubleClickHdl_Impl));
m_xBtBrowseFile->connect_clicked(LINK(this, SvxBitmapPickTabPage, ClickAddBrowseHdl_Impl));
- eCoreUnit = rSet.GetPool()->GetMetric(rSet.GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE));
+ if(comphelper::LibreOfficeKit::isActive())
+ m_xBtBrowseFile->hide();
+
+ eCoreUnit = rSet.GetPool()->GetMetric(rSet.GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE));
// determine graphic name
GalleryExplorer::FillObjList(GALLERY_THEME_BULLETS, aGrfNames);
@@ -784,20 +777,19 @@ std::unique_ptr<SfxTabPage> SvxBitmapPickTabPage::Create(weld::Container* pPage,
void SvxBitmapPickTabPage::ActivatePage(const SfxItemSet& rSet)
{
- const SfxPoolItem* pItem;
bPreset = false;
bool bIsPreset = false;
const SfxItemSet* pExampleSet = GetDialogExampleSet();
if(pExampleSet)
{
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, false, &pItem))
- bIsPreset = static_cast<const SfxBoolItem*>(pItem)->GetValue();
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, false, &pItem))
- nActNumLvl = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ if(const SfxBoolItem* pPresetItem = pExampleSet->GetItemIfSet(SID_PARAM_NUM_PRESET, false))
+ bIsPreset = pPresetItem->GetValue();
+ if(const SfxUInt16Item* pLevelItem = pExampleSet->GetItemIfSet(SID_PARAM_CUR_NUM_LEVEL, false))
+ nActNumLvl = pLevelItem->GetValue();
}
- if(SfxItemState::SET == rSet.GetItemState(nNumItemId, false, &pItem))
+ if(const SvxNumBulletItem* pBulletItem = rSet.GetItemIfSet(nNumItemId, false))
{
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pBulletItem->GetNumRule()) );
}
if(pActNum && *pSaveNum != *pActNum)
{
@@ -841,23 +833,21 @@ bool SvxBitmapPickTabPage::FillItemSet( SfxItemSet* rSet )
void SvxBitmapPickTabPage::Reset( const SfxItemSet* rSet )
{
- const SfxPoolItem* pItem;
// in Draw the item exists as WhichId, in Writer only as SlotId
- SfxItemState eState = rSet->GetItemState(SID_ATTR_NUMBERING_RULE, false, &pItem);
- if(eState != SfxItemState::SET)
+ const SvxNumBulletItem* pItem = rSet->GetItemIfSet(SID_ATTR_NUMBERING_RULE, false);
+ if(!pItem)
{
- nNumItemId = rSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
- eState = rSet->GetItemState(nNumItemId, false, &pItem);
+ nNumItemId = rSet->GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE);
+ pItem = rSet->GetItemIfSet(nNumItemId, false);
- if( eState != SfxItemState::SET )
+ if( !pItem )
{
- pItem = &static_cast< const SvxNumBulletItem& >( rSet->Get( nNumItemId ) );
- eState = SfxItemState::SET;
+ pItem = & rSet->Get( nNumItemId );
}
}
- DBG_ASSERT(eState == SfxItemState::SET, "no item found!");
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ DBG_ASSERT(pItem, "no item found!");
+ pSaveNum.reset( new SvxNumRule(pItem->GetNumRule()) );
if(!pActNum)
pActNum.reset( new SvxNumRule(*pSaveNum) );
@@ -881,8 +871,8 @@ IMPL_LINK_NOARG(SvxBitmapPickTabPage, NumSelectHdl_Impl, ValueSet*, void)
{
SvxNumberFormat aFmt(pActNum->GetLevel(i));
aFmt.SetNumberingType(SVX_NUM_BITMAP);
- aFmt.SetListFormat("", "", i);
- aFmt.SetCharFormatName( "" );
+ aFmt.SetListFormat(u""_ustr, u""_ustr, i);
+ aFmt.SetCharFormatName( u""_ustr );
Graphic aGraphic;
if(GalleryExplorer::GetGraphicObj( GALLERY_THEME_BULLETS, nIdx, &aGraphic))
@@ -912,12 +902,12 @@ IMPL_LINK_NOARG(SvxBitmapPickTabPage, ClickAddBrowseHdl_Impl, weld::Button&, voi
{
sfx2::FileDialogHelper aFileDialog(0, FileDialogFlags::NONE, GetFrameWeld());
aFileDialog.SetContext(sfx2::FileDialogHelper::BulletsAddImage);
- aFileDialog.SetTitle(CuiResId(RID_SVXSTR_ADD_IMAGE));
+ aFileDialog.SetTitle(CuiResId(RID_CUISTR_ADD_IMAGE));
if ( aFileDialog.Execute() != ERRCODE_NONE )
return;
OUString aPath = SvtPathOptions().GetGalleryPath();
- OUString aPathToken = aPath.getToken( 1 , SEARCHPATH_DELIMITER );
+ std::u16string_view aPathToken = o3tl::getToken(aPath, 1 , SEARCHPATH_DELIMITER );
OUString aUserImageURL = aFileDialog.GetPath();
@@ -928,7 +918,7 @@ IMPL_LINK_NOARG(SvxBitmapPickTabPage, ClickAddBrowseHdl_Impl, weld::Button&, voi
else if (nPos<aUserImageURL.getLength())
aFileName = aUserImageURL.copy(nPos);
- OUString aUserGalleryURL = aPathToken + "/" + aFileName;
+ OUString aUserGalleryURL = OUString::Concat(aPathToken) + "/" + aFileName;
INetURLObject aURL( aUserImageURL );
DBG_ASSERT( aURL.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
@@ -972,8 +962,8 @@ IMPL_LINK_NOARG(SvxBitmapPickTabPage, ClickAddBrowseHdl_Impl, weld::Button&, voi
GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter();
Sequence< PropertyValue > aFilterData{
- comphelper::makePropertyValue("Compression", sal_Int32(-1)),
- comphelper::makePropertyValue("Quality", sal_Int32(1))
+ comphelper::makePropertyValue(u"Compression"_ustr, sal_Int32(-1)),
+ comphelper::makePropertyValue(u"Quality"_ustr, sal_Int32(1))
};
sal_uInt16 nFilterFormat = rFilter.GetExportFormatNumberForShortName( gURL.GetFileExtension() );
@@ -1010,7 +1000,7 @@ IMPL_LINK_NOARG(SvxBitmapPickTabPage, ClickAddBrowseHdl_Impl, weld::Button&, voi
// tabpage numbering options
SvxNumOptionsTabPage::SvxNumOptionsTabPage(weld::Container* pPage, weld::DialogController* pController,
const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/numberingoptionspage.ui", "NumberingOptionsPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/numberingoptionspage.ui"_ustr, u"NumberingOptionsPage"_ustr, &rSet)
, aInvalidateTimer("cui SvxNumOptionsTabPage aInvalidateTimer")
, m_pLevelHdlEvent(nullptr)
, bLastWidthModified(false)
@@ -1021,45 +1011,63 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(weld::Container* pPage, weld::DialogC
, nBullet(0xff)
, nActNumLvl(1)
, nNumItemId(SID_ATTR_NUMBERING_RULE)
- , m_xGrid(m_xBuilder->weld_widget("grid2"))
- , m_xLevelLB(m_xBuilder->weld_tree_view("levellb"))
- , m_xFmtLB(m_xBuilder->weld_combo_box("numfmtlb"))
- , m_xSeparatorFT(m_xBuilder->weld_label("separator"))
- , m_xPrefixFT(m_xBuilder->weld_label("prefixft"))
- , m_xPrefixED(m_xBuilder->weld_entry("prefix"))
- , m_xSuffixFT(m_xBuilder->weld_label("suffixft"))
- , m_xSuffixED(m_xBuilder->weld_entry("suffix"))
- , m_xCharFmtFT(m_xBuilder->weld_label("charstyleft"))
- , m_xCharFmtLB(m_xBuilder->weld_combo_box("charstyle"))
- , m_xBulColorFT(m_xBuilder->weld_label("colorft"))
- , m_xBulColLB(new ColorListBox(m_xBuilder->weld_menu_button("color"),
+ , m_aRatioTop(ConnectorType::Top)
+ , m_aRatioBottom(ConnectorType::Bottom)
+ , m_xGrid(m_xBuilder->weld_widget(u"grid2"_ustr))
+ , m_xLevelLB(m_xBuilder->weld_tree_view(u"levellb"_ustr))
+ , m_xFmtLB(m_xBuilder->weld_combo_box(u"numfmtlb"_ustr))
+ , m_xSeparatorFT(m_xBuilder->weld_label(u"separator"_ustr))
+ , m_xPrefixFT(m_xBuilder->weld_label(u"prefixft"_ustr))
+ , m_xPrefixED(m_xBuilder->weld_entry(u"prefix"_ustr))
+ , m_xSuffixFT(m_xBuilder->weld_label(u"suffixft"_ustr))
+ , m_xSuffixED(m_xBuilder->weld_entry(u"suffix"_ustr))
+ , m_xCharFmtFT(m_xBuilder->weld_label(u"charstyleft"_ustr))
+ , m_xCharFmtLB(m_xBuilder->weld_combo_box(u"charstyle"_ustr))
+ , m_xBulColorFT(m_xBuilder->weld_label(u"colorft"_ustr))
+ , m_xBulColLB(new ColorListBox(m_xBuilder->weld_menu_button(u"color"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xBulRelSizeFT(m_xBuilder->weld_label("relsizeft"))
- , m_xBulRelSizeMF(m_xBuilder->weld_metric_spin_button("relsize", FieldUnit::PERCENT))
- , m_xAllLevelFT(m_xBuilder->weld_label("sublevelsft"))
- , m_xAllLevelNF(m_xBuilder->weld_spin_button("sublevels"))
- , m_xStartFT(m_xBuilder->weld_label("startatft"))
- , m_xStartED(m_xBuilder->weld_spin_button("startat"))
- , m_xBulletFT(m_xBuilder->weld_label("bulletft"))
- , m_xBulletPB(m_xBuilder->weld_button("bullet"))
- , m_xBitmapFT(m_xBuilder->weld_label("bitmapft"))
- , m_xBitmapMB(m_xBuilder->weld_menu_button("bitmap"))
- , m_xWidthFT(m_xBuilder->weld_label("widthft"))
- , m_xWidthMF(m_xBuilder->weld_metric_spin_button("widthmf", FieldUnit::CM))
- , m_xHeightFT(m_xBuilder->weld_label("heightft"))
- , m_xHeightMF(m_xBuilder->weld_metric_spin_button("heightmf", FieldUnit::CM))
- , m_xRatioCB(m_xBuilder->weld_check_button("keepratio"))
- , m_xOrientFT(m_xBuilder->weld_label("orientft"))
- , m_xOrientLB(m_xBuilder->weld_combo_box("orientlb"))
- , m_xAllLevelsFrame(m_xBuilder->weld_widget("levelsframe"))
- , m_xSameLevelCB(m_xBuilder->weld_check_button("allsame"))
- , m_xPreviewWIN(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWIN))
+ , m_xBulRelSizeFT(m_xBuilder->weld_label(u"relsizeft"_ustr))
+ , m_xBulRelSizeMF(m_xBuilder->weld_metric_spin_button(u"relsize"_ustr, FieldUnit::PERCENT))
+ , m_xAllLevelFT(m_xBuilder->weld_label(u"sublevelsft"_ustr))
+ , m_xAllLevelNF(m_xBuilder->weld_spin_button(u"sublevels"_ustr))
+ , m_xIsLegalCB(m_xBuilder->weld_check_button(u"islegal"_ustr))
+ , m_xStartFT(m_xBuilder->weld_label(u"startatft"_ustr))
+ , m_xStartED(m_xBuilder->weld_spin_button(u"startat"_ustr))
+ , m_xBulletFT(m_xBuilder->weld_label(u"bulletft"_ustr))
+ , m_xBulletPB(m_xBuilder->weld_button(u"bullet"_ustr))
+ , m_xBitmapFT(m_xBuilder->weld_label(u"bitmapft"_ustr))
+ , m_xBitmapMB(m_xBuilder->weld_menu_button(u"bitmap"_ustr))
+ , m_xWidthFT(m_xBuilder->weld_label(u"widthft"_ustr))
+ , m_xWidthMF(m_xBuilder->weld_metric_spin_button(u"widthmf"_ustr, FieldUnit::CM))
+ , m_xHeightFT(m_xBuilder->weld_label(u"heightft"_ustr))
+ , m_xHeightMF(m_xBuilder->weld_metric_spin_button(u"heightmf"_ustr, FieldUnit::CM))
+ , m_xRatioCB(m_xBuilder->weld_check_button(u"keepratio"_ustr))
+ , m_xCbxScaleImg(m_xBuilder->weld_image(u"imRatio"_ustr))
+ , m_xImgRatioTop(new weld::CustomWeld(*m_xBuilder, u"daRatioTop"_ustr, m_aRatioTop))
+ , m_xImgRatioBottom(new weld::CustomWeld(*m_xBuilder, u"daRatioBottom"_ustr, m_aRatioBottom))
+ , m_xOrientFT(m_xBuilder->weld_label(u"orientft"_ustr))
+ , m_xOrientLB(m_xBuilder->weld_combo_box(u"orientlb"_ustr))
+ , m_xAllLevelsFrame(m_xBuilder->weld_widget(u"levelsframe"_ustr))
+ , m_xSameLevelCB(m_xBuilder->weld_check_button(u"allsame"_ustr))
+ , m_xPreviewWIN(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aPreviewWIN))
{
m_xBulColLB->SetSlotId(SID_ATTR_CHAR_COLOR);
m_xBulRelSizeMF->set_min(SVX_NUM_REL_SIZE_MIN, FieldUnit::PERCENT);
m_xBulRelSizeMF->set_increments(5, 50, FieldUnit::PERCENT);
SetExchangeSupport();
aActBulletFont = lcl_GetDefaultBulletFont();
+ // vertical alignment = fill makes the drawingarea expand the associated spinedits so we have to size it here
+ const sal_Int16 aHeight
+ = static_cast<sal_Int16>(std::max(int(m_xRatioCB->get_preferred_size().getHeight() / 2
+ - m_xWidthMF->get_preferred_size().getHeight() / 2),
+ 12));
+ const sal_Int16 aWidth
+ = static_cast<sal_Int16>(m_xRatioCB->get_preferred_size().getWidth() / 2);
+ m_xImgRatioTop->set_size_request(aWidth, aHeight);
+ m_xImgRatioBottom->set_size_request(aWidth, aHeight);
+ //init needed for gtk3
+ m_xCbxScaleImg->set_from_icon_name(m_xRatioCB->get_active() ? RID_SVXBMP_LOCKED
+ : RID_SVXBMP_UNLOCKED);
m_xBulletPB->connect_clicked(LINK(this, SvxNumOptionsTabPage, BulletHdl_Impl));
m_xFmtLB->connect_changed(LINK(this, SvxNumOptionsTabPage, NumberTypeSelectHdl_Impl));
@@ -1075,6 +1083,7 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(weld::Container* pPage, weld::DialogC
m_xPrefixED->connect_changed(LINK(this, SvxNumOptionsTabPage, EditModifyHdl_Impl));
m_xSuffixED->connect_changed(LINK(this, SvxNumOptionsTabPage, EditModifyHdl_Impl));
m_xAllLevelNF->connect_value_changed(LINK(this,SvxNumOptionsTabPage, AllLevelHdl_Impl));
+ m_xIsLegalCB->connect_toggled(LINK(this, SvxNumOptionsTabPage, IsLegalHdl_Impl));
m_xOrientLB->connect_changed(LINK(this, SvxNumOptionsTabPage, OrientHdl_Impl));
m_xSameLevelCB->connect_toggled(LINK(this, SvxNumOptionsTabPage, SameLevelHdl_Impl));
m_xBulRelSizeMF->connect_value_changed(LINK(this,SvxNumOptionsTabPage, BulRelSizeHdl_Impl));
@@ -1082,13 +1091,15 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(weld::Container* pPage, weld::DialogC
aInvalidateTimer.SetInvokeHandler(LINK(this, SvxNumOptionsTabPage, PreviewInvalidateHdl_Impl));
aInvalidateTimer.SetTimeout(50);
- eCoreUnit = rSet.GetPool()->GetMetric(rSet.GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE));
+ eCoreUnit = rSet.GetPool()->GetMetric(rSet.GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE));
// Fill ListBox with predefined / translated numbering types.
sal_uInt32 nCount = SvxNumberingTypeTable::Count();
for (sal_uInt32 i = 0; i < nCount; ++i)
{
- m_xFmtLB->append(OUString::number(SvxNumberingTypeTable::GetValue(i)), SvxNumberingTypeTable::GetString(i));
+ int nValue = SvxNumberingTypeTable::GetValue(i);
+ if (comphelper::LibreOfficeKit::isActive() && (nValue & SVX_NUM_BITMAP)) continue;
+ m_xFmtLB->append(OUString::number(nValue), SvxNumberingTypeTable::GetString(i));
}
// Get advanced numbering types from the component.
@@ -1136,19 +1147,18 @@ std::unique_ptr<SfxTabPage> SvxNumOptionsTabPage::Create(weld::Container* pPage,
void SvxNumOptionsTabPage::ActivatePage(const SfxItemSet& rSet)
{
- const SfxPoolItem* pItem;
const SfxItemSet* pExampleSet = GetDialogExampleSet();
sal_uInt16 nTmpNumLvl = 1;
if(pExampleSet)
{
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, false, &pItem))
- bPreset = static_cast<const SfxBoolItem*>(pItem)->GetValue();
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, false, &pItem))
- nTmpNumLvl = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ if(const SfxBoolItem* pPresetItem = pExampleSet->GetItemIfSet(SID_PARAM_NUM_PRESET, false))
+ bPreset = pPresetItem->GetValue();
+ if(const SfxUInt16Item* pLevelItem = pExampleSet->GetItemIfSet(SID_PARAM_CUR_NUM_LEVEL, false))
+ nTmpNumLvl = pLevelItem->GetValue();
}
- if(SfxItemState::SET == rSet.GetItemState(nNumItemId, false, &pItem))
+ if(const SvxNumBulletItem* pBulletItem = rSet.GetItemIfSet(nNumItemId, false))
{
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pBulletItem->GetNumRule()) );
}
bModified = (!pActNum->Get( 0 ) || bPreset);
@@ -1195,23 +1205,21 @@ bool SvxNumOptionsTabPage::FillItemSet( SfxItemSet* rSet )
void SvxNumOptionsTabPage::Reset( const SfxItemSet* rSet )
{
- const SfxPoolItem* pItem;
// in Draw the item exists as WhichId, in Writer only as SlotId
- SfxItemState eState = rSet->GetItemState(SID_ATTR_NUMBERING_RULE, false, &pItem);
- if(eState != SfxItemState::SET)
+ const SvxNumBulletItem* pBulletItem =
+ rSet->GetItemIfSet(SID_ATTR_NUMBERING_RULE, false);
+ if(!pBulletItem)
{
- nNumItemId = rSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
- eState = rSet->GetItemState(nNumItemId, false, &pItem);
+ nNumItemId = rSet->GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE);
+ pBulletItem = rSet->GetItemIfSet(nNumItemId, false);
- if( eState != SfxItemState::SET )
+ if( !pBulletItem )
{
- pItem = &static_cast< const SvxNumBulletItem& >( rSet->Get( nNumItemId ) );
- eState = SfxItemState::SET;
+ pBulletItem = & rSet->Get( nNumItemId );
}
-
}
- DBG_ASSERT(eState == SfxItemState::SET, "no item found!");
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ DBG_ASSERT(pBulletItem, "no item found!");
+ pSaveNum.reset( new SvxNumRule(pBulletItem->GetNumRule()) );
// insert levels
if (!m_xLevelLB->n_children())
@@ -1253,12 +1261,16 @@ void SvxNumOptionsTabPage::Reset( const SfxItemSet* rSet )
m_aPreviewWIN.SetNumRule(pActNum.get());
m_xSameLevelCB->set_active(pActNum->IsContinuousNumbering());
- SfxObjectShell* pShell;
- if ( SfxItemState::SET == rSet->GetItemState( SID_HTML_MODE, false, &pItem )
- || ( nullptr != ( pShell = SfxObjectShell::Current()) &&
- nullptr != ( pItem = pShell->GetItem( SID_HTML_MODE ) ) ) )
+ const SfxUInt16Item* pHtmlModeItem =
+ rSet->GetItemIfSet( SID_HTML_MODE, false );
+ if (!pHtmlModeItem)
{
- sal_uInt16 nHtmlMode = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ if (SfxObjectShell* pShell = SfxObjectShell::Current())
+ pHtmlModeItem = pShell->GetItem( SID_HTML_MODE );
+ }
+ if ( pHtmlModeItem )
+ {
+ sal_uInt16 nHtmlMode = pHtmlModeItem->GetValue();
bHTMLMode = 0 != (nHtmlMode&HTMLMODE_ON);
}
@@ -1271,6 +1283,7 @@ void SvxNumOptionsTabPage::Reset( const SfxItemSet* rSet )
bool bAllLevel = bContinuous && !bHTMLMode;
m_xAllLevelFT->set_visible(bAllLevel);
m_xAllLevelNF->set_visible(bAllLevel);
+ m_xIsLegalCB->set_visible(bAllLevel);
m_xAllLevelsFrame->set_visible(bContinuous);
@@ -1334,6 +1347,8 @@ void SvxNumOptionsTabPage::InitControls()
bool bSameBulColor = true;
bool bSameBulRelSize= true;
+ TriState isLegal = TRISTATE_INDET;
+
const SvxNumberFormat* aNumFmtArr[SVX_MAX_NUM];
OUString sFirstCharFmt;
sal_Int16 eFirstOrient = text::VertOrientation::NONE;
@@ -1358,6 +1373,7 @@ void SvxNumOptionsTabPage::InitControls()
eFirstOrient = aNumFmtArr[i]->GetVertOrient();
if(bShowBitmap)
aFirstSize = aNumFmtArr[i]->GetGraphicSize();
+ isLegal = aNumFmtArr[i]->GetIsLegal() ? TRISTATE_TRUE : TRISTATE_FALSE;
}
if( i > nLvl)
{
@@ -1367,6 +1383,8 @@ void SvxNumOptionsTabPage::InitControls()
bSamePrefix = aNumFmtArr[i]->GetPrefix() == aNumFmtArr[nLvl]->GetPrefix();
bSameSuffix = aNumFmtArr[i]->GetSuffix() == aNumFmtArr[nLvl]->GetSuffix();
bAllLevel &= aNumFmtArr[i]->GetIncludeUpperLevels() == aNumFmtArr[nLvl]->GetIncludeUpperLevels();
+ if (aNumFmtArr[i]->GetIsLegal() != aNumFmtArr[nLvl]->GetIsLegal())
+ isLegal = TRISTATE_INDET;
bSameCharFmt &= sFirstCharFmt == aNumFmtArr[i]->GetCharFormatName();
bSameVOrient &= eFirstOrient == aNumFmtArr[i]->GetVertOrient();
if(bShowBitmap && bSameSize)
@@ -1415,8 +1433,8 @@ void SvxNumOptionsTabPage::InitControls()
}
else
{
- m_xHeightMF->set_text("");
- m_xWidthMF->set_text("");
+ m_xHeightMF->set_text(u""_ustr);
+ m_xWidthMF->set_text(u""_ustr);
}
}
@@ -1436,15 +1454,18 @@ void SvxNumOptionsTabPage::InitControls()
}
else
{
- m_xAllLevelNF->set_text("");
+ m_xAllLevelNF->set_text(u""_ustr);
}
+ m_xIsLegalCB->set_state(isLegal);
+ m_xIsLegalCB->set_sensitive(!m_xSameLevelCB->get_active());
+
if(bBullRelSize)
{
if(bSameBulRelSize)
m_xBulRelSizeMF->set_value(aNumFmtArr[nLvl]->GetBulletRelSize(), FieldUnit::PERCENT);
else
- m_xBulRelSizeMF->set_text("");
+ m_xBulRelSizeMF->set_text(u""_ustr);
}
if(bBullColor)
{
@@ -1453,6 +1474,7 @@ void SvxNumOptionsTabPage::InitControls()
else
m_xBulColLB->SetNoSelection();
}
+ m_xStartED->set_value(1); // If this isn't set then changing the bullet type to a numbered type doesn't reset the start level
switch(nBullet)
{
case SHOW_NUMBERING:
@@ -1461,7 +1483,7 @@ void SvxNumOptionsTabPage::InitControls()
m_xStartED->set_value(aNumFmtArr[nLvl]->GetStart());
}
else
- m_xStartED->set_text("");
+ m_xStartED->set_text(u""_ustr);
break;
case SHOW_BULLET:
break;
@@ -1472,17 +1494,17 @@ void SvxNumOptionsTabPage::InitControls()
if(bSamePrefix)
m_xPrefixED->set_text(aNumFmtArr[nLvl]->GetPrefix());
else
- m_xPrefixED->set_text("");
+ m_xPrefixED->set_text(u""_ustr);
if(bSameSuffix)
m_xSuffixED->set_text(aNumFmtArr[nLvl]->GetSuffix());
else
- m_xSuffixED->set_text("");
+ m_xSuffixED->set_text(u""_ustr);
if(bSameCharFmt)
{
if (!sFirstCharFmt.isEmpty())
m_xCharFmtLB->set_active_text(sFirstCharFmt);
- else
+ else if (m_xCharFmtLB->get_count())
m_xCharFmtLB->set_active(0);
}
else
@@ -1518,6 +1540,7 @@ void SvxNumOptionsTabPage::SwitchNumberType( sal_uInt8 nType )
bool bAllLevel = bNumeric && bAllLevelFeature && !bHTMLMode;
m_xAllLevelFT->set_visible(bAllLevel);
m_xAllLevelNF->set_visible(bAllLevel);
+ m_xIsLegalCB->set_visible(bAllLevel);
m_xStartFT->set_visible(!(bBullet||bBitmap));
m_xStartED->set_visible(!(bBullet||bBitmap));
@@ -1539,6 +1562,9 @@ void SvxNumOptionsTabPage::SwitchNumberType( sal_uInt8 nType )
m_xHeightFT->set_visible(bBitmap);
m_xHeightMF->set_visible(bBitmap);
m_xRatioCB->set_visible(bBitmap);
+ m_xCbxScaleImg->set_visible(bBitmap);
+ m_xImgRatioTop->set_visible(bBitmap);
+ m_xImgRatioBottom->set_visible(bBitmap);
m_xOrientFT->set_visible(bBitmap && bAllLevelFeature);
m_xOrientLB->set_visible(bBitmap && bAllLevelFeature);
@@ -1617,7 +1643,7 @@ IMPL_LINK(SvxNumOptionsTabPage, AllLevelHdl_Impl, weld::SpinButton&, rBox, void)
if(nActNumLvl & nMask)
{
SvxNumberFormat aNumFmt(pActNum->GetLevel(e));
- aNumFmt.SetIncludeUpperLevels(static_cast<sal_uInt8>(std::min(rBox.get_value(), int(e + 1))) );
+ aNumFmt.SetIncludeUpperLevels(static_cast<sal_uInt8>(std::min(rBox.get_value(), sal_Int64(e + 1))) );
// Set the same prefix/suffix to generate list format with changed IncludedUpperLevels
aNumFmt.SetListFormat(aNumFmt.GetPrefix(), aNumFmt.GetSuffix(), e);
pActNum->SetLevel(e, aNumFmt);
@@ -1627,6 +1653,21 @@ IMPL_LINK(SvxNumOptionsTabPage, AllLevelHdl_Impl, weld::SpinButton&, rBox, void)
SetModified();
}
+IMPL_LINK(SvxNumOptionsTabPage, IsLegalHdl_Impl, weld::Toggleable&, rBox, void)
+{
+ bool bSet = rBox.get_active();
+ for (sal_uInt16 i = 0; i < pActNum->GetLevelCount(); i++)
+ {
+ if (nActNumLvl & (sal_uInt16(1) << i))
+ {
+ SvxNumberFormat aNumFmt(pActNum->GetLevel(i));
+ aNumFmt.SetIsLegal(bSet);
+ pActNum->SetLevel(i, aNumFmt);
+ }
+ }
+ SetModified();
+}
+
IMPL_LINK(SvxNumOptionsTabPage, NumberTypeSelectHdl_Impl, weld::ComboBox&, rBox, void)
{
OUString sSelectStyle;
@@ -1646,9 +1687,9 @@ IMPL_LINK(SvxNumOptionsTabPage, NumberTypeSelectHdl_Impl, weld::ComboBox&, rBox,
{
bBmp |= nullptr != aNumFmt.GetBrush();
aNumFmt.SetIncludeUpperLevels( 1 );
- aNumFmt.SetListFormat("", "", i);
+ aNumFmt.SetListFormat(u""_ustr, u""_ustr, i);
if(!bBmp)
- aNumFmt.SetGraphic("");
+ aNumFmt.SetGraphic(u""_ustr);
pActNum->SetLevel(i, aNumFmt);
SwitchNumberType(SHOW_BITMAP);
bShowOrient = true;
@@ -1656,7 +1697,7 @@ IMPL_LINK(SvxNumOptionsTabPage, NumberTypeSelectHdl_Impl, weld::ComboBox&, rBox,
else if( SVX_NUM_CHAR_SPECIAL == nNumberingType )
{
aNumFmt.SetIncludeUpperLevels( 1 );
- aNumFmt.SetListFormat("", "", i);
+ aNumFmt.SetListFormat(u""_ustr, u""_ustr, i);
if( !aNumFmt.GetBulletFont() )
aNumFmt.SetBulletFont(&aActBulletFont);
if( !aNumFmt.GetBulletChar() )
@@ -1796,14 +1837,14 @@ IMPL_LINK(SvxNumOptionsTabPage, BulRelSizeHdl_Impl, weld::MetricSpinButton&, rFi
SetModified();
}
-IMPL_LINK(SvxNumOptionsTabPage, GraphicHdl_Impl, const OString&, rIdent, void)
+IMPL_LINK(SvxNumOptionsTabPage, GraphicHdl_Impl, const OUString&, rIdent, void)
{
OUString aGrfName;
Size aSize;
bool bSucc(false);
- SvxOpenGraphicDialog aGrfDlg(CuiResId(RID_SVXSTR_EDIT_GRAPHIC), GetFrameWeld());
+ SvxOpenGraphicDialog aGrfDlg(CuiResId(RID_CUISTR_EDIT_GRAPHIC), GetFrameWeld());
- OString sNumber;
+ OUString sNumber;
if (rIdent.startsWith("gallery", &sNumber))
{
auto idx = sNumber.toUInt32();
@@ -1879,7 +1920,7 @@ IMPL_LINK_NOARG(SvxNumOptionsTabPage, PopupActivateHdl_Impl, weld::Toggleable&,
if (m_xGalleryMenu)
return;
- m_xGalleryMenu = m_xBuilder->weld_menu("gallerysubmenu");
+ m_xGalleryMenu = m_xBuilder->weld_menu(u"gallerysubmenu"_ustr);
weld::WaitObject aWait(GetFrameWeld());
if (!GalleryExplorer::FillObjList(GALLERY_THEME_BULLETS, aGrfNames))
@@ -2056,6 +2097,7 @@ IMPL_LINK( SvxNumOptionsTabPage, SizeHdl_Impl, weld::MetricSpinButton&, rField,
IMPL_LINK(SvxNumOptionsTabPage, RatioHdl_Impl, weld::Toggleable&, rBox, void)
{
+ m_xCbxScaleImg->set_from_icon_name(m_xRatioCB->get_active() ? RID_SVXBMP_LOCKED : RID_SVXBMP_UNLOCKED);
if (rBox.get_active())
{
if (bLastWidthModified)
@@ -2077,7 +2119,7 @@ IMPL_LINK_NOARG(SvxNumOptionsTabPage, CharFmtHdl_Impl, weld::ComboBox&, void)
{
SvxNumberFormat aNumFmt(pActNum->GetLevel(i));
if( 0 == nEntryPos )
- aNumFmt.SetCharFormatName("");
+ aNumFmt.SetCharFormatName(u""_ustr);
else
{
if(SVX_NUM_BITMAP != (aNumFmt.GetNumberingType()&(~LINK_TOKEN)))
@@ -2121,359 +2163,12 @@ void SvxNumOptionsTabPage::EditModifyHdl_Impl(const weld::Entry* pEdit)
SetModified();
}
-static tools::Long lcl_DrawGraphic(VirtualDevice& rVDev, const SvxNumberFormat &rFmt, tools::Long nXStart,
- tools::Long nYMiddle, tools::Long nDivision)
-{
- const SvxBrushItem* pBrushItem = rFmt.GetBrush();
- tools::Long nRet = 0;
- if(pBrushItem)
- {
- const Graphic* pGrf = pBrushItem->GetGraphic();
- if(pGrf)
- {
- Size aGSize( rFmt.GetGraphicSize() );
- aGSize.setWidth( aGSize.Width() / nDivision );
- nRet = aGSize.Width();
- aGSize.setHeight( aGSize.Height() / nDivision );
- pGrf->Draw(rVDev, Point(nXStart,nYMiddle - ( aGSize.Height() / 2) ),
- rVDev.PixelToLogic( aGSize ) );
- }
- }
- return nRet;
-
-}
-
-static tools::Long lcl_DrawBullet(VirtualDevice* pVDev,
- const SvxNumberFormat& rFmt, tools::Long nXStart,
- tools::Long nYStart, const Size& rSize)
-{
- vcl::Font aTmpFont(pVDev->GetFont());
-
- // via Uno it's possible that no font has been set!
- vcl::Font aFont(rFmt.GetBulletFont() ? *rFmt.GetBulletFont() : aTmpFont);
- Size aTmpSize(rSize);
- aTmpSize.setWidth( aTmpSize.Width() * ( rFmt.GetBulletRelSize()) );
- aTmpSize.setWidth( aTmpSize.Width() / 100 ) ;
- aTmpSize.setHeight( aTmpSize.Height() * ( rFmt.GetBulletRelSize()) );
- aTmpSize.setHeight( aTmpSize.Height() / 100 ) ;
- // in case of a height of zero it is drawn in original height
- if(!aTmpSize.Height())
- aTmpSize.setHeight( 1 );
- aFont.SetFontSize(aTmpSize);
- aFont.SetTransparent(true);
- Color aBulletColor = rFmt.GetBulletColor();
- if(aBulletColor == COL_AUTO)
- aBulletColor = pVDev->GetFillColor().IsDark() ? COL_WHITE : COL_BLACK;
- else if(aBulletColor == pVDev->GetFillColor())
- aBulletColor.Invert();
- aFont.SetColor(aBulletColor);
- pVDev->SetFont( aFont );
- sal_UCS4 cChar = rFmt.GetBulletChar();
- OUString aText(&cChar, 1);
- tools::Long nY = nYStart;
- nY -= ((aTmpSize.Height() - rSize.Height())/ 2);
- pVDev->DrawText( Point(nXStart, nY), aText );
- tools::Long nRet = pVDev->GetTextWidth(aText);
-
- pVDev->SetFont(aTmpFont);
- return nRet;
-}
-
-SvxNumberingPreview::SvxNumberingPreview()
- : pActNum(nullptr)
- , bPosition(false)
- , nActLevel(SAL_MAX_UINT16)
-{
-}
-
-// paint preview of numeration
-void SvxNumberingPreview::Paint(vcl::RenderContext& rRenderContext, const ::tools::Rectangle& /*rRect*/)
-{
- Size aSize(rRenderContext.PixelToLogic(GetOutputSizePixel()));
-
- const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
- const Color aBackColor = rStyleSettings.GetFieldColor();
- const Color aTextColor = rStyleSettings.GetFieldTextColor();
-
- ScopedVclPtrInstance<VirtualDevice> pVDev(rRenderContext);
- pVDev->EnableRTL(rRenderContext.IsRTLEnabled());
- pVDev->SetMapMode(rRenderContext.GetMapMode());
- pVDev->SetOutputSize(aSize);
-
- Color aLineColor(COL_LIGHTGRAY);
- if (aLineColor == aBackColor)
- aLineColor.Invert();
- pVDev->SetLineColor(aLineColor);
- pVDev->SetFillColor(aBackColor);
-
- if (pActNum)
- {
- tools::Long nWidthRelation = 30; // chapter dialog
-
- // height per level
- tools::Long nXStep = aSize.Width() / (3 * pActNum->GetLevelCount());
- if (pActNum->GetLevelCount() < 10)
- nXStep /= 2;
- tools::Long nYStart = 4;
- // the whole height mustn't be used for a single level
- tools::Long nYStep = (aSize.Height() - 6)/ (pActNum->GetLevelCount() > 1 ? pActNum->GetLevelCount() : 5);
-
- aStdFont = OutputDevice::GetDefaultFont(DefaultFontType::UI_SANS, MsLangId::getConfiguredSystemLanguage(), GetDefaultFontFlags::OnlyOne);
- aStdFont.SetColor(aTextColor);
- aStdFont.SetFillColor(aBackColor);
-
- tools::Long nFontHeight = nYStep * 6 / 10;
- if (bPosition)
- nFontHeight = nYStep * 15 / 10;
- aStdFont.SetFontSize(Size( 0, nFontHeight ));
-
- SvxNodeNum aNum;
- sal_uInt16 nPreNum = pActNum->GetLevel(0).GetStart();
-
- if (bPosition)
- {
- tools::Long nLineHeight = nFontHeight * 8 / 7;
- sal_uInt8 nStart = 0;
- while (!(nActLevel & (1<<nStart)))
- {
- nStart++;
- }
- if (nStart)
- nStart--;
- sal_uInt8 nEnd = std::min(sal_uInt8(nStart + 3), sal_uInt8(pActNum->GetLevelCount()));
- for (sal_uInt8 nLevel = nStart; nLevel < nEnd; ++nLevel)
- {
- const SvxNumberFormat &rFmt = pActNum->GetLevel(nLevel);
- aNum.GetLevelVal()[nLevel] = rFmt.GetStart();
-
- tools::Long nXStart( 0 );
- short nTextOffset( 0 );
- tools::Long nNumberXPos( 0 );
- if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION)
- {
- nXStart = rFmt.GetAbsLSpace() / nWidthRelation;
- nTextOffset = rFmt.GetCharTextDistance() / nWidthRelation;
- nNumberXPos = nXStart;
- tools::Long nFirstLineOffset = (-rFmt.GetFirstLineOffset()) / nWidthRelation;
-
- if (nFirstLineOffset <= nNumberXPos)
- nNumberXPos = nNumberXPos - nFirstLineOffset;
- else
- nNumberXPos = 0;
- // in draw this is valid
- if (nTextOffset < 0)
- nNumberXPos = nNumberXPos + nTextOffset;
- }
- else if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT)
- {
- const tools::Long nTmpNumberXPos((rFmt.GetIndentAt() + rFmt.GetFirstLineIndent() ) / nWidthRelation);
- if (nTmpNumberXPos < 0)
- {
- nNumberXPos = 0;
- }
- else
- {
- nNumberXPos = nTmpNumberXPos;
- }
- }
-
- tools::Long nBulletWidth = 0;
- if (SVX_NUM_BITMAP == (rFmt.GetNumberingType() &(~LINK_TOKEN)))
- {
- tools::Long nYMiddle = nYStart + ( nFontHeight / 2 );
- nBulletWidth = rFmt.IsShowSymbol() ? lcl_DrawGraphic(*pVDev, rFmt, nNumberXPos, nYMiddle, nWidthRelation) : 0;
- }
- else if (SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType())
- {
- nBulletWidth = rFmt.IsShowSymbol() ? lcl_DrawBullet(pVDev.get(), rFmt, nNumberXPos, nYStart, aStdFont.GetFontSize()) : 0;
- }
- else
- {
- pVDev->SetFont(aStdFont);
- aNum.SetLevel(nLevel);
- if (pActNum->IsContinuousNumbering())
- aNum.GetLevelVal()[nLevel] = nPreNum;
- OUString aText(pActNum->MakeNumString( aNum ));
- vcl::Font aSaveFont = pVDev->GetFont();
- vcl::Font aColorFont(aSaveFont);
- Color aTmpBulletColor = rFmt.GetBulletColor();
- if (aTmpBulletColor == COL_AUTO)
- aTmpBulletColor = aBackColor.IsDark() ? COL_WHITE : COL_BLACK;
- else if (aTmpBulletColor == aBackColor)
- aTmpBulletColor.Invert();
- aColorFont.SetColor(aTmpBulletColor);
- pVDev->SetFont(aColorFont);
- pVDev->DrawText(Point(nNumberXPos, nYStart), aText);
- pVDev->SetFont(aSaveFont);
- nBulletWidth = pVDev->GetTextWidth(aText);
- nPreNum++;
- }
- if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT &&
- rFmt.GetLabelFollowedBy() == SvxNumberFormat::SPACE )
- {
- pVDev->SetFont(aStdFont);
- OUString aText(' ');
- pVDev->DrawText( Point(nNumberXPos, nYStart), aText );
- nBulletWidth = nBulletWidth + pVDev->GetTextWidth(aText);
- }
-
- tools::Long nTextXPos( 0 );
- if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION)
- {
- nTextXPos = nXStart;
- if (nTextOffset < 0)
- nTextXPos = nTextXPos + nTextOffset;
- if (nNumberXPos + nBulletWidth + nTextOffset > nTextXPos)
- nTextXPos = nNumberXPos + nBulletWidth + nTextOffset;
- }
- else if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT)
- {
- switch (rFmt.GetLabelFollowedBy())
- {
- case SvxNumberFormat::LISTTAB:
- {
- nTextXPos = rFmt.GetListtabPos() / nWidthRelation;
- if (nTextXPos < nNumberXPos + nBulletWidth)
- {
- nTextXPos = nNumberXPos + nBulletWidth;
- }
- }
- break;
- case SvxNumberFormat::SPACE:
- case SvxNumberFormat::NOTHING:
- case SvxNumberFormat::NEWLINE:
- {
- nTextXPos = nNumberXPos + nBulletWidth;
- }
- break;
- }
-
- nXStart = rFmt.GetIndentAt() / nWidthRelation;
- }
-
- ::tools::Rectangle aRect1(Point(nTextXPos, nYStart + nFontHeight / 2), Size(aSize.Width() / 2, 2));
- pVDev->SetFillColor(aBackColor);
- pVDev->DrawRect(aRect1);
-
- ::tools::Rectangle aRect2(Point(nXStart, nYStart + nLineHeight + nFontHeight / 2 ), Size(aSize.Width() / 2, 2));
- pVDev->DrawRect(aRect2);
- nYStart += 2 * nLineHeight;
- }
- }
- else
- {
- //#i5153# painting gray or black rectangles as 'normal' numbering text
- tools::Long nWidth = pVDev->GetTextWidth("Preview");
- tools::Long nTextHeight = pVDev->GetTextHeight();
- tools::Long nRectHeight = nTextHeight * 2 / 3;
- tools::Long nTopOffset = nTextHeight - nRectHeight;
- Color aBlackColor(COL_BLACK);
- if (aBlackColor == aBackColor)
- aBlackColor.Invert();
-
- for (sal_uInt16 nLevel = 0; nLevel < pActNum->GetLevelCount(); ++nLevel, nYStart = nYStart + nYStep)
- {
- const SvxNumberFormat &rFmt = pActNum->GetLevel(nLevel);
- aNum.GetLevelVal()[ nLevel ] = rFmt.GetStart();
- tools::Long nXStart( 0 );
- pVDev->SetFillColor( aBackColor );
-
- if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_WIDTH_AND_POSITION)
- {
- nXStart = rFmt.GetAbsLSpace() / nWidthRelation;
- }
- else if (rFmt.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT)
- {
- const tools::Long nTmpXStart((rFmt.GetIndentAt() + rFmt.GetFirstLineIndent() ) / nWidthRelation);
- if (nTmpXStart < 0)
- {
- nXStart = 0;
- }
- else
- {
- nXStart = nTmpXStart;
- }
- }
- nXStart /= 2;
- nXStart += 2;
- tools::Long nTextOffset = 2 * nXStep;
- if (SVX_NUM_BITMAP == (rFmt.GetNumberingType()&(~LINK_TOKEN)))
- {
- if (rFmt.IsShowSymbol())
- {
- tools::Long nYMiddle = nYStart + ( nFontHeight / 2 );
- nTextOffset = lcl_DrawGraphic(*pVDev, rFmt, nXStart, nYMiddle, nWidthRelation);
- nTextOffset = nTextOffset + nXStep;
- }
- }
- else if (SVX_NUM_CHAR_SPECIAL == rFmt.GetNumberingType())
- {
- if (rFmt.IsShowSymbol())
- {
- nTextOffset = lcl_DrawBullet(pVDev.get(), rFmt, nXStart, nYStart, aStdFont.GetFontSize());
- nTextOffset = nTextOffset + nXStep;
- }
- }
- else
- {
- vcl::Font aFont(aStdFont);
- Size aTmpSize(aStdFont.GetFontSize());
- if(pActNum->IsFeatureSupported(SvxNumRuleFlags::BULLET_REL_SIZE))
- {
- aTmpSize.setWidth( aTmpSize.Width() * ( rFmt.GetBulletRelSize()) );
- aTmpSize.setWidth( aTmpSize.Width() / 100 ) ;
- aTmpSize.setHeight( aTmpSize.Height() * ( rFmt.GetBulletRelSize()) );
- aTmpSize.setHeight( aTmpSize.Height() / 100 ) ;
- }
- if(!aTmpSize.Height())
- aTmpSize.setHeight( 1 );
- aFont.SetFontSize(aTmpSize);
- Color aTmpBulletColor = rFmt.GetBulletColor();
- if (aTmpBulletColor == COL_AUTO)
- aTmpBulletColor = aBackColor.IsDark() ? COL_WHITE : COL_BLACK;
- else if (aTmpBulletColor == aBackColor)
- aTmpBulletColor.Invert();
- aFont.SetColor(aTmpBulletColor);
- pVDev->SetFont(aFont);
- aNum.SetLevel( nLevel );
- if (pActNum->IsContinuousNumbering())
- aNum.GetLevelVal()[nLevel] = nPreNum;
- OUString aText(pActNum->MakeNumString(aNum));
- tools::Long nY = nYStart;
- nY -= (pVDev->GetTextHeight() - nTextHeight - pVDev->GetFontMetric().GetDescent());
- pVDev->DrawText(Point(nXStart, nY), aText);
- nTextOffset = pVDev->GetTextWidth(aText);
- nTextOffset = nTextOffset + nXStep;
- nPreNum++;
- pVDev->SetFont(aStdFont);
- }
- //#i5153# the selected rectangle(s) should be black
- if (0 != (nActLevel & (1<<nLevel)))
- {
- pVDev->SetFillColor( aBlackColor );
- pVDev->SetLineColor( aBlackColor );
- }
- else
- {
- //#i5153# unselected levels are gray
- pVDev->SetFillColor( aLineColor );
- pVDev->SetLineColor( aLineColor );
- }
- ::tools::Rectangle aRect1(Point(nXStart + nTextOffset, nYStart + nTopOffset), Size(nWidth, nRectHeight));
- pVDev->DrawRect(aRect1);
- }
- }
- }
- rRenderContext.DrawOutDev(Point(), aSize, Point(), aSize, *pVDev);
-}
-
-
//See uiconfig/swriter/ui/outlinepositionpage.ui for effectively a duplicate
//dialog to this one, except with a different preview window impl.
//TODO, determine if SwNumPositionTabPage and SvxNumPositionTabPage can be
//merged
SvxNumPositionTabPage::SvxNumPositionTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/numberingpositionpage.ui", "NumberingPositionPage", &rSet)
+ : SfxTabPage(pPage, pController, u"cui/ui/numberingpositionpage.ui"_ustr, u"NumberingPositionPage"_ustr, &rSet)
, m_pLevelHdlEvent(nullptr)
, nActNumLvl(1)
, nNumItemId(SID_ATTR_NUMBERING_RULE)
@@ -2481,31 +2176,38 @@ SvxNumPositionTabPage::SvxNumPositionTabPage(weld::Container* pPage, weld::Dialo
, bPreset(false)
, bInInintControl(false)
, bLabelAlignmentPosAndSpaceModeActive(false)
- , m_xLevelLB(m_xBuilder->weld_tree_view("levellb"))
- , m_xDistBorderFT(m_xBuilder->weld_label("indent"))
- , m_xDistBorderMF(m_xBuilder->weld_metric_spin_button("indentmf", FieldUnit::CM))
- , m_xRelativeCB(m_xBuilder->weld_check_button("relative"))
- , m_xIndentFT(m_xBuilder->weld_label("numberingwidth"))
- , m_xIndentMF(m_xBuilder->weld_metric_spin_button("numberingwidthmf", FieldUnit::CM))
- , m_xDistNumFT(m_xBuilder->weld_label("numdist"))
- , m_xDistNumMF(m_xBuilder->weld_metric_spin_button("numdistmf", FieldUnit::CM))
- , m_xAlignFT(m_xBuilder->weld_label("numalign"))
- , m_xAlignLB(m_xBuilder->weld_combo_box("numalignlb"))
- , m_xLabelFollowedByFT(m_xBuilder->weld_label("numfollowedby"))
- , m_xLabelFollowedByLB(m_xBuilder->weld_combo_box("numfollowedbylb"))
- , m_xListtabFT(m_xBuilder->weld_label("at"))
- , m_xListtabMF(m_xBuilder->weld_metric_spin_button("atmf", FieldUnit::CM))
- , m_xAlign2FT(m_xBuilder->weld_label("num2align"))
- , m_xAlign2LB(m_xBuilder->weld_combo_box("num2alignlb"))
- , m_xAlignedAtFT(m_xBuilder->weld_label("alignedat"))
- , m_xAlignedAtMF(m_xBuilder->weld_metric_spin_button("alignedatmf", FieldUnit::CM))
- , m_xIndentAtFT(m_xBuilder->weld_label("indentat"))
- , m_xIndentAtMF(m_xBuilder->weld_metric_spin_button("indentatmf", FieldUnit::CM))
- , m_xStandardPB(m_xBuilder->weld_button("standard"))
- , m_xPreviewWIN(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWIN))
+ , m_xLevelLB(m_xBuilder->weld_tree_view(u"levellb"_ustr))
+ , m_xDistBorderFT(m_xBuilder->weld_label(u"indent"_ustr))
+ , m_xDistBorderMF(m_xBuilder->weld_metric_spin_button(u"indentmf"_ustr, FieldUnit::CM))
+ , m_xRelativeCB(m_xBuilder->weld_check_button(u"relative"_ustr))
+ , m_xIndentFT(m_xBuilder->weld_label(u"numberingwidth"_ustr))
+ , m_xIndentMF(m_xBuilder->weld_metric_spin_button(u"numberingwidthmf"_ustr, FieldUnit::CM))
+ , m_xDistNumFT(m_xBuilder->weld_label(u"numdist"_ustr))
+ , m_xDistNumMF(m_xBuilder->weld_metric_spin_button(u"numdistmf"_ustr, FieldUnit::CM))
+ , m_xAlignFT(m_xBuilder->weld_label(u"numalign"_ustr))
+ , m_xAlignLB(m_xBuilder->weld_combo_box(u"numalignlb"_ustr))
+ , m_xLabelFollowedByFT(m_xBuilder->weld_label(u"numfollowedby"_ustr))
+ , m_xLabelFollowedByLB(m_xBuilder->weld_combo_box(u"numfollowedbylb"_ustr))
+ , m_xListtabFT(m_xBuilder->weld_label(u"at"_ustr))
+ , m_xListtabMF(m_xBuilder->weld_metric_spin_button(u"atmf"_ustr, FieldUnit::CM))
+ , m_xAlign2FT(m_xBuilder->weld_label(u"num2align"_ustr))
+ , m_xAlign2LB(m_xBuilder->weld_combo_box(u"num2alignlb"_ustr))
+ , m_xAlignedAtFT(m_xBuilder->weld_label(u"alignedat"_ustr))
+ , m_xAlignedAtMF(m_xBuilder->weld_metric_spin_button(u"alignedatmf"_ustr, FieldUnit::CM))
+ , m_xIndentAtFT(m_xBuilder->weld_label(u"indentat"_ustr))
+ , m_xIndentAtMF(m_xBuilder->weld_metric_spin_button(u"indentatmf"_ustr, FieldUnit::CM))
+ , m_xStandardPB(m_xBuilder->weld_button(u"standard"_ustr))
+ , m_xPreviewWIN(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aPreviewWIN))
{
SetExchangeSupport();
+ // set metric
+ FieldUnit eFUnit = GetModuleFieldUnit(rSet);
+
+ SetFieldUnit( *m_xDistBorderMF, eFUnit );
+ SetFieldUnit( *m_xIndentMF, eFUnit );
+ SetFieldUnit( *m_xDistNumMF, eFUnit );
+
m_xAlignedAtMF->set_range(0, SAL_MAX_INT32, FieldUnit::NONE);
m_xListtabMF->set_range(0, SAL_MAX_INT32, FieldUnit::NONE);
m_xIndentAtMF->set_range(0, SAL_MAX_INT32, FieldUnit::NONE);
@@ -2536,7 +2238,7 @@ SvxNumPositionTabPage::SvxNumPositionTabPage(weld::Container* pPage, weld::Dialo
m_xRelativeCB->set_active(bLastRelative);
m_aPreviewWIN.SetPositionMode();
- eCoreUnit = rSet.GetPool()->GetMetric(rSet.GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE));
+ eCoreUnit = rSet.GetPool()->GetMetric(rSet.GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE));
}
SvxNumPositionTabPage::~SvxNumPositionTabPage()
@@ -2655,11 +2357,11 @@ void SvxNumPositionTabPage::InitControls()
if(bSameDist)
SetMetricValue(*m_xDistNumMF, aNumFmtArr[nLvl]->GetCharTextDistance(), eCoreUnit);
else
- m_xDistNumMF->set_text("");
+ m_xDistNumMF->set_text(u""_ustr);
if(bSameIndent)
SetMetricValue(*m_xIndentMF, - aNumFmtArr[nLvl]->GetFirstLineOffset(), eCoreUnit);
else
- m_xIndentMF->set_text("");
+ m_xIndentMF->set_text(u""_ustr);
if(bSameAdjust)
{
@@ -2709,14 +2411,14 @@ void SvxNumPositionTabPage::InitControls()
}
else
{
- m_xListtabMF->set_text("");
+ m_xListtabMF->set_text(u""_ustr);
}
}
else
{
m_xListtabFT->set_sensitive(false);
m_xListtabMF->set_sensitive(false);
- m_xListtabMF->set_text("");
+ m_xListtabMF->set_text(u""_ustr);
}
if ( bSameAlignAt )
@@ -2727,7 +2429,7 @@ void SvxNumPositionTabPage::InitControls()
}
else
{
- m_xAlignedAtMF->set_text("");
+ m_xAlignedAtMF->set_text(u""_ustr);
}
if ( bSameIndentAt )
@@ -2736,30 +2438,29 @@ void SvxNumPositionTabPage::InitControls()
}
else
{
- m_xIndentAtMF->set_text("");
+ m_xIndentAtMF->set_text(u""_ustr);
}
if ( bSetDistEmpty )
- m_xDistBorderMF->set_text("");
+ m_xDistBorderMF->set_text(u""_ustr);
bInInintControl = false;
}
void SvxNumPositionTabPage::ActivatePage(const SfxItemSet& rSet)
{
- const SfxPoolItem* pItem;
sal_uInt16 nTmpNumLvl = 1;
const SfxItemSet* pExampleSet = GetDialogExampleSet();
if(pExampleSet)
{
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_NUM_PRESET, false, &pItem))
- bPreset = static_cast<const SfxBoolItem*>(pItem)->GetValue();
- if(SfxItemState::SET == pExampleSet->GetItemState(SID_PARAM_CUR_NUM_LEVEL, false, &pItem))
- nTmpNumLvl = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ if(const SfxBoolItem* pPresetItem = pExampleSet->GetItemIfSet(SID_PARAM_NUM_PRESET, false))
+ bPreset = pPresetItem->GetValue();
+ if(const SfxUInt16Item* pLevelItem = pExampleSet->GetItemIfSet(SID_PARAM_CUR_NUM_LEVEL, false))
+ nTmpNumLvl = pLevelItem->GetValue();
}
- if(SfxItemState::SET == rSet.GetItemState(nNumItemId, false, &pItem))
+ if(const SvxNumBulletItem* pBulletItem = rSet.GetItemIfSet(nNumItemId, false))
{
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ pSaveNum.reset( new SvxNumRule(pBulletItem->GetNumRule()) );
}
bModified = (!pActNum->Get( 0 ) || bPreset);
if(*pSaveNum != *pActNum ||
@@ -2816,23 +2517,21 @@ bool SvxNumPositionTabPage::FillItemSet( SfxItemSet* rSet )
void SvxNumPositionTabPage::Reset( const SfxItemSet* rSet )
{
- const SfxPoolItem* pItem;
// in Draw the item exists as WhichId, in Writer only as SlotId
- SfxItemState eState = rSet->GetItemState(SID_ATTR_NUMBERING_RULE, false, &pItem);
- if(eState != SfxItemState::SET)
+ const SvxNumBulletItem* pItem =
+ rSet->GetItemIfSet(SID_ATTR_NUMBERING_RULE, false);
+ if(!pItem)
{
- nNumItemId = rSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
- eState = rSet->GetItemState(nNumItemId, false, &pItem);
+ nNumItemId = rSet->GetPool()->GetWhichIDFromSlotID(SID_ATTR_NUMBERING_RULE);
+ pItem = rSet->GetItemIfSet(nNumItemId, false);
- if( eState != SfxItemState::SET )
+ if( !pItem )
{
- pItem = &static_cast< const SvxNumBulletItem& >( rSet->Get( nNumItemId ) );
- eState = SfxItemState::SET;
+ pItem = & rSet->Get( nNumItemId );
}
-
}
- DBG_ASSERT(eState == SfxItemState::SET, "no item found!");
- pSaveNum.reset( new SvxNumRule(static_cast<const SvxNumBulletItem*>(pItem)->GetNumRule()) );
+ DBG_ASSERT(pItem, "no item found!");
+ pSaveNum.reset( new SvxNumRule(pItem->GetNumRule()) );
// insert levels
if (!m_xLevelLB->count_selected_rows())
@@ -3097,7 +2796,7 @@ IMPL_LINK(SvxNumPositionTabPage, DistanceHdl_Impl, weld::MetricSpinButton&, rFld
SetModified();
if (!m_xDistBorderMF->get_sensitive())
{
- m_xDistBorderMF->set_text("");
+ m_xDistBorderMF->set_text(u""_ustr);
}
}
@@ -3136,7 +2835,7 @@ IMPL_LINK(SvxNumPositionTabPage, RelativeHdl_Impl, weld::Toggleable&, rBox, void
if(bSetValue)
SetMetricValue(*m_xDistBorderMF, nValue, eCoreUnit);
else
- m_xDistBorderMF->set_text("");
+ m_xDistBorderMF->set_text(u""_ustr);
m_xDistBorderMF->set_sensitive(bOn || bSingleSelection);
m_xDistBorderFT->set_sensitive(bOn || bSingleSelection);
bLastRelative = bOn;
@@ -3340,9 +3039,8 @@ void SvxNumOptionsTabPage::PageCreated(const SfxAllItemSet& aSet)
if (pListItem)
{
const std::vector<OUString> &aList = pListItem->GetList();
- sal_uInt32 nCount = aList.size();
- for(sal_uInt32 i = 0; i < nCount; i++)
- m_xCharFmtLB->append_text(aList[i]);
+ for (const auto& rItem : aList)
+ m_xCharFmtLB->append_text(rItem);
}
if (pMetricItem)
SetMetric(static_cast<FieldUnit>(pMetricItem->GetValue()));
diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx
index 0e29feaaeae6..ee0a4be0a945 100644
--- a/cui/source/tabpages/page.cxx
+++ b/cui/source/tabpages/page.cxx
@@ -22,7 +22,6 @@
#include <sfx2/objsh.hxx>
#include <sfx2/printer.hxx>
#include <sfx2/viewsh.hxx>
-#include <svl/languageoptions.hxx>
#include <svl/cjkoptions.hxx>
#include <svl/ctloptions.hxx>
#include <svtools/unitconv.hxx>
@@ -50,13 +49,13 @@
#include <editeng/eerdll.hxx>
#include <editeng/editrids.hrc>
#include <svx/svxids.hrc>
-#include <svtools/optionsdrawinglayer.hxx>
#include <svl/slstitm.hxx>
#include <svx/xdef.hxx>
#include <svx/unobrushitemhelper.hxx>
#include <svx/SvxNumOptionsTabPageHelper.hxx>
#include <sal/log.hxx>
#include <svl/grabbagitem.hxx>
+#include <officecfg/Office/Common.hxx>
// static ----------------------------------------------------------------
@@ -81,7 +80,7 @@ const SvxPageUsage aArr[] =
static sal_uInt16 PageUsageToPos_Impl( SvxPageUsage nUsage )
{
- for ( size_t i = 0; i < SAL_N_ELEMENTS(aArr); ++i )
+ for ( size_t i = 0; i < std::size(aArr); ++i )
if ( aArr[i] == nUsage )
return i;
return 3;
@@ -90,7 +89,7 @@ static sal_uInt16 PageUsageToPos_Impl( SvxPageUsage nUsage )
static SvxPageUsage PosToPageUsage_Impl( sal_uInt16 nPos )
{
- if ( nPos >= SAL_N_ELEMENTS(aArr) )
+ if ( nPos >= std::size(aArr) )
return SvxPageUsage::NONE;
return aArr[nPos];
}
@@ -139,7 +138,7 @@ std::unique_ptr<SfxTabPage> SvxPageDescPage::Create( weld::Container* pPage, wel
}
SvxPageDescPage::SvxPageDescPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rAttr)
- : SfxTabPage(pPage, pController, "cui/ui/pageformatpage.ui", "PageFormatPage", &rAttr)
+ : SfxTabPage(pPage, pController, u"cui/ui/pageformatpage.ui"_ustr, u"PageFormatPage"_ustr, &rAttr)
, bLandscape(false)
, eMode(SVX_PAGE_MODE_STANDARD)
, ePaperStart(PAPER_A3)
@@ -147,43 +146,42 @@ SvxPageDescPage::SvxPageDescPage(weld::Container* pPage, weld::DialogController*
, mpDefPrinter(nullptr)
, mbDelPrinter(false)
, mbEnableDrawingLayerFillStyles(false)
- , m_xPaperSizeBox(new SvxPaperSizeListBox(m_xBuilder->weld_combo_box("comboPageFormat")))
- , m_xPaperWidthEdit(m_xBuilder->weld_metric_spin_button("spinWidth", FieldUnit::CM))
- , m_xPaperHeightEdit(m_xBuilder->weld_metric_spin_button("spinHeight", FieldUnit::CM))
- , m_xOrientationFT(m_xBuilder->weld_label("labelOrientation"))
- , m_xPortraitBtn(m_xBuilder->weld_radio_button("radiobuttonPortrait"))
- , m_xLandscapeBtn(m_xBuilder->weld_radio_button("radiobuttonLandscape"))
- , m_xTextFlowLbl(m_xBuilder->weld_label("labelTextFlow"))
- , m_xTextFlowBox(new svx::FrameDirectionListBox(m_xBuilder->weld_combo_box("comboTextFlowBox")))
- , m_xPaperTrayBox(m_xBuilder->weld_combo_box("comboPaperTray"))
- , m_xLeftMarginLbl(m_xBuilder->weld_label("labelLeftMargin"))
- , m_xLeftMarginEdit(m_xBuilder->weld_metric_spin_button("spinMargLeft", FieldUnit::CM))
- , m_xRightMarginLbl(m_xBuilder->weld_label("labelRightMargin"))
- , m_xRightMarginEdit(m_xBuilder->weld_metric_spin_button("spinMargRight", FieldUnit::CM))
- , m_xTopMarginEdit(m_xBuilder->weld_metric_spin_button("spinMargTop", FieldUnit::CM))
- , m_xBottomMarginEdit(m_xBuilder->weld_metric_spin_button("spinMargBot", FieldUnit::CM))
- , m_xGutterMarginLbl(m_xBuilder->weld_label("labelGutterMargin"))
- , m_xGutterMarginEdit(m_xBuilder->weld_metric_spin_button("spinMargGut", FieldUnit::CM))
- , m_xPageText(m_xBuilder->weld_label("labelPageLayout"))
- , m_xLayoutBox(m_xBuilder->weld_combo_box("comboPageLayout"))
- , m_xNumberFormatText(m_xBuilder->weld_label("labelPageNumbers"))
- , m_xNumberFormatBox(new SvxPageNumberListBox(m_xBuilder->weld_combo_box("comboLayoutFormat")))
- , m_xTblAlignFT(m_xBuilder->weld_label("labelTblAlign"))
- , m_xHorzBox(m_xBuilder->weld_check_button("checkbuttonHorz"))
- , m_xVertBox(m_xBuilder->weld_check_button("checkbuttonVert"))
- , m_xAdaptBox(m_xBuilder->weld_check_button("checkAdaptBox"))
- , m_xRegisterCB(m_xBuilder->weld_check_button("checkRegisterTrue"))
- , m_xRegisterFT(m_xBuilder->weld_label("labelRegisterStyle"))
- , m_xRegisterLB(m_xBuilder->weld_combo_box("comboRegisterStyle"))
- , m_xGutterPositionFT(m_xBuilder->weld_label("labelGutterPosition"))
- , m_xGutterPositionLB(m_xBuilder->weld_combo_box("comboGutterPosition"))
- , m_xRtlGutterCB(m_xBuilder->weld_check_button("checkRtlGutter"))
- , m_xBackgroundFullSizeCB(m_xBuilder->weld_check_button("checkBackgroundFullSize"))
+ , m_xPaperSizeBox(new SvxPaperSizeListBox(m_xBuilder->weld_combo_box(u"comboPageFormat"_ustr)))
+ , m_xPaperWidthEdit(m_xBuilder->weld_metric_spin_button(u"spinWidth"_ustr, FieldUnit::CM))
+ , m_xPaperHeightEdit(m_xBuilder->weld_metric_spin_button(u"spinHeight"_ustr, FieldUnit::CM))
+ , m_xPortraitBtn(m_xBuilder->weld_radio_button(u"radiobuttonPortrait"_ustr))
+ , m_xLandscapeBtn(m_xBuilder->weld_radio_button(u"radiobuttonLandscape"_ustr))
+ , m_xTextFlowLbl(m_xBuilder->weld_label(u"labelTextFlow"_ustr))
+ , m_xTextFlowBox(new svx::FrameDirectionListBox(m_xBuilder->weld_combo_box(u"comboTextFlowBox"_ustr)))
+ , m_xPaperTrayBox(m_xBuilder->weld_combo_box(u"comboPaperTray"_ustr))
+ , m_xLeftMarginLbl(m_xBuilder->weld_label(u"labelLeftMargin"_ustr))
+ , m_xLeftMarginEdit(m_xBuilder->weld_metric_spin_button(u"spinMargLeft"_ustr, FieldUnit::CM))
+ , m_xRightMarginLbl(m_xBuilder->weld_label(u"labelRightMargin"_ustr))
+ , m_xRightMarginEdit(m_xBuilder->weld_metric_spin_button(u"spinMargRight"_ustr, FieldUnit::CM))
+ , m_xTopMarginEdit(m_xBuilder->weld_metric_spin_button(u"spinMargTop"_ustr, FieldUnit::CM))
+ , m_xBottomMarginEdit(m_xBuilder->weld_metric_spin_button(u"spinMargBot"_ustr, FieldUnit::CM))
+ , m_xGutterMarginLbl(m_xBuilder->weld_label(u"labelGutterMargin"_ustr))
+ , m_xGutterMarginEdit(m_xBuilder->weld_metric_spin_button(u"spinMargGut"_ustr, FieldUnit::CM))
+ , m_xPageText(m_xBuilder->weld_label(u"labelPageLayout"_ustr))
+ , m_xLayoutBox(m_xBuilder->weld_combo_box(u"comboPageLayout"_ustr))
+ , m_xNumberFormatText(m_xBuilder->weld_label(u"labelPageNumbers"_ustr))
+ , m_xNumberFormatBox(new SvxPageNumberListBox(m_xBuilder->weld_combo_box(u"comboLayoutFormat"_ustr)))
+ , m_xTblAlignFT(m_xBuilder->weld_label(u"labelTblAlign"_ustr))
+ , m_xHorzBox(m_xBuilder->weld_check_button(u"checkbuttonHorz"_ustr))
+ , m_xVertBox(m_xBuilder->weld_check_button(u"checkbuttonVert"_ustr))
+ , m_xAdaptBox(m_xBuilder->weld_check_button(u"checkAdaptBox"_ustr))
+ , m_xRegisterCB(m_xBuilder->weld_check_button(u"checkRegisterTrue"_ustr))
+ , m_xRegisterFT(m_xBuilder->weld_label(u"labelRegisterStyle"_ustr))
+ , m_xRegisterLB(m_xBuilder->weld_combo_box(u"comboRegisterStyle"_ustr))
+ , m_xGutterPositionFT(m_xBuilder->weld_label(u"labelGutterPosition"_ustr))
+ , m_xGutterPositionLB(m_xBuilder->weld_combo_box(u"comboGutterPosition"_ustr))
+ , m_xRtlGutterCB(m_xBuilder->weld_check_button(u"checkRtlGutter"_ustr))
+ , m_xBackgroundFullSizeCB(m_xBuilder->weld_check_button(u"checkBackgroundFullSize"_ustr))
// Strings stored in UI
- , m_xInsideLbl(m_xBuilder->weld_label("labelInner"))
- , m_xOutsideLbl(m_xBuilder->weld_label("labelOuter"))
- , m_xPrintRangeQueryText(m_xBuilder->weld_label("labelMsg"))
- , m_xBspWin(new weld::CustomWeld(*m_xBuilder, "drawingareaPageDirection", m_aBspWin))
+ , m_xInsideLbl(m_xBuilder->weld_label(u"labelInner"_ustr))
+ , m_xOutsideLbl(m_xBuilder->weld_label(u"labelOuter"_ustr))
+ , m_xPrintRangeQueryText(m_xBuilder->weld_label(u"labelMsg"_ustr))
+ , m_xBspWin(new weld::CustomWeld(*m_xBuilder, u"drawingareaPageDirection"_ustr, m_aBspWin))
{
m_xRegisterLB->set_size_request(m_xRegisterLB->get_approximate_digit_width() * 20, -1);
@@ -193,17 +191,18 @@ SvxPageDescPage::SvxPageDescPage(weld::Container* pPage, weld::DialogController*
// this page needs ExchangeSupport
SetExchangeSupport();
- SvtCTLOptions aCTLLanguageOptions;
bool bCJK = SvtCJKOptions::IsAsianTypographyEnabled();
- bool bCTL = aCTLLanguageOptions.IsCTLFontEnabled();
+ bool bCTL = SvtCTLOptions::IsCTLFontEnabled();
bool bWeb = false;
- const SfxPoolItem* pItem;
- SfxObjectShell* pShell;
- if(SfxItemState::SET == rAttr.GetItemState(SID_HTML_MODE, false, &pItem) ||
- ( nullptr != (pShell = SfxObjectShell::Current()) &&
- nullptr != (pItem = pShell->GetItem(SID_HTML_MODE))))
- bWeb = 0 != (static_cast<const SfxUInt16Item*>(pItem)->GetValue() & HTMLMODE_ON);
+ const SfxUInt16Item* pHtmlModeItem = rAttr.GetItemIfSet(SID_HTML_MODE, false);
+ if (!pHtmlModeItem)
+ {
+ if (SfxObjectShell* pShell = SfxObjectShell::Current())
+ pHtmlModeItem = pShell->GetItem(SID_HTML_MODE);
+ }
+ if (pHtmlModeItem)
+ bWeb = 0 != (pHtmlModeItem->GetValue() & HTMLMODE_ON);
// fill text flow listbox with valid entries
@@ -277,16 +276,16 @@ SvxPageDescPage::SvxPageDescPage(weld::Container* pPage, weld::DialogController*
// #i4219# take Maximum now from configuration (1/100th cm)
// was: 11900 -> 119 cm ;new value 3 meters -> 300 cm -> 30000
- m_xPaperWidthEdit->set_max(m_xPaperWidthEdit->normalize(SvtOptionsDrawinglayer::GetMaximumPaperWidth()), FieldUnit::CM);
- m_xPaperHeightEdit->set_max(m_xPaperHeightEdit->normalize(SvtOptionsDrawinglayer::GetMaximumPaperHeight()), FieldUnit::CM);
+ m_xPaperWidthEdit->set_max(m_xPaperWidthEdit->normalize(officecfg::Office::Common::Drawinglayer::MaximumPaperWidth::get()), FieldUnit::CM);
+ m_xPaperHeightEdit->set_max(m_xPaperHeightEdit->normalize(officecfg::Office::Common::Drawinglayer::MaximumPaperHeight::get()), FieldUnit::CM);
// #i4219# also for margins (1/100th cm). Was: 9999, keeping.
- m_xLeftMarginEdit->set_max(m_xLeftMarginEdit->normalize(SvtOptionsDrawinglayer::GetMaximumPaperLeftMargin()), FieldUnit::MM);
- m_xRightMarginEdit->set_max(m_xRightMarginEdit->normalize(SvtOptionsDrawinglayer::GetMaximumPaperRightMargin()), FieldUnit::MM);
- m_xTopMarginEdit->set_max(m_xTopMarginEdit->normalize(SvtOptionsDrawinglayer::GetMaximumPaperTopMargin()), FieldUnit::MM);
- m_xBottomMarginEdit->set_max(m_xBottomMarginEdit->normalize(SvtOptionsDrawinglayer::GetMaximumPaperBottomMargin()), FieldUnit::MM);
+ m_xLeftMarginEdit->set_max(m_xLeftMarginEdit->normalize(officecfg::Office::Common::Drawinglayer::MaximumPaperLeftMargin::get()), FieldUnit::MM);
+ m_xRightMarginEdit->set_max(m_xRightMarginEdit->normalize(officecfg::Office::Common::Drawinglayer::MaximumPaperRightMargin::get()), FieldUnit::MM);
+ m_xTopMarginEdit->set_max(m_xTopMarginEdit->normalize(officecfg::Office::Common::Drawinglayer::MaximumPaperTopMargin::get()), FieldUnit::MM);
+ m_xBottomMarginEdit->set_max(m_xBottomMarginEdit->normalize(officecfg::Office::Common::Drawinglayer::MaximumPaperBottomMargin::get()), FieldUnit::MM);
m_xGutterMarginEdit->set_max(
- m_xGutterMarginEdit->normalize(SvtOptionsDrawinglayer::GetMaximumPaperLeftMargin()),
+ m_xGutterMarginEdit->normalize(officecfg::Office::Common::Drawinglayer::MaximumPaperLeftMargin::get()),
FieldUnit::MM);
// Get the i18n framework numberings and add them to the listbox.
@@ -360,12 +359,11 @@ void SvxPageDescPage::Reset( const SfxItemSet* rSet )
static_cast<sal_uInt16>(ConvertLong_Impl( static_cast<tools::Long>(rULSpace.GetLower()), eUnit )) );
}
- if (rSet->HasItem(SID_ATTR_CHAR_GRABBAG, &pItem))
+ if (const SfxGrabBagItem* pGragbagItem = rSet->GetItemIfSet(SID_ATTR_CHAR_GRABBAG))
{
- const auto& rGrabBagItem = static_cast<const SfxGrabBagItem&>(*pItem);
bool bGutterAtTop{};
- auto it = rGrabBagItem.GetGrabBag().find("GutterAtTop");
- if (it != rGrabBagItem.GetGrabBag().end())
+ auto it = pGragbagItem->GetGrabBag().find(u"GutterAtTop"_ustr);
+ if (it != pGragbagItem->GetGrabBag().end())
{
it->second >>= bGutterAtTop;
}
@@ -379,17 +377,17 @@ void SvxPageDescPage::Reset( const SfxItemSet* rSet )
// Left.
m_xGutterPositionLB->set_active(0);
}
- it = rGrabBagItem.GetGrabBag().find("RtlGutter");
+ it = pGragbagItem->GetGrabBag().find(u"RtlGutter"_ustr);
bool bRtlGutter{};
- if (it != rGrabBagItem.GetGrabBag().end())
+ if (it != pGragbagItem->GetGrabBag().end())
{
it->second >>= bRtlGutter;
m_xRtlGutterCB->set_active(bRtlGutter);
m_xRtlGutterCB->show();
}
- it = rGrabBagItem.GetGrabBag().find("BackgroundFullSize");
+ it = pGragbagItem->GetGrabBag().find(u"BackgroundFullSize"_ustr);
bool isBackgroundFullSize{};
- if (it != rGrabBagItem.GetGrabBag().end())
+ if (it != pGragbagItem->GetGrabBag().end())
{
it->second >>= isBackgroundFullSize;
m_xBackgroundFullSizeCB->set_active(isBackgroundFullSize);
@@ -584,15 +582,14 @@ void SvxPageDescPage::Reset( const SfxItemSet* rSet )
if(SfxItemState::SET == rSet->GetItemState(SID_SWREGISTER_MODE))
{
- m_xRegisterCB->set_active(static_cast<const SfxBoolItem&>(rSet->Get(
- SID_SWREGISTER_MODE)).GetValue());
+ m_xRegisterCB->set_active(rSet->Get(SID_SWREGISTER_MODE).GetValue());
m_xRegisterCB->save_state();
RegisterModify(*m_xRegisterCB);
}
if(SfxItemState::SET == rSet->GetItemState(SID_SWREGISTER_COLLECTION))
{
m_xRegisterLB->set_active_text(
- static_cast<const SfxStringItem&>(rSet->Get(SID_SWREGISTER_COLLECTION)).GetValue());
+ rSet->Get(SID_SWREGISTER_COLLECTION).GetValue());
m_xRegisterLB->save_value();
}
@@ -613,7 +610,7 @@ void SvxPageDescPage::Reset( const SfxItemSet* rSet )
void SvxPageDescPage::FillUserData()
{
if (SVX_PAGE_MODE_PRESENTATION == eMode)
- SetUserData(m_xAdaptBox->get_active() ? OUString("1") : OUString("0")) ;
+ SetUserData(m_xAdaptBox->get_active() ? u"1"_ustr : u"0"_ustr) ;
}
@@ -666,24 +663,23 @@ bool SvxPageDescPage::FillItemSet( SfxItemSet* rSet )
if (rOldSet.HasItem(SID_ATTR_CHAR_GRABBAG))
{
// Set gutter position.
- SfxGrabBagItem aGrabBagItem(
- static_cast<const SfxGrabBagItem&>(rOldSet.Get(SID_ATTR_CHAR_GRABBAG)));
+ SfxGrabBagItem aGrabBagItem(rOldSet.Get(SID_ATTR_CHAR_GRABBAG));
if (m_xGutterPositionLB->get_value_changed_from_saved())
{
bool bGutterAtTop = m_xGutterPositionLB->get_active() == 1;
- aGrabBagItem.GetGrabBag()["GutterAtTop"] <<= bGutterAtTop;
+ aGrabBagItem.GetGrabBag()[u"GutterAtTop"_ustr] <<= bGutterAtTop;
bModified = true;
}
if (m_xRtlGutterCB->get_state_changed_from_saved())
{
bool const bRtlGutter(m_xRtlGutterCB->get_active());
- aGrabBagItem.GetGrabBag()["RtlGutter"] <<= bRtlGutter;
+ aGrabBagItem.GetGrabBag()[u"RtlGutter"_ustr] <<= bRtlGutter;
bModified = true;
}
if (m_xBackgroundFullSizeCB->get_state_changed_from_saved())
{
bool const isBackgroundFullSize(m_xBackgroundFullSizeCB->get_active());
- aGrabBagItem.GetGrabBag()["BackgroundFullSize"] <<= isBackgroundFullSize;
+ aGrabBagItem.GetGrabBag()[u"BackgroundFullSize"_ustr] <<= isBackgroundFullSize;
bModified = true;
}
@@ -726,14 +722,14 @@ bool SvxPageDescPage::FillItemSet( SfxItemSet* rSet )
}
// paper tray
- nWhich = GetWhich( SID_ATTR_PAGE_PAPERBIN );
+ TypedWhichId<SvxPaperBinItem> nPaperWhich = GetWhich( SID_ATTR_PAGE_PAPERBIN );
sal_Int32 nPos = m_xPaperTrayBox->get_active();
sal_uInt16 nBin = m_xPaperTrayBox->get_id(nPos).toInt32();
pOld = GetOldItem( *rSet, SID_ATTR_PAGE_PAPERBIN );
if ( !pOld || static_cast<const SvxPaperBinItem*>(pOld)->GetValue() != nBin )
{
- rSet->Put( SvxPaperBinItem( nWhich, static_cast<sal_uInt8>(nBin) ) );
+ rSet->Put( SvxPaperBinItem( nPaperWhich, static_cast<sal_uInt8>(nBin) ) );
bModified = true;
}
@@ -852,7 +848,7 @@ bool SvxPageDescPage::FillItemSet( SfxItemSet* rSet )
if (m_xRegisterCB->get_visible() &&
(m_xRegisterCB->get_active() || m_xRegisterCB->get_state_changed_from_saved()))
{
- const SfxBoolItem& rRegItem = static_cast<const SfxBoolItem&>(rOldSet.Get(SID_SWREGISTER_MODE));
+ const SfxBoolItem& rRegItem = rOldSet.Get(SID_SWREGISTER_MODE);
std::unique_ptr<SfxBoolItem> pRegItem(rRegItem.Clone());
bool bCheck = m_xRegisterCB->get_active();
pRegItem->SetValue(bCheck);
@@ -924,8 +920,8 @@ IMPL_LINK_NOARG(SvxPageDescPage, PaperBinHdl_Impl, weld::Widget&, void)
}
m_xPaperTrayBox->append(OUString::number(i), aName);
}
- m_xPaperTrayBox->set_active_text(aOldName);
m_xPaperTrayBox->thaw();
+ m_xPaperTrayBox->set_active_text(aOldName);
// tdf#123650 explicitly grab-focus after the modification otherwise gtk loses track
// of there the focus should be
@@ -1137,7 +1133,7 @@ void SvxPageDescPage::ResetBackground_Impl(const SfxItemSet& rSet)
{
const SvxSetItem& rSetItem = static_cast< const SvxSetItem& >(rSet.Get(nWhich, false));
const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
- const SfxBoolItem& rOn = static_cast< const SfxBoolItem& >(rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON)));
+ const SfxBoolItem& rOn = rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON));
if(rOn.GetValue())
{
@@ -1173,7 +1169,7 @@ void SvxPageDescPage::ResetBackground_Impl(const SfxItemSet& rSet)
{
const SvxSetItem& rSetItem = static_cast< const SvxSetItem& >(rSet.Get(nWhich,false));
const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
- const SfxBoolItem& rOn = static_cast< const SfxBoolItem& >(rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON)));
+ const SfxBoolItem& rOn = rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON));
if(rOn.GetValue())
{
@@ -1246,19 +1242,19 @@ void SvxPageDescPage::InitHeadFoot_Impl( const SfxItemSet& rSet )
{
const SfxItemSet& rHeaderSet = pSetItem->GetItemSet();
const SfxBoolItem& rHeaderOn =
- static_cast<const SfxBoolItem&>(rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_ON ) ));
+ rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
if ( rHeaderOn.GetValue() )
{
- const SvxSizeItem& rSize = static_cast<const SvxSizeItem&>(
- rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) ));
- const SvxULSpaceItem& rUL = static_cast<const SvxULSpaceItem&>(
- rHeaderSet.Get( GetWhich( SID_ATTR_ULSPACE ) ));
+ const SvxSizeItem& rSize =
+ rHeaderSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) );
+ const SvxULSpaceItem& rUL =
+ rHeaderSet.Get( GetWhich( SID_ATTR_ULSPACE ) );
tools::Long nDist = rUL.GetLower();
m_aBspWin.SetHdHeight( rSize.GetSize().Height() - nDist );
m_aBspWin.SetHdDist( nDist );
- const SvxLRSpaceItem& rLR = static_cast<const SvxLRSpaceItem&>(
- rHeaderSet.Get( GetWhich( SID_ATTR_LRSPACE ) ));
+ const SvxLRSpaceItem& rLR =
+ rHeaderSet.Get( GetWhich( SID_ATTR_LRSPACE ) );
m_aBspWin.SetHdLeft( rLR.GetLeft() );
m_aBspWin.SetHdRight( rLR.GetRight() );
m_aBspWin.SetHeader( true );
@@ -1301,19 +1297,19 @@ void SvxPageDescPage::InitHeadFoot_Impl( const SfxItemSet& rSet )
const SfxItemSet& rFooterSet = pSetItem->GetItemSet();
const SfxBoolItem& rFooterOn =
- static_cast<const SfxBoolItem&>(rFooterSet.Get( GetWhich( SID_ATTR_PAGE_ON ) ));
+ rFooterSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
if ( rFooterOn.GetValue() )
{
- const SvxSizeItem& rSize = static_cast<const SvxSizeItem&>(
- rFooterSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) ));
- const SvxULSpaceItem& rUL = static_cast<const SvxULSpaceItem&>(
- rFooterSet.Get( GetWhich( SID_ATTR_ULSPACE ) ));
+ const SvxSizeItem& rSize =
+ rFooterSet.Get( GetWhich( SID_ATTR_PAGE_SIZE ) );
+ const SvxULSpaceItem& rUL =
+ rFooterSet.Get( GetWhich( SID_ATTR_ULSPACE ) );
tools::Long nDist = rUL.GetUpper();
m_aBspWin.SetFtHeight( rSize.GetSize().Height() - nDist );
m_aBspWin.SetFtDist( nDist );
- const SvxLRSpaceItem& rLR = static_cast<const SvxLRSpaceItem&>(
- rFooterSet.Get( GetWhich( SID_ATTR_LRSPACE ) ));
+ const SvxLRSpaceItem& rLR =
+ rFooterSet.Get( GetWhich( SID_ATTR_LRSPACE ) );
m_aBspWin.SetFtLeft( rLR.GetLeft() );
m_aBspWin.SetFtRight( rLR.GetRight() );
m_aBspWin.SetFooter( true );
@@ -1438,8 +1434,8 @@ void SvxPageDescPage::RangeHdl_Impl()
SfxItemState::DEFAULT )
{
aBorder = GetMinBorderSpace_Impl(
- static_cast<const SvxShadowItem&>(_pSet->Get(GetWhich(SID_ATTR_BORDER_SHADOW))),
- static_cast<const SvxBoxItem&>(_pSet->Get(GetWhich(SID_ATTR_BORDER_OUTER))));
+ _pSet->Get(GetWhich(SID_ATTR_BORDER_SHADOW)),
+ _pSet->Get(GetWhich(SID_ATTR_BORDER_OUTER)));
}
// limits paper
diff --git a/cui/source/tabpages/paragrph.cxx b/cui/source/tabpages/paragrph.cxx
index a7075bd862e7..56b697a046a6 100644
--- a/cui/source/tabpages/paragrph.cxx
+++ b/cui/source/tabpages/paragrph.cxx
@@ -25,8 +25,8 @@
#include <vcl/settings.hxx>
#include <svx/flagsdef.hxx>
#include <svx/svxids.hrc>
+#include <svx/sdtaitm.hxx>
-#include <svl/languageoptions.hxx>
#include <svl/cjkoptions.hxx>
#include <editeng/pgrditem.hxx>
#include <svx/strings.hrc>
@@ -45,29 +45,47 @@
#include <editeng/lrspitem.hxx>
#include <editeng/formatbreakitem.hxx>
#include <editeng/keepitem.hxx>
+#include <editeng/scriptspaceitem.hxx>
+#include <editeng/hngpnctitem.hxx>
+#include <editeng/forbiddenruleitem.hxx>
+#include <i18nlangtag/languagetag.hxx>
+#include <i18nlangtag/mslangid.hxx>
#include <svx/dlgutil.hxx>
#include <sfx2/htmlmode.hxx>
#include <editeng/paravertalignitem.hxx>
#include <svl/eitem.hxx>
#include <svl/intitem.hxx>
+#include <unotools/syslocaleoptions.hxx>
+#include <com/sun/star/text/ParagraphHyphenationKeepType.hpp>
const WhichRangesContainer SvxStdParagraphTabPage::pStdRanges(
svl::Items<
SID_ATTR_PARA_LINESPACE, SID_ATTR_PARA_LINESPACE, // 10033
+ SID_ATTR_PARA_LEFTSPACE, SID_ATTR_PARA_FIRSTLINESPACE,
SID_ATTR_LRSPACE, SID_ATTR_ULSPACE, // 10048 - 10049
SID_ATTR_PARA_REGISTER, SID_ATTR_PARA_REGISTER // 10413
>);
const WhichRangesContainer SvxParaAlignTabPage::pAlignRanges(
- svl::Items<SID_ATTR_PARA_ADJUST, SID_ATTR_PARA_ADJUST>); // 10027
+ svl::Items<
+ SID_ATTR_PARA_ADJUST, SID_ATTR_PARA_ADJUST, // 10027
+ // tdf#154543 - reset snap to grid to parent
+ SID_ATTR_PARA_SNAPTOGRID, SID_ATTR_PARA_SNAPTOGRID // 10945
+ >);
+
+const WhichRangesContainer SvxParaAlignTabPage::pSdrAlignRanges(
+ svl::Items<
+ SDRATTR_TEXT_VERTADJUST, SDRATTR_TEXT_VERTADJUST, // 1076
+ SID_ATTR_PARA_ADJUST, SID_ATTR_PARA_ADJUST , // 10027
+ SID_ATTR_FRAMEDIRECTION, SID_ATTR_FRAMEDIRECTION // 10944
+ >);
const WhichRangesContainer SvxExtParagraphTabPage::pExtRanges(svl::Items<
SID_ATTR_PARA_PAGEBREAK, SID_ATTR_PARA_WIDOWS, // 10037 - 10041
SID_ATTR_PARA_MODEL, SID_ATTR_PARA_KEEP // 10065 - 10066
>);
-#define MAX_DURCH 5670 // 10 cm makes sense as maximum interline lead
- // according to BP
+#define MAX_DURCH 31680 // tdf#68335: 1584 pt for UX interoperability with Word
#define FIX_DIST_DEF 283 // standard fix distance 0,5 cm
namespace {
@@ -139,13 +157,15 @@ void SetLineSpace_Impl( SvxLineSpacingItem& rLineSpace,
static sal_uInt16 GetHtmlMode_Impl(const SfxItemSet& rSet)
{
sal_uInt16 nHtmlMode = 0;
- const SfxPoolItem* pItem = nullptr;
- SfxObjectShell* pShell;
- if(SfxItemState::SET == rSet.GetItemState(SID_HTML_MODE, false, &pItem) ||
- ( nullptr != (pShell = SfxObjectShell::Current()) &&
- nullptr != (pItem = pShell->GetItem(SID_HTML_MODE))))
+ const SfxUInt16Item* pItem = rSet.GetItemIfSet(SID_HTML_MODE, false);
+ if (!pItem)
+ {
+ if (SfxObjectShell* pShell = SfxObjectShell::Current())
+ pItem = pShell->GetItem(SID_HTML_MODE);
+ }
+ if(pItem)
{
- nHtmlMode = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
+ nHtmlMode = pItem->GetValue();
}
return nHtmlMode;
@@ -154,38 +174,38 @@ static sal_uInt16 GetHtmlMode_Impl(const SfxItemSet& rSet)
void SvxStdParagraphTabPage::ELRLoseFocus()
{
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ assert(pPool && "Where is the pool?");
FieldUnit eUnit =
MapToFieldUnit( pPool->GetMetric( GetWhich( SID_ATTR_LRSPACE ) ) );
- sal_Int64 nL = m_xLeftIndent->denormalize(m_xLeftIndent->get_value(eUnit));
- sal_Int64 nR = m_xRightIndent->denormalize(m_xRightIndent->get_value(eUnit));
- OUString aTmp = m_xFLineIndent->get_text();
+ sal_Int64 nL = m_aLeftIndent.denormalize(m_aLeftIndent.get_value(eUnit));
+ sal_Int64 nR = m_aRightIndent.denormalize(m_aRightIndent.get_value(eUnit));
+ OUString aTmp = m_aFLineIndent.get_text();
- if (m_xLeftIndent->get_min(FieldUnit::NONE) < 0)
- m_xFLineIndent->set_min(-99999, FieldUnit::MM);
+ if (m_aLeftIndent.get_min(FieldUnit::NONE) < 0)
+ m_aFLineIndent.set_min(-99999, FieldUnit::MM);
else
- m_xFLineIndent->set_min(m_xFLineIndent->normalize(-nL), eUnit);
+ m_aFLineIndent.set_min(m_aFLineIndent.normalize(-nL), eUnit);
// Check only for concrete width (Shell)
sal_Int64 nTmp = nWidth - nL - nR - MM50;
- m_xFLineIndent->set_max(m_xFLineIndent->normalize(nTmp), eUnit);
+ m_aFLineIndent.set_max(m_aFLineIndent.normalize(nTmp), eUnit);
if (aTmp.isEmpty())
- m_xFLineIndent->set_text(OUString());
+ m_aFLineIndent.set_text(OUString());
// maximum left right
- aTmp = m_xLeftIndent->get_text();
+ aTmp = m_aLeftIndent.get_text();
nTmp = nWidth - nR - MM50;
- m_xLeftIndent->set_max(m_xLeftIndent->normalize(nTmp), eUnit);
+ m_aLeftIndent.set_max(m_aLeftIndent.normalize(nTmp), eUnit);
if ( aTmp.isEmpty() )
- m_xLeftIndent->set_text(OUString());
- aTmp = m_xRightIndent->get_text();
+ m_aLeftIndent.set_text(OUString());
+ aTmp = m_aRightIndent.get_text();
nTmp = nWidth - nL - MM50;
- m_xRightIndent->set_max(m_xRightIndent->normalize(nTmp), eUnit);
+ m_aRightIndent.set_max(m_aRightIndent.normalize(nTmp), eUnit);
if ( aTmp.isEmpty() )
- m_xRightIndent->set_text(OUString());
+ m_aRightIndent.set_text(OUString());
UpdateExample_Impl();
}
@@ -251,14 +271,14 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
if ( m_bLineDistToggled ||
!pOld || !( *static_cast<const SvxLineSpacingItem*>(pOld) == aSpacing ) ||
- SfxItemState::DONTCARE == GetItemSet().GetItemState( nWhich ) )
+ SfxItemState::INVALID == GetItemSet().GetItemState( nWhich ) )
{
rOutSet->Put( aSpacing );
bModified = true;
}
}
- if ( m_xTopDist->get_value_changed_from_saved() || m_xBottomDist->get_value_changed_from_saved()
+ if ( m_aTopDist.get_value_changed_from_saved() || m_aBottomDist.get_value_changed_from_saved()
|| m_xContextualCB->get_state_changed_from_saved())
{
nWhich = GetWhich( SID_ATTR_ULSPACE );
@@ -273,28 +293,28 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
const SvxULSpaceItem& rOldItem =
static_cast<const SvxULSpaceItem&>(GetItemSet().GetParent()->Get( nWhich ));
- if ( m_xTopDist->IsRelative() )
+ if ( m_aTopDist.IsRelative() )
aMargin.SetUpper( rOldItem.GetUpper(),
- static_cast<sal_uInt16>(m_xTopDist->get_value(FieldUnit::NONE)) );
+ static_cast<sal_uInt16>(m_aTopDist.get_value(FieldUnit::NONE)) );
else
- aMargin.SetUpper( static_cast<sal_uInt16>(m_xTopDist->GetCoreValue(eUnit)) );
+ aMargin.SetUpper( static_cast<sal_uInt16>(m_aTopDist.GetCoreValue(eUnit)) );
- if ( m_xBottomDist->IsRelative() )
+ if ( m_aBottomDist.IsRelative() )
aMargin.SetLower( rOldItem.GetLower(),
- static_cast<sal_uInt16>(m_xBottomDist->get_value(FieldUnit::NONE)) );
+ static_cast<sal_uInt16>(m_aBottomDist.get_value(FieldUnit::NONE)) );
else
- aMargin.SetLower( static_cast<sal_uInt16>(m_xBottomDist->GetCoreValue(eUnit)) );
+ aMargin.SetLower( static_cast<sal_uInt16>(m_aBottomDist.GetCoreValue(eUnit)) );
}
else
{
- aMargin.SetUpper(static_cast<sal_uInt16>(m_xTopDist->GetCoreValue(eUnit)));
- aMargin.SetLower(static_cast<sal_uInt16>(m_xBottomDist->GetCoreValue(eUnit)));
+ aMargin.SetUpper(static_cast<sal_uInt16>(m_aTopDist.GetCoreValue(eUnit)));
+ aMargin.SetLower(static_cast<sal_uInt16>(m_aBottomDist.GetCoreValue(eUnit)));
}
aMargin.SetContextValue(m_xContextualCB->get_active());
if ( !pOld || *static_cast<const SvxULSpaceItem*>(pOld) != aMargin ||
- SfxItemState::DONTCARE == GetItemSet().GetItemState( nWhich ) )
+ SfxItemState::INVALID == GetItemSet().GetItemState( nWhich ) )
{
rOutSet->Put( aMargin );
bModified = true;
@@ -302,10 +322,126 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
}
bool bNullTab = false;
- if ( m_xLeftIndent->get_value_changed_from_saved() ||
- m_xFLineIndent->get_value_changed_from_saved() ||
- m_xRightIndent->get_value_changed_from_saved() ||
- m_xAutoCB->get_state_changed_from_saved() )
+ if (m_bSplitLRSpace && m_aLeftIndent.get_value_changed_from_saved())
+ {
+ nWhich = GetWhich(SID_ATTR_PARA_LEFTSPACE);
+ MapUnit const eUnit = pPool->GetMetric(nWhich);
+ SvxTextLeftMarginItem item(nWhich);
+ pOld = GetOldItem(*rOutSet, SID_ATTR_PARA_LEFTSPACE);
+
+ if (bRelativeMode)
+ {
+ assert(GetItemSet().GetParent());
+
+ const SvxTextLeftMarginItem & rOldItem(
+ static_cast<const SvxTextLeftMarginItem&>(GetItemSet().GetParent()->Get(nWhich)));
+
+ if (m_aLeftIndent.IsRelative())
+ {
+ item.SetTextLeft(rOldItem.GetTextLeft(),
+ static_cast<sal_uInt16>(m_aLeftIndent.get_value(FieldUnit::NONE)));
+ }
+ else
+ {
+ item.SetTextLeft(m_aLeftIndent.GetCoreValue(eUnit));
+ }
+ }
+ else
+ {
+ item.SetTextLeft(m_aLeftIndent.GetCoreValue(eUnit));
+ }
+ if (!pOld || *static_cast<const SvxTextLeftMarginItem*>(pOld) != item
+ || SfxItemState::INVALID == GetItemSet().GetItemState(nWhich))
+ {
+ rOutSet->Put(item);
+ bModified = true;
+ }
+ }
+
+ if (m_bSplitLRSpace && m_aRightIndent.get_value_changed_from_saved())
+ {
+ nWhich = GetWhich(SID_ATTR_PARA_RIGHTSPACE);
+ MapUnit const eUnit = pPool->GetMetric(nWhich);
+ SvxRightMarginItem item(nWhich);
+ pOld = GetOldItem(*rOutSet, SID_ATTR_PARA_RIGHTSPACE);
+
+ if (bRelativeMode)
+ {
+ assert(GetItemSet().GetParent());
+
+ const SvxRightMarginItem & rOldItem(
+ static_cast<const SvxRightMarginItem&>(GetItemSet().GetParent()->Get(nWhich)));
+
+ if (m_aRightIndent.IsRelative())
+ {
+ item.SetRight(rOldItem.GetRight(),
+ static_cast<sal_uInt16>(m_aRightIndent.get_value(FieldUnit::NONE)));
+ }
+ else
+ {
+ item.SetRight(m_aRightIndent.GetCoreValue(eUnit));
+ }
+ }
+ else
+ {
+ item.SetRight(m_aRightIndent.GetCoreValue(eUnit));
+ }
+ if (!pOld || *static_cast<const SvxRightMarginItem*>(pOld) != item
+ || SfxItemState::INVALID == GetItemSet().GetItemState(nWhich))
+ {
+ rOutSet->Put(item);
+ bModified = true;
+ }
+ }
+
+ if (m_bSplitLRSpace && (m_aFLineIndent.get_value_changed_from_saved()
+ || m_xAutoCB->get_state_changed_from_saved()))
+ {
+ nWhich = GetWhich(SID_ATTR_PARA_FIRSTLINESPACE);
+ MapUnit const eUnit = pPool->GetMetric(nWhich);
+ SvxFirstLineIndentItem item(nWhich);
+ pOld = GetOldItem(*rOutSet, SID_ATTR_PARA_FIRSTLINESPACE);
+
+ if (bRelativeMode)
+ {
+ assert(GetItemSet().GetParent());
+
+ const SvxFirstLineIndentItem & rOldItem(
+ static_cast<const SvxFirstLineIndentItem&>(GetItemSet().GetParent()->Get(nWhich)));
+
+ if (m_aFLineIndent.IsRelative())
+ {
+ item.SetTextFirstLineOffset(rOldItem.GetTextFirstLineOffset(),
+ static_cast<sal_uInt16>(m_aFLineIndent.get_value(FieldUnit::NONE)));
+ }
+ else
+ {
+ item.SetTextFirstLineOffset(static_cast<sal_uInt16>(m_aFLineIndent.GetCoreValue(eUnit)));
+ }
+ }
+ else
+ {
+ item.SetTextFirstLineOffset(static_cast<sal_uInt16>(m_aFLineIndent.GetCoreValue(eUnit)));
+ }
+ item.SetAutoFirst(m_xAutoCB->get_active());
+ if (item.GetTextFirstLineOffset() < 0)
+ {
+ bNullTab = true;
+ }
+
+ if (!pOld || *static_cast<const SvxFirstLineIndentItem*>(pOld) != item
+ || SfxItemState::INVALID == GetItemSet().GetItemState(nWhich))
+ {
+ rOutSet->Put(item);
+ bModified = true;
+ }
+ }
+
+ if (!m_bSplitLRSpace &&
+ (m_aLeftIndent.get_value_changed_from_saved() ||
+ m_aFLineIndent.get_value_changed_from_saved() ||
+ m_aRightIndent.get_value_changed_from_saved() ||
+ m_xAutoCB->get_state_changed_from_saved()))
{
nWhich = GetWhich( SID_ATTR_LRSPACE );
MapUnit eUnit = pPool->GetMetric( nWhich );
@@ -319,36 +455,36 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
const SvxLRSpaceItem& rOldItem =
static_cast<const SvxLRSpaceItem&>(GetItemSet().GetParent()->Get( nWhich ));
- if (m_xLeftIndent->IsRelative())
+ if (m_aLeftIndent.IsRelative())
aMargin.SetTextLeft( rOldItem.GetTextLeft(),
- static_cast<sal_uInt16>(m_xLeftIndent->get_value(FieldUnit::NONE)) );
+ static_cast<sal_uInt16>(m_aLeftIndent.get_value(FieldUnit::NONE)) );
else
- aMargin.SetTextLeft(m_xLeftIndent->GetCoreValue(eUnit));
+ aMargin.SetTextLeft(m_aLeftIndent.GetCoreValue(eUnit));
- if ( m_xRightIndent->IsRelative() )
+ if ( m_aRightIndent.IsRelative() )
aMargin.SetRight( rOldItem.GetRight(),
- static_cast<sal_uInt16>(m_xRightIndent->get_value(FieldUnit::NONE)) );
+ static_cast<sal_uInt16>(m_aRightIndent.get_value(FieldUnit::NONE)) );
else
- aMargin.SetRight(m_xRightIndent->GetCoreValue(eUnit));
+ aMargin.SetRight(m_aRightIndent.GetCoreValue(eUnit));
- if ( m_xFLineIndent->IsRelative() )
+ if ( m_aFLineIndent.IsRelative() )
aMargin.SetTextFirstLineOffset( rOldItem.GetTextFirstLineOffset(),
- static_cast<sal_uInt16>(m_xFLineIndent->get_value(FieldUnit::NONE)) );
+ static_cast<sal_uInt16>(m_aFLineIndent.get_value(FieldUnit::NONE)) );
else
- aMargin.SetTextFirstLineOffset(static_cast<sal_uInt16>(m_xFLineIndent->GetCoreValue(eUnit)));
+ aMargin.SetTextFirstLineOffset(static_cast<sal_uInt16>(m_aFLineIndent.GetCoreValue(eUnit)));
}
else
{
- aMargin.SetTextLeft(m_xLeftIndent->GetCoreValue(eUnit));
- aMargin.SetRight(m_xRightIndent->GetCoreValue(eUnit));
- aMargin.SetTextFirstLineOffset(static_cast<sal_uInt16>(m_xFLineIndent->GetCoreValue(eUnit)));
+ aMargin.SetTextLeft(m_aLeftIndent.GetCoreValue(eUnit));
+ aMargin.SetRight(m_aRightIndent.GetCoreValue(eUnit));
+ aMargin.SetTextFirstLineOffset(static_cast<sal_uInt16>(m_aFLineIndent.GetCoreValue(eUnit)));
}
aMargin.SetAutoFirst(m_xAutoCB->get_active());
if ( aMargin.GetTextFirstLineOffset() < 0 )
bNullTab = true;
if ( !pOld || *static_cast<const SvxLRSpaceItem*>(pOld) != aMargin ||
- SfxItemState::DONTCARE == GetItemSet().GetItemState( nWhich ) )
+ SfxItemState::INVALID == GetItemSet().GetItemState( nWhich ) )
{
rOutSet->Put( aMargin );
bModified = true;
@@ -382,14 +518,14 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
*rOutSet, SID_ATTR_PARA_REGISTER));
if (!pBoolItem)
return bModified;
- std::unique_ptr<SfxBoolItem> pRegItem(pBoolItem->Clone());
sal_uInt16 _nWhich = GetWhich( SID_ATTR_PARA_REGISTER );
- bool bSet = pRegItem->GetValue();
+ bool bSet = pBoolItem->GetValue();
if (m_xRegisterCB->get_active() != bSet)
{
+ std::unique_ptr<SfxBoolItem> pRegItem(pBoolItem->Clone());
pRegItem->SetValue(!bSet);
- rOutSet->Put(*pRegItem);
+ rOutSet->Put(std::move(pRegItem));
bModified = true;
}
else if ( SfxItemState::DEFAULT == GetItemSet().GetItemState( _nWhich, false ) )
@@ -399,6 +535,19 @@ bool SvxStdParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
return bModified;
}
+static bool UseCharUnitInUI(const SfxItemSet& rSet)
+{
+ const bool bApplyCharUnit = GetApplyCharUnit(rSet);
+ if (!bApplyCharUnit)
+ return false;
+ if (!SvtCJKOptions::IsAsianTypographyEnabled())
+ return false;
+ // tdf#101895 Given that we choose to show cm vs inch based on this Locale
+ // setting, also choose to use ch[ar] and line based on that locale when
+ // bApplyCharUnit is enabled.
+ return MsLangId::isCJK(SvtSysLocaleOptions().GetRealLanguageTag().getLanguageType());
+}
+
void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet )
{
SfxItemPool* pPool = rSet->GetPool();
@@ -406,32 +555,134 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet )
// adjust metric
FieldUnit eFUnit = GetModuleFieldUnit( *rSet );
-
- bool bApplyCharUnit = GetApplyCharUnit( *rSet );
-
- if(SvtCJKOptions::IsAsianTypographyEnabled() && bApplyCharUnit )
+ if (UseCharUnitInUI(*rSet))
eFUnit = FieldUnit::CHAR;
- m_xLeftIndent->SetFieldUnit(eFUnit);
- m_xRightIndent->SetFieldUnit(eFUnit);
- m_xFLineIndent->SetFieldUnit(eFUnit);
+ m_aLeftIndent.SetFieldUnit(eFUnit);
+ m_aRightIndent.SetFieldUnit(eFUnit);
+ m_aFLineIndent.SetFieldUnit(eFUnit);
if ( eFUnit == FieldUnit::CHAR )
{
- m_xTopDist->SetFieldUnit(FieldUnit::LINE);
- m_xBottomDist->SetFieldUnit(FieldUnit::LINE);
+ m_aTopDist.SetFieldUnit(FieldUnit::LINE);
+ m_aBottomDist.SetFieldUnit(FieldUnit::LINE);
SetFieldUnit(*m_xLineDistAtMetricBox, FieldUnit::POINT);
}
else
{
- m_xTopDist->SetFieldUnit(eFUnit);
- m_xBottomDist->SetFieldUnit(eFUnit);
+ m_aTopDist.SetFieldUnit(eFUnit);
+ m_aBottomDist.SetFieldUnit(eFUnit);
SetFieldUnit(*m_xLineDistAtMetricBox, eFUnit);
}
+ sal_uInt16 const nWhichFL(GetWhich(SID_ATTR_PARA_FIRSTLINESPACE));
+ m_bSplitLRSpace = (nWhichFL != SID_ATTR_PARA_FIRSTLINESPACE);
+ SfxItemState const eItemStateFL(rSet->GetItemState(nWhichFL));
+ sal_uInt16 const nWhichLM(GetWhich(SID_ATTR_PARA_LEFTSPACE));
+ SfxItemState const eItemStateLM(rSet->GetItemState(nWhichLM));
+ sal_uInt16 const nWhichRM(GetWhich(SID_ATTR_PARA_RIGHTSPACE));
+ SfxItemState const eItemStateRM(rSet->GetItemState(nWhichRM));
+
+ if (m_bSplitLRSpace && SfxItemState::DEFAULT <= eItemStateLM)
+ {
+ const SvxTextLeftMarginItem & rOldLeftMargin(
+ static_cast<const SvxTextLeftMarginItem &>(rSet->Get(nWhichLM)));
+
+ MapUnit const eUnit = pPool->GetMetric(nWhichLM);
+
+ if (bRelativeMode)
+ {
+ if (rOldLeftMargin.GetPropLeft() != 100)
+ {
+ m_aLeftIndent.SetRelative( true );
+ m_aLeftIndent.set_value(rOldLeftMargin.GetPropLeft(), FieldUnit::NONE);
+ }
+ else
+ {
+ m_aLeftIndent.SetRelative(false);
+ m_aLeftIndent.SetFieldUnit(eFUnit);
+ m_aLeftIndent.SetMetricValue(rOldLeftMargin.GetTextLeft(), eUnit);
+ }
+ }
+ else
+ {
+ m_aLeftIndent.SetMetricValue(rOldLeftMargin.GetTextLeft(), eUnit);
+ }
+ }
+ else if (m_bSplitLRSpace)
+ {
+ m_aLeftIndent.set_text(OUString());
+ }
+
+ if (m_bSplitLRSpace && SfxItemState::DEFAULT <= eItemStateRM)
+ {
+ const SvxRightMarginItem & rOldRightMargin(
+ static_cast<const SvxRightMarginItem &>(rSet->Get(nWhichRM)));
+
+ MapUnit const eUnit = pPool->GetMetric(nWhichRM);
+
+ if (bRelativeMode)
+ {
+ if (rOldRightMargin.GetPropRight() != 100)
+ {
+ m_aRightIndent.SetRelative( true );
+ m_aRightIndent.set_value(rOldRightMargin.GetPropRight(), FieldUnit::NONE);
+ }
+ else
+ {
+ m_aRightIndent.SetRelative(false);
+ m_aRightIndent.SetFieldUnit(eFUnit);
+ m_aRightIndent.SetMetricValue(rOldRightMargin.GetRight(), eUnit);
+ }
+ }
+ else
+ {
+ m_aRightIndent.SetMetricValue(rOldRightMargin.GetRight(), eUnit);
+ }
+ }
+ else if (m_bSplitLRSpace)
+ {
+ m_aRightIndent.set_text(OUString());
+ }
+
+ if (m_bSplitLRSpace && SfxItemState::DEFAULT <= eItemStateFL)
+ {
+ const SvxFirstLineIndentItem & rOldFirstLine(
+ static_cast<const SvxFirstLineIndentItem &>(rSet->Get(nWhichFL)));
+
+ MapUnit const eUnit = pPool->GetMetric(nWhichFL);
+
+ if (bRelativeMode)
+ {
+ if (rOldFirstLine.GetPropTextFirstLineOffset() != 100)
+ {
+ m_aFLineIndent.SetRelative(true);
+ m_aFLineIndent.set_value(rOldFirstLine.GetPropTextFirstLineOffset(), FieldUnit::NONE);
+ }
+ else
+ {
+ m_aFLineIndent.SetRelative(false);
+ m_aFLineIndent.set_min(-9999, FieldUnit::NONE);
+ m_aFLineIndent.SetFieldUnit(eFUnit);
+ m_aFLineIndent.SetMetricValue(rOldFirstLine.GetTextFirstLineOffset(), eUnit);
+ }
+ m_xAutoCB->set_active(rOldFirstLine.IsAutoFirst());
+ }
+ else
+ {
+ m_aFLineIndent.SetMetricValue(rOldFirstLine.GetTextFirstLineOffset(), eUnit);
+ m_xAutoCB->set_active(rOldFirstLine.IsAutoFirst());
+ }
+ AutoHdl_Impl(*m_xAutoCB);
+ }
+ else if (m_bSplitLRSpace)
+ {
+ m_aFLineIndent.set_text(OUString());
+ }
+
sal_uInt16 _nWhich = GetWhich( SID_ATTR_LRSPACE );
SfxItemState eItemState = rSet->GetItemState( _nWhich );
- if ( eItemState >= SfxItemState::DEFAULT )
+ if (!m_bSplitLRSpace && SfxItemState::DEFAULT <= eItemState)
{
MapUnit eUnit = pPool->GetMetric( _nWhich );
@@ -442,39 +693,39 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet )
if ( rOldItem.GetPropLeft() != 100 )
{
- m_xLeftIndent->SetRelative( true );
- m_xLeftIndent->set_value(rOldItem.GetPropLeft(), FieldUnit::NONE);
+ m_aLeftIndent.SetRelative( true );
+ m_aLeftIndent.set_value(rOldItem.GetPropLeft(), FieldUnit::NONE);
}
else
{
- m_xLeftIndent->SetRelative(false);
- m_xLeftIndent->SetFieldUnit(eFUnit);
- m_xLeftIndent->SetMetricValue(rOldItem.GetTextLeft(), eUnit);
+ m_aLeftIndent.SetRelative(false);
+ m_aLeftIndent.SetFieldUnit(eFUnit);
+ m_aLeftIndent.SetMetricValue(rOldItem.GetTextLeft(), eUnit);
}
if ( rOldItem.GetPropRight() != 100 )
{
- m_xRightIndent->SetRelative( true );
- m_xRightIndent->set_value(rOldItem.GetPropRight(), FieldUnit::NONE);
+ m_aRightIndent.SetRelative( true );
+ m_aRightIndent.set_value(rOldItem.GetPropRight(), FieldUnit::NONE);
}
else
{
- m_xRightIndent->SetRelative(false);
- m_xRightIndent->SetFieldUnit(eFUnit);
- m_xRightIndent->SetMetricValue(rOldItem.GetRight(), eUnit);
+ m_aRightIndent.SetRelative(false);
+ m_aRightIndent.SetFieldUnit(eFUnit);
+ m_aRightIndent.SetMetricValue(rOldItem.GetRight(), eUnit);
}
if ( rOldItem.GetPropTextFirstLineOffset() != 100 )
{
- m_xFLineIndent->SetRelative(true);
- m_xFLineIndent->set_value(rOldItem.GetPropTextFirstLineOffset(), FieldUnit::NONE);
+ m_aFLineIndent.SetRelative(true);
+ m_aFLineIndent.set_value(rOldItem.GetPropTextFirstLineOffset(), FieldUnit::NONE);
}
else
{
- m_xFLineIndent->SetRelative(false);
- m_xFLineIndent->set_min(-9999, FieldUnit::NONE);
- m_xFLineIndent->SetFieldUnit(eFUnit);
- m_xFLineIndent->SetMetricValue(rOldItem.GetTextFirstLineOffset(), eUnit);
+ m_aFLineIndent.SetRelative(false);
+ m_aFLineIndent.set_min(-9999, FieldUnit::NONE);
+ m_aFLineIndent.SetFieldUnit(eFUnit);
+ m_aFLineIndent.SetMetricValue(rOldItem.GetTextFirstLineOffset(), eUnit);
}
m_xAutoCB->set_active(rOldItem.IsAutoFirst());
}
@@ -483,18 +734,18 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet )
const SvxLRSpaceItem& rSpace =
static_cast<const SvxLRSpaceItem&>(rSet->Get( _nWhich ));
- m_xLeftIndent->SetMetricValue(rSpace.GetTextLeft(), eUnit);
- m_xRightIndent->SetMetricValue(rSpace.GetRight(), eUnit);
- m_xFLineIndent->SetMetricValue(rSpace.GetTextFirstLineOffset(), eUnit);
+ m_aLeftIndent.SetMetricValue(rSpace.GetTextLeft(), eUnit);
+ m_aRightIndent.SetMetricValue(rSpace.GetRight(), eUnit);
+ m_aFLineIndent.SetMetricValue(rSpace.GetTextFirstLineOffset(), eUnit);
m_xAutoCB->set_active(rSpace.IsAutoFirst());
}
AutoHdl_Impl(*m_xAutoCB);
}
- else
+ else if (!m_bSplitLRSpace)
{
- m_xLeftIndent->set_text(OUString());
- m_xRightIndent->set_text(OUString());
- m_xFLineIndent->set_text(OUString());
+ m_aLeftIndent.set_text(OUString());
+ m_aRightIndent.set_text(OUString());
+ m_aFLineIndent.set_text(OUString());
}
_nWhich = GetWhich( SID_ATTR_ULSPACE );
@@ -511,45 +762,45 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet )
if ( rOldItem.GetPropUpper() != 100 )
{
- m_xTopDist->SetRelative( true );
- m_xTopDist->set_value(rOldItem.GetPropUpper(), FieldUnit::NONE);
+ m_aTopDist.SetRelative( true );
+ m_aTopDist.set_value(rOldItem.GetPropUpper(), FieldUnit::NONE);
}
else
{
- m_xTopDist->SetRelative(false);
+ m_aTopDist.SetRelative(false);
if (eFUnit == FieldUnit::CHAR)
- m_xTopDist->SetFieldUnit(FieldUnit::LINE);
+ m_aTopDist.SetFieldUnit(FieldUnit::LINE);
else
- m_xTopDist->SetFieldUnit(eFUnit);
- m_xTopDist->SetMetricValue(rOldItem.GetUpper(), eUnit);
+ m_aTopDist.SetFieldUnit(eFUnit);
+ m_aTopDist.SetMetricValue(rOldItem.GetUpper(), eUnit);
}
if ( rOldItem.GetPropLower() != 100 )
{
- m_xBottomDist->SetRelative( true );
- m_xBottomDist->set_value(rOldItem.GetPropLower(), FieldUnit::NONE);
+ m_aBottomDist.SetRelative( true );
+ m_aBottomDist.set_value(rOldItem.GetPropLower(), FieldUnit::NONE);
}
else
{
- m_xBottomDist->SetRelative(false);
+ m_aBottomDist.SetRelative(false);
if (eFUnit == FieldUnit::CHAR)
- m_xBottomDist->SetFieldUnit(FieldUnit::LINE);
+ m_aBottomDist.SetFieldUnit(FieldUnit::LINE);
else
- m_xBottomDist->SetFieldUnit(eFUnit);
- m_xBottomDist->SetMetricValue(rOldItem.GetLower(), eUnit);
+ m_aBottomDist.SetFieldUnit(eFUnit);
+ m_aBottomDist.SetMetricValue(rOldItem.GetLower(), eUnit);
}
}
else
{
- m_xTopDist->SetMetricValue(rOldItem.GetUpper(), eUnit);
- m_xBottomDist->SetMetricValue(rOldItem.GetLower(), eUnit);
+ m_aTopDist.SetMetricValue(rOldItem.GetUpper(), eUnit);
+ m_aBottomDist.SetMetricValue(rOldItem.GetLower(), eUnit);
}
m_xContextualCB->set_active(rOldItem.GetContext());
}
else
{
- m_xTopDist->set_text(OUString());
- m_xBottomDist->set_text(OUString());
+ m_aTopDist.set_text(OUString());
+ m_aBottomDist.set_text(OUString());
}
_nWhich = GetWhich( SID_ATTR_PARA_LINESPACE );
@@ -582,15 +833,15 @@ void SvxStdParagraphTabPage::Reset( const SfxItemSet* rSet )
void SvxStdParagraphTabPage::ChangesApplied()
{
- m_xLeftIndent->save_value();
- m_xRightIndent->save_value();
- m_xFLineIndent->save_value();
+ m_aLeftIndent.save_value();
+ m_aRightIndent.save_value();
+ m_aFLineIndent.save_value();
m_xLineDist->save_value();
m_xLineDistAtPercentBox->save_value();
m_xLineDistAtMetricBox->save_value();
m_xRegisterCB->save_state();
- m_xTopDist->save_value();
- m_xBottomDist->save_value();
+ m_aTopDist.save_value();
+ m_aBottomDist.save_value();
m_xContextualCB->save_state();
m_xAutoCB->save_state();
}
@@ -599,11 +850,11 @@ void SvxStdParagraphTabPage::EnableRelativeMode()
{
DBG_ASSERT( GetItemSet().GetParent(), "RelativeMode, but no parent-set!" );
- m_xLeftIndent->EnableRelativeMode( 0, 999 );
- m_xFLineIndent->EnableRelativeMode( 0, 999 );
- m_xRightIndent->EnableRelativeMode( 0, 999 );
- m_xTopDist->EnableRelativeMode( 0, 999 );
- m_xBottomDist->EnableRelativeMode( 0, 999 );
+ m_aLeftIndent.EnableRelativeMode( 0, 999 );
+ m_aFLineIndent.EnableRelativeMode( 0, 999 );
+ m_aRightIndent.EnableRelativeMode( 0, 999 );
+ m_aTopDist.EnableRelativeMode( 0, 999 );
+ m_aBottomDist.EnableRelativeMode( 0, 999 );
bRelativeMode = true;
}
@@ -654,36 +905,36 @@ DeactivateRC SvxStdParagraphTabPage::DeactivatePage( SfxItemSet* _pSet )
}
SvxStdParagraphTabPage::SvxStdParagraphTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rAttr)
- : SfxTabPage(pPage, pController, "cui/ui/paraindentspacing.ui", "ParaIndentSpacing", &rAttr)
+ : SfxTabPage(pPage, pController, u"cui/ui/paraindentspacing.ui"_ustr, u"ParaIndentSpacing"_ustr, &rAttr)
, nWidth(11905 /*567 * 50*/)
, nMinFixDist(0)
, bRelativeMode(false)
- , m_xLeftIndent(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("spinED_LEFTINDENT", FieldUnit::CM)))
- , m_xRightLabel(m_xBuilder->weld_label("labelFT_RIGHTINDENT"))
- , m_xRightIndent(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("spinED_RIGHTINDENT", FieldUnit::CM)))
- , m_xFLineLabel(m_xBuilder->weld_label("labelFT_FLINEINDENT"))
- , m_xFLineIndent(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("spinED_FLINEINDENT", FieldUnit::CM)))
- , m_xAutoCB(m_xBuilder->weld_check_button("checkCB_AUTO"))
- , m_xTopDist(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("spinED_TOPDIST", FieldUnit::CM)))
- , m_xBottomDist(new SvxRelativeField(m_xBuilder->weld_metric_spin_button("spinED_BOTTOMDIST", FieldUnit::CM)))
- , m_xContextualCB(m_xBuilder->weld_check_button("checkCB_CONTEXTUALSPACING"))
- , m_xLineDist(m_xBuilder->weld_combo_box("comboLB_LINEDIST"))
- , m_xLineDistAtPercentBox(m_xBuilder->weld_metric_spin_button("spinED_LINEDISTPERCENT", FieldUnit::PERCENT))
- , m_xLineDistAtMetricBox(m_xBuilder->weld_metric_spin_button("spinED_LINEDISTMETRIC", FieldUnit::CM))
- , m_xLineDistAtLabel(m_xBuilder->weld_label("labelFT_LINEDIST"))
- , m_xAbsDist(m_xBuilder->weld_label("labelST_LINEDIST_ABS"))
- , m_xRegisterCB(m_xBuilder->weld_check_button("checkCB_REGISTER"))
- , m_xExampleWin(new weld::CustomWeld(*m_xBuilder, "drawingareaWN_EXAMPLE", m_aExampleWin))
-{
- sAbsDist = m_xAbsDist->get_label();
-
+ , m_aLeftIndent(m_xBuilder->weld_metric_spin_button(u"spinED_LEFTINDENT"_ustr, FieldUnit::CM))
+ , m_aRightIndent(m_xBuilder->weld_metric_spin_button(u"spinED_RIGHTINDENT"_ustr, FieldUnit::CM))
+ , m_xFLineLabel(m_xBuilder->weld_label(u"labelFT_FLINEINDENT"_ustr))
+ , m_aFLineIndent(m_xBuilder->weld_metric_spin_button(u"spinED_FLINEINDENT"_ustr, FieldUnit::CM))
+ , m_xAutoCB(m_xBuilder->weld_check_button(u"checkCB_AUTO"_ustr))
+ , m_aTopDist(m_xBuilder->weld_metric_spin_button(u"spinED_TOPDIST"_ustr, FieldUnit::CM))
+ , m_aBottomDist(m_xBuilder->weld_metric_spin_button(u"spinED_BOTTOMDIST"_ustr, FieldUnit::CM))
+ , m_xContextualCB(m_xBuilder->weld_check_button(u"checkCB_CONTEXTUALSPACING"_ustr))
+ , m_xLineDist(m_xBuilder->weld_combo_box(u"comboLB_LINEDIST"_ustr))
+ , m_xLineDistAtPercentBox(m_xBuilder->weld_metric_spin_button(u"spinED_LINEDISTPERCENT"_ustr, FieldUnit::PERCENT))
+ , m_xLineDistAtMetricBox(m_xBuilder->weld_metric_spin_button(u"spinED_LINEDISTMETRIC"_ustr, FieldUnit::CM))
+ , m_xLineDistAtPlaceHolderBox(m_xBuilder->weld_metric_spin_button(u"spinED_BLANK"_ustr, FieldUnit::CM))
+ , m_xLineDistAtLabel(m_xBuilder->weld_label(u"labelFT_LINEDIST"_ustr))
+ , m_xAbsDist(m_xBuilder->weld_label(u"labelST_LINEDIST_ABS"_ustr))
+ , m_xRegisterCB(m_xBuilder->weld_check_button(u"checkCB_REGISTER"_ustr))
+ , m_xExampleWin(new weld::CustomWeld(*m_xBuilder, u"drawingareaWN_EXAMPLE"_ustr, m_aExampleWin))
+{
// this page needs ExchangeSupport
SetExchangeSupport();
m_xLineDistAtMetricBox->hide();
+ m_xLineDistAtPlaceHolderBox->hide();
+ m_xLineDistAtPlaceHolderBox->set_text(OUString());
Init_Impl();
- m_xFLineIndent->set_min(-9999, FieldUnit::NONE); // is set to 0 on default
+ m_aFLineIndent.set_min(-9999, FieldUnit::NONE); // is set to 0 on default
}
SvxStdParagraphTabPage::~SvxStdParagraphTabPage()
@@ -692,10 +943,10 @@ SvxStdParagraphTabPage::~SvxStdParagraphTabPage()
void SvxStdParagraphTabPage::EnableNegativeMode()
{
- m_xLeftIndent->set_min(-9999, FieldUnit::NONE);
- m_xRightIndent->set_min(-9999, FieldUnit::NONE);
- m_xRightIndent->EnableNegativeMode();
- m_xLeftIndent->EnableNegativeMode();
+ m_aLeftIndent.set_min(-9999, FieldUnit::NONE);
+ m_aRightIndent.set_min(-9999, FieldUnit::NONE);
+ m_aRightIndent.EnableNegativeMode();
+ m_aLeftIndent.EnableNegativeMode();
}
void SvxStdParagraphTabPage::SetLineSpacing_Impl
@@ -784,10 +1035,9 @@ IMPL_LINK(SvxStdParagraphTabPage, LineDistHdl_Impl, weld::ComboBox&, rBox, void)
case LLINESPACE_15:
case LLINESPACE_2:
m_xLineDistAtLabel->set_sensitive(false);
- m_xLineDistAtPercentBox->set_sensitive(false);
- m_xLineDistAtPercentBox->set_text(OUString());
- m_xLineDistAtMetricBox->set_sensitive(false);
- m_xLineDistAtMetricBox->set_text(OUString());
+ m_xLineDistAtPercentBox->hide();
+ m_xLineDistAtMetricBox->hide();
+ m_xLineDistAtPlaceHolderBox->show();
break;
case LLINESPACE_DURCH:
@@ -795,32 +1045,32 @@ IMPL_LINK(SvxStdParagraphTabPage, LineDistHdl_Impl, weld::ComboBox&, rBox, void)
// limit MS min(10, aPageSize)
m_xLineDistAtMetricBox->set_min(0, FieldUnit::NONE);
- if (m_xLineDistAtMetricBox->get_text().isEmpty())
+ if (m_xLineDistAtPlaceHolderBox->get_visible())
m_xLineDistAtMetricBox->set_value(m_xLineDistAtMetricBox->normalize(1), FieldUnit::NONE);
+ m_xLineDistAtPlaceHolderBox->hide();
m_xLineDistAtPercentBox->hide();
m_xLineDistAtMetricBox->show();
- m_xLineDistAtMetricBox->set_sensitive(true);
m_xLineDistAtLabel->set_sensitive(true);
break;
case LLINESPACE_MIN:
m_xLineDistAtMetricBox->set_min(0, FieldUnit::NONE);
- if (m_xLineDistAtMetricBox->get_text().isEmpty())
+ if (m_xLineDistAtPlaceHolderBox->get_visible())
m_xLineDistAtMetricBox->set_value(m_xLineDistAtMetricBox->normalize(10), FieldUnit::TWIP);
+ m_xLineDistAtPlaceHolderBox->hide();
m_xLineDistAtPercentBox->hide();
m_xLineDistAtMetricBox->show();
- m_xLineDistAtMetricBox->set_sensitive(true);
m_xLineDistAtLabel->set_sensitive(true);
break;
case LLINESPACE_PROP:
- if (m_xLineDistAtPercentBox->get_text().isEmpty())
+ if (m_xLineDistAtPlaceHolderBox->get_visible())
m_xLineDistAtPercentBox->set_value(m_xLineDistAtPercentBox->normalize(100), FieldUnit::TWIP);
+ m_xLineDistAtPlaceHolderBox->hide();
m_xLineDistAtMetricBox->hide();
m_xLineDistAtPercentBox->show();
- m_xLineDistAtPercentBox->set_sensitive(true);
m_xLineDistAtLabel->set_sensitive(true);
break;
case LLINESPACE_FIX:
@@ -832,9 +1082,9 @@ IMPL_LINK(SvxStdParagraphTabPage, LineDistHdl_Impl, weld::ComboBox&, rBox, void)
// it is time for the default
if (m_xLineDistAtMetricBox->get_value(FieldUnit::NONE) != nTemp)
SetMetricValue( *m_xLineDistAtMetricBox, FIX_DIST_DEF, MapUnit::MapTwip ); // fix is only in Writer
+ m_xLineDistAtPlaceHolderBox->hide();
m_xLineDistAtPercentBox->hide();
m_xLineDistAtMetricBox->show();
- m_xLineDistAtMetricBox->set_sensitive(true);
m_xLineDistAtLabel->set_sensitive(true);
}
break;
@@ -853,31 +1103,31 @@ void SvxStdParagraphTabPage::Init_Impl()
m_xLineDist->connect_changed(LINK(this, SvxStdParagraphTabPage, LineDistHdl_Impl));
Link<weld::MetricSpinButton&,void> aLink2 = LINK(this, SvxStdParagraphTabPage, ELRLoseFocusHdl);
- m_xFLineIndent->connect_value_changed(aLink2);
- m_xLeftIndent->connect_value_changed(aLink2);
- m_xRightIndent->connect_value_changed(aLink2);
+ m_aFLineIndent.connect_value_changed(aLink2);
+ m_aLeftIndent.connect_value_changed(aLink2);
+ m_aRightIndent.connect_value_changed(aLink2);
Link<weld::MetricSpinButton&,void> aLink = LINK(this, SvxStdParagraphTabPage, ModifyHdl_Impl);
- m_xTopDist->connect_value_changed(aLink);
- m_xBottomDist->connect_value_changed(aLink);
+ m_aTopDist.connect_value_changed(aLink);
+ m_aBottomDist.connect_value_changed(aLink);
m_xAutoCB->connect_toggled(LINK(this, SvxStdParagraphTabPage, AutoHdl_Impl));
SfxItemPool* pPool = GetItemSet().GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ assert(pPool && "Where is the pool?");
FieldUnit eUnit = MapToFieldUnit( pPool->GetMetric( GetWhich( SID_ATTR_LRSPACE ) ) );
- m_xTopDist->set_max( m_xTopDist->normalize( MAX_DURCH ), eUnit );
- m_xBottomDist->set_max( m_xBottomDist->normalize( MAX_DURCH ), eUnit );
+ m_aTopDist.set_max( m_aTopDist.normalize( MAX_DURCH ), eUnit );
+ m_aBottomDist.set_max( m_aBottomDist.normalize( MAX_DURCH ), eUnit );
m_xLineDistAtMetricBox->set_max( m_xLineDistAtMetricBox->normalize( MAX_DURCH ), eUnit );
}
void SvxStdParagraphTabPage::UpdateExample_Impl()
{
- m_aExampleWin.SetFirstLineOffset( static_cast<short>(m_xFLineIndent->denormalize( m_xFLineIndent->get_value( FieldUnit::TWIP ) )) );
- m_aExampleWin.SetLeftMargin( static_cast<tools::Long>(m_xLeftIndent->denormalize( m_xLeftIndent->get_value( FieldUnit::TWIP ) ) ) );
- m_aExampleWin.SetRightMargin( static_cast<tools::Long>(m_xRightIndent->denormalize( m_xRightIndent->get_value( FieldUnit::TWIP ) ) ) );
- m_aExampleWin.SetUpper( static_cast<sal_uInt16>(m_xTopDist->denormalize( m_xTopDist->get_value( FieldUnit::TWIP ) )) );
- m_aExampleWin.SetLower( static_cast<sal_uInt16>(m_xBottomDist->denormalize( m_xBottomDist->get_value( FieldUnit::TWIP ) )) );
+ m_aExampleWin.SetFirstLineOffset( static_cast<short>(m_aFLineIndent.denormalize( m_aFLineIndent.get_value( FieldUnit::TWIP ) )) );
+ m_aExampleWin.SetLeftMargin( static_cast<tools::Long>(m_aLeftIndent.denormalize( m_aLeftIndent.get_value( FieldUnit::TWIP ) ) ) );
+ m_aExampleWin.SetRightMargin( static_cast<tools::Long>(m_aRightIndent.denormalize( m_aRightIndent.get_value( FieldUnit::TWIP ) ) ) );
+ m_aExampleWin.SetUpper( static_cast<sal_uInt16>(m_aTopDist.denormalize( m_aTopDist.get_value( FieldUnit::TWIP ) )) );
+ m_aExampleWin.SetLower( static_cast<sal_uInt16>(m_aBottomDist.denormalize( m_aBottomDist.get_value( FieldUnit::TWIP ) )) );
int nPos = m_xLineDist->get_active();
@@ -911,7 +1161,7 @@ IMPL_LINK(SvxStdParagraphTabPage, AutoHdl_Impl, weld::Toggleable&, rBox, void)
{
bool bEnable = !rBox.get_active();
m_xFLineLabel->set_sensitive(bEnable);
- m_xFLineIndent->set_sensitive(bEnable);
+ m_aFLineIndent.set_sensitive(bEnable);
}
void SvxStdParagraphTabPage::EnableAutoFirstLine()
@@ -919,12 +1169,6 @@ void SvxStdParagraphTabPage::EnableAutoFirstLine()
m_xAutoCB->show();
}
-void SvxStdParagraphTabPage::EnableAbsLineDist(tools::Long nMinTwip)
-{
- m_xLineDist->append_text(sAbsDist);
- nMinFixDist = nMinTwip;
-}
-
void SvxStdParagraphTabPage::PageCreated(const SfxAllItemSet& aSet)
{
@@ -937,7 +1181,6 @@ void SvxStdParagraphTabPage::PageCreated(const SfxAllItemSet& aSet)
*/
const SfxUInt16Item* pPageWidthItem = aSet.GetItem<SfxUInt16Item>(SID_SVXSTDPARAGRAPHTABPAGE_PAGEWIDTH, false);
const SfxUInt32Item* pFlagSetItem = aSet.GetItem<SfxUInt32Item>(SID_SVXSTDPARAGRAPHTABPAGE_FLAGSET, false);
- const SfxUInt32Item* pLineDistItem = aSet.GetItem<SfxUInt32Item>(SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST, false);
if (pPageWidthItem)
nWidth = pPageWidthItem->GetValue();
@@ -954,9 +1197,6 @@ void SvxStdParagraphTabPage::PageCreated(const SfxAllItemSet& aSet)
EnableAutoFirstLine();
}
- if(pLineDistItem)
- EnableAbsLineDist(pLineDistItem->GetValue());
-
if (pFlagSetItem)
{
if (( 0x0008 & pFlagSetItem->GetValue()) == 0x0008 )
@@ -974,22 +1214,24 @@ void SvxStdParagraphTabPage::PageCreated(const SfxAllItemSet& aSet)
#define LASTLINECOUNT_NEW 4
SvxParaAlignTabPage::SvxParaAlignTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/paragalignpage.ui", "ParaAlignPage", &rSet)
- , m_xLeft(m_xBuilder->weld_radio_button("radioBTN_LEFTALIGN"))
- , m_xRight(m_xBuilder->weld_radio_button("radioBTN_RIGHTALIGN"))
- , m_xCenter(m_xBuilder->weld_radio_button("radioBTN_CENTERALIGN"))
- , m_xJustify(m_xBuilder->weld_radio_button("radioBTN_JUSTIFYALIGN"))
- , m_xLeftBottom(m_xBuilder->weld_label("labelST_LEFTALIGN_ASIAN"))
- , m_xRightTop(m_xBuilder->weld_label("labelST_RIGHTALIGN_ASIAN"))
- , m_xLastLineFT(m_xBuilder->weld_label("labelLB_LASTLINE"))
- , m_xLastLineLB(m_xBuilder->weld_combo_box("comboLB_LASTLINE"))
- , m_xExpandCB(m_xBuilder->weld_check_button("checkCB_EXPAND"))
- , m_xSnapToGridCB(m_xBuilder->weld_check_button("checkCB_SNAP"))
- , m_xExampleWin(new weld::CustomWeld(*m_xBuilder, "drawingareaWN_EXAMPLE", m_aExampleWin))
- , m_xVertAlignFL(m_xBuilder->weld_widget("frameFL_VERTALIGN"))
- , m_xVertAlignLB(m_xBuilder->weld_combo_box("comboLB_VERTALIGN"))
- , m_xPropertiesFL(m_xBuilder->weld_widget("framePROPERTIES"))
- , m_xTextDirectionLB(new svx::FrameDirectionListBox(m_xBuilder->weld_combo_box("comboLB_TEXTDIRECTION")))
+ : SfxTabPage(pPage, pController, u"cui/ui/paragalignpage.ui"_ustr, u"ParaAlignPage"_ustr, &rSet)
+ , m_bSdrVertAlign(false)
+ , m_xLeft(m_xBuilder->weld_radio_button(u"radioBTN_LEFTALIGN"_ustr))
+ , m_xRight(m_xBuilder->weld_radio_button(u"radioBTN_RIGHTALIGN"_ustr))
+ , m_xCenter(m_xBuilder->weld_radio_button(u"radioBTN_CENTERALIGN"_ustr))
+ , m_xJustify(m_xBuilder->weld_radio_button(u"radioBTN_JUSTIFYALIGN"_ustr))
+ , m_xLeftBottom(m_xBuilder->weld_label(u"labelST_LEFTALIGN_ASIAN"_ustr))
+ , m_xRightTop(m_xBuilder->weld_label(u"labelST_RIGHTALIGN_ASIAN"_ustr))
+ , m_xLastLineFT(m_xBuilder->weld_label(u"labelLB_LASTLINE"_ustr))
+ , m_xLastLineLB(m_xBuilder->weld_combo_box(u"comboLB_LASTLINE"_ustr))
+ , m_xExpandCB(m_xBuilder->weld_check_button(u"checkCB_EXPAND"_ustr))
+ , m_xSnapToGridCB(m_xBuilder->weld_check_button(u"checkCB_SNAP"_ustr))
+ , m_xExampleWin(new weld::CustomWeld(*m_xBuilder, u"drawingareaWN_EXAMPLE"_ustr, m_aExampleWin))
+ , m_xVertAlignFL(m_xBuilder->weld_widget(u"frameFL_VERTALIGN"_ustr))
+ , m_xVertAlignLB(m_xBuilder->weld_combo_box(u"comboLB_VERTALIGN"_ustr))
+ , m_xVertAlign(m_xBuilder->weld_label(u"labelFL_VERTALIGN"_ustr))
+ , m_xVertAlignSdr(m_xBuilder->weld_label(u"labelST_VERTALIGN_SDR"_ustr))
+ , m_xTextDirectionLB(new svx::FrameDirectionListBox(m_xBuilder->weld_combo_box(u"comboLB_TEXTDIRECTION"_ustr)))
{
SetExchangeSupport();
@@ -1104,7 +1346,10 @@ bool SvxParaAlignTabPage::FillItemSet( SfxItemSet* rOutSet )
if (m_xVertAlignLB->get_value_changed_from_saved())
{
- rOutSet->Put(SvxParaVertAlignItem(static_cast<SvxParaVertAlignItem::Align>(m_xVertAlignLB->get_active()), GetWhich( SID_PARA_VERTALIGN )));
+ if (m_bSdrVertAlign)
+ rOutSet->Put(SdrTextVertAdjustItem(static_cast<SdrTextVertAdjust>(m_xVertAlignLB->get_active())));
+ else
+ rOutSet->Put(SvxParaVertAlignItem(static_cast<SvxParaVertAlignItem::Align>(m_xVertAlignLB->get_active()), GetWhich( SID_PARA_VERTALIGN )));
bModified = true;
}
@@ -1190,16 +1435,23 @@ void SvxParaAlignTabPage::Reset( const SfxItemSet* rSet )
m_xSnapToGridCB->set_active(rSnap.GetValue());
}
- _nWhich = GetWhich( SID_PARA_VERTALIGN );
+ _nWhich = m_bSdrVertAlign ? SDRATTR_TEXT_VERTADJUST : GetWhich( SID_PARA_VERTALIGN );
eItemState = rSet->GetItemState( _nWhich );
if ( eItemState >= SfxItemState::DEFAULT )
{
m_xVertAlignFL->show();
- const SvxParaVertAlignItem& rAlign = static_cast<const SvxParaVertAlignItem&>(rSet->Get( _nWhich ));
-
- m_xVertAlignLB->set_active(static_cast<sal_Int32>(rAlign.GetValue()));
+ if (m_bSdrVertAlign)
+ {
+ const SdrTextVertAdjustItem& rAlign = static_cast<const SdrTextVertAdjustItem&>(rSet->Get( _nWhich ));
+ m_xVertAlignLB->set_active(rAlign.GetValue());
+ }
+ else
+ {
+ const SvxParaVertAlignItem& rAlign = static_cast<const SvxParaVertAlignItem&>(rSet->Get( _nWhich ));
+ m_xVertAlignLB->set_active(static_cast<sal_Int32>(rAlign.GetValue()));
+ }
}
_nWhich = GetWhich( SID_ATTR_FRAMEDIRECTION );
@@ -1329,6 +1581,15 @@ void SvxParaAlignTabPage::EnableJustifyExt()
}
+void SvxParaAlignTabPage::EnableSdrVertAlign()
+{
+ m_bSdrVertAlign = true;
+
+ m_xVertAlignLB->remove_id(u"0"_ustr);
+ m_xVertAlignLB->remove_id(u"1"_ustr);
+ m_xVertAlign->set_label(m_xVertAlignSdr->get_label());
+}
+
void SvxParaAlignTabPage::PageCreated (const SfxAllItemSet& aSet)
{
const SfxBoolItem* pBoolItem = aSet.GetItem<SfxBoolItem>(SID_SVXPARAALIGNTABPAGE_ENABLEJUSTIFYEXT, false);
@@ -1350,22 +1611,77 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
if ( m_xHyphenBox->get_state_changed_from_saved() ||
m_xHyphenNoCapsBox->get_state_changed_from_saved() ||
+ m_xHyphenNoLastWordBox->get_state_changed_from_saved() ||
m_xExtHyphenBeforeBox->get_value_changed_from_saved() ||
m_xExtHyphenAfterBox->get_value_changed_from_saved() ||
- m_xMaxHyphenEdit->get_value_changed_from_saved() )
+ m_xExtCompoundHyphenBeforeBox->get_value_changed_from_saved() ||
+ m_xMaxHyphenEdit->get_value_changed_from_saved() ||
+ m_xMinWordLength->get_value_changed_from_saved() ||
+ m_aHyphenZone.get_value_changed_from_saved() ||
+ m_xAcrossParagraphBox->get_state_changed_from_saved() ||
+ m_xAcrossColumnBox->get_state_changed_from_saved() ||
+ m_xAcrossPageBox->get_state_changed_from_saved() ||
+ m_xAcrossSpreadBox->get_state_changed_from_saved() )
{
SvxHyphenZoneItem aHyphen(
static_cast<const SvxHyphenZoneItem&>(GetItemSet().Get( _nWhich )) );
aHyphen.SetHyphen( eHyphenState == TRISTATE_TRUE );
- aHyphen.SetNoCapsHyphenation(m_xHyphenNoCapsBox->get_state() == TRISTATE_TRUE);
+ aHyphen.SetNoCapsHyphenation(m_xHyphenNoCapsBox->get_state() != TRISTATE_TRUE);
+ aHyphen.SetNoLastWordHyphenation(m_xHyphenNoLastWordBox->get_state() != TRISTATE_TRUE);
if ( eHyphenState == TRISTATE_TRUE )
{
aHyphen.GetMinLead() = static_cast<sal_uInt8>(m_xExtHyphenBeforeBox->get_value());
aHyphen.GetMinTrail() = static_cast<sal_uInt8>(m_xExtHyphenAfterBox->get_value());
+ aHyphen.GetCompoundMinLead() = static_cast<sal_uInt8>(m_xExtCompoundHyphenBeforeBox->get_value());
+ aHyphen.GetMinWordLength() = static_cast<sal_uInt8>(m_xMinWordLength->get_value());
}
aHyphen.GetMaxHyphens() = static_cast<sal_uInt8>(m_xMaxHyphenEdit->get_value());
+ SfxItemPool* pPool = GetItemSet().GetPool();
+ DBG_ASSERT( pPool, "Where is the pool?" );
+ MapUnit eUnit = pPool->GetMetric( _nWhich );
+ aHyphen.GetTextHyphenZone() = static_cast<sal_uInt16>(m_aHyphenZone.GetCoreValue(eUnit));
+ aHyphen.SetHyphen( eHyphenState == TRISTATE_TRUE );
+ aHyphen.SetNoLastWordHyphenation(m_xHyphenNoLastWordBox->get_state() != TRISTATE_TRUE);
+ const TriState eAcrossParagraphState = m_xAcrossParagraphBox->get_state();
+ const TriState eAcrossColumnState = m_xAcrossColumnBox->get_state();
+ const TriState eAcrossPageState = m_xAcrossPageBox->get_state();
+ const TriState eAcrossSpreadState = m_xAcrossSpreadBox->get_state();
+ aHyphen.SetKeep( eAcrossSpreadState != TRISTATE_TRUE );
+ if ( eAcrossSpreadState == TRISTATE_TRUE )
+ {
+ // hyphenate across column, page and spread -> ParaHyphenationKeep = false and
+ // set default value 3 (COLUMN)
+ aHyphen.GetKeepType() =
+ static_cast<sal_uInt8>(css::text::ParagraphHyphenationKeepType::COLUMN);
+ }
+ else if ( eAcrossPageState == TRISTATE_TRUE )
+ {
+ // hyphenate across column and page, but not spread -> 1 (SPREAD)
+ aHyphen.GetKeepType() =
+ static_cast<sal_uInt8>(css::text::ParagraphHyphenationKeepType::SPREAD);
+ }
+ else if ( eAcrossColumnState == TRISTATE_TRUE )
+ {
+ // hyphenate across column, but not page and spread -> 2 (PAGE)
+ aHyphen.GetKeepType() =
+ static_cast<sal_uInt8>(css::text::ParagraphHyphenationKeepType::PAGE);
+ }
+ else if ( eAcrossParagraphState == TRISTATE_TRUE )
+ {
+ // hyphenate across last full paragraph line, but not page and spread -> 2 (PAGE)
+ aHyphen.GetKeepType() =
+ static_cast<sal_uInt8>(css::text::ParagraphHyphenationKeepType::COLUMN);
+ }
+ else
+ {
+ // don't hyphenate across last full paragraph line,
+ // also column, page and spread -> 4 (COLUMN)
+ aHyphen.GetKeepType() =
+ static_cast<sal_uInt8>(css::text::ParagraphHyphenationKeepType::ALWAYS);
+ }
+
if ( !pOld ||
*static_cast<const SvxHyphenZoneItem*>(pOld) != aHyphen ||
m_xHyphenBox->get_state_changed_from_saved())
@@ -1403,7 +1719,6 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
TriState eState = m_xApplyCollBtn->get_state();
bool bIsPageModel = false;
- _nWhich = GetWhich( SID_ATTR_PARA_MODEL );
OUString sPage;
if ( m_xApplyCollBtn->get_state_changed_from_saved() ||
( TRISTATE_TRUE == eState &&
@@ -1418,7 +1733,7 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
if ( !pOld || static_cast<const SvxPageModelItem*>(pOld)->GetValue() != sPage )
{
- rOutSet->Put( SvxPageModelItem( sPage, false, _nWhich ) );
+ rOutSet->Put( SvxPageModelItem( sPage, false, SID_ATTR_PARA_MODEL ) );
bModified = true;
}
else
@@ -1427,7 +1742,7 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
else if(TRISTATE_TRUE == eState && m_xApplyCollBtn->get_sensitive())
bIsPageModel = true;
else
- rOutSet->Put( SvxPageModelItem( sPage, false, _nWhich ) );
+ rOutSet->Put( SvxPageModelItem( sPage, false, SID_ATTR_PARA_MODEL ) );
_nWhich = GetWhich( SID_ATTR_PARA_PAGEBREAK );
@@ -1489,18 +1804,12 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
// paragraph split
_nWhich = GetWhich( SID_ATTR_PARA_SPLIT );
- eState = m_xKeepTogetherBox->get_state();
+ eState = m_xAllowSplitBox->get_state();
- if (m_xKeepTogetherBox->get_state_changed_from_saved())
+ if (m_xAllowSplitBox->get_state_changed_from_saved())
{
- pOld = GetOldItem( *rOutSet, SID_ATTR_PARA_SPLIT );
-
- if ( !pOld || static_cast<const SvxFormatSplitItem*>(pOld)->GetValue() !=
- ( eState == TRISTATE_FALSE ) )
- {
- rOutSet->Put( SvxFormatSplitItem( eState == TRISTATE_FALSE, _nWhich ) );
- bModified = true;
- }
+ rOutSet->Put( SvxFormatSplitItem( eState == TRISTATE_TRUE, _nWhich ) );
+ bModified = true;
}
// keep paragraphs
@@ -1515,14 +1824,14 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
}
// widows and orphans
- _nWhich = GetWhich( SID_ATTR_PARA_WIDOWS );
+ TypedWhichId<SvxWidowsItem> nWidowsWhich = GetWhich( SID_ATTR_PARA_WIDOWS );
eState = m_xWidowBox->get_state();
if ( m_xWidowBox->get_state_changed_from_saved() ||
m_xWidowRowNo->get_value_changed_from_saved() )
{
SvxWidowsItem rItem( eState == TRISTATE_TRUE ?
- static_cast<sal_uInt8>(m_xWidowRowNo->get_value()) : 0, _nWhich );
+ static_cast<sal_uInt8>(m_xWidowRowNo->get_value()) : 0, nWidowsWhich );
pOld = GetOldItem( *rOutSet, SID_ATTR_PARA_WIDOWS );
if ( m_xWidowBox->get_state_changed_from_saved() || !pOld || !( *static_cast<const SvxWidowsItem*>(pOld) == rItem ) )
@@ -1532,14 +1841,14 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
}
}
- _nWhich = GetWhich( SID_ATTR_PARA_ORPHANS );
+ TypedWhichId<SvxOrphansItem> nOrphansWhich = GetWhich( SID_ATTR_PARA_ORPHANS );
eState = m_xOrphanBox->get_state();
if ( m_xOrphanBox->get_state_changed_from_saved() ||
m_xOrphanRowNo->get_value_changed_from_saved() )
{
SvxOrphansItem rItem( eState == TRISTATE_TRUE ?
- static_cast<sal_uInt8>(m_xOrphanRowNo->get_value()) : 0, _nWhich );
+ static_cast<sal_uInt8>(m_xOrphanRowNo->get_value()) : 0, nOrphansWhich );
pOld = GetOldItem( *rOutSet, SID_ATTR_PARA_ORPHANS );
if ( m_xOrphanBox->get_state_changed_from_saved() ||
@@ -1555,6 +1864,14 @@ bool SvxExtParagraphTabPage::FillItemSet( SfxItemSet* rOutSet )
}
void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet )
{
+ SfxItemPool* pPool = rSet->GetPool();
+ DBG_ASSERT( pPool, "Where is the pool?" );
+
+ // adjust metric
+ FieldUnit eFUnit = GetModuleFieldUnit( *rSet );
+ if (UseCharUnitInUI(*rSet))
+ eFUnit = FieldUnit::CHAR;
+
sal_uInt16 _nWhich = GetWhich( SID_ATTR_PARA_HYPHENZONE );
SfxItemState eItemState = rSet->GetItemState( _nWhich );
@@ -1568,40 +1885,64 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet )
bIsHyphen = rHyphen.IsHyphen();
m_xHyphenBox->set_state(bIsHyphen ? TRISTATE_TRUE : TRISTATE_FALSE);
- m_xHyphenNoCapsBox->set_state(rHyphen.IsNoCapsHyphenation() ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xHyphenNoCapsBox->set_state(rHyphen.IsNoCapsHyphenation() ? TRISTATE_FALSE : TRISTATE_TRUE);
+ m_xHyphenNoLastWordBox->set_state(rHyphen.IsNoLastWordHyphenation() ? TRISTATE_FALSE : TRISTATE_TRUE);
m_xExtHyphenBeforeBox->set_value(rHyphen.GetMinLead());
m_xExtHyphenAfterBox->set_value(rHyphen.GetMinTrail());
+ m_xExtCompoundHyphenBeforeBox->set_value(rHyphen.GetCompoundMinLead());
m_xMaxHyphenEdit->set_value(rHyphen.GetMaxHyphens());
+ m_xMinWordLength->set_value(rHyphen.GetMinWordLength());
+ m_aHyphenZone.SetFieldUnit(eFUnit);
+ m_aHyphenZone.SetMetricValue(rHyphen.GetTextHyphenZone(), MapUnit::MapTwip);
+ m_xAcrossParagraphBox->set_state(!rHyphen.IsKeep() || rHyphen.GetKeepType() < 4 ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xAcrossColumnBox->set_state(!rHyphen.IsKeep() || rHyphen.GetKeepType() < 3 ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xAcrossPageBox->set_state(!rHyphen.IsKeep() || rHyphen.GetKeepType() < 2 ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xAcrossSpreadBox->set_state(!rHyphen.IsKeep() || rHyphen.GetKeepType() == 0 ? TRISTATE_TRUE : TRISTATE_FALSE);
+ aAcrossParagraphState.bTriStateEnabled = false;
+ aAcrossColumnState.bTriStateEnabled = false;
+ aAcrossPageState.bTriStateEnabled = false;
+ aAcrossSpreadState.bTriStateEnabled = false;
}
else
{
m_xHyphenBox->set_state(TRISTATE_INDET);
m_xHyphenNoCapsBox->set_state(TRISTATE_INDET);
+ m_xHyphenNoLastWordBox->set_state(TRISTATE_INDET);
}
bool bEnable = bItemAvailable && bIsHyphen;
m_xHyphenNoCapsBox->set_sensitive(bEnable);
+ m_xHyphenNoLastWordBox->set_sensitive(bEnable);
m_xExtHyphenBeforeBox->set_sensitive(bEnable);
m_xExtHyphenAfterBox->set_sensitive(bEnable);
+ m_xExtCompoundHyphenBeforeBox->set_sensitive(bEnable);
m_xBeforeText->set_sensitive(bEnable);
m_xAfterText->set_sensitive(bEnable);
+ m_xCompoundBeforeText->set_sensitive(bEnable);
m_xMaxHyphenLabel->set_sensitive(bEnable);
m_xMaxHyphenEdit->set_sensitive(bEnable);
-
- _nWhich = GetWhich( SID_ATTR_PARA_PAGENUM );
-
- switch (rSet->GetItemState(_nWhich))
+ m_xMinWordLabel->set_sensitive(bEnable);
+ m_xMinWordLength->set_sensitive(bEnable);
+ m_xHyphenZoneLabel->set_sensitive(bEnable);
+ m_aHyphenZone.set_sensitive(bEnable);
+ m_xAcrossText->set_sensitive(bEnable);
+ m_xAcrossParagraphBox->set_sensitive(bEnable);
+ m_xAcrossColumnBox->set_sensitive(bEnable);
+ m_xAcrossPageBox->set_sensitive(bEnable);
+ m_xAcrossSpreadBox->set_sensitive(bEnable);
+
+ switch (rSet->GetItemState(SID_ATTR_PARA_PAGENUM))
{
case SfxItemState::SET:
{
aPageNumState.bTriStateEnabled = false;
m_xPageNumBox->set_state(TRISTATE_TRUE);
- SfxUInt16Item const*const pItem(rSet->GetItem<SfxUInt16Item>(_nWhich));
+ SfxUInt16Item const*const pItem(rSet->GetItem<SfxUInt16Item>(SID_ATTR_PARA_PAGENUM));
const sal_uInt16 nPageNum(pItem->GetValue());
m_xPagenumEdit->set_value(nPageNum);
break;
}
- case SfxItemState::DONTCARE:
+ case SfxItemState::INVALID:
{
aPageNumState.bTriStateEnabled = true;
m_xPageNumBox->set_state(TRISTATE_INDET);
@@ -1623,16 +1964,14 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet )
if ( bPageBreak )
{
// first handle PageModel
- _nWhich = GetWhich( SID_ATTR_PARA_MODEL );
bool bIsPageModel = false;
- eItemState = rSet->GetItemState( _nWhich );
+ eItemState = rSet->GetItemState( SID_ATTR_PARA_MODEL );
if ( eItemState >= SfxItemState::SET )
{
aApplyCollState.bTriStateEnabled = false;
- const SvxPageModelItem& rModel =
- static_cast<const SvxPageModelItem&>(rSet->Get( _nWhich ));
+ const SvxPageModelItem& rModel = rSet->Get( SID_ATTR_PARA_MODEL );
const OUString& aStr( rModel.GetValue() );
if (!aStr.isEmpty() && m_xApplyCollBox->find_text(aStr) != -1)
@@ -1661,7 +2000,7 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet )
m_xApplyCollBtn->set_state(TRISTATE_FALSE);
}
}
- else if ( SfxItemState::DONTCARE == eItemState )
+ else if ( SfxItemState::INVALID == eItemState )
{
aApplyCollState.bTriStateEnabled = true;
m_xApplyCollBtn->set_state(TRISTATE_INDET);
@@ -1733,7 +2072,7 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet )
m_xBreakTypeLB->set_active(nType);
m_xBreakPositionLB->set_active(nPosition);
}
- else if ( SfxItemState::DONTCARE == eItemState )
+ else if ( SfxItemState::INVALID == eItemState )
m_xPageBreakBox->set_state(TRISTATE_INDET);
else
{
@@ -1763,7 +2102,7 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet )
else
m_xKeepParaBox->set_state(TRISTATE_FALSE);
}
- else if ( SfxItemState::DONTCARE == eItemState )
+ else if ( SfxItemState::INVALID == eItemState )
m_xKeepParaBox->set_state(TRISTATE_INDET);
else
m_xKeepParaBox->set_sensitive(false);
@@ -1775,70 +2114,69 @@ void SvxExtParagraphTabPage::Reset( const SfxItemSet* rSet )
{
const SvxFormatSplitItem& rSplit =
static_cast<const SvxFormatSplitItem&>(rSet->Get( _nWhich ));
- aKeepTogetherState.bTriStateEnabled = false;
+ aAllowSplitState.bTriStateEnabled = false;
if ( !rSplit.GetValue() )
- m_xKeepTogetherBox->set_state(TRISTATE_TRUE);
+ m_xAllowSplitBox->set_state(TRISTATE_FALSE);
else
{
- m_xKeepTogetherBox->set_state(TRISTATE_FALSE);
-
- // widows and orphans
+ m_xAllowSplitBox->set_state(TRISTATE_TRUE);
+ // default widows and orphans to enabled
m_xWidowBox->set_sensitive(true);
- _nWhich = GetWhich( SID_ATTR_PARA_WIDOWS );
- SfxItemState eTmpState = rSet->GetItemState( _nWhich );
-
- if ( eTmpState >= SfxItemState::DEFAULT )
- {
- const SvxWidowsItem& rWidow =
- static_cast<const SvxWidowsItem&>(rSet->Get( _nWhich ));
- aWidowState.bTriStateEnabled = false;
- const sal_uInt16 nLines = rWidow.GetValue();
+ m_xOrphanBox->set_sensitive(true);
+ }
- bool _bEnable = nLines > 0;
- m_xWidowRowNo->set_value(m_xWidowRowNo->normalize(nLines));
- m_xWidowBox->set_state(_bEnable ? TRISTATE_TRUE : TRISTATE_FALSE);
- m_xWidowRowNo->set_sensitive(_bEnable);
- //m_xWidowRowLabel->set_sensitive(_bEnable);
+ // widows and orphans
+ _nWhich = GetWhich( SID_ATTR_PARA_WIDOWS );
+ SfxItemState eTmpState = rSet->GetItemState( _nWhich );
- }
- else if ( SfxItemState::DONTCARE == eTmpState )
- m_xWidowBox->set_state( TRISTATE_INDET );
- else
- m_xWidowBox->set_sensitive(false);
+ if ( eTmpState >= SfxItemState::DEFAULT )
+ {
+ const SvxWidowsItem& rWidow =
+ static_cast<const SvxWidowsItem&>(rSet->Get( _nWhich ));
+ aWidowState.bTriStateEnabled = false;
+ const sal_uInt16 nLines = rWidow.GetValue();
+
+ bool _bEnable = nLines > 0;
+ m_xWidowRowNo->set_value(m_xWidowRowNo->normalize(nLines));
+ m_xWidowBox->set_state(_bEnable ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xWidowRowNo->set_sensitive(_bEnable);
+ }
+ else if ( SfxItemState::INVALID == eTmpState )
+ m_xWidowBox->set_state( TRISTATE_INDET );
+ else
+ m_xWidowBox->set_sensitive(false);
- m_xOrphanBox->set_sensitive(true);
- _nWhich = GetWhich( SID_ATTR_PARA_ORPHANS );
- eTmpState = rSet->GetItemState( _nWhich );
+ _nWhich = GetWhich( SID_ATTR_PARA_ORPHANS );
+ eTmpState = rSet->GetItemState( _nWhich );
- if ( eTmpState >= SfxItemState::DEFAULT )
- {
- const SvxOrphansItem& rOrphan =
- static_cast<const SvxOrphansItem&>(rSet->Get( _nWhich ));
- const sal_uInt16 nLines = rOrphan.GetValue();
- aOrphanState.bTriStateEnabled = false;
+ if ( eTmpState >= SfxItemState::DEFAULT )
+ {
+ const SvxOrphansItem& rOrphan =
+ static_cast<const SvxOrphansItem&>(rSet->Get( _nWhich ));
+ const sal_uInt16 nLines = rOrphan.GetValue();
+ aOrphanState.bTriStateEnabled = false;
- bool _bEnable = nLines > 0;
- m_xOrphanBox->set_state(_bEnable ? TRISTATE_TRUE : TRISTATE_FALSE);
- m_xOrphanRowNo->set_value(m_xOrphanRowNo->normalize(nLines));
- m_xOrphanRowNo->set_sensitive(_bEnable);
- m_xOrphanRowLabel->set_sensitive(_bEnable);
+ bool _bEnable = nLines > 0;
+ m_xOrphanBox->set_state(_bEnable ? TRISTATE_TRUE : TRISTATE_FALSE);
+ m_xOrphanRowNo->set_value(m_xOrphanRowNo->normalize(nLines));
+ m_xOrphanRowNo->set_sensitive(_bEnable);
+ m_xOrphanRowLabel->set_sensitive(_bEnable);
- }
- else if ( SfxItemState::DONTCARE == eTmpState )
- m_xOrphanBox->set_state(TRISTATE_INDET);
- else
- m_xOrphanBox->set_sensitive(false);
- aOrphanState.eState = m_xOrphanBox->get_state();
}
+ else if ( SfxItemState::INVALID == eTmpState )
+ m_xOrphanBox->set_state(TRISTATE_INDET);
+ else
+ m_xOrphanBox->set_sensitive(false);
+ aOrphanState.eState = m_xOrphanBox->get_state();
}
- else if ( SfxItemState::DONTCARE == eItemState )
- m_xKeepTogetherBox->set_state(TRISTATE_INDET);
+ else if ( SfxItemState::INVALID == eItemState )
+ m_xAllowSplitBox->set_state(TRISTATE_INDET);
else
- m_xKeepTogetherBox->set_sensitive(false);
+ m_xAllowSplitBox->set_sensitive(false);
// so that everything is enabled correctly
- KeepTogetherHdl();
+ AllowSplitHdl();
WidowHdl();
OrphanHdl();
ChangesApplied();
@@ -1847,9 +2185,17 @@ void SvxExtParagraphTabPage::ChangesApplied()
{
m_xHyphenBox->save_state();
m_xHyphenNoCapsBox->save_state();
- m_xExtHyphenBeforeBox->set_value(m_xExtHyphenBeforeBox->get_value());
- m_xExtHyphenAfterBox->set_value(m_xExtHyphenAfterBox->get_value());
- m_xMaxHyphenEdit->set_value(m_xMaxHyphenEdit->get_value());
+ m_xHyphenNoLastWordBox->save_state();
+ m_xExtHyphenBeforeBox->save_value();
+ m_xExtHyphenAfterBox->save_value();
+ m_xExtCompoundHyphenBeforeBox->save_value();
+ m_xMaxHyphenEdit->save_value();
+ m_xMinWordLength->save_value();
+ m_aHyphenZone.save_value();
+ m_xAcrossParagraphBox->save_state();
+ m_xAcrossColumnBox->save_state();
+ m_xAcrossPageBox->save_state();
+ m_xAcrossSpreadBox->save_state();
m_xPageBreakBox->save_state();
m_xBreakPositionLB->save_value();
m_xBreakTypeLB->save_value();
@@ -1857,7 +2203,7 @@ void SvxExtParagraphTabPage::ChangesApplied()
m_xApplyCollBox->save_value();
m_xPageNumBox->save_state();
m_xPagenumEdit->save_value();
- m_xKeepTogetherBox->save_state();
+ m_xAllowSplitBox->save_state();
m_xKeepParaBox->save_state();
m_xWidowBox->save_state();
m_xOrphanBox->save_state();
@@ -1886,45 +2232,58 @@ void SvxExtParagraphTabPage::DisablePageBreak()
}
SvxExtParagraphTabPage::SvxExtParagraphTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rAttr)
- : SfxTabPage(pPage, pController, "cui/ui/textflowpage.ui", "TextFlowPage", &rAttr)
+ : SfxTabPage(pPage, pController, u"cui/ui/textflowpage.ui"_ustr, u"TextFlowPage"_ustr, &rAttr)
, bPageBreak(true)
, bHtmlMode(false)
, nStdPos(0)
// Hyphenation
- , m_xHyphenBox(m_xBuilder->weld_check_button("checkAuto"))
- , m_xHyphenNoCapsBox(m_xBuilder->weld_check_button("checkNoCaps"))
- , m_xBeforeText(m_xBuilder->weld_label("labelLineBegin"))
- , m_xExtHyphenBeforeBox(m_xBuilder->weld_spin_button("spinLineEnd"))
- , m_xAfterText(m_xBuilder->weld_label("labelLineEnd"))
- , m_xExtHyphenAfterBox(m_xBuilder->weld_spin_button("spinLineBegin"))
- , m_xMaxHyphenLabel(m_xBuilder->weld_label("labelMaxNum"))
- , m_xMaxHyphenEdit(m_xBuilder->weld_spin_button("spinMaxNum"))
+ , m_xHyphenBox(m_xBuilder->weld_check_button(u"checkAuto"_ustr))
+ , m_xHyphenNoCapsBox(m_xBuilder->weld_check_button(u"checkNoCaps"_ustr))
+ , m_xHyphenNoLastWordBox(m_xBuilder->weld_check_button(u"checkNoLastWord"_ustr))
+ , m_xBeforeText(m_xBuilder->weld_label(u"labelLineBegin"_ustr))
+ , m_xExtHyphenBeforeBox(m_xBuilder->weld_spin_button(u"spinLineEnd"_ustr))
+ , m_xAfterText(m_xBuilder->weld_label(u"labelLineEnd"_ustr))
+ , m_xExtHyphenAfterBox(m_xBuilder->weld_spin_button(u"spinLineBegin"_ustr))
+ , m_xCompoundBeforeText(m_xBuilder->weld_label(u"labelCompoundLineEnd"_ustr))
+ , m_xExtCompoundHyphenBeforeBox(m_xBuilder->weld_spin_button(u"spinCompoundLineEnd"_ustr))
+ , m_xMaxHyphenLabel(m_xBuilder->weld_label(u"labelMaxNum"_ustr))
+ , m_xMaxHyphenEdit(m_xBuilder->weld_spin_button(u"spinMaxNum"_ustr))
+ , m_xMinWordLabel(m_xBuilder->weld_label(u"labelMinLen"_ustr))
+ , m_xMinWordLength(m_xBuilder->weld_spin_button(u"spinMinLen"_ustr))
+ , m_xHyphenZoneLabel(m_xBuilder->weld_label(u"labelHyphenZone"_ustr))
+ , m_aHyphenZone(m_xBuilder->weld_metric_spin_button(u"spinHyphenZone"_ustr, FieldUnit::CM))
//Page break
- , m_xPageBreakBox(m_xBuilder->weld_check_button("checkInsert"))
- , m_xBreakTypeFT(m_xBuilder->weld_label("labelType"))
- , m_xBreakTypeLB(m_xBuilder->weld_combo_box("comboBreakType"))
- , m_xBreakPositionFT(m_xBuilder->weld_label("labelPosition"))
- , m_xBreakPositionLB(m_xBuilder->weld_combo_box("comboBreakPosition"))
- , m_xApplyCollBtn(m_xBuilder->weld_check_button("checkPageStyle"))
- , m_xApplyCollBox(m_xBuilder->weld_combo_box("comboPageStyle"))
- , m_xPageNumBox(m_xBuilder->weld_check_button("labelPageNum"))
- , m_xPagenumEdit(m_xBuilder->weld_spin_button("spinPageNumber"))
+ , m_xPageBreakBox(m_xBuilder->weld_check_button(u"checkInsert"_ustr))
+ , m_xBreakTypeFT(m_xBuilder->weld_label(u"labelType"_ustr))
+ , m_xBreakTypeLB(m_xBuilder->weld_combo_box(u"comboBreakType"_ustr))
+ , m_xBreakPositionFT(m_xBuilder->weld_label(u"labelPosition"_ustr))
+ , m_xBreakPositionLB(m_xBuilder->weld_combo_box(u"comboBreakPosition"_ustr))
+ , m_xApplyCollBtn(m_xBuilder->weld_check_button(u"checkPageStyle"_ustr))
+ , m_xApplyCollBox(m_xBuilder->weld_combo_box(u"comboPageStyle"_ustr))
+ , m_xPageNumBox(m_xBuilder->weld_check_button(u"labelPageNum"_ustr))
+ , m_xPagenumEdit(m_xBuilder->weld_spin_button(u"spinPageNumber"_ustr))
// Options
- , m_xKeepTogetherBox(m_xBuilder->weld_check_button("checkSplitPara"))
- , m_xKeepParaBox(m_xBuilder->weld_check_button("checkKeepPara"))
- , m_xOrphanBox(m_xBuilder->weld_check_button("checkOrphan"))
- , m_xOrphanRowNo(m_xBuilder->weld_spin_button("spinOrphan"))
- , m_xOrphanRowLabel(m_xBuilder->weld_label("labelOrphan"))
- , m_xWidowBox(m_xBuilder->weld_check_button("checkWidow"))
- , m_xWidowRowNo(m_xBuilder->weld_spin_button("spinWidow"))
- , m_xWidowRowLabel(m_xBuilder->weld_label("labelWidow"))
+ , m_xAllowSplitBox(m_xBuilder->weld_check_button(u"checkSplitPara"_ustr))
+ , m_xKeepParaBox(m_xBuilder->weld_check_button(u"checkKeepPara"_ustr))
+ , m_xOrphanBox(m_xBuilder->weld_check_button(u"checkOrphan"_ustr))
+ , m_xOrphanRowNo(m_xBuilder->weld_spin_button(u"spinOrphan"_ustr))
+ , m_xOrphanRowLabel(m_xBuilder->weld_label(u"labelOrphan"_ustr))
+ , m_xWidowBox(m_xBuilder->weld_check_button(u"checkWidow"_ustr))
+ , m_xWidowRowNo(m_xBuilder->weld_spin_button(u"spinWidow"_ustr))
+ , m_xWidowRowLabel(m_xBuilder->weld_label(u"labelWidow"_ustr))
+ // Avoid hyphenation across
+ , m_xAcrossText(m_xBuilder->weld_label(u"labelHyphenAcross"_ustr))
+ , m_xAcrossParagraphBox(m_xBuilder->weld_check_button(u"checkAcrossParagraph"_ustr))
+ , m_xAcrossColumnBox(m_xBuilder->weld_check_button(u"checkAcrossColumn"_ustr))
+ , m_xAcrossPageBox(m_xBuilder->weld_check_button(u"checkAcrossPage"_ustr))
+ , m_xAcrossSpreadBox(m_xBuilder->weld_check_button(u"checkAcrossSpread"_ustr))
{
// this page needs ExchangeSupport
SetExchangeSupport();
m_xHyphenBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, HyphenClickHdl_Impl));
m_xPageBreakBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, PageBreakHdl_Impl));
- m_xKeepTogetherBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, KeepTogetherHdl_Impl));
+ m_xAllowSplitBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, AllowSplitHdl_Impl));
m_xWidowBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, WidowHdl_Impl));
m_xOrphanBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, OrphanHdl_Impl));
m_xApplyCollBtn->connect_toggled(LINK(this, SvxExtParagraphTabPage, ApplyCollClickHdl_Impl));
@@ -1932,9 +2291,12 @@ SvxExtParagraphTabPage::SvxExtParagraphTabPage(weld::Container* pPage, weld::Dia
m_xBreakPositionLB->connect_changed(LINK(this, SvxExtParagraphTabPage, PageBreakPosHdl_Impl));
m_xPageNumBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, PageNumBoxClickHdl_Impl));
m_xKeepParaBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, KeepParaBoxClickHdl_Impl));
+ m_xAcrossParagraphBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, AcrossParagraphHdl_Impl));
+ m_xAcrossColumnBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, AcrossColumnHdl_Impl));
+ m_xAcrossPageBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, AcrossPageHdl_Impl));
+ m_xAcrossSpreadBox->connect_toggled(LINK(this, SvxExtParagraphTabPage, AcrossSpreadHdl_Impl));
- SfxObjectShell* pSh = SfxObjectShell::Current();
- if ( pSh )
+ if (SfxObjectShell* pSh = SfxObjectShell::Current())
{
SfxStyleSheetBasePool* pPool = pSh->GetStyleSheetPool();
SfxStyleSheetBase* pStyle = pPool->First(SfxStyleFamily::Page);
@@ -1960,14 +2322,26 @@ SvxExtParagraphTabPage::SvxExtParagraphTabPage(weld::Container* pPage, weld::Dia
bHtmlMode = true;
m_xHyphenBox->set_sensitive(false);
m_xHyphenNoCapsBox->set_sensitive(false);
+ m_xHyphenNoLastWordBox->set_sensitive(false);
m_xBeforeText->set_sensitive(false);
m_xExtHyphenBeforeBox->set_sensitive(false);
m_xAfterText->set_sensitive(false);
m_xExtHyphenAfterBox->set_sensitive(false);
+ m_xCompoundBeforeText->set_sensitive(false);
+ m_xExtCompoundHyphenBeforeBox->set_sensitive(false);
m_xMaxHyphenLabel->set_sensitive(false);
m_xMaxHyphenEdit->set_sensitive(false);
+ m_xMinWordLabel->set_sensitive(false);
+ m_xMinWordLength->set_sensitive(false);
+ m_xHyphenZoneLabel->set_sensitive(false);
+ m_aHyphenZone.set_sensitive(false);
m_xPageNumBox->set_sensitive(false);
m_xPagenumEdit->set_sensitive(false);
+ m_xAcrossText->set_sensitive(false);
+ m_xAcrossParagraphBox->set_sensitive(false);
+ m_xAcrossColumnBox->set_sensitive(false);
+ m_xAcrossPageBox->set_sensitive(false);
+ m_xAcrossSpreadBox->set_sensitive(false);
// no column break in HTML
m_xBreakTypeLB->remove(1);
}
@@ -2022,17 +2396,17 @@ IMPL_LINK(SvxExtParagraphTabPage, PageBreakHdl_Impl, weld::Toggleable&, rToggle,
PageBreakHdl();
}
-void SvxExtParagraphTabPage::KeepTogetherHdl()
+void SvxExtParagraphTabPage::AllowSplitHdl()
{
- bool bEnable = m_xKeepTogetherBox->get_state() == TRISTATE_FALSE;
+ bool bEnable = m_xAllowSplitBox->get_state() == TRISTATE_TRUE;
m_xWidowBox->set_sensitive(bEnable);
m_xOrphanBox->set_sensitive(bEnable);
}
-IMPL_LINK(SvxExtParagraphTabPage, KeepTogetherHdl_Impl, weld::Toggleable&, rToggle, void)
+IMPL_LINK(SvxExtParagraphTabPage, AllowSplitHdl_Impl, weld::Toggleable&, rToggle, void)
{
- aKeepTogetherState.ButtonToggled(rToggle);
- KeepTogetherHdl();
+ aAllowSplitState.ButtonToggled(rToggle);
+ AllowSplitHdl();
}
void SvxExtParagraphTabPage::WidowHdl()
@@ -2042,11 +2416,11 @@ void SvxExtParagraphTabPage::WidowHdl()
case TRISTATE_TRUE:
m_xWidowRowNo->set_sensitive(true);
m_xWidowRowLabel->set_sensitive(true);
- m_xKeepTogetherBox->set_sensitive(false);
+ m_xAllowSplitBox->set_sensitive(true);
break;
case TRISTATE_FALSE:
if (m_xOrphanBox->get_state() == TRISTATE_FALSE)
- m_xKeepTogetherBox->set_sensitive(true);
+ m_xAllowSplitBox->set_sensitive(false);
[[fallthrough]];
case TRISTATE_INDET:
m_xWidowRowNo->set_sensitive(false);
@@ -2074,12 +2448,12 @@ void SvxExtParagraphTabPage::OrphanHdl()
case TRISTATE_TRUE:
m_xOrphanRowNo->set_sensitive(true);
m_xOrphanRowLabel->set_sensitive(true);
- m_xKeepTogetherBox->set_sensitive(false);
+ m_xAllowSplitBox->set_sensitive(true);
break;
case TRISTATE_FALSE:
if (m_xWidowBox->get_state() == TRISTATE_FALSE)
- m_xKeepTogetherBox->set_sensitive(true);
+ m_xAllowSplitBox->set_sensitive(true);
[[fallthrough]];
case TRISTATE_INDET:
m_xOrphanRowNo->set_sensitive(false);
@@ -2092,12 +2466,24 @@ void SvxExtParagraphTabPage::HyphenClickHdl()
{
bool bEnable = m_xHyphenBox->get_state() == TRISTATE_TRUE;
m_xHyphenNoCapsBox->set_sensitive(bEnable);
+ m_xHyphenNoLastWordBox->set_sensitive(bEnable);
m_xBeforeText->set_sensitive(bEnable);
m_xExtHyphenBeforeBox->set_sensitive(bEnable);
m_xAfterText->set_sensitive(bEnable);
m_xExtHyphenAfterBox->set_sensitive(bEnable);
+ m_xCompoundBeforeText->set_sensitive(bEnable);
+ m_xExtCompoundHyphenBeforeBox->set_sensitive(bEnable);
m_xMaxHyphenLabel->set_sensitive(bEnable);
m_xMaxHyphenEdit->set_sensitive(bEnable);
+ m_xMinWordLabel->set_sensitive(bEnable);
+ m_xMinWordLength->set_sensitive(bEnable);
+ m_xHyphenZoneLabel->set_sensitive(bEnable);
+ m_aHyphenZone.set_sensitive(bEnable);
+ m_xAcrossText->set_sensitive(bEnable);
+ m_xAcrossParagraphBox->set_sensitive(bEnable);
+ m_xAcrossColumnBox->set_sensitive(bEnable);
+ m_xAcrossPageBox->set_sensitive(bEnable);
+ m_xAcrossSpreadBox->set_sensitive(bEnable);
m_xHyphenBox->set_state(bEnable ? TRISTATE_TRUE : TRISTATE_FALSE);
}
@@ -2199,11 +2585,57 @@ void SvxExtParagraphTabPage::PageCreated(const SfxAllItemSet& aSet)
DisablePageBreak();
}
+IMPL_LINK(SvxExtParagraphTabPage, AcrossParagraphHdl_Impl, weld::Toggleable&, rToggle, void)
+{
+ aAcrossParagraphState.ButtonToggled(rToggle);
+ if (m_xAcrossParagraphBox->get_state() != TRISTATE_TRUE )
+ {
+ m_xAcrossColumnBox->set_state( TRISTATE_FALSE );
+ m_xAcrossPageBox->set_state( TRISTATE_FALSE );
+ m_xAcrossSpreadBox->set_state( TRISTATE_FALSE );
+ }
+}
+
+IMPL_LINK(SvxExtParagraphTabPage, AcrossColumnHdl_Impl, weld::Toggleable&, rToggle, void)
+{
+ aAcrossColumnState.ButtonToggled(rToggle);
+ if (m_xAcrossColumnBox->get_state() != TRISTATE_TRUE )
+ {
+ m_xAcrossPageBox->set_state( TRISTATE_FALSE );
+ m_xAcrossSpreadBox->set_state( TRISTATE_FALSE );
+ }
+ else
+ m_xAcrossParagraphBox->set_state( TRISTATE_TRUE );
+}
+
+IMPL_LINK(SvxExtParagraphTabPage, AcrossPageHdl_Impl, weld::Toggleable&, rToggle, void)
+{
+ aAcrossPageState.ButtonToggled(rToggle);
+ if (m_xAcrossPageBox->get_state() == TRISTATE_TRUE )
+ {
+ m_xAcrossParagraphBox->set_state( TRISTATE_TRUE );
+ m_xAcrossColumnBox->set_state( TRISTATE_TRUE );
+ }
+ else
+ m_xAcrossSpreadBox->set_state( TRISTATE_FALSE );
+}
+
+IMPL_LINK(SvxExtParagraphTabPage, AcrossSpreadHdl_Impl, weld::Toggleable&, rToggle, void)
+{
+ aAcrossSpreadState.ButtonToggled(rToggle);
+ if (m_xAcrossSpreadBox->get_state() == TRISTATE_TRUE )
+ {
+ m_xAcrossParagraphBox->set_state( TRISTATE_TRUE );
+ m_xAcrossColumnBox->set_state( TRISTATE_TRUE );
+ m_xAcrossPageBox->set_state( TRISTATE_TRUE );
+ }
+}
+
SvxAsianTabPage::SvxAsianTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
- : SfxTabPage(pPage, pController, "cui/ui/asiantypography.ui", "AsianTypography", &rSet)
- , m_xForbiddenRulesCB(m_xBuilder->weld_check_button("checkForbidList"))
- , m_xHangingPunctCB(m_xBuilder->weld_check_button("checkHangPunct"))
- , m_xScriptSpaceCB(m_xBuilder->weld_check_button("checkApplySpacing"))
+ : SfxTabPage(pPage, pController, u"cui/ui/asiantypography.ui"_ustr, u"AsianTypography"_ustr, &rSet)
+ , m_xForbiddenRulesCB(m_xBuilder->weld_check_button(u"checkForbidList"_ustr))
+ , m_xHangingPunctCB(m_xBuilder->weld_check_button(u"checkHangPunct"_ustr))
+ , m_xScriptSpaceCB(m_xBuilder->weld_check_button(u"checkApplySpacing"_ustr))
{
}
@@ -2228,7 +2660,7 @@ bool SvxAsianTabPage::FillItemSet( SfxItemSet* rSet )
if (m_xScriptSpaceCB->get_sensitive() && m_xScriptSpaceCB->get_state_changed_from_saved())
{
std::unique_ptr<SfxBoolItem> pNewItem(static_cast<SfxBoolItem*>(rSet->Get(
- pPool->GetWhich(SID_ATTR_PARA_SCRIPTSPACE)).Clone()));
+ pPool->GetWhichIDFromSlotID(SID_ATTR_PARA_SCRIPTSPACE)).Clone()));
pNewItem->SetValue(m_xScriptSpaceCB->get_active());
rSet->Put(std::move(pNewItem));
bRet = true;
@@ -2236,7 +2668,7 @@ bool SvxAsianTabPage::FillItemSet( SfxItemSet* rSet )
if (m_xHangingPunctCB->get_sensitive() && m_xHangingPunctCB->get_state_changed_from_saved())
{
std::unique_ptr<SfxBoolItem> pNewItem(static_cast<SfxBoolItem*>(rSet->Get(
- pPool->GetWhich(SID_ATTR_PARA_HANGPUNCTUATION)).Clone()));
+ pPool->GetWhichIDFromSlotID(SID_ATTR_PARA_HANGPUNCTUATION)).Clone()));
pNewItem->SetValue(m_xHangingPunctCB->get_active());
rSet->Put(std::move(pNewItem));
bRet = true;
@@ -2244,7 +2676,7 @@ bool SvxAsianTabPage::FillItemSet( SfxItemSet* rSet )
if (m_xForbiddenRulesCB->get_sensitive() && m_xForbiddenRulesCB->get_state_changed_from_saved())
{
std::unique_ptr<SfxBoolItem> pNewItem(static_cast<SfxBoolItem*>(rSet->Get(
- pPool->GetWhich(SID_ATTR_PARA_FORBIDDEN_RULES)).Clone()));
+ pPool->GetWhichIDFromSlotID(SID_ATTR_PARA_FORBIDDEN_RULES)).Clone()));
pNewItem->SetValue(m_xForbiddenRulesCB->get_active());
rSet->Put(std::move(pNewItem));
bRet = true;
@@ -2254,7 +2686,7 @@ bool SvxAsianTabPage::FillItemSet( SfxItemSet* rSet )
static void lcl_SetBox(const SfxItemSet& rSet, sal_uInt16 nSlotId, weld::CheckButton& rBox)
{
- sal_uInt16 _nWhich = rSet.GetPool()->GetWhich(nSlotId);
+ sal_uInt16 _nWhich = rSet.GetPool()->GetWhichIDFromSlotID(nSlotId);
SfxItemState eState = rSet.GetItemState(_nWhich);
if( eState == SfxItemState::UNKNOWN || eState == SfxItemState::DISABLED )
rBox.set_sensitive(false);
diff --git a/cui/source/tabpages/swpossizetabpage.cxx b/cui/source/tabpages/swpossizetabpage.cxx
index 5e5352aff400..6789caaf477f 100644
--- a/cui/source/tabpages/swpossizetabpage.cxx
+++ b/cui/source/tabpages/swpossizetabpage.cxx
@@ -19,6 +19,7 @@
#include <memory>
#include <cstddef>
+#include <type_traits>
#include <swpossizetabpage.hxx>
#include <svx/dlgutil.hxx>
#include <svx/anchorid.hxx>
@@ -36,6 +37,9 @@
#include <svx/svxids.hrc>
#include <svtools/unitconv.hxx>
#include <osl/diagnose.h>
+#include <svl/grabbagitem.hxx>
+
+#include <bitmaps.hlst>
using namespace ::com::sun::star::text;
@@ -205,7 +209,7 @@ FrmMap const aHFlyHtmlMap[] =
// #i18732# - own vertical alignment map for to frame anchored objects
// #i22305#
-#define VERT_FRAME_REL (LB::VertFrame|LB::FlyVertPrintArea)
+#define VERT_FRAME_REL (LB::FlyVertFrame|LB::FlyVertPrintArea)
FrmMap const aVFrameMap[] =
{
@@ -379,66 +383,67 @@ FrmMap const aVAsCharHtmlMap[] =
static std::size_t lcl_GetFrmMapCount(const FrmMap* pMap)
{
- if( pMap )
- {
- if( pMap == aVParaHtmlMap )
- return SAL_N_ELEMENTS(aVParaHtmlMap);
- if( pMap == aVAsCharHtmlMap )
- return SAL_N_ELEMENTS( aVAsCharHtmlMap );
- if( pMap == aHParaHtmlMap )
- return SAL_N_ELEMENTS( aHParaHtmlMap );
- if( pMap == aHParaHtmlAbsMap )
- return SAL_N_ELEMENTS( aHParaHtmlAbsMap );
- if( pMap == aVPageMap )
- return SAL_N_ELEMENTS( aVPageMap );
- if( pMap == aVPageHtmlMap )
- return SAL_N_ELEMENTS( aVPageHtmlMap );
- if( pMap == aVAsCharMap )
- return SAL_N_ELEMENTS( aVAsCharMap );
- if( pMap == aVParaMap )
- return SAL_N_ELEMENTS( aVParaMap );
- if( pMap == aHParaMap )
- return SAL_N_ELEMENTS( aHParaMap );
- if( pMap == aHFrameMap )
- return SAL_N_ELEMENTS( aHFrameMap );
- if( pMap == aVFrameMap )
- return SAL_N_ELEMENTS( aVFrameMap );
- if( pMap == aHCharMap )
- return SAL_N_ELEMENTS( aHCharMap );
- if( pMap == aHCharHtmlMap )
- return SAL_N_ELEMENTS( aHCharHtmlMap );
- if( pMap == aHCharHtmlAbsMap )
- return SAL_N_ELEMENTS( aHCharHtmlAbsMap );
- if( pMap == aVCharMap )
- return SAL_N_ELEMENTS( aVCharMap );
- if( pMap == aVCharHtmlMap )
- return SAL_N_ELEMENTS( aVCharHtmlMap );
- if( pMap == aVCharHtmlAbsMap )
- return SAL_N_ELEMENTS( aVCharHtmlAbsMap );
- if( pMap == aHPageHtmlMap )
- return SAL_N_ELEMENTS( aHPageHtmlMap );
- if( pMap == aHFlyHtmlMap )
- return SAL_N_ELEMENTS( aHFlyHtmlMap );
- if( pMap == aVFlyHtmlMap )
- return SAL_N_ELEMENTS( aVFlyHtmlMap );
- if( pMap == aVMultiSelectionMap )
- return SAL_N_ELEMENTS( aVMultiSelectionMap );
- if( pMap == aHMultiSelectionMap )
- return SAL_N_ELEMENTS( aHMultiSelectionMap );
- return SAL_N_ELEMENTS(aHPageMap);
- }
- return 0;
+ if( !pMap )
+ return 0;
+
+ if( pMap == aVParaHtmlMap )
+ return std::size(aVParaHtmlMap);
+ if( pMap == aVAsCharHtmlMap )
+ return std::size( aVAsCharHtmlMap );
+ if( pMap == aHParaHtmlMap )
+ return std::size( aHParaHtmlMap );
+ if( pMap == aHParaHtmlAbsMap )
+ return std::size( aHParaHtmlAbsMap );
+ if( pMap == aVPageMap )
+ return std::size( aVPageMap );
+ if( pMap == aVPageHtmlMap )
+ return std::size( aVPageHtmlMap );
+ if( pMap == aVAsCharMap )
+ return std::size( aVAsCharMap );
+ if( pMap == aVParaMap )
+ return std::size( aVParaMap );
+ if( pMap == aHParaMap )
+ return std::size( aHParaMap );
+ if( pMap == aHFrameMap )
+ return std::size( aHFrameMap );
+ if( pMap == aVFrameMap )
+ return std::size( aVFrameMap );
+ if( pMap == aHCharMap )
+ return std::size( aHCharMap );
+ if( pMap == aHCharHtmlMap )
+ return std::size( aHCharHtmlMap );
+ if( pMap == aHCharHtmlAbsMap )
+ return std::size( aHCharHtmlAbsMap );
+ if( pMap == aVCharMap )
+ return std::size( aVCharMap );
+ if( pMap == aVCharHtmlMap )
+ return std::size( aVCharHtmlMap );
+ if( pMap == aVCharHtmlAbsMap )
+ return std::size( aVCharHtmlAbsMap );
+ if( pMap == aHPageHtmlMap )
+ return std::size( aHPageHtmlMap );
+ if( pMap == aHFlyHtmlMap )
+ return std::size( aHFlyHtmlMap );
+ if( pMap == aVFlyHtmlMap )
+ return std::size( aVFlyHtmlMap );
+ if( pMap == aVMultiSelectionMap )
+ return std::size( aVMultiSelectionMap );
+ if( pMap == aHMultiSelectionMap )
+ return std::size( aHMultiSelectionMap );
+ return std::size(aHPageMap);
}
static SvxSwFramePosString::StringId lcl_ChangeResIdToVerticalOrRTL(
- SvxSwFramePosString::StringId eStringId, bool bVertical, bool bRTL)
+ SvxSwFramePosString::StringId eStringId, bool bVertical, bool bRTL, bool bDontMirrorRTL)
{
//special handling of STR_FROMLEFT
if(SvxSwFramePosString::FROMLEFT == eStringId)
{
+ bool bMirrorRtlDrawObjs = !bDontMirrorRTL;
+ bool bSwapLR = bRTL && bMirrorRtlDrawObjs;
eStringId = bVertical ?
bRTL ? SvxSwFramePosString::FROMBOTTOM : SvxSwFramePosString::FROMTOP :
- bRTL ? SvxSwFramePosString::FROMRIGHT : SvxSwFramePosString::FROMLEFT;
+ bSwapLR ? SvxSwFramePosString::FROMRIGHT : SvxSwFramePosString::FROMLEFT;
return eStringId;
}
if(bVertical)
@@ -466,19 +471,19 @@ static SvxSwFramePosString::StringId lcl_ChangeResIdToVerticalOrRTL(
{SvxSwFramePosString::REL_FRM_TOP, SvxSwFramePosString::REL_FRM_LEFT },
{SvxSwFramePosString::REL_FRM_BOTTOM, SvxSwFramePosString::REL_FRM_RIGHT }
};
- for(size_t nIndex = 0; nIndex < SAL_N_ELEMENTS(aHoriIds); ++nIndex)
+ for(const auto &a : aHoriIds)
{
- if(aHoriIds[nIndex].eHori == eStringId)
+ if(a.eHori == eStringId)
{
- eStringId = aHoriIds[nIndex].eVert;
+ eStringId = a.eVert;
return eStringId;
}
}
- for(size_t nIndex = 0; nIndex < SAL_N_ELEMENTS(aVertIds); ++nIndex)
+ for(const auto &a : aVertIds)
{
- if(aVertIds[nIndex].eHori == eStringId)
+ if(a.eHori == eStringId)
{
- eStringId = aVertIds[nIndex].eVert;
+ eStringId = a.eVert;
break;
}
}
@@ -524,7 +529,7 @@ static LB lcl_GetLBRelationsForStrID(const FrmMap* _pMap,
}
SvxSwPosSizeTabPage::SvxSwPosSizeTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/swpossizepage.ui", "SwPosSizePage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/swpossizepage.ui"_ustr, u"SwPosSizePage"_ustr, &rInAttrs)
, m_pVMap(nullptr)
, m_pHMap(nullptr)
, m_pSdrView(nullptr)
@@ -539,32 +544,37 @@ SvxSwPosSizeTabPage::SvxSwPosSizeTabPage(weld::Container* pPage, weld::DialogCon
, m_bIsMultiSelection(false)
, m_bIsInRightToLeft(false)
, m_nProtectSizeState(TRISTATE_FALSE)
- , m_xWidthMF(m_xBuilder->weld_metric_spin_button("width", FieldUnit::CM))
- , m_xHeightMF(m_xBuilder->weld_metric_spin_button("height", FieldUnit::CM))
- , m_xKeepRatioCB(m_xBuilder->weld_check_button("ratio"))
- , m_xToPageRB(m_xBuilder->weld_radio_button("topage"))
- , m_xToParaRB(m_xBuilder->weld_radio_button("topara"))
- , m_xToCharRB(m_xBuilder->weld_radio_button("tochar"))
- , m_xAsCharRB(m_xBuilder->weld_radio_button("aschar"))
- , m_xToFrameRB(m_xBuilder->weld_radio_button("toframe"))
- , m_xPositionCB(m_xBuilder->weld_check_button("pos"))
- , m_xSizeCB(m_xBuilder->weld_check_button("size"))
- , m_xPosFrame(m_xBuilder->weld_widget("posframe"))
- , m_xHoriFT(m_xBuilder->weld_label("horiposft"))
- , m_xHoriLB(m_xBuilder->weld_combo_box("horipos"))
- , m_xHoriByFT(m_xBuilder->weld_label("horibyft"))
- , m_xHoriByMF(m_xBuilder->weld_metric_spin_button("byhori", FieldUnit::CM))
- , m_xHoriToFT(m_xBuilder->weld_label("horitoft"))
- , m_xHoriToLB(m_xBuilder->weld_combo_box("horianchor"))
- , m_xHoriMirrorCB(m_xBuilder->weld_check_button("mirror"))
- , m_xVertFT(m_xBuilder->weld_label("vertposft"))
- , m_xVertLB(m_xBuilder->weld_combo_box("vertpos"))
- , m_xVertByFT(m_xBuilder->weld_label("vertbyft"))
- , m_xVertByMF(m_xBuilder->weld_metric_spin_button("byvert", FieldUnit::CM))
- , m_xVertToFT(m_xBuilder->weld_label("verttoft"))
- , m_xVertToLB(m_xBuilder->weld_combo_box("vertanchor"))
- , m_xFollowCB(m_xBuilder->weld_check_button("followtextflow"))
- , m_xExampleWN(new weld::CustomWeld(*m_xBuilder, "preview", m_aExampleWN))
+ , m_aRatioTop(ConnectorType::Top)
+ , m_aRatioBottom(ConnectorType::Bottom)
+ , m_xWidthMF(m_xBuilder->weld_metric_spin_button(u"width"_ustr, FieldUnit::CM))
+ , m_xHeightMF(m_xBuilder->weld_metric_spin_button(u"height"_ustr, FieldUnit::CM))
+ , m_xKeepRatioCB(m_xBuilder->weld_check_button(u"ratio"_ustr))
+ , m_xCbxScaleImg(m_xBuilder->weld_image(u"imRatio"_ustr))
+ , m_xImgRatioTop(new weld::CustomWeld(*m_xBuilder, u"daRatioTop"_ustr, m_aRatioTop))
+ , m_xImgRatioBottom(new weld::CustomWeld(*m_xBuilder, u"daRatioBottom"_ustr, m_aRatioBottom))
+ , m_xToPageRB(m_xBuilder->weld_radio_button(u"topage"_ustr))
+ , m_xToParaRB(m_xBuilder->weld_radio_button(u"topara"_ustr))
+ , m_xToCharRB(m_xBuilder->weld_radio_button(u"tochar"_ustr))
+ , m_xAsCharRB(m_xBuilder->weld_radio_button(u"aschar"_ustr))
+ , m_xToFrameRB(m_xBuilder->weld_radio_button(u"toframe"_ustr))
+ , m_xPositionCB(m_xBuilder->weld_check_button(u"pos"_ustr))
+ , m_xSizeCB(m_xBuilder->weld_check_button(u"size"_ustr))
+ , m_xPosFrame(m_xBuilder->weld_widget(u"posframe"_ustr))
+ , m_xHoriFT(m_xBuilder->weld_label(u"horiposft"_ustr))
+ , m_xHoriLB(m_xBuilder->weld_combo_box(u"horipos"_ustr))
+ , m_xHoriByFT(m_xBuilder->weld_label(u"horibyft"_ustr))
+ , m_xHoriByMF(m_xBuilder->weld_metric_spin_button(u"byhori"_ustr, FieldUnit::CM))
+ , m_xHoriToFT(m_xBuilder->weld_label(u"horitoft"_ustr))
+ , m_xHoriToLB(m_xBuilder->weld_combo_box(u"horianchor"_ustr))
+ , m_xHoriMirrorCB(m_xBuilder->weld_check_button(u"mirror"_ustr))
+ , m_xVertFT(m_xBuilder->weld_label(u"vertposft"_ustr))
+ , m_xVertLB(m_xBuilder->weld_combo_box(u"vertpos"_ustr))
+ , m_xVertByFT(m_xBuilder->weld_label(u"vertbyft"_ustr))
+ , m_xVertByMF(m_xBuilder->weld_metric_spin_button(u"byvert"_ustr, FieldUnit::CM))
+ , m_xVertToFT(m_xBuilder->weld_label(u"verttoft"_ustr))
+ , m_xVertToLB(m_xBuilder->weld_combo_box(u"vertanchor"_ustr))
+ , m_xFollowCB(m_xBuilder->weld_check_button(u"followtextflow"_ustr))
+ , m_xExampleWN(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, m_aExampleWN))
{
setOptimalFrmWidth();
setOptimalRelWidth();
@@ -575,6 +585,20 @@ SvxSwPosSizeTabPage::SvxSwPosSizeTabPage(weld::Container* pPage, weld::DialogCon
SetFieldUnit(*m_xWidthMF , eDlgUnit, true);
SetFieldUnit(*m_xHeightMF, eDlgUnit, true);
+ // vertical alignment = fill makes the drawingarea expand the associated spinedits so we have to size it here
+ const sal_Int16 aHeight
+ = static_cast<sal_Int16>(std::max(int(m_xKeepRatioCB->get_preferred_size().getHeight() / 2
+ - m_xWidthMF->get_preferred_size().getHeight() / 2),
+ 12));
+ const sal_Int16 aWidth
+ = static_cast<sal_Int16>(m_xKeepRatioCB->get_preferred_size().getWidth() / 2);
+ m_xImgRatioTop->set_size_request(aWidth, aHeight);
+ m_xImgRatioBottom->set_size_request(aWidth, aHeight);
+ //init needed for gtk3
+ m_xCbxScaleImg->set_from_icon_name(m_xKeepRatioCB->get_active() ? RID_SVXBMP_LOCKED
+ : RID_SVXBMP_UNLOCKED);
+ m_xKeepRatioCB->connect_toggled(LINK(this, SvxSwPosSizeTabPage, RatioHdl_Impl));
+
SetExchangeSupport();
Link<weld::Widget&,void> aLk3 = LINK(this, SvxSwPosSizeTabPage, RangeModifyHdl);
@@ -627,27 +651,27 @@ namespace
void SvxSwPosSizeTabPage::setOptimalFrmWidth()
{
static const FrmMaps aMaps[] = {
- { aHPageMap, SAL_N_ELEMENTS(aHPageMap) },
- { aHPageHtmlMap, SAL_N_ELEMENTS(aHPageHtmlMap) },
- { aVPageMap, SAL_N_ELEMENTS(aVPageMap) },
- { aVPageHtmlMap, SAL_N_ELEMENTS(aVPageHtmlMap) },
- { aHFrameMap, SAL_N_ELEMENTS(aHFrameMap) },
- { aHFlyHtmlMap, SAL_N_ELEMENTS(aHFlyHtmlMap) },
- { aVFrameMap, SAL_N_ELEMENTS(aVFrameMap) },
- { aVFlyHtmlMap, SAL_N_ELEMENTS(aVFlyHtmlMap) },
- { aHParaMap, SAL_N_ELEMENTS(aHParaMap) },
- { aHParaHtmlMap, SAL_N_ELEMENTS(aHParaHtmlMap) },
- { aHParaHtmlAbsMap, SAL_N_ELEMENTS(aHParaHtmlAbsMap) },
- { aVParaMap, SAL_N_ELEMENTS(aVParaMap) },
- { aVParaHtmlMap, SAL_N_ELEMENTS(aVParaHtmlMap) },
- { aHCharMap, SAL_N_ELEMENTS(aHCharMap) },
- { aHCharHtmlMap, SAL_N_ELEMENTS(aHCharHtmlMap) },
- { aHCharHtmlAbsMap, SAL_N_ELEMENTS(aHCharHtmlAbsMap) },
- { aVCharMap, SAL_N_ELEMENTS(aVCharMap) },
- { aVCharHtmlMap, SAL_N_ELEMENTS(aVCharHtmlMap) },
- { aVCharHtmlAbsMap, SAL_N_ELEMENTS(aVCharHtmlAbsMap) },
- { aVAsCharMap, SAL_N_ELEMENTS(aVAsCharMap) },
- { aVAsCharHtmlMap, SAL_N_ELEMENTS(aVAsCharHtmlMap) }
+ { aHPageMap, std::size(aHPageMap) },
+ { aHPageHtmlMap, std::size(aHPageHtmlMap) },
+ { aVPageMap, std::size(aVPageMap) },
+ { aVPageHtmlMap, std::size(aVPageHtmlMap) },
+ { aHFrameMap, std::size(aHFrameMap) },
+ { aHFlyHtmlMap, std::size(aHFlyHtmlMap) },
+ { aVFrameMap, std::size(aVFrameMap) },
+ { aVFlyHtmlMap, std::size(aVFlyHtmlMap) },
+ { aHParaMap, std::size(aHParaMap) },
+ { aHParaHtmlMap, std::size(aHParaHtmlMap) },
+ { aHParaHtmlAbsMap, std::size(aHParaHtmlAbsMap) },
+ { aVParaMap, std::size(aVParaMap) },
+ { aVParaHtmlMap, std::size(aVParaHtmlMap) },
+ { aHCharMap, std::size(aHCharMap) },
+ { aHCharHtmlMap, std::size(aHCharHtmlMap) },
+ { aHCharHtmlAbsMap, std::size(aHCharHtmlAbsMap) },
+ { aVCharMap, std::size(aVCharMap) },
+ { aVCharHtmlMap, std::size(aVCharHtmlMap) },
+ { aVCharHtmlAbsMap, std::size(aVCharHtmlAbsMap) },
+ { aVAsCharMap, std::size(aVAsCharMap) },
+ { aVAsCharHtmlMap, std::size(aVAsCharHtmlMap) }
};
std::vector<SvxSwFramePosString::StringId> aFrames;
@@ -686,8 +710,8 @@ namespace
void SvxSwPosSizeTabPage::setOptimalRelWidth()
{
static const RelationMaps aMaps[] = {
- { aRelationMap, SAL_N_ELEMENTS(aRelationMap) },
- { aAsCharRelationMap, SAL_N_ELEMENTS(aAsCharRelationMap) }
+ { aRelationMap, std::size(aRelationMap) },
+ { aAsCharRelationMap, std::size(aAsCharRelationMap) }
};
std::vector<SvxSwFramePosString::StringId> aRels;
@@ -728,7 +752,8 @@ WhichRangesContainer SvxSwPosSizeTabPage::GetRanges()
SID_ATTR_TRANSFORM_AUTOWIDTH, SID_ATTR_TRANSFORM_VERT_ORIENT,
SID_HTML_MODE, SID_HTML_MODE,
SID_SW_FOLLOW_TEXT_FLOW, SID_SW_FOLLOW_TEXT_FLOW,
- SID_ATTR_TRANSFORM_HORI_POSITION, SID_ATTR_TRANSFORM_VERT_POSITION
+ SID_ATTR_TRANSFORM_HORI_POSITION, SID_ATTR_TRANSFORM_VERT_POSITION,
+ SID_ATTR_CHAR_GRABBAG, SID_ATTR_CHAR_GRABBAG
>);
return ranges;
}
@@ -749,7 +774,7 @@ bool SvxSwPosSizeTabPage::FillItemSet( SfxItemSet* rSet)
rSet->InvalidateItem( SID_ATTR_TRANSFORM_PROTECT_POS );
else
rSet->Put(
- SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_PROTECT_POS ),
+ SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_POS,
m_xPositionCB->get_state() == TRISTATE_TRUE ) );
bModified = true;
}
@@ -760,7 +785,7 @@ bool SvxSwPosSizeTabPage::FillItemSet( SfxItemSet* rSet)
rSet->InvalidateItem( SID_ATTR_TRANSFORM_PROTECT_SIZE );
else
rSet->Put(
- SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_PROTECT_SIZE ),
+ SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_SIZE,
m_xSizeCB->get_state() == TRISTATE_TRUE ) );
bModified = true;
}
@@ -784,8 +809,8 @@ bool SvxSwPosSizeTabPage::FillItemSet( SfxItemSet* rSet)
nHoriByPos += m_aAnchorPos.X();
nVertByPos += m_aAnchorPos.Y();
- rSet->Put( SfxInt32Item( GetWhich( SID_ATTR_TRANSFORM_POS_X ), nHoriByPos ) );
- rSet->Put( SfxInt32Item( GetWhich( SID_ATTR_TRANSFORM_POS_Y ), nVertByPos ) );
+ rSet->Put( SfxInt32Item( SID_ATTR_TRANSFORM_POS_X, nHoriByPos ) );
+ rSet->Put( SfxInt32Item( SID_ATTR_TRANSFORM_POS_Y, nVertByPos ) );
bModified = true;
}
@@ -795,11 +820,11 @@ bool SvxSwPosSizeTabPage::FillItemSet( SfxItemSet* rSet)
if ( m_pHMap )
{
const SfxInt16Item& rHoriOrient =
- static_cast<const SfxInt16Item&>(rOldSet.Get( SID_ATTR_TRANSFORM_HORI_ORIENT));
+ rOldSet.Get( SID_ATTR_TRANSFORM_HORI_ORIENT );
const SfxInt16Item& rHoriRelation =
- static_cast<const SfxInt16Item&>(rOldSet.Get( SID_ATTR_TRANSFORM_HORI_RELATION));
+ rOldSet.Get( SID_ATTR_TRANSFORM_HORI_RELATION);
const SfxInt32Item& rHoriPosition =
- static_cast<const SfxInt32Item&>(rOldSet.Get( SID_ATTR_TRANSFORM_HORI_POSITION)) ;
+ rOldSet.Get( SID_ATTR_TRANSFORM_HORI_POSITION);
sal_uInt16 nMapPos = GetMapPos(m_pHMap, *m_xHoriLB);
short nAlign = GetAlignment(m_pHMap, nMapPos, *m_xHoriToLB);
@@ -824,11 +849,11 @@ bool SvxSwPosSizeTabPage::FillItemSet( SfxItemSet* rSet)
if ( m_pVMap )
{
const SfxInt16Item& rVertOrient =
- static_cast<const SfxInt16Item&>(rOldSet.Get( SID_ATTR_TRANSFORM_VERT_ORIENT));
+ rOldSet.Get( SID_ATTR_TRANSFORM_VERT_ORIENT);
const SfxInt16Item& rVertRelation =
- static_cast<const SfxInt16Item&>(rOldSet.Get( SID_ATTR_TRANSFORM_VERT_RELATION));
+ rOldSet.Get( SID_ATTR_TRANSFORM_VERT_RELATION);
const SfxInt32Item& rVertPosition =
- static_cast<const SfxInt32Item&>(rOldSet.Get( SID_ATTR_TRANSFORM_VERT_POSITION));
+ rOldSet.Get( SID_ATTR_TRANSFORM_VERT_POSITION);
sal_uInt16 nMapPos = GetMapPos(m_pVMap, *m_xVertLB);
short nAlign = GetAlignment(m_pVMap, nMapPos, *m_xVertToLB);
@@ -862,7 +887,7 @@ bool SvxSwPosSizeTabPage::FillItemSet( SfxItemSet* rSet)
{
std::unique_ptr<SfxBoolItem> pFollow(static_cast<SfxBoolItem*>(pItem->Clone()));
pFollow->SetValue(m_xFollowCB->get_active());
- bModified |= nullptr != rSet->Put(*pFollow);
+ bModified |= nullptr != rSet->Put(std::move(pFollow));
}
}
}
@@ -871,10 +896,10 @@ bool SvxSwPosSizeTabPage::FillItemSet( SfxItemSet* rSet)
{
sal_uInt32 nWidth = static_cast<sal_uInt32>(m_xWidthMF->denormalize(m_xWidthMF->get_value(FieldUnit::TWIP)));
sal_uInt32 nHeight = static_cast<sal_uInt32>(m_xHeightMF->denormalize(m_xHeightMF->get_value(FieldUnit::TWIP)));
- rSet->Put( SfxUInt32Item( GetWhich( SID_ATTR_TRANSFORM_WIDTH ), nWidth ) );
- rSet->Put( SfxUInt32Item( GetWhich( SID_ATTR_TRANSFORM_HEIGHT ), nHeight ) );
+ rSet->Put( SfxUInt32Item( SID_ATTR_TRANSFORM_WIDTH, nWidth ) );
+ rSet->Put( SfxUInt32Item( SID_ATTR_TRANSFORM_HEIGHT, nHeight ) );
//this item is required by SdrEditView::SetGeoAttrToMarked()
- rSet->Put( SfxUInt16Item( GetWhich( SID_ATTR_TRANSFORM_SIZE_POINT ), sal_uInt16(RectPoint::LT) ) );
+ rSet->Put( SfxUInt16Item( SID_ATTR_TRANSFORM_SIZE_POINT, sal_uInt16(RectPoint::LT) ) );
bModified = true;
}
@@ -967,6 +992,17 @@ void SvxSwPosSizeTabPage::Reset( const SfxItemSet* rSet)
}
m_xFollowCB->save_state();
+ const SfxGrabBagItem* pGrabBag = GetItem(*rSet, SID_ATTR_CHAR_GRABBAG);
+ if (pGrabBag)
+ {
+ const std::map<OUString, css::uno::Any>& rMap = pGrabBag->GetGrabBag();
+ auto it = rMap.find(u"DoNotMirrorRtlDrawObjs"_ustr);
+ if (it != rMap.end())
+ {
+ it->second >>= m_bDoNotMirrorRtlDrawObjs;
+ }
+ }
+
if(m_bHtmlMode)
{
m_xHoriMirrorCB->hide();
@@ -1050,9 +1086,9 @@ DeactivateRC SvxSwPosSizeTabPage::DeactivatePage( SfxItemSet* _pSet )
{
if( _pSet )
{
- _pSet->Put(SfxBoolItem(GetWhich( SID_ATTR_TRANSFORM_PROTECT_POS ),
+ _pSet->Put(SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_POS,
m_xPositionCB->get_active()));
- _pSet->Put(SfxBoolItem(GetWhich( SID_ATTR_TRANSFORM_PROTECT_SIZE ),
+ _pSet->Put(SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_SIZE,
m_xSizeCB->get_active()));
FillItemSet( _pSet );
}
@@ -1109,6 +1145,11 @@ RndStdIds SvxSwPosSizeTabPage::GetAnchorType(bool* pbHasChanged)
return nRet;
}
+IMPL_LINK_NOARG(SvxSwPosSizeTabPage, RatioHdl_Impl, weld::Toggleable&, void)
+{
+ m_xCbxScaleImg->set_from_icon_name(m_xKeepRatioCB->get_active() ? RID_SVXBMP_LOCKED : RID_SVXBMP_UNLOCKED);
+}
+
IMPL_LINK_NOARG(SvxSwPosSizeTabPage, RangeModifyClickHdl, weld::Toggleable&, void)
{
RangeModifyHdl(m_xWidthMF->get_widget());
@@ -1269,7 +1310,7 @@ IMPL_LINK(SvxSwPosSizeTabPage, PosHdl, weld::ComboBox&, rLB, void)
if (rLB.get_active() != -1)
{
if (pRelLB->get_active() != -1)
- nRel = reinterpret_cast<RelationMap*>(pRelLB->get_active_id().toUInt64())->nRelation;
+ nRel = weld::fromId<RelationMap*>(pRelLB->get_active_id())->nRelation;
FillRelLB(pMap, nMapPos, nAlign, nRel, *pRelLB, *pRelFT);
}
@@ -1372,7 +1413,7 @@ short SvxSwPosSizeTabPage::GetRelation(const weld::ComboBox& rRelationLB)
int nPos = rRelationLB.get_active();
if (nPos != -1)
{
- RelationMap *pEntry = reinterpret_cast<RelationMap*>(rRelationLB.get_id(nPos).toUInt64());
+ RelationMap *pEntry = weld::fromId<RelationMap*>(rRelationLB.get_id(nPos));
nRel = pEntry->nRelation;
}
@@ -1390,7 +1431,7 @@ short SvxSwPosSizeTabPage::GetAlignment(FrmMap const *pMap, sal_uInt16 nMapPos,
{
if (rRelationLB.get_active() != -1)
{
- LB nRel = reinterpret_cast<RelationMap*>(rRelationLB.get_active_id().toUInt64())->nLBRelation;
+ LB nRel = weld::fromId<RelationMap*>(rRelationLB.get_active_id())->nLBRelation;
std::size_t nMapCount = ::lcl_GetFrmMapCount(pMap);
SvxSwFramePosString::StringId eStrId = pMap[nMapPos].eStrId;
@@ -1460,7 +1501,7 @@ void SvxSwPosSizeTabPage::InitPos(RndStdIds nAnchor,
m_nOldV = m_pVMap[nPos].nAlign;
nPos = m_xVertToLB->get_active();
if (nPos != -1)
- m_nOldVRel = reinterpret_cast<RelationMap*>(m_xVertToLB->get_id(nPos).toUInt64())->nRelation;
+ m_nOldVRel = weld::fromId<RelationMap*>(m_xVertToLB->get_id(nPos))->nRelation;
}
nPos = m_xHoriLB->get_active();
@@ -1470,7 +1511,7 @@ void SvxSwPosSizeTabPage::InitPos(RndStdIds nAnchor,
nPos = m_xHoriToLB->get_active();
if (nPos != -1)
- m_nOldHRel = reinterpret_cast<RelationMap*>(m_xHoriToLB->get_id(nPos).toUInt64())->nRelation;
+ m_nOldHRel = weld::fromId<RelationMap*>(m_xHoriToLB->get_id(nPos))->nRelation;
}
bool bEnable = true;
@@ -1645,15 +1686,15 @@ void SvxSwPosSizeTabPage::FillRelLB(FrmMap const *pMap, sal_uInt16 nMapPos, sal_
if (pMap[_nMapPos].eStrId == eStrId)
{
nLBRelations = pMap[_nMapPos].nLBRelations;
- for (size_t nRelPos = 0; nRelPos < SAL_N_ELEMENTS(aAsCharRelationMap); nRelPos++)
+ for (size_t nRelPos = 0; nRelPos < std::size(aAsCharRelationMap); nRelPos++)
{
if (nLBRelations & aAsCharRelationMap[nRelPos].nLBRelation)
{
SvxSwFramePosString::StringId sStrId1 = aAsCharRelationMap[nRelPos].eStrId;
- sStrId1 = lcl_ChangeResIdToVerticalOrRTL(sStrId1, m_bIsVerticalFrame, m_bIsInRightToLeft);
+ sStrId1 = lcl_ChangeResIdToVerticalOrRTL(sStrId1, m_bIsVerticalFrame, m_bIsInRightToLeft, m_bDoNotMirrorRtlDrawObjs);
OUString sEntry = SvxSwFramePosString::GetString(sStrId1);
- rLB.append(OUString::number(reinterpret_cast<sal_uInt64>(&aAsCharRelationMap[nRelPos])), sEntry);
+ rLB.append(weld::toId(&aAsCharRelationMap[nRelPos]), sEntry);
if (pMap[_nMapPos].nAlign == nAlign)
sSelEntry = sEntry;
break;
@@ -1670,7 +1711,7 @@ void SvxSwPosSizeTabPage::FillRelLB(FrmMap const *pMap, sal_uInt16 nMapPos, sal_
{
for (int i = 0; i < rLB.get_count(); i++)
{
- RelationMap *pEntry = reinterpret_cast<RelationMap*>(rLB.get_id(i).toUInt64());
+ RelationMap *pEntry = weld::fromId<RelationMap*>(rLB.get_id(i));
if (pEntry->nLBRelation == LB::RelChar) // Default
{
rLB.set_active(i);
@@ -1697,18 +1738,18 @@ void SvxSwPosSizeTabPage::FillRelLB(FrmMap const *pMap, sal_uInt16 nMapPos, sal_
nLBRelations = pMap[nMapPos].nLBRelations;
}
- for (sal_uLong nBit = 1; nBit < sal_uLong(LB::LAST); nBit <<= 1)
+ for (std::underlying_type_t<LB> nBit = 1; nBit < o3tl::to_underlying(LB::LAST) ; nBit <<= 1)
{
if (nLBRelations & static_cast<LB>(nBit))
{
- for (size_t nRelPos = 0; nRelPos < SAL_N_ELEMENTS(aRelationMap); nRelPos++)
+ for (size_t nRelPos = 0; nRelPos < std::size(aRelationMap); nRelPos++)
{
if (aRelationMap[nRelPos].nLBRelation == static_cast<LB>(nBit))
{
SvxSwFramePosString::StringId sStrId1 = m_xHoriMirrorCB->get_active() ? aRelationMap[nRelPos].eMirrorStrId : aRelationMap[nRelPos].eStrId;
- sStrId1 = lcl_ChangeResIdToVerticalOrRTL(sStrId1, m_bIsVerticalFrame, m_bIsInRightToLeft);
+ sStrId1 = lcl_ChangeResIdToVerticalOrRTL(sStrId1, m_bIsVerticalFrame, m_bIsInRightToLeft, m_bDoNotMirrorRtlDrawObjs);
OUString sEntry = SvxSwFramePosString::GetString(sStrId1);
- rLB.append(OUString::number(reinterpret_cast<sal_uInt64>(&aRelationMap[nRelPos])), sEntry);
+ rLB.append(weld::toId(&aRelationMap[nRelPos]), sEntry);
if (sSelEntry.isEmpty() && aRelationMap[nRelPos].nRelation == nRel)
sSelEntry = sEntry;
}
@@ -1734,7 +1775,7 @@ void SvxSwPosSizeTabPage::FillRelLB(FrmMap const *pMap, sal_uInt16 nMapPos, sal_
default:
if (rLB.get_count())
{
- RelationMap *pEntry = reinterpret_cast<RelationMap*>(rLB.get_id(rLB.get_count() - 1).toUInt64());
+ RelationMap *pEntry = weld::fromId<RelationMap*>(rLB.get_id(rLB.get_count() - 1));
nRel = pEntry->nRelation;
}
break;
@@ -1742,7 +1783,7 @@ void SvxSwPosSizeTabPage::FillRelLB(FrmMap const *pMap, sal_uInt16 nMapPos, sal_
for (int i = 0; i < rLB.get_count(); ++i)
{
- RelationMap *pEntry = reinterpret_cast<RelationMap*>(rLB.get_id(i).toUInt64());
+ RelationMap *pEntry = weld::fromId<RelationMap*>(rLB.get_id(i));
if (pEntry->nRelation == nRel)
{
rLB.set_active(i);
@@ -1783,7 +1824,7 @@ sal_uInt16 SvxSwPosSizeTabPage::FillPosLB(FrmMap const *_pMap,
for (std::size_t i = 0; _pMap && i < nCount; ++i)
{
SvxSwFramePosString::StringId eStrId = m_xHoriMirrorCB->get_active() ? _pMap[i].eMirrorStrId : _pMap[i].eStrId;
- eStrId = lcl_ChangeResIdToVerticalOrRTL(eStrId, m_bIsVerticalFrame, m_bIsInRightToLeft);
+ eStrId = lcl_ChangeResIdToVerticalOrRTL(eStrId, m_bIsVerticalFrame, m_bIsInRightToLeft, m_bDoNotMirrorRtlDrawObjs);
OUString sEntry(SvxSwFramePosString::GetString(eStrId));
if (_rLB.find_text(sEntry) == -1)
{
@@ -1867,7 +1908,7 @@ void SvxSwPosSizeTabPage::SetView( const SdrView* pSdrView )
const SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
SdrObjKind eKind = (SdrObjKind) pObj->GetObjIdentifier();
if( ( pObj->GetObjInventor() == SdrInventor::Default ) &&
- ( eKind==OBJ_TEXT || eKind==OBJ_TITLETEXT || eKind==OBJ_OUTLINETEXT) &&
+ ( eKind==SdrObjKind::Text || eKind==SdrObjKind::TitleText || eKind==SdrObjKind::OutlineText) &&
pObj->HasText() )
{
OSL_FAIL("AutoWidth/AutoHeight should be enabled");
diff --git a/cui/source/tabpages/tabarea.cxx b/cui/source/tabpages/tabarea.cxx
index a400c0207839..498afe81fdc5 100644
--- a/cui/source/tabpages/tabarea.cxx
+++ b/cui/source/tabpages/tabarea.cxx
@@ -31,9 +31,10 @@ SvxAreaTabDialog::SvxAreaTabDialog
weld::Window* pParent,
const SfxItemSet* pAttr,
SdrModel* pModel,
- bool bShadow
+ bool bShadow,
+ bool bSlideBackground
)
- : SfxTabDialogController(pParent, "cui/ui/areadialog.ui", "AreaDialog", pAttr)
+ : SfxTabDialogController(pParent, u"cui/ui/areadialog.ui"_ustr, u"AreaDialog"_ustr, pAttr)
, mpDrawModel ( pModel ),
mpColorList ( pModel->GetColorList() ),
mpNewColorList ( pModel->GetColorList() ),
@@ -52,18 +53,21 @@ SvxAreaTabDialog::SvxAreaTabDialog
mnGradientListState ( ChangeType::NONE ),
mnHatchingListState ( ChangeType::NONE )
{
- AddTabPage("RID_SVXPAGE_AREA", SvxAreaTabPage::Create, nullptr);
+ if (bSlideBackground)
+ AddTabPage(u"RID_SVXPAGE_AREA"_ustr, SvxAreaTabPage::CreateWithSlideBackground, nullptr);
+ else
+ AddTabPage(u"RID_SVXPAGE_AREA"_ustr, SvxAreaTabPage::Create, nullptr);
if (bShadow)
{
- AddTabPage("RID_SVXPAGE_SHADOW", SvxShadowTabPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_SHADOW"_ustr, SvxShadowTabPage::Create, nullptr);
}
else
{
- RemoveTabPage( "RID_SVXPAGE_SHADOW" );
+ RemoveTabPage( u"RID_SVXPAGE_SHADOW"_ustr );
}
- AddTabPage( "RID_SVXPAGE_TRANSPARENCE", SvxTransparenceTabPage::Create, nullptr);
+ AddTabPage( u"RID_SVXPAGE_TRANSPARENCE"_ustr, SvxTransparenceTabPage::Create, nullptr);
weld::Button& rBtnCancel = GetCancelButton();
rBtnCancel.connect_clicked(LINK(this, SvxAreaTabDialog, CancelHdlImpl));
@@ -71,55 +75,46 @@ SvxAreaTabDialog::SvxAreaTabDialog
void SvxAreaTabDialog::SavePalettes()
{
- SfxObjectShell* pShell = SfxObjectShell::Current();
+ SfxObjectShell* pShell(SfxObjectShell::Current());
+ if (!pShell)
+ {
+ SAL_WARN("cui.dialogs", "SvxAreaTabDialog: No SfxObjectShell!");
+ return;
+ }
+
if( mpNewColorList != mpDrawModel->GetColorList() )
{
mpDrawModel->SetPropertyList( static_cast<XPropertyList *>(mpNewColorList.get()) );
SvxColorListItem aColorListItem( mpNewColorList, SID_COLOR_TABLE );
- if ( pShell )
- pShell->PutItem( aColorListItem );
- else
- mpDrawModel->GetItemPool().Put(aColorListItem,SID_COLOR_TABLE);
+ pShell->PutItem( aColorListItem );
mpColorList = mpDrawModel->GetColorList();
}
if( mpNewGradientList != mpDrawModel->GetGradientList() )
{
mpDrawModel->SetPropertyList( static_cast<XPropertyList *>(mpNewGradientList.get()) );
SvxGradientListItem aItem( mpNewGradientList, SID_GRADIENT_LIST );
- if ( pShell )
- pShell->PutItem( aItem );
- else
- mpDrawModel->GetItemPool().Put(aItem,SID_GRADIENT_LIST);
+ pShell->PutItem( aItem );
mpGradientList = mpDrawModel->GetGradientList();
}
if( mpNewHatchingList != mpDrawModel->GetHatchList() )
{
mpDrawModel->SetPropertyList( static_cast<XPropertyList *>(mpNewHatchingList.get()) );
SvxHatchListItem aItem( mpNewHatchingList, SID_HATCH_LIST );
- if ( pShell )
- pShell->PutItem( aItem );
- else
- mpDrawModel->GetItemPool().Put(aItem,SID_HATCH_LIST);
+ pShell->PutItem( aItem );
mpHatchingList = mpDrawModel->GetHatchList();
}
if( mpNewBitmapList != mpDrawModel->GetBitmapList() )
{
mpDrawModel->SetPropertyList( static_cast<XPropertyList *>(mpNewBitmapList.get()) );
SvxBitmapListItem aItem( mpNewBitmapList, SID_BITMAP_LIST );
- if ( pShell )
- pShell->PutItem( aItem );
- else
- mpDrawModel->GetItemPool().Put(aItem,SID_BITMAP_LIST);
+ pShell->PutItem( aItem );
mpBitmapList = mpDrawModel->GetBitmapList();
}
if( mpNewPatternList != mpDrawModel->GetPatternList() )
{
mpDrawModel->SetPropertyList( static_cast<XPropertyList *>(mpNewPatternList.get()) );
SvxPatternListItem aItem( mpNewPatternList, SID_PATTERN_LIST );
- if( pShell )
- pShell->PutItem( aItem );
- else
- mpDrawModel->GetItemPool().Put(aItem,SID_PATTERN_LIST);
+ pShell->PutItem( aItem );
mpPatternList = mpDrawModel->GetPatternList();
}
@@ -141,10 +136,7 @@ void SvxAreaTabDialog::SavePalettes()
SvxHatchListItem aItem( mpHatchingList, SID_HATCH_LIST );
// ToolBoxControls are informed:
- if ( pShell )
- pShell->PutItem( aItem );
- else
- mpDrawModel->GetItemPool().Put(aItem);
+ pShell->PutItem( aItem );
}
if( mnBitmapListState & ChangeType::MODIFIED )
@@ -154,12 +146,7 @@ void SvxAreaTabDialog::SavePalettes()
SvxBitmapListItem aItem( mpBitmapList, SID_BITMAP_LIST );
// ToolBoxControls are informed:
- if ( pShell )
- pShell->PutItem( aItem );
- else
- {
- mpDrawModel->GetItemPool().Put(aItem);
- }
+ pShell->PutItem( aItem );
}
if( mnPatternListState & ChangeType::MODIFIED )
@@ -169,10 +156,7 @@ void SvxAreaTabDialog::SavePalettes()
SvxPatternListItem aItem( mpPatternList, SID_PATTERN_LIST );
// ToolBoxControls are informed:
- if( pShell )
- pShell->PutItem( aItem );
- else
- mpDrawModel->GetItemPool().Put(aItem);
+ pShell->PutItem( aItem );
}
if( mnGradientListState & ChangeType::MODIFIED )
@@ -182,24 +166,14 @@ void SvxAreaTabDialog::SavePalettes()
SvxGradientListItem aItem( mpGradientList, SID_GRADIENT_LIST );
// ToolBoxControls are informed:
- if ( pShell )
- pShell->PutItem( aItem );
- else
- {
- mpDrawModel->GetItemPool().Put(aItem);
- }
+ pShell->PutItem( aItem );
}
if (mnColorListState & ChangeType::MODIFIED && mpColorList.is())
{
SvxColorListItem aItem( mpColorList, SID_COLOR_TABLE );
// ToolBoxControls are informed:
- if ( pShell )
- pShell->PutItem( aItem );
- else
- {
- mpDrawModel->GetItemPool().Put(aItem);
- }
+ pShell->PutItem( aItem );
}
}
@@ -218,7 +192,7 @@ IMPL_LINK_NOARG(SvxAreaTabDialog, CancelHdlImpl, weld::Button&, void)
m_xDialog->response(RET_CANCEL);
}
-void SvxAreaTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
+void SvxAreaTabDialog::PageCreated(const OUString& rId, SfxTabPage &rPage)
{
if (rId == "RID_SVXPAGE_AREA")
{
diff --git a/cui/source/tabpages/tabline.cxx b/cui/source/tabpages/tabline.cxx
index f4e0a1268013..3facbce8b91d 100644
--- a/cui/source/tabpages/tabline.cxx
+++ b/cui/source/tabpages/tabline.cxx
@@ -28,7 +28,7 @@
SvxLineTabDialog::SvxLineTabDialog(weld::Window* pParent, const SfxItemSet* pAttr,
SdrModel* pModel, const SdrObject* pSdrObj, bool bHasObj)
- : SfxTabDialogController(pParent, "cui/ui/linedialog.ui", "LineDialog", pAttr)
+ : SfxTabDialogController(pParent, u"cui/ui/linedialog.ui"_ustr, u"LineDialog"_ustr, pAttr)
, pDrawModel(pModel)
, pObj(pSdrObj)
, pColorList(pModel->GetColorList())
@@ -50,12 +50,12 @@ SvxLineTabDialog::SvxLineTabDialog(weld::Window* pParent, const SfxItemSet* pAtt
{
switch( pObj->GetObjIdentifier() )
{
- case OBJ_LINE:
- case OBJ_PLIN:
- case OBJ_PATHLINE:
- case OBJ_FREELINE:
- case OBJ_MEASURE:
- case OBJ_EDGE:
+ case SdrObjKind::Line:
+ case SdrObjKind::PolyLine:
+ case SdrObjKind::PathLine:
+ case SdrObjKind::FreehandLine:
+ case SdrObjKind::Measure:
+ case SdrObjKind::Edge:
bLineOnly = true;
break;
@@ -65,14 +65,14 @@ SvxLineTabDialog::SvxLineTabDialog(weld::Window* pParent, const SfxItemSet* pAtt
}
- AddTabPage("RID_SVXPAGE_LINE", SvxLineTabPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_LINE"_ustr, SvxLineTabPage::Create, nullptr);
if( bLineOnly )
- AddTabPage("RID_SVXPAGE_SHADOW", SvxShadowTabPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_SHADOW"_ustr, SvxShadowTabPage::Create, nullptr);
else
- RemoveTabPage( "RID_SVXPAGE_SHADOW" );
+ RemoveTabPage( u"RID_SVXPAGE_SHADOW"_ustr );
- AddTabPage("RID_SVXPAGE_LINE_DEF", SvxLineDefTabPage::Create, nullptr);
- AddTabPage("RID_SVXPAGE_LINEEND_DEF", SvxLineEndDefTabPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_LINE_DEF"_ustr, SvxLineDefTabPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_LINEEND_DEF"_ustr, SvxLineEndDefTabPage::Create, nullptr);
weld::Button& rBtnCancel = GetCancelButton();
rBtnCancel.connect_clicked(LINK(this, SvxLineTabDialog, CancelHdlImpl));
@@ -160,7 +160,7 @@ IMPL_LINK_NOARG(SvxLineTabDialog, CancelHdlImpl, weld::Button&, void)
m_xDialog->response(RET_CANCEL);
}
-void SvxLineTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
+void SvxLineTabDialog::PageCreated(const OUString& rId, SfxTabPage &rPage)
{
if (rId == "RID_SVXPAGE_LINE")
{
diff --git a/cui/source/tabpages/tabstpge.cxx b/cui/source/tabpages/tabstpge.cxx
index 7a4beeb8437e..558a537ef7d3 100644
--- a/cui/source/tabpages/tabstpge.cxx
+++ b/cui/source/tabpages/tabstpge.cxx
@@ -52,38 +52,42 @@ void TabWin_Impl::Paint(vcl::RenderContext& rRenderContext, const ::tools::Recta
Size aSize(GetOutputSizePixel());
aPoint.setX( aSize.Width() / 2 );
aPoint.setY( aSize.Height() / 2 );
- Ruler::DrawTab(rRenderContext, rRenderContext.GetSettings().GetStyleSettings().GetFontColor(), aPoint, nTabStyle);
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
+ rRenderContext.SetFillColor(rStyleSettings.GetDialogColor());
+ rRenderContext.DrawRect(tools::Rectangle(Point(0,0), rRenderContext.GetOutputSize()));
+ Ruler::DrawTab(rRenderContext, rStyleSettings.GetDialogTextColor(), aPoint, nTabStyle);
}
SvxTabulatorTabPage::SvxTabulatorTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rAttr)
- : SfxTabPage(pPage, pController, "cui/ui/paratabspage.ui", "ParagraphTabsPage", &rAttr)
+ : SfxTabPage(pPage, pController, u"cui/ui/paratabspage.ui"_ustr, u"ParagraphTabsPage"_ustr, &rAttr)
, aCurrentTab(0)
, aNewTabs(std::make_unique<SvxTabStopItem>(0, 0, SvxTabAdjust::Left, GetWhich(SID_ATTR_TABSTOP)))
, nDefDist(0)
- , m_xTabSpin(m_xBuilder->weld_metric_spin_button("SP_TABPOS", FieldUnit::CM))
- , m_xTabBox(m_xBuilder->weld_entry_tree_view("tabgrid", "ED_TABPOS", "LB_TABPOS"))
- , m_xCenterTab(m_xBuilder->weld_radio_button("radiobuttonBTN_TABTYPE_CENTER"))
- , m_xDezTab(m_xBuilder->weld_radio_button("radiobuttonBTN_TABTYPE_DECIMAL"))
- , m_xDezChar(m_xBuilder->weld_entry("entryED_TABTYPE_DECCHAR"))
- , m_xDezCharLabel(m_xBuilder->weld_label("labelFT_TABTYPE_DECCHAR"))
+ , m_xTabSpin(m_xBuilder->weld_metric_spin_button(u"SP_TABPOS"_ustr, FieldUnit::CM))
+ , m_xTabBox(m_xBuilder->weld_entry_tree_view(u"tabgrid"_ustr, u"ED_TABPOS"_ustr, u"LB_TABPOS"_ustr))
+ , m_xCenterTab(m_xBuilder->weld_radio_button(u"radiobuttonBTN_TABTYPE_CENTER"_ustr))
+ , m_xDezTab(m_xBuilder->weld_radio_button(u"radiobuttonBTN_TABTYPE_DECIMAL"_ustr))
+ , m_xDezChar(m_xBuilder->weld_entry(u"entryED_TABTYPE_DECCHAR"_ustr))
+ , m_xDezCharLabel(m_xBuilder->weld_label(u"labelFT_TABTYPE_DECCHAR"_ustr))
// lower radio buttons
- , m_xNoFillChar(m_xBuilder->weld_radio_button("radiobuttonBTN_FILLCHAR_NO"))
- , m_xFillPoints(m_xBuilder->weld_radio_button("radiobuttonBTN_FILLCHAR_POINTS"))
- , m_xFillDashLine(m_xBuilder->weld_radio_button("radiobuttonBTN_FILLCHAR_DASHLINE"))
- , m_xFillSolidLine(m_xBuilder->weld_radio_button("radiobuttonBTN_FILLCHAR_UNDERSCORE"))
- , m_xFillSpecial(m_xBuilder->weld_radio_button("radiobuttonBTN_FILLCHAR_OTHER"))
- , m_xFillChar(m_xBuilder->weld_entry("entryED_FILLCHAR_OTHER"))
+ , m_xNoFillChar(m_xBuilder->weld_radio_button(u"radiobuttonBTN_FILLCHAR_NO"_ustr))
+ , m_xFillPoints(m_xBuilder->weld_radio_button(u"radiobuttonBTN_FILLCHAR_POINTS"_ustr))
+ , m_xFillDashLine(m_xBuilder->weld_radio_button(u"radiobuttonBTN_FILLCHAR_DASHLINE"_ustr))
+ , m_xFillSolidLine(m_xBuilder->weld_radio_button(u"radiobuttonBTN_FILLCHAR_UNDERSCORE"_ustr))
+ , m_xFillSpecial(m_xBuilder->weld_radio_button(u"radiobuttonBTN_FILLCHAR_OTHER"_ustr))
+ , m_xFillChar(m_xBuilder->weld_entry(u"entryED_FILLCHAR_OTHER"_ustr))
// button bar
- , m_xNewBtn(m_xBuilder->weld_button("buttonBTN_NEW"))
- , m_xDelAllBtn(m_xBuilder->weld_button("buttonBTN_DELALL"))
- , m_xDelBtn(m_xBuilder->weld_button("buttonBTN_DEL"))
- , m_xTypeFrame(m_xBuilder->weld_container("frameFL_TABTYPE"))
- , m_xFillFrame(m_xBuilder->weld_container("frameFL_FILLCHAR"))
+ , m_xNewBtn(m_xBuilder->weld_button(u"buttonBTN_NEW"_ustr))
+ , m_xDelAllBtn(m_xBuilder->weld_button(u"buttonBTN_DELALL"_ustr))
+ , m_xDelBtn(m_xBuilder->weld_button(u"buttonBTN_DEL"_ustr))
+ , m_xTypeFrame(m_xBuilder->weld_container(u"frameFL_TABTYPE"_ustr))
+ , m_xFillFrame(m_xBuilder->weld_container(u"frameFL_FILLCHAR"_ustr))
// the tab images
- , m_xLeftWin(new weld::CustomWeld(*m_xBuilder, "drawingareaWIN_TABLEFT", m_aLeftWin))
- , m_xRightWin(new weld::CustomWeld(*m_xBuilder, "drawingareaWIN_TABRIGHT", m_aRightWin))
- , m_xCenterWin(new weld::CustomWeld(*m_xBuilder, "drawingareaWIN_TABCENTER", m_aCenterWin))
- , m_xDezWin(new weld::CustomWeld(*m_xBuilder, "drawingareaWIN_TABDECIMAL", m_aDezWin))
+ , m_xLeftWin(new weld::CustomWeld(*m_xBuilder, u"drawingareaWIN_TABLEFT"_ustr, m_aLeftWin))
+ , m_xRightWin(new weld::CustomWeld(*m_xBuilder, u"drawingareaWIN_TABRIGHT"_ustr, m_aRightWin))
+ , m_xCenterWin(new weld::CustomWeld(*m_xBuilder, u"drawingareaWIN_TABCENTER"_ustr, m_aCenterWin))
+ , m_xDezWin(new weld::CustomWeld(*m_xBuilder, u"drawingareaWIN_TABDECIMAL"_ustr, m_aDezWin))
{
m_aLeftWin.SetTabStyle(sal_uInt16(RULER_TAB_LEFT|WB_HORZ));
m_aRightWin.SetTabStyle(sal_uInt16(RULER_TAB_RIGHT|WB_HORZ));
@@ -190,7 +194,7 @@ bool SvxTabulatorTabPage::FillItemSet(SfxItemSet* rSet)
if (!pOld || *static_cast<const SvxTabStopItem*>(pOld) != *aTmp)
{
- rSet->Put(*aTmp);
+ rSet->Put(std::move(aTmp));
bModified = true;
}
}
@@ -312,10 +316,9 @@ void SvxTabulatorTabPage::InitTabPos_Impl( sal_uInt16 nTabPos )
m_xTabBox->clear();
tools::Long nOffset = 0;
- const SfxPoolItem* pItem = nullptr;
- if (GetItemSet().GetItemState(SID_ATTR_TABSTOP_OFFSET, true, &pItem) == SfxItemState::SET)
+ if (const SfxInt32Item* pOffSetItem = GetItemSet().GetItemIfSet(SID_ATTR_TABSTOP_OFFSET))
{
- nOffset = static_cast<const SfxInt32Item*>(pItem)->GetValue();
+ nOffset = pOffSetItem->GetValue();
MapUnit eUnit = GetItemSet().GetPool()->GetMetric(GetWhich(SID_ATTR_TABSTOP));
nOffset = OutputDevice::LogicToLogic(nOffset, eUnit, MapUnit::Map100thMM);
}
@@ -389,7 +392,7 @@ void SvxTabulatorTabPage::SetFillAndTabType_Impl()
pTypeBtn->set_active(true);
m_xFillChar->set_sensitive(false);
- m_xFillChar->set_text("");
+ m_xFillChar->set_text(u""_ustr);
if ( aCurrentTab.GetFill() == ' ' )
pFillBtn = m_xNoFillChar.get();
@@ -426,12 +429,10 @@ void SvxTabulatorTabPage::NewHdl_Impl(const weld::Button* pBtn)
return;
tools::Long nOffset = 0;
- const SfxPoolItem* pItem = nullptr;
- if ( GetItemSet().GetItemState( SID_ATTR_TABSTOP_OFFSET, true, &pItem ) ==
- SfxItemState::SET )
+ if ( const SfxInt32Item* pOffsetItem = GetItemSet().GetItemIfSet( SID_ATTR_TABSTOP_OFFSET ) )
{
- nOffset = static_cast<const SfxInt32Item*>(pItem)->GetValue();
+ nOffset = pOffsetItem->GetValue();
MapUnit eUnit = GetItemSet().GetPool()->GetMetric( GetWhich( SID_ATTR_TABSTOP ) );
nOffset = OutputDevice::LogicToLogic( nOffset, eUnit, MapUnit::Map100thMM );
}
@@ -528,7 +529,7 @@ IMPL_LINK(SvxTabulatorTabPage, TabTypeCheckHdl_Impl, weld::Toggleable&, rBox, vo
SvxTabAdjust eAdj;
m_xDezChar->set_sensitive(false);
m_xDezCharLabel->set_sensitive(false);
- m_xDezChar->set_text("");
+ m_xDezChar->set_text(u""_ustr);
if (&rBox == m_xLeftTab.get())
eAdj = SvxTabAdjust::Left;
@@ -559,7 +560,7 @@ IMPL_LINK(SvxTabulatorTabPage, FillTypeCheckHdl_Impl, weld::Toggleable&, rBox, v
return;
sal_uInt8 cFill = ' ';
- m_xFillChar->set_text( "" );
+ m_xFillChar->set_text( u""_ustr );
m_xFillChar->set_sensitive(false);
if (&rBox == m_xFillSpecial.get())
diff --git a/cui/source/tabpages/textanim.cxx b/cui/source/tabpages/textanim.cxx
index 95d3463a1607..986d3da4c425 100644
--- a/cui/source/tabpages/textanim.cxx
+++ b/cui/source/tabpages/textanim.cxx
@@ -39,12 +39,12 @@ const WhichRangesContainer SvxTextAnimationPage::pRanges(
\************************************************************************/
SvxTextTabDialog::SvxTextTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrView* pSdrView)
- : SfxTabDialogController(pParent, "cui/ui/textdialog.ui", "TextDialog", pAttr)
+ : SfxTabDialogController(pParent, u"cui/ui/textdialog.ui"_ustr, u"TextDialog"_ustr, pAttr)
, pView(pSdrView)
{
- AddTabPage("RID_SVXPAGE_TEXTATTR", SvxTextAttrPage::Create, nullptr);
- AddTabPage("RID_SVXPAGE_TEXTANIMATION", SvxTextAnimationPage::Create, nullptr);
- AddTabPage("RID_SVXPAGE_TEXTCOLUMNS", SvxTextColumnsPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_TEXTATTR"_ustr, SvxTextAttrPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_TEXTANIMATION"_ustr, SvxTextAnimationPage::Create, nullptr);
+ AddTabPage(u"RID_SVXPAGE_TEXTCOLUMNS"_ustr, SvxTextColumnsPage::Create, nullptr);
}
/*************************************************************************
@@ -53,12 +53,12 @@ SvxTextTabDialog::SvxTextTabDialog(weld::Window* pParent, const SfxItemSet* pAtt
|*
\************************************************************************/
-void SvxTextTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
+void SvxTextTabDialog::PageCreated(const OUString& rId, SfxTabPage &rPage)
{
if (rId != "RID_SVXPAGE_TEXTATTR")
return;
- SdrObjKind eKind = OBJ_NONE;
+ SdrObjKind eKind = SdrObjKind::NONE;
if (pView)
{
const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
@@ -82,32 +82,32 @@ void SvxTextTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
|*
\************************************************************************/
SvxTextAnimationPage::SvxTextAnimationPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/textanimtabpage.ui", "TextAnimation", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/textanimtabpage.ui"_ustr, u"TextAnimation"_ustr, &rInAttrs)
, eAniKind(SdrTextAniKind::NONE)
, m_aUpState(TRISTATE_INDET)
, m_aLeftState(TRISTATE_INDET)
, m_aRightState(TRISTATE_INDET)
, m_aDownState(TRISTATE_INDET)
- , m_xLbEffect(m_xBuilder->weld_combo_box("LB_EFFECT"))
- , m_xBoxDirection(m_xBuilder->weld_widget("boxDIRECTION"))
- , m_xBtnUp(m_xBuilder->weld_toggle_button("BTN_UP"))
- , m_xBtnLeft(m_xBuilder->weld_toggle_button("BTN_LEFT"))
- , m_xBtnRight(m_xBuilder->weld_toggle_button("BTN_RIGHT"))
- , m_xBtnDown(m_xBuilder->weld_toggle_button("BTN_DOWN"))
- , m_xFlProperties(m_xBuilder->weld_frame("FL_PROPERTIES"))
- , m_xTsbStartInside(m_xBuilder->weld_check_button("TSB_START_INSIDE"))
- , m_xTsbStopInside(m_xBuilder->weld_check_button("TSB_STOP_INSIDE"))
- , m_xBoxCount(m_xBuilder->weld_widget("boxCOUNT"))
- , m_xTsbEndless(m_xBuilder->weld_check_button("TSB_ENDLESS"))
- , m_xNumFldCount(m_xBuilder->weld_spin_button("NUM_FLD_COUNT"))
- , m_xTsbPixel(m_xBuilder->weld_check_button("TSB_PIXEL"))
- , m_xMtrFldAmount(m_xBuilder->weld_metric_spin_button("MTR_FLD_AMOUNT", FieldUnit::PIXEL))
- , m_xTsbAuto(m_xBuilder->weld_check_button("TSB_AUTO"))
- , m_xMtrFldDelay(m_xBuilder->weld_metric_spin_button("MTR_FLD_DELAY", FieldUnit::MILLISECOND))
+ , m_xLbEffect(m_xBuilder->weld_combo_box(u"LB_EFFECT"_ustr))
+ , m_xBoxDirection(m_xBuilder->weld_widget(u"boxDIRECTION"_ustr))
+ , m_xBtnUp(m_xBuilder->weld_toggle_button(u"BTN_UP"_ustr))
+ , m_xBtnLeft(m_xBuilder->weld_toggle_button(u"BTN_LEFT"_ustr))
+ , m_xBtnRight(m_xBuilder->weld_toggle_button(u"BTN_RIGHT"_ustr))
+ , m_xBtnDown(m_xBuilder->weld_toggle_button(u"BTN_DOWN"_ustr))
+ , m_xFlProperties(m_xBuilder->weld_frame(u"FL_PROPERTIES"_ustr))
+ , m_xTsbStartInside(m_xBuilder->weld_check_button(u"TSB_START_INSIDE"_ustr))
+ , m_xTsbStopInside(m_xBuilder->weld_check_button(u"TSB_STOP_INSIDE"_ustr))
+ , m_xBoxCount(m_xBuilder->weld_widget(u"boxCOUNT"_ustr))
+ , m_xTsbEndless(m_xBuilder->weld_check_button(u"TSB_ENDLESS"_ustr))
+ , m_xNumFldCount(m_xBuilder->weld_spin_button(u"NUM_FLD_COUNT"_ustr))
+ , m_xTsbPixel(m_xBuilder->weld_check_button(u"TSB_PIXEL"_ustr))
+ , m_xMtrFldAmount(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_AMOUNT"_ustr, FieldUnit::PIXEL))
+ , m_xTsbAuto(m_xBuilder->weld_check_button(u"TSB_AUTO"_ustr))
+ , m_xMtrFldDelay(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_DELAY"_ustr, FieldUnit::MILLISECOND))
{
eFUnit = GetModuleFieldUnit( rInAttrs );
SfxItemPool* pPool = rInAttrs.GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ assert(pPool && "Where is the pool?");
eUnit = pPool->GetMetric( SDRATTR_TEXT_LEFTDIST );
m_xLbEffect->connect_changed( LINK( this, SvxTextAnimationPage, SelectEffectHdl_Impl ) );
@@ -140,7 +140,7 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
const SfxPoolItem* pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIKIND );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIKIND );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_ANIKIND );
eAniKind = static_cast<const SdrTextAniKindItem*>(pItem)->GetValue();
m_xLbEffect->set_active(sal::static_int_cast<sal_Int32>(eAniKind));
@@ -149,7 +149,7 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
// animation direction
pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDIRECTION );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDIRECTION );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_ANIDIRECTION );
SelectDirection(static_cast<const SdrTextAniDirectionItem*>(pItem)->GetValue());
m_aUpState = m_xBtnUp->get_state();
@@ -160,7 +160,7 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
// Start inside
pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTARTINSIDE );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTARTINSIDE );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_ANISTARTINSIDE );
if (static_cast<const SdrTextAniStartInsideItem*>(pItem)->GetValue())
m_xTsbStartInside->set_state(TRISTATE_TRUE);
@@ -171,7 +171,7 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
// Stop inside
pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANISTOPINSIDE );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANISTOPINSIDE );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_ANISTOPINSIDE );
if (static_cast<const SdrTextAniStopInsideItem*>(pItem)->GetValue())
m_xTsbStopInside->set_state(TRISTATE_TRUE);
@@ -182,7 +182,7 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
// quantity
pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANICOUNT );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANICOUNT );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_ANICOUNT );
tools::Long nValue = static_cast<tools::Long>(static_cast<const SdrTextAniCountItem*>(pItem)->GetValue());
m_xNumFldCount->set_value(nValue);
@@ -196,7 +196,7 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
else
{
m_xTsbEndless->set_state(TRISTATE_TRUE);
- m_xNumFldCount->set_text("");
+ m_xNumFldCount->set_text(u""_ustr);
}
}
else
@@ -207,14 +207,14 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
// delay
pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIDELAY );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIDELAY );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_ANIDELAY );
nValue = static_cast<tools::Long>(static_cast<const SdrTextAniDelayItem*>(pItem)->GetValue());
m_xMtrFldDelay->set_value(nValue, FieldUnit::NONE);
if (nValue == 0)
{
m_xTsbAuto->set_state(TRISTATE_TRUE);
- m_xMtrFldDelay->set_text("");
+ m_xMtrFldDelay->set_text(u""_ustr);
}
else
m_xTsbAuto->set_state(TRISTATE_FALSE);
@@ -224,7 +224,7 @@ void SvxTextAnimationPage::Reset( const SfxItemSet* rAttrs )
// step size
pItem = GetItem( *rAttrs, SDRATTR_TEXT_ANIAMOUNT );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_ANIAMOUNT );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_ANIAMOUNT );
nValue = static_cast<tools::Long>(static_cast<const SdrTextAniAmountItem*>(pItem)->GetValue());
if (nValue <= 0)
@@ -445,7 +445,7 @@ IMPL_LINK_NOARG(SvxTextAnimationPage, ClickEndlessHdl_Impl, weld::Toggleable&, v
if( eState != TRISTATE_FALSE )
{
m_xNumFldCount->set_sensitive(false);
- m_xNumFldCount->set_text("");
+ m_xNumFldCount->set_text(u""_ustr);
}
else
{
@@ -460,7 +460,7 @@ IMPL_LINK_NOARG(SvxTextAnimationPage, ClickAutoHdl_Impl, weld::Toggleable&, void
if( eState != TRISTATE_FALSE )
{
m_xMtrFldDelay->set_sensitive(false);
- m_xMtrFldDelay->set_text("");
+ m_xMtrFldDelay->set_text(u""_ustr);
}
else
{
diff --git a/cui/source/tabpages/textattr.cxx b/cui/source/tabpages/textattr.cxx
index d542f9b0810e..73eb5e215fd5 100644
--- a/cui/source/tabpages/textattr.cxx
+++ b/cui/source/tabpages/textattr.cxx
@@ -24,7 +24,6 @@
#include <svx/sdtaitm.hxx>
#include <svx/sdtfsitm.hxx>
#include <svx/sdtcfitm.hxx>
-#include <svx/svdobj.hxx>
#include <svx/svxids.hrc>
#include <textattr.hxx>
@@ -47,9 +46,9 @@ const WhichRangesContainer SvxTextAttrPage::pRanges(
|*
\************************************************************************/
SvxTextAttrPage::SvxTextAttrPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SvxTabPage(pPage, pController, "cui/ui/textattrtabpage.ui", "TextAttributesPage", rInAttrs)
+ : SvxTabPage(pPage, pController, u"cui/ui/textattrtabpage.ui"_ustr, u"TextAttributesPage"_ustr, rInAttrs)
, rOutAttrs(rInAttrs)
- , m_eObjKind(OBJ_NONE)
+ , m_eObjKind(SdrObjKind::NONE)
, bAutoGrowSizeEnabled(false)
, bContourEnabled(false)
, bAutoGrowWidthEnabled(false)
@@ -57,22 +56,22 @@ SvxTextAttrPage::SvxTextAttrPage(weld::Container* pPage, weld::DialogController*
, bWordWrapTextEnabled(false)
, bFitToSizeEnabled(false)
, m_aCtlPosition(this)
- , m_xDrawingText(m_xBuilder->weld_widget("drawingtext"))
- , m_xCustomShapeText(m_xBuilder->weld_widget("customshapetext"))
- , m_xTsbAutoGrowWidth(m_xBuilder->weld_check_button("TSB_AUTOGROW_WIDTH"))
- , m_xTsbAutoGrowHeight(m_xBuilder->weld_check_button("TSB_AUTOGROW_HEIGHT"))
- , m_xTsbFitToSize(m_xBuilder->weld_check_button("TSB_FIT_TO_SIZE"))
- , m_xTsbContour(m_xBuilder->weld_check_button("TSB_CONTOUR"))
- , m_xTsbWordWrapText(m_xBuilder->weld_check_button("TSB_WORDWRAP_TEXT"))
- , m_xTsbAutoGrowSize(m_xBuilder->weld_check_button("TSB_AUTOGROW_SIZE"))
- , m_xFlDistance(m_xBuilder->weld_frame("FL_DISTANCE"))
- , m_xMtrFldLeft(m_xBuilder->weld_metric_spin_button("MTR_FLD_LEFT", FieldUnit::CM))
- , m_xMtrFldRight(m_xBuilder->weld_metric_spin_button("MTR_FLD_RIGHT", FieldUnit::CM))
- , m_xMtrFldTop(m_xBuilder->weld_metric_spin_button("MTR_FLD_TOP", FieldUnit::CM))
- , m_xMtrFldBottom(m_xBuilder->weld_metric_spin_button("MTR_FLD_BOTTOM", FieldUnit::CM))
- , m_xFlPosition(m_xBuilder->weld_frame("FL_POSITION"))
- , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, "CTL_POSITION", m_aCtlPosition))
- , m_xTsbFullWidth(m_xBuilder->weld_check_button("TSB_FULL_WIDTH"))
+ , m_xDrawingText(m_xBuilder->weld_widget(u"drawingtext"_ustr))
+ , m_xCustomShapeText(m_xBuilder->weld_widget(u"customshapetext"_ustr))
+ , m_xTsbAutoGrowWidth(m_xBuilder->weld_check_button(u"TSB_AUTOGROW_WIDTH"_ustr))
+ , m_xTsbAutoGrowHeight(m_xBuilder->weld_check_button(u"TSB_AUTOGROW_HEIGHT"_ustr))
+ , m_xTsbFitToSize(m_xBuilder->weld_check_button(u"TSB_FIT_TO_SIZE"_ustr))
+ , m_xTsbContour(m_xBuilder->weld_check_button(u"TSB_CONTOUR"_ustr))
+ , m_xTsbWordWrapText(m_xBuilder->weld_check_button(u"TSB_WORDWRAP_TEXT"_ustr))
+ , m_xTsbAutoGrowSize(m_xBuilder->weld_check_button(u"TSB_AUTOGROW_SIZE"_ustr))
+ , m_xFlDistance(m_xBuilder->weld_frame(u"FL_DISTANCE"_ustr))
+ , m_xMtrFldLeft(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_LEFT"_ustr, FieldUnit::CM))
+ , m_xMtrFldRight(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_RIGHT"_ustr, FieldUnit::CM))
+ , m_xMtrFldTop(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_TOP"_ustr, FieldUnit::CM))
+ , m_xMtrFldBottom(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_BOTTOM"_ustr, FieldUnit::CM))
+ , m_xFlPosition(m_xBuilder->weld_frame(u"FL_POSITION"_ustr))
+ , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, u"CTL_POSITION"_ustr, m_aCtlPosition))
+ , m_xTsbFullWidth(m_xBuilder->weld_check_button(u"TSB_FULL_WIDTH"_ustr))
{
m_aCtlPosition.SetControlSettings(RectPoint::MM, 240);
@@ -110,34 +109,34 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
const SdrMetricItem* pItem = GetItem(*rAttrs, SDRATTR_TEXT_LEFTDIST);
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_LEFTDIST );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_LEFTDIST );
SetMetricValue(*m_xMtrFldLeft, pItem->GetValue(), eUnit);
m_xMtrFldLeft->save_value();
pItem = GetItem( *rAttrs, SDRATTR_TEXT_RIGHTDIST );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_RIGHTDIST );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_RIGHTDIST );
SetMetricValue(*m_xMtrFldRight, pItem->GetValue(), eUnit);
m_xMtrFldRight->save_value();
pItem = GetItem( *rAttrs, SDRATTR_TEXT_UPPERDIST );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_UPPERDIST );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_UPPERDIST );
SetMetricValue(*m_xMtrFldTop, pItem->GetValue(), eUnit);
m_xMtrFldTop->save_value();
pItem = GetItem( *rAttrs, SDRATTR_TEXT_LOWERDIST );
if( !pItem )
- pItem = &pPool->GetDefaultItem( SDRATTR_TEXT_LOWERDIST );
+ pItem = &pPool->GetUserOrPoolDefaultItem( SDRATTR_TEXT_LOWERDIST );
SetMetricValue(*m_xMtrFldBottom, pItem->GetValue(), eUnit);
m_xMtrFldBottom->save_value();
// adjust to height and autogrowsize
- if ( rAttrs->GetItemState( SDRATTR_TEXT_AUTOGROWHEIGHT ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( SDRATTR_TEXT_AUTOGROWHEIGHT ) != SfxItemState::INVALID )
{
m_xTsbAutoGrowHeight->set_state( rAttrs->Get( SDRATTR_TEXT_AUTOGROWHEIGHT ).
GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
@@ -154,7 +153,7 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
m_xTsbAutoGrowSize->save_state();
// adjust to width
- if ( rAttrs->GetItemState( SDRATTR_TEXT_AUTOGROWWIDTH ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( SDRATTR_TEXT_AUTOGROWWIDTH ) != SfxItemState::INVALID )
{
m_xTsbAutoGrowWidth->set_state( rAttrs->Get( SDRATTR_TEXT_AUTOGROWWIDTH ).
GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
@@ -164,7 +163,7 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
m_xTsbAutoGrowWidth->save_state();
// wordwrap text
- if ( rAttrs->GetItemState( SDRATTR_TEXT_WORDWRAP ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( SDRATTR_TEXT_WORDWRAP ) != SfxItemState::INVALID )
{
m_xTsbWordWrapText->set_state( rAttrs->Get( SDRATTR_TEXT_WORDWRAP ).
GetValue() ? TRISTATE_TRUE : TRISTATE_FALSE );
@@ -179,7 +178,7 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
SfxItemState eVState = rAttrs->GetItemState( SDRATTR_TEXT_VERTADJUST );
SfxItemState eHState = rAttrs->GetItemState( SDRATTR_TEXT_HORZADJUST );
- if(SfxItemState::DONTCARE != eVState && SfxItemState::DONTCARE != eHState)
+ if(SfxItemState::INVALID != eVState && SfxItemState::INVALID != eHState)
{
// VertAdjust and HorAdjust are unequivocal, thus
SdrTextVertAdjust eTVA = rAttrs->Get(SDRATTR_TEXT_VERTADJUST).GetValue();
@@ -255,7 +254,7 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
}
// adjust to border
- if (rAttrs->GetItemState(SDRATTR_TEXT_FITTOSIZE) != SfxItemState::DONTCARE)
+ if (rAttrs->GetItemState(SDRATTR_TEXT_FITTOSIZE) != SfxItemState::INVALID)
{
drawing::TextFitToSizeType const eFTS =
rAttrs->Get( SDRATTR_TEXT_FITTOSIZE ).GetValue();
@@ -268,7 +267,7 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs )
m_xTsbFitToSize->set_state( TRISTATE_INDET );
m_xTsbFitToSize->save_state();
- if( rAttrs->GetItemState( SDRATTR_TEXT_CONTOURFRAME ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_TEXT_CONTOURFRAME ) != SfxItemState::INVALID )
{
bool bContour = rAttrs->Get( SDRATTR_TEXT_CONTOURFRAME ).GetValue();
m_xTsbContour->set_state( bContour ? TRISTATE_TRUE : TRISTATE_FALSE );
@@ -395,34 +394,34 @@ bool SvxTextAttrPage::FillItemSet( SfxItemSet* rAttrs)
// #103516# Do not change values if adjust controls were disabled.
bool bIsDisabled(m_aCtlPosition.IsCompletelyDisabled());
- if(!bIsDisabled)
- {
- if( m_xTsbFullWidth->get_state() == TRISTATE_TRUE )
- {
- if (IsTextDirectionLeftToRight())
- eTHA = SDRTEXTHORZADJUST_BLOCK;
- else
- eTVA = SDRTEXTVERTADJUST_BLOCK;
- }
+ if(bIsDisabled)
+ return true;
- if ( rOutAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST ) != SfxItemState::DONTCARE )
- {
- SdrTextVertAdjust eOldTVA = rOutAttrs.Get( SDRATTR_TEXT_VERTADJUST ).GetValue();
- if( eOldTVA != eTVA )
- rAttrs->Put( SdrTextVertAdjustItem( eTVA ) );
- }
+ if( m_xTsbFullWidth->get_state() == TRISTATE_TRUE )
+ {
+ if (IsTextDirectionLeftToRight())
+ eTHA = SDRTEXTHORZADJUST_BLOCK;
else
+ eTVA = SDRTEXTVERTADJUST_BLOCK;
+ }
+
+ if ( rOutAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST ) != SfxItemState::INVALID )
+ {
+ SdrTextVertAdjust eOldTVA = rOutAttrs.Get( SDRATTR_TEXT_VERTADJUST ).GetValue();
+ if( eOldTVA != eTVA )
rAttrs->Put( SdrTextVertAdjustItem( eTVA ) );
+ }
+ else
+ rAttrs->Put( SdrTextVertAdjustItem( eTVA ) );
- if ( rOutAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST ) != SfxItemState::DONTCARE )
- {
- SdrTextHorzAdjust eOldTHA = rOutAttrs.Get( SDRATTR_TEXT_HORZADJUST ).GetValue();
- if( eOldTHA != eTHA )
- rAttrs->Put( SdrTextHorzAdjustItem( eTHA ) );
- }
- else
+ if ( rOutAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST ) != SfxItemState::INVALID )
+ {
+ SdrTextHorzAdjust eOldTHA = rOutAttrs.Get( SDRATTR_TEXT_HORZADJUST ).GetValue();
+ if( eOldTHA != eTHA )
rAttrs->Put( SdrTextHorzAdjustItem( eTHA ) );
}
+ else
+ rAttrs->Put( SdrTextHorzAdjustItem( eTHA ) );
return true;
}
@@ -431,17 +430,17 @@ void SvxTextAttrPage::Construct()
{
switch (m_eObjKind)
{
- case OBJ_NONE:
+ case SdrObjKind::NONE:
// indeterminate, show them all
bFitToSizeEnabled = bContourEnabled = bWordWrapTextEnabled =
bAutoGrowSizeEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = true;
m_xCustomShapeText->show();
m_xDrawingText->show();
break;
- case OBJ_TEXT:
- case OBJ_TITLETEXT:
- case OBJ_OUTLINETEXT:
- case OBJ_CAPTION:
+ case SdrObjKind::Text:
+ case SdrObjKind::TitleText:
+ case SdrObjKind::OutlineText:
+ case SdrObjKind::Caption:
// contour NOT possible for pure text objects
bContourEnabled = bWordWrapTextEnabled = bAutoGrowSizeEnabled = false;
@@ -450,7 +449,7 @@ void SvxTextAttrPage::Construct()
m_xCustomShapeText->hide();
m_xDrawingText->show();
break;
- case OBJ_CUSTOMSHAPE:
+ case SdrObjKind::CustomShape:
bFitToSizeEnabled = bContourEnabled = bAutoGrowWidthEnabled = bAutoGrowHeightEnabled = false;
bWordWrapTextEnabled = bAutoGrowSizeEnabled = true;
m_xDrawingText->hide();
@@ -631,7 +630,7 @@ IMPL_LINK(SvxTextAttrPage, ClickHdl_Impl, weld::Toggleable&, rButton, void)
// #103516# Do the setup based on states of hor/ver adjust
SfxItemState eVState = rOutAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST );
SfxItemState eHState = rOutAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST );
- bool bHorAndVer(SfxItemState::DONTCARE == eVState || SfxItemState::DONTCARE == eHState);
+ bool bHorAndVer(SfxItemState::INVALID == eVState || SfxItemState::INVALID == eHState);
// #83698# enable/disable text anchoring dependent of contour
m_xFlPosition->set_sensitive(!bContour && !bHorAndVer);
@@ -644,7 +643,7 @@ bool SvxTextAttrPage::IsTextDirectionLeftToRight() const
bool bLeftToRightDirection = true;
SfxItemState eState = rOutAttrs.GetItemState(SDRATTR_TEXTDIRECTION);
- if(SfxItemState::DONTCARE != eState)
+ if(SfxItemState::INVALID != eState)
{
const SvxWritingModeItem& rItem = rOutAttrs.Get(SDRATTR_TEXTDIRECTION);
if (rItem.GetValue() == css::text::WritingMode_TB_RL)
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 2bacae4da9f5..202db8ce8526 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -19,12 +19,14 @@
#include <svx/svxids.hrc>
#include <svx/xfillit0.hxx>
+#include <svx/xfilluseslidebackgrounditem.hxx>
#include <svx/xflbckit.hxx>
#include <svx/drawitem.hxx>
#include <svx/xflclit.hxx>
#include <svx/xflgrit.hxx>
#include <svx/xflhtit.hxx>
#include <svx/xbtmpit.hxx>
+#include <svx/xgrscit.hxx>
#include <cuitabarea.hxx>
#include <sfx2/tabdlg.hxx>
@@ -41,7 +43,8 @@ enum FillType
GRADIENT,
HATCH,
BITMAP,
- PATTERN
+ PATTERN,
+ USE_BACKGROUND_FILL
};
}
@@ -70,8 +73,9 @@ void lclExtendSize(Size& rSize, const Size& rInputSize)
|*
\************************************************************************/
-SvxAreaTabPage::SvxAreaTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/areatabpage.ui", "AreaTabPage", &rInAttrs)
+SvxAreaTabPage::SvxAreaTabPage(weld::Container* pPage, weld::DialogController* pController,
+ const SfxItemSet& rInAttrs, bool bSlideBackground)
+ : SfxTabPage(pPage, pController, u"cui/ui/areatabpage.ui"_ustr, u"AreaTabPage"_ustr, &rInAttrs)
// local fixed not o be changed values for local pointers
, maFixed_ChangeType(ChangeType::NONE)
// init with pointers to fixed ChangeType
@@ -82,13 +86,14 @@ SvxAreaTabPage::SvxAreaTabPage(weld::Container* pPage, weld::DialogController* p
, m_pnHatchingListState(&maFixed_ChangeType)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
- , m_xFillTab(m_xBuilder->weld_container("fillstylebox"))
- , m_xBtnNone(m_xBuilder->weld_toggle_button("btnnone"))
- , m_xBtnColor(m_xBuilder->weld_toggle_button("btncolor"))
- , m_xBtnGradient(m_xBuilder->weld_toggle_button("btngradient"))
- , m_xBtnHatch(m_xBuilder->weld_toggle_button("btnhatch"))
- , m_xBtnBitmap(m_xBuilder->weld_toggle_button("btnbitmap"))
- , m_xBtnPattern(m_xBuilder->weld_toggle_button("btnpattern"))
+ , m_xFillTab(m_xBuilder->weld_container(u"fillstylebox"_ustr))
+ , m_xBtnNone(m_xBuilder->weld_toggle_button(u"btnnone"_ustr))
+ , m_xBtnColor(m_xBuilder->weld_toggle_button(u"btncolor"_ustr))
+ , m_xBtnGradient(m_xBuilder->weld_toggle_button(u"btngradient"_ustr))
+ , m_xBtnHatch(m_xBuilder->weld_toggle_button(u"btnhatch"_ustr))
+ , m_xBtnBitmap(m_xBuilder->weld_toggle_button(u"btnbitmap"_ustr))
+ , m_xBtnPattern(m_xBuilder->weld_toggle_button(u"btnpattern"_ustr))
+ , m_xBtnUseBackground(m_xBuilder->weld_toggle_button(u"btnusebackground"_ustr))
{
maBox.AddButton(m_xBtnNone.get());
maBox.AddButton(m_xBtnColor.get());
@@ -96,6 +101,7 @@ SvxAreaTabPage::SvxAreaTabPage(weld::Container* pPage, weld::DialogController* p
maBox.AddButton(m_xBtnHatch.get());
maBox.AddButton(m_xBtnBitmap.get());
maBox.AddButton(m_xBtnPattern.get());
+
Link<weld::Toggleable&, void> aLink = LINK(this, SvxAreaTabPage, SelectFillTypeHdl_Impl);
m_xBtnNone->connect_toggled(aLink);
m_xBtnColor->connect_toggled(aLink);
@@ -103,6 +109,13 @@ SvxAreaTabPage::SvxAreaTabPage(weld::Container* pPage, weld::DialogController* p
m_xBtnHatch->connect_toggled(aLink);
m_xBtnBitmap->connect_toggled(aLink);
m_xBtnPattern->connect_toggled(aLink);
+ if (bSlideBackground)
+ {
+ maBox.AddButton(m_xBtnUseBackground.get());
+ m_xBtnUseBackground->connect_toggled(aLink);
+ }
+ else
+ m_xBtnUseBackground->hide();
SetExchangeSupport();
}
@@ -154,9 +167,9 @@ SvxAreaTabPage::~SvxAreaTabPage()
void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
{
drawing::FillStyle eXFS = drawing::FillStyle_NONE;
- if( rSet.GetItemState( XATTR_FILLSTYLE ) != SfxItemState::DONTCARE )
+ if( rSet.GetItemState( XATTR_FILLSTYLE ) != SfxItemState::INVALID )
{
- XFillStyleItem aFillStyleItem( static_cast<const XFillStyleItem&>( rSet.Get( GetWhich( XATTR_FILLSTYLE ) ) ) );
+ XFillStyleItem aFillStyleItem( rSet.Get( GetWhich( XATTR_FILLSTYLE ) ) );
eXFS = aFillStyleItem.GetValue();
m_rXFSet.Put( aFillStyleItem );
}
@@ -166,33 +179,37 @@ void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
default:
case drawing::FillStyle_NONE:
{
- SelectFillType(*m_xBtnNone);
+ XFillUseSlideBackgroundItem aBckItem( rSet.Get(XATTR_FILLUSESLIDEBACKGROUND));
+ if (aBckItem.GetValue())
+ SelectFillType(*m_xBtnUseBackground);
+ else
+ SelectFillType(*m_xBtnNone);
break;
}
case drawing::FillStyle_SOLID:
{
- m_rXFSet.Put( static_cast<const XFillColorItem&>( rSet.Get( GetWhich( XATTR_FILLCOLOR ) ) ) );
+ m_rXFSet.Put( rSet.Get( GetWhich( XATTR_FILLCOLOR ) ) );
SelectFillType(*m_xBtnColor);
break;
}
case drawing::FillStyle_GRADIENT:
{
- m_rXFSet.Put( static_cast<const XFillGradientItem&>( rSet.Get( GetWhich( XATTR_FILLGRADIENT ) ) ) );
+ m_rXFSet.Put( rSet.Get( GetWhich( XATTR_FILLGRADIENT ) ) );
+ m_rXFSet.Put(rSet.Get(GetWhich(XATTR_GRADIENTSTEPCOUNT)));
SelectFillType(*m_xBtnGradient);
break;
}
case drawing::FillStyle_HATCH:
{
m_rXFSet.Put( rSet.Get(XATTR_FILLHATCH) );
- m_rXFSet.Put( rSet.Get(XATTR_FILLBACKGROUND) );
+ m_rXFSet.Put( rSet.Get(XATTR_FILLUSESLIDEBACKGROUND) );
m_rXFSet.Put( rSet.Get(XATTR_FILLCOLOR) );
SelectFillType(*m_xBtnHatch);
break;
}
case drawing::FillStyle_BITMAP:
{
- const bool bPattern
- = rSet.Get(TypedWhichId<XFillBitmapItem>(GetWhich(XATTR_FILLBITMAP))).isPattern();
+ const bool bPattern = rSet.Get(GetWhich(XATTR_FILLBITMAP)).isPattern();
// pass full item set here, bitmap fill has many attributes (tiling, size, offset etc.)
m_rXFSet.Put( rSet );
if (!bPattern)
@@ -223,6 +240,8 @@ DeactivateRC SvxAreaTabPage::DeactivatePage( SfxItemSet* _pSet )
{
XFillStyleItem aStyleItem( drawing::FillStyle_NONE );
_pSet->Put( aStyleItem );
+ XFillUseSlideBackgroundItem aFillBgItem( false );
+ _pSet->Put( aFillBgItem );
}
break;
}
@@ -236,6 +255,17 @@ DeactivateRC SvxAreaTabPage::DeactivatePage( SfxItemSet* _pSet )
return DeactivatePage_Impl<SvxBitmapTabPage&>(_pSet);
case PATTERN:
return DeactivatePage_Impl<SvxPatternTabPage>(_pSet);
+ case USE_BACKGROUND_FILL:
+ {
+ if ( m_bBtnClicked )
+ {
+ XFillStyleItem aStyleItem( drawing::FillStyle_NONE );
+ _pSet->Put( aStyleItem );
+ XFillUseSlideBackgroundItem aFillBgItem( true );
+ _pSet->Put( aFillBgItem );
+ }
+ break;
+ }
default:
break;
}
@@ -248,6 +278,21 @@ bool SvxAreaTabPage::FillItemSet_Impl( SfxItemSet* rAttrs)
return static_cast<TTabPage&>( *m_xFillTabPage ).FillItemSet( rAttrs );
}
+OUString SvxAreaTabPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString toggleButton[] = { u"btnnone"_ustr, u"btncolor"_ustr, u"btngradient"_ustr, u"btnbitmap"_ustr,
+ u"btnpattern"_ustr, u"btnhatch"_ustr, u"btnusebackground"_ustr };
+
+ for (const auto& toggle : toggleButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_toggle_button(toggle))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxAreaTabPage::FillItemSet( SfxItemSet* rAttrs )
{
FillType eFillType = static_cast<FillType>(maBox.GetCurrentButtonPos());
@@ -256,6 +301,7 @@ bool SvxAreaTabPage::FillItemSet( SfxItemSet* rAttrs )
case TRANSPARENT:
{
rAttrs->Put( XFillStyleItem( drawing::FillStyle_NONE ) );
+ rAttrs->Put( XFillUseSlideBackgroundItem( false ) );
return true;
}
case SOLID:
@@ -278,6 +324,12 @@ bool SvxAreaTabPage::FillItemSet( SfxItemSet* rAttrs )
{
return FillItemSet_Impl<SvxPatternTabPage>( rAttrs );
}
+ case USE_BACKGROUND_FILL:
+ {
+ rAttrs->Put( XFillStyleItem( drawing::FillStyle_NONE ) );
+ rAttrs->Put( XFillUseSlideBackgroundItem( true ) );
+ return true;
+ }
default:
return false;
}
@@ -332,6 +384,14 @@ std::unique_ptr<SfxTabPage> SvxAreaTabPage::Create(weld::Container* pPage, weld:
return xRet;
}
+std::unique_ptr<SfxTabPage> SvxAreaTabPage::CreateWithSlideBackground(
+ weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrs)
+{
+ auto xRet = std::make_unique<SvxAreaTabPage>(pPage, pController, *rAttrs, true);
+ xRet->SetOptimalSize(pController);
+ return xRet;
+}
+
namespace {
std::unique_ptr<SfxTabPage> lcl_CreateFillStyleTabPage(sal_uInt16 nId, weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
@@ -345,6 +405,7 @@ std::unique_ptr<SfxTabPage> lcl_CreateFillStyleTabPage(sal_uInt16 nId, weld::Con
case HATCH: fnCreate = &SvxHatchTabPage::Create; break;
case BITMAP: fnCreate = &SvxBitmapTabPage::Create; break;
case PATTERN: fnCreate = &SvxPatternTabPage::Create; break;
+ case USE_BACKGROUND_FILL: fnCreate = nullptr; break;
}
return fnCreate ? (*fnCreate)( pPage, pController, &rSet ) : nullptr;
}
@@ -373,8 +434,10 @@ void SvxAreaTabPage::SelectFillType(weld::Toggleable& rButton, const SfxItemSet*
FillType eFillType = static_cast<FillType>(maBox.GetCurrentButtonPos());
m_xFillTabPage = lcl_CreateFillStyleTabPage(eFillType, m_xFillTab.get(), GetDialogController(), m_rXFSet);
if (m_xFillTabPage)
+ {
m_xFillTabPage->SetDialogController(GetDialogController());
- CreatePage(eFillType, m_xFillTabPage.get());
+ CreatePage(eFillType, *m_xFillTabPage);
+ }
}
}
@@ -398,63 +461,63 @@ void SvxAreaTabPage::PageCreated(const SfxAllItemSet& aSet)
SetPatternList(pPatternListItem->GetPatternList());
}
-void SvxAreaTabPage::CreatePage( sal_Int32 nId, SfxTabPage* pTab )
+void SvxAreaTabPage::CreatePage(sal_Int32 nId, SfxTabPage& rTab)
{
if(nId == SOLID )
{
- auto* pColorTab = static_cast<SvxColorTabPage*>(pTab);
- pColorTab->SetColorList(m_pColorList);
- pColorTab->SetColorChgd(m_pnColorListState);
- pColorTab->Construct();
- pColorTab->ActivatePage(m_rXFSet);
- pColorTab->Reset(&m_rXFSet);
- pColorTab->set_visible(true);
+ auto& rColorTab = static_cast<SvxColorTabPage&>(rTab);
+ rColorTab.SetColorList(m_pColorList);
+ rColorTab.SetColorChgd(m_pnColorListState);
+ rColorTab.Construct();
+ rColorTab.ActivatePage(m_rXFSet);
+ rColorTab.Reset(&m_rXFSet);
+ rColorTab.set_visible(true);
}
else if(nId == GRADIENT)
{
- auto* pGradientTab = static_cast<SvxGradientTabPage*>(pTab);
- pGradientTab->SetColorList(m_pColorList);
- pGradientTab->SetGradientList(m_pGradientList);
- pGradientTab->SetGrdChgd(m_pnGradientListState);
- pGradientTab->SetColorChgd(m_pnColorListState);
- pGradientTab->Construct();
- pGradientTab->ActivatePage(m_rXFSet);
- pGradientTab->Reset(&m_rXFSet);
- pGradientTab->set_visible(true);
+ auto& rGradientTab = static_cast<SvxGradientTabPage&>(rTab);
+ rGradientTab.SetColorList(m_pColorList);
+ rGradientTab.SetGradientList(m_pGradientList);
+ rGradientTab.SetGrdChgd(m_pnGradientListState);
+ rGradientTab.SetColorChgd(m_pnColorListState);
+ rGradientTab.Construct();
+ rGradientTab.ActivatePage(m_rXFSet);
+ rGradientTab.Reset(&m_rXFSet);
+ rGradientTab.set_visible(true);
}
else if(nId == HATCH)
{
- auto* pHatchTab = static_cast<SvxHatchTabPage*>(pTab);
- pHatchTab->SetColorList(m_pColorList);
- pHatchTab->SetHatchingList(m_pHatchingList);
- pHatchTab->SetHtchChgd(m_pnHatchingListState);
- pHatchTab->SetColorChgd(m_pnColorListState);
- pHatchTab->Construct();
- pHatchTab->ActivatePage(m_rXFSet);
- pHatchTab->Reset(&m_rXFSet);
- pHatchTab->set_visible(true);
+ auto& rHatchTab = static_cast<SvxHatchTabPage&>(rTab);
+ rHatchTab.SetColorList(m_pColorList);
+ rHatchTab.SetHatchingList(m_pHatchingList);
+ rHatchTab.SetHtchChgd(m_pnHatchingListState);
+ rHatchTab.SetColorChgd(m_pnColorListState);
+ rHatchTab.Construct();
+ rHatchTab.ActivatePage(m_rXFSet);
+ rHatchTab.Reset(&m_rXFSet);
+ rHatchTab.set_visible(true);
}
else if(nId == BITMAP)
{
- auto* pBitmapTab = static_cast<SvxBitmapTabPage*>(pTab);
- pBitmapTab->SetBitmapList(m_pBitmapList);
- pBitmapTab->SetBmpChgd(m_pnBitmapListState);
- pBitmapTab->Construct();
- pBitmapTab->ActivatePage(m_rXFSet);
- pBitmapTab->Reset(&m_rXFSet);
- pBitmapTab->set_visible(true);
+ auto& rBitmapTab = static_cast<SvxBitmapTabPage&>(rTab);
+ rBitmapTab.SetBitmapList(m_pBitmapList);
+ rBitmapTab.SetBmpChgd(m_pnBitmapListState);
+ rBitmapTab.Construct();
+ rBitmapTab.ActivatePage(m_rXFSet);
+ rBitmapTab.Reset(&m_rXFSet);
+ rBitmapTab.set_visible(true);
}
else if(nId == PATTERN)
{
- auto* pPatternTab = static_cast<SvxPatternTabPage*>(pTab);
- pPatternTab->SetColorList(m_pColorList);
- pPatternTab->SetPatternList(m_pPatternList);
- pPatternTab->SetPtrnChgd(m_pnPatternListState);
- pPatternTab->SetColorChgd(m_pnColorListState);
- pPatternTab->Construct();
- pPatternTab->ActivatePage(m_rXFSet);
- pPatternTab->Reset(&m_rXFSet);
- pPatternTab->set_visible(true);
+ auto& rPatternTab = static_cast<SvxPatternTabPage&>(rTab);
+ rPatternTab.SetColorList(m_pColorList);
+ rPatternTab.SetPatternList(m_pPatternList);
+ rPatternTab.SetPtrnChgd(m_pnPatternListState);
+ rPatternTab.SetColorChgd(m_pnColorListState);
+ rPatternTab.Construct();
+ rPatternTab.ActivatePage(m_rXFSet);
+ rPatternTab.Reset(&m_rXFSet);
+ rPatternTab.set_visible(true);
}
}
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index 65cb4136cd5e..4844cc1d3e51 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -67,7 +67,7 @@ enum TileOffset
}
SvxBitmapTabPage::SvxBitmapTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/imagetabpage.ui", "ImageTabPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/imagetabpage.ui"_ustr, u"ImageTabPage"_ustr, &rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnBitmapListState(nullptr)
, m_fObjectWidth(0.0)
@@ -76,23 +76,23 @@ SvxBitmapTabPage::SvxBitmapTabPage(weld::Container* pPage, weld::DialogControlle
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, mpView(nullptr)
- , m_xBitmapLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("imagewin", true)))
- , m_xBitmapStyleLB(m_xBuilder->weld_combo_box("imagestyle"))
- , m_xSizeBox(m_xBuilder->weld_container("sizebox"))
- , m_xTsbScale(m_xBuilder->weld_check_button("scaletsb"))
- , m_xBitmapWidth(m_xBuilder->weld_metric_spin_button("width", FieldUnit::PERCENT))
- , m_xBitmapHeight(m_xBuilder->weld_metric_spin_button("height", FieldUnit::PERCENT))
- , m_xPositionBox(m_xBuilder->weld_container("posbox"))
- , m_xPositionLB(m_xBuilder->weld_combo_box("positionlb"))
- , m_xPositionOffBox(m_xBuilder->weld_container("posoffbox"))
- , m_xPositionOffX(m_xBuilder->weld_metric_spin_button("posoffx", FieldUnit::PERCENT))
- , m_xPositionOffY(m_xBuilder->weld_metric_spin_button("posoffy", FieldUnit::PERCENT))
- , m_xTileOffBox(m_xBuilder->weld_container("tileoffbox"))
- , m_xTileOffLB(m_xBuilder->weld_combo_box("tileofflb"))
- , m_xTileOffset(m_xBuilder->weld_metric_spin_button("tileoffmtr", FieldUnit::PERCENT))
- , m_xBtnImport(m_xBuilder->weld_button("BTN_IMPORT"))
- , m_xCtlBitmapPreview(new weld::CustomWeld(*m_xBuilder, "CTL_IMAGE_PREVIEW", m_aCtlBitmapPreview))
- , m_xBitmapLBWin(new weld::CustomWeld(*m_xBuilder, "IMAGE", *m_xBitmapLB))
+ , m_xBitmapLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window(u"imagewin"_ustr, true)))
+ , m_xBitmapStyleLB(m_xBuilder->weld_combo_box(u"imagestyle"_ustr))
+ , m_xSizeBox(m_xBuilder->weld_container(u"sizebox"_ustr))
+ , m_xTsbScale(m_xBuilder->weld_check_button(u"scaletsb"_ustr))
+ , m_xBitmapWidth(m_xBuilder->weld_metric_spin_button(u"width"_ustr, FieldUnit::PERCENT))
+ , m_xBitmapHeight(m_xBuilder->weld_metric_spin_button(u"height"_ustr, FieldUnit::PERCENT))
+ , m_xPositionBox(m_xBuilder->weld_container(u"posbox"_ustr))
+ , m_xPositionLB(m_xBuilder->weld_combo_box(u"positionlb"_ustr))
+ , m_xPositionOffBox(m_xBuilder->weld_container(u"posoffbox"_ustr))
+ , m_xPositionOffX(m_xBuilder->weld_metric_spin_button(u"posoffx"_ustr, FieldUnit::PERCENT))
+ , m_xPositionOffY(m_xBuilder->weld_metric_spin_button(u"posoffy"_ustr, FieldUnit::PERCENT))
+ , m_xTileOffBox(m_xBuilder->weld_container(u"tileoffbox"_ustr))
+ , m_xTileOffLB(m_xBuilder->weld_combo_box(u"tileofflb"_ustr))
+ , m_xTileOffset(m_xBuilder->weld_metric_spin_button(u"tileoffmtr"_ustr, FieldUnit::PERCENT))
+ , m_xBtnImport(m_xBuilder->weld_button(u"BTN_IMPORT"_ustr))
+ , m_xCtlBitmapPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_IMAGE_PREVIEW"_ustr, m_aCtlBitmapPreview))
+ , m_xBitmapLBWin(new weld::CustomWeld(*m_xBuilder, u"IMAGE"_ustr, *m_xBitmapLB))
{
// setting the output device
m_rXFSet.Put( XFillStyleItem(drawing::FillStyle_BITMAP) );
@@ -260,7 +260,7 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
double fUIScale = 1.0;
if (mpView)
{
- fUIScale = ( mpView->GetModel() ? double(mpView->GetModel()->GetUIScale()) : 1.0);
+ fUIScale = double(mpView->GetModel().GetUIScale());
if (mpView->AreObjectsMarked())
@@ -298,9 +298,9 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
CalculateBitmapPresetSize();
bool bTiled = false; bool bStretched = false;
- if(rAttrs->GetItemState( XATTR_FILLBMP_TILE ) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState( XATTR_FILLBMP_TILE ) != SfxItemState::INVALID)
bTiled = rAttrs->Get( XATTR_FILLBMP_TILE ).GetValue();
- if(rAttrs->GetItemState( XATTR_FILLBMP_STRETCH ) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState( XATTR_FILLBMP_STRETCH ) != SfxItemState::INVALID)
bStretched = rAttrs->Get( XATTR_FILLBMP_STRETCH ).GetValue();
if (bTiled)
@@ -313,42 +313,38 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
tools::Long nWidth = 0;
tools::Long nHeight = 0;
- if(rAttrs->GetItemState(XATTR_FILLBMP_SIZELOG) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState(XATTR_FILLBMP_SIZELOG) != SfxItemState::INVALID)
{
if (rAttrs->Get( XATTR_FILLBMP_SIZELOG ).GetValue())
- {
m_xTsbScale->set_state(TRISTATE_FALSE);
- m_bLogicalSize = true;
- }
else
- {
m_xTsbScale->set_state(TRISTATE_TRUE);
- m_bLogicalSize = false;
- }
}
else
m_xTsbScale->set_state(TRISTATE_INDET);
TriState eRelative = TRISTATE_FALSE;
- if(rAttrs->GetItemState(XATTR_FILLBMP_SIZEX) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState(XATTR_FILLBMP_SIZEX) != SfxItemState::INVALID)
{
nWidth = static_cast<const XFillBmpSizeXItem&>( rAttrs->Get( XATTR_FILLBMP_SIZEX ) ).GetValue();
if(nWidth == 0)
nWidth = rBitmapSize.Width();
else if(nWidth < 0)
{
+ m_bLogicalSize = true;
eRelative = TRISTATE_TRUE;
nWidth = std::abs(nWidth);
}
}
- if(rAttrs->GetItemState( XATTR_FILLBMP_SIZEY ) != SfxItemState::DONTCARE)
+ if(rAttrs->GetItemState( XATTR_FILLBMP_SIZEY ) != SfxItemState::INVALID)
{
nHeight = rAttrs->Get( XATTR_FILLBMP_SIZEY ).GetValue();
if(nHeight == 0)
nHeight = rBitmapSize.Height();
else if(nHeight < 0)
{
+ m_bLogicalSize = true;
eRelative = TRISTATE_TRUE;
nHeight = std::abs(nHeight);
}
@@ -371,29 +367,29 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
}
}
- if( rAttrs->GetItemState( XATTR_FILLBMP_POS ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_POS ) != SfxItemState::INVALID )
{
RectPoint eValue = rAttrs->Get( XATTR_FILLBMP_POS ).GetValue();
m_xPositionLB->set_active( static_cast< sal_Int32 >(eValue) );
}
- if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETX ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETX ) != SfxItemState::INVALID )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_POSOFFSETX ).GetValue();
m_xPositionOffX->set_value(nValue, FieldUnit::PERCENT);
}
else
- m_xPositionOffX->set_text("");
+ m_xPositionOffX->set_text(u""_ustr);
- if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETY ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_POSOFFSETY ) != SfxItemState::INVALID )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_POSOFFSETY ).GetValue();
m_xPositionOffY->set_value(nValue, FieldUnit::PERCENT);
}
else
- m_xPositionOffY->set_text("");
+ m_xPositionOffY->set_text(u""_ustr);
- if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETX ) != SfxItemState::DONTCARE)
+ if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETX ) != SfxItemState::INVALID)
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_TILEOFFSETX ).GetValue();
if(nValue > 0)
@@ -403,7 +399,7 @@ void SvxBitmapTabPage::Reset( const SfxItemSet* rAttrs )
}
}
- if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETY ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_FILLBMP_TILEOFFSETY ) != SfxItemState::INVALID )
{
sal_Int32 nValue = rAttrs->Get( XATTR_FILLBMP_TILEOFFSETY ).GetValue();
if(nValue > 0)
@@ -464,15 +460,14 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, ValueSet*, void)
}
else
{
- const SfxPoolItem* pPoolItem = nullptr;
-
- if(SfxItemState::SET == m_rOutAttrs.GetItemState(GetWhich(XATTR_FILLSTYLE), true, &pPoolItem))
+ if(const XFillStyleItem* pFillStyleItem = m_rOutAttrs.GetItemIfSet(GetWhich(XATTR_FILLSTYLE)))
{
- const drawing::FillStyle eXFS(static_cast<const XFillStyleItem*>(pPoolItem)->GetValue());
+ const drawing::FillStyle eXFS(pFillStyleItem->GetValue());
- if((drawing::FillStyle_BITMAP == eXFS) && (SfxItemState::SET == m_rOutAttrs.GetItemState(GetWhich(XATTR_FILLBITMAP), true, &pPoolItem)))
+ const XFillBitmapItem* pBitmapItem;
+ if((drawing::FillStyle_BITMAP == eXFS) && (pBitmapItem = m_rOutAttrs.GetItemIfSet(GetWhich(XATTR_FILLBITMAP))))
{
- pGraphicObject.reset(new GraphicObject(static_cast<const XFillBitmapItem*>(pPoolItem)->GetGraphicObject()));
+ pGraphicObject.reset(new GraphicObject(pBitmapItem->GetGraphicObject()));
}
}
@@ -492,7 +487,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, ValueSet*, void)
{
BitmapEx aBmpEx(pGraphicObject->GetGraphic().GetBitmapEx());
Size aTempBitmapSize = aBmpEx.GetSizePixel();
- const double fUIScale = ( (mpView && mpView->GetModel()) ? double(mpView->GetModel()->GetUIScale()) : 1.0);
+ const double fUIScale = mpView ? double(mpView->GetModel().GetUIScale()) : 1.0;
Size aBitmapSize100mm = o3tl::convert(aTempBitmapSize, o3tl::Length::pt, o3tl::Length::mm100);
rBitmapSize.setWidth(aBitmapSize100mm.Width() / fUIScale);
@@ -523,7 +518,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, SvxPresetListBox*, void)
if( nPos == VALUESET_ITEM_NOTFOUND )
return;
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_NEW_BITMAP ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_NEW_BITMAP ) );
OUString aName( m_pBitmapList->GetBitmap( nPos )->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -532,7 +527,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, SvxPresetListBox*, void)
bool bLoop = true;
while( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
sal_Int32 nBitmapPos = SearchBitmapList( aName );
bool bValidBitmapName = (nBitmapPos == static_cast<sal_Int32>(nPos) ) || (nBitmapPos == -1);
@@ -548,8 +543,8 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickRenameHdl, SvxPresetListBox*, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xBox->run();
}
}
@@ -563,8 +558,8 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickDeleteHdl, SvxPresetListBox*, void)
if( nPos == VALUESET_ITEM_NOTFOUND )
return;
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelBitmapDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletebitmapdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog(u"AskDelBitmapDialog"_ustr));
if (xQueryBox->run() != RET_YES)
return;
@@ -718,7 +713,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
{
weld::Window* pDialogFrameWeld = GetFrameWeld();
- SvxOpenGraphicDialog aDlg(CuiResId(RID_SVXSTR_ADD_IMAGE), pDialogFrameWeld);
+ SvxOpenGraphicDialog aDlg(CuiResId(RID_CUISTR_ADD_IMAGE), pDialogFrameWeld);
aDlg.EnableLink(false);
tools::Long nCount = m_pBitmapList->Count();
@@ -733,7 +728,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
if( !nError )
{
- OUString aDesc(CuiResId(RID_SVXSTR_DESC_EXT_BITMAP));
+ OUString aDesc(CuiResId(RID_CUISTR_DESC_EXT_BITMAP));
// convert file URL to UI name
OUString aName;
@@ -745,7 +740,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
while( pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bool bDifferent = true;
@@ -758,8 +753,8 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
break;
}
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pDialogFrameWeld, "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pDialogFrameWeld, u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
if (xBox->run() != RET_OK)
break;
}
@@ -783,8 +778,8 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl, weld::Button&, void)
else
{
// graphic couldn't be loaded
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pDialogFrameWeld, "cui/ui/querynoloadedfiledialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("NoLoadedFileDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pDialogFrameWeld, u"cui/ui/querynoloadedfiledialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"NoLoadedFileDialog"_ustr));
xBox->run();
}
}
diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index 5669f73adc76..8a84b1a99bca 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -36,52 +36,52 @@
#include <officecfg/Office/Common.hxx>
#include <osl/diagnose.h>
#include <comphelper/dispatchcommand.hxx>
+#include <comphelper/lok.hxx>
#include <comphelper/propertyvalue.hxx>
using namespace com::sun::star;
SvxColorTabPage::SvxColorTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/colorpage.ui", "ColorPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/colorpage.ui"_ustr, u"ColorPage"_ustr, &rInAttrs)
, rOutAttrs ( rInAttrs )
// All the horrific pointers we store and should not
, pnColorListState( nullptr )
, aXFillAttr( rInAttrs.GetPool() )
, rXFSet( aXFillAttr.GetItemSet() )
, eCM( ColorModel::RGB )
- , m_context(comphelper::getProcessComponentContext())
- , m_xValSetColorList(new SvxColorValueSet(m_xBuilder->weld_scrolled_window("colorsetwin", true)))
+ , m_xValSetColorList(new SvxColorValueSet(m_xBuilder->weld_scrolled_window(u"colorsetwin"_ustr, true)))
, m_xValSetRecentList(new SvxColorValueSet(nullptr))
- , m_xSelectPalette(m_xBuilder->weld_combo_box("paletteselector"))
- , m_xRbRGB(m_xBuilder->weld_radio_button("RGB"))
- , m_xRbCMYK(m_xBuilder->weld_radio_button("CMYK"))
- , m_xRGBcustom(m_xBuilder->weld_widget("rgbcustom"))
- , m_xRGBpreset(m_xBuilder->weld_widget("rgbpreset"))
- , m_xRpreset(m_xBuilder->weld_entry("R_preset"))
- , m_xGpreset(m_xBuilder->weld_entry("G_preset"))
- , m_xBpreset(m_xBuilder->weld_entry("B_preset"))
- , m_xRcustom(m_xBuilder->weld_spin_button("R_custom"))
- , m_xGcustom(m_xBuilder->weld_spin_button("G_custom"))
- , m_xBcustom(m_xBuilder->weld_spin_button("B_custom"))
- , m_xHexpreset(new weld::HexColorControl(m_xBuilder->weld_entry("hex_preset")))
- , m_xHexcustom(new weld::HexColorControl(m_xBuilder->weld_entry("hex_custom")))
- , m_xCMYKcustom(m_xBuilder->weld_widget("cmykcustom"))
- , m_xCMYKpreset(m_xBuilder->weld_widget("cmykpreset"))
- , m_xCpreset(m_xBuilder->weld_entry("C_preset"))
- , m_xYpreset(m_xBuilder->weld_entry("Y_preset"))
- , m_xMpreset(m_xBuilder->weld_entry("M_preset"))
- , m_xKpreset(m_xBuilder->weld_entry("K_preset"))
- , m_xCcustom(m_xBuilder->weld_metric_spin_button("C_custom", FieldUnit::PERCENT))
- , m_xYcustom(m_xBuilder->weld_metric_spin_button("Y_custom", FieldUnit::PERCENT))
- , m_xMcustom(m_xBuilder->weld_metric_spin_button("M_custom", FieldUnit::PERCENT))
- , m_xKcustom(m_xBuilder->weld_metric_spin_button("K_custom", FieldUnit::PERCENT))
- , m_xBtnAdd(m_xBuilder->weld_button("add"))
- , m_xBtnDelete(m_xBuilder->weld_button("delete"))
- , m_xBtnWorkOn(m_xBuilder->weld_button("edit"))
- , m_xMoreColors(m_xBuilder->weld_button("btnMoreColors"))
- , m_xCtlPreviewOld(new weld::CustomWeld(*m_xBuilder, "oldpreview", m_aCtlPreviewOld))
- , m_xCtlPreviewNew(new weld::CustomWeld(*m_xBuilder, "newpreview", m_aCtlPreviewNew))
- , m_xValSetColorListWin(new weld::CustomWeld(*m_xBuilder, "colorset", *m_xValSetColorList))
- , m_xValSetRecentListWin(new weld::CustomWeld(*m_xBuilder, "recentcolorset", *m_xValSetRecentList))
+ , m_xSelectPalette(m_xBuilder->weld_combo_box(u"paletteselector"_ustr))
+ , m_xRbRGB(m_xBuilder->weld_radio_button(u"RGB"_ustr))
+ , m_xRbCMYK(m_xBuilder->weld_radio_button(u"CMYK"_ustr))
+ , m_xRGBcustom(m_xBuilder->weld_widget(u"rgbcustom"_ustr))
+ , m_xRGBpreset(m_xBuilder->weld_widget(u"rgbpreset"_ustr))
+ , m_xRpreset(m_xBuilder->weld_entry(u"R_preset"_ustr))
+ , m_xGpreset(m_xBuilder->weld_entry(u"G_preset"_ustr))
+ , m_xBpreset(m_xBuilder->weld_entry(u"B_preset"_ustr))
+ , m_xRcustom(m_xBuilder->weld_spin_button(u"R_custom"_ustr))
+ , m_xGcustom(m_xBuilder->weld_spin_button(u"G_custom"_ustr))
+ , m_xBcustom(m_xBuilder->weld_spin_button(u"B_custom"_ustr))
+ , m_xHexpreset(new weld::HexColorControl(m_xBuilder->weld_entry(u"hex_preset"_ustr)))
+ , m_xHexcustom(new weld::HexColorControl(m_xBuilder->weld_entry(u"hex_custom"_ustr)))
+ , m_xCMYKcustom(m_xBuilder->weld_widget(u"cmykcustom"_ustr))
+ , m_xCMYKpreset(m_xBuilder->weld_widget(u"cmykpreset"_ustr))
+ , m_xCpreset(m_xBuilder->weld_entry(u"C_preset"_ustr))
+ , m_xYpreset(m_xBuilder->weld_entry(u"Y_preset"_ustr))
+ , m_xMpreset(m_xBuilder->weld_entry(u"M_preset"_ustr))
+ , m_xKpreset(m_xBuilder->weld_entry(u"K_preset"_ustr))
+ , m_xCcustom(m_xBuilder->weld_metric_spin_button(u"C_custom"_ustr, FieldUnit::PERCENT))
+ , m_xYcustom(m_xBuilder->weld_metric_spin_button(u"Y_custom"_ustr, FieldUnit::PERCENT))
+ , m_xMcustom(m_xBuilder->weld_metric_spin_button(u"M_custom"_ustr, FieldUnit::PERCENT))
+ , m_xKcustom(m_xBuilder->weld_metric_spin_button(u"K_custom"_ustr, FieldUnit::PERCENT))
+ , m_xBtnAdd(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xBtnDelete(m_xBuilder->weld_button(u"delete"_ustr))
+ , m_xBtnWorkOn(m_xBuilder->weld_button(u"edit"_ustr))
+ , m_xMoreColors(m_xBuilder->weld_button(u"btnMoreColors"_ustr))
+ , m_xCtlPreviewOld(new weld::CustomWeld(*m_xBuilder, u"oldpreview"_ustr, m_aCtlPreviewOld))
+ , m_xCtlPreviewNew(new weld::CustomWeld(*m_xBuilder, u"newpreview"_ustr, m_aCtlPreviewNew))
+ , m_xValSetColorListWin(new weld::CustomWeld(*m_xBuilder, u"colorset"_ustr, *m_xValSetColorList))
+ , m_xValSetRecentListWin(new weld::CustomWeld(*m_xBuilder, u"recentcolorset"_ustr, *m_xValSetRecentList))
{
Size aSize(m_xBtnWorkOn->get_approximate_digit_width() * 25,
m_xBtnWorkOn->get_text_height() * 10);
@@ -129,9 +129,8 @@ SvxColorTabPage::SvxColorTabPage(weld::Container* pPage, weld::DialogController*
// disable modify buttons
// Color palettes can't be modified
m_xBtnDelete->set_sensitive(false);
- m_xBtnDelete->set_tooltip_text( SvxResId(RID_SVXSTR_DELETEUSERCOLOR1) );
+ m_xBtnDelete->set_tooltip_text( CuiResId(RID_CUISTR_DELETEUSERCOLOR1) );
- m_xMoreColors->set_from_icon_name("cmd/sc_additionsdialog.png");
m_xMoreColors->connect_clicked(LINK(this, SvxColorTabPage, OnMoreColorsClick));
// disable preset color values
@@ -150,6 +149,12 @@ SvxColorTabPage::SvxColorTabPage(weld::Container* pPage, weld::DialogController*
maPaletteManager.ReloadRecentColorSet(*m_xValSetRecentList);
aSize = m_xValSetRecentList->layoutAllVisible(maPaletteManager.GetRecentColorCount());
m_xValSetRecentList->set_size_request(aSize.Width(), aSize.Height());
+
+ // it is not possible to install color palette extensions in Online or mobile apps
+ if(comphelper::LibreOfficeKit::isActive())
+ {
+ m_xMoreColors->hide();
+ }
}
SvxColorTabPage::~SvxColorTabPage()
@@ -198,14 +203,15 @@ void SvxColorTabPage::ActivatePage( const SfxItemSet& )
if( !pColorList.is() )
return;
- const SfxPoolItem* pPoolItem = nullptr;
- if( SfxItemState::SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLCOLOR ), true, &pPoolItem ) )
+ if( const XFillColorItem* pFillColorItem = rOutAttrs.GetItemIfSet( GetWhich( XATTR_FILLCOLOR ) ) )
{
SetColorModel( ColorModel::RGB );
ChangeColorModel();
- const Color aColor = static_cast<const XFillColorItem*>(pPoolItem)->GetColorValue();
- ChangeColor( aColor );
+ const Color aColor = pFillColorItem->GetColorValue();
+ NamedColor aNamedColor;
+ aNamedColor.m_aColor = aColor;
+ ChangeColor(aNamedColor);
sal_Int32 nPos = FindInPalette( aColor );
if ( nPos != -1 )
@@ -232,13 +238,16 @@ bool SvxColorTabPage::FillItemSet( SfxItemSet* rSet )
{
Color aColor = m_xValSetColorList->GetItemColor( m_xValSetColorList->GetSelectedItemId() );
OUString sColorName;
- if ( aCurrentColor == aColor )
+ if (m_aCurrentColor.m_aColor == aColor)
sColorName = m_xValSetColorList->GetItemText( m_xValSetColorList->GetSelectedItemId() );
else
- sColorName = "#" + aCurrentColor.AsRGBHexString().toAsciiUpperCase();
- maPaletteManager.AddRecentColor( aCurrentColor, sColorName );
- rSet->Put( XFillColorItem( sColorName, aCurrentColor ) );
- rSet->Put( XFillStyleItem( drawing::FillStyle_SOLID ) );
+ sColorName = "#" + m_aCurrentColor.m_aColor.AsRGBHexString().toAsciiUpperCase();
+
+ maPaletteManager.AddRecentColor(m_aCurrentColor.m_aColor, sColorName);
+ XFillColorItem aColorItem(sColorName, m_aCurrentColor.m_aColor);
+ aColorItem.setComplexColor(m_aCurrentColor.getComplexColor());
+ rSet->Put(aColorItem);
+ rSet->Put(XFillStyleItem(drawing::FillStyle_SOLID));
return true;
}
@@ -257,7 +266,7 @@ void SvxColorTabPage::Reset( const SfxItemSet* rSet )
if ( nState >= SfxItemState::DEFAULT )
{
XFillColorItem aColorItem( rSet->Get( XATTR_FILLCOLOR ) );
- aPreviousColor = aColorItem.GetColorValue();
+ m_aPreviousColor = aColorItem.GetColorValue();
aNewColor = aColorItem.GetColorValue();
}
@@ -267,7 +276,9 @@ void SvxColorTabPage::Reset( const SfxItemSet* rSet )
SetColorModel( eCM );
ChangeColorModel();
- ChangeColor(aNewColor);
+ NamedColor aColor;
+ aColor.m_aColor = aNewColor;
+ ChangeColor(aColor);
UpdateModified();
}
@@ -281,12 +292,12 @@ std::unique_ptr<SfxTabPage> SvxColorTabPage::Create(weld::Container* pPage, weld
IMPL_LINK_NOARG(SvxColorTabPage, SpinValueHdl_Impl, weld::SpinButton&, void)
{
// read current MtrFields, if cmyk, then k-value as transparency
- aCurrentColor = Color(static_cast<sal_uInt8>(PercentToColor_Impl(m_xRcustom->get_value())),
+ m_aCurrentColor.m_aColor = Color(static_cast<sal_uInt8>(PercentToColor_Impl(m_xRcustom->get_value())),
static_cast<sal_uInt8>(PercentToColor_Impl(m_xGcustom->get_value())),
static_cast<sal_uInt8>(PercentToColor_Impl(m_xBcustom->get_value())));
UpdateColorValues();
- rXFSet.Put( XFillColorItem( OUString(), aCurrentColor ) );
+ rXFSet.Put( XFillColorItem( OUString(), m_aCurrentColor.m_aColor ) );
m_aCtlPreviewNew.SetAttributes( aXFillAttr.GetItemSet() );
m_aCtlPreviewNew.Invalidate();
@@ -295,13 +306,13 @@ IMPL_LINK_NOARG(SvxColorTabPage, SpinValueHdl_Impl, weld::SpinButton&, void)
IMPL_LINK_NOARG(SvxColorTabPage, MetricSpinValueHdl_Impl, weld::MetricSpinButton&, void)
{
// read current MtrFields, if cmyk, then k-value as transparency
- aCurrentColor = Color(ColorTransparency, static_cast<sal_uInt8>(PercentToColor_Impl(m_xKcustom->get_value(FieldUnit::NONE))),
+ m_aCurrentColor.m_aColor = Color(ColorTransparency, static_cast<sal_uInt8>(PercentToColor_Impl(m_xKcustom->get_value(FieldUnit::NONE))),
static_cast<sal_uInt8>(PercentToColor_Impl(m_xCcustom->get_value(FieldUnit::NONE))),
static_cast<sal_uInt8>(PercentToColor_Impl(m_xYcustom->get_value(FieldUnit::NONE))),
static_cast<sal_uInt8>(PercentToColor_Impl(m_xMcustom->get_value(FieldUnit::NONE))));
- ConvertColorValues (aCurrentColor, ColorModel::RGB);
+ ConvertColorValues (m_aCurrentColor.m_aColor, ColorModel::RGB);
- rXFSet.Put( XFillColorItem( OUString(), aCurrentColor ) );
+ rXFSet.Put( XFillColorItem( OUString(), m_aCurrentColor.m_aColor ) );
m_aCtlPreviewNew.SetAttributes( aXFillAttr.GetItemSet() );
m_aCtlPreviewNew.Invalidate();
@@ -309,10 +320,10 @@ IMPL_LINK_NOARG(SvxColorTabPage, MetricSpinValueHdl_Impl, weld::MetricSpinButton
IMPL_LINK_NOARG(SvxColorTabPage, ModifiedHdl_Impl, weld::Entry&, void)
{
- aCurrentColor = m_xHexcustom->GetColor();
+ m_aCurrentColor.m_aColor = m_xHexcustom->GetColor();
UpdateColorValues();
- rXFSet.Put( XFillColorItem( OUString(), aCurrentColor ) );
+ rXFSet.Put( XFillColorItem( OUString(), m_aCurrentColor.m_aColor ) );
m_aCtlPreviewNew.SetAttributes( aXFillAttr.GetItemSet() );
m_aCtlPreviewNew.Invalidate();
@@ -321,7 +332,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ModifiedHdl_Impl, weld::Entry&, void)
IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName( SvxResId( RID_SVXSTR_COLOR ) );
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_COLOR ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_COLOR ) );
OUString aName;
tools::Long j = 1;
@@ -339,7 +350,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl, weld::Button&, void)
while (pDlg->Execute() == RET_OK)
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bValidColorName = (FindInCustomColors(aName) == -1);
if (bValidColorName)
@@ -348,8 +359,8 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl, weld::Button&, void)
break;
}
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
if (xWarnBox->run() != RET_OK)
break;
}
@@ -360,22 +371,22 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
m_xSelectPalette->set_active(0);
SelectPaletteLBHdl(*m_xSelectPalette);
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(m_context));
+ std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
css::uno::Sequence< sal_Int32 > aCustomColorList(officecfg::Office::Common::UserColors::CustomColor::get());
css::uno::Sequence< OUString > aCustomColorNameList(officecfg::Office::Common::UserColors::CustomColorName::get());
sal_Int32 nSize = aCustomColorList.getLength();
aCustomColorList.realloc( nSize + 1 );
aCustomColorNameList.realloc( nSize + 1 );
- aCustomColorList.getArray()[nSize] = sal_Int32(aCurrentColor);
+ aCustomColorList.getArray()[nSize] = sal_Int32(m_aCurrentColor.m_aColor);
aCustomColorNameList.getArray()[nSize] = aName;
officecfg::Office::Common::UserColors::CustomColor::set(aCustomColorList, batch);
officecfg::Office::Common::UserColors::CustomColorName::set(aCustomColorNameList, batch);
batch->commit();
sal_uInt16 nId = m_xValSetColorList->GetItemId(nSize - 1);
- m_xValSetColorList->InsertItem( nId + 1 , aCurrentColor, aName );
+ m_xValSetColorList->InsertItem( nId + 1 , m_aCurrentColor.m_aColor, aName );
m_xValSetColorList->SelectItem( nId + 1 );
m_xBtnDelete->set_sensitive(false);
- m_xBtnDelete->set_tooltip_text( SvxResId(RID_SVXSTR_DELETEUSERCOLOR2) );
+ m_xBtnDelete->set_tooltip_text( CuiResId(RID_CUISTR_DELETEUSERCOLOR2) );
ImpColorCountChanged();
}
@@ -386,13 +397,13 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickWorkOnHdl_Impl, weld::Button&, void)
{
SvColorDialog aColorDlg;
- aColorDlg.SetColor (aCurrentColor);
+ aColorDlg.SetColor (m_aCurrentColor.m_aColor);
aColorDlg.SetMode( svtools::ColorPickerMode::Modify );
if (aColorDlg.Execute(GetFrameWeld()) == RET_OK)
{
Color aPreviewColor = aColorDlg.GetColor();
- aCurrentColor = aPreviewColor;
+ m_aCurrentColor.m_aColor = aPreviewColor;
UpdateColorValues( false );
// fill ItemSet and pass it on to XOut
rXFSet.Put( XFillColorItem( OUString(), aPreviewColor ) );
@@ -410,7 +421,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickDeleteHdl_Impl, weld::Button&, void)
if (m_xSelectPalette->get_active() != 0 || nPos == VALUESET_ITEM_NOTFOUND)
return;
- std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(m_context));
+ std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
css::uno::Sequence< sal_Int32 > aCustomColorList(officecfg::Office::Common::UserColors::CustomColor::get());
auto aCustomColorListRange = asNonConstRange(aCustomColorList);
css::uno::Sequence< OUString > aCustomColorNameList(officecfg::Office::Common::UserColors::CustomColorName::get());
@@ -436,7 +447,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickDeleteHdl_Impl, weld::Button&, void)
else
{
m_xBtnDelete->set_sensitive(false);
- m_xBtnDelete->set_tooltip_text( SvxResId(RID_SVXSTR_DELETEUSERCOLOR2) );
+ m_xBtnDelete->set_tooltip_text( CuiResId(RID_CUISTR_DELETEUSERCOLOR2) );
}
}
@@ -472,7 +483,7 @@ IMPL_LINK_NOARG(SvxColorTabPage, SelectPaletteLBHdl, weld::ComboBox&, void)
if (nPos != 0)
{
m_xBtnDelete->set_sensitive(false);
- m_xBtnDelete->set_tooltip_text( SvxResId(RID_SVXSTR_DELETEUSERCOLOR1) );
+ m_xBtnDelete->set_tooltip_text( CuiResId(RID_CUISTR_DELETEUSERCOLOR1) );
}
m_xValSetColorList->Resize();
@@ -489,7 +500,22 @@ IMPL_LINK(SvxColorTabPage, SelectValSetHdl_Impl, ValueSet*, pValSet, void)
rXFSet.Put( XFillColorItem( OUString(), aColor ) );
m_aCtlPreviewNew.SetAttributes( aXFillAttr.GetItemSet() );
m_aCtlPreviewNew.Invalidate();
- ChangeColor(aColor, false);
+
+ NamedColor aNamedColor;
+ aNamedColor.m_aColor = aColor;
+
+ if (pValSet == m_xValSetColorList.get() && maPaletteManager.IsThemePaletteSelected())
+ {
+ sal_uInt16 nThemeIndex;
+ sal_uInt16 nEffectIndex;
+ if (PaletteManager::GetThemeAndEffectIndex(nPos, nThemeIndex, nEffectIndex))
+ {
+ aNamedColor.m_nThemeIndex = nThemeIndex;
+ maPaletteManager.GetLumModOff(nThemeIndex, nEffectIndex, aNamedColor.m_nLumMod, aNamedColor.m_nLumOff);
+ }
+ }
+
+ ChangeColor(aNamedColor, false);
if (pValSet == m_xValSetColorList.get())
{
@@ -497,19 +523,19 @@ IMPL_LINK(SvxColorTabPage, SelectValSetHdl_Impl, ValueSet*, pValSet, void)
if (m_xSelectPalette->get_active() == 0 && m_xValSetColorList->GetSelectedItemId() != 0)
{
m_xBtnDelete->set_sensitive(true);
- m_xBtnDelete->set_tooltip_text("");
+ m_xBtnDelete->set_tooltip_text(u""_ustr);
}
else
{
m_xBtnDelete->set_sensitive(false);
- m_xBtnDelete->set_tooltip_text( SvxResId(RID_SVXSTR_DELETEUSERCOLOR1) );
+ m_xBtnDelete->set_tooltip_text( CuiResId(RID_CUISTR_DELETEUSERCOLOR1) );
}
}
if (pValSet == m_xValSetRecentList.get())
{
m_xValSetColorList->SetNoSelection();
m_xBtnDelete->set_sensitive(false);
- m_xBtnDelete->set_tooltip_text( SvxResId(RID_SVXSTR_DELETEUSERCOLOR2) );
+ m_xBtnDelete->set_tooltip_text( CuiResId(RID_CUISTR_DELETEUSERCOLOR2) );
}
}
@@ -548,17 +574,20 @@ IMPL_LINK_NOARG(SvxColorTabPage, SelectColorModeHdl_Impl, weld::Toggleable&, voi
IMPL_STATIC_LINK_NOARG(SvxColorTabPage, OnMoreColorsClick, weld::Button&, void)
{
css::uno::Sequence<css::beans::PropertyValue> aArgs{ comphelper::makePropertyValue(
- "AdditionsTag", OUString("Color Palette")) };
- comphelper::dispatchCommand(".uno:AdditionsDialog", aArgs);
+ u"AdditionsTag"_ustr, u"Color Palette"_ustr) };
+ comphelper::dispatchCommand(u".uno:AdditionsDialog"_ustr, aArgs);
}
-void SvxColorTabPage::ChangeColor(const Color &rNewColor, bool bUpdatePreset )
+void SvxColorTabPage::ChangeColor(const NamedColor &rNewColor, bool bUpdatePreset )
{
- aPreviousColor = rNewColor;
- aCurrentColor = rNewColor;
+ m_aPreviousColor = rNewColor.m_aColor;
+ m_aCurrentColor = rNewColor;
UpdateColorValues( bUpdatePreset );
// fill ItemSet and pass it on to XOut
- rXFSet.Put( XFillColorItem( OUString(), aCurrentColor ) );
+ XFillColorItem aItem(OUString(), m_aCurrentColor.m_aColor);
+ aItem.setComplexColor(m_aCurrentColor.getComplexColor());
+ rXFSet.Put(aItem);
+
m_aCtlPreviewNew.SetAttributes(aXFillAttr.GetItemSet());
m_aCtlPreviewNew.Invalidate();
}
@@ -599,42 +628,42 @@ void SvxColorTabPage::UpdateColorValues( bool bUpdatePreset )
{
if (eCM != ColorModel::RGB)
{
- ConvertColorValues (aPreviousColor, eCM );
- ConvertColorValues (aCurrentColor, eCM);
+ ConvertColorValues (m_aPreviousColor, eCM );
+ ConvertColorValues (m_aCurrentColor.m_aColor, eCM);
- m_xCcustom->set_value( ColorToPercent_Impl( aCurrentColor.GetRed() ), FieldUnit::PERCENT );
- m_xMcustom->set_value( ColorToPercent_Impl( aCurrentColor.GetBlue() ), FieldUnit::PERCENT );
- m_xYcustom->set_value( ColorToPercent_Impl( aCurrentColor.GetGreen() ), FieldUnit::PERCENT );
- m_xKcustom->set_value( ColorToPercent_Impl( 255 - aCurrentColor.GetAlpha() ), FieldUnit::PERCENT );
+ m_xCcustom->set_value( ColorToPercent_Impl( m_aCurrentColor.m_aColor.GetRed() ), FieldUnit::PERCENT );
+ m_xMcustom->set_value( ColorToPercent_Impl( m_aCurrentColor.m_aColor.GetBlue() ), FieldUnit::PERCENT );
+ m_xYcustom->set_value( ColorToPercent_Impl( m_aCurrentColor.m_aColor.GetGreen() ), FieldUnit::PERCENT );
+ m_xKcustom->set_value( ColorToPercent_Impl( 255 - m_aCurrentColor.m_aColor.GetAlpha() ), FieldUnit::PERCENT );
if( bUpdatePreset )
{
- m_xCpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(aPreviousColor.GetRed()),
+ m_xCpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(m_aPreviousColor.GetRed()),
Application::GetSettings().GetUILanguageTag()));
- m_xMpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(aPreviousColor.GetBlue()),
+ m_xMpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(m_aPreviousColor.GetBlue()),
Application::GetSettings().GetUILanguageTag()));
- m_xYpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(aPreviousColor.GetGreen()),
+ m_xYpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(m_aPreviousColor.GetGreen()),
Application::GetSettings().GetUILanguageTag()));
- m_xKpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(255 - aPreviousColor.GetAlpha()),
+ m_xKpreset->set_text(unicode::formatPercent(ColorToPercent_Impl(255 - m_aPreviousColor.GetAlpha()),
Application::GetSettings().GetUILanguageTag()));
}
- ConvertColorValues (aPreviousColor, ColorModel::RGB);
- ConvertColorValues (aCurrentColor, ColorModel::RGB);
+ ConvertColorValues (m_aPreviousColor, ColorModel::RGB);
+ ConvertColorValues (m_aCurrentColor.m_aColor, ColorModel::RGB);
}
else
{
- m_xRcustom->set_value( ColorToPercent_Impl( aCurrentColor.GetRed() ) );
- m_xGcustom->set_value( ColorToPercent_Impl( aCurrentColor.GetGreen() ) );
- m_xBcustom->set_value( ColorToPercent_Impl( aCurrentColor.GetBlue() ) );
- m_xHexcustom->SetColor( aCurrentColor );
+ m_xRcustom->set_value( ColorToPercent_Impl( m_aCurrentColor.m_aColor.GetRed() ) );
+ m_xGcustom->set_value( ColorToPercent_Impl( m_aCurrentColor.m_aColor.GetGreen() ) );
+ m_xBcustom->set_value( ColorToPercent_Impl( m_aCurrentColor.m_aColor.GetBlue() ) );
+ m_xHexcustom->SetColor( m_aCurrentColor.m_aColor );
if( bUpdatePreset )
{
- m_xRpreset->set_text(OUString::number(ColorToPercent_Impl(aPreviousColor.GetRed())));
- m_xGpreset->set_text(OUString::number(ColorToPercent_Impl(aPreviousColor.GetGreen())));
- m_xBpreset->set_text(OUString::number(ColorToPercent_Impl(aPreviousColor.GetBlue())));
- m_xHexpreset->SetColor( aPreviousColor );
+ m_xRpreset->set_text(OUString::number(ColorToPercent_Impl(m_aPreviousColor.GetRed())));
+ m_xGpreset->set_text(OUString::number(ColorToPercent_Impl(m_aPreviousColor.GetGreen())));
+ m_xBpreset->set_text(OUString::number(ColorToPercent_Impl(m_aPreviousColor.GetBlue())));
+ m_xHexpreset->SetColor( m_aPreviousColor );
}
}
}
diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index 00b01bd0ce33..b052e2356e29 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -34,41 +34,40 @@
#include <dialmgr.hxx>
#include <svx/dialmgr.hxx>
#include <svx/strings.hrc>
+#include <basegfx/utils/gradienttools.hxx>
#include <sal/log.hxx>
-#define DEFAULT_GRADIENTSTEP 64
-
using namespace com::sun::star;
SvxGradientTabPage::SvxGradientTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/gradientpage.ui", "GradientPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/gradientpage.ui"_ustr, u"GradientPage"_ustr, &rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnGradientListState(nullptr)
, m_pnColorListState(nullptr)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
- , m_xLbGradientType(m_xBuilder->weld_combo_box("gradienttypelb"))
- , m_xFtCenter(m_xBuilder->weld_label("centerft"))
- , m_xMtrCenterX(m_xBuilder->weld_metric_spin_button("centerxmtr", FieldUnit::PERCENT))
- , m_xMtrCenterY(m_xBuilder->weld_metric_spin_button("centerymtr", FieldUnit::PERCENT))
- , m_xFtAngle(m_xBuilder->weld_label("angleft"))
- , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FieldUnit::DEGREE))
- , m_xSliderAngle(m_xBuilder->weld_scale("angleslider"))
- , m_xMtrBorder(m_xBuilder->weld_metric_spin_button("bordermtr", FieldUnit::PERCENT))
- , m_xSliderBorder(m_xBuilder->weld_scale("borderslider"))
- , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"),
+ , m_xLbGradientType(m_xBuilder->weld_combo_box(u"gradienttypelb"_ustr))
+ , m_xFtCenter(m_xBuilder->weld_label(u"centerft"_ustr))
+ , m_xMtrCenterX(m_xBuilder->weld_metric_spin_button(u"centerxmtr"_ustr, FieldUnit::PERCENT))
+ , m_xMtrCenterY(m_xBuilder->weld_metric_spin_button(u"centerymtr"_ustr, FieldUnit::PERCENT))
+ , m_xFtAngle(m_xBuilder->weld_label(u"angleft"_ustr))
+ , m_xMtrAngle(m_xBuilder->weld_metric_spin_button(u"anglemtr"_ustr, FieldUnit::DEGREE))
+ , m_xSliderAngle(m_xBuilder->weld_scale(u"angleslider"_ustr))
+ , m_xMtrBorder(m_xBuilder->weld_metric_spin_button(u"bordermtr"_ustr, FieldUnit::PERCENT))
+ , m_xSliderBorder(m_xBuilder->weld_scale(u"borderslider"_ustr))
+ , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button(u"colorfromlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xMtrColorFrom(m_xBuilder->weld_metric_spin_button("colorfrommtr", FieldUnit::PERCENT))
- , m_xLbColorTo(new ColorListBox(m_xBuilder->weld_menu_button("colortolb"),
+ , m_xMtrColorFrom(m_xBuilder->weld_metric_spin_button(u"colorfrommtr"_ustr, FieldUnit::PERCENT))
+ , m_xLbColorTo(new ColorListBox(m_xBuilder->weld_menu_button(u"colortolb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xMtrColorTo(m_xBuilder->weld_metric_spin_button("colortomtr", FieldUnit::PERCENT))
- , m_xGradientLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("gradientpresetlistwin", true)))
- , m_xMtrIncrement(m_xBuilder->weld_spin_button("incrementmtr"))
- , m_xCbIncrement(m_xBuilder->weld_check_button("autoincrement"))
- , m_xBtnAdd(m_xBuilder->weld_button("add"))
- , m_xBtnModify(m_xBuilder->weld_button("modify"))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "previewctl", m_aCtlPreview))
- , m_xGradientLBWin(new weld::CustomWeld(*m_xBuilder, "gradientpresetlist", *m_xGradientLB))
+ , m_xMtrColorTo(m_xBuilder->weld_metric_spin_button(u"colortomtr"_ustr, FieldUnit::PERCENT))
+ , m_xGradientLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window(u"gradientpresetlistwin"_ustr, true)))
+ , m_xMtrIncrement(m_xBuilder->weld_spin_button(u"incrementmtr"_ustr))
+ , m_xCbIncrement(m_xBuilder->weld_check_button(u"autoincrement"_ustr))
+ , m_xBtnAdd(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xBtnModify(m_xBuilder->weld_button(u"modify"_ustr))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"previewctl"_ustr, m_aCtlPreview))
+ , m_xGradientLBWin(new weld::CustomWeld(*m_xBuilder, u"gradientpresetlist"_ustr, *m_xGradientLB))
{
Size aSize = getDrawPreviewOptimalSize(m_aCtlPreview.GetDrawingArea()->get_ref_device());
m_xGradientLB->set_size_request(aSize.Width(), aSize.Height());
@@ -83,7 +82,7 @@ SvxGradientTabPage::SvxGradientTabPage(weld::Container* pPage, weld::DialogContr
// setting the output device
m_rXFSet.Put( XFillStyleItem(drawing::FillStyle_GRADIENT) );
- m_rXFSet.Put( XFillGradientItem(OUString(), XGradient( COL_BLACK, COL_WHITE )) );
+ m_rXFSet.Put( XFillGradientItem(OUString(), basegfx::BGradient()));
m_aCtlPreview.SetAttributes(m_aXFillAttr.GetItemSet());
// set handler
@@ -149,7 +148,7 @@ void SvxGradientTabPage::ActivatePage( const SfxItemSet& rSet )
// determining (and possibly cutting) the name and
// displaying it in the GroupBox
- OUString aString = CuiResId( RID_SVXSTR_TABLE ) + ": ";
+ OUString aString = CuiResId( RID_CUISTR_TABLE ) + ": ";
INetURLObject aURL( m_pGradientList->GetPath() );
aURL.Append( m_pGradientList->GetName() );
@@ -183,19 +182,26 @@ DeactivateRC SvxGradientTabPage::DeactivatePage( SfxItemSet* _pSet )
bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet )
{
- std::unique_ptr<XGradient> pXGradient;
+ std::unique_ptr<basegfx::BGradient> pBGradient;
size_t nPos = m_xGradientLB->IsNoSelection() ? VALUESET_ITEM_NOTFOUND : m_xGradientLB->GetSelectItemPos();
+
+ sal_uInt16 nValue = 0; // automatic step count
+ if (!m_xCbIncrement->get_active())
+ nValue = m_xMtrIncrement->get_value();
+
if( nPos != VALUESET_ITEM_NOTFOUND )
{
- pXGradient.reset(new XGradient( m_pGradientList->GetGradient( static_cast<sal_uInt16>(nPos) )->GetGradient() ));
+ pBGradient.reset(new basegfx::BGradient( m_pGradientList->GetGradient( static_cast<sal_uInt16>(nPos) )->GetGradient() ));
OUString aString = m_xGradientLB->GetItemText( m_xGradientLB->GetSelectedItemId() );
- rSet->Put( XFillGradientItem( aString, *pXGradient ) );
+ // update StepCount to current value to be in sync with FillGradientStepCount
+ pBGradient->SetSteps(nValue);
+ rSet->Put( XFillGradientItem( aString, *pBGradient ) );
}
else
// gradient was passed (unidentified)
{
- pXGradient.reset(new XGradient( m_xLbColorFrom->GetSelectEntryColor(),
- m_xLbColorTo->GetSelectEntryColor(),
+ pBGradient.reset(new basegfx::BGradient(
+ createColorStops(),
static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active()),
Degree10(static_cast<sal_Int16>(m_xMtrAngle->get_value(FieldUnit::NONE) * 10)), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FieldUnit::NONE)),
@@ -203,15 +209,11 @@ bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet )
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FieldUnit::NONE)),
- static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) ));
- rSet->Put( XFillGradientItem( OUString(), *pXGradient ) );
+ nValue));
+ rSet->Put( XFillGradientItem( OUString(), *pBGradient ) );
}
- sal_uInt16 nValue = 0;
- if (!m_xCbIncrement->get_active())
- nValue = m_xMtrIncrement->get_value();
-
- assert( pXGradient && "XGradient could not be created" );
+ assert( pBGradient && "basegfx::BGradient could not be created" );
rSet->Put( XFillStyleItem( drawing::FillStyle_GRADIENT ) );
rSet->Put( XGradientStepCountItem( nValue ) );
return true;
@@ -219,8 +221,7 @@ bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet )
void SvxGradientTabPage::Reset( const SfxItemSet* )
{
- m_xMtrIncrement->set_value(DEFAULT_GRADIENTSTEP);
- ChangeGradientHdl_Impl();
+ ChangeGradientHdl_Impl(); // includes setting m_xCbIncrement and m_xMtrIncrement
// determine state of the buttons
if( m_pGradientList->Count() )
@@ -292,8 +293,12 @@ void SvxGradientTabPage::ModifiedHdl_Impl( void const * pControl )
css::awt::GradientStyle eXGS = static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active());
- XGradient aXGradient( m_xLbColorFrom->GetSelectEntryColor(),
- m_xLbColorTo->GetSelectEntryColor(),
+ sal_uInt16 nValue = 0; // automatic
+ if (!m_xCbIncrement->get_active())
+ nValue = static_cast<sal_uInt16>(m_xMtrIncrement->get_value());
+
+ basegfx::BGradient aBGradient(
+ createColorStops(),
eXGS,
Degree10(static_cast<sal_Int16>(m_xMtrAngle->get_value(FieldUnit::NONE) * 10)), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FieldUnit::NONE)),
@@ -301,19 +306,16 @@ void SvxGradientTabPage::ModifiedHdl_Impl( void const * pControl )
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FieldUnit::NONE)),
- static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) );
+ nValue);
// enable/disable controls
if (pControl == m_xLbGradientType.get() || pControl == this)
SetControlState_Impl( eXGS );
- sal_uInt16 nValue = 0;
- if (!m_xCbIncrement->get_active())
- nValue = static_cast<sal_uInt16>(m_xMtrIncrement->get_value());
m_rXFSet.Put( XGradientStepCountItem( nValue ) );
// displaying in XOutDev
- m_rXFSet.Put( XFillGradientItem( OUString(), aXGradient ) );
+ m_rXFSet.Put( XFillGradientItem( OUString(), aBGradient ) );
m_aCtlPreview.SetAttributes(m_aXFillAttr.GetItemSet());
m_aCtlPreview.Invalidate();
}
@@ -321,7 +323,7 @@ void SvxGradientTabPage::ModifiedHdl_Impl( void const * pControl )
IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName( SvxResId( RID_SVXSTR_GRADIENT ) );
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_GRADIENT ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_GRADIENT ) );
OUString aName;
tools::Long nCount = m_pGradientList->Count();
@@ -340,7 +342,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
while (pDlg->Execute() == RET_OK)
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bValidGradientName = (SearchGradientList(aName) == -1);
@@ -350,8 +352,8 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
break;
}
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
if (xWarnBox->run() != RET_OK)
break;
}
@@ -359,8 +361,11 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
if( !nError )
{
- XGradient aXGradient( m_xLbColorFrom->GetSelectEntryColor(),
- m_xLbColorTo->GetSelectEntryColor(),
+ sal_uInt16 nValue = 0; // automatic step count
+ if (!m_xCbIncrement->get_active())
+ nValue = m_xMtrIncrement->get_value();
+ basegfx::BGradient aBGradient(
+ createColorStops(),
static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active()),
Degree10(static_cast<sal_Int16>(m_xMtrAngle->get_value(FieldUnit::NONE) * 10)), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FieldUnit::NONE)),
@@ -368,9 +373,9 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickAddHdl_Impl, weld::Button&, void)
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FieldUnit::NONE)),
- static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) );
+ nValue);
- m_pGradientList->Insert(std::make_unique<XGradientEntry>(aXGradient, aName), nCount);
+ m_pGradientList->Insert(std::make_unique<XGradientEntry>(aBGradient, aName), nCount);
sal_Int32 nId = m_xGradientLB->GetItemId(nCount - 1); //calculate the last ID
BitmapEx aBitmap = m_pGradientList->GetBitmapForPreview( nCount, m_xGradientLB->GetIconSize() );
@@ -399,8 +404,12 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickModifyHdl_Impl, weld::Button&, void)
OUString aName( m_pGradientList->GetGradient( static_cast<sal_uInt16>(nPos) )->GetName() );
- XGradient aXGradient( m_xLbColorFrom->GetSelectEntryColor(),
- m_xLbColorTo->GetSelectEntryColor(),
+ sal_uInt16 nValue = 0; // automatic step count
+ if (!m_xCbIncrement->get_active())
+ nValue = m_xMtrIncrement->get_value();
+
+ basegfx::BGradient aBGradient(
+ createColorStops(),
static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active()),
Degree10(static_cast<sal_Int16>(m_xMtrAngle->get_value(FieldUnit::NONE) * 10)), // should be changed in resource
static_cast<sal_uInt16>(m_xMtrCenterX->get_value(FieldUnit::NONE)),
@@ -408,9 +417,9 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickModifyHdl_Impl, weld::Button&, void)
static_cast<sal_uInt16>(m_xMtrBorder->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorFrom->get_value(FieldUnit::NONE)),
static_cast<sal_uInt16>(m_xMtrColorTo->get_value(FieldUnit::NONE)),
- static_cast<sal_uInt16>(m_xMtrIncrement->get_value()) );
+ nValue);
- m_pGradientList->Replace(std::make_unique<XGradientEntry>(aXGradient, aName), nPos);
+ m_pGradientList->Replace(std::make_unique<XGradientEntry>(aBGradient, aName), nPos);
BitmapEx aBitmap = m_pGradientList->GetBitmapForPreview( static_cast<sal_uInt16>(nPos), m_xGradientLB->GetIconSize() );
m_xGradientLB->RemoveItem( nId );
@@ -427,8 +436,8 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickDeleteHdl_Impl, SvxPresetListBox*, void
if( nPos != VALUESET_ITEM_NOTFOUND )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletegradientdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelGradientDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletegradientdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog(u"AskDelGradientDialog"_ustr));
if (xQueryBox->run() == RET_YES)
{
m_pGradientList->Remove(nPos);
@@ -457,7 +466,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void
if ( nPos == VALUESET_ITEM_NOTFOUND )
return;
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_GRADIENT ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_GRADIENT ) );
OUString aName( m_pGradientList->GetGradient( nPos )->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -466,7 +475,7 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void
bool bLoop = true;
while( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
sal_Int32 nGradientPos = SearchGradientList(aName);
bool bValidGradientName = (nGradientPos == static_cast<sal_Int32>(nPos) ) || (nGradientPos == -1);
@@ -482,8 +491,8 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xBox->run();
}
}
@@ -496,20 +505,20 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ChangeGradientHdl, ValueSet*, void)
void SvxGradientTabPage::ChangeGradientHdl_Impl()
{
- std::unique_ptr<XGradient> pGradient;
+ std::unique_ptr<basegfx::BGradient> pGradient;
size_t nPos = m_xGradientLB->GetSelectItemPos();
if( nPos != VALUESET_ITEM_NOTFOUND )
- pGradient.reset(new XGradient( m_pGradientList->GetGradient( static_cast<sal_uInt16>( nPos ) )->GetGradient() ));
+ pGradient.reset(new basegfx::BGradient( m_pGradientList->GetGradient( static_cast<sal_uInt16>( nPos ) )->GetGradient() ));
else
{
- const SfxPoolItem* pPoolItem = nullptr;
- if( SfxItemState::SET == m_rOutAttrs.GetItemState( GetWhich( XATTR_FILLSTYLE ), true, &pPoolItem ) )
+ if( const XFillStyleItem* pFillStyleItem = m_rOutAttrs.GetItemIfSet( GetWhich( XATTR_FILLSTYLE ) ) )
{
- if( ( drawing::FillStyle_GRADIENT == static_cast<const XFillStyleItem*>( pPoolItem )->GetValue() ) &&
- ( SfxItemState::SET == m_rOutAttrs.GetItemState( GetWhich( XATTR_FILLGRADIENT ), true, &pPoolItem ) ) )
+ const XFillGradientItem* pGradientItem;
+ if( ( drawing::FillStyle_GRADIENT == pFillStyleItem->GetValue() ) &&
+ ( pGradientItem = m_rOutAttrs.GetItemIfSet( GetWhich( XATTR_FILLGRADIENT ) ) ) )
{
- pGradient.reset(new XGradient( static_cast<const XFillGradientItem*>( pPoolItem )->GetGradientValue() ));
+ pGradient.reset(new basegfx::BGradient( pGradientItem->GetGradientValue() ));
}
}
if( !pGradient )
@@ -517,7 +526,7 @@ void SvxGradientTabPage::ChangeGradientHdl_Impl()
sal_uInt16 nPosition = m_xGradientLB->GetItemId(0);
m_xGradientLB->SelectItem( nPosition );
if( nPosition != 0 )
- pGradient.reset(new XGradient( m_pGradientList->GetGradient( 0 )->GetGradient() ));
+ pGradient.reset(new basegfx::BGradient( m_pGradientList->GetGradient( 0 )->GetGradient() ));
}
}
@@ -526,6 +535,10 @@ void SvxGradientTabPage::ChangeGradientHdl_Impl()
css::awt::GradientStyle eXGS = pGradient->GetGradientStyle();
sal_uInt16 nValue = pGradient->GetSteps();
+ if (const XGradientStepCountItem* pGradientStepCountItem = m_rOutAttrs.GetItemIfSet(GetWhich(XATTR_GRADIENTSTEPCOUNT)))
+ {
+ nValue = pGradientStepCountItem->GetValue();
+ }
if( nValue == 0 )
{
m_xCbIncrement->set_state(TRISTATE_TRUE);
@@ -542,10 +555,17 @@ void SvxGradientTabPage::ChangeGradientHdl_Impl()
// if the entry is not in the listbox,
// colors are added temporarily
m_xLbColorFrom->SetNoSelection();
- m_xLbColorFrom->SelectEntry( pGradient->GetStartColor() );
+ m_xLbColorFrom->SelectEntry(Color(pGradient->GetColorStops().front().getStopColor()));
m_xLbColorTo->SetNoSelection();
- m_xLbColorTo->SelectEntry( pGradient->GetEndColor() );
+ m_xLbColorTo->SelectEntry(Color(pGradient->GetColorStops().back().getStopColor()));
+
+ // MCGR: preserve ColorStops if given.
+ // tdf#155901 We need offset of first and last stop, so include them.
+ if (pGradient->GetColorStops().size() >= 2)
+ m_aColorStops = pGradient->GetColorStops();
+ else
+ m_aColorStops.clear();
m_xMtrAngle->set_value(pGradient->GetAngle().get() / 10, FieldUnit::NONE); // should be changed in resource
m_xSliderAngle->set_value(pGradient->GetAngle().get() / 10);
@@ -630,4 +650,25 @@ sal_Int32 SvxGradientTabPage::SearchGradientList(std::u16string_view rGradientNa
return nPos;
}
+basegfx::BColorStops SvxGradientTabPage::createColorStops()
+{
+ basegfx::BColorStops aColorStops;
+
+ if(m_aColorStops.size() >= 2)
+ {
+ aColorStops = m_aColorStops;
+ aColorStops.front() = basegfx::BColorStop(m_aColorStops.front().getStopOffset(),
+ m_xLbColorFrom->GetSelectEntryColor().getBColor());
+ aColorStops.back() = basegfx::BColorStop(m_aColorStops.back().getStopOffset(),
+ m_xLbColorTo->GetSelectEntryColor().getBColor());
+ }
+ else
+ {
+ aColorStops.emplace_back(0.0, m_xLbColorFrom->GetSelectEntryColor().getBColor());
+ aColorStops.emplace_back(1.0, m_xLbColorTo->GetSelectEntryColor().getBColor());
+ }
+
+ return aColorStops;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx
index 2b9bb9401482..343e9fac7708 100644
--- a/cui/source/tabpages/tphatch.cxx
+++ b/cui/source/tabpages/tphatch.cxx
@@ -44,26 +44,26 @@
using namespace com::sun::star;
SvxHatchTabPage::SvxHatchTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/hatchpage.ui", "HatchPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/hatchpage.ui"_ustr, u"HatchPage"_ustr, &rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnHatchingListState(nullptr)
, m_pnColorListState(nullptr)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
- , m_xMtrDistance(m_xBuilder->weld_metric_spin_button("distancemtr", FieldUnit::MM))
- , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FieldUnit::DEGREE))
- , m_xSliderAngle(m_xBuilder->weld_scale("angleslider"))
- , m_xLbLineType(m_xBuilder->weld_combo_box("linetypelb"))
- , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"),
+ , m_xMtrDistance(m_xBuilder->weld_metric_spin_button(u"distancemtr"_ustr, FieldUnit::MM))
+ , m_xMtrAngle(m_xBuilder->weld_metric_spin_button(u"anglemtr"_ustr, FieldUnit::DEGREE))
+ , m_xSliderAngle(m_xBuilder->weld_scale(u"angleslider"_ustr))
+ , m_xLbLineType(m_xBuilder->weld_combo_box(u"linetypelb"_ustr))
+ , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button(u"linecolorlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xCbBackgroundColor(m_xBuilder->weld_check_button("backgroundcolor"))
- , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("backgroundcolorlb"),
+ , m_xCbBackgroundColor(m_xBuilder->weld_check_button(u"backgroundcolor"_ustr))
+ , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button(u"backgroundcolorlb"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xHatchLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("hatchpresetlistwin", true)))
- , m_xBtnAdd(m_xBuilder->weld_button("add"))
- , m_xBtnModify(m_xBuilder->weld_button("modify"))
- , m_xHatchLBWin(new weld::CustomWeld(*m_xBuilder, "hatchpresetlist", *m_xHatchLB))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "previewctl", m_aCtlPreview))
+ , m_xHatchLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window(u"hatchpresetlistwin"_ustr, true)))
+ , m_xBtnAdd(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xBtnModify(m_xBuilder->weld_button(u"modify"_ustr))
+ , m_xHatchLBWin(new weld::CustomWeld(*m_xBuilder, u"hatchpresetlist"_ustr, *m_xHatchLB))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"previewctl"_ustr, m_aCtlPreview))
{
Size aSize = getDrawPreviewOptimalSize(m_aCtlPreview.GetDrawingArea()->get_ref_device());
m_xHatchLBWin->set_size_request(aSize.Width(), aSize.Height());
@@ -149,7 +149,7 @@ void SvxHatchTabPage::ActivatePage( const SfxItemSet& rSet )
// determining (possibly cutting) the name
// and displaying it in the GroupBox
- OUString aString = CuiResId( RID_SVXSTR_TABLE ) + ": ";
+ OUString aString = CuiResId( RID_CUISTR_TABLE ) + ": ";
INetURLObject aURL( m_pHatchingList->GetPath() );
aURL.Append( m_pHatchingList->GetName() );
@@ -245,7 +245,7 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet )
if (m_xCbBackgroundColor->get_active())
{
NamedColor aColor = m_xLbBackgroundColor->GetSelectedEntry();
- rSet->Put(XFillColorItem(aColor.second, aColor.first));
+ rSet->Put(XFillColorItem(aColor.m_aName, aColor.m_aColor));
}
return true;
}
@@ -358,13 +358,13 @@ void SvxHatchTabPage::ChangeHatchHdl_Impl()
pHatch.reset(new XHatch( m_pHatchingList->GetHatch( static_cast<sal_uInt16>(nPos) )->GetHatch() ));
else
{
- const SfxPoolItem* pPoolItem = nullptr;
- if( SfxItemState::SET == m_rOutAttrs.GetItemState( GetWhich( XATTR_FILLSTYLE ), true, &pPoolItem ) )
+ if( const XFillStyleItem* pFillStyleItem = m_rOutAttrs.GetItemIfSet( GetWhich( XATTR_FILLSTYLE ) ) )
{
- if( ( drawing::FillStyle_HATCH == static_cast<const XFillStyleItem*>( pPoolItem )->GetValue() ) &&
- ( SfxItemState::SET == m_rOutAttrs.GetItemState( GetWhich( XATTR_FILLHATCH ), true, &pPoolItem ) ) )
+ const XFillHatchItem* pFillHatchItem;
+ if( ( drawing::FillStyle_HATCH == pFillStyleItem->GetValue() ) &&
+ ( pFillHatchItem = m_rOutAttrs.GetItemIfSet( GetWhich( XATTR_FILLHATCH ) ) ) )
{
- pHatch.reset(new XHatch( static_cast<const XFillHatchItem*>( pPoolItem )->GetHatchValue() ));
+ pHatch.reset(new XHatch( pFillHatchItem->GetHatchValue() ));
}
}
if( !pHatch )
@@ -403,7 +403,7 @@ void SvxHatchTabPage::ChangeHatchHdl_Impl()
IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName( SvxResId( RID_SVXSTR_HATCH ) );
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_HATCH ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_HATCH ) );
OUString aName;
tools::Long nCount = m_pHatchingList->Count();
@@ -422,7 +422,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl, weld::Button&, void)
while( pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bValidHatchName = (SearchHatchList(aName) == -1);
if( bValidHatchName )
@@ -431,8 +431,8 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickAddHdl_Impl, weld::Button&, void)
break;
}
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
if (xWarnBox->run() != RET_OK)
break;
}
@@ -500,8 +500,8 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickDeleteHdl_Impl, SvxPresetListBox*, void)
if( nPos == VALUESET_ITEM_NOTFOUND )
return;
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletehatchdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelHatchDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletehatchdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog(u"AskDelHatchDialog"_ustr));
if (xQueryBox->run() != RET_YES)
return;
@@ -526,7 +526,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void )
if( nPos == VALUESET_ITEM_NOTFOUND )
return;
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_HATCH ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_HATCH ) );
OUString aName( m_pHatchingList->GetHatch( nPos )->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -535,7 +535,7 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void )
bool bLoop = true;
while( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
sal_Int32 nHatchPos = SearchHatchList( aName );
bool bValidHatchName = (nHatchPos == static_cast<sal_Int32>(nPos) ) || (nHatchPos == -1);
@@ -551,8 +551,8 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void )
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xBox->run();
}
}
diff --git a/cui/source/tabpages/tpline.cxx b/cui/source/tabpages/tpline.cxx
index e93b7bfa6310..f07ca7a3497c 100644
--- a/cui/source/tabpages/tpline.cxx
+++ b/cui/source/tabpages/tpline.cxx
@@ -77,7 +77,7 @@ const WhichRangesContainer SvxLineTabPage::pLineRanges(svl::Items<
>);
SvxLineTabPage::SvxLineTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/linetabpage.ui", "LineTabPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/linetabpage.ui"_ustr, u"LineTabPage"_ustr, &rInAttrs)
, m_pSymbolList(nullptr)
, m_bNewSize(false)
, m_nSymbolType(SVX_SYMBOLTYPE_UNKNOWN) // unknown respectively unchanged
@@ -95,36 +95,36 @@ SvxLineTabPage::SvxLineTabPage(weld::Container* pPage, weld::DialogController* p
, m_nDlgType(0)
, m_pPosDashLb(nullptr)
, m_pPosLineEndLb(nullptr)
- , m_xBoxColor(m_xBuilder->weld_widget("boxCOLOR"))
- , m_xLbLineStyle(new SvxLineLB(m_xBuilder->weld_combo_box("LB_LINE_STYLE")))
- , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"),
+ , m_xBoxColor(m_xBuilder->weld_widget(u"boxCOLOR"_ustr))
+ , m_xLbLineStyle(new SvxLineLB(m_xBuilder->weld_combo_box(u"LB_LINE_STYLE"_ustr)))
+ , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button(u"LB_COLOR"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xBoxWidth(m_xBuilder->weld_widget("boxWIDTH"))
- , m_xMtrLineWidth(m_xBuilder->weld_metric_spin_button("MTR_FLD_LINE_WIDTH", FieldUnit::CM))
- , m_xBoxTransparency(m_xBuilder->weld_widget("boxTRANSPARENCY"))
- , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button("MTR_LINE_TRANSPARENT", FieldUnit::PERCENT))
- , m_xFlLineEnds(m_xBuilder->weld_widget("FL_LINE_ENDS"))
- , m_xBoxArrowStyles(m_xBuilder->weld_widget("boxARROW_STYLES"))
- , m_xLbStartStyle(new SvxLineEndLB(m_xBuilder->weld_combo_box("LB_START_STYLE")))
- , m_xBoxStart(m_xBuilder->weld_widget("boxSTART"))
- , m_xMtrStartWidth(m_xBuilder->weld_metric_spin_button("MTR_FLD_START_WIDTH", FieldUnit::CM))
- , m_xTsbCenterStart(m_xBuilder->weld_check_button("TSB_CENTER_START"))
- , m_xBoxEnd(m_xBuilder->weld_widget("boxEND"))
- , m_xLbEndStyle(new SvxLineEndLB(m_xBuilder->weld_combo_box("LB_END_STYLE")))
- , m_xMtrEndWidth(m_xBuilder->weld_metric_spin_button("MTR_FLD_END_WIDTH", FieldUnit::CM))
- , m_xTsbCenterEnd(m_xBuilder->weld_check_button("TSB_CENTER_END"))
- , m_xCbxSynchronize(m_xBuilder->weld_check_button("CBX_SYNCHRONIZE"))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
- , m_xFLEdgeStyle(m_xBuilder->weld_widget("FL_EDGE_STYLE"))
- , m_xGridEdgeCaps(m_xBuilder->weld_widget("gridEDGE_CAPS"))
- , m_xLBEdgeStyle(m_xBuilder->weld_combo_box("LB_EDGE_STYLE"))
- , m_xLBCapStyle(m_xBuilder->weld_combo_box("LB_CAP_STYLE")) // LineCaps
- , m_xFlSymbol(m_xBuilder->weld_widget("FL_SYMBOL_FORMAT")) //#58425# Symbols on a line (e.g. StarChart)
- , m_xGridIconSize(m_xBuilder->weld_widget("gridICON_SIZE"))
- , m_xSymbolMB(m_xBuilder->weld_menu_button("MB_SYMBOL_BITMAP"))
- , m_xSymbolWidthMF(m_xBuilder->weld_metric_spin_button("MF_SYMBOL_WIDTH", FieldUnit::CM))
- , m_xSymbolHeightMF(m_xBuilder->weld_metric_spin_button("MF_SYMBOL_HEIGHT", FieldUnit::CM))
- , m_xSymbolRatioCB(m_xBuilder->weld_check_button("CB_SYMBOL_RATIO"))
+ , m_xBoxWidth(m_xBuilder->weld_widget(u"boxWIDTH"_ustr))
+ , m_xMtrLineWidth(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_LINE_WIDTH"_ustr, FieldUnit::CM))
+ , m_xBoxTransparency(m_xBuilder->weld_widget(u"boxTRANSPARENCY"_ustr))
+ , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button(u"MTR_LINE_TRANSPARENT"_ustr, FieldUnit::PERCENT))
+ , m_xFlLineEnds(m_xBuilder->weld_widget(u"FL_LINE_ENDS"_ustr))
+ , m_xBoxArrowStyles(m_xBuilder->weld_widget(u"boxARROW_STYLES"_ustr))
+ , m_xLbStartStyle(new SvxLineEndLB(m_xBuilder->weld_combo_box(u"LB_START_STYLE"_ustr)))
+ , m_xBoxStart(m_xBuilder->weld_widget(u"boxSTART"_ustr))
+ , m_xMtrStartWidth(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_START_WIDTH"_ustr, FieldUnit::CM))
+ , m_xTsbCenterStart(m_xBuilder->weld_check_button(u"TSB_CENTER_START"_ustr))
+ , m_xBoxEnd(m_xBuilder->weld_widget(u"boxEND"_ustr))
+ , m_xLbEndStyle(new SvxLineEndLB(m_xBuilder->weld_combo_box(u"LB_END_STYLE"_ustr)))
+ , m_xMtrEndWidth(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_END_WIDTH"_ustr, FieldUnit::CM))
+ , m_xTsbCenterEnd(m_xBuilder->weld_check_button(u"TSB_CENTER_END"_ustr))
+ , m_xCbxSynchronize(m_xBuilder->weld_check_button(u"CBX_SYNCHRONIZE"_ustr))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_PREVIEW"_ustr, m_aCtlPreview))
+ , m_xFLEdgeStyle(m_xBuilder->weld_widget(u"FL_EDGE_STYLE"_ustr))
+ , m_xGridEdgeCaps(m_xBuilder->weld_widget(u"gridEDGE_CAPS"_ustr))
+ , m_xLBEdgeStyle(m_xBuilder->weld_combo_box(u"LB_EDGE_STYLE"_ustr))
+ , m_xLBCapStyle(m_xBuilder->weld_combo_box(u"LB_CAP_STYLE"_ustr)) // LineCaps
+ , m_xFlSymbol(m_xBuilder->weld_widget(u"FL_SYMBOL_FORMAT"_ustr)) //#58425# Symbols on a line (e.g. StarChart)
+ , m_xGridIconSize(m_xBuilder->weld_widget(u"gridICON_SIZE"_ustr))
+ , m_xSymbolMB(m_xBuilder->weld_menu_button(u"MB_SYMBOL_BITMAP"_ustr))
+ , m_xSymbolWidthMF(m_xBuilder->weld_metric_spin_button(u"MF_SYMBOL_WIDTH"_ustr, FieldUnit::CM))
+ , m_xSymbolHeightMF(m_xBuilder->weld_metric_spin_button(u"MF_SYMBOL_HEIGHT"_ustr, FieldUnit::CM))
+ , m_xSymbolRatioCB(m_xBuilder->weld_check_button(u"CB_SYMBOL_RATIO"_ustr))
{
// This Page requires ExchangeSupport
SetExchangeSupport();
@@ -157,7 +157,7 @@ SvxLineTabPage::SvxLineTabPage(weld::Container* pPage, weld::DialogController* p
// determine PoolUnit
SfxItemPool* pPool = m_rOutAttrs.GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ assert(pPool && "Where is the pool?");
m_ePoolUnit = pPool->GetMetric( SID_ATTR_LINE_WIDTH );
m_xLbLineStyle->connect_changed(LINK(this, SvxLineTabPage, ClickInvisibleHdl_Impl));
@@ -242,7 +242,7 @@ void SvxLineTabPage::FillListboxes()
void SvxLineTabPage::ActivatePage( const SfxItemSet& rSet )
{
- const CntUInt16Item* pPageTypeItem = rSet.GetItem<CntUInt16Item>(SID_PAGE_TYPE, false);
+ const SfxUInt16Item* pPageTypeItem = rSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
if (pPageTypeItem)
SetPageType(static_cast<PageType>(pPageTypeItem->GetValue()));
if( m_nDlgType == 0 && m_pDashList.is() )
@@ -413,7 +413,7 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
pOld = GetOldItem( *rAttrs, XATTR_LINESTYLE );
if ( !pOld || !( *static_cast<const XLineStyleItem*>(pOld) == *pStyleItem ) )
{
- rAttrs->Put( *pStyleItem );
+ rAttrs->Put( std::move(pStyleItem) );
bModified = true;
}
}
@@ -456,8 +456,10 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
// Line color
if (m_xLbColor->IsValueChangedFromSaved())
{
- NamedColor aColor = m_xLbColor->GetSelectedEntry();
- XLineColorItem aItem(aColor.second, aColor.first);
+ NamedColor aNamedColor = m_xLbColor->GetSelectedEntry();
+ XLineColorItem aItem(aNamedColor.m_aName, aNamedColor.m_aColor);
+ aItem.setComplexColor(aNamedColor.getComplexColor());
+
pOld = GetOldItem( *rAttrs, XATTR_LINECOLOR );
if ( !pOld || !( *static_cast<const XLineColorItem*>(pOld) == aItem ) )
{
@@ -480,7 +482,7 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
pOld = GetOldItem( *rAttrs, XATTR_LINESTART );
if( pItem && ( !pOld || *pOld != *pItem ) )
{
- rAttrs->Put( *pItem );
+ rAttrs->Put( std::move(pItem) );
bModified = true;
}
}
@@ -497,7 +499,7 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
if( pItem &&
( !pOld || !( *static_cast<const XLineEndItem*>(pOld) == *pItem ) ) )
{
- rAttrs->Put( *pItem );
+ rAttrs->Put( std::move(pItem) );
bModified = true;
}
}
@@ -575,7 +577,7 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
if(!pOld || !(*static_cast<const XLineJointItem*>(pOld) == *pNew))
{
- rAttrs->Put( *pNew );
+ rAttrs->Put( std::move(pNew) );
bModified = true;
}
}
@@ -612,7 +614,7 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
if(!pOld || !(*static_cast<const XLineCapItem*>(pOld) == *pNew))
{
- rAttrs->Put( *pNew );
+ rAttrs->Put( std::move(pNew) );
bModified = true;
}
}
@@ -621,8 +623,8 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
if(m_nSymbolType!=SVX_SYMBOLTYPE_UNKNOWN || m_bNewSize)
{
// Was set by selection or the size is different
- SvxSizeItem aSItem(rAttrs->GetPool()->GetWhich(SID_ATTR_SYMBOLSIZE),m_aSymbolSize);
- const SfxPoolItem* pSOld = GetOldItem( *rAttrs, rAttrs->GetPool()->GetWhich(SID_ATTR_SYMBOLSIZE) );
+ SvxSizeItem aSItem(rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_SYMBOLSIZE),m_aSymbolSize);
+ const SfxPoolItem* pSOld = GetOldItem( *rAttrs, rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_SYMBOLSIZE) );
m_bNewSize = pSOld ? *static_cast<const SvxSizeItem *>(pSOld) != aSItem : m_bNewSize ;
if(m_bNewSize)
{
@@ -630,8 +632,8 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
bModified=true;
}
- SfxInt32Item aTItem(rAttrs->GetPool()->GetWhich(SID_ATTR_SYMBOLTYPE),m_nSymbolType);
- const SfxPoolItem* pTOld = GetOldItem( *rAttrs, rAttrs->GetPool()->GetWhich(SID_ATTR_SYMBOLTYPE) );
+ SfxInt32Item aTItem(rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_SYMBOLTYPE),m_nSymbolType);
+ const SfxPoolItem* pTOld = GetOldItem( *rAttrs, rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_SYMBOLTYPE) );
bool bNewType = pTOld == nullptr || *static_cast<const SfxInt32Item*>(pTOld) != aTItem;
if(bNewType && m_nSymbolType==SVX_SYMBOLTYPE_UNKNOWN)
bNewType=false; // a small fix, type wasn't set -> don't create a type item after all!
@@ -643,8 +645,8 @@ bool SvxLineTabPage::FillItemSet( SfxItemSet* rAttrs )
if(m_nSymbolType!=SVX_SYMBOLTYPE_NONE)
{
- SvxBrushItem aBItem(m_aSymbolGraphic,GPOS_MM,rAttrs->GetPool()->GetWhich(SID_ATTR_BRUSH));
- const SfxPoolItem* pBOld = GetOldItem( *rAttrs, rAttrs->GetPool()->GetWhich(SID_ATTR_BRUSH) );
+ SvxBrushItem aBItem(m_aSymbolGraphic,GPOS_MM,rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_BRUSH));
+ const SfxPoolItem* pBOld = GetOldItem( *rAttrs, rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_BRUSH) );
bool bNewBrush =
pBOld == nullptr || *static_cast<const SvxBrushItem*>(pBOld) != aBItem;
if(bNewBrush)
@@ -758,8 +760,10 @@ void SvxLineTabPage::FillXLSet_Impl()
m_rXLSet.Put( XLineEndWidthItem( GetCoreValue( *m_xMtrEndWidth, m_ePoolUnit ) ) );
m_rXLSet.Put( XLineWidthItem( GetCoreValue( *m_xMtrLineWidth, m_ePoolUnit ) ) );
- NamedColor aColor = m_xLbColor->GetSelectedEntry();
- m_rXLSet.Put(XLineColorItem(aColor.second, aColor.first));
+ NamedColor aNamedColor = m_xLbColor->GetSelectedEntry();
+ XLineColorItem aLineColor(aNamedColor.m_aName, aNamedColor.m_aColor);
+ aLineColor.setComplexColor(aNamedColor.getComplexColor());
+ m_rXLSet.Put(aLineColor);
// Centered line end
if( m_xTsbCenterStart->get_state() == TRISTATE_TRUE )
@@ -785,15 +789,14 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
drawing::LineStyle eXLS; // drawing::LineStyle_NONE, drawing::LineStyle_SOLID, drawing::LineStyle_DASH
// Line style
- const SfxPoolItem *pPoolItem;
tools::Long nSymType=SVX_SYMBOLTYPE_UNKNOWN;
bool bPrevSym=false;
bool bEnable=true;
bool bIgnoreGraphic=false;
bool bIgnoreSize=false;
- if(rAttrs->GetItemState(rAttrs->GetPool()->GetWhich(SID_ATTR_SYMBOLTYPE),true,&pPoolItem) == SfxItemState::SET)
+ if(const SfxInt32Item* pSymbolTypeItem = rAttrs->GetItemIfSet(rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_SYMBOLTYPE)))
{
- nSymType=static_cast<const SfxInt32Item *>(pPoolItem)->GetValue();
+ nSymType = pSymbolTypeItem->GetValue();
}
if(nSymType == SVX_SYMBOLTYPE_AUTO)
@@ -815,7 +818,6 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
std::unique_ptr<SdrModel> pModel(
new SdrModel(nullptr, nullptr, true));
- pModel->GetItemPool().FreezeIdRanges();
rtl::Reference<SdrPage> pPage = new SdrPage( *pModel, false );
pPage->SetSize(Size(1000,1000));
pModel->InsertPage( pPage.get(), 0 );
@@ -829,7 +831,7 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
if(m_pSymbolList->GetObjCount())
{
nSymTmp %= m_pSymbolList->GetObjCount(); // Treat list as cyclic!
- SdrObject *pObj=m_pSymbolList->GetObj(nSymTmp);
+ rtl::Reference<SdrObject> pObj=m_pSymbolList->GetObj(nSymTmp);
if(pObj)
{
// directly clone to target SdrModel
@@ -844,16 +846,16 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
pObj->SetMergedItemSet(m_rOutAttrs);
}
- pPage->NbcInsertObject(pObj);
+ pPage->NbcInsertObject(pObj.get());
// Generate invisible square to give all symbol types a
// bitmap size, which is independent from specific glyph
- SdrObject* pInvisibleSquare(m_pSymbolList->GetObj(0));
+ rtl::Reference<SdrObject> pInvisibleSquare(m_pSymbolList->GetObj(0));
// directly clone to target SdrModel
pInvisibleSquare = pInvisibleSquare->CloneSdrObject(*pModel);
- pPage->NbcInsertObject(pInvisibleSquare);
+ pPage->NbcInsertObject(pInvisibleSquare.get());
pInvisibleSquare->SetMergedItem(XFillTransparenceItem(100));
pInvisibleSquare->SetMergedItem(XLineTransparenceItem(100));
@@ -869,18 +871,18 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
bIgnoreGraphic=true;
aView.UnmarkAll();
- pInvisibleSquare=pPage->RemoveObject(1);
- SdrObject::Free( pInvisibleSquare);
- pObj=pPage->RemoveObject(0);
- SdrObject::Free( pObj );
+ pPage->RemoveObject(1);
+ pInvisibleSquare.clear();
+ pPage->RemoveObject(0);
+ pObj.clear();
}
}
}
}
}
- if(rAttrs->GetItemState(rAttrs->GetPool()->GetWhich(SID_ATTR_BRUSH),true,&pPoolItem) == SfxItemState::SET)
+ if(const SvxBrushItem* pBrushItem = rAttrs->GetItemIfSet(rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_BRUSH)))
{
- const Graphic* pGraphic = static_cast<const SvxBrushItem *>(pPoolItem)->GetGraphic();
+ const Graphic* pGraphic = pBrushItem->GetGraphic();
if( pGraphic )
{
if(!bIgnoreGraphic)
@@ -897,9 +899,9 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
}
}
- if(rAttrs->GetItemState(rAttrs->GetPool()->GetWhich(SID_ATTR_SYMBOLSIZE),true,&pPoolItem) == SfxItemState::SET)
+ if(const SvxSizeItem* pSymbolSizeItem = rAttrs->GetItemIfSet(rAttrs->GetPool()->GetWhichIDFromSlotID(SID_ATTR_SYMBOLSIZE)))
{
- m_aSymbolSize = static_cast<const SvxSizeItem *>(pPoolItem)->GetSize();
+ m_aSymbolSize = pSymbolSizeItem->GetSize();
}
m_xGridIconSize->set_sensitive(bEnable);
@@ -912,7 +914,7 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
m_aSymbolLastSize=m_aSymbolSize;
}
- if( rAttrs->GetItemState( XATTR_LINESTYLE ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_LINESTYLE ) != SfxItemState::INVALID )
{
eXLS = rAttrs->Get( XATTR_LINESTYLE ).GetValue();
@@ -940,17 +942,17 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
}
// Line strength
- if( rAttrs->GetItemState( XATTR_LINEWIDTH ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_LINEWIDTH ) != SfxItemState::INVALID )
{
SetMetricValue( *m_xMtrLineWidth, rAttrs->Get( XATTR_LINEWIDTH ).GetValue(), m_ePoolUnit );
}
else
- m_xMtrLineWidth->set_text("");
+ m_xMtrLineWidth->set_text(u""_ustr);
// Line color
m_xLbColor->SetNoSelection();
- if ( rAttrs->GetItemState( XATTR_LINECOLOR ) != SfxItemState::DONTCARE )
+ if ( rAttrs->GetItemState( XATTR_LINECOLOR ) != SfxItemState::INVALID )
{
Color aCol = rAttrs->Get( XATTR_LINECOLOR ).GetColorValue();
m_xLbColor->SelectEntry( aCol );
@@ -961,7 +963,7 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
{
m_xLbStartStyle->set_sensitive(false);
}
- else if( rAttrs->GetItemState( XATTR_LINESTART ) != SfxItemState::DONTCARE )
+ else if( rAttrs->GetItemState( XATTR_LINESTART ) != SfxItemState::INVALID )
{
// #86265# select entry using list and polygon, not string
bool bSelected(false);
@@ -993,7 +995,7 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
{
m_xLbEndStyle->set_sensitive(false);
}
- else if( rAttrs->GetItemState( XATTR_LINEEND ) != SfxItemState::DONTCARE )
+ else if( rAttrs->GetItemState( XATTR_LINEEND ) != SfxItemState::INVALID )
{
// #86265# select entry using list and polygon, not string
bool bSelected(false);
@@ -1025,35 +1027,35 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
{
m_xMtrStartWidth->set_sensitive(false);
}
- else if( rAttrs->GetItemState( XATTR_LINESTARTWIDTH ) != SfxItemState::DONTCARE )
+ else if( rAttrs->GetItemState( XATTR_LINESTARTWIDTH ) != SfxItemState::INVALID )
{
SetMetricValue( *m_xMtrStartWidth,
rAttrs->Get( XATTR_LINESTARTWIDTH ).GetValue(),
m_ePoolUnit );
}
else
- m_xMtrStartWidth->set_text( "" );
+ m_xMtrStartWidth->set_text( u""_ustr );
// Line end strength
if( m_bObjSelected && rAttrs->GetItemState( XATTR_LINEENDWIDTH ) == SfxItemState::DEFAULT )
{
m_xMtrEndWidth->set_sensitive(false);
}
- else if( rAttrs->GetItemState( XATTR_LINEENDWIDTH ) != SfxItemState::DONTCARE )
+ else if( rAttrs->GetItemState( XATTR_LINEENDWIDTH ) != SfxItemState::INVALID )
{
SetMetricValue( *m_xMtrEndWidth,
rAttrs->Get( XATTR_LINEENDWIDTH ).GetValue(),
m_ePoolUnit );
}
else
- m_xMtrEndWidth->set_text("");
+ m_xMtrEndWidth->set_text(u""_ustr);
// Centered line end (start)
if( m_bObjSelected && rAttrs->GetItemState( XATTR_LINESTARTCENTER ) == SfxItemState::DEFAULT )
{
m_xTsbCenterStart->set_sensitive(false);
}
- else if( rAttrs->GetItemState( XATTR_LINESTARTCENTER ) != SfxItemState::DONTCARE )
+ else if( rAttrs->GetItemState( XATTR_LINESTARTCENTER ) != SfxItemState::INVALID )
{
if( rAttrs->Get( XATTR_LINESTARTCENTER ).GetValue() )
m_xTsbCenterStart->set_state(TRISTATE_TRUE);
@@ -1070,7 +1072,7 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
{
m_xTsbCenterEnd->set_sensitive(false);
}
- else if( rAttrs->GetItemState( XATTR_LINEENDCENTER ) != SfxItemState::DONTCARE )
+ else if( rAttrs->GetItemState( XATTR_LINEENDCENTER ) != SfxItemState::INVALID )
{
if( rAttrs->Get( XATTR_LINEENDCENTER ).GetValue() )
m_xTsbCenterEnd->set_state(TRISTATE_TRUE);
@@ -1083,14 +1085,14 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
}
// Transparency
- if( rAttrs->GetItemState( XATTR_LINETRANSPARENCE ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( XATTR_LINETRANSPARENCE ) != SfxItemState::INVALID )
{
sal_uInt16 nTransp = rAttrs->Get( XATTR_LINETRANSPARENCE ).GetValue();
m_xMtrTransparent->set_value(nTransp, FieldUnit::PERCENT);
ChangeTransparentHdl_Impl(*m_xMtrTransparent);
}
else
- m_xMtrTransparent->set_text( "" );
+ m_xMtrTransparent->set_text( u""_ustr );
if( !m_xLbStartStyle->get_sensitive() &&
!m_xLbEndStyle->get_sensitive() &&
@@ -1113,7 +1115,7 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
// maFTEdgeStyle.set_sensitive(false);
m_xLBEdgeStyle->set_sensitive(false);
}
- else if(SfxItemState::DONTCARE != rAttrs->GetItemState(XATTR_LINEJOINT))
+ else if(SfxItemState::INVALID != rAttrs->GetItemState(XATTR_LINEJOINT))
{
const css::drawing::LineJoint eLineJoint = rAttrs->Get(XATTR_LINEJOINT).GetValue();
@@ -1137,7 +1139,7 @@ void SvxLineTabPage::Reset( const SfxItemSet* rAttrs )
{
m_xLBCapStyle->set_sensitive(false);
}
- else if(SfxItemState::DONTCARE != rAttrs->GetItemState(XATTR_LINECAP))
+ else if(SfxItemState::INVALID != rAttrs->GetItemState(XATTR_LINECAP))
{
const css::drawing::LineCap eLineCap(rAttrs->Get(XATTR_LINECAP).GetValue());
@@ -1383,7 +1385,7 @@ IMPL_LINK_NOARG(SvxLineTabPage, MenuCreateHdl_Impl, weld::Toggleable&, void)
// Initialize popup
if (!m_xGalleryMenu)
{
- m_xGalleryMenu = m_xBuilder->weld_menu("gallerysubmenu");
+ m_xGalleryMenu = m_xBuilder->weld_menu(u"gallerysubmenu"_ustr);
weld::WaitObject aWait(GetFrameWeld());
// Get gallery entries
GalleryExplorer::FillObjList(GALLERY_THEME_BULLETS, m_aGrfNames);
@@ -1402,7 +1404,7 @@ IMPL_LINK_NOARG(SvxLineTabPage, MenuCreateHdl_Impl, weld::Toggleable&, void)
}
SvxBmpItemInfo* pInfo = new SvxBmpItemInfo;
- pInfo->pBrushItem.reset(new SvxBrushItem(grfName, "", GPOS_AREA, SID_ATTR_BRUSH));
+ pInfo->pBrushItem.reset(new SvxBrushItem(grfName, u""_ustr, GPOS_AREA, SID_ATTR_BRUSH));
pInfo->sItemId = "gallery" + OUString::number(i);
m_aGalleryBrushItems.emplace_back(pInfo);
const Graphic* pGraphic = pInfo->pBrushItem->GetGraphic();
@@ -1432,18 +1434,17 @@ IMPL_LINK_NOARG(SvxLineTabPage, MenuCreateHdl_Impl, weld::Toggleable&, void)
}
if (m_aGrfNames.empty())
- m_xSymbolMB->set_item_sensitive("gallery", false);
+ m_xSymbolMB->set_item_sensitive(u"gallery"_ustr, false);
}
if (m_xSymbolsMenu || !m_pSymbolList)
return;
- m_xSymbolsMenu = m_xBuilder->weld_menu("symbolssubmenu");
+ m_xSymbolsMenu = m_xBuilder->weld_menu(u"symbolssubmenu"_ustr);
ScopedVclPtrInstance< VirtualDevice > pVDev;
pVDev->SetMapMode(MapMode(MapUnit::Map100thMM));
std::unique_ptr<SdrModel> pModel(
new SdrModel(nullptr, nullptr, true));
- pModel->GetItemPool().FreezeIdRanges();
// Page
rtl::Reference<SdrPage> pPage = new SdrPage( *pModel, false );
pPage->SetSize(Size(1000,1000));
@@ -1456,25 +1457,25 @@ IMPL_LINK_NOARG(SvxLineTabPage, MenuCreateHdl_Impl, weld::Toggleable&, void)
// Generate invisible square to give all symbols a
// bitmap size, which is independent from specific glyph
- SdrObject *pInvisibleSquare=m_pSymbolList->GetObj(0);
+ rtl::Reference<SdrObject> pInvisibleSquare=m_pSymbolList->GetObj(0);
// directly clone to target SdrModel
pInvisibleSquare = pInvisibleSquare->CloneSdrObject(*pModel);
- pPage->NbcInsertObject(pInvisibleSquare);
+ pPage->NbcInsertObject(pInvisibleSquare.get());
pInvisibleSquare->SetMergedItem(XFillTransparenceItem(100));
pInvisibleSquare->SetMergedItem(XLineTransparenceItem(100));
for(size_t i=0; i < m_pSymbolList->GetObjCount(); ++i)
{
- SdrObject *pObj=m_pSymbolList->GetObj(i);
+ rtl::Reference<SdrObject> pObj=m_pSymbolList->GetObj(i);
assert(pObj);
// directly clone to target SdrModel
pObj = pObj->CloneSdrObject(*pModel);
m_aGrfNames.emplace_back("");
- pPage->NbcInsertObject(pObj);
+ pPage->NbcInsertObject(pObj.get());
if(m_xSymbolAttr)
{
pObj->SetMergedItemSet(*m_xSymbolAttr);
@@ -1487,8 +1488,8 @@ IMPL_LINK_NOARG(SvxLineTabPage, MenuCreateHdl_Impl, weld::Toggleable&, void)
BitmapEx aBitmapEx(aView.GetMarkedObjBitmapEx());
GDIMetaFile aMeta(aView.GetMarkedObjMetaFile());
aView.UnmarkAll();
- pObj=pPage->RemoveObject(1);
- SdrObject::Free(pObj);
+ pPage->RemoveObject(1);
+ pObj.clear();
SvxBmpItemInfo* pInfo = new SvxBmpItemInfo;
pInfo->pBrushItem.reset(new SvxBrushItem(Graphic(aMeta), GPOS_AREA, SID_ATTR_BRUSH));
@@ -1506,19 +1507,19 @@ IMPL_LINK_NOARG(SvxLineTabPage, MenuCreateHdl_Impl, weld::Toggleable&, void)
}
pVD->SetOutputSizePixel(aBitmapEx.GetSizePixel());
pVD->DrawBitmapEx(Point(), aBitmapEx);
- m_xSymbolsMenu->append(pInfo->sItemId, "", *pVD);
+ m_xSymbolsMenu->append(pInfo->sItemId, u""_ustr, *pVD);
}
- pInvisibleSquare=pPage->RemoveObject(0);
- SdrObject::Free(pInvisibleSquare);
+ pPage->RemoveObject(0);
+ pInvisibleSquare.clear();
if (m_aGrfNames.empty())
- m_xSymbolMB->set_item_sensitive("symbols", false);
+ m_xSymbolMB->set_item_sensitive(u"symbols"_ustr, false);
}
}
// #58425# Symbols on a list (e.g. StarChart)
// Handler for menu button
-IMPL_LINK(SvxLineTabPage, GraphicHdl_Impl, const OString&, rIdent, void)
+IMPL_LINK(SvxLineTabPage, GraphicHdl_Impl, const OUString&, rIdent, void)
{
const Graphic* pGraphic = nullptr;
Graphic aGraphic;
@@ -1526,7 +1527,7 @@ IMPL_LINK(SvxLineTabPage, GraphicHdl_Impl, const OString&, rIdent, void)
bool bEnable = true;
tools::Long nPreviousSymbolType = m_nSymbolType;
- OString sNumber;
+ OUString sNumber;
if (rIdent.startsWith("gallery", &sNumber))
{
SvxBmpItemInfo* pInfo = m_aGalleryBrushItems[sNumber.toUInt32()].get();
@@ -1553,7 +1554,7 @@ IMPL_LINK(SvxLineTabPage, GraphicHdl_Impl, const OString&, rIdent, void)
}
else if (rIdent == "file")
{
- SvxOpenGraphicDialog aGrfDlg(CuiResId(RID_SVXSTR_EDIT_GRAPHIC), GetFrameWeld());
+ SvxOpenGraphicDialog aGrfDlg(CuiResId(RID_CUISTR_EDIT_GRAPHIC), GetFrameWeld());
aGrfDlg.EnableLink(false);
aGrfDlg.AsLink(false);
if( !aGrfDlg.Execute() )
diff --git a/cui/source/tabpages/tplnedef.cxx b/cui/source/tabpages/tplnedef.cxx
index c895a6969c9b..d1db86e4956e 100644
--- a/cui/source/tabpages/tplnedef.cxx
+++ b/cui/source/tabpages/tplnedef.cxx
@@ -51,7 +51,7 @@ using namespace com::sun::star;
SvxLineDefTabPage::SvxLineDefTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/linestyletabpage.ui", "LineStylePage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/linestyletabpage.ui"_ustr, u"LineStylePage"_ustr, &rInAttrs)
, rOutAttrs(rInAttrs)
, aXLineAttr(rInAttrs.GetPool())
, rXLSet(aXLineAttr.GetItemSet())
@@ -59,21 +59,21 @@ SvxLineDefTabPage::SvxLineDefTabPage(weld::Container* pPage, weld::DialogControl
, pPageType(nullptr)
, nDlgType(0)
, pPosDashLb(nullptr)
- , m_xLbLineStyles(new SvxLineLB(m_xBuilder->weld_combo_box("LB_LINESTYLES")))
- , m_xLbType1(m_xBuilder->weld_combo_box("LB_TYPE_1"))
- , m_xLbType2(m_xBuilder->weld_combo_box("LB_TYPE_2"))
- , m_xNumFldNumber1(m_xBuilder->weld_spin_button("NUM_FLD_1"))
- , m_xNumFldNumber2(m_xBuilder->weld_spin_button("NUM_FLD_2"))
- , m_xMtrLength1(m_xBuilder->weld_metric_spin_button("MTR_FLD_LENGTH_1", FieldUnit::CM))
- , m_xMtrLength2(m_xBuilder->weld_metric_spin_button("MTR_FLD_LENGTH_2", FieldUnit::CM))
- , m_xMtrDistance(m_xBuilder->weld_metric_spin_button("MTR_FLD_DISTANCE", FieldUnit::CM))
- , m_xCbxSynchronize(m_xBuilder->weld_check_button("CBX_SYNCHRONIZE"))
- , m_xBtnAdd(m_xBuilder->weld_button("BTN_ADD"))
- , m_xBtnModify(m_xBuilder->weld_button("BTN_MODIFY"))
- , m_xBtnDelete(m_xBuilder->weld_button("BTN_DELETE"))
- , m_xBtnLoad(m_xBuilder->weld_button("BTN_LOAD"))
- , m_xBtnSave(m_xBuilder->weld_button("BTN_SAVE"))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
+ , m_xLbLineStyles(new SvxLineLB(m_xBuilder->weld_combo_box(u"LB_LINESTYLES"_ustr)))
+ , m_xLbType1(m_xBuilder->weld_combo_box(u"LB_TYPE_1"_ustr))
+ , m_xLbType2(m_xBuilder->weld_combo_box(u"LB_TYPE_2"_ustr))
+ , m_xNumFldNumber1(m_xBuilder->weld_spin_button(u"NUM_FLD_1"_ustr))
+ , m_xNumFldNumber2(m_xBuilder->weld_spin_button(u"NUM_FLD_2"_ustr))
+ , m_xMtrLength1(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_LENGTH_1"_ustr, FieldUnit::CM))
+ , m_xMtrLength2(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_LENGTH_2"_ustr, FieldUnit::CM))
+ , m_xMtrDistance(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_DISTANCE"_ustr, FieldUnit::CM))
+ , m_xCbxSynchronize(m_xBuilder->weld_check_button(u"CBX_SYNCHRONIZE"_ustr))
+ , m_xBtnAdd(m_xBuilder->weld_button(u"BTN_ADD"_ustr))
+ , m_xBtnModify(m_xBuilder->weld_button(u"BTN_MODIFY"_ustr))
+ , m_xBtnDelete(m_xBuilder->weld_button(u"BTN_DELETE"_ustr))
+ , m_xBtnLoad(m_xBuilder->weld_button(u"BTN_LOAD"_ustr))
+ , m_xBtnSave(m_xBuilder->weld_button(u"BTN_SAVE"_ustr))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_PREVIEW"_ustr, m_aCtlPreview))
{
// this page needs ExchangeSupport
SetExchangeSupport();
@@ -95,7 +95,7 @@ SvxLineDefTabPage::SvxLineDefTabPage(weld::Container* pPage, weld::DialogControl
// determine PoolUnit
SfxItemPool* pPool = rOutAttrs.GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ assert(pPool && "Where is the pool?");
ePoolUnit = pPool->GetMetric( SID_ATTR_LINE_WIDTH );
rXLSet.Put( XLineStyleItem(drawing::LineStyle_DASH) );
@@ -166,7 +166,7 @@ void SvxLineDefTabPage::ActivatePage( const SfxItemSet& )
// determining (and possibly cutting) the name
// and displaying it in the GroupBox
-// OUString aString( CuiResId( RID_SVXSTR_TABLE ) );
+// OUString aString( CuiResId( RID_CUISTR_TABLE ) );
// aString += ": ";
INetURLObject aURL( pDashList->GetPath() );
@@ -203,10 +203,10 @@ void SvxLineDefTabPage::CheckChanges_Impl()
{
std::unique_ptr<weld::MessageDialog> xMessDlg(Application::CreateMessageDialog(GetFrameWeld(),
VclMessageType::Warning, VclButtonsType::Cancel,
- CuiResId(RID_SVXSTR_ASK_CHANGE_LINESTYLE)));
+ CuiResId(RID_CUISTR_ASK_CHANGE_LINESTYLE)));
xMessDlg->set_title(SvxResId(RID_SVXSTR_LINESTYLE));
- xMessDlg->add_button(CuiResId(RID_SVXSTR_CHANGE), RET_BTN_1);
- xMessDlg->add_button(CuiResId(RID_SVXSTR_ADD), RET_BTN_2);
+ xMessDlg->add_button(CuiResId(RID_CUISTR_CHANGE), RET_BTN_1);
+ xMessDlg->add_button(CuiResId(RID_CUISTR_ADD), RET_BTN_2);
short nRet = xMessDlg->run();
@@ -256,9 +256,9 @@ bool SvxLineDefTabPage::FillItemSet( SfxItemSet* rAttrs )
void SvxLineDefTabPage::Reset( const SfxItemSet* rAttrs )
{
- if( rAttrs->GetItemState( GetWhich( XATTR_LINESTYLE ) ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( GetWhich( XATTR_LINESTYLE ) ) != SfxItemState::INVALID )
{
- drawing::LineStyle eXLS = static_cast<const XLineStyleItem&>( rAttrs->Get( GetWhich( XATTR_LINESTYLE ) ) ).GetValue();
+ drawing::LineStyle eXLS = rAttrs->Get( GetWhich( XATTR_LINESTYLE ) ).GetValue();
switch( eXLS )
{
@@ -461,7 +461,7 @@ void SvxLineDefTabPage::SelectTypeHdl_Impl(const weld::ComboBox* p)
if (m_xLbType1->get_active() == 0)
{
m_xMtrLength1->set_sensitive(false);
- m_xMtrLength1->set_text("");
+ m_xMtrLength1->set_text(u""_ustr);
}
else if (!m_xMtrLength1->get_sensitive())
{
@@ -475,7 +475,7 @@ void SvxLineDefTabPage::SelectTypeHdl_Impl(const weld::ComboBox* p)
if (m_xLbType2->get_active() == 0)
{
m_xMtrLength2->set_sensitive(false);
- m_xMtrLength2->set_text("");
+ m_xMtrLength2->set_text(u""_ustr);
}
else if (!m_xMtrLength2->get_sensitive())
{
@@ -489,7 +489,7 @@ void SvxLineDefTabPage::SelectTypeHdl_Impl(const weld::ComboBox* p)
IMPL_LINK_NOARG(SvxLineDefTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName(SvxResId(RID_SVXSTR_LINESTYLE));
- OUString aDesc(CuiResId(RID_SVXSTR_DESC_LINESTYLE));
+ OUString aDesc(CuiResId(RID_CUISTR_DESC_LINESTYLE));
OUString aName;
tools::Long nCount = pDashList->Count();
@@ -512,7 +512,7 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickAddHdl_Impl, weld::Button&, void)
while ( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bDifferent = true;
for( tools::Long i = 0; i < nCount && bDifferent; i++ )
@@ -547,8 +547,8 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickAddHdl_Impl, weld::Button&, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xBox->run();
}
}
@@ -569,7 +569,7 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickModifyHdl_Impl, weld::Button&, void)
if (nPos == -1)
return;
- OUString aDesc(CuiResId(RID_SVXSTR_DESC_LINESTYLE));
+ OUString aDesc(CuiResId(RID_CUISTR_DESC_LINESTYLE));
OUString aName( pDashList->GetDash( nPos )->GetName() );
OUString aOldName = aName;
@@ -581,7 +581,7 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickModifyHdl_Impl, weld::Button&, void)
while ( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bool bDifferent = true;
for( tools::Long i = 0; i < nCount && bDifferent; i++ )
@@ -616,8 +616,8 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickModifyHdl_Impl, weld::Button&, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xBox->run();
}
}
@@ -628,8 +628,8 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickDeleteHdl_Impl, weld::Button&, void)
int nPos = m_xLbLineStyles->get_active();
if (nPos != -1)
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletelinestyledialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelLineStyleDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletelinestyledialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog(u"AskDelLineStyleDialog"_ustr));
if (xQueryBox->run() == RET_YES)
{
pDashList->Remove(nPos);
@@ -660,8 +660,8 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
if ( *pnDashListState & ChangeType::MODIFIED )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querysavelistdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("AskSaveList"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querysavelistdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"AskSaveList"_ustr));
nReturn = xBox->run();
@@ -673,7 +673,7 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
{
::sfx2::FileDialogHelper aDlg(css::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
FileDialogFlags::NONE, GetFrameWeld());
- OUString aStrFilterType( "*.sod" );
+ OUString aStrFilterType( u"*.sod"_ustr );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
OUString aPalettePath(SvtPathOptions().GetPalettePath());
OUString aLastDir;
@@ -695,7 +695,7 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
aPathURL.removeSegment();
aPathURL.removeFinalSlash();
- XDashListRef pDshLst = XPropertyList::AsDashList(XPropertyList::CreatePropertyList( XPropertyListType::Dash, aPathURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), "" ));
+ XDashListRef pDshLst = XPropertyList::AsDashList(XPropertyList::CreatePropertyList( XPropertyListType::Dash, aPathURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), u""_ustr ));
pDshLst->SetName( aURL.getName() );
if( pDshLst->Load() )
@@ -714,8 +714,8 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querynoloadedfiledialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("NoLoadedFileDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querynoloadedfiledialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"NoLoadedFileDialog"_ustr));
xBox->run();
}
}
@@ -739,7 +739,7 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
IMPL_LINK_NOARG(SvxLineDefTabPage, ClickSaveHdl_Impl, weld::Button&, void)
{
::sfx2::FileDialogHelper aDlg(css::ui::dialogs::TemplateDescription::FILESAVE_SIMPLE, FileDialogFlags::NONE, GetFrameWeld());
- OUString aStrFilterType( "*.sod" );
+ OUString aStrFilterType( u"*.sod"_ustr );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
OUString aPalettePath(SvtPathOptions().GetPalettePath());
@@ -781,8 +781,8 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickSaveHdl_Impl, weld::Button&, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querynosavefiledialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("NoSaveFileDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querynosavefiledialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"NoSaveFileDialog"_ustr));
xBox->run();
}
}
diff --git a/cui/source/tabpages/tplneend.cxx b/cui/source/tabpages/tplneend.cxx
index d34b016fa7b0..d2a137c17306 100644
--- a/cui/source/tabpages/tplneend.cxx
+++ b/cui/source/tabpages/tplneend.cxx
@@ -50,7 +50,7 @@
#define XOUT_WIDTH 150
SvxLineEndDefTabPage::SvxLineEndDefTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/lineendstabpage.ui", "LineEndPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/lineendstabpage.ui"_ustr, u"LineEndPage"_ustr, &rInAttrs)
, rOutAttrs(rInAttrs)
, pPolyObj(nullptr)
, aXLineAttr(rInAttrs.GetPool())
@@ -59,14 +59,14 @@ SvxLineEndDefTabPage::SvxLineEndDefTabPage(weld::Container* pPage, weld::DialogC
, pPageType(nullptr)
, nDlgType(0)
, pPosLineEndLb(nullptr)
- , m_xEdtName(m_xBuilder->weld_entry("EDT_NAME"))
- , m_xLbLineEnds(new SvxLineEndLB(m_xBuilder->weld_combo_box("LB_LINEENDS")))
- , m_xBtnAdd(m_xBuilder->weld_button("BTN_ADD"))
- , m_xBtnModify(m_xBuilder->weld_button("BTN_MODIFY"))
- , m_xBtnDelete(m_xBuilder->weld_button("BTN_DELETE"))
- , m_xBtnLoad(m_xBuilder->weld_button("BTN_LOAD"))
- , m_xBtnSave(m_xBuilder->weld_button("BTN_SAVE"))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
+ , m_xEdtName(m_xBuilder->weld_entry(u"EDT_NAME"_ustr))
+ , m_xLbLineEnds(new SvxLineEndLB(m_xBuilder->weld_combo_box(u"LB_LINEENDS"_ustr)))
+ , m_xBtnAdd(m_xBuilder->weld_button(u"BTN_ADD"_ustr))
+ , m_xBtnModify(m_xBuilder->weld_button(u"BTN_MODIFY"_ustr))
+ , m_xBtnDelete(m_xBuilder->weld_button(u"BTN_DELETE"_ustr))
+ , m_xBtnLoad(m_xBuilder->weld_button(u"BTN_LOAD"_ustr))
+ , m_xBtnSave(m_xBuilder->weld_button(u"BTN_SAVE"_ustr))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_PREVIEW"_ustr, m_aCtlPreview))
{
// this page needs ExchangeSupport
SetExchangeSupport();
@@ -109,7 +109,7 @@ void SvxLineEndDefTabPage::Construct()
{
SdrObjTransformInfoRec aInfoRec;
pPolyObj->TakeObjInfo( aInfoRec );
- SdrObjectUniquePtr pNewObj;
+ rtl::Reference<SdrObject> pNewObj;
if( aInfoRec.bCanConvToPath )
pNewObj = pPolyObj->ConvertToPolyObj( true, false );
@@ -164,8 +164,8 @@ void SvxLineEndDefTabPage::CheckChanges_Impl()
if( aString != m_xLbLineEnds->get_active_text() )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querychangelineenddialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskChangeLineEndDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querychangelineenddialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog(u"AskChangeLineEndDialog"_ustr));
if (xQueryBox->run() == RET_YES)
ClickModifyHdl_Impl(*m_xBtnModify);
}
@@ -270,7 +270,7 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickModifyHdl_Impl, weld::Button&, void)
if (nPos == -1)
return;
- OUString aDesc(CuiResId(RID_SVXSTR_DESC_LINEEND));
+ OUString aDesc(CuiResId(RID_CUISTR_DESC_LINEEND));
OUString aName(m_xEdtName->get_text());
tools::Long nCount = pLineEndList->Count();
bool bDifferent = true;
@@ -283,8 +283,8 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickModifyHdl_Impl, weld::Button&, void)
// if yes, repeat and demand a new name
if ( !bDifferent )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarningBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xWarningBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xWarningBox->run();
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -293,7 +293,7 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickModifyHdl_Impl, weld::Button&, void)
while( !bDifferent && bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bDifferent = true;
for( tools::Long i = 0; i < nCount && bDifferent; i++ )
@@ -341,7 +341,7 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickAddHdl_Impl, weld::Button&, void)
if( pPolyObj )
{
const SdrObject* pNewObj;
- SdrObjectUniquePtr pConvPolyObj;
+ rtl::Reference<SdrObject> pConvPolyObj;
if( nullptr != dynamic_cast<const SdrPathObj*>( pPolyObj) )
{
@@ -370,10 +370,10 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickAddHdl_Impl, weld::Button&, void)
// normalize
aNewPolyPolygon.transform(basegfx::utils::createTranslateB2DHomMatrix( -aNewRange.getMinX(), -aNewRange.getMinY()));
- pConvPolyObj.reset();
+ pConvPolyObj.clear();
OUString aNewName(SvxResId(RID_SVXSTR_LINEEND));
- OUString aDesc(CuiResId(RID_SVXSTR_DESC_LINEEND));
+ OUString aDesc(CuiResId(RID_CUISTR_DESC_LINEEND));
OUString aName;
tools::Long nCount = pLineEndList->Count();
@@ -396,7 +396,7 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickAddHdl_Impl, weld::Button&, void)
while ( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bDifferent = true;
for( tools::Long i = 0; i < nCount && bDifferent; i++ )
@@ -422,8 +422,8 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickAddHdl_Impl, weld::Button&, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarningBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xWarningBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xWarningBox->run();
}
}
@@ -446,8 +446,8 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickDeleteHdl_Impl, weld::Button&, void)
if (nPos != -1)
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletelineenddialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelLineEndDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletelineenddialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog(u"AskDelLineEndDialog"_ustr));
if (xQueryBox->run() == RET_YES)
{
@@ -478,8 +478,8 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
if ( *pnLineEndListState & ChangeType::MODIFIED )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querysavelistdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("AskSaveList"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querysavelistdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"AskSaveList"_ustr));
nReturn = xBox->run();
@@ -491,7 +491,7 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
{
::sfx2::FileDialogHelper aDlg(css::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
FileDialogFlags::NONE, GetFrameWeld());
- OUString aStrFilterType( "*.soe" );
+ OUString aStrFilterType( u"*.soe"_ustr );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
OUString aPalettePath(SvtPathOptions().GetPalettePath());
@@ -517,7 +517,7 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
XLineEndListRef pLeList = XPropertyList::AsLineEndList(
XPropertyList::CreatePropertyList(
XPropertyListType::LineEnd,
- aPathURL.GetMainURL(INetURLObject::DecodeMechanism::NONE), ""));
+ aPathURL.GetMainURL(INetURLObject::DecodeMechanism::NONE), u""_ustr));
pLeList->SetName( aURL.getName() );
if( pLeList->Load() )
{
@@ -534,8 +534,8 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querynoloadedfiledialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("NoLoadedFileDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querynoloadedfiledialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"NoLoadedFileDialog"_ustr));
xBox->run();
}
}
@@ -559,7 +559,7 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickLoadHdl_Impl, weld::Button&, void)
IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickSaveHdl_Impl, weld::Button&, void)
{
::sfx2::FileDialogHelper aDlg(css::ui::dialogs::TemplateDescription::FILESAVE_SIMPLE, FileDialogFlags::NONE, GetFrameWeld());
- OUString aStrFilterType( "*.soe" );
+ OUString aStrFilterType( u"*.soe"_ustr );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
OUString aPalettePath(SvtPathOptions().GetPalettePath());
@@ -601,8 +601,8 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickSaveHdl_Impl, weld::Button&, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querynosavefiledialog.ui"));
- std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("NoSaveFileDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querynosavefiledialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog(u"NoSaveFileDialog"_ustr));
xBox->run();
}
}
diff --git a/cui/source/tabpages/tppattern.cxx b/cui/source/tabpages/tppattern.cxx
index 5fe830715b7f..6128ae946184 100644
--- a/cui/source/tabpages/tppattern.cxx
+++ b/cui/source/tabpages/tppattern.cxx
@@ -70,23 +70,23 @@ public:
};
SvxPatternTabPage::SvxPatternTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SvxTabPage(pPage, pController, "cui/ui/patterntabpage.ui", "PatternTabPage", rInAttrs)
+ : SvxTabPage(pPage, pController, u"cui/ui/patterntabpage.ui"_ustr, u"PatternTabPage"_ustr, rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnPatternListState(nullptr)
, m_pnColorListState(nullptr)
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, m_xCtlPixel(new SvxPixelCtl(this))
- , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"),
+ , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button(u"LB_COLOR"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_BACKGROUND_COLOR"),
+ , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button(u"LB_BACKGROUND_COLOR"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xPatternLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("patternpresetlistwin", true)))
- , m_xBtnAdd(m_xBuilder->weld_button("BTN_ADD"))
- , m_xBtnModify(m_xBuilder->weld_button("BTN_MODIFY"))
- , m_xCtlPixelWin(new weld::CustomWeld(*m_xBuilder, "CTL_PIXEL", *m_xCtlPixel))
- , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "CTL_PREVIEW", m_aCtlPreview))
- , m_xPatternLBWin(new weld::CustomWeld(*m_xBuilder, "patternpresetlist", *m_xPatternLB))
+ , m_xPatternLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window(u"patternpresetlistwin"_ustr, true)))
+ , m_xBtnAdd(m_xBuilder->weld_button(u"BTN_ADD"_ustr))
+ , m_xBtnModify(m_xBuilder->weld_button(u"BTN_MODIFY"_ustr))
+ , m_xCtlPixelWin(new weld::CustomWeld(*m_xBuilder, u"CTL_PIXEL"_ustr, *m_xCtlPixel))
+ , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_PREVIEW"_ustr, m_aCtlPreview))
+ , m_xPatternLBWin(new weld::CustomWeld(*m_xBuilder, u"patternpresetlist"_ustr, *m_xPatternLB))
{
// size of the bitmap display
Size aSize = getDrawPreviewOptimalSize(m_aCtlPreview.GetDrawingArea()->get_ref_device());
@@ -147,7 +147,7 @@ void SvxPatternTabPage::ActivatePage( const SfxItemSet& rSet )
// determining (possibly cutting) the name and
// displaying it in the GroupBox
- OUString aString = CuiResId( RID_SVXSTR_TABLE ) + ": ";
+ OUString aString = CuiResId( RID_CUISTR_TABLE ) + ": ";
INetURLObject aURL( m_pPatternList->GetPath() );
aURL.Append( m_pPatternList->GetName() );
@@ -253,15 +253,14 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ChangePatternHdl_Impl, ValueSet*, void)
}
else
{
- const SfxPoolItem* pPoolItem = nullptr;
-
- if(SfxItemState::SET == m_rOutAttrs.GetItemState(GetWhich(XATTR_FILLSTYLE), true, &pPoolItem))
+ if(const XFillStyleItem* pFillStyleItem = m_rOutAttrs.GetItemIfSet(GetWhich(XATTR_FILLSTYLE)))
{
- const drawing::FillStyle eXFS(static_cast<const XFillStyleItem*>(pPoolItem)->GetValue());
+ const drawing::FillStyle eXFS(pFillStyleItem->GetValue());
- if((drawing::FillStyle_BITMAP == eXFS) && (SfxItemState::SET == m_rOutAttrs.GetItemState(GetWhich(XATTR_FILLBITMAP), true, &pPoolItem)))
+ const XFillBitmapItem* pBitmapItem;
+ if((drawing::FillStyle_BITMAP == eXFS) && (pBitmapItem = m_rOutAttrs.GetItemIfSet(GetWhich(XATTR_FILLBITMAP))))
{
- pGraphicObject.reset(new GraphicObject(static_cast<const XFillBitmapItem*>(pPoolItem)->GetGraphicObject()));
+ pGraphicObject.reset(new GraphicObject(pBitmapItem->GetGraphicObject()));
}
}
@@ -323,7 +322,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
{
OUString aNewName( SvxResId( RID_SVXSTR_PATTERN_UNTITLED ) );
- OUString aDesc( CuiResId( RID_SVXSTR_DESC_NEW_PATTERN ) );
+ OUString aDesc( CuiResId( RID_CUISTR_DESC_NEW_PATTERN ) );
OUString aName;
tools::Long nCount = m_pPatternList->Count();
@@ -342,7 +341,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
while( pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
bValidPatternName = (SearchPatternList(aName) == -1);
@@ -351,8 +350,8 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
break;
}
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
if (xWarnBox->run() != RET_OK)
break;
}
@@ -370,12 +369,8 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickAddHdl_Impl, weld::Button&, void)
}
else // it must be a not existing imported bitmap
{
- const SfxPoolItem* pPoolItem = nullptr;
-
- if(SfxItemState::SET == m_rOutAttrs.GetItemState(XATTR_FILLBITMAP, true, &pPoolItem))
+ if(const XFillBitmapItem* pFillBmpItem = m_rOutAttrs.GetItemIfSet(XATTR_FILLBITMAP))
{
- auto pFillBmpItem = dynamic_cast<const XFillBitmapItem*>(pPoolItem);
- assert(pFillBmpItem);
pEntry.reset(new XBitmapEntry(pFillBmpItem->GetGraphicObject(), aName));
}
else
@@ -436,7 +431,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void)
if ( nPos == VALUESET_ITEM_NOTFOUND )
return;
- OUString aDesc(CuiResId(RID_SVXSTR_DESC_NEW_PATTERN));
+ OUString aDesc(CuiResId(RID_CUISTR_DESC_NEW_PATTERN));
OUString aName(m_pPatternList->GetBitmap(nPos)->GetName());
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -446,7 +441,7 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void)
while( bLoop && pDlg->Execute() == RET_OK )
{
- pDlg->GetName( aName );
+ aName = pDlg->GetName();
sal_Int32 nPatternPos = SearchPatternList(aName);
bool bValidPatternName = (nPatternPos == static_cast<sal_Int32>(nPos) ) || (nPatternPos == -1);
@@ -463,8 +458,8 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickRenameHdl_Impl, SvxPresetListBox*, void)
}
else
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/queryduplicatedialog.ui"));
- std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog("DuplicateNameDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/queryduplicatedialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xWarnBox(xBuilder->weld_message_dialog(u"DuplicateNameDialog"_ustr));
xWarnBox->run();
}
}
@@ -477,8 +472,8 @@ IMPL_LINK_NOARG(SvxPatternTabPage, ClickDeleteHdl_Impl, SvxPresetListBox*, void)
if( nPos != VALUESET_ITEM_NOTFOUND )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/querydeletebitmapdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog("AskDelBitmapDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), u"cui/ui/querydeletebitmapdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQueryBox(xBuilder->weld_message_dialog(u"AskDelBitmapDialog"_ustr));
if (xQueryBox->run() == RET_YES)
{
m_pPatternList->Remove(nPos);
diff --git a/cui/source/tabpages/tpshadow.cxx b/cui/source/tabpages/tpshadow.cxx
index 4a538968536b..86fb46334575 100644
--- a/cui/source/tabpages/tpshadow.cxx
+++ b/cui/source/tabpages/tpshadow.cxx
@@ -50,7 +50,7 @@ const WhichRangesContainer SvxShadowTabPage::pShadowRanges(svl::Items<
>);
SvxShadowTabPage::SvxShadowTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SvxTabPage(pPage, pController, "cui/ui/shadowtabpage.ui", "ShadowTabPage", rInAttrs)
+ : SvxTabPage(pPage, pController, u"cui/ui/shadowtabpage.ui"_ustr, u"ShadowTabPage"_ustr, rInAttrs)
, m_rOutAttrs(rInAttrs)
, m_pnColorListState(nullptr)
, m_nPageType(PageType::Area)
@@ -58,15 +58,15 @@ SvxShadowTabPage::SvxShadowTabPage(weld::Container* pPage, weld::DialogControlle
, m_aXFillAttr(rInAttrs.GetPool())
, m_rXFSet(m_aXFillAttr.GetItemSet())
, m_aCtlPosition(this)
- , m_xTsbShowShadow(m_xBuilder->weld_check_button("TSB_SHOW_SHADOW"))
- , m_xGridShadow(m_xBuilder->weld_widget("gridSHADOW"))
- , m_xMtrDistance(m_xBuilder->weld_metric_spin_button("MTR_FLD_DISTANCE", FieldUnit::CM))
- , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_SHADOW_COLOR"),
+ , m_xTsbShowShadow(m_xBuilder->weld_check_button(u"TSB_SHOW_SHADOW"_ustr))
+ , m_xGridShadow(m_xBuilder->weld_widget(u"gridSHADOW"_ustr))
+ , m_xMtrDistance(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_DISTANCE"_ustr, FieldUnit::CM))
+ , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button(u"LB_SHADOW_COLOR"_ustr),
[this]{ return GetDialogController()->getDialog(); }))
- , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button("MTR_SHADOW_TRANSPARENT", FieldUnit::PERCENT))
- , m_xLbShadowBlurMetric(m_xBuilder->weld_metric_spin_button("LB_SHADOW_BLUR", FieldUnit::POINT))
- , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, "CTL_POSITION", m_aCtlPosition))
- , m_xCtlXRectPreview(new weld::CustomWeld(*m_xBuilder, "CTL_COLOR_PREVIEW", m_aCtlXRectPreview))
+ , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button(u"MTR_SHADOW_TRANSPARENT"_ustr, FieldUnit::PERCENT))
+ , m_xLbShadowBlurMetric(m_xBuilder->weld_metric_spin_button(u"LB_SHADOW_BLUR"_ustr, FieldUnit::POINT))
+ , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, u"CTL_POSITION"_ustr, m_aCtlPosition))
+ , m_xCtlXRectPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_COLOR_PREVIEW"_ustr, m_aCtlXRectPreview))
{
// this page needs ExchangeSupport
SetExchangeSupport();
@@ -86,33 +86,32 @@ SvxShadowTabPage::SvxShadowTabPage(weld::Container* pPage, weld::DialogControlle
// determine PoolUnit
SfxItemPool* pPool = m_rOutAttrs.GetPool();
- DBG_ASSERT( pPool, "Where is the pool?" );
+ assert(pPool && "Where is the pool?");
m_ePoolUnit = pPool->GetMetric( SDRATTR_SHADOWXDIST );
// setting the output device
drawing::FillStyle eXFS = drawing::FillStyle_SOLID;
- if( m_rOutAttrs.GetItemState( XATTR_FILLSTYLE ) != SfxItemState::DONTCARE )
+ if( m_rOutAttrs.GetItemState( XATTR_FILLSTYLE ) != SfxItemState::INVALID )
{
- eXFS = static_cast<const XFillStyleItem&>( m_rOutAttrs.
- Get( GetWhich( XATTR_FILLSTYLE ) ) ).GetValue();
+ eXFS = m_rOutAttrs.Get( GetWhich( XATTR_FILLSTYLE ) ).GetValue();
switch( eXFS )
{
case drawing::FillStyle_SOLID:
- if( SfxItemState::DONTCARE != m_rOutAttrs.GetItemState( XATTR_FILLCOLOR ) )
+ if( SfxItemState::INVALID != m_rOutAttrs.GetItemState( XATTR_FILLCOLOR ) )
{
m_rXFSet.Put( m_rOutAttrs.Get( XATTR_FILLCOLOR ) );
}
break;
case drawing::FillStyle_GRADIENT:
- if( SfxItemState::DONTCARE != m_rOutAttrs.GetItemState( XATTR_FILLGRADIENT ) )
+ if( SfxItemState::INVALID != m_rOutAttrs.GetItemState( XATTR_FILLGRADIENT ) )
{
m_rXFSet.Put( m_rOutAttrs.Get( XATTR_FILLGRADIENT ) );
}
break;
case drawing::FillStyle_HATCH:
- if( SfxItemState::DONTCARE != m_rOutAttrs.GetItemState( XATTR_FILLHATCH ) )
+ if( SfxItemState::INVALID != m_rOutAttrs.GetItemState( XATTR_FILLHATCH ) )
{
m_rXFSet.Put( m_rOutAttrs.Get( XATTR_FILLHATCH ) );
}
@@ -120,7 +119,7 @@ SvxShadowTabPage::SvxShadowTabPage(weld::Container* pPage, weld::DialogControlle
case drawing::FillStyle_BITMAP:
{
- if( SfxItemState::DONTCARE != m_rOutAttrs.GetItemState( XATTR_FILLBITMAP ) )
+ if( SfxItemState::INVALID != m_rOutAttrs.GetItemState( XATTR_FILLBITMAP ) )
{
m_rXFSet.Put( m_rOutAttrs.Get( XATTR_FILLBITMAP ) );
}
@@ -258,18 +257,18 @@ bool SvxShadowTabPage::FillItemSet( SfxItemSet* rAttrs )
case RectPoint::MM: break;
}
- // If the values of the shadow distances==SfxItemState::DONTCARE and the displayed
+ // If the values of the shadow distances==SfxItemState::INVALID and the displayed
// string in the respective MetricField=="", then the comparison of the old
// and the new distance values would return a wrong result because in such a
// case the new distance values would match the default values of the MetricField !!!!
if ( !m_xMtrDistance->get_text().isEmpty() ||
- m_rOutAttrs.GetItemState( SDRATTR_SHADOWXDIST ) != SfxItemState::DONTCARE ||
- m_rOutAttrs.GetItemState( SDRATTR_SHADOWYDIST ) != SfxItemState::DONTCARE )
+ m_rOutAttrs.GetItemState( SDRATTR_SHADOWXDIST ) != SfxItemState::INVALID ||
+ m_rOutAttrs.GetItemState( SDRATTR_SHADOWYDIST ) != SfxItemState::INVALID )
{
sal_Int32 nOldX = 9876543; // impossible value, so DontCare
sal_Int32 nOldY = 9876543;
- if( m_rOutAttrs.GetItemState( SDRATTR_SHADOWXDIST ) != SfxItemState::DONTCARE &&
- m_rOutAttrs.GetItemState( SDRATTR_SHADOWYDIST ) != SfxItemState::DONTCARE )
+ if( m_rOutAttrs.GetItemState( SDRATTR_SHADOWXDIST ) != SfxItemState::INVALID &&
+ m_rOutAttrs.GetItemState( SDRATTR_SHADOWYDIST ) != SfxItemState::INVALID )
{
nOldX = m_rOutAttrs.Get( SDRATTR_SHADOWXDIST ).GetValue();
nOldY = m_rOutAttrs.Get( SDRATTR_SHADOWYDIST ).GetValue();
@@ -339,7 +338,7 @@ void SvxShadowTabPage::Reset( const SfxItemSet* rAttrs )
// at the moment there are only 8 possible positions where a shadow can be set
// has a shadow been set?
- if( rAttrs->GetItemState( SDRATTR_SHADOW ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_SHADOW ) != SfxItemState::INVALID )
{
if( rAttrs->Get( SDRATTR_SHADOW ).GetValue() )
m_xTsbShowShadow->set_state(TRISTATE_TRUE);
@@ -354,8 +353,8 @@ void SvxShadowTabPage::Reset( const SfxItemSet* rAttrs )
// distance (only 8 possible positions),
// so there is only one item evaluated
- if( rAttrs->GetItemState( SDRATTR_SHADOWXDIST ) != SfxItemState::DONTCARE &&
- rAttrs->GetItemState( SDRATTR_SHADOWYDIST ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_SHADOWXDIST ) != SfxItemState::INVALID &&
+ rAttrs->GetItemState( SDRATTR_SHADOWYDIST ) != SfxItemState::INVALID )
{
sal_Int32 nX = rAttrs->Get( SDRATTR_SHADOWXDIST ).GetValue();
sal_Int32 nY = rAttrs->Get( SDRATTR_SHADOWYDIST ).GetValue();
@@ -382,41 +381,41 @@ void SvxShadowTabPage::Reset( const SfxItemSet* rAttrs )
// determine default-distance
SfxItemPool* pPool = m_rOutAttrs.GetPool();
{
- sal_Int32 n = pPool->GetDefaultItem(SDRATTR_SHADOWXDIST).GetValue();
+ sal_Int32 n = pPool->GetUserOrPoolDefaultItem(SDRATTR_SHADOWXDIST).GetValue();
if (n == 0)
- n = pPool->GetDefaultItem(SDRATTR_SHADOWYDIST).GetValue();
+ n = pPool->GetUserOrPoolDefaultItem(SDRATTR_SHADOWYDIST).GetValue();
SetMetricValue(*m_xMtrDistance, std::abs(n), m_ePoolUnit);
}
// Tristate, e. g. multiple objects have been marked of which some have a shadow and some don't.
// The text (which shall be displayed) of the MetricFields is set to "" and serves as an
// identification in the method FillItemSet for the fact that the distance value was NOT changed !!!!
- m_xMtrDistance->set_text( "" );
+ m_xMtrDistance->set_text( u""_ustr );
m_aCtlPosition.SetActualRP( RectPoint::MM );
}
- if( rAttrs->GetItemState( SDRATTR_SHADOWCOLOR ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_SHADOWCOLOR ) != SfxItemState::INVALID )
{
m_xLbShadowColor->SelectEntry( rAttrs->Get( SDRATTR_SHADOWCOLOR ).GetColorValue() );
}
else
m_xLbShadowColor->SetNoSelection();
- if( rAttrs->GetItemState( SDRATTR_SHADOWTRANSPARENCE ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_SHADOWTRANSPARENCE ) != SfxItemState::INVALID )
{
sal_uInt16 nTransp = rAttrs->Get( SDRATTR_SHADOWTRANSPARENCE ).GetValue();
m_xMtrTransparent->set_value(nTransp, FieldUnit::PERCENT);
}
else
- m_xMtrTransparent->set_text("");
+ m_xMtrTransparent->set_text(u""_ustr);
- if( rAttrs->GetItemState( SDRATTR_SHADOWBLUR ) != SfxItemState::DONTCARE )
+ if( rAttrs->GetItemState( SDRATTR_SHADOWBLUR ) != SfxItemState::INVALID )
{
sal_uInt16 nBlur = rAttrs->Get( SDRATTR_SHADOWBLUR ).GetValue();
m_xLbShadowBlurMetric->set_value(nBlur, FieldUnit::MM_100TH);
}
else
- m_xLbShadowBlurMetric->set_text("");
+ m_xLbShadowBlurMetric->set_text(u""_ustr);
//aCtlPosition
m_xMtrDistance->save_value();
diff --git a/cui/source/tabpages/tptrans.cxx b/cui/source/tabpages/tptrans.cxx
index e78fcfffe16d..842af80df238 100644
--- a/cui/source/tabpages/tptrans.cxx
+++ b/cui/source/tabpages/tptrans.cxx
@@ -119,11 +119,8 @@ void SvxTransparenceTabPage::ModifiedTrgrHdl_Impl(const weld::ComboBox* pControl
}
// preview
- sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(m_xMtrTrgrStartValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
- sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(m_xMtrTrgrEndValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
- XGradient aTmpGradient(
- Color(nStartCol, nStartCol, nStartCol),
- Color(nEndCol, nEndCol, nEndCol),
+ basegfx::BGradient aTmpGradient(
+ createColorStops(),
static_cast<css::awt::GradientStyle>(m_xLbTrgrGradientType->get_active()),
Degree10(static_cast<sal_Int16>(m_xMtrTrgrAngle->get_value(FieldUnit::DEGREE)) * 10),
static_cast<sal_uInt16>(m_xMtrTrgrCenterX->get_value(FieldUnit::PERCENT)),
@@ -187,32 +184,32 @@ void SvxTransparenceTabPage::SetControlState_Impl(css::awt::GradientStyle eXGS)
}
SvxTransparenceTabPage::SvxTransparenceTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/transparencytabpage.ui", "TransparencyTabPage", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/transparencytabpage.ui"_ustr, u"TransparencyTabPage"_ustr, &rInAttrs)
, rOutAttrs(rInAttrs)
, nPageType(PageType::Area)
, nDlgType(0)
, bBitmap(false)
, aXFillAttr(rInAttrs.GetPool())
, rXFSet(aXFillAttr.GetItemSet())
- , m_xRbtTransOff(m_xBuilder->weld_radio_button("RBT_TRANS_OFF"))
- , m_xRbtTransLinear(m_xBuilder->weld_radio_button("RBT_TRANS_LINEAR"))
- , m_xRbtTransGradient(m_xBuilder->weld_radio_button("RBT_TRANS_GRADIENT"))
- , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button("MTR_TRANSPARENT", FieldUnit::PERCENT))
- , m_xGridGradient(m_xBuilder->weld_widget("gridGradient"))
- , m_xLbTrgrGradientType(m_xBuilder->weld_combo_box("LB_TRGR_GRADIENT_TYPES"))
- , m_xFtTrgrCenterX(m_xBuilder->weld_label("FT_TRGR_CENTER_X"))
- , m_xMtrTrgrCenterX(m_xBuilder->weld_metric_spin_button("MTR_TRGR_CENTER_X", FieldUnit::PERCENT))
- , m_xFtTrgrCenterY(m_xBuilder->weld_label("FT_TRGR_CENTER_Y"))
- , m_xMtrTrgrCenterY(m_xBuilder->weld_metric_spin_button("MTR_TRGR_CENTER_Y", FieldUnit::PERCENT))
- , m_xFtTrgrAngle(m_xBuilder->weld_label("FT_TRGR_ANGLE"))
- , m_xMtrTrgrAngle(m_xBuilder->weld_metric_spin_button("MTR_TRGR_ANGLE", FieldUnit::DEGREE))
- , m_xMtrTrgrBorder(m_xBuilder->weld_metric_spin_button("MTR_TRGR_BORDER", FieldUnit::PERCENT))
- , m_xMtrTrgrStartValue(m_xBuilder->weld_metric_spin_button("MTR_TRGR_START_VALUE", FieldUnit::PERCENT))
- , m_xMtrTrgrEndValue(m_xBuilder->weld_metric_spin_button("MTR_TRGR_END_VALUE", FieldUnit::PERCENT))
- , m_xCtlBitmapBorder(m_xBuilder->weld_widget("bitmap_border"))
- , m_xCtlXRectBorder(m_xBuilder->weld_widget("trans_border"))
- , m_xCtlBitmapPreview(new weld::CustomWeld(*m_xBuilder, "CTL_IMAGE_PREVIEW", m_aCtlBitmapPreview))
- , m_xCtlXRectPreview(new weld::CustomWeld(*m_xBuilder, "CTL_TRANS_PREVIEW", m_aCtlXRectPreview))
+ , m_xRbtTransOff(m_xBuilder->weld_radio_button(u"RBT_TRANS_OFF"_ustr))
+ , m_xRbtTransLinear(m_xBuilder->weld_radio_button(u"RBT_TRANS_LINEAR"_ustr))
+ , m_xRbtTransGradient(m_xBuilder->weld_radio_button(u"RBT_TRANS_GRADIENT"_ustr))
+ , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button(u"MTR_TRANSPARENT"_ustr, FieldUnit::PERCENT))
+ , m_xGridGradient(m_xBuilder->weld_widget(u"gridGradient"_ustr))
+ , m_xLbTrgrGradientType(m_xBuilder->weld_combo_box(u"LB_TRGR_GRADIENT_TYPES"_ustr))
+ , m_xFtTrgrCenterX(m_xBuilder->weld_label(u"FT_TRGR_CENTER_X"_ustr))
+ , m_xMtrTrgrCenterX(m_xBuilder->weld_metric_spin_button(u"MTR_TRGR_CENTER_X"_ustr, FieldUnit::PERCENT))
+ , m_xFtTrgrCenterY(m_xBuilder->weld_label(u"FT_TRGR_CENTER_Y"_ustr))
+ , m_xMtrTrgrCenterY(m_xBuilder->weld_metric_spin_button(u"MTR_TRGR_CENTER_Y"_ustr, FieldUnit::PERCENT))
+ , m_xFtTrgrAngle(m_xBuilder->weld_label(u"FT_TRGR_ANGLE"_ustr))
+ , m_xMtrTrgrAngle(m_xBuilder->weld_metric_spin_button(u"MTR_TRGR_ANGLE"_ustr, FieldUnit::DEGREE))
+ , m_xMtrTrgrBorder(m_xBuilder->weld_metric_spin_button(u"MTR_TRGR_BORDER"_ustr, FieldUnit::PERCENT))
+ , m_xMtrTrgrStartValue(m_xBuilder->weld_metric_spin_button(u"MTR_TRGR_START_VALUE"_ustr, FieldUnit::PERCENT))
+ , m_xMtrTrgrEndValue(m_xBuilder->weld_metric_spin_button(u"MTR_TRGR_END_VALUE"_ustr, FieldUnit::PERCENT))
+ , m_xCtlBitmapBorder(m_xBuilder->weld_widget(u"bitmap_border"_ustr))
+ , m_xCtlXRectBorder(m_xBuilder->weld_widget(u"trans_border"_ustr))
+ , m_xCtlBitmapPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_IMAGE_PREVIEW"_ustr, m_aCtlBitmapPreview))
+ , m_xCtlXRectPreview(new weld::CustomWeld(*m_xBuilder, u"CTL_TRANS_PREVIEW"_ustr, m_aCtlXRectPreview))
{
// main selection
m_xRbtTransOff->connect_toggled(LINK(this, SvxTransparenceTabPage, ClickTransOffHdl_Impl));
@@ -253,8 +250,8 @@ bool SvxTransparenceTabPage::FillItemSet(SfxItemSet* rAttrs)
bool bGradActive = (eStateGradient == SfxItemState::SET && static_cast<const XFillFloatTransparenceItem*>(pGradientItem)->IsEnabled());
bool bLinearActive = (eStateLinear == SfxItemState::SET && static_cast<const XFillTransparenceItem*>(pLinearItem)->GetValue() != 0);
- bool bGradUsed = (eStateGradient == SfxItemState::DONTCARE);
- bool bLinearUsed = (eStateLinear == SfxItemState::DONTCARE);
+ bool bGradUsed = (eStateGradient == SfxItemState::INVALID);
+ bool bLinearUsed = (eStateLinear == SfxItemState::INVALID);
bool bModified(false);
bool bSwitchOffLinear(false);
@@ -290,11 +287,8 @@ bool SvxTransparenceTabPage::FillItemSet(SfxItemSet* rAttrs)
|| m_xMtrTrgrStartValue->get_value_changed_from_saved()
|| m_xMtrTrgrEndValue->get_value_changed_from_saved())
{
- sal_uInt8 nStartCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(m_xMtrTrgrStartValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
- sal_uInt8 nEndCol = static_cast<sal_uInt8>((static_cast<sal_uInt16>(m_xMtrTrgrEndValue->get_value(FieldUnit::PERCENT)) * 255) / 100);
- XGradient aTmpGradient(
- Color(nStartCol, nStartCol, nStartCol),
- Color(nEndCol, nEndCol, nEndCol),
+ basegfx::BGradient aTmpGradient(
+ createColorStops(),
static_cast<css::awt::GradientStyle>(m_xLbTrgrGradientType->get_active()),
Degree10(static_cast<sal_Int16>(m_xMtrTrgrAngle->get_value(FieldUnit::DEGREE)) * 10),
static_cast<sal_uInt16>(m_xMtrTrgrCenterX->get_value(FieldUnit::PERCENT)),
@@ -323,9 +317,10 @@ bool SvxTransparenceTabPage::FillItemSet(SfxItemSet* rAttrs)
// disable unused XFillFloatTransparenceItem
if(bSwitchOffGradient && (bGradActive || bGradUsed))
{
- XGradient aGrad(COL_BLACK, COL_WHITE);
- aGrad.SetStartIntens(100);
- aGrad.SetEndIntens(100);
+ // basegfx::BGradient() default already creates [COL_BLACK, COL_WHITE] with same defaults
+ // basegfx::BGradient() default also sets the Start/EndIntensity to 100 already
+ basegfx::BGradient aGrad;
+
XFillFloatTransparenceItem aItem(aGrad);
aItem.SetEnabled(false);
rAttrs->Put(aItem);
@@ -347,31 +342,40 @@ bool SvxTransparenceTabPage::FillItemSet(SfxItemSet* rAttrs)
void SvxTransparenceTabPage::Reset(const SfxItemSet* rAttrs)
{
- const SfxPoolItem* pGradientItem = nullptr;
- SfxItemState eStateGradient(rAttrs->GetItemState(XATTR_FILLFLOATTRANSPARENCE, true, &pGradientItem));
+ const XFillFloatTransparenceItem* pGradientItem =
+ rAttrs->GetItemIfSet(XATTR_FILLFLOATTRANSPARENCE);
+ bool bGradActive = (pGradientItem && pGradientItem->IsEnabled());
if(!pGradientItem)
pGradientItem = &rAttrs->Get(XATTR_FILLFLOATTRANSPARENCE);
- bool bGradActive = (eStateGradient == SfxItemState::SET && static_cast<const XFillFloatTransparenceItem*>(pGradientItem)->IsEnabled());
- const SfxPoolItem* pLinearItem = nullptr;
- SfxItemState eStateLinear(rAttrs->GetItemState(XATTR_FILLTRANSPARENCE, true, &pLinearItem));
+ const XFillTransparenceItem* pLinearItem =
+ rAttrs->GetItemIfSet(XATTR_FILLTRANSPARENCE);
+ bool bLinearActive = (pLinearItem && pLinearItem->GetValue() != 0);
if(!pLinearItem)
pLinearItem = &rAttrs->Get(XATTR_FILLTRANSPARENCE);
- bool bLinearActive = (eStateLinear == SfxItemState::SET && static_cast<const XFillTransparenceItem*>(pLinearItem)->GetValue() != 0);
// transparence gradient
- const XGradient& rGradient = static_cast<const XFillFloatTransparenceItem*>(pGradientItem)->GetGradientValue();
+ const basegfx::BGradient& rGradient = pGradientItem->GetGradientValue();
css::awt::GradientStyle eXGS(rGradient.GetGradientStyle());
m_xLbTrgrGradientType->set_active(sal::static_int_cast< sal_Int32 >(eXGS));
m_xMtrTrgrAngle->set_value(rGradient.GetAngle().get() / 10, FieldUnit::DEGREE);
m_xMtrTrgrBorder->set_value(rGradient.GetBorder(), FieldUnit::PERCENT);
m_xMtrTrgrCenterX->set_value(rGradient.GetXOffset(), FieldUnit::PERCENT);
m_xMtrTrgrCenterY->set_value(rGradient.GetYOffset(), FieldUnit::PERCENT);
- m_xMtrTrgrStartValue->set_value(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(rGradient.GetStartColor().GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT);
- m_xMtrTrgrEndValue->set_value(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(rGradient.GetEndColor().GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT);
+ const Color aStart(rGradient.GetColorStops().front().getStopColor());
+ const Color aEnd(rGradient.GetColorStops().back().getStopColor());
+ m_xMtrTrgrStartValue->set_value(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(aStart.GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT);
+ m_xMtrTrgrEndValue->set_value(static_cast<sal_uInt16>(((static_cast<sal_uInt16>(aEnd.GetRed()) + 1) * 100) / 255), FieldUnit::PERCENT);
+
+ // MCGR: preserve ColorStops if given
+ // tdf#155901 We need offset of first and last stop, so include them.
+ if (rGradient.GetColorStops().size() >= 2)
+ maColorStops = rGradient.GetColorStops();
+ else
+ maColorStops.clear();
// linear transparence
- sal_uInt16 nTransp = static_cast<const XFillTransparenceItem*>(pLinearItem)->GetValue();
+ sal_uInt16 nTransp = pLinearItem->GetValue();
m_xMtrTransparent->set_value(bLinearActive ? nTransp : 50, FieldUnit::PERCENT);
ModifyTransparentHdl_Impl(*m_xMtrTransparent);
@@ -416,7 +420,7 @@ void SvxTransparenceTabPage::ChangesApplied()
void SvxTransparenceTabPage::ActivatePage(const SfxItemSet& rSet)
{
- const CntUInt16Item* pPageTypeItem = rSet.GetItem<CntUInt16Item>(SID_PAGE_TYPE, false);
+ const CntUInt16Item* pPageTypeItem = rSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
if (pPageTypeItem)
SetPageType(static_cast<PageType>(pPageTypeItem->GetValue()));
@@ -505,6 +509,29 @@ void SvxTransparenceTabPage::InvalidatePreview (bool bEnable)
}
}
+basegfx::BColorStops SvxTransparenceTabPage::createColorStops()
+{
+ basegfx::BColorStops aColorStops;
+ basegfx::BColor aStartBColor(m_xMtrTrgrStartValue->get_value(FieldUnit::PERCENT) / 100.0);
+ aStartBColor.clamp();
+ basegfx::BColor aEndBColor(m_xMtrTrgrEndValue->get_value(FieldUnit::PERCENT) / 100.0);
+ aEndBColor.clamp();
+
+ if(maColorStops.size() >= 2)
+ {
+ aColorStops = maColorStops;
+ aColorStops.front() = basegfx::BColorStop(maColorStops.front().getStopOffset(), aStartBColor);
+ aColorStops.back() = basegfx::BColorStop(maColorStops.back().getStopOffset(), aEndBColor);
+ }
+ else
+ {
+ aColorStops.emplace_back(0.0, aStartBColor);
+ aColorStops.emplace_back(1.0, aEndBColor);
+ }
+
+ return aColorStops;
+}
+
void SvxTransparenceTabPage::PageCreated(const SfxAllItemSet& aSet)
{
const SfxUInt16Item* pPageTypeItem = aSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
diff --git a/cui/source/tabpages/transfrm.cxx b/cui/source/tabpages/transfrm.cxx
index f9396cfd6ab4..4ccf16dfd822 100644
--- a/cui/source/tabpages/transfrm.cxx
+++ b/cui/source/tabpages/transfrm.cxx
@@ -34,13 +34,14 @@
#include <svtools/unitconv.hxx>
#include <transfrm.hxx>
-#include <svx/dlgutil.hxx>
#include <svx/anchorid.hxx>
#include <svl/rectitem.hxx>
#include <swpossizetabpage.hxx>
#include <vcl/canvastools.hxx>
#include <vcl/fieldvalues.hxx>
+#include <bitmaps.hlst>
+
// static ----------------------------------------------------------------
const WhichRangesContainer SvxPositionSizeTabPage::pPosSizeRanges(svl::Items<
@@ -70,7 +71,7 @@ const WhichRangesContainer SvxSlantTabPage::pSlantRanges(svl::Items<
SvxTransformTabDialog::SvxTransformTabDialog(weld::Window* pParent, const SfxItemSet* pAttr,
const SdrView* pSdrView, SvxAnchorIds nAnchorTypes)
- : SfxTabDialogController(pParent, "cui/ui/positionsizedialog.ui", "PositionAndSizeDialog", pAttr)
+ : SfxTabDialogController(pParent, u"cui/ui/positionsizedialog.ui"_ustr, u"PositionAndSizeDialog"_ustr, pAttr)
, pView(pSdrView)
, nAnchorCtrls(nAnchorTypes)
{
@@ -79,21 +80,21 @@ SvxTransformTabDialog::SvxTransformTabDialog(weld::Window* pParent, const SfxIte
//different positioning page in Writer
if(nAnchorCtrls & (SvxAnchorIds::Paragraph | SvxAnchorIds::Character | SvxAnchorIds::Page | SvxAnchorIds::Fly))
{
- AddTabPage("RID_SVXPAGE_SWPOSSIZE", SvxSwPosSizeTabPage::Create, SvxSwPosSizeTabPage::GetRanges);
- RemoveTabPage("RID_SVXPAGE_POSITION_SIZE");
+ AddTabPage(u"RID_SVXPAGE_SWPOSSIZE"_ustr, SvxSwPosSizeTabPage::Create, SvxSwPosSizeTabPage::GetRanges);
+ RemoveTabPage(u"RID_SVXPAGE_POSITION_SIZE"_ustr);
}
else
{
- AddTabPage("RID_SVXPAGE_POSITION_SIZE", SvxPositionSizeTabPage::Create, SvxPositionSizeTabPage::GetRanges);
- RemoveTabPage("RID_SVXPAGE_SWPOSSIZE");
+ AddTabPage(u"RID_SVXPAGE_POSITION_SIZE"_ustr, SvxPositionSizeTabPage::Create, SvxPositionSizeTabPage::GetRanges);
+ RemoveTabPage(u"RID_SVXPAGE_SWPOSSIZE"_ustr);
}
- AddTabPage("RID_SVXPAGE_ANGLE", SvxAngleTabPage::Create, SvxAngleTabPage::GetRanges);
- AddTabPage("RID_SVXPAGE_SLANT", SvxSlantTabPage::Create, SvxSlantTabPage::GetRanges);
+ AddTabPage(u"RID_SVXPAGE_ANGLE"_ustr, SvxAngleTabPage::Create, SvxAngleTabPage::GetRanges);
+ AddTabPage(u"RID_SVXPAGE_SLANT"_ustr, SvxSlantTabPage::Create, SvxSlantTabPage::GetRanges);
}
-void SvxTransformTabDialog::PageCreated(const OString& rId, SfxTabPage &rPage)
+void SvxTransformTabDialog::PageCreated(const OUString& rId, SfxTabPage &rPage)
{
if (rId == "RID_SVXPAGE_POSITION_SIZE")
{
@@ -148,22 +149,22 @@ void SvxTransformTabDialog::SetValidateFramePosLink(const Link<SvxSwFrameValidat
|*
\************************************************************************/
SvxAngleTabPage::SvxAngleTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SvxTabPage(pPage, pController, "cui/ui/rotationtabpage.ui", "Rotation", rInAttrs)
+ : SvxTabPage(pPage, pController, u"cui/ui/rotationtabpage.ui"_ustr, u"Rotation"_ustr, rInAttrs)
, pView(nullptr)
, eDlgUnit(FieldUnit::NONE)
, m_aCtlRect(this)
- , m_xFlPosition(m_xBuilder->weld_widget("FL_POSITION"))
- , m_xMtrPosX(m_xBuilder->weld_metric_spin_button("MTR_FLD_POS_X", FieldUnit::CM))
- , m_xMtrPosY(m_xBuilder->weld_metric_spin_button("MTR_FLD_POS_Y", FieldUnit::CM))
- , m_xCtlRect(new weld::CustomWeld(*m_xBuilder, "CTL_RECT", m_aCtlRect))
- , m_xFlAngle(m_xBuilder->weld_widget("FL_ANGLE"))
- , m_xNfAngle(m_xBuilder->weld_metric_spin_button("NF_ANGLE", FieldUnit::DEGREE))
+ , m_xFlPosition(m_xBuilder->weld_widget(u"FL_POSITION"_ustr))
+ , m_xMtrPosX(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_POS_X"_ustr, FieldUnit::CM))
+ , m_xMtrPosY(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_POS_Y"_ustr, FieldUnit::CM))
+ , m_xCtlRect(new weld::CustomWeld(*m_xBuilder, u"CTL_RECT"_ustr, m_aCtlRect))
+ , m_xFlAngle(m_xBuilder->weld_widget(u"FL_ANGLE"_ustr))
+ , m_xNfAngle(m_xBuilder->weld_metric_spin_button(u"NF_ANGLE"_ustr, FieldUnit::DEGREE))
, m_xCtlAngle(new svx::DialControl)
- , m_xCtlAngleWin(new weld::CustomWeld(*m_xBuilder, "CTL_ANGLE", *m_xCtlAngle))
+ , m_xCtlAngleWin(new weld::CustomWeld(*m_xBuilder, u"CTL_ANGLE"_ustr, *m_xCtlAngle))
{
// calculate PoolUnit
SfxItemPool* pPool = rInAttrs.GetPool();
- DBG_ASSERT( pPool, "no pool (!)" );
+ assert(pPool && "no pool (!)");
ePoolUnit = pPool->GetMetric(SID_ATTR_TRANSFORM_POS_X);
m_xCtlAngle->SetLinkedField(m_xNfAngle.get(), 2);
@@ -175,7 +176,7 @@ SvxAngleTabPage::~SvxAngleTabPage()
void SvxAngleTabPage::Construct()
{
- DBG_ASSERT(pView, "No valid view (!)");
+ assert(pView && "No valid view (!)");
eDlgUnit = GetModuleFieldUnit(GetItemSet());
SetFieldUnit(*m_xMtrPosX, eDlgUnit, true);
SetFieldUnit(*m_xMtrPosY, eDlgUnit, true);
@@ -207,7 +208,7 @@ void SvxAngleTabPage::Construct()
}
// take scale into account
- const Fraction aUIScale(pView->GetModel()->GetUIScale());
+ const Fraction aUIScale(pView->GetModel().GetUIScale());
TransfrmHelper::ScaleRect(maRange, aUIScale);
// take UI units into account
@@ -227,13 +228,13 @@ bool SvxAngleTabPage::FillItemSet(SfxItemSet* rSet)
if (m_xCtlAngle->IsValueModified() || m_xMtrPosX->get_value_changed_from_saved() || m_xMtrPosY->get_value_changed_from_saved())
{
- const double fUIScale(double(pView->GetModel()->GetUIScale()));
+ const double fUIScale(double(pView->GetModel().GetUIScale()));
const double fTmpX((GetCoreValue(*m_xMtrPosX, ePoolUnit) + maAnchor.getX()) * fUIScale);
const double fTmpY((GetCoreValue(*m_xMtrPosY, ePoolUnit) + maAnchor.getY()) * fUIScale);
- rSet->Put(SdrAngleItem(GetWhich(SID_ATTR_TRANSFORM_ANGLE), m_xCtlAngle->GetRotation()));
- rSet->Put(SfxInt32Item(GetWhich(SID_ATTR_TRANSFORM_ROT_X), basegfx::fround(fTmpX)));
- rSet->Put(SfxInt32Item(GetWhich(SID_ATTR_TRANSFORM_ROT_Y), basegfx::fround(fTmpY)));
+ rSet->Put(SdrAngleItem(SID_ATTR_TRANSFORM_ANGLE, m_xCtlAngle->GetRotation()));
+ rSet->Put(SfxInt32Item(SID_ATTR_TRANSFORM_ROT_X, basegfx::fround(fTmpX)));
+ rSet->Put(SfxInt32Item(SID_ATTR_TRANSFORM_ROT_Y, basegfx::fround(fTmpY)));
bModified = true;
}
@@ -244,7 +245,7 @@ bool SvxAngleTabPage::FillItemSet(SfxItemSet* rSet)
void SvxAngleTabPage::Reset(const SfxItemSet* rAttrs)
{
- const double fUIScale(double(pView->GetModel()->GetUIScale()));
+ const double fUIScale(double(pView->GetModel().GetUIScale()));
const SfxPoolItem* pItem = GetItem( *rAttrs, SID_ATTR_TRANSFORM_ROT_X );
if(pItem)
@@ -289,8 +290,7 @@ std::unique_ptr<SfxTabPage> SvxAngleTabPage::Create(weld::Container* pPage, weld
void SvxAngleTabPage::ActivatePage(const SfxItemSet& rSet)
{
- SfxBoolItem const * bPosProtect = nullptr;
- if(SfxItemState::SET == rSet.GetItemState( GetWhich(SID_ATTR_TRANSFORM_PROTECT_POS ) , false, reinterpret_cast<SfxPoolItem const **>(&bPosProtect) ))
+ if(SfxBoolItem const * bPosProtect = rSet.GetItemIfSet( SID_ATTR_TRANSFORM_PROTECT_POS, false ))
{
m_xFlPosition->set_sensitive(!bPosProtect->GetValue());
m_xFlAngle->set_sensitive(!bPosProtect->GetValue());
@@ -377,21 +377,21 @@ void SvxAngleTabPage::PointChanged(weld::DrawingArea* pDrawingArea, RectPoint eR
|*
\************************************************************************/
SvxSlantTabPage::SvxSlantTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SfxTabPage(pPage, pController, "cui/ui/slantcornertabpage.ui", "SlantAndCornerRadius", &rInAttrs)
+ : SfxTabPage(pPage, pController, u"cui/ui/slantcornertabpage.ui"_ustr, u"SlantAndCornerRadius"_ustr, &rInAttrs)
, pView(nullptr)
, eDlgUnit(FieldUnit::NONE)
- , m_xFlRadius(m_xBuilder->weld_widget("FL_RADIUS"))
- , m_xMtrRadius(m_xBuilder->weld_metric_spin_button("MTR_FLD_RADIUS", FieldUnit::CM))
- , m_xFlAngle(m_xBuilder->weld_widget("FL_SLANT"))
- , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("MTR_FLD_ANGLE", FieldUnit::DEGREE))
+ , m_xFlRadius(m_xBuilder->weld_widget(u"FL_RADIUS"_ustr))
+ , m_xMtrRadius(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_RADIUS"_ustr, FieldUnit::CM))
+ , m_xFlAngle(m_xBuilder->weld_widget(u"FL_SLANT"_ustr))
+ , m_xMtrAngle(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_ANGLE"_ustr, FieldUnit::DEGREE))
{
for (int i = 0; i < 2; ++i)
{
- m_aControlGroups[i] = m_xBuilder->weld_widget("controlgroups" + OString::number(i+1));
- m_aControlGroupX[i] = m_xBuilder->weld_widget("controlgroupx" + OString::number(i+1));
- m_aControlX[i] = m_xBuilder->weld_metric_spin_button("controlx" + OString::number(i+1), FieldUnit::CM);
- m_aControlGroupY[i] = m_xBuilder->weld_widget("controlgroupy" + OString::number(i+1));
- m_aControlY[i] = m_xBuilder->weld_metric_spin_button("controly" + OString::number(i+1), FieldUnit::CM);
+ m_aControlGroups[i] = m_xBuilder->weld_widget("controlgroups" + OUString::number(i+1));
+ m_aControlGroupX[i] = m_xBuilder->weld_widget("controlgroupx" + OUString::number(i+1));
+ m_aControlX[i] = m_xBuilder->weld_metric_spin_button("controlx" + OUString::number(i+1), FieldUnit::CM);
+ m_aControlGroupY[i] = m_xBuilder->weld_widget("controlgroupy" + OUString::number(i+1));
+ m_aControlY[i] = m_xBuilder->weld_metric_spin_button("controly" + OUString::number(i+1), FieldUnit::CM);
}
// this page needs ExchangeSupport
@@ -410,7 +410,7 @@ SvxSlantTabPage::~SvxSlantTabPage()
void SvxSlantTabPage::Construct()
{
// get the range
- DBG_ASSERT(pView, "no valid view (!)");
+ assert(pView && "no valid view (!)");
eDlgUnit = GetModuleFieldUnit(GetItemSet());
SetFieldUnit(*m_xMtrRadius, eDlgUnit, true);
for (int i = 0; i < 2; ++i)
@@ -431,7 +431,7 @@ bool SvxSlantTabPage::FillItemSet(SfxItemSet* rAttrs)
if (m_xMtrRadius->get_value_changed_from_saved())
{
- Fraction aUIScale = pView->GetModel()->GetUIScale();
+ Fraction aUIScale = pView->GetModel().GetUIScale();
tools::Long nTmp = tools::Long(GetCoreValue(*m_xMtrRadius, ePoolUnit) * aUIScale);
rAttrs->Put( makeSdrEckenradiusItem( nTmp ) );
@@ -553,7 +553,7 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
// corner radius
if(!pView->IsEdgeRadiusAllowed())
{
- m_xMtrRadius->set_text("");
+ m_xMtrRadius->set_text(u""_ustr);
m_xFlRadius->set_sensitive(false);
}
else
@@ -562,13 +562,13 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
if( pItem )
{
- const double fUIScale(double(pView->GetModel()->GetUIScale()));
+ const double fUIScale(double(pView->GetModel().GetUIScale()));
const double fTmp(static_cast<double>(static_cast<const SdrMetricItem*>(pItem)->GetValue()) / fUIScale);
SetMetricValue(*m_xMtrRadius, basegfx::fround(fTmp), ePoolUnit);
}
else
{
- m_xMtrRadius->set_text("");
+ m_xMtrRadius->set_text(u""_ustr);
}
}
@@ -577,7 +577,7 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
// slant: angle
if( !pView->IsShearAllowed() )
{
- m_xMtrAngle->set_text( "" );
+ m_xMtrAngle->set_text( u""_ustr );
m_xFlAngle->set_sensitive(false);
}
else
@@ -590,7 +590,7 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
}
else
{
- m_xMtrAngle->set_text("");
+ m_xMtrAngle->set_text(u""_ustr);
}
}
@@ -628,7 +628,7 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
*pView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj()));
//save geometry
- const bool bOrigModelChangeState = pView->GetModel()->IsChanged();
+ const bool bOrigModelChangeState = pView->GetModel().IsChanged();
SdrCustomShapeGeometryItem aInitialGeometry(rSdrObjCustomShape.GetMergedItem(SDRATTR_CUSTOMSHAPE_GEOMETRY));
EnhancedCustomShape2d aShape(rSdrObjCustomShape);
@@ -672,7 +672,7 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
//restore geometry
rSdrObjCustomShape.SetMergedItem(aInitialGeometry);
- pView->GetModel()->SetChanged(bOrigModelChangeState);
+ pView->GetModel().SetChanged(bOrigModelChangeState);
}
for (int i = 0; i < 2; ++i)
@@ -689,13 +689,11 @@ std::unique_ptr<SfxTabPage> SvxSlantTabPage::Create(weld::Container* pPage, weld
void SvxSlantTabPage::ActivatePage( const SfxItemSet& rSet )
{
- SfxBoolItem const * bPosProtect = nullptr;
- if(SfxItemState::SET == rSet.GetItemState( GetWhich(SID_ATTR_TRANSFORM_PROTECT_POS ) , false, reinterpret_cast<SfxPoolItem const **>(&bPosProtect) ))
+ if(SfxBoolItem const * bPosProtect = rSet.GetItemIfSet( SID_ATTR_TRANSFORM_PROTECT_POS, false ))
{
m_xFlAngle->set_sensitive(!bPosProtect->GetValue());
}
- SfxBoolItem const * bSizeProtect = nullptr;
- if(SfxItemState::SET == rSet.GetItemState( GetWhich(SID_ATTR_TRANSFORM_PROTECT_SIZE ) , false, reinterpret_cast<SfxPoolItem const **>(&bSizeProtect) ))
+ if(SfxBoolItem const * bSizeProtect = rSet.GetItemIfSet( SID_ATTR_TRANSFORM_PROTECT_SIZE, false ))
{
m_xFlAngle->set_sensitive(!bSizeProtect->GetValue());
}
@@ -719,7 +717,7 @@ DeactivateRC SvxSlantTabPage::DeactivatePage( SfxItemSet* _pSet )
|*
\************************************************************************/
SvxPositionSizeTabPage::SvxPositionSizeTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs)
- : SvxTabPage(pPage, pController, "cui/ui/possizetabpage.ui", "PositionAndSize", rInAttrs)
+ : SvxTabPage(pPage, pController, u"cui/ui/possizetabpage.ui"_ustr, u"PositionAndSize"_ustr, rInAttrs)
, mrOutAttrs(rInAttrs)
, mpView(nullptr)
, meDlgUnit(FieldUnit::NONE)
@@ -734,39 +732,54 @@ SvxPositionSizeTabPage::SvxPositionSizeTabPage(weld::Container* pPage, weld::Dia
, mfOldHeight(0.0)
, m_aCtlPos(this)
, m_aCtlSize(this)
- , m_xFlPosition(m_xBuilder->weld_widget("FL_POSITION"))
- , m_xMtrPosX(m_xBuilder->weld_metric_spin_button("MTR_FLD_POS_X", FieldUnit::CM))
- , m_xMtrPosY(m_xBuilder->weld_metric_spin_button("MTR_FLD_POS_Y", FieldUnit::CM))
- , m_xCtlPos(new weld::CustomWeld(*m_xBuilder, "CTL_POSRECT", m_aCtlPos))
- , m_xFlSize(m_xBuilder->weld_widget("FL_SIZE"))
- , m_xFtWidth(m_xBuilder->weld_label("FT_WIDTH"))
- , m_xMtrWidth(m_xBuilder->weld_metric_spin_button("MTR_FLD_WIDTH", FieldUnit::CM))
- , m_xFtHeight(m_xBuilder->weld_label("FT_HEIGHT"))
- , m_xMtrHeight(m_xBuilder->weld_metric_spin_button("MTR_FLD_HEIGHT", FieldUnit::CM))
- , m_xCbxScale(m_xBuilder->weld_check_button("CBX_SCALE"))
- , m_xCtlSize(new weld::CustomWeld(*m_xBuilder, "CTL_SIZERECT", m_aCtlSize))
- , m_xFlProtect(m_xBuilder->weld_widget("FL_PROTECT"))
- , m_xTsbPosProtect(m_xBuilder->weld_check_button("TSB_POSPROTECT"))
- , m_xTsbSizeProtect(m_xBuilder->weld_check_button("TSB_SIZEPROTECT"))
- , m_xFlAdjust(m_xBuilder->weld_widget("FL_ADJUST"))
- , m_xTsbAutoGrowWidth(m_xBuilder->weld_check_button("TSB_AUTOGROW_WIDTH"))
- , m_xTsbAutoGrowHeight(m_xBuilder->weld_check_button("TSB_AUTOGROW_HEIGHT"))
+ , m_aRatioTop(ConnectorType::Top)
+ , m_aRatioBottom(ConnectorType::Bottom)
+ , m_xFlPosition(m_xBuilder->weld_widget(u"FL_POSITION"_ustr))
+ , m_xMtrPosX(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_POS_X"_ustr, FieldUnit::CM))
+ , m_xMtrPosY(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_POS_Y"_ustr, FieldUnit::CM))
+ , m_xCtlPos(new weld::CustomWeld(*m_xBuilder, u"CTL_POSRECT"_ustr, m_aCtlPos))
+ , m_xFlSize(m_xBuilder->weld_widget(u"FL_SIZE"_ustr))
+ , m_xFtWidth(m_xBuilder->weld_label(u"FT_WIDTH"_ustr))
+ , m_xMtrWidth(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_WIDTH"_ustr, FieldUnit::CM))
+ , m_xFtHeight(m_xBuilder->weld_label(u"FT_HEIGHT"_ustr))
+ , m_xMtrHeight(m_xBuilder->weld_metric_spin_button(u"MTR_FLD_HEIGHT"_ustr, FieldUnit::CM))
+ , m_xCbxScale(m_xBuilder->weld_check_button(u"CBX_SCALE"_ustr))
+ , m_xCbxScaleImg(m_xBuilder->weld_image(u"imRatio"_ustr))
+ , m_xImgRatioTop(new weld::CustomWeld(*m_xBuilder, u"daRatioTop"_ustr, m_aRatioTop))
+ , m_xImgRatioBottom(new weld::CustomWeld(*m_xBuilder, u"daRatioBottom"_ustr, m_aRatioBottom))
+ , m_xCtlSize(new weld::CustomWeld(*m_xBuilder, u"CTL_SIZERECT"_ustr, m_aCtlSize))
+ , m_xFlProtect(m_xBuilder->weld_widget(u"FL_PROTECT"_ustr))
+ , m_xTsbPosProtect(m_xBuilder->weld_check_button(u"TSB_POSPROTECT"_ustr))
+ , m_xTsbSizeProtect(m_xBuilder->weld_check_button(u"TSB_SIZEPROTECT"_ustr))
+ , m_xFlAdjust(m_xBuilder->weld_widget(u"FL_ADJUST"_ustr))
+ , m_xTsbAutoGrowWidth(m_xBuilder->weld_check_button(u"TSB_AUTOGROW_WIDTH"_ustr))
+ , m_xTsbAutoGrowHeight(m_xBuilder->weld_check_button(u"TSB_AUTOGROW_HEIGHT"_ustr))
{
// this page needs ExchangeSupport
SetExchangeSupport();
// evaluate PoolUnit
SfxItemPool* pPool = mrOutAttrs.GetPool();
- DBG_ASSERT( pPool, "no pool (!)" );
+ assert(pPool && "no pool (!)");
mePoolUnit = pPool->GetMetric( SID_ATTR_TRANSFORM_POS_X );
m_aCtlPos.SetActualRP(RectPoint::LT);
m_aCtlSize.SetActualRP(RectPoint::LT);
meRP = RectPoint::LT; // see above
- m_xMtrWidth->connect_value_changed( LINK( this, SvxPositionSizeTabPage, ChangeWidthHdl ) );
- m_xMtrHeight->connect_value_changed( LINK( this, SvxPositionSizeTabPage, ChangeHeightHdl ) );
- m_xCbxScale->connect_toggled( LINK( this, SvxPositionSizeTabPage, ClickAutoHdl ) );
+ m_xMtrWidth->connect_value_changed(LINK(this, SvxPositionSizeTabPage, ChangeWidthHdl));
+ m_xMtrHeight->connect_value_changed(LINK(this, SvxPositionSizeTabPage, ChangeHeightHdl));
+
+ m_xCbxScale->connect_toggled(LINK(this, SvxPositionSizeTabPage, ClickAutoHdl));
+ // vertical alignment = fill makes the drawingarea expand the associated spinedits so we have to size it here
+ const sal_Int16 aHeight
+ = static_cast<sal_Int16>(std::max(int(m_xCbxScale->get_preferred_size().getHeight() / 2
+ - m_xFtWidth->get_preferred_size().getHeight() / 2),
+ 12));
+ const sal_Int16 aWidth
+ = static_cast<sal_Int16>(m_xCbxScale->get_preferred_size().getWidth() / 2);
+ m_xImgRatioTop->set_size_request(aWidth, aHeight);
+ m_xImgRatioBottom->set_size_request(aWidth, aHeight);
m_xFlAdjust->set_sensitive(false);
@@ -782,7 +795,7 @@ SvxPositionSizeTabPage::~SvxPositionSizeTabPage()
void SvxPositionSizeTabPage::Construct()
{
// get range and work area
- DBG_ASSERT( mpView, "no valid view (!)" );
+ assert(mpView && "no valid view (!)");
meDlgUnit = GetModuleFieldUnit( GetItemSet() );
SetFieldUnit( *m_xMtrPosX, meDlgUnit, true );
SetFieldUnit( *m_xMtrPosY, meDlgUnit, true );
@@ -826,8 +839,8 @@ void SvxPositionSizeTabPage::Construct()
if(maAnchor != basegfx::B2DPoint(pObj->GetAnchorPos().X(), pObj->GetAnchorPos().Y()))
{
// different anchor positions
- m_xMtrPosX->set_text("");
- m_xMtrPosY->set_text("");
+ m_xMtrPosX->set_text(u""_ustr);
+ m_xMtrPosY->set_text(u""_ustr);
mbPageDisabled = true;
return;
}
@@ -846,7 +859,7 @@ void SvxPositionSizeTabPage::Construct()
const SdrObjKind eKind(pObj->GetObjIdentifier());
if((pObj->GetObjInventor() == SdrInventor::Default) &&
- (OBJ_TEXT == eKind || OBJ_TITLETEXT == eKind || OBJ_OUTLINETEXT == eKind) &&
+ (SdrObjKind::Text == eKind || SdrObjKind::TitleText == eKind || SdrObjKind::OutlineText == eKind) &&
pObj->HasText())
{
mbAdjustDisabled = false;
@@ -856,14 +869,14 @@ void SvxPositionSizeTabPage::Construct()
m_xTsbAutoGrowWidth->connect_toggled( LINK( this, SvxPositionSizeTabPage, ClickSizeProtectHdl ) );
m_xTsbAutoGrowHeight->connect_toggled( LINK( this, SvxPositionSizeTabPage, ClickSizeProtectHdl ) );
- // is used as flag to evaluate if its selectable
+ // is used as flag to evaluate if it's selectable
mbIgnoreAutoGrowWidth = false;
mbIgnoreAutoGrowHeight = false;
}
}
// take scale into account
- const Fraction aUIScale(mpView->GetModel()->GetUIScale());
+ const Fraction aUIScale(mpView->GetModel().GetUIScale());
TransfrmHelper::ScaleRect( maWorkRange, aUIScale );
TransfrmHelper::ScaleRect( maRange, aUIScale );
@@ -894,7 +907,7 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
{
if (m_xMtrPosX->get_value_changed_from_saved() || m_xMtrPosY->get_value_changed_from_saved())
{
- const double fUIScale(double(mpView->GetModel()->GetUIScale()));
+ const double fUIScale(double(mpView->GetModel().GetUIScale()));
double fX((GetCoreValue( *m_xMtrPosX, mePoolUnit ) + maAnchor.getX()) * fUIScale);
double fY((GetCoreValue( *m_xMtrPosY, mePoolUnit ) + maAnchor.getY()) * fUIScale);
@@ -907,8 +920,8 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
// #101581# GetTopLeftPosition(...) needs coordinates after UI scaling, in real PagePositions
GetTopLeftPosition(fX, fY, maRange);
- rOutAttrs->Put(SfxInt32Item(GetWhich(SID_ATTR_TRANSFORM_POS_X), basegfx::fround(fX)));
- rOutAttrs->Put(SfxInt32Item(GetWhich(SID_ATTR_TRANSFORM_POS_Y), basegfx::fround(fY)));
+ rOutAttrs->Put(SfxInt32Item(SID_ATTR_TRANSFORM_POS_X, basegfx::fround(fX)));
+ rOutAttrs->Put(SfxInt32Item(SID_ATTR_TRANSFORM_POS_Y, basegfx::fround(fY)));
bModified = true;
}
@@ -922,7 +935,7 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
else
{
rOutAttrs->Put(
- SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_PROTECT_POS ),
+ SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_POS,
m_xTsbPosProtect->get_active() ) );
}
@@ -932,7 +945,7 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
if (m_xMtrWidth->get_value_changed_from_saved() || m_xMtrHeight->get_value_changed_from_saved())
{
- Fraction aUIScale = mpView->GetModel()->GetUIScale();
+ Fraction aUIScale = mpView->GetModel().GetUIScale();
// get Width
double nWidth = static_cast<double>(m_xMtrWidth->get_value(FieldUnit::MM_100TH));
@@ -947,9 +960,9 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
lHeight = static_cast<tools::Long>(m_xMtrHeight->denormalize( lHeight ));
// put Width & Height to itemset
- rOutAttrs->Put( SfxUInt32Item( GetWhich( SID_ATTR_TRANSFORM_WIDTH ), static_cast<sal_uInt32>(lWidth) ) );
- rOutAttrs->Put( SfxUInt32Item( GetWhich( SID_ATTR_TRANSFORM_HEIGHT ), static_cast<sal_uInt32>(lHeight) ) );
- rOutAttrs->Put( SfxUInt16Item( GetWhich( SID_ATTR_TRANSFORM_SIZE_POINT ), sal::static_int_cast< sal_uInt16 >( meRP ) ) );
+ rOutAttrs->Put( SfxUInt32Item( SID_ATTR_TRANSFORM_WIDTH, static_cast<sal_uInt32>(lWidth) ) );
+ rOutAttrs->Put( SfxUInt32Item( SID_ATTR_TRANSFORM_HEIGHT, static_cast<sal_uInt32>(lHeight) ) );
+ rOutAttrs->Put( SfxUInt16Item( SID_ATTR_TRANSFORM_SIZE_POINT, sal::static_int_cast< sal_uInt16 >( meRP ) ) );
bModified = true;
}
@@ -959,7 +972,7 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
rOutAttrs->InvalidateItem( SID_ATTR_TRANSFORM_PROTECT_SIZE );
else
rOutAttrs->Put(
- SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_PROTECT_SIZE ),
+ SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_SIZE,
m_xTsbSizeProtect->get_active() ) );
bModified = true;
}
@@ -972,7 +985,7 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
rOutAttrs->InvalidateItem( SID_ATTR_TRANSFORM_AUTOWIDTH );
else
rOutAttrs->Put(
- SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_AUTOWIDTH ),
+ SfxBoolItem( SID_ATTR_TRANSFORM_AUTOWIDTH,
m_xTsbAutoGrowWidth->get_active() ) );
}
bModified = true;
@@ -989,7 +1002,7 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
else
{
rOutAttrs->Put(
- SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_AUTOHEIGHT ),
+ SfxBoolItem( SID_ATTR_TRANSFORM_AUTOHEIGHT,
m_xTsbAutoGrowHeight->get_active() ) );
}
}
@@ -1002,7 +1015,7 @@ bool SvxPositionSizeTabPage::FillItemSet( SfxItemSet* rOutAttrs )
void SvxPositionSizeTabPage::Reset( const SfxItemSet* )
{
const SfxPoolItem* pItem;
- const double fUIScale(double(mpView->GetModel()->GetUIScale()));
+ const double fUIScale(double(mpView->GetModel().GetUIScale()));
if ( !mbPageDisabled )
{
@@ -1044,7 +1057,7 @@ void SvxPositionSizeTabPage::Reset( const SfxItemSet* )
double fTmpWidth((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldWidth), mePoolUnit, MapUnit::Map100thMM)) / fUIScale);
if (m_xMtrWidth->get_digits())
fTmpWidth *= pow(10.0, m_xMtrWidth->get_digits());
- m_xMtrWidth->set_value(static_cast<int>(fTmpWidth), FieldUnit::MM_100TH);
+ m_xMtrWidth->set_value(fTmpWidth, FieldUnit::MM_100TH);
}
{ // #i75273# set height
@@ -1053,7 +1066,7 @@ void SvxPositionSizeTabPage::Reset( const SfxItemSet* )
double fTmpHeight((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldHeight), mePoolUnit, MapUnit::Map100thMM)) / fUIScale);
if (m_xMtrHeight->get_digits())
fTmpHeight *= pow(10.0, m_xMtrHeight->get_digits());
- m_xMtrHeight->set_value(static_cast<int>(fTmpHeight), FieldUnit::MM_100TH);
+ m_xMtrHeight->set_value(fTmpHeight, FieldUnit::MM_100TH);
}
pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_PROTECT_SIZE );
@@ -1083,6 +1096,7 @@ void SvxPositionSizeTabPage::Reset( const SfxItemSet* )
// Is matching set?
OUString aStr = GetUserData();
m_xCbxScale->set_active(aStr.toInt32() != 0);
+ m_xCbxScaleImg->set_from_icon_name(m_xCbxScale->get_active() ? RID_SVXBMP_LOCKED : RID_SVXBMP_UNLOCKED);
m_xMtrPosX->save_value();
m_xMtrPosY->save_value();
@@ -1105,9 +1119,7 @@ std::unique_ptr<SfxTabPage> SvxPositionSizeTabPage::Create(weld::Container* pPag
void SvxPositionSizeTabPage::ActivatePage( const SfxItemSet& rSet )
{
- SfxRectangleItem const * pRectItem = nullptr;
-
- if( SfxItemState::SET == rSet.GetItemState( GetWhich( SID_ATTR_TRANSFORM_INTERN ) , false, reinterpret_cast<SfxPoolItem const **>(&pRectItem) ) )
+ if( SfxRectangleItem const * pRectItem = rSet.GetItemIfSet( SID_ATTR_TRANSFORM_INTERN, false ) )
{
{ // #i75273#
const ::tools::Rectangle aTempRect(pRectItem->GetValue());
@@ -1128,12 +1140,12 @@ DeactivateRC SvxPositionSizeTabPage::DeactivatePage( SfxItemSet* _pSet )
GetTopLeftPosition(fX, fY, maRange);
const ::tools::Rectangle aOutRectangle(
- basegfx::fround(fX), basegfx::fround(fY),
- basegfx::fround(fX + maRange.getWidth()), basegfx::fround(fY + maRange.getHeight()));
+ basegfx::fround<tools::Long>(fX), basegfx::fround<tools::Long>(fY),
+ basegfx::fround<tools::Long>(fX + maRange.getWidth()), basegfx::fround<tools::Long>(fY + maRange.getHeight()));
_pSet->Put(SfxRectangleItem(SID_ATTR_TRANSFORM_INTERN, aOutRectangle));
- _pSet->Put(SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_PROTECT_POS ),
+ _pSet->Put(SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_POS,
m_xTsbPosProtect->get_state() == TRISTATE_TRUE ));
- _pSet->Put(SfxBoolItem( GetWhich( SID_ATTR_TRANSFORM_PROTECT_SIZE ),
+ _pSet->Put(SfxBoolItem( SID_ATTR_TRANSFORM_PROTECT_SIZE,
m_xTsbSizeProtect->get_state() == TRISTATE_TRUE ));
FillItemSet(_pSet);
}
@@ -1271,7 +1283,7 @@ void SvxPositionSizeTabPage::SetMinMaxPosition()
}
}
- const double fMaxLong(static_cast<double>(vcl::ConvertValue( LONG_MAX, 0, MapUnit::Map100thMM, meDlgUnit ) - 1));
+ const double fMaxLong(vcl::ConvertValue(std::numeric_limits<sal_Int64>::max(), 0, MapUnit::Map100thMM, meDlgUnit) - 1);
fLeft = std::clamp(fLeft, -fMaxLong, fMaxLong);
fRight = std::clamp(fRight, -fMaxLong, fMaxLong);
fTop = std::clamp(fTop, - fMaxLong, fMaxLong);
@@ -1503,7 +1515,7 @@ IMPL_LINK_NOARG(SvxPositionSizeTabPage, ChangeWidthHdl, weld::MetricSpinButton&,
return;
sal_Int64 nHeight(basegfx::fround64((mfOldHeight * static_cast<double>(m_xMtrWidth->get_value(FieldUnit::NONE))) / mfOldWidth));
- int nMin, nMax;
+ sal_Int64 nMin, nMax;
m_xMtrHeight->get_range(nMin, nMax, FieldUnit::NONE);
if (nHeight <= nMax)
@@ -1526,7 +1538,7 @@ IMPL_LINK_NOARG(SvxPositionSizeTabPage, ChangeHeightHdl, weld::MetricSpinButton&
return;
sal_Int64 nWidth(basegfx::fround64((mfOldWidth * static_cast<double>(m_xMtrHeight->get_value(FieldUnit::NONE))) / mfOldHeight));
- int nMin, nMax;
+ sal_Int64 nMin, nMax;
m_xMtrWidth->get_range(nMin, nMax, FieldUnit::NONE);
if (nWidth <= nMax)
@@ -1550,6 +1562,7 @@ IMPL_LINK_NOARG(SvxPositionSizeTabPage, ClickSizeProtectHdl, weld::Toggleable&,
IMPL_LINK_NOARG(SvxPositionSizeTabPage, ClickAutoHdl, weld::Toggleable&, void)
{
+ m_xCbxScaleImg->set_from_icon_name(m_xCbxScale->get_active() ? RID_SVXBMP_LOCKED : RID_SVXBMP_UNLOCKED);
if (m_xCbxScale->get_active())
{
mfOldWidth = std::max( static_cast<double>(GetCoreValue( *m_xMtrWidth, mePoolUnit )), 1.0 );
@@ -1560,7 +1573,7 @@ IMPL_LINK_NOARG(SvxPositionSizeTabPage, ClickAutoHdl, weld::Toggleable&, void)
void SvxPositionSizeTabPage::FillUserData()
{
// matching is saved in the Ini-file
- OUString aStr = m_xCbxScale->get_active() ? OUString("1") : OUString("0");
+ OUString aStr = m_xCbxScale->get_active() ? u"1"_ustr : u"0"_ustr;
SetUserData( aStr );
}
diff --git a/cui/uiconfig/ui/aboutconfigdialog.ui b/cui/uiconfig/ui/aboutconfigdialog.ui
index 1dc4cbd080d6..65436404895f 100644
--- a/cui/uiconfig/ui/aboutconfigdialog.ui
+++ b/cui/uiconfig/ui/aboutconfigdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -16,31 +16,47 @@
<column type="gchararray"/>
<!-- column-name id -->
<column type="gchararray"/>
+ <!-- column-name weight1 -->
+ <column type="gint"/>
+ <!-- column-name weight2 -->
+ <column type="gint"/>
+ <!-- column-name weight3 -->
+ <column type="gint"/>
+ <!-- column-name weight4 -->
+ <column type="gint"/>
+ <!-- column-name sensitive1 -->
+ <column type="gboolean"/>
+ <!-- column-name sensitive2 -->
+ <column type="gboolean"/>
+ <!-- column-name sensitive3 -->
+ <column type="gboolean"/>
+ <!-- column-name sensitive4 -->
+ <column type="gboolean"/>
</columns>
</object>
<object class="GtkDialog" id="AboutConfig">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="aboutconfigdialog|AboutConfig">Expert Configuration</property>
<property name="modal">True</property>
- <property name="type_hint">normal</property>
- <property name="skip_taskbar_hint">True</property>
+ <property name="type-hint">normal</property>
+ <property name="skip-taskbar-hint">True</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="edit">
<property name="label" translatable="yes" context="aboutconfigdialog|edit">Edit</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="edit-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|edit">Opens a dialog to edit the preference.</property>
@@ -57,8 +73,8 @@
<object class="GtkButton" id="reset">
<property name="label" translatable="yes" context="aboutconfigdialog|reset">Reset</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="reset-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|reset">Undo changes done so far in this dialog.</property>
@@ -75,8 +91,8 @@
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -89,8 +105,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -103,8 +119,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -118,28 +134,28 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkEntry" id="searchEntry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="searchEntry-atkobject">
@@ -157,11 +173,11 @@
<object class="GtkButton" id="searchButton">
<property name="label" translatable="yes" context="aboutconfigdialog|searchButton">_Search</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="searchButton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|searchButton">Click to search your preference text in the Preferences tree.</property>
@@ -182,23 +198,38 @@
</packing>
</child>
<child>
+ <object class="GtkCheckButton" id="modifiedButton">
+ <property name="label" translatable="yes" context="aboutconfigdialog|modifiedButton">Show only modified preferences</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="preferences">
- <property name="width_request">-1</property>
+ <property name="width-request">-1</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="has-tooltip">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="search_column">1</property>
- <property name="enable_tree_lines">True</property>
+ <property name="search-column">1</property>
+ <property name="enable-tree-lines">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection1"/>
</child>
@@ -217,7 +248,9 @@
<child>
<object class="GtkCellRendererText" id="cellrenderertext2"/>
<attributes>
+ <attribute name="sensitive">10</attribute>
<attribute name="text">1</attribute>
+ <attribute name="weight">8</attribute>
</attributes>
</child>
</object>
@@ -231,7 +264,9 @@
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
+ <attribute name="sensitive">11</attribute>
<attribute name="text">2</attribute>
+ <attribute name="weight">8</attribute>
</attributes>
</child>
</object>
@@ -245,7 +280,9 @@
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<attributes>
+ <attribute name="sensitive">12</attribute>
<attribute name="text">3</attribute>
+ <attribute name="weight">8</attribute>
</attributes>
</child>
</object>
@@ -259,7 +296,9 @@
<child>
<object class="GtkCellRendererText" id="cellrenderertext5"/>
<attributes>
+ <attribute name="sensitive">13</attribute>
<attribute name="text">4</attribute>
+ <attribute name="weight">8</attribute>
</attributes>
</child>
</object>
@@ -294,8 +333,5 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
</object>
</interface>
diff --git a/cui/uiconfig/ui/aboutdialog.ui b/cui/uiconfig/ui/aboutdialog.ui
index 80e97505582c..83805a52ad18 100644
--- a/cui/uiconfig/ui/aboutdialog.ui
+++ b/cui/uiconfig/ui/aboutdialog.ui
@@ -96,7 +96,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
- <property name="margin-start">6</property>
<property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="lbVersion">
@@ -106,6 +105,9 @@
<property name="label" translatable="yes" context="aboutdialog|lbVersion">Version:</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="label-for" target="lbVersionString"/>
</accessibility>
@@ -122,6 +124,9 @@
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="aboutdialog|lbBuild">Build:</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="label-for" target="lbBuildString"/>
</accessibility>
@@ -138,6 +143,9 @@
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="aboutdialog|lbEnvironment">Environment:</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="label-for" target="lbEnvString"/>
</accessibility>
@@ -155,6 +163,9 @@
<property name="wrap">True</property>
<property name="max-width-chars">40</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="labelled-by" target="lbVersion"/>
</accessibility>
@@ -172,6 +183,9 @@
<property name="wrap">True</property>
<property name="max-width-chars">40</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="labelled-by" target="lbEnvironment"/>
</accessibility>
@@ -209,6 +223,9 @@
<property name="label" translatable="yes" context="aboutdialog|lbExtra">Misc:</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="label-for" target="lbMiscString"/>
</accessibility>
@@ -226,6 +243,9 @@
<property name="wrap">True</property>
<property name="max-width-chars">40</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="labelled-by" target="lbMisc"/>
</accessibility>
@@ -242,6 +262,9 @@
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="aboutdialog|lbLocale">Locale:</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="label-for" target="lbLocaleString"/>
</accessibility>
@@ -259,6 +282,9 @@
<property name="wrap">True</property>
<property name="max-width-chars">40</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="labelled-by" target="lbLocale"/>
</accessibility>
@@ -274,6 +300,9 @@
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="aboutdialog|lbUI">User Interface:</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="label-for" target="lbUIString"/>
</accessibility>
@@ -291,6 +320,9 @@
<property name="wrap">True</property>
<property name="max-width-chars">40</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
<accessibility>
<relation type="labelled-by" target="lbUI"/>
</accessibility>
@@ -334,6 +366,9 @@
<property name="wrap">True</property>
<property name="max-width-chars">60</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
</object>
<packing>
<property name="left-attach">1</property>
@@ -344,6 +379,7 @@
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="halign">center</property>
<property name="spacing">12</property>
<child>
<object class="GtkLinkButton" id="btnCredits">
diff --git a/cui/uiconfig/ui/accelconfigpage.ui b/cui/uiconfig/ui/accelconfigpage.ui
index 1e198099bfa8..4e5a06064a86 100644
--- a/cui/uiconfig/ui/accelconfigpage.ui
+++ b/cui/uiconfig/ui/accelconfigpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -32,6 +32,8 @@
<column type="gint"/>
<!-- column-name sensitive1 -->
<column type="gboolean"/>
+ <!-- column-name sensitive2 -->
+ <column type="gboolean"/>
</columns>
</object>
<object class="GtkTreeStore" id="liststore4">
@@ -42,48 +44,50 @@
<column type="gchararray"/>
</columns>
</object>
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="AccelConfigPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkFrame" id="frame4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="margin_top">6</property>
+ <property name="can-focus">True</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="shortcuts">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="accelconfigpage|tooltip|shortcuts">To quickly find a shortcut in this list, simply press the key combination.</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="accelconfigpage|tooltip|shortcuts">To quickly find a shortcut in this list, simply press the key combination.</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore3</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -114,7 +118,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="shortcuts-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|shortcuts">Lists the shortcut keys and the associated commands. To assign or modify the shortcut key for the command selected in the Function list, click a shortcut in this list, and then click Modify.
+ <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|shortcuts">Lists the shortcut keys and the associated commands. To assign or modify the shortcut key for the command selected in the Function list, click a shortcut in this list, and then click Assign.
To quickly find a shortcut in this list, simply press the key combination.</property>
</object>
</child>
@@ -125,43 +129,43 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<child type="label">
<object class="GtkLabel" id="label21">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="accelconfigpage|label21">Shortcu_t Keys</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">shortcuts</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">shortcuts</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box17">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox" id="box18">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkRadioButton" id="office">
<property name="label" translatable="yes" context="accelconfigpage|office">%PRODUCTNAME</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="office-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|office">Displays shortcut keys that are common to all %PRODUCTNAME applications.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|office">Displays shortcut keys that are common to all the office suite applications.</property>
</object>
</child>
</object>
@@ -175,14 +179,14 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<object class="GtkRadioButton" id="module">
<property name="label" translatable="yes" context="accelconfigpage|module">$(MODULE)</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">office</property>
<child internal-child="accessible">
<object class="AtkObject" id="module-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|module">Displays shortcut keys for the current %PRODUCTNAME application.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|module">Displays shortcut keys for the current office suite application.</property>
</object>
</child>
</object>
@@ -202,18 +206,18 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="change">
- <property name="label" translatable="yes" context="accelconfigpage|change">_Modify</property>
+ <property name="label" translatable="yes" context="accelconfigpage|change">_Assign</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="change-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|change">Assigns the key combination selected in the Shortcut keys list to the command selected in the Function list.</property>
@@ -230,8 +234,8 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="stock">_Delete</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="delete-atkobject">
@@ -249,9 +253,9 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<object class="GtkButton" id="load">
<property name="label" translatable="yes" context="accelconfigpage|load">_Load...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="load-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|load">Replaces the shortcut key configuration with one that was previously saved.</property>
@@ -269,9 +273,9 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<object class="GtkButton" id="save">
<property name="label" translatable="yes" context="accelconfigpage|save">_Save...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="save-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|save">Saves the current shortcut key configuration, so that you can load it later.</property>
@@ -289,12 +293,13 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<object class="GtkButton" id="reset">
<property name="label" translatable="yes" context="stock">_Reset</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="accelconfigpage|tooltip|reset">Unsaved modifications to shortcut keys are reverted.</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="reset-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|reset">Resets modified values back to the default values.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|reset">Revert any changes made to keyboard shortcuts to the assignments that were present when this dialog was opened.</property>
</object>
</child>
</object>
@@ -314,39 +319,39 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">6</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkEntry" id="searchEntry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="margin_bottom">5</property>
- <property name="placeholder_text" translatable="yes" context="accelconfigpage|searchEntry">Type to search</property>
+ <property name="can-focus">True</property>
+ <property name="margin-bottom">5</property>
<property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="accelconfigpage|searchEntry">Type to search</property>
<child internal-child="accessible">
<object class="AtkObject" id="searchEntry-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|searchEntry">Type here to search in the list of functions.</property>
@@ -360,72 +365,73 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
</packing>
</child>
<child>
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label23">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="accelconfigpage|label23">_Category</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">category</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">category</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label24">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="accelconfigpage|label24">_Function</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">function</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">function</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label25">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="accelconfigpage|label25">_Keys</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">keys</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">keys</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="category">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection1"/>
</child>
@@ -450,29 +456,29 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="function">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="has-tooltip">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore2</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection3"/>
</child>
@@ -490,35 +496,35 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
</child>
<child internal-child="accessible">
<object class="AtkObject" id="function-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|function">Select a function that you want to assign a shortcut key to, click a key combination in the Shortcut keys list, and then click Modify. If the selected function already has a shortcut key, it is displayed in the Keys list.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|function">Select a function that you want to assign a shortcut key to, click a key combination in the Shortcut keys list, and then click Assign. If the selected function already has a shortcut key, it is displayed in the Keys list.</property>
</object>
</child>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="keys">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore4</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection4"/>
</child>
@@ -543,8 +549,8 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -559,21 +565,21 @@ To quickly find a shortcut in this list, simply press the key combination.</prop
<child type="label">
<object class="GtkLabel" id="label22">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="accelconfigpage|label22">F_unctions</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">searchEntry</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">searchEntry</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child internal-child="accessible">
<object class="AtkObject" id="AccelConfigPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|AccelConfigPage">Assigns or edits the shortcut keys for %PRODUCTNAME commands, or %PRODUCTNAME Basic macros.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="accelconfigpage|extended_tip|AccelConfigPage">Assigns or edits the shortcut keys for the office suite commands, or Basic macros.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/acorexceptpage.ui b/cui/uiconfig/ui/acorexceptpage.ui
index 884d7e13521f..e5c681c3570e 100644
--- a/cui/uiconfig/ui/acorexceptpage.ui
+++ b/cui/uiconfig/ui/acorexceptpage.ui
@@ -53,7 +53,7 @@
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="abbrev-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="acorexceptpage|extended_tip|abbrev">Type an abbreviation followed by a period, and then click New. This prevents %PRODUCTNAME from automatically capitalizing the first letter of the word that comes after the period at the end of the abbreviation.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="acorexceptpage|extended_tip|abbrev">Type an abbreviation followed by a period, and then click New. This prevents automatic capitalization of the first letter of the word that comes after the period at the end of the abbreviation.</property>
</object>
</child>
</object>
@@ -244,7 +244,7 @@
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="double-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="acorexceptpage|extended_tip|double">Type the word or abbreviation that starts with two capital letters or a small initial that you do not want %PRODUCTNAME to change to one initial capital. For example, enter PC to prevent %PRODUCTNAME from changing PC to Pc, or enter eBook to prevent a change to Ebook.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="acorexceptpage|extended_tip|double">Type the word or abbreviation that starts with two capital letters or a small initial that you do not want automatically changed to one initial capital. For example, enter PC to prevent a change from PC to Pc, or enter eBook to prevent a change to Ebook.</property>
</object>
</child>
</object>
@@ -409,7 +409,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="AcorExceptPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="acorexceptpage|extended_tip|AcorExceptPage">Specify the abbreviations or letter combinations that you do not want %PRODUCTNAME to correct automatically.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="acorexceptpage|extended_tip|AcorExceptPage">Specify the abbreviations or letter combinations that you do not want corrected automatically.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/acorreplacepage.ui b/cui/uiconfig/ui/acorreplacepage.ui
index 48015f8222b7..0b428273a05e 100644
--- a/cui/uiconfig/ui/acorreplacepage.ui
+++ b/cui/uiconfig/ui/acorreplacepage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkListStore" id="liststore1">
@@ -12,19 +12,19 @@
<column type="gchararray"/>
</columns>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="AcorReplacePage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkBox" id="buttonbox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
@@ -32,8 +32,8 @@
<object class="GtkButton" id="new">
<property name="label" translatable="yes" context="stock">_New</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="new-atkobject">
@@ -51,10 +51,10 @@
<object class="GtkButton" id="replace">
<property name="label" translatable="yes" context="acorreplacepage|replace">_Replace</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="replace-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="acorreplacepage|extended_tip|replace">Adds or replaces an entry in the replacement table.</property>
@@ -71,8 +71,8 @@
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="stock">_Delete</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="delete-atkobject">
@@ -88,30 +88,30 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">external</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="tabview">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
- <property name="fixed_height_mode">True</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="fixed-height-mode">True</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection1"/>
</child>
@@ -150,18 +150,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="newtext">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="width_chars">25</property>
<property name="activates-default">True</property>
+ <property name="width-chars">25</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="newtext-atkobject">
@@ -170,17 +170,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="origtext">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="width_chars">25</property>
<property name="activates-default">True</property>
+ <property name="width-chars">25</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="origtext-atkobject">
@@ -189,52 +189,52 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="acorreplacepage|label1">Repla_ce</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">origtext</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">origtext</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="acorreplacepage|label2">_With</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">newtext</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">newtext</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="textonly">
<property name="label" translatable="yes" context="acorreplacepage|textonly">_Text only</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="textonly-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="acorreplacepage|extended_tip|textonly">Saves the entry in the With box without formatting. When the replacement is made, the text uses the same format as the document text.</property>
@@ -242,8 +242,8 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
diff --git a/cui/uiconfig/ui/additionsdialog.ui b/cui/uiconfig/ui/additionsdialog.ui
index aa8970c90e49..16476affe672 100644
--- a/cui/uiconfig/ui/additionsdialog.ui
+++ b/cui/uiconfig/ui/additionsdialog.ui
@@ -123,7 +123,7 @@
<property name="label" translatable="yes" context="additionsdialog|ProgressLabel">Progress Label</property>
<child internal-child="accessible">
<object class="AtkObject" id="labelProgress-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="additionsdialog|ProgressLabel">ProgressLabel</property>
+ <property name="AtkObject::accessible-name" translatable="yes" context="additionsdialog|ProgressLabel">Progress label</property>
<property name="AtkObject::accessible-description" translatable="yes" context="additionsdialog|ProgressLabel">This label shows that the progress of the operations such as loading extensions, not found, etc.</property>
<property name="AtkObject::accessible-role" translatable="no">static</property>
</object>
@@ -185,7 +185,7 @@
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="entrySearch-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="additionsdialog|searchEntry">searchEntry</property>
+ <property name="AtkObject::accessible-name" translatable="yes" context="additionsdialog|searchEntry">Search entry</property>
<property name="AtkObject::accessible-description" translatable="yes" context="additionsdialog|searchEntry">searchEntry</property>
</object>
</child>
diff --git a/cui/uiconfig/ui/additionsfragment.ui b/cui/uiconfig/ui/additionsfragment.ui
index 143c7c446c94..539b5875dd82 100644
--- a/cui/uiconfig/ui/additionsfragment.ui
+++ b/cui/uiconfig/ui/additionsfragment.ui
@@ -18,7 +18,7 @@
<property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="buttonShowMore-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="additionsDialog|buttonShowMore">ButtonShowMore</property>
+ <property name="AtkObject::accessible-name" translatable="yes" context="additionsDialog|buttonShowMore">Button "Show more"</property>
<property name="AtkObject::accessible-description" translatable="yes" context="additionsDialog|buttonShowMore">This button shows more extensions.</property>
</object>
</child>
diff --git a/cui/uiconfig/ui/applyautofmtpage.ui b/cui/uiconfig/ui/applyautofmtpage.ui
index 3f9241abda51..ad55019267f9 100644
--- a/cui/uiconfig/ui/applyautofmtpage.ui
+++ b/cui/uiconfig/ui/applyautofmtpage.ui
@@ -77,6 +77,9 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="applyautofmtpage|label1">[M]: Replace while modifying existing text</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
</object>
<packing>
<property name="left_attach">1</property>
@@ -89,6 +92,9 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="applyautofmtpage|label2">[T]: AutoCorrect while typing</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
</object>
<packing>
<property name="left_attach">1</property>
diff --git a/cui/uiconfig/ui/areatabpage.ui b/cui/uiconfig/ui/areatabpage.ui
index f1c671b804bc..157a7d0ce968 100644
--- a/cui/uiconfig/ui/areatabpage.ui
+++ b/cui/uiconfig/ui/areatabpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="AreaTabPage">
@@ -25,7 +25,6 @@
<property name="margin-top">3</property>
<property name="hexpand">True</property>
<property name="spacing">12</property>
- <property name="homogeneous">True</property>
<child>
<object class="GtkComboBoxText" id="tablelb">
<property name="can-focus">False</property>
@@ -155,6 +154,24 @@
<property name="position">6</property>
</packing>
</child>
+ <child>
+ <object class="GtkToggleButton" id="btnusebackground">
+ <property name="label" translatable="yes" context="areatabpage|btnusebackground">Use Background</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="btnusebackground-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="areatabpage|extended_tip|btnusebackground">Displays the underlying slide background.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/cui/uiconfig/ui/baselinksdialog.ui b/cui/uiconfig/ui/baselinksdialog.ui
index 14e46c20c82a..65c18215ebdb 100644
--- a/cui/uiconfig/ui/baselinksdialog.ui
+++ b/cui/uiconfig/ui/baselinksdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -17,28 +17,28 @@
</columns>
</object>
<object class="GtkDialog" id="BaseLinksDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="baselinksdialog|BaseLinksDialog">Edit Links</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -52,9 +52,9 @@
<object class="GtkButton" id="CHANGE_SOURCE">
<property name="label" translatable="yes" context="baselinksdialog|CHANGE_SOURCE">_Modify...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="CHANGE_SOURCE-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="baselinksdialog|extended_tip|CHANGE_SOURCE">Change the source file for the selected link.</property>
@@ -71,9 +71,9 @@
<object class="GtkButton" id="BREAK_LINK">
<property name="label" translatable="yes" context="baselinksdialog|BREAK_LINK">_Break Link</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="BREAK_LINK-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="baselinksdialog|extended_tip|BREAK_LINK">Breaks the link between the source file and the current document. The most recently updated contents of the source file are kept in the current document.</property>
@@ -90,9 +90,9 @@
<object class="GtkButton" id="UPDATE_NOW">
<property name="label" translatable="yes" context="baselinksdialog|UPDATE_NOW">_Update</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="UPDATE_NOW-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="baselinksdialog|extended_tip|UPDATE_NOW">Updates the selected link so that the most recently saved version of the linked file is displayed in the current document.</property>
@@ -109,10 +109,10 @@
<object class="GtkButton" id="close">
<property name="label" translatable="yes" context="stock">_Close</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -125,21 +125,21 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
@@ -147,20 +147,20 @@
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="TB_LINKS">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection1"/>
</child>
@@ -227,7 +227,7 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
@@ -239,75 +239,75 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="FILES2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="baselinksdialog|FILES2">Source file</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">TB_LINKS</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">TB_LINKS</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="SOURCE2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="baselinksdialog|SOURCE2">Element:</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="TYPE2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="baselinksdialog|TYPE2">Type:</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="UPDATE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="baselinksdialog|UPDATE">Update:</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box_hexpand">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLinkButton" id="FULL_FILE_NAME">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="focus_on_click">False</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="focus-on-click">False</property>
+ <property name="receives-default">True</property>
<property name="relief">none</property>
<property name="xalign">0</property>
</object>
@@ -319,47 +319,47 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FULL_SOURCE_NAME">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FULL_TYPE_NAME">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkRadioButton" id="AUTOMATIC">
<property name="label" translatable="yes" context="baselinksdialog|AUTOMATIC">_Automatic</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="AUTOMATIC-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="baselinksdialog|extended_tip|AUTOMATIC">Automatically updates the contents of the link when you open the file. Any changes made in the source file are then displayed in the file containing the link. Linked graphic files can only be updated manually.</property>
@@ -367,18 +367,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="MANUAL">
<property name="label" translatable="yes" context="baselinksdialog|MANUAL">Ma_nual</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">AUTOMATIC</property>
<child internal-child="accessible">
<object class="AtkObject" id="MANUAL-atkobject">
@@ -387,14 +387,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -417,9 +417,6 @@
<action-widget response="-11">help</action-widget>
<action-widget response="-7">close</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="BaseLinksDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="baselinksdialog|extended_tip|BaseLinksDialog">Lets you edit the properties of each link in the current document, including the path to the source file. This command is not available if the current document does not contain links to other files.</property>
diff --git a/cui/uiconfig/ui/borderpage.ui b/cui/uiconfig/ui/borderpage.ui
index 58d86f023745..c642c8d97b5f 100644
--- a/cui/uiconfig/ui/borderpage.ui
+++ b/cui/uiconfig/ui/borderpage.ui
@@ -209,7 +209,7 @@
<object class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes" context="borderpage|label16">_Width:</property>
+ <property name="label" translatable="yes" context="borderpage|label16">_Thickness:</property>
<property name="use-underline">True</property>
<property name="xalign">0</property>
<accessibility>
@@ -280,13 +280,13 @@
<property name="can-focus">False</property>
<property name="hexpand">False</property>
<items>
- <item translatable="yes" context="borderpage|linewidthlb">Hairline (0.05pt)</item>
- <item translatable="yes" context="borderpage|linewidthlb">Very thin (0.5pt)</item>
- <item translatable="yes" context="borderpage|linewidthlb">Thin (0.75pt)</item>
- <item translatable="yes" context="borderpage|linewidthlb">Medium (1.5pt)</item>
- <item translatable="yes" context="borderpage|linewidthlb">Thick (2.25pt)</item>
- <item translatable="yes" context="borderpage|linewidthlb">Extra thick (4.5pt)</item>
- <item translatable="yes" context="borderpage|linewidthlb">Custom</item>
+ <item id="0" translatable="yes" context="borderpage|linewidthlb">Hairline (0.05pt)</item>
+ <item id="1" translatable="yes" context="borderpage|linewidthlb">Very thin (0.5pt)</item>
+ <item id="2" translatable="yes" context="borderpage|linewidthlb">Thin (0.75pt)</item>
+ <item id="3" translatable="yes" context="borderpage|linewidthlb">Medium (1.5pt)</item>
+ <item id="4" translatable="yes" context="borderpage|linewidthlb">Thick (2.25pt)</item>
+ <item id="5" translatable="yes" context="borderpage|linewidthlb">Extra thick (4.5pt)</item>
+ <item id="6" translatable="yes" context="borderpage|linewidthlb">Custom</item>
</items>
<accessibility>
<relation type="labelled-by" target="label16"/>
diff --git a/cui/uiconfig/ui/bulletandposition.ui b/cui/uiconfig/ui/bulletandposition.ui
index 573babf76084..79deb396f93e 100644
--- a/cui/uiconfig/ui/bulletandposition.ui
+++ b/cui/uiconfig/ui/bulletandposition.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
@@ -188,6 +188,7 @@
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="levellb">
+ <property name="width-request">75</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
@@ -195,7 +196,6 @@
<property name="headers-clickable">False</property>
<property name="search-column">0</property>
<property name="show-expanders">False</property>
- <property name="width-request">75</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
@@ -396,7 +396,6 @@
<property name="receives-default">False</property>
<property name="xalign">0</property>
<property name="draw-indicator">True</property>
- <property name="label" translatable="no"></property>
<child>
<placeholder/>
</child>
@@ -543,7 +542,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=2 n-rows=2 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -644,7 +643,7 @@
</packing>
</child>
<child>
- <!-- n-columns=2 n-rows=2 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -683,48 +682,91 @@
<property name="top-attach">0</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=3 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">center</property>
+ <property name="column-spacing">3</property>
<child>
- <object class="GtkBox" id="keepratiobox">
+ <object class="GtkCheckButton" id="keepratio">
<property name="visible">True</property>
- <property name="can-focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="focus-on-click">False</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="bulletandposition|ratio_tip">Keep ratio</property>
<property name="valign">center</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkCheckButton" id="keepratio">
- <property name="label" translatable="yes" context="bulletandposition|keepratio">Keep ratio</property>
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="receives-default">False</property>
- <property name="use-underline">True</property>
- <property name="draw-indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="keepratio-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="bulletandposition|extended_tip|keepratio">Check this box to preserve the height to width ratio of the graphic bullet.</property>
- </object>
- </child>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="keepratio-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="bulletandposition|accessible_name|keepratio">Keep Ratio</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="bulletandposition|extended_tip|keepratio">Maintains proportions when you resize the selected object.</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="imRatio">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="pixbuf">res/unlocked.png</property>
+ </object>
+ <packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
+ <object class="GtkDrawingArea" id="daRatioBottom">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="daRatioTop">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
<placeholder/>
</child>
</object>
<packing>
- <property name="left-attach">0</property>
- <property name="top-attach">1</property>
- <property name="width">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
@@ -792,7 +834,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="activates-default">True</property>
- <property name="text" translatable="yes" context="bulletandposition|indentmf">0,00</property>
+ <property name="text" translatable="yes" context="bulletandposition|indentmf">0.00</property>
<property name="truncate-multiline">True</property>
<property name="adjustment">adjustment6</property>
<property name="digits">2</property>
@@ -812,7 +854,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="activates-default">True</property>
- <property name="text" translatable="yes" context="bulletandposition|numberingwidthmf">0,00</property>
+ <property name="text" translatable="yes" context="bulletandposition|numberingwidthmf">0.00</property>
<property name="truncate-multiline">True</property>
<property name="adjustment">adjustment7</property>
<property name="digits">2</property>
diff --git a/cui/uiconfig/ui/cellalignment.ui b/cui/uiconfig/ui/cellalignment.ui
index 82266296f3b4..448df0afb543 100644
--- a/cui/uiconfig/ui/cellalignment.ui
+++ b/cui/uiconfig/ui/cellalignment.ui
@@ -1,83 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustmentIndent">
<property name="upper">990</property>
- <property name="step_increment">10</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">10</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentSpinDegrees">
<property name="upper">359</property>
- <property name="step_increment">5</property>
+ <property name="step-increment">5</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=4 -->
<object class="GtkGrid" id="CellAlignPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkFrame" id="orientation">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid10">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="labelDegrees">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelDegrees">_Degrees:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinDegrees</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinDegrees</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelRefEdge">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelRefEdge">_Reference edge:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">references</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">references</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinDegrees">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentSpinDegrees</property>
<property name="wrap">True</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="spinDegrees-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|spinDegrees">Enter the rotation angle from 0 to 360 for the text in the selected cell(s).</property>
@@ -85,14 +85,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="references">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="halign">start</property>
<child internal-child="accessible">
@@ -102,52 +102,52 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkCheckButton" id="checkVertStack">
<property name="label" translatable="yes" context="cellalignment|checkVertStack">Vertically s_tacked</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkVertStack-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|checkVertStack">Aligns text vertically.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|checkVertStack">Text direction vertically.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkAsianMode">
<property name="label" translatable="yes" context="cellalignment|checkAsianMode">Asian layout _mode</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">12</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkAsianMode-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|checkAsianMode">Aligns Asian characters one below the other in the selected cell(s). If the cell contains more than one line of text, the lines are converted to text columns that are arranged from right to left. Western characters in the converted text are rotated 90 degrees to the right. Asian characters are not rotated.</property>
@@ -155,20 +155,20 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="dialcontrol">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="halign">center</property>
<property name="valign">center</property>
@@ -179,8 +179,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
<property name="height">2</property>
</packing>
</child>
@@ -189,7 +189,7 @@
<child type="label">
<object class="GtkLabel" id="labelTextOrient">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelTextOrient">Text Orientation</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -198,37 +198,37 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="properties">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=4 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">1</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="checkWrapTextAuto">
<property name="label" translatable="yes" context="cellalignment|checkWrapTextAuto">_Wrap text automatically</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkWrapTextAuto-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|checkWrapTextAuto">Wraps text onto another line at the cell border. The number of lines depends on the width of the cell.</property>
@@ -236,19 +236,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkShrinkFitCellSize">
<property name="label" translatable="yes" context="cellalignment|checkShrinkFitCellSize">_Shrink to fit cell size</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkShrinkFitCellSize-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|checkShrinkFitCellSize">Reduces the apparent size of the font so that the contents of the cell fit into the current cell width. You cannot apply this command to a cell that contains line breaks.</property>
@@ -256,21 +256,21 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkHyphActive">
<property name="label" translatable="yes" context="cellalignment|checkHyphActive">Hyphenation _active</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
<property name="margin-start">12</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkHyphActive-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|checkHyphActive">Enables word hyphenation for text wrapping to the next line.</property>
@@ -278,22 +278,22 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="boxDirection">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="LabelTxtDir">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|LabelTxtDir">Te_xt direction:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboTextDirBox</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboTextDirBox</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -305,7 +305,7 @@
<child>
<object class="GtkComboBoxText" id="comboTextDirBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
@@ -315,8 +315,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -324,7 +324,7 @@
<child type="label">
<object class="GtkLabel" id="labelProperties">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelProperties">Properties</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -333,32 +333,32 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="alignment">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkSpinButton" id="spinIndentFrom">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentIndent</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentIndent</property>
<child internal-child="accessible">
<object class="AtkObject" id="spinIndentFrom-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="cellalignment|extended_tip|spinIndentFrom">Indents from the left edge of the cell by the amount that you enter.</property>
@@ -366,56 +366,56 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelHorzAlign">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelHorzAlign">Hori_zontal:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboboxHorzAlign</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboboxHorzAlign</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelVertAlign">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelVertAlign">_Vertical:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboboxVertAlign</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboboxVertAlign</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelIndent">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelIndent">I_ndent:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinIndentFrom</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinIndentFrom</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboboxHorzAlign">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="cellalignment|liststoreHorzAlign">Default</item>
<item id="1" translatable="yes" context="cellalignment|liststoreHorzAlign">Left</item>
@@ -432,14 +432,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboboxVertAlign">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="cellalignment|liststoreVertAlign">Default</item>
<item id="1" translatable="yes" context="cellalignment|liststoreVertAlign">Top</item>
@@ -455,8 +455,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
@@ -470,7 +470,7 @@
<child type="label">
<object class="GtkLabel" id="LabelTextAlig">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|LabelTextAlig">Text Alignment</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -479,18 +479,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="boxStrings">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="labelSTR_BOTTOMLOCK">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelSTR_BOTTOMLOCK">Text Extension From Lower Cell Border</property>
</object>
<packing>
@@ -501,7 +501,7 @@
</child>
<child>
<object class="GtkLabel" id="labelSTR_TOPLOCK">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelSTR_TOPLOCK">Text Extension From Upper Cell Border</property>
</object>
<packing>
@@ -512,7 +512,7 @@
</child>
<child>
<object class="GtkLabel" id="labelSTR_CELLLOCK">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelSTR_CELLLOCK">Text Extension Inside Cell</property>
</object>
<packing>
@@ -523,7 +523,7 @@
</child>
<child>
<object class="GtkLabel" id="labelABCD">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="cellalignment|labelABCD">ABCD</property>
</object>
<packing>
@@ -534,8 +534,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/cui/uiconfig/ui/certdialog.ui b/cui/uiconfig/ui/certdialog.ui
index 8f3545e3176a..29b19e3d3742 100644
--- a/cui/uiconfig/ui/certdialog.ui
+++ b/cui/uiconfig/ui/certdialog.ui
@@ -44,7 +44,7 @@
<property name="use_underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="add-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="certdialog|extended_tip|add">Opens a file picker dialog to add a new Network Security Services Certificate directory to the list.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="certdialog|extended_tip|add">Opens the Select Path dialog to add a new Network Security Services Certificate directory to the list.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/charnamepage.ui b/cui/uiconfig/ui/charnamepage.ui
index 61f6a6be9289..8961ee260f8f 100644
--- a/cui/uiconfig/ui/charnamepage.ui
+++ b/cui/uiconfig/ui/charnamepage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -66,1094 +66,849 @@
<column type="GdkPixbuf"/>
</columns>
</object>
- <object class="GtkBox" id="CharNamePage">
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid" id="CharNamePage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="simple">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <object class="GtkNotebook" id="nbWestern">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="westfontinfo-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">6</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">3</property>
- </packing>
- </child>
+ <property name="show-border">False</property>
<child>
- <object class="GtkFrame" id="frame1">
+ <!-- n-columns=3 n-rows=6 -->
+ <object class="GtkGrid" id="gdWestern">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="lbWestFontname">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" context="charnamepage|westfontnameft-cjk">Name:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">edWestFontName</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbWestLanguage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|westlangft-cjk">Language:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbWestLanguage</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="namegrid">
+ <object class="GtkComboBox" id="cbWestLanguage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="margin-top">6</property>
+ <property name="model">liststore5</property>
+ <property name="has-entry">True</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
- <object class="GtkScrolledWindow">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="westfontnamelb-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="headers_clickable">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection1"/>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn1">
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext1"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
+ <object class="GtkCellRendererPixbuf" id="cellrenderertext5"/>
+ <attributes>
+ <attribute name="pixbuf">2</attribute>
+ </attributes>
</child>
- <child>
- <object class="GtkEntry" id="westfontname-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry">
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cbWestLanguage-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|westlanglb-cjk">Sets the language that the spellchecker uses for the selected text or the text that you type. Available language modules have a check mark in front of them.</property>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="westfontnameft-nocjk">
+ <child>
+ <object class="GtkLabel" id="lbWestStyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|westfontnameft-nocjk">Family:</property>
+ <property name="can-focus">False</property>
+ <property name="label" context="charnamepage|weststyleft-cjk">Style:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbWestStyle</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="stylegrid">
+ <object class="GtkComboBoxText" id="cbWestStyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="margin-top">6</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="width_request">42</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="weststylelb-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="model">liststore2</property>
- <property name="headers_visible">False</property>
- <property name="headers_clickable">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection2"/>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn2">
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext2"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- <child internal-child="accessible">
- <object class="AtkObject" id="weststylelb-nocjk-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|weststylelb-nocjk">Select the formatting that you want to apply.</property>
- </object>
- </child>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="has-entry">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry">
+ <property name="truncate-multiline">True</property>
+ <property name="can-focus">False</property>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
</child>
- <child>
- <object class="GtkEntry" id="weststyle-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cbWestStyle-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|weststylelb-cjk">Select the formatting that you want to apply.</property>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ <property name="width">2</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="weststyleft-nocjk">
+ <child>
+ <object class="GtkLabel" id="lbWestSize">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|weststyleft-nocjk">Style:</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|westsizeft-cjk">Size:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbWestSize</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="sizegrid">
+ <object class="GtkComboBoxText" id="cbWestSize">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="margin-top">6</property>
- <child>
- <object class="GtkScrolledWindow">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="vscrollbar_policy">always</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="westsizelb-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="model">liststore3</property>
- <property name="headers_visible">False</property>
- <property name="headers_clickable">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection3"/>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn3">
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext3"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- <child internal-child="accessible">
- <object class="AtkObject" id="westsizelb-nocjk-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|westsizelb-nocjk">Enter or select the font size that you want to apply. For scalable fonts, you can also enter decimal values.</property>
- </object>
- </child>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="has-entry">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry">
+ <property name="truncate-multiline">True</property>
+ <property name="can-focus">False</property>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
</child>
- <child>
- <object class="GtkEntry" id="westsize-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cbWestSize-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|westsizelb-cjk">Enter or select the font size that you want to apply. For scalable fonts, you can also enter decimal values.</property>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
</object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ <property name="width">2</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="westsizeft-nocjk">
+ <child>
+ <object class="GtkButton" id="btnWestFeatures">
+ <property name="label" translatable="yes" context="charnamepage|west_features_button-cjk">Features...</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|westsizeft-nocjk">Size:</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">end</property>
</object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">24</property>
<child>
- <object class="GtkBox" id="box1">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel" id="westlangft-nocjk">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes" context="charnamepage|westlangft-nocjk">Language:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">westlanglb-nocjk</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkComboBox" id="westlanglb-nocjk">
+ <object class="GtkTreeView" id="trWestFontName">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="model">liststore4</property>
- <property name="has_entry">True</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
- <child>
- <object class="GtkCellRendererPixbuf" id="cellrenderertext4"/>
- <attributes>
- <attribute name="pixbuf">2</attribute>
- </attributes>
+ <property name="vexpand">True</property>
+ <property name="model">liststore1</property>
+ <property name="headers-visible">False</property>
+ <property name="headers-clickable">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
</child>
- <child internal-child="entry">
- <object class="GtkEntry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
</child>
<child internal-child="accessible">
- <object class="AtkObject" id="westlanglb-nocjk-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|westlanglb-nocjk">Sets the language that the spellchecker uses for the selected text or the text that you type. Available language modules have a check mark in front of them.</property>
+ <object class="AtkObject" id="trWestFontName-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|westfontnamelb-nocjk">Select the font that you want to apply.</property>
</object>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="west_features_button-nocjk">
- <property name="label" translatable="yes" context="charnamepage|west_features_button-nocjk">Features...</property>
+ <object class="GtkEntry" id="edWestFontName">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">end</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ <property name="width">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="lbWestFontinfo">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">30</property>
+ <property name="max-width-chars">30</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="lbWestern">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|Tab_Western">Western</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">3</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <placeholder/>
+ </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkFrame" id="western">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <object class="GtkNotebook" id="nbCJKCTL">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="vexpand">True</property>
+ <property name="show-border">False</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid1">
+ <!-- n-columns=3 n-rows=6 -->
+ <object class="GtkGrid" id="gdCJK">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
- <property name="margin-start">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
<property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
- <object class="GtkLabel" id="westfontnameft-cjk">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|westfontnameft-cjk">Family:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">westfontnamelb-cjk</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="weststyleft-cjk">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|weststyleft-cjk">Style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">weststylelb-cjk</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="westsizeft-cjk">
+ <object class="GtkLabel" id="lbCJKSize">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|westsizeft-cjk">Size:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">westsizelb-cjk</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|eastsizeft">Size:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbCJKSize</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="westlangft-cjk">
+ <object class="GtkLabel" id="lbCJKLanguage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|westlangft-cjk">Language:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">westlanglb-cjk</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|eastlangft">Language:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbCJKLanguage</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="westfontnamelb-cjk">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <object class="GtkComboBoxText" id="weststylelb-cjk">
+ <object class="GtkComboBoxText" id="cbCJKStyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_entry">True</property>
+ <property name="can-focus">False</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">False</property>
</object>
</child>
<child internal-child="accessible">
- <object class="AtkObject" id="weststylelb-cjk-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|weststylelb-cjk">Select the formatting that you want to apply.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="westsizelb-cjk">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
- <child internal-child="accessible">
- <object class="AtkObject" id="westsizelb-cjk-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|westsizelb-cjk">Enter or select the font size that you want to apply. For scalable fonts, you can also enter decimal values.</property>
+ <object class="AtkObject" id="cbCJKStyle-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|eaststylelb">Select the formatting that you want to apply.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkComboBox" id="westlanglb-cjk">
+ <object class="GtkComboBoxText" id="cbCJKSize">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="model">liststore5</property>
- <property name="has_entry">True</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
- <child>
- <object class="GtkCellRendererPixbuf" id="cellrenderertext5"/>
- <attributes>
- <attribute name="pixbuf">2</attribute>
- </attributes>
- </child>
+ <property name="can-focus">False</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">False</property>
</object>
</child>
<child internal-child="accessible">
- <object class="AtkObject" id="westlanglb-cjk-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|westlanglb-cjk">Sets the language that the spellchecker uses for the selected text or the text that you type. Available language modules have a check mark in front of them.</property>
+ <object class="AtkObject" id="cbCJKSize-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|eastsizelb">Enter or select the font size that you want to apply. For scalable fonts, you can also enter decimal values.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <object class="GtkLabel" id="lbCJKStyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="westfontinfo-cjk">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">6</property>
- <property name="hexpand">True</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="west_features_button-cjk">
- <property name="label" translatable="yes" context="charnamepage|west_features_button-cjk">Features...</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">end</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">4</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|label4">Western Text Font</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="asian">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
- <child>
- <object class="GtkLabel" id="eastfontnameft">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|eastfontnameft">Family:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">eastfontnamelb</property>
+ <property name="can-focus">False</property>
+ <property name="label" context="charnamepage|eaststyleft">Style:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbCJKStyle</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="eaststyleft">
+ <object class="GtkButton" id="btnCJKFeatures">
+ <property name="label" translatable="yes" context="charnamepage|east_features_button">Features...</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|eaststyleft">Style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">eaststylelb</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="eastsizeft">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|eastsizeft">Size:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">eastsizelb</property>
- <property name="xalign">0</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="eastlangft">
+ <object class="GtkLabel" id="lbCJKFontname">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|eastlangft">Language:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">eastlanglb</property>
+ <property name="can-focus">False</property>
+ <property name="label" context="charnamepage|eastfontnameft">Name:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">edCJKFontName</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkComboBoxText" id="eastfontnamelb">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="eaststylelb">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
- <child internal-child="accessible">
- <object class="AtkObject" id="eaststylelb-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|eaststylelb">Select the formatting that you want to apply.</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="trCJKFontName">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore2</property>
+ <property name="headers-visible">False</property>
+ <property name="headers-clickable">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="trCJKFontName-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|trCJKFontName">Select the font that you want to apply.</property>
+ </object>
+ </child>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkComboBoxText" id="eastsizelb">
+ <object class="GtkEntry" id="edCJKFontName">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
- <child internal-child="accessible">
- <object class="AtkObject" id="eastsizelb-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|eastsizelb">Enter or select the font size that you want to apply. For scalable fonts, you can also enter decimal values.</property>
- </object>
- </child>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkComboBox" id="eastlanglb">
+ <object class="GtkComboBox" id="cbCJKLanguage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
<property name="model">liststore6</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext9"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
+ <property name="has-entry">True</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext6"/>
<attributes>
<attribute name="pixbuf">2</attribute>
</attributes>
</child>
+ <child internal-child="entry">
+ <object class="GtkEntry">
+ <property name="truncate-multiline">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
<child internal-child="accessible">
- <object class="AtkObject" id="eastlanglb-atkobject">
+ <object class="AtkObject" id="cbCJKLanguage-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|eastlanglb">Sets the language that the spellchecker uses for the selected text or the text that you type. Available language modules have a check mark in front of them.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <object class="GtkLabel" id="lbCJKFontinfo">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="eastfontinfo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="east_features_button">
- <property name="label" translatable="yes" context="charnamepage|east_features_button">Features...</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">end</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">30</property>
+ <property name="max-width-chars">30</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ <property name="width">2</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
- <child type="label">
- <object class="GtkLabel" id="label5">
+ <child type="tab">
+ <object class="GtkLabel" id="nbCJK">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|label5">Asian Text Font</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|Tab_Asian">Asian</property>
</object>
+ <packing>
+ <property name="tab-fill">False</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="ctl">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid3">
+ <!-- n-columns=3 n-rows=6 -->
+ <object class="GtkGrid" id="gdCTL">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
- <property name="margin-start">12</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
<property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
- <object class="GtkLabel" id="ctlfontnameft">
+ <object class="GtkLabel" id="lbCTLFontname">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|ctlfontnameft">Family:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">ctlfontnamelb</property>
+ <property name="can-focus">False</property>
+ <property name="label" context="charnamepage|ctlfontnameft">Name:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">edCTLFontName</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="ctlstyleft">
+ <object class="GtkLabel" id="lbCTLStyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no" context="charnamepage|ctlstyleft">Style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">ctlstylelb</property>
+ <property name="can-focus">False</property>
+ <property name="label" context="charnamepage|ctlstyleft">Style:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbCTLStyle</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="ctlsizeft">
+ <object class="GtkLabel" id="lbCTLSize">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="charnamepage|ctlsizeft">Size:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">ctlsizelb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbCTLSize</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="ctllangft">
+ <object class="GtkComboBoxText" id="cbCTLStyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|ctllangft">Language:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">ctllanglb</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="ctlfontnamelb">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="can-focus">False</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cbCTLStyle-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|ctlstylelb">Select the formatting that you want to apply.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkComboBoxText" id="ctlstylelb">
+ <object class="GtkComboBoxText" id="cbCTLSize">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_entry">True</property>
+ <property name="can-focus">False</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">False</property>
</object>
</child>
<child internal-child="accessible">
- <object class="AtkObject" id="ctlstylelb-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|ctlstylelb">Select the formatting that you want to apply.</property>
+ <object class="AtkObject" id="cbCTLSize-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|ctlsizelb">Enter or select the font size that you want to apply. For scalable fonts, you can also enter decimal values.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
- <object class="GtkComboBoxText" id="ctlsizelb">
+ <object class="GtkLabel" id="lbCTLLanguage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
- <child internal-child="accessible">
- <object class="AtkObject" id="ctlsizelb-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|ctlsizelb">Enter or select the font size that you want to apply. For scalable fonts, you can also enter decimal values.</property>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|ctllangft">Language:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cbCTLLanguage</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <object class="GtkComboBox" id="ctllanglb">
+ <object class="GtkButton" id="btnCTLFeatures">
+ <property name="label" translatable="yes" context="charnamepage|ctl_features_button">Features...</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">end</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="cbCTLLanguage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
<property name="model">liststore7</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext7"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
+ <property name="has-entry">True</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext11"/>
<attributes>
<attribute name="pixbuf">2</attribute>
</attributes>
</child>
+ <child internal-child="entry">
+ <object class="GtkEntry">
+ <property name="truncate-multiline">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
<child internal-child="accessible">
- <object class="AtkObject" id="ctllanglb-atkobject">
+ <object class="AtkObject" id="cbCTLLanguage-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|ctllanglb">Sets the language that the spellchecker uses for the selected text or the text that you type. Available language modules have a check mark in front of them.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkLabel" id="ctlfontinfo">
+ <object class="GtkTreeView" id="trCTLFontName">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">6</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="ctl_features_button">
- <property name="label" translatable="yes" context="charnamepage|ctl_features_button">Features...</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="halign">end</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore3</property>
+ <property name="headers-visible">False</property>
+ <property name="headers-clickable">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn3">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="trCTLFontName-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|trCTLFontName">Select the font that you want to apply.</property>
+ </object>
+ </child>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="edCTLFontName">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbCTLFontinfo">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">30</property>
+ <property name="max-width-chars">30</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ <property name="width">2</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="label6">
+ <child type="tab">
+ <object class="GtkLabel" id="nbCTL">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="charnamepage|label6">CTL Font</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="charnamepage|Tab_Complex">Complex</property>
</object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab-fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <placeholder/>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkScrolledWindow">
+ <object class="GtkScrolledWindow" id="swPreview">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
+ <property name="valign">end</property>
<property name="margin-start">12</property>
- <property name="margin-top">6</property>
<property name="margin-end">12</property>
- <property name="valign">end</property>
+ <property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkViewport" id="vpPreview">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="preview">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="preview-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="charnamepage|preview-atkobject">Preview</property>
@@ -1165,48 +920,10 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="width">2</property>
</packing>
</child>
- <child internal-child="accessible">
- <object class="AtkObject" id="CharNamePage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="charnamepage|extended_tip|CharNamePage">Specify the formatting and the font that you want to apply.</property>
- </object>
- </child>
- </object>
- <object class="GtkSizeGroup" id="sizegroup1">
- <property name="ignore_hidden">True</property>
- <widgets>
- <widget name="westlanglb-cjk"/>
- <widget name="eastlanglb"/>
- <widget name="ctllanglb"/>
- </widgets>
- </object>
- <object class="GtkSizeGroup" id="sizegroup2">
- <property name="ignore_hidden">True</property>
- <widgets>
- <widget name="westfontnameft-cjk"/>
- <widget name="eastfontnameft"/>
- <widget name="ctlfontnameft"/>
- </widgets>
- </object>
- <object class="GtkSizeGroup" id="sizegroup3">
- <property name="ignore_hidden">True</property>
- <widgets>
- <widget name="weststylelb-cjk"/>
- <widget name="eaststylelb"/>
- <widget name="ctlstylelb"/>
- </widgets>
- </object>
- <object class="GtkSizeGroup" id="sizegroup4">
- <property name="ignore_hidden">True</property>
- <widgets>
- <widget name="westsizelb-cjk"/>
- <widget name="eastsizelb"/>
- <widget name="ctlsizelb"/>
- </widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/colorconfigwin.ui b/cui/uiconfig/ui/colorconfigwin.ui
index d640b0fe544c..d81a14520b66 100644
--- a/cui/uiconfig/ui/colorconfigwin.ui
+++ b/cui/uiconfig/ui/colorconfigwin.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="ColorConfigWindow">
@@ -8,6 +8,7 @@
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
@@ -22,18 +23,18 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="doccolor">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|doccolor">Document background</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">doccolor_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -65,7 +66,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="docboundaries_lb"/>
@@ -106,11 +108,11 @@
<object class="GtkLabel" id="appback">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|appback">Application background</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">appback_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -141,7 +143,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="objboundaries_lb"/>
@@ -184,7 +187,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="tblboundaries_lb"/>
@@ -225,11 +229,11 @@
<object class="GtkLabel" id="font">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|font">Font color</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">font_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -260,7 +264,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="unvisitedlinks_lb"/>
@@ -303,7 +308,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="visitedlinks_lb"/>
@@ -344,11 +350,11 @@
<object class="GtkLabel" id="autospellcheck">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
- <property name="label" translatable="yes" context="colorconfigwin|autospellcheck">AutoSpellcheck</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="label" translatable="yes" context="colorconfigwin|autospellcheck">Spelling mistakes</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">autospellcheck_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -377,11 +383,11 @@
<object class="GtkLabel" id="smarttags">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|smarttags">Smart Tags</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">smarttags_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -412,7 +418,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="shadows_lb"/>
@@ -475,23 +482,23 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=2 n-rows=8 -->
+ <!-- n-columns=2 n-rows=9 -->
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="writergrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|writergrid">Grid</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">writergrid_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -523,7 +530,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="field_lb"/>
@@ -566,7 +574,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="index_lb"/>
@@ -607,15 +616,15 @@
<object class="GtkLabel" id="script">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|script">Script Indicator</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">script_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">3</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
@@ -633,7 +642,7 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">3</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
@@ -642,7 +651,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="section_lb"/>
@@ -650,7 +660,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
@@ -676,22 +686,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="hdft">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|hdft">Headers and Footer delimiter</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">hdft_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">5</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
@@ -709,22 +719,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">5</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="pagebreak">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|pagebreak">Page and column breaks</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">pagebreak_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">6</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
@@ -742,22 +752,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">6</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="direct">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|direct">Direct Cursor</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">direct_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">7</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
@@ -775,7 +785,40 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">7</property>
+ <property name="top-attach">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="grammarcheck">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="label" translatable="yes" context="colorconfigwin|autospellcheck">Grammar mistakes</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">grammarcheck_lb</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="grammarcheck_lb">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
+ <property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -804,23 +847,23 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=2 n-rows=12 -->
+ <!-- n-columns=2 n-rows=16 -->
<object class="GtkGrid" id="gdCalc">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="calcgrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|calcgrid">Grid lines</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">calcgrid_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -850,15 +893,15 @@
<object class="GtkLabel" id="brk">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|brk">Page breaks</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">brk_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
@@ -876,22 +919,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="brkmanual">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|brkmanual">Manual page breaks</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">brkmanual_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
@@ -909,22 +952,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="brkauto">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|brkauto">Automatic page breaks</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">brkauto_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">3</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
@@ -942,22 +985,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">3</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="det">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|det">Detective</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">det_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
@@ -975,7 +1018,7 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
@@ -993,22 +1036,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">5</property>
+ <property name="top-attach">9</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="deterror">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|deterror">Detective error</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">deterror_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">5</property>
+ <property name="top-attach">9</property>
</packing>
</child>
<child>
@@ -1026,22 +1069,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">6</property>
+ <property name="top-attach">10</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ref">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|ref">References</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">ref_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">6</property>
+ <property name="top-attach">10</property>
</packing>
</child>
<child>
@@ -1059,22 +1102,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">7</property>
+ <property name="top-attach">11</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="notes">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|notes">Notes background</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">notes_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">7</property>
+ <property name="top-attach">11</property>
</packing>
</child>
<child>
@@ -1092,22 +1135,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">8</property>
+ <property name="top-attach">12</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="values">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|values">Values</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">values_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">8</property>
+ <property name="top-attach">12</property>
</packing>
</child>
<child>
@@ -1125,22 +1168,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">9</property>
+ <property name="top-attach">13</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="formulas">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|formulas">Formulas</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">formulas_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">9</property>
+ <property name="top-attach">13</property>
</packing>
</child>
<child>
@@ -1158,22 +1201,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">10</property>
+ <property name="top-attach">14</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="text">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|text">Text</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">text_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">10</property>
+ <property name="top-attach">14</property>
</packing>
</child>
<child>
@@ -1191,22 +1234,187 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">11</property>
+ <property name="top-attach">15</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="protectedcells">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|protectedcells">Protected cells background</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">protectedcells_lb</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">15</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="hiddencolrow">
+ <property name="label" translatable="yes" context="colorconfigwin|hiddencolrow">Hidden columns/rows</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="draw-indicator">True</property>
+ <accessibility>
+ <relation type="label-for" target="hiddencolrow_lb"/>
+ </accessibility>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="hiddencolrow_lb">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
<property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
+ <accessibility>
+ <relation type="labelled-by" target="hiddencolrow"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="hiddencolrow_lb-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="colorconfigwin|hiddencolrow_lb">Hidden row/column color</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="textoverflow">
+ <property name="label" translatable="yes" context="colorconfigwin|textoverflow">Text overflow</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="draw-indicator">True</property>
+ <accessibility>
+ <relation type="label-for" target="textoverflow_lb"/>
+ </accessibility>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">11</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="textoverflow_lb">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
+ <property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
+ <accessibility>
+ <relation type="labelled-by" target="textoverflow"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="textoverflow_lb-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="colorconfigwin|textoverflow_lb">Text overflow color</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="comments_lb">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
+ <property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="comments_lb-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="colorconfigwin|comments_lb">Comments color</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="comments">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="label" translatable="yes" context="colorconfigwin|comments">Comments</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comments_lb</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="calccellfocus">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="label" translatable="yes" context="colorconfigwin|calccellfocus">Cell Focus</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">calccellfocus_lb</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="calccellfocus_lb">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="calccellfocus_lb-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="colorconfigwin|calccellfocus_lb">Cell Focus color</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -1240,7 +1448,7 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
@@ -1266,11 +1474,11 @@
<object class="GtkLabel" id="drawgrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|drawgrid">Grid</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">drawgrid_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1303,12 +1511,12 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=2 n-rows=7 -->
+ <!-- n-columns=2 n-rows=8 -->
<object class="GtkGrid" id="gdBasic">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
@@ -1327,22 +1535,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="basicid">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|basicid">Identifier</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">basicid_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
@@ -1360,22 +1568,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="basiccomment">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|basiccomment">Comment</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">basiccomment_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
@@ -1393,22 +1601,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="basicnumber">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|basicnumber">Number</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">basicnumber_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
@@ -1426,22 +1634,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">3</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="basicstring">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|basicstring">String</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">basicstring_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">3</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
@@ -1459,22 +1667,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="basicop">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|basicop">Operator</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">basicop_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
@@ -1492,22 +1700,22 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">5</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="basickeyword">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|basickeyword">Reserved expression</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">basickeyword_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">5</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
@@ -1525,22 +1733,55 @@
</object>
<packing>
<property name="left-attach">1</property>
- <property name="top-attach">6</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="error">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|error">Error</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">error_lb</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="basiceditor_lb">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
<property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="basiceditor">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="label" translatable="yes" context="colorconfigwin|basiceditor">Editor background</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">basiceditor_lb</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">6</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -1574,7 +1815,7 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
@@ -1600,11 +1841,11 @@
<object class="GtkLabel" id="sqlid">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sqlid">Identifier</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sqlid_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1633,11 +1874,11 @@
<object class="GtkLabel" id="sqlnumber">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sqlnumber">Number</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sqlnumber_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1666,11 +1907,11 @@
<object class="GtkLabel" id="sqlstring">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sqlstring">String</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sqlstring_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1699,11 +1940,11 @@
<object class="GtkLabel" id="sqlop">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sqlop">Operator</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sqlop_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1732,11 +1973,11 @@
<object class="GtkLabel" id="sqlkeyword">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sqlkeyword">Keyword</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sqlkeyword_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1765,11 +2006,11 @@
<object class="GtkLabel" id="sqlparam">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sqlparam">Parameter</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sqlparam_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1798,11 +2039,11 @@
<object class="GtkLabel" id="sqlcomment">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sqlcomment">Comment</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sqlcomment_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1840,7 +2081,7 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
@@ -1866,11 +2107,11 @@
<object class="GtkLabel" id="sgml">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|sgml">SGML syntax highlighting</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">sgml_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1881,11 +2122,11 @@
<object class="GtkLabel" id="htmlcomment">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|htmlcomment">Comment highlighting</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">htmlcomment_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1914,11 +2155,11 @@
<object class="GtkLabel" id="htmlkeyword">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|htmlkeyword">Keyword highlighting</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">htmlkeyword_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
@@ -1947,11 +2188,11 @@
<object class="GtkLabel" id="unknown">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="label" translatable="yes" context="colorconfigwin|unknown">Text</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">unknown_lb</property>
- <property name="xalign">0</property>
</object>
<packing>
<property name="left-attach">0</property>
diff --git a/cui/uiconfig/ui/colorfragment.ui b/cui/uiconfig/ui/colorfragment.ui
index e127bf52d58a..75fec68c8005 100644
--- a/cui/uiconfig/ui/colorfragment.ui
+++ b/cui/uiconfig/ui/colorfragment.ui
@@ -7,14 +7,15 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">6</property>
- <property name="margin-end">6</property>
+ <property name="margin-end">12</property>
<property name="column-spacing">6</property>
<property name="row-homogeneous">True</property>
<child>
<object class="GtkLabel" id="label">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-start">6</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">button</property>
<property name="xalign">0</property>
diff --git a/cui/uiconfig/ui/colorpage.ui b/cui/uiconfig/ui/colorpage.ui
index ac680de34ef0..db84f206a57d 100644
--- a/cui/uiconfig/ui/colorpage.ui
+++ b/cui/uiconfig/ui/colorpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
@@ -37,6 +37,11 @@
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">cmd/sc_additionsdialog.png</property>
+ </object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -105,9 +110,8 @@
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes" context="colorpage|btnMoreColors">Add color palettes via extension</property>
- <child>
- <placeholder/>
- </child>
+ <property name="image">image1</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
<property name="expand">False</property>
diff --git a/cui/uiconfig/ui/colorpickerdialog.ui b/cui/uiconfig/ui/colorpickerdialog.ui
index 7a1ec30ad9a8..6b8485666dc6 100644
--- a/cui/uiconfig/ui/colorpickerdialog.ui
+++ b/cui/uiconfig/ui/colorpickerdialog.ui
@@ -1,87 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustmentblue">
<property name="upper">255</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentbright">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentcyan">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentgreen">
<property name="upper">255</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmenthue">
<property name="upper">360</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentkey">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentmag">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentred">
<property name="upper">255</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentsat">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentyellow">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkDialog" id="ColorPicker">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="colorpickerdialog|ColorPicker">Pick a Color</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -94,8 +94,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -108,8 +108,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -123,35 +123,35 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">2</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">2</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child>
<object class="GtkDrawingArea" id="preview">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="preview-atkobject">
@@ -167,7 +167,7 @@
</child>
<child>
<object class="GtkDrawingArea" id="previous">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="previous-atkobject">
@@ -183,14 +183,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="colorField">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
@@ -201,14 +201,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="colorSlider">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
@@ -218,32 +218,32 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="rightImage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="icon_name">res/colorsliderright.png</property>
+ <property name="icon-name">res/colorsliderright.png</property>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="leftImage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="icon_name">res/colorsliderleft.png</property>
+ <property name="icon-name">res/colorsliderleft.png</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
@@ -265,7 +265,7 @@
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
@@ -273,30 +273,30 @@
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkRadioButton" id="redRadiobutton">
<property name="label" translatable="yes" context="colorpickerdialog|redRadiobutton">_Red:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">hueRadiobutton</property>
<child internal-child="accessible">
<object class="AtkObject" id="redRadiobutton-atkobject">
@@ -305,18 +305,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="greenRadiobutton">
<property name="label" translatable="yes" context="colorpickerdialog|greenRadiobutton">_Green:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">hueRadiobutton</property>
<child internal-child="accessible">
<object class="AtkObject" id="greenRadiobutton-atkobject">
@@ -325,18 +325,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="blueRadiobutton">
<property name="label" translatable="yes" context="colorpickerdialog|blueRadiobutton">_Blue:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">hueRadiobutton</property>
<child internal-child="accessible">
<object class="AtkObject" id="blueRadiobutton-atkobject">
@@ -345,18 +345,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="redSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentred</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentred</property>
<child internal-child="accessible">
<object class="AtkObject" id="redSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | redSpinbutton">Set the Red color value directly. Allowed values are 0 to 255.</property>
@@ -364,18 +364,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="greenSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentgreen</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentgreen</property>
<child internal-child="accessible">
<object class="AtkObject" id="greenSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | greenSpinbutton">Set the Green color value directly. Allowed values are 0 to 255.</property>
@@ -383,18 +383,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="blueSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentblue</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentblue</property>
<child internal-child="accessible">
<object class="AtkObject" id="blueSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | blueSpinbutton">Set the Blue color value directly. Allowed values are 0 to 255.</property>
@@ -402,30 +402,30 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="colorpickerdialog|label2">Hex _#:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">hexEntry</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">hexEntry</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="hexEntry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="hexEntry-atkobject">
@@ -434,8 +434,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -443,7 +443,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="colorpickerdialog|label1">RGB</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -460,31 +460,31 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkRadioButton" id="hueRadiobutton">
<property name="label" translatable="yes" context="colorpickerdialog|hueRadiobutton">H_ue:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="hueRadiobutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | hueRadiobutton">Sets the Hue component modifiable on the vertical color slider, and the Saturation and Brightness components in the two-dimensional color picker field. Values are expressed in degrees from 0 to 359.</property>
@@ -492,18 +492,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="satRadiobutton">
<property name="label" translatable="yes" context="colorpickerdialog|satRadiobutton">_Saturation:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">hueRadiobutton</property>
<child internal-child="accessible">
<object class="AtkObject" id="satRadiobutton-atkobject">
@@ -512,18 +512,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="brightRadiobutton">
<property name="label" translatable="yes" context="colorpickerdialog|brightRadiobutton">Bright_ness:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">hueRadiobutton</property>
<child internal-child="accessible">
<object class="AtkObject" id="brightRadiobutton-atkobject">
@@ -532,18 +532,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="hueSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmenthue</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmenthue</property>
<child internal-child="accessible">
<object class="AtkObject" id="hueSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | hueSpinbutton">Set the Hue directly in the HSB color model. Values are expressed in degrees from 0 to 359.</property>
@@ -551,18 +551,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="satSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentsat</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentsat</property>
<child internal-child="accessible">
<object class="AtkObject" id="satSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | satSpinbutton">Set the Saturation directly in the HSB color model. Values are expressed in percent (0 to 100).</property>
@@ -570,18 +570,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="brightSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentbright</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentbright</property>
<child internal-child="accessible">
<object class="AtkObject" id="brightSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | brightSpinbutton">Set the Brightness directly in the HSB color model. Values are expressed in percent (0 to 100).</property>
@@ -589,8 +589,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -598,7 +598,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="colorpickerdialog|label3">HSB</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -615,90 +615,90 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
- <property name="label" translatable="yes" context="colorpickerdialog|label5">_Cyan:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">cyanSpinbutton</property>
+ <property name="label" translatable="yes" context="colorpickerdialog|label5" comments="This is the C of the CMYK color model: https://en.wikipedia.org/wiki/CMYK_color_model">_Cyan:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">cyanSpinbutton</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
- <property name="label" translatable="yes" context="colorpickerdialog|label6">_Magenta:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">magSpinbutton</property>
+ <property name="label" translatable="yes" context="colorpickerdialog|label6" comments="This is the M of the CMYK color model: https://en.wikipedia.org/wiki/CMYK_color_model">_Magenta:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">magSpinbutton</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
- <property name="label" translatable="yes" context="colorpickerdialog|label7">_Yellow:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">yellowSpinbutton</property>
+ <property name="label" translatable="yes" context="colorpickerdialog|label7" comments="This is the Y of the CMYK color model: https://en.wikipedia.org/wiki/CMYK_color_model">_Yellow:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">yellowSpinbutton</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
- <property name="label" translatable="yes" context="colorpickerdialog|label8">_Key:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">keySpinbutton</property>
+ <property name="label" translatable="yes" context="colorpickerdialog|label8" comments="This is the K of the CMYK color model: https://en.wikipedia.org/wiki/CMYK_color_model">_Key:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">keySpinbutton</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="cyanSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentcyan</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentcyan</property>
<child internal-child="accessible">
<object class="AtkObject" id="cyanSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | cyanSpinbutton">Set the Cyan color value as expressed in the CMYK color model.</property>
@@ -706,18 +706,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="magSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentmag</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentmag</property>
<child internal-child="accessible">
<object class="AtkObject" id="magSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | magSpinbutton">Set the Magenta color value as expressed in the CMYK color model.</property>
@@ -725,18 +725,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="yellowSpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentyellow</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentyellow</property>
<child internal-child="accessible">
<object class="AtkObject" id="yellowSpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | yellowSpinbutton">Set the Yellow color value as expressed in the CMYK color model.</property>
@@ -744,18 +744,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="keySpinbutton">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentkey</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentkey</property>
<child internal-child="accessible">
<object class="AtkObject" id="keySpinbutton-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | keySpinbutton">Set the Black color value or key (black) as expressed in the CMYK color model.</property>
@@ -763,8 +763,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -772,7 +772,7 @@
<child type="label">
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="colorpickerdialog|label4">CMYK</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -807,12 +807,9 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="ColorPicker-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended tip | ColorPicker">%PRODUCTNAME lets you define custom colors using a two-dimensional graphic and numerical gradient chart of the Pick a Color dialog.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended tip | ColorPicker">Define custom colors using a two-dimensional graphic and numerical gradient chart of the Pick a Color dialog.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/comment.ui b/cui/uiconfig/ui/comment.ui
index 51ca99555a15..185a94dc84df 100644
--- a/cui/uiconfig/ui/comment.ui
+++ b/cui/uiconfig/ui/comment.ui
@@ -38,7 +38,6 @@
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="use-underline">True</property>
- <property name="yalign">0.5</property>
</object>
<packing>
<property name="expand">False</property>
@@ -67,7 +66,6 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use-underline">True</property>
- <property name="xalign">0.5</property>
</object>
<packing>
<property name="expand">False</property>
diff --git a/cui/uiconfig/ui/connectortabpage.ui b/cui/uiconfig/ui/connectortabpage.ui
index a2f6aadf3e03..d82e643f4629 100644
--- a/cui/uiconfig/ui/connectortabpage.ui
+++ b/cui/uiconfig/ui/connectortabpage.ui
@@ -3,16 +3,19 @@
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
+ <property name="lower">-100</property>
<property name="upper">100</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
+ <property name="lower">-100</property>
<property name="upper">100</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
+ <property name="lower">-100</property>
<property name="upper">100</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
diff --git a/cui/uiconfig/ui/connpooloptions.ui b/cui/uiconfig/ui/connpooloptions.ui
index 83487e9c9d37..f31d0245ccaa 100644
--- a/cui/uiconfig/ui/connpooloptions.ui
+++ b/cui/uiconfig/ui/connpooloptions.ui
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">30</property>
<property name="upper">600</property>
<property name="value">60</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkTreeStore" id="liststore1">
<columns>
@@ -24,82 +24,66 @@
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="ConnPoolPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
- <object class="GtkCheckButton" id="connectionpooling">
- <property name="label" translatable="yes" context="connpooloptions|connectionpooling">Connection pooling enabled</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="connectionpooling-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|connectionpooling">Specifies whether the chosen connections are pooled.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=5 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkLabel" id="driverslabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="connpooloptions|driverslabel">Drivers known in %PRODUCTNAME</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">driverlist</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">driverlist</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="driverlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="connpooloptions|driverlabel">Current driver:</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -110,9 +94,12 @@
<child>
<object class="GtkLabel" id="driver">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -122,101 +109,34 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="enablepooling">
- <property name="label" translatable="yes" context="connpooloptions|enablepooling">Enable pooling for this driver</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="enablepooling-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|enablepooling">Select a driver from the list and mark the Enable pooling for this driver checkbox in order to pool its connection.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin-start">12</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkLabel" id="timeoutlabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="connpooloptions|timeoutlabel">_Timeout (seconds):</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">timeout</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="timeout">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="text">60</property>
- <property name="adjustment">adjustment1</property>
- <property name="value">60</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="timeout-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|timeout">Defines the time in seconds after which a pooled connection is freed.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="driverlistscroll">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="driverlist">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -270,14 +190,172 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="timeoutlabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="connpooloptions|timeoutlabel">_Timeout (seconds):</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">timeout</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="timeout">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="text">60</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="value">60</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="timeout-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|timeout">Defines the time in seconds after which a pooled connection is freed.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locktimeout">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkCheckButton" id="enablepooling">
+ <property name="label" translatable="yes" context="connpooloptions|enablepooling">Enable pooling for this driver</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="enablepooling-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|enablepooling">Select a driver from the list and mark the Enable pooling for this driver checkbox in order to pool its connection.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockenablepooling">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkCheckButton" id="connectionpooling">
+ <property name="label" translatable="yes" context="connpooloptions|connectionpooling">Connection pooling enabled</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="connectionpooling-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|connectionpooling">Specifies whether the chosen connections are pooled.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockconnectionpooling">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -285,7 +363,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="connpooloptions|label1">Connection Pool</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -294,8 +372,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
diff --git a/cui/uiconfig/ui/croppage.ui b/cui/uiconfig/ui/croppage.ui
index b7fe3d8224a6..93f3eafe504a 100644
--- a/cui/uiconfig/ui/croppage.ui
+++ b/cui/uiconfig/ui/croppage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.20.3 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
@@ -51,7 +51,6 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="CropPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -68,15 +67,14 @@
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid10">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="margin_start">12</property>
+ <property name="margin_top">6</property>
<property name="hexpand">True</property>
<property name="row_spacing">6</property>
<property name="column_spacing">18</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkRadioButton" id="keepscale">
<property name="label" translatable="yes" context="croppage|keepscale">Keep _scale</property>
@@ -108,7 +106,6 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -133,8 +130,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment1</property>
- <property name="truncate-multiline">True</property>
<property name="digits">2</property>
</object>
<packing>
@@ -161,8 +158,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment7</property>
- <property name="truncate-multiline">True</property>
<property name="digits">2</property>
</object>
<packing>
@@ -177,7 +174,6 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -216,8 +212,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment6</property>
- <property name="truncate-multiline">True</property>
<property name="digits">2</property>
</object>
<packing>
@@ -230,8 +226,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment8</property>
- <property name="truncate-multiline">True</property>
<property name="digits">2</property>
</object>
<packing>
@@ -278,7 +274,6 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="origsizegrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -320,7 +315,16 @@
</packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkButton" id="uncrop">
+ <property name="label" translatable="yes" context="croppage|uncrop">Reset Crop</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ </packing>
</child>
</object>
</child>
@@ -348,14 +352,13 @@
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="margin_start">12</property>
+ <property name="margin_top">6</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
@@ -375,7 +378,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
- <property name="truncate-multiline">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment2</property>
</object>
<packing>
@@ -402,7 +405,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
- <property name="truncate-multiline">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment5</property>
</object>
<packing>
@@ -435,14 +438,13 @@
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="margin_start">12</property>
+ <property name="margin_top">6</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
@@ -462,8 +464,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment3</property>
- <property name="truncate-multiline">True</property>
<property name="digits">2</property>
</object>
<packing>
@@ -490,8 +492,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
+ <property name="truncate_multiline">True</property>
<property name="adjustment">adjustment4</property>
- <property name="truncate-multiline">True</property>
<property name="digits">2</property>
</object>
<packing>
diff --git a/cui/uiconfig/ui/cuiimapdlg.ui b/cui/uiconfig/ui/cuiimapdlg.ui
index 594e66fc7667..870839b8c82a 100644
--- a/cui/uiconfig/ui/cuiimapdlg.ui
+++ b/cui/uiconfig/ui/cuiimapdlg.ui
@@ -242,7 +242,8 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
- <property name="label" translatable="yes" context="cuiimapdlg|label4">Alternative _text:</property>
+ <property name="label" translatable="yes" context="cuiimapdlg|label4">Alt _Text:</property>
+ <property name="tooltip_text" translatable="yes" context="cuiimapdlg|label4">Enter a short description of essential features of the image map for persons who do not see the image.</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">textentry</property>
<property name="xalign">0</property>
@@ -262,7 +263,7 @@
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="textentry-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="cuiimapdlg|extended_tip|textentry">Enter the text that you want to display when the mouse rests on the hotspot in a browser.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="cuiimapdlg|extended_tip|textentry">Enter the text that you want to display when the mouse rests on the hotspot in a browser. This text can also be used by assistive technologies.</property>
</object>
</child>
</object>
@@ -291,6 +292,7 @@
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="cuiimapdlg|label5">_Description:</property>
+ <property name="tooltip_text" translatable="yes" context="cuiimapdlg|label5">Give a longer explanation of the image map if it is too complex to be described briefly in “Text Alternative.”</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">descTV</property>
<property name="xalign">0</property>
diff --git a/cui/uiconfig/ui/databaselinkdialog.ui b/cui/uiconfig/ui/databaselinkdialog.ui
index 93d25b0b3e07..e307b2ea381e 100644
--- a/cui/uiconfig/ui/databaselinkdialog.ui
+++ b/cui/uiconfig/ui/databaselinkdialog.ui
@@ -177,7 +177,7 @@
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="name-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|name">Enter a name for the database. %PRODUCTNAME uses this name to access the database.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|name">Enter a name for the database. The office suite uses this name to access the database.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/dimensionlinestabpage.ui b/cui/uiconfig/ui/dimensionlinestabpage.ui
index a80fc3ac8fe7..d6916dfdaad6 100644
--- a/cui/uiconfig/ui/dimensionlinestabpage.ui
+++ b/cui/uiconfig/ui/dimensionlinestabpage.ui
@@ -1,166 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">-10</property>
<property name="upper">10</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="upper">99</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
<property name="lower">-10</property>
<property name="upper">10</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment4">
<property name="lower">-10</property>
<property name="upper">10</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment5">
<property name="lower">-10</property>
<property name="upper">10</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment6">
<property name="lower">-10</property>
<property name="upper">10</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkBox" id="DimensionLinesTabPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">12</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkFrame" id="FL_LINE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=7 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="FT_LINE_DIST">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|FT_LINE_DIST">Line _distance:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_LINE_DIST</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_LINE_DIST</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_HELPLINE_OVERHANG">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|FT_HELPLINE_OVERHANG">Guide _overhang:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_HELPLINE_OVERHANG</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_HELPLINE_OVERHANG</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_HELPLINE_DIST">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|FT_HELPLINE_DIST">_Guide distance:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_HELPLINE_DIST</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_HELPLINE_DIST</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_HELPLINE1_LEN">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|FT_HELPLINE1_LEN">_Left guide:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_HELPLINE1_LEN</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_HELPLINE1_LEN</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_HELPLINE2_LEN">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|FT_HELPLINE2_LEN">_Right guide:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_HELPLINE2_LEN</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_HELPLINE2_LEN</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_DECIMALPLACES">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|FT_DECIMALPLACES">Decimal _places:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_DECIMALPLACES</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_DECIMALPLACES</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="TSB_BELOW_REF_EDGE">
<property name="label" translatable="yes" context="dimensionlinestabpage|TSB_BELOW_REF_EDGE">Measure _below object</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">12</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_BELOW_REF_EDGE-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|TSB_BELOW_REF_EDGE">Reverses the properties set in the Line area.</property>
@@ -168,19 +168,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_LINE_DIST">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment1</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_LINE_DIST-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|MTR_LINE_DIST">Specifies the distance between the dimension line and the baseline (line distance = 0).</property>
@@ -188,18 +188,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_HELPLINE_OVERHANG">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment3</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_HELPLINE_OVERHANG-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|MTR_FLD_HELPLINE_OVERHANG">Specifies the length of the left and right guides starting at the baseline (line distance = 0). Positive values extend the guides above the baseline and negative values extend the guides below the baseline.</property>
@@ -207,18 +207,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_HELPLINE_DIST">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment4</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_HELPLINE_DIST-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|MTR_FLD_HELPLINE_DIST">Specifies the length of the right and left guides starting at the dimension line. Positive values extend the guides above the dimension line and negative values extend the guides below the dimension line.</property>
@@ -226,18 +226,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_HELPLINE1_LEN">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment5</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_HELPLINE1_LEN-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|MTR_FLD_HELPLINE1_LEN">Specifies the length of the left guide starting at the dimension line. Positive values extend the guide below the dimension line and negative values extend the guide above the dimension line.</property>
@@ -245,18 +245,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_HELPLINE2_LEN">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment6</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_HELPLINE2_LEN-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|MTR_FLD_HELPLINE2_LEN">Specifies the length of the right guide starting at the dimension line. Positive values extend the guide below the dimension line and negative values extend the guide above the dimension line.</property>
@@ -264,17 +264,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_DECIMALPLACES">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment2</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment2</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_DECIMALPLACES-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|MTR_FLD_DECIMALPLACES">Specifies the number of decimal places used for the display of line properties.</property>
@@ -282,8 +282,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
</object>
@@ -291,7 +291,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|label1">Line</property>
<property name="xalign">0</property>
<attributes>
@@ -309,23 +309,23 @@
<child>
<object class="GtkFrame" id="FL_LABEL">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkLabel" id="FT_POSITION">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|FT_POSITION">_Text position</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -337,27 +337,27 @@
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">12</property>
<child>
<object class="GtkScrolledWindow" id="frameselwin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
<property name="valign">center</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_POSITION">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="halign">start</property>
<property name="valign">center</property>
@@ -381,11 +381,11 @@
<object class="GtkCheckButton" id="TSB_AUTOPOSV">
<property name="label" translatable="yes" context="dimensionlinestabpage|TSB_AUTOPOSV">_AutoVertical</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_AUTOPOSV-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|TSB_AUTOPOSV">Determines the optimal vertical position for the dimension text.</property>
@@ -402,11 +402,11 @@
<object class="GtkCheckButton" id="TSB_AUTOPOSH">
<property name="label" translatable="yes" context="dimensionlinestabpage|TSB_AUTOPOSH">A_utoHorizontal</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_AUTOPOSH-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|TSB_AUTOPOSH">Determines the optimal horizontal position for the dimension text.</property>
@@ -430,14 +430,14 @@
<object class="GtkCheckButton" id="TSB_PARALLEL">
<property name="label" translatable="yes" context="dimensionlinestabpage|TSB_PARALLEL">_Parallel to line</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_PARALLEL-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|TSB_PARALLEL">Displays the text parallel to or at 90 degrees to the dimension line.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|TSB_PARALLEL">If enabled, displays the text parallel to the dimension line. If disabled, the text is shown at 90 degrees to the dimension line.</property>
</object>
</child>
</object>
@@ -451,14 +451,14 @@
<object class="GtkCheckButton" id="TSB_SHOW_UNIT">
<property name="label" translatable="yes" context="dimensionlinestabpage|TSB_SHOW_UNIT">Show _measurement units</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_SHOW_UNIT-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|TSB_SHOW_UNIT">Shows or hides the dimension measurement units. You can also select a measurement unit you want to display from the list.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="dimensionlinestabpage|extended_tip|TSB_SHOW_UNIT">Shows or hides the dimension measurement unit. You can select a measurement unit you want to display from the list.</property>
</object>
</child>
</object>
@@ -471,7 +471,7 @@
<child>
<object class="GtkComboBoxText" id="LB_UNIT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-start">12</property>
<child internal-child="accessible">
@@ -491,7 +491,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|label2">Legend</property>
<property name="xalign">0</property>
<attributes>
@@ -515,7 +515,7 @@
</child>
<child>
<object class="GtkLabel" id="STR_MEASURE_AUTOMATIC">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="dimensionlinestabpage|STR_MEASURE_AUTOMATIC">Automatic</property>
</object>
<packing>
@@ -527,21 +527,21 @@
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
- <property name="margin-top">6</property>
<property name="margin-end">12</property>
+ <property name="margin-top">6</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_PREVIEW">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/editmodulesdialog.ui b/cui/uiconfig/ui/editmodulesdialog.ui
index 10353d4f0668..16e232384b4e 100644
--- a/cui/uiconfig/ui/editmodulesdialog.ui
+++ b/cui/uiconfig/ui/editmodulesdialog.ui
@@ -231,7 +231,7 @@
</child>
<child>
<object class="GtkButton" id="back">
- <property name="label" translatable="yes" context="editmodulesdialog|back">_Back</property>
+ <property name="label" translatable="yes" context="editmodulesdialog|back">_Reset</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -278,7 +278,7 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<property name="resizable">True</property>
<property name="spacing">6</property>
- <property name="alignment">0,50000000000000000000</property>
+ <property name="alignment">0.50000000000000000000</property>
<child>
<object class="GtkCellRendererToggle" id="cellrenderer5"/>
<attributes>
@@ -292,7 +292,7 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
<property name="resizable">True</property>
<property name="spacing">6</property>
- <property name="alignment">0,50000000000000000000</property>
+ <property name="alignment">0.50000000000000000000</property>
<child>
<object class="GtkCellRendererText" id="cellrenderer4"/>
<attributes>
diff --git a/cui/uiconfig/ui/effectspage.ui b/cui/uiconfig/ui/effectspage.ui
index 5e6b2f63def8..527d8d8e5eeb 100644
--- a/cui/uiconfig/ui/effectspage.ui
+++ b/cui/uiconfig/ui/effectspage.ui
@@ -1,42 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustmentPercent">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=4 -->
<object class="GtkGrid" id="EffectsPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
<property name="valign">end</property>
- <property name="shadow_type">in</property>
<property name="margin-start">12</property>
- <property name="margin-top">6</property>
<property name="margin-end">12</property>
+ <property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="preview">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="preview-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="effectspage|preview-atkobject">Preview</property>
@@ -48,58 +48,58 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="Effects">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=4 -->
<object class="GtkGrid" id="grid8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="effectsft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|effectsft">_Case:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">effectslb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">effectslb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="reliefft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|reliefft">R_elief:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">relieflb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">relieflb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="effectslb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="effectspage|liststore1">(Without)</item>
<item translatable="yes" context="effectspage|liststore1">UPPERCASE</item>
@@ -114,14 +114,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="relieflb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="effectspage|liststore2">(Without)</item>
<item translatable="yes" context="effectspage|liststore2">Embossed</item>
@@ -134,14 +134,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="emphasislb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="effectspage|liststore3">(Without)</item>
<item translatable="yes" context="effectspage|liststore3">Dot</item>
@@ -156,14 +156,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="positionlb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="effectspage|liststore4">Above text</item>
<item id="1" translatable="yes" context="effectspage|liststore4">Below text</item>
@@ -175,47 +175,47 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="positionft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|positionft">_Position:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">positionlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">positionlb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="emphasisft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|emphasisft">Emphasis _mark:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">emphasislb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">emphasislb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="outlinecb">
<property name="label" translatable="yes" context="effectspage|outlinecb">Outli_ne</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="outlinecb-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="effectspage|extended_tip|outlinecb">Displays the outline of the selected characters. This effect does not work with every font.</property>
@@ -223,19 +223,19 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="shadowcb">
<property name="label" translatable="yes" context="effectspage|shadowcb">Shado_w</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="shadowcb-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="effectspage|extended_tip|shadowcb">Adds a shadow that casts below and to the right of the selected characters.</property>
@@ -243,19 +243,19 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="hiddencb">
<property name="label" translatable="yes" context="effectspage|hiddencb">Hi_dden</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="hiddencb-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="effectspage|extended_tip|hiddencb">Hides the selected characters.</property>
@@ -263,8 +263,8 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
@@ -287,7 +287,7 @@
<child type="label">
<object class="GtkLabel" id="effectsft2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|effectsft2">Effects</property>
<property name="xalign">0</property>
<attributes>
@@ -297,71 +297,72 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="TextDecoration">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=4 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|label46">O_verlining:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">overlinelb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">overlinelb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|label47">Stri_kethrough:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">strikeoutlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">strikeoutlb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|label48">_Underlining:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">underlinelb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">underlinelb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="overlinelb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="effectspage|liststore6">(Without)</item>
<item id="1" translatable="yes" context="effectspage|liststore6">Single</item>
@@ -388,14 +389,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="underlinelb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="effectspage|liststore6">(Without)</item>
<item id="1" translatable="yes" context="effectspage|liststore6">Single</item>
@@ -422,14 +423,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="strikeoutlb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="effectspage|liststore5">(Without)</item>
<item id="1" translatable="yes" context="effectspage|liststore5">Single</item>
@@ -445,17 +446,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="underlinecolorlb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
<property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
<property name="label" translatable="no"></property>
<child>
<placeholder/>
@@ -467,17 +469,18 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="overlinecolorlb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
<property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
<property name="label" translatable="no"></property>
<child>
<placeholder/>
@@ -489,18 +492,18 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="individualwordscb">
<property name="label" translatable="yes" context="effectspage|individualwordscb">_Individual words</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="individualwordscb-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="effectspage|extended_tip|individualwordscb">Applies the selected effect only to words and ignores spaces.</property>
@@ -508,34 +511,34 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="overlinecolorft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">overlinecolorlb</property>
+ <property name="can-focus">False</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">overlinecolorlb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="underlinecolorft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">underlinecolorlb</property>
+ <property name="can-focus">False</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">underlinecolorlb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
@@ -546,7 +549,7 @@
<child type="label">
<object class="GtkLabel" id="textdecoration">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|textdecoration">Text Decoration</property>
<property name="xalign">0</property>
<attributes>
@@ -556,46 +559,46 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="FontColor">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=2 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="fontcolorft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|fontcolorft">_Font color:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">fontcolorlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">fontcolorlb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="fontcolorlb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="xalign">0</property>
+ <property name="draw-indicator">True</property>
<property name="label" translatable="no"></property>
<child>
<placeholder/>
@@ -607,59 +610,65 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="a11ywarning">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|a11ywarning">Accessibility option "Use automatic font color for screen display" is active. Font color attributes are not currently used to display text.</property>
<property name="wrap">True</property>
- <property name="max_width_chars">50</property>
+ <property name="max-width-chars">50</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="fonttransparencyft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|fonttransparencyft">_Transparency:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">fonttransparencymtr</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">fonttransparencymtr</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="fonttransparencymtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentPercent</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="fontcolorft3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="effectspage|fontcolorft3">Font Color</property>
<property name="xalign">0</property>
<attributes>
@@ -669,8 +678,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child internal-child="accessible">
@@ -680,7 +689,7 @@
</child>
</object>
<object class="GtkSizeGroup" id="sizegroup1">
- <property name="ignore_hidden">True</property>
+ <property name="ignore-hidden">True</property>
<widgets>
<widget name="effectsft"/>
<widget name="reliefft"/>
@@ -693,7 +702,7 @@
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup2">
- <property name="ignore_hidden">True</property>
+ <property name="ignore-hidden">True</property>
<widgets>
<widget name="effectslb"/>
<widget name="relieflb"/>
@@ -702,7 +711,6 @@
<widget name="overlinelb"/>
<widget name="underlinelb"/>
<widget name="strikeoutlb"/>
- <widget name="fontcolorlb"/>
</widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/eventassignpage.ui b/cui/uiconfig/ui/eventassignpage.ui
index 26274e4f6a03..86f0a7044ef0 100644
--- a/cui/uiconfig/ui/eventassignpage.ui
+++ b/cui/uiconfig/ui/eventassignpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -32,43 +32,43 @@
<column type="gchararray"/>
</columns>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="EventAssignPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">12</property>
- <property name="row_homogeneous">True</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">12</property>
+ <property name="row-homogeneous">True</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="assignments">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore3</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -110,7 +110,7 @@
<child type="label">
<object class="GtkLabel" id="libraryft1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="eventassignpage|libraryft1">Assignments</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -119,25 +119,25 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="assign">
<property name="label" translatable="yes" context="eventassignpage|assign">Assign</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="assign-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="eventassignpage|extended_tip|assign">Assigns the selected macro to the selected event.</property>
@@ -154,9 +154,9 @@
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="eventassignpage|delete">Remove</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="delete-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="eventassignpage|extended_tip|delete">Removes the macro assignment from the selected entry.</property>
@@ -171,47 +171,47 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
<property name="height">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">6</property>
- <property name="column_homogeneous">True</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">6</property>
+ <property name="column-homogeneous">True</property>
<child>
<object class="GtkFrame" id="groupframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="libraries">
- <property name="width_request">-1</property>
+ <property name="width-request">-1</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="search_column">1</property>
- <property name="enable_tree_lines">True</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">1</property>
+ <property name="enable-tree-lines">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection1"/>
</child>
@@ -234,7 +234,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="libraries-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="eventassignpage|extended_tip|libraries">Lists the %PRODUCTNAME program and any open %PRODUCTNAME document.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="eventassignpage|extended_tip|libraries">Lists the office suite program and any open documents.</property>
</object>
</child>
</object>
@@ -244,7 +244,7 @@
<child type="label">
<object class="GtkLabel" id="macrotoft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="eventassignpage|macrotoft">Macro From</property>
<property name="xalign">0</property>
<attributes>
@@ -254,38 +254,38 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="macroframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="macros">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore2</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
@@ -317,7 +317,7 @@
<child type="label">
<object class="GtkLabel" id="existingmacrosft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="eventassignpage|existingmacrosft">Existing Macros</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -326,14 +326,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/cui/uiconfig/ui/eventsconfigpage.ui b/cui/uiconfig/ui/eventsconfigpage.ui
index 28887bf3fe0a..8a679d77c6ec 100644
--- a/cui/uiconfig/ui/eventsconfigpage.ui
+++ b/cui/uiconfig/ui/eventsconfigpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore3">
@@ -17,29 +17,29 @@
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="EventsConfigPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="eventsconfigpage|label1">Assign:</property>
<property name="xalign">0</property>
</object>
@@ -52,21 +52,21 @@
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="macro">
<property name="label" translatable="yes" context="eventsconfigpage|macro">M_acro...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="macro-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="eventsconfigpage|extended_tip|macro">Opens the Macro Selector to assign a macro to the selected event.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="eventsconfigpage|extended_tip|macro">Opens the Macro Selector dialog to assign a macro to the selected event.</property>
</object>
</child>
</object>
@@ -80,9 +80,9 @@
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="eventsconfigpage|delete">_Remove</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="delete-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="eventsconfigpage|extended_tip|delete">Deletes the macro or component assignment for the selected event.</property>
@@ -95,6 +95,20 @@
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="deleteall">
+ <property name="label" translatable="yes" context="eventsconfigpage|deleteall">Remove _All</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -104,78 +118,78 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">12</property>
+ <property name="row-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="eventsconfigpage|label2">Save in:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">savein</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">savein</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="savein">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="savein-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="eventsconfigpage|extended_tip|savein">Select first where to save the event binding, in the current document or in %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="eventsconfigpage|extended_tip|savein">Select first where to save the event binding, in the current document or in the office suite.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="events">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore3</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -225,20 +239,20 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/cui/uiconfig/ui/fileextcheckdialog.ui b/cui/uiconfig/ui/fileextcheckdialog.ui
index da0c3b8da91d..e0dd68bb0b6d 100644
--- a/cui/uiconfig/ui/fileextcheckdialog.ui
+++ b/cui/uiconfig/ui/fileextcheckdialog.ui
@@ -33,7 +33,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="tooltip-text" translatable="yes" context="FileExtCheck|Checkbox_Tooltip">Enable the dialog again at Tools &gt; Options &gt; General</property>
+ <property name="tooltip-text" translatable="yes" context="FileExtCheck|Checkbox_Tooltip">Enable the dialog again at Tools - Options - %PRODUCTNAME - General</property>
<property name="use-underline">True</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
diff --git a/cui/uiconfig/ui/fmsearchdialog.ui b/cui/uiconfig/ui/fmsearchdialog.ui
index c12b042b992c..57f15b115bbe 100644
--- a/cui/uiconfig/ui/fmsearchdialog.ui
+++ b/cui/uiconfig/ui/fmsearchdialog.ui
@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="RecordSearchDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="fmsearchdialog|RecordSearchDialog">Record Search</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox3">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="pbSearchAgain">
<property name="label" translatable="yes" context="fmsearchdialog|pbSearchAgain">S_earch</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="pbSearchAgain-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|pbSearchAgain">Starts or cancels the search.</property>
@@ -44,12 +44,12 @@
<object class="GtkButton" id="close">
<property name="label" translatable="yes" context="stock">_Close</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="close-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|close">Closes the dialog. The settings of the last search will be saved until you quit %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|close">Closes the dialog. The settings of the last search will be saved until you quit the office suite.</property>
</object>
</child>
</object>
@@ -63,8 +63,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -78,65 +78,65 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="searchframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<property name="homogeneous">True</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkComboBoxText" id="cmbSearchText">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry" id="combobox-entry2">
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
</child>
<child internal-child="accessible">
@@ -146,19 +146,19 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbSearchForText">
<property name="label" translatable="yes" context="fmsearchdialog|rbSearchForText">_Text:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="rbSearchForText-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|rbSearchForText">Enter the search term in the box or select it from the list.</property>
@@ -166,8 +166,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -181,10 +181,10 @@
<object class="GtkRadioButton" id="rbSearchForNull">
<property name="label" translatable="yes" context="fmsearchdialog|rbSearchForNull">Field content is _NULL</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">rbSearchForText</property>
<child internal-child="accessible">
<object class="AtkObject" id="rbSearchForNull-atkobject">
@@ -202,10 +202,10 @@
<object class="GtkRadioButton" id="rbSearchForNotNull">
<property name="label" translatable="yes" context="fmsearchdialog|rbSearchForNotNull">Field content is not NU_LL</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">rbSearchForText</property>
<child internal-child="accessible">
<object class="AtkObject" id="rbSearchForNotNull-atkobject">
@@ -221,8 +221,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -230,9 +230,9 @@
<child type="label">
<object class="GtkLabel" id="flSearchFor">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|flSearchFor">_Search for</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -248,50 +248,50 @@
<child>
<object class="GtkFrame" id="wheretosearchframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid9">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid11">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="spacing">12</property>
<child>
<object class="GtkRadioButton" id="rbSingleField">
<property name="label" translatable="yes" context="fmsearchdialog|rbSingleField">_Single field:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="rbSingleField-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|rbSingleField">Searches through a specified data field.</property>
@@ -307,7 +307,7 @@
<child>
<object class="GtkComboBoxText" id="lbField">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
@@ -324,18 +324,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="rbAllFields">
<property name="label" translatable="yes" context="fmsearchdialog|rbAllFields">_All fields</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">rbSingleField</property>
<child internal-child="accessible">
<object class="AtkObject" id="rbAllFields-atkobject">
@@ -344,34 +344,34 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="ftForm">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|ftForm">Form:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">lbForm</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">lbForm</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="lbForm">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<child internal-child="accessible">
<object class="AtkObject" id="lbForm-atkobject">
@@ -380,40 +380,40 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="height">2</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="replacedesc">
- <property name="width_request">1</property>
+ <property name="width-request">1</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
@@ -426,8 +426,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -435,9 +435,9 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|label2">Where to Search</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -460,43 +460,43 @@
<child>
<object class="GtkFrame" id="settingsframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="ftPosition">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|ftPosition">_Position:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">lbPosition</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">lbPosition</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="lbPosition">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
@@ -506,8 +506,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -518,20 +518,20 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="HalfFullFormsCJK">
<property name="label" translatable="yes" context="fmsearchdialog|HalfFullFormsCJK">Match character wi_dth</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="HalfFullFormsCJK-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|HalfFullFormsCJK">Distinguishes between half-width and full-width character forms.</property>
@@ -539,24 +539,24 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid10">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="SoundsLikeCJK">
<property name="label" translatable="yes" context="fmsearchdialog|SoundsLikeCJK">Sounds like (_Japanese)</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="SoundsLikeCJK-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|SoundsLikeCJK">Lets you specify the search options for similar notation used in Japanese text. Select this checkbox, and then click the Sounds button to specify the search options.</property>
@@ -564,18 +564,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SoundsLikeCJKSettings">
<property name="label" translatable="yes" context="fmsearchdialog|SoundsLikeCJKSettings">Similarities...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="halign">center</property>
- <property name="valign">end</property>
+ <property name="valign">center</property>
<child internal-child="accessible">
<object class="AtkObject" id="SoundsLikeCJKSettings-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|SoundsLikeCJKSettings">Sets the search options for similar notation used in Japanese text.</property>
@@ -583,30 +583,30 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="cbApprox">
<property name="label" translatable="yes" context="fmsearchdialog|cbApprox">S_imilarity search</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cbApprox-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|cbApprox">Find terms that are similar to the Find text. Select this checkbox, and then click the Similarities button to define the similarity options.</property>
@@ -614,19 +614,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="pbApproxSettings">
<property name="label" translatable="yes" context="fmsearchdialog|pbApproxSettings">Similarities...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="halign">center</property>
- <property name="valign">end</property>
- <property name="yalign">0.5</property>
+ <property name="valign">center</property>
<child internal-child="accessible">
<object class="AtkObject" id="pbApproxSettings-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|pbApproxSettings">Find terms that are similar to the Find text. Select this checkbox, and then click the Similarities button to define the similarity options.</property>
@@ -634,24 +633,24 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbCase">
<property name="label" translatable="yes" context="fmsearchdialog|cbCase">_Match case</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cbCase-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|cbCase">Specifies that upper and lower case are taken into consideration during the search.</property>
@@ -659,18 +658,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbStartOver">
<property name="label" translatable="yes" context="fmsearchdialog|cbStartOver">Fr_om top</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cbStartOver-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|cbStartOver">Restarts the search. A forward search restarts with the first record. A backwards search restarts with the last record.</property>
@@ -678,18 +677,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbRegular">
<property name="label" translatable="yes" context="fmsearchdialog|cbRegular">_Regular expression</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cbRegular-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|cbRegular">Searches with regular expressions.</property>
@@ -697,18 +696,18 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbUseFormat">
<property name="label" translatable="yes" context="fmsearchdialog|cbUseFormat">Appl_y field format</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cbUseFormat-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|cbUseFormat">Specifies that all field formats are considered when searching in the current document.</property>
@@ -716,18 +715,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbBackwards">
<property name="label" translatable="yes" context="fmsearchdialog|cbBackwards">Search _backwards</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cbBackwards-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|cbBackwards">Specifies that the search process will run in reverse direction, from the last to the first record.</property>
@@ -735,18 +734,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbWildCard">
<property name="label" translatable="yes" context="fmsearchdialog|cbWildCard">_Wildcard expression</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cbWildCard-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|cbWildCard">Allows a search with a * or ? wildcard.</property>
@@ -754,8 +753,8 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -770,9 +769,9 @@
<child type="label">
<object class="GtkLabel" id="flOptions">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|flOptions">Settings</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -788,49 +787,49 @@
<child>
<object class="GtkFrame" id="stateframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="ftRecordLabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|ftRecordLabel">Record:</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ftRecord">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|ftRecord">record count</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ftHint">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -838,7 +837,7 @@
<child type="label">
<object class="GtkLabel" id="flState">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="fmsearchdialog|flState">State</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -865,9 +864,6 @@
<action-widget response="-7">close</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="RecordSearchDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fmsearchdialog|extended_tip|RecordSearchDialog">Searches database tables and forms.</property>
diff --git a/cui/uiconfig/ui/fontfeaturesdialog.ui b/cui/uiconfig/ui/fontfeaturesdialog.ui
index f33f2f77996f..b868ab2f2805 100644
--- a/cui/uiconfig/ui/fontfeaturesdialog.ui
+++ b/cui/uiconfig/ui/fontfeaturesdialog.ui
@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="FontFeaturesDialog">
- <property name="width_request">-1</property>
- <property name="height_request">-1</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="width-request">-1</property>
+ <property name="height-request">-1</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="fontfeaturesdialog|FontFeaturesDialog">Font Features</property>
<property name="modal">True</property>
- <property name="default_width">1</property>
- <property name="default_height">1</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">1</property>
+ <property name="default-height">1</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -40,10 +40,10 @@
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">False</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -56,8 +56,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -70,61 +70,166 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="contentWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">automatic</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">True</property>
+ <property name="hscrollbar-policy">never</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="contentGrid">
+ <object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="row-homogeneous">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
+ <object class="GtkBox" id="contentBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="contentGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <property name="row-homogeneous">True</property>
+ <property name="column-homogeneous">True</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkBox" id="stylisticSetsBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="margin-top">6</property>
+ <property name="label" translatable="yes" context="fontfeaturesdialog">Stylistic Sets</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="stylisticSetsGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <property name="row-homogeneous">True</property>
+ <property name="column-homogeneous">True</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkBox" id="characterVariantsBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="margin-top">6</property>
+ <property name="label" translatable="yes" context="fontfeaturesdialog">Character Variants</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="characterVariantsGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <property name="row-homogeneous">True</property>
+ <property name="column-homogeneous">True</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
</child>
@@ -140,22 +245,22 @@
<child>
<object class="GtkScrolledWindow" id="previewwin">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
+ <property name="valign">end</property>
<property name="margin-start">12</property>
- <property name="margin-top">6</property>
<property name="margin-end">12</property>
- <property name="valign">end</property>
+ <property name="margin-top">6</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="preview">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="preview-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="fontfeaturesdialog|preview-atkobject">Preview</property>
@@ -169,7 +274,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
@@ -187,9 +292,6 @@
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="FontFeaturesDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="fontfeaturesdialog|extended_tip|FontFeaturesDialog">Select and apply font typographical features to characters.</property>
diff --git a/cui/uiconfig/ui/fontfragment.ui b/cui/uiconfig/ui/fontfragment.ui
index e66cd71b7ba6..dca735e5fe1e 100644
--- a/cui/uiconfig/ui/fontfragment.ui
+++ b/cui/uiconfig/ui/fontfragment.ui
@@ -30,6 +30,7 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="no_show_all">True</property>
+ <property name="inconsistent">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
diff --git a/cui/uiconfig/ui/formatcellsdialog.ui b/cui/uiconfig/ui/formatcellsdialog.ui
index 9df8d7b34f68..c2756aa489ed 100644
--- a/cui/uiconfig/ui/formatcellsdialog.ui
+++ b/cui/uiconfig/ui/formatcellsdialog.ui
@@ -1,33 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="FormatCellsDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="formatcellsdialog|FormatCellsDialog">Table Properties</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
- <child>
- <placeholder/>
- </child>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="reset">
<property name="label" translatable="yes" context="stock">_Reset</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -37,47 +34,61 @@
</packing>
</child>
<child>
+ <object class="GtkButton" id="standard">
+ <property name="label" translatable="yes" context="formatcellsdialog|standard">_Standard</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">4</property>
<property name="secondary">True</property>
</packing>
</child>
@@ -85,47 +96,23 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkNotebook" id="tabcontrol">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="scrollable">True</property>
- <property name="enable_popup">True</property>
+ <property name="enable-popup">True</property>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -134,42 +121,18 @@
<child type="tab">
<object class="GtkLabel" id="name">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="formatcellsdialog|name">Font</property>
</object>
<packing>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -181,43 +144,19 @@
<child type="tab">
<object class="GtkLabel" id="effects">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="formatcellsdialog|effects">Font Effects</property>
</object>
<packing>
<property name="position">1</property>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -227,45 +166,21 @@
</packing>
</child>
<child type="tab">
- <object class="GtkLabel" id="border">
+ <object class="GtkLabel" id="position">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="formatcellsdialog|border">Borders</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="formatcellsdialog|position">Position</property>
</object>
<packing>
<property name="position">2</property>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -275,62 +190,158 @@
</packing>
</child>
<child type="tab">
- <object class="GtkLabel" id="area">
+ <object class="GtkLabel" id="highlight">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="formatcellsdialog|area">Background</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="formatcellsdialog|highlight">Highlighting</property>
</object>
<packing>
<property name="position">3</property>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="indentspacing">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="formatcellsdialog|indentspacing">Indents &amp; Spacing</property>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab-fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=1 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="asian">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="formatcellsdialog|asian">Asian Typography</property>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ <property name="tab-fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=1 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
+ </object>
+ <packing>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="alignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="formatcellsdialog|alignment">Alignment</property>
+ </object>
+ <packing>
+ <property name="position">6</property>
+ <property name="tab-fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=1 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
+ </object>
+ <packing>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="border">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="formatcellsdialog|border">Borders</property>
+ </object>
+ <packing>
+ <property name="position">7</property>
+ <property name="tab-fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=1 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
+ </object>
+ <packing>
+ <property name="position">8</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="area">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="formatcellsdialog|area">Background</property>
+ </object>
+ <packing>
+ <property name="position">8</property>
+ <property name="tab-fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=1 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
</object>
<packing>
- <property name="position">4</property>
+ <property name="position">9</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="shadow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="formatcellsdialog|shadow">Shadow</property>
</object>
<packing>
- <property name="position">5</property>
- <property name="tab_fill">False</property>
+ <property name="position">9</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
</object>
@@ -344,6 +355,7 @@
</child>
<action-widgets>
<action-widget response="101">reset</action-widget>
+ <action-widget response="102">standard</action-widget>
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
diff --git a/cui/uiconfig/ui/formatnumberdialog.ui b/cui/uiconfig/ui/formatnumberdialog.ui
index 1a686ca496b4..10c2c04f73dc 100644
--- a/cui/uiconfig/ui/formatnumberdialog.ui
+++ b/cui/uiconfig/ui/formatnumberdialog.ui
@@ -11,14 +11,26 @@
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property>
- <child>
- <placeholder/>
- </child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
+ <child>
+ <object class="GtkBox" id="content">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
<property name="can_focus">False</property>
@@ -76,9 +88,6 @@
<property name="position">0</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<action-widgets>
diff --git a/cui/uiconfig/ui/gradientpage.ui b/cui/uiconfig/ui/gradientpage.ui
index 6a66dad09597..4de623fe9ff3 100644
--- a/cui/uiconfig/ui/gradientpage.ui
+++ b/cui/uiconfig/ui/gradientpage.ui
@@ -1,91 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">3</property>
<property name="upper">256</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="lower">3</property>
<property name="upper">256</property>
<property name="value">3</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="angleadjustment">
<property name="upper">359</property>
- <property name="step_increment">15</property>
+ <property name="step-increment">15</property>
</object>
<object class="GtkAdjustment" id="angleadjustmentslider">
<property name="upper">359</property>
- <property name="step_increment">15</property>
- <property name="page_increment">15</property>
+ <property name="step-increment">15</property>
+ <property name="page-increment">15</property>
</object>
<object class="GtkAdjustment" id="percentadjustment">
<property name="upper">100</property>
- <property name="step_increment">5</property>
+ <property name="step-increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment1">
<property name="upper">100</property>
- <property name="step_increment">5</property>
+ <property name="step-increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment2">
<property name="upper">100</property>
- <property name="step_increment">5</property>
+ <property name="step-increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment3">
<property name="upper">100</property>
- <property name="step_increment">5</property>
+ <property name="step-increment">5</property>
</object>
<object class="GtkAdjustment" id="percentadjustment4">
<property name="upper">100</property>
- <property name="step_increment">5</property>
+ <property name="step-increment">5</property>
</object>
<object class="GtkBox" id="GradientPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="spacing">6</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkScrolledWindow" id="gradientpresetlistwin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="gradientpresetlist">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="vexpand">True</property>
</object>
@@ -102,16 +102,16 @@
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="add">
<property name="label" translatable="yes" context="stock">_Add</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="add-atkobject">
@@ -129,9 +129,9 @@
<object class="GtkButton" id="modify">
<property name="label" translatable="yes" context="gradientpage|modify">_Modify</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="modify-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="gradientpage|extended_tip|modify">Applies the current gradient properties to the selected gradient. If you want, you can save the gradient under a different name.</property>
@@ -156,7 +156,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|label1">Gradient</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -173,36 +173,36 @@
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkBox" id="box6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel" id="typeft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|typeft">_Type:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">gradienttypelb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">gradienttypelb</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -214,14 +214,14 @@
<child>
<object class="GtkComboBoxText" id="gradienttypelb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="gradientpage|gradienttypelb">Linear</item>
<item translatable="yes" context="gradientpage|gradienttypelb">Axial</item>
<item translatable="yes" context="gradientpage|gradienttypelb">Radial</item>
<item translatable="yes" context="gradientpage|gradienttypelb">Ellipsoid</item>
- <item translatable="yes" context="gradientpage|gradienttypelb">Quadratic</item>
- <item translatable="yes" context="gradientpage|gradienttypelb">Square</item>
+ <item translatable="yes" context="gradientpage|gradienttypelb">Square (Quadratic)</item>
+ <item translatable="yes" context="gradientpage|gradienttypelb">Rectangular</item>
</items>
<child internal-child="accessible">
<object class="AtkObject" id="gradienttypelb-atkobject">
@@ -243,54 +243,54 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="incrementft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="gradientpage|incrementft">Increment:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">incrementmtr</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="gradientpage|incrementft">Increments:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">incrementmtr</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="incrementmtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">end</property>
<property name="truncate-multiline">True</property>
<property name="adjustment">adjustment1</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="autoincrement">
<property name="label" translatable="yes" context="gradientpage|autoincrement">A_utomatic</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -301,39 +301,39 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="centerft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|centerft">Center ( X / Y ):</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box9">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkSpinButton" id="centerxmtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="adjustment">percentadjustment3</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">percentadjustment3</property>
<child internal-child="accessible">
<object class="AtkObject" id="centerxmtr-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="gradientpage|extended_tip|centerxmtr">Enter the horizontal offset for the gradient, where 0% corresponds to the current horizontal location of the endpoint color in the gradient. The endpoint color is the color that is selected in the To Color box.</property>
@@ -349,10 +349,10 @@
<child>
<object class="GtkSpinButton" id="centerymtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="adjustment">percentadjustment4</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">percentadjustment4</property>
<child internal-child="accessible">
<object class="AtkObject" id="centerymtr-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="gradientpage|extended_tip|centerymtr">Enter the vertical offset for the gradient, where 0% corresponds to the current vertical location of the endpoint color in the gradient. The endpoint color is the color that is selected in the To Color box.</property>
@@ -367,8 +367,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -379,49 +379,49 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=8 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="borderft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="gradientpage|borderft">_Border:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">bordermtr</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="gradientpage|borderft">Transition start:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">bordermtr</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkScale" id="borderslider">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">adjustment3</property>
- <property name="round_digits">1</property>
- <property name="draw_value">False</property>
+ <property name="round-digits">1</property>
+ <property name="draw-value">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="bordermtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">end</property>
- <property name="adjustment">percentadjustment</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">percentadjustment</property>
<child internal-child="accessible">
<object class="AtkObject" id="bordermtr-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="gradientpage|extended_tip|bordermtr">Enter the amount by which you want to adjust the area of the endpoint color on the gradient. The endpoint color is the color that is selected in the To Color box.</property>
@@ -429,16 +429,16 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="anglemtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">angleadjustment</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">angleadjustment</property>
<child internal-child="accessible">
<object class="AtkObject" id="anglemtr-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="gradientpage|extended_tip|anglemtr">Enter a rotation angle for the selected gradient.</property>
@@ -446,32 +446,32 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="angleft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="gradientpage|angleft">A_ngle:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">anglemtr</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">anglemtr</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="colortomtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">percentadjustment2</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">percentadjustment2</property>
<child internal-child="accessible">
<object class="AtkObject" id="colortomtr-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="gradientpage|extended_tip|colortomtr">Enter the intensity for the color in the To Color box, where 0% corresponds to black, and 100 % to the selected color.</property>
@@ -479,17 +479,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="colortolb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<property name="label" translatable="no"></property>
<child>
<placeholder/>
@@ -501,32 +501,32 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="colortoft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|colortoft">_To Color:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">colortolb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">colortolb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="colorfromlb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<property name="label" translatable="no"></property>
<child>
<placeholder/>
@@ -538,16 +538,16 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="colorfrommtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">percentadjustment1</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">percentadjustment1</property>
<child internal-child="accessible">
<object class="AtkObject" id="colorfrommtr-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="gradientpage|extended_tip|colorfrommtr">Enter the intensity for the color in the From Color box, where 0% corresponds to black, and 100 % to the selected color.</property>
@@ -555,36 +555,36 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="colorfromft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|colorfromft">_From Color:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">colorfromlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">colorfromlb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkScale" id="angleslider">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="adjustment">angleadjustmentslider</property>
- <property name="draw_value">False</property>
+ <property name="draw-value">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -596,14 +596,14 @@
</child>
<child>
<object class="GtkBox" id="box1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_center_x">Center X</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">centerxmtr</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">centerxmtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -614,10 +614,10 @@
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_center_y">Center Y</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">centerymtr</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">centerymtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -628,10 +628,10 @@
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_percentage_from">From color percentage</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">colorfrommtr</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">colorfrommtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -642,10 +642,10 @@
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|a11y_percentage_to">To color percentage</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">colortomtr</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">colortomtr</property>
</object>
<packing>
<property name="expand">False</property>
@@ -665,7 +665,7 @@
<child type="label">
<object class="GtkLabel" id="propfl">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|propfl">Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -682,33 +682,33 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="previewctl">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="previewctl-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="gradientpage|previewctl-atkobject">Example</property>
@@ -730,7 +730,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="gradientpage|label2">Preview</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -741,7 +741,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
diff --git a/cui/uiconfig/ui/hangulhanjaoptdialog.ui b/cui/uiconfig/ui/hangulhanjaoptdialog.ui
index bab275ea1749..7860bf7e2979 100644
--- a/cui/uiconfig/ui/hangulhanjaoptdialog.ui
+++ b/cui/uiconfig/ui/hangulhanjaoptdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore2">
@@ -17,30 +17,30 @@
</columns>
</object>
<object class="GtkDialog" id="HangulHanjaOptDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="hangulhanjaoptdialog|HangulHanjaOptDialog">Hangul/Hanja Options</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -53,8 +53,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -67,8 +67,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -82,48 +82,48 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="new">
<property name="label" translatable="yes" context="hangulhanjaoptdialog|new">New...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="new-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hangulhanjaoptdialog|extended_tip|new">Opens the New dictionary dialog box, where you can create a new dictionary.</property>
@@ -140,8 +140,8 @@
<object class="GtkButton" id="edit">
<property name="label" translatable="yes" context="hangulhanjaoptdialog|edit">Edit...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="edit-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hangulhanjaoptdialog|extended_tip|edit">Opens the Edit Custom Dictionary dialog where you can edit any user-defined dictionary.</property>
@@ -158,8 +158,8 @@
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="stock">_Delete</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="delete-atkobject">
@@ -175,28 +175,28 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="dicts">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore2</property>
- <property name="headers_visible">False</property>
- <property name="search_column">1</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">1</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -228,15 +228,15 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="dicts-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="hangulhanjaoptdialog|extended_tip|dicts">Lists all user-defined dictionaries. Select the check box next to the dictionary that you want to use. Clear the check box next to the dictionary that you do not want to use.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="hangulhanjaoptdialog|extended_tip|dicts">Lists all user-defined dictionaries. Select the check box next to the dictionaries that you want to use. Clear the check box next to the dictionaries that you do not want to use.</property>
</object>
</child>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -244,7 +244,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hangulhanjaoptdialog|label1">User-defined Dictionaries</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -253,32 +253,32 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkCheckButton" id="ignorepost">
<property name="label" translatable="yes" context="hangulhanjaoptdialog|ignorepost">Ignore post-positional word</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ignorepost-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hangulhanjaoptdialog|extended_tip|ignorepost">Ignores positional characters at the end of Korean words when you search a dictionary.</property>
@@ -286,18 +286,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="showrecentfirst">
<property name="label" translatable="yes" context="hangulhanjaoptdialog|showrecentfirst">Show recently used entries first</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="showrecentfirst-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hangulhanjaoptdialog|extended_tip|showrecentfirst">Shows the replacement suggestion that you selected the last time as the first entry on the list.</property>
@@ -305,18 +305,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="autoreplaceunique">
<property name="label" translatable="yes" context="hangulhanjaoptdialog|autoreplaceunique">Replace all unique entries automatically</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="autoreplaceunique-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hangulhanjaoptdialog|extended_tip|autoreplaceunique">Automatically replaces words that only have one suggested word replacement.</property>
@@ -324,8 +324,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -333,7 +333,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hangulhanjaoptdialog|label2">Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -342,8 +342,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -360,8 +360,5 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
</object>
</interface>
diff --git a/cui/uiconfig/ui/hatchpage.ui b/cui/uiconfig/ui/hatchpage.ui
index 1fc21ef8ce09..6bd05cd36025 100644
--- a/cui/uiconfig/ui/hatchpage.ui
+++ b/cui/uiconfig/ui/hatchpage.ui
@@ -325,7 +325,7 @@
</child>
<child>
<object class="GtkCheckButton" id="backgroundcolor">
- <property name="label" translatable="yes" context="hatchpage|backgroundcolor">Background Color</property>
+ <property name="label" translatable="yes" context="hatchpage|backgroundcolor">Background Color:</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
diff --git a/cui/uiconfig/ui/hyperlinkdialog.ui b/cui/uiconfig/ui/hyperlinkdialog.ui
index 57b9f665f606..c0eb4f085906 100644
--- a/cui/uiconfig/ui/hyperlinkdialog.ui
+++ b/cui/uiconfig/ui/hyperlinkdialog.ui
@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="HyperlinkDialog">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="hyperlinkdialog|HyperlinkDialog">Hyperlink</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="reset">
<property name="label" translatable="yes" context="hyperlinkdialog|reset">Reset</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="reset-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkdialog|extended_tip|reset">Resets the entries in the dialog to their original state.</property>
@@ -44,8 +44,8 @@
<object class="GtkButton" id="apply">
<property name="label" translatable="yes" context="hyperlinkdialog|apply">Apply</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="apply-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkdialog|extended_tip|apply">Applies the data to your document.</property>
@@ -62,10 +62,10 @@
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -78,8 +78,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cancel-atkobject">
@@ -97,8 +97,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -112,46 +112,23 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkNotebook" id="tabcontrol">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="tab_pos">left</property>
+ <property name="tab-pos">left</property>
+ <property name="group-name">icons</property>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -160,14 +137,14 @@
<child type="tab">
<object class="GtkBox" id="internet">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLINETTP_HELP">This is where you create a hyperlink to a Web page or FTP server connection.</property>
- <property name="icon_name">res/hlinettp.png</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLINETTP_HELP">This is where you create a hyperlink to a Web page.</property>
+ <property name="icon-name">res/hlinettp.png</property>
<property name="icon_size">6</property>
</object>
<packing>
@@ -179,10 +156,10 @@
<child>
<object class="GtkLabel" id="RID_SVXSTR_HYPERDLG_HLINETTP">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLINETTP">_Internet</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">internet</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">internet</property>
</object>
<packing>
<property name="expand">False</property>
@@ -192,38 +169,14 @@
</child>
</object>
<packing>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -235,14 +188,14 @@
<child type="tab">
<object class="GtkBox" id="mail">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLMAILTP_HELP">This is where you create a hyperlink to an email address.</property>
- <property name="icon_name">res/hlmailtp.png</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLMAILTP_HELP">This is where you create a hyperlink to an email address.</property>
+ <property name="icon-name">res/hlmailtp.png</property>
<property name="icon_size">6</property>
</object>
<packing>
@@ -254,10 +207,10 @@
<child>
<object class="GtkLabel" id="RID_SVXSTR_HYPERDLG_HLMAILTP">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLMAILTP">_Mail</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">mail</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">mail</property>
</object>
<packing>
<property name="expand">False</property>
@@ -268,38 +221,14 @@
</object>
<packing>
<property name="position">1</property>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -311,14 +240,14 @@
<child type="tab">
<object class="GtkBox" id="document">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLDOCTP_HELP">This is where you create a hyperlink to an existing document or a target within a document.</property>
- <property name="icon_name">res/hldoctp.png</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLDOCTP_HELP">This is where you create a hyperlink to an existing document or a target within a document.</property>
+ <property name="icon-name">res/hldoctp.png</property>
<property name="icon_size">6</property>
</object>
<packing>
@@ -330,10 +259,10 @@
<child>
<object class="GtkLabel" id="RID_SVXSTR_HYPERDLG_HLDOCTP">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLDOCTP">_Document</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">document</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">document</property>
</object>
<packing>
<property name="expand">False</property>
@@ -344,38 +273,14 @@
</object>
<packing>
<property name="position">2</property>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="can-focus">False</property>
<child>
<placeholder/>
</child>
@@ -387,14 +292,14 @@
<child type="tab">
<object class="GtkBox" id="newdocument">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLDOCNTP_HELP">This is where you create a new document to which the new link points.</property>
- <property name="icon_name">res/hldocntp.png</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLDOCNTP_HELP">This is where you create a new document to which the new link points.</property>
+ <property name="icon-name">res/hldocntp.png</property>
<property name="icon_size">6</property>
</object>
<packing>
@@ -406,10 +311,10 @@
<child>
<object class="GtkLabel" id="RID_SVXSTR_HYPERDLG_HLDOCNTP">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdialog|RID_SVXSTR_HYPERDLG_HLDOCNTP">_New Document</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">newdocument</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">newdocument</property>
</object>
<packing>
<property name="expand">False</property>
@@ -420,9 +325,12 @@
</object>
<packing>
<property name="position">3</property>
- <property name="tab_fill">False</property>
+ <property name="tab-fill">False</property>
</packing>
</child>
+ <style>
+ <class name="with-icons"/>
+ </style>
</object>
<packing>
<property name="expand">True</property>
@@ -439,8 +347,5 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
</object>
</interface>
diff --git a/cui/uiconfig/ui/hyperlinkdocpage.ui b/cui/uiconfig/ui/hyperlinkdocpage.ui
index 335e90778e5d..74f7eb409c5c 100644
--- a/cui/uiconfig/ui/hyperlinkdocpage.ui
+++ b/cui/uiconfig/ui/hyperlinkdocpage.ui
@@ -1,63 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">res/target.png</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">res/target.png</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">res/fileopen.png</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">res/fileopen.png</property>
</object>
<object class="GtkBox" id="HyperlinkDocPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="path_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|path_label">_Path:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">path</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">path</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="fileopen">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkdocpage|fileopen|tooltip_text">Open File</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkdocpage|fileopen|tooltip_text">Open File</property>
<property name="image">image2</property>
<property name="always-show-image">True</property>
<child internal-child="accessible">
@@ -67,21 +67,21 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="path">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
</child>
<child internal-child="accessible">
@@ -91,8 +91,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -100,7 +100,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|label2">Document</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -117,53 +117,53 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="target_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|target_label">Targ_et:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">target</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">target</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="url_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|url_label">URL:</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="browse">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkdocpage|browse|tooltip_text">Target in Document</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkdocpage|browse|tooltip_text">Target in Document</property>
<property name="image">image1</property>
<property name="always-show-image">True</property>
<child internal-child="accessible">
@@ -173,15 +173,15 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="target">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="target-atkobject">
@@ -190,32 +190,32 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="url">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|url">Test text</property>
+ <property name="ellipsize">middle</property>
+ <property name="max-width-chars">20</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ <property name="width">2</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|label3">Target in Document</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -232,71 +232,71 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">end</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="frame_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|frame_label">F_rame:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">frame</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">frame</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="indication_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|indication_label">Te_xt:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">indication</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">indication</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="name_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|name_label">N_ame:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">name</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">name</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="indication">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="indication-atkobject">
@@ -305,15 +305,15 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="name">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="name-atkobject">
@@ -322,36 +322,36 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=1 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="form_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|form_label">F_orm:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">form</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">form</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="form">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="form-atkobject">
@@ -360,16 +360,16 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="script">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkdocpage|script|tooltip_text">Events</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkdocpage|script|tooltip_text">Events</property>
<child internal-child="accessible">
<object class="AtkObject" id="script-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkdocpage|extended_tip|script">Opens the Assign Macro dialog, in which you can give events such as "mouse over object" or "trigger hyperlink" their own program codes.</property>
@@ -377,23 +377,15 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="frame">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="combobox-entry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="frame-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkdocpage|extended_tip|frame">Enter the name of the frame that you want the linked file to open in, or select a predefined frame from the list. If you leave this box blank, the linked file opens in the current browser window.</property>
@@ -401,14 +393,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -416,7 +408,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkdocpage|label1">Further Settings</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/hyperlinkinternetpage.ui b/cui/uiconfig/ui/hyperlinkinternetpage.ui
index 48b6a450a094..f8da048893dc 100644
--- a/cui/uiconfig/ui/hyperlinkinternetpage.ui
+++ b/cui/uiconfig/ui/hyperlinkinternetpage.ui
@@ -1,195 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="HyperlinkInternetPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkRadioButton" id="linktyp_internet">
- <property name="label" translatable="yes" context="hyperlinkinternetpage|linktyp_internet">_Web</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="linktyp_internet-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|linktyp_internet">Creates an "http://" hyperlink.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="linktyp_ftp">
- <property name="label" translatable="yes" context="hyperlinkinternetpage|linktyp_ftp">_FTP</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">linktyp_internet</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="linktyp_ftp-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|linktyp_ftp">Creates an "FTP://" hyperlink.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="target_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkinternetpage|target_label">_URL:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">target</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="login_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes" context="hyperlinkinternetpage|login_label">_Login name:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">login</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="password_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes" context="hyperlinkinternetpage|password_label">_Password:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">password</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">target</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="login">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="login-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|login">Specifies your login name, if you are working with FTP addresses.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="password">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="password-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|password">Specifies your password, if you are working with FTP addresses.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="anonymous">
- <property name="label" translatable="yes" context="hyperlinkinternetpage|anonymous">Anonymous _user</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="anonymous-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|anonymous">Allows you to log in to the FTP address as an anonymous user.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="target">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
</child>
<child internal-child="accessible">
@@ -199,29 +60,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="indication_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkinternetpage|indication_label">Te_xt:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">indication</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">indication</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="indication">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="indication-atkobject">
@@ -230,35 +91,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
- <child>
- <object class="GtkLabel" id="lbProtocol">
- <property name="name">lbProtocol</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="hyperlinkinternetpage|protocol_label">Proto_col:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">linktyp_internet</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="hyperlinkinternetpage|label2">Hyperlink Type</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="hyperlinkinternetpage|label2">Hyperlink Settings</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -274,56 +117,56 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">end</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="frame_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkinternetpage|frame_label">F_rame:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">frame</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">frame</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="name_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="hyperlinkinternetpage|name_label">N_ame:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">name</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">name</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="name">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="name-atkobject">
@@ -332,36 +175,36 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=1 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="form_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkinternetpage|form_label">F_orm:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">form</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">form</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="form">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="form-atkobject">
@@ -370,16 +213,16 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="script">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="hyperlinkinternetpage|script|tooltip_text">Events</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="hyperlinkinternetpage|script|tooltip_text">Events</property>
<child internal-child="accessible">
<object class="AtkObject" id="script-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|script">Opens the Assign Macro dialog, in which you can give events such as "mouse over object" or "trigger hyperlink" their own program codes.</property>
@@ -387,23 +230,15 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="frame">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="combobox-entry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="frame-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|frame">Enter the name of the frame that you want the linked file to open in, or select a predefined frame from the list. If you leave this box blank, the linked file opens in the current browser window.</property>
@@ -411,14 +246,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -426,7 +261,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyperlinkinternetpage|label1">Further Settings</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -442,19 +277,16 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="HyperlinkInternetPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|HyperlinkInternetPage">Use the Internet page of the Hyperlink dialog to edit hyperlinks with WWW or FTP addresses.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkinternetpage|extended_tip|HyperlinkInternetPage">Use the Internet page of the Hyperlink dialog to edit hyperlinks with WWW addresses.</property>
</object>
</child>
</object>
<object class="GtkSizeGroup" id="sizegroup1">
<widgets>
<widget name="target_label"/>
- <widget name="login_label"/>
- <widget name="password_label"/>
<widget name="frame_label"/>
<widget name="indication_label"/>
<widget name="name_label"/>
- <widget name="lbProtocol"/>
</widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/hyperlinkmailpage.ui b/cui/uiconfig/ui/hyperlinkmailpage.ui
index edf8db7b77a5..f76d74aaf6f9 100644
--- a/cui/uiconfig/ui/hyperlinkmailpage.ui
+++ b/cui/uiconfig/ui/hyperlinkmailpage.ui
@@ -311,14 +311,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="combobox-entry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="frame-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinkmailpage|extended_tip|frame">Enter the name of the frame that you want the linked file to open in, or select a predefined frame from the list. If you leave this box blank, the linked file opens in the current browser window.</property>
diff --git a/cui/uiconfig/ui/hyperlinknewdocpage.ui b/cui/uiconfig/ui/hyperlinknewdocpage.ui
index 196a8fb0d768..a087c403b344 100644
--- a/cui/uiconfig/ui/hyperlinknewdocpage.ui
+++ b/cui/uiconfig/ui/hyperlinknewdocpage.ui
@@ -395,14 +395,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="combobox-entry">
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
- </object>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="frame-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyperlinknewdocpage|extended_tip|frame">Enter the name of the frame that you want the linked file to open in, or select a predefined frame from the list. If you leave this box blank, the linked file opens in the current browser window.</property>
diff --git a/cui/uiconfig/ui/hyphenate.ui b/cui/uiconfig/ui/hyphenate.ui
index 386e5a98d2f7..1a8814e375eb 100644
--- a/cui/uiconfig/ui/hyphenate.ui
+++ b/cui/uiconfig/ui/hyphenate.ui
@@ -1,41 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="icon-name">go-previous</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="icon-name">go-next</property>
</object>
<object class="GtkDialog" id="HyphenateDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="hyphenate|HyphenateDialog">Hyphenation</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -49,8 +49,8 @@
<object class="GtkButton" id="hyphall">
<property name="label" translatable="yes" context="hyphenate|hyphall">Hyphenate All</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -62,8 +62,8 @@
<object class="GtkButton" id="close">
<property name="label" translatable="yes" context="stock">_Close</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -76,34 +76,34 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="hyphenate|ok">Hyphenate</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ok-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyphenate|extended_tip|ok">Inserts the hyphen at the indicated position.</property>
@@ -120,8 +120,8 @@
<object class="GtkButton" id="continue">
<property name="label" translatable="yes" context="hyphenate|continue">Skip</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="continue-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyphenate|extended_tip|continue">Ignores the hyphenation suggestion and finds the next word to hyphenate.</property>
@@ -138,8 +138,8 @@
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="stock">_Remove</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="delete-atkobject">
@@ -155,41 +155,41 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="hyphenate|label1">Word:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">worded</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">worded</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkEntry" id="worded">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="editable">False</property>
- <property name="activates_default">True</property>
- <property name="width_chars">32</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">32</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="worded-atkobject">
@@ -198,53 +198,57 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="left">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" context="hyphenate|tooltip|left" translatable="yes">Left</property>
<property name="halign">end</property>
<property name="image">image1</property>
<property name="always-show-image">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="left-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="hyphenate|button_name|left">Left</property>
<property name="AtkObject::accessible-description" translatable="yes" context="hyphenate|extended_tip|left">Set the position of the hyphen. This option is only available if more than one hyphenation suggestion is displayed.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="right">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" context="hyphenate|tooltip|right" translatable="yes">Right</property>
<property name="halign">start</property>
<property name="image">image2</property>
<property name="always-show-image">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="right-atkobject">
+ <property name="AtkObject::accessible-name" context="hyphenate|button_name|right" translatable="yes">Right</property>
<property name="AtkObject::accessible-description" translatable="yes" context="hyphenate|extended_tip|right">Set the position of the hyphen. This option is only available if more than one hyphenation suggestion is displayed.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
<property name="width">2</property>
</packing>
</child>
@@ -265,9 +269,6 @@
<action-widget response="101">hyphall</action-widget>
<action-widget response="-7">close</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="HyphenateDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="hyphenate|extended_tip|HyphenateDialog">Inserts hyphens in words that are too long to fit at the end of a line.</property>
diff --git a/cui/uiconfig/ui/iconselectordialog.ui b/cui/uiconfig/ui/iconselectordialog.ui
index fa09b17a5889..9ee6ee8847cb 100644
--- a/cui/uiconfig/ui/iconselectordialog.ui
+++ b/cui/uiconfig/ui/iconselectordialog.ui
@@ -61,7 +61,6 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use-underline">True</property>
- <property name="xalign">0.5</property>
</object>
<packing>
<property name="expand">False</property>
@@ -166,7 +165,7 @@
<property name="use_underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="importButton-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="iconselectordialog|extended_tip|importButton">Adds new icons to the list of icons. You see a file open dialog that imports the selected icon or icons into the internal icon directory of %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="iconselectordialog|extended_tip|importButton">Adds new icons to the list of icons. You see the Open dialog that imports the selected icon or icons into the internal icon directory of the office suite.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/imagetabpage.ui b/cui/uiconfig/ui/imagetabpage.ui
index f4574f298560..f83ea9a5df74 100644
--- a/cui/uiconfig/ui/imagetabpage.ui
+++ b/cui/uiconfig/ui/imagetabpage.ui
@@ -1,49 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkBox" id="ImageTabPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="spacing">6</property>
<child>
<object class="GtkFrame" id="Fill Frame">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkScrolledWindow" id="imagewin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="IMAGE">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="vexpand">True</property>
</object>
@@ -61,8 +61,8 @@
<object class="GtkButton" id="BTN_IMPORT">
<property name="label" translatable="yes" context="imagetabpage|BTN_IMPORT">Add / Import</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="BTN_IMPORT-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="imagetabpage|extended_tip|BTN_IMPORT">Locate the image that you want to import, and then click Open. The image is added to the end of the list of available images.</property>
@@ -80,7 +80,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label1">Image</property>
<property name="xalign">0</property>
<attributes>
@@ -98,35 +98,35 @@
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label3">Style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">imagestyle</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">imagestyle</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -138,7 +138,7 @@
<child>
<object class="GtkComboBoxText" id="imagestyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="imagetabpage|imagestyle">Custom position/size</item>
<item translatable="yes" context="imagetabpage|imagestyle">Tiled</item>
@@ -161,13 +161,13 @@
<child>
<object class="GtkBox" id="sizebox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label4">Size:</property>
<property name="xalign">0</property>
</object>
@@ -180,15 +180,15 @@
<child>
<object class="GtkBox" id="box6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label5">Width:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">width</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">width</property>
</object>
<packing>
<property name="expand">False</property>
@@ -199,9 +199,9 @@
<child>
<object class="GtkSpinButton" id="width">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
+ <property name="truncate-multiline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -219,15 +219,15 @@
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label6">Height:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">height</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">height</property>
</object>
<packing>
<property name="expand">False</property>
@@ -238,9 +238,9 @@
<child>
<object class="GtkSpinButton" id="height">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="truncate-multiline">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
+ <property name="truncate-multiline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -257,12 +257,12 @@
</child>
<child>
<object class="GtkCheckButton" id="scaletsb">
- <property name="label" translatable="yes" context="imagetabpage|scaletsb">Scale</property>
+ <property name="label" translatable="yes" context="imagetabpage|scaletsb">As percentage of the parent</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -280,16 +280,16 @@
<child>
<object class="GtkBox" id="posbox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label7">Position:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">positionlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">positionlb</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -301,7 +301,7 @@
<child>
<object class="GtkComboBoxText" id="positionlb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="imagetabpage|positionlb">Top Left</item>
<item translatable="yes" context="imagetabpage|positionlb">Top Center</item>
@@ -330,13 +330,13 @@
<child>
<object class="GtkBox" id="posoffbox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label9">Tiling Position:</property>
<property name="xalign">0</property>
</object>
@@ -349,16 +349,16 @@
<child>
<object class="GtkBox" id="box9">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label10">X-Offset:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">posoffx</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">posoffx</property>
</object>
<packing>
<property name="expand">False</property>
@@ -369,8 +369,8 @@
<child>
<object class="GtkSpinButton" id="posoffx">
<property name="visible">True</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
</object>
<packing>
<property name="expand">True</property>
@@ -388,16 +388,16 @@
<child>
<object class="GtkBox" id="box7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label11">Y-Offset:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">posoffy</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">posoffy</property>
</object>
<packing>
<property name="expand">False</property>
@@ -408,8 +408,8 @@
<child>
<object class="GtkSpinButton" id="posoffy">
<property name="visible">True</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
- <property name="can_focus">True</property>
</object>
<packing>
<property name="expand">True</property>
@@ -434,16 +434,16 @@
<child>
<object class="GtkBox" id="tileoffbox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel" id="label15">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label15">Tiling Offset:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">tileofflb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">tileofflb</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -455,12 +455,12 @@
<child>
<object class="GtkBox" id="box13">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkComboBoxText" id="tileofflb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
@@ -477,7 +477,7 @@
<child>
<object class="GtkSpinButton" id="tileoffmtr">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="truncate-multiline">True</property>
<property name="adjustment">adjustment1</property>
@@ -507,7 +507,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label2">Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -524,33 +524,33 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_IMAGE_PREVIEW">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_IMAGE_PREVIEW-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="imagetabpage|CTL_IMAGE_PREVIEW-atkobject">Example</property>
@@ -572,7 +572,7 @@
<child type="label">
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="imagetabpage|label8">Preview</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -583,7 +583,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
diff --git a/cui/uiconfig/ui/javastartparametersdialog.ui b/cui/uiconfig/ui/javastartparametersdialog.ui
index ec6b490b1f6a..a89a0d398280 100644
--- a/cui/uiconfig/ui/javastartparametersdialog.ui
+++ b/cui/uiconfig/ui/javastartparametersdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -11,32 +11,32 @@
</columns>
</object>
<object class="GtkDialog" id="JavaStartParameters">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="javastartparametersdialog|JavaStartParameters">Java Start Parameters</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -49,8 +49,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -63,8 +63,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -78,89 +78,89 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=5 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="javastartparametersdialog|label4">Java start _parameter</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">parameterfield</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">parameterfield</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="parameterfield">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="parameterfield-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|parameterfield">Enter a start parameter for a JRE as you would on a command line. Click Assign to add the parameter to the list of available start parameters.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|parameterfield">Enter a start parameter for a JRE as you would on a command line. Click Add to include the parameter to the list of available start parameters.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="javastartparametersdialog|label5">Assig_ned start parameters</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">assignlist</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">assignlist</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="assignlist">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="headers_clickable">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="headers-clickable">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection1"/>
</child>
@@ -183,29 +183,32 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="javastartparametersdialog|label6">For example: -Dmyprop=c:\\program files\\java</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="assignbtn">
<property name="label" translatable="yes" context="javastartparametersdialog|assignbtn">_Add</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="assignbtn-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|assignbtn">Adds the current JRE start parameter to the list.</property>
@@ -213,24 +216,24 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkButton" id="editbtn">
<property name="label" translatable="yes" context="javastartparametersdialog|editbtn">_Edit</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">start</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="editbtn-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|editbtn">Opens a dialog where the selected JRE start parameter can be edited.</property>
@@ -247,10 +250,10 @@
<object class="GtkButton" id="removebtn">
<property name="label" translatable="yes" context="javastartparametersdialog|removebtn">_Remove</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">start</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="removebtn-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|removebtn">Deletes the selected JRE start parameter.</property>
@@ -265,8 +268,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
@@ -299,8 +302,5 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
</object>
</interface>
diff --git a/cui/uiconfig/ui/langtoolconfigpage.ui b/cui/uiconfig/ui/langtoolconfigpage.ui
new file mode 100644
index 000000000000..98da2f9c88e6
--- /dev/null
+++ b/cui/uiconfig/ui/langtoolconfigpage.ui
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="cui">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkBox" id="OptLangToolPage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="border-width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <!-- n-columns=2 n-rows=3 -->
+ <object class="GtkGrid" id="grid0">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="disclaimer">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|disclaimer">If you enable this, the data will be sent to an external server.</property>
+ <property name="wrap">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="disclaimer-atkobject">
+ <property name="AtkObject::accessible-role">static</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLinkButton" id="policy">
+ <property name="label" translatable="yes" context="langtoolconfigpage|policy">Please read the privacy policy</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">start</property>
+ <property name="relief">none</property>
+ <property name="uri">https://languagetool.org/legal/privacy</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="activate">
+ <property name="label" translatable="yes" context="langtoolconfigpage|activate">Enable LanguageTool</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockactivate">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="langtoolsettings">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|langtoolsettings">LanguageTool API Options</property>
+ <attributes>
+ <attribute name="style" value="normal"/>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="apisettings">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <!-- n-columns=3 n-rows=9 -->
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="base">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|base">Base URL:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">baseurl</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="baseurl">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="truncate-multiline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="usernamelbl">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|usernamelbl">Username:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">username</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="apikeylbl">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|apikeylbl">API key:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">apikey</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="username">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="truncate-multiline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="apikey">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="truncate-multiline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="urldesc">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|urldesc">Please use the base URL, i.e., without “/check” at the end.</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="urldesc-atkobject">
+ <property name="AtkObject::accessible-role">static</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="usernamedesc">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|usernamedesc">Your LanguageTool account’s username for premium usage.</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="usernamedesc-atkobject">
+ <property name="AtkObject::accessible-role">static</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="apikeydesc">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|apikeydesc">Your LanguageTool account’s API key for premium usage.</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="apikeydesc-atkobject">
+ <property name="AtkObject::accessible-role">static</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="restlbl">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|restlbl">REST protocol:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">restprotocol</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="restprotocol">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="truncate-multiline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="restdesc">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|restdesc">Your LanguageTool REST API protocol for usage.</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="restdesc-atkobject">
+ <property name="AtkObject::accessible-role">static</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="verifyssl">
+ <property name="label" translatable="yes" context="langtoolconfigpage|verifyssl">Disable SSL certificate verification</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">8</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockbaseurl">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockusername">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockapikey">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockrestprotocol">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockverifyssl">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">8</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="apisettingsheader">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="langtoolconfigpage|apisettingsheader">API Settings</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/cui/uiconfig/ui/lineendstabpage.ui b/cui/uiconfig/ui/lineendstabpage.ui
index c4597471c97e..93f8815fbc6c 100644
--- a/cui/uiconfig/ui/lineendstabpage.ui
+++ b/cui/uiconfig/ui/lineendstabpage.ui
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">res/sc05501.png</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">res/sc05501.png</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">res/sc05502.png</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">res/sc05502.png</property>
</object>
<object class="GtkListStore" id="liststore4">
<columns>
@@ -26,86 +26,73 @@
</object>
<object class="GtkFrame" id="LineEndPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="border-width">6</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
- <property name="margin-end">12</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="FT_TITLE">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="lineendstabpage|FT_TITLE">_Title:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">EDT_NAME</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="FT_LINE_END_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="lineendstabpage|FT_LINE_END_STYLE">Arrow _style:</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkEntry" id="EDT_NAME">
+ <object class="GtkLabel" id="FT_TITLE">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="halign">start</property>
- <property name="truncate-multiline">True</property>
- <property name="width_chars">30</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="lineendstabpage|FT_TITLE">Style _name:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">EDT_NAME</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="LB_LINEENDS">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="model">liststore4</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
@@ -114,26 +101,27 @@
</child>
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext4"/>
+ <attributes>
+ <attribute name="surface">3</attribute>
+ </attributes>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="FI_TIP">
+ <object class="GtkEntry" id="EDT_NAME">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">end</property>
- <property name="vexpand">True</property>
- <property name="label" translatable="yes" context="lineendstabpage|FI_TIP">Add a selected object to create new arrow styles.</property>
- <property name="xalign">0</property>
+ <property name="can-focus">True</property>
+ <property name="halign">start</property>
+ <property name="width-chars">30</property>
+ <property name="truncate-multiline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -146,18 +134,24 @@
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="BTN_ADD">
<property name="label" translatable="yes" context="stock">_Add</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="lineendstabpage|BTN_ADD|tooltip_text">Adds selected shape as Arrow Style.</property>
+ <property name="use-underline">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="BTN_ADD-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="lineendstabpage|extended_tip|BTN_ADD">To add a new Arrow Style, first select the shape in the document to be added, then open this dialog and press Add. If the selected shape is not permitted as an Arrow Style, then the Add button is not active.</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -167,11 +161,12 @@
</child>
<child>
<object class="GtkButton" id="BTN_MODIFY">
- <property name="label" translatable="yes" context="lineendstabpage|BTN_MODIFY">_Modify</property>
+ <property name="label" translatable="yes" context="lineendstabpage|BTN_MODIFY">_Rename</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="lineendstabpage|BTN_MODIFY|tooltip_text">Applies changes to the Style name.</property>
+ <property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -183,8 +178,8 @@
<object class="GtkButton" id="BTN_DELETE">
<property name="label" translatable="yes" context="stock">_Delete</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="BTN_DELETE-atkobject">
@@ -199,41 +194,41 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
- <property name="column_homogeneous">True</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
+ <property name="column-homogeneous">True</property>
<child>
<object class="GtkButton" id="BTN_LOAD">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="lineendstabpage|BTN_LOAD|tooltip_text">Load arrow styles</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="lineendstabpage|BTN_LOAD|tooltip_text">Load arrow styles</property>
<property name="halign">center</property>
<property name="image">image1</property>
<property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="BTN_SAVE">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="lineendstabpage|BTN_SAVE|tooltip_text">Save arrow styles</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="lineendstabpage|BTN_SAVE|tooltip_text">Save arrow styles</property>
<property name="halign">center</property>
<property name="image">image2</property>
<property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -261,25 +256,25 @@
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">end</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_PREVIEW">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
</child>
</object>
@@ -303,8 +298,8 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="lineendstabpage|label1">Organize Arrow Styles</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="lineendstabpage|label1">Manage Arrow Styles</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/linestyletabpage.ui b/cui/uiconfig/ui/linestyletabpage.ui
index 3c1ca1da79b3..cfadd456ddb2 100644
--- a/cui/uiconfig/ui/linestyletabpage.ui
+++ b/cui/uiconfig/ui/linestyletabpage.ui
@@ -248,7 +248,7 @@
</child>
<child>
<object class="GtkCheckButton" id="CBX_SYNCHRONIZE">
- <property name="label" translatable="yes" context="linestyletabpage|CBX_SYNCHRONIZE">_Fit to line width</property>
+ <property name="label" translatable="yes" context="linestyletabpage|CBX_SYNCHRONIZE">_Fit to line thickness</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
diff --git a/cui/uiconfig/ui/linetabpage.ui b/cui/uiconfig/ui/linetabpage.ui
index a5f9b178fe1d..e28eb4b95c19 100644
--- a/cui/uiconfig/ui/linetabpage.ui
+++ b/cui/uiconfig/ui/linetabpage.ui
@@ -1,36 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustmentHEIGHT_SYMBOL">
<property name="upper">20</property>
- <property name="step_increment">0.05</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.05</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustmentPERCENT">
<property name="upper">100</property>
- <property name="step_increment">5</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">5</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentWIDTH">
<property name="upper">5</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustmentWIDTH1">
<property name="upper">5</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustmentWIDTH2">
<property name="upper">5</property>
- <property name="step_increment">0.1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.10</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustmentWIDTH_SYMBOL">
<property name="upper">20</property>
- <property name="step_increment">0.05</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">0.05</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkListStore" id="liststore4">
<columns>
@@ -70,41 +70,41 @@
</object>
<object class="GtkMenu" id="menuSELECT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkMenuItem" id="none">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|menuitem1">_No Symbol</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="automatic">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|menuitem2">_Automatic</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="file">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|menuitem3">_From file...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="gallery">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|menuitem4">_Gallery</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="gallerysubmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
</child>
</object>
@@ -112,13 +112,13 @@
<child>
<object class="GtkMenuItem" id="symbols">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|menuitem5">_Symbols</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="symbolssubmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
</child>
</object>
@@ -126,45 +126,45 @@
</object>
<object class="GtkBox" id="LineTabPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">24</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkFrame" id="FL_LINE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">3</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="FT_LINE_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_LINE_STYLE">_Style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">LB_LINE_STYLE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">LB_LINE_STYLE</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -176,10 +176,10 @@
<child>
<object class="GtkComboBox" id="LB_LINE_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="model">liststore5</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext7"/>
<attributes>
@@ -188,9 +188,6 @@
</child>
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext11"/>
- <attributes>
- <attribute name="surface">3</attribute>
- </attributes>
</child>
</object>
<packing>
@@ -209,15 +206,15 @@
<child>
<object class="GtkBox" id="boxCOLOR">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="FT_COLOR">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_COLOR">Colo_r:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">LB_COLOR</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">LB_COLOR</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -229,10 +226,10 @@
<child>
<object class="GtkMenuButton" id="LB_COLOR">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<property name="label" translatable="no"></property>
<child>
<placeholder/>
@@ -254,15 +251,15 @@
<child>
<object class="GtkBox" id="boxWIDTH">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="FT_LINE_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="linetabpage|FT_LINE_WIDTH">_Width:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_LINE_WIDTH</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="linetabpage|FT_LINE_WIDTH">T_hickness:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_LINE_WIDTH</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -274,10 +271,10 @@
<child>
<object class="GtkSpinButton" id="MTR_FLD_LINE_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
- <property name="adjustment">adjustmentWIDTH</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentWIDTH</property>
<property name="digits">2</property>
</object>
<packing>
@@ -296,15 +293,15 @@
<child>
<object class="GtkBox" id="boxTRANSPARENCY">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="FT_TRANSPARENT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_TRANSPARENT">_Transparency:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_LINE_TRANSPARENT</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_LINE_TRANSPARENT</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -316,7 +313,7 @@
<child>
<object class="GtkSpinButton" id="MTR_LINE_TRANSPARENT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
<property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentPERCENT</property>
@@ -339,7 +336,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|label1">Line Properties</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -348,58 +345,58 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="height">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="FL_LINE_ENDS">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="boxARROW_STYLES">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">36</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="FT_LINE_ENDS_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_LINE_ENDS_STYLE">Start st_yle:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">LB_START_STYLE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">LB_START_STYLE</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="LB_START_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="model">liststore4</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<attributes>
@@ -408,80 +405,77 @@
</child>
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext2"/>
- <attributes>
- <attribute name="surface">3</attribute>
- </attributes>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="boxSTART">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="TSB_CENTER_START">
<property name="label" translatable="yes" context="linetabpage|TSB_CENTER_START">Ce_nter</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_LINE_START_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_LINE_START_WIDTH">Wi_dth:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_START_WIDTH</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_START_WIDTH</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_START_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
- <property name="adjustment">adjustmentWIDTH1</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentWIDTH1</property>
<property name="digits">2</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="CBX_SYNCHRONIZE">
<property name="label" translatable="yes" context="linetabpage|CBX_SYNCHRONIZE">Synchroni_ze ends</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
@@ -492,8 +486,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
<property name="width">2</property>
</packing>
</child>
@@ -505,19 +499,19 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkComboBox" id="LB_END_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="model">liststore6</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext5"/>
<attributes>
@@ -526,79 +520,76 @@
</child>
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext6"/>
- <attributes>
- <attribute name="surface">3</attribute>
- </attributes>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|label5">End sty_le:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">LB_END_STYLE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">LB_END_STYLE</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="boxEND">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="FT_LINE_END_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_LINE_END_WIDTH">W_idth:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_END_WIDTH</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_END_WIDTH</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_END_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
- <property name="adjustment">adjustmentWIDTH2</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentWIDTH2</property>
<property name="digits">2</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="TSB_CENTER_END">
<property name="label" translatable="yes" context="linetabpage|TSB_CENTER_END">C_enter</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
@@ -606,8 +597,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
<property name="width">2</property>
</packing>
</child>
@@ -630,7 +621,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|label2">Arrow Styles</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -639,58 +630,58 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="FL_EDGE_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="gridEDGE_CAPS">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="FT_EDGE_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_EDGE_STYLE">_Corner style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">LB_EDGE_STYLE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">LB_EDGE_STYLE</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_CAP_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_CAP_STYLE">Ca_p style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">LB_CAP_STYLE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">LB_CAP_STYLE</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="LB_EDGE_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="linetabpage|liststoreEDGE_STYLE">Rounded</item>
<item id="1" translatable="yes" context="linetabpage|liststoreEDGE_STYLE">- none -</item>
@@ -699,14 +690,14 @@
</items>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="LB_CAP_STYLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="linetabpage|liststoreCAP_STYLE">Flat</item>
<item id="1" translatable="yes" context="linetabpage|liststoreCAP_STYLE">Round</item>
@@ -714,8 +705,8 @@
</items>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -723,7 +714,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|label3">Corner and Cap Styles</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -732,34 +723,34 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="FL_SYMBOL_FORMAT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkMenuButton" id="MB_SYMBOL_BITMAP">
<property name="label" translatable="yes" context="linetabpage|MB_SYMBOL_BITMAP">Select...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<property name="popup">menuSELECT</property>
- <property name="use_popover">False</property>
+ <property name="use-popover">False</property>
<child>
<placeholder/>
</child>
@@ -771,80 +762,80 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="gridICON_SIZE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="FT_SYMBOL_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_SYMBOL_WIDTH">Widt_h:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MF_SYMBOL_WIDTH</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MF_SYMBOL_WIDTH</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MF_SYMBOL_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustmentWIDTH_SYMBOL</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentWIDTH_SYMBOL</property>
<property name="digits">2</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="CB_SYMBOL_RATIO">
<property name="label" translatable="yes" context="linetabpage|CB_SYMBOL_RATIO">_Keep ratio</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_SYMBOL_HEIGHT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|FT_SYMBOL_HEIGHT">Hei_ght:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MF_SYMBOL_HEIGHT</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MF_SYMBOL_HEIGHT</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MF_SYMBOL_HEIGHT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustmentHEIGHT_SYMBOL</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentHEIGHT_SYMBOL</property>
<property name="digits">2</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -859,7 +850,7 @@
<child type="label">
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="linetabpage|label4">Icon</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -868,8 +859,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -882,20 +873,20 @@
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_PREVIEW">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_PREVIEW-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="linetabpage|CTL_PREVIEW-atkobject">Example</property>
diff --git a/cui/uiconfig/ui/listdialog.ui b/cui/uiconfig/ui/listdialog.ui
new file mode 100644
index 000000000000..18fffa18640d
--- /dev/null
+++ b/cui/uiconfig/ui/listdialog.ui
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="cui">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkTreeStore" id="liststore1">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkDialog" id="ListDialog">
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="title" translatable="yes" context="listdialog|ListDialog">Edit List</property>
+ <property name="modal">True</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="ok">
+ <property name="label" translatable="yes" context="stock">_OK</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="cancel">
+ <property name="label" translatable="yes" context="stock">_Cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="help">
+ <property name="label" translatable="yes" context="stock">_Help</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="assignlist">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore1</property>
+ <property name="headers-visible">False</property>
+ <property name="headers-clickable">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkButton" id="addbtn">
+ <property name="label" translatable="yes" context="listdialog|addbtn">_Add</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="editbtn">
+ <property name="label" translatable="yes" context="listdialog|editbtn">_Edit</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="valign">start</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="removebtn">
+ <property name="label" translatable="yes" context="listdialog|removebtn">_Remove</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="valign">start</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="description">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">assignlist</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-5">ok</action-widget>
+ <action-widget response="-6">cancel</action-widget>
+ <action-widget response="-11">help</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/cui/uiconfig/ui/macroassignpage.ui b/cui/uiconfig/ui/macroassignpage.ui
index 3ecd4ce3d90c..a444c231f760 100644
--- a/cui/uiconfig/ui/macroassignpage.ui
+++ b/cui/uiconfig/ui/macroassignpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore3">
@@ -14,41 +14,41 @@
<column type="gchararray"/>
</columns>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="MacroAssignPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="assignments">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore3</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -101,7 +101,7 @@
<child type="label">
<object class="GtkLabel" id="libraryft1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="macroassignpage|libraryft1">Assignments</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -110,35 +110,35 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="assign">
<property name="label" translatable="yes" context="macroassignpage|assign">M_acro...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="assign-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="macroassignpage|extended_tip|assign">Opens the Macro Selector to assign a macro to the selected event.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="macroassignpage|extended_tip|assign">Opens the Macro Selector dialog to assign a macro to the selected event.</property>
</object>
</child>
</object>
@@ -152,9 +152,9 @@
<object class="GtkButton" id="component">
<property name="label" translatable="yes" context="macroassignpage|component">Com_ponent...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -166,9 +166,9 @@
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="macroassignpage|delete">Remove</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="delete-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="macroassignpage|extended_tip|delete">Deletes the macro or component assignment for the selected event.</property>
@@ -181,12 +181,26 @@
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="deleteall">
+ <property name="label" translatable="yes" context="macroassignpage|deleteall">Remove _All</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="macroassignpage|label1">Assign</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -195,8 +209,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/cui/uiconfig/ui/macroselectordialog.ui b/cui/uiconfig/ui/macroselectordialog.ui
index 624d853ec035..329c25940912 100644
--- a/cui/uiconfig/ui/macroselectordialog.ui
+++ b/cui/uiconfig/ui/macroselectordialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -21,31 +21,31 @@
</columns>
</object>
<object class="GtkDialog" id="MacroSelectorDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="macroselectordialog|MacroSelectorDialog">Macro Selector</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -58,9 +58,9 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -73,8 +73,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -88,26 +88,23 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="helpmacro">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="hexpand">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="macroselectordialog|helpmacro">Select the library that contains the macro you want. Then select the macro under 'Macro name'.</property>
<property name="wrap">True</property>
- <property name="max_width_chars">60</property>
+ <property name="max-width-chars">60</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -119,38 +116,33 @@
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
+ <property name="spacing">6</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
- <property name="margin-top">6</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="categories">
- <property name="width_request">-1</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="search_column">1</property>
- <property name="enable_tree_lines">True</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">1</property>
+ <property name="enable-tree-lines">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection1"/>
</child>
@@ -178,7 +170,8 @@
<child type="label">
<object class="GtkLabel" id="libraryft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-bottom">6</property>
<property name="label" translatable="yes" context="macroselectordialog|libraryft">Library</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -195,30 +188,23 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
- <property name="margin-top">6</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="commands">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="model">liststore2</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Tree List-selection1"/>
</child>
@@ -239,7 +225,8 @@
<child type="label">
<object class="GtkLabel" id="macronameft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-bottom">6</property>
<property name="label" translatable="yes" context="macroselectordialog|macronameft">Macro Name</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -255,7 +242,7 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
@@ -263,28 +250,25 @@
<child>
<object class="GtkFrame" id="descriptionframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="height_request">100</property>
+ <property name="height-request">100</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="margin-top">6</property>
+ <property name="can-focus">True</property>
<child>
<object class="GtkTextView" id="description">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
<property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
+ <property name="wrap-mode">word</property>
+ <property name="cursor-visible">False</property>
</object>
</child>
</object>
@@ -292,8 +276,10 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="macroselectordialog|label1">Description</property>
+ <property name="can-focus">False</property>
+ <property name="margin-bottom">6</property>
+ <property name="label" translatable="yes" context="macroselectordialog|label1">_Description</property>
+ <property name="use-underline">True</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -308,7 +294,7 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@@ -320,8 +306,5 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
</object>
</interface>
diff --git a/cui/uiconfig/ui/menuassignpage.ui b/cui/uiconfig/ui/menuassignpage.ui
index 3598678bb1ea..b545c193a352 100644
--- a/cui/uiconfig/ui/menuassignpage.ui
+++ b/cui/uiconfig/ui/menuassignpage.ui
@@ -1,58 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="icon-name">go-up</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="icon-name">go-down</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="icon-name">go-next</property>
<property name="icon_size">3</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="icon-name">go-previous</property>
<property name="icon_size">3</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">open-menu-symbolic</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">open-menu-symbolic</property>
<property name="icon_size">2</property>
</object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">open-menu-symbolic</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">open-menu-symbolic</property>
<property name="icon_size">2</property>
</object>
<object class="GtkMenu" id="insertmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkMenuItem" id="insertseparator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|insertseparator">Insert Separator</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="insertsubmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|insertsubmenu">Insert Submenu</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
</object>
@@ -96,193 +96,193 @@
</object>
<object class="GtkMenu" id="menugearmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkMenuItem" id="menu_gear_add">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_add">_Add...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="menu_gear_delete">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_delete">_Delete</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="menu_gear_rename">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_rename">_Rename...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="menu_gear_move">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_move">_Move...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
</object>
<object class="GtkMenu" id="modifymenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkMenuItem" id="renameItem">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|renameItem">Rename...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="changeIcon">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|changeIcon">Change Icon...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="resetIcon">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|resetIcon">Reset Icon</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="restoreItem">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|restoreItem">Restore Default Command</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
</object>
<object class="GtkMenu" id="toolbargearmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkMenuItem" id="toolbar_gear_add">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_add">_Add...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="toolbar_gear_delete">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_delete">_Delete</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="toolbar_gear_rename">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_rename">_Rename...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="toolbar_gear_move">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_move">_Move...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="toolbar_gear_separator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="toolbar_gear_iconAndText">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_iconAndText">_Icon and text</property>
- <property name="use_underline">True</property>
- <property name="draw_as_radio">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-as-radio">True</property>
<property name="group">toolbar_gear_iconOnly</property>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="toolbar_gear_iconOnly">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_iconOnly">Icon _only</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_as_radio">True</property>
+ <property name="draw-as-radio">True</property>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="toolbar_gear_textOnly">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="menuassignpage|gear_textOnly">_Text only</property>
- <property name="use_underline">True</property>
- <property name="draw_as_radio">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-as-radio">True</property>
<property name="group">toolbar_gear_iconOnly</property>
</object>
</child>
</object>
<object class="GtkBox" id="MenuAssignPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=8 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">4</property>
- <property name="column_spacing">4</property>
+ <property name="row-spacing">4</property>
+ <property name="column-spacing">4</property>
<child>
<object class="GtkLabel" id="searchlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="label" translatable="yes" context="menuassignpage|contentslabel">_Search</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTextView" id="desc">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes" context="menuassignpage|desc">Description of the currently selected function.</property>
+ <property name="can-focus">True</property>
+ <property name="tooltip-text" translatable="yes" context="menuassignpage|desc">Description of the currently selected function.</property>
<property name="editable">False</property>
- <property name="wrap_mode">word</property>
- <property name="cursor_visible">False</property>
- <property name="accepts_tab">False</property>
+ <property name="wrap-mode">word</property>
+ <property name="cursor-visible">False</property>
+ <property name="accepts-tab">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="desc-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|desc">The text box contains a short description of the selected command.</property>
@@ -292,44 +292,44 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="descriptionlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="label" translatable="yes" context="menuassignpage|label33">D_escription</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">desc</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">desc</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="functions">
- <property name="width_request">-1</property>
+ <property name="width-request">-1</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
+ <property name="can-focus">True</property>
+ <property name="has-tooltip">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="search_column">1</property>
- <property name="enable_tree_lines">True</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">1</property>
+ <property name="enable-tree-lines">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection1"/>
</child>
@@ -359,29 +359,29 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="leftfunctionlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="label" translatable="yes" context="menuassignpage|contentslabel">_Available Commands</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="commandcategorylist">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">4</property>
+ <property name="can-focus">False</property>
+ <property name="margin-bottom">4</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="commandcategorylist-atkobject">
@@ -390,32 +390,32 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="categorylabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="label" translatable="yes" context="menuassignpage|contentslabel">Categor_y</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">commandcategorylist</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">commandcategorylist</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="searchEntry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="margin_bottom">4</property>
- <property name="placeholder_text" translatable="yes" context="menuassignpage|searchEntry">Type to search</property>
+ <property name="can-focus">True</property>
+ <property name="margin-bottom">4</property>
<property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="menuassignpage|searchEntry">Type to search</property>
<child internal-child="accessible">
<object class="AtkObject" id="searchEntry-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|searchEntry">Enter a string in the text box to narrow the search of commands.</property>
@@ -423,65 +423,65 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">4</property>
+ <property name="can-focus">False</property>
+ <property name="margin-bottom">4</property>
<property name="hexpand">True</property>
<child>
<object class="GtkComboBoxText" id="savein">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="margin-end">5</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="savein-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|savein">Select the location where the menu is to be attached. If attached to a %PRODUCTNAME module, the menu is available for all files opened in that module. If attached to the file, the menu will be available only when that file is opened and active.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|savein">Select the location where the menu is to be attached. If attached to an office suite module, the menu is available for all files opened in that module. If attached to the file, the menu will be available only when that file is opened and active.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="functionbtn">
<property name="label" translatable="yes" context="menuassignpage|functionbtn">_Function</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="image_position">right</property>
+ <property name="use-underline">True</property>
+ <property name="image-position">right</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">4</property>
+ <property name="can-focus">False</property>
+ <property name="margin-bottom">4</property>
<child>
<object class="GtkComboBoxText" id="toplevellist">
- <property name="width_request">1</property>
+ <property name="width-request">1</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="toplevellist-atkobject">
@@ -490,20 +490,20 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="menugearbtn">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="halign">end</property>
<property name="margin-start">1</property>
<property name="image">image7</property>
- <property name="always_show_image">True</property>
+ <property name="always-show-image">True</property>
<property name="popup">menugearmenu</property>
- <property name="use_popover">False</property>
+ <property name="use-popover">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="menugearbtn-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="menuassignpage|menugearbtn">Gear Menu</property>
@@ -512,20 +512,20 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="toolbargearbtn">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="halign">end</property>
<property name="margin-start">1</property>
<property name="image">image8</property>
- <property name="always_show_image">True</property>
+ <property name="always-show-image">True</property>
<property name="popup">toolbargearmenu</property>
- <property name="use_popover">False</property>
+ <property name="use-popover">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="toolbargearbtn-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="menuassignpage|toolbargearbtn">Gear Menu</property>
@@ -534,43 +534,44 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="entries">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="margin_bottom">4</property>
+ <property name="can-focus">True</property>
+ <property name="margin-bottom">4</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="GtkScrolledWindow">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="toolcontents">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
+ <property name="has-tooltip">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore2</property>
- <property name="headers_visible">False</property>
+ <property name="headers-visible">False</property>
<property name="reorderable">True</property>
- <property name="search_column">1</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">1</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
@@ -604,29 +605,30 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="menucontents">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
+ <property name="has-tooltip">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore3</property>
- <property name="headers_visible">False</property>
+ <property name="headers-visible">False</property>
<property name="reorderable">True</property>
- <property name="search_column">1</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">1</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -661,40 +663,40 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
- <object class="GtkButtonBox">
+ <object class="GtkButtonBox" id="customizebox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
- <property name="margin_top">5</property>
- <property name="margin_bottom">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
<property name="hexpand">True</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkMenuButton" id="insert">
<property name="label" translatable="yes" context="menuassignpage|insert">_Insert</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
- <property name="margin_top">5</property>
- <property name="margin_bottom">5</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="popup">insertmenu</property>
- <property name="use_popover">False</property>
+ <property name="use-popover">False</property>
<child>
<placeholder/>
</child>
@@ -709,16 +711,16 @@
<object class="GtkMenuButton" id="modify">
<property name="label" translatable="yes" context="menuassignpage|modify">_Modify</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
- <property name="margin_top">5</property>
- <property name="margin_bottom">5</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="popup">modifymenu</property>
- <property name="use_popover">False</property>
+ <property name="use-popover">False</property>
<child>
<placeholder/>
</child>
@@ -733,13 +735,13 @@
<object class="GtkButton" id="defaultsbtn">
<property name="label" translatable="yes" context="menuassignpage|defaultsbtn">_Defaults</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
- <property name="margin_top">5</property>
- <property name="margin_bottom">5</property>
- <property name="use_underline">True</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="defaultsbtn-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|defaultsbtn">Resets the selected toolbar, menu, or context menu to its default state.</property>
@@ -754,110 +756,83 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid7">
+ <!-- n-columns=1 n-rows=2 -->
+ <object class="GtkGrid" id="arrowgrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <object class="GtkButton" id="add">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">5</property>
- <child>
- <object class="GtkButton" id="add">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="menuassignpage|add">Add item</property>
- <property name="halign">center</property>
- <property name="valign">start</property>
- <property name="margin_bottom">5</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="image">image3</property>
- <property name="always_show_image">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="add-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|add">Click on the right arrow button to select a function on the left display box and copy to the right display box. This will add the function to the selected menu.</property>
- </object>
- </child>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="menuassignpage|add">Add item</property>
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ <property name="margin-bottom">10</property>
+ <property name="image">image3</property>
+ <property name="always-show-image">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="add-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|add">Click on the right arrow button to select a function on the left display box and copy to the right display box. This will add the function to the selected menu.</property>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <object class="GtkButton" id="remove">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">5</property>
- <child>
- <object class="GtkButton" id="remove">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="menuassignpage|remove">Remove item</property>
- <property name="halign">center</property>
- <property name="valign">end</property>
- <property name="margin_bottom">5</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="image">image4</property>
- <property name="always_show_image">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="remove-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|remove">Click on the left arrow button to remove the selected command from the current menu.</property>
- </object>
- </child>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="menuassignpage|remove">Remove item</property>
+ <property name="halign">center</property>
+ <property name="valign">end</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="image">image4</property>
+ <property name="always-show-image">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="remove-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|remove">Click on the left arrow button to remove the selected command from the current menu.</property>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkButton" id="up">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="menuassignpage|moveupbtn">Move up</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="menuassignpage|moveupbtn">Move up</property>
<property name="image">image1</property>
<property name="always-show-image">True</property>
<child internal-child="accessible">
@@ -867,16 +842,16 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="down">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="menuassignpage|movedownbtn">Move down</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="menuassignpage|movedownbtn">Move down</property>
<property name="image">image2</property>
<property name="always-show-image">True</property>
<child internal-child="accessible">
@@ -886,66 +861,66 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="scopelabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="menuassignpage|scopelabel">S_cope</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="targetlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="menuassignpage|targetlabel">_Target</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="rightfunctionlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="menuassignpage|functionlabel">Assi_gned Commands</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="customizelabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="menuassignpage|customizelabel">_Customize</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
@@ -999,7 +974,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="MenuAssignPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|MenuAssignPage">Lets you customize %PRODUCTNAME menus for all modules.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="menuassignpage|extended_tip|MenuAssignPage">Lets you customize the office suite menus for all modules.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/aboutconfigvaluedialog.ui b/cui/uiconfig/ui/numberdialog.ui
index e4c33bc4d780..a73c160efeec 100644
--- a/cui/uiconfig/ui/aboutconfigvaluedialog.ui
+++ b/cui/uiconfig/ui/numberdialog.ui
@@ -1,49 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <object class="GtkDialog" id="AboutConfigValueDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="title" translatable="yes" context="aboutconfigvaluedialog|AboutConfigValueDialog">Name</property>
+ <object class="GtkAdjustment" id="adjustment1">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkDialog" id="NumberDialog">
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="title" translatable="yes" context="numberdialog|NumberDialog">Enter Number</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
- <child>
- <placeholder/>
- </child>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
- <object class="GtkButton" id="ok">
- <property name="label" translatable="yes" context="stock">_OK</property>
+ <object class="GtkButton" id="help">
+ <property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
+ <property name="secondary">True</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="cancel">
- <property name="label" translatable="yes" context="stock">_Cancel</property>
+ <object class="GtkButton" id="ok">
+ <property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -53,43 +56,40 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="help">
- <property name="label" translatable="yes" context="stock">_Help</property>
+ <object class="GtkButton" id="cancel">
+ <property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
- <property name="secondary">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <object class="GtkLabel" id="label1">
+ <object class="GtkLabel" id="description_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="aboutconfigvaluedialog|label1">Value:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">valuebox</property>
+ <property name="can-focus">False</property>
+ <property name="use-underline">True</property>
+ <property name="wrap">True</property>
+ <property name="mnemonic-widget">number_spinbtn</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -99,23 +99,21 @@
</packing>
</child>
<child>
- <object class="GtkEntry" id="valuebox">
+ <object class="GtkSpinButton" id="number_spinbtn">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
- <property name="width_chars">50</property>
+ <property name="adjustment">adjustment1</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@@ -123,9 +121,9 @@
</object>
</child>
<action-widgets>
+ <action-widget response="-11">help</action-widget>
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
- <action-widget response="-11">help</action-widget>
</action-widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/numberingformatpage.ui b/cui/uiconfig/ui/numberingformatpage.ui
index 2954e7f4bab5..b6147e0a3717 100644
--- a/cui/uiconfig/ui/numberingformatpage.ui
+++ b/cui/uiconfig/ui/numberingformatpage.ui
@@ -396,7 +396,7 @@
<property name="draw_indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="thousands-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="numberingformatpage|extended_tip|thousands">Inserts a separator between thousands. The type of separator that is used depends on your language settings.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="numberingformatpage|extended_tip|thousands">Inserts a separator between thousands. The type of separator that is used depends on your Languages and Locales settings.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/numberingoptionspage.ui b/cui/uiconfig/ui/numberingoptionspage.ui
index adb0ea9cc662..e9d57e62e0e0 100644
--- a/cui/uiconfig/ui/numberingoptionspage.ui
+++ b/cui/uiconfig/ui/numberingoptionspage.ui
@@ -1,58 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
- <property name="upper">19.99</property>
- <property name="step_increment">0.05</property>
- <property name="page_increment">1</property>
+ <property name="upper">19.989999999999998</property>
+ <property name="step-increment">0.05</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="upper">65535</property>
<property name="value">1</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
<property name="lower">1</property>
<property name="upper">10</property>
<property name="value">1</property>
- <property name="step_increment">1</property>
- <property name="page_increment">1</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="adjustment4">
<property name="lower">1</property>
<property name="upper">400</property>
<property name="value">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment5">
- <property name="upper">19.99</property>
- <property name="step_increment">0.05</property>
- <property name="page_increment">1</property>
+ <property name="upper">19.989999999999998</property>
+ <property name="step-increment">0.05</property>
+ <property name="page-increment">1</property>
</object>
<object class="GtkMenu" id="bitmapmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkMenuItem" id="fromfile">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|fromfile">From file...</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="gallery">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|gallery">Gallery</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="gallerysubmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
</child>
</object>
@@ -68,32 +68,32 @@
</object>
<object class="GtkBox" id="NumberingOptionsPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="levellb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="headers_clickable">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="headers-clickable">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection1"/>
</child>
@@ -119,7 +119,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|label1">Level</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -136,48 +136,48 @@
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=15 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="numberingoptionspage|label4">Number:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">numfmtlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">numfmtlb</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="charstyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="charstyle-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|charstyle">Select the Character Style that you want to use in the numbered list.</property>
@@ -185,18 +185,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="sublevels">
<property name="visible">True</property>
<property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment3</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment3</property>
<child internal-child="accessible">
<object class="AtkObject" id="sublevels-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|sublevels">Enter the number of previous levels to include in the numbering scheme. For example, if you enter "2" and the previous level uses the "A, B, C..." numbering, the numbering scheme for the current level becomes: "A.1".</property>
@@ -204,17 +204,36 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="islegal">
+ <property name="label" translatable="yes" context="numberingoptionspage|islegal">All sublevels Arabic</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="islegal-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|islegal">Use Arabic numerals for all sublevels ("Legal" numbering).</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="startat">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment2</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment2</property>
<child internal-child="accessible">
<object class="AtkObject" id="startat-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|startat">Enter a new starting number for the current level.</property>
@@ -222,28 +241,28 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="startatft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|startatft">Start at:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">startat</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">startat</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="numfmtlb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="numfmtlb-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|numfmtlb">Select a numbering scheme for the selected levels.</property>
@@ -251,128 +270,42 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="bitmapft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|bitmapft">Graphics:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">bitmap</property>
- <property name="xalign">1</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">11</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="widthft">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="numberingoptionspage|widthft">Width:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">widthmf</property>
- <property name="xalign">1</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">12</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="widthmf">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment1</property>
- <property name="digits">2</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="widthmf-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|widthmf">Enter a width for the graphic.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">12</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="heightft">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="numberingoptionspage|heightft">Height:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">heightmf</property>
- <property name="ellipsize">end</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">bitmap</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">13</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="heightmf">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment5</property>
- <property name="digits">2</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="heightmf-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|heightmf">Enter a height for the graphic.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">13</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="keepratio">
- <property name="label" translatable="yes" context="numberingoptionspage|keepratio">Keep ratio</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="keepratio-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|keepratio">Maintains the size proportions of the graphic.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">14</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">12</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="orientft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|orientft">Alignment:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">orientlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">orientlb</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">15</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">14</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="orientlb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes" context="numberingoptionspage|orientlb">Top of baseline</item>
@@ -392,18 +325,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">15</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">14</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="bitmap">
<property name="label" translatable="yes" context="numberingoptionspage|bitmap">Select...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="xalign">0</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<property name="popup">bitmapmenu</property>
<child>
<placeholder/>
@@ -415,18 +348,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">11</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">12</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="color">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="label" translatable="no"></property>
+ <property name="draw-indicator">True</property>
<child>
<placeholder/>
</child>
@@ -437,17 +369,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="relsize">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment4</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment4</property>
<child internal-child="accessible">
<object class="AtkObject" id="relsize-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|relsize">Enter the amount by which you want to resize the bullet character with respect to the font height of the current paragraph.</property>
@@ -455,16 +387,16 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkButton" id="bullet">
<property name="label" translatable="yes" context="numberingoptionspage|bullet">Select...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="bullet-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|bullet">Select the graphic, or locate the graphic file that you want to use as a bullet.</property>
@@ -472,43 +404,43 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="prefixft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">20</property>
<property name="label" translatable="yes" context="numberingoptionspage|prefixft">Before:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">prefix</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">prefix</property>
<property name="xalign">1</property>
- <property name="margin-start">20</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">9</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">10</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="separator">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">20</property>
<property name="label" translatable="yes" context="numberingoptionspage|separator">Separator</property>
<property name="xalign">1</property>
- <property name="margin-start">20</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">8</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">9</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="suffix">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="suffix-atkobject">
@@ -517,15 +449,15 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">10</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">11</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="prefix">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="prefix-atkobject">
@@ -534,93 +466,262 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">9</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">10</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="suffixft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|suffixft">After:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">suffix</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">suffix</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">10</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">11</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="sublevelsft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|sublevelsft">Show sublevels:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">sublevels</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">sublevels</property>
<property name="ellipsize">end</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="bulletft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|bulletft">Character:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">bullet</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">bullet</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="relsizeft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|relsizeft">_Relative size:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">relsize</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">relsize</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="colorft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|colorft">Color:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">color</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">color</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="charstyleft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|charstyleft">Character style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">charstyle</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">charstyle</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkLabel" id="widthft">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="numberingoptionspage|widthft">Width:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">widthmf</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="heightft">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="numberingoptionspage|heightft">Height:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">heightmf</property>
+ <property name="ellipsize">end</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">13</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkSpinButton" id="widthmf">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="digits">2</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="widthmf-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|widthmf">Enter a width for the graphic.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="heightmf">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment5</property>
+ <property name="digits">2</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="heightmf-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|heightmf">Enter a height for the graphic.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=3 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">center</property>
+ <property name="column-spacing">3</property>
+ <child>
+ <object class="GtkCheckButton" id="keepratio">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="focus-on-click">False</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="numberingoptionspage|ratio_tip">Keep ratio</property>
+ <property name="valign">center</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="keepratio-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="numberingoptionspage|accessible_name|keepratio">Keep Ratio</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|keepratio">Maintains proportions when you resize the selected object.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="imRatio">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="pixbuf">res/unlocked.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="daRatioBottom">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="daRatioTop">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ <property name="height">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">13</property>
</packing>
</child>
<child>
@@ -647,7 +748,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|label2">Numbering</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -664,19 +765,19 @@
<child>
<object class="GtkFrame" id="levelsframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkCheckButton" id="allsame">
<property name="label" translatable="yes" context="numberingoptionspage|allsame">_Consecutive numbering</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="allsame-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="numberingoptionspage|extended_tip|allsame">Increases the numbering by one as you go down each level in the list hierarchy.</property>
@@ -687,7 +788,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|label3">All Levels</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -711,28 +812,28 @@
<child>
<object class="GtkFrame" id="previewframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="preview">
- <property name="width_request">150</property>
- <property name="height_request">300</property>
+ <property name="width-request">150</property>
+ <property name="height-request">300</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
</child>
</object>
@@ -742,7 +843,7 @@
<child type="label">
<object class="GtkLabel" id="previewlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="numberingoptionspage|previewlabel">Preview</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/numberingpositionpage.ui b/cui/uiconfig/ui/numberingpositionpage.ui
index fce23a35b576..8b6cb954bccb 100644
--- a/cui/uiconfig/ui/numberingpositionpage.ui
+++ b/cui/uiconfig/ui/numberingpositionpage.ui
@@ -141,7 +141,7 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label" translatable="yes" context="numberingpositionpage|numfollowedby">Numbering followed by:</property>
+ <property name="label" translatable="yes" context="numberingpositionpage|numfollowedby">Followed by:</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">numfollowedbylb</property>
<property name="xalign">1</property>
@@ -155,7 +155,7 @@
<object class="GtkLabel" id="num2align">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes" context="numberingpositionpage|num2align">N_umbering alignment:</property>
+ <property name="label" translatable="yes" context="numberingpositionpage|num2align">Alignment:</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">num2alignlb</property>
<property name="xalign">1</property>
@@ -410,7 +410,7 @@ numbering and text:</property>
<object class="GtkLabel" id="numalign">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes" context="numberingpositionpage|numalign">N_umbering alignment:</property>
+ <property name="label" translatable="yes" context="numberingpositionpage|numalign">Alignment:</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">numalignlb</property>
<property name="xalign">1</property>
diff --git a/cui/uiconfig/ui/objecttitledescdialog.ui b/cui/uiconfig/ui/objecttitledescdialog.ui
index dbb6d72af080..3085ac6124d2 100644
--- a/cui/uiconfig/ui/objecttitledescdialog.ui
+++ b/cui/uiconfig/ui/objecttitledescdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTextBuffer" id="textbuffer1">
@@ -10,28 +10,28 @@
</property>
</object>
<object class="GtkDialog" id="ObjectTitleDescDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="title" translatable="yes" context="objecttitledescdialog|ObjectTitleDescDialog">Description</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="title" translatable="yes" context="objecttitledescdialog|ObjectTitleDescDialog">Alt Text</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox5">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area5">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -45,10 +45,10 @@
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -61,8 +61,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -75,23 +75,24 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="object_title_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="objecttitledescdialog|object_title_label">_Title:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">object_title_entry</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes" context="objecttitledescdialog|object_title_label|tooltip_text">Give a short description of non-text content for users who do not see this object.</property>
+ <property name="label" translatable="yes" context="objecttitledescdialog|object_title_label">Text:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">object_title_entry</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -103,13 +104,13 @@
<child>
<object class="GtkEntry" id="object_title_entry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="width_chars">55</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">55</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="object_title_entry-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="objecttitledescdialog|extended_tip|object_title_entry">Enter a title text. This short name is visible as an alternative tag in HTML format. Accessibility tools can read this text.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="objecttitledescdialog|extended_tip|object_title_entry">Enter a title text. This short name is visible as an "alt" tag in HTML format. Accessibility tools can read this text.</property>
</object>
</child>
</object>
@@ -122,9 +123,10 @@
<child>
<object class="GtkLabel" id="desc_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="objecttitledescdialog|desc_label">_Description:</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes" context="objecttitledescdialog|desc_label|tooltip_text">Give longer explanation of non-text content that is too complex to be described briefly in “Text”</property>
+ <property name="label" translatable="yes" context="objecttitledescdialog|desc_label">_Alt Text:</property>
+ <property name="use-underline">True</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -136,13 +138,13 @@
<child>
<object class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTextView" id="desc_entry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="wrap_mode">word</property>
+ <property name="can-focus">True</property>
+ <property name="wrap-mode">word</property>
<property name="buffer">textbuffer1</property>
<child internal-child="accessible">
<object class="AtkObject" id="desc_entry-atkobject">
@@ -158,6 +160,26 @@
<property name="position">3</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="decorative">
+ <property name="label" translatable="yes" context="objecttitledescdialog|decorative">Decorative</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="decorative-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="objecttitledescdialog|extended_tip|decorative">The item is purely decorative, not part of the document content, and may be ignored by assistive technologies.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">True</property>
@@ -172,9 +194,6 @@
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="ObjectTitleDescDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="objecttitledescdialog|extended_tip|ObjectTitleDescDialog">Assigns a title and a description to the selected object. These are accessible for accessibility tools and as alternative tags when you export the document.</property>
diff --git a/cui/uiconfig/ui/optaccessibilitypage.ui b/cui/uiconfig/ui/optaccessibilitypage.ui
index d964550318e7..2cae4b5267ea 100644
--- a/cui/uiconfig/ui/optaccessibilitypage.ui
+++ b/cui/uiconfig/ui/optaccessibilitypage.ui
@@ -1,35 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="OptAccessibilityPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <object class="GtkBox" id="box2">
+ <!-- n-columns=2 n-rows=4 -->
+ <object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkCheckButton" id="acctool">
<property name="label" translatable="yes" context="optaccessibilitypage|acctool">Support _assistive technology tools (program restart required)</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="acctool-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|acctool">Allows you to use assistive tools, such as external screen readers, Braille devices or speech recognition input devices. The Java Runtime Environment must be installed on your computer before you can enable assistive support.</property>
@@ -37,19 +38,18 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="textselinreadonly">
<property name="label" translatable="yes" context="optaccessibilitypage|textselinreadonly">Use te_xt selection cursor in read-only text documents</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="textselinreadonly-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|textselinreadonly">Displays cursor in read-only documents.</property>
@@ -57,57 +57,96 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="animatedgraphics">
<property name="label" translatable="yes" context="optaccessibilitypage|animatedgraphics">Allow animated _images</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="animatedgraphics-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|animatedgraphics">Previews animated graphics, such as GIF images, in %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|animatedgraphics">Previews animated graphics, such as GIF images.</property>
</object>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="animatedtext">
<property name="label" translatable="yes" context="optaccessibilitypage|animatedtext">Allow animated _text</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="animatedtext-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|animatedtext">Previews animated text, such as blinking and scrolling, in %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|animatedtext">Previews animated text, such as blinking and scrolling.</property>
</object>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locktextselinreadonly">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockanimatedgraphics">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockanimatedtext">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optaccessibilitypage|label1">Miscellaneous Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -124,29 +163,72 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkCheckButton" id="autodetecthc">
- <property name="label" translatable="yes" context="optaccessibilitypage|autodetecthc">Automatically _detect high contrast mode of operating system</property>
+ <!-- n-columns=3 n-rows=1 -->
+ <object class="GtkGrid" id="highcontrastbox">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="autodetecthc-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|autodetecthc">Switches %PRODUCTNAME into high contrast mode when the system background color is very dark.</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label13">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optaccessibilitypage|label13">High contrast:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">highcontrast</property>
+ <property name="xalign">0</property>
</object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="highcontrast">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes" context="optaccessibilitypage|highcontrast">Automatic</item>
+ <item translatable="yes" context="optaccessibilitypage|highcontrast">Disable</item>
+ <item translatable="yes" context="optaccessibilitypage|highcontrast">Enable</item>
+ </items>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="highcontrast-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|highcontrast">Controls if high contrast mode is used. Select from “Automatic”, “Disable” and “Enable”. “Automatic” uses high contrast according to system settings.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockhighcontrast">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
</child>
</object>
<packing>
@@ -156,43 +238,81 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="autofontcolor">
- <property name="label" translatable="yes" context="optaccessibilitypage|autofontcolor">Use automatic font _color for screen display</property>
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="autofontcolor-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|autofontcolor">Displays fonts in %PRODUCTNAME using the system color settings. This option only affects the screen display.</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="autofontcolor">
+ <property name="label" translatable="yes" context="optaccessibilitypage|autofontcolor">Use automatic font _color for screen display</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="autofontcolor-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|autofontcolor">Displays fonts in the office suite using the system color settings. This option only affects the screen display.</property>
+ </object>
+ </child>
</object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="systempagepreviewcolor">
- <property name="label" translatable="yes" context="optaccessibilitypage|systempagepreviewcolor">_Use system colors for page previews</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="systempagepreviewcolor-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|systempagepreviewcolor">Applies the high contrast settings of the operating system to page previews.</property>
+ <child>
+ <object class="GtkCheckButton" id="systempagepreviewcolor">
+ <property name="label" translatable="yes" context="optaccessibilitypage|systempagepreviewcolor">_Use system colors for page previews</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="systempagepreviewcolor-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|systempagepreviewcolor">Applies the high contrast settings of the operating system to page previews.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockautofontcolor">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksystempagepreviewcolor">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
@@ -200,7 +320,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optaccessibilitypage|label2">Options for High Contrast Appearance</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -216,7 +336,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="OptAccessibilityPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptAccessibilityPage">Sets options that make %PRODUCTNAME programs more accessible for users with reduced sight, limited dexterity or other disabilities.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptAccessibilityPage">Sets options that make the office suite programs more accessible for users with reduced sight, limited dexterity or other disabilities.</property>
</object>
</child>
</object>
@@ -224,7 +344,7 @@
<property name="lower">1</property>
<property name="upper">99</property>
<property name="value">1</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
</interface>
diff --git a/cui/uiconfig/ui/optadvancedpage.ui b/cui/uiconfig/ui/optadvancedpage.ui
index 8f078b34137e..7e0449861bab 100644
--- a/cui/uiconfig/ui/optadvancedpage.ui
+++ b/cui/uiconfig/ui/optadvancedpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -26,42 +26,42 @@
</object>
<object class="GtkBox" id="OptAdvancedPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<child>
<object class="GtkFrame" id="javaframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkCheckButton" id="javaenabled">
<property name="label" translatable="yes" context="optadvancedpage|javaenabled">_Use a Java runtime environment</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="javaenabled-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|javaenabled">Allows you to run Java applications in %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|javaenabled">Allows you to run extensions written with Java.</property>
</object>
</child>
</object>
@@ -72,52 +72,52 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=4 -->
<object class="GtkGrid" id="javabox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
+ <property name="margin-start">12</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
- <property name="row_spacing">12</property>
- <property name="margin-start">12</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optadvancedpage|label2">_Java runtime environments (JRE) already installed:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">javas</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">javas</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="add">
<property name="label" translatable="yes" context="optadvancedpage|add">_Add...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="add-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|add">Add a path to the root folder of a JRE on your computer.</property>
@@ -134,9 +134,9 @@
<object class="GtkButton" id="parameters">
<property name="label" translatable="yes" context="optadvancedpage|parameters">_Parameters...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="parameters-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|parameters">Opens the Java Start Parameters dialog.</property>
@@ -153,9 +153,9 @@
<object class="GtkButton" id="classpath">
<property name="label" translatable="yes" context="optadvancedpage|classpath">_Class Path...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="classpath-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|classpath">Opens the Class Path dialog.</property>
@@ -170,34 +170,34 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="javasscroll">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="javas">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -254,7 +254,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="javas-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|javas">Select the JRE that you want to use. On some systems, you must wait a minute until the list gets populated. On some systems, you must restart %PRODUCTNAME to use your changed setting.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|javas">Select the JRE that you want to use. On some systems, you must wait a minute until the list gets populated. On some systems, you must restart the office suite to use your changed setting.</property>
</object>
</child>
</object>
@@ -268,43 +268,46 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="javapath">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optadvancedpage|javapath">Location: </property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="selectruntime">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optadvancedpage|selectruntime">Select a Java Runtime Environment</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
@@ -312,8 +315,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -328,7 +331,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optadvancedpage|label1">Java Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -345,29 +348,30 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="experimental">
<property name="label" translatable="yes" context="optadvancedpage|experimental">Enable experimental features (may be unstable)</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="experimental-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|experimental">Enable experimental features</property>
@@ -375,19 +379,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="macrorecording">
<property name="label" translatable="yes" context="optadvancedpage|macrorecording">Enable macro recording (may be limited)</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="macrorecording-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|macrorecording">Enable macro recording</property>
@@ -395,35 +399,64 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="expertconfig">
<property name="label" translatable="yes" context="optadvancedpage|expertconfig">Open Expert Configuration</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="halign">end</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="expertconfig-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|expertconfig">Opens the Expert Configuration dialog for advanced settings and configuration of %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|expertconfig">Opens the Expert Configuration dialog for advanced settings and configuration.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockexperimental">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockmacrorecording">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label12">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optadvancedpage|label12">Optional Features</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -434,14 +467,9 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
- <child internal-child="accessible">
- <object class="AtkObject" id="OptAdvancedPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptAdvancedPage">Allows you to run Java applications in %PRODUCTNAME.</property>
- </object>
- </child>
</object>
</interface>
diff --git a/cui/uiconfig/ui/optappearancepage.ui b/cui/uiconfig/ui/optappearancepage.ui
index 9b94b8ad59e4..0d8792b12244 100644
--- a/cui/uiconfig/ui/optappearancepage.ui
+++ b/cui/uiconfig/ui/optappearancepage.ui
@@ -1,189 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="OptAppearancePage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
- <object class="GtkFrame" id="frame1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optappearancepage|label3">_Scheme:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">colorschemelb</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="save">
- <property name="label" translatable="yes" context="optappearancepage|save">_Save</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="save-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|save">Saves the current settings as a color scheme that you can reload later.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="delete">
- <property name="label" translatable="yes" context="stock">_Delete</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use-underline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="delete-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|delete">Deletes the color scheme shown in the Scheme box. You cannot delete the Default scheme.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="colorschemelb">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="colorschemelb-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|colorschemelb">Selects the color scheme you want to use.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optappearancepage|label1">Color Scheme</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="table">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="scroll">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">always</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">always</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="colorconfig">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="colorconfig-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|colorconfig">Select the colors for the user interface elements.</property>
@@ -202,62 +78,196 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
- <property name="column_spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="uielements">
- <property name="width_request">250</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="hexpand">True</property>
<property name="label" translatable="yes" context="optappearancepage|uielements">User interface elements</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="colorsetting">
- <property name="width_request">150</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="hexpand">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="optappearancepage|colorsetting">Color setting</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="on">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label" translatable="yes" context="optappearancepage|on">On</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=8 n-rows=1 -->
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkButton" id="save">
+ <property name="label" translatable="yes" context="optappearancepage|save">_Save</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="save-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|save">Saves the current settings as a color scheme that you can reload later.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="delete">
+ <property name="label" translatable="yes" context="stock">_Delete</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="delete-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|delete">Deletes the color scheme shown in the Scheme box. You cannot delete the Default scheme.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">4</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="colorschemelb">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="colorschemelb-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|colorschemelb">Selects the color scheme you want to use.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="autocolor">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="label" translatable="yes" context="optappearancepage|autocolor">_Automatic:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">autocolorlb</property>
+ </object>
+ <packing>
+ <property name="left-attach">6</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="autocolorlb">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="active">1</property>
+ <items>
+ <item id="0" translatable="yes" context="optappearancepage|cbSchemeEntry1">System Theme</item>
+ <item id="1" translatable="yes" context="optappearancepage|cbSchemeEntry2">Light</item>
+ <item id="2" translatable="yes" context="optappearancepage|cbSchemeEntry3">Dark</item>
+ </items>
+ </object>
+ <packing>
+ <property name="left-attach">7</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockautocolorlb">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">5</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optappearancepage|label3">_Scheme:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">colorschemelb</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcolorschemelb">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -265,7 +275,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optappearancepage|label2">Custom Colors</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -276,12 +286,12 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child internal-child="accessible">
<object class="AtkObject" id="OptAppearancePage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptAppearancePage">Sets the colors for the %PRODUCTNAME user interface.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptAppearancePage">Sets the colors for the user interface.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/optchartcolorspage.ui b/cui/uiconfig/ui/optchartcolorspage.ui
index 0359dcf5f912..f91fdb18c539 100644
--- a/cui/uiconfig/ui/optchartcolorspage.ui
+++ b/cui/uiconfig/ui/optchartcolorspage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -14,39 +14,39 @@
</object>
<object class="GtkBox" id="OptChartColorsPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="spacing">18</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkScrolledWindow" id="colorswin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="colors">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="search_column">1</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">1</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -54,9 +54,6 @@
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<child>
<object class="GtkCellRendererPixbuf" id="cellrenderertext1"/>
- <attributes>
- <attribute name="surface">0</attribute>
- </attributes>
</child>
</object>
</child>
@@ -84,7 +81,7 @@
<child type="label">
<object class="GtkLabel" id="label20">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optchartcolorspage|label20">Chart Colors</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -101,35 +98,35 @@
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="column_spacing">12</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="layout_style">start</property>
+ <property name="layout-style">start</property>
<child>
<object class="GtkButton" id="add">
<property name="label" translatable="yes" context="stock">_Add</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -142,8 +139,8 @@
<object class="GtkButton" id="delete">
<property name="label" translatable="yes" context="stock">_Delete</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -156,9 +153,9 @@
<object class="GtkButton" id="default">
<property name="label" translatable="yes" context="optchartcolorspage|default">_Default</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="default-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|default">Restores the color settings that were defined when the program was installed.</property>
@@ -174,37 +171,37 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="paletteselector">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="tablewin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="table">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
@@ -214,8 +211,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
@@ -226,7 +223,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optchartcolorspage|label1">Color Table</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/optctlpage.ui b/cui/uiconfig/ui/optctlpage.ui
index 40a9e9d4c322..c12c2982dfab 100644
--- a/cui/uiconfig/ui/optctlpage.ui
+++ b/cui/uiconfig/ui/optctlpage.ui
@@ -236,7 +236,7 @@
</items>
<child internal-child="accessible">
<object class="AtkObject" id="numerals-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|numerals">Selects the type of numerals used within text, text in objects, fields, and controls, in all %PRODUCTNAME modules. Only cell contents of %PRODUCTNAME Calc are not affected.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|numerals">Selects the type of numerals used within text, text in objects, fields, and controls, in all office suite modules. Only cell contents of Calc are not affected.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/optdeeplpage.ui b/cui/uiconfig/ui/optdeeplpage.ui
new file mode 100644
index 000000000000..f7508eb146e8
--- /dev/null
+++ b/cui/uiconfig/ui/optdeeplpage.ui
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="cui">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkBox" id="OptDeeplPage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="border-width">6</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <!-- n-columns=1 n-rows=2 -->
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkLinkButton" id="privacy">
+ <property name="label" translatable="yes" context="optdeeplpage|privacy">Please read the privacy policy</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">start</property>
+ <property name="relief">none</property>
+ <property name="uri">https://www.deepl.com/privacy/</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid" id="grid2">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="optdeeplpage|privacy">API URL:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">apiurl</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="optdeeplpage|label3">Authentication key:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">authkey</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="apiurl">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="truncate-multiline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="authkey">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="truncate-multiline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optdeeplpage|label1">DeepL API Options</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">grid1</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/cui/uiconfig/ui/optfltrembedpage.ui b/cui/uiconfig/ui/optfltrembedpage.ui
index 7e3193ad0840..899825752e99 100644
--- a/cui/uiconfig/ui/optfltrembedpage.ui
+++ b/cui/uiconfig/ui/optfltrembedpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -26,52 +26,64 @@
<column type="gboolean"/>
<!-- column-name checktri3 -->
<column type="gboolean"/>
+ <!-- column-name weight1 -->
+ <column type="gint"/>
+ <!-- column-name weight2 -->
+ <column type="gint"/>
+ <!-- column-name weight3 -->
+ <column type="gint"/>
+ <!-- column-name sensitive1 -->
+ <column type="gboolean"/>
+ <!-- column-name sensitive2 -->
+ <column type="gboolean"/>
+ <!-- column-name sensitive3 -->
+ <column type="gboolean"/>
</columns>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="OptFilterPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">24</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkScrolledWindow" id="checklbcontainerscroll">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="checklbcontainer">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -84,6 +96,7 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer5"/>
<attributes>
+ <attribute name="sensitive">14</attribute>
<attribute name="visible">5</attribute>
<attribute name="active">0</attribute>
</attributes>
@@ -91,6 +104,7 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer8"/>
<attributes>
+ <attribute name="sensitive">15</attribute>
<attribute name="visible">6</attribute>
<attribute name="active">1</attribute>
</attributes>
@@ -106,6 +120,7 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer7"/>
<attributes>
+ <attribute name="sensitive">16</attribute>
<attribute name="visible">7</attribute>
<attribute name="active">2</attribute>
</attributes>
@@ -126,7 +141,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="checklbcontainer-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|checklbcontainer">The [L] and [S] checkbox displays the entries for the pair of OLE objects that can be converted when loading into %PRODUCTNAME [L] and/or when saving into a Microsoft format [S]. </property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|checklbcontainer">The [L] and [S] checkbox displays the entries for the pair of OLE objects that can be converted when loaded from a Microsoft format [L] and/or when saved to to a Microsoft format [S]. </property>
</object>
</child>
</object>
@@ -141,14 +156,17 @@
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrembedpage|label2" comments="The [L] here is repeated as the column title for the &quot;Load&quot; column of this options page">[L]: Load and convert the object</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -159,9 +177,12 @@
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrembedpage|label3" comments="The [S] here is repeated as the column title for the &quot;Save&quot; column of this options page">[S]: Convert and save the object</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -181,7 +202,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrembedpage|label1">Embedded Objects</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -190,55 +211,34 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <object class="GtkBox" id="box2">
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">18</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkLabel" id="label5">
+ <object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optfltrembedpage|label5">Export as:</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButtonBox" id="buttonbox1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">start</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="spacing">18</property>
<child>
- <object class="GtkRadioButton" id="highlighting">
- <property name="label" translatable="yes" context="optfltrembedpage|highlighting">Highlighting</property>
+ <object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="highlighting-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|highlighting">Microsoft Office has two character attributes similar to %PRODUCTNAME character background. Select the appropriate attribute (highlighting or shading) which you would like to use during export to Microsoft Office file formats.</property>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optfltrembedpage|label5">Export as:</property>
</object>
<packing>
<property name="expand">False</property>
@@ -247,18 +247,51 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="shading">
- <property name="label" translatable="yes" context="optfltrembedpage|shading">Shading</property>
+ <object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">highlighting</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="shading-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|shading">Microsoft Office has two character attributes similar to %PRODUCTNAME character background. Select the appropriate attribute (highlighting or shading) which you would like to use during export to Microsoft Office file formats.</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">start</property>
+ <child>
+ <object class="GtkRadioButton" id="highlighting">
+ <property name="label" translatable="yes" context="optfltrembedpage|highlighting">Highlighting</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="highlighting-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|highlighting">Microsoft Office has two character attributes similar to Writer character background. Select the appropriate attribute (highlighting or shading) which you would like to use during export to Microsoft Office file formats.</property>
+ </object>
+ </child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="shading">
+ <property name="label" translatable="yes" context="optfltrembedpage|shading">Shading</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">highlighting</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="shading-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|shading">Microsoft Office has two character attributes similar to Writer character background. Select the appropriate attribute (highlighting or shading) which you would like to use during export to Microsoft Office file formats.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
<packing>
@@ -269,9 +302,21 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockbuttonbox1">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -279,7 +324,7 @@
<child type="label">
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrembedpage|label4">Character Highlighting</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -288,36 +333,60 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkButtonBox" id="buttonbox2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">start</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="layout-style">start</property>
<child>
- <object class="GtkCheckButton" id="mso_lockfile">
- <property name="label" translatable="yes" context="optfltrembedpage|mso_lockfile">Create MSO lock file</property>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="mso_lockfile-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|mso_lockfile">Mark this checkbox to generate a Microsoft Office lock file in addition to %PRODUCTNAME own lock file.</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkCheckButton" id="mso_lockfile">
+ <property name="label" translatable="yes" context="optfltrembedpage|mso_lockfile">Create MSO lock file</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="mso_lockfile-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|mso_lockfile">Mark this checkbox to generate a Microsoft Office lock file in addition to this office suite's own lock file.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockmso_lockfile">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
</child>
</object>
<packing>
@@ -331,7 +400,7 @@
<child type="label">
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrembedpage|label5">Lock Files</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -340,8 +409,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/cui/uiconfig/ui/optfltrpage.ui b/cui/uiconfig/ui/optfltrpage.ui
index 631f0d8b4581..0e17874bfaea 100644
--- a/cui/uiconfig/ui/optfltrpage.ui
+++ b/cui/uiconfig/ui/optfltrpage.ui
@@ -1,55 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="OptFltrPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
<child>
<object class="GtkCheckButton" id="wo_basic">
<property name="label" translatable="yes" context="optfltrpage|wo_basic">Load Basic _code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="wo_basic-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|wo_basic">Loads and saves the Basic code from a Microsoft document as a special %PRODUCTNAME Basic module with the document. The disabled Microsoft Basic code is visible in the %PRODUCTNAME Basic IDE between Sub and End Sub.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|wo_basic">Loads and saves the Basic code from a Microsoft document as a special Basic module with the document. The disabled Microsoft Basic code is visible in the Basic IDE between Sub and End Sub.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="wo_exec">
<property name="label" translatable="yes" context="optfltrpage|wo_exec">E_xecutable code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">18</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="wo_exec-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|wo_exec">The VBA (Visual Basic for Applications) code will be loaded ready to be executed. If this checkbox is not checked, the VBA code will be commented out so it can be inspected, but will not run.</property>
@@ -57,27 +57,66 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="wo_saveorig">
<property name="label" translatable="yes" context="optfltrpage|wo_saveorig">Save _original Basic code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="wo_saveorig-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|wo_saveorig">Specifies that the original Microsoft Basic code contained in the document is held in a special internal memory for as long as the document remains loaded in %PRODUCTNAME. When saving the document in Microsoft format the Microsoft Basic is saved again with the code in an unchanged form.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|wo_saveorig">Specifies that the original Microsoft Basic code contained in the document is held in a special internal memory for as long as the document remains loaded in the office suite. When saving the document in Microsoft format the Microsoft Basic is saved again with the code in an unchanged form.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockwo_basic">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockwo_exec">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockwo_saveorig">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -85,7 +124,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrpage|label1">Microsoft Word</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -102,45 +141,45 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
<child>
<object class="GtkCheckButton" id="ex_basic">
<property name="label" translatable="yes" context="optfltrpage|ex_basic">Lo_ad Basic code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ex_basic-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ex_basic">Loads and saves the Basic code from a Microsoft document as a special %PRODUCTNAME Basic module with the document. The disabled Microsoft Basic code is visible in the %PRODUCTNAME Basic IDE between Sub and End Sub.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ex_basic">Loads and saves the Basic code from a Microsoft document as a special Basic module with the document. The disabled Microsoft Basic code is visible in the Basic IDE between Sub and End Sub.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="ex_exec">
<property name="label" translatable="yes" context="optfltrpage|ex_exec">E_xecutable code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">18</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ex_exec-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ex_exec">The VBA (Visual Basic for Applications) code will be loaded ready to be executed. If this checkbox is not checked, the VBA code will be commented out so it can be inspected, but will not run.</property>
@@ -148,27 +187,66 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="ex_saveorig">
<property name="label" translatable="yes" context="optfltrpage|ex_saveorig">Sa_ve original Basic code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ex_saveorig-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ex_saveorig">Specifies that the original Microsoft Basic code contained in the document is held in a special internal memory for as long as the document remains loaded in %PRODUCTNAME. When saving the document in Microsoft format the Microsoft Basic is saved again with the code in an unchanged form.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ex_saveorig">Specifies that the original Microsoft Basic code contained in the document is held in a special internal memory for as long as the document remains loaded in the office suite. When saving the document in Microsoft format the Microsoft Basic is saved again with the code in an unchanged form.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockex_basic">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockex_exec">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockex_saveorig">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -176,7 +254,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrpage|label2">Microsoft Excel</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -193,53 +271,79 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
<child>
<object class="GtkCheckButton" id="pp_basic">
<property name="label" translatable="yes" context="optfltrpage|pp_basic">Load Ba_sic code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="pp_basic-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|pp_basic">Loads and saves the Basic code from a Microsoft document as a special %PRODUCTNAME Basic module with the document. The disabled Microsoft Basic code is visible in the %PRODUCTNAME Basic IDE between Sub and End Sub.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|pp_basic">Loads and saves the Basic code from a Microsoft document as a special Basic module with the document. The disabled Microsoft Basic code is visible in the Basic IDE between Sub and End Sub.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="pp_saveorig">
<property name="label" translatable="yes" context="optfltrpage|pp_saveorig">Sav_e original Basic code</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="pp_saveorig-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|pp_saveorig">Specifies that the original Microsoft Basic code contained in the document is held in a special internal memory for as long as the document remains loaded in %PRODUCTNAME. When saving the document in Microsoft format the Microsoft Basic is saved again with the code in an unchanged form.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|pp_saveorig">Specifies that the original Microsoft Basic code contained in the document is held in a special internal memory for as long as the document remains loaded in the office suite. When saving the document in Microsoft format the Microsoft Basic is saved again with the code in an unchanged form.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockpp_basic">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockpp_saveorig">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -247,7 +351,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfltrpage|label3">Microsoft PowerPoint</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/optfontspage.ui b/cui/uiconfig/ui/optfontspage.ui
index 30bb49d92d4e..878377a2af36 100644
--- a/cui/uiconfig/ui/optfontspage.ui
+++ b/cui/uiconfig/ui/optfontspage.ui
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">svx/res/nu01.png</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">svx/res/nu01.png</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">svx/res/nu02.png</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">svx/res/nu02.png</property>
</object>
<object class="GtkTreeStore" id="liststore1">
<columns>
@@ -42,89 +42,133 @@
</object>
<object class="GtkBox" id="OptFontsPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="grid4">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkCheckButton" id="usetable">
+ <property name="label" translatable="yes" context="optfontspage|usetable">_Apply replacement table</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="usetable-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | usetable">Enables the font replacement settings that you define.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockusetable">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=4 n-rows=3 -->
<object class="GtkGrid" id="replacements">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfontspage|label2">_Font:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">font1</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">font1</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfontspage|label3">Re_place with:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">font2</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">font2</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
<property name="width">3</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
<child>
<object class="GtkScrolledWindow" id="checklbscroll">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="checklb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -207,8 +251,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">4</property>
</packing>
</child>
@@ -216,8 +260,8 @@
<object class="GtkButton" id="apply">
<property name="visible">True</property>
<property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
<property name="image">image1</property>
<property name="always-show-image">True</property>
@@ -228,16 +272,16 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="delete">
<property name="visible">True</property>
<property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
<property name="image">image2</property>
<property name="always-show-image">True</property>
@@ -248,22 +292,22 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="font2">
- <property name="sensitive">False</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
</child>
<child internal-child="accessible">
@@ -273,22 +317,22 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="font1">
- <property name="sensitive">False</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
</child>
<child internal-child="accessible">
@@ -298,8 +342,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child internal-child="accessible">
@@ -314,32 +358,12 @@
<property name="position">1</property>
</packing>
</child>
- <child>
- <object class="GtkCheckButton" id="usetable">
- <property name="label" translatable="yes" context="optfontspage|usetable">_Apply replacement table</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="usetable-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | usetable">Enables the font replacement settings that you define.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfontspage|label4">Replacement Table</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -356,54 +380,53 @@
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
- <property name="margin_top">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optfontspage|label8">Fon_ts:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">fontname</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">fontname</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optfontspage|label9">_Size:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">fontheight</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">fontheight</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="fontname">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="optfontspage|fontname">Automatic</item>
</items>
@@ -414,18 +437,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="nonpropfontonly">
<property name="label" translatable="yes" context="optfontspage|nonpropfontonly">_Non-proportional fonts only</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="nonpropfontonly-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | nonpropfontonly">Check to display only non-proportional fonts in the Fonts list box.</property>
@@ -433,15 +456,15 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="fontheight">
- <property name="width_request">100</property>
+ <property name="width-request">100</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<child internal-child="accessible">
<object class="AtkObject" id="fontheight-atkobject">
@@ -450,8 +473,47 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locknonpropfontonly">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockfontname">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockfontheight">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
@@ -462,7 +524,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optfontspage|label1">Font Settings for HTML, Basic and SQL Sources</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/optgeneralpage.ui b/cui/uiconfig/ui/optgeneralpage.ui
index 363ed4633a76..1f04a0c05dc1 100644
--- a/cui/uiconfig/ui/optgeneralpage.ui
+++ b/cui/uiconfig/ui/optgeneralpage.ui
@@ -1,78 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">1583</property>
<property name="upper">9857</property>
<property name="value">1930</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=8 -->
<object class="GtkGrid" id="OptGeneralPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="exthelp">
<property name="label" translatable="yes" context="optgeneralpage|exthelp">_Extended tips</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="exthelp-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | exthelp">Displays a help text when you rest the cursor on an icon, a menu command, or a control on a dialog.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | exthelp">Displays a help text when you rest the mouse pointer on an icon, a menu command, or a control on a dialog.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="popupnohelp">
- <property name="label" translatable="yes" context="optgeneralpage|popupnohelp">Show "No offline help installed" popup</property>
+ <property name="label" translatable="yes" context="optgeneralpage|popupnohelp">Warn if local help is not installed</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbShowTipOfTheDay">
<property name="label" translatable="yes" context="optgeneralpage|TipOfTheDayCheckbox">Show "Tip of the Day" dialog on start-up</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockexthelp">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockpopupnohelp">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcbShowTipOfTheDay">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -80,7 +120,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label1">Help</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -89,49 +129,49 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="filedlgframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="filedlg">
<property name="label" translatable="yes" context="optgeneralpage|filedlg">_Use %PRODUCTNAME dialogs</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="lockimage">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -139,7 +179,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label2">Open/Save Dialogs</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -148,37 +188,62 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <object class="GtkCheckButton" id="docstatus">
- <property name="label" translatable="yes" context="optgeneralpage|docstatus">_Printing sets "document modified" status</property>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="grid9">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="docstatus-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | docstatus">Specifies whether the printing of the document counts as a modification.</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="docstatus">
+ <property name="label" translatable="yes" context="optgeneralpage|docstatus">_Printing sets "document modified" status</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="docstatus-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | docstatus">Specifies whether the printing of the document counts as a modification.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockdocstatus">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label4">Document Status</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -187,45 +252,45 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="yearframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="column-spacing">6</property>
<child>
- <object class="GtkLabel" id="label6">
+ <object class="GtkLabel" id="yearslabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label6">_Interpret as years between </property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">year</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">year</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="year">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment1</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment1</property>
<child internal-child="accessible">
<object class="AtkObject" id="year-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | year">Defines a date range, within which the system recognizes a two-digit year.</property>
@@ -233,19 +298,32 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="toyear">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|toyear">and </property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockyears">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -253,7 +331,7 @@
<child type="label">
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label5">Year (Two Digits)</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -262,45 +340,64 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="privacyframe">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid" id="grid10">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="crashreport">
<property name="label" translatable="yes" context="optgeneralpage|crashreport">Sen_d crash reports to The Document Foundation</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="lockcrashreport">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label7">Help Improve %PRODUCTNAME</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -309,50 +406,50 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="quickstarter">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="quicklaunch">
<property name="label" translatable="yes" context="optgeneralpage|quicklaunch">Load %PRODUCTNAME during system start-up</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="systray">
- <property name="label" translatable="yes" context="optgeneralpage|systray">Enable systray Quickstarter</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkImage" id="lockquicklaunch">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -360,7 +457,7 @@
<child type="label">
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|label8">%PRODUCTNAME Quickstarter</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -369,57 +466,74 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="fileassoc">
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkButton" id="assocfiles">
<property name="label" translatable="yes" context="optgeneralpage|fileassoc">Windows Default apps</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="cbPerformFileExtCheck">
<property name="label" translatable="yes" context="optgeneralpage|FileExtCheckCheckbox">Perform check for default file associations on start-up</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="lockcbPerformFileExtCheck">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optgeneralpage|fileassoc">%PRODUCTNAME File Associations</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -428,13 +542,16 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
<child internal-child="accessible">
<object class="AtkObject" id="OptGeneralPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | OptGeneralPage">Specifies the general settings for %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | OptGeneralPage">Specifies the general settings for the office suite.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/opthtmlpage.ui b/cui/uiconfig/ui/opthtmlpage.ui
index f9b2a4ed01f9..5cfc7fd11875 100644
--- a/cui/uiconfig/ui/opthtmlpage.ui
+++ b/cui/uiconfig/ui/opthtmlpage.ui
@@ -1,103 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustsize1">
<property name="lower">1</property>
<property name="upper">50</property>
<property name="value">7</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustsize2">
<property name="lower">1</property>
<property name="upper">50</property>
<property name="value">10</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustsize3">
<property name="lower">1</property>
<property name="upper">50</property>
<property name="value">12</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustsize4">
<property name="lower">1</property>
<property name="upper">50</property>
<property name="value">14</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustsize5">
<property name="lower">1</property>
<property name="upper">50</property>
<property name="value">18</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustsize6">
<property name="lower">1</property>
<property name="upper">50</property>
<property name="value">24</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustsize7">
<property name="lower">1</property>
<property name="upper">50</property>
<property name="value">36</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkBox" id="OptHtmlPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=7 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
<property name="vexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="size7FT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|size7FT">Size _7:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size7</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">size7</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="size7">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustsize7</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustsize7</property>
<child internal-child="accessible">
<object class="AtkObject" id="size7-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|size7">Use the spin buttons Size 1 to Size 7 to define the respective font sizes for the HTML &lt;font size=1&gt; to &lt;font size=7&gt; tags.</property>
@@ -105,29 +105,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="size6FT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|size6FT">Size _6:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size6</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">size6</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="size6">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustsize6</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustsize6</property>
<child internal-child="accessible">
<object class="AtkObject" id="size6-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|size6">Use the spin buttons Size 1 to Size 7 to define the respective font sizes for the HTML &lt;font size=1&gt; to &lt;font size=7&gt; tags.</property>
@@ -135,29 +135,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="size5FT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|size5FT">Size _5:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size5</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">size5</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="size5">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustsize5</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustsize5</property>
<child internal-child="accessible">
<object class="AtkObject" id="size5-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|size5">Use the spin buttons Size 1 to Size 7 to define the respective font sizes for the HTML &lt;font size=1&gt; to &lt;font size=7&gt; tags.</property>
@@ -165,29 +165,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="size4FT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|size4FT">Size _4:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size4</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">size4</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="size4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustsize4</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustsize4</property>
<child internal-child="accessible">
<object class="AtkObject" id="size4-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|size4">Use the spin buttons Size 1 to Size 7 to define the respective font sizes for the HTML &lt;font size=1&gt; to &lt;font size=7&gt; tags.</property>
@@ -195,29 +195,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="size3FT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|size3FT">Size _3:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size3</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">size3</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="size3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustsize3</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustsize3</property>
<child internal-child="accessible">
<object class="AtkObject" id="size3-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|size3">Use the spin buttons Size 1 to Size 7 to define the respective font sizes for the HTML &lt;font size=1&gt; to &lt;font size=7&gt; tags.</property>
@@ -225,29 +225,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="size2FT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|size2FT">Size _2:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size2</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">size2</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="size2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustsize2</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustsize2</property>
<child internal-child="accessible">
<object class="AtkObject" id="size2-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|size2">Use the spin buttons Size 1 to Size 7 to define the respective font sizes for the HTML &lt;font size=1&gt; to &lt;font size=7&gt; tags.</property>
@@ -255,29 +255,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="size1FT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|size1FT">Size _1:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">size1</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">size1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="size1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustsize1</property>
+ <property name="can-focus">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustsize1</property>
<child internal-child="accessible">
<object class="AtkObject" id="size1-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|size1">Use the spin buttons Size 1 to Size 7 to define the respective font sizes for the HTML &lt;font size=1&gt; to &lt;font size=7&gt; tags.</property>
@@ -285,8 +285,99 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksize1">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksize2">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksize3">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksize4">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksize5">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksize6">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksize7">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
</object>
@@ -294,7 +385,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|label1">Font Sizes</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -318,35 +409,35 @@
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkCheckButton" id="ignorefontnames">
<property name="label" translatable="yes" context="opthtmlpage|ignorefontnames">Ignore _font settings</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ignorefontnames-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ignorefontnames">Mark this check box to ignore all font settings when importing. The fonts that were defined in the HTML Page Style will be the fonts that will be used. </property>
@@ -354,48 +445,87 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="unknowntag">
<property name="label" translatable="yes" context="opthtmlpage|unknowntag">_Import unknown HTML tags as fields</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="unknowntag-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|unknowntag">Mark this check box if you want tags that are not recognized by %PRODUCTNAME to be imported as fields.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|unknowntag">Mark this check box if you want tags that are not recognized by Writer/Web to be imported as fields.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="numbersenglishus">
<property name="label" translatable="yes" context="opthtmlpage|numbersenglishus">_Use '%ENGLISHUSLOCALE' locale for numbers</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="numbersenglishus-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|numbersenglishus">If not checked, numbers will be interpreted according to the setting in Language Settings - Language of - Locale setting in the Options dialog box. If checked, numbers will be interpreted as 'English (USA)' locale.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|numbersenglishus">If not checked, numbers will be interpreted according to the setting in Languages and Locales - General - Locale setting in the Options dialog box. If checked, numbers will be interpreted as 'English (USA)' locale.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locknumbersenglishus">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockunknowntag">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockignorefontnames">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -403,7 +533,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|label2">Import</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -420,93 +550,48 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="charsetFT">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="opthtmlpage|charsetFT">Character _set:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">charset</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="charset">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="hexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="charset-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|charset">Select the appropriate character set for the export</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkCheckButton" id="savegrflocal">
<property name="label" translatable="yes" context="opthtmlpage|savegrflocal">_Copy local images to Internet</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="savegrflocal-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|savegrflocal">Mark this check box to automatically upload the embedded pictures to the Internet server when uploading using FTP. Use the Save As dialog to save the document and enter a complete FTP URL as the file name in the Internet.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|savegrflocal">Mark this check box to automatically upload the embedded pictures to the Internet server when uploading using a network protocol. Use the Save As dialog to save the document and enter a complete URL as the file name in the Internet.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="printextension">
<property name="label" translatable="yes" context="opthtmlpage|printextension">_Print layout</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="printextension-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|printextension">If you mark this field, the print layout of the current document (for example, table of contents with justified page numbers and dot leaders) is exported as well.</property>
@@ -514,49 +599,101 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="starbasicwarning">
<property name="label" translatable="yes" context="opthtmlpage|starbasicwarning">Display _warning</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">12</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="starbasicwarning-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|starbasicwarning">If this field is marked, when exporting to HTML a warning is shown that %PRODUCTNAME Basic macros will be lost.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|starbasicwarning">If this field is marked, when exporting to HTML a warning is shown that Basic macros will be lost.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="starbasic">
<property name="label" translatable="yes" context="opthtmlpage|starbasic">LibreOffice _Basic</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="starbasic-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|starbasic">Mark this check box to include the %PRODUCTNAME Basic instructions when exporting to HTML format.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|starbasic">Check this box to include the BASIC instructions when exporting to HTML format.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockstarbasic">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockstarbasicwarning">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockprintextension">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksavegrflocal">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -564,7 +701,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="opthtmlpage|label3">Export</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/optionsdialog.ui b/cui/uiconfig/ui/optionsdialog.ui
index 85acd3198c52..d1c1984eda68 100644
--- a/cui/uiconfig/ui/optionsdialog.ui
+++ b/cui/uiconfig/ui/optionsdialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore1">
@@ -11,30 +11,30 @@
</columns>
</object>
<object class="GtkDialog" id="OptionsDialog">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="optionsdialog|OptionsDialog">Options</property>
<property name="modal">True</property>
- <property name="type_hint">dialog</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -48,10 +48,10 @@
<object class="GtkButton" id="revert">
<property name="label" translatable="yes" context="stock">_Reset</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="optionsdialog|revert">Unsaved modifications to this tab are reverted.</property>
<property name="use-underline">True</property>
- <property name="tooltip_text" translatable="yes" context="optionsdialog|revert">Unsaved modifications to this tab are reverted.</property>
<child internal-child="accessible">
<object class="AtkObject" id="revert-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="optionsdialog|extended_tip|revert">Resets changes made to the current tab to those applicable when this dialog was opened.</property>
@@ -68,10 +68,10 @@
<object class="GtkButton" id="apply">
<property name="label" translatable="yes" context="stock">_Apply</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="optionsdialog|apply">Save all modifications without closing dialog. Cannot be reverted with Reset.</property>
<property name="use-underline">True</property>
- <property name="tooltip_text" translatable="yes" context="optionsdialog|apply">Save all modifications without closing dialog. Cannot be reverted with Reset.</property>
</object>
<packing>
<property name="expand">False</property>
@@ -83,12 +83,12 @@
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="optionsdialog|ok">Save all changes and close dialog.</property>
<property name="use-underline">True</property>
- <property name="tooltip_text" translatable="yes" context="optionsdialog|ok">Save all changes and close dialog.</property>
<child internal-child="accessible">
<object class="AtkObject" id="ok-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="optionsdialog|extended_tip|ok">Saves all changes and closes dialog.</property>
@@ -105,10 +105,10 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="optionsdialog|cancel">Discard all unsaved changes and close dialog.</property>
<property name="use-underline">True</property>
- <property name="tooltip_text" translatable="yes" context="optionsdialog|cancel">Discard all unsaved changes and close dialog.</property>
<child internal-child="accessible">
<object class="AtkObject" id="cancel-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="optionsdialog|extended_tip|cancel">Closes dialog and discards all unsaved changes.</property>
@@ -125,49 +125,84 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="spacing">6</property>
<child>
- <object class="GtkScrolledWindow">
+ <object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">4</property>
<child>
- <object class="GtkTreeView" id="pages">
- <property name="width_request">-1</property>
+ <object class="GtkEntry" id="searchEntry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="vexpand">True</property>
- <property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="search_column">1</property>
- <property name="enable_tree_lines">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="Macro Library List-selection1"/>
+ <property name="can-focus">True</property>
+ <property name="valign">start</property>
+ <property name="truncate-multiline">True</property>
+ <property name="placeholder-text" translatable="yes" context="optionsdialog|searchEntry">Type to search</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="searchEntry-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="optionsdialog|extended_tip|searchEntry">Type here to search in the list of options.</property>
+ </object>
</child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="halign">baseline</property>
+ <property name="valign">baseline</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn2">
- <property name="spacing">6</property>
+ <object class="GtkTreeView" id="pages">
+ <property name="width-request">-1</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore1</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="enable-tree-lines">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
<child>
- <object class="GtkCellRendererText" id="cellrenderertext2"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
</object>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
<packing>
@@ -179,7 +214,7 @@
<child>
<object class="GtkBox" id="box">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
@@ -208,8 +243,5 @@
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
</object>
</interface>
diff --git a/cui/uiconfig/ui/optlanguagespage.ui b/cui/uiconfig/ui/optlanguagespage.ui
index 9c72471ac44a..85ddf5494fd1 100644
--- a/cui/uiconfig/ui/optlanguagespage.ui
+++ b/cui/uiconfig/ui/optlanguagespage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkListStore" id="liststore1">
@@ -32,58 +32,58 @@
<column type="GdkPixbuf"/>
</columns>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=4 -->
<object class="GtkGrid" id="OptLanguagesPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|label4">_User interface:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">userinterface</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">userinterface</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="userinterface">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="userinterface-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|userinterface">Select the language used for the user interface, for example menus, dialogs, help files. You must have installed at least one additional language pack or a multi-language version of %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|userinterface">Select the language used for the user interface, for example menus, dialogs, help files. You must have installed at least one additional language pack.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -91,7 +91,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|label1">Language Of</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -100,36 +100,36 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=4 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkComboBox" id="westernlanguage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="model">liststore1</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<attributes>
@@ -149,19 +149,19 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="asianlanguage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="model">liststore2</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
@@ -181,19 +181,19 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="complexlanguage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="model">liststore3</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext5"/>
<attributes>
@@ -213,19 +213,19 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="currentdoc">
<property name="label" translatable="yes" context="optlanguagespage|currentdoc">For the current document only</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="currentdoc-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|currentdoc">Specifies that the settings for default languages are valid only for the current document.</property>
@@ -233,71 +233,113 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="ctlsupport">
<property name="label" translatable="yes" context="optlanguagespage|ctlsupport">Complex _text layout:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ctlsupport-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ctlsupport">Activates complex text layout support. You can now modify the settings corresponding to complex text layout in %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ctlsupport">Activates complex text layout support. You can now modify the settings corresponding to complex text layout.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="asiansupport">
<property name="label" translatable="yes" context="optlanguagespage|asiansupport">Asian:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="asiansupport-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|asiansupport">Activates Asian languages support. You can now modify the corresponding Asian language settings in %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|asiansupport">Activates Asian languages support. You can now modify the corresponding Asian language settings.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="western">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|western">Western:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">westernlanguage</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">westernlanguage</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockwesternlanguage">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockasiansupport">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockctlsupport">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|label2">Default Languages for Documents</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -306,32 +348,32 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkCheckButton" id="ignorelanguagechange">
<property name="label" translatable="yes" context="optlanguagespage|ignorelanguagechange">Ignore s_ystem input language</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ignorelanguagechange-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ignorelanguagechange">Indicates whether changes to the system input language/keyboard will be ignored. If ignored, when new text is typed that text will follow the language of the document or current paragraph, not the current system language.</property>
@@ -339,8 +381,21 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockignorelanguagechange">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -348,7 +403,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|label3">Enhanced Language Support</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -357,87 +412,87 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=4 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="localesettingFT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|localesettingFT">Locale setting:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">localesetting</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">localesetting</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optlanguagespage|label6">Decimal separator key:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">decimalseparator</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optlanguagespage|label6">Decimal key on the numpad:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">decimalseparator</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="defaultcurrency">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|defaultcurrency">_Default currency:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">currencylb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">currencylb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="dataaccpatterns">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|dataaccpatterns">Date acceptance _patterns:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">datepatterns</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">datepatterns</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="localesetting">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
@@ -447,14 +502,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="currencylb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
@@ -464,14 +519,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="datepatterns">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
@@ -483,27 +538,79 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="decimalseparator">
<property name="label" translatable="yes" context="optlanguagespage|decimalseparator">_Same as locale setting ( %1 )</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="decimalseparator-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|decimalseparator">Specifies to use the decimal separator key that is set in your system when you press the respective key on the number pad.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|decimalseparator">Specifies to use the numeric keypad decimal key that is set in your system when you press the respective key on the number pad.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locklocalesetting">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcurrencylb">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockdecimalseparator">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockdatepatterns">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -511,7 +618,7 @@
<child type="label">
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optlanguagespage|label7">Formats</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -520,8 +627,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/cui/uiconfig/ui/optlingupage.ui b/cui/uiconfig/ui/optlingupage.ui
index 5ae94f81c0b6..ad8ee3da1ca7 100644
--- a/cui/uiconfig/ui/optlingupage.ui
+++ b/cui/uiconfig/ui/optlingupage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkTreeStore" id="liststore2">
@@ -42,9 +42,13 @@
<column type="gboolean"/>
<!-- column-name checktri1 -->
<column type="gboolean"/>
+ <!-- column-name weight1 -->
+ <column type="gint"/>
+ <!-- column-name sensitive1 -->
+ <column type="gboolean"/>
</columns>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="OptLinguPage">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -65,13 +69,13 @@
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="column-spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -158,57 +162,12 @@
<property name="top-attach">0</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
@@ -231,21 +190,21 @@
</packing>
</child>
<child>
- <object class="GtkFrame">
+ <object class="GtkFrame" id="dictsframe">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="column-spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
@@ -376,27 +335,6 @@
<property name="top-attach">0</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
@@ -425,16 +363,16 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="row-spacing">3</property>
<property name="column-spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
@@ -464,6 +402,7 @@
<child>
<object class="GtkCellRendererToggle" id="cellrenderer555"/>
<attributes>
+ <attribute name="sensitive">6</attribute>
<attribute name="visible">3</attribute>
<attribute name="active">0</attribute>
</attributes>
@@ -477,6 +416,7 @@
<child>
<object class="GtkCellRendererText" id="cellrenderer444"/>
<attributes>
+ <attribute name="sensitive">6</attribute>
<attribute name="text">1</attribute>
</attributes>
</child>
@@ -516,7 +456,7 @@
</packing>
</child>
<child>
- <object class="GtkBox">
+ <object class="GtkBox" id="moredictsbox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
@@ -553,21 +493,6 @@
<property name="width">2</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
<child type="label">
@@ -589,24 +514,6 @@
<property name="top-attach">2</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="OptLinguPage-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="OptLinguPage">Specifies the properties of the spelling, thesaurus and hyphenation.</property>
diff --git a/cui/uiconfig/ui/optonlineupdatepage.ui b/cui/uiconfig/ui/optonlineupdatepage.ui
index bf623a8388d7..e49181627560 100644
--- a/cui/uiconfig/ui/optonlineupdatepage.ui
+++ b/cui/uiconfig/ui/optonlineupdatepage.ui
@@ -1,67 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkFrame" id="OptOnlineUpdatePage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="border-width">6</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="autocheck">
<property name="label" translatable="yes" context="optonlineupdatepage|autocheck">_Check for updates automatically</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="autocheck-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|autocheck">Mark to check for online updates periodically, then select the time interval how often %PRODUCTNAME will check for online updates.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|autocheck">Mark to check for online updates periodically, then select the time interval how often to automatically check for online updates.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="margin-start">18</property>
<child>
<object class="GtkRadioButton" id="everyday">
<property name="label" translatable="yes" context="optonlineupdatepage|everyday">Every da_y</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="everyday-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|everyday">A check will be performed once a day.</property>
@@ -69,19 +69,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="everyweek">
<property name="label" translatable="yes" context="optonlineupdatepage|everyweek">Every _week</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">everyday</property>
<child internal-child="accessible">
<object class="AtkObject" id="everyweek-atkobject">
@@ -90,19 +90,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="everymonth">
<property name="label" translatable="yes" context="optonlineupdatepage|everymonth">Every _month</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">everyday</property>
<child internal-child="accessible">
<object class="AtkObject" id="everymonth-atkobject">
@@ -111,14 +111,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
<property name="width">2</property>
</packing>
</child>
@@ -126,10 +126,10 @@
<object class="GtkButton" id="checknow">
<property name="label" translatable="yes" context="optonlineupdatepage|checknow">Check _Now</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checknow-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|checknow">A check will be performed now.</property>
@@ -137,24 +137,27 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
+ <property name="margin-start">18</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
- <property name="margin-start">18</property>
<child>
<object class="GtkLabel" id="lastchecked">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optonlineupdatepage|lastchecked">Last checked: %DATE%, %TIME%</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -164,10 +167,13 @@
</child>
<child>
<object class="GtkLabel" id="neverchecked">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="optonlineupdatepage|neverchecked">Last checked: Not yet</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -177,10 +183,39 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockautocheck">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcheckinterval">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -189,30 +224,30 @@
</packing>
</child>
<child>
- <object class="GtkFrame">
+ <object class="GtkFrame" id="frameDest">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="autodownload">
<property name="label" translatable="yes" context="optonlineupdatepage|autodownload">_Download updates automatically</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="autodownload-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|autodownload">Enable the automatic download of updates to the specified folder.</property>
@@ -220,27 +255,27 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">18</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkButton" id="changepath">
<property name="label" translatable="yes" context="optonlineupdatepage|changepath">Ch_ange...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="changepath-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|changepath">Click to select the destination folder for downloaded files.</property>
@@ -248,21 +283,24 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="destpathlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optonlineupdatepage|destpathlabel">Download destination:</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
<child internal-child="accessible">
<object class="AtkObject" id="destpathlabel-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|destpathlabel">Click to select the destination folder for downloaded files.</property>
@@ -278,9 +316,12 @@
<child>
<object class="GtkLabel" id="destpath">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -290,23 +331,39 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
<property name="width">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="lockautodownload">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="labeldest">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optonlineupdatepage|labeldest">Download Destination</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -321,50 +378,53 @@
</packing>
</child>
<child>
- <object class="GtkFrame">
+ <object class="GtkFrame" id="frameAgent">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="extrabits">
<property name="label" translatable="yes" context="optonlineupdatepage|extrabits">_Send OS version and basic hardware information</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes" context="optonlineupdatepage|extrabits|tooltip_text">This information lets us make optimizations for your hardware and operating system.</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="optonlineupdatepage|extrabits|tooltip_text">This information lets us make optimizations for your hardware and operating system.</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="hbox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">18</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkLabel" id="useragent_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optonlineupdatepage|useragent_label">User Agent:</property>
<property name="yalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -374,9 +434,12 @@
</child>
<child>
<object class="GtkLabel" id="useragent_changed">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optonlineupdatepage|useragent_changed">Hit apply to update</property>
<property name="yalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -387,8 +450,11 @@
<child>
<object class="GtkLabel" id="useragent">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
<property name="expand">True</property>
@@ -398,17 +464,33 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
<property name="width">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="lockextrabits">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="labelagent">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optonlineupdatepage|labelagent">User Agent</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -436,12 +518,50 @@
<property name="position">3</property>
</packing>
</child>
+ <child>
+ <object class="GtkFrame" id="frameMar">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkCheckButton" id="enableMar">
+ <property name="label" translatable="yes" context="optonlineupdatepage|enableMar">Enable au_tomatic update</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="enableMar-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|enableMar">Mark to enable automatic update.</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="labelMar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optonlineupdatepage|labelMar">Automatic Update</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optonlineupdatepage|label1">Online Update Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -450,7 +570,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="OptOnlineUpdatePage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptOnlineUpdatePage">Specifies some options for the automatic notification and downloading of online updates to %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptOnlineUpdatePage">Specifies some options for the automatic notification and downloading of online updates to the office suite.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/optopenclpage.ui b/cui/uiconfig/ui/optopenclpage.ui
index ac5cac268df2..8014e3711e1c 100644
--- a/cui/uiconfig/ui/optopenclpage.ui
+++ b/cui/uiconfig/ui/optopenclpage.ui
@@ -1,32 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkFrame" id="OptOpenCLPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="border-width">6</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="denylistbox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
<child>
- <object class="GtkCheckButton" id="useopencl">
- <property name="label" translatable="yes" context="optopenclpage|useopencl">Allow use of OpenCL</property>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="useopencl">
+ <property name="label" translatable="yes" context="optopenclpage|useopencl">Allow use of OpenCL</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockuseopencl">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -35,10 +61,9 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="openclused">
- <property name="visible">False</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optopenclpage|openclused">OpenCL is available for use.</property>
+ <object class="GtkLabel" id="openclnotused">
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optopenclpage|openclnotused">OpenCL is not used.</property>
</object>
<packing>
<property name="expand">False</property>
@@ -47,10 +72,9 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="openclnotused">
- <property name="visible">False</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optopenclpage|openclnotused">OpenCL is not used.</property>
+ <object class="GtkLabel" id="openclused">
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optopenclpage|openclused">OpenCL is available for use.</property>
</object>
<packing>
<property name="expand">False</property>
@@ -63,7 +87,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optopenclpage|label1">OpenCL Options</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/optpathspage.ui b/cui/uiconfig/ui/optpathspage.ui
index 15e9bf047972..3b4b1d14efe3 100644
--- a/cui/uiconfig/ui/optpathspage.ui
+++ b/cui/uiconfig/ui/optpathspage.ui
@@ -207,7 +207,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="OptPathsPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="OptPathsPage">This section contains the default paths to important folders in %PRODUCTNAME. These paths can be edited by the user.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="OptPathsPage">This section contains the default paths to important folders of the office suite. These paths can be edited by the user.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/optproxypage.ui b/cui/uiconfig/ui/optproxypage.ui
index 663937620ab3..96e744c8cc61 100644
--- a/cui/uiconfig/ui/optproxypage.ui
+++ b/cui/uiconfig/ui/optproxypage.ui
@@ -1,45 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkFrame" id="OptProxyPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="border-width">6</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=6 n-rows=5 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optproxypage|label2">Proxy s_erver:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">proxymode</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">proxymode</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="http">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="http-atkobject">
@@ -48,17 +48,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="https">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="https-atkobject">
@@ -67,36 +67,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ftp">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="valign">center</property>
- <property name="hexpand">True</property>
- <property name="activates_default">True</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="ftp-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ftp">Type the name of the proxy server for FTP.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="noproxy">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="noproxy-atkobject">
@@ -105,20 +86,20 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="httpport">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="valign">center</property>
- <property name="max_length">5</property>
- <property name="activates_default">True</property>
- <property name="width_chars">5</property>
- <property name="input_purpose">digits</property>
+ <property name="max-length">5</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">5</property>
<property name="truncate-multiline">True</property>
+ <property name="input-purpose">digits</property>
<child internal-child="accessible">
<object class="AtkObject" id="httpport-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|httpport">Type the port for the corresponding proxy server.</property>
@@ -126,20 +107,20 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">5</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="httpsport">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="valign">center</property>
- <property name="max_length">5</property>
- <property name="activates_default">True</property>
- <property name="width_chars">5</property>
- <property name="input_purpose">digits</property>
+ <property name="max-length">5</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">5</property>
<property name="truncate-multiline">True</property>
+ <property name="input-purpose">digits</property>
<child internal-child="accessible">
<object class="AtkObject" id="httpsport-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|httpsport">Type the port for the corresponding proxy server.</property>
@@ -147,35 +128,14 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="ftpport">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="valign">center</property>
- <property name="max_length">5</property>
- <property name="activates_default">True</property>
- <property name="width_chars">5</property>
- <property name="input_purpose">digits</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="ftpport-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ftpport">Type the port for the corresponding proxy server.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">5</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="proxymode">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="optproxypage|proxymode">None</item>
<item translatable="yes" context="optproxypage|proxymode">System</item>
@@ -188,119 +148,176 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="httpft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optproxypage|httpft">HT_TP proxy:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">http</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">http</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="httpportft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optproxypage|httpportft">_Port:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">httpport</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">httpport</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">4</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="httpsft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optproxypage|httpsft">HTTP_S proxy:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">https</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">https</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="ftpft">
+ <object class="GtkLabel" id="noproxyft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optproxypage|ftpft">_FTP proxy:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">ftp</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optproxypage|noproxyft">_No proxy for:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">noproxy</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="noproxyft">
+ <object class="GtkLabel" id="httpsportft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optproxypage|noproxyft">_No proxy for:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">noproxy</property>
- <property name="xalign">0</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optproxypage|httpsportft">P_ort:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">httpsport</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">4</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="httpsportft">
+ <object class="GtkLabel" id="noproxydesc">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optproxypage|httpsportft">P_ort:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">httpsport</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optproxypage|noproxydesc">Separator ;</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">4</property>
+ <property name="top-attach">4</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockproxymode">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="ftpportft">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optproxypage|ftpportft">P_ort:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">ftpport</property>
+ <object class="GtkImage" id="lockhttp">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="noproxydesc">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optproxypage|noproxydesc">Separator ;</property>
- <property name="xalign">0</property>
+ <object class="GtkImage" id="lockhttps">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">4</property>
- <property name="width">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locknoproxy">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockhttpport">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
+ <object class="GtkImage" id="lockhttpsport">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
<placeholder/>
</child>
<child>
@@ -311,7 +328,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optproxypage|label1">Settings</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/optsavepage.ui b/cui/uiconfig/ui/optsavepage.ui
index 49d237aa0548..38172d42956c 100644
--- a/cui/uiconfig/ui/optsavepage.ui
+++ b/cui/uiconfig/ui/optsavepage.ui
@@ -1,42 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">1</property>
<property name="upper">60</property>
<property name="value">10</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="OptSavePage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkCheckButton" id="load_docprinter">
<property name="label" translatable="yes" context="optsavepage|load_docprinter">Load printer settings with the document</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="load_docprinter-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="load_docprinter">If enabled, the printer settings will be loaded with the document. This can cause a document to be printed on a distant printer, if you do not change the printer manually in the Print dialog. If disabled, your standard printer will be used to print this document. The current printer settings will be stored with the document whether or not this option is checked.</property>
@@ -44,18 +45,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="load_settings">
<property name="label" translatable="yes" context="optsavepage|load_settings">Load user-specific settings with the document</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="load_settings-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="load_settings">Loads the user-specific settings saved in a document with the document.</property>
@@ -63,8 +64,66 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="load_anyuser">
+ <property name="label" translatable="yes" context="optsavepage|load_anyuser">Load view position with the document even if it was saved by a different user</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="load_anyuser-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="load_anyuser">Loads the view position settings saved in a document with the document even if it was saved by a different user.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockload_settings">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockload_docprinter">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockload_anyuser">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -72,7 +131,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|label1">Load</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -81,57 +140,57 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=7 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="autosave">
<property name="label" translatable="yes" context="optsavepage|autosave">Save _AutoRecovery information every:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="autosave-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="autosave">Specifies that %PRODUCTNAME saves the information needed to restore all open documents in case of a crash. You can specify the saving time interval.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="autosave">Specifies that the office suite saves the information needed to restore all open documents in case of a crash. You can specify the saving time interval.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="autosave_spin">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment1</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment1</property>
<child internal-child="accessible">
<object class="AtkObject" id="autosave_spin-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="autosave_spin">Specifies the time interval in minutes for the automatic recovery option.</property>
@@ -139,54 +198,55 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="autosave_mins">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|autosave_mins">minutes</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="userautosave">
<property name="label" translatable="yes" context="optsavepage|userautosave">Automatically save the document too</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="margin-start">12</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="margin-start">18</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="userautosave-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="userautosave">Specifies that %PRODUCTNAME saves all open documents when saving auto recovery information. Uses the same time interval as AutoRecovery does.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="userautosave">Specifies that the office suite saves all open documents when saving auto recovery information. Uses the same time interval as AutoRecovery does.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="relative_fsys">
<property name="label" translatable="yes" context="optsavepage|relative_fsys">Save URLs relative to file system</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="relative_fsys-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="relative_fsys">Select this box for relative saving of URLs in the file system.</property>
@@ -194,18 +254,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="docinfo">
<property name="label" translatable="yes" context="optsavepage|docinfo">_Edit document properties before saving</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="docinfo-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="docinfo">Specifies that the Properties dialog will appear every time you select the Save As command.</property>
@@ -213,18 +273,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="relative_inet">
<property name="label" translatable="yes" context="optsavepage|relative_inet">Save URLs relative to internet</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="relative_inet-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="relative_inet">Select this box for relative saving of URLs to the Internet.</property>
@@ -232,27 +292,133 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="backup">
<property name="label" translatable="yes" context="optsavepage|backup">Al_ways create backup copy</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="backup-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="backup">Saves the previous version of a document as a backup copy whenever you save a document. Every time %PRODUCTNAME creates a backup copy, the previous backup copy is replaced. The backup copy gets the extension .BAK.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="backup">Saves the previous version of a document as a backup copy whenever you save a document. Every time the office suite creates a backup copy, the previous backup copy is replaced. The backup copy gets the extension .BAK.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="backupintodocumentfolder">
+ <property name="label" translatable="yes" context="optsavepage|backupintodocumentfolder">Place backup in same folder as document</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="margin-start">18</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockautosave">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockuserautosave">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockdocinfo">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockbackup">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockbackupintodoc">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockrelative_fsys">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockrelative_inet">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
</object>
@@ -260,7 +426,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|label2">Save</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -269,33 +435,34 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=5 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="warnalienformat">
<property name="label" translatable="yes" context="optsavepage|warnalienformat">Warn when not saving in ODF or default format</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="warnalienformat-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="warnalienformat">You can choose to get a warning message when you save a document in a format that is not OpenDocument or which you did not set as default format in Load/Save - General in the Options dialog box.</property>
@@ -303,51 +470,51 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid11">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
- <property name="column_spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="odfwarning_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|odfwarning_label" comments="EN-US, the term 'extended' must not be translated.">Not using ODF 1.3 Extended may cause information to be lost.</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="odfwarning_image">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">svx/res/caution_11x16.png</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">svx/res/caution_11x16.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="odfversion">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="optsavepage|odfversion">1.0/1.1</item>
<item translatable="yes" context="optsavepage|odfversion">1.2</item>
@@ -363,51 +530,42 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|label5">ODF format version:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">odfversion</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">odfversion</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="saveas_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|saveas_label">Always sa_ve as:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">saveas</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">saveas</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="doctype">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="yes" context="optsavepage|doctype">Text document</item>
- <item translatable="yes" context="optsavepage|doctype">HTML document</item>
- <item translatable="yes" context="optsavepage|doctype">Master document</item>
- <item translatable="yes" context="optsavepage|doctype">Spreadsheet</item>
- <item translatable="yes" context="optsavepage|doctype">Presentation</item>
- <item translatable="yes" context="optsavepage|doctype">Drawing</item>
- <item translatable="yes" context="optsavepage|doctype">Formula</item>
- </items>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="doctype-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="doctype">Specifies the document type for which you want to define the default file format.</property>
@@ -415,14 +573,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="saveas">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="saveas-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="saveas">Specifies how documents of the type selected on the left will always be saved as this file type. You may select another file type for the current document in the Save as dialog.</property>
@@ -430,30 +588,65 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|label6">D_ocument type:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">doctype</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">doctype</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockodfversion">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="lockwarnalienformat">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsavepage|label3">Default File Format and ODF Settings</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -462,8 +655,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child internal-child="accessible">
diff --git a/cui/uiconfig/ui/optsecuritypage.ui b/cui/uiconfig/ui/optsecuritypage.ui
index a9919352a011..200f63a3f7af 100644
--- a/cui/uiconfig/ui/optsecuritypage.ui
+++ b/cui/uiconfig/ui/optsecuritypage.ui
@@ -1,53 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=6 -->
<object class="GtkGrid" id="OptSecurityPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="tsaurls">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">24</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
- <child>
- <object class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes" context="optsecuritypage|label9">Maintain a list of Time Stamping Authority (TSA) URLs to be used for digital signatures in PDF export.</property>
- <property name="wrap">True</property>
- <property name="width_chars">56</property>
- <property name="max_width_chars">56</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkButton" id="tsas">
<property name="label" translatable="yes" context="optsecuritypage|tsas">_TSAs...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="tsas-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|tsas">Opens the Time Stamping Authority URLs dialog.</property>
@@ -55,8 +39,50 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="optsecuritypage|label9">Maintain a list of Time Stamping Authority (TSA) URLs to be used for digital signatures in PDF export.</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locktsas">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -64,7 +90,7 @@
<child type="label">
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsecuritypage|label10">TSAs</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -73,50 +99,34 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="certificatepath">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">24</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
- <child>
- <object class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes" context="optsecuritypage|label7">Select the Network Security Services certificate directory to use for digital signatures.</property>
- <property name="wrap">True</property>
- <property name="width_chars">56</property>
- <property name="max_width_chars">56</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkButton" id="cert">
<property name="label" translatable="yes" context="optsecuritypage|cert">_Certificate...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="cert-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|cert">Opens the Certificate Path dialog.</property>
@@ -124,8 +134,50 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="optsecuritypage|label7">Select the Network Security Services certificate directory to use for digital signatures.</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcertipath">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -133,7 +185,7 @@
<child type="label">
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsecuritypage|label8">Certificate Path</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -142,50 +194,50 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="macrosecurity">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">24</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="optsecuritypage|label5">Adjust the security level for executing macros and specify trusted macro developers.</property>
<property name="wrap">True</property>
- <property name="width_chars">56</property>
- <property name="max_width_chars">56</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="macro">
<property name="label" translatable="yes" context="optsecuritypage|macro">Macro Securit_y...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="macro-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|macro">Opens the Macro Security dialog.</property>
@@ -193,8 +245,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -202,7 +254,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsecuritypage|label3">Macro Security</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -211,139 +263,194 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">24</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">24</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="row_spacing">12</property>
- <child>
- <object class="GtkCheckButton" id="savepassword">
- <property name="label" translatable="yes" context="optsecuritypage|savepassword">Persistently _save passwords for web connections</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="savepassword-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|savepassword">If enabled, %PRODUCTNAME will securely store all passwords that you use to access files from web servers. You can retrieve the passwords from the list after you enter the master password.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="row-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
- <child>
- <object class="GtkCheckButton" id="usemasterpassword">
- <property name="label" translatable="yes" context="optsecuritypage|usemasterpassword">Protected _by a master password (recommended)</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkLabel" id="masterpasswordtext">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="optsecuritypage|masterpasswordtext">Passwords are protected by a master password. You will be asked to enter it once per session, if %PRODUCTNAME retrieves a password from the protected password list.</property>
<property name="wrap">True</property>
- <property name="width_chars">56</property>
- <property name="max_width_chars">56</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="nopasswordsave">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="optsecuritypage|nopasswordsave">Disabling the function to persistently store passwords deletes the list of passwords stored and resets the master password.
Do you want to delete password list and reset master password?</property>
<property name="wrap">True</property>
- <property name="width_chars">56</property>
- <property name="max_width_chars">56</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="usemasterpassword">
+ <property name="label" translatable="yes" context="optsecuritypage|usemasterpassword">Protected _by a master password (recommended)</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockusemasterpassword">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="savepassword">
+ <property name="label" translatable="yes" context="optsecuritypage|savepassword">Persistently _save passwords for web connections</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="savepassword-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|savepassword">If enabled, all passwords that you use to access files from web servers will be securely stored. You can retrieve the passwords from the list after you enter the master password.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksavepassword">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_homogeneous">True</property>
+ <property name="can-focus">False</property>
+ <property name="row-homogeneous">True</property>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid9">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkButton" id="connections">
<property name="label" translatable="yes" context="optsecuritypage|connections">Connect_ions...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="connections-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|connections">Asks for the master password. If master password is correct, shows the Stored Web Connection Information dialog.</property>
@@ -351,29 +458,29 @@ Do you want to delete password list and reset master password?</property>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid10">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkButton" id="masterpassword">
<property name="label" translatable="yes" context="optsecuritypage|masterpassword">_Master Password...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="masterpassword-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|masterpassword">Opens the Enter Master Password dialog.</property>
@@ -381,20 +488,20 @@ Do you want to delete password list and reset master password?</property>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -402,7 +509,7 @@ Do you want to delete password list and reset master password?</property>
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsecuritypage|label2">Passwords for Web Connections</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -411,50 +518,50 @@ Do you want to delete password list and reset master password?</property>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">24</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="optsecuritypage|label4">Adjust security related options and define warnings for hidden information in documents. </property>
<property name="wrap">True</property>
- <property name="width_chars">56</property>
- <property name="max_width_chars">56</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="options">
<property name="label" translatable="yes" context="optsecuritypage|options">O_ptions...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="options-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|options">Opens the "Security Options and Warnings" dialog.</property>
@@ -462,8 +569,8 @@ Do you want to delete password list and reset master password?</property>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -471,7 +578,7 @@ Do you want to delete password list and reset master password?</property>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optsecuritypage|label1">Security Options and Warnings</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -480,14 +587,125 @@ Do you want to delete password list and reset master password?</property>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
- <child internal-child="accessible">
- <object class="AtkObject" id="OptSecurityPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|OptSecurityPage">Defines the security options for saving documents, for web connections, and for opening documents that contain macros.</property>
+ <child>
+ <object class="GtkFrame" id="certmgr">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="row-spacing">8</property>
+ <property name="column-spacing">24</property>
+ <child>
+ <object class="GtkButton" id="browse">
+ <property name="label" translatable="yes" context="optsecuritypage|browse">_Browse...</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="parameterfield">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="parameterfield-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|parameterfield">Enter the executable of the certificate manager path.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label11">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes" context="optsecuritypage|label11">Select custom certificate manager executable. Note that %PRODUCTNAME tries to locate installed ones automatically.</property>
+ <property name="wrap">True</property>
+ <property name="width-chars">56</property>
+ <property name="max-width-chars">56</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcertimanager">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="lockcertimanager-atkobject">
+ <property name="AtkObject::accessible-description">Enter the executable of the certificate manager path is readonly.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optsecuritypage|label10">Certificate Manager</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
</object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
</child>
</object>
<object class="GtkSizeGroup" id="sizegroup1">
@@ -498,6 +716,7 @@ Do you want to delete password list and reset master password?</property>
<widget name="connections"/>
<widget name="masterpassword"/>
<widget name="options"/>
+ <widget name="browse"/>
</widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/optuserpage.ui b/cui/uiconfig/ui/optuserpage.ui
index 25c6438f2e24..a3399ae49739 100644
--- a/cui/uiconfig/ui/optuserpage.ui
+++ b/cui/uiconfig/ui/optuserpage.ui
@@ -1,126 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="OptUserPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=13 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="companyft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
- <property name="label" translatable="yes" context="optuserpage|companyft">_Company:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">company</property>
+ <property name="label" translatable="yes" context="optuserpage|companyft">Co_mpany:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">company</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="nameft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|nameft">First/last _name/initials:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">firstname</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">firstname</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="streetft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|streetft">_Street:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">street</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">street</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="cityft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|cityft">City/state/_zip:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">city</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">city</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="countryft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|countryft">Country/re_gion:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">country</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">country</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">8</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="titleft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|titleft">_Title/position:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">title</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">title</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">9</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">9</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="phoneft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|phoneft">Telephone (home/_work):</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">home</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">home</property>
<property name="xalign">0</property>
<child internal-child="accessible">
<object class="AtkObject" id="phoneft-atkobject">
@@ -129,38 +129,38 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">10</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">10</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="faxft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|faxft">Fa_x/email:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">fax</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">fax</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">11</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">11</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid2">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="firstname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="firstname-atkobject">
@@ -170,17 +170,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="lastname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="lastname-atkobject">
@@ -190,17 +190,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="shortname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
- <property name="activates_default">True</property>
- <property name="width_chars">7</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">7</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="shortname-atkobject">
@@ -210,29 +210,29 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid3">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="city">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="city-atkobject">
@@ -242,17 +242,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="state">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="state-atkobject">
@@ -262,17 +262,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="zip">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
- <property name="activates_default">True</property>
- <property name="width_chars">15</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">15</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="zip-atkobject">
@@ -282,30 +282,30 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid5">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
- <property name="column_spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="title">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="title-atkobject">
@@ -315,17 +315,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="position">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="position-atkobject">
@@ -335,29 +335,29 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">9</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">9</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid6">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="home">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="home-atkobject">
@@ -367,17 +367,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="work">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="work-atkobject">
@@ -387,30 +387,30 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">10</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">10</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid7">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
- <property name="column_spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="fax">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="fax-atkobject">
@@ -420,17 +420,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="email">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="email-atkobject">
@@ -440,24 +440,24 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">11</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">11</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="usefordocprop">
- <property name="label" translatable="yes" context="optuserpage|usefordocprop">Use data for document properties</property>
+ <property name="label" translatable="yes" context="optuserpage|usefordocprop">_Use data for document properties</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="usefordocprop-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tips | usefordoprop">Mark to use the data in document properties</property>
@@ -465,39 +465,39 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">12</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">12</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="rusnameft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|rusnameft">Last/first/father’s _name/initials:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">ruslastname</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">ruslastname</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=1 -->
<object class="GtkGrid" id="grid8">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="ruslastname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ruslastname-atkobject">
@@ -507,17 +507,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="rusfathersname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="rusfathersname-atkobject">
@@ -527,17 +527,17 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="russhortname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
- <property name="activates_default">True</property>
- <property name="width_chars">7</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">7</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="russhortname-atkobject">
@@ -547,17 +547,17 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="rusfirstname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="rusfirstname-atkobject">
@@ -567,44 +567,44 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="eastnameft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|eastnameft">Last/first _name/initials:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">eastlastname</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">eastlastname</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid9">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="eastlastname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="eastlastname-atkobject">
@@ -614,17 +614,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="eastfirstname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="eastfirstname-atkobject">
@@ -634,17 +634,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="eastshortname">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
- <property name="activates_default">True</property>
- <property name="width_chars">7</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">7</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="eastshortname-atkobject">
@@ -654,44 +654,44 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="russtreetft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|russtreetft">_Street/apartment number:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">russtreet</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">russtreet</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid10">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="russtreet">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="russtreet-atkobject">
@@ -701,17 +701,17 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="apartnum">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
- <property name="activates_default">True</property>
- <property name="width_chars">15</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">15</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="apartnum-atkobject">
@@ -721,44 +721,44 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="icityft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="optuserpage|icityft">_Zip/city:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">izip</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">izip</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid11">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkEntry" id="icity">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="icity-atkobject">
@@ -768,17 +768,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="izip">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
- <property name="activates_default">True</property>
- <property name="width_chars">15</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">15</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="izip-atkobject">
@@ -788,29 +788,29 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid4">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
<child>
<object class="GtkEntry" id="street">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="street-atkobject">
@@ -819,29 +819,29 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid12">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
<child>
<object class="GtkEntry" id="country">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="country-atkobject">
@@ -850,29 +850,29 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">8</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
<!-- n-columns=1 n-rows=1 -->
<object class="GtkGrid" id="grid13">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
<child>
<object class="GtkEntry" id="company">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="company-atkobject">
@@ -881,14 +881,183 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcompanyft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locknameft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockrusnameft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockeastnameft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockstreetft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockrusstreetft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockicityft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcityft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockcountryft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locktitleft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockphoneft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">10</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockfaxft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">11</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockusefordocprop">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">12</property>
</packing>
</child>
</object>
@@ -896,7 +1065,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optuserpage|label1">Address</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -913,50 +1082,50 @@
<child>
<object class="GtkFrame" id="cryptography">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="grid14">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="signingkeylabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optuserpage|signingkeylabel">OpenPGP signing key:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">signingkey</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optuserpage|signingkeylabel">_OpenPGP signing key:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">signingkey</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="encryptionkeylabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="optuserpage|encryptionkeylabel">OpenPGP encryption key:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">encryptionkey</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optuserpage|encryptionkeylabel">OpenPGP encryption _key:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">encryptionkey</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="encryptionkey">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<items>
<item translatable="yes" context="optuserpage|liststore1">No key</item>
@@ -968,14 +1137,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="signingkey">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<items>
<item translatable="yes" context="optuserpage|liststore1">No key</item>
@@ -987,18 +1156,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="encrypttoself">
- <property name="label" translatable="yes" context="optuserpage|encrypttoself">When encrypting documents, always encrypt to self</property>
+ <property name="label" translatable="yes" context="optuserpage|encrypttoself">When _encrypting documents, always encrypt to self</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="encrypttoself-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended tip | encrypttoself">Mark this checkbox to also encrypt the file with your public key, so you can open the document with your private key.</property>
@@ -1006,19 +1175,58 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="locksigningkey">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockencryptionkey">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockencrypttoself">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="cryptographylabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="optuserpage|cryptographylabel">Cryptography</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
diff --git a/cui/uiconfig/ui/optviewpage.ui b/cui/uiconfig/ui/optviewpage.ui
index fb330f2aa048..6ad847830136 100644
--- a/cui/uiconfig/ui/optviewpage.ui
+++ b/cui/uiconfig/ui/optviewpage.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment2">
@@ -9,6 +9,11 @@
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">cmd/sc_additionsdialog.png</property>
+ </object>
<!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="OptViewPage">
<property name="visible">True</property>
@@ -22,7 +27,6 @@
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="hexpand">True</property>
<property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame4">
@@ -32,7 +36,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=2 n-rows=2 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -42,20 +46,6 @@
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
- <object class="GtkLabel" id="label11">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optviewpage|label11">_Positioning:</property>
- <property name="use-underline">True</property>
- <property name="mnemonic-widget">mousepos</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
<object class="GtkLabel" id="label12">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -65,27 +55,6 @@
<property name="xalign">0</property>
</object>
<packing>
- <property name="left-attach">0</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="mousepos">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <items>
- <item translatable="yes" context="optviewpage|mousepos">Default button</item>
- <item translatable="yes" context="optviewpage|mousepos">Dialog center</item>
- <item translatable="yes" context="optviewpage|mousepos">No automatic positioning</item>
- </items>
- <child internal-child="accessible">
- <object class="AtkObject" id="mousepos-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | mousepos">Specifies if and how the mouse pointer will be positioned in newly opened dialogs.</property>
- </object>
- </child>
- </object>
- <packing>
<property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
@@ -107,140 +76,30 @@
</child>
</object>
<packing>
- <property name="left-attach">1</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optviewpage|label4">Mouse</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame3">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label-xalign">0</property>
- <property name="shadow-type">none</property>
- <child>
- <!-- n-columns=1 n-rows=2 -->
- <object class="GtkGrid" id="grid8">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
- <property name="row-spacing">3</property>
- <child>
- <!-- n-columns=2 n-rows=1 -->
- <object class="GtkGrid" id="menuiconsbox">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="column-spacing">6</property>
- <child>
- <object class="GtkLabel" id="label13">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optviewpage|label13">Menu icons:</property>
- <property name="use-underline">True</property>
- <property name="mnemonic-widget">menuicons</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="menuicons">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <items>
- <item translatable="yes" context="optviewpage|menuicons">Automatic</item>
- <item translatable="yes" context="optviewpage|menuicons">Hide</item>
- <item translatable="yes" context="optviewpage|menuicons">Show</item>
- </items>
- <child internal-child="accessible">
- <object class="AtkObject" id="menuicons-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | menuicons">Displays icons next to the corresponding menu items. Select from "Automatic", "Hide" and "Show". "Automatic" displays icons according to system settings and themes.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">2</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=2 n-rows=1 -->
- <object class="GtkGrid" id="menushortcutsbpx">
- <property name="visible">True</property>
+ <object class="GtkImage" id="lockmousemiddle">
<property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <property name="column-spacing">6</property>
- <child>
- <object class="GtkComboBoxText" id="contextmenushortcuts">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="hexpand">True</property>
- <items>
- <item translatable="yes" context="optviewpage|contextmenushortcuts">Automatic</item>
- <item translatable="yes" context="optviewpage|contextmenushortcuts">Hide</item>
- <item translatable="yes" context="optviewpage|contextmenushortcuts">Show</item>
- </items>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label10">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optviewpage|label10">Shortcuts:</property>
- <property name="use-underline">True</property>
- <property name="mnemonic-widget">contextmenushortcuts</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
</child>
<child type="label">
- <object class="GtkLabel" id="label3">
+ <object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optviewpage|label3">Visibility</property>
+ <property name="label" translatable="yes" context="optviewpage|label4">Mouse</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -249,7 +108,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
@@ -260,7 +119,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=2 n-rows=3 -->
+ <!-- n-columns=3 n-rows=3 -->
<object class="GtkGrid" id="refgrid1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -286,7 +145,7 @@
</child>
</object>
<packing>
- <property name="left-attach">1</property>
+ <property name="left-attach">2</property>
<property name="top-attach">1</property>
</packing>
</child>
@@ -300,7 +159,7 @@
<property name="xalign">0</property>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
@@ -321,7 +180,7 @@
</child>
</object>
<packing>
- <property name="left-attach">1</property>
+ <property name="left-attach">2</property>
<property name="top-attach">2</property>
</packing>
</child>
@@ -335,7 +194,7 @@
<property name="xalign">0</property>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
@@ -357,7 +216,7 @@
</child>
</object>
<packing>
- <property name="left-attach">1</property>
+ <property name="left-attach">2</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -371,10 +230,49 @@
<property name="xalign">0</property>
</object>
<packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockiconsize">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
+ <child>
+ <object class="GtkImage" id="locknotebookbariconsize">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="locksidebariconsize">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
@@ -390,7 +288,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
@@ -401,7 +299,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=3 n-rows=1 -->
+ <!-- n-columns=4 n-rows=1 -->
<object class="GtkGrid" id="refgrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -416,10 +314,6 @@
<property name="hexpand">True</property>
<items>
<item translatable="yes" context="optviewpage|iconstyle">Automatic</item>
- <item translatable="yes" context="optviewpage|iconstyle">Galaxy</item>
- <item translatable="yes" context="optviewpage|iconstyle">High Contrast</item>
- <item translatable="yes" context="optviewpage|iconstyle">Oxygen</item>
- <item translatable="yes" context="optviewpage|iconstyle">Classic</item>
<item translatable="yes" context="optviewpage|iconstyle">Sifr</item>
<item translatable="yes" context="optviewpage|iconstyle">Breeze</item>
</items>
@@ -430,7 +324,7 @@
</child>
</object>
<packing>
- <property name="left-attach">1</property>
+ <property name="left-attach">2</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -438,13 +332,13 @@
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optviewpage|label6">Icon s_tyle:</property>
+ <property name="label" translatable="yes" context="optviewpage|label6">_Theme:</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">iconstyle</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -454,8 +348,76 @@
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes" context="optviewpage|btnMoreIcons">Add more icon themes via extension</property>
- <child>
- <placeholder/>
+ <property name="image">image1</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockiconstyle">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optviewpage|label1">Icon Theme</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="darkmode">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <!-- n-columns=3 n-rows=1 -->
+ <object class="GtkGrid" id="refgrid2">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">6</property>
+ <child>
+ <object class="GtkComboBoxText" id="appearance">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes" context="optviewpage|appearance">System</item>
+ <item translatable="yes" context="optviewpage|appearance">Light</item>
+ <item translatable="yes" context="optviewpage|appearance">Dark</item>
+ </items>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="appearance-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip | appearance">Specifies whether to follow the system appearance mode or override Dark or Light.</property>
+ </object>
</child>
</object>
<packing>
@@ -463,13 +425,40 @@
<property name="top-attach">0</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="optviewpage|label7">Mode:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">appearance</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockappearance">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
- <object class="GtkLabel" id="label1">
+ <object class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes" context="optviewpage|label1">Icon Style</property>
+ <property name="label" translatable="yes" context="optviewpage|label16">Appearance</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -500,11 +489,10 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=6 -->
+ <!-- n-columns=2 n-rows=7 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="tooltip-text" translatable="yes" context="optviewpage|grid3|tooltip_text">Requires restart</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
<property name="row-spacing">3</property>
@@ -514,6 +502,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="optviewpage|useaccel|tooltip_text">Requires restart</property>
<property name="halign">start</property>
<property name="use-underline">True</property>
<property name="draw-indicator">True</property>
@@ -524,7 +513,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -534,6 +523,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="optviewpage|useaa|tooltip_text">Requires restart</property>
<property name="halign">start</property>
<property name="use-underline">True</property>
<property name="draw-indicator">True</property>
@@ -544,7 +534,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
@@ -554,11 +544,12 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="optviewpage|useskia|tooltip_text">Requires restart</property>
<property name="use-underline">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
@@ -569,39 +560,118 @@
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="tooltip-text" translatable="yes" context="optviewpage|forceskia|tooltip_text">Requires restart. Enabling this will prevent the use of graphics drivers.</property>
- <property name="margin-start">12</property>
+ <property name="margin-start">18</property>
<property name="use-underline">True</property>
<property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="skiaenabled">
<property name="can-focus">False</property>
- <property name="margin-start">12</property>
+ <property name="margin-start">18</property>
<property name="label" translatable="yes" context="optviewpage|skiaenabled">Skia is currently enabled.</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="skiadisabled">
<property name="can-focus">False</property>
- <property name="margin-start">12</property>
+ <property name="margin-start">18</property>
<property name="label" translatable="yes" context="optviewpage|skiadisabled">Skia is currently disabled.</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">5</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="btnSkialog">
+ <property name="label" translatable="yes" context="optviewpage|btnSkialog">Copy skia.log</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockuseaccel">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockuseaa">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockuseskia">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockforceskiaraster">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
@@ -627,7 +697,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=3 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid9">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -650,7 +720,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
@@ -670,7 +740,7 @@
</child>
</object>
<packing>
- <property name="left-attach">0</property>
+ <property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
@@ -715,6 +785,45 @@
</child>
</object>
<packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockshowfontpreview">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockaafont">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockaafrom">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
@@ -761,26 +870,22 @@
</object>
<object class="GtkSizeGroup" id="sizegroupLabel">
<widgets>
- <widget name="label6"/>
- <widget name="label14"/>
+ <widget name="label12"/>
<widget name="label8"/>
<widget name="label9"/>
- <widget name="label13"/>
- <widget name="label10"/>
- <widget name="label11"/>
- <widget name="label12"/>
+ <widget name="label14"/>
+ <widget name="label6"/>
+ <widget name="label7"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroupWidget">
<widgets>
- <widget name="iconstyle"/>
- <widget name="iconsize"/>
+ <widget name="mousemiddle"/>
<widget name="notebookbariconsize"/>
<widget name="sidebariconsize"/>
- <widget name="menuicons"/>
- <widget name="contextmenushortcuts"/>
- <widget name="mousepos"/>
- <widget name="mousemiddle"/>
+ <widget name="iconsize"/>
+ <widget name="iconstyle"/>
+ <widget name="appearance"/>
</widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/pageformatpage.ui b/cui/uiconfig/ui/pageformatpage.ui
index 8adcba3e944b..55c57083ef93 100644
--- a/cui/uiconfig/ui/pageformatpage.ui
+++ b/cui/uiconfig/ui/pageformatpage.ui
@@ -1,192 +1,196 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="PageFormatPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="column-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=6 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="labelFormat">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelFormat">_Format:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboPageFormat</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboPageFormat</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboPageFormat">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelWidth">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelWidth">_Width:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinWidth</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinWidth</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinWidth">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelHeight">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelHeight">_Height:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinHeight</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinHeight</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinHeight">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelOrientation">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelOrientation">_Orientation:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">radiobuttonPortrait</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">radiobuttonPortrait</property>
<property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="radiobuttonPortrait"/>
+ <relation type="label-for" target="radiobuttonLandscape"/>
+ </accessibility>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radiobuttonPortrait">
<property name="label" translatable="yes" context="pageformatpage|radiobuttonPortrait">_Portrait</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<accessibility>
- <relation type="member-of" target="labelOrientation"/>
+ <relation type="labelled-by" target="labelOrientation"/>
</accessibility>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radiobuttonLandscape">
<property name="label" translatable="yes" context="pageformatpage|radiobuttonLandscape">L_andscape</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="halign">start</property>
<property name="valign">center</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">radiobuttonPortrait</property>
<accessibility>
- <relation type="member-of" target="labelOrientation"/>
+ <relation type="labelled-by" target="labelOrientation"/>
</accessibility>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelTextFlow">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="pageformatpage|labelTextFlow">_Text direction:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboTextFlowBox</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboTextFlowBox</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboTextFlowBox">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
@@ -194,61 +198,61 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkDrawingArea" id="drawingareaPageDirection">
<property name="visible">True</property>
<property name="sensitive">False</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="vexpand">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelPaperTray">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelPaperTray">Paper _tray:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboPaperTray</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboPaperTray</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboPaperTray">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -256,7 +260,7 @@
<child type="label">
<object class="GtkLabel" id="labelPaperFormat">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelPaperFormat">Paper Format</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -265,46 +269,46 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="column_spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=5 -->
<object class="GtkGrid" id="grid6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="labelLeftMargin">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelLeftMargin">Left:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargLeft</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMargLeft</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -315,10 +319,10 @@
</child>
<child>
<object class="GtkLabel" id="labelInner">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelInner">I_nner:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargLeft</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMargLeft</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -329,34 +333,34 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinMargLeft">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="labelRightMargin">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelRightMargin">Right:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargRight</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMargRight</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -367,10 +371,10 @@
</child>
<child>
<object class="GtkLabel" id="labelOuter">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelOuter">O_uter:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargRight</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMargRight</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -381,98 +385,98 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinMargRight">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelTopMargin">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelTopMargin">Top:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargTop</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMargTop</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinMargTop">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelBottomMargin">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelBottomMargin">Bottom:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargBot</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMargBot</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinMargBot">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelGutterMargin">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelGutterMargin">Gutter:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargGut</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMargGut</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinMargGut">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
</object>
@@ -480,7 +484,7 @@
<child type="label">
<object class="GtkLabel" id="labelMargins">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelMargins">Margins</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -489,64 +493,64 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=10 -->
<object class="GtkGrid" id="grid7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
- <property name="hexpand">True</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="labelPageLayout">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelPageLayout">_Page layout:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboPageLayout</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboPageLayout</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelPageNumbers">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelPageNumbers">Page numbers:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboLayoutFormat</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboLayoutFormat</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkRegisterTrue">
<property name="label" translatable="yes" context="pageformatpage|checkRegisterTrue">Use page li_ne-spacing</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="tooltip_text" translatable="yes" context="pageformatpage|checkRegisterTrue" comments="xdds">Enables page line-spacing (register-true) using the selected Reference Style</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="tooltip-text" translatable="yes" context="pageformatpage|checkRegisterTrue" comments="xdds">Enables page line-spacing (register-true) using the selected Reference Style</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkRegisterTrue-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|checkRegisterTrue">If enabled, then all paragraph styles with the option page line-spacing activated will be affected, assuming the line spacing of the Reference Style. This will align them to an invisible vertical page grid, regardless of their font size, so that each line is the same height.</property>
@@ -554,14 +558,15 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboPageLayout">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="pageformatpage|liststorePageLayout">Right and left</item>
<item translatable="yes" context="pageformatpage|liststorePageLayout">Mirrored</item>
@@ -570,158 +575,152 @@
</items>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboLayoutFormat">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelTblAlign">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="pageformatpage|labelTblAlign">Table alignment:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">checkbuttonHorz</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">checkbuttonHorz</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbuttonHorz">
<property name="label" translatable="yes" context="pageformatpage|checkbuttonHorz">Hori_zontal</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbuttonVert">
<property name="label" translatable="yes" context="pageformatpage|checkbuttonVert">_Vertical</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkAdaptBox">
<property name="label" translatable="yes" context="pageformatpage|checkAdaptBox">_Fit object to paper format</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
- <property name="width">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelRegisterStyle">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="margin-start">12</property>
<property name="label" translatable="yes" context="pageformatpage|labelRegisterStyle">Reference _Style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboRegisterStyle</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboRegisterStyle</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboRegisterStyle">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelGutterPosition">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelGutterPosition">Gutter position:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboGutterPosition</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboGutterPosition</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboGutterPosition">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="pageformatpage|liststoreGutterPosition">Left</item>
<item translatable="yes" context="pageformatpage|liststoreGutterPosition">Top</item>
</items>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
<object class="GtkCheckButton" id="checkRtlGutter">
<property name="label" translatable="yes" context="pageformatpage|checkRtlGutter">Gutter on right side of page</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">8</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkBackgroundFullSize">
<property name="label" translatable="yes" context="pageformatpage|checkBackgroundFullSize">Background covers margins</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="no_show_all">True</property>
- <property name="tooltip_text" translatable="yes" context="pageformatpage|checkBackgroundFullSize" comments="xdds">Any background will cover margins of the page as well</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="no-show-all">True</property>
+ <property name="tooltip-text" translatable="yes" context="pageformatpage|checkBackgroundFullSize" comments="xdds">Any background will cover margins of the page as well</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkBackgroundFullSize-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|checkBackgroundFullSize">If enabled, then any background will cover the entire page, including margins. If disabled, any background will cover the page only inside the margins.</property>
@@ -729,16 +728,28 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">9</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">9</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|label5">Layout Settings</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -747,38 +758,38 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelMsg">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="pageformatpage|labelMsg">The margin settings are out of print range.
Do you still want to apply these settings?</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
<object class="GtkSizeGroup" id="sizegroup1">
- <property name="ignore_hidden">True</property>
+ <property name="ignore-hidden">True</property>
<widgets>
<widget name="grid3"/>
<widget name="grid6"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup2">
- <property name="ignore_hidden">True</property>
+ <property name="ignore-hidden">True</property>
<widgets>
<widget name="grid4"/>
<widget name="grid7"/>
@@ -807,7 +818,7 @@ Do you still want to apply these settings?</property>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroupWidget2">
- <property name="ignore_hidden">True</property>
+ <property name="ignore-hidden">True</property>
<widgets>
<widget name="comboPaperTray"/>
<widget name="comboPageLayout"/>
diff --git a/cui/uiconfig/ui/paragalignpage.ui b/cui/uiconfig/ui/paragalignpage.ui
index 70fab84cc46b..47f5865d2b6f 100644
--- a/cui/uiconfig/ui/paragalignpage.ui
+++ b/cui/uiconfig/ui/paragalignpage.ui
@@ -1,35 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="ParaAlignPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">24</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
- <property name="hexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
<property name="margin-top">24</property>
+ <property name="hexpand">True</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="drawingareaWN_EXAMPLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
<child internal-child="accessible">
@@ -43,134 +43,134 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="maingrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">12</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=8 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
<child>
<object class="GtkRadioButton" id="radioBTN_LEFTALIGN">
<property name="label" translatable="yes" context="paragalignpage|radioBTN_LEFTALIGN">_Left</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radioBTN_RIGHTALIGN">
<property name="label" translatable="yes" context="paragalignpage|radioBTN_RIGHTALIGN">_Right</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">radioBTN_LEFTALIGN</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radioBTN_CENTERALIGN">
<property name="label" translatable="yes" context="paragalignpage|radioBTN_CENTERALIGN">_Center</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">radioBTN_LEFTALIGN</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radioBTN_JUSTIFYALIGN">
<property name="label" translatable="yes" context="paragalignpage|radioBTN_JUSTIFYALIGN">_Justified</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">radioBTN_LEFTALIGN</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkCB_EXPAND">
<property name="label" translatable="yes" context="paragalignpage|checkCB_EXPAND">_Expand single word</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">22</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkCB_SNAP">
<property name="label" translatable="yes" context="paragalignpage|checkCB_SNAP">_Snap to text grid (if active)</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">22</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkLabel" id="labelST_RIGHTALIGN_ASIAN">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|labelST_RIGHTALIGN_ASIAN">Righ_t/Bottom</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -180,9 +180,9 @@
</child>
<child>
<object class="GtkLabel" id="labelST_LEFTALIGN_ASIAN">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|labelST_LEFTALIGN_ASIAN">_Left/Top</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -190,25 +190,36 @@
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="labelST_VERTALIGN_SDR">
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="paragalignpage|labelST_VERTALIGN_SDR">Vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">18</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkLabel" id="labelLB_LASTLINE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|labelLB_LASTLINE">_Last line:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboLB_LASTLINE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboLB_LASTLINE</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -220,7 +231,7 @@
<child>
<object class="GtkComboBoxText" id="comboLB_LASTLINE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item id="0" translatable="yes" context="paragalignpage|liststoreLB_LASTLINE">Start</item>
@@ -237,8 +248,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
</object>
@@ -246,7 +257,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|label1">Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -255,30 +266,30 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frameFL_VERTALIGN">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkLabel" id="labelFT_VERTALIGN">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|labelFT_VERTALIGN">_Alignment:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboLB_VERTALIGN</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboLB_VERTALIGN</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -290,7 +301,7 @@
<child>
<object class="GtkComboBoxText" id="comboLB_VERTALIGN">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item id="0" translatable="yes" context="paragalignpage|liststoreLB_VERTALIGN">Automatic</item>
@@ -311,7 +322,7 @@
<child type="label">
<object class="GtkLabel" id="labelFL_VERTALIGN">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|labelFL_VERTALIGN">Text-to-text</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -320,30 +331,30 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="framePROPERTIES">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|label2">_Text direction:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboLB_TEXTDIRECTION</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboLB_TEXTDIRECTION</property>
<property name="xalign">0</property>
</object>
<packing>
@@ -355,7 +366,7 @@
<child>
<object class="GtkComboBoxText" id="comboLB_TEXTDIRECTION">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
@@ -368,7 +379,7 @@
<child type="label">
<object class="GtkLabel" id="labelFL_PROPERTIES">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paragalignpage|labelFL_PROPERTIES">Properties</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -377,14 +388,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
diff --git a/cui/uiconfig/ui/paraindentspacing.ui b/cui/uiconfig/ui/paraindentspacing.ui
index 8a37b7d8653e..333ca695c5a4 100644
--- a/cui/uiconfig/ui/paraindentspacing.ui
+++ b/cui/uiconfig/ui/paraindentspacing.ui
@@ -1,70 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
+ <object class="GtkAdjustment" id="adjustment1">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
<object class="GtkAdjustment" id="adjustmentED_DIST">
<property name="upper">9999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentED_DIST1">
<property name="upper">9999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentED_LINEDISTMETRIC">
<property name="upper">9999</property>
- <property name="step_increment">10</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">10</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentLINEDISTPERCENT">
<property name="lower">6</property>
<property name="upper">65535</property>
<property name="value">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentspinED_INDENT">
<property name="upper">9999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentspinED_INDENT1">
<property name="upper">9999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentspinED_INDENT2">
<property name="upper">9999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="ParaIndentSpacing">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">24</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
- <property name="margin_start">24</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="margin-start">24</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="drawingareaWN_EXAMPLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
<child internal-child="accessible">
@@ -78,138 +83,138 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="maingrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="vexpand">True</property>
- <property name="row_spacing">12</property>
+ <property name="row-spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="margin_top">6</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="labelFT_LEFTINDENT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFT_LEFTINDENT">_Before text:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinED_LEFTINDENT</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinED_LEFTINDENT</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelFT_RIGHTINDENT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFT_RIGHTINDENT">After _text:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinED_RIGHTINDENT</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinED_RIGHTINDENT</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelFT_FLINEINDENT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFT_FLINEINDENT">_First line:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinED_FLINEINDENT</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinED_FLINEINDENT</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkCB_AUTO">
<property name="label" translatable="yes" context="paraindentspacing|checkCB_AUTO">_Automatic</property>
<property name="visible">True</property>
- <property name="tooltip_text" translatable="yes" context="paraindentspacing|checkCB_AUTO|tooltip_text">Indent paragraph automatically according to font size and line spacing.</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="paraindentspacing|checkCB_AUTO|tooltip_text">Indent paragraph automatically according to font size and line spacing.</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinED_LEFTINDENT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentspinED_INDENT</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinED_RIGHTINDENT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentspinED_INDENT1</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinED_FLINEINDENT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentspinED_INDENT2</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelST_LINEDIST_ABS">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelST_LINEDIST_ABS">Fixed</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -217,7 +222,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|label1">Indent</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -226,83 +231,83 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="margin_top">6</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="labelFT_TOPDIST">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFT_TOPDIST">Ab_ove paragraph:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinED_TOPDIST</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinED_TOPDIST</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelFT_BOTTOMDIST">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFT_BOTTOMDIST">Below _paragraph:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinED_BOTTOMDIST</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinED_BOTTOMDIST</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinED_TOPDIST">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentED_DIST</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinED_BOTTOMDIST">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentED_DIST1</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -316,10 +321,10 @@
<object class="GtkCheckButton" id="checkCB_CONTEXTUALSPACING">
<property name="label" translatable="yes" context="paraindentspacing|checkCB_CONTEXTUALSPACING">Do not add space between paragraphs of the same style</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -332,7 +337,7 @@
<child type="label">
<object class="GtkLabel" id="labelFL_VERTALIGN">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFL_VERTALIGN">Spacing</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -341,39 +346,39 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="framePROPERTIES">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_start">12</property>
- <property name="margin_top">6</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkComboBoxText" id="comboLB_LINEDIST">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item id="0" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Single</item>
<item id="1" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">1.15 Lines</item>
@@ -382,6 +387,7 @@
<item id="4" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Proportional</item>
<item id="5" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">At least</item>
<item id="6" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Leading</item>
+ <item id="7" translatable="yes" context="paraindentspacing|liststoreLB_LINEDIST">Fixed</item>
</items>
</object>
<packing>
@@ -393,7 +399,7 @@
<child>
<object class="GtkLabel" id="labelFT_LINEDIST">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFT_LINEDIST">of</property>
</object>
<packing>
@@ -404,21 +410,21 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSpinButton" id="spinED_LINEDISTPERCENT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentLINEDISTPERCENT</property>
</object>
<packing>
@@ -430,9 +436,9 @@
<child>
<object class="GtkSpinButton" id="spinED_LINEDISTMETRIC">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="truncate_multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentED_LINEDISTMETRIC</property>
<property name="digits">1</property>
</object>
@@ -442,10 +448,26 @@
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkSpinButton" id="spinED_BLANK">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="digits">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -458,12 +480,12 @@
<child>
<object class="GtkCheckButton" id="checkCB_REGISTER">
<property name="label" translatable="yes" context="paraindentspacing|checkCB_REGISTER">Activate page li_ne-spacing</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes" context="paraindentspacing|checkCB_REGISTER|tooltip_text" comments="xdds">Applies page line-spacing (register-true) if set for the Page Style.</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="paraindentspacing|checkCB_REGISTER|tooltip_text" comments="xdds">Applies page line-spacing (register-true) if set for the Page Style.</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkCB_REGISTER-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="paraindentspacing|extended_tip|checkCB_REGISTER">If page line-spacing is activated and the Page style uses page line-spacing, then this paragraph will align to an invisible vertical page grid, regardless of their font size, so that each line is the same height.</property>
@@ -481,7 +503,7 @@
<child type="label">
<object class="GtkLabel" id="labelFL_PROPERTIES">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="paraindentspacing|labelFL_PROPERTIES">Line Spacing</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -490,14 +512,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -520,6 +542,7 @@
<widget name="spinED_BOTTOMDIST"/>
<widget name="spinED_LINEDISTPERCENT"/>
<widget name="spinED_LINEDISTMETRIC"/>
+ <widget name="spinED_BLANK"/>
</widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/password.ui b/cui/uiconfig/ui/password.ui
index 447968f7fce0..e7bc05e138e4 100644
--- a/cui/uiconfig/ui/password.ui
+++ b/cui/uiconfig/ui/password.ui
@@ -73,7 +73,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=6 -->
+ <!-- n-columns=1 n-rows=7 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -83,47 +83,6 @@
<property name="row-spacing">6</property>
<property name="column-spacing">12</property>
<child>
- <object class="GtkEntry" id="newpassEntry">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="hexpand">True</property>
- <property name="visibility">False</property>
- <property name="activates-default">True</property>
- <property name="width-chars">50</property>
- <property name="truncate-multiline">True</property>
- <property name="input-purpose">password</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="newpassEntry-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="password|extended_tip|newpassEntry">Type a password. A password is case sensitive.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="confirmpassEntry">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="hexpand">True</property>
- <property name="visibility">False</property>
- <property name="activates-default">True</property>
- <property name="truncate-multiline">True</property>
- <property name="input-purpose">password</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="confirmpassEntry-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="password|extended_tip|confirmpassEntry">Re-enter the password.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">3</property>
- </packing>
- </child>
- <child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -134,7 +93,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
@@ -150,7 +109,7 @@
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=5 -->
+ <!-- n-columns=1 n-rows=6 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -198,7 +157,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">4</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
@@ -206,6 +165,7 @@
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
@@ -226,10 +186,11 @@
<property name="no-show-all">True</property>
<property name="halign">end</property>
<property name="hexpand">True</property>
+ <property name="wrap">True</property>
<property name="xalign">0</property>
<child internal-child="accessible">
<object class="AtkObject" id="newpassroIndicator-atkobject">
- <property name="AtkObject::accessible-role" translatable="no">static</property>
+ <property name="AtkObject::accessible-role">static</property>
</object>
</child>
</object>
@@ -249,6 +210,7 @@
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
@@ -272,7 +234,7 @@
<property name="xalign">0</property>
<child internal-child="accessible">
<object class="AtkObject" id="confirmropassIndicator-atkobject">
- <property name="AtkObject::accessible-role" translatable="no">static</property>
+ <property name="AtkObject::accessible-role">static</property>
</object>
</child>
</object>
@@ -284,6 +246,16 @@
</object>
<packing>
<property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLevelBar" id="ropasslevelbar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
<property name="top-attach">3</property>
</packing>
</child>
@@ -317,7 +289,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">5</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
@@ -325,6 +297,7 @@
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
@@ -345,10 +318,11 @@
<property name="no-show-all">True</property>
<property name="halign">end</property>
<property name="hexpand">True</property>
+ <property name="wrap">True</property>
<property name="xalign">0</property>
<child internal-child="accessible">
<object class="AtkObject" id="newpassIndicator-atkobject">
- <property name="AtkObject::accessible-role" translatable="no">static</property>
+ <property name="AtkObject::accessible-role">static</property>
</object>
</child>
</object>
@@ -368,6 +342,7 @@
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
@@ -391,7 +366,7 @@
<property name="xalign">0</property>
<child internal-child="accessible">
<object class="AtkObject" id="confirmpassIndicator-atkobject">
- <property name="AtkObject::accessible-role" translatable="no">static</property>
+ <property name="AtkObject::accessible-role">static</property>
</object>
</child>
</object>
@@ -403,6 +378,57 @@
</object>
<packing>
<property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="confirmpassEntry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="visibility">False</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="input-purpose">password</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="confirmpassEntry-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="password|extended_tip|confirmpassEntry">Re-enter the password.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="newpassEntry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="visibility">False</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">50</property>
+ <property name="truncate-multiline">True</property>
+ <property name="input-purpose">password</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="newpassEntry-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="password|extended_tip|newpassEntry">Type a password. A password is case sensitive.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLevelBar" id="passlevelbar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
diff --git a/cui/uiconfig/ui/personalization_tab.ui b/cui/uiconfig/ui/personalization_tab.ui
index 9e483780bb4f..fc89951f2cb4 100644
--- a/cui/uiconfig/ui/personalization_tab.ui
+++ b/cui/uiconfig/ui/personalization_tab.ui
@@ -1,38 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.38.2 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="PersonalizationTabPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="vbox2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
+ <property name="margin-end">6</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
- <property name="margin-end">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
<child>
- <object class="GtkRadioButton" id="no_persona">
- <property name="label" translatable="yes" context="personalization_tab|no_persona">Default look, do not use Themes</property>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <child>
+ <!-- n-columns=1 n-rows=2 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">12</property>
+ <child>
+ <object class="GtkRadioButton" id="no_persona">
+ <property name="label" translatable="yes" context="personalization_tab|no_persona">Default look, do not use Themes</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">default_persona</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="default_persona">
+ <property name="label" translatable="yes" context="personalization_tab|default_persona">Preinstalled Theme</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">no_persona</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockpersona">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -41,128 +96,115 @@
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="default_persona">
- <property name="label" translatable="yes" context="personalization_tab|default_persona">Preinstalled Theme</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">no_persona</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
+ <placeholder/>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid">
+ <!-- n-columns=3 n-rows=3 -->
+ <object class="GtkGrid" id="gridpersonasetting">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="margin-start">24</property>
<property name="margin-end">6</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkToggleButton" id="default1">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default0">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default2">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default3">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default4">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default5">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default6">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default7">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="default8">
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="always_show_image">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="always-show-image">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
@@ -177,7 +219,7 @@
<child type="label">
<object class="GtkLabel" id="personas_label">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="personalization_tab|personas_label">LibreOffice Themes</property>
<attributes>
<attribute name="weight" value="bold"/>
diff --git a/cui/uiconfig/ui/pickbulletpage.ui b/cui/uiconfig/ui/pickbulletpage.ui
index b9749dda540e..589874506853 100644
--- a/cui/uiconfig/ui/pickbulletpage.ui
+++ b/cui/uiconfig/ui/pickbulletpage.ui
@@ -1,58 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <object class="GtkFrame" id="PickBulletPage">
+ <object class="GtkScrolledWindow" id="PickBulletPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkScrolledWindow" id="valuesetwin">
+ <object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkDrawingArea" id="valueset">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkDrawingArea" id="valueset">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="valueset-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="pickbulletpage|extended_tip|valueset">Click the bullet style that you want to use.</property>
- </object>
- </child>
+ <property name="can-focus">True</property>
+ <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="valueset-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="pickbulletpage|extended_tip|valueset">Click the bullet style that you want to use.</property>
</object>
</child>
</object>
</child>
</object>
</child>
- <child type="label">
- <object class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="pickbulletpage|label25">Selection</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="PickBulletPage-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="pickbulletpage|extended_tip|PickBulletPage">Displays the different bullet styles that you can apply.</property>
diff --git a/cui/uiconfig/ui/pickgraphicpage.ui b/cui/uiconfig/ui/pickgraphicpage.ui
index fd7b9922e950..ea7342844a14 100644
--- a/cui/uiconfig/ui/pickgraphicpage.ui
+++ b/cui/uiconfig/ui/pickgraphicpage.ui
@@ -1,104 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <object class="GtkFrame" id="PickGraphicPage">
+ <!-- n-columns=2 n-rows=3 -->
+ <object class="GtkGrid" id="PickGraphicPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="row-spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid1">
+ <object class="GtkScrolledWindow" id="valuesetwin">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkScrolledWindow" id="valuesetwin">
+ <object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkDrawingArea" id="valueset">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkDrawingArea" id="valueset">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="valueset-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="pickgraphicpage|extended_tip|valueset">Click the graphics that you want to use as bullets.</property>
- </object>
- </child>
+ <property name="can-focus">True</property>
+ <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="valueset-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="pickgraphicpage|extended_tip|valueset">Click the graphics that you want to use as bullets.</property>
</object>
</child>
</object>
</child>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="errorft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label" translatable="yes" context="pickgraphicpage|errorft">The Gallery theme 'Bullets' is empty (no images).</property>
- <property name="wrap">True</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="browseBtn">
- <property name="label" translatable="yes" context="pickgraphicpage|browseBtn">Add and Resize</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="halign">end</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
</child>
</object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="errorft">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="label" translatable="yes" context="pickgraphicpage|errorft">The Gallery theme 'Bullets' is empty (no images).</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="label25">
+ <child>
+ <object class="GtkButton" id="browseBtn">
+ <property name="label" translatable="yes" context="pickgraphicpage|browseBtn">Add and Resize</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="pickgraphicpage|label25">Selection</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">end</property>
</object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
</child>
<child internal-child="accessible">
<object class="AtkObject" id="PickGraphicPage-atkobject">
diff --git a/cui/uiconfig/ui/picknumberingpage.ui b/cui/uiconfig/ui/picknumberingpage.ui
index ef410711a56a..0b80d533a1d6 100644
--- a/cui/uiconfig/ui/picknumberingpage.ui
+++ b/cui/uiconfig/ui/picknumberingpage.ui
@@ -1,58 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <object class="GtkFrame" id="PickNumberingPage">
+ <object class="GtkScrolledWindow" id="PickNumberingPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkScrolledWindow" id="valuesetwin">
+ <object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkDrawingArea" id="valueset">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkDrawingArea" id="valueset">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="valueset-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="picknumberingpage|extended_tip|valueset">Click the numbering scheme that you want to use.</property>
- </object>
- </child>
+ <property name="can-focus">True</property>
+ <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="valueset-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="picknumberingpage|extended_tip|valueset">Click the numbering scheme that you want to use.</property>
</object>
</child>
</object>
</child>
</object>
</child>
- <child type="label">
- <object class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="picknumberingpage|label25">Selection</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="PickNumberingPage-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="picknumberingpage|extended_tip|PickNumberingPage">Displays the different numbering schemes that you can apply.</property>
diff --git a/cui/uiconfig/ui/pickoutlinepage.ui b/cui/uiconfig/ui/pickoutlinepage.ui
index 86706e7395fc..297809d0a919 100644
--- a/cui/uiconfig/ui/pickoutlinepage.ui
+++ b/cui/uiconfig/ui/pickoutlinepage.ui
@@ -1,61 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
- <object class="GtkFrame" id="PickOutlinePage">
+ <object class="GtkScrolledWindow" id="PickOutlinePage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">True</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkScrolledWindow" id="valuesetwin">
+ <object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkViewport">
+ <object class="GtkDrawingArea" id="valueset">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkDrawingArea" id="valueset">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="valueset-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="pickoutlinepage|extended_tip|valueset">Click the outline style that you want to use.</property>
- </object>
- </child>
+ <property name="can-focus">True</property>
+ <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="valueset-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="pickoutlinepage|extended_tip|valueset">Click the outline style that you want to use.</property>
</object>
</child>
</object>
</child>
</object>
</child>
- <child type="label">
- <object class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="pickoutlinepage|label25">Selection</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="PickOutlinePage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="pickoutlinepage|extended_tip|PickOutlinePage">Displays the different styles that you can apply to a hierarchical list. %PRODUCTNAME supports up to nine outline levels in a list hierarchy.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="pickoutlinepage|extended_tip|PickOutlinePage">Displays the different styles that you can apply to a hierarchical list. Up to nine outline levels in a list hierarchy are supported.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/positionpage.ui b/cui/uiconfig/ui/positionpage.ui
index 23d476bbe282..fdafbc7134b2 100644
--- a/cui/uiconfig/ui/positionpage.ui
+++ b/cui/uiconfig/ui/positionpage.ui
@@ -17,7 +17,7 @@
<property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
- <property name="lower">-2</property>
+ <property name="lower">-1000</property>
<property name="upper">1000</property>
<property name="step_increment">0.1</property>
<property name="page_increment">1</property>
@@ -124,7 +124,7 @@
<object class="GtkLabel" id="raiselower">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes" context="positionpage|raiselower">Raise/lower by</property>
+ <property name="label" translatable="yes" context="positionpage|raiselower">Raise/lower by:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">raiselowersb</property>
<property name="xalign">0</property>
@@ -176,7 +176,7 @@
<object class="GtkLabel" id="relativefontsize">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes" context="positionpage|relativefontsize">Relative font size</property>
+ <property name="label" translatable="yes" context="positionpage|relativefontsize">Relative font size:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">fontsizesb</property>
<property name="xalign">0</property>
@@ -299,7 +299,7 @@
<object class="GtkLabel" id="label24">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes" context="positionpage|label24">Scale width</property>
+ <property name="label" translatable="yes" context="positionpage|label24">Scale width:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">scalewidthsb</property>
<property name="xalign">0</property>
@@ -409,7 +409,7 @@
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes" context="positionpage|label7">Character spacing</property>
+ <property name="label" translatable="yes" context="positionpage|label7">Character spacing:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">kerningsb</property>
</object>
@@ -482,6 +482,53 @@
</packing>
</child>
<child>
+ <object class="GtkFrame" id="frame8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkBox" id="box8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <child>
+ <object class="GtkCheckButton" id="nohyphenation">
+ <property name="label" translatable="yes" context="positionpage|nohyphenation">Exclude from hyphenation</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label23">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="positionpage|label23">Hyphenation</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -516,7 +563,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
- <property name="position">3</property>
+ <property name="position">4</property>
</packing>
</child>
</object>
diff --git a/cui/uiconfig/ui/possizetabpage.ui b/cui/uiconfig/ui/possizetabpage.ui
index 0d807e94ace0..6aa88b6f51c2 100644
--- a/cui/uiconfig/ui/possizetabpage.ui
+++ b/cui/uiconfig/ui/possizetabpage.ui
@@ -1,93 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustmentPOS">
<property name="lower">-120</property>
<property name="upper">240</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentPOS1">
<property name="lower">-120</property>
<property name="upper">240</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentSIZE">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentSIZE1">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkBox" id="PositionAndSize">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="FL_POSITION">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
- <property name="homogeneous">True</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="spacing">12</property>
+ <property name="homogeneous">True</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="FT_POS_X">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|FT_POS_X">Position _X:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_POS_X</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_POS_X</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_POS_Y">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|FT_POS_Y">Position _Y:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_POS_Y</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_FLD_POS_Y</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_POS_X">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentPOS</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_POS_X-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|MTR_FLD_POS_X">Enter the horizontal distance that you want to move the object relative to the base point selected in the grid.</property>
@@ -95,19 +95,19 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_POS_Y">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentPOS1</property>
- <property name="digits">4</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentPOS1</property>
+ <property name="digits">2</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_POS_Y-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|MTR_FLD_POS_Y">Enter the vertical distance that you want to move the object relative to the base point selected in the grid.</property>
@@ -115,8 +115,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -129,26 +129,26 @@
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_POSRECT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_POSRECT-atkobject">
@@ -169,10 +169,10 @@
<child>
<object class="GtkLabel" id="FT_POSREFERENCE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|FT_POSREFERENCE">_Base point:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">CTL_POSRECT</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">CTL_POSRECT</property>
</object>
<packing>
<property name="expand">False</property>
@@ -192,7 +192,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|label1">Position</property>
<property name="xalign">0</property>
<attributes>
@@ -210,61 +210,128 @@
<child>
<object class="GtkFrame" id="FL_SIZE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box5">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">12</property>
- <property name="homogeneous">True</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="spacing">12</property>
+ <property name="homogeneous">True</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="FT_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|FT_WIDTH">Wi_dth:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_WIDTH</property>
+ <property name="use-underline">True</property>
<property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="MTR_FLD_WIDTH"/>
+ </accessibility>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="FT_HEIGHT">
+ <!-- n-columns=2 n-rows=3 -->
+ <object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="possizetabpage|FT_HEIGHT">H_eight:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_FLD_HEIGHT</property>
- <property name="xalign">0</property>
+ <property name="can-focus">False</property>
+ <property name="valign">center</property>
+ <property name="column-spacing">3</property>
+ <child>
+ <object class="GtkCheckButton" id="CBX_SCALE">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="focus-on-click">False</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="possizetabpage|ratio_tip">Keep ratio</property>
+ <property name="valign">center</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="CBX_SCALE-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="possizetabpage|accessible_name|CBX_SCALE">Keep Ratio</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|CBX_SCALE">Maintains proportions when you resize the selected object.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="imRatio">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="pixbuf">res/unlocked.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="daRatioBottom">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="daRatioTop">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ <property name="height">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_WIDTH">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentSIZE</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
+ <accessibility>
+ <relation type="labelled-by" target="FT_WIDTH"/>
+ </accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_WIDTH-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|MTR_FLD_WIDTH">Enter a width for the selected object.</property>
@@ -272,19 +339,22 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_HEIGHT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
- <property name="activates_default">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentSIZE1</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
+ <accessibility>
+ <relation type="labelled-by" target="FT_HEIGHT"/>
+ </accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_FLD_HEIGHT-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|MTR_FLD_HEIGHT">Enter a height for the selected object.</property>
@@ -292,28 +362,24 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="CBX_SCALE">
- <property name="label" translatable="yes" context="possizetabpage|CBX_SCALE">_Keep ratio</property>
+ <object class="GtkLabel" id="FT_HEIGHT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="CBX_SCALE-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|CBX_SCALE">Maintains proportions when you resize the selected object.</property>
- </object>
- </child>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="possizetabpage|FT_HEIGHT">H_eight:</property>
+ <property name="use-underline">True</property>
+ <property name="xalign">0</property>
+ <accessibility>
+ <relation type="label-for" target="MTR_FLD_HEIGHT"/>
+ </accessibility>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -326,26 +392,26 @@
<child>
<object class="GtkBox" id="box6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_SIZERECT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<child internal-child="accessible">
<object class="AtkObject" id="CTL_SIZERECT-atkobject">
@@ -366,10 +432,10 @@
<child>
<object class="GtkLabel" id="FT_SIZEREFERENCE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|FT_SIZEREFERENCE">Base _point:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">CTL_SIZERECT</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">CTL_SIZERECT</property>
</object>
<packing>
<property name="expand">False</property>
@@ -389,7 +455,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|label2">Size</property>
<property name="xalign">0</property>
<attributes>
@@ -407,32 +473,32 @@
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">12</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkFrame" id="FL_PROTECT">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box7">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkCheckButton" id="TSB_POSPROTECT">
<property name="label" translatable="yes" context="possizetabpage|TSB_POSPROTECT">Positio_n</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_POSPROTECT-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|TSB_POSPROTECT">Prevents changes to the position or the size of the selected object.</property>
@@ -449,11 +515,11 @@
<object class="GtkCheckButton" id="TSB_SIZEPROTECT">
<property name="label" translatable="yes" context="possizetabpage|TSB_SIZEPROTECT">_Size</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_SIZEPROTECT-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|TSB_SIZEPROTECT">Prevents you from resizing the object.</property>
@@ -471,7 +537,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|label3">Protect</property>
<property name="xalign">0</property>
<attributes>
@@ -489,26 +555,26 @@
<child>
<object class="GtkFrame" id="FL_ADJUST">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box8">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<object class="GtkCheckButton" id="TSB_AUTOGROW_WIDTH">
<property name="label" translatable="yes" context="possizetabpage|TSB_AUTOGROW_WIDTH">_Fit width to text</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_AUTOGROW_WIDTH-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|TSB_AUTOGROW_WIDTH">Expands the width of the object to the width of the text, if the object is smaller than the text.</property>
@@ -525,11 +591,11 @@
<object class="GtkCheckButton" id="TSB_AUTOGROW_HEIGHT">
<property name="label" translatable="yes" context="possizetabpage|TSB_AUTOGROW_HEIGHT">Fit _height to text</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_AUTOGROW_HEIGHT-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="possizetabpage|extended_tip|TSB_AUTOGROW_HEIGHT">Expands the height of the object to the height of the text, if the object is smaller than the text.</property>
@@ -547,7 +613,7 @@
<child type="label">
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="possizetabpage|label4">Adapt</property>
<property name="xalign">0</property>
<attributes>
diff --git a/cui/uiconfig/ui/qrcodegen.ui b/cui/uiconfig/ui/qrcodegen.ui
index 4f015dccfde3..a3d25996e16c 100644
--- a/cui/uiconfig/ui/qrcodegen.ui
+++ b/cui/uiconfig/ui/qrcodegen.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="margin_value">
@@ -9,8 +9,8 @@
<property name="page-increment">10</property>
</object>
<object class="GtkDialog" id="QrCodeGenDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="qrcodegen|QrCodeGenDialog">QR and Barcode</property>
<property name="modal">True</property>
<property name="default-width">0</property>
@@ -95,40 +95,25 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <!-- n-columns=2 n-rows=3 -->
+ <!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="row-spacing">6</property>
<property name="column-spacing">12</property>
<child>
- <object class="GtkEntry" id="edit_text">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="hexpand">True</property>
- <property name="activates-default">True</property>
- <property name="truncate-multiline">True</property>
- <property name="placeholder-text" translatable="yes" context="qrcodegen|edit_name">www.libreoffice.org</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="edit_text-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="qr text">The text from which to generate the code.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
<object class="GtkLabel" id="label_text">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
+ <property name="valign">start</property>
<property name="label" translatable="yes" context="qrcodegen|label_text" comments="Text to be stored in the QR">URL/Text:</property>
<property name="use-underline">True</property>
<property name="mnemonic-widget">edit_text</property>
@@ -157,22 +142,22 @@
<child>
<object class="GtkLabel" id="label_type">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="qrcodegen|label_type" comments="Select type">Type:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">choose_type</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">choose_type</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="choose_type">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
@@ -186,9 +171,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- <property name="width">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
@@ -347,6 +331,33 @@
<property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar-policy">always</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTextView" id="edit_text">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="edit_text-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="qr text">The text from which to generate the code.</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
</object>
</child>
<child type="label">
diff --git a/cui/uiconfig/ui/querychangelineenddialog.ui b/cui/uiconfig/ui/querychangelineenddialog.ui
index 6057416728a1..5ec1567001b0 100644
--- a/cui/uiconfig/ui/querychangelineenddialog.ui
+++ b/cui/uiconfig/ui/querychangelineenddialog.ui
@@ -4,15 +4,15 @@
<requires lib="gtk+" version="3.20"/>
<object class="GtkMessageDialog" id="AskChangeLineEndDialog">
<property name="can_focus">False</property>
- <property name="title" translatable="yes" context="querychangelineenddialog|AskChangeLineEndDialog">Save Arrowhead?</property>
+ <property name="title" translatable="yes" context="querychangelineenddialog|AskChangeLineEndDialog">Save Arrow Style?</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="message_type">warning</property>
<property name="buttons">yes-no</property>
- <property name="text" translatable="yes" context="querychangelineenddialog|AskChangeLineEndDialog">The arrowhead was modified without saving.</property>
- <property name="secondary_text" translatable="yes" context="querychangelineenddialog|AskChangeLineEndDialog">Would you like to save the arrowhead now?</property>
+ <property name="text" translatable="yes" context="querychangelineenddialog|AskChangeLineEndDialog">The arrow style was modified without saving.</property>
+ <property name="secondary_text" translatable="yes" context="querychangelineenddialog|AskChangeLineEndDialog">Would you like to save the arrow style now?</property>
<child internal-child="vbox">
<object class="GtkBox" id="messagedialog-vbox">
<property name="can_focus">False</property>
diff --git a/cui/uiconfig/ui/querydeletelineenddialog.ui b/cui/uiconfig/ui/querydeletelineenddialog.ui
index eb1e771a246f..6917fc62422a 100644
--- a/cui/uiconfig/ui/querydeletelineenddialog.ui
+++ b/cui/uiconfig/ui/querydeletelineenddialog.ui
@@ -4,14 +4,14 @@
<requires lib="gtk+" version="3.20"/>
<object class="GtkMessageDialog" id="AskDelLineEndDialog">
<property name="can_focus">False</property>
- <property name="title" translatable="yes" context="querydeletelineenddialog|AskDelLineEndDialog">Delete Arrowhead?</property>
+ <property name="title" translatable="yes" context="querydeletelineenddialog|AskDelLineEndDialog">Delete Arrow Style?</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="message_type">question</property>
<property name="buttons">yes-no</property>
- <property name="text" translatable="yes" context="querydeletelineenddialog|AskDelLineEndDialog">Do you really want to delete the arrowhead?</property>
+ <property name="text" translatable="yes" context="querydeletelineenddialog|AskDelLineEndDialog">Do you really want to delete the arrow style?</property>
<property name="secondary_text" translatable="yes" context="querydeletelineenddialog|AskDelLineEndDialog">This action cannot be undone.</property>
<child internal-child="vbox">
<object class="GtkBox" id="messagedialog-vbox">
diff --git a/cui/uiconfig/ui/querysetinsmodedialog.ui b/cui/uiconfig/ui/querysetinsmodedialog.ui
new file mode 100644
index 000000000000..761111162dc2
--- /dev/null
+++ b/cui/uiconfig/ui/querysetinsmodedialog.ui
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="cui">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkDialog" id="SetInsModeDialog">
+ <property name="can-focus">False</property>
+ <property name="title" translatable="yes" context="SetInsModeDialog|Dialog_Title">Confirm overwrite mode</property>
+ <property name="resizable">False</property>
+ <property name="type-hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
+ <property name="orientation">vertical</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="margin-top">12</property>
+ <property name="hexpand">True</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkCheckButton" id="cbDontShowAgain">
+ <property name="label" translatable="yes" context="SetInsModeDialog|Checkbox">Do not show again</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="hexpand">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="btnNo">
+ <property name="label" translatable="yes" context="SetInsModeDialog|Button_No">No</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="btnYes">
+ <property name="label" translatable="yes" context="SetInsModeDialog|Button_Yes">Yes</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=3 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="lbTitle">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">False</property>
+ <property name="label" translatable="yes" context="SetInsModeDialog|Label_Title">You are switching to the overwrite mode</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="1"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbText">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">False</property>
+ <property name="label" translatable="yes" context="SetInsModeDialog|Label_Info">The overwrite mode allows to type over text. It is indicated by a block cursor and at the statusbar. Press Insert again to switch back.</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="max-width-chars">40</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbQuestion">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes" context="SetInsModeDialog|Label_Question">Do you want to continue?</property>
+ <property name="wrap">True</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="imSetInsMode">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ <property name="height">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-9">btnNo</action-widget>
+ <action-widget response="-8">btnYes</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/cui/uiconfig/ui/scriptorganizer.ui b/cui/uiconfig/ui/scriptorganizer.ui
index f30d7be537eb..2421ca93f8b5 100644
--- a/cui/uiconfig/ui/scriptorganizer.ui
+++ b/cui/uiconfig/ui/scriptorganizer.ui
@@ -263,7 +263,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="ScriptOrganizerDialog-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="scriptorganizer|extended_tip|ScriptOrganizerDialog">Select a macro or script from My Macros, %PRODUCTNAME Macros, or an open document. To view the available macros or scripts, double-click an entry.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="scriptorganizer|extended_tip|ScriptOrganizerDialog">Select a macro or script from My Macros, Application Macros, or an open document. To view the available macros or scripts, double-click an entry.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/securityoptionsdialog.ui b/cui/uiconfig/ui/securityoptionsdialog.ui
index 5ff6c85ec0e4..dd09839d8335 100644
--- a/cui/uiconfig/ui/securityoptionsdialog.ui
+++ b/cui/uiconfig/ui/securityoptionsdialog.ui
@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="SecurityOptionsDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="securityoptionsdialog|SecurityOptionsDialog">Security Options and Warnings</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -40,8 +40,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -54,8 +54,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -69,46 +69,46 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=4 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="savesenddocs">
<property name="label" translatable="yes" context="securityoptionsdialog|savesenddocs">_When saving or sending</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="savesenddocs-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|savesenddocs">Select to see a warning dialog when you try to save or send a document that contains recorded changes, versions, or comments.</property>
@@ -116,18 +116,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="whensigning">
<property name="label" translatable="yes" context="securityoptionsdialog|whensigning">When _signing</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="whensigning-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|whensigning">Select to see a warning dialog when you try to sign a document that contains recorded changes, versions, fields, references to other sources (for example linked sections or linked pictures), or comments.</property>
@@ -135,18 +135,18 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="whenprinting">
<property name="label" translatable="yes" context="securityoptionsdialog|whenprinting">When _printing</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="whenprinting-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|whenprinting">Select to see a warning dialog when you try to print a document that contains recorded changes or comments.</property>
@@ -154,18 +154,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="whenpdf">
<property name="label" translatable="yes" context="securityoptionsdialog|whenpdf">When creating PDF _files</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="whenpdf-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|whenpdf">Select to see a warning dialog when you try to export a document to PDF format that displays recorded changes in Writer, or that displays comments.</property>
@@ -173,79 +173,79 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkImage" id="lockwhenprinting">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkImage" id="locksavesenddocs">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="lockwhensigning">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="lockwhenpdf">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label" translatable="yes" context="securityoptionsdialog|label3">Warn if document contains recorded changes, versions, hidden information or notes:</property>
+ <property name="label" translatable="yes" context="securityoptionsdialog|label3">Warn if document contains recorded changes, versions or notes:</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -253,7 +253,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="securityoptionsdialog|label1">Security Warnings</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -270,68 +270,93 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=10 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="removepersonal">
<property name="label" translatable="yes" context="securityoptionsdialog|removepersonal">_Remove personal information on saving</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="removepersonal-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|removepersonal">Select to always remove user data from the file properties. If this option is not selected, you can still remove the personal information for the current document with the Reset Properties button on File - Properties - General.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|removepersonal">Select to remove user data from file properties, comments and tracked changes when saving.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="password">
- <property name="label" translatable="yes" context="securityoptionsdialog|password">Recommend password protection on sa_ving</property>
+ <object class="GtkImage" id="lockremovepersonal">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="blockuntrusted">
+ <property name="label" translatable="yes" context="securityoptionsdialog|blockuntrusted">Block any links from documents not among the trusted locations (see Macro Security)</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
- <object class="AtkObject" id="password-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|password">Select to always enable the Save with password option in the file save dialogs. Deselect the option to save files by default without password.</property>
+ <object class="AtkObject" id="blockuntrusted-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|blockuntrusted">Blocks the use of linked images by documents not in the trusted locations defined on the Trusted Sources tab of the Macro Security dialog.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockblockuntrusted">
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">8</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="ctrlclick">
<property name="label" translatable="yes" context="securityoptionsdialog|ctrlclick">Ctrl-click required _to open hyperlinks</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ctrlclick-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|ctrlclick">If enabled, you must hold down the Ctrl key while clicking a hyperlink to follow that link. If not enabled, a click opens the hyperlink.</property>
@@ -339,77 +364,232 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="blockuntrusted">
- <property name="label" translatable="yes" context="securityoptionsdialog|blockuntrusted">Block any links from documents not among the trusted locations (see Macro Security)</property>
+ <object class="GtkImage" id="lockctrlclick">
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="password">
+ <property name="label" translatable="yes" context="securityoptionsdialog|password">Recommend password protection on sa_ving</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
- <object class="AtkObject" id="blockuntrusted-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|blockuntrusted">Blocks the use of linked images by documents not in the trusted locations defined on the Trusted Sources tab of the Macro Security dialog.</property>
+ <object class="AtkObject" id="password-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|password">Select to always enable the Save with password option in the file save dialogs. Deselect the option to save files by default without password.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
- <object class="GtkImage" id="lockremovepersonal">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <object class="GtkImage" id="lockpassword">
+ <property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
- <object class="GtkImage" id="lockpassword">
- <property name="can_focus">False</property>
+ <object class="GtkCheckButton" id="redlineinfo">
+ <property name="label" translatable="yes" context="securityoptionsdialog|redlineinfo">Keep track changes information</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="margin-start">20</property>
+ <property name="hexpand">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="docproperties">
+ <property name="label" translatable="yes" context="securityoptionsdialog|docproperties">Keep document user information</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="margin-start">20</property>
+ <property name="hexpand">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="noteauthor">
+ <property name="label" translatable="yes" context="securityoptionsdialog|noteauthor">Keep author name and date of notes</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="margin-start">20</property>
+ <property name="hexpand">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="documentversion">
+ <property name="label" translatable="yes" context="securityoptionsdialog|documentversion">Keep document version information</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="margin-start">20</property>
+ <property name="hexpand">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockredlineinfo">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="margin-start">20</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkImage" id="lockctrlclick">
- <property name="can_focus">False</property>
+ <object class="GtkImage" id="lockdocproperties">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="margin-start">20</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <object class="GtkImage" id="lockblockuntrusted">
- <property name="can_focus">False</property>
+ <object class="GtkImage" id="locknoteauthor">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="margin-start">20</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockdocumentversion">
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="icon_name">res/lock.png</property>
+ <property name="margin-start">20</property>
+ <property name="icon-name">res/lock.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockdisableactivecontent">
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="disableactivecontent">
+ <property name="label" translatable="yes" context="securityoptionsdialog|blockuntrusted">Disable active contents for OLE Objects, DDE and OLE Automation.</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="hexpand">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="disableactivecontent-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|blockuntrusted">Blocks active state of OLE Objects, disables active DDE content links, and OLE Automation interface.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="printersettings">
+ <property name="label" translatable="yes" context="securityoptionsdialog|printersettings">Keep printer settings</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="margin-start">20</property>
+ <property name="hexpand">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="lockprintersettings">
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="icon-name">res/lock.png</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
</object>
@@ -417,7 +597,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="securityoptionsdialog|label2">Security Options</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -431,6 +611,9 @@
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -445,9 +628,6 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="SecurityOptionsDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|SecurityOptionsDialog">Set security related options and warnings about hidden information in documents.</property>
diff --git a/cui/uiconfig/ui/signsignatureline.ui b/cui/uiconfig/ui/signsignatureline.ui
index ade411ed260a..12a68f2c855c 100644
--- a/cui/uiconfig/ui/signsignatureline.ui
+++ b/cui/uiconfig/ui/signsignatureline.ui
@@ -148,7 +148,7 @@
</child>
<child>
<object class="GtkButton" id="btn_select_certificate">
- <property name="label" translatable="yes" context="signsignatureline|btn_select_certificate">Select X.509 Certificate</property>
+ <property name="label" translatable="yes" context="signsignatureline|btn_select_certificate">Select Certificate</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
diff --git a/cui/uiconfig/ui/specialcharacters.ui b/cui/uiconfig/ui/specialcharacters.ui
index d8d83de4a810..a397c2e5762d 100644
--- a/cui/uiconfig/ui/specialcharacters.ui
+++ b/cui/uiconfig/ui/specialcharacters.ui
@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="SpecialCharactersDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="specialcharacters|SpecialCharactersDialog">Special Characters</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="insert">
<property name="label" translatable="yes" context="specialcharacters|insert">_Insert</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -37,10 +37,10 @@
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -53,8 +53,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -67,8 +67,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -82,107 +82,107 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="subsetft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
- <property name="label" translatable="yes" context="specialcharacters|subsetft">Subset:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">subsetlb</property>
+ <property name="label" translatable="yes" context="specialcharacters|subsetft">Character block:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">subsetlb</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="fontft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="specialcharacters|fontft">Font:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">fontlb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">fontlb</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="srchft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="specialcharacters|srchft">Search:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">search</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">search</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="search">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="subsetlb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="subsetlb-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="specialcharacters|extended_tip|subsetlb">Select a Unicode category for the current font.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="specialcharacters|extended_tip|subsetlb">Select a Unicode block for the current font.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="fontlb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
</child>
<child internal-child="accessible">
@@ -192,72 +192,72 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkDrawingArea" id="showchar">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="vexpand">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">center</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
- <property name="row_homogeneous">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
+ <property name="row-homogeneous">True</property>
<child>
<object class="GtkLabel" id="hexlabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="specialcharacters|hexlabel">Hexadecimal:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">hexvalue</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">hexvalue</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="hexulabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="no">U+</property>
- <property name="width_chars">3</property>
- <property name="single_line_mode">True</property>
- <property name="max_width_chars">3</property>
+ <property name="can-focus">False</property>
+ <property name="label">U+</property>
+ <property name="width-chars">3</property>
+ <property name="single-line-mode">True</property>
+ <property name="max-width-chars">3</property>
<property name="lines">1</property>
</object>
<packing>
@@ -269,11 +269,11 @@
<child>
<object class="GtkEntry" id="hexvalue">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="width_chars">8</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">8</property>
+ <property name="text">A2</property>
<property name="truncate-multiline">True</property>
- <property name="text" translatable="no">A2</property>
</object>
<packing>
<property name="expand">False</property>
@@ -283,94 +283,97 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="decimallabel">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="specialcharacters|decimallabel">Decimal:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">decimalvalue</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">decimalvalue</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="decimalvalue">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="width_chars">8</property>
- <property name="truncate-multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">8</property>
<property name="text">162</property>
+ <property name="truncate-multiline">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="favbtn">
<property name="label" translatable="yes" context="specialcharacters|favbtn">Add to Favorites</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="specialcharacters|favbtn|tooltip_text">Maximum Limit: 16 Characters</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="specialcharacters|favbtn|tooltip_text">Maximum Limit: 16 Characters</property>
<property name="halign">end</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="charname">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">False</property>
+ <property name="use-underline">True</property>
<property name="wrap">True</property>
- <property name="mnemonic_widget">showchar</property>
+ <property name="mnemonic-widget">showchar</property>
<property name="yalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"/>
+ </attributes>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="symboltext1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="label" translatable="yes" context="specialcharacters|symboltext1">Recent Characters:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">viewchar1</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">viewchar1</property>
</object>
<packing>
<property name="expand">False</property>
@@ -381,12 +384,12 @@
<child>
<object class="GtkBox" id="viewgrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="spacing">2</property>
<child>
<object class="GtkDrawingArea" id="viewchar1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -398,7 +401,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -410,7 +413,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -422,7 +425,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -434,7 +437,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar5">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -446,7 +449,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar6">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -458,7 +461,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar7">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -470,7 +473,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar8">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -482,7 +485,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar9">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -494,7 +497,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar10">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -506,7 +509,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar11">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -518,7 +521,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar12">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -530,7 +533,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar13">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -542,7 +545,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar14">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -554,7 +557,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar15">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -566,7 +569,7 @@
<child>
<object class="GtkDrawingArea" id="viewchar16">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
@@ -584,27 +587,27 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">4</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">4</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="symboltext2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
<property name="label" translatable="yes" context="specialcharacters|favbtn|symboltext2">Favorite Characters:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">favchar1</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">favchar1</property>
</object>
<packing>
<property name="expand">False</property>
@@ -613,185 +616,185 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=16 n-rows=1 -->
<object class="GtkGrid" id="favgrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">2</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">2</property>
<child>
<object class="GtkDrawingArea" id="favchar1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar5">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">4</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">4</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar6">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">5</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">5</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar7">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">6</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">6</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar8">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">7</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">7</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar16">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">15</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">15</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar15">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">14</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">14</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar14">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">13</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">13</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar13">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">12</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">12</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar12">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">11</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">11</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar11">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">10</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">10</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar10">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">9</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">9</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkDrawingArea" id="favchar9">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
</object>
<packing>
- <property name="left_attach">8</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">8</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
@@ -803,35 +806,35 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box6">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="showscroll">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">always</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">always</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="showcharset">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
@@ -849,18 +852,20 @@
<child>
<object class="GtkScrolledWindow" id="searchscroll">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">always</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="searchcharset">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
@@ -877,8 +882,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -895,9 +900,6 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="SpecialCharactersDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="specialcharacters|extended_tip|SpecialCharactersDialog">Allows a user to insert characters from the range of symbols found in the installed fonts.</property>
@@ -906,8 +908,8 @@
</object>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">80</property>
- <property name="step_increment">1</property>
- <property name="page_increment">7</property>
- <property name="page_size">8</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">7</property>
+ <property name="page-size">8</property>
</object>
</interface>
diff --git a/cui/uiconfig/ui/spellingdialog.ui b/cui/uiconfig/ui/spellingdialog.ui
index 2854db32f7e9..9aa0ae3145e7 100644
--- a/cui/uiconfig/ui/spellingdialog.ui
+++ b/cui/uiconfig/ui/spellingdialog.ui
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkMenu" id="addmenu">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
</object>
<object class="GtkTreeStore" id="liststore1">
<columns>
@@ -25,28 +25,28 @@
</columns>
</object>
<object class="GtkDialog" id="SpellingDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="spellingdialog|SpellingDialog">Spelling: $LANGUAGE ($LOCATION)</property>
<property name="resizable">False</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -60,9 +60,9 @@
<object class="GtkButton" id="options">
<property name="label" translatable="yes" context="spellingdialog|options">_Options...</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="options-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|options">Opens a dialog, where you can select the user-defined dictionaries, and set the rules for the spellchecking.</property>
@@ -79,9 +79,9 @@
<object class="GtkButton" id="undo">
<property name="label" translatable="yes" context="spellingdialog|undo">_Undo</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="undo-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|undo">Click to undo the last change in the current sentence. Click again to undo the previous change in the same sentence.</property>
@@ -98,10 +98,10 @@
<object class="GtkButton" id="close">
<property name="label" translatable="yes" context="stock">_Close</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -114,59 +114,60 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=8 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="explain">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="use-underline">True</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLinkButton" id="explainlink">
<property name="label" translatable="yes" context="spellingdialog|explainlink">More...</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
<property name="relief">none</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkScrolledWindow">
+ <object class="GtkScrolledWindow" id="scrolledwindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="border_width">0</property>
- <property name="shadow_type">in</property>
+ <property name="can-focus">True</property>
+ <property name="border-width">0</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="sentence">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK</property>
<child internal-child="accessible">
<object class="AtkObject" id="sentence-atkobject">
@@ -179,41 +180,41 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="suggestionsft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="spellingdialog|suggestionsft">_Suggestions</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">suggestionslb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">suggestionslb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="suggestionslb">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
- <property name="headers_visible">False</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection1"/>
</child>
@@ -237,18 +238,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkgrammar">
<property name="label" translatable="yes" context="spellingdialog|checkgrammar">Chec_k grammar</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkgrammar-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|checkgrammar">Enable Check grammar to work first on all spelling errors, then on all grammar errors.</property>
@@ -256,43 +257,43 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="notindictft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="spellingdialog|notindictft">_Not in Dictionary</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">sentence</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">sentence</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkToolbar" id="toolbar">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">end</property>
- <property name="toolbar_style">icons</property>
+ <property name="toolbar-style">icons</property>
<child>
<object class="GtkToolButton" id="paste">
<property name="visible">True</property>
<property name="label" translatable="yes" context="spellingdialog|paste">Paste</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="icon-name">edit-paste</property>
</object>
<packing>
@@ -304,8 +305,8 @@
<object class="GtkToolButton" id="insert">
<property name="visible">True</property>
<property name="label" translatable="yes" context="spellingdialog|insert">Special Character</property>
- <property name="use_underline">True</property>
- <property name="icon_name">cmd/sc_insertsymbol.png</property>
+ <property name="use-underline">True</property>
+ <property name="icon-name">accessories-character-map</property>
</object>
<packing>
<property name="expand">False</property>
@@ -314,45 +315,45 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=1 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="languageft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="label" translatable="yes" context="spellingdialog|languageft">Text languag_e:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">languagelb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">languagelb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="languagelb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">end</property>
<property name="model">liststore6</property>
- <property name="entry_text_column">0</property>
- <property name="id_column">1</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext9"/>
<attributes>
@@ -372,81 +373,81 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=1 -->
<object class="GtkGrid">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="resumeft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="spellingdialog|resumeft">Res_ume</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="nosuggestionsft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="spellingdialog|nosuggestionsft">(no suggestions)</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="alttitleft">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="label" translatable="yes" context="spellingdialog|alttitleft">Spelling: $LANGUAGE ($LOCATION)</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
<property name="width">2</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=3 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkButton" id="change">
<property name="label" translatable="yes" context="spellingdialog|change">Co_rrect</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="change-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|change">Replaces the unknown word with the current suggestion. If you changed more than just the misspelled word, the entire sentence is replaced.</property>
@@ -454,19 +455,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="changeall">
<property name="label" translatable="yes" context="spellingdialog|changeall">Correct A_ll</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="changeall-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|changeall">Replaces all occurrences of the unknown word with the current suggestion.</property>
@@ -474,20 +475,20 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="autocorrect">
<property name="label" translatable="yes" context="spellingdialog|autocorrect">Add to _AutoCorrect</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes" context="spellingdialog|autocorrect|tooltip_text">Add selected suggestion as replacement for incorrect word in AutoCorrect replacement table.</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes" context="spellingdialog|autocorrect|tooltip_text">Add selected suggestion as replacement for incorrect word in AutoCorrect replacement table.</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="autocorrect-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|autocorrect">Adds the current combination of the incorrect word and the replacement word to the AutoCorrect replacement table.</property>
@@ -495,32 +496,32 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=5 -->
<object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
- <property name="row_spacing">6</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkButton" id="ignore">
<property name="label" translatable="yes" context="spellingdialog|ignore">_Ignore Once</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ignore-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|ignore">Skips the unknown word and continues with the spellcheck.</property>
@@ -528,39 +529,39 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ignoreall">
<property name="label" translatable="yes" context="spellingdialog|ignoreall">I_gnore All</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ignoreall-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|ignoreall">Skips all occurrences of the unknown word until the end of the current %PRODUCTNAME session and continues with the spellcheck.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|ignoreall">Skips all occurrences of the unknown word until the end of the current office suite session and continues with the spellcheck.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ignorerule">
<property name="label" translatable="yes" context="spellingdialog|ignorerule">I_gnore Rule</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="ignorerule-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|ignorerule">While performing a grammar check, click Ignore Rule to ignore the rule that is currently flagged as a grammar error.</property>
@@ -568,19 +569,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="add">
<property name="label" translatable="yes" context="spellingdialog|add">Add to _Dictionary</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="add-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|add">Adds the unknown word to a user-defined dictionary.</property>
@@ -588,22 +589,22 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="addmb">
<property name="label" translatable="yes" context="spellingdialog|addmb">Add to _Dictionary</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="no-show-all">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="popup">addmenu</property>
- <property name="use_popover">False</property>
+ <property name="use-underline">True</property>
<property name="draw-indicator">True</property>
+ <property name="popup">addmenu</property>
+ <property name="use-popover">False</property>
<child>
<placeholder/>
</child>
@@ -614,14 +615,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
@@ -645,9 +646,6 @@
<action-widget response="102">undo</action-widget>
<action-widget response="-7">close</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="SpellingDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="spellingdialog|extended_tip|SpellingDialog">Checks the document or the current selection for spelling errors. If a grammar checking extension is installed, the dialog also checks for grammar errors.</property>
diff --git a/cui/uiconfig/ui/spelloptionsdialog.ui b/cui/uiconfig/ui/spelloptionsdialog.ui
index ef690fd7da60..678ddc0cfab2 100644
--- a/cui/uiconfig/ui/spelloptionsdialog.ui
+++ b/cui/uiconfig/ui/spelloptionsdialog.ui
@@ -1,34 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkDialog" id="SpellOptionsDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="spelloptionsdialog|SpellOptionsDialog">Options</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="type_hint">dialog</property>
- <child>
- <placeholder/>
- </child>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="stock">_OK</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -41,8 +38,8 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -55,8 +52,8 @@
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -70,12 +67,25 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkBox" id="content">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
</object>
</child>
diff --git a/cui/uiconfig/ui/swpossizepage.ui b/cui/uiconfig/ui/swpossizepage.ui
index 17ab225bf276..df892e6a1794 100644
--- a/cui/uiconfig/ui/swpossizepage.ui
+++ b/cui/uiconfig/ui/swpossizepage.ui
@@ -1,171 +1,203 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">0.05</property>
- <property name="upper">99.99</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="upper">99.98999999999999</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
- <property name="lower">-99.99</property>
- <property name="upper">99.99</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="lower">-99.98999999999999</property>
+ <property name="upper">99.98999999999999</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
- <property name="lower">-99.99</property>
- <property name="upper">99.99</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="lower">-99.98999999999999</property>
+ <property name="upper">99.98999999999999</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment4">
<property name="lower">0.05</property>
- <property name="upper">99.99</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="upper">99.98999999999999</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=2 -->
<object class="GtkGrid" id="SwPosSizePage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">24</property>
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
<property name="valign">start</property>
- <property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=2 -->
<object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid5">
+ <!-- n-columns=2 n-rows=3 -->
+ <object class="GtkGrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="valign">center</property>
+ <property name="column-spacing">3</property>
<child>
- <object class="GtkSpinButton" id="width">
+ <object class="GtkCheckButton" id="ratio">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment1</property>
- <property name="digits">2</property>
- <property name="truncate-multiline">True</property>
+ <property name="can-focus">True</property>
+ <property name="focus-on-click">False</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="swpossizepage|ratio_tip">Keep ratio</property>
+ <property name="valign">center</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
- <object class="AtkObject" id="width-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|width">Enter the width that you want for the selected object.</property>
+ <object class="AtkObject" id="ratio-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="swpossizepage|accessible_name|ratio">Keep Ratio</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|ratio">Maintains proportions when you resize the selected object.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="widthft">
+ <object class="GtkImage" id="imRatio">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="swpossizepage|widthft">_Width:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">width</property>
- <property name="xalign">0</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="pixbuf">res/unlocked.png</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid6">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">12</property>
<child>
- <object class="GtkSpinButton" id="height">
+ <object class="GtkDrawingArea" id="daRatioBottom">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment4</property>
- <property name="digits">2</property>
- <property name="truncate-multiline">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="height-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|height">Enter the height that you want for the selected object.</property>
- </object>
- </child>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="heightft">
+ <object class="GtkDrawingArea" id="daRatioTop">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="swpossizepage|heightft">H_eight:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">height</property>
- <property name="xalign">0</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ <property name="height">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="width">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="digits">2</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="width-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|width">Enter the width that you want for the selected object.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="widthft">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="swpossizepage|widthft">_Width:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">width</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="ratio">
- <property name="label" translatable="yes" context="swpossizepage|ratio">_Keep ratio</property>
+ <object class="GtkSpinButton" id="height">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment4</property>
+ <property name="digits">2</property>
<child internal-child="accessible">
- <object class="AtkObject" id="ratio-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|ratio">Maintains the height and width ratio when you change the width or the height setting.</property>
+ <object class="AtkObject" id="height-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|height">Enter the height that you want for the selected object.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="heightft">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="swpossizepage|heightft">H_eight:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">height</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
</object>
@@ -173,7 +205,7 @@
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|label2">Size</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -182,59 +214,35 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkDrawingArea" id="preview">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="anchorframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=1 n-rows=5 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="row-spacing">6</property>
<child>
<object class="GtkRadioButton" id="topage">
<property name="label" translatable="yes" context="swpossizepage|topage">To _page</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="topage-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|topage">Anchors the selection to the current page.</property>
@@ -242,18 +250,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="topara">
<property name="label" translatable="yes" context="swpossizepage|topara">To paragrap_h</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">topage</property>
<child internal-child="accessible">
<object class="AtkObject" id="topara-atkobject">
@@ -262,18 +270,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="tochar">
<property name="label" translatable="yes" context="swpossizepage|tochar">To cha_racter</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">topage</property>
<child internal-child="accessible">
<object class="AtkObject" id="tochar-atkobject">
@@ -282,18 +290,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="aschar">
<property name="label" translatable="yes" context="swpossizepage|aschar">_As character</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">topage</property>
<child internal-child="accessible">
<object class="AtkObject" id="aschar-atkobject">
@@ -302,23 +310,23 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="toframe">
<property name="label" translatable="yes" context="swpossizepage|toframe">To _frame</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">topage</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
</object>
@@ -326,7 +334,7 @@
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|label1">Anchor</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -335,95 +343,202 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ <property name="height">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="grid7">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="column-spacing">18</property>
+ <child>
+ <object class="GtkCheckButton" id="pos">
+ <property name="label" translatable="yes" context="swpossizepage|pos">Positio_n</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="inconsistent">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="size">
+ <property name="label" translatable="yes" context="swpossizepage|size">_Size</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="inconsistent">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="swpossizepage|label3">Protect</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frmPreview">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">end</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkBox" id="bxPreview">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkDrawingArea" id="preview">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="lbPreview">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="swpossizepage|previewframe">Preview</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ <property name="height">2</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="posframe">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=6 n-rows=4 -->
<object class="GtkGrid" id="grid10">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="horiposft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|horiposft">Hori_zontal:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">horipos</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">horipos</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="horibyft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|horibyft">b_y:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">byhori</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">byhori</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="vertbyft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|vertbyft">_by:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">byvert</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">byvert</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="horitoft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|horitoft">_to:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">horianchor</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">horianchor</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">4</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">4</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="byhori">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment2</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="byhori-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|byhori">Enter the amount of space to leave between the left edge of the selected object and the reference point that you select in the To box.</property>
@@ -431,14 +546,14 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="horianchor">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="horianchor-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|horianchor">Select the reference point for the selected horizontal alignment option.</property>
@@ -446,14 +561,14 @@
</child>
</object>
<packing>
- <property name="left_attach">5</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">5</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="horipos">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="horipos-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|horipos">Select the horizontal alignment option for the object.</property>
@@ -461,28 +576,28 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="vertposft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|vertposft">_Vertical:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">vertpos</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">vertpos</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="vertpos">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="vertpos-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|vertpos">Select the vertical alignment option for the object.</property>
@@ -490,18 +605,18 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="byvert">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment3</property>
<property name="digits">2</property>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="byvert-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|byvert">Enter the amount of space to leave between the top edge of the selected object and the reference point that you select in the To box.</property>
@@ -509,28 +624,28 @@
</child>
</object>
<packing>
- <property name="left_attach">3</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">3</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="verttoft">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|verttoft">t_o:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">vertanchor</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">vertanchor</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">4</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">4</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="vertanchor">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child internal-child="accessible">
<object class="AtkObject" id="vertanchor-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|vertanchor">Select the reference point for the selected vertical alignment option.</property>
@@ -538,19 +653,19 @@
</child>
</object>
<packing>
- <property name="left_attach">5</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">5</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="mirror">
<property name="label" translatable="yes" context="swpossizepage|mirror">_Mirror on even pages</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">12</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="mirror-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|mirror">Reverses the current horizontal alignment settings on even pages.</property>
@@ -558,8 +673,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
<property name="width">6</property>
</packing>
</child>
@@ -567,11 +682,11 @@
<object class="GtkCheckButton" id="followtextflow">
<property name="label" translatable="yes" context="swpossizepage|followtextflow">Keep inside te_xt boundaries</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
<property name="margin-start">12</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="followtextflow-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="swpossizepage|extended_tip|followtextflow">Keeps the selected object within the layout boundaries of the text that the object is anchored to. To place the selected object anywhere in your document, do not select this option.</property>
@@ -579,8 +694,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
<property name="width">6</property>
</packing>
</child>
@@ -589,7 +704,7 @@
<child type="label">
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="swpossizepage|label11">Position</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -598,70 +713,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="frame1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <!-- n-columns=1 n-rows=1 -->
- <object class="GtkGrid" id="grid7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">18</property>
- <property name="margin-start">12</property>
- <property name="margin-top">6</property>
- <child>
- <object class="GtkCheckButton" id="pos">
- <property name="label" translatable="yes" context="swpossizepage|pos">Positio_n</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="size">
- <property name="label" translatable="yes" context="swpossizepage|size">_Size</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="swpossizepage|label3">Protect</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child internal-child="accessible">
@@ -670,10 +723,5 @@
</object>
</child>
</object>
- <object class="GtkSizeGroup" id="sizegroup1">
- <widgets>
- <widget name="widthft"/>
- <widget name="heightft"/>
- </widgets>
- </object>
+ <object class="GtkSizeGroup" id="sizegroup1"/>
</interface>
diff --git a/cui/uiconfig/ui/textanimtabpage.ui b/cui/uiconfig/ui/textanimtabpage.ui
index fc2673e773c7..01e449dfc28b 100644
--- a/cui/uiconfig/ui/textanimtabpage.ui
+++ b/cui/uiconfig/ui/textanimtabpage.ui
@@ -479,7 +479,7 @@
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="TSB_AUTO-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="textanimtabpage|extended_tip|TSB_AUTO">%PRODUCTNAME automatically determines the amount of time to wait before repeating the effect. To manually assign the delay period, clear this checkbox, and then enter a value in the Automatic box.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="textanimtabpage|extended_tip|TSB_AUTO">Automatically determine the amount of time to wait before repeating the effect. To manually assign the delay period, clear this checkbox, and then enter a value in the Automatic box.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/textcolumnstabpage.ui b/cui/uiconfig/ui/textcolumnstabpage.ui
index a0a34c181fc5..6fae67f9ad06 100644
--- a/cui/uiconfig/ui/textcolumnstabpage.ui
+++ b/cui/uiconfig/ui/textcolumnstabpage.ui
@@ -105,7 +105,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="TextColumnsPage-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="textcolumnstabpage|extended_tip|TextColumnsPage">Sets the columns layout properties for text in the selected drawing or text object.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="textcolumnstabpage|extended_tip|TextColumnsPage">Sets the columns’ layout properties for text in the selected drawing or text object.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/textflowpage.ui b/cui/uiconfig/ui/textflowpage.ui
index a0b307c674aa..cbfa4fc69e1a 100644
--- a/cui/uiconfig/ui/textflowpage.ui
+++ b/cui/uiconfig/ui/textflowpage.ui
@@ -1,78 +1,97 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
- <property name="lower">2</property>
+ <property name="lower">1</property>
<property name="upper">9</property>
<property name="value">2</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
<property name="upper">99</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
<property name="upper">55535</property>
<property name="value">1</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment4">
- <property name="lower">2</property>
+ <property name="lower">1</property>
<property name="upper">9</property>
<property name="value">2</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment5">
<property name="lower">2</property>
<property name="upper">9</property>
<property name="value">2</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment6">
<property name="lower">2</property>
<property name="upper">9</property>
<property name="value">2</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment7">
+ <property name="lower">4</property>
+ <property name="upper">99</property>
+ <property name="value">4</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment8">
+ <property name="upper">55.88</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
- <!-- n-columns=1 n-rows=1 -->
+ <object class="GtkAdjustment" id="adjustment9">
+ <property name="lower">2</property>
+ <property name="upper">9</property>
+ <property name="value">2</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="TextFlowPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">12</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkFrame" id="FrameHyphenation">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="events">GDK_EXPOSURE_MASK</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=8 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="checkAuto">
<property name="label" translatable="yes" context="textflowpage|checkAuto">A_utomatically</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkAuto-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkAuto">Automatically inserts hyphens where they are needed in a paragraph.</property>
@@ -80,20 +99,40 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
+ <object class="GtkSpinButton" id="spinMinLen">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="halign">start</property>
+ <property name="margin-start">25</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment7</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="spinMinLen-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinMinLen">Enter the minimum word length in characters that can be hyphenated.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkSpinButton" id="spinMaxNum">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
<property name="margin-start">25</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment2</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment2</property>
<child internal-child="accessible">
<object class="AtkObject" id="spinMaxNum-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinMaxNum">Enter the maximum number of consecutive lines that can be hyphenated.</property>
@@ -101,39 +140,59 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="spinLineBegin">
+ <object class="GtkSpinButton" id="spinCompoundLineEnd">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">start</property>
<property name="margin-start">25</property>
<property name="activates_default">True</property>
- <property name="adjustment">adjustment4</property>
+ <property name="adjustment">adjustment9</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
+ <object class="AtkObject" id="spinCompoundLineEnd-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinCompoundLineEnd">Enter the minimum number of characters of a compound word to leave at the end of the line before a hyphen is inserted.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spinLineBegin">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="halign">start</property>
+ <property name="margin-start">25</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment4</property>
+ <child internal-child="accessible">
<object class="AtkObject" id="spinLineBegin-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinLineBegin">Enter the minimum number of characters that must appear at the beginning of the line after the hyphen.</property>
</object>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinLineEnd">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="halign">start</property>
<property name="margin-start">25</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustment1</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment1</property>
<child internal-child="accessible">
<object class="AtkObject" id="spinLineEnd-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinLineEnd">Enter the minimum number of characters to leave at the end of the line before a hyphen is inserted.</property>
@@ -141,32 +200,46 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelLineEnd">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="textflowpage|labelLineEnd">C_haracters at line end</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinLineEnd</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinLineEnd</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelLineBegin">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="textflowpage|labelLineBegin">Cha_racters at line begin</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinLineBegin</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="labelCompoundLineEnd">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="textflowpage|labelCompoundLineEnd">C_ompound characters at line end</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">spinLineBegin</property>
+ <property name="mnemonic_widget">spinCompoundLineEnd</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -176,29 +249,230 @@
<child>
<object class="GtkLabel" id="labelMaxNum">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes" context="textflowpage|labelMaxNum">_Maximum consecutive hyphenated lines</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMaxNum</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMaxNum</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="labelMinLen">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes" context="textflowpage|labelMinLen">_Minimum word length in characters</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinMinLen</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="gridHyphenZone">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkSpinButton" id="spinHyphenZone">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustment8</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="labelHyphenZone">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="textflowpage|labelHyphenZone">Hyphenation _zone:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">spinHyphenZone</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
+ <property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkNoCaps">
- <property name="label" translatable="yes" context="textflowpage|checkNoCaps">Don't hyphenate words in _CAPS</property>
+ <property name="label" translatable="yes" context="textflowpage|checkNoCaps">Hyphenate words in _CAPS</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">8</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkNoLastWord">
+ <property name="label" translatable="yes" context="textflowpage|checkNoLastWord">Hyphenate last word</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">9</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="gridHyphenAcrossLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="labelHyphenAcross">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="textflowpage|labelHyphenAcross">Hyphenation across</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">labelHyphenAcross</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">10</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=1 -->
+ <object class="GtkGrid" id="gridHyphenAcross">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
+ <property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
+ <child>
+ <object class="GtkCheckButton" id="checkAcrossParagraph">
+ <property name="label" translatable="yes" context="textflowpage|checkAcrossParagraph">Last full line of paragraph</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="inconsistent">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="checkAcrossParagraph-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkAcrossParagraph">Deselect this check box, if you don't want to hyphenate across the last full line of paragraph, column, page and spread.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkAcrossColumn">
+ <property name="label" translatable="yes" context="textflowpage|checkAcrossColumn">Column</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="inconsistent">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="checkAcrossColumn-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkAcrossColumn">Deselect this check box, if you don't want to hyphenate across column, page and spread.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkAcrossPage">
+ <property name="label" translatable="yes" context="textflowpage|checkAcrossPage">Page</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="inconsistent">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="checkAcrossPage-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkAcrossPage">Deselect this check box, if you don't want to hyphenate across page and spread.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="checkAcrossSpread">
+ <property name="label" translatable="yes" context="textflowpage|checkAcrossSpread">Spread</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="inconsistent">True</property>
+ <property name="draw-indicator">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="checkAcrossSpread-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkAcrossSpread">Deselect this check box, if you don't want to hyphenate across spread.</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">11</property>
<property name="width">2</property>
</packing>
</child>
@@ -207,7 +481,7 @@
<child type="label">
<object class="GtkLabel" id="LabelHyphenation">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="textflowpage|LabelHyphenation">Hyphenation</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -216,34 +490,35 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="height">2</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frameBreaks">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=5 -->
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">3</property>
- <property name="column_spacing">6</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">3</property>
+ <property name="column-spacing">6</property>
<child>
<object class="GtkCheckButton" id="checkInsert">
<property name="label" translatable="yes" context="textflowpage|checkInsert">_Insert</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkInsert-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkInsert">Select this check box, and then select the break type that you want to use.</property>
@@ -251,19 +526,19 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkPageStyle">
<property name="label" translatable="yes" context="textflowpage|checkPageStyle">With page st_yle:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="comboPageStyle"/>
</accessibility>
@@ -274,34 +549,34 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelType">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="textflowpage|labelType">_Type:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboBreakType</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">comboBreakType</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinPageNumber">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment3</property>
<accessibility>
<relation type="labelled-by" target="labelPageNum"/>
</accessibility>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="spinPageNumber-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinPageNumber">Enter the page number for the first page that follows the break. If you want to continue the current page numbering, leave the checkbox unchecked.</property>
@@ -309,47 +584,47 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="labelPageNum">
<property name="label" translatable="yes" context="textflowpage|labelPageNum">Page _number:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="spinPageNumber"/>
</accessibility>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelPosition">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="textflowpage|labelPosition">Position:</property>
- <property name="use_underline">True</property>
+ <property name="use-underline">True</property>
<property name="justify">right</property>
- <property name="mnemonic_widget">comboBreakPosition</property>
+ <property name="mnemonic-widget">comboBreakPosition</property>
<property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboPageStyle">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<accessibility>
<relation type="labelled-by" target="checkPageStyle"/>
</accessibility>
@@ -361,14 +636,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboBreakType">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="textflowpage|comboBreakType">Page</item>
<item translatable="yes" context="textflowpage|comboBreakType">Column</item>
@@ -380,14 +655,14 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="comboBreakPosition">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="textflowpage|comboBreakPosition">Before</item>
<item translatable="yes" context="textflowpage|comboBreakPosition">After</item>
@@ -399,8 +674,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
@@ -411,7 +686,7 @@
<child type="label">
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="textflowpage|label3">Breaks</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -420,34 +695,34 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="FrameOptions">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=4 -->
<object class="GtkGrid" id="gridOptions">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkCheckButton" id="checkSplitPara">
- <property name="label" translatable="yes" context="textflowpage|checkSplitPara">_Do not split paragraph</property>
+ <property name="label" translatable="yes" context="textflowpage|checkSplitPara">_Allow to split paragraph</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkSplitPara-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkSplitPara">Shifts the entire paragraph to the next page or column after a break is inserted.</property>
@@ -455,8 +730,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
<property name="width">3</property>
</packing>
</child>
@@ -464,11 +739,11 @@
<object class="GtkCheckButton" id="checkKeepPara">
<property name="label" translatable="yes" context="textflowpage|checkKeepPara">_Keep with next paragraph</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="checkKeepPara-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|checkKeepPara">Keeps the current paragraph and the following paragraph together when a break or column break is inserted.</property>
@@ -476,20 +751,22 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
<property name="width">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkOrphan">
- <property name="label" translatable="yes" context="textflowpage|checkOrphan">_Orphan control</property>
+ <property name="label" translatable="yes" context="textflowpage|checkOrphan">No split at _beginning of paragraph</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="textflowpage|checkOrphan">Number of lines, that will be kept together at the beginning of the paragraph (orphan control).</property>
+ <property name="margin-start">12</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="spinOrphan"/>
</accessibility>
@@ -500,19 +777,21 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkWidow">
- <property name="label" translatable="yes" context="textflowpage|checkWidow">_Widow control</property>
+ <property name="label" translatable="yes" context="textflowpage|checkWidow">No split at _end of paragraph</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="tooltip-text" translatable="yes" context="textflowpage|checkOrphan">Number of lines, that will be kept together at the end of the paragraph (widow control).</property>
+ <property name="margin-start">12</property>
+ <property name="use-underline">True</property>
<property name="inconsistent">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<accessibility>
<relation type="label-for" target="spinWidow"/>
</accessibility>
@@ -523,20 +802,20 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinOrphan">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment5</property>
<accessibility>
<relation type="labelled-by" target="checkOrphan"/>
</accessibility>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="spinOrphan-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinOrphan">Specifies the minimum number of lines in a paragraph before a page break. Select this check box, and then enter a number in the Lines box.</property>
@@ -544,21 +823,21 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinWidow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustment6</property>
<property name="numeric">True</property>
<accessibility>
<relation type="labelled-by" target="checkWidow"/>
</accessibility>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="spinWidow-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|spinWidow">Specifies the minimum number of lines in a paragraph in the first page after the break. Select this check box, and then enter a number in the Lines box.</property>
@@ -566,32 +845,32 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelOrphan">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="textflowpage|labelOrphan">lines</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelWidow">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="textflowpage|labelWidow">lines</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
</packing>
</child>
</object>
@@ -599,8 +878,8 @@
<child type="label">
<object class="GtkLabel" id="labelOptions">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="textflowpage|labelOptions">Options</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes" context="textflowpage|labelOptions">Split Options</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -608,13 +887,10 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="TextFlowPage-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="textflowpage|extended_tip|TextFlowPage">Specify hyphenation and pagination options.</property>
diff --git a/cui/uiconfig/ui/thesaurus.ui b/cui/uiconfig/ui/thesaurus.ui
index fbd890635d70..ea8a8ab0450e 100644
--- a/cui/uiconfig/ui/thesaurus.ui
+++ b/cui/uiconfig/ui/thesaurus.ui
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="icon-name">go-previous</property>
</object>
<object class="GtkTreeStore" id="liststore3">
@@ -18,29 +18,29 @@
</columns>
</object>
<object class="GtkDialog" id="ThesaurusDialog">
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
<property name="title" translatable="yes" context="thesaurus|ThesaurusDialog">Thesaurus</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="default_width">0</property>
- <property name="default_height">0</property>
- <property name="type_hint">dialog</property>
+ <property name="default-width">0</property>
+ <property name="default-height">0</property>
+ <property name="type-hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area1">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
<child>
<object class="GtkButton" id="help">
<property name="label" translatable="yes" context="stock">_Help</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -54,11 +54,11 @@
<object class="GtkButton" id="ok">
<property name="label" translatable="yes" context="thesaurus|replace">_Replace</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -70,9 +70,9 @@
<object class="GtkButton" id="cancel">
<property name="label" translatable="yes" context="stock">_Cancel</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="receives-default">True</property>
<property name="use-underline">True</property>
</object>
<packing>
@@ -85,67 +85,67 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
+ <property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=3 n-rows=6 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="thesaurus|label1">Current word:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">wordcb</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">wordcb</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="thesaurus|label2">Alternatives:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">alternatives</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">alternatives</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
<property name="width">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="thesaurus|label3">Replace with:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">replaceed</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">replaceed</property>
<property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
<property name="width">3</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="replaceed">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="replaceed-atkobject">
@@ -154,16 +154,16 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
<property name="width">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="left">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="image">image1</property>
@@ -175,14 +175,14 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="langcb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
<child internal-child="accessible">
<object class="AtkObject" id="langcb-atkobject">
@@ -191,23 +191,23 @@
</child>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="wordcb">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
+ <property name="has-entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
- <property name="activates_default">True</property>
</object>
</child>
<child internal-child="accessible">
@@ -217,35 +217,35 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
- <property name="width_request">450</property>
- <property name="height_request">250</property>
+ <property name="width-request">450</property>
+ <property name="height-request">250</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="shadow_type">in</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="alternatives">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore3</property>
- <property name="headers_visible">False</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
+ <property name="headers-visible">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="Macro Library List-selection2"/>
</child>
@@ -278,8 +278,8 @@
</child>
<child>
<object class="GtkLabel" id="notfound">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can-focus">False</property>
+ <property name="no-show-all">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="label" translatable="yes" context="thesaurus|RID_SVXSTR_ERR_TEXTNOTFOUND">No alternatives found.</property>
@@ -294,8 +294,8 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
<property name="width">3</property>
</packing>
</child>
@@ -316,9 +316,6 @@
<action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget>
</action-widgets>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="accessible">
<object class="AtkObject" id="ThesaurusDialog-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="thesaurus|extended_tip|ThesaurusDialog">Opens a dialog box to replace the current word with a synonym, or a related term.</property>
diff --git a/cui/uiconfig/ui/tipofthedaydialog.ui b/cui/uiconfig/ui/tipofthedaydialog.ui
index ebf0515c6b1e..dbb3e84945e6 100644
--- a/cui/uiconfig/ui/tipofthedaydialog.ui
+++ b/cui/uiconfig/ui/tipofthedaydialog.ui
@@ -5,7 +5,7 @@
<object class="GtkDialog" id="TipOfTheDayDialog">
<property name="can-focus">False</property>
<property name="border-width">6</property>
- <property name="title" translatable="yes" context="TipOfTheDayDialog|Name">Tip of the day</property>
+ <property name="title" translatable="yes" context="TipOfTheDayDialog|Name">Tip of the Day</property>
<property name="resizable">False</property>
<property name="modal">False</property>
<property name="window-position">center-on-parent</property>
@@ -26,7 +26,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
- <property name="tooltip-text" translatable="yes" context="TipOfTheDay|Checkbox_Tooltip">Enable the dialog again at Tools &gt; Options &gt; General, or Help &gt; Show Tip of the Day</property>
+ <property name="tooltip-text" translatable="yes" context="TipOfTheDay|Checkbox_Tooltip">Enable the dialog again at Tools - Options - %PRODUCTNAME - General, or Help - Show Tip of the Day</property>
<property name="use-underline">True</property>
<property name="active">True</property>
<property name="draw-indicator">True</property>
diff --git a/cui/uiconfig/ui/toolbarmodedialog.ui b/cui/uiconfig/ui/toolbarmodedialog.ui
index d401f75edf73..4428eeac1166 100644
--- a/cui/uiconfig/ui/toolbarmodedialog.ui
+++ b/cui/uiconfig/ui/toolbarmodedialog.ui
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="imgApply">
@@ -15,9 +15,6 @@
<property name="modal">True</property>
<property name="window-position">center-on-parent</property>
<property name="type-hint">dialog</property>
- <child type="titlebar">
- <placeholder/>
- </child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox">
<property name="can-focus">False</property>
@@ -78,6 +75,22 @@
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="help">
+ <property name="label" translatable="yes" context="stock">_Help</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ <property name="image-position">right</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -343,6 +356,9 @@
<property name="wrap-mode">word-char</property>
<property name="max-width-chars">50</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.90000000000000002"/>
+ </attributes>
</object>
</child>
</object>
@@ -386,6 +402,7 @@
<action-widget response="-5">btnApplyAll</action-widget>
<action-widget response="-5">btnApply</action-widget>
<action-widget response="-7">close</action-widget>
+ <action-widget response="-11">help</action-widget>
</action-widgets>
</object>
</interface>
diff --git a/cui/uiconfig/ui/transparencytabpage.ui b/cui/uiconfig/ui/transparencytabpage.ui
index c5c9a014c649..0ae0707395ea 100644
--- a/cui/uiconfig/ui/transparencytabpage.ui
+++ b/cui/uiconfig/ui/transparencytabpage.ui
@@ -1,82 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
<interface domain="cui">
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustmentDegrees">
<property name="upper">359</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentPercent">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentPercent1">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentPercent2">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentPercent3">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentPercent4">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustmentPercent5">
<property name="upper">100</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
</object>
<object class="GtkFrame" id="TransparencyTabPage">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="border_width">6</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+ <property name="border-width">6</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="spacing">18</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="margin-top">6</property>
+ <property name="hexpand">True</property>
+ <property name="spacing">18</property>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkRadioButton" id="RBT_TRANS_OFF">
<property name="label" translatable="yes" context="transparencytabpage|RBT_TRANS_OFF">_No transparency</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
<property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="draw-indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="RBT_TRANS_OFF-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|RBT_TRANS_OFF">Turns off color transparency.</property>
@@ -84,18 +84,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="RBT_TRANS_LINEAR">
<property name="label" translatable="yes" context="transparencytabpage|RBT_TRANS_LINEAR">_Transparency:</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">RBT_TRANS_OFF</property>
<accessibility>
<relation type="label-for" target="MTR_TRANSPARENT"/>
@@ -107,18 +107,18 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="RBT_TRANS_GRADIENT">
<property name="label" translatable="yes" context="transparencytabpage|RBT_TRANS_GRADIENT">_Gradient</property>
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
<property name="group">RBT_TRANS_OFF</property>
<child internal-child="accessible">
<object class="AtkObject" id="RBT_TRANS_GRADIENT-atkobject">
@@ -127,20 +127,20 @@
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_TRANSPARENT">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="truncate-multiline">True</property>
<property name="adjustment">adjustmentPercent</property>
<accessibility>
<relation type="labelled-by" target="RBT_TRANS_LINEAR"/>
</accessibility>
- <property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_TRANSPARENT-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|MTR_TRANSPARENT">Adjusts the transparency of the current fill color. Enter a number between 0% (opaque) and 100% (transparent).</property>
@@ -148,8 +148,8 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
@@ -166,19 +166,19 @@
</packing>
</child>
<child>
- <!-- n-columns=1 n-rows=1 -->
+ <!-- n-columns=2 n-rows=7 -->
<object class="GtkGrid" id="gridGradient">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">6</property>
+ <property name="column-spacing">12</property>
<child>
<object class="GtkSpinButton" id="MTR_TRGR_END_VALUE">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentPercent5</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentPercent5</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_TRGR_END_VALUE-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|MTR_TRGR_END_VALUE">Enter a transparency value for the endpoint of the gradient, where 0% is fully opaque and 100% is fully transparent.</property>
@@ -186,17 +186,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_TRGR_START_VALUE">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentPercent4</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentPercent4</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_TRGR_START_VALUE-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|MTR_TRGR_START_VALUE">Enter a transparency value for the beginning point of the gradient, where 0% is fully opaque and 100% is fully transparent.</property>
@@ -204,17 +204,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_TRGR_BORDER">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentPercent3</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentPercent3</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_TRGR_BORDER-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|MTR_TRGR_BORDER">Enter the amount by which you want to adjust the transparent area of the gradient. The default value is 0%.</property>
@@ -222,17 +222,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_TRGR_ANGLE">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentDegrees</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentDegrees</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_TRGR_ANGLE-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|MTR_TRGR_ANGLE">Enter a rotation angle for the gradient.</property>
@@ -240,17 +240,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_TRGR_CENTER_Y">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentPercent2</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentPercent2</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_TRGR_CENTER_Y-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|MTR_TRGR_CENTER_Y">Enter the vertical offset for the gradient.</property>
@@ -258,17 +258,17 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_TRGR_CENTER_X">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- <property name="adjustment">adjustmentPercent1</property>
+ <property name="can-focus">True</property>
+ <property name="activates-default">True</property>
<property name="truncate-multiline">True</property>
+ <property name="adjustment">adjustmentPercent1</property>
<child internal-child="accessible">
<object class="AtkObject" id="MTR_TRGR_CENTER_X-atkobject">
<property name="AtkObject::accessible-description" translatable="yes" context="transparencytabpage|extended_tip|MTR_TRGR_CENTER_X">Enter the horizontal offset for the gradient.</property>
@@ -276,21 +276,21 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="LB_TRGR_GRADIENT_TYPES">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<items>
<item translatable="yes" context="transparencytabpage|liststoreTYPE">Linear</item>
<item translatable="yes" context="transparencytabpage|liststoreTYPE">Axial</item>
<item translatable="yes" context="transparencytabpage|liststoreTYPE">Radial</item>
<item translatable="yes" context="transparencytabpage|liststoreTYPE">Ellipsoid</item>
- <item translatable="yes" context="transparencytabpage|liststoreTYPE">Quadratic</item>
- <item translatable="yes" context="transparencytabpage|liststoreTYPE">Square</item>
+ <item translatable="yes" context="transparencytabpage|liststoreTYPE">Square (Quadratic)</item>
+ <item translatable="yes" context="transparencytabpage|liststoreTYPE">Rectangular</item>
</items>
<child internal-child="accessible">
<object class="AtkObject" id="LB_TRGR_GRADIENT_TYPES-atkobject">
@@ -299,113 +299,113 @@
</child>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_TRGR_TYPE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
<property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_TYPE">Ty_pe:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">LB_TRGR_GRADIENT_TYPES</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">LB_TRGR_GRADIENT_TYPES</property>
<property name="xalign">1</property>
- <property name="margin-start">12</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_TRGR_CENTER_X">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
<property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_CENTER_X">Center _X:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_TRGR_CENTER_X</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_TRGR_CENTER_X</property>
<property name="xalign">1</property>
- <property name="margin-start">12</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_TRGR_CENTER_Y">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
<property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_CENTER_Y">Center _Y:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_TRGR_CENTER_Y</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_TRGR_CENTER_Y</property>
<property name="xalign">1</property>
- <property name="margin-start">12</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_TRGR_ANGLE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
<property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_ANGLE">_Angle:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_TRGR_ANGLE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_TRGR_ANGLE</property>
<property name="xalign">1</property>
- <property name="margin-start">12</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_TRGR_BORDER">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_BORDER">_Border:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_TRGR_BORDER</property>
- <property name="xalign">1</property>
+ <property name="can-focus">False</property>
<property name="margin-start">12</property>
+ <property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_BORDER">Transition start:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_TRGR_BORDER</property>
+ <property name="xalign">1</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_TRGR_START_VALUE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
<property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_START_VALUE">_Start value:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_TRGR_START_VALUE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_TRGR_START_VALUE</property>
<property name="xalign">1</property>
- <property name="margin-start">12</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="FT_TRGR_END_VALUE">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">12</property>
<property name="label" translatable="yes" context="transparencytabpage|FT_TRGR_END_VALUE">_End value:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">MTR_TRGR_END_VALUE</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">MTR_TRGR_END_VALUE</property>
<property name="xalign">1</property>
- <property name="margin-start">12</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
</packing>
</child>
</object>
@@ -425,7 +425,7 @@
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="valign">start</property>
<property name="margin-end">12</property>
<property name="hexpand">True</property>
@@ -435,20 +435,20 @@
<child>
<object class="GtkScrolledWindow" id="bitmap_border">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_IMAGE_PREVIEW">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
@@ -470,20 +470,20 @@
<child>
<object class="GtkScrolledWindow" id="trans_border">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="vscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea" id="CTL_TRANS_PREVIEW">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child internal-child="accessible">
@@ -505,7 +505,7 @@
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
@@ -529,7 +529,7 @@
<child type="label">
<object class="GtkLabel" id="FL_PROP">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can-focus">False</property>
<property name="label" translatable="yes" context="transparencytabpage|FL_PROP">Area Transparency Mode</property>
<property name="xalign">0</property>
<attributes>
@@ -545,7 +545,7 @@
</object>
<object class="GtkSizeGroup" id="sizegroup2">
<property name="mode">both</property>
- <property name="ignore_hidden">True</property>
+ <property name="ignore-hidden">True</property>
<widgets>
<widget name="MTR_TRANSPARENT"/>
<widget name="MTR_TRGR_END_VALUE"/>
@@ -559,7 +559,7 @@
</object>
<object class="GtkSizeGroup" id="sizegroup3">
<property name="mode">both</property>
- <property name="ignore_hidden">True</property>
+ <property name="ignore-hidden">True</property>
<widgets>
<widget name="box1"/>
<widget name="box3"/>
diff --git a/cui/uiconfig/ui/whatsnewdialog.ui b/cui/uiconfig/ui/whatsnewdialog.ui
new file mode 100644
index 000000000000..0a4949c398bf
--- /dev/null
+++ b/cui/uiconfig/ui/whatsnewdialog.ui
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="cui">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkDialog" id="WhatsNewDialog">
+ <property name="can-focus">False</property>
+ <property name="border-width">6</property>
+ <property name="title" translatable="yes" context="whatsnewdialog|WhatsNewDialog">What's new in %PRODUCTVERSION</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="window-position">center-on-parent</property>
+ <property name="type-hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="margin-top">12</property>
+ <property name="hexpand">True</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="btnClose">
+ <property name="label" translatable="yes" context="stock">_Close</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=3 n-rows=2 -->
+ <object class="GtkGrid" id="grid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkDrawingArea" id="imNews">
+ <property name="width-request">600</property>
+ <property name="height-request">400</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="imNews-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="whatsnewdialog|extended_tip|news">Picture illustrating what is new</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="btnPrev">
+ <property name="label" translatable="yes" context="whatsnewdialog|prev">Previous</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="btnNext">
+ <property name="label" translatable="yes" context="whatsnewdialog|next">Next</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="use-underline">True</property>
+ <property name="image-position">right</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="imProgress">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="imProgress-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes" context="whatsnewdialog|extended_tip|progress">Progress of news</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-7">btnClose</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/cui/uiconfig/ui/widgettestdialog.ui b/cui/uiconfig/ui/widgettestdialog.ui
new file mode 100644
index 000000000000..4bb3adc2d85c
--- /dev/null
+++ b/cui/uiconfig/ui/widgettestdialog.ui
@@ -0,0 +1,675 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface domain="cui">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkListStore" id="liststore1">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="no">Test 1</col>
+ </row>
+ <row>
+ <col id="0" translatable="no">Test 2</col>
+ </row>
+ <row>
+ <col id="0" translatable="no">Test 3</col>
+ </row>
+ <row>
+ <col id="0" translatable="no">Test 4</col>
+ </row>
+ <row>
+ <col id="0" translatable="no">Test 5</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkTreeStore" id="liststore2">
+ <columns>
+ <!-- column-name expander -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ <!-- column-name weight -->
+ <column type="gint"/>
+ <!-- column-name sensitive -->
+ <column type="gboolean"/>
+ <!-- column-name extraindent -->
+ <column type="gint"/>
+ </columns>
+ </object>
+ <object class="GtkTreeStore" id="liststore3">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name text1 -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="liststore4">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkDialog" id="WidgetTestDialog">
+ <property name="can-focus">False</property>
+ <property name="title" translatable="yes" context="widgettestdialog|WidgetTestDialog">Test Widgets</property>
+ <property name="type-hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="cancel_btn">
+ <property name="label" translatable="no">Cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ok_btn">
+ <property name="label" translatable="no">Ok</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=2 n-rows=2 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">5</property>
+ <property name="column-spacing">5</property>
+ <child>
+ <!-- n-columns=2 n-rows=7 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">5</property>
+ <property name="column-spacing">5</property>
+ <child>
+ <object class="GtkEntry" id="entry_box_1">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="text" translatable="no">Editable Entry</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="entry_box_2">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="text" translatable="no">Disabled Entry</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="combo_box_disable">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="model">liststore4</property>
+ <property name="button-sensitivity">off</property>
+ <property name="has-entry">True</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
+ <child internal-child="entry">
+ <object class="GtkEntry">
+ <property name="sensitive">False</property>
+ <property name="truncate-multiline">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="toggle_btn_1">
+ <property name="label" translatable="no">Toggle Button</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="toggle_btn_2">
+ <property name="label" translatable="no">Toggle Button</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="toggle_btn_3">
+ <property name="label" translatable="no">Toggle Button</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="active">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLinkButton" id="link_btn_1">
+ <property name="label" translatable="no">Collabora Office</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="uri">https://www.collaboraoffice.com/</property>
+ <property name="visited">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLinkButton" id="link_btn_2">
+ <property name="label" translatable="no">Collabora Office</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="relief">none</property>
+ <property name="uri">https://www.collaboraoffice.com/</property>
+ <property name="visited">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=4 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">5</property>
+ <property name="column-spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="label_1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="no">Label</property>
+ <property name="justify">center</property>
+ <property name="mnemonic-widget">spin_btn_1</property>
+ <property name="ellipsize">start</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spin_btn_1">
+ <property name="visible">True</property>
+ <property name="truncate-multiline">True</property>
+ <property name="can-focus">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label_2">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="no">Label</property>
+ <property name="justify">center</property>
+ <property name="mnemonic-widget">spin_btn_2</property>
+ <property name="ellipsize">start</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spin_btn_2">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="truncate-multiline">True</property>
+ <property name="can-focus">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinner" id="spinner_1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="no">switch_1</property>
+ <property name="active">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinner" id="spinner_2">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="active">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="combo_box_enable">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="model">liststore1</property>
+ <property name="has-entry">True</property>
+ <property name="entry-text-column">0</property>
+ <property name="id-column">1</property>
+ <child internal-child="entry">
+ <object class="GtkEntry">
+ <property name="can-focus">False</property>
+ <property name="truncate-multiline">True</property>
+ <property name="text" translatable="no">Test 3</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <!-- n-columns=1 n-rows=1 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="row-spacing">5</property>
+ <property name="column-spacing">5</property>
+ <child>
+ <object class="GtkExpander" id="expander_1">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="expanded">True</property>
+ <child>
+ <!-- n-columns=2 n-rows=4 -->
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">5</property>
+ <property name="row-spacing">5</property>
+ <property name="column-spacing">5</property>
+ <child>
+ <object class="GtkCheckButton" id="check_btn_1">
+ <property name="label" translatable="no">Check Button 1</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="mnemonic-widget">entry_box_1</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="check_btn_2">
+ <property name="label" translatable="no">Check Button 2</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="draw-indicator">True</property>
+ <property name="mnemonic-widget">entry_box_2</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="check_btn_4">
+ <property name="label" translatable="no">Check Button 4</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="check_btn_3">
+ <property name="label" translatable="no">Check Button 3</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="radio_btn_1">
+ <property name="label" translatable="no">Radio Button 1</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="radio_btn_2">
+ <property name="label" translatable="no">Radio Button 2</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">radio_btn_1</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="radio_btn_3">
+ <property name="label" translatable="no">Radio Button 3</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="radio_btn_4">
+ <property name="label" translatable="no">Radio Button 4</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">radio_btn_3</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="expander">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="no">Expander</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="contentbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="contenttree">
+ <property name="width-request">-1</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="has-tooltip">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore2</property>
+ <property name="headers-visible">False</property>
+ <property name="reorderable">True</property>
+ <property name="search-column">1</property>
+ <property name="enable-tree-lines">True</property>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn0">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCellRendererPixbuf" id="cellrendererpixbuf0"/>
+ <attributes>
+ <attribute name="sensitive">4</attribute>
+ <attribute name="pixbuf">0</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext0">
+ <property name="xalign">0</property>
+ </object>
+ <attributes>
+ <attribute name="xpad">5</attribute>
+ <attribute name="sensitive">4</attribute>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="contentbox2">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="contenttree2">
+ <property name="width-request">-1</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="has-tooltip">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore3</property>
+ <property name="headers-visible">True</property>
+ <property name="reorderable">True</property>
+ <property name="search-column">1</property>
+ <property name="enable-tree-lines">True</property>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="no">Column 1</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="no">Column 2</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer2"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <object class="GtkTextBuffer" id="textbuffer1">
+ <property name="text" translatable="no">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy tex
+t ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a
+ type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,
+ remaining essentially unchanged.
+ It was popularised in the 1960s with the release
+ of Letraset sheets containing Lorem
+ Ipsum passages, and more recently with desktop publishing
+ software like Aldus PageMaker including versions of Lorem Ipsum.</property>
+ </object>
+</interface>
diff --git a/cui/uiconfig/ui/wordcompletionpage.ui b/cui/uiconfig/ui/wordcompletionpage.ui
index bcde7912c841..1b7004ee2d49 100644
--- a/cui/uiconfig/ui/wordcompletionpage.ui
+++ b/cui/uiconfig/ui/wordcompletionpage.ui
@@ -4,7 +4,7 @@
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">50</property>
- <property name="upper">65535</property>
+ <property name="upper">4294967295</property>
<property name="value">500</property>
<property name="step_increment">25</property>
<property name="page_increment">100</property>
@@ -104,7 +104,7 @@
<property name="draw_indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="appendspace-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="wordcompletionpage|extended_tip|appendspace">If you do not add punctuation after the word, %PRODUCTNAME adds a space.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="wordcompletionpage|extended_tip|appendspace">If you do not add punctuation after the word then a space is added automatically.</property>
</object>
</child>
</object>
@@ -340,7 +340,7 @@
<property name="draw_indicator">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="whenclosing-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="wordcompletionpage|extended_tip|whenclosing">When enabled, the list gets cleared when closing the current document. When disabled, makes the current Word Completion list available to other documents after you close the current document. The list remains available until you exit %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="wordcompletionpage|extended_tip|whenclosing">When enabled, the list gets cleared when closing the current document. When disabled, makes the current Word Completion list available to other documents after you close the current document. The list remains available until you exit office suite.</property>
</object>
</child>
</object>
diff --git a/cui/uiconfig/ui/zoomdialog.ui b/cui/uiconfig/ui/zoomdialog.ui
index 7fa059c5c09d..475344d9d31f 100644
--- a/cui/uiconfig/ui/zoomdialog.ui
+++ b/cui/uiconfig/ui/zoomdialog.ui
@@ -194,7 +194,7 @@
<property name="spacing">12</property>
<child>
<object class="GtkRadioButton" id="variable">
- <property name="label" translatable="yes" context="zoomdialog|variable">Variable:</property>
+ <property name="label" translatable="yes" context="zoomdialog|variable">Custom:</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@@ -228,7 +228,7 @@
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="zoomsb-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="zoomdialog|zoomsb-atkobject">Variable</property>
+ <property name="AtkObject::accessible-name" translatable="yes" context="zoomdialog|zoomsb-atkobject">Custom</property>
<property name="AtkObject::accessible-description" translatable="yes" context="zoomdialog|extended_tip|zoomsb">Enter the zoom factor at which you want to display the document. Enter a percentage in the box.</property>
</object>
</child>
@@ -359,7 +359,6 @@
<property name="adjustment">adjustment1</property>
<accessibility>
<relation type="labelled-by" target="columns"/>
- <relation type="member-of" target="columns"/>
</accessibility>
<property name="truncate-multiline">True</property>
<child internal-child="accessible">
@@ -393,7 +392,6 @@
<property name="margin-start">12</property>
<accessibility>
<relation type="labelled-by" target="columns"/>
- <relation type="member-of" target="columns"/>
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="bookmode-atkobject">
@@ -445,7 +443,7 @@
</child>
<child internal-child="accessible">
<object class="AtkObject" id="ZoomDialog-atkobject">
- <property name="AtkObject::accessible-description" translatable="yes" context="zoomdialog|extended_tip|ZoomDialog">Reduces or enlarges the screen display of %PRODUCTNAME.</property>
+ <property name="AtkObject::accessible-description" translatable="yes" context="zoomdialog|extended_tip|ZoomDialog">Reduces or enlarges the screen display.</property>
</object>
</child>
</object>
diff --git a/cui/util/cui.component b/cui/util/cui.component
index 1be360dcd6bb..6c72ec90c872 100644
--- a/cui/util/cui.component
+++ b/cui/util/cui.component
@@ -21,10 +21,12 @@
xmlns="http://openoffice.org/2010/uno-components">
<implementation name="com.sun.star.cui.ColorPicker"
constructor="com_sun_star_cui_ColorPicker_get_implementation">
+ <service name="com.sun.star.cui.AsynchronousColorPicker"/>
<service name="com.sun.star.ui.dialogs.ColorPicker"/>
- </implementation>
- <implementation name="com.sun.star.cui.AsynchronousColorPicker"
- constructor="com_sun_star_cui_ColorPicker_get_implementation">
<service name="com.sun.star.ui.dialogs.AsynchronousColorPicker"/>
</implementation>
+ <implementation name="com.sun.star.cui.GetCreateDialogFactoryService"
+ constructor="com_sun_star_cui_GetCreateDialogFactoryService">
+ <service name="com.sun.star.cui.GetCreateDialogFactoryService"/>
+ </implementation>
</component>