summaryrefslogtreecommitdiff
path: root/vcl/source/app/unohelp2.cxx
diff options
context:
space:
mode:
authorgokaysatir <gokaysatir@collabora.com>2020-09-22 13:00:44 +0300
committerJan Holesovsky <kendy@collabora.com>2020-09-30 15:08:16 +0200
commit9162014433f1c40b88e1093dfb458436e8ecf007 (patch)
tree61fdc53b6c0bdded66eec72cb093cb4c199a5dcd /vcl/source/app/unohelp2.cxx
parente3970b941db8783692beb606b7d9de4f833cb31b (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>
Diffstat (limited to 'vcl/source/app/unohelp2.cxx')
-rw-r--r--vcl/source/app/unohelp2.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/vcl/source/app/unohelp2.cxx b/vcl/source/app/unohelp2.cxx
index 832156788215..5cf0744467e5 100644
--- a/vcl/source/app/unohelp2.cxx
+++ b/vcl/source/app/unohelp2.cxx
@@ -40,7 +40,8 @@ namespace vcl { namespace 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 { namespace 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& )
{