summaryrefslogtreecommitdiff
path: root/include/vcl/transfer.hxx
AgeCommit message (Collapse)Author
2022-07-13clang-tidy modernize-pass-by-value in vclNoel Grandin
Change-Id: I9ddb786eb88213c53cf53067ced6899ca40ac6e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137000 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-13Fix typo in codeAndrea Gelmini
Change-Id: I2dd9383587fb3621f1f2bcc53c064c437de33bf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131493 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2021-12-01tdf#145964 related: also drop special-casing in TransferableHelper::SetStringMike Kaganski
Follow-up to commit 5fb9f4ffa9284c7248e2e82210506babaad4044d Change-Id: I46d5ea404f77ac5ff67b6ee6a42afee13274a481 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126174 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-30loplugin:constmethod handle more casesNoel Grandin
remove some of the naming limitations, and handle pointer parameters better. I only let the plugin run up till vcl/ Change-Id: Ice916e0157031ab531c47f10778f406b07966251 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122892 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-10warning: Excessive padding in 'struct OutDevState'Caolán McNamara
experiment with optin.performance.Padding analyzer and tuning AllowedPad to 2 with clang as compiler; export ENVCFLAGSCXX="-Xclang -analyze -Xclang -analyzer-checker=optin.performance -Xclang -analyzer-config -Xclang optin.performance.Padding:AllowedPad=2" and get a report of: OutDevState (13 padding bytes, where 5 is optimal) UIControlOptions (9 padding bytes, where 1 is optimal) Change-Id: I174f6f62d6e32df057d5e0f21d4274166f6ed8c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121812 Tested-by: Jenkins Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-31osl::Mutex->std::mutex in DropTargetHelperNoel Grandin
Change-Id: I7a8e58cb023576d671a8b39082f00029d784cc65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119728 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-31osl::Mutex->std::mutex in DragSourceHelperNoel Grandin
Change-Id: I886300dc65542f5e716fa970a9804c6084419515 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119727 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-19loplugin:finalclassesNoel Grandin
improve the plugin to detect more cases. I only apply the new final changes to classes in /include here. Which reveals that RoadmapWizard::getPageController( TabPage* _pCurrentPage ) will always return nullptr Also needed to sprinkle some SAL_DLLPUBLIC_TEMPLATE around to workaround Visual Studio linking problems. Change-Id: Iadb7d46a9e0e73dabce562375ca013c0fea6690c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117365 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-11TransferableDataHelper::CreateFromSelection doesn't use its argumentCaolán McNamara
Change-Id: Id43995411d850ae051d1d803bcea2745e1dc17a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112331 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-09fetch/set/clear primary selection without intermediate vcl::WindowCaolán McNamara
the intermediate layer doesn't do anything useful Change-Id: I00564f43db8914445ea4013c6f387c7d7c783427 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112170 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-18loplugin:referencecasting add check for new rtl::Reference operatorNoel
rtl::Reference now has a conversion operator to uno::Reference, so look for places where we can simplify the code and use that. Change-Id: Ic81db50d670bed5e875300577d4bf5f3599cc2c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110798 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-12-22split SotStorageStream into two classesNoel
since it has two completely different paths of control Change-Id: I89b739d318d52245208a4bda1230f69d19f3ae0e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108104 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-03use more compact namespace syntax in /includeNoel Grandin
excluding the UDK headers of course Change-Id: Iac7ab83d60265f7d362c860776f1de9d5e444ec0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93268 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-28IsDropFormatSupported can be constCaolán McNamara
Change-Id: I8a1c1d862a998fb0bef912bea5b6b4dd058c127f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93059 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-02-27inherit ScLinkTransferObj from TransferDataContainerCaolán McNamara
Change-Id: I04d8a673e92e847e1485f85d951172bf71a8877b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89647 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-01-19refactor CreateFromClipboard to support not passing in a vcl::WindowCaolán McNamara
Change-Id: I0474f390b34649debae18defdd1e860d7806b045 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87044 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2019-12-24sal_Char->char in vclNoel Grandin
Change-Id: I4359b7042f98586e2c9f5529d83d769cdf3d033c Reviewed-on: https://gerrit.libreoffice.org/85775 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-05make some classes module privateNoel Grandin
Mark some stuff SAL_DLLPUBLIC_RTTI in include/vcl/metaact.hxx in order to make ASAN happy. Change-Id: I97febe0968bf58b9cbe60ce647f0ada25e6f4bb0 Reviewed-on: https://gerrit.libreoffice.org/84202 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-01weld FmFieldWinCaolán McNamara
needs drag source support fixes a leak of ColumnInfo data as well Change-Id: I671834726aed3fd4de096b56baaa592f51a9e73e Reviewed-on: https://gerrit.libreoffice.org/84147 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-10-31loplugin:finalclasses in vclNoel Grandin
Change-Id: Id6dd59d0a335d84c513059ed7870135cf9959af8 Reviewed-on: https://gerrit.libreoffice.org/81827 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-03Make sure TerminateListener doesn't outlive TransferableHelperStephan Bergmann
With <https://gerrit.libreoffice.org/#/c/80147/> "Propagate soffice process failure from OfficeConnection's tearDown" included, UITest_calc_tests2 would start to fail with > ==1492559==ERROR: AddressSanitizer: heap-use-after-free on address 0x6110009d26a8 at pc 0x7f38d09d1eda bp 0x7f3814e617f0 sp 0x7f3814e617e8 > READ of size 8 at 0x6110009d26a8 thread T44 (cppu_threadpool) > #0 in com::sun::star::uno::BaseReference::is() const at include/com/sun/star/uno/Reference.h:94:27 > #1 in TransferableHelper::ImplFlush() at vcl/source/treelist/transfer.cxx:518:22 > #2 in TransferableHelper::TerminateListener::notifyTermination(com::sun::star::lang::EventObject const&) at vcl/source/treelist/transfer.cxx:254:14 > #3 in framework::Desktop::impl_sendTerminateToClipboard() at framework/source/services/desktop.cxx:1655:24 > #4 in framework::Desktop::terminate() at framework/source/services/desktop.cxx:332:13 > #5 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5 > #6 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13 > #7 in unoInterfaceProxyDispatch at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:413:13 > #8 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const at binaryurp/source/incomingrequest.cxx:236:13 > #9 in binaryurp::IncomingRequest::execute() const at binaryurp/source/incomingrequest.cxx:79:26 > #10 in request at binaryurp/source/reader.cxx:85:9 > #11 in cppu_threadpool::JobQueue::enter(long, bool) at cppu/source/threadpool/jobqueue.cxx:107:17 > #12 in cppu_threadpool::ORequestThread::run() at cppu/source/threadpool/thread.cxx:165:31 > 0x6110009d26a8 is located 104 bytes inside of 216-byte region [0x6110009d2640,0x6110009d2718) > freed by thread T0 here: > #0 in free at /home/sbergman/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:123:3 > #1 in rtl_freeMemory at sal/rtl/alloc_global.cxx:51:5 > #2 in cppu::OWeakObject::operator delete(void*) at include/cppuhelper/weak.hxx:87:11 > #3 in ScSelectionTransferObj::~ScSelectionTransferObj() at sc/source/ui/app/seltrans.cxx:149:1 > #4 in cppu::OWeakObject::release() at cppuhelper/source/weak.cxx:233:9 > #5 in cppu::WeakImplHelper<com::sun::star::datatransfer::XTransferable2, com::sun::star::datatransfer::clipboard::XClipboardOwner, com::sun::star::datatransfer::dnd::XDragSourceListener, com::sun::star::lang::XUnoTunnel>::release() at include/cppuhelper/implbase.hxx:115:62 > #6 in com::sun::star::uno::Reference<com::sun::star::datatransfer::XTransferable>::~Reference() at include/com/sun/star/uno/Reference.hxx:110:22 > #7 in vcl::GenericClipboard::~GenericClipboard() at vcl/source/components/dtranscomp.cxx:49:7 > #8 in cppu::OWeakObject::release() at cppuhelper/source/weak.cxx:233:9 > #9 in cppu::WeakComponentImplHelperBase::release() at cppuhelper/source/implbase.cxx:84:22 > #10 in cppu::PartialWeakComponentImplHelper<com::sun::star::datatransfer::clipboard::XSystemClipboard, com::sun::star::lang::XServiceInfo>::release() at include/cppuhelper/compbase.hxx:86:36 > #11 in com::sun::star::uno::Reference<com::sun::star::datatransfer::clipboard::XClipboard>::~Reference() at include/com/sun/star/uno/Reference.hxx:110:22 > #12 in ImplFrameData::~ImplFrameData() at vcl/inc/window.h:126:8 > #13 in vcl::Window::dispose() at vcl/source/window/window.cxx:550:9 > #14 in ImplBorderWindow::dispose() at vcl/source/window/brdwin.cxx:1664:18 > #15 in VclReferenceBase::disposeOnce() at vcl/source/outdev/vclreferencebase.cxx:38:5 > #16 in VclPtr<vcl::Window>::disposeAndClear() at include/vcl/vclptr.hxx:206:19 > #17 in vcl::Window::dispose() at vcl/source/window/window.cxx:517:34 > #18 in SystemWindow::dispose() at vcl/source/window/syswin.cxx:108:13 > #19 in WorkWindow::dispose() at vcl/source/window/wrkwin.cxx:128:19 > #20 in VclReferenceBase::disposeOnce() at vcl/source/outdev/vclreferencebase.cxx:38:5 > #21 in VclPtr<OutputDevice>::disposeAndClear() at include/vcl/vclptr.hxx:206:19 > #22 in VCLXWindow::dispose() at toolkit/source/awt/vclxwindow.cxx:939:21 > #23 in (anonymous namespace)::XFrameImpl::disposing() at framework/source/services/frame.cxx:2183:18 > #24 in cppu::WeakComponentImplHelperBase::dispose() at cppuhelper/source/implbase.cxx:102:17 > #25 in cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo, com::sun::star::frame::XFrame2, com::sun::star::awt::XWindowListener, com::sun::star::awt::XTopWindowListener, com::sun::star::awt::XFocusListener, com::sun::star::document::XActionLockable, com::sun::star::util::XCloseable, com::sun::star::frame::XComponentLoader, com::sun::star::frame::XTitle, com::sun::star::frame::XTitleChangeBroadcaster, com::sun::star::beans::XPropertySet, com::sun::star::beans::XPropertySetInfo>::dispose() at include/cppuhelper/compbase.hxx:90:36 > #26 in (anonymous namespace)::XFrameImpl::close(unsigned char) at framework/source/services/frame.cxx:1728:5 > #27 in framework::pattern::frame::closeIt(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&) at framework/source/inc/pattern/frame.hxx:62:21 > #28 in framework::CloseDispatcher::implts_closeFrame() at framework/source/dispatch/closedispatcher.cxx:492:10 > #29 in framework::CloseDispatcher::impl_asyncCallback(LinkParamNone*) at framework/source/dispatch/closedispatcher.cxx:371:20 > #30 in framework::CloseDispatcher::LinkStubimpl_asyncCallback(void*, LinkParamNone*) at framework/source/dispatch/closedispatcher.cxx:246:1 > #31 in Link<LinkParamNone*, void>::Call(LinkParamNone*) const at include/tools/link.hxx:112:45 > #32 in vcl::EventPoster::DoEvent_Impl(void*) at vcl/source/helper/evntpost.cxx:52:13 > #33 in vcl::EventPoster::LinkStubDoEvent_Impl(void*, void*) at vcl/source/helper/evntpost.cxx:48:1 > #34 in Link<void*, void>::Call(void*) const at include/tools/link.hxx:112:45 > #35 in ImplHandleUserEvent(ImplSVEvent*) at vcl/source/window/winproc.cxx:1960:30 > #36 in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at vcl/source/window/winproc.cxx:2513:13 > #37 in SalFrame::CallCallback(SalEvent, void const*) const at vcl/inc/salframe.hxx:299:29 > #38 in SvpSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) at vcl/headless/svpinst.cxx:283:22 > #39 in non-virtual thunk to SvpSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) at vcl/headless/svpinst.cxx > #40 in SalUserEventList::DispatchUserEvents(bool) at vcl/source/app/salusereventlist.cxx:108:17 > #41 in SvpSalInstance::DoYield(bool, bool) at vcl/headless/svpinst.cxx:428:19 > #42 in ImplYield(bool, bool) at vcl/source/app/svapp.cxx:446:48 > #43 in Application::Yield() at vcl/source/app/svapp.cxx:510:5 > #44 in Application::Execute() at vcl/source/app/svapp.cxx:427:9 > #45 in desktop::Desktop::Main() at desktop/source/app/app.cxx:1620:17 > #46 in ImplSVMain() at vcl/source/app/svmain.cxx:190:35 Not sure if there is a better fix that would guarantee that mxTerminateListener can never be non-null in ~TransferableHelper. (It is cleared in TransferableHelper::lostOwnership, so maybe a call to that is missing somewhere, or there is a race here?) Change-Id: I6d190b9565a352c1d454fd66ba598bf1b9e8d875 Reviewed-on: https://gerrit.libreoffice.org/80149 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-09-24copy to clipboard without intermediate vcl::WindowCaolán McNamara
Change-Id: I36d26e583e08ef66564e232b54fa00a468a280c6 Reviewed-on: https://gerrit.libreoffice.org/79453 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-08-23Mark move ctors/assignments noexceptMike Kaganski
This should enable using move semantics where possible e.g. in standard containers. According to https://en.cppreference.com/w/cpp/language/move_constructor: To make strong exception guarantee possible, user-defined move constructors should not throw exceptions. For example, std::vector relies on std::move_if_noexcept to choose between move and copy when the elements need to be relocated. Change-Id: I6e1e1cdd5cd430b139ffa2fa7031fb0bb625decb Reviewed-on: https://gerrit.libreoffice.org/77957 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-08-02LOK: Support detecting complex selectionsAshod Nakashian
Includes unit-test, but is otherwise not complete implementation. Change-Id: I5fdcd543358caab1858f6351238c21312665839c
2019-07-10tdf#126316 revert Clipboard to PrimarySelectionJan-Marek Glogowski
Regression from commit ce9795954d39 ("fix crash in header/footer calc dialog"), which replaced some GetPrimarySelection() calls with GetClipboard() calls. This replaces the Window class calls for clipboard with global GetSystem* calls in vcl/transfer.hxx. Not sure if this is the best place, but the crowded Window class is definitly not. Change-Id: Ic5f9e575c1ac5d43df234426c5616eca616dea30 Reviewed-on: https://gerrit.libreoffice.org/75318 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-04-12loplugin:unusedmethodsNoel Grandin
Change-Id: Ie90e53583484ee4f378ec92634adf3be7cd9ecbb Reviewed-on: https://gerrit.libreoffice.org/70650 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-20tdf#42949 Fix IWYU warnings in include/vcl/[t-u]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ib32ea54a3fa690a0722fa75ddb4121ec78c0b64f Reviewed-on: https://gerrit.libreoffice.org/65386 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-11-19loplugin:constantparamNoel Grandin
Change-Id: Ifc2a8db82bd8bb508bce7f226e2cb499d1e6f6f8 Reviewed-on: https://gerrit.libreoffice.org/63492 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-07move SvTreeListBox to vclCaolán McNamara
Change-Id: I04a146d3d8a428ac1678827dc883525c40240a44 Reviewed-on: https://gerrit.libreoffice.org/62787 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>