summaryrefslogtreecommitdiff
path: root/sc/source/ui
AgeCommit message (Collapse)Author
2 dayscrash on null pattern de-refCaolán McNamara
#5 0x00007fc235921b20 in ScPatternAttr::GetItem (nWhichP=145, this=0x0) at sc/inc/patattr.hxx:164 #6 ScPatternAttr::GetItem<ScMergeFlagAttr> (nWhich=..., this=0x0) at sc/inc/patattr.hxx:167 #7 ScGridWindow::UpdateCursorOverlay (this=0x0, this@entry=0x39eb3d30) at sc/source/ui/view/gridwin.cxx:6610 #8 0x00007fc235922c0d in ScGridWindow::CursorChanged (this=0x39eb3d30) at sc/source/ui/view/gridwin.cxx:6259 #9 0x00007fc2359c6860 in ScTabView::ShowAllCursors (this=this@entry=0x356a9c68) at include/rtl/ref.hxx:203 #10 0x00007fc2359c2586 in ScTabView::PaintBlock (this=this@entry=0x356a9c68, bReset=bReset@entry=true) at sc/source/ui/view/tabview2.cxx:1286 #11 0x00007fc2359c271f in ScTabView::DoneBlockMode (this=0x356a9c68, bContinue=bContinue@entry=false) at sc/source/ui/view/tabview2.cxx:658 #12 0x00007fc2359c2779 in ScTabView::DoneBlockMode (this=this@entry=0x356a9c68, bContinue=bContinue@entry=false) at sc/source/ui/view/tabview2.cxx:666 #13 0x00007fc2359ce0ca in ScTabView::SetTabNo (this=0x356a9c68, nTab=3, bNew=<optimized out>, bExtendSelection=false, bSameTabButMoved=<optimized out>) at sc/source/ui/view/tabview3.cxx:1965 #14 0x00007fc2359e851d in ScTabViewShell::Notify (this=0x356a9a60, rBC=..., rHint=...) at sc/source/ui/view/tabvwsh5.cxx:202 #15 0x00007fc245e6f935 in __gnu_cxx::__normal_iterator<SvtListener**, std::vector<SvtListener*, std::allocator<SvtListener*> > >::__normal_iterator ( __i=<optimized out>, this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_iterator.h:1073 #16 std::vector<SvtListener*, std::allocator<SvtListener*> >::end (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_vector.h:889 #17 SvtBroadcaster::SvtBroadcaster (this=0x2b, rBC=...) at svl/source/notify/broadcast.cxx:180 #18 0x00007ffdb455a730 in ?? () #19 0x0000000000000003 in ?? () #20 0x0000000002476c90 in ?? () #21 0x00007fc244207e01 in avmedia::MediaFloater::setURL (this=0x331fc030, rURL=..., rReferer=..., bPlayImmediately=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:191 #22 0x00007fc2498f32e0 in com::sun::star::xml::sax::cppu_detail_getUnoType(com::sun::star::xml::sax::XAttributeList const*)::the_type () from /opt/collaboraoffice/program/libmergedlo.so Change-Id: I7d62f67a840fe6c27b7bcf80fdaf66dff8c270c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185088 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2 daystdf#117436 - Adjust row height to accommodate potential multiline cellsAndreas Heinisch
Using drag and drop to copy a table from Base to Calc adapts the row height of the imported content in order to accomodate potential multiline cells in the Base table. Change-Id: Ifadf3f9034a5440385cea7b35ce4e28f206b744d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185066 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
3 daysFix typoAndrea Gelmini
Change-Id: I3e7d2b34ef2f48c6ba6743e77a8c93d889a467e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185030 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
3 daysRemove "StandardDir"Samuel Mehrbrodt
This was supposed to set some kind of "default directory" for file pickers. It was never implemented for anything except the "gen" vcl plugin - and is also not really needed. Change-Id: I94c6ff04984fc7b1d600530dc26bd8a7672646cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184064 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Tested-by: Jenkins
3 daystdf#166481 sc shapes edit view: fix wrong draw view shellBalazs Varga
was created when an object was in rotation drag mode and we enter into the shape to text edit mode. We only need to switch to draw shell if we have not already created a text shell for text edit mode. TODO: unit/UI tests would be useful for the original enhancement. (c628a26cd3f763b39a2e2441fc766dabf04ed492) Follow-up commit of c628a26cd3f763b39a2e2441fc766dabf04ed492 677e40c8b83b06ded8e06b6151f71686baf5f6b5 Regression from commit: c628a26cd3f763b39a2e2441fc766dabf04ed492 (tdf#90293 switch draw selection to rotate mode) Change-Id: Ib857673b1f5469d6502736ecad84fe046f8c967e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185031 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
4 daysapparent use-after-free of ScLOKProxyObjectContact::mpScDrawViewCaolán McNamara
#0 std::vector<std::unique_ptr<SdrPageWindow, std::default_delete<SdrPageWindow> >, std::allocator<std::unique_ptr<SdrPageWindow, std::default_delete<SdrPageWindow> > > >::size (this=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/stl_vector.h:987 #1 SdrPageView::PageWindowCount (this=<optimized out>) at include/svx/svdpagv.hxx:89 #2 (anonymous namespace)::ScLOKProxyObjectContact::calculateGridOffsetForViewObjectContact (this=<optimized out>, rTarget=..., rClient=...) at sc/source/ui/view/gridwin4.cxx:1467 #3 0x00007fe8eae62e05 in sdr::contact::ViewObjectContact::getGridOffset (this=this@entry=0x364bdc60) at include/svx/sdr/contact/viewobjectcontact.hxx:95 #4 0x00007fe8eae642fe in sdr::contact::ViewObjectContact::getPrimitive2DSequence (this=this@entry=0x364bdc60, rDisplayInfo=...) at svx/source/sdr/contact/viewobjectcontact.cxx:487 #5 0x00007fe8eae645b1 in sdr::contact::ViewObjectContact::getObjectRange (this=this@entry=0x364bdc60) at svx/source/sdr/contact/viewobjectcontact.cxx:209 #6 0x00007fe8eae64832 in sdr::contact::ViewObjectContact::triggerLazyInvalidate (this=0x364bdc60) at svx/source/sdr/contact/viewobjectcontact.cxx:273 #7 0x00007fe8eae65415 in sdr::contact::ObjectContactOfPageView::Invoke (this=0x7fe8a8103ff0) at svx/source/sdr/contact/objectcontactofpageview.cxx:105 #8 0x00007fe8ebb2b30b in Scheduler::CallbackTaskScheduling () at vcl/source/app/scheduler.cxx:579 #9 0x00007fe8ebceb21b in SvpSalInstance::StartTimer (nMS=<optimized out>, this=0x2e01000000000000) Change-Id: Icb71083eb77e528d9025aa7a591892dcdfc2ba89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185020 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
4 dayssc/source/ui/view/tabview3.cxx: Switch DBG_ASSERT to assertJulien Nabet
This fixes Windows/MSVC build errors like the one reported in https://ci.libreoffice.org/view/tb%20platform%20status/job/lo_tb_master_win_analyze/1135/console C:/cygwin/home/tdf/lode/jenkins/workspace/lo_tb_master_win_analyze/sc/source/ui/view/tabview3.cxx(2335): error C2220: the following warning is treated as an error C:\cygwin\home\tdf\lode\jenkins\workspace\lo_tb_master_win_analyze\sc\source\ui\view\tabview3.cxx(2313) : warning C6011: Dereferencing NULL pointer 'pEditView'. : Lines: 2300, 2302, 2303, 2304, 2309, 2310, 2313 C:\cygwin\home\tdf\lode\jenkins\workspace\lo_tb_master_win_analyze\sc\source\ui\view\tabview3.cxx(2359) : warning C6011: Dereferencing NULL pointer 'pEditView'. : Lines: 2353, 2354, 2355, 2358, 2359 C:\cygwin\home\tdf\lode\jenkins\workspace\lo_tb_master_win_analyze\sc\source\ui\view\tabview3.cxx(2458) : warning C6011: Dereferencing NULL pointer 'pEditView'. : Lines: 2440, 2443, 2444, 2445, 2449, 2452, 2458 Change-Id: I324adb67b207075a420b51726a8211d53257d3f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185016 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
4 daysCEOO: CellEditOnOverlayArmin Le Grand (Collabora)
Instead of using EditView's Paint directly to Window I changed this now to using the Overlay that is available in all applications. This allows to have less repaints of the Calc View since the Overlay has a copy of the area it is working overlayed. It also allows to get away from one of the last areas where XOR selection was used since EditView/EditEngine have no better way to do this. Selection is now visualized using the OS'es choosen SelectionColor, as in all other apps. I could also get rid of the flush() of the OverlayManager that was needed before and caused some problems (see tdf#165621 and associated tasks). A failing UnitTest showed that OverlayManagerBuffered needs to be aware when no CompleteRedraw was done yet and thus no background data exists and refresh makes no sense. This may happen when there is no redraw/UI e.g. UnitTests, but still an OverlayManager is used and together with a Reschedule (many possible reasons) that refresh might be triggered. Made access to EditView in OverlayObject no longer dependent on ActiveView, that is not always the one with the EditView. Now using a combination of ScTabView and ScSplitPos for accesses. Asserting now if no EditView -> is mandatory. Continuing going through CppunitTest_sc_tiledrendering UTs, one more identified. Have to re-activate EditViewInvalidate rect forwarding since the Invalidate is needed for sc tiled rendering tests, but not for sd tiled rendering tests. Added that to the impl of EditViewCallbacks using LibreOfficeKit::isActive(). Change-Id: I41f5448bfbabfaae4858c7617478771053c2cd77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184830 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
4 daysnull-deref on doc teardownCaolán McNamara
#0 std::__uniq_ptr_impl<ScDragData, std::default_delete<ScDragData> >::_M_ptr (this=0xae8) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:191 #1 std::unique_ptr<ScDragData, std::default_delete<ScDragData> >::get (this=0xae8) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:462 #2 std::unique_ptr<ScDragData, std::default_delete<ScDragData> >::operator* (this=0xae8) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:445 #3 ScTabViewShell::GetDragData (this=0x0) at sc/source/ui/inc/tabvwsh.hxx:470 #4 ScModule::GetDragData (this=this@entry=0x4f2dacd0) at sc/source/ui/app/scmod.cxx:632 #5 0x00007e73ef1b3584 in ScDrawTransferObj::~ScDrawTransferObj (this=0x5a10c1c0, __in_chrg=<optimized out>) at sc/source/ui/app/drwtrans.cxx:219 #6 0x00007e73ef1b381d in ScDrawTransferObj::~ScDrawTransferObj (this=0x5a10c1c0, __in_chrg=<optimized out>) at sc/source/ui/app/drwtrans.cxx:233 #7 0x00007e74010d80b9 in com::sun::star::uno::Reference<com::sun::star::datatransfer::XTransferable>::~Reference ( this=0x40a2d160, __in_chrg=<optimized out>) at include/com/sun/star/uno/Reference.hxx:114 #8 vcl::(anonymous namespace)::GenericDragSource::~GenericDragSource (this=0x40a2d110, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) Change-Id: Ibce052c40972576e149d643a4dbbe4f9e89d9a8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184992 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
5 daysapparent null-deref of pPattern seenCaolán McNamara
Change-Id: Iabab952deb36ab86cce009f4f0b4f82b5d469efd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184994 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
9 daystdf#47479: Do not modify range of sheet / column / row in notificationsMike Kaganski
Change-Id: I2c5afa5397e3a98806908a2f73f8d654e83fb890 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184889 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
9 daysScInsertCellDlg: pass ScViewData from callerXisco Fauli
Change-Id: Ic059f4c964f761f9d1b2c0734f8b6908501fd5d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184898 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
9 daysScConflictsDlg: pass ScViewData by refXisco Fauli
and other related changes Change-Id: I13f8c81e5715d9adea05e4d89443ec6ef8faf24a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184899 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
10 dayscool#11475 lok: sc: correctly export frozen/split pane informationAron Budea
As 7b4802070ac6fb930255536bf3ed2c52428b4181 noted, online only supports freeze panes, but preserves splits when saving. However, files could also end up with mixed frozen/split panes. In addition, even a single split was treated like two, with the other split being at the first row/column, which was incorrect. Change-Id: I974690b8877ad6d4eca1e046c3c352359a199706 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184421 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184854 Tested-by: Jenkins Reviewed-by: Aron Budea <aron.budea@collabora.com>
10 dayssc a11y: Make GetBoundingBoxOnScreen::GetBoundingBox{,OnScreen} non-constMichael Weghorn
These methods are almost exclusively used to implement the non-const OAccessibleCompomentHelper::implGetBounds and OAccessibleComponentHelper::getLocationOnScreen overrides. Making them non-const allows dropping some const_casts in some of the subclass implementations. Change-Id: Ia26858c1211629c4a336919c8e9d4d0c70e73097 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184831 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
11 daysScAcceptChgDlg: pass ScViewData by refXisco Fauli
to ensure it's not nullptr Change-Id: I462633d583c7be3f249427f103215bc76d1c0d45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184821 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
11 daysScNavigatorDlg: simplify a bitXisco Fauli
not need to have pViewData member Change-Id: Ia697f80421ffbbec36514c60a04087a55383d349 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184801 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
12 daysScDrawView: pass ScViewData by refXisco Fauli
Change-Id: I499c44ebc3f3eaf5310788dbf110b8a00d8a8035 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184799 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
12 dayssc a11y: Use ref instead of pointer in ScChild{Gone,New}Michael Weghorn
Change-Id: I28a314c2d07e402decb5a7e9cae1ac59b6e8dc3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184792 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
12 dayssc a11y: Switch ScNotesChildren::mpAccDoc to refMichael Weghorn
Use a reference instead of a pointer, to make clearer this is always non-null. This also allows to drop a null check in ScNotesChildren::DataChanged. Change-Id: Ief02eaafa7cd67a1ceb9562bf0a62435e4b877a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184791 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
12 daysScQueryItem: no need to store a ScViewData pointerXisco Fauli
it can be passed by reference, like the other dialogs do Change-Id: I79abd717835012af8bcf8d4e135bd7e79f36ac35 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184783 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
12 dayscool#11739 lok: sc: change dialog units per userJaume Pujantell
On lok different users might have different locales so they need different field units in their dialogues. Right now the metric used is always the one stored in the ScModule's AppOptions for all users. With this change, for lok SfxModule::GetFieldUnit is used because it already has the correct metric per lok user. Change-Id: If2b047874a26deecc7c43936ab267b75eae101e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184567 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit d01737cb12654f488bb88235cdc562d3cf68d7db) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184741 Reviewed-by: Jaume Pujantell <jaume.pujantell@collabora.com> Tested-by: Jenkins
2025-04-27Remove obsolete fw declarations from sc/Gabor Kelemen
found with bin/find-unneeded-includes --fwdecl Change-Id: I04083a33ce1e7d85980da91f72c2dd85777b594d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183897 Tested-by: Jenkins Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2025-04-26ApplyAutoFilter: pass ScViewData by refXisco Fauli
Change-Id: Ie65b3347fcfad7ba3be2af48dc73e06c027231dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184659 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-26ScShareDocumentDlg: pass ScViewData by refXisco Fauli
Change-Id: I6308802006c957a693db88746692a8dc63e53026 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184658 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-26ScCornerButton: pass ScViewData by refXisco Fauli
Change-Id: Id76186f6eb1d59f101273dc3d97fde1265c3e0ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184654 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-25ScOutlineWindow: pass ScViewData by refXisco Fauli
Change-Id: Iea4da0879bfc281cdb430bec3285a1a5c2da4bba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184633 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-25ScQueryItem: always pass ScViewData from callerXisco Fauli
Change-Id: I02c061ecf4316907a020e1324c606ea53da7b8a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184630 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-25sc: pass ScViewData by ref here tooXisco Fauli
Change-Id: Id21b9e901502dc2c589ef6ee22105e883b3c5f80 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184634 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-25ScPrintFunc::DrawToDev: pass ScViewData by refXisco Fauli
Change-Id: Ia7e0b8e4c56ecfc9525ac45bfdb3d4304877e4c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184632 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2025-04-25ScSortItem: always pass ScViewData from callerXisco Fauli
Change-Id: I95b273bebed032a3acb0bdca0e1ae30d0e98600d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184631 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-25ConditionalFormatEasyDialog: pass ScViewData by refXisco Fauli
Change-Id: I38db0341403c0e2fbf147d57dfbe956938e7f8de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184628 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-25ScPrintAreasDlg: pass ScViewData from the callerXisco Fauli
like the other dialogs do Change-Id: I584a2dc7e347a31c4b627d97277b9ab0207b7ee8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184627 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-25sc: pass ScViewData by ref in some placesXisco Fauli
it's always non-null. Change-Id: I0ac888c6d4e40a9de59c8b6136dd3be8c3ec3770 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184624 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2025-04-24[API CHANGE] a11y: Return string for XAccessibleExtendedAttributesMichael Weghorn
All XAccessibleExtendedAttributes::getExtendedAttributes implementations return a OUString wrapped in an Any (or an empty Any), and all consumers also expect that. Therefore, change the return type from Any to OUString to make that clearer and simpler. Change-Id: Ic6af692f72fd072c4039996f31208ac2098d2750 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184514 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-22tdf#166177 Fixes unintended switch to rotate modeOliver Specht
Fixes switch to rotate mode after inserting or moving a shape. Change-Id: I4e8ce8b5891a08c6c3f20a9c29fa4bef4428eb84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184141 Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Tested-by: Jenkins Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2025-04-15tdf#159712 sc: sparklines are not displayed correctly in merged cellsTibor Nagy
The sparklines are always rendered in the top-left corner and do not take the space of the whole merged cell. Change-Id: I735c180d135de79907dd685045d277cc357815fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184152 Tested-by: Jenkins Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de>
2025-04-15Avoid some casting in ScChildrenShapesNoel Grandin
Change-Id: Ic57ffd1d932f9613716b63902d5565f1f8f6ef0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184145 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-04-15tdf#166107: remove unnecessary resetPrintArea()Xisco Fauli
In the mentioned regression, resetPrintArea() was responsible for reverting the print area in Calc, which was set by the Print Dialog, back to the one defined by the Page Styles. It was implemented in the print-related part that is used by all modules but this is a Calc-specific issue. Therefore, in this commit, resetPrintArea() was removed and it made more sense to fix the print area issue in the Calc modul. from commit 364f0bb1cac0e12f5f926857f61c2f329a353ec7 Author: Tibor Nagy <tibor.nagy.extern@allotropia.de> Date: Wed Feb 28 11:13:10 2024 +0100 tdf#155218 sc: fix regression page orientation in print dialog Change-Id: I3767c0685addefb9b2fb16bfc7cf967a0f332272 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183948 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-04-15sc a11y: Use concrete rtl::Reference<AccessibleShape>Michael Weghorn
... for the return type of some ScAccessibleDocument methods and local vars instead of uno::Reference<XAccessible>. Drop a static_cast in ScAccessibleDocument::Notify that is no more necessary now that that type is part of the signature. Change-Id: Ic4e4857b6372581df80442b8669693af06d86a07 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184148 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-14Send show cursor command after registering the view.Gökay Şatır
Issue: * Or the "mpViewShell" pointer in "ShowCursor" function is empty and the notification is not sent to Online side. Change-Id: I42e6d2f914c80fe2bc61483832274357394ef1c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184138 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2025-04-11Fix typoAndrea Gelmini
Change-Id: I52301bc1d82757102cc3c97072e88807d960c3e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184022 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2025-04-10sc a11y: Drop ScAccessibleContextBase::getAccessibleIndexInParentMichael Weghorn
The base class implementation in OAccessibleComponentHelper::getAccessibleIndexInParent is using the same approach already - and has the benefit of returning early when the child is found instead of continuing to iterate over all of the parent's children. Change-Id: I9ff67770bb4162c2c903a84b0393739a451d3893 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183942 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-10sc a11y: Flatten ScAccessiblePreviewTable::getAccessibleAtPointMichael Weghorn
Change-Id: I2bdbad8212fd8fd377f2616a7e322b5696171de5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183941 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2025-04-10sc a11y: Drop ScAccessibleContextBase::IsObjectValidMichael Weghorn
Use the equivalent base class method OAccessibleComponentHelper::ensureAlive instead. Change-Id: I27fd4ace99ffac9451e4dab76cba19a2a39f37ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183940 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-10sc a11y: Drop obsolete commented codeMichael Weghorn
Commented since commit 95b1fd019e01babaa6dfc3526a6ed958fe4765f3 Author: Sascha Ballach <sab@openoffice.org> Date: Thu Jun 13 11:26:31 2002 +0000 #99751#; some little fixes with the comment that his is not necessary, so just drop it altogether. Change-Id: Id4559db3a9fcae561b86e1b67809cfbfaf9ef6fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183939 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-10sc a11y: Use OAccessibleComponentHelperMichael Weghorn
Let ScAccessibleContextBase derive from OAccessibleComponentHelper to make use of the logic already implemented there instead of having to implement all the XAccessibleComponent and XAccessibleEventBroadcaster methods manually. The existing ScAccessibleContextBase::GetBoundingBox provides necessary logic to implement OAccessibleComponentHelper::implGetBounds, so simply call it. Drop all of the other overrides that are no longer needed as the implementation is now provided by the base class. No change in behavior intended or observed in a quick test with Calc using Orca and Accerciser with the gtk3 and qt6 VCL plugins on Linux. Change-Id: I3d6db0e8c3b7c165dbbf9399e9b7c5b789cbfac5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183938 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-10sc a11y: Dispose children in ScAccessibleDocumentPagePreview::disposingMichael Weghorn
ScAccessibleDocumentPagePreview is their parent and owns them, so is responsible for disposing them again. See also commit message of Change-Id: I867ed2203d824bcffe86eb320cc3c009c265f4b4 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Apr 10 13:12:56 2025 +0200 sc a11y: No longer listen to parent disposal for some potentially relevant background. Change-Id: Ida4520a59c472d9f20c0e2df3fd61e37a0df0515 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183972 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-10sc a11y: No longer listen to parent disposalMichael Weghorn
Commit commit 8e886993f32b7db11a99bdecf06451e6de6c3842 Date: Sat Oct 7 11:42:40 2023 +0200 tdf#157568 After deleting the content of a cell by pressing the delete.. .. key, Orca still speaks the content. this reverts commit f22cb3dfab413a2917cd810b8e1b8f644a016327 Author: Noel Grandin <noelgrandin@gmail.com> Date: Mon Jun 12 20:02:19 2023 +0200 tdf#155376 weakly cache ScAccessibleCell which was a nice idea, but means that we would need to have some way of updating the ScAccessibleCell when the associated cell data changes. Which is likely to be complicated. So return to creating new ScAccessibleCell objects all the time, but fix them to not leak. Change-Id: Ie17ee5c950c9809d4c7281f93761584f75256121 split the XAccessibleEventListener logic from ScAccessibleContextBase into an inner helper class ScAccessibleContextBase::ScAccessibleContextBaseEventListener whose lifecycle is decoupled from its ScAccessibleContextBase object. As the code comment says: /** The listener is an internal class to prevent reference-counting cycles and therefore memory leaks. */ Since that commit, the XAccessibleEventListener::disposing implementation however also no longer disposes the ScAccessibleContextBase object when being notified about the parent disposal, but only disposes the itself, which - if I understand correctly - doesn't seem to match the original purpose. This would be needed to dispose the ScAccessibleContextBase instead: diff --git a/sc/source/ui/Accessibility/AccessibleContextBase.cxx b/sc/source/ui/Accessibility/AccessibleContextBase.cxx index 99707cdd4517..1918b67b55b3 100644 --- a/sc/source/ui/Accessibility/AccessibleContextBase.cxx +++ b/sc/source/ui/Accessibility/AccessibleContextBase.cxx @@ -56,7 +56,7 @@ public: { SolarMutexGuard aGuard; if (rSource.Source == mrBase.mxParent) - dispose(); + mrBase.dispose(); } virtual void SAL_CALL stash@{4}: WIP on master: 8ace7409d57f sw a11y: Pass shell by ref With pending Gerrit change [1] ("sc a11y: Use OAccessibleComponentHelper"), that separation of lifecycle also was seen triggering a crash for JunitTest_sc_unoapi_1 (s. backtrace below). At the point that ScAccessibleContextBase::ScAccessibleContextBaseEventListener::disposing gets called (frame #5), the ScAccessibleContextBase object (`mrBase`) has apparently already been deleted (when pending change [1] is applied). Drop the listener altogether. Instead, consider it the responsibility of the owner/parent to dispose its a11y children as needed, as it is done elsewhere. If that disposal is currently missing anywhere, it should be added separately. This change shouldn't have any effect in that regard due to the listener not disposing the ScAccessibleContextBase object any more anyway. (There is also existing logic to dispose the object in ScAccessibleContextBase::Notify and in the dtor, which remains unchanged.) Backtrace: Thread 1 (Thread 0x7eff157ff6c0 (LWP 330592)): #0 0x00007eff285bcc0c in com::sun::star::uno::BaseReference::iquery (pInterface=0x9999999999999999, rType=invalid uno::Type) at include/com/sun/star/uno/Reference.hxx:59 aRet = <error reading variable: Cannot access memory at address 0x99999999999999a1> #1 0x00007eff286edc79 in com::sun::star::uno::Reference<com::sun::star::uno::XInterface>::iquery (pInterface=0x9999999999999999) at include/com/sun/star/uno/Reference.hxx:74 #2 0x00007eff28ae8254 in com::sun::star::uno::Reference<com::sun::star::uno::XInterface>::Reference (this=0x7eff157fa2f8, pInterface=0x9999999999999999) at include/com/sun/star/uno/Reference.hxx:185 #3 0x00007eff28ae817a in com::sun::star::uno::BaseReference::operator== (this=0x7eff157fa470, pInterface=0x9999999999999999) at include/com/sun/star/uno/Reference.hxx:426 x1 = uno::Reference to (ScAccessibleDocumentPagePreview *) 0x7eff08005ca0 x2 = uno::Reference to (com::sun::star::uno::XInterface *) 0x7eff289b62c8 <osl::Guard<comphelper::SolarMutex>::Guard(comphelper::SolarMutex&)+40> #4 0x00007eff28ae3ba0 in com::sun::star::uno::BaseReference::operator== (this=0x7eff157fa470, rRef=...) at include/com/sun/star/uno/Reference.hxx:462 #5 0x00007eff291683b6 in ScAccessibleContextBase::ScAccessibleContextBaseEventListener::disposing (this=0x565180088c00, rSource=...) at /home/michi/development/git/libreoffice/sc/source/ui/Accessibility/AccessibleContextBase.cxx:58 aGuard = {<osl::Guard<comphelper::SolarMutex>> = {pT = 0x56517ce99aa0}, <No data fields>} #6 0x00007eff7f4ea1b6 in comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>::disposeAndClear (this=0x7eff157fa4c8, rGuard=..., rEvt=...) at include/comphelper/interfacecontainer4.hxx:492 aIt = {rCont = @0x7eff157fa4c8, maData = {m_pimpl = 0x7eff08009e50}, nRemain = 0} #7 0x00007eff7f4e930e in comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing (_nClient=3, _rxEventSource=uno::Reference to (ScAccessibleDocumentPagePreview *) 0x7eff08005ca0) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:204 aGuard = {_M_device = 0x7eff7f70e4f8 <(anonymous namespace)::GetLocalMutex()::MUTEX>, _M_owns = false} aClientPos = invalid iterator aListeners = {maData = {m_pimpl = 0x5651800f8950}} aDisposalEvent = {Source = uno::Reference to (ScAccessibleDocumentPagePreview *) 0x7eff08005ca0} #8 0x00007eff7f4e5e8d in comphelper::OAccessibleComponentHelper::disposing (this=0x7eff08005ca0) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:61 aGuard = {pT = 0x56517ce99aa0} #9 0x00007eff29165d79 in ScAccessibleContextBase::disposing (this=0x7eff08005ca0) at /home/michi/development/git/libreoffice/sc/source/ui/Accessibility/AccessibleContextBase.cxx:110 aGuard = {<osl::Guard<comphelper::SolarMutex>> = {pT = 0x56517ce99aa0}, <No data fields>} xKeepAlive = uno::Reference to (ScAccessibleDocumentPagePreview *) 0x7eff08005cf0 #10 0x00007eff291a2824 in ScAccessibleDocumentPagePreview::disposing (this=0x7eff08005ca0) at /home/michi/development/git/libreoffice/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx:1160 aGuard = {<osl::Guard<comphelper::SolarMutex>> = {pT = 0x56517ce99aa0}, <No data fields>} #11 0x00007eff7ef3dc40 in cppu::WeakComponentImplHelperBase::dispose (this=0x7eff08005ca0) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase.cxx:104 aEvt = {Source = uno::Reference to (ScAccessibleDocumentPagePreview *) 0x7eff08005ca0} aGuard2 = {pT = 0x7eff157fa730} aGuard = {pT = 0x0} exc = <error reading variable: Cannot access memory at address 0x100000004> #12 0x00007eff29156eb5 in cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleContext2, com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleExtendedComponent>::dispose (this=0x7eff08005ca0) at include/cppuhelper/compbase.hxx:90 #13 0x00007eff29165f84 in ScAccessibleContextBase::Notify (this=0x7eff08005ca0, rHint=...) at /home/michi/development/git/libreoffice/sc/source/ui/Accessibility/AccessibleContextBase.cxx:129 #14 0x00007eff291a2f38 in ScAccessibleDocumentPagePreview::Notify (this=0x7eff08005ca0, rBC=..., rHint=...) at /home/michi/development/git/libreoffice/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx:1232 #15 0x00007eff7c549b8c in SfxBroadcaster::Broadcast (this=0x7eff3400cf00, rHint=...) at /home/michi/development/git/libreoffice/svl/source/notify/SfxBroadcaster.cxx:43 pListener = 0x7eff08005d28 i = 0 nSize = 5 #16 0x00007eff29b546f6 in ScPreviewShell::BroadcastAccessibility (this=0x565180199c00, rHint=...) at /home/michi/development/git/libreoffice/sc/source/ui/view/prevwsh.cxx:1159 #17 0x00007eff29b5451a in ScPreviewShell::~ScPreviewShell (this=0x565180199c00) at /home/michi/development/git/libreoffice/sc/source/ui/view/prevwsh.cxx:185 pDrawBC = 0x565180365360 #18 0x00007eff29b54759 in ScPreviewShell::~ScPreviewShell (this=0x565180199c00) at /home/michi/development/git/libreoffice/sc/source/ui/view/prevwsh.cxx:180 #19 0x00007eff7d62efff in SfxViewFrame::ReleaseObjectShell_Impl (this=0x7eff1c234340) at /home/michi/development/git/libreoffice/sfx2/source/view/viewfrm.cxx:1142 pDyingViewSh = 0x565180199c00 #20 0x00007eff7d63626c in SfxViewFrame::~SfxViewFrame (this=0x7eff1c234340) at /home/michi/development/git/libreoffice/sfx2/source/view/viewfrm.cxx:2067 pSfxApp = 0x7eff1c232340 #21 0x00007eff7d631832 in SfxViewFrame::Close (this=0x7eff1c234340) at /home/michi/development/git/libreoffice/sfx2/source/view/viewfrm.cxx:1194 #22 0x00007eff7d5ba93c in SfxFrame::DoClose_Impl (this=0x7eff1c22dac0) at /home/michi/development/git/libreoffice/sfx2/source/view/frame.cxx:138 pBindings = 0x7eff1c22e0e0 #23 0x00007eff7d60358a in SfxBaseController::dispose (this=0x565183247040) at /home/michi/development/git/libreoffice/sfx2/source/view/sfxbasecontroller.cxx:929 aGuard = {<osl::Guard<comphelper::SolarMutex>> = {pT = 0x56517ce99aa0}, <No data fields>} xKeepAlive = uno::Reference to (ScPreviewObj *) 0x565183247068 aEventObject = {Source = uno::Reference to (ScPreviewObj *) 0x565183247040} [1] https://gerrit.libreoffice.org/c/core/+/183938/1 Change-Id: I867ed2203d824bcffe86eb320cc3c009c265f4b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183971 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-04-10sc a11y: Deduplicate code for AccessibleEventObject creationMichael Weghorn
Change ScAccessibleContextBase::CommitChange from taking a `const AccessibleEventObject&` param to taking the parameters needed to create an AccessibleEventObject instead and create that event in ScAccessibleContextBase::CommitChange instead of having all callers do that themselves. This also aligns this with OAccessibleComponentHelper::NotifyAccessibleEvent and therefore prepares for turning ScAccessibleContextBase into an OAccessibleComponentHelper subclass in an upcoming commit, to further deduplicate XAccessibleEventBroadcaster and XAccessibleComponent implementations. For most cases, the event being created should be unchanged, with few exceptions for cases that looked a bit suspicious: 1) In ScAccessibleSpreadsheet::NotifyRefMode, a single event object was created and then reused multiple times, with just adjusting some of the members. While that is fine in general, the AccessibleEventObject::OldValue being set to the old/previous formula cell doesn't make sense for the AccessibleEventId::SELECTION_CHANGED_WITHIN and AccessibleEventId::SELECTION_CHANGED_ADD events, so it is no longer set there. (For other events, the doc in offapi/com/sun/star/accessibility/AccessibleEventId.idl also doesn't always document an `OldValue` to be set (or even says it should be empty), but at a quick glance, winaccessibility might still process it if set, so leave it in place for now. (This should potentially be revisited independently, not as part of a change like this that intends to not change behavior for end users.) 2) In ScAccessibleSpreadsheet::Notify, pass an empty/default-constructed uno::Any for the OldValue of the AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS event instead of an emtpy reference. The only handler in AccDescendantManagerEventListener::HandleChildChangedNoFocusEvent handles both the same way. Similar for any events further down where the OldValue would still be set as it's not explicitly unset. No change in user-observable behavior was noticed in a quick test of Calc with Orca and Accerciser and the gtk3 and qt6 VCL plugins on Linux with this commit in place. Change-Id: Ida3264b0935f544d4ce787b71684af148e47f86b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183931 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>