diff options
author | gokaysatir <gokaysatir@collabora.com> | 2020-09-22 13:00:44 +0300 |
---|---|---|
committer | Gökay ŞATIR <gokaysatir@collabora.com> | 2020-10-06 18:47:39 +0200 |
commit | 19a0fbf456129e011cb9ab9ab6ab730cba274bbd (patch) | |
tree | 6037565ea6a511144fe5f6aa4528ce5e6bd86611 /vcl | |
parent | 1f8fbff65d91f1d8297b94dd67fffceb7475dce5 (diff) |
Online: Copy hyperlink location. / Core side.
Payload format is added to LOK_CALLBACK_CLIPBOARD_CHANGED.
Clipboard changed event is not fired when "copy hyperlink location" command is issued.
So i added a call to LOK_CALLBACK_CLIPBOARD_CHANGED inside TextDataObject::CopyStringTo function.
Change-Id: I8157572288da88b5522662e13abe151ef8548b34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103164
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103872
Tested-by: Jenkins
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/app/unohelp2.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/vcl/source/app/unohelp2.cxx b/vcl/source/app/unohelp2.cxx index 9005467d90e4..8e33aeefc55a 100644 --- a/vcl/source/app/unohelp2.cxx +++ b/vcl/source/app/unohelp2.cxx @@ -40,7 +40,8 @@ namespace vcl::unohelper { } void TextDataObject::CopyStringTo( const OUString& rContent, - const uno::Reference< datatransfer::clipboard::XClipboard >& rxClipboard ) + const uno::Reference< datatransfer::clipboard::XClipboard >& rxClipboard, + std::function<void (int, const char*)> *callback) { SAL_WARN_IF( !rxClipboard.is(), "vcl", "TextDataObject::CopyStringTo: invalid clipboard!" ); if ( !rxClipboard.is() ) @@ -56,6 +57,16 @@ namespace vcl::unohelper { uno::Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( rxClipboard, uno::UNO_QUERY ); if( xFlushableClipboard.is() ) xFlushableClipboard->flushClipboard(); + + if (callback != nullptr && comphelper::LibreOfficeKit::isActive()) + { + boost::property_tree::ptree aTree; + aTree.put("content", rContent); + aTree.put("mimeType", "text/plain"); + std::stringstream aStream; + boost::property_tree::write_json(aStream, aTree); + (*callback)(LOK_CALLBACK_CLIPBOARD_CHANGED, aStream.str().c_str()); + } } catch( const uno::Exception& ) { |