4174 Commits
Author SHA1 Message Date
Michael Weghorn e68422786a Drop unused ValueSet forward declarations
Drop ValueSet forward declarations from headers
not actually using the class.

Forward-declare the class in cui/source/inc/numpages.hxx
which actually uses it, but didn't forward-declare it
or include the header yet, but previously got the forward-declaration
from an included header.

Change-Id: I8876ad47eb362f581aa41ee4a61a85c4093a1dd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211881
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:48:46 +02:00
Michael Weghorn dbc1b391de chart2: Port "Chart Type" sidebar section from ValueSet to weld::IconView
In the same way that

    Change-Id: I188f812f2d03fa8cbd97ffaaab3081094809887e
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Oct 1 10:29:15 2026 +0200

        chart2: Port "Chart Type" dialog from ValueSet to weld::IconView

had done for the "Chart Type" dialog, also port the chart
sidebar from using the custom ValueSet widget to weld::IconView.

This helps to be more consistent with other platform/toolkit
widgets and reduces custom logic.

It can be triggered like this:

* start Writer
* insert a chart using "Insert" -> "Chart..."
* while the chart is still selected, open the "Properties"
  sidebar deck

Change-Id: I858dda4b9d5bf62291ee3b0c76b13ee92221f9e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211660
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-02 12:11:10 +02:00
Michael Weghorn e011f74436 chart2: Port "Chart Type" dialog from ValueSet to weld::IconView
Port the widget to select the chart subtype in the "Chart Type"
dialog from using a ValueSet widget to using weld::IconView.

This helps to be more consistent with other platform/toolkit
widgets and reduces custom logic.

Adjust indices used to account for the fact that
weld::IconView indices are 0-based while the ValueSet ones
are 1-based.

The dialog can be triggered like this:

* start Writer
* insert a chart using "Insert" -> "Chart..."
* right-click on one of the bars in the chart to open
  the context menu
* activate the "Chart Type..." menu item

The chart sidebar (ChartTypePanel) will also be ported
in an upcoming commit.

Change-Id: I188f812f2d03fa8cbd97ffaaab3081094809887e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211658
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-02 12:10:59 +02:00
Michael Weghorn 4af0e70a49 chart2: Rename ChartTypeTabPage::getCurrent{Paramter -> Parameter}
Fix typo in method name.

Change-Id: I8f61fcd3d156c3cf7ba73e34bcfb5637bd54e9ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211657
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-02 12:10:51 +02:00
Michael Weghorn 20e2c5e315 chart2: Don't use ValueSet directly in ChartTypeDialogController
So far, ChartTypeDialogController::fillSubTypeList
(and its overrides) was clearing all existing
entries of the passed ValueSet widget and inserting
items for the chart types it handles.

Change the logic to return a vector of entries for
the corresponding chart types instead and let the
callers handle clearing the ValueSet and inserting
the entries instead.

This way, the ChartTypeDialogControllers don't have
to know/rely on the implementation detail what exact widget
is used to display the chart types.

This can simplify porting away from the use of the
custom ValueSet widget in the future, e.g. to
weld::IconView.

Change-Id: I98b32dee7d67b2a9e8c8474c464cacebb21b717e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211557
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-29 14:47:31 +02:00
DrRobotto 2a6ccbc40b tdf#164516 - Allow changing the chart type to of-pie by macro
Register BarOfPieDiagram and PieOfPieDiagram and map them to the
existing chart2 BarOfPie/PieOfPie templates used by the chart type
dialog.

Change-Id: Id5ba30d7547d290826bb360b2ccb3713fdb95a42
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211460
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2026-09-25 23:00:20 +02:00
Neil Roberts 643aab12aa tdf#173575 Don’t display “%VALUETYPE” if range is too small
If the selected range is too small when Insert->Chart is used then most
of the controls in the “Data Series” tab are disabled. Additionally,
nothing was updating the “Range for %VALUETYPE” label defined in the UI
file so it would be left with this stub visible in the UI. This patch
makes the default label instead just be “Range”. The previous string is
now defined in strings.hrc instead of reading from the label value when
creating the dialog so that it can be updated when a valid range is
selected.

Change-Id: Ib926383825f32042dc0c6d33a115d139a50c5aa6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211102
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-09-18 14:42:31 +02:00
Michael Weghorn 76de59770c chart2 a11y: Simplify AccessibleBase::ImplGetAccessibleChildById
No need for an `else branch` as the `if` branch throws
an exception.

Also stop intermediate assignment to local variable
and return the result directly instead.

Change-Id: Ib442f72510302acffb0336e56df3efd6d93c4d83
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210609
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-10 18:31:10 +02:00
Michael Weghorn dbb865574c chart2 a11y: Return without assigning to local var first
Change-Id: I48551b0add3db3335fb0ab09731cadf01f9a0d82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210608
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-10 18:31:03 +02:00
Michael Weghorn a4f18a3ae9 chart2 a11y: Drop XAccessible::getAccessibleContext call
OAccessible returns itself in its XAccessible::getAccessibleContext
implementation and implements the XAccessibleComponent interface itself,
so there is no need to call the method and query for that interface.

Change-Id: I232d86a3c972a8313a6dc62a1b6c799c6b1a9d81
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210603
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-10 18:28:52 +02:00
Michael Weghorn bb11afbcd7 chart2 a11y: Switch AccessibleChartView::m_xParent to OAccessible
Switch AccessibleChartView::m_xParent from a weak
reference of the abstract XAccessible interface to
a weak reference of the more concrete OAccessible class.

Change-Id: Iba9f410979c079735b6c41723206b2ac76c1dc1b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210602
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-10 18:28:43 +02:00
Michael Weghorn 5701442238 chart2 a11y: Use OAccessible in ChartController::impl_initializeAccessible
Switch to using the more concrete OAccessible instead
of the abstract XAccessible UNO interface.

Change-Id: I5ef11c3880788320dda6750409f36a04fcf40a06
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210601
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-10 18:28:36 +02:00
Andrea Gelmini 8ee79ac196 Fix typos
Change-Id: Ic7a97a5219d8a0d30b1753c2502995ea4c2cd32f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210563
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-09-10 16:22:54 +02:00
Dennis Francis 0bbeeeaf54 chart2: odf import/export of correlation circle chart
ODF has no name for this chart type, so the file says two things at once, the
way a histogram already does: chart:class names the scatter chart, which is the
nearest a reader that knows nothing of correlation circles can make of it, and
coext:class beside it names the type itself. A reader that knows the coext name
gets the chart back as it was saved.

The series need no new shape in the file. The feature column is the range of
the series and the two dimension columns are a domain each, which is where a
bubble chart already keeps its x and y values, so both the reading and the
writing of them follows the bubble path rather than a new logic.

The schema the tests validate against lists the values coext:class may take, so
the new one is added there beside the histogram.

The test document is one block of five columns: three features and then the two
dimensions, the shape the wizard asks for. The test checks after a round trip
that the chart type came back, that the file carries both class names, and that
every series still holds its feature column beside the two dimension columns.

Change-Id: Iac73ff357c7490b4f38a4390c63948cf148d8585
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8106
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 4e59ea1c83e61b8dc2647f9a915884f9d461165d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210498
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 00:10:37 +02:00
Dennis Francis ce823e1cc7 chart2: say on the Data Range page which columns hold the dimensions
A correlation circle plot reads the ends of its range differently from every
other chart type: the last two columns are the dimensions its points are placed
against and the columns before them are the features. One range holds the lot,
so nothing about the entry gives that away, and a reader who does not already
know it has no way to work it out.

Display a information label under the range input saying the last two
columns of it are component dimensions and the columns before that are
features.

Change-Id: Ib7d27aad189f12be188f61b1fc317dd1e718b803
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8105
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 2cbf62e18df956ed23c77932cd5e38424e7baa1f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210470
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-04 15:05:11 +02:00
Dennis Francis 22adaa8073 chart2: offer the correlation circle plot in the chart type dialog
The entry sits next to the bubble chart, under the same switch that keeps the
chart types wanting free x values out of the list where they do not belong. It
has one sub type, no three dimensional look and no stacking.

The two images are placeholders: a circle with a cross and a few arrows
out of the middle. They need a designer's hand before this ships.

A test drives the wizard the way a user would: it picks the type, types one
range whose last two columns hold the dimensions, and checks that every column
before them became a series holding that column beside the two dimension
columns. A second test reopens the ranges of that chart and checks the range
comes back as it was given.

Change-Id: If8b5275244a2456a22235a6ce2d3d51fcff6cb94
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8104
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 7a7fc603047e065ebbc20f8bc5dc814d6079e082)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210469
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-04 11:43:03 +02:00
Dennis Francis b0b4bad01f chart2: add a correlation circle chart type
A correlation circle plot shows how each feature of a table relates to the
first two dimensions of a decomposition of that table, which a user can now
work out in a spreadsheet with MSVD. One point per feature sits at the
correlation of that feature with the first dimension across and with the
second dimension up, inside a circle of radius one.

The data arrives as one series per feature. Each series holds its own feature
column under the new role values-feature, together with the two dimension
columns under values-x and values-y, which every series shares the way the
bubble chart shares its x column. Keeping the dimensions on the x and y roles
means the point count, the axis scaling and the label machinery need no
special case, and the series label comes from the feature column header, so
the legend and the point labels read as feature names.

The interpreter reads a flat list of columns as a feature table followed by
two dimension columns: the last two are the dimensions and every column before
them is a feature. One range holds the lot, which is what the wizard hands
over, and it is also the order the list comes in when a chart of another type
is turned into this one. A first column of instance names is kept out of the
features when the range says it has them, as it is for a bubble chart.

Both dimensions are numbers running from minus one to one, so the chart type
joins the scatter and the bubble chart in asking for a numeric axis across.
That answer is also what turns the axis of names back into a numeric one when
a chart of another type becomes this one, since the coordinate system the
other type left behind is kept and reused.

Change-Id: Id17d3a2a235c849c3dab9768159ddf1608da6d05
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8102
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit b30d992bba26428941f47f952baf338df3763065)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209379
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-03 17:07:43 +02:00
Michael Weghorn 2a21a3acf7 chart2 a11y: Use OAccessible in AccessibleChartShape ctor
Use the more concrete OAccessible instead of the
abstract XAccessible UNO interface.

Change-Id: I18fd3378abe7c6f81a0244f7901eb0bedc9f0d32
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210381
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-02 14:34:00 +02:00
Andrea Gelmini 8bd2359805 Remove duplicated include
Change-Id: I69492147b6b7d938b52df38ac9616f2a059264de
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210376
Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
Tested-by: Jenkins
2026-09-02 07:41:44 +02:00
Devansh Varshney eac1e807cc chart2: expose histogram bin settings in axis sidebar
Add histogram binning controls to the axis properties sidebar.

Expose automatic, fixed-width, and fixed-count modes together with
optional underflow and overflow bins. Read the current settings from
the histogram chart type and update the corresponding model properties
when the controls change.

Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Change-Id: Ia252499454a0715b1de094de05158966769ec912
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9284
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit dc0a6a31ff7719cd697220eb173f5c15935096ad)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209220
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-01 15:41:57 +02:00
Devansh Varshney ad77e91af6 chart2: expose histogram bin settings in axis dialog
Add histogram binning controls to the Scale page of the primary
X-axis dialog.

Allow selecting automatic binning, fixed bin width, or a fixed
number of bins, together with optional underflow and overflow bins
and validate invalid combinations.

Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Change-Id: Ia1efb0ea64249f0297f00c29f0bee8a4803ca803
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7984
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit f55a6867e1c2b67069d85611dcf25dbed25b85bd)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209216
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-01 14:00:30 +02:00
Andrea Gelmini 8ff895d2b4 Fix typos
Change-Id: I042b75e729ce5ae92ae5a4fb294ead845428dce9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209476
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-08-22 10:17:24 +02:00
Andrea Gelmini d4b6258652 Fix typos
Change-Id: Iaf47a7c5698d8d846046b8078c4b55157df61082
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209477
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-22 10:11:30 +02:00
Yoon6 9a43c61d85 tdf#145759: Replace magic constant with symbolic constant
Change-Id: I0bb730ce7349ead2bf555180145e1e7fbb56ab0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204671
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
2026-07-30 09:00:48 +02:00
Michael Weghorn c4f1f42cd5 tdf#130857 chart2: Don't modify dialog modality while it's shown
RangeSelectionListenerParent::enableRangeChoosing both sets the
dialog's visibility and modality. So far, it was first setting
the modality and then the visibility.

However, changing the modality while the dialog is shown
doesn't work as expected when using the qt6 vcl plugin
with native Qt widgets with upcoming commit

    Change-Id: I53cbd9061ef473deba2124f17976f24b11c1712a
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 22 17:27:01 2026 +0200

        tdf#130857 qt weld: Support chart "Data Ranges" dialog

in place and would result in an inability to select the
data area as the main window would remain insensitive/disabled
for the following case:

* start Calc
* "Insert" -> "Chart"
* confirm with "Finish"
* with chart still selected, press the context menu key
  (or click with right mouse button) to open the context menu
* select the "Data Ranges..." context menu entry
* in the "Data Range" tab, press the "Select data range" button
* try to click into the document and drag to make a selection

The native Qt implementation wouldn't require changing
modality back and forth, but gtk3 and the gen vcl plugin
would show the same problem as described above when not
setting the dialog to non-modal in the case it gets hidden.

Make all of them work by setting the modality, but always
doing that while the dialog is hidden (not shown), i.e.
either before showing it or after hiding it.

Change-Id: Ia368a919c497d51c4560536995e90f60e3b85768
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208493
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:36:55 +02:00
Michael Weghorn f1f6a505a0 weld: Pass weld::TextWidget& in text change callback/handler
Switch the weld::Entry and weld::TextView handlers
that are called when the text changes due to user
interaction to pass a weld::TextWidget& param
instead of a weld::Entry& and weld::TextView&
one respectively.
Adjust related methods across the code base accordingly.

This unifies the behavior for both of these
weld::TextWidget subclasses and prepares for
deduplicating the logic and moving it to the
common base class in an upcoming commit.

That will also ensure they stay in sync.
(Change also motivated by the fact that their behavior was
differing before

    Change-Id: I03d2a13cd84d53d806eb9e363f49c4b6be28d938
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Jul 9 13:08:58 2026 +0200

        tdf#130857 weld: Don't signal about programmatic TextView text change
.)

Change-Id: I5572fc88caf577fae9a23a39f1ec4f2179935a99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207936
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-10 18:17:27 +02:00
Devansh Varshney 09823632bd chart2: add histogram underflow/overflow bin model support
Add model properties for optional underflow and overflow bins on
histogram chart types, and expose them through the HistogramDiagram
wrapper.

Pass the new settings through the existing histogram pipeline:
HistogramChartType snapshots the properties, HistogramDataSequence keeps
that snapshot, and HistogramCalculator creates optional edge bins around
the normal bin range.

Generated category labels now distinguish special bins from normal ranges,
e.g. "<= 11", "(11-13]", and "> 14".

Add a model-level test that sets fixed bin width together with underflow
and overflow bins, then verifies that the generated bin labels are rebuilt
correctly.

Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Change-Id: I65eac9607daa4f4be6320304c9e9682549f479a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207151
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-06-29 14:35:14 +02:00
Stephan Bergmann e3c26324dd Silence some more bogus -Wrestrict
...that hit at least with GCC 17,

> In file included from ~/gcc/inst/include/c++/17.0.0/memory:71,
>                  from engine/include/sfx2/tabdlg.hxx:22,
>                  from engine/chart2/source/controller/dialogs/tp_SeriesToAxis.hxx:21,
>                  from engine/chart2/source/controller/dialogs/tp_SeriesToAxis.cxx:20:
> In function ‘constexpr _ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*]’,
>     inlined from ‘constexpr _ForwardIterator std::__uninitialized_copy_a(_InputIterator, _Sentinel, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Sentinel = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator = int*; _Tp = int]’ at ~/gcc/inst/include/c++/17.0.0/bits/stl_uninitialized.h:659:32,
>     inlined from ‘constexpr std::vector< <template-parameter-1-1>, <template-parameter-1-2> >::_Alloc_result std::vector< <template-parameter-1-1>, <template-parameter-1-2> >::_M_allocate_and_copy(size_type, _ForwardIterator, _ForwardIterator) [with _ForwardIterator = __gnu_cxx::__normal_iterator<const int*, std::vector<int> >; _Tp = int; _Alloc = std::allocator<int>]’ at ~/gcc/inst/include/c++/17.0.0/bits/stl_vector.h:1957:6,
>     inlined from ‘constexpr void std::vector< <template-parameter-1-1>, <template-parameter-1-2> >::_M_replace_with(size_type, _ForwardIterator, _ForwardIterator) [with _ForwardIterator = __gnu_cxx::__normal_iterator<const int*, std::vector<int> >; _Tp = int; _Alloc = std::allocator<int>]’ at ~/gcc/inst/include/c++/17.0.0/bits/stl_vector.h:1979:44,
>     inlined from ‘constexpr std::vector<_Tp, _Alloc>& std::vector< <template-parameter-1-1>, <template-parameter-1-2> >::operator=(const std::vector< <template-parameter-1-1>, <template-parameter-1-2> >&) [with _Tp = int; _Alloc = std::allocator<int>]’ at ~/gcc/inst/include/c++/17.0.0/bits/vector.tcc:236:21,
>     inlined from ‘virtual void chart::SchOptionTabPage::Reset(const SfxItemSet*)’ at engine/chart2/source/controller/dialogs/tp_SeriesToAxis.cxx:168:69:
> ~/gcc/inst/include/c++/17.0.0/bits/stl_uninitialized.h:294:31: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing between 9223372032559808516 and 9223372036854775804 bytes at offsets 0 and 0 overlaps 9223372028264841225 bytes at offset 4294967291 [-Werror=restrict]
>   294 |               __builtin_memcpy(std::__niter_base(__result),
>       |               ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   295 |                                std::__miter_base(std::__niter_base(__first)),
>       |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   296 |                                __n * sizeof(_ValT));
>       |                                ~~~~~~~~~~~~~~~~~~~~

and

> In file included from ~/gcc/inst/include/c++/17.0.0/memory:71,
>                  from engine/include/rtl/stringconcat.hxx:20,
>                  from engine/include/rtl/string.hxx:44,
>                  from engine/include/rtl/ustring.hxx:39,
>                  from engine/include/com/sun/star/uno/Type.h:25,
>                  from engine/include/com/sun/star/uno/Sequence.h:25,
>                  from engine/include/com/sun/star/uno/Sequence.hxx:32,
>                  from engine/include/filter/msfilter/mscodec.hxx:22,
>                  from engine/filter/source/msfilter/mscodec.cxx:20:
> In function ‘constexpr _ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const unsigned char*, vector<unsigned char> >; _ForwardIterator = unsigned char*]’,
>     inlined from ‘constexpr _ForwardIterator std::__uninitialized_copy_a(_InputIterator, _Sentinel, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const unsigned char*, vector<unsigned char> >; _Sentinel = __gnu_cxx::__normal_iterator<const unsigned char*, vector<unsigned char> >; _ForwardIterator = unsigned char*; _Tp = unsigned char]’ at ~/gcc/inst/include/c++/17.0.0/bits/stl_uninitialized.h:659:32,
>     inlined from ‘constexpr std::vector< <template-parameter-1-1>, <template-parameter-1-2> >::vector(const std::vector< <template-parameter-1-1>, <template-parameter-1-2> >&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at ~/gcc/inst/include/c++/17.0.0/bits/stl_vector.h:678:31,
>     inlined from ‘virtual bool msfilter::MSCodec_CryptoAPI::InitCipher(sal_uInt32)’ at engine/filter/source/msfilter/mscodec.cxx:471:51:
> ~/gcc/inst/include/c++/17.0.0/bits/stl_uninitialized.h:294:31: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 9223372032559808513 or more bytes at offsets 0 and 0 overlaps 9223372028264841219 bytes at offset 4294967294 [-Werror=restrict]
>   294 |               __builtin_memcpy(std::__niter_base(__result),
>       |               ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   295 |                                std::__miter_base(std::__niter_base(__first)),
>       |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   296 |                                __n * sizeof(_ValT));
>       |                                ~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: Ic7474db25c2c88c8796c44a110bdfecca0fa42fa
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4852
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit cf408bbc72fc2cd5d97ea767804f941770f3740c)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207167
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-23 12:17:51 +02:00
Samuel Mehrbrodt fb8ad3985d Prevent warnings "found no inner property set to map to"
The ODF chart export (SchXMLExport::exportTable) and import
(SchXMLTableContext) both read/write "DisableDataTableDialog" on the
chart document, but the wrapper only exposed the inverse
"EnableDataTableDialog". Every access fell through to the
"found no inner property set to map to" warning in WrappedPropertySet
and the table-protected state was silently dropped.

Register "DisableDataTableDialog" as a WrappedIgnoreProperty, matching
the existing treatment of EnableDataTableDialog. Behavior is unchanged
(the flag was already being discarded) but the spurious warnings on
chart save are gone.

Change-Id: I93be0d19872ebbe68994dd88a190c4bf85ef5a78
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1449
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 27ccb0ce32081549f14f51166a4459a8828acd47)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207071
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-06-21 22:13:41 +02:00
Arnaud Versini a94bce360d chart2 : use frozen::unordered_map to avoid allocations
Change-Id: I920ed50880c11cf516448fc4197cb86722d5e2f3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205674
Tested-by: Jenkins
Reviewed-by: Arnaud Versini <arnaud.versini@pm.me>
2026-06-08 08:53:05 +02:00
Devansh Varshney 807f9f4ad6 chart2: Add histogram to UI only in experimental mode
Based on work by Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>.

Change-Id: Iadf124cb82a6952fce3538324528ad56aa273f0d
(cherry picked from commit eb186113209b8012179d2b5c6eac5729876bf61f)
Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1883
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 5bec82ff130a79508b8e205e46085dfa43052d2e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205557
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-06-05 21:53:33 +02:00
Michael Weghorn f26084217a weld: Move weld::Button to own header/Rename weld.hxx
In the past, weld.hxx used to contain the class
definitions for weld::Widget and all subclasses.

By now, weld::Widget and almost all subclasses have
been moved to separate headers, to make it easier
to keep the overview and to avoid having to
recompile ~all UI code when one class changes.

By now, only weld::Button is left in weld.hxx.
Rename the header to Button.hxx.
Drop weld.hxx includes and instead add Button.hxx
includes (or weld::Button forward declarations) where
weld::Button is used.
(Don't simply replace all weld.hxx includes with
Button.hxx ones, since many of them were for the
use of other widgets that have since been moved
to their own headers.)

Add further includes where needed now that the
(direct or transitive) includes of weld.hxx were removed.

Change-Id: I8ea6201446a418d5e38b46337059dcd517ee29d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205937
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-06-05 07:58:07 +02:00
Michael Weghorn 8b5a46a0e0 weld: Move weld::toId and weld::fromId to weldutils.hxx
In the past, weld.hxx used to contain the class
definitions for weld::Widget and all subclasses,
as well as a few helpers.

By now, weld::Widget and almost all subclasses have
been moved to separate headers, to make it easier
to keep the overview and to avoid having to
recompile ~all UI code when anything in weld.hxx
changes.

Move the weld::toId and weld::fromId helpers from
weld.hxx to weldutils.hxx, in preparation of getting
rid of weld.hxx altogether in an upcomcing commit.

Change-Id: I408fe20a74ff104cbfe07bde3105317a1922ff61
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205936
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-04 14:37:13 +02:00
Michael Weghorn 7c6d496a71 weld: Move weld::TransportAsXWindow to own header/source
This makes it easier to keep an overview and reduces
what needs to be recompiled if the class changes in
the future.

Change-Id: Ie8d0aad9bca3e990f78d4ffc006a04b0a8086fd9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205935
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-04 14:36:59 +02:00
Michael Weghorn 8f7cf9c32c weld: Move weld::CheckButton to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Add missing includes/forward declarations in places
previously depending on transitive includes that
are now dropped.

Change-Id: I3215b358e0fa45ffce08756218c386e1a4d7ebc6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205928
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-06-04 08:39:19 +02:00
Michael Weghorn ba7331747f weld: Drop not directly used includes/fwd-decls from weld.hxx
These are not needed inside weld.hxx itself. Instead
add the required includes/forward-declarations to those
files actually needing them, instead of relying on the
now dropped ones.

Change-Id: I5e4cea030867d14057b2bdcc2a2a4cd98843651d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205906
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-04 05:57:14 +02:00
Michael Weghorn da1c7a5459 weld: Move weld::RadioButton to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I34876c5bef75e30e758029b0fe5afeecc92d509d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205903
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-03 23:19:54 +02:00
Michael Weghorn 0bcb591b0c weld: Move weld::TriStateEnabled to own header/source
Move the class definition and implementation out of weld.hxx
and weldutils.cxx into its own header and source file, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I97768bf75dac492e32e1d387853d123481aa643a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205902
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-03 23:19:47 +02:00
Michael Weghorn 243bb112ec weld: Move weld::Container to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Adjust includes in files that were implicitly depending
on transitive includes that are no longer present because
the more specific include/weld/Container.hxx is included
further down now instead of include/weld/weld.hxx.

Change-Id: I04e6bb72ce446b746dfdf88b45c7df9d0ccda473
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205899
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-06-03 23:19:22 +02:00
Xisco Fauli f436c1cd89 drop isLOKMobilePhone
follow-up of
commit 8b90f2cd18
Author: Heiko Tietze <tietze.heiko@gmail.com>
Date:   Thu May 28 09:05:55 2026 +0200

    Remove wordcount-mobile dialog

This commit also reverts
commit 5eec86d6c4
Author: Caolán McNamara <caolan.mcnamara@collabora.com>
Date:   Tue May 6 16:38:57 2025 +0100

    no searchicon (or searchbox) in mobile version of search dialog

Change-Id: I7dd37f5e6575f2f1b7748ce6c1bd6ddadb8c3e77
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205826
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-29 13:38:32 +02:00
Andras Timar 1e14048f3c Fix SIGSEGV in ChartTypeTabPage::stateChanged with null diagram
m_xChartModel->getFirstChartDiagram() can return null; the sibling
code path at line 254 already guards xDiagram before calling
detectScheme() / getPropertyValue(), but stateChanged() at line 179
dereferenced it unconditionally.

Change-Id: I1e6a6ec255b307d829f880f41088fc10d6aeb053
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/2458
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 51d79f2d691f736e5307661c8e3897e1742ffda2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205784
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-05-28 10:57:06 +02:00
Michael Weghorn 336f70f966 weld: Move weld::Label to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ide86f35543468a88288a068cc9f89eaf381ac52f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205763
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-27 22:24:37 +02:00
Devansh Varshney a83694c6ca xmloff: support histogram ODF import and export
Export histogram charts as chart:bar with coext:class="histogram"
and write histogram properties.

Import the histogram class and configuration again recreate the
HistogramChartType, and trigger the histogram template once chart
import is complete so calculated bins, categories, and frequencies
are rebuilt from the preserved raw values-y data.

Change-Id: I202d5666315d4f26da2bf4b3650b4388a9e4fb50
(cherry picked from commit 5fb2f5f2c2676743b823640dbaa02762308d6a54)
Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1880
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit a54fc185d3d73f765bd37cc98df92cac81e01572)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203814
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-05-23 00:09:47 +02:00
Devansh Varshney 6829e82577 chart2: Implement Scott's Rule and Histogram Data Interpreter
This commit introduces the mathematical backend and data interpreter for
the Histogram chart, replacing the temporary raw value rendering.

- Adds HistogramCalculator, utilizing Scott's Rule to calculate optimal
bin widths and frequencies from raw data.
- Introduces HistogramDataSequence that listens to spreadsheet data
changes and automatically regenerates bin categories and frequencies
- Implements HistogramDataInterpreter to intercept raw values-y input,
and output the results into the calculated-y data sequence.

Change-Id: Iaf29ddd0b0824bd3f0808ffc91321cad9d5b877e
(cherry picked from commit 1ef619a998aba626d0ea7a9541109a7c9e145518)
Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1879
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit df68284255ccac4bd86583555986d9f7cbdddf9a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203747
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-23 00:09:41 +02:00
Devansh Varshney 048b35b49d chart2: Add UI and basic rendering for Histogram chart
This commit introduces the structural foundation and user interface for
the new Histogram chart type. The rendering engine gracefully falls
back to plotting the raw values-y input data directly. As a result, the
chart currently renders identically to a standard bar/column chart.

- Adds UI entries in the Chart Type dialog.
- Adds HistogramChart to the view layer, inheriting from BarChart and
forcing a 0-gap width.

Change-Id: Ica5b15e9b7428d6c908e1b978259367fe8ff7aab
(cherry picked from commit 14a4a09b62fc283f9b629a2a317156efa6509054)
Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1878
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 508c3456e85a88771ac5e264cee9460274685a22)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203741
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-23 00:09:33 +02:00
Michael Weghorn 9752a52fd3 weld: Move weld::Box to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I0cc1e0f3aa60d3457af0f0f30ec8fe74cb5ce6a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205489
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:54 +02:00
Michael Weghorn 1a3d6d5cdf weld: Move weld::Frame to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ia7bc570fcd463d9adcbcdad070250cec5bc3b949
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205488
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:45 +02:00
Michael Weghorn ee7e1d968b weld: Move weld::Scale to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I2e42a2992c08311922451bb01062683bd81954fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205486
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:27 +02:00
Michael Weghorn b2ce99c623 weld: Move weld::Image to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I2eb564b2483b052f01d4af55fd4feb00b5ed6031
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205472
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-05-22 21:55:53 +02:00
Michael Weghorn 3f1fb9d4b0 weld: Move weld::Window to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: If7cb4403f1861c465f44a1cae4065b0bf8dfad48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205323
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-19 09:10:43 +02:00