diff options
author | gokaysatir <gokaysatir@collabora.com> | 2020-10-07 12:57:13 +0300 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2020-10-08 13:56:55 +0200 |
commit | ca84daab26d4fec1b43be81478ef629f8c1be7cf (patch) | |
tree | e1405659d6f17514b4e96f88667154873af6c06c | |
parent | bbeb488ce5de2b6fa361b3e623b838e0237b128d (diff) |
Online: "Copy hyperlink location" feature improvement.
Lambda functions are replaced with class pointers.
Change-Id: I48628d3105533aad2463bd8ade1f65cf5b154b0f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104054
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r-- | include/LibreOfficeKit/LibreOfficeKitEnums.h | 2 | ||||
-rw-r--r-- | include/vcl/unohelp2.hxx | 3 | ||||
-rw-r--r-- | sc/source/ui/view/editsh.cxx | 8 | ||||
-rw-r--r-- | sd/source/ui/view/drviews2.cxx | 12 | ||||
-rw-r--r-- | sw/source/uibase/shells/textsh1.cxx | 8 | ||||
-rw-r--r-- | vcl/source/app/unohelp2.cxx | 6 |
6 files changed, 9 insertions, 30 deletions
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h index 79cc937e349c..94e4b95c0631 100644 --- a/include/LibreOfficeKit/LibreOfficeKitEnums.h +++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h @@ -646,7 +646,7 @@ typedef enum * * Payload is optional. When payload is empty, Online gets string from selected text. * Payload format is JSON. - * Example: { "mimeType": "string", "content": "some content" } + * Example: { "mimeType": "text/plain", "content": "some content" } */ LOK_CALLBACK_CLIPBOARD_CHANGED = 38, diff --git a/include/vcl/unohelp2.hxx b/include/vcl/unohelp2.hxx index 219244964eee..4e0567a64301 100644 --- a/include/vcl/unohelp2.hxx +++ b/include/vcl/unohelp2.hxx @@ -28,6 +28,7 @@ #include <comphelper/lok.hxx> #include <LibreOfficeKit/LibreOfficeKitEnums.h> #include <boost/property_tree/json_parser.hpp> +#include <vcl/IDialogRenderable.hxx> namespace com { namespace sun { namespace star { namespace datatransfer { namespace clipboard { class XClipboard; @@ -60,7 +61,7 @@ namespace vcl { namespace unohelper { static void CopyStringTo( const OUString& rContent, const css::uno::Reference< css::datatransfer::clipboard::XClipboard >& rxClipboard, - std::function<void (int, const char*)> *callback = nullptr + const vcl::ILibreOfficeKitNotifier* pNotifier = nullptr ); }; diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx index 03b282f942fb..359a4e0994a7 100644 --- a/sc/source/ui/view/editsh.cxx +++ b/sc/source/ui/view/editsh.cxx @@ -642,13 +642,7 @@ void ScEditShell::Execute( SfxRequest& rReq ) uno::Reference<datatransfer::clipboard::XClipboard> xClipboard = pEditView->GetWindow()->GetClipboard(); - if (comphelper::LibreOfficeKit::isActive()) - { - std::function<void (int, const char*)> callback = [&] (int callbackType, const char* text) { pViewData->GetViewShell()->libreOfficeKitViewCallback(callbackType, text); } ; - vcl::unohelper::TextDataObject::CopyStringTo(pURLField->GetURL(), xClipboard, &callback); - } - else - vcl::unohelper::TextDataObject::CopyStringTo(pURLField->GetURL(), xClipboard, nullptr); + vcl::unohelper::TextDataObject::CopyStringTo(pURLField->GetURL(), xClipboard, SfxViewShell::Current()); } } break; diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index 7bcf623b40df..ad6802318591 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -2252,17 +2252,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) uno::Reference<datatransfer::clipboard::XClipboard> xClipboard = pOutView->GetWindow()->GetClipboard(); - if (comphelper::LibreOfficeKit::isActive()) - { - std::function<void (int, const char*)> callback = [&] (int callbackType, const char* text) - { - SfxViewFrame* pFrame = GetViewFrame(); - pFrame->GetViewShell()->libreOfficeKitViewCallback(callbackType, text); - }; - vcl::unohelper::TextDataObject::CopyStringTo(pURLField->GetURL(), xClipboard, &callback); - } - else - vcl::unohelper::TextDataObject::CopyStringTo(pURLField->GetURL(), xClipboard); + vcl::unohelper::TextDataObject::CopyStringTo(pURLField->GetURL(), xClipboard, SfxViewShell::Current()); } } diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx index a8389f3508ab..298c6ed4a2c9 100644 --- a/sw/source/uibase/shells/textsh1.cxx +++ b/sw/source/uibase/shells/textsh1.cxx @@ -1362,13 +1362,7 @@ void SwTextShell::Execute(SfxRequest &rReq) OUString hyperlinkLocation = rINetFormat.GetValue(); ::uno::Reference< datatransfer::clipboard::XClipboard > xClipboard = GetView().GetEditWin().GetClipboard(); - if (comphelper::LibreOfficeKit::isActive()) - { - std::function<void (int, const char*)> callback = [&] (int callbackType, const char* text) { GetView().libreOfficeKitViewCallback(callbackType, text); } ; - vcl::unohelper::TextDataObject::CopyStringTo(hyperlinkLocation, xClipboard, &callback ); - } - else - vcl::unohelper::TextDataObject::CopyStringTo(hyperlinkLocation, xClipboard, nullptr ); + vcl::unohelper::TextDataObject::CopyStringTo(hyperlinkLocation, xClipboard, SfxViewShell::Current()); } else rWrtSh.ClickToINetAttr(rINetFormat); diff --git a/vcl/source/app/unohelp2.cxx b/vcl/source/app/unohelp2.cxx index 5cf0744467e5..cb7dc8f7d323 100644 --- a/vcl/source/app/unohelp2.cxx +++ b/vcl/source/app/unohelp2.cxx @@ -41,7 +41,7 @@ namespace vcl { namespace unohelper { void TextDataObject::CopyStringTo( const OUString& rContent, const uno::Reference< datatransfer::clipboard::XClipboard >& rxClipboard, - std::function<void (int, const char*)> *callback) + const vcl::ILibreOfficeKitNotifier* pNotifier) { SAL_WARN_IF( !rxClipboard.is(), "vcl", "TextDataObject::CopyStringTo: invalid clipboard!" ); if ( !rxClipboard.is() ) @@ -58,14 +58,14 @@ namespace vcl { namespace unohelper { if( xFlushableClipboard.is() ) xFlushableClipboard->flushClipboard(); - if (callback != nullptr && comphelper::LibreOfficeKit::isActive()) + if (pNotifier != 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()); + pNotifier->libreOfficeKitViewCallback(LOK_CALLBACK_CLIPBOARD_CHANGED, aStream.str().c_str()); } } catch( const uno::Exception& ) |