Commit Graph
518966 Commits
Author SHA1 Message Date
Khaled Hosny 3bdf95ee12 vcl: Don’t release NULL CoreText objects
CTFontCopyTable() returns NULL if the table is not in the font, which
is the case we are checking for here, and CFRelease() is documented to
crash on NULL. Similarly CTFontDescriptorCopyAttribute() can return
NULL, in which case the font format was left uninitialized as well.

Change-Id: Idfa570d704244cbe505104934bfca456b2b54451
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208633
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
Tested-by: Jenkins
2026-07-27 01:40:19 +02:00
Khaled Hosny 561ef2ae62 vcl: Drop unused include from fftester
Change-Id: Iebb02463af8ca9aaa14c7128ff0528184a061b7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208632
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
Tested-by: Jenkins
2026-07-27 01:40:08 +02:00
Khaled Hosny 6231d90efd vcl: Don’t use uninitialized OS/2 data in GetFontCapabilities()
SvStream leaves the destination untouched when a read fails, so a font
with no OS/2 table (or a truncated one) filled the coverage bitsets
from an uninitialized variable, and reported them as valid.

Set the bitsets only if the reads succeeded.

Change-Id: I1eb39adc578ef991c29b57ed5d5683fd673e63e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208631
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
Tested-by: Jenkins
2026-07-27 01:39:59 +02:00
Khaled Hosny abd5e20699 vcl: Drop unused cmap table lookup in GetFontCharMap
Change-Id: Icf66fa73df00d31e2215f86793ac775c9cfd380f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208629
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
Tested-by: Jenkins
2026-07-27 01:39:48 +02:00
Andrea Gelmini 00cb1a2abf Fix typo
Change-Id: I32ce286d8196423f6994272d2865820e96a9c0c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208508
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-07-26 09:43:27 +02:00
Andrea Gelmini 0aed78b50b Fix typo
Change-Id: I8b3f831eede6de77fb40f24541e98f3304272090
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208509
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-07-26 09:43:04 +02:00
Michael Weghorn a85bae573e sc: Resave standardfilterdialog.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Data" -> "More Filters" -> "Standard Filter..."

Change-Id: If4dd7eb5ca1c0fbc7717fbb6837636cc564b105c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208560
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 23:45:33 +02:00
Michael Weghorn 522da67c33 tdf#130857 qt weld: Support Calc "Define Label Range" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Sheet" -> "Named Ranges and Expressions" -> "Labels..."

Change-Id: I87f009618d8c3514eff6b64d7c67fbc0b9a033d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208559
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 23:45:26 +02:00
Michael Weghorn 4ab6ad8177 sc: Resave namerangesdialog.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Sheet" -> "Named Ranges and Expressions" -> "Labels..."

Change-Id: Ifdfdb9843c018433c0daba0312aeaf6c02497d83
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208558
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 23:45:19 +02:00
Michael Weghorn 39ee2274d1 tdf#130857 qt weld: Support Calc "Create Names" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Sheet" -> "Named Ranges and Expressions" -> "Create..."

Change-Id: I568e4d27cbd1363d43e842b350880096d1ff4417
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208557
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 23:45:12 +02:00
Michael Weghorn a7e943f974 sc: Resave createnamesdialog.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Sheet" -> "Named Ranges and Expressions" -> "Create..."

Change-Id: Ib8604aa14db7a5add775a2541897980b494e6e0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208556
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 23:45:04 +02:00
Michael Weghorn 207e01e51f tdf#130857 qt weld: Support Calc "Random Number Generator" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* select cells A1:A10
* "Sheet" -> "Fill Cells" -> "Fill Random Number..."

Change-Id: Ic56ae0ff509c364d454fae57c7cf83b02982d595
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208555
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 23:44:55 +02:00
Olivier Hallot a38fe1558e tdf#172791 Math Matrix editor does not have a Help button
Added extended tips as well

Change-Id: I2336eab4233e136da3ee65d8ec369fb2d3d9a97f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208528
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Jenkins
2026-07-25 21:44:14 +02:00
Michael Weghorn bf6644b99a sc: Resave randomnumbergenerator.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* select cells A1:A10
* "Sheet" -> "Fill Cells" -> "Fill Random Number..."

Change-Id: I5923152bc2f22a8bfa9b7854f516456744bcc6cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208554
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 21:41:09 +02:00
Michael Weghorn fb4fd0332f tdf#130857 qt weld: Support Calc "Fill Series" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* select cells A1:A10
* "Sheet" -> "Fill Cells" -> "Fill Series..."

Change-Id: I81db46feff9c41d1e90dd817c33e7b3063ee9bcd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208553
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 21:41:01 +02:00
Michael Weghorn e177011b30 sc: Resave filldlg.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* select cells A1:A10
* "Sheet" -> "Fill Cells" -> "Fill Series..."

Change-Id: Ia7a92373d0f010621fd084fa52d8f7afef715892
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208552
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 21:40:53 +02:00
Michael Weghorn 580a9f2226 tdf#130857 qt weld: Support Calc "External Data" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Sheet" -> "External Links..."

Change-Id: I7c6058f2f00d98e88817c8a699566e7fc5e7ab6f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208551
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 21:40:45 +02:00
Michael Weghorn b5319618d8 sc: Resave externaldata.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Sheet" -> "External Links..."

Change-Id: Id13d69ef241166a1b04b2b85b2eeb6c6abe3c865
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208550
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 21:40:36 +02:00
Michael Weghorn dd852da09c tdf#130857 qt weld: Support chart "Stepped Lines" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Insert" -> "Chart..."
* for "Choose a Chart Type", choose "Line"
* for "Line type", select "Stepped"
* press the "Properties..." button

Change-Id: Ica91da7a7ad1f06d09b9f0b6a46d1047c5444429
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208549
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 21:40:29 +02:00
Xisco Fauli d86ee6d211 sw: fix warning C6011: Dereferencing NULL pointer 'pDelNd'.
Change-Id: I35d40bfc058a6a1b8d843a0fec15c2a040e2c992
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208608
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-25 17:54:40 +02:00
Christopher Sherlock 5922c26bca vcl: finalize coordinate pipeline nomenclature and update map.cxx
This commit finalizes the CoordinateMapper refactor by resolving naming
collisions and establishing a strict semantic separation between
physical units and logical distances.

To avoid ambiguity with the word "Pixel" and to clearly distinguish
between pure mathematical scaling and coordinate space translations,
the API has been standardized:

1. Distance Scaling:
   Renamed the pure multiplication methods from LogicToViewX/Y to
   LogicToViewDistanceX/Y. This frees up the namespace and clarifies
   that these methods handle scaling without applying mapping offsets.

2. Physical Pipeline Stages (*Units):
   Implemented the definitive space-to-space transformation ladder using
   the 'Units' suffix for physical stages and 'LogicUnits' for the
   document stage:
   - DeviceToWindowUnits / WindowToDeviceUnits
   - WindowToViewUnits / ViewToWindowUnits
   - ViewToLogicUnits / LogicUnitsToViewUnits

3. Legacy Cleanup:
   Purged the orphaned LogicToViewPixelX/Y declarations and
   implementations left over from earlier refactoring attempts. Updated
   the legacy ImplCalcDevicePixelX/Y helpers to utilize the new
   LogicUnitsToViewUnitsX/Y pipeline stage.

4. map.cxx Alignment:
   Updated all OutputDevice translation sites in map.cxx that previously
   relied on the overloaded LogicToViewX/Y to explicitly call the correct
   LogicToViewDistanceX/Y variants, restoring a clean build.

Change-Id: I621ed8741055a29bf65963d75b763ca3e4a7bd0f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203658
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-07-25 16:35:52 +02:00
Christopher Sherlock 80cd30600c vcl/osx: fix use-after-free crash in AquaSalMenu::unsetMainMenu
When detaching the main menu from NSApp via [NSApp setMainMenu:nil],
the NSMenu object can be deallocated immediately if it has no other
strong references, leading to a crash when the subsequent loop attempts
to iterate through its items.

This commit ensures the menu remains valid during the teardown process
by explicitly retaining the menu and scheduling an autorelease before
detaching it from the application.

Change-Id: I78420d42846f11732e23b0a4cf66b41bf6b73c98
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208053
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
2026-07-25 16:33:13 +02:00
Caolán McNamara b5c845264b sw: restore early return when there are no links to update
Otherwise the "Automatic update of external links has been disabled"
infobar shows for documents with no links.

Over enthusiastic since:

commit d8a09afac6108d7ba23b253ed83b564af8a31c55
Date:   Fri May 22 14:26:01 2026 +0000

    register writer XATTR_FILLBITMAP URLs as SvBaseLinks via SwFormat and SwContentNode

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I56f90ec0dc9ba0d078cf82a6dbec104f48faab98
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4339
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit d11bb554a321c2a379b85fae73fe4b242beea674)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208604
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-07-25 15:27:02 +02:00
Caolán McNamara b14f8b9dfa stop the fill-bitmap link listening to its host's SvtBroadcaster
It's annoyingly difficult to remove the links from the broadcaster,
drop that approach and do it a more direct and less reentrant way.

Get ~SwFormat and SwContentNode::ImplDestroy to report the death to the
tracker instead.

A flag on SwDoc keeps the common no-links case in those destructors to a
single test.

During ~SwDoc the hosts stay silent: the links administration manager
can already be unreachable through the half-destroyed document, and
~FillBitmapLinkTracker releases whatever is left without touching the
dead hosts.

SwContentNode::ImplDestroy skips disconnected nodes, the stack-built
working copies like SwTextNode::Update's SwContentNodeTmp that have no
nodes-array and no SwDoc. A node deleted for real still reaches its
SwDoc, since SwNodes::RemoveNode deletes nodes while they are still in
the array.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibbf15e4e17a7a08aa029c9d5df8f40b7a4a13e04
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4282
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 38ac5c0e6c7baf4de27498e5428d6279c753c97e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208603
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-25 15:26:55 +02:00
Caolán McNamara a59f6ff190 keep writer fill-bitmap links registered after the graphic resolves
The write-back of the fetched graphic re-entered onFillBitmapURLChanged
with a now-resolved item and erased the link's LinkManager entry in the
middle of SvBaseLink::Update.

Ignore the write-back with an updating-host guard so resolved links stay
registered and Edit > Links keeps offering them, covered by the new
testBackgroundImageLinkSurvivesUpdate in CppunitTest_sw_tiledrendering2.

This aligns what writer does with what the svx tracker for the calc,
impress and writer draw-layer does since:

commit b08bffeeeba27e0e10664e5f4cbd9c16ca567ae3
Date:   Fri May 29 09:03:26 2026 +0100

    register calc XATTR_FILLBITMAP URLs as SvBaseLinks via SdrObject ItemChange

Change-Id: I08c7beae66e884d6bbf5c65345526761fcaade96
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4281
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit aa1cc82b862556fa32cd0edc7f767374d2c90863)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208602
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-07-25 15:26:47 +02:00
Michael Weghorn 2474789f2d chart: Resave steppedlinesdlg.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Insert" -> "Chart..."
* for "Choose a Chart Type", choose "Line"
* for "Line type", select "Stepped"
* press the "Properties..." button

Change-Id: I0bbef11445f7cf184e46b955dd32fcd8fbb474f3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208548
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 11:07:17 +02:00
Michael Weghorn b29aa904ce cui: Drop OfaTreeOptionsDialog::showDialog comment duplicating code
This comment just repeats the mapping that the code
underneath it implements.
Drop it, to deduplicate this.

Change-Id: I60497fbd52b057986f76b88cef82d4a991927c7b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208600
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:41:22 +02:00
Michael Weghorn 794f03b084 cui: Make OfaTreeOptionsDialog::showDialog param const
This vector can be passed by const reference. Also use
an "r" prefix; this is not a pointer.

Change-Id: I5c96a3701a24096a045c58a99d81ad6b49145c4e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208599
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:41:15 +02:00
Michael Weghorn 27e98cdbe8 tdf#119931 tdf#130857 chart a11y: Set mnemonic widget in "Smooth Lines" dlg
Set the mnemonic widget, which e.g. makes the Orca screen
reader announce what the combo box is about ("Line Type")
when it receives focus with the gtk3 or qt6 vcl plugins on Linux.

For qt6 and the use of native Qt widgets
(SAL_VCL_QT_USE_WELDED_WIDGETS=1) this also fixes
that the labels text was previously shown as a literal
"Line &Type".

Change-Id: I2e699a10bdec27663b38a92d4091e647a6b7c49e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208497
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 10:40:46 +02:00
Michael Weghorn 7cc058ccb9 tdf#130857 qt weld: Support chart "Smooth Lines" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Insert" -> "Chart..."
* for "Choose a Chart Type", choose "Line"
* for "Line type", select "Smooth"
* press the "Properties..." button

Change-Id: I15685601f9cab81bd15e591b9c7864adae65864d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208496
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 10:40:38 +02:00
Michael Weghorn 301180557e chart2: Resave smoothlinesdlg.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Insert" -> "Chart..."
* for "Choose a Chart Type", choose "Line"
* for "Line type", select "Smooth"
* press the "Properties..." button

Change-Id: I4bad77d57fb6f33dea653ad48f6dd0e32a8085c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208495
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:37:14 +02:00
Michael Weghorn f8d3a5e370 tdf#130857 qt weld: Support chart "Data Ranges" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* 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

This depends on previous commit

    Change-Id: Ia368a919c497d51c4560536995e90f60e3b85768
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 22 17:20:59 2026 +0200

        tdf#130857 chart2: Don't modify dialog modality while it's shown

for the dialog modality/main window sensitivity to work
as expected. (See the commit message of that commit
for more details.)

Change-Id: I53cbd9061ef473deba2124f17976f24b11c1712a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208494
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 10:37:05 +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 117b0073a0 sc: Merge ScSimpleRefDlg::Init into ctor, drop obsolete comment
It's not 100% clear what the

    // in order to keep the Strings with the FixedTexts in the resource:

comment was referring to, but it's most likely obsolete,
as nothing here is related to string resources.
(The wording of "FixedTexts" and "resource" also
sounds like terminology specific to the pre-weld era.)

Change-Id: I2e0ae770fdfc039a75ef01b633b7d0506ec9a929
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208491
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:36:47 +02:00
Michael Weghorn 52386e2580 sc: Pass ScSimpleRefDlg SfxBindings param by ref
Change-Id: Ib18dec2c9ddb5eef670066c96e48e7a6ff4b60b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208490
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 10:36:38 +02:00
Michael Weghorn 29bfcf7b9c tdf#130857 qt weld: Support Calc "Data range" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* 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

Change-Id: If6373fb69ae7cb4315c0c4e267dcc7912d5015fe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208489
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 10:36:31 +02:00
Michael Weghorn 8e2c695169 sc: Resave simplerefdialog.ui with glade 3.40
The dialog can be triggered like this:

* 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

Change-Id: I44b0dfd7a4ec9500affbf8fbad9b126dc3fc5c06
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208488
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:35:39 +02:00
Michael Weghorn dcf718a979 chart2: Resave tp_DataSource.ui with glade 3.40
This is used for the "Data Series" tab page of the
the dialog that can be triggered like this:

* 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

Change-Id: I15ebfe1eac3a83f5e0a2ee03d0548c8bc0e499f0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208487
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:35:31 +02:00
Michael Weghorn b7e59e97dc chart2: Resave tp_RangeChooser.ui with glade 3.40
This is used for the "Data Range" tab page of the
the dialog that can be triggered like this:

* 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

Change-Id: Ia5f78fdf141eeb0e35cfe5dab990d73e991fe885
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208486
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:35:21 +02:00
Michael Weghorn bac2361e07 chart2: Resave datarangedialog.ui with glade 3.40
The dialog can be triggered like this:

* 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

Change-Id: I339bbd6d64344eeb33449fc829f06fe9041e0282
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208485
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:34:57 +02:00
Michael Weghorn 74e0522fc5 tdf#130857 qt weld: Support Calc "Highlight cells..." dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Format" -> "Conditional" -> "Condition" -< "Greater than..."

Change-Id: I75435cdd86796b0dc8abaf7510004a2afea0de75
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208478
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 10:34:49 +02:00
Michael Weghorn 086c17a7f1 tdf#130857 Set new weld::Frame text without relying on internal label child
Use weld::Frame::set_label directly to set the new text
label for the frame in the Calc "Highlight cells..." dialog
instead of relying on the internal label child.

For the Qt implementation in QtInstanceFrame, there is
no separate label child, but its QGroupBox handles the
title directly.

The dialog can be triggered like this:

* start Calc
* "Format" -> "Conditional" -> "Condition" -< "Greater than..."

Change-Id: I1698902ff88976bd12a4fa9e6116724f36f0dd98
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208477
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:34:41 +02:00
Michael Weghorn e9ce9e622b tdf#130857 Define widgets in Calc "Edit Print Ranges" dialog in order
Switch the order in which the widgets in the .ui file
are defined so that the order better matches the visual appearance
and logical order, which makes sure that tab focus order with the
Qt-based VCL plugins is correct as well when using native Qt
widgets (SAL_VCL_QT_USE_WELDED_WIDGETS=1), where
focus order is (by default) based on widget creation order.

See

    commit 02692566ad
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Oct 24 17:43:35 2024 +0200

        tdf#130857 optnewdictionarydialog.ui: Define focusable widgets in order

for more background.

The dialog can be triggered like this:

* start Calc
* "Format" -> "Print Ranges" -> "Edit..."

The Python script mentioned in the commit message of

    commit 327679b2fb
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 8 15:50:59 2026 +0200

        tdf#130857 Define widgets in Calc "General" options page in order

was used to reorder the GtkGrid children automatically.

Change-Id: I1e0e2d396bec89d93d109f239f76aaceca5c33da
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208476
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:34:32 +02:00
Michael Weghorn cd192daf67 tdf#130857 qt weld: Support Calc "Edit Print Ranges" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Format" -> "Print Ranges" -> "Edit..."

Change-Id: I10fcd9c326a047cf4abd34369f02be1847d77ae1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208475
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:34:23 +02:00
Michael Weghorn a881b303b3 tdf#130857 formula: Only use selection indices if selection exists
The bool return value of weld::TextWidget::get_selection_bounds
indicates whether a text selection actually exists.

Only use the start and end indices from the out params
if that is the case and otherwise return a default-constructed
Selection object (i.e. one using start and end indices of 0).

Otherwise, this would result in an assertion due to the use of
invalid string indices as seen with the qt6 vcl plugin and native
widgets enabled (SAL_VCL_QT_USE_WELDED_WIDGETS=1) for the following
scenario with upcoming commit

    Change-Id: I10fcd9c326a047cf4abd34369f02be1847d77ae1
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 22 14:20:53 2026 +0200

        tdf#130857 qt weld: Support Calc "Edit Print Ranges" dialog

in place:

* start Calc
* "Format" -> "Print Ranges" -> "Edit..."
* click on the "Shrink" button in the "Print Range" section
* click anywhere in the sheet

Assertion:

    soffice.bin: /home/michi/development/git/libreoffice/sal/rtl/strtmpl.hxx:1059: void rtl::str::newReplaceStrAt(rtl_tString **, rtl_tString *, sal_Int32, sal_Int32, rtl_tString *) [rtl_tString = _rtl_uString]: Assertion `nIndex >= 0 && nIndex <= pStr->length' failed.

This is because QtInstanceEntry::get_selection_bounds
sets the indices to -1 if no selection exists.

Change-Id: Ifc8fd6f6a6d676fe26364da9077cb10acb439a5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208474
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:34:14 +02:00
Michael Weghorn 2c6f49415d sc: Resave printareasdialog.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Format" -> "Print Ranges" -> "Edit..."

Change-Id: Ib59e9447fe64b162d0689baf44ae6f89deb9499e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208473
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:34:05 +02:00
Michael Weghorn 35f5fd4164 tdf#130857 qt weld: Support Calc "Paste Names" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Calc
* "Insert" -> "Named Range or Expression..."

In order for entries to be listed there, they can
first be added via "Sheet" -> "Named Ranges and Expressions"
-> "Define...".

Change-Id: Ib7fe33450a215256b0752ea9279157b76fb36b8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208472
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-25 10:33:56 +02:00
Michael Weghorn 2b8d0cd7f7 tdf#130857 qt weld: Support Writer "Frame Style" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Writer
* open the "Styles" sidebar deck
* press the "Frame Styles" button at the top of the sidebar deck
* right-click on an existing style (e.g. "Frame") to open the context menu
* select "Edit Style..." context menu entry

Change-Id: If148077155edd6f2bc80c81b2cf292f8ed037107
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208464
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:33:33 +02:00
Michael Weghorn 0bebfb032b tdf#130857 Define widgets in numbering options page in order
Switch the order in which the widgets in the .ui file
are defined so that the order better matches the visual appearance
and logical order, which makes sure that tab focus order with the
Qt-based VCL plugins is correct as well when using native Qt
widgets (SAL_VCL_QT_USE_WELDED_WIDGETS=1), where
focus order is (by default) based on widget creation order.

See

    commit 02692566ad
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Oct 24 17:43:35 2024 +0200

        tdf#130857 optnewdictionarydialog.ui: Define focusable widgets in order

for more background.

The page can be triggered like this:

* start Writer
* open the "Styles" sidebar deck
* press the "List Styles" button at the top of the sidebar deck
* right-click on an existing bullet style to open the context menu
* select "Edit Style..." context menu entry
* switch to the "Customize" tab

The Python script mentioned in the commit message of

    commit 327679b2fb
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 8 15:50:59 2026 +0200

        tdf#130857 Define widgets in Calc "General" options page in order

was used to reorder the GtkGrid children automatically.

Change-Id: I0010eb3af1272342f2f40e8f3b0952b676a22618
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208462
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-25 10:33:22 +02:00
Michael Weghorn 80ca79174e sc: Resave insertname.ui with glade 3.40
The dialog can be triggered like this:

* start Calc
* "Insert" -> "Named Range or Expression..."

Change-Id: I8218b642ffa310d038bf0a40bbc49c9c70832bd4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208471
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2026-07-25 07:44:54 +02:00