include/vcl/toolkit/edit.hxx | 2 +- include/vcl/transfer.hxx | 7 ++++--- stoc/source/servicemanager/servicemanager.cxx | 3 ++- ucbhelper/source/client/content.cxx | 2 +- ucbhelper/source/provider/resultset.cxx | 4 ++-- vcl/inc/window.h | 6 ++++-- vcl/source/control/edit.cxx | 12 ++++-------- vcl/source/edit/textview.cxx | 8 +++----- vcl/source/treelist/transfer.cxx | 2 +- vcl/source/window/dockwin.cxx | 1 + vcl/source/window/mouse.cxx | 7 +++---- vcl/source/window/window.cxx | 11 +++++------ vcl/source/window/winproc.cxx | 26 ++++++++++++-------------- vcl/unx/generic/dtrans/X11_selection.cxx | 2 +- vcl/unx/generic/dtrans/X11_selection.hxx | 5 +++-- 15 files changed, 47 insertions(+), 51 deletions(-)
New commits: commit 5cd1f77618ec3d74c8c9c0743b9daef7108bc80a Author: Noel Grandin <[email protected]> AuthorDate: Tue Sep 10 13:09:12 2024 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Tue Sep 10 17:17:51 2024 +0200 use more concrete UNO type in vcl Change-Id: I157109d11b349e1304a3279471d4ab90b65b5841 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173138 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/include/vcl/toolkit/edit.hxx b/include/vcl/toolkit/edit.hxx index be84069b99ca..93abf1c5dd63 100644 --- a/include/vcl/toolkit/edit.hxx +++ b/include/vcl/toolkit/edit.hxx @@ -85,7 +85,7 @@ private: css::uno::Reference<css::i18n::XBreakIterator> mxBreakIterator; css::uno::Reference<css::i18n::XExtendedInputSequenceChecker> mxISC; - css::uno::Reference<css::datatransfer::dnd::XDragSourceListener > mxDnDListener; + rtl::Reference<vcl::unohelper::DragAndDropWrapper> mxDnDListener; SAL_DLLPRIVATE bool ImplTruncateToMaxLen( OUString&, sal_Int32 nSelectionLen ) const; SAL_DLLPRIVATE void ImplInitEditData(); diff --git a/include/vcl/transfer.hxx b/include/vcl/transfer.hxx index 3f07a9f6aab9..4a13f99db1b1 100644 --- a/include/vcl/transfer.hxx +++ b/include/vcl/transfer.hxx @@ -39,6 +39,7 @@ #include <com/sun/star/datatransfer/dnd/XDragSourceListener.hpp> #include <com/sun/star/datatransfer/dnd/XDropTargetListener.hpp> #include <com/sun/star/embed/Aspects.hpp> +#include <rtl/ref.hxx> #include <memory> #include <mutex> #include <utility> @@ -166,7 +167,7 @@ private: css::uno::Any maAny; OUString maLastFormat; mutable css::uno::Reference< css::datatransfer::clipboard::XClipboard > mxClipboard; - css::uno::Reference< css::frame::XTerminateListener > mxTerminateListener; + rtl::Reference< TerminateListener > mxTerminateListener; DataFlavorExVector maFormats; std::unique_ptr<TransferableObjectDescriptor> mxObjDesc; @@ -399,7 +400,7 @@ private: std::mutex maMutex; css::uno::Reference< css::datatransfer::dnd::XDragGestureRecognizer > mxDragGestureRecognizer; - css::uno::Reference< css::datatransfer::dnd::XDragGestureListener > mxDragGestureListener; + rtl::Reference< DragSourceHelper::DragGestureListener > mxDragGestureListener; DragSourceHelper& operator=( const DragSourceHelper& rDragSourceHelper ) = delete; bool operator==( const DragSourceHelper& rDragSourceHelper ) const = delete; @@ -448,7 +449,7 @@ private: std::mutex maMutex; css::uno::Reference< css::datatransfer::dnd::XDropTarget > mxDropTarget; - css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > mxDropTargetListener; + rtl::Reference< DropTargetHelper::DropTargetListener > mxDropTargetListener; DataFlavorExVector maFormats; DropTargetHelper() = delete; diff --git a/vcl/inc/window.h b/vcl/inc/window.h index 69c61214ce7a..72d07bc85c01 100644 --- a/vcl/inc/window.h +++ b/vcl/inc/window.h @@ -48,6 +48,8 @@ class VCLXWindow; namespace vcl { class WindowData; } class SalFrame; class SalObject; +class DNDEventDispatcher; +class DNDListenerContainer; enum class MouseEventModifiers; enum class NotifyEventType; enum class ActivateModeFlags; @@ -173,7 +175,7 @@ struct ImplFrameData css::uno::Reference< css::datatransfer::dnd::XDragSource > mxDragSource; css::uno::Reference< css::datatransfer::dnd::XDropTarget > mxDropTarget; - css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > mxDropTargetListener; + rtl::Reference< DNDEventDispatcher > mxDropTargetListener; // css::datatransfer::dnd::XDropTargetListener css::uno::Reference< css::datatransfer::clipboard::XClipboard > mxClipboard; bool mbInternalDragGestureRecognizer; @@ -392,7 +394,7 @@ public: mbNonHomogeneous:1, mbDoubleBufferingRequested:1; - css::uno::Reference< css::uno::XInterface > mxDNDListenerContainer; + rtl::Reference< DNDListenerContainer > mxDNDListenerContainer; const vcl::ILibreOfficeKitNotifier* mpLOKNotifier; ///< To emit the LOK callbacks eg. for dialog tunneling. vcl::LOKWindowId mnLOKWindowId; ///< ID of this specific window. diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index c2a7c4c9ccf8..563d47d06654 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -240,13 +240,11 @@ void Edit::dispose() { if ( GetDragGestureRecognizer().is() ) { - uno::Reference< datatransfer::dnd::XDragGestureListener> xDGL( mxDnDListener, uno::UNO_QUERY ); - GetDragGestureRecognizer()->removeDragGestureListener( xDGL ); + GetDragGestureRecognizer()->removeDragGestureListener( mxDnDListener ); } if ( GetDropTarget().is() ) { - uno::Reference< datatransfer::dnd::XDropTargetListener> xDTL( mxDnDListener, uno::UNO_QUERY ); - GetDropTarget()->removeDropTargetListener( xDTL ); + GetDropTarget()->removeDropTargetListener( mxDnDListener ); } mxDnDListener->disposing( lang::EventObject() ); // #95154# #96585# Empty Source means it's the Client @@ -330,13 +328,11 @@ void Edit::ImplInit(vcl::Window* pParent, WinBits nStyle) SetPointer( PointerStyle::Text ); ApplySettings(*GetOutDev()); - uno::Reference< datatransfer::dnd::XDragGestureListener> xDGL( mxDnDListener, uno::UNO_QUERY ); uno::Reference< datatransfer::dnd::XDragGestureRecognizer > xDGR = GetDragGestureRecognizer(); if ( xDGR.is() ) { - xDGR->addDragGestureListener( xDGL ); - uno::Reference< datatransfer::dnd::XDropTargetListener> xDTL( mxDnDListener, uno::UNO_QUERY ); - GetDropTarget()->addDropTargetListener( xDTL ); + xDGR->addDragGestureListener( mxDnDListener ); + GetDropTarget()->addDropTargetListener( mxDnDListener ); GetDropTarget()->setActive( true ); GetDropTarget()->setDefaultActions( datatransfer::dnd::DNDConstants::ACTION_COPY_OR_MOVE ); } diff --git a/vcl/source/edit/textview.cxx b/vcl/source/edit/textview.cxx index 3a4be751c234..d87213a413c3 100644 --- a/vcl/source/edit/textview.cxx +++ b/vcl/source/edit/textview.cxx @@ -133,7 +133,7 @@ struct ImpTextView std::unique_ptr<SelectionEngine> mpSelEngine; std::unique_ptr<TextSelFunctionSet> mpSelFuncSet; - css::uno::Reference< css::datatransfer::dnd::XDragSourceListener > mxDnDListener; + rtl::Reference< vcl::unohelper::DragAndDropWrapper > mxDnDListener; sal_uInt16 mnTravelXPos; @@ -182,10 +182,8 @@ TextView::TextView( ExtTextEngine* pEng, vcl::Window* pWindow ) : { mpImpl->mxDnDListener = new vcl::unohelper::DragAndDropWrapper( this ); - css::uno::Reference< css::datatransfer::dnd::XDragGestureListener> xDGL( mpImpl->mxDnDListener, css::uno::UNO_QUERY ); - pWindow->GetDragGestureRecognizer()->addDragGestureListener( xDGL ); - css::uno::Reference< css::datatransfer::dnd::XDropTargetListener> xDTL( xDGL, css::uno::UNO_QUERY ); - pWindow->GetDropTarget()->addDropTargetListener( xDTL ); + pWindow->GetDragGestureRecognizer()->addDragGestureListener( mpImpl->mxDnDListener ); + pWindow->GetDropTarget()->addDropTargetListener( mpImpl->mxDnDListener ); pWindow->GetDropTarget()->setActive( true ); pWindow->GetDropTarget()->setDefaultActions( css::datatransfer::dnd::DNDConstants::ACTION_COPY_OR_MOVE ); } diff --git a/vcl/source/treelist/transfer.cxx b/vcl/source/treelist/transfer.cxx index e0f424736a2f..0fbe9304d0d1 100644 --- a/vcl/source/treelist/transfer.cxx +++ b/vcl/source/treelist/transfer.cxx @@ -304,7 +304,7 @@ css::uno::Sequence<OUString> TransferableHelper::TerminateListener::getSupported TransferableHelper::~TransferableHelper() { - css::uno::Reference<css::frame::XTerminateListener> listener; + rtl::Reference< TerminateListener > listener; { const SolarMutexGuard aGuard; std::swap(listener, mxTerminateListener); diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx index a4c216b443af..c379a37788d1 100644 --- a/vcl/source/window/dockwin.cxx +++ b/vcl/source/window/dockwin.cxx @@ -33,6 +33,7 @@ #include <svdata.hxx> #include <window.h> #include <brdwin.hxx> +#include <dndlistenercontainer.hxx> #include "impldockingwrapper.hxx" diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx index eebcbd85f394..74cdfe89a605 100644 --- a/vcl/source/window/mouse.cxx +++ b/vcl/source/window/mouse.cxx @@ -687,8 +687,7 @@ Reference< css::datatransfer::dnd::XDropTarget > Window::GetDropTarget() if( xDragGestureRecognizer.is() ) { - xDragGestureRecognizer->addDragGestureListener( - Reference< css::datatransfer::dnd::XDragGestureListener > (mpWindowImpl->mpFrameData->mxDropTargetListener, UNO_QUERY)); + xDragGestureRecognizer->addDragGestureListener(mpWindowImpl->mpFrameData->mxDropTargetListener); } else mpWindowImpl->mpFrameData->mbInternalDragGestureRecognizer = true; @@ -705,11 +704,11 @@ Reference< css::datatransfer::dnd::XDropTarget > Window::GetDropTarget() } - mpWindowImpl->mxDNDListenerContainer = static_cast < css::datatransfer::dnd::XDropTarget * > ( new DNDListenerContainer( nDefaultActions ) ); + mpWindowImpl->mxDNDListenerContainer = new DNDListenerContainer( nDefaultActions ); } // this object is located in the same process, so there will be no runtime exception - return Reference< css::datatransfer::dnd::XDropTarget > ( mpWindowImpl->mxDNDListenerContainer, UNO_QUERY ); + return mpWindowImpl->mxDNDListenerContainer; } Reference< css::datatransfer::dnd::XDragSource > Window::GetDragSource() diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 683187bb6827..301b6c0cd51d 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -58,6 +58,8 @@ #include <toolbox.h> #include <brdwin.hxx> #include <helpwin.hxx> +#include <dndlistenercontainer.hxx> +#include <dndeventdispatcher.hxx> #include <com/sun/star/accessibility/AccessibleRelation.hpp> #include <com/sun/star/accessibility/XAccessible.hpp> @@ -174,10 +176,8 @@ void Window::dispose() } // shutdown drag and drop - Reference < XComponent > xDnDComponent( mpWindowImpl->mxDNDListenerContainer, UNO_QUERY ); - - if( xDnDComponent.is() ) - xDnDComponent->dispose(); + if( mpWindowImpl->mxDNDListenerContainer.is() ) + mpWindowImpl->mxDNDListenerContainer->dispose(); if( mpWindowImpl->mbFrame && mpWindowImpl->mpFrameData ) { @@ -189,8 +189,7 @@ void Window::dispose() Reference< XDragGestureRecognizer > xDragGestureRecognizer(mpWindowImpl->mpFrameData->mxDragSource, UNO_QUERY); if( xDragGestureRecognizer.is() ) { - xDragGestureRecognizer->removeDragGestureListener( - Reference< XDragGestureListener > (mpWindowImpl->mpFrameData->mxDropTargetListener, UNO_QUERY)); + xDragGestureRecognizer->removeDragGestureListener(mpWindowImpl->mpFrameData->mxDropTargetListener); } mpWindowImpl->mpFrameData->mxDropTarget->removeDropTargetListener( mpWindowImpl->mpFrameData->mxDropTargetListener ); diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx index 64c101a8c911..21e189cc8d33 100644 --- a/vcl/source/window/winproc.cxx +++ b/vcl/source/window/winproc.cxx @@ -482,9 +482,8 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, NotifyEventType n if( pMouseDownWin->ImplGetFrameData()->mbInternalDragGestureRecognizer ) { // query DropTarget from child window - css::uno::Reference< css::datatransfer::dnd::XDragGestureRecognizer > xDragGestureRecognizer( - pMouseDownWin->ImplGetWindowImpl()->mxDNDListenerContainer, - css::uno::UNO_QUERY ); + rtl::Reference< DNDListenerContainer > xDragGestureRecognizer( + pMouseDownWin->ImplGetWindowImpl()->mxDNDListenerContainer ); if( xDragGestureRecognizer.is() ) { @@ -513,7 +512,7 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, NotifyEventType n if( xDragSource.is() ) { - static_cast < DNDListenerContainer * > ( xDragGestureRecognizer.get() )->fireDragGestureEvent( 0, + xDragGestureRecognizer->fireDragGestureEvent( 0, relLoc.X(), relLoc.Y(), xDragSource, css::uno::Any( aMouseEvent ) ); } } @@ -836,8 +835,8 @@ bool ImplLOKHandleMouseEvent(const VclPtr<vcl::Window>& xWindow, NotifyEventType { css::uno::Reference<css::datatransfer::dnd::XDropTargetDragContext> xDropTargetDragContext = new GenericDropTargetDragContext(); - css::uno::Reference<css::datatransfer::dnd::XDropTarget> xDropTarget( - pDragWin->ImplGetWindowImpl()->mxDNDListenerContainer, css::uno::UNO_QUERY); + rtl::Reference<DNDListenerContainer> xDropTarget( + pDragWin->ImplGetWindowImpl()->mxDNDListenerContainer); if (!xDropTarget.is() || !xDropTargetDragContext.is() || @@ -848,7 +847,7 @@ bool ImplLOKHandleMouseEvent(const VclPtr<vcl::Window>& xWindow, NotifyEventType return false; } - static_cast<DNDListenerContainer *>(xDropTarget.get())->fireDragOverEvent( + xDropTarget->fireDragOverEvent( xDropTargetDragContext, css::datatransfer::dnd::DNDConstants::ACTION_MOVE, aWinPos.X(), @@ -867,8 +866,8 @@ bool ImplLOKHandleMouseEvent(const VclPtr<vcl::Window>& xWindow, NotifyEventType css::uno::Reference<css::datatransfer::XTransferable> xTransfer; css::uno::Reference<css::datatransfer::dnd::XDropTargetDropContext> xDropTargetDropContext = new GenericDropTargetDropContext(); - css::uno::Reference<css::datatransfer::dnd::XDropTarget> xDropTarget( - pDragWin->ImplGetWindowImpl()->mxDNDListenerContainer, css::uno::UNO_QUERY); + rtl::Reference<DNDListenerContainer> xDropTarget( + pDragWin->ImplGetWindowImpl()->mxDNDListenerContainer); if (!xDropTarget.is() || !xDropTargetDropContext.is()) { @@ -877,7 +876,7 @@ bool ImplLOKHandleMouseEvent(const VclPtr<vcl::Window>& xWindow, NotifyEventType } Point dragOverPos = pDragWin->ScreenToOutputPixel(aMousePos); - static_cast<DNDListenerContainer *>(xDropTarget.get())->fireDropEvent( + xDropTarget->fireDropEvent( xDropTargetDropContext, css::datatransfer::dnd::DNDConstants::ACTION_MOVE, dragOverPos.X(), @@ -922,9 +921,8 @@ bool ImplLOKHandleMouseEvent(const VclPtr<vcl::Window>& xWindow, NotifyEventType if (pFrameData->mbInternalDragGestureRecognizer) { // query DropTarget from child window - css::uno::Reference< css::datatransfer::dnd::XDragGestureRecognizer > xDragGestureRecognizer( - pDownWin->ImplGetWindowImpl()->mxDNDListenerContainer, - css::uno::UNO_QUERY ); + rtl::Reference<DNDListenerContainer> xDragGestureRecognizer( + pDownWin->ImplGetWindowImpl()->mxDNDListenerContainer ); if (xDragGestureRecognizer.is()) { @@ -946,7 +944,7 @@ bool ImplLOKHandleMouseEvent(const VclPtr<vcl::Window>& xWindow, NotifyEventType if (xDragSource.is()) { - static_cast<DNDListenerContainer *>(xDragGestureRecognizer.get())-> + xDragGestureRecognizer-> fireDragGestureEvent( 0, aWinPos.X(), diff --git a/vcl/unx/generic/dtrans/X11_selection.cxx b/vcl/unx/generic/dtrans/X11_selection.cxx index f9c3201b68fd..0a342fa7f5cc 100644 --- a/vcl/unx/generic/dtrans/X11_selection.cxx +++ b/vcl/unx/generic/dtrans/X11_selection.cxx @@ -4107,7 +4107,7 @@ void SelectionManagerHolder::initialize( const Sequence< Any >& arguments ) SelectionManager& rManager = SelectionManager::get( aDisplayName ); rManager.initialize( arguments ); - m_xRealDragSource = static_cast< XDragSource* >(&rManager); + m_xRealDragSource = &rManager; } /* diff --git a/vcl/unx/generic/dtrans/X11_selection.hxx b/vcl/unx/generic/dtrans/X11_selection.hxx index bbfe07e5f6b9..1a448083bef1 100644 --- a/vcl/unx/generic/dtrans/X11_selection.hxx +++ b/vcl/unx/generic/dtrans/X11_selection.hxx @@ -44,6 +44,7 @@ namespace x11 { class PixmapHolder; // in bmp.hxx class SelectionManager; + class X11Transferable; rtl_TextEncoding getTextPlainEncoding( const OUString& rMimeType ); @@ -113,7 +114,7 @@ namespace x11 { > { ::osl::Mutex m_aMutex; - css::uno::Reference< css::datatransfer::dnd::XDragSource > + rtl::Reference< SelectionManager > m_xRealDragSource; public: SelectionManagerHolder(); @@ -266,7 +267,7 @@ namespace x11 { Time m_nDropTime; sal_Int8 m_nLastDropAction; // XTransferable for Xdnd with foreign drag source - css::uno::Reference< css::datatransfer::XTransferable > + rtl::Reference< X11Transferable > m_xDropTransferable; int m_nLastX, m_nLastY; // set to true when calling drop() commit b922fb69982f41962740f2abebaccf13e8c357a4 Author: Noel Grandin <[email protected]> AuthorDate: Tue Sep 10 13:09:03 2024 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Tue Sep 10 17:17:43 2024 +0200 use more concrete UNO type in ucbhelper Change-Id: I1ad512564e58aed731639dbf9dbb3e7d6ee7acef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173137 Reviewed-by: Noel Grandin <[email protected]> Tested-by: Jenkins diff --git a/ucbhelper/source/client/content.cxx b/ucbhelper/source/client/content.cxx index 27f1296e41b0..68db5fce9817 100644 --- a/ucbhelper/source/client/content.cxx +++ b/ucbhelper/source/client/content.cxx @@ -158,7 +158,7 @@ friend ContentEventListener_Impl; Reference< XContent > m_xContent; Reference< XCommandProcessor > m_xCommandProcessor; Reference< XCommandEnvironment > m_xEnv; - Reference< XContentEventListener > m_xContentEventListener; + rtl::Reference< ContentEventListener_Impl > m_xContentEventListener; mutable std::mutex m_aMutex; private: diff --git a/ucbhelper/source/provider/resultset.cxx b/ucbhelper/source/provider/resultset.cxx index 71fad0e8381c..9783e7e0f1d5 100644 --- a/ucbhelper/source/provider/resultset.cxx +++ b/ucbhelper/source/provider/resultset.cxx @@ -137,8 +137,8 @@ struct ResultSet_Impl { uno::Reference< uno::XComponentContext > m_xContext; uno::Reference< css::ucb::XCommandEnvironment > m_xEnv; - uno::Reference< beans::XPropertySetInfo > m_xPropSetInfo; - uno::Reference< sdbc::XResultSetMetaData > m_xMetaData; + rtl::Reference< PropertySetInfo > m_xPropSetInfo; + rtl::Reference< ResultSetMetaData > m_xMetaData; uno::Sequence< beans::Property > m_aProperties; rtl::Reference< ResultSetDataSupplier > m_xDataSupplier; std::mutex m_aMutex; commit b103bcee12afacef5316081bdacb32fc2eeefa31 Author: Noel Grandin <[email protected]> AuthorDate: Tue Sep 10 13:08:50 2024 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Tue Sep 10 17:17:36 2024 +0200 use more concrete UNO type in stoc Change-Id: I5e5196b5d0c67a697140af417f23b64e809bd074 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173136 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/stoc/source/servicemanager/servicemanager.cxx b/stoc/source/servicemanager/servicemanager.cxx index b43b8c1fb1f4..2aa0ed4ca6d7 100644 --- a/stoc/source/servicemanager/servicemanager.cxx +++ b/stoc/source/servicemanager/servicemanager.cxx @@ -31,6 +31,7 @@ #include <cppuhelper/compbase.hxx> #include <cppuhelper/supportsservice.hxx> #include <comphelper/sequence.hxx> +#include <rtl/ref.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XMultiComponentFactory.hpp> @@ -394,7 +395,7 @@ private: HashMultimap_OWString_Interface m_ServiceMap; HashSet_Ref m_ImplementationMap; HashMap_OWString_Interface m_ImplementationNameMap; - Reference<XEventListener > xFactoryListener; + rtl::Reference<OServiceManager_Listener > xFactoryListener; bool m_bInDisposing; };
