revert
commit 1c8b8d1fb8
Author: Noel Grandin <noelgrandin@gmail.com>
Date: Fri Nov 7 16:38:40 2025 +0200
tdf#168928 Draw object not removed from the view after delete
and
commit e6a8c40e50
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Tue Sep 30 14:54:37 2025 +0200
tdf#116975 Laggy behavior when clicking between table cells in impress
No idea why this is going wrong, there must be some implicit thing kicking in that I removed.
Change-Id: I5da81be9d6a8305163a70a4639ff0229acfb2329
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194864
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
- qFormat - specifies if style should be shown in more prominent places
in the UI even if unused
- we show it in that case not only in all styles in sidebar, but also
in the notebookbar style previews
- this is Writer specific, implemented on sw/ style iterator and SwFormat
level
- XStyles is interface common for all modules but in fact we do per module
implementations it seems and there is no sense to propagate that value
everywhere
- currently we have also qFormat export so just reuse grab bag value
Change-Id: Iee8f35a3e575c3c1caf6c67f8b489d7d64932cf5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193398
(cherry picked from commit cee5c21e0c8c64c78e5d04ff4e300edfaac30404)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194550
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
These defaults don't provide any advantages over the base overload,
which works just fine in case when there's no ppItem argument. The
ppItem argument is the only sensible reason to use the templatized
overload.
Change-Id: Ic17fe1da7a3c02f9e7ebbe725060fcf129bc9f24
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194616
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This is now unused after
Change-Id: I243621153fc8211e8a69aa9f048fc4ff620ab01a
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Nov 26 23:36:33 2025 +0100
vcl: Drop now unused CustomWidgetController::IsActive
, so drop the method.
This also addresses this old TODO comment:
// return if this widget has the keyboard focus within the active window
// TODO: review if this has any practical difference from has_focus()
Change-Id: Ie0a82ee6ca631aabce444ad957a3331001e3a368
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194670
Code-Style: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Unused now after
Change-Id: I9958cc2aedab290741864da0155fefd30496895f
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Nov 26 23:34:19 2025 +0100
starmath a11y: Don't report ACTIVE state for SmGraphicAccessible
Change-Id: I243621153fc8211e8a69aa9f048fc4ff620ab01a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194669
Code-Style: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
ComplexColor is a replacement for oox::drawingml::Color, so both
share a lot in common, but oox::drawingml::Color is only used to
resolve the colors inside oox. The idea is to replace step by step
oox::drawingml::Color with ComplexColor. In this step a lot of
ComplexColor types are used instead in oox::drawingml::Color types.
Additionally oox::drawingml::Color is not mandatory anymore for
a lot of contexts, so depending on the need ComplexColor can be
used or oox::drawingml::Color.
Change-Id: I6613a0f63cc9b7d070841d4f667363b03e6cbaa8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194645
Code-Style: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
Form Controls are not being "fully" imported as the MoveWithCell and SizeWithCell properties are not set internally in Calc.
Contrary to their own documentation, Microsoft Excel seems to declare (in the VML file) those properties with no value when they are false, and does not declare them when they are true.
Test xlsx documents generated with Excel 2007, 2010, 2013 and 365 have led me to this conclusion.
Change-Id: I7ba64983ae8036df8d672d6c94b2ca54d740a064
Signed-off-by: Johann LORBER <jlorber@linagora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190166
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
Code-Style: Justin Luth <jluth@mail.com>
this is caused by freeing an object that is currently on the callstack.
I dont have a complete fix here, this will fix it 99% of the time.
regression from
commit e6a8c40e50
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Tue Sep 30 14:54:37 2025 +0200
tdf#116975 Laggy behavior when clicking between table cells in impress
but only because it made it more obvious, this has been a lurking problem.
Change-Id: I4f2f56a54a74f2a51e7ca05421d3db82de47f2ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194502
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Code-Style: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This control is exclusively used in
sw::sidebar::PageSizeControl, so there's no need
to have it as an svx class defined in a global svx
header.
(And I think that using existing
weld::Widgets instead of having that custom
logic would be preferred, too, so this control
also shouldn't be more widely used in the
future. See also discussion in tdf#169637.)
Change-Id: I8b040072a975c227fad2280d9475a3bddfc3b4dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194487
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Code-Style: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
It feels safer in CloneSetWhich; previously, there was no way to make
sure that the passed TypedWhichId makes sense.
Change-Id: I1df520282f5407a69a095d959d107f6b78621f75
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194422
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
As is the case in other weld methods, signals about
another ComboBox entry getting selected are not supposed
to be emitted when the change happens programatically
and not by manual user interaction.
Therefore, don't call weld::ComboBox::m_aChangeHdl
when the active entry was changed programmatically,
by blocking signals in weld::ComboBox::set_active
and weld::ComboBox::set_active_id and not calling
the handler in weld::ComboBox::signal_changed
while signal handling is blocked.
Have the blocking logic in the new base class
implementations and introduce new
weld::ComboBox::do_set_active and
weld::ComboBox::do_set_active_id as new
virtual methods to override in the subclasses,
which get called from the base class implementation.
This aligns the QtInstanceComboBox behavior with
the gtk and vcl ones (see how the GtkInstanceComboBox
implementations of the method were already explicitly
blocking the signal before this commit).
Similar earlier commit:
commit 34dfea68f7
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Nov 17 09:49:14 2025 +0100
tdf#130857 weld: Block signals in SpinButton::set_value
Without this commit in place, an assert with the below
backtrace was triggered in a WIP branch for supporting
the dialog that can be triggered as follows when
starting LO with the qt6 VCL plugin and environment
variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
* "Insert" -> "Table of Contents and Index" -> "Citation"
* press "Edit" button
Backtrace:
Thread 1 received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(rr) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007f4549c9e9ff in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
#2 0x00007f4549c49cc2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f4549c324ac in __GI_abort () at ./stdlib/abort.c:73
#4 0x00007f4549c32420 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=1935, function=<optimized out>) at ./assert/assert.c:118
#5 0x00007f45068bbd33 in (anonymous namespace)::SwCreateAuthEntryDlg_Impl::TargetTypeHdl (this=0x7fff91eb7988, rBox=...) at /home/michi/development/git/libreoffice/sw/source/ui/index/swuiidxmrk.cxx:1935
#6 0x00007f45068bb1fd in (anonymous namespace)::SwCreateAuthEntryDlg_Impl::LinkStubTargetTypeHdl (instance=0x7fff91eb7988, data=...) at /home/michi/development/git/libreoffice/sw/source/ui/index/swuiidxmrk.cxx:1933
#7 0x00007f4537c89a81 in Link<weld::ComboBox&, void>::Call (this=0x55b1cabf6820, data=...) at include/tools/link.hxx:105
#8 0x00007f4537c8968c in weld::ComboBox::signal_changed (this=0x55b1cabf67d8) at include/vcl/weld.hxx:821
#9 0x00007f4537c7faed in QtInstanceComboBox::signalChanged (this=0x55b1cabf6650) at vcl/qt6/../qt5/QtInstanceComboBox.cxx:381
#10 0x00007f4537c89ea1 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)::{lambda()#1}::operator()() const (this=0x7fff91eb6830) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
#11 0x00007f4537c89dd9 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)::{lambda()#1}&&) (args=0x7fff91eb6c10, fn=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
#12 0x00007f4537c89d0b in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)
(f=(void (QtInstanceComboBox::*)(class QtInstanceComboBox * const)) 0x7f4537c7fab0 <QtInstanceComboBox::signalChanged()>, o=0x55b1cabf6650, arg=0x7fff91eb6c10)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
#13 0x00007f4537c89c8d in QtPrivate::FunctionPointer<void (QtInstanceComboBox::*)()>::call<QtPrivate::List<>, void>(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)
(f=(void (QtInstanceComboBox::*)(class QtInstanceComboBox * const)) 0x7f4537c7fab0 <QtInstanceComboBox::signalChanged()>, o=0x55b1cabf6650, arg=0x7fff91eb6c10)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
#14 0x00007f4537c89bb6 in QtPrivate::QCallableObject<void (QtInstanceComboBox::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
(which=1, this_=0x55b1cc892eb0, r=0x55b1cabf6650, a=0x7fff91eb6c10, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:545
#15 0x00007f4536ae93a2 in QtPrivate::QSlotObjectBase::call (this=0x55b1cc892eb0, r=0x55b1cabf6650, a=0x7fff91eb6c10) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#16 0x00007f4536d15132 in doActivate<false> (sender=0x55b1cc886740, signal_index=13, argv=0x7fff91eb6c10) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4356
#17 0x00007f4536d0b7f3 in QMetaObject::activate (sender=0x55b1cc886740, m=0x7f4535779438 <QComboBox::staticMetaObject>, local_signal_index=6, argv=0x7fff91eb6c10)
at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4416
#18 0x00007f4534c845fb in QMetaObject::activate<void, QString> (sender=0x55b1cc886740, mo=0x7f4535779438 <QComboBox::staticMetaObject>, local_signal_index=6, ret=0x0, args=...) at qtbase/src/corelib/kernel/qobjectdefs.h:319
#19 0x00007f4534e3ed11 in QComboBox::currentTextChanged (this=0x55b1cc886740, _t1=...) at qtbase/src/widgets/Widgets_autogen/include/moc_qcombobox.cpp:374
#20 0x00007f4534e3c17d in QComboBoxPrivate::updateCurrentText (this=0x55b1cc886910, text=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:3204
#21 0x00007f4534e3c45e in QComboBoxPrivate::emitCurrentIndexChanged (this=0x55b1cc886910, index=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:1689
#22 0x00007f4534e3750b in QComboBoxPrivate::setCurrentIndex (this=0x55b1cc886910, mi=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:2474
#23 0x00007f4534e3693a in QComboBox::setCurrentIndex (this=0x55b1cc886740, index=3) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:2421
#24 0x00007f4537c85482 in QtInstanceComboBox::set_active(int)::$_0::operator()() const (this=0x7fff91eb7038) at vcl/qt6/../qt5/QtInstanceComboBox.cxx:124
#25 0x00007f4537c85455 in std::__invoke_impl<void, QtInstanceComboBox::set_active(int)::$_0&>(std::__invoke_other, QtInstanceComboBox::set_active(int)::$_0&) (__f=...)
at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
#26 0x00007f4537c85405 in std::__invoke_r<void, QtInstanceComboBox::set_active(int)::$_0&>(QtInstanceComboBox::set_active(int)::$_0&) (__fn=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
#27 0x00007f4537c8531d in std::_Function_handler<void(), QtInstanceComboBox::set_active(int)::$_0>::_M_invoke (__functor=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
#28 0x00007f4537c2ff6e in std::function<void()>::operator() (this=0x7fff91eb7038) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
#29 0x00007f4537c270af in QtInstance::RunInMainThread (this=0x55b1c4b3eb40, func=...) at vcl/qt6/../qt5/QtInstance.cxx:206
#30 0x00007f4537c80db9 in QtInstanceComboBox::set_active (this=0x55b1cabf6650, nPos=3) at vcl/qt6/../qt5/QtInstanceComboBox.cxx:124
#31 0x00007f45068bb588 in (anonymous namespace)::SwCreateAuthEntryDlg_Impl::SetFields (this=0x7fff91eb7988, pFields=0x55b1cbfdd378, bNewEntry=true) at /home/michi/development/git/libreoffice/sw/source/ui/index/swuiidxmrk.cxx:1831
#32 0x00007f45068b93c5 in (anonymous namespace)::SwCreateAuthEntryDlg_Impl::SwCreateAuthEntryDlg_Impl (this=0x7fff91eb7988, pParent=0x55b1cc41bfb8, pFields=0x55b1cbfdd378, rSh=..., bNewEntry=true, bCreate=false)
at /home/michi/development/git/libreoffice/sw/source/ui/index/swuiidxmrk.cxx:1796
#33 0x00007f45068b6c66 in SwAuthorMarkPane::CreateEntryHdl (this=0x55b1cbfdd250, rButton=...) at /home/michi/development/git/libreoffice/sw/source/ui/index/swuiidxmrk.cxx:1426
#34 0x00007f45068b546d in SwAuthorMarkPane::LinkStubCreateEntryHdl (instance=0x55b1cbfdd250, data=...) at /home/michi/development/git/libreoffice/sw/source/ui/index/swuiidxmrk.cxx:1420
#35 0x00007f4540881dd1 in Link<weld::Button&, void>::Call (this=0x55b1cc1c8988, data=...) at include/tools/link.hxx:105
#36 0x00007f454085ca1c in weld::Button::signal_clicked (this=0x55b1cc1c8980) at include/vcl/weld.hxx:1825
#37 0x00007f454082ed18 in SalInstanceButton::ClickHdl (this=0x55b1cc1c87e0, pButton=0x55b1cbc63240) at /home/michi/development/git/libreoffice/vcl/source/app/salvtables.cxx:2931
[...]
Change-Id: I0136940e9d68cea9b64e58f3e172dfde170aff0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194373
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The existing methods of XUITest to execute a command always use the
active frame to dispatch the command. All of the dbaccess UI tests end
up creating subcomponents (such as the table edit view) and need to send
commands to that. The frames for those are not the “active” frame but
only the “current” frame. All of the tests have ended up making a copy
of a helper function to dispatch to a particular provider. To avoid that
duplication this patch moves it to a common helper directly in XUITest.
This will also make it possible to use the method from test.py in a
later patch.
Note that the order of the arguments has been swapped around to match
that of comphelper::dispatchCommand.
Change-Id: I274fe12e4dfec0bf78359d0e2b70a3cf4db5528c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194348
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
The maximum size of the GDI metafile is 4GB, so
sal_uInt32 is sufficient for metafile size related
variables. The number of possible colors is 0xFFFFFF
so sal_uInt32 is sufficient to store the number of
colors. The R, G, B fields have a maximum of 255 so
sal_uInt8 is sufficient for storing them.
Change-Id: I0f0108df6eeb087ce1e799905c4f9ee03b409ab9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193608
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Judging by the comment that was in waitUntilIdleDispatched, I think the
intention of this helper class is to wait until the main loop is idle
and that any event processing has actually completed. However, if this
is called outside of the main thread then that doesn’t work if the event
processing temporarily releases the solar mutex. In that case, the
thread that is waiting for the IdleTask flag would wake up and set the
flag itself even though the main thread hasn’t actually finished
executing its event handling code yet.
To fix that this patch makes it instead wait with a
std::condition_variable instead of Yield when not running on the main
thread so that we can be sure that the main thread will invoke the idle
task instead of the waiting thread.
Change-Id: Ib5c6efe31dfb5e1a5039b43702e23bf0104cd403
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194180
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
LOK_HOST_ALLOWLIST allows to pass a restricted list of hosts that
curlsession will be allowed to download from.
LOK_HOST_ALLOWLIST_EXEMPT_VERIFY_HOST reuses this list for the use case
of not verifying SSL host additionaly for them. This is useful for say
developpement environement.
Change-Id: I75ac26a4bfe1c33ff183c4ad12391b2da08593cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193961
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 8688e9d8c94a21a7a0abc9edfe632e6fa0e94281)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194187
Tested-by: Jenkins
Reviewed-by: Méven Car <meven.car@collabora.com>