...after 50f1498332 "Remove ten year old file that
is unused" removed it completely and thus broke
<https://ci.libreoffice.org/job/lo_ubsan/3808/>. (And if an empty file turns
out to be enough, we can either remove it completely in a second step, from both
core and lode, or keep it around in case we ever need to add new content into
it.)
Change-Id: Ieedc93de5e98b76e754dcd9393e66ee64fbf42cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198581
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Open the bugdoc, switch to a non-standard redline render mode (omit
inserts or omit deletes), it's expected to see red-gray or gray-green
pairs of text (for delete and insert), but instead double underline was
shown for some inserts.
This comes from the insert part of moves, which is wanted for the
stanard redline render mode, where an author-specific color is used,
then green (on top of that) means a move.
Fix the problem by avoiding the move-specific rendering for the
non-standard redline render mode case, similar to what the
officecfg::Office::Writer::Comparison::DisplayMovedTextInGreen setting
does.
This required extending the metafile dumper a bit, since underlines were
not exposed in the XML dump.
Change-Id: I717eb0925c1959f787701ef9778ddb704b28031a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198583
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
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.
The dialog can be triggered like this:
* start Calc
* select multiple cells, e.g. A1:B2
* "Tools" -> "Scenarios..."
Change-Id: I690302f660bd31fd1703355cfbd5389d4e293d00
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198566
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Resave with glade 3.40, but manually restore the
<property name="label" translatable="no"></property>
for a GtkMenuButton that would go missing on resave.
The dialog can be triggered like this:
* start Calc
* select multiple cells, e.g. A1:B2
* "Tools" -> "Scenarios..."
Change-Id: Ic735a9d895e92132c63edaf454c346fd13ba8ad8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198565
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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.
The dialog can be triggered like this:
* start Calc
* "Format" -> "Conditional" -> "Manage..."
Change-Id: Id811f6c77f804096fb9e6a7032db0be36fb426ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198563
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The dialog can be started like this:
* start Calc
* "Format" -> "Conditional" -> "Manage..."
Change-Id: I3f0249d09bcb31cd25db599705c9241755a21dec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198562
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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.
The dialog can be triggered like this:
* start Calc
* "Tools" -> "Share Spreadsheet..."
Change-Id: I9a425751d5b4f811886f94ee17164b3f5e0dadce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198561
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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.
The dialog can be triggered like this:
* start Impress
* type something for the title
* with the title text field selected, right-click to
open the context menu
* activate the "Interaction..." context menu entry
Change-Id: I613b75441844eabe57ab3194bdeecf8cf4e3db44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198560
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
...contrary to what c511c65434 "tdf#146619 Use
more forward declarations in include/tools" apparently assumed, as seen at least
with recent Clang 23 trunk against recent libstdc++ 16 trunk,
> In file included from tools/source/generic/poly2.cxx:22:
> In file included from tools/inc/poly.h:22:
> In file included from ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../../include/c++/16.0.1/memory:80:
> ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../../include/c++/16.0.1/bits/unique_ptr.h:131:18: error: invalid application of 'sizeof' to an incomplete type 'Point'
> 131 | static_assert(sizeof(_Tp)>0,
> | ^~~~~~~~~~~
> ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/16.0.1/../../../../include/c++/16.0.1/bits/unique_ptr.h:684:4: note: in instantiation of function template specialization 'std::default_delete<Point[]>::operator()<Point>' requested here
> 684 | get_deleter()(__ptr);
> | ^
> tools/inc/poly.h:33:21: note: in instantiation of member function 'std::unique_ptr<Point[]>::~unique_ptr' requested here
> 33 | ImplPolygon() : mnPoints(0) {}
> | ^
> include/tools/poly.hxx:60:7: note: forward declaration of 'Point'
> 60 | class Point;
> | ^
Change-Id: I0b96222dcec7e98b974151004248a91ba1854e60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198573
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
side-effect of dec1441f716c7631622b9b3e32fdbc666502c006 that removed
unnecessary Carbon.h headers and along with that the premac one that
would have been applied also to sal/osl/unx/uunxapi.cxx
Change-Id: I058e074d3ba7fb42d1ca70e497c6219820597119
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198551
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Per
https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#file-and-directory-names
the comma and the semicolon are not
reserved characters in folder or file
names.
Not in Windows, and also not in Linux.
The regular expressions used to filter
valid file names have been reviewed
accordingly in the
ScriptForge.SF_String
module.
No impact on user scripts, except a better
tolerance.
No impact on user documentation.
Change-Id: I4970c6d8334d717e5642782d3b5385731aa98717
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198545
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
Whatever workflow it was used for back in the days does probably not
exist any longer.
Change-Id: I4e29e1acde2a630e461d43b3f4b2b7fa6abd5031
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198538
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@iki.fi>
gdb backtrace on the crashreport's core dump:
#8 SwView::GetWrtShell (this=<optimized out>) at sw/inc/view.hxx:433
#9 SwFrameControlsManager::SetContentControlAliasButton (this=this@entry=0x53674d00, pContentControl=0x536d7210, aTopLeftPixel=...)
at sw/source/uibase/docvw/FrameControlsManager.cxx:192
...
#19 0x000071084f165009 in SwWrtShell::GotoFieldmark (this=this@entry=0x552f4880, pMark=0x536d7e00)
at sw/source/uibase/wrtsh/wrtsh3.cxx:227
#20 0x000071084f15d56b in SwWrtShell::SwWrtShell (this=this@entry=0x552f4880, rDoc=..., _pWin=<optimized out>, rShell=..., pViewOpt=pViewOpt@entry=0x7ffcab7ca2f0)
at sw/source/uibase/wrtsh/wrtsh1.cxx:2118
#21 0x000071084e4a542c in SwView::SwView (this=this@entry=0x552f5180, _rFrame=..., pOldSh=pOldSh@entry=0x0)
at include/rtl/ref.hxx:203
...
#29 0x000071085b272a05 in framework::LoadEnv::loadComponentFromURL (xLoader=..., xContext=..., sURL=..., sTarget=..., nSearchFlags=nSearchFlags@entry=0, lArgs=...)
at framework/source/loadenv/loadenv.cxx:167
I.e. the document on load may have form protection on, in which case it
jumps to the first fillable form, and if that happens to be inside a
content control that has an alias/title defined, we hit this, probably.
The problem is that the SwView ctor is not finished at this stage, so
the view has no writer shell:
(gdb) frame
#9 SwFrameControlsManager::SetContentControlAliasButton (this=this@entry=0x53674d00, pContentControl=0x536d7210, aTopLeftPixel=...)
at sw/source/uibase/docvw/FrameControlsManager.cxx:192
192 const SwViewOption* pViewOpt = m_pEditWin->GetView().GetWrtShell().GetViewOptions();
(gdb) print m_pEditWin.m_rInnerRef.m_pBody.m_rView.m_pWrtShell
$5 = std::unique_ptr<SwWrtShell> = {get() = 0x0}
Fix the problem by not assuming that the view has a writer shell set,
which is usually true, except when the view creation is in progress.
Change-Id: Ic7254e1ccbb9fdcafd94c04b829fae21a2322123
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198530
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
After commit fb52efb4ae (tdf#163194: Make
width of comments in margin fixed on print / PDF export, 2026-01-31),
which made explicit changes to make width of comments in margins stable
regardless of DPI, this test should produce consistent results. At least
that is the hope :-)
Change-Id: I4aff11c53e42e05cc2acbef150a1c9220633262e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198519
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
These tests used ad-hoc structs for the required configuration values,
instead of direct use of officecfg headers.
Change-Id: I26353b0523d3607e84181de44a702ec007445c8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198508
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
testTdf115005_FallBack_Images didn't restore the manually set value.
It previously also tested if the setting was read-only; this change
drops that check (if it were read-only, the test would fail anyway).
If for some reason, testing the read-only status will prove needed,
it should be restored as a condition to skip the test.
Change-Id: I7376ec4263a0ecefb4c87fbeedefba21e68ee3b3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198506
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
The config changes that didn't restore initial values could potentially
affect other tests in the same test suite, so that could create test
order dependency.
Change-Id: I53cc2fe4e545852d0bcec865da31f2e2a7896d40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198505
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Use of the RAII method is more robust, including restoration of the
correct previous values (in many cases, the restored values are
hardcoded, which could get out-of-sync in case of changing defaults).
Change-Id: I4f8f5109116c621aae3412171db8bded2b066ffa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198504
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Trying to replace the manual management of settings in testTdf151801
with ScopedConfigValue, I found out that it broke other tests there:
C:/lo/core/sw/qa/extras/autocorrect/autocorrect.cxx(64) : error : Assertion
Test name: testTdf38394::TestBody
equality assertion failed
- Expected: l’«
- Actual : l‹ »
C:/lo/core/sw/qa/extras/autocorrect/autocorrect.cxx(45) : error : Assertion
Test name: testTdf92029::TestBody
equality assertion failed
- Expected: Ik ben ’s morgens opgestaan
- Actual : Ik ben ›s morgens opgestaan
It looked like restoring the settings in ScopedConfigValue dtor had
no effect. But manually testing the restored values using officecfg
demonstrated that it worked as expected: the optional value appeared
empty, as before the test.
It turned out, that the problem was in SvxBaseAutoCorrCfg::Load: it
listened to the registry changes, but only loaded new value, when
it was not empty, meaning that setting a non-empty value, and then
resetting it back to empty would keep the last non-empty value in
SvxAutoCorrCfg.
This change modifies SvxBaseAutoCorrCfg::Load to properly handle
empty values. Booleans are now checked using Any::operator==(bool),
which checks the type. For other values, the usual operator >>= is
used, which is simply no-op for empty Any.
testTdf151801 is modified to use ScopedConfigValue.
Change-Id: Ia3f413583541cde482db234fe73d7f665be507ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198502
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Ensure to not use a row index larger than the current
number of top-level children when inserting a new entry into
the tree view. The new entry can at most be inserted at the
very end, where it will have an index matching the child count
before the insertion happened.
This prevents a crash seen with the native Qt implementation
in a WIP branch where support for native Qt widgets is declared
for that dialog, seen in the following scenario:
* start Writer
* type "Hello"
* enable "Edit" -> "Track Changes" -> "Record"
* select "Hello" in the document
* type "Something else" in the document
* "Edit" -> "Track Changes" -> "Manage"
* switch to "Filter" tab
* check the "Date" checkbox, select "since" and set some date in the future, e.g. 2027-01-01
* switch to the "List" tab
(The call to SwRedlineAcceptDlg::InsertChildren later
in the loop can result in the new entry to get removed
again, so the treeview is empty again in the next
loop iteration.)
Change-Id: Ie7c80faa71b577deb62766290b1cabc6759e245b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198481
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Resave those .ui files with glade 3.40, but
manually restore the
<property name="label" translatable="no"></property>
that would get lost on resave, to avoid any potential
unwanted side effects.
These .ui files are used by the dialog that can be
triggered like this:
* start Writer
* enable "Edit" -> "Track Changes" -> "Record"
* type something in the document
* "Edit" -> "Track Changes" -> "Manage"
Change-Id: I6f08d61e58e9635d624cc2195f17bb3205baaf2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198480
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Helps to reliably restore the correct previous value of a setting:
in many cases, the old restoration code used hardcoded values, which
could get out of sync with current defaults. Also, makes the code
easier to read.
Change-Id: Ia60b4e42192009c16bdbe58c540980c13626d5d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198479
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
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.
The dialog can be triggered like this:
* start Writer
* enable "Edit" -> "Track Changes" -> "Record"
* type something in the document
* "Edit" -> "Track Changes" -> "Manage"
* right-click on the entry in the treeview and select
the "Edit Comment..." context menu entry
Change-Id: Idf898b8d0ae16515a5b29aa15f985d02ddc5ba5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198476
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The dialog can be triggered like this:
* start Writer
* enable "Edit" -> "Track Changes" -> "Record"
* type something in the document
* "Edit" -> "Track Changes" -> "Manage"
* right-click on the entry in the treeview and select
the "Edit Comment..." context menu entry
Change-Id: Ifbd0360ba2b59005f958d6e9bc77c5b4a6f6990e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198475
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Rename some classes and members to spell out "Redline"
instead of using "Redlin".
Change-Id: I23d47a109e14ce8a7034e01d8e4f78fbee364d56
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198474
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>