summaryrefslogtreecommitdiff
path: root/svx
AgeCommit message (Collapse)Author
2021-09-23Related: tdf#144091 svx: fix interaction of transp cell fill and transp shadowMiklos Vajna
This is a follow-up to commit 37a52d30bbfcf1d073779b50139c4dafa507be4b (tdf#144091 svx: fix unwanted blur of shadow from table cell fill, 2021-09-20), where it turned out that the original bugdoc was just a special case of almost full transparency (80%), that's why avoiding the blur fixed the problem. A more general approach instead is to multiply the alpha or the cell fill of table shapes and the alpha of the shadow itself. The end result is the same (80% transparency) for the first bugdoc, but this gives back the blur on the second bugdoc. Change-Id: I63560e3a73473c70157ecee8365ec7154217f269 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122532 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-09-23Add not-quite-ISO date+time with space and milliseconds and locale's separatorEike Rathke
NF_DATETIME_ISO_YYYYMMDD_HHMMSS000 YYYY-MM-DD HH:MM:SS.000 Users may expect to see that if they enter such, instead of the real ISO 8601 "T" format. Change-Id: Iad81750d1c74eedd8d4360163b29ecac98ef6824 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122502 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-09-22xtend loplugin:stringviewparam to starts/endsWith: svxStephan Bergmann
Change-Id: I998b5e7ba3580aabfc454ce3354bffd3d0cb7d61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122479 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-22svx: improve SdrObjEditView::DisposeUndoManager()Miklos Vajna
Addresses the comment at <https://gerrit.libreoffice.org/c/core/+/122151/1/svx/source/svdraw/svdedxv.cxx#2765>, i.e. there can be the case when the undo manager is not an sw::UndoManager (or any other high level undo manager), but it's an EditUndoManager, and in that case we should not clear away the owning pointer to avoid a memory leak. Change-Id: I016cfad0563814d65c8523999c82be7747377171 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122458 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-09-21Add ISO 8601 date+time with milliseconds formatEike Rathke
NF_DATETIME_ISO_YYYYMMDDTHHMMSS000 YYYY-MM-DD"T"HH:MM:SS,000 using either ',' or '.' separator, '.' if Time100SecSep is '.' ',' else A prerequisite for tdf#88359 to not lose data when importing such, especially without "Detect special numbers" on. Change-Id: I02ab682636e6ddbcc4537183a3625ea61662f016 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122400 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-09-21fix !HAVE_FEATURE_DESKTOP build, IsOver->OverlapsCaolán McNamara
and change some commented out cases Change-Id: Icc60b19de7d12a78e7d40e7aa94dae40dc8b60a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122378 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-21vcl: remove OutputDevice's GetDevFontSizeCount() and GetDevFontSize()Chris Sherlock
The OutputDevice::GetDevFontSize() function is only used for non-scalable (bitmap) fonts. We have stopped supporting bitmap fonts since LO 5.3, see tdf#103514: Support for bitmap-only fonts on Windows has been removed (Khaled Hosny) I found the following when removing PhysicalFontFace::SetBitmapSize(): 1. as mnHeight and mnWidth and not set by anyone, I realized I could remove them, which meant removing GetHeight() and GetWidth() 2. PhysicalFontFamily::GetFontHeights() populates heights from the collection of font faces into a sorted vector of font heights taken from PhysicalFontFace. As this no longer exists this function serves no purpose, it has been removed. 3. PhysicalFontFamily::GetDeviceFontSizeList() calls upon PhysicalFontFace::GetFontHeights(). This function takes this sorted list of font heights, and then populates and returns a new list of sizes (or rather, heights). As the heights aren't available any more, this function is also unneeded, so it has been removed. 4. OutputDevice::GetDevFontSizeCount() calls upon PhysicalFontFamily::GetDeviceFontSizeList(). This function has the side effect of initializing the list of fonts. 5. When I checked what calls on GetDevFontSizeCount(), there is only one caller - FontList::GetSizeAry() in svtools. The function returns a standard font size list if the family name is empty, or there are no font sizes (via OutputDevice::GetDevFontSizeCount()). As this will *always* be empty (see chain above) then this function just needs to always return a standard font size list. Thus OutputDevice::GetDevFontSizeCount() and GetFontSizeList() are no longer called upon by anything, so they can be removed. 6. svtool's FontList::GetSizeAry() no longer uses the FontMetric parameter, so this has been removed from the function signature, and cleanup done of the function that calls upon it in svtools, framework, editeng, and desktop. A number of variables that were no longer used due to this change were also removed. 7. This change removed the need for the mpSizeAry unique_ptr in FontList. ImplFontListFontMetric::GetDevice() and mpDevice could also be removed as it was no longer used anywhere. 8. After simplifying GetSizeAry(), it turns out it was the same as GetStdSizeAry(), so removed FontList::GetSizeAry() and used FontList::GetStdSizeAry() in its place. 9. Changing to use GetStdSizeAry() revealed that FontSizeBox::Fill() no longer used the pFontMetric paramter, so this was removed, and call sites updated. 10. Due to change to Fill(): a. SvxFontSizeBox_Base::UpdateFont() no longer uses the const css::awt::FontDescriptor& rCurrentFont parameter, so removed this. This also removed the member variable m_aCurrentFont b. SvxCharNamePage::FillSizeBox_Impl() had a number of newly unused variables removed. c. SwStdFontTabPage::Reset() and SwStdFontTabPage::LoseFocusHdl() had a number of newly unused variables removed. Change-Id: If840e240155c36ed351c63e3136b5b44bb058697 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121932 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-20be more disciplined with SetUpdateLayout on editengineNoel Grandin
save/restore in more places, and check in more places before doing layout, so we dont waste time on expensive layout Change-Id: I311f1f7f97a508da296078e936cb3704938dfdc3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121687 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-20introduce SfxItemSetFixed and use it in DefaultPropertiesNoel Grandin
DefaultProperties::SetObjectItemSet is very hot when loading shapes, and a large chunk of that cost is allocating the pool item array. So use a template class to allocate the array in-line to the class, which means it can be allocated on-stack. Change-Id: Ic53b41f35784726362de38fceb35f8634cddf0a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122310 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-20tdf#144091 svx: fix unwanted blur of shadow from table cell fillMiklos Vajna
Initial render support for shadows of table shapes were added in commit a75bf43a8d6c5dec6dcc86908c142ceec541aa8c (tdf#129961 svx: add rendering for table shadow as direct format, 2020-12-02). That already noticed a trick with the shadow of table shapes: the shadow is generate from the cell fill and the border, but not from the text. An additional trick is that when blur is enabled for the table shape's shadow, then only the border should be blurred, not the cell fill. In the bug document's case, the effective cell background was gray, with a semi-transparent red shadow. We used to render cc0000 with blur and cccccc without blur, now we correctly render cca3a3, matching PowerPoint. Change-Id: I7326a5f6254cf19b2d05181084c78e734ff7a7b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122349 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-09-20clean up ambiguous confusing rectangle APIs like IsInside()Luboš Luňák
Reading 'rectA.IsInside( rectB )' kind of suggests that the code checks whether 'rectA is inside rectB', but it's actually the other way around. Rename IsInside() -> Contains(), IsOver() -> Overlaps(), which should make it clear which way the logic goes. Change-Id: I9347450fe7dc34c96df6d636a4e3e660de1801ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122271 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins
2021-09-19allocate this SfxItemSet on stackNoel Grandin
Change-Id: Ifab3b3508de990c42ee5c8c564cbd2d535376813 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122306 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-19no need to allocate SfxItemSet separately in SdrUndoAttrObjNoel Grandin
Change-Id: I32c9d79262c711a4f28c910e1b8f8ca9c1f011e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122305 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17tdf#143550 - use the term "gluepoints" consistentlyrocso
Change-Id: Id10dc2ef13f54a148a800003cc4bd88ca1a0056f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122233 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2021-09-15Fix some assorted mistakes in translatable stringsAdolfo Jayme Barrientos
Thanks Mihail Balabanov, Olivier Hallot and Tuomas Hietala for your keen eyes. Change-Id: Ibceeae6d82e39079c02140ac99729be1a1ab0407
2021-09-15loplugin:constvarsNoel Grandin
Change-Id: I9b35d6333afa6b305bf73fc55a7e60c8365674e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122134 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 5Mike Kaganski
- Revise uses of getSomething to use getFromUnoTunnel Where that is impossible, use getSomething_cast to unify casting, and minimize number of places doing low-level transformations. The change keeps the existing tunnel references that last for the duration of the pointers' life, because sometimes destroying such reference may destroy the pointed object, and result in use after free. Change-Id: I291c33223582c34cd2c763aa8aacf0ae899ca4c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122101 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 4Mike Kaganski
- Change implementations of getSomething to use getSomethingImpl Or where that's impossible, use getSomething_cast to unify this and reduce number of places where we reinterpret_cast. All static methods getting tunnel ids were renamed to getUnoTunnelId, to comply with the convention used in <comphelper/servicehelper.hxx>. TODO (in separate commits): - Revise uses of getSomething to use getFromUnoTunnel Change-Id: Ifde9e214b52e5df678de71fcc32d2199c82e85cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122100 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 1Mike Kaganski
The header got some changes: 1. Move UnoTunnelIdInit and isUnoTunnelId into 'comphelper' namespace 2. Rename UnoTunnelIdInit to UnoIdInit, as a precondition to replace of uses of OImplementationId with it, including in XTypeProvider 3. Introduce convenience functions 'getSomething_cast' to cast between sal_Int64 and object pointers uniformly. 4. Rename getUnoTunnelImplementation to getFromUnoTunnel, both to make it a bit shorter, and to reflect its function better. Templatize it to take also css::uno::Any for convenience. 5. Introduce getSomethingImpl, inspired by sw::UnoTunnelImpl; allow it handle cases both with and without fallback to parent. 6. Adjust UNO3_GETIMPLEMENTATION_* macros TODO (in separate commits): - Drop sw::UnoTunnelImpl and sw::UnoTunnelGetImplementation - Replace all uses of OImplementationId in core with UnoIdInit - Deprecate OImplementationId in <cppuhelper/typeprovider.hxx> - Change implementations of getSomething to use getSomethingImpl - Revise uses of getSomething to use getFromUnoTunnel Change-Id: If4a3cb024130f1f552f988f0479589da1cd066e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122022 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-14sw: fix undo manager de-registration from editeng on shutdownMiklos Vajna
editeng/ asserts in the ImpEditEngine dtor that the undo manager it owns is indeed an EditUndoManager, and not a subclass. This means that if a subclass is set as the undo manager of editeng, then SetUndoManager() should be called in pairs: once to set it and once to unset it. The unset should happen before destroying the EditEngine. This normally works because SwView either has an active text edit and then its dtor calls SdrEndTextEdit() or it doesn't have an active text edit. The broken case was when the text edit was already ended, but the draw view still had a text edit outliner, which has an EditEngine, which knows the sw undo manager. The product build deleted the sw undo manager when deleting the EditEngine, and then later when the SwExtTextInput dtor wanted to access the sw undo manager, it crashes due to use-after-free. Fix the problem by explicitly disposing the undo manager of the draw view in the dtor of SwView. Also fix a couple of more places where an SdrObject* is returned and we didn't check if the result is a nullptr. Caught by the loolstress tool in online.git: cp test/data/hello-world.odt /tmp/test.odt ./loolstress ws://localhost:9980 /tmp/test.odt test/traces/writer-hello-shape.txt /tmp/test.odt test/traces/writer-hello-shape.txt /tmp/test.odt test/traces/writer-hello-shape.txt /tmp/test.odt test/traces/writer-mash-text-table.txt /tmp/test.odt test/traces/writer-mash-text-table.txt Change-Id: Ib838b2adf900b4f3bec63d2d62d432327bc0c6c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122086 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-09-14svx: GetMarkedObjectByIndex() may return nullptrMiklos Vajna
Seen in this crash: #6 SdrMarkView::ImpIsFrameHandles() const (this=this@entry=0x7f5a310) at svx/source/svdraw/svdmrkv.cxx:594 #7 0x00007f9779c71058 in SdrMarkView::HasMarkablePoints() const (this=0x7f5a310) at svx/source/svdraw/svdmrkv1.cxx:32 #8 0x00007f9779d0c142 in SdrView::GetContext() const (this=0x7f5a310) at svx/source/svdraw/svdview.cxx:1297 #9 0x00007f976185adf4 in SwWrtShell::GetSelectionType() const (this=this@entry=0x7f32d90) at sw/source/uibase/wrtsh/wrtsh1.cxx:1424 #10 0x00007f9760e3d5b9 in SwCursorShell::sendLOKCursorUpdates() (this=this@entry=0x7f32d90) at sw/source/core/crsr/crsrsh.cxx:2055 #11 0x00007f9760e4046b in SwCursorShell::UpdateCursor(unsigned short, bool) (this=this@entry=0x7f32d90, eFlags=eFlags@entry=6, bIdleEnd=bIdleEnd@entry=false) at sw/source/core/crsr/crsrsh.cxx:2041 #12 0x00007f9760e41747 in SwCursorShell::EndAction(bool) (this=0x7f32d90, bIdleEnd=bIdleEnd@entry=false) at sw/source/core/crsr/crsrsh.cxx:276 #13 0x00007f976105865a in SwEditShell::EndAllAction() (this=this@entry=0x7e98ed0) at sw/source/core/edit/edws.cxx:102 #14 0x00007f976109f8ed in SwFEShell::DelSelectedObj() (this=0x7e98ed0) at sw/source/core/frmedt/feshview.cxx:2295 #15 0x00007f976184a447 in SwWrtShell::DelRight() (this=this@entry=0x7e98ed0) at sw/source/uibase/wrtsh/delete.cxx:442 #16 0x00007f9761680d6b in SwEditWin::Command(CommandEvent const&) (this=0x7e9ba10, rCEvt=...) at sw/source/uibase/docvw/edtwin.cxx:5483 Change-Id: I916be9ce846c8750acdaf5fc791e1adb3692e002 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122076 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-09-13tdf#142415 mouse events not propogated to table control event handlersCaolán McNamara
handle this with explicit callbacks from the cell widget for those events Change-Id: Ie605ca4286afc0fbd321f339fb7963771a303df5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122050 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-13loplugin:cow_wrapperNoel Grandin
check the classes that use o3tl::cow_wrapper so that they don't unnecessarity trigger copies Change-Id: I545e627598217f3e61ba2c384adb8d4f8b404829 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122030 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-12Typo *Successfull->*SuccessfulJulien Nabet
Change-Id: I837241da936ac013312228f774d08bb8dafa45e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121967 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-09-11clang:optin.performance.Padding in svx,editengNoel Grandin
Excessive padding in 'struct svx::SpellPortion' (18 padding bytes, where 2 is optimal). Excessive padding in 'class SvxNumRule' (11 padding bytes, where 3 is optimal). Excessive padding in 'struct SpellInfo' (10 padding bytes, where 2 is optimal). Excessive padding in 'struct ImpEditEngine::LineAreaInfo' (14 padding bytes, where 6 is optimal). Excessive padding in 'class ImpChainLinkProperties' (5 padding bytes, where 1 is optimal). Excessive padding in 'class TextChainFlow' (20 padding bytes, where 4 is optimal). Excessive padding in 'class SdrObjList' (13 padding bytes, where 5 is optimal). Excessive padding in 'class SdrLayer' (12 padding bytes, where 4 is optimal). Change-Id: I17b1c40bfe553c7635dc6177845dc92956cd0fae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121942 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-09Fix typoAndrea Gelmini
Change-Id: I899c68cf53657eaab6a72ae36594606b31d9fb8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121859 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-09-09tdf#144052 reduce Primitive2D copyingNoel Grandin
when creating charts, by using a Primitive2DContainer&& parameter in the GroupPrimitive2D constructor, which forces the call sites to pass a temporary, and at most call sites, we can std::move in an existing local variable. Change-Id: I531970918800c6832ab606b5a4ff5fd2d47ccf5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121844 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-09tdf#144052 speedup inserting large chartsNoel Grandin
we don't need to immediately re-order objects when setting the Z-order, just set the dirty flag and we can calculate the proper order layout. This takes the time for the chart to appear from multiple minutes to 20sec for me. Change-Id: If80569da09469423f19f9fe82b40dfbdac14f161 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121806 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-09don't need to explicitly call GetFocus()Caolán McNamara
if GrabFocus() succeeds the GetFocus() should be called anyway Change-Id: I2a448659acd990bf570fe56907ac826138cc9938 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121840 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-09Resolves: tdf#144376 focus into protected ScTextWnd shouldn't be possibleCaolán McNamara
the expectations are that this isn't possible and if it happens then under windows there is a QueryCharPosition which will trigger the deletion of the ScTextWnd EditView due to that expectation before it is then unconditionally dereferenced Change-Id: Ied5d8031ae7d74669a2958dbcdec87843a26d384 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121839 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-09add assert to verify that lock() calls do not accidentally nestNoel Grandin
Change-Id: I6582de99867f98a9afaf219c3bdd53c1f5fca509 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121772 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-08convert some OSL_ENSURE -> assertNoel Grandin
where we are just provide checking for a following static_cast. I'd rather have an explicit assert failure than a random crash Change-Id: Iab6c6b056341018deaa74b78b075e564f72c58d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121814 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-08simplify static_cast after dynamic_castNoel Grandin
Change-Id: I53ae7f18519fdd878730d1d0316ebc408271c66d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121811 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-08svx: try to avoid crash in AccessibleEditableTextParaMichael Stahl
There is an out-of-bounds access to a non-existant editengine paragraph: warn:legacy.tools:40400:40400:editeng/source/editeng/editdoc.cxx:1136: Index out of range in Adjust(2) warn:legacy.tools:40400:40400:editeng/source/editeng/editeng.cxx:1984: Paragraph not found: GetWindowPosTopLeft /usr/include/c++/11/debug/vector:438: Error: attempt to subscript container with out-of-bounds index 1, but container only holds 1 elements. 4 ParaPortionList::operator[](int) (this=0x6270d38, nPos=1) at editeng/source/editeng/editdoc.cxx:722 5 ImpEditEngine::CalcParaWidth(int, bool) (this=0x6270ca0, nPara=1, bIgnoreExtraSpace=true) at editeng/source/editeng/impedit2.cxx:3307 6 EditEngine::GetParaBounds(int) (this=0x6264a00, nPara=1) at editeng/source/editeng/editeng.cxx:646 7 Outliner::GetParaBounds(int) const (this=0x30fb510, nParagraph=1) at editeng/source/outliner/outlin2.cxx:414 8 SvxOutlinerForwarder::GetParaBounds(int) const (this=0x3424710, nPara=1) at editeng/source/uno/unoforou.cxx:326 9 SvxAccessibleTextAdapter::GetParaBounds(int) const (this=0x73d7d30, nPara=1) at editeng/source/uno/unoedprx.cxx:757 10 accessibility::AccessibleEditableTextPara::getBounds() (this=0x27c45c0) at editeng/source/accessibility/AccessibleEditableTextPara.cxx:1050 11 accessibility::AccessibleTextHelper_Impl::UpdateBoundRect() (this=0x73d7c90) at svx/source/accessibility/AccessibleTextHelper.cxx:799 12 accessibility::AccessibleTextHelper::UpdateChildren() (this=0x2ae5eb0) at svx/source/accessibility/AccessibleTextHelper.cxx:1658 13 accessibility::AccessibleShape::notifyShapeEvent(com::sun::star::document::EventObject const&) (this=0x73d7690, rEventObject=...) at svx/source/accessibility/AccessibleShape.cxx:926 14 SfxBaseModel::notifyEvent(com::sun::star::document::EventObject const&) const (this=0x2eb1b80, aEvent=...) at sfx2/source/doc/sfxbasemodel.cxx:3341 15 SdXImpressDocument::Notify(SfxBroadcaster&, SfxHint const&) (this=0x2eb1b80, rBC=..., rHint=...) at sd/source/ui/unoidl/unomodel.cxx:408 16 SfxBroadcaster::Broadcast(SfxHint const&) (this=0x2e6f120, rHint=...) at svl/source/notify/SfxBroadcaster.cxx:39 17 SdrObject::BroadcastObjectChange() const (this=0x30fb190) at svx/source/svdraw/svdobj.cxx:1028 18 SdrUndoObjSetText::Undo() (this=0x732acb0) at svx/source/svdraw/svdundo.cxx:1050 19 sd::UndoObjectSetText::Undo() (this=0x732acb0) at sd/source/core/undo/undoobjects.cxx:204 This was replaced when GetTextForwarder() apparently replaced the editengine object or something along those lines: 5 ParaPortionList::Insert(int, ParaPortion&&) (this=0x6270d38, nPos=0, p=...) at editeng/source/editeng/editdoc.cxx:740 6 ImpEditEngine::InitDoc(bool) (this=0x6270ca0, bKeepParaAttribs=true) at editeng/source/editeng/impedit2.cxx:241 7 ImpEditEngine::RemoveText() (this=0x6270ca0) at editeng/source/editeng/impedit2.cxx:678 8 ImpEditEngine::SetText(rtl::OUString const&) (this=0x6270ca0, rText="") at editeng/source/editeng/impedit2.cxx:694 9 ImpEditEngine::SetText(EditTextObject const&) (this=0x6270ca0, rTextObject=...) at editeng/source/editeng/impedit4.cxx:1139 10 EditEngine::SetText(EditTextObject const&) (this=0x6264a00, rTextObject=...) at editeng/source/editeng/editeng.cxx:1535 11 Outliner::SetText(OutlinerParaObject const&) (this=0x30fb510, rPObj=...) at editeng/source/outliner/outliner.cxx:568 12 SvxTextEditSourceImpl::GetBackgroundTextForwarder() (this=0x73d7990) at svx/source/unodraw/unoshtxt.cxx:553 13 SvxTextEditSourceImpl::GetTextForwarder() (this=0x73d7990) at svx/source/unodraw/unoshtxt.cxx:658 14 SvxTextEditSource::GetTextForwarder() (this=0x73c9580) at svx/source/unodraw/unoshtxt.cxx:936 15 SvxEditSourceAdapter::GetTextForwarderAdapter() (this=0x73d7d20) at editeng/source/uno/unoedprx.cxx:324 16 SvxEditSourceAdapter::GetTextForwarder() (this=0x73d7d20) at editeng/source/uno/unoedprx.cxx:339 17 accessibility::AccessibleTextHelper_Impl::GetTextForwarder() const (this=0x73d7c90) at svx/source/accessibility/AccessibleTextHelper.cxx:265 18 accessibility::AccessibleTextHelper_Impl::UpdateVisibleChildren(bool) (this=0x73d7c90, bBroadcastEvents=true) at svx/source/accessibility/AccessibleTextHelper.cxx:750 19 accessibility::AccessibleTextHelper::UpdateChildren() (this=0x2ae5eb0) at svx/source/accessibility/AccessibleTextHelper.cxx:1657 20 accessibility::AccessibleShape::notifyShapeEvent(com::sun::star::document::EventObject const&) (this=0x73d7690, rEventObject=...) at svx/source/accessibility/AccessibleShape.cxx:926 21 SfxBaseModel::notifyEvent(com::sun::star::document::EventObject const&) const (this=0x2eb1b80, aEvent=...) at sfx2/source/doc/sfxbasemodel.cxx:3341 22 SdXImpressDocument::Notify(SfxBroadcaster&, SfxHint const&) (this=0x2eb1b80, rBC=..., rHint=...) at sd/source/ui/unoidl/unomodel.cxx:408 23 SfxBroadcaster::Broadcast(SfxHint const&) (this=0x2e6f120, rHint=...) at svl/source/notify/SfxBroadcaster.cxx:39 24 SdrObject::BroadcastObjectChange() const (this=0x30fb190) at svx/source/svdraw/svdobj.cxx:1028 25 SdrUndoObjSetText::Undo() (this=0x732acb0) at svx/source/svdraw/svdundo.cxx:1050 So try to update the number of paragraphs when GetTextForwarder() was called. Change-Id: I5c0712cdf0c01d2aa0e8cd929ba51aaf1c710123 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121789 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-09-08reduce cost of creating large charts (tdf#144052)Noel Grandin
creating a temporary SfxItemSet for each geometry object adds up fast, so only create the temporary for those SdrTextObj subclasses that need it. Change-Id: I0c03a630057718f09c12a4a2d07ad23fca46fd2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121800 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-07Avoid repeating the return type from the declarationMiklos Vajna
Change-Id: I0dce02d10b8c74e80f5672e2dd580b6837ba3291 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121732 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-09-04use std::vector for fetching DX array dataNoel Grandin
because I'm trying to track down a related heap corruption, and that is much easier if the access to the array is checked by the std::vector debug runtime Change-Id: Ia665f5cebb7f14d88942e88b4b400ad3c28ef5d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121527 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-03clang-tidy:readability-redundant-member-initNoel Grandin
Change-Id: I47cc5416e853260d92b8b2c57b1c223d1f21df0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121544 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-03Remove some unused includesMiklos Vajna
See tdf#42949 for motivation. Change-Id: I62354cf2ae750a91b72e91ad838a40e205e7cd61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121526 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-09-02rename UpdateMode -> UpdateLayout in editeng classNoel Grandin
... because "update" is such a generic term I keep forgetting what we are turning on and off Also return the previous value from SetUpdateLayout to make the save/restore code more compact. Change-Id: Iae1764c837a92e58c9b17521f130e8fc80311d22 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121479 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-30tdf#137310 ODF import: fix loading of images with multiple slashes in pathMiklos Vajna
Regression from commit 1b02ba03bd62a712e15c15384a3d105d2c088120 (shapes: don't use "GraphicURL" property, always use "Graphic", 2018-02-13), the problem was that now the loading of Models/Fallbacks/duck.png goes via SvXMLGraphicHelper::ImplGetGraphicStream(), which assumed that the directory part of the picture path contains no slashes, so can be handled via ImplGetGraphicStorage(). That functions works with Pictures/something.png, but not with Models/Fallbacks/duck.png. Fix the problem by using openStreamElementByHierarchicalName() to open the picture stream in case we got no stream and the storage name contains a slash. Change-Id: I0e04fb4286777b04286c4979af31e6df19988873 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121308 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-08-30tdf#139734 Drop redundant asserts after MacrosTest::loadFromDesktop4k5h1t
Change-Id: I7347d2c9429647e9cd87ad8147848d24f717d181 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121222 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-30tdf#74702 vcl: introduce GetSystemTextColor()Chris Sherlock
Also rename DrawFlags to SystemDrawColorFlags, added a unit test. Change-Id: I3cb74b278e43561d1055b3b55b9730cdbdea51aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113559 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-29tdf#143919 Revise Criss-cross diagonal borderRizal Muttaqin
Change-Id: I0c018fb74d196101d53b794e960bb446823bcada Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121188 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2021-08-27Resolves: tdf#143159 reserve space for 6 characters/digitsCaolán McNamara
Change-Id: I44bcdf55a9b1d34e046b93e6a15f4019a925844d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121119 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-26tdf#139660 one of the group needs to be activeCaolán McNamara
in this case using ToolButtons instead of ToggleToolButtons will work ok Change-Id: I806a8fc409ae346dd6734be13d69c4b171e54c08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121121 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-25i#114206 sd: unshare shape properties for the same type before insertionMiklos Vajna
Regression from commit 9bd99c08e8662becdd5ac8b47ef6f953c14e65fc (CWS-TOOLING: integrate CWS os128, 2009-06-03), the problem was that the SvxItemPropertySet was both used to store a property map (information about UNO properties) and also as a descriptor for a not yet inserted shape. The above commit improved performance by sharing a single instance of an SvxItemPropertySet for the same shape types: this works for the property map, but doing the same for property values is problematic. In practice, this eliminates the need for a workaround in oox/, the user-visible problem was that loading a document with smartart, then loading a document with group shapes (but without smartart) and saving it would copy information from the first, closed document (!) to the second document. Just removing the oox/ workaround would make make -C oox -sr CppunitTest_oox_drawingml CPPUNIT_TEST_NAME="testGroupShapeSmartArt testTdf131082" fail, unsharing the descriptor piece makes it pass again. Change-Id: Icdff2108ad0da18ce0ade081b1938dd74bc0ae90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120996 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-08-24tidy this a littleCaolán McNamara
Change-Id: Ifa01b39fc7aa3dfd7238b69a0a61bdf1315a3b4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120949 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-24tdf#143990: writer: default value for SetIncludeUpperLevels is 1Vasily Melenchuk
Same as in e08fba90 for tdf#143858: zero for SetIncludeUpperLevels has no practical sense, since actually this value is amount of levels to display. Default and minimal value is 1 (current level), zero used only in cases when there should be no numbering. Change-Id: I303386339a9e13944e11d0287c933523c7410b6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120863 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-08-23loplugin:referencecasting look through more clang TypesNoel Grandin
Note that because of where the fix resides, loplugin:redundantcast also notices a few more things. Change-Id: I0b66047fadfff2c5ceafcbd3eab085de00d861a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120865 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>