6979 Commits
Author SHA1 Message Date
elioperdreau b2554fe7f0 Merge upstream LibreOffice master into ODFStudio main 2026-10-08 12:56:19 +02:00
Armin Le Grand (collabora) 760394bbad Remove XFillAttrSetItem and XLineAttrSetItem
Both are derived from SfxSetItem which means they contain
a SfxItemSet themselves. That leads to problems since at
their construction time a SfxItemPool has to be known and
it *should* not be different to the one of the ItemSet
that Item gets added later - that leads to the 2nd class
of problems.

In the long therm we should get rid of all SfxSetItems.
This change simplifies already some stuff, including that
the standard Items for DrawObjects reduces by two (and
more due to containing a whole ItemSet) and e.g. the
problem that these Items had to be converted to hard
attributes in the done fixes for copy/pasting Slides.

Signed-off-by: Armin Le Grand (collabora) <Armin.LeGrand@collabora.com>
Change-Id: I8b1c6cabdaa43ed6062811b5508ab3dece47a755
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6795
Reviewed-by: Armin Le Grand <armin.legrand@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit e67458a9b769fe7a3a7ee0739ed6d5c46dbc0692)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211734
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-08 08:56:42 +02:00
Neil Roberts 99f157a04f linkdlg: Use SvRef::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
probably doesn’t matter, but using SvRef::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I26aa62d78454d11c9912bdd3e9ab9db2d93293a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211847
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 19:15:58 +02:00
Michael Weghorn 373ff268bb cui: Port Callout tab page from ValueSet to weld::IconView
Port the widget to select the connector type using a ValueSet
widget to using weld::IconView.

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

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

Increase the item padding in the .ui file to 18 to
use more space for the individual items, to be more
similar to the previous ValueSet implementation.

The tab page can be triggered like this:

* start Draw
* make sure the "Text" toolbar is enabled in
  "View" -> "Toolbars" -> "Text"
* in that "Text" toolbar, select the "Callouts" shape
  and insert it into the document
* right-click on the newly inserted shape to open the context menu
* activate the "Position and Size" menu entry
* switch to the "Callout" tab

Change-Id: I1c23a305322105608d0152bcd0b0fa195be14eff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211882
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:49:09 +02:00
Michael Weghorn e68422786a Drop unused ValueSet forward declarations
Drop ValueSet forward declarations from headers
not actually using the class.

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

Change-Id: I8876ad47eb362f581aa41ee4a61a85c4093a1dd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211881
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:48:46 +02:00
Michael Weghorn 5bf5c6e453 cui: Insert actual images right away in SvxCaptionTabPage ctor
Instead of first inserting entries with a dummy image
and then setting the actual images using
ValueSet::SetItemImage, just insert the actual images
when inserting the entries right away.

Change-Id: I24b3e2a3a1e86a72eb99755c31602ac96845c9e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211880
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:48:32 +02:00
Michael Weghorn a6aede6c5f cui: Add missing weld::ComboBox include in labdlg.hxx
Without this, Qt Creator shows this error:

    labdlg.hxx:60:27: No member named 'ComboBox' in namespace 'weld' (fix available)

Change-Id: Ica26b748976c0f034c490c92a16b1d393191529e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211876
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:47:34 +02:00
Michael Weghorn 0b69ad0583 cui: Drop SvxCaptionTabPage::m_aBmpCapTypes only used in ctor
There's no need to store the images in an array. Just
create the images when inserting them into the ValueSet instead.

Change-Id: I44506a80e461c7e3abfa2b8e059bd71757f1a731
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211875
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:47:24 +02:00
Michael Weghorn 4893aa3f22 cui: Merge SvxCaptionTabPage::FillValueSet into ctor
Merge the logic into the only caller, the
SvxCaptionTabPage ctor, which already directly inserts
items into the ValueSet as well.

Change-Id: Iab3264c8f4679eea9e6d3538e64c81704fbcb026
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211874
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:47:04 +02:00
Neil Roberts dfbde789ee tdf#173819 Remove another checkbox indeterminate state when becoming active
The split compound words checkbox in the edit style dialog is initially
set to an indeterminate state when the alignment is something other than
justify, presumably because its value is irrelevant in that case.
However, if the the user then sets the alignment to justify then nothing
was removing the that state. With the GTK plugin it was then not
possible to change the value. With the gen plugin however you could
still click it to give it a value.

This patch just makes the button inactive whenever justify is selected.
Weld then also removes the indeterminate state in that case.

This patch is similar to the previous one that does the same thing for
the paragraph composer checkbox. It is split into a separate patch to
make it easier to backport the other patch to the 26.8 branch.

Change-Id: Ib55b7a9675ba2c8234e758585d5933cbd39bfdd7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211677
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: László Németh <nemeth@numbertext.org>
2026-10-05 10:33:22 +02:00
Neil Roberts 8008829465 tdf#173819 Remove checkbox indeterminate state when becoming active
The paragraph composer checkbox in the edit style dialog is initially
set to an indeterminate state when the alignment is something other than
justify, presumably because its value is irrelevant in that case.
However, if the the user then sets the alignment to justify then nothing
was removing the that state. With the GTK plugin it was then not
possible to change the value. With the gen plugin however you could
still click it to give it a value.

This patch just makes the button inactive whenever justify is selected.
Weld then also removes the indeterminate state in that case.

Change-Id: I9c7bebb168f526497d406b1b93b9d5161e251cfa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211676
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
Tested-by: László Németh <nemeth@numbertext.org>
2026-10-05 10:33:12 +02:00
Neil Roberts a18375bf84 tdf#173818 Update sensitivity of letter spacing label when change alignment
The justification section of the dialog is all disabled whenever the
chosen alignment is something other than “justify”. When the value is
changed the sensitivity of all of the controls is updated, except that
the update for the label for letter spacing was missing. This looked
weird on the dialog.

Change-Id: Ibc774402ce72f820f14ea8265b20cb0113f84be9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211675
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-02 08:24:44 +02:00
elioperdreau b2c7e472fd Merge remote-tracking branch 'upstream/master' into experiment/upstream-sync
Change-Id: I77c2bb8abdef222cf0fc2f7016e34da1554653cb
2026-09-28 18:32:53 +02:00
Michael Weghorn 825d4da651 tdf#130857 cui: Create graphics bullet submenu when menu button is shown
Trying to create and populate the submenu for the "Gallery"
menu entry in the bullets and numbering dialog only when
its menu button is clicked is too late, as the toggle
handler isn't guaranteed to be called before the menu
gets shown. Therefore, instead do this as soon as the
menu button gets shown.

This is similar to what

  commit 9456449751
  Author: Michael Weghorn <m.weghorn@posteo.de>
  Date:   Fri Jun 20 18:20:42 2025 +0200

      tdf#167034 sd: Populate graphics bullet menu when creating dlg

did for the Impress-specific bullets and numbering dialog,
but now for the dialog used in other modules.

Steps to reproduce:

* start Writer
* "Format" -> "Bullets and Numbering..."
* go to "Customize" tab
* select "Graphics" in the "Type" combobox
* Press the "Select..." menu button
* hover over the "Gallery" menu item to open its submenu

Without this commit in place, the menu would not be shown
unless using the gtk3 vcl plugin.

For the vcl implementation (SalInstanceMenuButton), the
submenu would be present after the menu button got clicked
for the second time.
For the implementation using native Qt widgets
(QtInstanceMenuButton, enabled via SAL_VCL_QT_USE_WELDED_WIDGETS=1)
the submen would even not be shown then.

With this commit in place, the menu is now shown as
expected already the first time for all 3 weld::MenuButton
implementations.

Change-Id: I9076efe1375360554701d76c5330494eceba1391
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211423
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-24 15:01:29 +02:00
Michael Weghorn 6761f30360 cui: Prefix SvxNumOptionsTabPage members with "m_"
Add the usual "m_" prefix to those SvxNumOptionsTabPage
members that don't have it yet, to make it easier to
distinguish them from local variables by their name.

Change-Id: I08eb0870efe37bf81a4b8da32ee37d75f73ce639
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211422
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-24 15:01:21 +02:00
László Németh e668dc84eb tdf#173389 cui offapi sw xmloff: add custom compound-based hyphenation
Add new paragraph justification option "Split compound words" for
custom compound-based "smart" hyphenation. Add compound-based "smart"
hyphenation support for Danish, Dutch, Esperanto, Estonian, German,
Norwegian, Swedish (and potentially, Icelandic, Finnish and
Latvian) languages by fixing Hunspell morphological analysis and the
associated lingucomponent code. (Previously compound-based "smart"
hyphenation was enabled only for Hungarian.)

With the new option it's possible to keep MSO/MS-DOCX interoperability,
also introducing a better hyphenation algorithm for several languages.

Details:

    * Add check box to Alignment in paragraph formatting dialog window;

    * Store properties in paragraph model:

      css::style::ParagraphProperties::ParaIsCompoundBased

    * Implement it by checking the new option in the previously
      added commit f9f694f5d9f39c5801bc5fec45867252c293bbcb;

    * Add ODF import/export (loext:compound-based);

    * Add ODF unit tests by the new tdf173389_smart_hyphenation_nl.odt
      and tdf173389_smart_hyphenation_hu.odt. Now use the previous
      tdf119908_smart_hyphenation_hu for disabled compound-based "smart"
      hyphenation, also the new tdf119908_smart_hyphenation_nl.odt.
      Note: the Dutch test document results better compound-based
      hyphenation in two positions.

    * Add Hunspell patch to fix Danish, Dutch, Esperanto, Estonian,
      German, Norwegian, Swedish (and future Icelandic, Latvian,
      Finnish) morphological analysis for compound word constituents;

    * hyphenimp.cxx hyphenate(): fix tokenization for consecutive
      pa: elements, like resulted in the fixed Hunspell dictionaries.

Follow-up to commit f9f694f5d9
"tdf#173389 sw: add compound-based “smart” hyphenation for readability".

Change-Id: I4414bd588646ecf6dc86b77642833ac9c7820a98
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211341
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
2026-09-23 14:38:07 +02:00
Zesen Liu 722410514b tdf#173623 svx: Pass index of activated item in ColorIconView handler
ColorIconView only passed the Color to its activation handler, so its
users took everything else (color name, position for the theme palette
lookup) from the selected item. For mouse and keyboard the activated
item is always the selected one, but the AT-SPI "activate" action of an
item activates it without selecting it first, so the color of the
selected item was applied instead of the activated one.

Pass the index of the activated item to the handler and let the users
take color, name and theme index from it.

Change-Id: I900278bf68e5038e5588ce71b03cd4b5ae9f8918
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211237
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-23 09:47:55 +02:00
elioperdreau 4d0ef4a077 odfstudio: synchronize with LibreOffice upstream 2026-09-16 22:00:48 +02:00
Michael Weghorn 6a023bacb9 Return std::unique_ptr in Application::CreateMessageDialog
The caller of Application::CreateMessageDialog owns the
returned message dialog.

So far, it was returned by a plain weld::MessageDialog*.

Return a unique_ptr instead, to make clear the ownership
semantics. (Also adjust SalInstance::CreateMessageDialog
accordingly, which is called by Application::CreateMessageDialog
and implements the actual logic to create a message dialog.)

Adjust callers where needed.
Most callers were already using a smart pointer for the
returned message dialog anyway.

Change-Id: I7c06bb24b611bd67f5af89800adb13bf22dcc6fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211013
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-16 10:35:19 +02:00
Andrea Gelmini be7ff6a857 Fix typos in code and comments + some reformatting
Change-Id: Ic6fe197734655a2591a6730d07f23d4222a278f5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210564
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-10 22:06:44 +02:00
Dan Williams e4e60f2769 vcl: standardize Reset dialog button response code
Qt plugin automatically orders buttons for each platform based on
the button's role, which we derive from the Gtk .ui file's
action-widget response code. But to do that conversion from response
code to Qt button role, we need a standard response.

Without a standard response, the button has no role, and gets ordered
to the right of OK/Cancel buttons on Mac. With the correct role, it
is correctly placed far-left along with the Help button.

Change-Id: I16d3126d4999649e7aa6e72ec5e7b1a25f48c2a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210223
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
2026-09-08 13:42:17 +02:00
Jim Raykowski c51dff06a9 Impress slide properties dialog: use "slide" instead of "page"
* Makes the title show as "Slide Properties" instead of "Page
Properties".

* Makes the label for the resize all slides checkbox show as "Resize all
slides" instead of "Resize all pages"

Change-Id: Idda0bdf6ef6215696ae4189549f62c05ef0076c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209996
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-08-31 17:04:56 +02:00
Michael Weghorn ef7971f80c Use QueryDialog directly instead of via cui abstraction
Now that previous commit

    Change-Id: I57bdade32c21c7ab40c5a4c90bd86e8dea5d2fad
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Aug 27 19:00:42 2026 +0200

        Move QueryDialog to svtools

moved QueryDialog to svtools, use it directly instead
of via the extra AbstractQueryDialog abstraction.

This simplifies the code and rules out one potential cause
for the crash seen in crash reports like [1] (see backtrace below).

From looking at the backtrace and code, I don't currently see anything
that looks problematic to me and could result in a null dialog or button
in a proper installation. Simplifying this seems a good idea anyway, and
rules out a null dialog.
Related discussion: [2]

The dialog can e.g. be triggered like this:

* start Writer
* Ctrl+Shift+S for "Save As"
* select "Text (.txt)" for the file type
* press OK

(Resetting the profile ensures the dialog gets shown
in case the "Don't show again" checkbox has been ticked
previously.)

Backtrace from [1]:

    0 	mergedlo.dll 	static void `anonymous namespace'::AbstractQueryDialog_Impl::SetYesLabel(const class rtl::OUString & const) 	cui/source/factory/dlgfact.cxx:1562
    1 	mergedlo.dll 	static void `anonymous namespace'::AbstractQueryDialog_Impl::SetYesLabel(const class rtl::OUString & const) 	cui/source/factory/dlgfact.cxx:1562
    2 	mergedlo.dll 	ConfirmationDlg::Query<officecfg::Office::Common::Save::Document::WarnAlienFormat>(weld::Window *,rtl::OUString const &,rtl::OUString const &,rtl::OUString const &,rtl::OUString const &,rtl::OUString const &) 	include/svtools/confirmationdlg.hxx:32
    3 	mergedlo.dll 	ConfirmationDlg::Query<officecfg::Office::Common::Save::Document::WarnAlienFormat>(weld::Window *,rtl::OUString const &,rtl::OUString const &,rtl::OUString const &,rtl::OUString const &,rtl::OUString const &) 	include/svtools/confirmationdlg.hxx:24
    4 	mergedlo.dll 	SfxStoringHelper::WarnUnacceptableFormat(com::sun::star::uno::Reference<com::sun::star::frame::XModel2> const &,std::basic_string_view<char16_t,std::char_traits<char16_t> >,std::basic_string_view<char16_t,std::char_traits<char16_t> >,rtl::OUString const &,bool) 	sfx2/source/doc/guisaveas.cxx:2114
    5 	mergedlo.dll 	ModelData_Impl::CheckFilter(rtl::OUString const &) 	sfx2/source/doc/guisaveas.cxx:861
    6 	mergedlo.dll 	com::sun::star::uno::cppu_detail_getUnoType(com::sun::star::uno::RuntimeException const *) 	E:/build/workdir/UnoApiHeadersTarget/udkapi/normal/com/sun/star/uno/RuntimeException.hpp:89
    7 	ntdll.dll 	0x3c3a0
    8 	mergedlo.dll 	ModelData_Impl::CheckFilter(rtl::OUString const &) 	sfx2/source/doc/guisaveas.cxx:781
    9 	mergedlo.dll 	SfxStoringHelper::FinishGUIStoreModel(std::_List_const_iterator<std::_List_val<std::_List_simple_types<std::pair<comphelper::OUStringAndHashCode const ,com::sun::star::uno::Any> > > > &,ModelData_Impl &,bool,short,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const &,bool,bool,bool,std::basic_string_view<char16_t,std::char_traits<char16_t> >,std::basic_string_view<char16_t,std::char_traits<char16_t> >,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &,rtl::OUString,SignatureState) 	sfx2/source/doc/guisaveas.cxx:1680
    10 	cppu3.dll 	typelib_typedescriptionreference_release 	cppu/source/typelib/typelib.cxx:2145
    11 	cppu3.dll 	cppu::_destructData(void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void (*)(void *)) 	cppu/source/uno/destr.hxx:312
    12 	cppu3.dll 	cppu::_destructData(void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void (*)(void *)) 	cppu/source/uno/destr.hxx:308
    13 	ucrtbase.dll 	0x1364b
    14 	sal3.dll 	rtl_uString_assign 	sal/rtl/ustring.cxx:1169
    15 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1118
    16 	mergedlo.dll 	SfxStoringHelper::FinishGUIStoreModel(std::_List_const_iterator<std::_List_val<std::_List_simple_types<std::pair<comphelper::OUStringAndHashCode const ,com::sun::star::uno::Any> > > > &,ModelData_Impl &,bool,short,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const &,bool,bool,bool,std::basic_string_view<char16_t,std::char_traits<char16_t> >,std::basic_string_view<char16_t,std::char_traits<char16_t> >,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &,rtl::OUString,SignatureState) 	sfx2/source/doc/guisaveas.cxx:1620
    17 	mergedlo.dll 	SfxStoringHelper::GUIStoreModel(com::sun::star::uno::Reference<com::sun::star::frame::XModel2> const &,std::basic_string_view<char16_t,std::char_traits<char16_t> >,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &,bool,SignatureState,SignatureState,bool) 	sfx2/source/doc/guisaveas.cxx:1605
    18 	mergedlo.dll 	SvtSecurityOptions::SetTrustedAuthors(std::vector<SvtSecurityOptions::Certificate,std::allocator<SvtSecurityOptions::Certificate> > const &) 	unotools/source/config/securityoptions.cxx:283
    19 	ntdll.dll 	0x3ccea
    20 	ucrtbase.dll 	0x1f038
    21 	ntdll.dll 	0x3b041
    22 	cppu3.dll 	uno_type_sequence_construct 	cppu/source/uno/sequence.cxx:668
    23 	mergedlo.dll 	SfxObjectShell::ExecFile_Impl(SfxRequest &) 	sfx2/source/doc/objserv.cxx:1150
    24 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    25 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    26 	cppu3.dll 	cppu::icopyConstructSequence(_sal_Sequence *,_typelib_TypeDescriptionReference *,void (*)(void *),_uno_Mapping *) 	cppu/source/uno/copy.hxx:398
    27 	cppu3.dll 	cppu::_copyConstructAnyFromData(_uno_Any *,void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void (*)(void *),_uno_Mapping *) 	cppu/source/uno/copy.hxx:231
    28 	cppu3.dll 	cppu::_copyConstructAny(_uno_Any *,void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void (*)(void *),_uno_Mapping *) 	cppu/source/uno/copy.hxx:284
    29 	cppu3.dll 	uno_type_any_assign 	cppu/source/uno/any.cxx:38
    30 	salhelper3MSC.dll 	salhelper::SimpleReferenceObject::release() 	include/salhelper/simplereferenceobject.hxx:80
    31 	mergedlo.dll 	configmgr::Access::getByNameFast(rtl::OUString const &,com::sun::star::uno::Any &) 	configmgr/source/access.cxx:393
    32 	ntdll.dll 	0x3b041
    33 	ucrtbase.dll 	0x1364b
    34 	cppu3.dll 	cppu::_type_equals(_typelib_TypeDescriptionReference const *,_typelib_TypeDescriptionReference const *) 	cppu/source/uno/prim.hxx:144
    35 	cppu3.dll 	cppu::_assignData(void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void * (*)(void *,_typelib_TypeDescriptionReference *),void (*)(void *),void (*)(void *)) 	cppu/source/uno/assign.hxx:387
    36 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1118
    37 	cppu3.dll 	typelib_typedescription_release 	cppu/source/typelib/typelib.cxx:1313
    38 	cppu3.dll 	typelib_typedescriptionreference_release 	cppu/source/typelib/typelib.cxx:2145
    39 	ntdll.dll 	0x3d6da
    40 	ntdll.dll 	0x3ccea
    41 	mergedlo.dll 	FontMetricData::ShouldNotUseUnderlineMetrics() 	vcl/source/font/fontmetric.cxx:186
    42 	mergedlo.dll 	OutputDevice::InitFont() 	vcl/source/outdev/font.cxx:668
    43 	ntdll.dll 	0x3c3a0
    44 	i18nlangtag.dll 	LanguageTag::LanguageTag(LanguageTag const &) 	include/i18nlangtag/languagetag.hxx:142
    45 	mergedlo.dll 	o3tl::cow_wrapper<ImplFont,o3tl::RefCountingPolicy_t<unsigned __int64> >::make_unique() 	include/o3tl/cow_wrapper.hxx:298
    46 	ucrtbase.dll 	0x276aa
    47 	mergedlo.dll 	vcl::Font::SetFontSize(Size const &) 	vcl/source/font/font.cxx:156
    48 	ucrtbase.dll 	0x1364b
    49 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1118
    50 	mergedlo.dll 	o3tl::cow_wrapper<ImplFont,o3tl::RefCountingPolicy_t<unsigned __int64> >::release() 	include/o3tl/cow_wrapper.hxx:201
    51 	mergedlo.dll 	o3tl::cow_wrapper<ImplFont,o3tl::RefCountingPolicy_t<unsigned __int64> >::release() 	include/o3tl/cow_wrapper.hxx:198
    52 	mergedlo.dll 	ImpEditEngine::RecalcFormatterFontMetrics(FormatterFontMetric &,SvxFont &) 	editeng/source/editeng/impedit3.cxx:3182
    53 	ucrtbase.dll 	0x272e4
    54 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:965
    55 	ucrtbase.dll 	0x27691
    56 	mergedlo.dll 	ImpEditEngine::GetJustification(long) 	editeng/source/editeng/impedit2.cxx:2077
    57 	mergedlo.dll 	o3tl::cow_wrapper<ImplFont,o3tl::RefCountingPolicy_t<unsigned __int64> >::release() 	include/o3tl/cow_wrapper.hxx:198
    58 	mergedlo.dll 	ImpEditEngine::CreateAndInsertEmptyLine(ParaPortion &) 	editeng/source/editeng/impedit3.cxx:1994
    59 	mergedlo.dll 	SfxItemPool::GetUserOrPoolDefaultItem(unsigned short) 	svl/source/items/itempool.cxx:723
    60 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:965
    61 	mergedlo.dll 	ParaPortionList::GetPos(ParaPortion const *) 	editeng/source/editeng/editdoc.cxx:496
    62 	mergedlo.dll 	ImpEditEngine::CalcHeight(ParaPortion &) 	editeng/source/editeng/impedit2.cxx:4791
    63 	mergedlo.dll 	ImpEditEngine::FinishCreateLines(ParaPortion &) 	editeng/source/editeng/impedit3.cxx:2003
    64 	mergedlo.dll 	ImpEditEngine::FinishCreateLines(ParaPortion &) 	editeng/source/editeng/impedit3.cxx:1999
    65 	mergedlo.dll 	ImpEditEngine::CreateLines(long,unsigned long) 	editeng/source/editeng/impedit3.cxx:670
    66 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    67 	mergedlo.dll 	static lo_destroy$dtor$0()
    68 	mergedlo.dll 	boost::locale::gnu_gettext::mo_file::value(unsigned int) 	E:/build/workdir/UnpackedTarball/boost/libs/locale/src/shared/message.cpp:196
    69 	mergedlo.dll 	boost::locale::gnu_gettext::mo_file::find(char const *,char const *) 	E:/build/workdir/UnpackedTarball/boost/libs/locale/src/shared/message.cpp:145
    70 	ucrtbase.dll 	0x11966
    71 	sal3.dll 	rtl_uString_ImplAlloc(long) 	sal/rtl/ustring.cxx:1109
    72 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    73 	ntdll.dll 	0x3d6da
    74 	ntdll.dll 	0x3d6da
    75 	mergedlo.dll 	SfxItemPool::GetUserOrPoolDefaultItem(unsigned short) 	svl/source/items/itempool.cxx:723
    76 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:965
    77 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:935
    78 	mergedlo.dll 	ImpEditEngine::CalcVertLineSpacing(Point &) 	editeng/source/editeng/impedit3.cxx:4436
    79 	mergedlo.dll 	SfxItemPool::GetUserOrPoolDefaultItem(unsigned short) 	svl/source/items/itempool.cxx:723
    80 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:965
    81 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:935
    82 	mergedlo.dll 	ImpEditEngine::IterateLineAreas(std::function<ImpEditEngine::CallbackResult > const &,ImpEditEngine::IterFlag) 	editeng/source/editeng/impedit2.cxx:3417
    83 	mergedlo.dll 	_std_minmax_8i 	D:/a/_work/1/s/src/vctools/crt/github/stl/src/vector_algorithms.cpp:2451
    84 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:965
    85 	mergedlo.dll 	RectangleTemplateBase::Union(RectangleTemplateBase const &) 	tools/source/generic/gen.cxx:88
    86 	mergedlo.dll 	ImpEditEngine::CalcVertLineSpacing(Point &) 	editeng/source/editeng/impedit3.cxx:4436
    87 	mergedlo.dll 	SfxItemSet::Get(unsigned short,bool) 	svl/source/items/itemset.cxx:965
    88 	ntdll.dll 	0x3c3a0
    89 	mergedlo.dll 	ImpEditEngine::IterateLineAreas(std::function<ImpEditEngine::CallbackResult > const &,ImpEditEngine::IterFlag) 	editeng/source/editeng/impedit2.cxx:3417
    90 	ntdll.dll 	0x3b041
    91 	ucrtbase.dll 	0x1364b
    92 	mergedlo.dll 	std::allocator<long>::deallocate(long * const,unsigned __int64) 	C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/include/xmemory:985
    93 	mergedlo.dll 	std::allocator<long>::deallocate(long * const,unsigned __int64) 	C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/include/xmemory:982
    94 	mergedlo.dll 	ImpEditEngine::FormatDoc() 	editeng/source/editeng/impedit3.cxx:412
    95 	mergedlo.dll 	ImpEditEngine::CallStatusHdl() 	editeng/source/editeng/impedit3.cxx:4368
    96 	mergedlo.dll 	ImpEditEngine::UpdateViews(EditView *) 	editeng/source/editeng/impedit3.cxx:188
    97 	mergedlo.dll 	ImpEditEngine::UpdateViews(EditView *) 	editeng/source/editeng/impedit3.cxx:155
    98 	mergedlo.dll 	ImpEditEngine::SetUpdateLayout(bool,EditView *,bool) 	editeng/source/editeng/impedit3.cxx:4247
    99 	mergedlo.dll 	EditEngine::SetUpdateLayout(bool,bool) 	editeng/source/editeng/editeng.cxx:800
    100 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1118
    101 	sclo.dll 	ScInputHandler::EnterHandler2(ScEnterMode,bool,rtl::OUString,rtl::OUString const &) 	sc/source/ui/app/inputhdl.cxx:3646
    102 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    103 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    104 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    105 	ucrtbase.dll 	0x11966
    106 	ntdll.dll 	0x633f2
    107 	ntdll.dll 	0x3c3a0
    108 	ucrtbase.dll 	0x1364b
    109 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    110 	mergedlo.dll 	ContentNode::GetExpandedText(long,long) 	editeng/source/editeng/ContentNode.cxx:472
    111 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1118
    112 	mergedlo.dll 	EditEngine::GetText(long) 	editeng/source/editeng/editeng.cxx:946
    113 	ntdll.dll 	0x3b041
    114 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    115 	ucrtbase.dll 	0x1364b
    116 	sclo.dll 	ScInputHandler::EnterHandler2(ScEnterMode,bool,rtl::OUString,rtl::OUString const &) 	sc/source/ui/app/inputhdl.cxx:3333
    117 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1119
    118 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1118
    119 	sclo.dll 	ScInputHandler::EnterHandler(ScEnterMode,bool) 	sc/source/ui/app/inputhdl.cxx:3329
    120 	mergedlo.dll 	static void xmloff::token::`dynamic initializer for 'aTokenList''() 	xmloff/source/core/xmltoken.cxx:3474
    121 	ntdll.dll 	0x53850
    122 	KERNELBASE.dll 	0x2931b
    123 	VCRUNTIME140.dll 	0x48a9
    124 	ntdll.dll 	0x53850
    125 	ucrtbase.dll 	0x1f038
    126 	mergedlo.dll 	SfxInterface::GetSlot(unsigned short) 	sfx2/source/control/objface.cxx:163
    127 	mergedlo.dll 	SfxInterface::GetSlot(unsigned short) 	sfx2/source/control/objface.cxx:157
    128 	mergedlo.dll 	SfxObjectShell::ExecFile_Impl(SfxRequest &) 	sfx2/source/doc/objserv.cxx:557
    129 	mergedlo.dll 	SfxShell::ExecuteSlot(SfxRequest &,SfxInterface const *) 	sfx2/source/control/shell.cxx:475
    130 	sclo.dll 	SfxStubScTabViewShellExecuteSave(SfxShell *,SfxRequest &) 	E:/build/workdir/SdiTarget/sc/sdi/scslots.hxx:1584
    131 	sclo.dll 	SfxStubScTabViewShellExecuteSave(SfxShell *,SfxRequest &) 	E:/build/workdir/SdiTarget/sc/sdi/scslots.hxx:1584
    132 	mergedlo.dll 	SfxDispatcher::Call_Impl(SfxShell &,SfxSlot const &,SfxRequest &,bool) 	sfx2/source/control/dispatch.cxx:258
    133 	mergedlo.dll 	SfxDispatcher::Call_Impl(SfxShell &,SfxSlot const &,SfxRequest &,bool) 	sfx2/source/control/dispatch.cxx:219
    134 	mergedlo.dll 	SfxBindings::Execute_Impl(SfxRequest &,SfxSlot const *,SfxShell &) 	sfx2/source/control/bindings.cxx:1051
    135 	mergedlo.dll 	operator new(unsigned __int64) 	D:/a/_work/1/s/src/vctools/crt/vcstartup/src/heap/new_scalar.cpp:36
    136 	mergedlo.dll 	cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo,com::sun::star::frame::XFrame2,com::sun::star::awt::XWindowListener,com::sun::star::awt::XTopWindowListener,com::sun::star::awt::XFocusListener,com::sun::star::document::XActionLockable,com::sun::star::util::XCloseable,com::sun::star::frame::XComponentLoader,com::sun::star::frame::XTitle,com::sun::star::frame::XTitleChangeBroadcaster,com::sun::star::beans::XPropertySet,com::sun::star::beans::XPropertySetInfo>::acquire() 	include/cppuhelper/compbase.hxx:83
    137 	mergedlo.dll 	SfxUnoFrameItem::SfxUnoFrameItem(SfxUnoFrameItem const &)
    138 	mergedlo.dll 	struct std::pair<std::_List_node<std::pair<unsigned short const ,SfxPoolItem const *>,void *> *,bool> std::_Hash<std::_Umap_traits<unsigned short,SfxPoolItem const *,std::_Uhash_compare<unsigned short,std::hash<unsigned short>,std::equal_to<unsigned short> >,std::allocator<std::pair<unsigned short const ,SfxPoolItem const *> >,0> >::_Try_emplace<unsigned short const &>(const unsigned short & const) 	C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/include/xhash:707
    139 	mergedlo.dll 	SfxUnoFrameItem::SfxUnoFrameItem(SfxUnoFrameItem const &)
    140 	mergedlo.dll 	SfxItemSet::SfxItemSet(SfxItemSet const &) 	svl/source/items/itemset.cxx:270
    141 	mergedlo.dll 	SfxBindings::Execute_Impl(SfxRequest &,SfxSlot const *,SfxShell &) 	sfx2/source/control/bindings.cxx:965
    142 	mergedlo.dll 	SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const &,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const &,com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const &) 	sfx2/source/control/unoctitm.cxx:737
    143 	cppu3.dll 	cppu::_copyConstructAnyFromData(_uno_Any *,void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void (*)(void *),_uno_Mapping *) 	cppu/source/uno/copy.hxx:250
    144 	cppu3.dll 	cppu::_assignData(void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void *,_typelib_TypeDescriptionReference *,_typelib_TypeDescription *,void * (*)(void *,_typelib_TypeDescriptionReference *),void (*)(void *),void (*)(void *)) 	cppu/source/uno/assign.hxx:417
    145 	cppu3.dll 	static void typelib_typedescription_destructExtendedMembers(struct _typelib_TypeDescription *) 	cppu/source/typelib/typelib.cxx:1308
    146 	mergedlo.dll 	static class std::unique_ptr<com::sun::star::uno::ContextLayer,std::default_delete<com::sun::star::uno::ContextLayer> > `anonymous namespace'::EnsureJavaContext() 	sfx2/source/control/unoctitm.cxx:229
    147 	mergedlo.dll 	SfxDispatchController_Impl::dispatch(com::sun::star::util::URL const &,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const &,com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> const &) 	sfx2/source/control/unoctitm.cxx:572
    148 	mergedlo.dll 	static class std::unique_ptr<com::sun::star::uno::ContextLayer,std::default_delete<com::sun::star::uno::ContextLayer> > `anonymous namespace'::EnsureJavaContext() 	sfx2/source/control/unoctitm.cxx:229
    149 	mergedlo.dll 	SfxOfficeDispatch::dispatch(com::sun::star::util::URL const &,com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const &) 	sfx2/source/control/unoctitm.cxx:256
    150 	mergedlo.dll 	static void framework::`anonymous namespace'::AsyncMenuExecute(void *, void *) 	framework/source/uielement/menubarmanager.cxx:793
    151 	mergedlo.dll 	static void framework::`anonymous namespace'::AsyncMenuExecute(void *, void *) 	framework/source/uielement/menubarmanager.cxx:789
    152 	mergedlo.dll 	ImplWindowFrameProc(vcl::Window *,SalEvent,void const *) 	vcl/source/window/winproc.cxx:2871
    153 	vclplug_winlo.dll 	static bool ImplHandleMouseMsg(struct HWND__ *, unsigned int, unsigned __int64, __int64) 	vcl/win/window/salframe.cxx:3311
    154 	ntdll.dll 	0x3365b
    155 	ntdll.dll 	0x3d809
    156 	user32.dll 	0x1b5e9
    157 	mergedlo.dll 	SalFrame::CallCallback(SalEvent,void const *) 	vcl/inc/salframe.hxx:311
    158 	mergedlo.dll 	SalFrame::CallCallback(SalEvent,void const *) 	vcl/inc/salframe.hxx:311
    159 	vclplug_winlo.dll 	static __int64 SalFrameWndProc(struct HWND__ *, unsigned int, unsigned __int64, __int64, bool & const) 	vcl/win/window/salframe.cxx:6136
    160 	user32.dll 	0x13b04
    161 	skialo.dll 	static void `anonymous namespace'::RasterWindowContext_win::onSwapBuffers(const struct SkIRect *) 	E:/build/workdir/UnpackedTarball/skia/tools/window/win/RasterWindowContext_win.cpp:89
    162 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    163 	ntdll.dll 	0x2e71a
    164 	ntdll.dll 	0x28b33
    165 	vclplug_winlo.dll 	static __int64 SalFrameWndProc(struct HWND__ *, unsigned int, unsigned __int64, __int64, bool & const) 	vcl/win/window/salframe.cxx:5738
    166 	vclplug_winlo.dll 	SalFrameWndProcW(HWND__ *,unsigned int,unsigned __int64,__int64) 	vcl/win/window/salframe.cxx:6145
    167 	vclplug_winlo.dll 	SalFrameWndProcW(HWND__ *,unsigned int,unsigned __int64,__int64) 	vcl/win/window/salframe.cxx:6140
    168 	user32.dll 	0x18eb8
    169 	vclplug_winlo.dll 	WinSalYieldMutex::doRelease(bool) 	vcl/win/app/salinst.cxx:150
    170 	msvcp140.dll 	0x1285b
    171 	user32.dll 	0x18bec
    172 	vclplug_winlo.dll 	static __int64 SalFrameWndProc(struct HWND__ *, unsigned int, unsigned __int64, __int64, bool & const) 	vcl/win/window/salframe.cxx:6137
    173 	user32.dll 	0x18771
    174 	vclplug_winlo.dll 	static __int64 SalFrameWndProc(struct HWND__ *, unsigned int, unsigned __int64, __int64, bool & const) 	vcl/win/window/salframe.cxx:6137
    175 	mergedlo.dll 	OpenGLContext::prepareForYield() 	vcl/source/opengl/OpenGLContext.cxx:377
    176 	vclplug_winlo.dll 	ImplSalYield(bool,bool) 	vcl/win/app/salinst.cxx:409
    177 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    178 	sal3.dll 	osl_setCondition 	sal/osl/w32/conditn.cxx:55
    179 	vclplug_winlo.dll 	WinSalInstance::DoYield(bool,bool) 	vcl/win/app/salinst.cxx:484
    180 	vclplug_winlo.dll 	WinSalInstance::DoYield(bool,bool) 	vcl/win/app/salinst.cxx:468
    181 	mergedlo.dll 	static bool InnerYield(bool, bool) 	vcl/source/app/svapp.cxx:389
    182 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    183 	mergedlo.dll 	static bool InnerYield(bool, bool) 	vcl/source/app/svapp.cxx:376
    184 	mergedlo.dll 	Application::Execute() 	vcl/source/app/svapp.cxx:364
    185 	mergedlo.dll 	desktop::Desktop::Main() 	desktop/source/app/app.cxx:1679
    186 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    187 	MSVCP140_1.dll 	0x11ef
    188 	ucrtbase.dll 	0x20475
    189 	mergedlo.dll 	operator<<<char,std::char_traits<char> >(std::basic_ostream<char,std::char_traits<char> > &,FontMetric const &) 	include/vcl/metric.hxx:107
    190 	mergedlo.dll 	static lo_initialize$catch$194() 	desktop/source/lib/init.cxx:8401
    191 	sal3.dll 	rtl_uString_release 	sal/rtl/ustring.cxx:1118
    192 	mergedlo.dll 	InitVCL() 	vcl/source/app/svmain.cxx:371
    193 	mergedlo.dll 	desktop::Desktop::Main() 	desktop/source/app/app.cxx:1304
    194 	mergedlo.dll 	ImplSVMainRun() 	vcl/source/app/svmain.cxx:234
    195 	mergedlo.dll 	soffice_main 	desktop/source/app/sofficemain.cxx:122
    196 	ntdll.dll 	0x53850
    197 	ucrtbase.dll 	0x20400
    198 	mergedlo.dll 	static `desktop::CallbackFlushHandler::CallbackData::CallbackData'::`1'::dtor$0()
    199 	mergedlo.dll 	soffice_main 	desktop/source/app/sofficemain.cxx:59
    200 	soffice.bin 	main 	desktop/source/app/main.c:49
    201 	soffice.bin 	static int __scrt_common_main_seh() 	D:/a/_work/1/s/src/vctools/crt/vcstartup/src/startup/exe_common.inl:288
    202 	soffice.bin 	mainCRTStartup 	D:/a/_work/1/s/src/vctools/crt/vcstartup/src/startup/exe_main.cpp:16
    203 	kernel32.dll 	0x1259d
    204 	ntdll.dll 	0x5af78

[1] https://crashreport.libreoffice.org/stats/crash_details/6812315d-e79b-46ce-893d-688d6908c41c
[2] https://gerrit.libreoffice.org/c/core/+/203572/comment/95fcd0be_db5a3d02/

Change-Id: Ia30eecd2667d15220b9f7824faea5adc04c94e93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210137
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-08-27 23:36:19 +02:00
Michael Weghorn 8bf40d62b6 Move QueryDialog to svtools
Move QueryDialog from cui to a public svtools header.
This is in preparation of using the class directly
and dropping the AbstractQueryDialog abstraction
altogether.

The dialog can e.g. be triggered like this:

* start Writer
* Ctrl+Shift+S for "Save As"
* select "Text (.txt)" for the file type
* press OK

(Resetting the profile ensures the dialog gets shown
in case the "Don't show again" checkbox has been ticked
previously.)

Change-Id: I57bdade32c21c7ab40c5a4c90bd86e8dea5d2fad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210136
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-08-27 23:36:10 +02:00
elioperdreau bfdd574ef7 ODFStudio: expose Studio build feature to C++
Change-Id: Iba7bcfe420553cd45278b391d02f08bbe329648c
2026-08-26 23:10:46 +02:00
Andrea Gelmini 8acc72d8c2 Fix typos
Change-Id: I1a3aa6e77a31e1d60bfaf98006799657f91bcb1d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209890
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-25 14:30:23 +02:00
Caolán McNamara ecd9ee7aa1 pass a referer through setSvxBrushItemAsFillAttributesToTargetSet
SvxBrushItem::GetGraphic wants the name of the document the brush came
from, so take it as an argument and hand in SwDoc::GetLinkReferer
wherever a document is at hand, the Writer style, frame and background
shell paths included.

The dialog and example-window callers pass the name of the active
document shell through a new svx helper getActiveDocumentLinkReferer.

The hand-rolled copies of the GetPersist, HasName, GetMedium GetName
sequence elsewhere in sw now call SwDoc::GetLinkReferer too.

Change-Id: I8693d27869baed79962b2d5bdcb7b7e2c63227bb
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8200
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 18f91ac71710027479dfe9f206ae2207bad8f2b7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209827
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-25 11:16:39 +02:00
Xisco Fauli 0c91381485 loplugin:unusedmethods
Change-Id: I17586b49f970be17c5f6d2823d4a973521b2ed62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209407
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 09:31:35 +02:00
Neil Roberts 66dfcf9803 tdf#173170 Don’t show the “resize all pages” checkbox if not requested
If the caller of the dialog doesn’t request the
SID_ATTR_RESIZE_ALL_PAGES attribute then the checkbox to configure
whether to resize all pages will now be hidden. This fixes the problem
that the checkbox was shown in Writer and Calc but it actually only has
any effect in Draw and Impress.

Change-Id: I47a0d5320071c00830f5e95ad3d6753c56ecc0f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209413
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Jenkins
2026-08-21 08:07:02 +02:00
Julien Nabet 33bb828ae5 tdf#173186: "Pick" button inactive in "Area" dialog box
After 2016 Gsoc rework of color tab, UpdateModified is:
- useless since the color pick isn't relied with m_pColorList
- wrong since there's no case where color pick button should be disabled.
So when starting a brand new odp and right click on Area, color pick button should be enabled.

Change-Id: I5b1b0f0c3eb7e100a69379ca014eeb1b14263611
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209317
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-08-19 16:22:34 +02:00
Heiko Tietze c831687ef2 Related tdf#91816 - Fix comment for text alignment
Follow-up on d36bc2232e

Change-Id: I6b49a21d54f9afae8fc6665914c38c4913be5bea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209142
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-08-16 11:57:24 +02:00
Heiko Tietze d36bc2232e Resolves tdf#91816 - Allow indentation of right-aligned text in Calc
Change-Id: I3b2af718a8e3bdc97c84da64b011b54697ff2023
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209118
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-08-14 13:00:23 +02:00
Heiko Tietze c99cf5b32b Resolves tdf#140561 - Change gutter label in case of mirrored style
In case of mirrored pages the gutter cannot be left or right but
inner or outer. To make the dialog easier to understand the modifier
checkbox for Left turning this into Right was changed to radio buttons.

Change-Id: I71b32d89f9a9054f5351e3c0d51ba348b66c1f0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209072
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-08-13 15:57:25 +02:00
AsmatZahra-code b28b657416 tdf#172210 Advise restart when changing High Contrast setting
Tools > Options > LibreOffice > Accessibility > High Contrast
has three possible values. Changing this setting requires a
restart to take effect, but no restart dialog was shown.

Add a new RESTART_REASON_HIGH_CONTRAST reason and wire it up
in SvxAccessibilityOptionsTabPage::FillItemSet() following the
same pattern used for Skia and Threaded Calculation settings.

Also call save_value() in Reset() so that
get_value_changed_from_saved() correctly detects whether the
user actually changed the combo-box value before showing the
dialog.

Change-Id: I1d628ce04bc8f7cf6f1b4e4a8bb7a44a0a653c0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208996
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Tested-by: Hossein <hossein@libreoffice.org>
2026-08-05 12:08:39 +02:00
Neil Roberts dce6dcd302 tdf#172952 uitabpage: Use separate strings for the Apply to X button
The dialog for choosing a UI has a button at the bottom to apply the
setting only to the current module and it has the text “Apply to
%MODULE” where %MODULE gets replaced with a non-translatable name for
the module.

For better or worse, some translations (such as Esperanto) have
different names for the modules. For example Writer is Verkilo. For the
sake of consistency, it would be nice to be able to translate these
strings.

It is also difficult translate this string in languages that have a lot
of grammatical cases. For example, in Slovakian the translator might
ideally want to translate the string as “Použiť vo Writeri” and “Použiť
v Calcu” etc, but they currently can’t do this because they would need
to be able to add a different suffix depending on which module is being
used.

In order to fix both problems there is now a specific string with the
whole text for each module.

Change-Id: I7c478790d89bf33f26b53642a076f9e308d1e64a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208800
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-07-31 12:39:05 +02:00
Neil Roberts 33cdc558f9 uitabpage: Split part of GetCurrentApp into version to get the enum
The part of GetCurrentApp that gets the enum of the current app is now
split out into a separate function so that it can be used in a later
patch.

Change-Id: Iee2d00cc8384c6c05cd36c5ebcfe5df3174dfd21
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208859
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-07-31 12:38:33 +02:00
Justin Luth af99f74cd6 tdf#159398 cui chardlg: Allow 'Without' capitalization immediately
This fixes an initial import copy paste typo.

Without the fix, the user would first need to select another choice,
close the format dialog with an OK, and then open it up again
where this time it allows the choice of 'Without' to stick.

Change-Id: I3f63d68002135b8aed9370ba829b74c6f72753b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208873
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-07-31 10:54:12 +02:00
Michael Weghorn 3aad0eac0e tdf#172275 tdf#172831 cui: Drop unused CustomNotebookbarGenerator
This class is unused now after

    Change-Id: If15d1519cea179596bd72aaf5354d01f89ccb9e7
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Jul 27 13:38:37 2026 +0200

        tdf#172275 tdf#172831 cui: Drop unused SvxConfigPage::m_s{App,File}Name

Drop it.

Change-Id: Ic670d1db42f2262ee67d87b84819bf0aab8d9c30
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208673
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-28 23:20:51 +02:00
Michael Weghorn 38f1a7768c tdf#172275 tdf#172831 cui: Drop unused SvxConfigPage::m_s{App,File}Name
The getters for these members are no longer used since

    Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Jul 27 13:12:52 2026 +0200

        tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage

and the members are not used inside the class (except for assigning
a value to them) either, so drop them.

Change-Id: If15d1519cea179596bd72aaf5354d01f89ccb9e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208672
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-28 23:20:44 +02:00
Michael Weghorn 6864d76c2a tdf#172275 tdf#172831 Drop unused CustomNotebookbarGenerator::get*UIPath
These are unused now after

    Change-Id: I3a07781df97cec9bc4f449aaee758dc73fa97157
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Jul 27 13:31:37 2026 +0200

        tdf#172275 tdf#172831 Drop more unused CustomNotebookbarGenerator methods

Change-Id: Ia2fe4b814d15be96cd68b3b425c6deed16a664a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208671
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-28 23:20:37 +02:00
Michael Weghorn 97b205db7a tdf#172275 tdf#172831 Drop more unused CustomNotebookbarGenerator methods
These methods are no longer needed after

    Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Jul 27 13:12:52 2026 +0200

        tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage

Change-Id: I3a07781df97cec9bc4f449aaee758dc73fa97157
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208670
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-28 23:20:28 +02:00
Michael Weghorn dd24135865 tdf#172275 tdf#172831 Drop unused CustomNotebookbarGenerator methods
CustomNotebookbarGenerator::modifyCustomizedUIFile is unused now
after

    Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Jul 27 13:12:52 2026 +0200

        tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage

. Drop it, and also the then also unused
CustomNotebookbarGenerator::getSystemPath and static
local helper functions.

Change-Id: Ia231effca982405e5e8b88af1c6e6805de7bd770
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208669
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-28 23:20:14 +02:00
Michael Weghorn 968bc97a37 tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage
SvxNotebookbarConfigPage is unused since

    commit 7312d7d3c9
    Date:   Wed May 20 15:28:42 2026 +0200

        Relates tdf#166641 - Add category labels to Writer's Tabbed Notebookbar

        * gla11y-conform
        * consistent IDs (gd*/lb* and btn*/bx*)
        * consistent layout with grids
        * defined spacing of 3px
        * defined margins of 6px
        * category labels
        * redundant Insert sections from Home and Forms from Tools removed
        * customization of Notebookbars removed since the new position
        of commands is not properly found

and its ctor was dropped in

    commit 00aebb5e88
    Date:   Fri Jun 26 18:55:24 2026 +0200

        loplugin:unusedmethods

. Drop the class altogether, along with the code
commented out since the above commit that would
have used it.

Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208668
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-28 23:20:07 +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
Neil Roberts 54ba86b578 scripting: Replace XAggregation of XBrowseNode with helper function
The browse node factory had a wrapper using XAggregation that wraps
every XBrowseNode. As far as I can tell this was used to replace the
implementation of getChildNodes with one that checks for exceptions from
the underlying provider and then sorts all of the resulting nodes by
name. The trouble with this is that it prevents the script providers
from detecting when a node is one from the same script provider and thus
makes it difficult to implement the XCopyableBrowseNode interface. The
documentation for XAggregation mentions this problem and also states
that the interface is deprecated.

To avoid this overhead, this patch replaces the aggregation with a
helper function in comphelper that should be used to retrieve children
from a browse node. That takes care of catching exceptions and sorting
the results.

Change-Id: I319888fee1b84ddcef397317d2cf7e72bd2867cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208160
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-07-23 15:18:22 +02:00
Justin Luth 78f371e500 NFC tdf#111843 SfxViewShell: HasSelection(bText=true), remove =true
No Functional Change intended

This function is used very specifically for only UI stuff.
It is very different from any regular stuff.

So help to differentiate it by requiring the bool value.

To make sure I got all of them, I tested by requiring
a bogus OUString variable as well - make sure it compiled.

Change-Id: I4879427a806324d9fb9c033ef6b66ad24ba0bd54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208234
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
2026-07-21 11:22:20 +02:00
Heiko Tietze a435d56867 Related tdf#115805 - Use correct increments for numbering dialogs
Rather than using set_unit() use the function SetFieldUnit() to set
the unit property according the configuration

Change-Id: I1a8638d34d71b509f2d0a52fef8a673c8e112c55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207353
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2026-07-21 07:46:10 +02:00
Xisco Fauli 208d055212 skia: turn ForceSkiaRaster into ForceSkiaGPU
so unless ForceSkiaGPU is specifically enabled by the user,
hardware accelatarion will be disabled by default.
Some discussion on the topic can be found here
https://gerrit.libreoffice.org/c/core/+/208116/comments/273234df_69198d70
and here
https://gerrit.libreoffice.org/c/core/+/208116/comments/372732df_f989e4f3

In libreoffice-26-2 branch, Vulkan has been put under experimental mode
so it doesn't touch translations,
see https://gerrit.libreoffice.org/c/core/+/208134

Change-Id: Ib7a39d269f24b5ef82752edb238944d3d453153c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208148
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-18 13:00:28 +02:00
Michael Weghorn 312aac710b Move SvtViewOptions from unotools to svtools
The SvtViewOptions class is used to store the state
of windows/dialogs.

So far, SvtViewOptions::SetWindowState and
SvtViewOptions::GetWindowState are string-based
and the callers are responsible for (de)serializing
the vcl::WindowData to/from string.

This will be changed to become the responsibility
of SvtViewOptions in an upcoming commit.

Since unotools is below vcl in the module
dependency chain, it cannot make use of vcl,
i.e. vcl::WindowData couldn't be used there.

Therefore, move SvtViewOptions from unotools
to svtools, which is above vcl in the module
dependencies.
(svtools/README.md summarizes the purpose of the
module as "Tools on the Top of VCL", which seems
an appropriate place for helper code to manage
the state/options for dialogs, tab pages,...)

Change-Id: If849224c35c7ac895659ddb7c17e6d17061d61a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208124
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-15 14:45:41 +02:00