summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorgokaysatir <gokaysatir@collabora.com>2020-09-22 13:00:44 +0300
committerAndras Timar <andras.timar@collabora.com>2020-10-06 08:28:20 +0200
commitecbfd8963ce5b8459c00da589216ecf78d99a7f8 (patch)
tree166344d2a7d2f4203c635294b524c037b712e6d6 /include
parentd483df8fee614261170f7b7b6ad8a3e155727a21 (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/+/103729 Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'include')
-rw-r--r--include/LibreOfficeKit/LibreOfficeKitEnums.h7
-rw-r--r--include/editeng/editview.hxx4
-rw-r--r--include/editeng/outliner.hxx4
-rw-r--r--include/editeng/urlfieldhelper.hxx28
-rw-r--r--include/svx/svxids.hrc2
-rw-r--r--include/vcl/unohelp2.hxx6
6 files changed, 46 insertions, 5 deletions
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 208ad9065950..287894fce122 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -644,10 +644,9 @@ typedef enum
* Notification that the clipboard contents have changed.
* Typically fired in response to copying to clipboard.
*
- * The payload currently is empty and it's up to the
- * client to get the contents, if necessary. However,
- * in the future the contents might be included for
- * convenience.
+ * Payload is optional. When payload is empty, Online gets string from selected text.
+ * Payload format is JSON.
+ * Example: { "mimeType": "string", "content": "some content" }
*/
LOK_CALLBACK_CLIPBOARD_CHANGED = 38,
diff --git a/include/editeng/editview.hxx b/include/editeng/editview.hxx
index 1d9ceece9d59..d7dff247593d 100644
--- a/include/editeng/editview.hxx
+++ b/include/editeng/editview.hxx
@@ -31,6 +31,7 @@
#include <vcl/cursor.hxx>
#include <vcl/errcode.hxx>
#include <editeng/editstat.hxx>
+#include <editeng/flditem.hxx>
#include <svl/languageoptions.hxx>
#include <LibreOfficeKit/LibreOfficeKitTypes.h>
#include <editeng/editdata.hxx>
@@ -270,6 +271,9 @@ public:
const SvxFieldItem* GetField( const Point& rPos, sal_Int32* pnPara = nullptr, sal_Int32* pnPos = nullptr ) const;
const SvxFieldItem* GetFieldAtSelection() const;
+ /// Select and return the field at the current cursor position
+ const SvxFieldData* GetFieldAtCursor() const;
+ void SelectFieldAtCursor();
void SetInvalidateMore( sal_uInt16 nPixel );
sal_uInt16 GetInvalidateMore() const;
diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx
index 68b13a311f36..e5c4796c5b04 100644
--- a/include/editeng/outliner.hxx
+++ b/include/editeng/outliner.hxx
@@ -313,6 +313,10 @@ public:
void InsertField( const SvxFieldItem& rFld );
const SvxFieldItem* GetFieldUnderMousePointer() const;
const SvxFieldItem* GetFieldAtSelection() const;
+ /// Return the field at the current cursor position or nullptr if no field found
+ const SvxFieldData* GetFieldAtCursor() const;
+ /// Select the field at the current cursor position
+ void SelectFieldAtCursor();
/** enables bullets for the selected paragraphs if the bullets/numbering of the first paragraph is off
or disables bullets/numbering for the selected paragraphs if the bullets/numbering of the first paragraph is on
diff --git a/include/editeng/urlfieldhelper.hxx b/include/editeng/urlfieldhelper.hxx
new file mode 100644
index 000000000000..9a1d53d15512
--- /dev/null
+++ b/include/editeng/urlfieldhelper.hxx
@@ -0,0 +1,28 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#pragma once
+
+#include <sal/config.h>
+#include <editeng/editengdllapi.h>
+#include <editeng/outliner.hxx>
+#include <editeng/editview.hxx>
+
+class EDITENG_DLLPUBLIC URLFieldHelper
+{
+public:
+ static void RemoveURLField(EditView& pEditView);
+ static bool IsCursorAtURLField(const EditView& pEditView);
+ static bool IsCursorAtURLField(const OutlinerView* pOLV)
+ {
+ return pOLV && IsCursorAtURLField(pOLV->GetEditView());
+ }
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 0ffe72e3bb30..7ab0eb4bab45 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -994,6 +994,8 @@ class SfxStringItem;
#define SID_TOGGLE_RESOLVED_NOTES ( SID_SVX_START + 1189 )
+#define SID_COPY_HYPERLINK_LOCATION ( SID_SVX_START + 1193 )
+
// #define SID_SHOW_SIDEBAR ( SID_SVX_START + 1190 ) -> sfxsids.hrc
// #define SID_HIDE_SIDEBAR ( SID_SVX_START + 1191 ) -> sfxsids.hrc
diff --git a/include/vcl/unohelp2.hxx b/include/vcl/unohelp2.hxx
index 6a59541198a0..c5e042333a40 100644
--- a/include/vcl/unohelp2.hxx
+++ b/include/vcl/unohelp2.hxx
@@ -25,6 +25,9 @@
#include <rtl/ustring.hxx>
#include <osl/mutex.hxx>
#include <vcl/dllapi.h>
+#include <comphelper/lok.hxx>
+#include <LibreOfficeKit/LibreOfficeKitEnums.h>
+#include <boost/property_tree/json_parser.hpp>
namespace com { namespace sun { namespace star { namespace datatransfer { namespace clipboard {
class XClipboard;
@@ -56,7 +59,8 @@ namespace vcl { namespace unohelper {
/// copies a given string to a given clipboard
static void CopyStringTo(
const OUString& rContent,
- const css::uno::Reference< css::datatransfer::clipboard::XClipboard >& rxClipboard
+ const css::uno::Reference< css::datatransfer::clipboard::XClipboard >& rxClipboard,
+ std::function<void (int, const char*)> *callback = nullptr
);
};