443 Commits
Author SHA1 Message Date
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
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
Neil Roberts 775587d503 Related tdf#171924 Make macro manager dialog track document like run dialog
The Macro Manager dialog now keeps track of which XModel every node in
the tree is coming from just like the Run Macro and Organize Macros
dialogs. That way it can determine whether a macro should be runnable
based on whether it’s in a document rather than whether the user happens
to be looking at a document that has macros. This also fixes a problem
where the run button would not work from the start center.

The UI test is heavily copied from the UI test for the run macro dialog.

Change-Id: I8a47234511fa78ba7d2f97f78f42df8f58416cbc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207244
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-06-25 10:55:05 +02:00
Heiko Tietze f3d3e12be5 Resolves tdf#89781 - Better warning when saving multiple sheets
* Replaced ScOnlyActiveSheetSavedDlg by QueryDialog
* Pimped the QueryDialog with SetTypeWarn showing a different
  image and hiding the No button

Change-Id: Id134c8d4f6e27df5918d1b53141b45bc0439651c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207209
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-06-24 12:32:20 +02:00
Neil Roberts c4c4127727 SvxScriptSelectorDialog: Add method to get XModel containing script
Now that SfxGroupInfo_Impl stores the model where each script came from
we can expose that information for the selected script in the script
selector dialog via a new method called GetScriptModel.

Change-Id: I7d9baaa99c276842e3b7e6bcacf89a915bcdca33
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206151
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-06-09 11:46:19 +02:00
Heiko Tietze ca4328f998 Resolves tdf#169313 - Invert 'Show Again' logic on query dialogs
* Checkbox label and position as well as button width and margins
  at the UI changed
* Consistent access to the variable via a new class including
  the consistent storage of the query flag
* Additional buttons added to have homogeneous Yes/No as well as
  non-homogeneous long names, eg. for file formats

Change-Id: Icfbd923b298e1192a1474519543986142167f6c7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203572
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-04-28 11:28:06 +02:00
Michael Weghorn 5663308424 Drop now unused AbstractSvxNameDialog
As mentioned in earlier commit

    commit 7c42839f7b
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Feb 17 15:43:22 2026 +0100

        tdf#158280 Move SvxNameDialog etc. from cui to svtools

, SvxNameDialog can now be used directly instead
of via the AbstractSvxNameDialog abstraction.

Now that all users of AbstractSvxNameDialog have been ported
to use SvxNameDialog directly in previous commits, drop
the now unused AbstractSvxNameDialog altogether.

Change-Id: Iff696fa557ba0bf80a5f2976271ce83bda1e5aec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199747
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-02-20 08:18:33 +01:00
Michael Weghorn 7c42839f7b tdf#158280 Move SvxNameDialog etc. from cui to svtools
tdf#158280 suggests to replace all uses of
the sfx2 InputDialog with SvxNameDialog.

For uses in sfx2 itself however
(e.g. sfx2/source/doc/templatedlg.cxx, see work-in-progress
change [1]), this poses the problem that even the existing
AbstractSvxNameDialog abstraction is not sufficient
to avoid a cyclic dependency because the
SvxAbstractDialogFactory required to create
an instance is in the svx module, which is
still above the sfx2 module in the dependency chain.

Move SvxNameDialog and the other common dialogs
defined in the same header down into svtools and
make the header a global svtools header,
so it can be used directly in sfx2 and
elsewhere.

Existing uses of AbstractSvxNameDialog can be
simplified to directly use SvxNameDialog in
separate commits.

[1] https://gerrit.libreoffice.org/c/core/+/198880

Change-Id: I26023712b09bcd7c303053e88cce40a3e1cae964
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199550
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-02-17 17:41:58 +01:00
siddhisalunkhe1998 1c6eb5324d tdf#147630 Transform Hyperlink dialog into a standard SfxTabDialog
Adds new hyperlinkdialog ( class HyperlinkDialog : public SfxTabDialogController )
and tab pages - internet, mail, document, new document

Change-Id: I1d8c27d4da340f22f76df9046ab781d94477121f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195201
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-02-02 17:35:21 +01:00
Michael Weghorn 89ad9eec8b tdf#169505 Move ColorPickerDialog from cui to vcl
... and simplify a bit to no longer use the dialog
factory logic which was needed previously to break
a dependency cycle because the cui module is above vcl.

Further simplification will follow in upcoming commits.

Change-Id: Ie3b0d1090300e249e40e1479a40d01caabbdf573
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195094
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-12-06 08:40:06 +01:00
Gabor Kelemen 9b8daf9015 tdf#146619 Run IWYU on cui/
Change-Id: Ibeb01d88bedd47b0e9ea37a4390a0f16cec32bb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189786
Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
Tested-by: Jenkins
2025-08-19 09:48:18 +02:00
Michael Weghorn 94442bd94e tdf#163802 a11y: Fully initialize SpellDialog before showing
SpellDialog can't do all of its initialization in the
ctor because it needs to call virtual methods on the
SpellDialogChildWindow* that gets passed as a param,
but that one calls the SpellDialog from its ctor, i.e.
it hasn't been fully initialized yet.

For that reason, the part of the initialization done in
InitHdl was delayed by using a user event (posted via
Application::PostUserEvent).
This also includes setting the dialog title based on
the selected text language.

As a consequence of this, the title, and therefore the
accessible name of the dialog would change after it was
shown, which would result in Orca speech output for the
dialog getting interrupted (see tdf#163802).

Avoid the problem by not depending on the next user
event getting processed, but calling the method
that does the rest of the initialization manually
after the SpellDialogChildWindow constructor has
finished.

In order to do that, add a virtual SfxChildWindow::Initialize
(that does nothing) and override it in the
SpellDialogChildWindow subclass.

Since SpellDialog::Initialize (renamed from SpellDialog::InitHdl)
is now guaranteed to be called before the dialog shows
and that one always sets a title (by calling
UpdateBoxes_Impl), drop the no longer needed

    // fdo#68794 set initial title for cases where no text has been processed
    // yet to show its language attributes
    OUString sTitle = rParent.HasGrammarChecking() ? m_sTitleSpellingGrammar : m_sTitleSpelling;
    m_xDialog->set_title(m_xDialog->strip_mnemonic(sTitle.replaceFirst("$LANGUAGE ($LOCATION)", "")));

from the ctor.

Additional fix for GTK 3 to avoid incorrect
object:property-change:accessible-name events from
getting sent when the title didn't actually change [1]:

    commit 0cc9e603f4635c31d2a8a5f602869474d329e728
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Aug 4 15:31:06 2025 +0200

        a11y: Only notify when window title changed

        In gtk_window_set_title_internal, return early
        when called with the same title as is already set.

        This also ensures that notifying of a change
        of PROP_TITLE only happens when the property
        actually changed, which also prevents invalid
        object:property-change:accessible-name AT-SPI
        events from getting emitted on the accessibility
        layer when the title hasn't actually changed.

        Fixes: #7690
        Part-of: <https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8814>

Output of the pyatspi listener script from tdf#163802,
attachment 197494 for gtk3 before this LO commit (note the
object:property-change:accessible-name event after
the object:state-changed:showing event):

    event type: object:property-change:accessible-name, event source: Spelling: , states: ['ENABLED', 'SENSITIVE', 'SHOWING', 'VISIBLE']
    object:property-change:accessible-name(0, 0, Spelling: )
            source: [dialog | Spelling: ]
            host_application: [application | soffice]
            sender: [application | soffice]

    event type: object:state-changed:showing, event source: Spelling: , states: ['ENABLED', 'SENSITIVE', 'SHOWING', 'VISIBLE']
    object:state-changed:showing(1, 0, 0)
            source: [dialog | Spelling: ]
            host_application: [application | soffice]
            sender: [application | soffice]

    event type: object:property-change:accessible-name, event source: Spelling: English (UK), states: ['ENABLED', 'SENSITIVE', 'SHOWING', 'VISIBLE']
    object:property-change:accessible-name(0, 0, Spelling: English (UK))
            source: [dialog | Spelling: English (UK)]
            host_application: [application | soffice]
            sender: [application | soffice]

Output with this change in place:

    event type: object:property-change:accessible-name, event source: Spelling: English (UK), states: ['ENABLED', 'SENSITIVE', 'SHOWING', 'VISIBLE']
    object:property-change:accessible-name(0, 0, Spelling: English (UK))
            source: [dialog | Spelling: English (UK)]
            host_application: [application | soffice]
            sender: [application | soffice]

    event type: object:state-changed:showing, event source: Spelling: English (UK), states: ['ENABLED', 'SENSITIVE', 'SHOWING', 'VISIBLE']
    object:state-changed:showing(1, 0, 0)
            source: [dialog | Spelling: English (UK)]
            host_application: [application | soffice]
            sender: [application | soffice]

[1] https://gitlab.gnome.org/GNOME/gtk/-/commit/0cc9e603f4635c31d2a8a5f602869474d329e728

Change-Id: I6cdfe8443ae435e1e644b78942cf63e9df1d400f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188937
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-08-05 23:47:16 +02:00
Noel Grandin 5ec2d0442a BitmapEx->Bitmap in VclAbstractDialog::createScreenshot
since Bitmap can now do transparency

Change-Id: I47d7effbdbea6a5032e5f5c85a3f02cc6a9115dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188506
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-07-29 08:45:37 +02:00
Michael Weghorn dae9472b27 tdf#167669 weld: Introduce weld::ColorChooserDialog
Toolkits like GTK and Qt, as well as other platforms
provide a native color chooser dialog
(like GtkColorChooserDialog [1] or QColorDialog [2]).

So far, these have not been used by LibreOffice, but
the custom LibreOffice color picker
(logic implemented in cui class ColorPickerDialog,
wrapped by vcl class ColorDialog and created via
a dialog factory to avoid dependency cycles) has
always been used.

In order to prepare for supporting native color choosers,
introduce a new weld class/interface weld::ColorChooserDialog
(following the convention to name after the GTK equivalent,
GtkColorChooserDialog).

Adjust the existing vcl ColorDialog class to wrap
the new weld::ColorChooserDialog instead of wrapping
the custom LO implementation directly.

Similar to SalInstance::CreateMessageDialog, add a
new SalInstance::CreateColorChooserDialog to create
an instance of weld::ColorChooserDialog. This will
allow to return a toolkit/platform specific implementation
in the future.

Initially, let both SalInstance and GtkInstance
return a weld::ColorChooserDialog implementation
that wraps the existing ColorPickerDialog.
(GTK needs a separate implementation because
the VCL implementation expects that the weld::Window
parent is a SalInstanceWindow, while it is a
GtkInstanceWindow for the GTK case.)

No change in user-observed behavior is intended yet
by introducing this extra layer of weld abstraction,
but this prepares for switching the GTK
implementation to use a native GtkColorChooserDialog
in an upcoming commit.

[1] https://docs.gtk.org/gtk3/class.ColorChooserDialog.html
[2] https://doc.qt.io/qt-6/qcolordialog.html

Change-Id: I29380607cdf3abe739a245aeb25526f643dfa537
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188342
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-07-25 19:57:57 +02:00
Xisco Fauli 08cb367148 tdf#167466: drop background tab from Writer/Web options tree
it started to crash after
commit ca6b1677cc
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Tue Jun 3 11:59:57 2025 +0200

    sw: no need to create a dummy attr pool

because that target pool is nullptr in SfxItemPool::GetUserOrPoolDefaultItem
now.

After some testing, there are some reasons why I believe it should be
dropped:
* Although it's an Writer/Web option it only works on Web ( File - New -
  HTML document )
* Even if set in a web document, it won't be exported to html. To do so,
it has to be set in the Page Style dialog
* The document background can be changed from the Apperance tab so
basically this tab is duplicated now

This issue would have be caught if tdf#49895 had a test.
I will write a UItest in a follow-up commit

Change-Id: I3087a6942b9e5406de936fdde47d4c9143be55e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187754
Tested-by: Jenkins
Reviewed-by: Sahil Gautam <sahil.gautam@collabora.com>
2025-07-12 10:46:44 +02:00
Michael Weghorn 4ab724bf84 Use vcl::ColorPickerMode instead of sal_Int16 param
Now that the UNO abstraction and corresponding services
have been dropped in

    commit 0905c23676
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Jun 13 18:27:09 2025 +0200

        Stop using UNO abstraction for color picker

and

    Change-Id: I9264707df57e46192a393f6736257c413e5d9831
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Jun 16 08:01:55 2025 +0200

        [API CHANGE] Drop ColorPicker, AsynchronousColorPicker

, no longer pass a sal_Int16 param to the ColorPickerDialog
ctor, but use the vcl::ColorPickerMode enum directly
without casting.

This also means that there is no more need for the
underlying int values of the enum values to have a
specific value, so no longer set these explicitly.

Change-Id: Ife2a7b0672bacc73b3001ef0e2e57f4626837655
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186539
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-06-16 15:37:38 +02:00
Michael Weghorn 0905c23676 Stop using UNO abstraction for color picker
SvColorDialog is using an instance of
ColorPickerDialog under the hood.

So far, the ColorPickerDialog instance was
created and used via UNO abstraction, by
calling either
css::cui::ColorPicker::createWithParent (for the
synchronous case) or
css::cui::AsynchronousColorPicker::createWithParent
(for the async case), which would end up calling
the UNO service ctor,
com_sun_star_cui_ColorPicker_get_implementation
(and creating an instance of ColorPickerDialog
in both cases, just with a reference to a different
UNO interface as a return value for both cases).

Further interaction would then happen via the
XExecutableDialog or XAsynchronousExecutableDialog
UNO interfaces and by setting/reading properties.

Stop using that UNO abstraction and instead
introduce AbstractColorPickerDialog as a new
VclAbstractDialog subclass, which allows to
interact with the the ColorPickerDialog more
directly while still avoiding a direct dependency
on (the higher-level module) cui in svtools.

This also implies that SvColorDialog now no longer
depends on svt::DialogClosedListener for the async
case, which means that SvColorDialog can be moved
from svtools to vcl in the future. That in turn will
help in implementing support for platform/toolkit-native
alternatives for the color picker instead of using
the LO-internal one.

No change in user-observable behavior intended
or seen in a quick test in Writer (open dropdown for
"Font Color" toolbar item, then select "Custom Color"
to open the dialog).

Change-Id: I3b9997b73a9a6bcce4c5b3ae3bd7d57816a4419b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186468
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-06-16 07:08:40 +02:00
Noel Grandin 4b61dffd1d loplugin:unusedmethods
and trim out some of the noise from the reports

Change-Id: Ib99a044049a7715978ef58718d2518bde23b8fe6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185958
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-05-28 16:49:14 +02:00
Heiko Tietze 043b186d10 Related tdf#158880 - [API CHANGE] Rename ToolbarModeDialog to UIPicker
The scope of this dialog has changed with 98d1ac254bd62dff9d0aa9c72ba879d1d52495ef
and it's not just an UI for the ToolbarMode namespace

* Toolbarmodedlg* renamed to UIPIckerdlg*
* UNO command ToolbarModeUI renamed to UIPicker
* SID_TOOLBAR_MODE_UI renamed to SID_UI_PICKER

Change-Id: Id4d617aeee83ae1800d4b9a2d207d28c391dcdb4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185789
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2025-05-28 14:48:35 +02:00
Heiko Tietze 9e1470c07d Resolves tdf#166594 - Reuse the Welcome dialog for WhatsNew
* some nicer strings, depending on whether run as first-start
  dialog or after an update
* checkbox to not show the dialog again (but the infobar)

Change-Id: I6b1fafbf70e06a80a4e92864acce5cd16b85bc8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185552
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2025-05-20 21:47:31 +02:00
Heiko Tietze 9d90a1733b Resolves tdf#137931 - Show a Welcome dialog on first start-up
With tabs for introduction (and later perhaps also as what's new
info), appearance, and UI picker.

Run ./soffice --safe-mode to test but make sure to start the app
next in normal mode

Change-Id: Ia12ba44c8796fb53f2ec1dbaf46dd25a6ec113cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184195
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2025-05-11 14:58:42 +02:00
Heiko Tietze 7f4901ded7 More appealing design for alientformat warn dialog
Change-Id: I575f24e6b8f9dd08bd8797343a86ac25b49f19b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180713
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2025-01-30 09:52:31 +01:00
Heiko Tietze 35487636da More flexible query dialog
Modifies and reverts a52bc9b5d6
and 8b84691d5e

Prerequiste for tdf#164586

Change-Id: If35a94ce25c634a6d583aeb8188d2f9ed75bc0fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180547
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2025-01-22 11:40:06 +01:00
Mike Kaganski 99df3eb370 Factor out AbstractDialogImpl template for reuse
Add a ctor to /opt/lo/bin/clang-format -i include/vcl/abstdlgimpl.hxx
to construct the dialog in-place, to simplify factory methods.
And move two abstract dialog impls where all others are in cui

Change-Id: Ia3f3a5d6c1aaa5a9aca9c11990f833842e4536e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178983
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-12-21 22:18:11 +01:00
Mike Kaganski c6f3ffe93a Simplify VCL dialog implementations, and drop some macros
Change-Id: I6eec9c4ebfc795ca82ea014ab317b6c10bf931d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178722
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-12-18 18:24:48 +01:00
Caolán McNamara d7736eb6ae fix --disable-scripting build
Change-Id: I0b0113d5e3a1652280e0d84c1beba7c572ded191
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177736
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-12-03 15:23:45 +01:00
Jim Raykowski 55e86edcb3 tdf#120658 - Reworking of dialogues Organize macros
(make from 5 existing only one)

Much of what makes up this patch is adapted from existing code that is
used to organize and select macros and to assign macros to shortcut
keys. Comments in the patch say where code is borrowed from.

Known issues:

+ Scripting framework library rename for BeanShell, Java, and JavaScript
always returns fail when there are no macro entries in the library even
though it actually succeeds. The same thing happens using
SvxScriptOrgDialog::renameEntry.

+ Deleting Basic macros from the Macro Manager dialog is not implemented
yet.

Change-Id: If4da04549f8b39675910cbbd1f94dd9a6b73c31a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176254
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-12-02 07:13:00 +01:00
Noel Grandin 514d738447 tdf#161968 UI Assign macro to shape crashes CALC
regression from
    commit f690e8218a
    Author: Noel Grandin <noel.grandin@collabora.co.uk>
    Date:   Tue Jan 23 13:24:29 2024 +0200
    make event config dialog async

Change-Id: Ie68aeb1171831da3b457afd945ccaaa248e652af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171370
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-08-01 13:10:07 +02:00
Caolán McNamara 80a6f398eb regain the SvxCharacterMap "pre-run" logic in async mode
since:

commit 6a5ef1a2b0
Date:   Mon Jan 22 12:35:50 2024 +0200

    make charmap dialog async

Change-Id: I5fc13e759eb8f1d1e6ab7c09f39cabc1d4c4ad7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170276
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-10 17:29:07 +02:00
Heiko Tietze 1bd9747a12 tdf#161209 - Reverts WhatsNew/Welcome dialog
dd889b2903

Change-Id: Idf0594c546e4d9ca263272ed1534b27948e8e930
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167956
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2024-05-22 21:19:46 +02:00
Noel Grandin ecf6f6f256 loplugin:ostr in cui
Change-Id: I593eb3c02768423fc8cea8d93c112655860228d9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167258
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-05-07 12:20:06 +02:00
Stephan Bergmann 0ce23697cf -Werror,-Wunused-parameter
Change-Id: Ic7d32200332554b0a615120f69e4c86e612450c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165466
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-03-28 20:46:30 +01:00
Heiko Tietze dd889b2903 Resolves tdf#159573 and tdf#137931 - WhatsNew or Welcome dialog
To test the new dialog, change org.openoffice.Setup > Product > ooSetupLastVersion to some lesser value for the WhatsNew dialog or clear the entry for the Welcome version.

Change-Id: Iec6de50edba0e5430e82f1db85e61d1e4501771d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163739
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-03-27 09:41:44 +01:00
Noel Grandin 47bfbbdb73 Create an UNO service to do the cui symbol lookup in vcl
which means I can remove one usage of gb_Library_set_plugin_for, which
is blocking linking the cui module into --enable-mergelibs=more

Change-Id: Ic6cd48377627f94747037c7247a1cd398738b390
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163820
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-25 14:45:55 +01:00
Caolán McNamara 1478c593b5 cid#1591486 Logically dead code
since:

commit 93c4bfc96a
Date:   Thu Jan 25 10:29:47 2024 +0200

    make writer databases dialog async

Change-Id: Ic67a7b5313e1dfad9c34fc3bf05ca808af29ceba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162944
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-02-04 08:49:43 +01:00
Caolán McNamara 52ba1fea03 move CharMap out of cui
remove CUI_DLLPUBLIC from stuff which is not exported
then drop the cui/include dir which is then empty and
the places we link to cui where we now don't need to

and restore cui back to a lib containing stuff that
doesn't need to be explictly linked to in keeping
with original #i106421# idea

Change-Id: I21894e6f8529dd3306df345fb52dbf5009015f3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162798
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-31 20:52:19 +01:00
Noel Grandin 93c4bfc96a make writer databases dialog async
Change-Id: I9f3c3bc3c555ef8a115258ff6d186ceeead3cc99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162556
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-30 17:08:11 +01:00
Noel Grandin e5d6133283 make insert row dialog async
Change-Id: Icb6c2fafe2b47989ff2692956890c87780b117e0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162552
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-25 10:33:21 +01:00
Balazs Varga 2c16ea16b3 tdf#159128 UI: Open Security settings option directly
Open Security Option Setting page directly from Security pop up
warning infobar.

Follow up of 1f440348eb
(tdf#157482 UI: Turn Security Warnings popup windows into infobars)

Change-Id: Iac116677801bdb13a9680bcfdf532ec3d874ce0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162393
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-01-24 09:06:39 +01:00
Noel Grandin 0e161e5dcb make the macro assign dialog async
Change-Id: I6a23f648784f61e72e6095b249719d9c8630252f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162444
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 18:16:18 +01:00
Noel Grandin ea88508c9f make signature line dialog async
Change-Id: I64cb2ae5b3748e8034fb0624b56c3d3dfdc31654
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162420
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 14:53:46 +01:00
Noel Grandin f690e8218a make event config dialog async
Change-Id: Ibbfbc5024fb2be4906d0c312577310f28dde212d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162434
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 14:32:25 +01:00
Noel Grandin 07b26af18d make the graphic filter dialogs async
Change-Id: I49a1ff800c6b5fcee69e160158a089659d288bdc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162422
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 13:38:40 +01:00
Noel Grandin 6cece4bf41 make links dialog async
Change-Id: I067d682ade01671d7aa347a492929ae4f92064b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162421
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 12:58:42 +01:00
Noel Grandin eb6634fdda make sign signatures dialog async
Change-Id: I7c088b1450050720a28fbc7ccf139b8c69f1cf19
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162419
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 07:17:59 +01:00
Noel Grandin 9b517f9d4f make additions dialog async
Change-Id: I239d8d344ed3152586567c6e1d9b529ba75925dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162418
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 07:17:47 +01:00
Noel Grandin 4cee40936e make diagram dialog async
Change-Id: I26ec71ab5b00545a2e173dd4cc3dcd49d79c2fa7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162417
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-23 07:17:38 +01:00
Noel Grandin 0edec42260 make object name dialog async
Change-Id: Icf81810297dc5767cedd051cf8ccdfbb101f35ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162395
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-22 19:48:44 +01:00
Noel Grandin dde1868544 object-title dialog can be used async
Change-Id: Ia5869788ccefcd17ef561bafb41da6f0d48fd54d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162394
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-22 19:48:35 +01:00