Add support for input and output of 'split position' parameter (number of entries
in second plot) for of-pie charts. In OOXML this uses the supported split-pos
tag. For ODF I added an extension in loext namespace for this parameter.
This commit also includes simple tests for the I/O functionality in OOXML and
ODF.
Change-Id: I00ff59db721867fa836eb99b6677350040d005dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170666
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Invisible cells in Word are added to Writer tables to get regular
tables. Borders of such cells are allready switched off. Now also
paragraph spacing is removed to not determine the row height.
Change-Id: I27d3d033de54f051527cf29e2655e7a564d1a5ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176219
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Tested-by: Jenkins
Apparently, the value of defaultRowHeight is just some nice
kind of suggestion to Excel, since optimalRowHeight rows
can be less than what is specified in defaultRowHeight.
Since Calc always treats defaultRowHeight as authoritative,
on export it needs to always export it that way.
Apparently there are some TWIPS calculations
going on because while Calc defaults
to exporting a defaultRowHeight of 12.80,
Excel is still round-tripping it as 12.75.
make CppunitTest_sc_subsequent_export_test2 \
CPPUNIT_TEST_NAME=testTdf120168
(In this unit test, it originates as customHeight=1,
but Calc was round-tripping it without that.
Although the round-trip looked identical in Calc,
in Excel the empty rows were now much shorter,
being height-formatted according to the default font size.)
Change-Id: I7ed6b612de0fa508a89dc4cf357b873de230962c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177276
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
in a SalInstanceEntryTreeView, otherwise the ctrl+pageup/down gets
processed twice by the toplevel notebook due to the forwarding used
here.
Change-Id: Ic5003064ddba44f940fb4c4a727d8081c3644361
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177277
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
It had been introduced in commit de9dba9275
(gridsort: introduce XSortableGridDataModel::removeColumnSort, 2011-01-18),
but in getTypes, an explicit exclusion for it had been made.
Change-Id: I4915949b26ef15905ec810aa54e69d0e62100b90
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177256
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
While debugging tdf#163945, Xcode's Instruments application uncovered
the following performance bottlenecks when using Skia/Metal:
1. Very slow rendering an NSBox:
Many system colors have the NSColorTypeCatalog color type. For
some unkown reason, setting the NSBox's fill color to a color set
to NSColorTypeCatalog causes drawing to take at least twice as
long as when the fill color is set to NSColorTypeComponentBased.
So, only draw with a fill color set to NSColorTypeComponentBased.
2. Excessively large offscreen buffers when drawing native controls:
The temporary bitmap was set to the control region expanded by
50 * mScaling (e.g. both width and height were increased by 200
pixels when running on a Retina display). This caused temporary
bitmaps to be up to several times larger than needed. Also,
drawing NSBox objects to a CGBitmapContext is noticeably slow
so filling all that unneeded temporary bitmap area can slow down
performance when a large number of NSBox objects like the status
bar are redrawn in quick succession.
Using getNativeControlRegion() isn't perfect, but it does try to
account for the focus ring as well as the minimum width and/or
height of the native control so union the two regions set by
getNativeControlRegion() and add double the focus ring width on
each side just to be safe. In most cases, this should ensure
that the temporary bitmap is large enough to draw the entire
native control and a focus ring.
3. Unncessary copying of bitmap buffer when drawing native controls:
Let Skia own the CGBitmapContext's buffer so that an SkImage
can be created without Skia making a copy of the buffer.
Change-Id: Ibd3abb4b9d7045c47268319772fe97a5c4dba3c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177225
Tested-by: Jenkins
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
This fixes my LO 7.1 regression from bug 108820.
The problem was that footnotes-placed-in-table-headline
were being visually removed if a split-table was ever joined
during editing, etc. (i.e. one less page needed).
Avoid the join() cleanup code being triggered on GetFollow frames
because those were wrongly being informed that there was a footnote,
despite being deliberately disallowed in IsFootnoteAllowed,
so it really must not HasFootnote()!
make CppunitTest_sw_core_layout \
CPPUNIT_TEST_NAME=testTdf158713_footnoteInHeadline
Change-Id: I8f395217ba66a258738fc3f32846b952c69d367b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177059
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
...so the existing C code started to fail with
> In file included from workdir/UnpackedTarball/mariadb-connector-c/libmariadb/ma_alloc.c:20:
> workdir/UnpackedTarball/mariadb-connector-c/include/ma_global.h:687:25: error: two or more data types in declaration specifiers
> 687 | typedef char bool; /* Ordinary boolean values 0 1 */
> | ^~~~
(And the !defined(HAVE_BOOL) there, always being true, apparently started to get
in the way now and thus needed to be removed, whatever its original purpose.)
Change-Id: I781458d643e01a7199e19a178da3a32520d16b34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177260
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
A database range is an <table:database-range> element in file format. It has the
attribute 'table:contains-header' with values 'true' (default) and 'false', and
the attribute 'table:orientation' with values 'row' (default) and 'column'. The
attributes are only written to file, if the value is not default.
If the selected range has a database range element then use its contains-header
property rather than what was last selected.
Change-Id: I120daa2756c50b6c51fab4f6a0549a0b874abaee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177231
Reviewed-by: Sahil Gautam <sahil.gautam.extern@allotropia.de>
Tested-by: Jenkins
Use cursor that includes section nodes, the core implementation should
not need start/end to be a text node.
Fix one case in SwDoc::ResetAttrs() where a text node is expected.
(regression from commit 7ab349296d)
Change-Id: I56960b5d233ced02703a7c522ebe6afa3347cd25
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177259
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Make the ImplGetLabelFor param const, so the const
`this` can just be passed to it as is.
Change-Id: Ie6f0c5100cc67050012d9165b436cbd76550d8d1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177248
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Instead of having a purely virtual
VCLXAccessibleBox::IsValid that all subclasses
implement the same way, deduplicate this by
moving the implementation to the VCLXAccessibleBox
base class.
Change-Id: I354bf3d0be6751a165b373c06b951c6f0b63480b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177252
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Make the `pWindow` param for `ImplFindDlgCtrlWindow`
a const pointer, which removes the need to
`const_cast` when calling the function in
Window::getLegacyNonLayoutAccessibleRelationMemberOf.
Change-Id: I2225f5c4be33060c1e3fddd5e83760e68856585d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177245
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
ViewShellBase is the SfxViewShell and is the analogue of the equivalent
writer/calc SfxViewShell's, while a DrawViewShell is one of multiple
sd::ViewShells that can exist inside that SfxViewShell
Issue:
* When creating new shell instances, background color is fetched from application configuration.
* When multiple users are active on an Impress document, if one switches to notes view, a new shell is created.
* Background color for the new shell is fetched from app colors.
* If another user has switched to dark mode, the user which just switched to notes view, will see dark mode for their background.
Moving the SdViewOptions options down the ViewShellBase means that
multiple sd::ViewShells hosted within that ViewShellBase share the same
view settings.
Change-Id: Id875260dda89311ab8029ead08b47f80fd14604f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177253
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
+ 'Records:' to 'Compare by:'
+ if row is selected in 'Compare:', 'Header:' checkbox should be labeled as
'Data contains column headers' and vice versa for column
Change-Id: Ic9dfbab9a5636312c40b6945af3abdcd9b190310
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177230
Tested-by: Jenkins
Reviewed-by: Sahil Gautam <sahil.gautam.extern@allotropia.de>
Dispatching .uno:Line in LOK mode inserts a line shape with defaults at
the center of the current slide, but dispatching .uno:Bezier_Unfilled
starts an interactive mode where the preview is not exposed in LOK, so
looks weird.
.uno:Line works because DrawViewShell::FuPermanent() actives the "create
directly" flag for SID_DRAW_LINE.
Fix the problem by doing the same for SID_DRAW_BEZIER_NOFILL in the next
block: we get a curve shape with reasonable defaults with this.
If an interactive curve drawing mode is wanted for LOK in the future,
then that would be handled outside LOK anyway, with taking the already
drawn curve's properties at UNO command dispatch time.
Change-Id: I03feded76578575ecfbd4a0d79c7ca1a31e37093
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177250
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
the more complex label-for/labelled-by only need to get used
when when using something non-standard as a "label"
Change-Id: Ibbe13b868622646e20357703e31cfc26e31fac7a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177238
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
...alongside each other are identical.
Started when a call inbetween was removed in
e50f6c0239.
and
V1053 Calling the 'EnableRTL' virtual function in the constructor
...may lead to unexpected result at runtime.
and
V1051 Consider checking for misprints. It's possible that the
...'nTopPos' should be checked here.
V1028 Possible overflow. Consider casting operands of the...
'nStartCol + 1' operator to the 'sal_Int64' type, not the result.
Change-Id: Ided25ab6dc9e9d4a1c72a1b809de586c7b890ce0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177218
Tested-by: Jenkins
Reviewed-by: Aron Budea <aron.budea@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
The idea of IPDFEncryptor is to be the interface to encrypt the
stream/string in the same way, irregardless which PDF encryption
version/revision we are using.
Change-Id: Ie7835384f1be5a44c53985b01c8187323400aa0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176890
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
instead of using margin property in .ui where size_request
doesn't take such margins into account, while pref_size does.
Change-Id: I7c557fd63c438515814ad32b9627895c27c13b81
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177213
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Call weld::Expander::signal_expanded when the
QtExpander expanded state changes, e.g. when
its button gets clicked.
In order to do that, introduce a signal in
QtExpander and connect to that in
QtInstanceExpander.
With this in place, a breakpoint in
weld::Expander::signal_expanded now gets
hit as expected when (un)expanding the
expander in the "Set Password" dialog triggered in Writer
using "File" -> "Save As", check "Save with password"
checkbox and press "Save" when using the qt6 VCL
plugin with SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
This implements what was mentioned as still
missing in earlier commit
Change-Id: I7e3a332c0417b1897ae57d7d4c29609245fb5e19
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sun Nov 24 01:20:31 2024 +0100
tdf#130857 qt weld: Add QtInstanceExpander
as
> Signal handling still needs to be implemented
> (calling `weld::Expander::signal_expanded` when
> the expanded state is toggled).
Change-Id: I9cd1b2cc99018f84ba930d55399953266119bed0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177199
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Declare support for the "Set Password" dialog that can
be triggered in Writer using "File" -> "Save As", check
"Save with password" checkbox and press "Save" to trigger
the dialog.
This means that native Qt widgets are used for that dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
This makes use of QtInstanceExpander added in
Change-Id: I7e3a332c0417b1897ae57d7d4c29609245fb5e19
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sun Nov 24 01:20:31 2024 +0100
tdf#130857 qt weld: Add QtInstanceExpander
Currently, I see a small rendering issue when
opening that dialog and expanding the expander:
The "Enter password to allow editing" and
"Confirm password" label text is a bit cropped.
It's shown fine when manually enlarging the dialog a bit,
however.
Change-Id: I37775fa3a39d621696d2a6aaa49bd11d6cfb9350
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177198
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Add a new QtInstanceExpander class that is the
weld::Expander implementation using a native
Qt widget. It uses the custom QtExpander widget
added in
Change-Id: Id2366834cb542eba613ea087e70f3a812d20fa89
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sun Nov 24 00:07:44 2024 +0100
tdf#130857 qt weld: Implement "GtkExpander" equivalent
Extend QtExpander to provide what's needed
to implement the QtInstanceExpander methods.
Let QtInstanceBuilder::weld_expander return an
instance of the new class.
Signal handling still needs to be implemented
(calling `weld::Expander::signal_expanded` when
the expanded state is toggled).
QtInstanceExpander is e.g. needed by the "Set Password"
dialog. ("File" -> "Save As", check "Save with password"
checkbox and press "Save" to trigger the dialog.)
Change-Id: I7e3a332c0417b1897ae57d7d4c29609245fb5e19
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177197
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Now that "GtkExpander" support has been implemented,
declare support for the "Safe Mode" dialog that can
be triggered via "Help" -> "Restart in Safe Mode"
and confirming with "Restart".
This means that native Qt widgets are used for that dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
Change-Id: I67ef04356a5147c24442cd3ec84e4bbc644b3a71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177196
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>