Adds a service to embindtest that implements XInvocation to handle all
possible method names and returns the name as a string. A Python unit
test then uses this. Without the fix pyuno would throw an exception when
it tries to use the XInvocation object that doesn’t also implement
XInvocation2 and return a valid reference for getIntrospection.
Change-Id: Icb3359c788acd5eda37980252e5fc5c956b38100
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209087
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
If an object implements XInvocation then the Invocation service will
directly return the object instead of creating its own invocation
wrapper. In that case the object isn’t guaranteed to also implement
XInvocation2. Previously, this was making pyuno just throw an exception
whenever it encounters one of these objects.
The only case where XInvocation2 is actually used is the implementation
of the __dir__ method. I don’t think this method is used very often so
it’s probably OK to just make it return an empty list if XInvocation2
isn’t supported. That way we can just store a reference to XInvocation
instead of XInvocation2.
This change makes it possible to use objects that implement XInvocation
from Python, for example ooo.vba.excel.Application.
Change-Id: I822c4ffa760f52d6488b9c1009435d059fc19fdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209086
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Many implementations of XInvocation for internal objects return null for
the getIntrospection method. In pyuno this method is only used in one
place to try and catch the case where the wrapped object is already a
PyUNO adapter. Let’s check for null in that case and assume the object
isn’t an adapter so that it won’t crash when handling objects that
implement XInvocation.
Change-Id: I26576a1a9fec92c679373d9ab47824d992065041
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209085
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
PyUNOStruct_dir is an almost exact copy of PyUNO_dir. This deletes the
first one and makes the struct code instead directly use PyUNO_dir. The
object version has the small advantage that it pre-allocates the Python
list to the right size so the struct code can now take advantage of that
too.
This will make it easier to modify the dir implementation for both use
cases in a later patch.
Change-Id: I7ebe2e6d547fd27c228842effd534e8d71d634ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209084
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Use sal_uInt32 for local table box format index variables to match
the return type of SwTableBoxNumFormat::GetValue() and the parameter
and return type of SvNumberFormatter::GetMergeFormatIndex().
Change-Id: Iabd1681de2e61b4cdc174c444985118429603d20
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209102
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
ScDPResultMemberFull::CheckShowEmpty(..) is declared but
never implemented - but there is a base class implementation
which is fine.
All existing calls are on ScDPResultMember* so don't hit a problem
but if something tries to call it on a ScDPResultMemberFull* it
tries to call the missing function.
Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org>
Change-Id: I8350517e87ed118e0065412f16aa6053f3bbda9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209014
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
These strings are kind of hard for translators to find so let’s give a
hint in the description.
Change-Id: I8387b54226c757d6af664c09573cc3387b69cc09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209089
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
There's already one for OUString; copy that one and adjust for
OString and single-byte characters.
Change-Id: I2de901ead05284f9a73eadecf8628f30f8521b55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208865
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
The select method of XSelectionSupplier can now accept a Sequence of
Anys containing XTextRanges to select at the same time. If any of the
ranges overlap then the whole sequence is rejected.
Change-Id: Ib4930b3144e92285cb504d1ae2ac27263d30d440
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208898
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
This fixes my 27.2 regression from
commit 4031fa9b9a
tdf#172113 sw ms import: consistent linespacing gap height
It was OK in my exploratory patch 7, but when I moved it
to the final location, I failed to account for the invalidation.
Thanks to vmiklos for the code review spotting this.
Change-Id: I6af96e02b805f2b0f7836bca9d92f93413757eb5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209078
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
The original implementation is nearly unchanged since 2000. It uses the
ItemSet of the objects to get the fill and line properties. That does
not work in case the properties are given by a style and not by direct
formatting. I have changed this so, that now the method GetProperties
of the SdrObject is used. That one provides fill and line properties
that are applied by style as well. That was a tip from Armin Le Grand,
thanks.
As the changes touch the same part of the code, I have implemented
cross-fading of transparence at the same time. Thereby I treat NONE
as being 100% transparent in calculating intermediate colors.
That is request tdf#173018.
Change-Id: I6df92619e8d1596647fcadbc9aa13bb90494ca6e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209055
Tested-by: Jenkins
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
vcl/qa/cppunit/pdfexport/pdfexport2.cxx(5438): error C2672: 'CppUnit::assertEquals': no matching overloaded function found
workdir/UnpackedTarball/cppunit/include\cppunit/TestAssert.h(161): note: could be 'void CppUnit::assertEquals(const T &,const T &,CppUnit::SourceLine,const std::string &)'
vcl/qa/cppunit/pdfexport/pdfexport2.cxx(5438): note: 'void CppUnit::assertEquals(const T &,const T &,CppUnit::SourceLine,const std::string &)': template parameter 'T' is ambiguous
vcl/qa/cppunit/pdfexport/pdfexport2.cxx(5438): note: could be 'sal_uInt64'
vcl/qa/cppunit/pdfexport/pdfexport2.cxx(5438): note: or 'size_t'
vcl/qa/cppunit/pdfexport/pdfexport2.cxx(5438): note: 'void CppUnit::assertEquals(const T &,const T &,CppUnit::SourceLine,const std::string &)': could not deduce template argument for 'const T &' from 'sal_uInt64'
the aCIDSet.GetSize is a sal_uInt64, but size_t is only 32bit on Windows x86
Change-Id: I9d1f6a99f8badbf1c191abf7ebe3235a6b24917c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209079
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
The commit below tried to add translator comments to a bunch of strings
containing “outline”. This wasn’t done correctly for xcu files because
in that case XML comments are ignored and instead the comment can be
added with a pseudo-language tag called “x-comment”.
commit 9dd7345159
Author: Neil Roberts <nroberts@libreoffice.org>
Date: Fri Aug 7 17:35:49 2026 +0200
tdf#173043 Add translator comments to strings containing “outline”
Change-Id: I1a4e21b98ebbaba5072a8064b67d0ab8fe583e1a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209076
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
* Update translations from branch 'master'
to dc098e41c756c1b18ffc398e2ccc0e6966925faf
- update translations for master
and force-fix errors using pocheck
Change-Id: Ica6433ffbb8156fdc4397f8e78f50624c6c09b09
* Update helpcontent2 from branch 'master'
to 23165a3617d8960d5478c684eb04682625ced2c9
- tdf#173038 More references on other type of support
+ Review getting support page
+ Added more references
+ Refactor
Change-Id: I1c6e5123b83188eeffd2aeb483d88ebd17ab434c
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/209071
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Jenkins
Partially reverts a commit that was causing incorrect SVG rendering,
depending on VCL backend. This commit deleted code that translated
clipping rects from view space into device space. It seems like this
change was made intentionally, but it doesn't work correctly, and
reverting it doesn't seem to affect the behavior of the linked bug.
Regression from commit f5b8ec6b3f
Author: Noel Grandin <noelgrandin@gmail.com>
Date: Fri Oct 17 13:25:32 2025 +0200
tdf#168730 impBufferDevice and caller should have the same mask rect
Change-Id: I7c83a5c372557f658df9ece65cbc6c142a4983ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209070
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
* Update helpcontent2 from branch 'master'
to c7a6a742e3d03c4c379767e4ecc52617aba115ed
- tdf#173038 Explain the nature of Help and refer to other types of
documentation and the user support forum
Change-Id: I66272fc87552f8ac17c54801edd5272ed4367cfb
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/209049
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Jenkins
Replace label "Less Hyphen" of the new hyphenation slider
with "Fewer Hyphens", also "Hyphenation leveled x%" with
"Hyphenation level x%".
On the General pane of the paragraph style settings, add missing
commas and spaces inside the summary of the enabled new hyphenation
settings. Show only the non-default values here. Remove redundant
"No hyphenation across" title, where its value is a full-text
explanation.
Change-Id: Icc9d8bb4023d03be497d76289967b5d6061316ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209067
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
SwEndNoteOptionPage::Reset() looks up a widget named "allstyles" to hide style pickers on Web documents, but that id was renamed without updating the C++ lookup, leaving m_xStylesContainer always null. For .odt documents the dead pointer is never touched. For HTML documents the SwWebDocShell branch dereferences it via m_xStylesContainer->hide(), crashing LibreOffice on open. Guard the dereference with a null check, and restore the "allstyles" id on endnotepage.ui so the hide-on-web behaviour works again for the Endnotes tab.
Change-Id: I2eb54d66b06eef603c952522cea81479c6ee5088
Signed-off-by: Sofia Gazizova <sgaziz@altlinux.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208463
Tested-by: Jenkins
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
The word “outline” in LibreOffice can refer to either the lines of the
shape of something or an overview of something. When the string is quite
short it’s difficult for translators to know which meaning is intended.
There seems to be quite a lot of cases where the translators have got
this wrong. In order to help them this patch adds translator comments to
a bunch of the strings to explain which meaning should be used.
Change-Id: I4b75cc829128633bc9382817fc574d55a09af8a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209037
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
The string in Weblate is presented just as “No %1”. The %1 is replaced
with the name of a font style. Without the context it’s easy to
misunderstand this as being an abbreviation for “number”. At least the
Dutch and Esperanto translations seem to have done this.
Change-Id: I220db88346a84e67b0e34affb1b8e7023cfbb90d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209053
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
This is a dangerous patch because
it makes the function recursive.
But since the Pam defined GetNdEnd in SetNewSet,
I know that I am inside the Pam range
and I also guaranteed that it moves at least by one position.
lcl_SetAttrPam is a bit of a strange beast,
because what is set as 'start' is actually the end,
and what is 'end' is actually set as the start.
It always creates a point-first normalized pam.
In order to gurarantee lcl_SetAttrPam working correcly
for this recursive function
I (presumably unnecessarily) normalized the Pam first.
make CppunitTest_sw_uiwriter11 \
CPPUNIT_TEST_NAME=testTdf135857_findWithoutUnderline
Change-Id: Ic836085580966895a069d57e748e9d117ca51276
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209042
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
This fixes a 27.2 regression for
my commit fe185d43cc
It fixes the problem that Find Previous
wasn't finding attributes in earlier paragraphs.
At least, it wasn't finding non-hints (aka entire paragraph).
[easily seen with 'without strikethrough']
I missed that important aspect of the code which I cut from
sw/source/core/crsr/findfmt.cxx's FindFormatImpl.
oPam->GetPoint()->SetContent(bSrchForward ? 0 : rNd.Len());
Change-Id: Idc14dcc7921e8620794eb4fc2ff333317bef117b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209046
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
It appears that mpLastEvent gets set to a copy of the same
NSEvent somewhere in -[NSApp sendSuperEvent:] causing the
pointers to not be equal when they really are the same.
So prevent infinite recursion by performing a deeper
comparison check with -[NSEvent isEqual:].
Change-Id: Ide6936ac3fb0e2a5c0e146972a3317ebf7a1d8d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209043
Tested-by: Jenkins
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>