that suggests there are alternatives to choose from
Change-Id: Ica3367fae93f57f339bdc39b1cd91d47a2c9618e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164146
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
...which should be rare enough in practical use that it should be sufficient to
only have toString-functionality for instances mapped from C++ to JS, but no
constructor for new instances on the JS side. (The natural choice for the
latter would be a mapping of the C++
> inline Type( TypeClass eTypeClass, const ::rtl::OUString & rTypeName );
constructor, but which requires a mapping for the css::uno::TypeClass UNOIDL
enum, which is only provided "later" through CustomTarget_static/unoembind, so
would at least conceptually be a bit dirty.)
This Embind mapping treats css::uno::Type as a smart pointer for the underlying
typelib_TypeDescriptionReference, to benefit from the fallback garbage
collection (in more recent Emscripten versions, at least) for smart pointers,
obviating the need to call .delete() on each instance mapped to JS.
Change-Id: Ic113967c264c28641dfd1fe159012c85519f4a9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164140
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
ScanlineFormat enum is used to indicate 2 things - scanline format
type and scanline direction (TopDown or BottomUp). This makes it
complex to manipulate with (using bit arithmetics) and hard to use
in general for no benefit, so this commit separates direction out
from the ScanlineFormat into ScanlineDirection enum. ScanlineFormat
is now just a simple enum class (not a bit field).
Change-Id: Iad55d0a4c8c07b71221c2facf7cf6a2d518fec0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163943
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
so fold it into the ctor
Change-Id: If063143ef47a8ab293edf3896fb51079d0e0284f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164144
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
which means I can remove one usage of gb_Library_set_plugin_for, which is blocking linking the accessibility module into --enable-mergelibs=more
Change-Id: I8664ae1d2da4526cc7eab79b36e1589eb391d7c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163680
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Using same callback caused a regression about showing tooltip while
reviewing a change in writer. So we need a type to understand which
tooltip comes.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Iae26ff48f9c5c711af071fd66b5314e7bc96ff8b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164093
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
also possibly could be
if (mpDocSh && !maPresSettings.mbInteractive)
Change-Id: If68df161f4f7e72d6598469e398c3a8b44e1eba9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164139
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
in other columns
Regression from 89e032e9c4
"tdf#158314: show Empty and Error entries as non-selected and inactive...
...when hidden by autofilter."
The mbHasEmpties variable was added in
9c1826d980
"sc-perf: do not add a million empty filter entries just to sort and
discard"
Change-Id: Ie0d81fd57f68038fac62cb6a3442e93ed547167a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162752
Tested-by: Jenkins
Reviewed-by: Kevin Suo <suokunlong@126.com>
Implement the new `QAccessibleAttributesInterface`
just added upstream to Qt in qtbase commit [1]
commit fb5ffe862688a87cfc136113e067bcba0c49a7ae
Author: Michael Weghorn <m.weghorn@posteo.de>
AuthorDate: Fri Nov 10 18:25:02 2023 +0100
Commit: Volker Hilsheimer <volker.hilsheimer@qt.io>
CommitDate: Thu Feb 29 04:44:22 2024 +0000
a11y: Add new QAccessibleAttributesInterface
, see also QTBUG-119057. [2]
This API is available with Qt >= 6.8.
That interface makes it possible to report
object attributes that are bridged to the platform a11y
layers.
Use it to bridge the attributes retrieved from
the `XAccessibleExtendedAttributes` UNO interface.
Together with the pending upstream qtbase change that
implements the AT-SPI bridge for Linux [3], the "level"
AT-SPI object attribute for headings in Writer
is correctly reported to AT-SPI, making the
Orca screen reader announce "Heading level N" as expected.
For now, map not explicitly handled attributes
as key-value pairs to Qt via the special
`QAccessible::Attribute::Custom` attribute,
which causes them to be mapped to AT-SPI unchanged, and
can e.g. be used for testing the tdf#158030 scenario.
For common attributes - like those specified in the
Core Accessibility API Mappings specification [4] -
suggesting to add new enum values to the
`QAccessible::Attribute` enum to upstream Qt
and using those instead should be considered for the future.
Related commit for gtk4:
commit 3aca2d9776
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Nov 9 15:31:57 2023 +0100
gtk4 a11y: Handle the "level" object attribute
[1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=fb5ffe862688a87cfc136113e067bcba0c49a7ae
[2] https://bugreports.qt.io/browse/QTBUG-119057
[3] https://codereview.qt-project.org/c/qt/qtbase/+/517526
[4] https://www.w3.org/TR/core-aam-1.2/
Change-Id: Ibe357bfd72bb2dc6e44ad941e62737d5cac21e1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159309
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Prior to this fix, if two files were opened and had the same file name (but in a different directory), Calc might not create the duplicate sheet in the correct file.
Change-Id: I7cdbdd2f3dae6752a3b78bbdcb74fbecb5b24b68
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163763
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Regression from commit ce2fc5eb29
(tdf#158341 sw floattable: fix layout loop when fly is below the body
frame, 2023-11-29), open the bugdoc, add an empty paragraph at the
start, Writer layout crashes. The immediate problem is that
SwTabFrame::MakeAll() assumes that in case HasFollowFlowLine() is true,
then GetFollow()->GetFirstNonHeadlineRow() is always non-nullptr,
similar to the situation in commit
223d2fac61 (sw floattable: fix crash by
trying harder to split tables, 2023-11-22).
The deeper problem is that the bugdoc has a repeated table header row,
the fly frame temporarily gets shifted down, so nominally the header
doesn't fit anymore, and this leads to a modification of the doc model,
which creates inconsistency: the model now says we have no header rows
but the layout still contains table row frames where the header bit is
true. This is problematic in theory, but in practice caused no problem
so far.
Fix the problem by disabling this mechanism for floating tables: trying
to have a table header that doesn't fit the table is asking for trouble
anyway, and this way at least we have a layout that is consistent with
the model, which also avoids the crash, now that nobody violates the
"HasFollowFlowLine -> follow's FirstNonHeadlineRow != nullptr"
invariant.
Also extend the layout dump, so it's easier to see when the master's
flag and the follow's row list gets out of sync.
Change-Id: I52b51f6d86ab4e0bab560f892e9cceb183aecd5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164136
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
like what writer does, so one view of a document can have spelling
enabled and another disabled
Change-Id: I9eae02fd1a2def56bfa9399860e416180fc178c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163874
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Set the tile width/height from the step size and write it into the
draw:fill-image-width/height properties.
Change-Id: I70d69a6d5e77929bd14282731dd68d3bcafa9c1a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163574
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
We need to scale the tiled image that fills our polygon, so add
width and height fields, we'll fill in and process them in subsequent
patches.
Change-Id: Ib0000066170ccbc0f4a4c971e1d6df72c3f7df14
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163573
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
In a poly which is being image filled, we need to create a style
with the actual image definition in the 'Contents'
and then set the (automatically created) name of this in
the prop on the main style.
Also we need to set draw:fill to "bitmap" rather than "solid"
Change-Id: I253704519011e98fd106331ccfb139ad93ef6dee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163572
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
I need the finalisers to be able to read an image, they have
a ref to the processor but not the emitter; so allow the container
to be read via the processor reference.
Change-Id: Ifd3b2af1d456561ad42ae3e7c664f03b2e0c971c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163571
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Use -1 to mean the existing solid fill, otherwise it's the ID
of the image to use as the fill.
Change-Id: I596c26145f5285f75af631a3bb7ddf09600982a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163570
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
For fill-images we need the image as a string.
Change-Id: I4a8429563b0e19ad977b4e933a0ffee378dab244
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163569
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
For draw:fill-image we need output like:
<draw:fill-image draw:name="foo">
<office:binary-data>Base64stuff
</office:binary-data>
</draw:fill-image
Style's 'Contents' entry, almost does that and is currently
unused; but it doesn't put the tags in. Adding the tags
manually in the Contents string doesn't work (because it bypasses
something in the Emitter?).
Since it's not currently used, add the office:binary-data
tags for our use.
Change-Id: Idaf11b49bd075bb82116a0578bb4c38790dd0fb7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163568
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Like stroke-dash, draw:fill-image needs the name setting in
the draw:name attribute.
Change-Id: Ib9c888765af8bfb0849f0f1ef15f9774808a1661
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163567
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Add a parser for the TilingPatternFill entry from the poppler wrapper.
This doesn't get triggered yet until the wrapper enables the
tilingPatternFill.
Change-Id: I34ab84ba1ab9d6773f33d667b324bef5d6c6e409
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163564
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
We need to flip the bitmap between the wrapper and LO, but there's no
easy way to do this in a Poly image fill in LO, so do it as a simple
bitmap flip in the wrapper.
Change-Id: Ifd84d37926c21edf30654d3884be975849a6dca3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163563
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Render the tile down to a common format using Splash
and write it to the stream.
Change-Id: Iccc451d1a02ed2ad77538883ab3fe5542fc633e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163562
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Add the 'tilingPatternFill' hook to our output device, but don't enable
it yet; we can do that at the end of the series.
Change-Id: Id52b023c3025f5addce1ab09663da9b8bd8a75e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163561
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Enable the splash module, to be used in the xpdf conversion
for tiled patterns.
I've jumped through a couple of hoops to avoid splash
bringing in freetype, extending the existing hack.
This might cause us problems if someone tries to use
text as a tile, but otherwise isOK.
Change-Id: I76ad1268f44137ae5e3205d56170c3a7c55a2dc8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163560
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
The constants are only reflected directly as JS values in the generated *.js
file. Reflecting them via emscripten::constant in the generated *.cxx did not
work well: Most importantly, emscripten::constant (and its underlying
_embind_register_constant) coerce all values to double, so UNO (unsigned) hyper
would not survive as JS BigInt, which would then cause e.g.
> console.assert(test.isHyper(uno.org.libreoffice.embindtest.Constants.Hyper));
passing such a (JS number, not BigInt) value into the
org.libreoffice.embindtest.XTest::isHyper method (which expects a UNO hyper) to
fail. (Also, constants of UNO boolean type would be represented as numbers 0/1
rather than as false/true.)
Change-Id: I056db0ccce0bf40eb53728fd439cc74964eb6951
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164097
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
otherwise I get hard to diagnose SIGSEGV further on in other code
Change-Id: Ic0397c7dd532f639482dfc2ee9ec36b32023fb5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164099
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
And use standard functions in the rtl_math_RoundingMode_HalfEven
handler.
Change-Id: If9f29aa63423db9457a02ed003cfc27cf3df5585
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164104
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
The print page orientation set in the Print Dialog displays incorrect
print area borders on the sheet after closing the Print Dialog or
interrupting the printing process.
The print dialog increase in size if the "Pages" and "All pages" radio
buttons are toggled many times.(problem is not reproduced on Windows)
regression was made by: I5e494a0714e398221bee00744d7e25c419a41df7
Change-Id: I5a0ab3d781b21eff575afaebb233237eff1827d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164085
Tested-by: Jenkins
Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de>
The problem was that a pointer was assumed valid, but
was not, so now we check the value of the pointer
before using it. Works now to delete footnote style.
Also, change assert to variable check to ensure the
proper method is only called when it is supposed to
be, and to prevent a failing assert. We add a new
Destr method on SwFormat so that it can be called
from the SwTextFormatColl context and thus avoid
the assert.
Change-Id: Ia4b8029fb89e627cd685b3317606e2b9d60cf248
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162965
Tested-by: Jenkins
Reviewed-by: Matt K <mattkse@gmail.com>