Age | Commit message (Collapse) | Author |
|
XGraphicDevice::getPhysicalResolution returns pixel per millimeter
(offapi/com/sun/star/rendering/XGraphicDevice.idl). The claculation
was wrong (multiplying by 25.4 instead of dividing) since commit
3161cf3741e045092d342f9752b61b9b36eee056 (INTEGRATION: CWS
dxliberate01 (1.1.2); FILE ADDED, 2027-11-01).
Change-Id: I92f33347d48c48c37d02c767fcadcf35d1271e3f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180152
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
|
|
modified: wizards/Package_scriptforge.mk
new file: wizards/source/scriptforge/po/fr.po
Change-Id: I4cb0c93c2c8b335d8319835a383255e02b9b04ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180143
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
|
|
Sometimes we end up in situations where a SwNode(BigPtrEntry) is still alive,
but has been removed from the SwNodes(BigPtrArray) data structure.
And then we call SwNode::GetIndex and it reports a bogus value.
So clear those back-pointers to avoid reading incorrect data.
Change-Id: I95d4f99bf169eeb1c3290432ff8b64ca0aa69275
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180126
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
<github.com/llvm/llvm-project/commit/cfe26358e3051755961fb1f3b46328dc2c326895>
"Reapply '[clang] Avoid re-evaluating field bitwidth'"
Change-Id: Ic31d5cd8251d0f83e7589e2f00e3c34789c75bad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180150
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
|
|
Change-Id: I68c0e7693ee6f2df64189957807a8a367bb1d122
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180142
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
|
|
+ add test for reading the tree
Change-Id: I2f0e9d1852d20b3aa20ec0bcdd3ebc65370d15dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180124
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ia474a208d5a562e424df76ff389cfcc4e3f2b1fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179817
Tested-by: Jenkins
Reviewed-by: Aron Budea <aron.budea@collabora.com>
|
|
The ShutdownIcon class on macOS handles the menubar for when there are
no windows displayed. So copy the entire menubar's tree to a native
menu and use that native menu as the default menubar.
Note: not all menu items may crash without a C++ window so currently
the Tools > Configure menu must force the Start Center window to
reappear before displaying its dialog.
Change-Id: I3190da0dffdd6c7181939aec71954e067689d081
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179980
Tested-by: Jenkins
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
|
|
* and fixes UBSAN by iterating over WriterListeners in GetInfo/SwClientNotify for safe casting
Change-Id: If564111ac9529dc18daf1b5a30ac355023331b0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179663
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
|
|
and
cid#1638657 COPY_INSTEAD_OF_MOVE
Change-Id: I866cb3f7550260c0dd14e14beb94144348665226
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180134
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I341c5b9baf7cc39b8d543df89b4c46a59bf2a9e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180138
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
|
|
The
XReetangle(rangename)
property returns a com.sun.star.awt.Rectangle
structure describing the coordinates (in pixels)
on the screen where the given range is
located.
This opens the door to effective interactivity
in calc sheets with the use of popup menus.
Example:
r = calc.XRectangle("B2")
menu = CreateScriptService("PopupMenu", , _
X := r.X + r.Width/2, Y := r.Y + r.Height/2)
initializes a popup menu centered on the given
cell.
The property exists in Basic and Python.
The SF_Calc help page should be updated
according to the actual patch.
Change-Id: I2a97c5c7b5bf84d36a2aab5e4b822e30c9d53d8e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180140
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
|
|
+ LibreOffice name was hard-coded in dialog, change to %PRODUCTNAME
+ Add a11y in extnded tips.
Change-Id: Ie32c9913124f7d230c3e72a7acef3f76c314f462
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180094
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Jenkins
|
|
Change styles of objects of first slide to automatic styles.
It preserves styles when affecting Master Page.
Change-Id: I664679a2772a45bee9afa46ad027553cdf060704
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179975
Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
Tested-by: Jenkins
|
|
Change-Id: I100b6c5b34d9c377ab2458dda1cf9af14767c6f0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179892
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
|
|
Add support to PDF export to handle /Em (Emphasis) and /Strong
structure element and fallback to /Span if the PDF version is not
PDF 2.0.
Use /Em if "Emphasis" char style is used and /Strong if "Strong
Emphasis" char style is used.
Change-Id: I33d572748592bb20c7daf55716d1f2cc3e6bd989
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180123
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Add support to PDF export to handle /Title structure element and
fallback to /P (paragraph) if the PDF version is not PDF 2.0.
Then add /Title structure element in writer if the style name of
the paragraph is "Title".
Change-Id: Ia8faab09bf3c97423d154deb7f1eb69860ce857a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180122
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I7d6ab24fb8d295a9e21a475e850374ba7d2becf7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180133
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: If327c8df23c40a25d8a4fe99dc5e97aca2a2b31b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180119
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
|
|
- Create new comment on same position for online
- This will fix the edit comment problem described in Bug 164374
Change-Id: If0aae9ad1e59eae8c7c09c72e8d7b0df5dbb38bf
(cherry picked from commit 0cce452b93ce657e4baedb5b1574184b32e950e3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179884
Tested-by: Jenkins
Reviewed-by: vivek javiya <vivek.javiya@collabora.com>
|
|
Change-Id: I7a20b8e9ffa99c2010ff656dda2758abdb17e1f5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180135
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
If a PDF file containing artifacts is added to a document as an image,
and the document is then exported as a tagged PDF, these artifacts are
placed into a structure element (e.g., figure), which is not allowed.
This fix removes unnecessary artifact tags from the content stream.
Change-Id: I590ebec9a7aecdaa42520008824469bc8a9ff65b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180041
Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de>
Tested-by: Jenkins
|
|
maybe since:
commit 8cb4db941f91cc234dd18c61f8b1e51f65360d1f
CommitDate: Wed Aug 31 08:29:49 2022 +0200
tdf#30731: Improve caret travelling in Writer
#3 0x00007ffff74dabf0 in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () at /lib64/libstdc++.so.6
#4 0x00007fffce3e97b3 in std::clamp<int> (__val=@0x7ffffffe52b4: 1897, __lo=@0x7ffffffe51f0: 1900, __hi=@0x7ffffffe51e8: 1897)
at /usr/bin/../lib/gcc/x86_64-redhat-linux/14/../../../../include/c++/14/bits/stl_algo.h:3625
#5 0x00007fffce3e41ff in GetTextArray
(rDevice=..., rStr='x' <repeats 200 times>..., rDXAry=std::__debug::vector of length 0, capacity 0, nIndex=1875, nLen=25, nLayoutContext=std::optional = {...}, nMaxAscent=0x7ffffffe5680, nMaxDescent=0x7ffffffe5678, bCaret=true, layoutCache=0x0) at core/sw/source/core/txtnode/fntcache.cxx:763
#6 0x00007fffce3e2a47 in SwFntObj::GetTextSize (this=0x6134340, rInf=...) at core/sw/source/core/txtnode/fntcache.cxx:1734
#7 0x00007fffce461147 in SwSubFont::GetTextSize_ (this=0x6281450, rInf=...) at core/sw/source/core/txtnode/swfont.cxx:1039
#8 0x00007fffce1f953c in SwFont::GetTextSize_ (this=0x6281450, rInf=...) at sw/source/core/inc/swfont.hxx:321
#9 0x00007fffce2234e2 in SwTextSizeInfo::GetTextSize (this=0x7ffffffe6b80, nLayoutContext=std::optional = {...}) at core/sw/source/core/text/inftxt.cxx:439
#10 0x00007fffce2f2217 in SwTextPortion::GetTextSize (this=0x62a3d40, rInf=...) at core/sw/source/core/text/portxt.cxx:586
#11 0x00007fffce250b8c in SwTextCursor::GetCharRect_ (this=0x7ffffffe6fc8, pOrig=0x7ffffffe81c8, nOfst=..., pCMS=0x7ffffffe6e20) at core/sw/source/core/text/itrcrsr.cxx:956
#12 0x00007fffce24d978 in SwTextCursor::GetCharRect (this=0x7ffffffe6fc8, pOrig=0x7ffffffe81c8, nOfst=..., pCMS=0x7ffffffe6e20, nMax=20604)
at core/sw/source/core/text/itrcrsr.cxx:1281
#13 0x00007fffce1f08c1 in SwTextFrame::GetAutoPos (this=0x6259250, rOrig=SwRect = {...}, rPos=SwPosition (node 28, offset 1897)) at core/sw/source/core/text/frmcrsr.cxx:430
Change-Id: I8230c9cbb99126b513bea38517b1dbfac5a50f4b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180131
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Ia1d2686020bdf8aae38f487e2468953cd0a389c7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180109
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
|
|
The Methods() method returns the list of methods
present in each class.
It is unused so far (vs. Properties() is used
in the code) => a wrong list has no
consequences. It is however reserved for
future use.
The list was incomplete in Array class.
Change-Id: I3e0522d6669d2732c68e52e4021ffb5c8a3fb108
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180127
Tested-by: Jenkins
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
|
|
instead of cleverly deciding that one format is actually another
format, depending on the current state of the supportsBitmap32()
call, just have explicit values that say what the actual format is.
This patch should have no functional affect, but will make
upcoming patches simpler.
Change-Id: I07f127a3e36800aa4cee034261c2e1216d8e8da1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180089
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Hard-coded version numbers are modified
from 25.2 to 25.8.
Many changes in po files due to the alphabetical
sequence of keys after the introduction of the
new "case-sensitive" keys feature.
Before this the dict.Keys() method delivered
the keys as an array in the order of creation.
No effect on actual user scripts.
Change-Id: Iee0c48eca22d17ad892278398c9125912b8b2b3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180120
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
|
|
Change-Id: I6a4bd79a974a4408db19874625422731739fba70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180113
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Icfa717f28ea589161632d3cad978da4f4b105fdc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180117
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: I295787301985e9209e4b9397e638869bee1d4ecf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180115
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Iaf3fa835b43e8272b4bceaf4cfe6104fd1cd7e34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180114
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: I60c92b959f114b2cb6131fc7f271f002fd793709
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180116
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
|
|
Change-Id: I36544984d78ac8e5c4ebe33c5702f39709bc5d70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180118
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Previously, the menu and submenu of conditional formatting options were technically correct but not very readable. We replaced 'Condition...' with 'Highlight cells with...'.
Change-Id: I9f4c30506fee9b698f95608ace72f37dfd80f2b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168238
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Pedro Silva <pedro.silva@collabora.com>
Reviewed-by: Pedro Silva <pedro.silva@collabora.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 18d295cb585c8dbed1860d10c1c22c10a15bee14)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168445
Tested-by: Jenkins
Reviewed-by: vivek javiya <vivek.javiya@collabora.com>
|
|
Moves the StructElement out of PDFWriter and changes it to enum
class. This makes it mroe type safe, easier to search and more
clear what type we are using.
Change-Id: Icf469319a01f58397b131c3517bc75fba4072500
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179977
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Setting the value as /Source for attached files as they are the
files added are the original source ODF file. This is optional for
PDF 2.0 but needed for PDF/A-4f.
Change-Id: Ib8ef8844d8ab93411149438902bb3ad8961be9af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179976
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
bug introduced in
commit 45c753aff6468b9761e68bc0bf48ab161cd0cba6
Author: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Fri Sep 28 12:30:01 2018 +0200
svx: pdfium's FPDFImageObj_GetBitmapBgra() is not needed after all
Although the confusion was understandable, since the previous commit
which had introduced FPDFImageObj_GetBitmapBgra, which, despite
its name, actually returned RGB* data
Change-Id: I762f1e963d64b4243e21e26cab31c05f4903af49
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180091
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
regression from
commit 73a46895c5927d68a222b13dc811ea1cceb811a1
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Thu Dec 5 07:58:44 2024 +0200
tdf#119840 speed up SearchForStyleAnchor
We are dealing with a dangling pointer here, so I'm not sure if this
change will be sufficient.
We are very deep inside a series of listener callbacks and events here,
so no idea how to fix the actual problem i.e. not having a dangling
pointer at all.
Change-Id: I8314cd0f906e3b2652e10e55dfe8396abdf02856
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180111
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Declare support for Calc's "Move/Copy Sheet" dialog that shows
up when right-clicking on a sheet in the bottom tabbar showing
sheets and selecting the "Move or Copy Sheet" context menu entry.
This means that native Qt widgets are used for that dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
Change-Id: Ibabfd1188a21c2d6b50595b8133ef297e995642d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180088
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
Actually traverse the hierarchy instead of
looping infinitely in
QtInstanceWidget::has_child_focus when the
initial `pParent` doesn't have focus.
Change-Id: I91daad8c39b21f7874fc6bc77c5ae868f44a301c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180086
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
Change-Id: I777f5094058135bf438545a558074e9ebacdb743
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180110
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
* Update dictionaries from branch 'master'
to d12cf2e15fafeaaaa56330ca8812f15b1c060b08
- Add Punjabi & Oriya
Change-Id: I2d25d1bd617e4628a1b376c837b8cd40efa1cb00
Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/180106
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
|
|
as of macOS 15.2, trying to debug a unit test will fail because
"env" is hardened and we were calling that around our actual
executable. But we don't need that, since we already pass in the
required stuff via a command that is inserted before the call to
lldb.
Change-Id: I4caa91d8ef45326375aa86944b0cee9799acaa59
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180090
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Instead of downloading nuget.exe and then python.exe
as explained in https://lists.freedesktop.org/archives/libreoffice/2025-January/092881.html,
Add python.3.12.8.nupkg to extern and download it as a tarball
to unzip it in external/pythonx86.
find_python.bat will look for python.exe in external/pythonx86/tools
Downloaded from
https://globalcdn.nuget.org/packages/python.3.12.8.nupkg?packageVersion=3.12.8
Change-Id: Ib1638fa66b3983048c2f9a472d00ce365602fcbb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180078
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
|
|
Implement simple Quick Look plugins that generate a preview and/or
thumbnail image using Apple's latest Quick Look APIs. The approach
is to load and render any thumbnail images that may have been
embedded in .od* files when they were last saved.
Fortunately, LibreOffice, OpenOffice, and NeoOffice have been
saving thumbnail images by default in .od* files since at least
the mid-2000s so this approach should work with most unencrypted
.od* files.
Note: the plugins appear to work in unsigned builds using the
following steps to enable them:
1. Install LibreOfficeDev.app from an unsigned .dmg (e.g. nightly
master builds) but the plugins in instdir/LibreOfficeDev.app
in a local build are not usable.
2. Launch LibreOfficeDev.app to register the plugins.
3. Launch the System Preferences application, navigate to the
Login Items & Extensions panel, and in the Extensions section,
click on the icon next to the Quick Look entry to see a list of
installed extensions.
4. If macOS has successfully found and loaded the plugins, there
should be two extensions listed under LibreOfficeDev. If they
are disabled, enable both.
5. Press Command-Option-Escape, select the Finder in the dialog
that appears, and press the Relaunch button.
The Finder should now display the thumbnail images in .od* files.
Change-Id: I094afbc56b684cc85b12ed996e060818bfe8ad46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178393
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
|
|
Print key of the `key` local variable, which is
the one used in the iteration and which gets passed
in the PPDContext::setValue call above, instead of
using `pKey` that was assigned further above but
is generally unrelated here.
Change-Id: Ifdb86b5848dc2d7f0027a3960f43914ea143c018
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180082
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
|
|
Unused since
commit 003a3d7a55d9f83d5b68800d54fdac633b4c281a
Date: Tue Nov 26 17:08:25 2013 +0200
No more uses of printer built in fonts
Change-Id: Idd3e2b0e8a8a2d3e70d194d5ceecbf46924e9638
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180081
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
Change-Id: I94e52914acb29374f4dd1b6ea9c725a12b521416
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180080
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
|
|
It doesn't make use of any non-public members, so doesn't
need to be a friend.
Change-Id: Ie1cb98f32cf87a9e1f3328ac0b0f5f9bf1130f67
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180079
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
|
|
ItemType is useful and faster than RTTI. Until now it was
implemented by a 16-bit member in the base class, plus
(potentially) all constructors having to hand a value
in at item construction type (of type SfxItemType) to
get that member set correctly.
This works, but there is no reliable way to guarantee
coverage, and there have already been cases with missing
SfxItemType - these fallback to '0' and thus all Items
with ItemType() == 0 are assumed equal and might be
static_cast'ed to the wrong classes. Note that I
identified *35* Items that had no correct ItemType
set/implemented actually. It also uses 16-bit per
incarnated Item at runtime.
I thought and realized now a more systematic approach
to do that with a pure virtual function at the Item
itself. That can also be secured by a clang compiler
plugin in the future to keep it working. It uses one
virtual function per derived class, no longer space
in incarnated Items. Also the constructors will get
more simple again.
But the main aspect is security - we cannot afford
Items potentially being held as equal if they are not.
Unfortunately C++ does not offer something like a
'strict pure virtual function' that would force to
be overloaded in every derivation, but the used
methotology and adding a clang test is reasonably
safe.
Have now done the cleanup of previous method.
Change-Id: I04768285f1e9b73d64b0bb87df401944b5d35678
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180017
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|