summaryrefslogtreecommitdiff
path: root/svtools
AgeCommit message (Collapse)Author
2023-10-06use more ErrCodeMsgNoel Grandin
instead of a sideband mechanism to convey extra error message around Change-Id: Ibd1fc8629c5b10bc6f9e6cbd30e8a20156ac13b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157630 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-03tdf#156756 Icon sizes for the toolbar wrong (part2)Noel Grandin
my previous fix commit 715a6ea8cb3aa6c80edbb22909aac3f18b7daec6 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Mon Oct 2 11:31:09 2023 +0200 tdf#156756 Icon sizes for the toolbar wrong had a bug which broke changing themes Change-Id: Icf19fee5034ec2795354641c62979b6284e1a5d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157506 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-03replace ErrorInfo with simpler mechanismNoel Grandin
Instead of returning ErrCode class everywhere, return a new class ErrrCodeMsg, which combines an ErrCode with the other parameters that are used to control the error reporting. I do not change everything that uses ErrCode here, I started from SfxBaseController/SfxMedium and worked outwards. This change serves two purposes (1) Replace the extremely whacky ErrorInfo mechanism we were using to smuggle information into the error handler reporting mechanism with a very straightforward approach of just combining it into the error class. (2) Allow us to capture the source location that produced the error, which makes debugging the source of a problem soooo much easier. Change-Id: I978b8f00c9851b41a216c7ebdef2ef94251d5519 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157440 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-02tdf#156756 Icon sizes for the toolbar wrongNoel Grandin
So my change in commit 0558926c2f9201a12b4c46efc36b8a4080af4d46 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Tue Jun 6 10:42:10 2023 +0200 use more officecfg for SvtMiscOptions Made an existing bug much worse. The underlying bug started in commit fd92b09db497a7dfd594a5418f87856dc3886bf9 Author: Caolán McNamara <caolanm@redhat.com> Date: Tue Feb 14 13:12:38 2023 +0000 tdf#153541 notify listeners when any of the icon sizes change which resulted in changes to icon sizes not being saved to the registry, because the registry layer would throw an exception when called from SvtMiscOptions_Impl::ImplCommit, because it does not like being passed null values for SidebarIconSize and NotebookbarIconSize properties. So I have done two things (1) finish removing handling of SymbolSet from the SvtMiscOptions_Impl code, and just use the officecfg:: layer. (2) Change the ImplCommit code to only pass down properties for which it actually has valid values. Change-Id: Ib7c09cac373060f5437b81c63e9b12411fdc1c68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157483 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-29Use less libxml2 external headers dependencyGabor Kelemen
Change-Id: I1749628e0104dff856161bc0bdfd343ef0db208e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156784 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-09-28Improve OleRun error reportingMike Kaganski
1. Pass its error message up the call stack as the exception's message. 2. In case of REGDB_E_CLASSNOTREG, also obtain the object's class name and append it to the message. 3. Show this information in the message displayed for OLE activation error. This introduces a new SetExtendedMessage method in SfxErrorContext to store extra information for specific errors. Change-Id: Id3863276266d992ae407fbfa5568acf5c57aa96f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157372 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-09-13loplugin:unusedmethodsNoel Grandin
Change-Id: I00f228451574ca9f9e352d233c7f326c88e90a95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156892 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-11SvtRulerAccessible does not need to implement XAggreggationNoel Grandin
Checked on jenkins using 'make check' and +void SAL_CALL setDelegator(css::uno::Reference<css::uno::XInterface> const &) final { assert(false); } Change-Id: I49e2c013c82687b71d0b442662ca9de229d0dddb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156795 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-11lok: don't prerender font previewsSzymon Kłos
Change-Id: Id83a6804f658d56793913b8e8e07f7ec1f2ff82a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156116 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156812 Tested-by: Jenkins
2023-09-10using decls should come after #includeNoel Grandin
Change-Id: I058551e87bca42adede860f6f299b0f7ae2af3b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156798 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-10SvUnoImageMapObject does not need to implement XAggreggationNoel Grandin
Checked on jenkins using 'make check' and +void SAL_CALL setDelegator(css::uno::Reference<css::uno::XInterface> const &) final { assert(false); } Change-Id: I79cf929cc64ea7af7351674e02fb0bc83538c869 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156792 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-10GraphicRendererVCL does not need to implement XAggreggationNoel Grandin
Checked on jenkins using 'make check' and +void SAL_CALL setDelegator(css::uno::Reference<css::uno::XInterface> const &) final { assert(false); } Change-Id: Ie2ee4b774167dd5f26ac88b97b0a5013ff379ac3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156793 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-10tdf#157160 a11y: Don't assert ValueSetAcc parent on add/removeMichael Weghorn
After commit 2f5e7a07775690e57d639eeca7a1e41733fa93a9 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Sep 7 08:09:31 2023 +0200 tdf#157092 a11y Let only drawing area dispose its ValueSet acc had fixed a crash when using the search feature with the Qt-based VCL plugins, the previous `DBG_ASSERT` that got promoted to a real assert with the above commit got triggered now that a11y CHILD events for removed children are handled since commit be8b031d8b3c66b223ea2478f1129427f3a362bd Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Sep 7 09:51:38 2023 +0200 qt a11y: Forward CHILD event for removed child , s. the backtrace in tdf#157160. Since the ValueSet isn't needed for this, and at least removing a listener after the ValueSet has been dropped even seems logical if it's a valid use case to delete the ValueSet before e.g. hiding the window (s.a. comment in above-mentioned 2f5e7a07775690e57d639eeca7a1e41733fa93a9), don't check for it, but only that the object hasn't been disposed yet (as was effectively the case before 2f5e7a07775690e57d639eeca7a1e41733fa93a9, when only a SAL_WARN would have been triggered). Change-Id: I5be0a44decbe4508f4a419ec3dca9f8aaf85e951 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156782 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-09-07tdf#157092 a11y Let only drawing area dispose its ValueSet accMichael Weghorn
Don't dispose the a11y object in the `ValueSet` dtor, because it doesn't own its a11y object, but it is owned by the `weld::DrawingArea` of the `CustomWeld` that the `ValueSet` (as a sub-class of `CustomWidgetController`) belongs to. The `CustomWeld` ctor passes the a11y ref retrieved by `CustomWidgetController::createAccessible` to `weld_drawing_area`, which takes ownership and disposes the object. (For Gtk, see `GtkInstanceDrawingArea::~GtkInstanceDrawingArea`. For non-Gtk, see how the `SalInstanceDrawingArea` ctor passes the reference to `VclInstanceDrawingArea::SetAccessible`/ `vcl::Window::SetAccessible`, so it gets disposed when that `VclInstanceDrawingArea` gets disposed, s. `vcl::Window::dispose`.) Other classes derived from `CustomWidgetController` also don't dispose the a11y object themselves. Still reset the `ValueSet` pointer in `ValueSetAcc` to nullptr when the `ValueSet` gets destroyed and turn the check for a valid pointer from just an `OSL_ASSERT` to a real assert and throwing a `RuntimeException`. But still allow getting the a11y context when only the ValueSet has been deleted but the object has not been disposed yet. Fixes a crash due to a `com::sun::star::lang::DisposedException` being thrown when using the new search feature in the "Tools" -> "Options" dialog (or when just switching to the "LibreOfficeDev Writer/Web" -> "Background" page with the qt6 VCL plugin or on Windows when the NVDA screen reader is running. This happens when the drawing area is hidden and the a11y layer is meant to be notified about this (so the a11y object can be removed). It still seems a bit odd that the `ValueSet` gets destroyed (in `SvxColorTabPage::~SvxColorTabPage`, frame 20 in below backtrace) before the corresponding `vcl::Window` gets hidden (in the base class dtor, `SfxTabPage::~SfxTabPage`, s. frame 19 in the backtrace). Backtrace for how the exception gets thrown: 1 com::sun::star::lang::DisposedException::DisposedException DisposedException.hpp 40 0x7fa385fd9ca9 2 ValueSetAcc::ThrowIfDisposed valueacc.cxx 956 0x7fa385fd9342 3 ValueSetAcc::getAccessibleContext valueacc.cxx 473 0x7fa385fd69fa 4 VCLXAccessibleComponent::ProcessWindowChildEvent vclxaccessiblecomponent.cxx 186 0x7fa3853dc905 5 VCLXAccessibleComponent::WindowChildEventListener vclxaccessiblecomponent.cxx 124 0x7fa3853dc51d 6 VCLXAccessibleComponent::LinkStubWindowChildEventListener vclxaccessiblecomponent.cxx 114 0x7fa3853dc43f 7 Link<VclWindowEvent&, void>::Call link.hxx 111 0x7fa382c56ccf 8 vcl::Window::CallEventListeners event.cxx 296 0x7fa382c53e5b 9 vcl::Window::ImplResetReallyVisible stacking.cxx 719 0x7fa382b51a49 10 vcl::Window::ImplResetReallyVisible stacking.cxx 735 0x7fa382b51b0e 11 vcl::Window::ImplResetReallyVisible stacking.cxx 735 0x7fa382b51b0e 12 vcl::Window::ImplResetReallyVisible stacking.cxx 735 0x7fa382b51b0e 13 vcl::Window::ImplResetReallyVisible stacking.cxx 735 0x7fa382b51b0e 14 vcl::Window::ImplResetReallyVisible stacking.cxx 735 0x7fa382b51b0e 15 vcl::Window::ImplResetReallyVisible stacking.cxx 735 0x7fa382b51b0e 16 vcl::Window::Show window.cxx 2234 0x7fa382d94f7c 17 vcl::Window::Hide window.hxx 880 0x7fa382b23600 18 SalInstanceContainer::move salvtables.cxx 1352 0x7fa3834789f3 19 SfxTabPage::~SfxTabPage tabdlg.cxx 157 0x7fa38928ab47 20 SvxColorTabPage::~SvxColorTabPage tpcolor.cxx 166 0x7fa350950d3e 21 SvxColorTabPage::~SvxColorTabPage tpcolor.cxx 166 0x7fa350950d5a 22 std::default_delete<SfxTabPage>::operator() unique_ptr.h 99 0x7fa350538fdc 23 std::__uniq_ptr_impl<SfxTabPage, std::default_delete<SfxTabPage>>::reset unique_ptr.h 211 0x7fa35080dcbe 24 std::unique_ptr<SfxTabPage, std::default_delete<SfxTabPage>>::reset unique_ptr.h 509 0x7fa350808555 25 SvxAreaTabPage::SetOptimalSize tparea.cxx 155 0x7fa35093db3e 26 SvxBkgTabPage::Create backgrnd.cxx 230 0x7fa350864dbc 27 SwModule::CreateTabPage appopt.cxx 509 0x7fa339e10973 28 OfaTreeOptionsDialog::SelectHdl_Impl treeopt.cxx 1335 0x7fa3507f947a 29 OfaTreeOptionsDialog::ShowPageHdl_Impl treeopt.cxx 625 0x7fa3507f4782 30 OfaTreeOptionsDialog::LinkStubShowPageHdl_Impl treeopt.cxx 623 0x7fa3507f4763 31 Link<weld::TreeView&, void>::Call link.hxx 111 0x7fa3834b18f1 32 weld::TreeView::signal_changed weld.hxx 953 0x7fa3834aa10d 33 SalInstanceTreeView::SelectHdl salvtables.cxx 5276 0x7fa38349363e 34 SalInstanceTreeView::LinkStubSelectHdl salvtables.cxx 5272 0x7fa3834935fb 35 Link<SvTreeListBox *, void>::Call link.hxx 111 0x7fa382b8a339 36 SvTreeListBox::SelectHdl treelistbox.cxx 452 0x7fa38307f5c2 37 SvTreeListBox::Select treelistbox.cxx 2111 0x7fa383085b4a 38 SvImpLBox::SetCursor svimpbox.cxx 614 0x7fa3830a66c3 39 ImpLBSelEng::SetCursorAtPoint svimpbox.cxx 2575 0x7fa3830aeaa8 40 SelectionEngine::SelMouseButtonDown seleng.cxx 172 0x7fa382d09354 41 SvImpLBox::MouseButtonDown svimpbox.cxx 2004 0x7fa3830ac9f8 42 SvTreeListBox::MouseButtonDown treelistbox.cxx 2260 0x7fa383086422 43 ImplHandleMouseEvent winproc.cxx 707 0x7fa382daed00 44 ImplHandleSalMouseButtonDown winproc.cxx 2340 0x7fa382db5c5d 45 ImplWindowFrameProc winproc.cxx 2685 0x7fa382db6f7e 46 SalFrame::CallCallback salframe.hxx 310 0x7fa378ca4edc 47 QtFrame::CallCallback QtFrame.hxx 230 0x7fa378ca6418 48 QtWidget::handleMouseButtonEvent QtWidget.cxx 181 0x7fa378cf959b 49 QtWidget::mousePressEvent QtWidget.cxx 186 0x7fa378cf95f3 50 QWidget::event qwidget.cpp 8978 0x7fa376a2f327 51 QtWidget::event QtWidget.cxx 730 0x7fa378cfb2f6 52 QApplicationPrivate::notify_helper qapplication.cpp 3287 0x7fa3769a666a 53 QApplication::notify qapplication.cpp 2774 0x7fa3769a4539 54 QCoreApplication::notifyInternal2 qcoreapplication.cpp 1125 0x7fa3783a5ed0 55 QCoreApplication::sendSpontaneousEvent qcoreapplication.cpp 1573 0x7fa3783a6a1d 56 QApplicationPrivate::sendMouseEvent qapplication.cpp 2358 0x7fa3769a31a2 57 QWidgetWindow::handleMouseEvent qwidgetwindow.cpp 627 0x7fa376a5f7cb 58 QWidgetWindow::event qwidgetwindow.cpp 241 0x7fa376a5dcfd 59 QApplicationPrivate::notify_helper qapplication.cpp 3287 0x7fa3769a666a 60 QApplication::notify qapplication.cpp 3238 0x7fa3769a647a 61 QCoreApplication::notifyInternal2 qcoreapplication.cpp 1125 0x7fa3783a5ed0 62 QCoreApplication::sendSpontaneousEvent qcoreapplication.cpp 1573 0x7fa3783a6a1d 63 QGuiApplicationPrivate::processMouseEvent qguiapplication.cpp 2315 0x7fa3775f21cd 64 QGuiApplicationPrivate::processWindowSystemEvent qguiapplication.cpp 2061 0x7fa3775f15cf 65 QWindowSystemInterface::sendWindowSystemEvents qwindowsysteminterface.cpp 1109 0x7fa37769ce23 66 xcbSourceDispatch qxcbeventdispatcher.cpp 57 0x7fa376064df7 67 ?? 0x7fa37df2b5b4 68 ?? 0x7fa37df2e607 69 g_main_context_iteration 0x7fa37df2ebfc 70 QEventDispatcherGlib::processEvents qeventdispatcher_glib.cpp 395 0x7fa3787b6b33 71 QXcbGlibEventDispatcher::processEvents qxcbeventdispatcher.cpp 96 0x7fa37606502c 72 QtInstance::ImplYield QtInstance.cxx 421 0x7fa378cc7502 73 QtInstance::DoYield QtInstance.cxx 432 0x7fa378cc762b 74 ImplYield svapp.cxx 372 0x7fa3835220ea 75 Application::Yield svapp.cxx 456 0x7fa383522e88 76 Dialog::Execute dialog.cxx 1078 0x7fa382c063e1 77 SalInstanceDialog::run salvtables.cxx 1877 0x7fa38347c313 78 weld::DialogController::run weld.hxx 2659 0x7fa3504a26e6 79 OfaTreeOptionsDialog::run treeopt.cxx 2587 0x7fa3508035fd 80 CuiAbstractController_Impl::Execute dlgfact.cxx 144 0x7fa35069d829 81 SfxApplication::OfaExec_Impl appserv.cxx 1463 0x7fa388faf85e 82 SfxStubSfxApplicationOfaExec_Impl sfxslots.hxx 1309 0x7fa388f88faf 83 SfxDispatcher::Call_Impl dispatch.cxx 254 0x7fa3890bfb4a 84 SfxDispatcher::Execute_ dispatch.cxx 753 0x7fa3890c31f4 85 SfxBindings::Execute_Impl bindings.cxx 1061 0x7fa3890aefa0 86 SfxDispatchController_Impl::dispatch unoctitm.cxx 688 0x7fa389185ba6 87 SfxOfficeDispatch::dispatch unoctitm.cxx 250 0x7fa389183867 88 framework::MenuBarManager::Select menubarmanager.cxx 827 0x7fa38a7e2dff 89 framework::MenuBarManager::LinkStubSelect menubarmanager.cxx 791 0x7fa38a7e2ab7 90 Link<Menu *, bool>::Call link.hxx 111 0x7fa382cb0337 91 Menu::Select menu.cxx 358 0x7fa382ca1c90 92 Menu::ImplCallSelect menu.cxx 2135 0x7fa382caa907 93 Menu::LinkStubImplCallSelect menu.cxx 2132 0x7fa382caa8d9 94 Link<void *, void>::Call link.hxx 111 0x7fa382db870d 95 ImplHandleUserEvent winproc.cxx 2287 0x7fa382db57ca 96 ImplWindowFrameProc winproc.cxx 2851 0x7fa382db76f7 97 SalFrame::CallCallback salframe.hxx 310 0x7fa378ca4edc 98 QtInstance::ProcessEvent QtInstance.cxx 484 0x7fa378cc799b 99 operator() salusereventlist.cxx 119 0x7fa383465b7b 100 SalUserEventList::DispatchUserEvents salusereventlist.cxx 120 0x7fa383465e4f 101 QtInstance::ImplYield QtInstance.cxx 410 0x7fa378cc7480 102 QtInstance::DoYield QtInstance.cxx 432 0x7fa378cc762b 103 ImplYield svapp.cxx 372 0x7fa3835220ea 104 Application::Yield svapp.cxx 456 0x7fa383522e88 105 Application::Execute svapp.cxx 350 0x7fa383521ddd 106 desktop::Desktop::Main app.cxx 1601 0x7fa38ca36276 107 ImplSVMain svmain.cxx 204 0x7fa383541e84 108 SVMain svmain.cxx 236 0x7fa383541fb9 109 soffice_main sofficemain.cxx 94 0x7fa38caa1b5d 110 sal_main main.c 51 0x5568fd6859d4 111 main main.c 49 0x5568fd6859ba Change-Id: I247648a7a707f02bf1fdd339d3c329694636d835 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156645 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-09-03tdf#156958: fix crash when clicking out after having selected rename layerJulien Nabet
When renaming and clicking on canvas, LO goes into GetParent()->EndEditMode first time then it calls TabBarEdit::dispose method which resets m_xEntry BUT, on the same thread, LO comes here again so return if already disposed to avoid a crash See bt here: https://bugs.documentfoundation.org/attachment.cgi?id=189316 Change-Id: Id227e8aa32ab52643ab17f714c9e3325ced94907 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156482 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2023-08-31jsdialog: render font previews with hidpiSzymon Kłos
we pass dpi scale, let's use it to determine combobox entry size Change-Id: I4088eca565b301c5693e52b1c05af1a335fc34fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156115 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156251 Tested-by: Jenkins
2023-08-30use concrete type for ValueSet::mxAccessibleNoel Grandin
avoid some unnecessary casting Change-Id: I2569aafb10431bcf1445efefd277b1aeecf7b404 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156286 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-30make IAccessibleBrowseBox extend cppu::WeakImplHelperNoel Grandin
i.e. push this up from the implementation class AccessibleBrowseBoxAccess to the interface class. Which means we don't need the getMyself helper method, and make the memory management simpler. Change-Id: Icecb83834bb3f5304908bbd3682b3d2ea06dbfe0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156285 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-29jsdialog: make font previews background transparentSzymon Kłos
Change-Id: I9dc75ab91f591191be7a354274a0783b0fd093b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156029 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156244 Tested-by: Jenkins
2023-08-25Revert "use more Reference::query instead of UNO_QUERY_THROW"Noel Grandin
This reverts commit 7fc6063914432d58d86cfcbd728d967e7c86ebfd. sberg noticed that there is a difference now: there's a subtle difference now, in that if y was null originally, it would have thrown a (caught) exception, whereas now it will crash in the y.query<X>() call. Change-Id: Idbb5a08d635d15b5ca63f4822eddf05fb0a5afa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156002 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-24tdf#156847 Transparency in drop-down lists Line and Width on SidebarNoel Grandin
regression from commit 1527fa8435ef415678b2e4a6972f5e378ee5cab1 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Tue Jun 6 11:20:17 2023 +0200 convert SvtAccessibilityOptions to officecfg where possible where the method call returns a std::optional<bool> which is translated to a bool, resulting a true value from an optional<false> Change-Id: I2182cae5172798f38194ee86dbb32ef65e3e24be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155974 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-19loplugin: new global analysis locking2Noel Grandin
look for methods where we don't need to guard access to the field, because the field is never modified Change-Id: I62c33cc3f52881557515765d3733c4afc78547aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155836 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18use more Reference::query instead of UNO_QUERY_THROWNoel Grandin
since querying with exceptions is consideably more expensive Change-Id: I968a9a40766b2abb0d3058549b0ed44011fd5716 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155791 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18tdf#156561 svtools, a11y: Return created popup win for focus handlingMichael Weghorn
Actually return the popup window created in `PopupWindowController::createPopupWindow` instead of just an empty reference. With this in place, the popup window is initially announced by NVDA on Windows for the "Borders" toolbar item when expanded even after reverting commit dc0706cabfe39ddb6ea23d60ccfb756f2b9e6efb Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Mar 15 17:00:27 2023 +0100 tdf#140762 tdf#152671 Make dock win visible before showing popup , because the focus event is now sent when focus is set via `XWindow::setFocus` in `framework::ToolBarManager::OnDropdownClick` (s. frame 41 below), while the above commit previously ensured that the window was already visible earlier and thus the corresponding event would be sent earlier already. Related backtrace for the winaccessibility case: 1 AccObjectWinManager::NotifyAccEvent AccObjectWinManager.cxx 185 0x7fffaac46118 2 AccComponentEventListener::FireStateFocusedChange AccComponentEventListener.cxx 308 0x7fffaac4fddb 3 AccComponentEventListener::SetComponentState AccComponentEventListener.cxx 171 0x7fffaac50c14 4 AccEventListener::HandleStateChangedEvent AccEventListener.cxx 166 0x7fffaac4ea44 5 AccEventListener::notifyEvent AccEventListener.cxx 72 0x7fffaac4faaa 6 AccComponentEventListener::notifyEvent AccComponentEventListener.cxx 82 0x7fffaac5123c 7 AccDescendantManagerEventListener::notifyEvent AccDescendantManagerEventListener.cxx 70 0x7fffaac56686 8 AccListEventListener::notifyEvent AccListEventListener.cxx 66 0x7fffaac56ca2 9 ValueSetAcc::FireAccessibleEvent valueacc.cxx 430 0x7fffbad4578d 10 ValueSetAcc::GetFocus valueacc.cxx 452 0x7fffbad458ed 11 ValueSet::GetFocus valueset.cxx 271 0x7fffbad4f6b8 12 weld::CustomWeld::DoGetFocus customweld.cxx 72 0x7fffaf12b2ed 13 weld::CustomWeld::LinkStubDoGetFocus customweld.cxx 72 0x7fffaf12b726 14 Link<weld::Widget &,void>::Call link.hxx 111 0x7fffaf16be63 15 SalInstanceWidget::HandleEventListener salvtables.cxx 736 0x7fffaf16f436 16 SalInstanceDrawingArea::HandleEventListener salvtables.cxx 6167 0x7fffaf16f3c7 17 SalInstanceWidget::EventListener salvtables.cxx 824 0x7fffaf16e805 18 SalInstanceWidget::LinkStubEventListener salvtables.cxx 821 0x7fffaf170b86 19 Link<VclWindowEvent &,void>::Call link.hxx 111 0x7fffaea625c3 20 vcl::Window::CallEventListeners event.cxx 263 0x7fffaea62970 21 vcl::Window::PreNotify event.cxx 71 0x7fffaea649a3 22 vcl::Window::CompatPreNotify window.cxx 3921 0x7fffaeb730e8 23 ImplCallPreNotify winproc.cxx 70 0x7fffaeb8eb00 24 vcl::Window::ImplGrabFocus mouse.cxx 383 0x7fffaeacff8c 25 vcl::Window::ImplControlFocus dlgctrl.cxx 560 0x7fffaea391b6 26 vcl::Window::EventNotify event.cxx 210 0x7fffaea633a5 27 DockingWindow::EventNotify dockwin.cxx 528 0x7fffaea58d21 28 vcl::Window::CompatNotify window.cxx 3929 0x7fffaeb73058 29 vcl::Window::GetFocus window.cxx 1852 0x7fffaeb75e94 30 InterimToolbarPopup::GetFocus toolbarmenu.cxx 187 0x7fffbad41eed 31 vcl::Window::CompatGetFocus window.cxx 3889 0x7fffaeb72f3d 32 vcl::Window::ImplGrabFocus mouse.cxx 385 0x7fffaeacffde 33 vcl::Window::GrabFocus window.cxx 2980 0x7fffaeb770ee 34 vcl::Window::ImplGrabFocus mouse.cxx 223 0x7fffaeacf4bb 35 vcl::Window::GrabFocus window.cxx 2980 0x7fffaeb770ee 36 FloatingWindow::StartPopupMode floatwin.cxx 845 0x7fffaea6dd90 37 FloatingWindow::StartPopupMode floatwin.cxx 880 0x7fffaea6e076 38 ImplDockingWindowWrapper::StartPopupMode dockmgr.cxx 840 0x7fffaea543ae 39 DockingManager::StartPopupMode dockmgr.cxx 349 0x7fffaea54131 40 svt::PopupWindowController::createPopupWindow popupwindowcontroller.cxx 240 0x7fffbae3648a 41 framework::ToolBarManager::OnDropdownClick toolbarmanager.cxx 1772 0x7fffbc461a0c 42 framework::ToolBarManager::DropdownClick toolbarmanager.cxx 1752 0x7fffbc45c4d3 43 framework::ToolBarManager::LinkStubDropdownClick toolbarmanager.cxx 1749 0x7fffbc460026 44 Link<ToolBox *,void>::Call link.hxx 111 0x7fffaeb33e23 45 ToolBox::ImplOpenItem toolbox.cxx 4270 0x7fffaeb5277c 46 ToolBox::KeyInput toolbox.cxx 4415 0x7fffaeb5357b 47 ImplHandleKey winproc.cxx 1212 0x7fffaeb90b5e 48 ImplWindowFrameProc winproc.cxx 2724 0x7fffaeb9793e 49 SalFrame::CallCallback salframe.hxx 310 0x7fffae93a3f6 50 ImplHandleKeyMsg salframe.cxx 3752 0x7fffab04568b 51 SalFrameWndProc salframe.cxx 5723 0x7fffab04c689 52 SalFrameWndProcW salframe.cxx 6043 0x7fffab04d360 53 CallWindowProcW USER32 0x7ff8126be858 54 DispatchMessageW USER32 0x7ff8126be299 55 ImplSalDispatchMessage salinst.cxx 474 0x7fffaafa01d8 56 ImplSalYield salinst.cxx 551 0x7fffaafa08fd 57 WinSalInstance::DoYield salinst.cxx 580 0x7fffaaf9fe01 58 ImplYield svapp.cxx 352 0x7fffaf1d513d 59 Application::Yield svapp.cxx 437 0x7fffaf1d9092 60 Application::Execute svapp.cxx 330 0x7fffaf1d247a 61 desktop::Desktop::Main app.cxx 1601 0x7fffbd5c96b2 62 ImplSVMain svmain.cxx 204 0x7fffaf1ea8bc 63 SVMain svmain.cxx 237 0x7fffaf1eb122 64 soffice_main sofficemain.cxx 94 0x7fffbd618222 65 sal_main main.c 51 0x7ff6751e1013 66 main main.c 49 0x7ff6751e105a 67 invoke_main exe_common.inl 79 0x7ff6751e1459 68 __scrt_common_main_seh exe_common.inl 288 0x7ff6751e137e 69 __scrt_common_main exe_common.inl 331 0x7ff6751e123e 70 mainCRTStartup exe_main.cpp 17 0x7ff6751e14ce 71 BaseThreadInitThunk KERNEL32 0x7ff810cd7614 72 RtlUserThreadStart ntdll 0x7ff8128e26b1 With this and all the previous tdf#156561-related commits, the above mentioned commit is no longer necessary for NVDA to announce the auto filter popup in Calc (tdf#152671) and many toolbar popups like the "Boders" toolbar item in Calc (tdf#140762) and will therefore be reverted in a follow-up commit. Change-Id: Ifbe27de01739103d1da04951475db32aa50d429d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155802 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-07ofz#57384 TimeoutCaolán McNamara
Change-Id: Ic2007f52056acd46f96d454c1fdb7b8ca8838d70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155386 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-02split Point/Size/Rectangle into AbsoluteScreenPixel* typesNoel Grandin
to attempt to make it obvious in code what kind of coordinate system we are dealing with. The idea is that by doing this, the compile-time type checking will flush out inconsistencies between different code. I started with vcl::Window::OutputToAbsoluteScreenPixel and worked outwards from there. Change-Id: Ia967d7a0bb38886695f3a761b85c8b9340ddb1c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154676 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-30tdf#156230: Deprecate and stop using PDFAsStandardPrintJobFormatKhaled Hosny
PDF is the only supported printing format (on Unix) going forward. Change-Id: I1bd442bac370b89a77e2035d4c17bfc43a869ab1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154974 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@libreoffice.org>
2023-07-27rename GetFieldRectPixelAbs to GetFieldRectPixelNoel Grandin
since it can return either absolute or relative values Change-Id: I23f2403879eded3ec4b3ca20a639ea18b28f5de9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154937 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-26improve override of Window::Invalidate(*)Noel Grandin
rather than having to override 3 different methods, have them override the ImplInvalidate, which is where the code ends up anywhere. This already exposes a couple of places that were not overriding all 3 methods. Change-Id: If76abcf18325b7138ea451fbd0213cd6c7b4daa5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154930 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-20Revert "tdf#149401 show "Restart LibreOffice" dialog changing AutoRecovery"Justin Luth
This reverts 7.4 commit 18cc891483fef63ad168273658a30bff72b87a95. The bits are no longer used because all options in this dialog apply immediately, thanks to tdf#65509 and even more so tdf#156308 (which are API changes that won't be backported - so 24.2+ only). I didn't see any other option in this dialog that could have benefitted from a restart request, and the scope of this dialog is rather small, so no value in ignoring the dead code. Change-Id: I3f40421af079fd42c10d6862949279328ef5583b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154669 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2023-07-20split GetWindowExtentsRelative asunderNoel Grandin
sometimes it returns a relative position, sometimes an absolute position. Rather have two different methods with names that match what they return. Change-Id: Ie1e73c6be1c797fd59934c96866d1fef1f972b35 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154653 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-12jsdialog: calendar widgetSzymon Kłos
Change-Id: I5b2b8a1516ed2e851309dca6ef3200ed522d1b7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154136 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Pranam Lashkari <lpranam@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154361 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-07-06make tools::Poly*gon single-arg constructors explicitNoel Grandin
which will help avoid ambiguity in method calls in an upcoming patch Change-Id: Ic7607ac7d95559e0942a84fb3226cfdd6ade22bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154146 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-05these enums are unnecessaryNoel Grandin
Change-Id: I29bf28202e11db836764276f773b134356d93e0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154057 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-06-27loplugin:stringstatic look for more stringsNoel Grandin
that can be initialised at compile-time instead of runtime Change-Id: I08d516fdc13a3a79f93c079f89ac44cbc7a1ed71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153620 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-06-26new loplugin:constexprliteralNoel Grandin
OUStringLiteral should be declared constexpr, to enforce that it is initialised at compile-time and not runtime. This seems to make a different at least on Visual Studio Change-Id: I1698f5fa22ddb480347c2f4d444530c2e0e88d92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153499 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-06-19Simplify a bitMike Kaganski
No other options are possible, as implemented in GetExportMode Change-Id: Id64ec1b5bd52f28a100bd2b31cd56c6620bb2cb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153239 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-06-12tdf#154349: round before converting to an integerMike Kaganski
Commit cfff893b9c82843a90aac4ecdb3a3936721b74a0 (Move unit conversion code to o3tl, and unify on that in more places, 2021-02-14) changed a custom conversion code in CalcToUnit doing inexact conversion from points to mm/20 (with "* 10 / 567"), with correct conversion function. A side effect was, however, that the imprecise arithmetics provided floating-point values that rounded down to correct integers (or maybe it was all the chain of calculations down to this function), while the correctly converted values could round down to a smaller value. Fix this problem using rounding. Change-Id: I42e0d56b068832ef309f6b696f661642e62ddacb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152894 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-06-06use more officecfg for SvtMiscOptionsNoel Grandin
Change-Id: I6c87025fc0997b5edbc085fc88333fe9e150eb3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152648 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-06-06convert SvtAccessibilityOptions to officecfg where possibleNoel Grandin
Change-Id: Ia530086fe35e64379e55135d392020304b466325 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152649 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-06-06convert ColorConfig to officecfg where possibleNoel Grandin
Change-Id: I14f0ada21d328b3b6637709e403bfe973a7035b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152670 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-31do not throw DisposedException when inside a dispose() methodNoel Grandin
There is no need to do this, as the documentation of css.lang.XComponent::dispose at udkapi/com/sun/star/lang/XComponent.idl states: After this method has been called, the object should behave as passive as possible, thus it should ignore all calls Otherwise, the effect of throwing here is mostly to disturb the flow of logic in caller code, preventing other parts of teardown from proceeding smoothly. Change-Id: I30e6d1b35f85b727debf4405a995fdc0a4fccde6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152450 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-31Improve some error diagnosticsStephan Bergmann
Change-Id: I4e9d19a164fdc035ceabd9d4a04a0f500322dd0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152419 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-05-28tdf#154547: Improve Hebrew font preview sample textKhaled Hosny
The Hebrew font preview sample text include Nikkud (vowel marks) which are optional for modern Hebrew and not all Hebrew fonts have them, and for fonts lacking them we use a much shorter preview text. The inclusion of Nikkud is unnecessary and we don’t include vowel marks in many other scripts (e.g. Arabic where they are more used). This patch drop the Nikkud marks and leaves the sample text otherwise unchanged. Change-Id: Ie4e5abcd74599d25db41c4cdf7e1d3bf997a998c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152350 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@libreoffice.org>
2023-05-25merge some stringaddsNoel Grandin
found with a lightly tweaked version of the loplugin:stringadd and some hand-holding. Change-Id: I146aadcaf665e98fea89a9cad2df4dc3935622f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152275 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-25[API CHANGE] remove XModuleUIConfigurationManager3 and XUIConfigurationManager3Miklos Vajna
The motivation was to not modify XModuleUIConfigurationManager / XUIConfigurationManager, but as pointed out at <https://gerrit.libreoffice.org/c/core/+/151798/10#message-31d00a775989b981a5f50639623cc773d6ea930d>, it may be fine to modify XModuleUIConfigurationManager2 and XUIConfigurationManager2 instead of adding XModuleUIConfigurationManager3 and XUIConfigurationManager3. Indeed, searching for usage in <https://github.com/libreoffice/wollmux>, only the published interfaces are used, so let's fold XModuleUIConfigurationManager3 into XModuleUIConfigurationManager2 and XUIConfigurationManager3 into XUIConfigurationManager2. This is a reasonable middle ground between 0 API change and breaking known users of the public API. Change-Id: I2dedee7e255f9dda9c9057961e6c829f83b2b709 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152254 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-05-23prevent some "index hint out of range" warningsNoel Grandin
Change-Id: Ib3d4dce2e535fb16a0f34c01c03c71927fa5cdd3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152160 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-23[API CHANGE] Add createShortCutManager function to uiconfigurationmanager.Gökay Şatır
We need to have different accelerator classes for differnt languages. This PR creates a new accelerator class for different languages. Since current code uses single instance for accelerators, i needed to add a create function. Also we now have an unordered map for different languages and modules. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147157 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148680 Tested-by: Miklos Vajna <vmiklos@collabora.com> Change-Id: Ia646f20b3206f430ece614fc127e8b748044e4c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151798 Tested-by: Jenkins
2023-05-06Use getXWeak in svtoolsMike Kaganski
Change-Id: Ia985e96eb441d03ace050f4f184a899fba897830 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150873 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-04-28survive exporting to pdf without config for fuzzingCaolán McNamara
Change-Id: I229f25a8a15b21257756ecfa008b9e99681003c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151172 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>