[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - include/svx officecfg/registry sc/sdi sc/source sc/uiconfig sd/inc sd/sdi sd/source sd/uiconfig svx/sdi
Gökay Åatır (via logerrit)
logerrit at kemper.freedesktop.org
Fri Oct 30 13:57:06 UTC 2020
include/svx/svxids.hrc | 4 -
officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu | 5 -
officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu | 13 +++
sc/sdi/drtxtob.sdi | 4 -
sc/sdi/editsh.sdi | 4 -
sc/source/ui/drawfunc/drtxtob.cxx | 22 +++++-
sc/source/ui/view/editsh.cxx | 20 +++++
sc/uiconfig/scalc/popupmenu/celledit.xml | 2
sc/uiconfig/scalc/popupmenu/drawtext.xml | 2
sd/inc/app.hrc | 2
sd/sdi/_drvwsh.sdi | 5 +
sd/source/ui/view/drviews2.cxx | 18 +++++
sd/source/ui/view/drviewsf.cxx | 8 ++
sd/uiconfig/sdraw/popupmenu/drawtext.xml | 2
sd/uiconfig/simpress/popupmenu/drawtext.xml | 2
svx/sdi/svx.sdi | 36 ++++++++++
16 files changed, 139 insertions(+), 10 deletions(-)
New commits:
commit c7952cb2646f7c385b68f8e7acce5cf2713c567c
Author: Gökay Şatır <gokaysatir at collabora.com>
AuthorDate: Tue Oct 27 13:41:32 2020 +0300
Commit: Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Fri Oct 30 14:56:30 2020 +0100
Calc & Impress & Draw: Hyperlink features are added into context menu.
Change-Id: I9e7532d68469144ae104fabcff986a023544d076
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104866
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index ba043ae4752c..53d662859fab 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -998,13 +998,15 @@ class SfxStringItem;
#define SID_TOGGLE_RESOLVED_NOTES ( SID_SVX_START + 1189 )
+#define SID_EDIT_HYPERLINK ( SID_SVX_START + 1192 )
#define SID_COPY_HYPERLINK_LOCATION ( SID_SVX_START + 1193 )
+#define SID_REMOVE_HYPERLINK ( SID_SVX_START + 1194 )
// #define SID_SHOW_SIDEBAR ( SID_SVX_START + 1190 ) -> sfxsids.hrc
// #define SID_HIDE_SIDEBAR ( SID_SVX_START + 1191 ) -> sfxsids.hrc
// IMPORTANT NOTE: adjust SID_SVX_FIRSTFREE, when adding new slot id
-#define SID_SVX_FIRSTFREE ( SID_HIDE_SIDEBAR + 1 )
+#define SID_SVX_FIRSTFREE ( SID_REMOVE_HYPERLINK + 1 )
// Overflow check for slot IDs
#if SID_SVX_FIRSTFREE > SID_SVX_END
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu
index 6390f895c2d9..28553f672a30 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu
@@ -680,11 +680,6 @@
<value xml:lang="en-US">To C~ontour</value>
</prop>
</node>
- <node oor:name=".uno:EditHyperlink" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="en-US">~Hyperlink...</value>
- </prop>
- </node>
<node oor:name=".uno:HideLastLevel" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Hide Last Level</value>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 8f5af73972cf..0c46bd02366c 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -3250,11 +3250,24 @@
<value>1</value>
</prop>
</node>
+ <node oor:name=".uno:EditHyperlink" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">~Hyperlink</value>
+ </prop>
+ <prop oor:name="PopupLabel" oor:type="xs:string">
+ <value xml:lang="en-US">Edit Hyperlink...</value>
+ </prop>
+ </node>
<node oor:name=".uno:CopyHyperlinkLocation" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Copy Hyperlink Location</value>
</prop>
</node>
+ <node oor:name=".uno:RemoveHyperlink" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Remove Hyperlink</value>
+ </prop>
+ </node>
<node oor:name=".uno:OpenSmartTagMenuOnCursor" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Smart Tags</value>
diff --git a/sc/sdi/drtxtob.sdi b/sc/sdi/drtxtob.sdi
index 3f42f7d05550..fc0fefff65c0 100644
--- a/sc/sdi/drtxtob.sdi
+++ b/sc/sdi/drtxtob.sdi
@@ -129,8 +129,10 @@ interface TableDrawText
SID_HYPERLINK_SETLINK [ ExecMethod = Execute; Export = FALSE; ]
SID_HYPERLINK_GETLINK [ StateMethod = GetState; Export = FALSE; ]
- SID_OPEN_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_OPEN_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
SID_COPY_HYPERLINK_LOCATION [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_EDIT_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_REMOVE_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
SID_ENABLE_HYPHENATION [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
SID_TEXTDIRECTION_LEFT_TO_RIGHT [ ExecMethod = Execute; StateMethod = GetAttrState; Export = FALSE; ]
diff --git a/sc/sdi/editsh.sdi b/sc/sdi/editsh.sdi
index 9cda7e3f5dd4..13d661f8b9a9 100644
--- a/sc/sdi/editsh.sdi
+++ b/sc/sdi/editsh.sdi
@@ -78,8 +78,10 @@ interface TableText
SID_HYPERLINK_SETLINK [ ExecMethod = Execute; Export = FALSE; ]
SID_HYPERLINK_GETLINK [ StateMethod = GetState; Export = FALSE; ]
- SID_OPEN_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_OPEN_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
SID_COPY_HYPERLINK_LOCATION [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_EDIT_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
+ SID_REMOVE_HYPERLINK [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
SID_TRANSLITERATE_SENTENCE_CASE [ ExecMethod = ExecuteTrans; StateMethod = GetState; Export = FALSE; ]
SID_TRANSLITERATE_TITLE_CASE [ ExecMethod = ExecuteTrans; StateMethod = GetState; Export = FALSE; ]
SID_TRANSLITERATE_TOGGLE_CASE [ ExecMethod = ExecuteTrans; StateMethod = GetState; Export = FALSE; ]
diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx
index 550e64b4516c..1541f73d2def 100644
--- a/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/sc/source/ui/drawfunc/drtxtob.cxx
@@ -35,6 +35,7 @@
#include <editeng/lrspitem.hxx>
#include <editeng/lspcitem.hxx>
#include <editeng/ulspitem.hxx>
+#include <editeng/urlfieldhelper.hxx>
#include <svx/hlnkitem.hxx>
#include <svx/svdoutl.hxx>
#include <editeng/unolingu.hxx>
@@ -324,6 +325,14 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
}
break;
+ case SID_EDIT_HYPERLINK:
+ {
+ // Ensure the field is selected first
+ pOutView->SelectFieldAtCursor();
+ pViewData->GetViewShell()->GetViewFrame()->GetDispatcher()->Execute(SID_HYPERLINK_DIALOG);
+ }
+ break;
+
case SID_COPY_HYPERLINK_LOCATION:
{
const SvxFieldData* pField = pOutView->GetFieldAtCursor();
@@ -336,6 +345,13 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
}
break;
+ case SID_REMOVE_HYPERLINK:
+ {
+ // Ensure the field is selected first
+ URLFieldHelper::RemoveURLField(pOutView->GetEditView());
+ }
+ break;
+
case SID_ENABLE_HYPHENATION:
case SID_TEXTDIRECTION_LEFT_TO_RIGHT:
case SID_TEXTDIRECTION_TOP_TO_BOTTOM:
@@ -415,7 +431,9 @@ void ScDrawTextObjectBar::GetState( SfxItemSet& rSet )
}
if ( rSet.GetItemState( SID_OPEN_HYPERLINK ) != SfxItemState::UNKNOWN
- || rSet.GetItemState(SID_COPY_HYPERLINK_LOCATION) != SfxItemState::UNKNOWN)
+ || rSet.GetItemState(SID_EDIT_HYPERLINK) != SfxItemState::UNKNOWN
+ || rSet.GetItemState(SID_COPY_HYPERLINK_LOCATION) != SfxItemState::UNKNOWN
+ || rSet.GetItemState(SID_REMOVE_HYPERLINK) != SfxItemState::UNKNOWN)
{
SdrView* pView = pViewData->GetScDrawView();
OutlinerView* pOutView = pView->GetTextEditOutlinerView();
@@ -433,6 +451,8 @@ void ScDrawTextObjectBar::GetState( SfxItemSet& rSet )
{
rSet.DisableItem( SID_OPEN_HYPERLINK );
rSet.DisableItem( SID_COPY_HYPERLINK_LOCATION );
+ rSet.DisableItem( SID_EDIT_HYPERLINK );
+ rSet.DisableItem( SID_REMOVE_HYPERLINK );
}
}
diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx
index f03ff89f10e1..09589a2b2382 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -35,6 +35,7 @@
#include <editeng/flditem.hxx>
#include <editeng/flstitem.hxx>
#include <editeng/fontitem.hxx>
+#include <editeng/urlfieldhelper.hxx>
#include <svx/hlnkitem.hxx>
#include <vcl/EnumContext.hxx>
#include <editeng/postitem.hxx>
@@ -45,6 +46,7 @@
#include <editeng/wghtitem.hxx>
#include <sfx2/basedlgs.hxx>
#include <sfx2/bindings.hxx>
+#include <sfx2/dispatch.hxx>
#include <sfx2/msg.hxx>
#include <sfx2/objface.hxx>
#include <sfx2/objsh.hxx>
@@ -625,6 +627,16 @@ void ScEditShell::Execute( SfxRequest& rReq )
return;
}
break;
+
+ case SID_EDIT_HYPERLINK:
+ {
+ // Ensure the field is selected first
+ pEditView->SelectFieldAtCursor();
+ pViewData->GetViewShell()->GetViewFrame()->GetDispatcher()->Execute(
+ SID_HYPERLINK_DIALOG);
+ }
+ break;
+
case SID_COPY_HYPERLINK_LOCATION:
{
const SvxFieldData* pField = pEditView->GetFieldAtCursor();
@@ -644,6 +656,12 @@ void ScEditShell::Execute( SfxRequest& rReq )
}
break;
+ case SID_REMOVE_HYPERLINK:
+ {
+ URLFieldHelper::RemoveURLField(*pEditView);
+ }
+ break;
+
case FN_INSERT_SOFT_HYPHEN:
lclInsertCharacter( pTableView, pTopView, CHAR_SHY );
break;
@@ -765,7 +783,9 @@ void ScEditShell::GetState( SfxItemSet& rSet )
break;
case SID_OPEN_HYPERLINK:
+ case SID_EDIT_HYPERLINK:
case SID_COPY_HYPERLINK_LOCATION:
+ case SID_REMOVE_HYPERLINK:
{
if ( !GetURLField() )
rSet.DisableItem( nWhich );
diff --git a/sc/uiconfig/scalc/popupmenu/celledit.xml b/sc/uiconfig/scalc/popupmenu/celledit.xml
index bc111a951f49..26d9b78ce922 100644
--- a/sc/uiconfig/scalc/popupmenu/celledit.xml
+++ b/sc/uiconfig/scalc/popupmenu/celledit.xml
@@ -26,7 +26,9 @@
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:FontDialog"/>
<menu:menuitem menu:id=".uno:OpenHyperlinkOnCursor"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
<menu:menuitem menu:id=".uno:CopyHyperlinkLocation"/>
+ <menu:menuitem menu:id=".uno:RemoveHyperlink"/>
<menu:menuitem menu:id=".uno:ThesaurusFromContext"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:ResetAttributes"/>
diff --git a/sc/uiconfig/scalc/popupmenu/drawtext.xml b/sc/uiconfig/scalc/popupmenu/drawtext.xml
index 46aa721180cf..62a4f9141cee 100644
--- a/sc/uiconfig/scalc/popupmenu/drawtext.xml
+++ b/sc/uiconfig/scalc/popupmenu/drawtext.xml
@@ -24,7 +24,9 @@
<menu:menuitem menu:id=".uno:ParagraphDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:OpenHyperlinkOnCursor"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
<menu:menuitem menu:id=".uno:CopyHyperlinkLocation"/>
+ <menu:menuitem menu:id=".uno:RemoveHyperlink"/>
<menu:menuitem menu:id=".uno:ThesaurusFromContext"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:StandardTextAttributes"/>
diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc
index 9fc0f63a1f80..ac20c584e430 100644
--- a/sd/inc/app.hrc
+++ b/sd/inc/app.hrc
@@ -400,7 +400,7 @@
#define SID_CONVERT_TO_METAFILE (SID_SD_START+379)
// FREE
#define SID_CONVERT_TO_CONTOUR (SID_SD_START+381)
-#define SID_EDIT_HYPERLINK (SID_SD_START+382)
+ // FREE
#define ID_VAL_DUMMY1 (SID_SD_START+383)
#define ID_VAL_DUMMY2 (SID_SD_START+384)
#define ID_VAL_DUMMY3 (SID_SD_START+385)
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index c6165d1e0456..cf4fa5abebf5 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -2267,6 +2267,11 @@ interface DrawView
ExecMethod = FuTemporary ;
StateMethod = GetMenuState ;
]
+ SID_REMOVE_HYPERLINK // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
SID_HIDE_LAST_LEVEL // ole : no, status : ?
[
ExecMethod = FuTemporary ;
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index e49add9e34e5..ec1dda3cdb6e 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -45,6 +45,7 @@
#include <editeng/section.hxx>
#include <editeng/editobj.hxx>
#include <editeng/CustomPropertyField.hxx>
+#include <editeng/urlfieldhelper.hxx>
#include <o3tl/make_unique.hxx>
#include <sal/log.hxx>
@@ -2169,6 +2170,23 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
}
break;
+ case SID_REMOVE_HYPERLINK:
+ {
+ if (mpDrawView->IsTextEdit())
+ {
+ // First make sure the field is selected
+ OutlinerView* pOutView = mpDrawView->GetTextEditOutlinerView();
+ if (pOutView)
+ {
+ pOutView->SelectFieldAtCursor();
+ URLFieldHelper::RemoveURLField(pOutView->GetEditView());
+ }
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
case SID_OPEN_HYPERLINK:
{
OutlinerView* pOutView = mpDrawView->GetTextEditOutlinerView();
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index a0f5909d5c36..f9f941e78cf5 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -60,6 +60,7 @@
#include <editeng/escapementitem.hxx>
#include <editeng/numitem.hxx>
#include <editeng/adjustitem.hxx>
+#include <editeng/urlfieldhelper.hxx>
#include <svx/nbdtmgfact.hxx>
#include <svx/nbdtmg.hxx>
#include <memory>
@@ -514,6 +515,13 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
}
break;
+ case SID_REMOVE_HYPERLINK:
+ {
+ if (!URLFieldHelper::IsCursorAtURLField(mpDrawView->GetTextEditOutlinerView()))
+ rSet.DisableItem(nWhich);
+ }
+ break;
+
case SID_STYLE_DRAGHIERARCHIE:
{
std::unique_ptr<SfxPoolItem> pItem;
diff --git a/sd/uiconfig/sdraw/popupmenu/drawtext.xml b/sd/uiconfig/sdraw/popupmenu/drawtext.xml
index 75fd87f33834..4e667653973f 100644
--- a/sd/uiconfig/sdraw/popupmenu/drawtext.xml
+++ b/sd/uiconfig/sdraw/popupmenu/drawtext.xml
@@ -19,7 +19,9 @@
<menu:menuitem menu:id=".uno:ParagraphDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:OpenHyperlinkOnCursor"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
<menu:menuitem menu:id=".uno:CopyHyperlinkLocation"/>
+ <menu:menuitem menu:id=".uno:RemoveHyperlink"/>
<menu:menuitem menu:id=".uno:ThesaurusFromContext"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:SetDefault"/>
diff --git a/sd/uiconfig/simpress/popupmenu/drawtext.xml b/sd/uiconfig/simpress/popupmenu/drawtext.xml
index f8d24606bd80..c353f4240373 100644
--- a/sd/uiconfig/simpress/popupmenu/drawtext.xml
+++ b/sd/uiconfig/simpress/popupmenu/drawtext.xml
@@ -18,7 +18,9 @@
<menu:menuitem menu:id=".uno:ParagraphDialog"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:OpenHyperlinkOnCursor"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
<menu:menuitem menu:id=".uno:CopyHyperlinkLocation"/>
+ <menu:menuitem menu:id=".uno:RemoveHyperlink"/>
<menu:menuitem menu:id=".uno:ThesaurusFromContext"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:SetDefault"/>
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 04a0908e89a0..5890b9f1aca3 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -12105,6 +12105,42 @@ SfxVoidItem CopyHyperlinkLocation SID_COPY_HYPERLINK_LOCATION
GroupId = SfxGroupId::Edit;
]
+SfxVoidItem EditHyperlink SID_EDIT_HYPERLINK
+()
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ ToolBoxConfig = TRUE,
+ GroupId = SfxGroupId::Edit;
+]
+
+SfxVoidItem RemoveHyperlink SID_REMOVE_HYPERLINK
+()
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Asynchron;
+
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ ToolBoxConfig = TRUE,
+ GroupId = SfxGroupId::Edit;
+]
+
SfxVoidItem SpellCheckIgnore SID_SPELLCHECK_IGNORE
(SfxStringItem Type FN_PARAM_1)
[
More information about the Libreoffice-commits
mailing list