[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.3' - 69 commits - avmedia/source basctl/source basic/qa basic/source bin/findunusedcode canvas/source chart2/source comphelper/source compilerplugins/clang config_host/config_graphite.h.in config_host.mk.in configure.ac connectivity/source cui/source dbaccess/source desktop/source distro-configs/LibreOfficeEmscripten.conf editeng/source extensions/source filter/source forms/source formula/source fpicker/source framework/source include/basic include/editeng include/rtl include/sfx2 include/svl include/svtools include/svx include/tools include/unotools include/vcl libreofficekit/source linguistic/source oox/source reportdesign/source sal/qa sal/rtl sal/util sc/inc scripting/source sc/source sdext/source sd/source sfx2/source slideshow/source sot/source starmath/inc starmath/source svgio/source svl/source svtools/source svx/inc svx/source sw/inc sw/qa sw/source toolkit/source tools/inc tools/qa tools/source ucb/source unotools/source uui/ source vbahelper/source vcl/CustomTarget_afm_hash.mk vcl/headless vcl/inc vcl/Library_vcl.mk vcl/Module_vcl.mk vcl/opengl vcl/qa vcl/quartz vcl/source vcl/unx vcl/win xmloff/source
Michael Meeks
michael.meeks at collabora.com
Mon Dec 18 06:21:16 UTC 2017
avmedia/source/gstreamer/gstmanager.cxx | 2
avmedia/source/macavf/manager.mm | 2
avmedia/source/quicktime/manager.mm | 2
avmedia/source/viewer/mediawindow.cxx | 4
avmedia/source/viewer/mediawindow_impl.cxx | 2
avmedia/source/win/manager.cxx | 2
basctl/source/basicide/baside2.cxx | 18
basctl/source/basicide/baside2.hxx | 5
basctl/source/basicide/baside3.cxx | 2
basctl/source/basicide/basides1.cxx | 4
basctl/source/basicide/basidesh.cxx | 4
basctl/source/basicide/bastypes.cxx | 4
basctl/source/basicide/iderdll.cxx | 6
basctl/source/basicide/iderdll2.hxx | 2
basctl/source/basicide/moduldl2.cxx | 22
basctl/source/inc/basidesh.hxx | 2
basctl/source/inc/bastypes.hxx | 7
basic/qa/cppunit/test_vba.cxx | 1
basic/source/basmgr/basmgr.cxx | 14
basic/source/classes/errobject.cxx | 7
basic/source/classes/sb.cxx | 10
basic/source/classes/sbunoobj.cxx | 9
basic/source/classes/sbxmod.cxx | 44
basic/source/inc/runtime.hxx | 68
basic/source/inc/sbintern.hxx | 4
basic/source/runtime/methods.cxx | 10
basic/source/runtime/methods1.cxx | 2
basic/source/runtime/runtime.cxx | 30
basic/source/uno/namecont.cxx | 114
basic/source/uno/scriptcont.cxx | 16
bin/findunusedcode | 1
canvas/source/vcl/canvashelper.cxx | 8
chart2/source/controller/drawinglayer/ViewElementListProvider.cxx | 3
chart2/source/controller/main/ElementSelector.cxx | 4
chart2/source/controller/main/ElementSelector.hxx | 2
comphelper/source/misc/documentinfo.cxx | 2
compilerplugins/clang/fpcomparison.cxx | 6
config_host.mk.in | 1
config_host/config_graphite.h.in | 6
configure.ac | 47
connectivity/source/drivers/calc/CConnection.cxx | 2
connectivity/source/drivers/dbase/DTable.cxx | 30
connectivity/source/drivers/file/FConnection.cxx | 2
connectivity/source/drivers/file/FDatabaseMetaData.cxx | 8
connectivity/source/drivers/flat/ETable.cxx | 2
connectivity/source/drivers/writer/WConnection.cxx | 2
cui/source/customize/macropg.cxx | 4
cui/source/dialogs/SpellDialog.cxx | 4
cui/source/dialogs/cuigaldlg.cxx | 10
cui/source/dialogs/hldocntp.cxx | 14
cui/source/dialogs/hlinettp.cxx | 4
cui/source/dialogs/hlmailtp.cxx | 2
cui/source/dialogs/hltpbase.cxx | 6
cui/source/dialogs/insdlg.cxx | 6
cui/source/dialogs/linkdlg.cxx | 6
cui/source/dialogs/multipat.cxx | 4
cui/source/inc/SpellDialog.hxx | 2
cui/source/inc/headertablistbox.hxx | 2
cui/source/inc/treeopt.hxx | 2
cui/source/options/connpooloptions.cxx | 4
cui/source/options/connpooloptions.hxx | 2
cui/source/options/doclinkdialog.cxx | 2
cui/source/options/optjava.cxx | 4
cui/source/options/optlingu.cxx | 2
cui/source/options/optpath.cxx | 2
cui/source/options/treeopt.cxx | 4
cui/source/tabpages/numpages.cxx | 2
cui/source/tabpages/tplnedef.cxx | 8
cui/source/tabpages/tplneend.cxx | 8
dbaccess/source/core/dataaccess/databasecontext.cxx | 2
dbaccess/source/core/dataaccess/databasedocument.cxx | 2
dbaccess/source/core/dataaccess/datasource.cxx | 2
dbaccess/source/ext/macromigration/macromigrationpages.cxx | 2
dbaccess/source/filter/xml/xmlfilter.cxx | 4
dbaccess/source/ui/app/AppController.cxx | 6
dbaccess/source/ui/app/AppDetailPageHelper.cxx | 6
dbaccess/source/ui/browser/dbloader.cxx | 2
dbaccess/source/ui/browser/unodatbr.cxx | 6
dbaccess/source/ui/control/opendoccontrols.cxx | 4
dbaccess/source/ui/control/sqledit.cxx | 2
dbaccess/source/ui/dlg/ConnectionHelper.cxx | 12
dbaccess/source/ui/dlg/dbfindex.cxx | 2
dbaccess/source/ui/dlg/dbwizsetup.cxx | 14
dbaccess/source/ui/inc/sqledit.hxx | 3
dbaccess/source/ui/misc/TableCopyHelper.cxx | 2
dbaccess/source/ui/misc/UITools.cxx | 4
dbaccess/source/ui/querydesign/limitboxcontroller.cxx | 8
desktop/source/app/app.cxx | 4
desktop/source/deployment/gui/dp_gui_dialog2.cxx | 6
desktop/source/deployment/gui/dp_gui_dialog2.hxx | 2
desktop/source/deployment/gui/dp_gui_extlistbox.cxx | 4
desktop/source/deployment/gui/dp_gui_extlistbox.hxx | 2
desktop/source/deployment/gui/license_dialog.cxx | 3
desktop/source/lib/init.cxx | 11
desktop/source/migration/migration.cxx | 6
desktop/source/migration/services/basicmigration.cxx | 4
desktop/source/migration/services/oo3extensionmigration.cxx | 4
desktop/source/migration/services/wordbookmigration.cxx | 4
distro-configs/LibreOfficeEmscripten.conf | 1
editeng/source/editeng/editdoc.cxx | 2
editeng/source/editeng/editdoc.hxx | 23
editeng/source/editeng/editeng.cxx | 29
editeng/source/editeng/editundo.cxx | 2
editeng/source/editeng/editundo.hxx | 10
editeng/source/editeng/editview.cxx | 4
editeng/source/editeng/edtspell.cxx | 2
editeng/source/editeng/eehtml.cxx | 2
editeng/source/editeng/impedit.cxx | 20
editeng/source/editeng/impedit.hxx | 51
editeng/source/editeng/impedit2.cxx | 48
editeng/source/editeng/impedit3.cxx | 18
editeng/source/editeng/impedit5.cxx | 6
editeng/source/items/flditem.cxx | 8
editeng/source/misc/acorrcfg.cxx | 2
editeng/source/misc/svxacorr.cxx | 8
extensions/source/abpilot/abpfinalpage.cxx | 2
extensions/source/abpilot/datasourcehandling.cxx | 4
extensions/source/dbpilots/controlwizard.cxx | 2
extensions/source/propctrlr/browserlistbox.cxx | 4
extensions/source/propctrlr/browserlistbox.hxx | 2
extensions/source/propctrlr/browserview.cxx | 4
extensions/source/propctrlr/browserview.hxx | 2
extensions/source/propctrlr/formcomponenthandler.cxx | 2
filter/source/config/cache/filtercache.cxx | 2
filter/source/config/cache/typedetection.cxx | 2
filter/source/flash/swfwriter1.cxx | 8
filter/source/graphicfilter/eps/eps.cxx | 16
filter/source/graphicfilter/icgm/actimpr.cxx | 6
filter/source/graphicfilter/icgm/class4.cxx | 8
filter/source/graphicfilter/icgm/outact.hxx | 2
filter/source/msfilter/escherex.cxx | 8
filter/source/msfilter/msdffimp.cxx | 10
filter/source/pdf/pdfexport.cxx | 2
filter/source/storagefilterdetect/filterdetect.cxx | 2
filter/source/svg/svgwriter.cxx | 2
filter/source/textfilterdetect/filterdetect.cxx | 2
filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx | 4
filter/source/xsltdialog/xmlfiltersettingsdialog.cxx | 8
filter/source/xsltdialog/xmlfiltersettingsdialog.hxx | 4
filter/source/xsltdialog/xmlfiltertestdialog.cxx | 2
filter/source/xsltfilter/XSLTFilter.cxx | 6
forms/source/component/Button.cxx | 2
forms/source/component/DatabaseForm.cxx | 14
forms/source/component/ImageButton.cxx | 2
forms/source/richtext/richtextvclcontrol.cxx | 6
forms/source/richtext/richtextvclcontrol.hxx | 2
forms/source/xforms/submission/replace.cxx | 2
forms/source/xforms/submission/submission_get.cxx | 2
forms/source/xforms/submission/submission_post.cxx | 2
forms/source/xforms/submission/submission_put.cxx | 2
formula/source/ui/dlg/funcutl.cxx | 2
fpicker/source/office/OfficeFilePicker.cxx | 6
fpicker/source/office/OfficeFolderPicker.cxx | 2
fpicker/source/office/PlacesListBox.cxx | 4
fpicker/source/office/PlacesListBox.hxx | 2
fpicker/source/office/RemoteFilesDialog.cxx | 22
fpicker/source/office/iodlg.cxx | 50
fpicker/source/office/iodlg.hxx | 2
fpicker/source/office/iodlgimp.cxx | 2
framework/source/fwe/helper/titlehelper.cxx | 8
framework/source/services/substitutepathvars.cxx | 6
framework/source/services/uriabbreviation.cxx | 2
framework/source/services/urltransformer.cxx | 26
framework/source/uielement/fontmenucontroller.cxx | 2
framework/source/uielement/generictoolbarcontroller.cxx | 2
framework/source/uielement/recentfilesmenucontroller.cxx | 2
include/basic/sbdef.hxx | 17
include/basic/sbmeth.hxx | 8
include/basic/sbstar.hxx | 14
include/editeng/editeng.hxx | 6
include/rtl/alloc.h | 17
include/sfx2/basedlgs.hxx | 4
include/sfx2/dockwin.hxx | 2
include/sfx2/new.hxx | 7
include/sfx2/objface.hxx | 5
include/sfx2/prnmon.hxx | 2
include/sfx2/shell.hxx | 23
include/sfx2/sidebar/Deck.hxx | 2
include/sfx2/sidebar/SidebarToolBox.hxx | 2
include/sfx2/sidebar/TabBar.hxx | 2
include/svl/hint.hxx | 1
include/svl/urihelper.hxx | 10
include/svtools/ctrltool.hxx | 6
include/svtools/editbrowsebox.hxx | 2
include/svtools/fileurlbox.hxx | 2
include/svtools/fmtfield.hxx | 2
include/svtools/inettbc.hxx | 2
include/svtools/place.hxx | 2
include/svtools/prnsetup.hxx | 2
include/svtools/urlcontrol.hxx | 2
include/svtools/wizdlg.hxx | 2
include/svx/colrctrl.hxx | 2
include/svx/itemwin.hxx | 8
include/svx/ruler.hxx | 1
include/svx/sidebar/PanelLayout.hxx | 2
include/svx/svdpntv.hxx | 2
include/svx/svdview.hxx | 2
include/svx/xoutbmp.hxx | 3
include/svx/xpoly.hxx | 17
include/tools/fontenum.hxx | 3
include/tools/poly.hxx | 15
include/tools/urlobj.hxx | 90
include/unotools/options.hxx | 24
include/unotools/syslocaleoptions.hxx | 10
include/vcl/combobox.hxx | 2
include/vcl/ctrl.hxx | 2
include/vcl/dialog.hxx | 2
include/vcl/dockwin.hxx | 2
include/vcl/field.hxx | 24
include/vcl/floatwin.hxx | 2
include/vcl/font.hxx | 10
include/vcl/layout.hxx | 2
include/vcl/longcurr.hxx | 4
include/vcl/metric.hxx | 6
include/vcl/outdev.hxx | 6
include/vcl/settings.hxx | 3
include/vcl/spinfld.hxx | 2
include/vcl/syswin.hxx | 2
include/vcl/tabctrl.hxx | 2
include/vcl/toolbox.hxx | 2
include/vcl/vclmedit.hxx | 2
include/vcl/window.hxx | 2
libreofficekit/source/gtk/lokdocview.cxx | 2
linguistic/source/convdiclist.cxx | 8
linguistic/source/dlistimp.cxx | 2
linguistic/source/misc2.cxx | 6
oox/source/export/drawingml.cxx | 8
oox/source/ppt/pptimport.cxx | 2
reportdesign/source/ui/inc/ColorListener.hxx | 1
reportdesign/source/ui/inc/ScrollHelper.hxx | 2
reportdesign/source/ui/inc/StartMarker.hxx | 1
reportdesign/source/ui/inc/ViewsWindow.hxx | 2
reportdesign/source/ui/report/ScrollHelper.cxx | 4
reportdesign/source/ui/report/ViewsWindow.cxx | 2
sal/qa/rtl/alloc/rtl_alloc.cxx | 70
sal/rtl/alloc_arena.cxx | 31
sal/rtl/alloc_arena.hxx | 8
sal/rtl/alloc_cache.cxx | 20
sal/rtl/alloc_global.cxx | 4
sal/rtl/strimp.cxx | 68
sal/rtl/strimp.hxx | 6
sal/rtl/string.cxx | 6
sal/rtl/strtmpl.cxx | 4
sal/rtl/ustring.cxx | 8
sal/util/sal.map | 4
sc/inc/chgtrack.hxx | 2
sc/inc/column.hxx | 1
sc/inc/scmod.hxx | 2
sc/source/core/data/column.cxx | 3
sc/source/core/data/column2.cxx | 2
sc/source/core/data/documen2.cxx | 2
sc/source/core/data/documen8.cxx | 4
sc/source/core/data/document.cxx | 6
sc/source/core/data/global2.cxx | 6
sc/source/core/data/globalx.cxx | 2
sc/source/core/tool/autoform.cxx | 4
sc/source/core/tool/chgtrack.cxx | 2
sc/source/core/tool/compiler.cxx | 4
sc/source/core/tool/formulalogger.cxx | 2
sc/source/core/tool/interpr1.cxx | 2
sc/source/filter/excel/xecontent.cxx | 6
sc/source/filter/excel/xicontent.cxx | 2
sc/source/filter/lotus/lotus.cxx | 2
sc/source/filter/xcl97/xcl97rec.cxx | 2
sc/source/ui/app/drwtrans.cxx | 2
sc/source/ui/app/inputhdl.cxx | 258 -
sc/source/ui/app/inputwin.cxx | 14
sc/source/ui/app/scmod.cxx | 5
sc/source/ui/cctrl/checklistmenu.cxx | 4
sc/source/ui/condformat/condformatdlgentry.cxx | 4
sc/source/ui/dbgui/csvgrid.cxx | 2
sc/source/ui/docshell/docsh.cxx | 4
sc/source/ui/docshell/docsh3.cxx | 2
sc/source/ui/docshell/docsh8.cxx | 12
sc/source/ui/docshell/externalrefmgr.cxx | 6
sc/source/ui/drawfunc/chartsh.cxx | 3
sc/source/ui/drawfunc/drawsh.cxx | 3
sc/source/ui/drawfunc/drformsh.cxx | 3
sc/source/ui/drawfunc/drtxtob.cxx | 3
sc/source/ui/drawfunc/graphsh.cxx | 3
sc/source/ui/drawfunc/mediash.cxx | 2
sc/source/ui/drawfunc/oleobjsh.cxx | 3
sc/source/ui/formdlg/formula.cxx | 2
sc/source/ui/inc/checklistmenu.hxx | 2
sc/source/ui/inc/condformatdlgentry.hxx | 5
sc/source/ui/inc/csvgrid.hxx | 2
sc/source/ui/inc/inputhdl.hxx | 3
sc/source/ui/inc/inputwin.hxx | 2
sc/source/ui/inc/navipi.hxx | 9
sc/source/ui/inc/tabvwsh.hxx | 5
sc/source/ui/navipi/navipi.cxx | 8
sc/source/ui/navipi/scenwnd.cxx | 4
sc/source/ui/vba/vbaworkbook.cxx | 4
sc/source/ui/view/cellsh.cxx | 3
sc/source/ui/view/formatsh.cxx | 3
sc/source/ui/view/gridwin5.cxx | 2
sc/source/ui/view/prevwsh.cxx | 7
sc/source/ui/view/printfun.cxx | 4
sc/source/ui/view/tabvwsh.cxx | 3
sc/source/ui/view/tabvwsh3.cxx | 2
sc/source/ui/view/tabvwsh4.cxx | 21
sc/source/ui/view/tabvwsha.cxx | 6
sc/source/ui/view/viewfun4.cxx | 2
sc/source/ui/xmlsource/xmlsourcedlg.cxx | 2
scripting/source/dlgprov/dlgprov.cxx | 2
scripting/source/provider/MasterScriptProvider.cxx | 2
scripting/source/stringresource/stringresource.cxx | 4
sd/source/core/CustomAnimationCloner.cxx | 7
sd/source/core/CustomAnimationEffect.cxx | 1
sd/source/core/EffectMigration.cxx | 3
sd/source/core/TransitionPreset.cxx | 1
sd/source/core/annotations/AnnotationEnumeration.cxx | 1
sd/source/core/drawdoc.cxx | 2
sd/source/core/drawdoc2.cxx | 2
sd/source/core/drawdoc3.cxx | 2
sd/source/core/drawdoc4.cxx | 2
sd/source/core/sdpage_animations.cxx | 1
sd/source/filter/cgm/sdcgmfilter.cxx | 2
sd/source/filter/eppt/epptso.cxx | 4
sd/source/filter/grf/sdgrffilter.cxx | 2
sd/source/filter/html/htmlex.cxx | 4
sd/source/filter/html/pubdlg.cxx | 10
sd/source/filter/ppt/pptin.cxx | 10
sd/source/ui/animations/CustomAnimationDialog.cxx | 2
sd/source/ui/app/sdmod.cxx | 2
sd/source/ui/dlg/PhotoAlbumDialog.cxx | 6
sd/source/ui/dlg/RemoteDialogClientBox.cxx | 4
sd/source/ui/dlg/RemoteDialogClientBox.hxx | 2
sd/source/ui/dlg/docprev.cxx | 4
sd/source/ui/dlg/navigatr.cxx | 8
sd/source/ui/dlg/sdpreslt.cxx | 2
sd/source/ui/dlg/sdtreelb.cxx | 2
sd/source/ui/dlg/tpaction.cxx | 6
sd/source/ui/docshell/docshel4.cxx | 2
sd/source/ui/func/fucon3d.cxx | 16
sd/source/ui/func/fudraw.cxx | 10
sd/source/ui/func/fuinsert.cxx | 2
sd/source/ui/func/fusel.cxx | 4
sd/source/ui/func/futext.cxx | 2
sd/source/ui/inc/DrawViewShell.hxx | 2
sd/source/ui/inc/Window.hxx | 2
sd/source/ui/inc/WindowUpdater.hxx | 2
sd/source/ui/inc/docprev.hxx | 2
sd/source/ui/inc/navigatr.hxx | 2
sd/source/ui/sidebar/MasterPageDescriptor.cxx | 2
sd/source/ui/slideshow/slideshowimpl.cxx | 6
sd/source/ui/slidesorter/inc/view/SlideSorterView.hxx | 2
sd/source/ui/slidesorter/shell/SlideSorter.cxx | 4
sd/source/ui/slidesorter/view/SlideSorterView.cxx | 2
sd/source/ui/unoidl/UnoDocumentSettings.cxx | 2
sd/source/ui/view/WindowUpdater.cxx | 2
sd/source/ui/view/drviews3.cxx | 2
sd/source/ui/view/drviewse.cxx | 4
sd/source/ui/view/drviewsk.cxx | 2
sd/source/ui/view/outlnvsh.cxx | 4
sd/source/ui/view/presvish.cxx | 8
sd/source/ui/view/sdview4.cxx | 2
sd/source/ui/view/sdwindow.cxx | 4
sdext/source/minimizer/optimizerdialog.cxx | 2
sfx2/source/appl/appdde.cxx | 8
sfx2/source/appl/appopen.cxx | 2
sfx2/source/appl/macroloader.cxx | 6
sfx2/source/appl/newhelp.cxx | 26
sfx2/source/appl/newhelp.hxx | 10
sfx2/source/appl/opengrf.cxx | 6
sfx2/source/appl/sfxhelp.cxx | 2
sfx2/source/appl/sfxpicklist.cxx | 4
sfx2/source/appl/shutdowniconaqua.mm | 2
sfx2/source/appl/workwin.cxx | 61
sfx2/source/bastyp/fltfnc.cxx | 4
sfx2/source/bastyp/frmhtmlw.cxx | 2
sfx2/source/bastyp/helper.cxx | 4
sfx2/source/control/dispatch.cxx | 35
sfx2/source/control/objface.cxx | 51
sfx2/source/control/recentdocsview.cxx | 2
sfx2/source/control/recentdocsviewitem.cxx | 2
sfx2/source/control/unoctitm.cxx | 2
sfx2/source/dialog/basedlgs.cxx | 16
sfx2/source/dialog/dinfdlg.cxx | 6
sfx2/source/dialog/dockwin.cxx | 14
sfx2/source/dialog/filedlghelper.cxx | 26
sfx2/source/dialog/mailmodel.cxx | 10
sfx2/source/dialog/partwnd.cxx | 4
sfx2/source/dialog/templdlg.cxx | 8
sfx2/source/doc/docfile.cxx | 76
sfx2/source/doc/docinsert.cxx | 2
sfx2/source/doc/docmacromode.cxx | 2
sfx2/source/doc/doctempl.cxx | 34
sfx2/source/doc/doctemplates.cxx | 114
sfx2/source/doc/frmdescr.cxx | 2
sfx2/source/doc/guisaveas.cxx | 26
sfx2/source/doc/iframe.cxx | 4
sfx2/source/doc/new.cxx | 16
sfx2/source/doc/objcont.cxx | 2
sfx2/source/doc/objmisc.cxx | 26
sfx2/source/doc/objstor.cxx | 8
sfx2/source/doc/objxtor.cxx | 2
sfx2/source/doc/printhelper.cxx | 4
sfx2/source/doc/sfxbasemodel.cxx | 2
sfx2/source/doc/templatedlg.cxx | 4
sfx2/source/inc/partwnd.hxx | 2
sfx2/source/inc/templdgi.hxx | 4
sfx2/source/inc/workwin.hxx | 26
sfx2/source/inet/inettbc.cxx | 2
sfx2/source/notify/eventsupplier.cxx | 2
sfx2/source/sidebar/Deck.cxx | 4
sfx2/source/sidebar/SidebarToolBox.cxx | 6
sfx2/source/sidebar/TabBar.cxx | 2
sfx2/source/view/frame2.cxx | 8
sfx2/source/view/printer.cxx | 4
sfx2/source/view/viewfrm.cxx | 12
sfx2/source/view/viewfrm2.cxx | 2
sfx2/source/view/viewsh.cxx | 4
slideshow/source/engine/shapes/gdimtftools.cxx | 2
slideshow/source/engine/shapes/shapeimporter.cxx | 2
slideshow/source/engine/soundplayer.cxx | 2
sot/source/sdstor/storage.cxx | 4
sot/source/sdstor/ucbstorage.cxx | 10
starmath/inc/smmod.hxx | 2
starmath/source/smmod.cxx | 2
starmath/source/view.cxx | 3
svgio/source/svgreader/svgnode.cxx | 2
svl/source/config/cjkoptions.cxx | 4
svl/source/config/ctloptions.cxx | 16
svl/source/fsstor/fsstorage.cxx | 74
svl/source/misc/filenotation.cxx | 2
svl/source/misc/inethist.cxx | 14
svl/source/misc/lockfilecommon.cxx | 4
svl/source/misc/urihelper.cxx | 20
svl/source/numbers/zforlist.cxx | 10
svtools/source/brwbox/editbrowsebox.cxx | 4
svtools/source/config/accessibilityoptions.cxx | 2
svtools/source/config/colorcfg.cxx | 4
svtools/source/contnr/fileview.cxx | 14
svtools/source/contnr/foldertree.cxx | 4
svtools/source/contnr/simptabl.cxx | 2
svtools/source/control/breadcrumb.cxx | 4
svtools/source/control/calendar.cxx | 6
svtools/source/control/ctrltool.cxx | 25
svtools/source/control/fileurlbox.cxx | 6
svtools/source/control/fmtfield.cxx | 4
svtools/source/control/inettbc.cxx | 50
svtools/source/control/urlcontrol.cxx | 6
svtools/source/dialogs/PlaceEditDialog.cxx | 10
svtools/source/dialogs/ServerDetailsControls.cxx | 4
svtools/source/dialogs/addresstemplate.cxx | 4
svtools/source/dialogs/prnsetup.cxx | 4
svtools/source/dialogs/wizdlg.cxx | 4
svtools/source/hatchwindow/ipwin.cxx | 4
svtools/source/hatchwindow/ipwin.hxx | 2
svtools/source/misc/imagemgr.cxx | 6
svtools/source/misc/imap.cxx | 2
svtools/source/misc/templatefoldercache.cxx | 6
svtools/source/misc/transfer.cxx | 2
svtools/source/table/tabledatawindow.cxx | 4
svtools/source/table/tabledatawindow.hxx | 2
svx/inc/galbrws2.hxx | 1
svx/inc/xpolyimp.hxx | 2
svx/source/core/graphichelper.cxx | 6
svx/source/dialog/docrecovery.cxx | 6
svx/source/dialog/imapdlg.cxx | 8
svx/source/dialog/imapwnd.cxx | 2
svx/source/dialog/langbox.cxx | 2
svx/source/form/databaselocationinput.cxx | 2
svx/source/form/datanavi.cxx | 6
svx/source/form/fmpage.cxx | 2
svx/source/form/fmshell.cxx | 12
svx/source/gallery2/galbrws1.cxx | 2
svx/source/gallery2/galbrws1.hxx | 1
svx/source/gallery2/galbrws2.cxx | 6
svx/source/gallery2/galctrl.cxx | 4
svx/source/gallery2/galexpl.cxx | 2
svx/source/gallery2/galini.cxx | 2
svx/source/gallery2/gallery1.cxx | 12
svx/source/gallery2/galmisc.cxx | 24
svx/source/gallery2/galobj.cxx | 2
svx/source/gallery2/galtheme.cxx | 66
svx/source/gengal/gengal.cxx | 6
svx/source/inc/datanavi.hxx | 2
svx/source/inc/filtnav.hxx | 1
svx/source/inc/fmexpl.hxx | 1
svx/source/sidebar/PanelLayout.cxx | 4
svx/source/sidebar/nbdtmg.cxx | 4
svx/source/svdraw/svdoedge.cxx | 36
svx/source/svdraw/svdomedia.cxx | 2
svx/source/svdraw/svdopath.cxx | 62
svx/source/svdraw/svdotxln.cxx | 6
svx/source/svdraw/svdpntv.cxx | 2
svx/source/svdraw/svdview.cxx | 4
svx/source/tbxctrls/colrctrl.cxx | 4
svx/source/tbxctrls/grafctrl.cxx | 6
svx/source/tbxctrls/itemwin.cxx | 16
svx/source/tbxctrls/tbcontrl.cxx | 12
svx/source/tbxctrls/tbunocontroller.cxx | 6
svx/source/toolbars/extrusionbar.cxx | 2
svx/source/toolbars/fontworkbar.cxx | 2
svx/source/unogallery/unogalitem.cxx | 2
svx/source/xoutdev/_xoutbmp.cxx | 23
svx/source/xoutdev/_xpoly.cxx | 48
svx/source/xoutdev/xtable.cxx | 6
sw/inc/crsrsh.hxx | 2
sw/inc/doc.hxx | 2
sw/inc/ndgrf.hxx | 4
sw/inc/ndnotxt.hxx | 6
sw/inc/ndole.hxx | 4
sw/inc/ndtxt.hxx | 4
sw/inc/ndtyp.hxx | 27
sw/inc/node.hxx | 52
sw/inc/swmodule.hxx | 2
sw/qa/core/uwriter.cxx | 6
sw/source/core/access/accdoc.cxx | 1
sw/source/core/access/accdoc.hxx | 1
sw/source/core/access/accfootnote.cxx | 1
sw/source/core/access/accframebase.cxx | 4
sw/source/core/access/accframebase.hxx | 2
sw/source/core/access/accheaderfooter.cxx | 1
sw/source/core/access/acchyperlink.cxx | 1
sw/source/core/access/accmap.cxx | 9
sw/source/core/access/accnotextframe.cxx | 3
sw/source/core/access/accpara.cxx | 2
sw/source/core/access/accportions.cxx | 2
sw/source/core/access/accselectionhelper.hxx | 1
sw/source/core/access/acctextframe.cxx | 1
sw/source/core/attr/format.cxx | 1
sw/source/core/bastyp/breakit.cxx | 1
sw/source/core/bastyp/calc.cxx | 1
sw/source/core/bastyp/init.cxx | 2
sw/source/core/crsr/callnk.cxx | 14
sw/source/core/crsr/callnk.hxx | 4
sw/source/core/crsr/crsrsh.cxx | 10
sw/source/core/crsr/swcrsr.cxx | 1
sw/source/core/doc/DocumentContentOperationsManager.cxx | 2
sw/source/core/doc/DocumentLayoutManager.cxx | 8
sw/source/core/doc/DocumentLinksAdministrationManager.cxx | 2
sw/source/core/doc/DocumentStatisticsManager.cxx | 15
sw/source/core/doc/doc.cxx | 7
sw/source/core/doc/doccomp.cxx | 43
sw/source/core/doc/docedt.cxx | 7
sw/source/core/doc/docfmt.cxx | 2
sw/source/core/doc/docglbl.cxx | 2
sw/source/core/doc/doclay.cxx | 21
sw/source/core/doc/docnew.cxx | 5
sw/source/core/doc/docnum.cxx | 8
sw/source/core/doc/docsort.cxx | 2
sw/source/core/doc/docxforms.cxx | 1
sw/source/core/doc/notxtfrm.cxx | 10
sw/source/core/doc/tblrwcl.cxx | 1
sw/source/core/doc/visiturl.cxx | 2
sw/source/core/docnode/finalthreadmanager.cxx | 1
sw/source/core/docnode/ndnotxt.cxx | 2
sw/source/core/docnode/ndsect.cxx | 2
sw/source/core/docnode/ndtbl.cxx | 15
sw/source/core/docnode/node.cxx | 61
sw/source/core/docnode/nodes.cxx | 64
sw/source/core/draw/dpage.cxx | 8
sw/source/core/draw/drawdoc.cxx | 1
sw/source/core/edit/edattr.cxx | 6
sw/source/core/edit/edfldexp.cxx | 2
sw/source/core/edit/edglss.cxx | 4
sw/source/core/edit/editsh.cxx | 9
sw/source/core/edit/edlingu.cxx | 1
sw/source/core/edit/edtab.cxx | 1
sw/source/core/edit/edws.cxx | 7
sw/source/core/fields/docufld.cxx | 21
sw/source/core/fields/macrofld.cxx | 1
sw/source/core/fields/reffld.cxx | 1
sw/source/core/frmedt/feflyole.cxx | 1
sw/source/core/frmedt/feshview.cxx | 10
sw/source/core/graphic/grfatr.cxx | 12
sw/source/core/graphic/ndgrf.cxx | 10
sw/source/core/inc/retrieveinputstream.hxx | 1
sw/source/core/inc/rolbck.hxx | 6
sw/source/core/inc/unofootnote.hxx | 1
sw/source/core/inc/unoparaframeenum.hxx | 3
sw/source/core/inc/unosection.hxx | 1
sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx | 1
sw/source/core/ole/ndole.cxx | 8
sw/source/core/para/paratr.cxx | 13
sw/source/core/swg/SwXMLTextBlocks.cxx | 2
sw/source/core/swg/swblocks.cxx | 2
sw/source/core/text/EnhancedPDFExportHelper.cxx | 2
sw/source/core/text/itradj.cxx | 1
sw/source/core/text/itratr.cxx | 1
sw/source/core/text/pormulti.cxx | 1
sw/source/core/tox/toxhlp.cxx | 1
sw/source/core/txtnode/fntcache.cxx | 30
sw/source/core/txtnode/ndtxt.cxx | 14
sw/source/core/txtnode/txtedt.cxx | 1
sw/source/core/undo/rolbck.cxx | 6
sw/source/core/undo/undel.cxx | 4
sw/source/core/undo/unins.cxx | 12
sw/source/core/undo/unmove.cxx | 6
sw/source/core/undo/untbl.cxx | 4
sw/source/core/unocore/swunohelper.cxx | 6
sw/source/core/unocore/unocoll.cxx | 12
sw/source/core/unocore/unoobj2.cxx | 6
sw/source/core/unocore/unoredline.cxx | 6
sw/source/core/unocore/unotext.cxx | 4
sw/source/core/view/vprint.cxx | 1
sw/source/filter/basflt/iodetect.cxx | 2
sw/source/filter/basflt/shellio.cxx | 4
sw/source/filter/html/SwAppletImpl.cxx | 2
sw/source/filter/html/htmlgrin.cxx | 2
sw/source/filter/html/htmlplug.cxx | 2
sw/source/filter/html/wrthtml.cxx | 2
sw/source/filter/writer/wrt_fn.cxx | 6
sw/source/filter/ww8/writerhelper.cxx | 4
sw/source/filter/ww8/wrtw8esh.cxx | 6
sw/source/filter/ww8/wrtw8nds.cxx | 23
sw/source/filter/ww8/ww8graf2.cxx | 4
sw/source/filter/ww8/ww8par.cxx | 6
sw/source/filter/ww8/ww8par2.cxx | 4
sw/source/filter/xml/xmltexti.cxx | 4
sw/source/ui/chrdlg/chardlg.cxx | 2
sw/source/ui/dbui/addresslistdialog.cxx | 2
sw/source/ui/dbui/createaddresslistdialog.cxx | 2
sw/source/ui/dbui/mmaddressblockpage.hxx | 2
sw/source/ui/dbui/mmdocselectpage.cxx | 2
sw/source/ui/dbui/mmresultdialogs.cxx | 6
sw/source/ui/dialog/uiregionsw.cxx | 12
sw/source/ui/frmdlg/frmpage.cxx | 4
sw/source/ui/index/cnttab.cxx | 6
sw/source/ui/misc/glosbib.cxx | 2
sw/source/ui/vba/vbatemplate.cxx | 2
sw/source/uibase/app/apphdl.cxx | 12
sw/source/uibase/app/applab.cxx | 1
sw/source/uibase/app/docsh.cxx | 4
sw/source/uibase/app/docsh2.cxx | 5
sw/source/uibase/app/swmodule.cxx | 1
sw/source/uibase/cctrl/actctrl.cxx | 4
sw/source/uibase/config/uinums.cxx | 2
sw/source/uibase/config/usrpref.cxx | 1
sw/source/uibase/dbui/dbmgr.cxx | 38
sw/source/uibase/dbui/dbtree.cxx | 5
sw/source/uibase/dbui/mmconfigitem.cxx | 4
sw/source/uibase/dochdl/gloshdl.cxx | 2
sw/source/uibase/dochdl/swdtflvr.cxx | 17
sw/source/uibase/docvw/edtwin2.cxx | 4
sw/source/uibase/fldui/fldmgr.cxx | 2
sw/source/uibase/fldui/xfldui.cxx | 2
sw/source/uibase/frmdlg/frmmgr.cxx | 1
sw/source/uibase/inc/SwXFilterOptions.hxx | 1
sw/source/uibase/inc/actctrl.hxx | 3
sw/source/uibase/inc/conttree.hxx | 20
sw/source/uibase/inc/cption.hxx | 7
sw/source/uibase/inc/dbinsdlg.hxx | 1
sw/source/uibase/inc/glossary.hxx | 7
sw/source/uibase/inc/labimp.hxx | 44
sw/source/uibase/inc/navipi.hxx | 1
sw/source/uibase/inc/redlndlg.hxx | 1
sw/source/uibase/inc/srcedtw.hxx | 1
sw/source/uibase/inc/swrenamexnameddlg.hxx | 3
sw/source/uibase/inc/swuicnttab.hxx | 2
sw/source/uibase/inc/uivwimp.hxx | 1
sw/source/uibase/inc/unotools.hxx | 2
sw/source/uibase/inc/unotxvw.hxx | 1
sw/source/uibase/inc/wrtsh.hxx | 1
sw/source/uibase/index/idxmrk.cxx | 3
sw/source/uibase/lingu/hyp.cxx | 1
sw/source/uibase/lingu/olmenu.cxx | 5
sw/source/uibase/lingu/sdrhhcwrap.cxx | 1
sw/source/uibase/ribbar/workctrl.cxx | 12
sw/source/uibase/shells/annotsh.cxx | 4
sw/source/uibase/shells/beziersh.cxx | 2
sw/source/uibase/shells/drawsh.cxx | 2
sw/source/uibase/shells/drformsh.cxx | 2
sw/source/uibase/shells/drwtxtex.cxx | 1
sw/source/uibase/shells/drwtxtsh.cxx | 2
sw/source/uibase/shells/frmsh.cxx | 2
sw/source/uibase/shells/grfsh.cxx | 4
sw/source/uibase/shells/grfshex.cxx | 3
sw/source/uibase/shells/listsh.cxx | 2
sw/source/uibase/shells/mediash.cxx | 2
sw/source/uibase/shells/olesh.cxx | 2
sw/source/uibase/shells/tabsh.cxx | 2
sw/source/uibase/shells/textsh.cxx | 2
sw/source/uibase/shells/textsh1.cxx | 2
sw/source/uibase/shells/textsh2.cxx | 8
sw/source/uibase/sidebar/PageFooterPanel.cxx | 3
sw/source/uibase/sidebar/PageFooterPanel.hxx | 1
sw/source/uibase/sidebar/PageFormatPanel.cxx | 3
sw/source/uibase/sidebar/PageFormatPanel.hxx | 1
sw/source/uibase/sidebar/PageHeaderPanel.cxx | 3
sw/source/uibase/sidebar/PageHeaderPanel.hxx | 1
sw/source/uibase/sidebar/PageOrientationControl.cxx | 2
sw/source/uibase/sidebar/PageOrientationControl.hxx | 2
sw/source/uibase/sidebar/PageStylesPanel.cxx | 3
sw/source/uibase/sidebar/PageStylesPanel.hxx | 1
sw/source/uibase/sidebar/StylePresetsPanel.cxx | 4
sw/source/uibase/sidebar/StylePresetsPanel.hxx | 1
sw/source/uibase/sidebar/ThemePanel.cxx | 5
sw/source/uibase/sidebar/ThemePanel.hxx | 1
sw/source/uibase/table/chartins.cxx | 4
sw/source/uibase/uiview/pview.cxx | 3
sw/source/uibase/uiview/srcview.cxx | 5
sw/source/uibase/uiview/uivwimp.cxx | 2
sw/source/uibase/uiview/view0.cxx | 2
sw/source/uibase/uiview/view1.cxx | 1
sw/source/uibase/uiview/view2.cxx | 5
sw/source/uibase/uiview/viewling.cxx | 1
sw/source/uibase/uiview/viewprt.cxx | 1
sw/source/uibase/uno/dlelstnr.cxx | 2
sw/source/uibase/uno/unoatxt.cxx | 3
sw/source/uibase/uno/unomailmerge.cxx | 6
sw/source/uibase/uno/unomod.cxx | 1
sw/source/uibase/utlui/content.cxx | 4
sw/source/uibase/utlui/glbltree.cxx | 72
sw/source/uibase/utlui/navipi.cxx | 2
sw/source/uibase/utlui/numfmtlb.cxx | 1
sw/source/uibase/web/wformsh.cxx | 2
sw/source/uibase/web/wfrmsh.cxx | 2
sw/source/uibase/web/wgrfsh.cxx | 2
sw/source/uibase/web/wlistsh.cxx | 2
sw/source/uibase/web/wolesh.cxx | 2
sw/source/uibase/web/wtabsh.cxx | 2
sw/source/uibase/web/wtextsh.cxx | 2
sw/source/uibase/web/wview.cxx | 2
sw/source/uibase/wrtsh/wrtsh1.cxx | 1
toolkit/source/awt/animatedimagespeer.cxx | 2
toolkit/source/controls/controlmodelcontainerbase.cxx | 2
tools/inc/poly.h | 7
tools/qa/cppunit/test_urlobj.cxx | 56
tools/source/fsys/urlobj.cxx | 112
tools/source/generic/poly.cxx | 76
ucb/source/core/FileAccess.cxx | 46
ucb/source/ucp/cmis/cmis_content.cxx | 8
ucb/source/ucp/cmis/cmis_url.cxx | 10
unotools/source/config/lingucfg.cxx | 4
unotools/source/config/options.cxx | 10
unotools/source/config/pathoptions.cxx | 16
unotools/source/config/syslocaleoptions.cxx | 32
unotools/source/config/useroptions.cxx | 2
unotools/source/misc/syslocale.cxx | 8
unotools/source/ucbhelper/ucbhelper.cxx | 14
uui/source/fltdlg.cxx | 2
uui/source/passworddlg.cxx | 2
vbahelper/source/vbahelper/vbadocumentbase.cxx | 2
vcl/CustomTarget_afm_hash.mk | 20
vcl/Library_vcl.mk | 23
vcl/Module_vcl.mk | 1
vcl/headless/svpbmp.cxx | 203 -
vcl/headless/svpframe.cxx | 4
vcl/headless/svpgdi.cxx | 335 +-
vcl/headless/svptext.cxx | 9
vcl/headless/svpvd.cxx | 21
vcl/inc/BitmapProcessor.hxx | 6
vcl/inc/PhysicalFontCollection.hxx | 2
vcl/inc/PhysicalFontFace.hxx | 1
vcl/inc/PhysicalFontFamily.hxx | 4
vcl/inc/fontattributes.hxx | 12
vcl/inc/graphite_features.hxx | 65
vcl/inc/graphite_layout.hxx | 159 -
vcl/inc/graphite_serverfont.hxx | 110
vcl/inc/graphite_static.hxx | 21
vcl/inc/headless/svpgdi.hxx | 18
vcl/inc/headless/svpvd.hxx | 1
vcl/inc/impfont.hxx | 16
vcl/inc/impfontmetric.hxx | 6
vcl/inc/impfontmetricdata.hxx | 9
vcl/inc/listbox.hxx | 2
vcl/inc/openglgdiimpl.hxx | 8
vcl/inc/pch/precompiled_vcl.hxx | 1
vcl/inc/quartz/salgdi.h | 15
vcl/inc/salgdi.hxx | 19
vcl/inc/salgdiimpl.hxx | 9
vcl/inc/sallayout.hxx | 2
vcl/inc/svdata.hxx | 2
vcl/inc/textlineinfo.hxx | 11
vcl/inc/textrender.hxx | 2
vcl/inc/unx/cairotextrender.hxx | 4
vcl/inc/unx/fontmanager.hxx | 177 -
vcl/inc/unx/freetype_glyphcache.hxx | 12
vcl/inc/unx/genpspgraphics.h | 15
vcl/inc/unx/glyphcache.hxx | 56
vcl/inc/unx/gtk/gtkframe.hxx | 2
vcl/inc/unx/printergfx.hxx | 34
vcl/inc/unx/salgdi.h | 13
vcl/inc/win/salgdi.h | 44
vcl/inc/win/winlayout.hxx | 59
vcl/opengl/gdiimpl.cxx | 12
vcl/qa/cppunit/font.cxx | 50
vcl/qa/cppunit/fontmetric.cxx | 38
vcl/qa/cppunit/lifecycle.cxx | 2
vcl/quartz/CTRunData.cxx | 94
vcl/quartz/CTRunData.hxx | 42
vcl/quartz/ctfonts.cxx | 28
vcl/quartz/ctlayout.cxx | 787 -----
vcl/quartz/salgdi.cxx | 30
vcl/quartz/salgdicommon.cxx | 8
vcl/source/app/settings.cxx | 6
vcl/source/app/svdata.cxx | 2
vcl/source/bitmap/BitmapProcessor.cxx | 3
vcl/source/bitmap/CommandImageResolver.cxx | 2
vcl/source/components/dtranscomp.cxx | 20
vcl/source/components/fontident.cxx | 5
vcl/source/control/combobox.cxx | 4
vcl/source/control/ctrl.cxx | 4
vcl/source/control/field.cxx | 24
vcl/source/control/field2.cxx | 24
vcl/source/control/imp_listbox.cxx | 4
vcl/source/control/longcurr.cxx | 8
vcl/source/control/notebookbar.cxx | 1
vcl/source/control/spinfld.cxx | 4
vcl/source/control/tabctrl.cxx | 4
vcl/source/edit/textview.cxx | 5
vcl/source/edit/vclmedit.cxx | 4
vcl/source/filter/graphicfilter.cxx | 9
vcl/source/filter/graphicfilter2.cxx | 2
vcl/source/filter/igif/decode.cxx | 20
vcl/source/filter/igif/decode.hxx | 8
vcl/source/filter/sgvmain.cxx | 4
vcl/source/filter/wmf/emfwr.cxx | 4
vcl/source/filter/wmf/winmtf.cxx | 6
vcl/source/font/PhysicalFontCollection.cxx | 7
vcl/source/font/PhysicalFontFace.cxx | 40
vcl/source/font/PhysicalFontFamily.cxx | 13
vcl/source/font/font.cxx | 17
vcl/source/font/fontattributes.cxx | 12
vcl/source/font/fontcharmap.cxx | 11
vcl/source/font/fontmetric.cxx | 40
vcl/source/gdi/CommonSalLayout.cxx | 2
vcl/source/gdi/impgraph.cxx | 10
vcl/source/gdi/pdfwriter_impl.cxx | 274 -
vcl/source/gdi/pdfwriter_impl2.cxx | 4
vcl/source/gdi/pngread.cxx | 84
vcl/source/gdi/salgdilayout.cxx | 8
vcl/source/gdi/sallayout.cxx | 1
vcl/source/gdi/svmconverter.cxx | 2
vcl/source/gdi/virdev.cxx | 2
vcl/source/glyphs/graphite_features.cxx | 265 -
vcl/source/glyphs/graphite_layout.cxx | 1143 -------
vcl/source/helper/commandinfoprovider.cxx | 4
vcl/source/image/Image.cxx | 2
vcl/source/image/ImageArrayData.cxx | 2
vcl/source/image/ImplImageTree.cxx | 7
vcl/source/outdev/curvedshapes.cxx | 8
vcl/source/outdev/font.cxx | 23
vcl/source/outdev/line.cxx | 4
vcl/source/outdev/polygon.cxx | 12
vcl/source/outdev/polyline.cxx | 8
vcl/source/outdev/rect.cxx | 4
vcl/source/outdev/text.cxx | 98
vcl/source/uitest/uno/uitest_uno.cxx | 5
vcl/source/window/dialog.cxx | 4
vcl/source/window/dockwin.cxx | 6
vcl/source/window/event.cxx | 2
vcl/source/window/floatwin.cxx | 4
vcl/source/window/layout.cxx | 4
vcl/source/window/mouse.cxx | 6
vcl/source/window/syswin.cxx | 4
vcl/source/window/toolbox.cxx | 10
vcl/source/window/window.cxx | 4
vcl/source/window/window2.cxx | 16
vcl/unx/generic/app/wmadaptor.cxx | 16
vcl/unx/generic/dtrans/config.cxx | 9
vcl/unx/generic/fontmanager/adobe_encoding_table.hxx | 1078 -------
vcl/unx/generic/fontmanager/afm_keyword_list | 62
vcl/unx/generic/fontmanager/fontcache.cxx | 161 -
vcl/unx/generic/fontmanager/fontconfig.cxx | 24
vcl/unx/generic/fontmanager/fontmanager.cxx | 1028 -------
vcl/unx/generic/fontmanager/helper.cxx | 2
vcl/unx/generic/fontmanager/parseAFM.cxx | 1465 ----------
vcl/unx/generic/fontmanager/parseAFM.hxx | 323 --
vcl/unx/generic/gdi/cairotextrender.cxx | 97
vcl/unx/generic/gdi/font.cxx | 9
vcl/unx/generic/gdi/gdiimpl.cxx | 8
vcl/unx/generic/gdi/gdiimpl.hxx | 8
vcl/unx/generic/gdi/salbmp.cxx | 165 -
vcl/unx/generic/gdi/salgdi.cxx | 8
vcl/unx/generic/glyphs/freetype_glyphcache.cxx | 364 --
vcl/unx/generic/glyphs/gcach_layout.cxx | 621 ----
vcl/unx/generic/glyphs/glyphcache.cxx | 6
vcl/unx/generic/glyphs/graphite_serverfont.cxx | 134
vcl/unx/generic/print/bitmap_gfx.cxx | 15
vcl/unx/generic/print/common_gfx.cxx | 22
vcl/unx/generic/print/genprnpsp.cxx | 17
vcl/unx/generic/print/genpspgraphics.cxx | 391 --
vcl/unx/generic/print/glyphset.cxx | 456 ---
vcl/unx/generic/print/glyphset.hxx | 32
vcl/unx/generic/print/text_gfx.cxx | 482 ---
vcl/unx/generic/printer/ppdparser.cxx | 10
vcl/unx/generic/printer/printerinfomanager.cxx | 4
vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx | 4
vcl/unx/gtk3/gtk3gtkframe.cxx | 67
vcl/win/gdi/gdiimpl.cxx | 36
vcl/win/gdi/gdiimpl.hxx | 8
vcl/win/gdi/salfont.cxx | 356 --
vcl/win/gdi/salgdi.cxx | 8
vcl/win/gdi/winlayout.cxx | 178 -
xmloff/source/core/xmlexp.cxx | 4
xmloff/source/core/xmlimp.cxx | 6
xmloff/source/draw/eventimp.cxx | 2
892 files changed, 4134 insertions(+), 14344 deletions(-)
New commits:
commit 9afbb77b635dc61bd75541adc1eb05f7bceed7cd
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Thu Nov 30 18:59:30 2017 +0000
sal: add pre-initialization scheme for allocations.
This saves several megabytes of dirtied pages for each LOK
client of Online.
Change-Id: I425a2e7896879f0a64d71fcc0655e9e1fa1256aa
Reviewed-on: https://gerrit.libreoffice.org/46592
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 0dc4b38dab6e..dd843e83e68d 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -3589,6 +3589,9 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
if (bInitialized)
return 1;
+ if (eStage == PRE_INIT)
+ rtl_alloc_preInit(sal_True);
+
if (eStage != SECOND_INIT)
comphelper::LibreOfficeKit::setActive();
@@ -3729,6 +3732,10 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
fprintf(stderr, "Bootstrapping exception '%s'\n",
OUStringToOString(exception.Message, RTL_TEXTENCODING_UTF8).getStr());
}
+
+ if (eStage == PRE_INIT)
+ rtl_alloc_preInit(sal_False);
+
return bInitialized;
}
diff --git a/include/rtl/alloc.h b/include/rtl/alloc.h
index ccb8d4183b20..4d8ff69d45a8 100644
--- a/include/rtl/alloc.h
+++ b/include/rtl/alloc.h
@@ -294,6 +294,23 @@ SAL_DLLPUBLIC void SAL_CALL rtl_cache_free (
) SAL_THROW_EXTERN_C();
+#ifdef LIBO_INTERNAL_ONLY
+
+/** rtl_alloc_preInit
+ *
+ * This function, is called at the beginning and again
+ * at the end of LibreOfficeKit pre-initialization to enable
+ * various optimizations. It is almost certainly not the method
+ * that you want.
+ *
+ * @since LibreOffice 6.1
+ */
+SAL_DLLPUBLIC void SAL_CALL rtl_alloc_preInit (
+ sal_Bool start
+) SAL_THROW_EXTERN_C();
+
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/sal/qa/rtl/alloc/rtl_alloc.cxx b/sal/qa/rtl/alloc/rtl_alloc.cxx
index ed0a9def1dbe..9ea21456ca94 100644
--- a/sal/qa/rtl/alloc/rtl_alloc.cxx
+++ b/sal/qa/rtl/alloc/rtl_alloc.cxx
@@ -18,11 +18,14 @@
*/
#include <rtl/alloc.h>
+#include <rtl/ustrbuf.hxx>
#include <sal/types.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/plugin/TestPlugIn.h>
+#define SAL_STRING_STATIC_FLAG 0x40000000
+
#include <memory.h>
namespace rtl_alloc
@@ -132,8 +135,75 @@ public:
CPPUNIT_TEST_SUITE_END();
};
+class TestPreinit : public CppUnit::TestFixture
+{
+public:
+ TestPreinit()
+ {
+ }
+
+ // initialise your test code values here.
+ void setUp() override
+ {
+ }
+
+ void tearDown() override
+ {
+ }
+
+ // insert your test code here.
+
+ void test()
+ {
+ const char *sample = "Hello World";
+ std::vector<OUString> aStrings;
+
+ rtl_alloc_preInit(true);
+
+ OUString aFoo("foo");
+
+ // fill some cache bits
+ for (int iter = 0; iter < 4; iter++)
+ {
+ for (int i = 1; i < 4096; i += 8)
+ {
+ OUStringBuffer aBuf(i);
+ aBuf.appendAscii(sample, (i/8) % (sizeof(sample)-1));
+ OUString aStr = aBuf.makeStringAndClear();
+ aStrings.push_back(aStr);
+ }
+ // free some pieces to make holes
+ for (size_t i = iter; i < aStrings.size(); i += 17)
+ aStrings[i] = aFoo;
+ }
+
+ for (size_t i = 0; i < aStrings.size(); ++i)
+ {
+ CPPUNIT_ASSERT_MESSAGE( "not static before.", !(aStrings[i].pData->refCount & SAL_STRING_STATIC_FLAG) );
+ }
+
+ // should static-ize all the strings.
+ rtl_alloc_preInit(false);
+
+ for (size_t i = 0; i < aStrings.size(); ++i)
+ CPPUNIT_ASSERT_MESSAGE( "static after.", (aStrings[i].pData->refCount & SAL_STRING_STATIC_FLAG) );
+ }
+
+ void test2()
+ {
+ // should never happen but lets try it again.
+ test();
+ }
+
+ CPPUNIT_TEST_SUITE(TestPreinit);
+ CPPUNIT_TEST(test);
+ CPPUNIT_TEST(test2);
+ CPPUNIT_TEST_SUITE_END();
+};
+
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::Memory);
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::TestZeroMemory);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_alloc::TestPreinit);
} // namespace rtl_alloc
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/rtl/alloc_arena.cxx b/sal/rtl/alloc_arena.cxx
index 234a3d5c6755..6e0a55dbb886 100644
--- a/sal/rtl/alloc_arena.cxx
+++ b/sal/rtl/alloc_arena.cxx
@@ -17,6 +17,8 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include "sal/config.h"
+
#include "alloc_arena.hxx"
#include "alloc_impl.hxx"
@@ -728,6 +730,35 @@ rtl_arena_activate (
return arena;
}
+extern "C" {
+void rtl_arena_foreach(rtl_arena_type *arena, ArenaForeachFn foreachFn, void *user_data) SAL_THROW_EXTERN_C()
+{
+ // quantum caches
+ if ((arena->m_qcache_max > 0) && (arena->m_qcache_ptr != nullptr))
+ {
+ int i, n = (arena->m_qcache_max >> arena->m_quantum_shift);
+ for (i = 1; i <= n; i++)
+ {
+ if (arena->m_qcache_ptr[i - 1] != nullptr)
+ rtl_cache_foreach (arena->m_qcache_ptr[i - 1],
+ foreachFn, user_data);
+ }
+ }
+
+ /* used segments */
+ for (int i = 0, n = arena->m_hash_size; i < n; i++)
+ {
+ for (rtl_arena_segment_type *segment = arena->m_hash_table[i];
+ segment != nullptr; segment = segment->m_fnext)
+ {
+ foreachFn(reinterpret_cast<void *>(segment->m_addr),
+ segment->m_size, user_data);
+ }
+ }
+}
+} // extern "C"
+
+
/** rtl_arena_deactivate()
*/
void
diff --git a/sal/rtl/alloc_arena.hxx b/sal/rtl/alloc_arena.hxx
index da2ebeacc683..85a0b4b8c0b3 100644
--- a/sal/rtl/alloc_arena.hxx
+++ b/sal/rtl/alloc_arena.hxx
@@ -112,6 +112,14 @@ struct rtl_arena_st
*/
extern rtl_arena_type * gp_default_arena;
+extern "C" {
+
+typedef void (*ArenaForeachFn)(void *addr, sal_Size size, void *user_data);
+void SAL_CALL rtl_arena_foreach(rtl_arena_type *arena, ArenaForeachFn fn, void *user_data) SAL_THROW_EXTERN_C();
+void SAL_CALL rtl_cache_foreach(rtl_cache_type *arena, ArenaForeachFn foreachFn, void *user_data) SAL_THROW_EXTERN_C();
+
+}
+
#endif // INCLUDED_SAL_RTL_ALLOC_ARENA_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/alloc_cache.cxx b/sal/rtl/alloc_cache.cxx
index d91908879c70..e6c7ddad24c7 100644
--- a/sal/rtl/alloc_cache.cxx
+++ b/sal/rtl/alloc_cache.cxx
@@ -1290,6 +1290,26 @@ SAL_CALL rtl_cache_free (
}
}
+// FIXME: foreachFn called for free'd blocks and will break free-chains.
+extern "C" {
+void SAL_CALL rtl_cache_foreach(rtl_cache_type *cache, ArenaForeachFn foreachFn, void *user_data) SAL_THROW_EXTERN_C()
+{
+ for (rtl_cache_slab_type *cur = &(cache->m_used_head);
+ cur && cur->m_slab_next != &(cache->m_used_head);
+ cur = cur->m_slab_next)
+ {
+ for (char *item = reinterpret_cast<char *>(cur->m_data);
+ item < reinterpret_cast<char *>(cur->m_bp);
+ item += cache->m_type_size)
+ {
+ foreachFn(item, cache->m_type_size, user_data);
+ }
+ }
+
+ RTL_MEMORY_LOCK_RELEASE(&(cache->m_slab_lock));
+}
+} // extern "C"
+
#if defined(SAL_UNX)
void SAL_CALL
diff --git a/sal/rtl/alloc_global.cxx b/sal/rtl/alloc_global.cxx
index 703a42b0902a..3f0ad42d928c 100644
--- a/sal/rtl/alloc_global.cxx
+++ b/sal/rtl/alloc_global.cxx
@@ -381,6 +381,8 @@ void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
}
}
+/* ================================================================= */
+
void* SAL_CALL rtl_allocateAlignedMemory (sal_Size Alignment, sal_Size Bytes) SAL_THROW_EXTERN_C()
{
return osl_aligned_alloc(Alignment, Bytes);
@@ -391,6 +393,4 @@ void SAL_CALL rtl_freeAlignedMemory (void* Ptr) SAL_THROW_EXTERN_C()
osl_aligned_free(Ptr);
}
-/* ================================================================= */
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/strimp.cxx b/sal/rtl/strimp.cxx
index db554644f6a9..39b08a4ff2c3 100644
--- a/sal/rtl/strimp.cxx
+++ b/sal/rtl/strimp.cxx
@@ -16,8 +16,15 @@
* 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 <assert.h>
+#include <rtl/alloc.h>
+#include <rtl/ustring.h>
#include "strimp.hxx"
+#include "alloc_impl.hxx"
+#include "alloc_arena.hxx"
sal_Int16 rtl_ImplGetDigit( sal_Unicode ch, sal_Int16 nRadix )
{
@@ -49,4 +56,65 @@ bool rtl_ImplIsWhitespace( sal_Unicode c )
return false;
}
+/*
+ * TODO: add a slower, more awful, but more space efficient
+ * custom allocator for the pre-init phase. Existing slab
+ * allocator's minimum alloc size is 24bytes, and by default
+ * is 32bits.
+ */
+static rtl_arena_type *pre_arena = nullptr;
+
+rtl_allocateStringFn rtl_allocateString = rtl_allocateMemory;
+rtl_freeStringFn rtl_freeString = rtl_freeMemory;
+
+extern "C" {
+static void *pre_allocateStringFn(sal_Size n)
+{
+ sal_Size size = RTL_MEMORY_ALIGN(n + 4, 4);
+ char *addr = static_cast<char*>(rtl_arena_alloc(pre_arena, &size));
+ assert(size>= 12);
+ reinterpret_cast<sal_uInt32*>(addr)[0] = size - 12;
+ return addr + 4;
+}
+
+static void pre_freeStringFn(void *data)
+{
+ char *addr = static_cast<char*>(data) - 4;
+ sal_Size size = reinterpret_cast<sal_uInt32*>(addr)[0] + 12;
+
+ rtl_arena_free(pre_arena, addr, size);
+}
+
+static void mark_static(void *addr, sal_Size /* size */, void *)
+{
+ char *inner = static_cast<char*>(addr) + 4;
+ rtl_uString *str = reinterpret_cast<rtl_uString *>(inner);
+ str->refCount |= SAL_STRING_STATIC_FLAG;
+}
+} // extern "C"
+
+void SAL_CALL rtl_alloc_preInit (sal_Bool start) SAL_THROW_EXTERN_C()
+{
+ if (getenv("SAL_DISABLE_PREINIT"))
+ return;
+
+ if (start)
+ {
+ rtl_allocateString = pre_allocateStringFn;
+ rtl_freeString = pre_freeStringFn;
+ pre_arena = rtl_arena_create("pre-init strings", 4, 0,
+ nullptr, rtl_arena_alloc,
+ rtl_arena_free, 0);
+ }
+ else // back to normal
+ {
+ rtl_arena_foreach(pre_arena, mark_static, nullptr);
+ rtl_allocateString = rtl_allocateMemory;
+ rtl_freeString = rtl_freeMemory;
+
+ // TODO: also re-intialize main allocator as well.
+ }
+}
+
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/rtl/strimp.hxx b/sal/rtl/strimp.hxx
index 5583a82f2249..3089a516ad97 100644
--- a/sal/rtl/strimp.hxx
+++ b/sal/rtl/strimp.hxx
@@ -49,6 +49,12 @@ sal_Int16 rtl_ImplGetDigit( sal_Unicode ch, sal_Int16 nRadix );
bool rtl_ImplIsWhitespace( sal_Unicode c );
+typedef void *(*rtl_allocateStringFn)(sal_Size size);
+typedef void (*rtl_freeStringFn)(void *);
+
+extern rtl_allocateStringFn rtl_allocateString;
+extern rtl_freeStringFn rtl_freeString;
+
// string lifetime instrumentation / diagnostics
#if USE_SDT_PROBES
# define PROBE_SNAME(n,b) n ## _ ## b
diff --git a/sal/rtl/string.cxx b/sal/rtl/string.cxx
index 863d6b870b3e..3678865c07f6 100644
--- a/sal/rtl/string.cxx
+++ b/sal/rtl/string.cxx
@@ -274,7 +274,7 @@ bool SAL_CALL rtl_impl_convertUStringToString(rtl_String ** pTarget,
&nInfo, &nSrcChars );
if (bCheckErrors && (nInfo & RTL_UNICODETOTEXT_INFO_ERROR) != 0)
{
- rtl_freeMemory(pTemp);
+ rtl_freeString(pTemp);
rtl_destroyUnicodeToTextConverter(hConverter);
return false;
}
@@ -283,7 +283,7 @@ bool SAL_CALL rtl_impl_convertUStringToString(rtl_String ** pTarget,
break;
/* Buffer not big enough, try again with enough space */
- rtl_freeMemory( pTemp );
+ rtl_freeString( pTemp );
/* Try with the max. count of characters with
additional overhead for replacing functionality */
@@ -298,7 +298,7 @@ bool SAL_CALL rtl_impl_convertUStringToString(rtl_String ** pTarget,
rtl_String* pTemp2 = rtl_string_ImplAlloc( nDestBytes );
OSL_ASSERT(pTemp2 != nullptr);
rtl_str_ImplCopy( pTemp2->buffer, pTemp->buffer, nDestBytes );
- rtl_freeMemory( pTemp );
+ rtl_freeString( pTemp );
pTemp = pTemp2;
}
else
diff --git a/sal/rtl/strtmpl.cxx b/sal/rtl/strtmpl.cxx
index 6748209fb50f..2bc1a71d5372 100644
--- a/sal/rtl/strtmpl.cxx
+++ b/sal/rtl/strtmpl.cxx
@@ -1149,7 +1149,7 @@ static IMPL_RTL_STRINGDATA* IMPL_RTL_STRINGNAME( ImplAlloc )( sal_Int32 nLen )
= (sal::static_int_cast< sal_uInt32 >(nLen)
<= ((SAL_MAX_UINT32 - sizeof (IMPL_RTL_STRINGDATA))
/ sizeof (IMPL_RTL_STRCODE)))
- ? static_cast<IMPL_RTL_STRINGDATA *>(rtl_allocateMemory(
+ ? static_cast<IMPL_RTL_STRINGDATA *>(rtl_allocateString(
sizeof (IMPL_RTL_STRINGDATA) + nLen * sizeof (IMPL_RTL_STRCODE)))
: nullptr;
if (pData != nullptr) {
@@ -1230,7 +1230,7 @@ void SAL_CALL IMPL_RTL_STRINGNAME( release )( IMPL_RTL_STRINGDATA* pThis )
if ( !osl_atomic_decrement( &(pThis->refCount) ) )
{
RTL_LOG_STRING_DELETE( pThis );
- rtl_freeMemory( pThis );
+ rtl_freeString( pThis );
}
}
diff --git a/sal/rtl/ustring.cxx b/sal/rtl/ustring.cxx
index 3d157270ef3c..a518bffc2f58 100644
--- a/sal/rtl/ustring.cxx
+++ b/sal/rtl/ustring.cxx
@@ -819,7 +819,7 @@ retry:
code here. Could be the case for apple encodings */
while ( nInfo & RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL )
{
- rtl_freeMemory( pTemp );
+ rtl_freeString( pTemp );
nNewLen += 8;
pTemp = rtl_uString_ImplAlloc( nNewLen );
if (pTemp == nullptr) {
@@ -848,7 +848,7 @@ retry:
if (pTemp2 != nullptr)
{
rtl_str_ImplCopy(pTemp2->buffer, pTemp->buffer, nDestChars);
- rtl_freeMemory(pTemp);
+ rtl_freeString(pTemp);
pTemp = pTemp2;
}
else
@@ -932,7 +932,7 @@ static void rtl_ustring_intern_internal( rtl_uString ** newStr,
if( can_return && *newStr != str )
{ /* we dupped, then found a match */
- rtl_freeMemory( str );
+ rtl_freeString( str );
}
}
@@ -1083,7 +1083,7 @@ internRelease (rtl_uString *pThis)
osl_releaseMutex( pPoolMutex );
}
if (pFree)
- rtl_freeMemory (pFree);
+ rtl_freeString (pFree);
}
sal_uInt32 SAL_CALL rtl_uString_iterateCodePoints(
diff --git a/sal/util/sal.map b/sal/util/sal.map
index c8f3a7426964..bbc0e926846c 100644
--- a/sal/util/sal.map
+++ b/sal/util/sal.map
@@ -728,6 +728,10 @@ PRIVATE_1.2 { # LibreOffice 3.5
sal_detail_logFormat;
} PRIVATE_1.1;
+PRIVATE_1.3 { # LibreOffice 6.1
+ rtl_alloc_preInit;
+} PRIVATE_1.2;
+
PRIVATE_textenc.1 { # LibreOffice 3.6
global:
_ZN3sal6detail7textenc20convertCharToUnicode*;
commit 53e79c6eab3566b4c3476a5467370ad103bb6e5e
Author: abdulwd <abdulwd97 at gmail.com>
Date: Tue Dec 27 12:22:43 2016 +0530
tdf#97228 Move include file include/vcl/BitmapProcessor.hxx to vcl/inc/
Adapt users, all in vcl, accordingly.
Change-Id: I4531840091da73fa8fc29175407fa8a737deac18
Reviewed-on: https://gerrit.libreoffice.org/32442
Reviewed-by: Tor Lillqvist <tml at collabora.com>
Tested-by: Tor Lillqvist <tml at collabora.com>
(cherry picked from commit e61fe745d12055ee3915a957714772eeb46fdcd3)
(cherry picked from commit 85a40facb074366cd06b226077f83e713d0c421c)
diff --git a/include/vcl/BitmapProcessor.hxx b/vcl/inc/BitmapProcessor.hxx
similarity index 83%
rename from include/vcl/BitmapProcessor.hxx
rename to vcl/inc/BitmapProcessor.hxx
index 0f0f13869d3f..8c07188ba19b 100644
--- a/include/vcl/BitmapProcessor.hxx
+++ b/vcl/inc/BitmapProcessor.hxx
@@ -7,8 +7,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-#ifndef INCLUDED_VCL_BITMAP_PROCESSOR_HXX
-#define INCLUDED_VCL_BITMAP_PROCESSOR_HXX
+#ifndef VCL_INC_BITMAP_PROCESSOR_HXX
+#define VCL_INC_BITMAP_PROCESSOR_HXX
#include <vcl/bitmapex.hxx>
@@ -20,6 +20,6 @@ public:
static void colorizeImage(BitmapEx& rBitmapEx, Color aColor);
};
-#endif // INCLUDED_VCL_BITMAP_PROCESSOR_HXX
+#endif // VCL_INC_BITMAP_PROCESSOR_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/bitmap/BitmapProcessor.cxx b/vcl/source/bitmap/BitmapProcessor.cxx
index b3cdf86783d0..371d71523de8 100644
--- a/vcl/source/bitmap/BitmapProcessor.cxx
+++ b/vcl/source/bitmap/BitmapProcessor.cxx
@@ -8,10 +8,11 @@
*
*/
-#include <vcl/BitmapProcessor.hxx>
#include <vcl/bitmapaccess.hxx>
#include <basegfx/color/bcolortools.hxx>
+#include "BitmapProcessor.hxx"
+
BitmapEx BitmapProcessor::createLightImage(const BitmapEx& rBitmapEx)
{
const Size aSize(rBitmapEx.GetSizePixel());
diff --git a/vcl/source/image/Image.cxx b/vcl/source/image/Image.cxx
index 51dcca4ed94e..e4dde10e4d5c 100644
--- a/vcl/source/image/Image.cxx
+++ b/vcl/source/image/Image.cxx
@@ -34,7 +34,7 @@
#include <sal/types.h>
#include <image.h>
-#include <vcl/BitmapProcessor.hxx>
+#include "BitmapProcessor.hxx"
#if OSL_DEBUG_LEVEL > 0
#include <rtl/strbuf.hxx>
diff --git a/vcl/source/image/ImageArrayData.cxx b/vcl/source/image/ImageArrayData.cxx
index 543543804a70..e1854d2aa55a 100644
--- a/vcl/source/image/ImageArrayData.cxx
+++ b/vcl/source/image/ImageArrayData.cxx
@@ -35,7 +35,7 @@
#include <rtl/strbuf.hxx>
#endif
-#include <vcl/BitmapProcessor.hxx>
+#include "BitmapProcessor.hxx"
ImageAryData::ImageAryData( const ImageAryData& rData ) :
maName( rData.maName ),
diff --git a/vcl/source/image/ImplImageTree.cxx b/vcl/source/image/ImplImageTree.cxx
index 8e34ff6cb56b..a8127a85a0a8 100644
--- a/vcl/source/image/ImplImageTree.cxx
+++ b/vcl/source/image/ImplImageTree.cxx
@@ -45,10 +45,11 @@
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
-#include <vcl/BitmapProcessor.hxx>
#include <vcl/BitmapTools.hxx>
#include <vcl/pngwrite.hxx>
+#include "BitmapProcessor.hxx"
+
bool ImageRequestParameters::convertToDarkTheme()
{
static bool bIconsForDarkTheme = !!getenv("VCL_ICONS_FOR_DARK_THEME");
commit a70e47b273cee294e5eece3f47a8f37094bdc441
Author: Eike Rathke <erack at redhat.com>
Date: Tue Jun 20 00:21:57 2017 +0200
Remove unused ScColumn::mbDirtyGroups
Change-Id: If8ed724ccec136653db5fcf43f9e74a82826add7
(cherry picked from commit 96a307be540fd609bed5b1a35dfe27d7e6652f21)
(cherry picked from commit 5b6e1f435e1e61a07dff55873c220290aab2a4c8)
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index f0a30d82e568..569f1ec06e5c 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -142,7 +142,6 @@ class ScColumn
ScAttrArray* pAttrArray;
ScDocument* pDocument;
- bool mbDirtyGroups; /// formula groups are dirty.
size_t mnBlkCountFormula;
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index d868333c8b7a..350b5b19a67f 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -92,7 +92,6 @@ ScColumn::ScColumn() :
nTab( 0 ),
pAttrArray( nullptr ),
pDocument( nullptr ),
- mbDirtyGroups(true),
mnBlkCountFormula(0)
{
maCells.resize(MAXROWCOUNT);
@@ -1906,8 +1905,6 @@ void ScColumn::SwapCol(ScColumn& rCol)
pAttrArray->SetCol(nCol);
rCol.pAttrArray->SetCol(rCol.nCol);
- std::swap(mbDirtyGroups, rCol.mbDirtyGroups);
-
// Reset column positions in formula cells.
resetColumnPosition(maCells, nCol);
resetColumnPosition(rCol.maCells, rCol.nCol);
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 73ebc5ab6dce..0e68d17ca32e 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -1504,8 +1504,6 @@ void ScColumn::CellStorageModified()
{
// TODO: Update column's "last updated" timestamp here.
- mbDirtyGroups = true;
-
#if DEBUG_COLUMN_STORAGE
if (maCells.size() != MAXROWCOUNT)
{
commit a4352bd95e7a4e894df552336554909b5ac25a83
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Tue Nov 29 08:34:29 2016 +0200
Drop a bunch of font metrics flags
These flags mean nothing these days, there are either always true or
always false, since we no longer support bitmap or Type 1 fonts.
Change-Id: Ie14ca480225a6346d868a44e58e7666c3a06931d
Reviewed-on: https://gerrit.libreoffice.org/31346
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
(cherry picked from commit 74314b11a4b5a2887bd1ff19bdcfb3572b09240c)
(cherry picked from commit 40b1cadc63523a3b3269838748f47d5ac251877e)
diff --git a/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx b/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
index a4af2d83ff33..bebf04e8db03 100644
--- a/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
+++ b/chart2/source/controller/drawinglayer/ViewElementListProvider.cxx
@@ -192,8 +192,7 @@ FontList* ViewElementListProvider::getFontList() const
OutputDevice* pRefDev = m_pDrawModelWrapper ? m_pDrawModelWrapper->getReferenceDevice() : nullptr;
OutputDevice* pDefaultOut = Application::GetDefaultDevice();
m_pFontList = new FontList( pRefDev ? pRefDev : pDefaultOut
- , pRefDev ? pDefaultOut : nullptr
- , false );
+ , pRefDev ? pDefaultOut : nullptr);
}
return m_pFontList;
}
diff --git a/include/svtools/ctrltool.hxx b/include/svtools/ctrltool.hxx
index 7e2ec66fae84..48196a0169ea 100644
--- a/include/svtools/ctrltool.hxx
+++ b/include/svtools/ctrltool.hxx
@@ -152,13 +152,11 @@ private:
SVT_DLLPRIVATE ImplFontListNameInfo* ImplFind( const OUString& rSearchName, sal_uLong* pIndex ) const;
SVT_DLLPRIVATE ImplFontListNameInfo* ImplFindByName( const OUString& rStr ) const;
- SVT_DLLPRIVATE void ImplInsertFonts( OutputDevice* pDev, bool bAll,
- bool bInsertData );
+ SVT_DLLPRIVATE void ImplInsertFonts(OutputDevice* pDev, bool bInsertData);
public:
FontList( OutputDevice* pDevice,
- OutputDevice* pDevice2 = nullptr,
- bool bAll = true );
+ OutputDevice* pDevice2 = nullptr);
~FontList();
FontList* Clone() const;
diff --git a/include/tools/fontenum.hxx b/include/tools/fontenum.hxx
index ce5736b192d1..eeb35be1985c 100644
--- a/include/tools/fontenum.hxx
+++ b/include/tools/fontenum.hxx
@@ -75,9 +75,6 @@ namespace o3tl
}
-enum FontType { TYPE_DONTKNOW, TYPE_RASTER, TYPE_VECTOR, TYPE_SCALABLE,
- FontType_FORCE_EQUAL_SIZE=SAL_MAX_ENUM };
-
enum FontEmbeddedBitmap { EMBEDDEDBITMAP_DONTKNOW, EMBEDDEDBITMAP_FALSE, EMBEDDEDBITMAP_TRUE };
enum FontAntiAlias { ANTIALIAS_DONTKNOW, ANTIALIAS_FALSE, ANTIALIAS_TRUE };
diff --git a/include/vcl/font.hxx b/include/vcl/font.hxx
index 9e0a637c85c1..2dc0a5b326cd 100644
--- a/include/vcl/font.hxx
+++ b/include/vcl/font.hxx
@@ -87,21 +87,11 @@ public:
// Device dependent functions
int GetQuality() const;
- bool IsBuiltInFont() const;
- bool CanEmbed() const;
- bool CanSubset() const;
- bool CanRotate() const;
-
void SetQuality(int);
void IncreaseQualityBy(int);
void DecreaseQualityBy(int);
void SetMapNames(OUString const &);
- void SetBuiltInFontFlag(bool);
- void SetEmbeddableFlag(bool);
- void SetSubsettableFlag(bool);
- void SetOrientationFlag(bool);
-
// setting the color on the font is obsolete, the only remaining
// valid use is for keeping backward compatibility with old MetaFiles
const Color& GetColor() const;
diff --git a/include/vcl/metric.hxx b/include/vcl/metric.hxx
index 22c28496f58d..3709364a0b5c 100644
--- a/include/vcl/metric.hxx
+++ b/include/vcl/metric.hxx
@@ -38,8 +38,6 @@ public:
FontMetric( const FontMetric& ); // TODO make this explicit
virtual ~FontMetric() override;
- FontType GetType() const;
-
long GetAscent() const;
long GetDescent() const;
long GetInternalLeading() const;
@@ -56,13 +54,9 @@ public:
void SetSlant(long);
void SetBulletOffset(long);
- bool IsScalable() const;
bool IsFullstopCentered() const;
- bool IsBuiltInFont() const;
- void SetScalableFlag(bool);
void SetFullstopCenteredFlag(bool);
- void SetBuiltInFontFlag(bool);
FontMetric& operator=( const FontMetric& rMetric );
FontMetric& operator=( FontMetric&& rMetric );
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 6dd859031c70..9963f9824a2a 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -454,7 +454,7 @@ void ScDocShell::UpdateFontList()
{
delete pImpl->pFontList;
// pImpl->pFontList = new FontList( GetPrinter(), Application::GetDefaultDevice() );
- pImpl->pFontList = new FontList( GetRefDevice(), nullptr, false ); // sal_False or sal_True???
+ pImpl->pFontList = new FontList(GetRefDevice(), nullptr);
SvxFontListItem aFontListItem( pImpl->pFontList, SID_ATTR_CHAR_FONTLIST );
PutItem( aFontListItem );
diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx
index ef4169836c9f..f9aa985b59a2 100644
--- a/sd/source/ui/animations/CustomAnimationDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationDialog.cxx
@@ -280,7 +280,7 @@ FontPropertyBox::FontPropertyBox( sal_Int32 nControlType, vcl::Window* pParent,
if(!pFontList)
{
- pFontList = new FontList( Application::GetDefaultDevice(), nullptr, false );
+ pFontList = new FontList(Application::GetDefaultDevice(), nullptr);
bMustDelete = true;
}
diff --git a/sd/source/ui/docshell/docshel4.cxx b/sd/source/ui/docshell/docshel4.cxx
index 395bda129fa2..a94c79ea4126 100644
--- a/sd/source/ui/docshell/docshel4.cxx
+++ b/sd/source/ui/docshell/docshel4.cxx
@@ -163,7 +163,7 @@ void DrawDocShell::UpdateFontList()
pRefDevice = GetPrinter(true);
else
pRefDevice = SD_MOD()->GetVirtualRefDevice();
- mpFontList = new FontList( pRefDevice, nullptr, false );
+ mpFontList = new FontList(pRefDevice, nullptr);
SvxFontListItem aFontListItem( mpFontList, SID_ATTR_CHAR_FONTLIST );
PutItem( aFontListItem );
}
diff --git a/svtools/source/control/ctrltool.cxx b/svtools/source/control/ctrltool.cxx
index 341a1f83e8bb..4a31b22ba7f4 100644
--- a/svtools/source/control/ctrltool.cxx
+++ b/svtools/source/control/ctrltool.cxx
@@ -238,8 +238,7 @@ ImplFontListNameInfo* FontList::ImplFindByName(const OUString& rStr) const
return ImplFind( aSearchName, nullptr );
}
-void FontList::ImplInsertFonts( OutputDevice* pDevice, bool bAll,
- bool bInsertData )
+void FontList::ImplInsertFonts(OutputDevice* pDevice, bool bInsertData)
{
rtl_TextEncoding eSystemEncoding = osl_getThreadTextEncoding();
@@ -260,11 +259,6 @@ void FontList::ImplInsertFonts( OutputDevice* pDevice, bool bAll,
for (int i = 0; i < n; ++i)
{
FontMetric aFontMetric = pDevice->GetDevFont( i );
-
- // ignore raster-fonts if they are not to be displayed
- if ( !bAll && (aFontMetric.GetType() == TYPE_RASTER) )
- continue;
-
OUString aSearchName(aFontMetric.GetFamilyName());
ImplFontListNameInfo* pData;
sal_uLong nIndex;
@@ -338,7 +332,7 @@ void FontList::ImplInsertFonts( OutputDevice* pDevice, bool bAll,
}
}
-FontList::FontList( OutputDevice* pDevice, OutputDevice* pDevice2, bool bAll )
+FontList::FontList(OutputDevice* pDevice, OutputDevice* pDevice2)
{
// initialise variables
mpDev = pDevice;
@@ -355,7 +349,7 @@ FontList::FontList( OutputDevice* pDevice, OutputDevice* pDevice2, bool bAll )
maBlack = SVT_RESSTR(STR_SVT_STYLE_BLACK);
maBlackItalic = SVT_RESSTR(STR_SVT_STYLE_BLACK_ITALIC);
- ImplInsertFonts( pDevice, bAll, true );
+ ImplInsertFonts(pDevice, true);
// if required compare to the screen fonts
// in order to map the duplicates to Equal
@@ -368,7 +362,7 @@ FontList::FontList( OutputDevice* pDevice, OutputDevice* pDevice2, bool bAll )
if ( pDevice2 &&
(pDevice2->GetOutDevType() != pDevice->GetOutDevType()) )
- ImplInsertFonts( pDevice2, bAll, !bCompareWindow );
+ ImplInsertFonts(pDevice2, !bCompareWindow);
}
FontList::~FontList()
@@ -392,8 +386,7 @@ FontList::~FontList()
FontList* FontList::Clone() const
{
- FontList* pReturn = new FontList(
- mpDev, mpDev2, sal::static_int_cast<int>(GetFontNameCount()) == mpDev->GetDevFontCount());
+ FontList* pReturn = new FontList(mpDev, mpDev2);
return pReturn;
}
@@ -538,14 +531,6 @@ OUString FontList::GetFontMapText( const FontMetric& rInfo ) const
const_cast<FontList*>(this)->maMapPrinterOnly = SVT_RESSTR(STR_SVT_FONTMAP_PRINTERONLY);
return maMapPrinterOnly;
}
- // Only Screen-Font?
- else if ( nType == FontListFontNameType::SCREEN
- && rInfo.GetType() == TYPE_RASTER )
- {
- if (maMapScreenOnly.isEmpty())
- const_cast<FontList*>(this)->maMapScreenOnly = SVT_RESSTR(STR_SVT_FONTMAP_SCREENONLY);
- return maMapScreenOnly;
- }
else
{
if (maMapBoth.isEmpty())
diff --git a/vcl/inc/PhysicalFontCollection.hxx b/vcl/inc/PhysicalFontCollection.hxx
index ca499e718885..0ff6868b9853 100644
--- a/vcl/inc/PhysicalFontCollection.hxx
+++ b/vcl/inc/PhysicalFontCollection.hxx
@@ -62,7 +62,7 @@ public:
void SetFallbackHook( ImplGlyphFallbackFontSubstitution* );
// misc utilities
- PhysicalFontCollection* Clone( bool bEmbeddable ) const;
+ PhysicalFontCollection* Clone() const;
ImplDeviceFontList* GetDeviceFontList() const;
ImplDeviceFontSizeList* GetDeviceFontSizeList( const OUString& rFontName ) const;
diff --git a/vcl/inc/PhysicalFontFace.hxx b/vcl/inc/PhysicalFontFace.hxx
index f4b1c1ada339..051ffcb6c288 100644
--- a/vcl/inc/PhysicalFontFace.hxx
+++ b/vcl/inc/PhysicalFontFace.hxx
@@ -78,7 +78,6 @@ public:
int GetHeight() const { return mnHeight; }
int GetWidth() const { return mnWidth; }
virtual sal_IntPtr GetFontId() const = 0;
- bool IsScalable() const { return (mnHeight == 0); }
bool IsBetterMatch( const FontSelectPattern&, FontMatchStatus& ) const;
sal_Int32 CompareWithSize( const PhysicalFontFace& ) const;
diff --git a/vcl/inc/PhysicalFontFamily.hxx b/vcl/inc/PhysicalFontFamily.hxx
index 07d329c711d9..34548785c56d 100644
--- a/vcl/inc/PhysicalFontFamily.hxx
+++ b/vcl/inc/PhysicalFontFamily.hxx
@@ -54,7 +54,6 @@ public:
const OUString& GetFamilyName() const { return maFamilyName; }
const OUString& GetSearchName() const { return maSearchName; }
const OUString& GetAliasNames() const { return maMapNames; }
- bool IsScalable() const { return maFontFaces[0]->IsScalable(); }
int GetMinQuality() const { return mnMinQuality; }
FontTypeFaces GetTypeFaces() const { return mnTypeFaces; }
void GetFontHeights( std::set<int>& rHeights ) const;
@@ -71,8 +70,7 @@ public:
PhysicalFontFace* FindBestFontFace( const FontSelectPattern& rFSD ) const;
void UpdateDevFontList( ImplDeviceFontList& ) const;
- void UpdateCloneFontList( PhysicalFontCollection&,
- bool bEmbeddable ) const;
+ void UpdateCloneFontList(PhysicalFontCollection&) const;
static void CalcType( ImplFontAttrs& rType, FontWeight& rWeight, FontWidth& rWidth,
FontFamily eFamily, const utl::FontNameAttr* pFontAttr );
diff --git a/vcl/inc/fontattributes.hxx b/vcl/inc/fontattributes.hxx
index fcd2fa825f72..9b3cc7f65363 100644
--- a/vcl/inc/fontattributes.hxx
+++ b/vcl/inc/fontattributes.hxx
@@ -63,19 +63,11 @@ public:
int GetQuality() const { return mnQuality; }
const OUString& GetMapNames() const { return maMapNames; }
- bool IsBuiltInFont() const { return mbDevice; }
- bool CanEmbed() const { return mbEmbeddable; }
- bool CanSubset() const { return mbSubsettable; }
void SetQuality( int nQuality ) { mnQuality = nQuality; }
void IncreaseQualityBy( int nQualityAmount ) { mnQuality += nQualityAmount; }
void AddMapName( OUString const& );
- void SetBuiltInFontFlag( bool bIsBuiltInFont ) { mbDevice = bIsBuiltInFont; }
- void SetEmbeddableFlag ( bool bEmbeddable ) { mbEmbeddable = bEmbeddable; }
- void SetSubsettableFlag( bool bSubsettable ) { mbSubsettable = bSubsettable; }
- void SetOrientationFlag( bool bCanRotate ) { mbOrientation = bCanRotate; }
-
private:
// device independent variables
OUString maFamilyName; // Font Family Name
@@ -91,10 +83,6 @@ private:
// device dependent variables
OUString maMapNames; // List of family name aliases separated with ';'
int mnQuality; // Quality (used when similar fonts compete)
- bool mbOrientation; // true: physical font can be rotated
- bool mbDevice; // true: built in font
- bool mbSubsettable; // true: a subset of the font can be created
- bool mbEmbeddable; // true: the font can be embedded
};
diff --git a/vcl/inc/impfont.hxx b/vcl/inc/impfont.hxx
index 7584dda707b1..654dc0c7429b 100644
--- a/vcl/inc/impfont.hxx
+++ b/vcl/inc/impfont.hxx
@@ -78,16 +78,6 @@ public:
void DecreaseQualityBy( int nQualityAmount ) { mnQuality -= nQualityAmount; }
void SetMapNames( OUString const & aMapNames ) { maMapNames = aMapNames; }
- bool IsBuiltInFont() const { return mbDevice; }
- bool CanEmbed() const { return mbEmbeddable; }
- bool CanSubset() const { return mbSubsettable; }
- bool CanRotate() const { return mbRotatable; }
-
- void SetBuiltInFontFlag( bool bIsBuiltInFont ) { mbDevice = bIsBuiltInFont; }
- void SetEmbeddableFlag( bool bEmbeddable ) { mbEmbeddable = bEmbeddable; }
- void SetSubsettableFlag( bool bSubsettable ) { mbSubsettable = bSubsettable; }
- void SetOrientationFlag( bool bCanRotate ) { mbRotatable = bCanRotate; }
-
bool operator==( const ImplFont& ) const;
private:
@@ -132,11 +122,7 @@ private:
// Device dependent variables
OUString maMapNames;
- bool mbWordLine:1,
- mbEmbeddable:1,
- mbSubsettable:1,
- mbRotatable:1, // is "rotatable" even a word?!? I'll keep it for consistency for now
- mbDevice:1;
+ bool mbWordLine:1;
// TODO: metric data, should be migrated to ImplFontMetric
short mnOrientation;
diff --git a/vcl/inc/impfontmetric.hxx b/vcl/inc/impfontmetric.hxx
index c0d7c60a4d5b..6267a30fddfd 100644
--- a/vcl/inc/impfontmetric.hxx
+++ b/vcl/inc/impfontmetric.hxx
@@ -44,13 +44,9 @@ public:
void SetSlant( long nSlant ) { mnSlant = nSlant; }
void SetBulletOffset( long nOffset ) { mnBulletOffset = nOffset; }
- bool IsScalable() const { return mbScalableFont; }
bool IsFullstopCentered() const { return mbFullstopCentered; }
- bool IsBuiltInFont() const { return mbDevice; }
- void SetScalableFlag( bool bScalable ) { mbScalableFont = bScalable; }
void SetFullstopCenteredFlag( bool bCentered ) { mbFullstopCentered = bCentered; }
- void SetBuiltInFontFlag( bool bIsBuiltInFont ) { mbDevice = bIsBuiltInFont; }
bool operator==( const ImplFontMetric& ) const;
@@ -65,9 +61,7 @@ private:
long mnSlant; // Slant
long mnBulletOffset; // Offset for non-printing character
- bool mbScalableFont;
bool mbFullstopCentered;
- bool mbDevice;
};
diff --git a/vcl/inc/impfontmetricdata.hxx b/vcl/inc/impfontmetricdata.hxx
index 8122bbd30ca8..31a0557f341e 100644
--- a/vcl/inc/impfontmetricdata.hxx
+++ b/vcl/inc/impfontmetricdata.hxx
@@ -58,15 +58,9 @@ public:
void SetMinKashida( long nMinKashida ) { mnMinKashida=nMinKashida; }
// font attributes queried from the font instance
- bool IsScalable() { return mbScalableFont; }
- bool IsTrueTypeFont() { return mbTrueTypeFont; }
- bool IsKernable() { return mbKernableFont; }
bool IsFullstopCentered() { return mbFullstopCentered; }
long GetBulletOffset() { return mnBulletOffset; }
- void SetScalableFlag(bool bScalable) { mbScalableFont = bScalable; }
- void SetTrueTypeFlag(bool bTrueTypeFont) { mbTrueTypeFont = bTrueTypeFont; }
- void SetKernableFlag(bool bKernable) { mbKernableFont = bKernable; }
void SetFullstopCenteredFlag(bool bFullstopCentered) { mbFullstopCentered = bFullstopCentered; }
// font metrics that are usually derived from the measurements
@@ -117,9 +111,6 @@ private:
long mnMinKashida; // Minimal width of kashida (Arabic)
// font attributes queried from the font instance
- bool mbScalableFont;
- bool mbTrueTypeFont;
- bool mbKernableFont;
bool mbFullstopCentered;
long mnBulletOffset; // Offset to position non-print character
diff --git a/vcl/qa/cppunit/font.cxx b/vcl/qa/cppunit/font.cxx
index d496ebe418d3..f31a6f4bfb62 100644
--- a/vcl/qa/cppunit/font.cxx
+++ b/vcl/qa/cppunit/font.cxx
@@ -28,10 +28,6 @@ public:
void testItalic();
void testAlignment();
void testQuality();
- void testBuiltInFontFlag();
- void testEmbeddableFontFlag();
- void testSubsettableFontFlag();
- void testOrientationFlag();
void testSymbolFlagAndCharSet();
CPPUNIT_TEST_SUITE(VclFontTest);
@@ -42,10 +38,6 @@ public:
CPPUNIT_TEST(testItalic);
CPPUNIT_TEST(testAlignment);
CPPUNIT_TEST(testQuality);
- CPPUNIT_TEST(testBuiltInFontFlag);
- CPPUNIT_TEST(testEmbeddableFontFlag);
- CPPUNIT_TEST(testSubsettableFontFlag);
- CPPUNIT_TEST(testOrientationFlag);
CPPUNIT_TEST(testSymbolFlagAndCharSet);
CPPUNIT_TEST_SUITE_END();
};
@@ -131,48 +123,6 @@ void VclFontTest::testQuality()
CPPUNIT_ASSERT_EQUAL( (int)50, aFont.GetQuality() );
}
-void VclFontTest::testBuiltInFontFlag()
-{
- vcl::Font aFont;
-
- CPPUNIT_ASSERT_EQUAL( false, aFont.IsBuiltInFont() );
-
- aFont.SetBuiltInFontFlag( true );
- CPPUNIT_ASSERT_EQUAL( true, aFont.IsBuiltInFont() );
-}
-
-void VclFontTest::testEmbeddableFontFlag()
-{
- vcl::Font aFont;
-
- CPPUNIT_ASSERT_EQUAL( false, aFont.CanEmbed() );
-
- aFont.SetEmbeddableFlag( true );
- CPPUNIT_ASSERT_EQUAL( true, aFont.CanEmbed() );
-}
-
-
-void VclFontTest::testSubsettableFontFlag()
-{
- vcl::Font aFont;
-
- CPPUNIT_ASSERT_EQUAL( false, aFont.CanSubset() );
-
- aFont.SetSubsettableFlag( true );
- CPPUNIT_ASSERT_EQUAL( true, aFont.CanSubset() );
-}
-
-
-void VclFontTest::testOrientationFlag()
-{
- vcl::Font aFont;
-
- CPPUNIT_ASSERT_EQUAL( false, aFont.CanRotate() );
-
- aFont.SetOrientationFlag( true );
- CPPUNIT_ASSERT_EQUAL( true, aFont.CanRotate() );
-}
-
void VclFontTest::testSymbolFlagAndCharSet()
{
diff --git a/vcl/qa/cppunit/fontmetric.cxx b/vcl/qa/cppunit/fontmetric.cxx
index 4f82adc61698..f28aa0d5bff7 100644
--- a/vcl/qa/cppunit/fontmetric.cxx
+++ b/vcl/qa/cppunit/fontmetric.cxx
@@ -23,18 +23,14 @@ class VclFontMetricTest : public test::BootstrapFixture
public:
VclFontMetricTest() : BootstrapFixture(true, false) {}
- void testScalableFlag();
void testFullstopCenteredFlag();
- void testBuiltInFontFlag();
void testSpacings();
void testSlant();
void testBulletOffset();
void testEqualityOperator();
CPPUNIT_TEST_SUITE(VclFontMetricTest);
- CPPUNIT_TEST(testScalableFlag);
CPPUNIT_TEST(testFullstopCenteredFlag);
- CPPUNIT_TEST(testBuiltInFontFlag);
CPPUNIT_TEST(testSpacings);
CPPUNIT_TEST(testSlant);
CPPUNIT_TEST(testBulletOffset);
@@ -42,18 +38,6 @@ public:
CPPUNIT_TEST_SUITE_END();
};
-void VclFontMetricTest::testScalableFlag()
-{
- // default constructor should set scalable flag to false
- FontMetric aFontMetric;
-
- CPPUNIT_ASSERT_MESSAGE( "Scalable flag should be false after default constructor called", !aFontMetric.IsScalable() );
-
- aFontMetric.SetScalableFlag(true);
-
- CPPUNIT_ASSERT_MESSAGE( "Scalable flag should be true", aFontMetric.IsScalable() );
-}
-
void VclFontMetricTest::testFullstopCenteredFlag()
{
// default constructor should set scalable flag to false
@@ -66,18 +50,6 @@ void VclFontMetricTest::testFullstopCenteredFlag()
CPPUNIT_ASSERT_MESSAGE( "Fullstop centered flag should be true", aFontMetric.IsFullstopCentered() );
}
-void VclFontMetricTest::testBuiltInFontFlag()
-{
- // default constructor should set scalable flag to false
- FontMetric aFontMetric;
-
- CPPUNIT_ASSERT_MESSAGE( "Built-in font flag should be false after default constructor called", !aFontMetric.IsBuiltInFont() );
-
- aFontMetric.SetBuiltInFontFlag(true);
-
- CPPUNIT_ASSERT_MESSAGE( "Built-in font flag should be true", aFontMetric.IsBuiltInFont() );
-}
-
void VclFontMetricTest::testSpacings()
{
// default constructor should set scalable flag to false
@@ -133,21 +105,11 @@ void VclFontMetricTest::testEqualityOperator()
// default constructor should set scalable flag to false
FontMetric aLhs, aRhs;
- aLhs.SetScalableFlag(true);
- aRhs.SetScalableFlag(true);
- CPPUNIT_ASSERT_MESSAGE( "Scalable flag set same, aLhs == aRhs failed", aLhs == aRhs );
- CPPUNIT_ASSERT_MESSAGE( "Scalable flag set same, aLhs != aRhs succeeded", !(aLhs != aRhs) );
-
aLhs.SetFullstopCenteredFlag(true);
aRhs.SetFullstopCenteredFlag(true);
CPPUNIT_ASSERT_MESSAGE( "Fullstop centered flag set same, aLhs == aRhs failed", aLhs == aRhs );
CPPUNIT_ASSERT_MESSAGE( "Fullstop centered flag set same, aLhs != aRhs succeeded", !(aLhs != aRhs) );
- aLhs.SetBuiltInFontFlag(true);
- aRhs.SetBuiltInFontFlag(true);
- CPPUNIT_ASSERT_MESSAGE( "Builtin font flag set same, aLHS == aRhs failed", aLhs == aRhs );
- CPPUNIT_ASSERT_MESSAGE( "Builtin font flag set same, aLHS != aRhs succeeded", !(aLhs != aRhs) );
-
aLhs.SetExternalLeading(10);
aRhs.SetExternalLeading(10);
CPPUNIT_ASSERT_MESSAGE( "External leading set same, aLHS == aRhs failed", aLhs == aRhs );
diff --git a/vcl/quartz/ctfonts.cxx b/vcl/quartz/ctfonts.cxx
index e628be42d247..acc8add0b9f3 100644
--- a/vcl/quartz/ctfonts.cxx
+++ b/vcl/quartz/ctfonts.cxx
@@ -138,11 +138,6 @@ void CoreTextStyle::GetFontMetric( ImplFontMetricDataRef& rxFontMetric ) const
// it also makes the calculation of the stretch factor simple
rxFontMetric->SetWidth( lrint( CTFontGetSize( aCTFontRef ) * mfFontStretch) );
- // all CoreText fonts are scalable
- rxFontMetric->SetScalableFlag( true );
- rxFontMetric->SetTrueTypeFlag( true ); // Not sure, but this field is used only for Windows so far
- rxFontMetric->SetKernableFlag( true );
-
UniChar nKashidaCh = 0x0640;
CGGlyph nKashidaGid = 0;
if (CTFontGetGlyphsForCharacters(aCTFontRef, &nKashidaCh, &nKashidaGid, 1))
@@ -310,8 +305,6 @@ FontAttributes DevFontFromCTFontDescriptor( CTFontDescriptorRef pFD, bool* bFont
{
// all CoreText fonts are device fonts that can rotate just fine
FontAttributes rDFA;
- rDFA.SetOrientationFlag( true );
- rDFA.SetBuiltInFontFlag( true );
rDFA.SetQuality( 0 );
// reset the font attributes
@@ -322,10 +315,6 @@ FontAttributes DevFontFromCTFontDescriptor( CTFontDescriptorRef pFD, bool* bFont
rDFA.SetItalic( ITALIC_NONE );
rDFA.SetSymbolFlag( false );
- // all scalable fonts on this platform are subsettable
- rDFA.SetEmbeddableFlag( false );
- rDFA.SetSubsettableFlag( true );
-
// get font name
#ifdef MACOSX
const OUString aUILang = Application::GetSettings().GetUILanguageTag().getLanguage();
diff --git a/vcl/quartz/salgdi.cxx b/vcl/quartz/salgdi.cxx
index 0333bbf0f6c2..e46ad771ace8 100644
--- a/vcl/quartz/salgdi.cxx
+++ b/vcl/quartz/salgdi.cxx
@@ -777,16 +777,6 @@ void AquaSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFontData, bool bV
rGlyphWidths.clear();
rUnicodeEnc.clear();
- if( !pFontData->CanSubset() )
- {
- if( pFontData->CanEmbed() )
- {
- // get individual character widths
- OSL_FAIL("not implemented for non-subsettable fonts!\n");
- }
- return;
- }
-
std::vector<unsigned char> aBuffer;
if( !GetRawFontData( pFontData, aBuffer, nullptr ) )
return;
diff --git a/vcl/source/font/PhysicalFontCollection.cxx b/vcl/source/font/PhysicalFontCollection.cxx
index 295de0452eca..3a7da5921b62 100644
--- a/vcl/source/font/PhysicalFontCollection.cxx
+++ b/vcl/source/font/PhysicalFontCollection.cxx
@@ -158,9 +158,6 @@ void PhysicalFontCollection::ImplInitGenericGlyphFallback() const
if( !pFallbackFont )
continue;
- if( !pFallbackFont->IsScalable() )
- continue;
-
// keep the best font of the glyph fallback sub-list
if( nBestQuality < pFallbackFont->GetMinQuality() )
{
@@ -919,7 +916,7 @@ PhysicalFontFamily* PhysicalFontCollection::ImplFindFontFamilyOfDefaultFont() co
return pFoundData;
}
-PhysicalFontCollection* PhysicalFontCollection::Clone( bool bEmbeddable ) const
+PhysicalFontCollection* PhysicalFontCollection::Clone() const
{
PhysicalFontCollection* pClonedCollection = new PhysicalFontCollection;
pClonedCollection->mbMapNames = mbMapNames;
@@ -933,7 +930,7 @@ PhysicalFontCollection* PhysicalFontCollection::Clone( bool bEmbeddable ) const
for(; it != maPhysicalFontFamilies.end(); ++it )
{
const PhysicalFontFamily* pFontFace = (*it).second;
- pFontFace->UpdateCloneFontList( *pClonedCollection, bEmbeddable );
+ pFontFace->UpdateCloneFontList(*pClonedCollection);
}
return pClonedCollection;
diff --git a/vcl/source/font/PhysicalFontFace.cxx b/vcl/source/font/PhysicalFontFace.cxx
index a0fb7210cc9b..044cd36063da 100644
--- a/vcl/source/font/PhysicalFontFace.cxx
+++ b/vcl/source/font/PhysicalFontFace.cxx
@@ -158,45 +158,15 @@ bool PhysicalFontFace::IsBetterMatch( const FontSelectPattern& rFSD, FontMatchSt
nMatch += 600;
}
- if( IsBuiltInFont() )
- nMatch += 1;
-
int nHeightMatch = 0;
int nWidthMatch = 0;
- if( IsScalable() )
- {
- if( rFSD.mnOrientation != 0 )
- nMatch += 80;
- else if( rFSD.mnWidth != 0 )
- nMatch += 25;
- else
- nMatch += 5;
- }
+ if( rFSD.mnOrientation != 0 )
+ nMatch += 80;
+ else if( rFSD.mnWidth != 0 )
+ nMatch += 25;
else
- {
- if( rFSD.mnHeight == mnHeight )
- {
- nMatch += 20;
- if( rFSD.mnWidth == mnWidth )
- nMatch += 10;
- }
- else
- {
- // for non-scalable fonts the size difference is very important
- // prefer the smaller font face because of clipping/overlapping issues
- int nHeightDiff = (rFSD.mnHeight - mnHeight) * 1000;
- nHeightMatch = (nHeightDiff >= 0) ? -nHeightDiff : 100+nHeightDiff;
- if( rFSD.mnHeight )
- nHeightMatch /= rFSD.mnHeight;
-
- if( (rFSD.mnWidth != 0) && (mnWidth != 0) && (rFSD.mnWidth != mnWidth) )
- {
- int nWidthDiff = (rFSD.mnWidth - mnWidth) * 100;
- nWidthMatch = (nWidthDiff >= 0) ? -nWidthDiff : +nWidthDiff;
- }
- }
- }
+ nMatch += 5;
if( rStatus.mnFaceMatch > nMatch )
return false;
diff --git a/vcl/source/font/PhysicalFontFamily.cxx b/vcl/source/font/PhysicalFontFamily.cxx
index e56935c99707..5e28ab37a03f 100644
--- a/vcl/source/font/PhysicalFontFamily.cxx
+++ b/vcl/source/font/PhysicalFontFamily.cxx
@@ -128,8 +128,7 @@ bool PhysicalFontFamily::AddFontFace( PhysicalFontFace* pNewFontFace )
}
// set attributes for attribute based font matching
- if( pNewFontFace->IsScalable() )
- mnTypeFaces |= FontTypeFaces::Scalable;
+ mnTypeFaces |= FontTypeFaces::Scalable;
if( pNewFontFace->IsSymbolFont() )
mnTypeFaces |= FontTypeFaces::Symbol;
@@ -173,7 +172,7 @@ bool PhysicalFontFamily::AddFontFace( PhysicalFontFace* pNewFontFace )
return false;
// keep the device font if its quality is good enough
- if( (pNewFontFace->GetQuality() == pFoundFontFace->GetQuality()) && (pFoundFontFace->IsBuiltInFont() || !pNewFontFace->IsBuiltInFont()) )
+ if( pNewFontFace->GetQuality() == pFoundFontFace->GetQuality() )
return false;
// replace existing font face with a better one
@@ -260,8 +259,7 @@ void PhysicalFontFamily::GetFontHeights( std::set<int>& rHeights ) const
}
}
-void PhysicalFontFamily::UpdateCloneFontList( PhysicalFontCollection& rFontCollection,
- bool bEmbeddable ) const
+void PhysicalFontFamily::UpdateCloneFontList(PhysicalFontCollection& rFontCollection) const
{
OUString aFamilyName = GetEnglishSearchFontName( GetFamilyName() );
PhysicalFontFamily* pFamily(nullptr);
@@ -270,11 +268,6 @@ void PhysicalFontFamily::UpdateCloneFontList( PhysicalFontCollection& rFontColle
{
PhysicalFontFace *pFoundFontFace = *it;
- if( !pFoundFontFace->IsScalable() )
- continue;
- if( bEmbeddable && !pFoundFontFace->CanEmbed() && !pFoundFontFace->CanSubset() )
- continue;
-
if (!pFamily)
{ // tdf#98989 lazy create as family without faces won't work
pFamily = rFontCollection.FindOrCreateFontFamily(aFamilyName);
diff --git a/vcl/source/font/font.cxx b/vcl/source/font/font.cxx
index df0f89165f68..ebf89250d650 100644
--- a/vcl/source/font/font.cxx
+++ b/vcl/source/font/font.cxx
@@ -706,15 +706,6 @@ void Font::DecreaseQualityBy( int nQualityAmount ) { mpImplFont->DecreaseQuality
void Font::SetMapNames( OUString const & aMapNames ) { mpImplFont->SetMapNames(aMapNames); }
-bool Font::IsBuiltInFont() const { return mpImplFont->IsBuiltInFont(); }
-void Font::SetBuiltInFontFlag( bool bIsBuiltInFontFlag ) { mpImplFont->SetBuiltInFontFlag( bIsBuiltInFontFlag ); }
-bool Font::CanEmbed() const { return mpImplFont->CanEmbed(); }
-void Font::SetEmbeddableFlag( bool bEmbeddable ) { mpImplFont->SetEmbeddableFlag( bEmbeddable ); }
-bool Font::CanSubset() const { return mpImplFont->CanSubset(); }
-void Font::SetSubsettableFlag( bool bSubsettable ) { mpImplFont->SetSubsettableFlag( bSubsettable ); }
-bool Font::CanRotate() const { return mpImplFont->CanRotate(); }
-void Font::SetOrientationFlag( bool bCanRotate ) { mpImplFont->SetOrientationFlag( bCanRotate ); }
-
bool Font::IsOutline() const { return mpImplFont->mbOutline; }
bool Font::IsShadow() const { return mpImplFont->mbShadow; }
FontRelief Font::GetRelief() const { return mpImplFont->meRelief; }
@@ -751,10 +742,6 @@ ImplFont::ImplFont() :
maColor( COL_TRANSPARENT ),
maFillColor( COL_TRANSPARENT ),
mbWordLine( false ),
- mbEmbeddable( false ),
- mbSubsettable( false ),
- mbRotatable( false ),
- mbDevice( false ),
mnOrientation( 0 ),
mnQuality( 0 )
{}
@@ -788,10 +775,6 @@ ImplFont::ImplFont( const ImplFont& rImplFont ) :
maFillColor( rImplFont.maFillColor ),
maMapNames( rImplFont.maMapNames ),
mbWordLine( rImplFont.mbWordLine ),
- mbEmbeddable( rImplFont.mbEmbeddable ),
- mbSubsettable( rImplFont.mbSubsettable ),
- mbRotatable( rImplFont.mbRotatable ),
- mbDevice( rImplFont.mbDevice ),
mnOrientation( rImplFont.mnOrientation ),
mnQuality( rImplFont.mnQuality )
{}
diff --git a/vcl/source/font/fontattributes.cxx b/vcl/source/font/fontattributes.cxx
index f800f18fce0c..890f4f20b2d8 100644
--- a/vcl/source/font/fontattributes.cxx
+++ b/vcl/source/font/fontattributes.cxx
@@ -30,11 +30,7 @@ FontAttributes::FontAttributes()
meItalic ( ITALIC_NONE ),
meCharSet( RTL_TEXTENCODING_DONTKNOW ),
mbSymbolFlag( false ),
- mnQuality( 0 ),
- mbOrientation( false ),
- mbDevice( false ),
- mbSubsettable( false ),
- mbEmbeddable ( false )
+ mnQuality( 0 )
{}
FontAttributes::FontAttributes( const FontAttributes& rFontAttributes ) :
@@ -48,11 +44,7 @@ FontAttributes::FontAttributes( const FontAttributes& rFontAttributes ) :
meCharSet( rFontAttributes.meCharSet ),
mbSymbolFlag( rFontAttributes.mbSymbolFlag ),
maMapNames( rFontAttributes.maMapNames ),
- mnQuality( rFontAttributes.mnQuality ),
- mbOrientation( rFontAttributes.mbOrientation ),
- mbDevice( rFontAttributes.mbDevice ),
- mbSubsettable( rFontAttributes.mbSubsettable ),
- mbEmbeddable( rFontAttributes.mbEmbeddable )
+ mnQuality( rFontAttributes.mnQuality )
{}
bool FontAttributes::CompareDeviceIndependentFontAttributes(const FontAttributes& rOther) const
diff --git a/vcl/source/font/fontmetric.cxx b/vcl/source/font/fontmetric.cxx
index b48b0aaca348..42d8ea593a5a 100644
--- a/vcl/source/font/fontmetric.cxx
+++ b/vcl/source/font/fontmetric.cxx
@@ -74,11 +74,6 @@ bool FontMetric::operator==( const FontMetric& rFontMetric ) const
return false;
}
-FontType FontMetric::GetType() const
-{
- return (mxImplMetric->IsScalable() ? TYPE_SCALABLE : TYPE_RASTER);
-}
-
long FontMetric::GetAscent() const
{
return mxImplMetric->GetAscent();
@@ -149,16 +144,6 @@ void FontMetric::SetBulletOffset( long nOffset )
mxImplMetric->SetBulletOffset( nOffset );
}
-bool FontMetric::IsScalable() const
-{
- return mxImplMetric->IsScalable();
-}
-
-void FontMetric::SetScalableFlag(bool bScalable)
-{
- mxImplMetric->SetScalableFlag( bScalable );
-}
-
bool FontMetric::IsFullstopCentered() const
{
return mxImplMetric->IsFullstopCentered();
@@ -169,16 +154,6 @@ void FontMetric::SetFullstopCenteredFlag(bool bScalable)
mxImplMetric->SetFullstopCenteredFlag( bScalable );
}
-bool FontMetric::IsBuiltInFont() const
-{
- return mxImplMetric->IsBuiltInFont();
-}
-
-void FontMetric::SetBuiltInFontFlag( bool bIsBuiltInFont )
-{
- mxImplMetric->SetBuiltInFontFlag( bIsBuiltInFont );
-}
-
ImplFontMetric::ImplFontMetric()
: mnAscent( 0 ),
@@ -188,16 +163,12 @@ ImplFontMetric::ImplFontMetric()
mnLineHeight( 0 ),
mnSlant( 0 ),
mnBulletOffset( 0 ),
- mbScalableFont( false ),
- mbFullstopCentered( false ),
- mbDevice( false )
+ mbFullstopCentered( false )
{}
bool ImplFontMetric::operator==( const ImplFontMetric& r ) const
{
- if( mbScalableFont != r.mbScalableFont
- || mbFullstopCentered != r.mbFullstopCentered
- || mbDevice != r.mbDevice) // mbDevice == built-in font flag
+ if (mbFullstopCentered != r.mbFullstopCentered)
return false;
if( mnAscent != r.mnAscent )
return false;
@@ -224,9 +195,6 @@ ImplFontMetricData::ImplFontMetricData( const FontSelectPattern& rFontSelData )
, mnExtLeading( 0 )
, mnSlant( 0 )
, mnMinKashida( 0 )
- , mbScalableFont( false )
- , mbTrueTypeFont( false )
- , mbKernableFont( false )
, mbFullstopCentered( false )
, mnBulletOffset( 0 )
, mnUnderlineSize( 0 )
@@ -260,16 +228,12 @@ ImplFontMetricData::ImplFontMetricData( const FontSelectPattern& rFontSelData )
{
SetFamilyName( rFontSelData.mpFontData->GetFamilyName() );
SetStyleName( rFontSelData.mpFontData->GetStyleName() );
- SetBuiltInFontFlag( rFontSelData.mpFontData->IsBuiltInFont() );
- SetKernableFlag( true );
}
else
{
sal_Int32 nTokenPos = 0;
SetFamilyName( GetNextFontToken( rFontSelData.GetFamilyName(), nTokenPos ) );
SetStyleName( rFontSelData.GetStyleName() );
- SetBuiltInFontFlag( false );
- SetKernableFlag( false );
}
}
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index f667f12f0c91..76f43382ebb6 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -2243,11 +2243,7 @@ static FontAttributes GetDevFontAttributes( const PDFWriterImpl::BuiltinFont& rB
aDFA.SetItalic( rBuiltin.m_eItalic );
aDFA.SetWidthType( rBuiltin.m_eWidthType );
- aDFA.SetOrientationFlag( true );
- aDFA.SetBuiltInFontFlag( true );
aDFA.SetQuality( 50000 );
- aDFA.SetSubsettableFlag( false );
- aDFA.SetEmbeddableFlag( false );
return aDFA;
}
@@ -2947,63 +2943,34 @@ std::map< sal_Int32, sal_Int32 > PDFWriterImpl::emitSystemFont( const PhysicalFo
assert(pGraphics);
- if( pFont->CanEmbed() )
- {
- const unsigned char* pFontData = nullptr;
- long nFontLen = 0;
- sal_Ucs nEncodedCodes[256];
- sal_Int32 pEncWidths[256];
-
- //TODO: surely this is utterly broken because GetEmbedFontData loops over the uninitialized nEncodedCodes as input
- pFontData = static_cast<const unsigned char*>(pGraphics->GetEmbedFontData( pFont, nEncodedCodes, pEncWidths, 256, aInfo, &nFontLen ));
+ aSubType = OString( "/TrueType" );
+ std::vector< sal_Int32 > aGlyphWidths;
+ Ucs2UIntMap aUnicodeMap;
+ pGraphics->GetGlyphWidths( pFont, false, aGlyphWidths, aUnicodeMap );
- if( pFontData )
- {
- pGraphics->FreeEmbedFontData( pFontData, nFontLen );
- for( int i = 0; i < 256; i++ )
- {
- if( nEncodedCodes[i] >= 32 && nEncodedCodes[i] < 256 )
- {
- pWidths[i] = pEncWidths[ i ];
- }
- }
- }
- }
- else if( pFont->CanSubset() )
- {
- aSubType = OString( "/TrueType" );
- std::vector< sal_Int32 > aGlyphWidths;
- Ucs2UIntMap aUnicodeMap;
- pGraphics->GetGlyphWidths( pFont, false, aGlyphWidths, aUnicodeMap );
-
- OUString aTmpName;
- osl_createTempFile( nullptr, nullptr, &aTmpName.pData );
- sal_GlyphId aGlyphIds[ 256 ];
- sal_uInt8 pEncoding[ 256 ];
- sal_Int32 pDuWidths[ 256 ];
-
- memset( aGlyphIds, 0, sizeof( aGlyphIds ) );
- memset( pEncoding, 0, sizeof( pEncoding ) );
- memset( pDuWidths, 0, sizeof( pDuWidths ) );
-
- for( sal_Ucs c = 32; c < 256; c++ )
- {
- pEncoding[c] = c;
- aGlyphIds[c] = 0;
- if( aUnicodeMap.find( c ) != aUnicodeMap.end() )
- pWidths[ c ] = aGlyphWidths[ aUnicodeMap[ c ] ];
- }
- //TODO: surely this is utterly broken because aGlyphIds is just all zeros, if we
- //had the right glyphids here then I imagine we could replace pDuWidths with
- //pWidths and remove pWidths assignment above. i.e. start with the glyph ids
- //and map those to unicode rather than try and reverse map them ?
- pGraphics->CreateFontSubset( aTmpName, pFont, aGlyphIds, pEncoding, pDuWidths, 256, aInfo );
- osl_removeFile( aTmpName.pData );
- }
- else
- {
- OSL_FAIL( "system font neither embeddable nor subsettable" );
- }
+ OUString aTmpName;
+ osl_createTempFile( nullptr, nullptr, &aTmpName.pData );
+ sal_GlyphId aGlyphIds[ 256 ];
+ sal_uInt8 pEncoding[ 256 ];
+ sal_Int32 pDuWidths[ 256 ];
+
+ memset( aGlyphIds, 0, sizeof( aGlyphIds ) );
+ memset( pEncoding, 0, sizeof( pEncoding ) );
+ memset( pDuWidths, 0, sizeof( pDuWidths ) );
+
+ for( sal_Ucs c = 32; c < 256; c++ )
+ {
+ pEncoding[c] = c;
+ aGlyphIds[c] = 0;
+ if( aUnicodeMap.find( c ) != aUnicodeMap.end() )
+ pWidths[ c ] = aGlyphWidths[ aUnicodeMap[ c ] ];
+ }
+ //TODO: surely this is utterly broken because aGlyphIds is just all zeros, if we
+ //had the right glyphids here then I imagine we could replace pDuWidths with
+ //pWidths and remove pWidths assignment above. i.e. start with the glyph ids
+ //and map those to unicode rather than try and reverse map them ?
+ pGraphics->CreateFontSubset( aTmpName, pFont, aGlyphIds, pEncoding, pDuWidths, 256, aInfo );
+ osl_removeFile( aTmpName.pData );
// write font descriptor
nFontDescriptor = emitFontDescriptor( pFont, aInfo, 0, 0 );
@@ -8919,139 +8886,47 @@ void PDFWriterImpl::registerGlyphs( int nGlyphs,
const int nFontGlyphId = pGlyphs[i] & (GF_IDXMASK | GF_ISCHAR | GF_GSUB);
const PhysicalFontFace* pCurrentFont = pFallbackFonts[i] ? pFallbackFonts[i] : pDevFont;
- if( pCurrentFont->CanSubset() )
+ FontSubset& rSubset = m_aSubsets[ pCurrentFont ];
+ // search for font specific glyphID
+ FontMapping::iterator it = rSubset.m_aMapping.find( nFontGlyphId );
+ if( it != rSubset.m_aMapping.end() )
{
- FontSubset& rSubset = m_aSubsets[ pCurrentFont ];
- // search for font specific glyphID
- FontMapping::iterator it = rSubset.m_aMapping.find( nFontGlyphId );
- if( it != rSubset.m_aMapping.end() )
- {
- pMappedFontObjects[i] = it->second.m_nFontID;
- pMappedGlyphs[i] = it->second.m_nSubsetGlyphID;
- }
- else
- {
- // create new subset if necessary
- if( rSubset.m_aSubsets.empty()
- || (rSubset.m_aSubsets.back().m_aMapping.size() > 254) )
- {
- rSubset.m_aSubsets.push_back( FontEmit( m_nNextFID++ ) );
- }
-
- // copy font id
- pMappedFontObjects[i] = rSubset.m_aSubsets.back().m_nFontID;
- // create new glyph in subset
- sal_uInt8 nNewId = sal::static_int_cast<sal_uInt8>(rSubset.m_aSubsets.back().m_aMapping.size()+1);
- pMappedGlyphs[i] = nNewId;
-
- // add new glyph to emitted font subset
- GlyphEmit& rNewGlyphEmit = rSubset.m_aSubsets.back().m_aMapping[ nFontGlyphId ];
- rNewGlyphEmit.setGlyphId( nNewId );
- for( sal_Int32 n = 0; n < pUnicodesPerGlyph[i]; n++ )
- rNewGlyphEmit.addCode( pCurUnicode[n] );
-
- // add new glyph to font mapping
- Glyph& rNewGlyph = rSubset.m_aMapping[ nFontGlyphId ];
- rNewGlyph.m_nFontID = pMappedFontObjects[i];
- rNewGlyph.m_nSubsetGlyphID = nNewId;
- }
- if (!getReferenceDevice()->AcquireGraphics())
- return;
- const bool bVertical = ((pGlyphs[i] & GF_ROTMASK) != 0);
- pGlyphWidths[i] = m_aFontCache.getGlyphWidth( pCurrentFont,
- nFontGlyphId,
- bVertical,
- pGraphics );
- }
- else if( pCurrentFont->CanEmbed() )
- {
- sal_Int32 nFontID = 0;
- FontEmbedData::iterator it = m_aEmbeddedFonts.find( pCurrentFont );
- if( it != m_aEmbeddedFonts.end() )
- nFontID = it->second.m_nNormalFontID;
- else
+ pMappedFontObjects[i] = it->second.m_nFontID;
+ pMappedGlyphs[i] = it->second.m_nSubsetGlyphID;
+ }
+ else
+ {
+ // create new subset if necessary
+ if( rSubset.m_aSubsets.empty()
+ || (rSubset.m_aSubsets.back().m_aMapping.size() > 254) )
{
- nFontID = m_nNextFID++;
- m_aEmbeddedFonts[ pCurrentFont ] = EmbedFont();
- m_aEmbeddedFonts[ pCurrentFont ].m_nNormalFontID = nFontID;
+ rSubset.m_aSubsets.push_back( FontEmit( m_nNextFID++ ) );
}
- EmbedFont& rEmbedFont = m_aEmbeddedFonts[pCurrentFont];
-
- const Ucs2SIntMap* pEncoding = nullptr;
- const Ucs2OStrMap* pNonEncoded = nullptr;
- if (!getReferenceDevice()->AcquireGraphics())
- return;
- pEncoding = pGraphics->GetFontEncodingVector( pCurrentFont, &pNonEncoded, nullptr);
- Ucs2SIntMap::const_iterator enc_it;
- Ucs2OStrMap::const_iterator nonenc_it;
+ // copy font id
+ pMappedFontObjects[i] = rSubset.m_aSubsets.back().m_nFontID;
+ // create new glyph in subset
+ sal_uInt8 nNewId = sal::static_int_cast<sal_uInt8>(rSubset.m_aSubsets.back().m_aMapping.size()+1);
+ pMappedGlyphs[i] = nNewId;
- sal_Int32 nCurFontID = nFontID;
- sal_Ucs cChar = *pCurUnicode;
- if( pEncoding )
- {
- enc_it = pEncoding->find( cChar );
- if( enc_it != pEncoding->end() && enc_it->second > 0 )
- {
- SAL_WARN_IF( (enc_it->second & 0xffffff00) != 0, "vcl", "Invalid character code" );
- cChar = (sal_Ucs)enc_it->second;
- }
- else if( (enc_it == pEncoding->end() || enc_it->second == -1) &&
- pNonEncoded &&
- (nonenc_it = pNonEncoded->find( cChar )) != pNonEncoded->end() )
- {
- nCurFontID = 0;
- // find non encoded glyph
- for( std::list< EmbedEncoding >::iterator nec_it = rEmbedFont.m_aExtendedEncodings.begin(); nec_it != rEmbedFont.m_aExtendedEncodings.end(); ++nec_it )
- {
- if( nec_it->m_aCMap.find( cChar ) != nec_it->m_aCMap.end() )
- {
- nCurFontID = nec_it->m_nFontID;
- cChar = (sal_Ucs)nec_it->m_aCMap[ cChar ];
- break;
- }
- }
- if( nCurFontID == 0 ) // new nonencoded glyph
- {
- if( rEmbedFont.m_aExtendedEncodings.empty() || rEmbedFont.m_aExtendedEncodings.back().m_aEncVector.size() == 255 )
- {
- rEmbedFont.m_aExtendedEncodings.push_back( EmbedEncoding() );
- rEmbedFont.m_aExtendedEncodings.back().m_nFontID = m_nNextFID++;
- }
- EmbedEncoding& rEncoding = rEmbedFont.m_aExtendedEncodings.back();
- rEncoding.m_aEncVector.push_back( EmbedCode() );
- rEncoding.m_aEncVector.back().m_aUnicode = cChar;
- rEncoding.m_aEncVector.back().m_aName = nonenc_it->second;
- rEncoding.m_aCMap[ cChar ] = (sal_Int8)(rEncoding.m_aEncVector.size()-1);
- nCurFontID = rEncoding.m_nFontID;
- cChar = (sal_Ucs)rEncoding.m_aCMap[ cChar ];
- }
- }
- else
- pEncoding = nullptr;
- }
- if( ! pEncoding )
- {
- if( cChar & 0xff00 )
- {
- // some characters can be used by conversion
- if( cChar >= 0xf000 && cChar <= 0xf0ff ) // symbol encoding in private use area
- cChar -= 0xf000;
- else
- {
- OString aChar(&cChar, 1, RTL_TEXTENCODING_MS_1252);
- cChar = !aChar.isEmpty() ? (static_cast<sal_Ucs>(aChar[0]) & 0x00ff) : 0;
- }
- }
- }
+ // add new glyph to emitted font subset
+ GlyphEmit& rNewGlyphEmit = rSubset.m_aSubsets.back().m_aMapping[ nFontGlyphId ];
+ rNewGlyphEmit.setGlyphId( nNewId );
+ for( sal_Int32 n = 0; n < pUnicodesPerGlyph[i]; n++ )
+ rNewGlyphEmit.addCode( pCurUnicode[n] );
- pMappedGlyphs[ i ] = (sal_Int8)cChar;
- pMappedFontObjects[ i ] = nCurFontID;
- pGlyphWidths[ i ] = m_aFontCache.getGlyphWidth( pCurrentFont,
- (pEncoding ? *pCurUnicode : cChar) | GF_ISCHAR,
- false,
- pGraphics );
+ // add new glyph to font mapping
+ Glyph& rNewGlyph = rSubset.m_aMapping[ nFontGlyphId ];
+ rNewGlyph.m_nFontID = pMappedFontObjects[i];
+ rNewGlyph.m_nSubsetGlyphID = nNewId;
}
+ if (!getReferenceDevice()->AcquireGraphics())
+ return;
+ const bool bVertical = ((pGlyphs[i] & GF_ROTMASK) != 0);
+ pGlyphWidths[i] = m_aFontCache.getGlyphWidth( pCurrentFont,
+ nFontGlyphId,
+ bVertical,
+ pGraphics );
}
}
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index c174aca6b77a..61cf67e7491e 100644
--- a/vcl/source/gdi/virdev.cxx
+++ b/vcl/source/gdi/virdev.cxx
@@ -518,7 +518,7 @@ void VirtualDevice::ImplSetReferenceDevice( RefDevMode i_eRefDevMode, sal_Int32
// get font list with scalable fonts only
AcquireGraphics();
- mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone( false );
+ mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone();
// prepare to use new font lists
mpFontCache = new ImplFontCache();
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index 8edcb9a1501a..c30d4231da63 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -55,8 +55,6 @@ FontMetric OutputDevice::GetDevFont( int nDevFontIndex ) const
aFontMetric.SetItalic( rData.GetItalic() );
aFontMetric.SetAlignment( TextAlign::ALIGN_TOP );
aFontMetric.SetWidthType( rData.GetWidthType() );
- aFontMetric.SetScalableFlag( rData.IsScalable() );
- aFontMetric.SetBuiltInFontFlag( rData.IsBuiltInFont() );
aFontMetric.SetQuality( rData.GetQuality() );
aFontMetric.SetMapNames( rData.GetMapNames() );
}
@@ -194,12 +192,8 @@ FontMetric OutputDevice::GetFontMetric() const
aMetric.SetOrientation( pFontInstance->mnOwnOrientation );
else
aMetric.SetOrientation( xFontMetric->GetOrientation() );
- if( !pFontInstance->mxFontMetric->IsKernable() )
- aMetric.SetKerning( maFont.GetKerning() & ~FontKerning::FontSpecific );
// set remaining metric fields
- aMetric.SetBuiltInFontFlag( xFontMetric->IsBuiltInFont() );
- aMetric.SetScalableFlag( xFontMetric->IsScalable() );
aMetric.SetFullstopCenteredFlag( xFontMetric->IsFullstopCentered() );
aMetric.SetBulletOffset( xFontMetric->GetBulletOffset() );
aMetric.SetAscent( ImplDevicePixelToLogicHeight( xFontMetric->GetAscent() + mnEmphasisAscent ) );
@@ -572,7 +566,7 @@ void OutputDevice::ImplRefreshFontData( const bool bNewFontLists )
{
if( mpPDFWriter )
{
- mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone( true );
+ mpFontCollection = pSVData->maGDIData.mpScreenFontList->Clone();
mpFontCache = new ImplFontCache();
}
else
@@ -1116,9 +1110,7 @@ bool OutputDevice::ImplNewFont() const
// enable kerning array if requested
if ( maFont.GetKerning() & FontKerning::FontSpecific )
{
- // TODO: test if physical font supports kerning and disable if not
- if( pFontInstance->mxFontMetric->IsKernable() )
- mbKerning = true;
+ mbKerning = true;
}
else
{
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index dd68e0b8647d..8e3d2dc0d212 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -459,22 +459,6 @@ void Window::SetZoomedPointFont(vcl::RenderContext& rRenderContext, const vcl::F
aSize.Height() = WinFloatRound(n);
aFont.SetFontSize(aSize);
SetPointFont(rRenderContext, aFont);
-
- // Use another font if the representation is to be scaled,
- // and the actual font is not scalable
- FontMetric aMetric = rRenderContext.GetFontMetric();
- long nFontDiff = std::abs(rRenderContext.GetFont().GetFontSize().Height() - aMetric.GetFontSize().Height());
- if ((aMetric.GetType() == TYPE_RASTER) && (nFontDiff >= 2))
- {
- DefaultFontType nType;
- if (aMetric.GetPitch() == PITCH_FIXED)
- nType = DefaultFontType::FIXED;
- else
- nType = DefaultFontType::UI_SANS;
- vcl::Font aTempFont = OutputDevice::GetDefaultFont(nType, rRenderContext.GetSettings().GetLanguageTag().getLanguageType(), GetDefaultFontFlags::NONE);
- aFont.SetFamilyName(aTempFont.GetFamilyName());
- SetPointFont(rRenderContext, aFont);
- }
}
else
{
diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
index 54006e1aac01..4f41cb7d1650 100644
--- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
+++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
@@ -365,8 +365,6 @@ FreetypeFontFace::FreetypeFontFace( FreetypeFontInfo* pFI, const FontAttributes&
: PhysicalFontFace( rDFA ),
mpFreetypeFontInfo( pFI )
{
- SetBuiltInFontFlag( false );
- SetOrientationFlag( true );
}
LogicalFontInstance* FreetypeFontFace::CreateFontInstance( FontSelectPattern& rFSD ) const
@@ -573,10 +571,6 @@ void FreetypeFont::GetFontMetric(ImplFontMetricDataRef& rxTo) const
{
rxTo->FontAttributes::operator =(mpFontInfo->GetFontAttributes());
- rxTo->SetScalableFlag( true ); // FIXME: Shouldn't this check FT_IS_SCALABLE( maFaceFT )?
- rxTo->SetTrueTypeFlag( FT_IS_SFNT( maFaceFT ) != 0 );
- rxTo->SetBuiltInFontFlag( true );
- rxTo->SetKernableFlag( FT_HAS_KERNING( maFaceFT ) != 0 );
rxTo->SetOrientation( GetFontSelData().mnOrientation );
//Always consider [star]symbol as symbol fonts
diff --git a/vcl/unx/generic/print/genpspgraphics.cxx b/vcl/unx/generic/print/genpspgraphics.cxx
index 7a25889ee191..2c51d04defbc 100644
--- a/vcl/unx/generic/print/genpspgraphics.cxx
+++ b/vcl/unx/generic/print/genpspgraphics.cxx
@@ -892,12 +892,7 @@ FontAttributes GenPspGraphics::Info2FontAttributes( const psp::FastPrintFontInfo
aDFA.SetWidthType( rInfo.m_eWidth );
aDFA.SetPitch( rInfo.m_ePitch );
aDFA.SetSymbolFlag( (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL) );
- aDFA.SetSubsettableFlag( rInfo.m_bSubsettable );
- aDFA.SetEmbeddableFlag(false);
aDFA.SetQuality(512);
- aDFA.SetBuiltInFontFlag(false);
-
- aDFA.SetOrientationFlag( true );
// add font family name aliases
::std::list< OUString >::const_iterator it = rInfo.m_aAliases.begin();
diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx
index 4a3d61d53ed9..32fb4a79e21a 100644
--- a/vcl/win/gdi/salfont.cxx
+++ b/vcl/win/gdi/salfont.cxx
@@ -515,7 +515,7 @@ inline BYTE ImplPitchToWin( FontPitch ePitch )
}
static FontAttributes WinFont2DevFontAttributes( const ENUMLOGFONTEXW& rEnumFont,
- const NEWTEXTMETRICW& rMetric, DWORD nFontType )
+ const NEWTEXTMETRICW& rMetric)
{
FontAttributes aDFA;
@@ -542,46 +542,13 @@ static FontAttributes WinFont2DevFontAttributes( const ENUMLOGFONTEXW& rEnumFont
if( p < pEnd )
aDFA.SetStyleName(OUString(reinterpret_cast<const sal_Unicode*>(pStyleName)));
- // get device specific font attributes
- aDFA.SetOrientationFlag( ((nFontType & RASTER_FONTTYPE) == 0) );
- aDFA.SetBuiltInFontFlag( ((rMetric.tmPitchAndFamily & TMPF_DEVICE) != 0) );
-
- aDFA.SetEmbeddableFlag( false );
- aDFA.SetSubsettableFlag( false );
- if( 0 != (rMetric.ntmFlags & (NTM_TT_OPENTYPE | NTM_PS_OPENTYPE))
- || 0 != (rMetric.tmPitchAndFamily & TMPF_TRUETYPE))
- aDFA.SetSubsettableFlag( true );
- else if( 0 != (rMetric.ntmFlags & NTM_TYPE1) ) // TODO: implement subsetting for type1 too
- aDFA.SetEmbeddableFlag( true );
-
// heuristics for font quality
- // - standard-type1 > opentypeTT > truetype > non-standard-type1 > raster
- // - subsetting > embedding > none
+ // - opentypeTT > truetype
aDFA.SetQuality( 0 );
if( rMetric.tmPitchAndFamily & TMPF_TRUETYPE )
aDFA.IncreaseQualityBy( 50 );
if( 0 != (rMetric.ntmFlags & (NTM_TT_OPENTYPE | NTM_PS_OPENTYPE)) )
aDFA.IncreaseQualityBy( 10 );
- if( aDFA.CanSubset() )
- aDFA.IncreaseQualityBy( 200 );
- else if( aDFA.CanEmbed() )
- aDFA.IncreaseQualityBy( 100 );
-
- // #i38665# prefer Type1 versions of the standard postscript fonts
- if( aDFA.CanEmbed() )
- {
- if( aDFA.GetFamilyName() == "AvantGarde"
- || aDFA.GetFamilyName() == "Bookman"
- || aDFA.GetFamilyName() == "Courier"
- || aDFA.GetFamilyName() == "Helvetica"
- || aDFA.GetFamilyName() == "NewCenturySchlbk"
- || aDFA.GetFamilyName() == "Palatino"
- || aDFA.GetFamilyName() == "Symbol"
- || aDFA.GetFamilyName() == "Times"
- || aDFA.GetFamilyName() == "ZapfChancery"
- || aDFA.GetFamilyName() == "ZapfDingbats" )
- aDFA.IncreaseQualityBy( 500 );
- }
// TODO: add alias names
return aDFA;
@@ -597,7 +564,7 @@ static WinFontFace* ImplLogMetricToDevFontDataW( const ENUMLOGFONTEXW* pLogFont,
nHeight = pMetric->tmHeight - pMetric->tmInternalLeading;
WinFontFace* pData = new WinFontFace(
- WinFont2DevFontAttributes(*pLogFont, *pMetric, nFontType),
+ WinFont2DevFontAttributes(*pLogFont, *pMetric),
nHeight,
pLogFont->elfLogFont.lfCharSet,
pMetric->tmPitchAndFamily );
@@ -1132,25 +1099,6 @@ void WinSalGraphics::GetFontMetric( ImplFontMetricDataRef& rxFontMetric, int nFa
rxFontMetric->SetItalic(aWinMetric.tmItalic ? ITALIC_NORMAL : ITALIC_NONE);
rxFontMetric->SetSlant( 0 );
- // device dependent font attributes
- rxFontMetric->SetBuiltInFontFlag( (aWinMetric.tmPitchAndFamily & TMPF_DEVICE) != 0 );
- rxFontMetric->SetScalableFlag( (aWinMetric.tmPitchAndFamily & (TMPF_VECTOR|TMPF_TRUETYPE)) != 0 );
- rxFontMetric->SetTrueTypeFlag( (aWinMetric.tmPitchAndFamily & TMPF_TRUETYPE) != 0 );
- if( rxFontMetric->IsScalable() )
- {
- // check if there are kern pairs
- // TODO: does this work with GPOS kerning?
- DWORD nKernPairs = ::GetKerningPairsA( getHDC(), 0, nullptr );
- rxFontMetric->SetKernableFlag( (nKernPairs > 0) );
- }
- else
- {
- // bitmap fonts cannot be rotated directly
- rxFontMetric->SetOrientation( 0 );
- // bitmap fonts have no kerning
- rxFontMetric->SetKernableFlag( false );
- }
-
// transformation dependent font metrics
rxFontMetric->SetWidth( static_cast<int>( mfFontScale[nFallbackLevel] * aWinMetric.tmAveCharWidth ) );
@@ -1378,14 +1326,11 @@ static bool ImplGetFontAttrFromFile( const OUString& rFontFileURL,
// get FontAttributes from a *fot file
// TODO: use GetTTGlobalFontInfo() to access the font directly
rDFA.SetQuality( 1000 );
- rDFA.SetBuiltInFontFlag( true );
rDFA.SetFamilyType(FAMILY_DONTKNOW);
rDFA.SetWidthType(WIDTH_DONTKNOW);
rDFA.SetWeight(WEIGHT_DONTKNOW);
rDFA.SetItalic(ITALIC_DONTKNOW);
rDFA.SetPitch(PITCH_DONTKNOW);
- rDFA.SetSubsettableFlag( true );
- rDFA.SetEmbeddableFlag( false );
// Create temporary file name
char aFileName[] = "soAAT.fot";
@@ -1471,7 +1416,6 @@ bool WinSalGraphics::AddTempDevFont( PhysicalFontCollection* pFontCollection,
FontAttributes aDFA;
aDFA.SetFamilyName(rFontName);
aDFA.SetQuality( 1000 );
- aDFA.SetBuiltInFontFlag( true );
// Retrieve font name from font resource
if( aDFA.GetFamilyName().isEmpty() )
@@ -1493,8 +1437,6 @@ bool WinSalGraphics::AddTempDevFont( PhysicalFontCollection* pFontCollection,
aDFA.SetWeight(WEIGHT_DONTKNOW);
aDFA.SetItalic(ITALIC_DONTKNOW);
aDFA.SetPitch(PITCH_DONTKNOW);
- aDFA.SetSubsettableFlag( true );
- aDFA.SetEmbeddableFlag( false );
/*
// TODO: improve FontAttributes using the "font resource file"
@@ -2065,29 +2007,9 @@ void WinSalGraphics::FreeEmbedFontData( const void* pData, long /*nLen*/ )
delete[] static_cast<char const *>(pData);
}
-const Ucs2SIntMap* WinSalGraphics::GetFontEncodingVector( const PhysicalFontFace* pFont, const Ucs2OStrMap** pNonEncoded, std::set<sal_Unicode> const**)
+const Ucs2SIntMap* WinSalGraphics::GetFontEncodingVector(const PhysicalFontFace*, const Ucs2OStrMap**, std::set<sal_Unicode> const**)
{
- // TODO: even for builtin fonts we get here... why?
- if( !pFont->CanEmbed() )
- return nullptr;
-
- // fill the encoding vector
- // currently no nonencoded vector
- if( pNonEncoded )
- *pNonEncoded = nullptr;
-
- const WinFontFace* pWinFontData = static_cast<const WinFontFace*>(pFont);
- const Ucs2SIntMap* pEncoding = pWinFontData->GetEncodingVector();
- if( pEncoding == nullptr )
- {
- Ucs2SIntMap* pNewEncoding = new Ucs2SIntMap;
- for( sal_Unicode i = 32; i < 256; ++i )
- (*pNewEncoding)[i] = i;
- pWinFontData->SetEncodingVector( pNewEncoding );
- pEncoding = pNewEncoding;
- }
-
- return pEncoding;
+ return nullptr;
}
void WinSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
@@ -2106,78 +2028,59 @@ void WinSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
HFONT hOldFont = nullptr;
ImplDoSetFont( &aIFSD, fScale, hOldFont );
- if( pFont->CanSubset() )
- {
- // get raw font file data
- const RawFontData xRawFontData( getHDC() );
- if( !xRawFontData.get() )
- return;
-
- // open font file
- sal_uInt32 nFaceNum = 0;
- if( !*xRawFontData.get() ) // TTC candidate
- nFaceNum = ~0U; // indicate "TTC font extracts only"
-
- ScopedTrueTypeFont aSftTTF;
- int nRC = aSftTTF.open( xRawFontData.get(), xRawFontData.size(), nFaceNum );
- if( nRC != SF_OK )
- return;
-
- int nGlyphs = GetTTGlyphCount( aSftTTF.get() );
- if( nGlyphs > 0 )
- {
- rWidths.resize(nGlyphs);
- std::vector<sal_uInt16> aGlyphIds(nGlyphs);
- for( int i = 0; i < nGlyphs; i++ )
- aGlyphIds[i] = sal_uInt16(i);
- TTSimpleGlyphMetrics* pMetrics = ::GetTTSimpleGlyphMetrics( aSftTTF.get(),
- &aGlyphIds[0],
- nGlyphs,
- bVertical );
- if( pMetrics )
- {
- for( int i = 0; i< nGlyphs; i++ )
- rWidths[i] = pMetrics[i].adv;
- free( pMetrics );
- rUnicodeEnc.clear();
- }
- const WinFontFace* pWinFont = static_cast<const WinFontFace*>(pFont);
- FontCharMapRef xFCMap = pWinFont->GetFontCharMap();
- SAL_WARN_IF( !xFCMap.Is() || !xFCMap->GetCharCount(), "vcl", "no map" );
+ // get raw font file data
+ const RawFontData xRawFontData( getHDC() );
+ if( !xRawFontData.get() )
+ return;
- int nCharCount = xFCMap->GetCharCount();
- sal_uInt32 nChar = xFCMap->GetFirstChar();
- for( int i = 0; i < nCharCount; i++ )
- {
- if( nChar < 0x00010000 )
- {
- sal_uInt16 nGlyph = ::MapChar( aSftTTF.get(),
- static_cast<sal_Ucs>(nChar),
- bVertical );
- if( nGlyph )
- rUnicodeEnc[ static_cast<sal_Unicode>(nChar) ] = nGlyph;
- }
- nChar = xFCMap->GetNextChar( nChar );
- }
+ // open font file
+ sal_uInt32 nFaceNum = 0;
+ if( !*xRawFontData.get() ) // TTC candidate
+ nFaceNum = ~0U; // indicate "TTC font extracts only"
- xFCMap = nullptr;
- }
- }
- else if( pFont->CanEmbed() )
+ ScopedTrueTypeFont aSftTTF;
+ int nRC = aSftTTF.open( xRawFontData.get(), xRawFontData.size(), nFaceNum );
+ if( nRC != SF_OK )
+ return;
+
+ int nGlyphs = GetTTGlyphCount( aSftTTF.get() );
+ if( nGlyphs > 0 )
{
- // get individual character widths
- rWidths.clear();
- rUnicodeEnc.clear();
- rWidths.reserve( 224 );
- for( sal_Unicode i = 32; i < 256; ++i )
+ rWidths.resize(nGlyphs);
+ std::vector<sal_uInt16> aGlyphIds(nGlyphs);
+ for( int i = 0; i < nGlyphs; i++ )
+ aGlyphIds[i] = sal_uInt16(i);
+ TTSimpleGlyphMetrics* pMetrics = ::GetTTSimpleGlyphMetrics( aSftTTF.get(),
+ &aGlyphIds[0],
+ nGlyphs,
+ bVertical );
+ if( pMetrics )
{
- int nCharWidth = 0;
- if( ::GetCharWidth32W( getHDC(), i, i, &nCharWidth ) )
+ for( int i = 0; i< nGlyphs; i++ )
+ rWidths[i] = pMetrics[i].adv;
+ free( pMetrics );
+ rUnicodeEnc.clear();
+ }
+ const WinFontFace* pWinFont = static_cast<const WinFontFace*>(pFont);
+ FontCharMapRef xFCMap = pWinFont->GetFontCharMap();
+ SAL_WARN_IF( !xFCMap.Is() || !xFCMap->GetCharCount(), "vcl", "no map" );
+
+ int nCharCount = xFCMap->GetCharCount();
+ sal_uInt32 nChar = xFCMap->GetFirstChar();
+ for( int i = 0; i < nCharCount; i++ )
+ {
+ if( nChar < 0x00010000 )
{
- rUnicodeEnc[ i ] = rWidths.size();
- rWidths.push_back( nCharWidth );
+ sal_uInt16 nGlyph = ::MapChar( aSftTTF.get(),
+ static_cast<sal_Ucs>(nChar),
+ bVertical );
+ if( nGlyph )
+ rUnicodeEnc[ static_cast<sal_Unicode>(nChar) ] = nGlyph;
}
+ nChar = xFCMap->GetNextChar( nChar );
}
+
+ xFCMap = nullptr;
}
}
commit 297fce55c46b772c835d3d8fc4f9dd678fa821df
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Tue Nov 29 08:25:57 2016 +0200
Use Freetypefont::GetFontMetric()
Change-Id: I1c0d2bc228d5b2006bba24621be3a75f61f4432b
Reviewed-on: https://gerrit.libreoffice.org/31345
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
(cherry picked from commit 63ca9554f24194521cfbc7fa90bfef37ea7759c1)
(cherry picked from commit 4017309721bd3e0439246c3d63afec809d40b81a)
diff --git a/vcl/unx/generic/print/genpspgraphics.cxx b/vcl/unx/generic/print/genpspgraphics.cxx
index 44924dbc6152..7a25889ee191 100644
--- a/vcl/unx/generic/print/genpspgraphics.cxx
+++ b/vcl/unx/generic/print/genpspgraphics.cxx
@@ -774,33 +774,13 @@ void GenPspGraphics::ClearDevFontCache()
GlyphCache::GetInstance().ClearFontCache();
}
-void GenPspGraphics::GetFontMetric( ImplFontMetricDataRef& rxFontMetric, int )
+void GenPspGraphics::GetFontMetric(ImplFontMetricDataRef& rxFontMetric, int nFallbackLevel)
{
- const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
- psp::PrintFontInfo aInfo;
+ if (nFallbackLevel >= MAX_FALLBACK)
+ return;
- if (rMgr.getFontInfo (m_pPrinterGfx->GetFontID(), aInfo))
- {
- FontAttributes aDFA = Info2FontAttributes( aInfo );
- static_cast< FontAttributes& >(*rxFontMetric) = aDFA;
- rxFontMetric->SetBuiltInFontFlag( aDFA.IsBuiltInFont() );
- rxFontMetric->SetScalableFlag( true );
- rxFontMetric->SetTrueTypeFlag( false ); // FIXME, needed?
-
- rxFontMetric->SetOrientation( m_pPrinterGfx->GetFontAngle() );
- rxFontMetric->SetSlant( 0 );
-
- sal_Int32 nTextHeight = m_pPrinterGfx->GetFontHeight();
- sal_Int32 nTextWidth = m_pPrinterGfx->GetFontWidth();
- if( ! nTextWidth )
- nTextWidth = nTextHeight;
-
- rxFontMetric->SetWidth( nTextWidth );
- rxFontMetric->SetAscent( ( aInfo.m_nAscend * nTextHeight + 500 ) / 1000 );
- rxFontMetric->SetDescent( ( aInfo.m_nDescend * nTextHeight + 500 ) / 1000 );
- rxFontMetric->SetInternalLeading( ( aInfo.m_nLeading * nTextHeight + 500 ) / 1000 );
- rxFontMetric->SetExternalLeading( 0 );
- }
+ if (m_pFreetypeFont[nFallbackLevel])
+ m_pFreetypeFont[nFallbackLevel]->GetFontMetric(rxFontMetric);
}
bool GenPspGraphics::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect )
commit ac360e56999b50ec23a6915277131745366842c4
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Tue Nov 29 08:17:25 2016 +0200
Drop assigned but never used parameter
Change-Id: If043960898b6388df7a5ecf5fe34172ed08bba9f
Reviewed-on: https://gerrit.libreoffice.org/31344
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
(cherry picked from commit 0f4777a19634e64db884f39611be0d5075ea24e3)
(cherry picked from commit 58740f2b26a34234633b4e756dc1bf3350b2b6eb)
diff --git a/vcl/inc/unx/glyphcache.hxx b/vcl/inc/unx/glyphcache.hxx
index 28a3665e8e6d..f109e610a6d9 100644
--- a/vcl/inc/unx/glyphcache.hxx
+++ b/vcl/inc/unx/glyphcache.hxx
@@ -157,7 +157,7 @@ public:
const FontSelectPattern& GetFontSelData() const { return maFontSelData; }
- void GetFontMetric( ImplFontMetricDataRef&, long& rFactor ) const;
+ void GetFontMetric(ImplFontMetricDataRef&) const;
const unsigned char* GetTable( const char* pName, sal_uLong* pLength );
int GetEmUnits() const { return maFaceFT->units_per_EM;}
double GetStretch() { return mfStretch; }
diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx
index 9e75162b6caf..d53e18f2efbf 100644
--- a/vcl/unx/generic/gdi/cairotextrender.cxx
+++ b/vcl/unx/generic/gdi/cairotextrender.cxx
@@ -426,10 +426,7 @@ void CairoTextRender::GetFontMetric( ImplFontMetricDataRef& rxFontMetric, int nF
return;
if( mpFreetypeFont[nFallbackLevel] != nullptr )
- {
- long rDummyFactor;
- mpFreetypeFont[nFallbackLevel]->GetFontMetric( rxFontMetric, rDummyFactor );
- }
+ mpFreetypeFont[nFallbackLevel]->GetFontMetric(rxFontMetric);
}
bool CairoTextRender::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect )
diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
index 67b8d62a66d5..54006e1aac01 100644
--- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
+++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
@@ -569,7 +569,7 @@ FreetypeFont::~FreetypeFont()
}
-void FreetypeFont::GetFontMetric( ImplFontMetricDataRef& rxTo, long& rFactor ) const
+void FreetypeFont::GetFontMetric(ImplFontMetricDataRef& rxTo) const
{
rxTo->FontAttributes::operator =(mpFontInfo->GetFontAttributes());
@@ -585,8 +585,6 @@ void FreetypeFont::GetFontMetric( ImplFontMetricDataRef& rxTo, long& rFactor ) c
FT_Activate_Size( maSizeFT );
- rFactor = 0x100;
-
sal_uLong nHhea = 0;
const uint8_t* pHheaBuf = mpFontInfo->GetTable("hhea", &nHhea);
const std::vector<uint8_t> rHhea(pHheaBuf, pHheaBuf + nHhea);
commit b43c98776c9ae04e88e21373e59f828c7465d43b
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Fri Nov 25 14:00:07 2016 +0200
Kill old Core Text layout engine
Reviewed-on: https://gerrit.libreoffice.org/31232
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny at eglug.org>
(cherry picked from commit d761d952f460e1943e94c5a7556b3b01d2259666)
Change-Id: If80d65899255d8be72f374fbec232d103a08a006
(cherry picked from commit afee24b73e379bf7f9e9d2cf647d8686896f9f8a)
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 5e71bf1dcab9..1b45b8703bcf 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -142,11 +142,10 @@ enum class SalLayoutFlags
SubstituteDigits = 0x0400,
KashidaJustification = 0x0800,
ForFallback = 0x2000,
- DrawBullet = 0x4000,
};
namespace o3tl
{
- template<> struct typed_flags<SalLayoutFlags> : is_typed_flags<SalLayoutFlags, 0x6f77> {};
+ template<> struct typed_flags<SalLayoutFlags> : is_typed_flags<SalLayoutFlags, 0x2f77> {};
}
typedef std::vector< Rectangle > MetricVector;
@@ -1180,7 +1179,7 @@ private:
SAL_DLLPRIVATE void ImplInitAboveTextLineSize();
- SAL_DLLPRIVATE bool ImplDrawTextDirect( SalLayout&, bool bTextLines, sal_uInt32 flags = 0 );
+ SAL_DLLPRIVATE void ImplDrawTextDirect( SalLayout&, bool bTextLines);
SAL_DLLPRIVATE void ImplDrawSpecialText( SalLayout& );
SAL_DLLPRIVATE void ImplDrawTextRect( long nBaseX, long nBaseY, long nX, long nY, long nWidth, long nHeight );
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 86a3de71f03b..e333d4680358 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -1490,11 +1490,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
nScrPos = pScrArray[ 0 ];
- if( bBullet
-#if defined(MACOSX) || defined(IOS)
- && OutputDevice::UseCommonLayout()
-#endif
- )
+ if( bBullet )
{
// !!! HACK !!!
// The Arabic layout engine requires some context of the string
@@ -1557,23 +1553,11 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
if ( bSwitchH2V )
rInf.GetFrame()->SwitchHorizontalToVertical( aTextOriginPos );
-#if defined(MACOSX) || defined(IOS)
- if (!OutputDevice::UseCommonLayout())
- {
- rInf.GetOut().DrawTextArray( aTextOriginPos, rInf.GetText(),
- pKernArray, rInf.GetIdx(), 1, bBullet ? SalLayoutFlags::DrawBullet : SalLayoutFlags::NONE );
- }
- else
- {
-#endif
rInf.GetOut().DrawTextArray( aTextOriginPos, rInf.GetText(),
pKernArray.get(), rInf.GetIdx(), 1 );
if( bBullet )
rInf.GetOut().DrawTextArray( aTextOriginPos, *pStr, pKernArray.get(),
rInf.GetIdx() ? 1 : 0, 1 );
-#if defined(MACOSX) || defined(IOS)
- }
-#endif
}
else
{
@@ -1754,15 +1738,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
if ( bSwitchH2V )
rInf.GetFrame()->SwitchHorizontalToVertical( aTextOriginPos );
-#if defined(MACOSX) || defined(IOS)
- if (!OutputDevice::UseCommonLayout())
- {
- rInf.GetOut().DrawTextArray( aTextOriginPos, *pStr, pKernArray + nOffs,
- rInf.GetIdx() + nOffs , nLen - nOffs, bBullet ? SalLayoutFlags::DrawBullet : SalLayoutFlags::NONE );
- }
- else
- {
-#endif
// If we paint bullets instead of spaces, we use a copy of
// the paragraph string. For the layout engine, the copy
// of the string has to be an environment of the range which
@@ -1817,9 +1792,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
pTmpFont->SetStrikeout(aPreviousStrikeout);
rInf.GetOut().Pop();
}
-#if defined(MACOSX) || defined(IOS)
- }
-#endif
}
}
}
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 7465d47f5b66..0588a419c47a 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -426,9 +426,7 @@ vcl_quartz_code= \
vcl/quartz/salvd \
vcl_coretext_code= \
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list