Age | Commit message (Collapse) | Author |
|
This reverts commit fd2ca9607431fc6ca49e37ab6fef228aa72da5f9,
since it causes a regression when copying a chart.
Change-Id: I5d40de6f46b4b3e68531257d27f9a81540a06da4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140427
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I672f6cc93f3f00c54eb2be7fa490d656bb5f0b02
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140407
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
since it was running for quite a while compared to the others
Change-Id: Ia83a452fea67de425691f8ef66f23cde47fc0af8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140236
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I3617efa2e7fd55e6c1007338fd3c52aa9bbf13b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140232
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
can just return the substring we need
Change-Id: I9d605cb809f58fcf60c0ae2e29aaff17baa9faa0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140177
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I2f23240ff1f6edcefd3cc10605f3f0d924265795
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140129
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
|
|
The emphasis is not quite right. An animation is made up a sequence of
*frames*, not bitmaps. A frame includes such things as position, size,
timeout till the next frame *as well as* a bitmap.
Note: had to regenerate a bunch of precompiled headers
Change-Id: Ib1959452653857555f41e01ac0151d08c41a3b1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/76460
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I57e463bf110fd3818ec586bbab1db75ff1101ff6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139972
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Idc9756bf5b468d8ed0d11e6a75703d96350e1273
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139960
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ic40dfeb742e97b90332dd711cfb582b6f102c8df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139958
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
it is very small, and this means we can get rid of some ugly runtime
symbol loading
Change-Id: I1d5f5da6a9e908ccd018915bf09b9ab97d67feb6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139866
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
need to move it, because modules "below" vcl want
to use the debug output method
Change-Id: Ibcaf4089a1e0b3fcc0b5189c7ebf1aae90f50b48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139791
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
to reproduce this in reality, insert a chart, activate it, select and
copy and paste something like a bar of a bar chart. Select that copy and
copy to clipboard again. reactivate chart, paste that element into the
surrounding spreadsheet, select and copy something else to clear the
chart transferrable and the model created by the chart transferrable
leaks.
there are an unrelated blizzard of a11y mutex deadlocks here btw :-(
Change-Id: I650885d8c784cc1b2b023af8f5e23b3dceb2d9f3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139794
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I601a5b3e649de0f4b02eea9289e175070b31781e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139806
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Change-Id: I6e74973b79cbefae3e311456989c78ea364a0aa4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139795
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Graphic is just a wrapper around shared_ptr, so no need to
allocate this separately
Change-Id: Ie657dea1c021e66a6876e814090a44cb6f995b91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139739
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
It is really unfortunate that so much of our code depends on the
DPI, that should not.
Change-Id: Id1916677add508171490591a234f07a82a8e3f5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139648
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change associated for by std::find_if in sqlbison.y
Also change some integer by std::size_t
Change-Id: I0d2100fbd7c22729da6ce0462c6cc093e0767fb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136263
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
|
|
With 16k column support in Calc enabled by default in
commit 4c5f8ccf0a2320432b8fe91add1dcadf54d9fd58
Date: Tue Mar 8 12:44:49 2022 +0100
change default Calc number of columns to 16384 (tdf#50916)
, the number of Calc cells in a spreadsheet is larger than
SAL_MAX_INT32, meaning that a 32-bit a11y child index is no more
enough and using it resulted in integer overflows in
methods handling corresponding Calc cells in the a11y layer.
This e.g. had the effect of the Orca and NVDA screen readers
not announcing focused or selected cells properly when their
a11y child index was out of the 32-bit integer range.
Switch the internal a11y child indices to 64 bit to
be able to handle this properly internally.
Since the platform APIs (at least AT-SPI on Linux and
IAccessible2 on Windows; from what I can see LO's macOS
a11y bridge doesn't directly expose the child index)
are still restricted to 32 bit, larger child indices
still cannot be exposed via the platform APIs.
As a consequence, use of the the IAccessible2 and
AT-SPI methods that use the child index remains
problematic in those cases where the child index
is larger. However, as an alternative to using the
AT-SPI Table interface and the IAccessibleTable/
IAccessibleTable2 interfaces with the child index
to retrieve information about a specific cell,
both AT-SPI and IAccessible2 also provide interfaces
to retrieve that information directly
from the cell object (TableCell interface for AT-SPI,
IAccessibleTableCell for IAccessible2).
Those interfaces are already implemented/exposed
for winaccessibility (s. `CAccTable`) and the
qt5/qt6/kf5 VCL plugins (s. the `QAccessibleTableCellInterface`
methods implemented in `QtAccessibleInterface`).
With the switch to 64-bit internal a11y child indices,
these now behave correctly for cells with a child
index that doesn't fit into 32 bit as well.
NVDA on Windows already uses the IAccessibleTableCell
interface and thus announcing focused cells works fine
with this change in place.
Orca on Linux currently doesn't make use of the AT-SPI
TableCell interface yet, but with a suggested change to
do so [1], announcement of selected cells works
with the qt6 VCL plugin with a current qtbase dev branch
as well - when combined with the suggested changes
to implement support for the AT-SPI TableCell interface
in Qt [2] [3] and the LO change based on that [4] and
a fix for a nullptr dereference [5].
The gtk3 VCL plugin doesn't expose the AT-SPI
TableCell interface yet, but once it does so
(via `AtkTableCell`), it also works with the
suggested Orca change [1] in place.
(Adding that is planned for an upcoming change,
works with a local WIP patch.)
For handling return values that are larger than what
platform APIs support, the following approach has
been chosen for now:
1) When the return value is for the count of
(selected) children, the maximum value N
supported by the platform API is returned.
(This is what `ScAccessibleTableBase::getAccessibleChildCount`
did previously.)
The first N elements can be accessed by their
actual (selection) indices.
2) When the return value is the child/cell index,
-2 is returned for objects whose index is greater
than the maximum value supported by the platform
API.
Using a non-negative value would mean that the
index would refer to *another* actually existing
child. A child index of -1 on the other hand
tends to be interpreted as "child is invalid" or
"object isn't actually a child of its (previous)
parent any more)". For the Orca case, this would
result in objects with a child index of -1
not being announced, as they are considered
"zombies" [6].
What's still somewhat problematic is the case where
more than 2^31 children are *selected*, since access
to those children still happens by the index into
the selection in the platform APIs, and not all
selected items are accessible this way.
(Screen readers usually just retrieve
the first and last element from the selection and
announce those.)
Orca already seems to apply different handling for the
case for fully selected rows and columns, so
"All cells selected" or "Columns ... to ... selected"
is announced just fine even if more than 2^31
cells are selected.
(Side note: While Microsoft User Interface
Automation - UIA - also uses 32-bit indices, it also
has specific methods in the ISelectionProvider2
interface that allow to explicitly retrieve the
first and last selected item,
`ISelectionProvider2::get_FirstSelectedItem` and
`ISelectionProvider2::get_LastSelectedItem`, but
we currently don't support UIA on Windows.)
Bound checks at the beginning of the methods from the
`XAccessibleContext`, `XAccessibleSelection` and
`XAccessibleTable` interfaces that take a child index
(or in helper methods called by those) should generally
already prevent too large indices from being passed to
the methods in the lower layer code that take smaller
integer types. Such bound checking has been
been added in various places where it wasn't present yet.
If there any remaining issues of this
kind that show after this commit, they can probably be
solved in a similar way (s.e.g. the change to
`AccessibleBrowseBox::getAccessibleChild` in this
commit).
A few asserts were also added at
places where my understanding is that values shouldn't
be larger than what is supported by a called method
anyway.
A test case will be added in a following change.
[1] https://gitlab.gnome.org/GNOME/orca/-/merge_requests/131
[2] https://codereview.qt-project.org/c/qt/qtbase/+/428566
[3] https://codereview.qt-project.org/c/qt/qtbase/+/428567
[4] https://gerrit.libreoffice.org/c/core/+/138750
[5] https://codereview.qt-project.org/c/qt/qtbase/+/430157
[6] https://gitlab.gnome.org/GNOME/orca/-/blob/82c8542002e36e0d3d918088d583162d25136143/src/orca/script_utilities.py#L5155
Change-Id: I3af590c988b0e6754fc72545918412f39e8fea07
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139258
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
map is already a node based data structure, so the values will stay
in the same place in memory
Change-Id: I255d99cd2014f33524480e218d2d9cd5ca812375
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139235
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Rename CommandId to ShapeControllerCommandID
Change-Id: I41369ba893d68df876c8200aae19cc617837d077
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138251
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
|
|
Which means we can get rid of the majestic hack of ScCaptionPtr
Previously, SdrObject was manually managed, and the ownership
passed around in very complicated fashion.
Notes:
(*) SvxShape has a strong reference to SdrObject, where
previously it had a weak reference. It is now strong
since otherwise the SdrObject will go away very eagerly.
(*) SdrObject still has a weak reference to SvxShape
(*) In the existing places that an SdrObject is being
deleted, we now just clear the reference
(*) instead of SwVirtFlyDrawObj removing itself from the
page that contains inside it's destructor, make the call site
do the removing from the page.
(*) Needed to take the SolarMutex in UndoManagerHelper_Impl::impl_clear
because this can be called from UNO (e.g. sfx2_complex JUnit test)
and the SdrObjects need the SolarMutex when destructing.
(*) handle a tricky situation with SwDrawVirtObj in the SwDrawModel
destructor because the existing code wants mpDrawObj in
SwAnchoredObject to be sometimes owning, sometimes not, which
results in a cycle with the new code.
Change-Id: I4d79df1660e386388e5d51030653755bca02a163
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138837
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ibbc46bfb17d4d27dc40e63c65190b3f3a5f2d9c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138256
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
|
|
In special case the legend keys are not series, but can be each
value of a series. This can't be done for the data table where so
this has been disabled.
This caused a crash when positioning the symbols, as in some cases
we got 0 symbols (due to another bug that didn't put the symbols
into the collection) or more symbols that there were series (and
the symbols couldn't be positioned correctly). With this change
we now get the correct number of symbols for the data table.
Also added the test document and test to open the document, to
make sure we don't crash anymore.
Change-Id: Idbebdd5295595a823b5420958e803b13258df035
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138697
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
...so that its TOOLS_WARN_EXCEPTION can be used in
comphelper/source/misc/logging.cxx in a follow-up commit. (And while at it,
rename from diangose_ex.h to the more appropriate diagnose_ex.hxx. The
comphelper module is sufficiently low-level for this immediate use case, so use
that at least for now; o3tl might be even more suitable but doesn't have a
Library until now. Also, for the immediate use case it would have sufficed to
only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION,
TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of
include/tools/diagnose_ex.h into an additional new
include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move
the complete include file as is.)
Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Full text of legend labels could overflow the chart area,
if the legend text was too long. If it's longer than
520 characters, strip it at the first space from the
500th character (or if there is no space, at the 500th
character). This results better XLSX interoperability, too.
Change-Id: I23a94f6baaf620b40e9b2819738eba5c5a921722
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137492
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: László Németh <nemeth@numbertext.org>
|
|
Change-Id: I250a900298f455ce594bf7dd99acbe984efc5ada
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138466
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
- better symbol positioning taking symbol height and cell height
into account.
- symbol height depends on font size (as with the legend)
- take symbol aspect ratio into account
- remove hardcoded values
Change-Id: I3537d82538035cd31b928d4bb6fc5572914fcd13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138463
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
The CharBackColor should only be set when the fill style has the
value "FillStyle_SOLID", otherwise don't set it as we can't handle
any other fill style.
Change-Id: Icaec8996d47966bb32bd8cf88b8c5aad70ab07a8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138462
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Idff337523a66195277b364be474baffcebca26aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138369
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
To be able to show the data table correctly we need to always
show the categories "between tick marks" as otherwise the table
columns wouldn't align correctly. This forces that the shift
position is always enabled.
Change-Id: Ia6a627931fcaba64f0f974faf1d8763405ad410d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138337
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
In case when the X axis is swapped, so the Y axis is rendered in
the place of X axis, we need to render the data table below the
Y-axis labels. This is best done to put the data table into the
Y-axis instead, so we get the correct size and position of the
data table, and then just allow rendering of the axis labels and
(re)position the table below Y-axis.
Change-Id: I74aa79402a5638133b0d1ed83bbd8aad6f6c9d1d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138336
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I1c857ebe1ce4851f15da05291daecc09e7e74209
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138335
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I4dd93d84879274721ded01be1a47b62487066b4e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138334
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
For chart data table, the fill is always setting the char background
(highlight). As we don't support other fill types in LibreOffice for
the char background, we can't set anything else when rendering. We
need to extend editeng and UNO API with the support for this.
Change-Id: I47d342e02ad2347bac0515a62cc0de4391f98150
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138331
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
When setting the properties of the data table it is important to
differentiate when we set the properties of the text of the (first
and only) paragraph or set the properties for the current cell.
In this chage we refactor the code so that we always set the text
via UNO text::XText call for the current cell, and in the next step
get the XPropertySet of the first paragraph and set the properties
relevant for the text from the DataTable model.
Change-Id: Ibe82b21c3416083cfe8e86b95443d77984da05f5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138330
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I5530477dc86ba2174ba6e553dfe77f8fa355a863
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138329
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I556b4f249688a3836bbeeb3f554cb9ecf1d31f65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138301
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
The row/column headers didn't enable/disable the table borders
correctly when outline was enabled and horizontal and vertical
borders properties were disabled.
Change-Id: Ifcb059dd7d39890bbcaf55d3a68dce41eef586cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138300
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Iff13b188df18fe8f9919274869774f53f2ea323b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138299
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I6b25a7a82957705481952bc3cd181a6d0c1fce0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138298
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
This change adds import and export code for the the chart's data
table properties to the ODF format for chart documents. The data
table properties are exported to a new element "data-table", which
then references a auto style with all the properties of a data
table + new data table specific properties: HBorder, VBorder,
Outline, Keys which are mapped to "show-horizontal-border",
"show-vertical-border", "show-outline" and "show-keys" chart
attributes.
Also adds a test for the import and export:
imports xlsx -> exports to ods -> imports ods
Change-Id: Id45d9369fd619959e4d6eba7ca51c8ddce9c8f56
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138260
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: If8caf59629327b623b2630776b1e650cbe4fbed1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138259
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I8ef0698252209af01b0741a59dec70f845f0c965
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138258
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ie3c033c587b150723e7aa39cd5ddf5774104db9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138257
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I4fac46ac2a119275bcdaa6ebc8b7382ad6fb5684
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138249
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ib60a2b061966eb61834480b63dc0653410a43a14
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138248
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I0a8d3643fcaefe8105e935b929947174bd9bdc96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138247
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
This adds a new object type "Data Table", with all the object
identifiers and converters of properties.
The data table is now shown in the drop-down of chart elements.
A properties dialog was added, which allows to change properties
of a data table. This contains the area, line and font tab pages
and a new tab page specific for data tables, to change if the
horiz. or vert. borders, key or the outline should be show.
Change-Id: I9b4cd58cffbcc952daaa2c0c8f8a5a17e38ac293
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138246
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Iee007f7ff4d9665ee089712e7ba98090a8090609
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138245
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|