summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgokaysatir <gokaysatir@collabora.com>2020-10-07 12:57:13 +0300
committerJan Holesovsky <kendy@collabora.com>2020-12-10 09:28:18 +0100
commit52d7ea6e03ee66ee6a9c345ded4884fea54d8351 (patch)
treefb8d41cd4e653d133129aab7e2827bde8d9fd7ba
parent0ada274b4384e87dc027ac93fcee77f3f0bec7a2 (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/+/104057 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r--include/LibreOfficeKit/LibreOfficeKitEnums.h2
-rw-r--r--include/vcl/unohelp2.hxx3
-rw-r--r--sc/source/ui/view/editsh.cxx8
-rw-r--r--sd/source/ui/view/drviews2.cxx12
-rw-r--r--sw/source/uibase/shells/textsh1.cxx8
-rw-r--r--vcl/source/app/unohelp2.cxx6
6 files changed, 9 insertions, 30 deletions
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 287894fce122..2e2c7d14c8a1 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 c5e042333a40..b147d837d9c2 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 09589a2b2382..be004a1caed9 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -645,13 +645,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 ec1dda3cdb6e..c293d0369266 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -2240,17 +2240,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 9a032880ea18..4c78e37212a9 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1342,13 +1342,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& )