Commit graph

500324 commits

Author SHA1 Message Date
László Németh
3393e52be0 tdf#163309 sw: show rdf:type as labels on bookmark boundary marks
OOo's RDF handling had limited support to optional metadata visualization, like custom prefix/suffix of metadata fields.
This is a similar visualization for bookmark rdf:type metadata,
but without changing the text layout by enabling/disabling
View->Field Shading.

The labels, i.e. text content of rdf:type have left-aligned
top position after the opening bracket of the optional bookmark
boundary mark, and right-aligned bottom position before the
closing bracket. The labels don't overlap at multiple brackets.

Note: the labels are very next to the line text vertically
to support fixed line height better.

Follow-up to commit 412e0ab266
"tdf#150717 sw RDF metadata: add custom color bookmark boundary marks"

Change-Id: I0756c91b51c706f4c7b70fa07f1c7e8fbbf0dc90
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174486
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
2024-10-05 16:20:57 +02:00
Mike Kaganski
229964ac93 tdf#163285: consider page body frame height to allow the split
This improves on commit b271cc4685
(tdf#123116 sw layout: allow rows larger than page to split anyway,
2020-03-12).

Change-Id: I9327a18146d795c65528b0f16cefc81721266046
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174534
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-05 14:03:38 +02:00
Julien Nabet
b48286f558 cid#1620556: UNINIT_CTOR in textview
Change-Id: I0e13c8c189211a97161c1eef5a0ad12e48817564
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174533
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2024-10-05 13:41:54 +02:00
Julien Nabet
f3c294093b cid#1620560: REVERSE_INULL in condformatdlgentry
Change-Id: I4e80e1d3b4c1e4b3f08dcdca6dd64473ff87364d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174532
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-10-05 13:41:44 +02:00
Mike Kaganski
a6a6921123 Use good old string literals in assertXPath and friends
These are only sent to an external API expecting char*-like strings,
or for comparison. Having every assertXPath having three of _[ou]str
is too much syntactic noise, making the unit tests almost unreadable.

Change-Id: Ic004a36ea75e7bfe0b96f405c40f926a957b51cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174416
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-10-05 10:06:44 +02:00
Michael Weghorn
95e2bdf97d tdf#130857 qt a11y weld: Convert accelerator for labels
Convert the accelerator from GTK to Qt convention
for labels as well, to not display a literal "_",
but use the next letter as the accelerator.

For Qt, a literal "&" would still be displayed
if no buddy is actually set, i.e. there is no
related widget that can receive keyboard focus
when the accelerator key is pressed together with
Alt.

Setting buddies was implemented in previous commit

    Change-Id: Iba1e766c0f2c5162beb5b938c134afab0dac68b7
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 22:56:05 2024 +0200

        tdf#130857 qt a11y weld: Set "buddy" (mnemonic widget)

. Together with the above commit, this commit
makes the "Alt Text" label in the "Alt Text" dialog
(cui/ui/objecttitledescdialog.ui) show up as expected
with qt6 in a WIP branch that declares that .ui file
as supported in QtInstanceBuilder::IsUIFileSupported,
while it was previously shown as "_Alt Text".

Change-Id: Ief58dfc6864da9043766eec4eec36da44ae7017b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174511
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:40:15 +02:00
Michael Weghorn
9df896fe54 tdf#130857 qt a11y weld: Set "buddy" (mnemonic widget)
Based on previous commits

    Change-Id: I878eec7be5e82fac3e1b944d7fed7bf6711744ce
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 22:04:08 2024 +0200

        tdf#130857 VclBuilder: Move mnemonic-widget bookkeeping to base class

and

    Change-Id: I32c922f91e5e1d06c003e6d26a4342cbb98942e1
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 22:18:17 2024 +0200

        tdf#130857 VclBuilder: Extract setMnemonicWidget helper + call from base

, implement handling for mnemonic widgets for labels
for native Qt widgets in QtBuilder:

* call BuilderBase::extractMnemonicWidget when processing
  a "GtkLabel" object, in the same way that VclBuilder
  does that.

* implement actually setting the mnemonic widget by calling
  QLabel::setBuddy [1] in QtBuilder::setMnemonicWidget to
  set the "buddy" (mnemonic widget)

This makes Orca in a WIP branch to support a native qt6
"Alt Text" dialog announce the label text as well when
the corresponding QLineEdit/QPlainTextEdit receives
focus, as setting the buddy also ensures that the
accessible labelledy-by/label-for relations get
reported on the AT-SPI layer, see also

    commit 09789838bbbe57d207a66532b38cbba67ec59d70
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 21:39:44 2024 +0200

        tdf#119931: cui a11y: Specify mnenomic-widget in "Alt Text" dialog

which describes the scenario a bit more for the gtk3
variant.

[1] https://doc.qt.io/qt-6/qlabel.html#setBuddy

Change-Id: Iba1e766c0f2c5162beb5b938c134afab0dac68b7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174510
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:40:07 +02:00
Michael Weghorn
b54ffcb133 tdf#130857 VclBuilder: Extract setMnemonicWidget helper + call from base
Instead of iterating over the map of mnemonic widgets
in the VclBuilder ctor, split the logic:

Add a new purely virtual WidgetBuilder::setMnemonicWidget
method to the base class that passes the IDs of a single
pair of label + the corresponding mnemonic widget as params,
and let WidgetBuilder::processUIFile call the method
once for every pair in the map.

Implement that for VclBuilder (by moving the remaining
logic for that previously in the ctor) to the new
override VclBuilder::setMnemonicWidget and add a dummy
implementation for QtBuilder that only triggers a warning for now.

Change-Id: I32c922f91e5e1d06c003e6d26a4342cbb98942e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174509
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:39:56 +02:00
Michael Weghorn
9bf932c00b tdf#130857 VclBuilder: Move mnemonic-widget bookkeeping to base class
Move the `m_aMnemonicWidgetMaps` member and related struct
and typedef from VclBuilder's `m_pVclParserState` to the base
class BuilderBase's `m_pParserState` and also move the
VclBuilder::extractMnemonicWidget method to the base class,
so the logic can later be reused by QtBuilder.

Add a new getter BuilderBase::getMnemonicWidgetMaps to
get access and use that in VclBuilder instead.

At least for now, VclBuilder::extractMnemonicWidget
still explicitly needs to be called by VclBuilder
(and other subclasses) when encountering a "GtkLabel"
object for the mnemonic widget relationship to
be added to the map in the base class.

Change-Id: I878eec7be5e82fac3e1b944d7fed7bf6711744ce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174508
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:39:48 +02:00
Michael Weghorn
fbd0030b97 tdf#119931: cui a11y: Specify mnenomic-widget in "Alt Text" dialog
Specify that the mnemonic widget for the "Alt Text"
label is the text view where the description can
be entered. This e.g. ensures that the a11y labelled-by
label-for relations get reported.

Drop the corresponding suppression for gla11y.

When using the Orca screen reader with the gtk3 VCL plugin,
Orca now announces "Alt Text" when the
text view gets focus, while that was not the case before.

Dialog can be triggered by e.g. selecting a QR code
in Writer, then opening the context menu and choosing
the "Alt Text" menu entry.

Change-Id: I5c8b06198a45cfbe5e1fc4a85ac568094b596819
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174506
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:39:39 +02:00
Michael Weghorn
71e819a2d7 tdf#130857 qt weld: Add a QtInstanceTextView
Add a native Qt implementation for weld::TextView
QtInstanceTextView, that uses a QPlainTextEdit,
and let QtInstanceBuilder use it when it
encounters a "GtkTextView" object in a .ui file.

Implement methods which are probably the most relevant
ones. For now, trigger an assert in case any of the not yet
implemented methods gets called.

None of the .ui files currently marked as
supported by QtInstanceBuilder uses this new class
yet, but it will be needed to support more in the future,
e.g. for cui/uiconfig/ui/objecttitledescdialog.ui.

With this commit in place, adding that file to the
set of supported ones in
QtInstanceBuilder::IsUIFileSupported makes the dialog
somehow show up as a native Qt dialog with the qt6 VCL
plugin when e.g. selecting a QR code in an existing
document, then opening the context menu and choosing
"Alt Text", but there are various issues that still
need to be fixed before it can actually be claimed
as working/supported.

Change-Id: Id7217d4a8a86f953d8b289c8a09cb8d1e2040bf1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174495
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:39:31 +02:00
Michael Weghorn
e0b4f69ef3 tdf#130857 qt weld: Add basic handling for "GtkScrolledWindow"
Create a QScrollArea when encountering a
"GtkScrolledWindow" object in a .ui file.

This commit does not yet implement an
actual Qt-native weld::ScrolledWindow,
i.e. QtInstanceBuilder::weld_scrolled_window
currently still triggeres an assert.

This will help to support
cui/uiconfig/ui/objecttitledescdialog.ui,
which has a GtkScrolledWindow, but
SvxObjectTitleDescDialog doesn't explicitly
interact with it, so this basic implementation
is sufficient for a start.

Change-Id: I80d2565e57809be0cc3ae452359d0d1b827e46f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174494
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2024-10-05 09:39:21 +02:00
Michael Weghorn
778fb6b8f7 tdf#130857 qt weld: Add QtInstanceEntry
Add a native Qt implementation for weld::Entry,
QtInstanceEntry, that uses a QLineEdit,
and let QtInstanceBuilder use it when it
encounters a "GtkEntry" object in a .ui file.

Implement the most straightforward and probably most
relevant methods, and trigger an assert in case one of
the not yet implemented methods gets called for now.
These can be implemented when adding support
for .ui files whose dialogs make use of these
features.

None of the .ui files currently marked as
supported by QtInstanceBuilder uses this new class
yet, but it will be needed to support more in the future.

Change-Id: I56e26fe22b1cc0cb7d61cfd1503991273957e23f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174489
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:39:13 +02:00
Michael Weghorn
5c11421670 tdf#130857 qt weld: Show help when help button clicked
Add special handling for the "Help" button in
QtInstanceDialog::handleButtonClick:

Don't close the dialog with the corresponding
response code, but instead request help, by
calling Help::Start with the widget's help ID
and QtInstanceWidget as parameters.

Together with the previous commit

    Change-Id: I274886d8045b31ccbc92f586e2ead20ff7407d15
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 14:41:29 2024 +0200

        tdf#130857 qt weld: Handle help ID

that implemented setting/getting the help ID
for a QtInstanceWidget, this makes the "Axes"
(online) help page show up when pressing the
"Help" button in the "Insert Axes..." dialog
when using the qt6 VCL plugin, which is using
a native QDialog by default since

    Change-Id: I15901f83192ba33ddc5c5eb779be680f26cb6b55
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 10:53:28 2024 +0200

        tdf#130857 qt weld: Declare support for chart "Insert Axes" dialog

(See that commit's commit message for how to trigger
the dialog.)

See also Dialog::ResponseHdl for the VCL variant,
which also has a corresponding special handling
for the button with response code RET_HELP.

Change-Id: I81e682822defec7a1e58d5a1b3b3eadc3f0040c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174482
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:39:02 +02:00
Michael Weghorn
1d4b1feeb4 tdf#130857 qt weld: Handle help ID
Implement handling for the help ID by using a
new property PROPERTY_HELP_ID that is set
on the QtInstanceWidget's QWidget.

Implement QtInstanceWidget::set_help_id
and QtInstanceWidget::get_help_id accordingly.

For setting the ID, introduce and use a static
helper method QtInstanceWidget::setHelpId
and use that in QtBuilder::makeObject to
set the help ID based on help root and widget
ID, in line with what is done at the end of
VclBuilder::makeObject for the vcl::Window-based
builder.

Change-Id: I274886d8045b31ccbc92f586e2ead20ff7407d15
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174481
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2024-10-05 09:38:54 +02:00
Michael Weghorn
fe39249c79 qt: Add SolarMutexGuard in QtInstance::CreateFrame etc.
These methods call QtInstance::RunInMainThread,
so must hold the solar mutex, see the call to

    DBG_TESTSOLARMUTEX();

at the very beginning of that method.

(I've seen QtInstance::CreateFrame getting
called without the mutex held in a WIP branch
to add support for the "Help" button for
native (welded) Qt dialogs.)

Change-Id: I46adb708a84c031d63d94768c7600cbf3940ad21
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174480
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2024-10-05 09:38:46 +02:00
Michael Weghorn
115e812175 tdf#130857 qt weld: Move button clicked logic to QtInstanceDialog
Move the logic to close the dialog with the corresponding
respone code when a button gets clicked from
an anonymous lambda function in QtBuilder::tweakInsertedChild
to a new static helper method in QtInstanceButton:
QtInstanceDialog::handleButtonClick

This is in preparation of adding special handling for the
"Help" button in an upcoming commit, which - unlike other
buttons - should not just close the dialog with a corresponding
response code.

Change-Id: Idfd08d90df930a25437f99a609a38804bf80bff7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174479
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2024-10-05 09:38:39 +02:00
Michael Weghorn
8e21f46f95 tdf#130857 qt a11y weld: Apply ATK/a11y properties
Set accessible name and description on the QWidget
as specified in the .ui file.

This e.g. makes Orca announce the a11y description
of the checkboxes in the "Insert" -> "Axes" dialog
newly supported by QtInstanceBuilder since

    Change-Id: I15901f83192ba33ddc5c5eb779be680f26cb6b55
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 10:53:28 2024 +0200

        tdf#130857 qt weld: Declare support for chart "Insert Axes" dialog

Change-Id: I403139577e6a932bb92da851dabd3cb994453083
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174468
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2024-10-05 09:38:31 +02:00
Michael Weghorn
c47029a8c5 tdf#130857 qt weld: Convert GTK to Qt accelerator/mnemonic
When setting the checkbox text, don't pass the
string as is, but convert to Qt's convention
for the accelerator, using "&" instead of "_",
using the existing helper function.

This addresses the following issue mentioned
in previous commit

    Change-Id: I15901f83192ba33ddc5c5eb779be680f26cb6b55
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 10:53:28 2024 +0200

        tdf#130857 qt weld: Declare support for chart "Insert Axes" dialog

> Mnemonic underlines for the checkboxes are currently
> not the way they're meant to be, but that's a different
> issue that will be addressed in a separate commit.

Change-Id: I7b86adf396297de8de9b28fcb7e46c3428893c48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174467
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2024-10-05 09:38:16 +02:00
Michael Weghorn
0a5354139a tdf#130857 qt weld: Declare support for chart "Insert Axes" dialog
Add the .ui file for the "Insert Axes" chart dialog
to the list of .ui files supported by QtInstanceBuilder.

Now that

    Change-Id: Ie917a501466bad8821fc3e7f5049db7c1a56995f
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Oct 4 10:38:32 2024 +0200

        tdf#130857 qt weld: Create QGroupBox for "GtkFrame"

added support for "GtkFrame", all widget types used
by that dialog are handled by QtBuilder.

This dialog can be seen as follows:

* start Calc
* "Insert" -> "Chart", confirm with "Finish" button
* "Insert" -> "Axes" (while the chart is still selected)

X and Y axes are shown/hidden as expected according
to whether the corresponding checkboxes are ticked
or unticked before closing the dialog using "OK".

Mnemonic underlines for the checkboxes are currently
not the way they're meant to be, but that's a different
issue that will be addressed in a separate commit.

Change-Id: I15901f83192ba33ddc5c5eb779be680f26cb6b55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174466
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:38:08 +02:00
Michael Weghorn
e2e59d2da1 tdf#130857 qt weld: Create QGroupBox for "GtkFrame"
Handle "GtkFrame" objects from .ui files and create
a QGroupBox [1] for them. While there's also a QFrame
class in Qt, QGroupBox seems more suitable, as it
allows setting a title, while QFrame doesn't.

Add special handling for the label child of the
"GtkFrame". Quoting from the GtkFrame doc [2]:

> The GtkFrame implementation of the GtkBuildable interface supports
> placing a child in the label position by specifying “label” as the
> “type” attribute of a <child> element. A normal content child can be
> specified without specifying a <child> type attribute.

Example for a frame label in chart2/uiconfig/ui/insertaxisdlg.ui:

        <child type="label">
          <object class="GtkLabel" id="label1">
            <property name="visible">True</property>
            <property name="can-focus">False</property>
            <property name="hexpand">True</property>
            <property name="label" translatable="yes" context="insertaxisdlg|label1">Axes</property>
            <attributes>
              <attribute name="weight" value="bold"/>
            </attributes>
          </object>
        </child>

In order to set the label's text as the text for the
QGroupBox, identify that label child in
QtBuilder::tweakInsertedChild, take over its
text as the QGroupBox title, and mark the label
for deletion, as it's no longer needed, since
the QGroupBox handles its title itself from
then on.

[1] https://doc.qt.io/qt-6/qgroupbox.html
[2] https://docs.gtk.org/gtk4/class.Frame.html

Change-Id: Ie917a501466bad8821fc3e7f5049db7c1a56995f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174465
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-05 09:38:01 +02:00
Noel Grandin
e1e7a1ef0f cid#1556892 Data race condition
Change-Id: I69e3148fc01378a5cea5f23aa992658db3997edc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174501
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-10-05 08:57:43 +02:00
Noel Grandin
46f5aa4f58 cid#1607010 Data race condition
Change-Id: Ic89cfabeb25b0b82f2b766ea81f13b0d91bd8de8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174500
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-10-05 08:57:34 +02:00
Noel Grandin
5195aadf1c cid#1607477 Data race condition
Change-Id: I8efcac94aebd10af8d6e749bbf9ad57a0097da49
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174499
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-10-05 08:57:25 +02:00
Noel Grandin
19566380ab Re-organise the skia makefile
so it more closely corresponds to the GN buildfiles that it is derived
from, in order to make updating to newer versions of skia easier

Change-Id: Iffd934d0bb05f4abe2b97838eb18baccac4a5096
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174474
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-10-05 08:41:16 +02:00
Jonathan Clark
99c7cf2816 crashtesting: fix font-dependent infinite loop in kashida justification
Commit c3c29d31d7 (tdf#140767 Implemented
Syriac justification) indirectly introduced a font-dependent infinite
loop in Writer layout by relaxing some restrictions on kashida candidate
positions. The infinite loop was found in tdf97806-2.odt.

This change fixes an underlying logic bug in Writer, which caused Writer
to attempt to apply kashida justification to non-Arabic/Syriac CTL
scripts. This change also reintroduces some of the previously-lifted
restrictions on kashida candidate positions.

Change-Id: I783bf327f4ef0f1f6a032f0d3dddbcfd60a026fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174503
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-10-05 00:05:05 +02:00
Stephan Bergmann
75f3ee7e8a Initialize sw::DocumentSettingManager::mbNoClippingWithWrapPolygon
...newly introduced in 3800ab5835 "tdf#161233
paint pictures completely also with contour wrap", and which started to make
CppunitTest_vcl_pdfexport2 CPPUNIT_TEST_NAME=testTdf124272::TestBody fail with

> pdfexport2.cxx:180:Assertion
> Test name: (anonymous namespace)::testTdf124272::TestBody
> assertion failed
> - Expression: it != pEnd

in some builds like <https://ci.libreoffice.org/job/lo_ubsan/3327/>

Change-Id: Ie55e532d8490262020388a56299390f0dd158a4a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174490
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-10-04 21:29:48 +02:00
Caolán McNamara
037efad7b7 cid#1607024 silence Overflowed constant
and

cid#1607900 silence Overflowed constant

Change-Id: I18ef4b6885f872697c272b9fedc6a3e92a0df587
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174492
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-04 20:30:58 +02:00
Caolán McNamara
ed75a40d3c cid#1606631 Overflowed constant
Change-Id: I5dda80aaa2fa7ec47ad005048ec3738481e5b50c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174491
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-04 20:30:43 +02:00
Caolán McNamara
67158da00e cid#1608061 Data race condition
and

cid#1607995 Data race condition

Change-Id: I18914bd2e70b60c6aa8b34435677f0278367b722
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174485
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-04 20:30:27 +02:00
Ilmari Lauhakangas
f37542a291 Make Start Center pin icon highlight behave as intended
After
commit 9a37652b79
Author: Andreas Heinisch <andreas.heinisch@yahoo.de>
Date:   Wed Sep 6 17:03:26 2023 +0200

    tdf#156959 - Remove pinned icons from thumbnail view item

    Remove pinned icons from thumbnail view item and pushed it down
    to the recent documents view item. This avoids that the pinned
    icon will be shown in a simple thumbnail view, e.g., in the
    thumbnail view of the side pane in base.

    In addition, fixed an error with the number of elements in the
    thumbnail view in the start center when items are pinned, i.e.,
    removed a spurious new line.

... the pin icon stopped changing its state to highlighted.

I believe my commit makes it work like Andreas intended.

Also fix a typo in a member name to prevent accidents in the future.

Change-Id: I074b1ebb773466d72b9fc381b6f1066d2dbc353e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174493
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-10-04 19:48:29 +02:00
Andreas Heinisch
9a2c38530d tdf#163019 - Remove the formula of a cell during paste special
Remove the formula of a cell during paste special and not only the required for insertion. Otherwise, the formula listeners are not updated correctly leading to a crash during the repaint process.

Change-Id: I4bf1410ecc7b25e36e1cc91bc0cd5335decb1cae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173975
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-10-04 18:56:08 +02:00
Pierre F
5ac3a15651 Update git submodules
* Update helpcontent2 from branch 'master'
  to a3d5c1442a38c08407b4a0e4e54d4ca79d14e380
  - tdf#143846 split BASE + BAHTTEXT
    
    new helper : xsltproc  --stringparam func BAHTTEXT helpers/calc_text_func.xsl source/text/scalc/01/04060110.xhp > source/text/scalc/01/bahttext.xhp
    
    Change-Id: I40c33d486c45ef0a3316dba1c0aea4af68ff9f37
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/172748
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2024-10-04 18:20:25 +02:00
Caolán McNamara
67d01815da expand and drop getContext
Change-Id: I8bfa5ba7d4767d2e2be1b32f8569d606e62debe5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174484
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-10-04 17:07:27 +02:00
Christian Lohmaier
e98b65e471 Update git submodules
* Update translations from branch 'master'
  to d5e786eb569095ac348028ca7878e44bc4543dc1
  - update translations for master
    
    and force-fix errors using pocheck
    
    Change-Id: Ic61d23eabfdbe3635267c095d71fc71cd0a455fe
2024-10-04 17:06:42 +02:00
Xisco Fauli
c914a9da32 unoxml: port testXNodeList_ChildList from java to c++
Change-Id: I75d4d9bb275ac1d50fe92f6bd193037f81e3ac64
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174478
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-10-04 16:31:03 +02:00
Xisco Fauli
acc52f9bc0 tdf#162948: Add support for gte attribute in conditional format
Change-Id: I3dd1a9499ec8d3685b84f3745cf4156b75d1f76f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174470
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-10-04 15:30:55 +02:00
Xisco Fauli
df54f8a4bd related tdf#163291: revert workaround for tdf#137922
It's no longer needed after bb0e5aa979
"tdf#163291 Fix AdditionsDialog in start center"

This reverts commit 63b0565ad1

Change-Id: Ib89ddaf9a9654220ade6f40a6c48933763ca4a30
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174477
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-10-04 15:30:03 +02:00
Caolán McNamara
f61cc4f122 allow editeng html import to treat divs as inserting a newline
optional, currently cowardly defaulted off, except for the specific
use-case.

Change-Id: I8a6176ee356fa4d2b665d5325d9b7aba2a6579f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174472
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-10-04 15:28:47 +02:00
Caolán McNamara
6d94b7988f support setting writer comment contents from simple-html
Change-Id: I42002c1b1ade940603ca6d2ca0f6072f1672cce8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174471
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-04 15:28:21 +02:00
Xisco Fauli
71293e4c19 sc: convert import test into export test
In preparation for a follow-up patch

Change-Id: I3a981d28004e9888b749eb497ef871a9cac658c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174473
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-04 14:32:06 +02:00
Hossein
bb0e5aa979 tdf#163291 Fix AdditionsDialog in start center
Previously, AdditionsDialog was not working while in start center. Also,
there were a lot of code duplicates. This patch fixes these issues.

The UNO command .uno:AdditionsDialog was incorrectly implemented as
application specific. There were multiple duplicate conditions for
checking SID_ADDITIONS_DIALOG in each and every application. Now, this
is only done in sfx2/source/appl/appserv.cxx in a single point.

The AdditionsDialog can now be opened while in start center in different
places of "Tools > Options" for icons, dictionaries, etc. Also, this
LibreOffice BASIC code snippet opens it:

Sub Main()
    oDispatch = CreateUnoService("com.sun.star.frame.DispatchHelper")
    Dim args(0) As New com.sun.star.beans.PropertyValue
    oDispatch.executeDispatch(StarDesktop.ActiveFrame,
        ".uno:AdditionsDialog", "", 0, args)
End Sub

Change-Id: Ifb7e466449008b9bb6e5b678da2e54f58bc101e3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174469
Reviewed-by: Hossein   <hossein@libreoffice.org>
Tested-by: Jenkins
2024-10-04 13:04:38 +02:00
Caolán McNamara
5739280623 Split out this html parsing hunk as a separate NewLine method
Change-Id: I1fb034af2419306f96152ce6802d193d7a1560af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174441
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-04 13:01:10 +02:00
Rashesh
263e0c5665 cool#10040: fix: send LOK_CALLBACK_CELLFORMULA with LOK formulabar update
- we were not getting the cell content when we are editing cell using
formulabar in online. This message is important to autocomplete formulas
in online.

Change-Id: I62da49cb8800583931ffefcc39ab181ab9562eb6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173333
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
(cherry picked from commit 67699071ba8bf51055028ea185b0afc2a1540f9e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174006
Reviewed-by: vivek javiya <vivek.javiya@collabora.com>
Tested-by: Jenkins
2024-10-04 12:26:43 +02:00
Marco Cecchetti
a983af222e fix-up slideshow: provide animations info
Avoid to export json node with the same name
node name moved to nodeName property

Change-Id: Ibefc6689e6af22e9d2a27b39fd1e08ced6756051
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174464
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-10-04 11:53:29 +02:00
Armin Le Grand (allotropia)
37d3e978c9 tdf#163124: Show correct PopUp when SlideShow running
When the non-native SlideShow in DrawViewShell::Command
in drviews4.cxx (see !bNativeShow) is active, the above
checks/actions have to be done to make the EditView work
normally, but use the "page" standard context menu
fallback only when SlideShow is not running to get the
SlideShow popup menu - as expected when SlideShow is
running.

Change-Id: I6e3bc69023218fc0decce61581ddbc498e00d39c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174437
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Tested-by: Jenkins
2024-10-04 11:29:45 +02:00
Michael Weghorn
3370e122d7 vcl: Merge ImpTextView into TextView
The only thing that ImpTextView had were the
class members, and then all access to these was
done from TextView using `mpImpl->`.

Move the class members from ImpTextView directly
into TextView and drop ImpTextView.

Change-Id: I9fd6ebbdc497b87e2440d3d6a810b7c24488430b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174461
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2024-10-04 00:41:07 +02:00
Michael Weghorn
427371814d tdf#163225 vcl: Erase listbox bg when redrawing on mouse move
Somehow, moving the listbox invalidation code from
ImplWin::PreNotify to ListBox::PreNotify in

    commit fd7cb42f7d
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Feb 14 16:16:30 2023 +0100

        tdf#153520 vcl: Align listbox invalidation with mouseover check

triggered rendering artifacts for the tdf#163225 listbox example.
It seems that the previous rendering operation apparently seems a
pixel or so off from the current one and as the InvalidateFlags::NoErase
flag gets passed, what was drawn previously is not erased.

Don't pass that flag any more to ensure that the background is
properly erased, which fixes the rendering artifacts.

The flag's docmentation says:

    /** The invalidated area is painted with the background color/pattern. */
    NoErase              = 0x0004,

Dropping the flag doesn't negatively affect drawing a listbox
that has an explicit background color set in my tests, s. modified
sample document attachment 196871 in tdf#163225 .

Stop passing that flag in ListBox::StateChanged, too.

Change-Id: Ibcacbed01888449db062f84b4782feb9de69851c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174438
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-04 00:40:50 +02:00
Oliver Specht
3800ab5835 tdf#161233 paint pictures completely also with contour wrap
Pictures/shapes with contour wrap are clipped in Writer.
Word paints the pictures completely while the text flows above
around the contour. This is implemented here for imported documents.

Change-Id: I2a5fd89c18cbb3e88b65bc63e8105cc07b95af82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173869
Tested-by: Jenkins
Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-10-04 00:05:42 +02:00
Caolán McNamara
c5f4fe1058 check for null DocShell before deref
an effort to fix:
https://crashreport.libreoffice.org/stats/signature/static%20void%20sw::%60anonymous%20namespace'::TextFormattingCheck::check(class%20SwNode%20*)

Change-Id: I5adb0a1c244ec3372bd58e5a5493cbce80684ae1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174425
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-10-03 23:37:51 +02:00