Using &* can be problematic if the pointer is null. In this case I don’t
think it matters, but using UnoCursorPointer::get() is probably easier
to understand anyway. This also paves the way for a later compiler
plugin to check for this.
Change-Id: Ic825149a64e945ad623d1a23ee8ca24655182b3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211754
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
> clang++: /home/sberg/github.com/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:22171: bool clang::Expr::isCXX11ConstantExpr(const ASTContext &, APValue *) const: Assertion `!isValueDependent() && "Expression evaluator can't be called on a dependent expression."' failed.
as seen at engine/sc/qa/unit/ucalc_pivottable.cxx:269
> CPPUNIT_ASSERT_EQUAL_MESSAGE("Unexpected data range.",
> static_cast<SCCOL>(FieldCount - 1), nCol2);
since 94299df72efeddb3d5af31396f5008300d66a90d "sc: Use #SPILL! error if the
pivot table output is blocked"
Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: I83f7949a7458ce030c13e94e2d9682ae080cc763
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1895
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit c3dec06e55716011a69d7b47163747007e05d905)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211834
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
+ rename "Freeze" to "Panes"
+ split Options into "View" for and "Options" for the last four commands
+ Remove "Function List" and replace it by "Styles"
Change-Id: Id662c3f09454f4a15a2593bff86b523c8d235997
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211823
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
The last caller of ValueSet::SetItemData and
ValueSet::GetItemData was ported away from
using ValueSet in
Change-Id: I423e80bba9e81a98e80652f6486970d40286362e
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Oct 2 12:36:17 2026 +0200
svx: Switch to weld::TreeView in LineWidthPopup
. Drop the now unused methods and the corresponding
ValueSetItem::mpData member that could previously be used
to store custom data in an item.
Similar logic still exists in weld::IconView
and weld::TreeView, which should generally be preferred
over using the custom ValueSet widget.
Change-Id: I7d58ff933cb78a1157d3628096a17f68ddf2034d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211737
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Instead of using a custom ValueSet subclass to
draw images and text next to them for selection
in the line width popup, use a weld::TreeView with
two columns: one for the image, and one for the text.
This is similar to what
commit b185d34642
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Nov 28 14:12:04 2025 +0100
tdf#168120 sc: Switch to weld::TreeView in CellLineStyleControl
did elswhere.
Adjust indices used to account for the fact that
weld::TreeView indices are 0-based while the ValueSet ones
are 1-based.
The special "Last custom value" entry so far was
using two separate images, depending on whether
or not it was enabled/sensitive or not: If it is
disabled, a greyed out variant of the image was used.
With the switch to weld::TreeView, leave that up
to the TreeView by simply enabling/disabling the
corresponding row using weld::TreeView::set_sensitive
for the corresponding row.
Drop the now unused LineWidthValueSet.
This switch to weld::TreeView reduces custom widget
logic and custom drawing and makes this more consistent
with other widgets used elsewhere (e.g. like for the
one mentioned in the commit above, the usual font
is used now as well, and it also aligns the behavior
more with that one.)
The popup for configuring the line thickness that uses
this code can be triggered like this:
* start Writer
* insert a chart using "Insert" -> "Chart..."
* select the chart wall in the chart
* open the "Properties" sidebar deck
* in the "Line" section of that sidebar deck, click on the
"Thickness" button/combobox
Change-Id: I423e80bba9e81a98e80652f6486970d40286362e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211735
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The expected numbers are what PowerPoint for Windows shows.
The tests cover: the same startAt on every paragraph, a new startAt
or numbering type, plain and unnumbered paragraphs between items,
nested lists, and startAt from a:lstStyle.
Change-Id: I75d9bfc88ca2e1d73442b28fb039c20fc1f907be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211783
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
PowerPoint writes the same startAt on every paragraph of a list, and
since tdf#168406 each startAt restarted it: 2. 2. 2. instead of 2. 3. 4.
Restart only when a list begins at that level or its numbering type or
startAt changes, a missing startAt being startAt="1". Paragraphs without
a bullet of their own, also without a:pPr, take it from a:lstStyle. Don't
set the restart flag in a:lstStyle itself: every paragraph inherits it.
An unnumbered paragraph ends the lists at its level and deeper.
Change-Id: I26720a6ba54a8050cfb6e0ba892096039c391c36
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211632
Reviewed-by: David Gilbert <freedesktop@treblig.org>
Tested-by: Jenkins
It was added in
commit de3898aecb
Author: Stephan Bergmann <sbergman@redhat.com>
Date: Sat Jan 22 10:56:15 2022 +0100
Add missing test dependency
> [_RUN_____] SdOOXMLExportTest3::testTdf140912_PicturePlaceholder
but now testTdf140912_PicturePlaceholder lives in
CppunitTest_sd_export_tests-ooxml4 after
commit 8d6f1a6448
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date: Mon Oct 30 17:21:05 2023 +0100
CppunitTest_sd_export_tests-ooxml3: split in two
Change-Id: I840829973cf2e55929b4ca3cba86b1d81031a582
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211824
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
that baseline is also fine with a bump to using -std:c++23
earlier code changes (pre 26-2 branch off) already affected building
on macOS 13/Xcode 14 and since there have been no reports regarding
not being able to build, it is safe to assume that no LibreOffice
developer will be affected/the documentation bump comes loooong
after-the-fact.
End-Users are not affected, the minimum required version to run
LibreOffice does not change.
Change-Id: Id7ba9bb77188771241b34a318679ddce73eb041f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211683
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Follow-up commit ccbc8791e1
"Select All Sheets" command select visible and hidden sheets.
So the command should also be available when there are
some hidden sheets not selected
Change-Id: I3115385853e115d63eff91a800a2bf52c4157dc8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211774
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
If m_pTableCursor is null then the initial deref in &* is undefined
behaviour, even though the resulting reference is only used to get an
address. The compiler might take advantage of this to assume that the
pointer is never null. For the dynamic_cast it might then always deref
the pointer to access the vtable without checking for null.
m_pTableCursor can be null if the SwChartDataSequence is disposed.
I don’t know whether this results in any bugs in practice, but either
way using get() is easier to understand and shouldn’t have any
performance impact, so we might as well use it.
Change-Id: I9566f4be3345dacb0af3add88cbb3fe2680ff0ce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211747
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
since 689334c8b9.
the new stuff in case is not defined in 0.5.x, but since it's
fallthrough and break anyway one can probably #if(def) it out completely...
version detection using pkg-config. hopefully all distros have it
(didn't check.)
Change-Id: I1c97b0492c00dbd0ee631f98b207ee6e64744c9d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211635
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
The split compound words checkbox in the edit style dialog is initially
set to an indeterminate state when the alignment is something other than
justify, presumably because its value is irrelevant in that case.
However, if the the user then sets the alignment to justify then nothing
was removing the that state. With the GTK plugin it was then not
possible to change the value. With the gen plugin however you could
still click it to give it a value.
This patch just makes the button inactive whenever justify is selected.
Weld then also removes the indeterminate state in that case.
This patch is similar to the previous one that does the same thing for
the paragraph composer checkbox. It is split into a separate patch to
make it easier to backport the other patch to the 26.8 branch.
Change-Id: Ib55b7a9675ba2c8234e758585d5933cbd39bfdd7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211677
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: László Németh <nemeth@numbertext.org>
The paragraph composer checkbox in the edit style dialog is initially
set to an indeterminate state when the alignment is something other than
justify, presumably because its value is irrelevant in that case.
However, if the the user then sets the alignment to justify then nothing
was removing the that state. With the GTK plugin it was then not
possible to change the value. With the gen plugin however you could
still click it to give it a value.
This patch just makes the button inactive whenever justify is selected.
Weld then also removes the indeterminate state in that case.
Change-Id: I9c7bebb168f526497d406b1b93b9d5161e251cfa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211676
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
Tested-by: László Németh <nemeth@numbertext.org>
“If you want to prefer” makes it sound like the user would be doing the
preferring, but for some reason they don’t quite dare actually do it and
instead they only “want” to do it. I think the intention is probably
that the justification algorithm should be doing the preferring. This
patch puts the preferring in the passive voice so that the subject
of the verb doesn’t have to be mentioned.
Change-Id: If6de27be688ccb03d80fa559c6027af08aea7c6c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211669
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
The dialog passed values in SQL form (e.g. 4.2), but the composer
expects them localized (e.g. 4,2 for German locale) and the filter was
dropped. Pass the normalized localized value instead. Add UITest.
Change-Id: I9ef28585b9de0144c84b9815811c91f776c34c91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211504
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
When a filter condition on a column has more than one part, e.g.
"LIKE A* AND LIKE *e", only the first part was converted back to UI text
with its operator; the rest were appended as bare values
("LIKE A* AND *e"). Convert all parts the same way and add a UITest.
Change-Id: Id6a2ecd5593003c3a9fcef1955f2c672ec1ed520
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211425
Tested-by: Jenkins
Reviewed-by: Vissarion Fisikopoulos <vfisikop@libreoffice.org>
Until now the 'local' StyleSheet got set, but that may
not be the same as the original. It was/gets identified just
by searching by name and type, not comparing content.
What to do? We could...
(a) the Style-Friendly way:
- check if StyleSheet is identical
- if not, create a new in-between StyleSheet hosting missing Items
- if yes, use, done.
(b) the pragmatic/practical way:
- Just hard-attribute the Items that are detected as different
similar to what BurnInStyleSheetAttributes does/did, but only
for a view differing Items
(b) is the most simple for now, but will lead to more hard
attributes. The other possibilities will be better in the
long term. For now, I will use (b).
Note that there are more cases in that VERY complex and grown
stuff emerging from SdDrawDocument::PasteBookmarkAsPage. More
things will need to be fixed, see this as a 1st step.
Needed to adapt postProcessAfterCloneToDifferentModel due to
UT testTdf96206 failing, see comment there for details.
That 1st implementation showed weaknesses with those Items
critical and only on MasterPages, so decided to give up on
that and implement ContentCompare to SdPage::Equals. That
was easier than thought: No parameter needed, only used by
InsertBookmarkAsPage_FindDuplicateLayouts::operator(). Thus,
SdPage::Equals needs no change, just SdrObject::Equals.
Due to still problems with Items corrected in Objects on
MasterPages I will for now exclude this.
Could now isolate remaining problems, these are defaults
and/or PresObj things on MasterPages. Important is that I can
completely correct all Items for all Objects in
postProcessAfterCloneToDifferentModel. I can react to these
false-positives in the ContentCompare in SdrObject::Equals.
Signed-off-by: Armin Le Grand (collabora) <Armin.LeGrand@collabora.com>
Change-Id: I10e17c8d6a893dbe92ab716182f07bafce1f3284
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6595
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Armin Le Grand <armin.legrand@collabora.com>
(cherry picked from commit 92ffaeac04c5c8586006b026f29ce12fba3674f1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211729
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
...as seen once during JunitTest_forms_complex,
> ==2007790==ERROR: AddressSanitizer: heap-use-after-free on address 0x7ccbfe8b3a38 at pc 0x7f5c5361ed51 bp 0x7b5bd4ac7420 sp 0x7b5bd4ac7418
> READ of size 2 at 0x7ccbfe8b3a38 thread T8
> #0 in SfxItemPool::IsInRange(unsigned short) const at engine/include/svl/itempool.hxx:331:66
> #1 in SfxItemPool::getTargetPool(unsigned short) const at engine/svl/source/items/itempool.cxx:452:9
> #2 in SfxItemPool::CheckItemInfoFlag(unsigned short, unsigned short) const at engine/svl/source/items/itempool.cxx:461:26
> #3 in SfxItemPool::NeedsSurrogateSupport(unsigned short) const at engine/include/svl/itempool.hxx:343:18
> #4 in SfxItemSet::checkRemovePoolRegistration(SfxPoolItem const*) at engine/svl/source/items/itemset.cxx:384:20
> #5 in SfxItemSet::ClearSingleItem_PrepareRemove(SfxPoolItem const*) at engine/svl/source/items/itemset.cxx:364:5
> #6 in SfxItemSet::ClearAllItemsImpl() at engine/svl/source/items/itemset.cxx:443:9
> #7 in SfxItemSet::~SfxItemSet() at engine/svl/source/items/itemset.cxx:318:5
> #8 in std::_Optional_payload_base<SfxItemSet>::_M_destroy() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/optional:305:23
> #9 in std::_Optional_payload_base<SfxItemSet>::_M_reset() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/optional:341:4
> #10 in std::_Optional_payload<SfxItemSet, false, false, false>::~_Optional_payload() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/optional:464:57
> #11 in std::_Optional_base<SfxItemSet, false, false>::~_Optional_base() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/optional:488:12
> #12 in std::optional<SfxItemSet>::~optional() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/optional:781:11
> #13 in sdr::properties::DefaultProperties::~DefaultProperties() at engine/svx/source/sdr/properties/defaultproperties.cxx:92:50
> #14 in sdr::properties::AttributeProperties::~AttributeProperties() at engine/svx/source/sdr/properties/attributeproperties.cxx:221:9
> #15 in sdr::properties::TextProperties::~TextProperties() at engine/svx/source/sdr/properties/textproperties.cxx:79:9
> #16 in sdr::properties::RectangleProperties::~RectangleProperties() at engine/svx/source/sdr/properties/rectangleproperties.cxx:38:9
> #17 in sdr::properties::RectangleProperties::~RectangleProperties() at engine/svx/source/sdr/properties/rectangleproperties.cxx:37:9
> #18 in std::default_delete<sdr::properties::BaseProperties>::operator()(sdr::properties::BaseProperties*) const at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/unique_ptr.h:92:2
> #19 in std::__uniq_ptr_impl<sdr::properties::BaseProperties, std::default_delete<sdr::properties::BaseProperties>>::reset(sdr::properties::BaseProperties*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/unique_ptr.h:204:4
> #20 in std::unique_ptr<sdr::properties::BaseProperties, std::default_delete<sdr::properties::BaseProperties>>::reset(sdr::properties::BaseProperties*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/unique_ptr.h:530:7
> #21 in SdrObject::~SdrObject() at engine/svx/source/svdraw/svdobj.cxx:589:18
> #22 in SdrAttrObj::~SdrAttrObj() at engine/svx/source/svdraw/svdoattr.cxx:42:28
> #23 in SdrTextObj::~SdrTextObj() at engine/svx/source/svdraw/svdotext.cxx:156:1
> #24 in SdrRectObj::~SdrRectObj() at engine/svx/source/svdraw/svdorect.cxx:69:25
> #25 in SdrUnoObj::~SdrUnoObj() at engine/svx/source/svdraw/svdouno.cxx:223:1
> #26 in FmFormObj::~FmFormObj() at engine/svx/source/form/fmobj.cxx:120:1
> #27 in FmFormObj::~FmFormObj() at engine/svx/source/form/fmobj.cxx:113:1
> #28 in SdrObject::release() at engine/svx/source/svdraw/svdobj.cxx:612:9
> #29 in rtl::Reference<SdrObject>::clear() at engine/include/rtl/ref.hxx:181:19
> #30 in SvxShape::~SvxShape() at engine/svx/source/unodraw/unoshape.cxx:199:21
> #31 in SvxShapeText::~SvxShapeText() at engine/svx/source/unodraw/unoshape.cxx:3828:1
> #32 in SvxShapeControl::~SvxShapeControl() at engine/svx/source/unodraw/unoshap2.cxx:393:1
> #33 in SvxShapeControl::~SvxShapeControl() at engine/svx/source/unodraw/unoshap2.cxx:392:1
> #34 in cppu::OWeakObject::release() at engine/cppuhelper/source/weak.cxx:231:9
> #35 in cppu::OWeakAggObject::release() at engine/cppuhelper/source/weak.cxx:293:22
> #36 in cppu::WeakAggImplHelper12<com::sun::star::drawing::XShape, com::sun::star::lang::XComponent, com::sun::star::beans::XPropertySet, com::sun::star::beans::XMultiPropertySet, com::sun::star::beans::XPropertyState, com::sun::star::lang::XUnoTunnel, com::sun::star::container::XNamed, com::sun::star::drawing::XGluePointsSupplier, com::sun::star::container::XChild, com::sun::star::lang::XServiceInfo, com::sun::star::document::XActionLockable, com::sun::star::beans::XMultiPropertyStates>::release() at engine/include/cppuhelper/implbase12.hxx:161:31
> #37 in SvxShapeText::release() at engine/include/svx/unoshape.hxx:357:17
> #38 in SvxShapeControl::release() at engine/include/svx/unoshape.hxx:508:21
> #39 in freeUnoInterfaceProxy at engine/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx:42:19
> #40 in (anonymous namespace)::s_stub_defenv_revokeInterface(__va_list_tag (*) [1]) at engine/cppu/source/uno/lbenv.cxx:369:17
> #41 in s_environment_invoke_v(_uno_Environment*, _uno_Environment*, void (*)(__va_list_tag (*) [1]), __va_list_tag (*) [1]) at engine/cppu/source/uno/EnvStack.cxx:292:9
> #42 in uno_Environment_invoke_v at engine/cppu/source/uno/EnvStack.cxx:310:5
> #43 in uno_Environment_invoke at engine/cppu/source/uno/EnvStack.cxx:318:5
> #44 in (anonymous namespace)::defenv_revokeInterface(_uno_ExtEnvironment*, void*) at engine/cppu/source/uno/lbenv.cxx:423:5
> #45 in releaseProxy at engine/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx:78:9
> #46 in com::sun::star::uno::UnoInterfaceReference::~UnoInterfaceReference() at engine/include/uno/dispatcher.hxx:93:9
> #47 in binaryurp::Bridge::releaseStub(rtl::OUString const&, com::sun::star::uno::TypeDescription const&) at engine/binaryurp/source/bridge.cxx:509:1
> #48 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>>*) const at engine/binaryurp/source/incomingrequest.cxx:138:18
> #49 in binaryurp::IncomingRequest::execute() const at engine/binaryurp/source/incomingrequest.cxx:79:26
> #50 in request at engine/binaryurp/source/reader.cxx:86:9
> #51 in cppu_threadpool::JobQueue::enter(void const*, bool) at engine/cppu/source/threadpool/jobqueue.cxx:100:17
> #52 in cppu_threadpool::ORequestThread::run() at engine/cppu/source/threadpool/thread.cxx:165:31
> #53 in threadFunc at engine/include/osl/thread.hxx:175:15
> #54 in osl_thread_start_Impl(void*) at engine/sal/osl/unx/thread.cxx:240:9
>
> 0x7ccbfe8b3a38 is located 184 bytes inside of 648-byte region [0x7ccbfe8b3980,0x7ccbfe8b3c08)
> freed by thread T23 here:
> #0 in operator delete(void*, unsigned long) at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:187:3
> #1 in SdrItemPool::~SdrItemPool() at engine/svx/source/svdraw/svdattr.cxx:514:1
> #2 in salhelper::SimpleReferenceObject::release() at engine/include/salhelper/simplereferenceobject.hxx:61:13
> #3 in rtl::Reference<SfxItemPool>::~Reference() at engine/include/rtl/ref.hxx:116:22
> #4 in SdrModel::~SdrModel() at engine/svx/source/svdraw/svdmodel.cxx:275:1
> #5 in FmFormModel::~FmFormModel() at engine/svx/source/form/fmmodel.cxx:69:1
> #6 in SdDrawDocument::~SdDrawDocument() at engine/sd/source/core/drawdoc.cxx:418:1
> #7 in sd::DrawDocShell::~DrawDocShell() at engine/sd/source/ui/docshell/docshell.cxx:192:9
> #8 in sd::GraphicDocShell::~GraphicDocShell() at engine/sd/source/ui/docshell/grdocsh.cxx:57:38
> #9 in sd::GraphicDocShell::~GraphicDocShell() at engine/sd/source/ui/docshell/grdocsh.cxx:57:37
> #10 in cppu::OWeakObject::release() at engine/cppuhelper/source/weak.cxx:231:9
> #11 in rtl::Reference<SfxObjectShell>::~Reference() at engine/include/rtl/ref.hxx:116:22
> #12 in IMPL_SfxBaseModel_DataContainer::~IMPL_SfxBaseModel_DataContainer() at engine/sfx2/source/doc/sfxbasemodel.cxx:268:5
> #13 in void std::destroy_at<IMPL_SfxBaseModel_DataContainer>(IMPL_SfxBaseModel_DataContainer*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_construct.h:88:15
> #14 in void std::_Destroy<IMPL_SfxBaseModel_DataContainer>(IMPL_SfxBaseModel_DataContainer*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_construct.h:164:7
> #15 in void std::allocator_traits<std::allocator<void>>::destroy<IMPL_SfxBaseModel_DataContainer>(std::allocator<void>&, IMPL_SfxBaseModel_DataContainer*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/alloc_traits.h:863:4
> #16 in std::_Sp_counted_ptr_inplace<IMPL_SfxBaseModel_DataContainer, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:650:2
> #17 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:423:8
> #18 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:1100:11
> #19 in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:1574:31
> #20 in std::__shared_ptr<IMPL_SfxBaseModel_DataContainer, (__gnu_cxx::_Lock_policy)2>::reset() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:1692:9
> #21 in SfxBaseModel::dispose() at engine/sfx2/source/doc/sfxbasemodel.cxx:802:13
> #22 in SdXImpressDocument::dispose() at engine/sd/source/ui/unoidl/unomodel.cxx:5515:19
> #23 in SfxBaseModel::close(bool) at engine/sfx2/source/doc/sfxbasemodel.cxx:1544:5
> #24 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at engine/bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:87:5
> #25 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at engine/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:230:13
> #26 in unoInterfaceProxyDispatch at engine/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:410:13
> #27 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny>>*) const at engine/binaryurp/source/incomingrequest.cxx:236:13
> #28 in binaryurp::IncomingRequest::execute() const at engine/binaryurp/source/incomingrequest.cxx:79:26
> #29 in request at engine/binaryurp/source/reader.cxx:86:9
> #30 in cppu_threadpool::JobQueue::enter(void const*, bool) at engine/cppu/source/threadpool/jobqueue.cxx:100:17
> #31 in cppu_threadpool::ORequestThread::run() at engine/cppu/source/threadpool/thread.cxx:165:31
> #32 in threadFunc at engine/include/osl/thread.hxx:175:15
> #33 in osl_thread_start_Impl(void*) at engine/sal/osl/unx/thread.cxx:240:9
Change-Id: Ib38eb730f9178976d4432f77857b4f09ebfbdbcf
Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6296
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit 7a151cb95d66be93ef2a2687d1ff55ca37daa410)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211728
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Whatever SdDrawDocument::renameObjectStylesIfNeeded is
intended to do, it changes the look of SdrObjects when
doing what it does.
I am not sure if these are just the 'wrong' StyleSheets
that got copied or something else. It may happen when
slides from more than two sources get copied to a
document: The newly imported styles get 'extended' names
following a naming scheme. When pasting from a 2nd
document, the *same* names for slides get created using
that naming scheme, so before these were re-used here
assuming they have the same content - which is wrong.
To just *ensure* that the objects look will not change,
compare previous ItemValues with those ItemValues after
changing the style, that guarantees equal look - for the
cost of some more hard-set attributes, but less
StyleSheets.
I see that these corrections *are* done, so that is a
clear hint that re-setting these Styles in this whole
import has basic errors, I have to correct the values.
Also use a SdrObjListIter, the version before *only*
visited all SdrObjects plain on SdrPage, leaving all
GroupContent out.
Signed-off-by: Armin Le Grand (collabora) <Armin.LeGrand@collabora.com>
Change-Id: I0cf1f823bddcea0b0087244268d1dc224da39638
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6449
Reviewed-by: Armin Le Grand <armin.legrand@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 605790cb198686d382c809de949094755e70e833)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208432
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>