diff options
author | gokaysatir <gokaysatir@collabora.com> | 2020-09-22 13:00:44 +0300 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-10-06 08:28:20 +0200 |
commit | ecbfd8963ce5b8459c00da589216ecf78d99a7f8 (patch) | |
tree | 166344d2a7d2f4203c635294b524c037b712e6d6 /include | |
parent | d483df8fee614261170f7b7b6ad8a3e155727a21 (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.h | 7 | ||||
-rw-r--r-- | include/editeng/editview.hxx | 4 | ||||
-rw-r--r-- | include/editeng/outliner.hxx | 4 | ||||
-rw-r--r-- | include/editeng/urlfieldhelper.hxx | 28 | ||||
-rw-r--r-- | include/svx/svxids.hrc | 2 | ||||
-rw-r--r-- | include/vcl/unohelp2.hxx | 6 |
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 ); }; |