vcl/inc/qt5/QtClipboard.hxx | 4 ++-- vcl/inc/qt5/QtInstance.hxx | 4 ++-- vcl/qt5/QtClipboard.cxx | 3 +-- vcl/qt5/QtInstance.cxx | 8 ++++---- 4 files changed, 9 insertions(+), 10 deletions(-)
New commits: commit b0b7f4126c9ea07f5e85fb6b6da53bfb13259518 Author: Michael Weghorn <[email protected]> AuthorDate: Fri Feb 27 12:32:53 2026 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Sat Feb 28 09:15:47 2026 +0100 qt: Use more concrete QtClipboard type in QtInstance ... instead of the abstract css::datatransfer::clipboard::XClipboard UNO interface. Change-Id: I05b238496d54e462f132a324278a7e43db407950 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200616 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/vcl/inc/qt5/QtClipboard.hxx b/vcl/inc/qt5/QtClipboard.hxx index 99afc47123bd..6b7283769992 100644 --- a/vcl/inc/qt5/QtClipboard.hxx +++ b/vcl/inc/qt5/QtClipboard.hxx @@ -17,6 +17,7 @@ #include <com/sun/star/datatransfer/clipboard/XClipboardOwner.hpp> #include <com/sun/star/datatransfer/clipboard/XClipboardListener.hpp> #include <cppuhelper/compbase.hxx> +#include <rtl/ref.hxx> #include <QtGui/QClipboard> @@ -63,8 +64,7 @@ signals: public: // factory function to construct only valid QtClipboard objects by name - static css::uno::Reference<css::datatransfer::clipboard::XClipboard> - create(const OUString& aModeString); + static rtl::Reference<QtClipboard> create(const OUString& aModeString); // XServiceInfo virtual OUString SAL_CALL getImplementationName() override; diff --git a/vcl/inc/qt5/QtInstance.hxx b/vcl/inc/qt5/QtInstance.hxx index 1a688be5c3ef..a49e7b44c8fd 100644 --- a/vcl/inc/qt5/QtInstance.hxx +++ b/vcl/inc/qt5/QtInstance.hxx @@ -44,6 +44,7 @@ SAL_WNODEPRECATED_DECLARATIONS_POP #include "QtFilePicker.hxx" #include <salinst.hxx> +class QtClipboard; class QtFrame; class QtTimer; @@ -74,8 +75,7 @@ class VCLPLUG_QT_PUBLIC QtInstance : public QObject, const bool m_bUseCairo; QtTimer* m_pTimer; bool m_bSleeping; - std::unordered_map<OUString, css::uno::Reference<css::datatransfer::clipboard::XClipboard>> - m_aClipboards; + std::unordered_map<OUString, rtl::Reference<QtClipboard>> m_aClipboards; std::unique_ptr<QApplication> m_pQApplication; std::vector<FreeableCStr> m_pFakeArgvFreeable; diff --git a/vcl/qt5/QtClipboard.cxx b/vcl/qt5/QtClipboard.cxx index 2c451ec3bc5e..3666e366c6cc 100644 --- a/vcl/qt5/QtClipboard.cxx +++ b/vcl/qt5/QtClipboard.cxx @@ -47,8 +47,7 @@ QtClipboard::QtClipboard(const QClipboard::Mode eMode) Qt::QueuedConnection); } -css::uno::Reference<css::datatransfer::clipboard::XClipboard> -QtClipboard::create(const OUString& aModeString) +rtl::Reference<QtClipboard> QtClipboard::create(const OUString& aModeString) { static const std::map<OUString, QClipboard::Mode> aNameToClipboardMap = { { "CLIPBOARD", QClipboard::Clipboard }, { "PRIMARY", QClipboard::Selection } }; diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx index 8f47df7e8e09..f8fd10f223b5 100644 --- a/vcl/qt5/QtInstance.cxx +++ b/vcl/qt5/QtInstance.cxx @@ -668,12 +668,12 @@ QtInstance::CreateClipboard(const css::uno::Sequence<css::uno::Any>& arguments) if (it != m_aClipboards.end()) return it->second; - css::uno::Reference<css::datatransfer::clipboard::XClipboard> xClipboard + rtl::Reference<QtClipboard> pClipboard = EmscriptenLightweightRunInMainThread([&sel] { return QtClipboard::create(sel); }); - if (xClipboard.is()) - m_aClipboards[sel] = xClipboard; + if (pClipboard.is()) + m_aClipboards[sel] = pClipboard; - return xClipboard; + return pClipboard; } css::uno::Reference<css::datatransfer::dnd::XDragSource>
