summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVojtěch Doležal <dolezvo1@cvut.cz>2023-04-06 00:25:34 +0200
committerMiklos Vajna <vmiklos@collabora.com>2023-04-20 08:35:57 +0200
commit9ce48c5992ca7ae2b68edfc1f558ccfa3289264d (patch)
tree1eb1caf0dd24ccf658e9c03c3bac3fd4ca188487
parentb4b3a0d40707f9ec126d7238b2974ac6ff7ee359 (diff)
Allow Copy Hyperlink Location in protected fields
This change aims to make it possible to copy hyperlinks from protected fields. That includes showing command and fixing it's broken behaviour, which wasn't detectable because it was hidden. Change-Id: I119e7617fcd7261e437411c86d4c920931e9fe84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150070 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--sw/qa/uibase/shells/data/protectedLinkCopy.fodt536
-rw-r--r--sw/qa/uibase/shells/shells.cxx58
-rw-r--r--sw/sdi/_textsh.sdi1
-rw-r--r--sw/source/uibase/shells/textsh1.cxx37
4 files changed, 612 insertions, 20 deletions
diff --git a/sw/qa/uibase/shells/data/protectedLinkCopy.fodt b/sw/qa/uibase/shells/data/protectedLinkCopy.fodt
new file mode 100644
index 000000000000..495f7523764d
--- /dev/null
+++ b/sw/qa/uibase/shells/data/protectedLinkCopy.fodt
@@ -0,0 +1,536 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
+ <office:meta><meta:creation-date>2023-04-19T10:13:19.940360871</meta:creation-date><dc:date>2023-04-19T10:20:31.730384611</dc:date><meta:editing-duration>PT7M24S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="5" meta:word-count="5" meta:character-count="72" meta:non-whitespace-character-count="72"/><meta:generator>LibreOfficeDev/7.6.0.0.alpha0$Linux_X86_64 LibreOffice_project/57ff98147490ea69eb2968bcaf75edfe72f88645</meta:generator></office:meta>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item>
+ <config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
+ <config:config-item config:name="ViewAreaWidth" config:type="long">26615</config:config-item>
+ <config:config-item config:name="ViewAreaHeight" config:type="long">15436</config:config-item>
+ <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
+ <config:config-item config:name="ViewLeft" config:type="long">4807</config:config-item>
+ <config:config-item config:name="ViewTop" config:type="long">7195</config:config-item>
+ <config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
+ <config:config-item config:name="VisibleTop" config:type="long">0</config:config-item>
+ <config:config-item config:name="VisibleRight" config:type="long">26614</config:config-item>
+ <config:config-item config:name="VisibleBottom" config:type="long">15434</config:config-item>
+ <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ViewLayoutColumns" config:type="short">1</config:config-item>
+ <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ZoomFactor" config:type="short">120</config:config-item>
+ <config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="KeepRatio" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LegacySingleLineFontwork" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ConnectorUseSnapRect" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IgnoreBreakAfterMultilineField" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintEmptyPages" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintSingleJobs" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item>
+ <config:config-item config:name="WordLikeWrapForAsCharFlys" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AutoFirstLineIndentDisregardLineSpace" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="HeaderSpacingBelowLastPara" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ProtectBookmarks" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ContinuousEndnotes" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="DisableOffPagePositioning" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintFaxName" config:type="string"/>
+ <config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TreatSingleColumnBreakAsPageBreak" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PropLineSpacingShrinksFirstLine" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="TabOverSpacing" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="FrameAutowidthWithMorePara" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="FloattableNomargins" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UnbreakableNumberings" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseOldNumbering" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="RsidRoot" config:type="int">472471</config:config-item>
+ <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="CurrentDatabaseDataSource" config:type="string"/>
+ <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="Rsid" config:type="int">472471</config:config-item>
+ <config:config-item config:name="FootnoteInColumnToPageEnd" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ProtectFields" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item>
+ <config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AddParaLineSpacingToTableCells" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="HyphenateURLs" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item>
+ <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
+ <config:config-item config:name="SmallCapsPercentage66" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="AlignTabStopPosition" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="DropCapPunctuation" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="MathBaselineAlignment" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="PrinterName" config:type="string"/>
+ <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+ <config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrinterIndependentLayout" config:type="string">high-resolution</config:config-item>
+ <config:config-item config:name="TabOverflow" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AddVerticalFrameOffsets" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="MsWordCompMinLineHeightByFly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintTextPlaceholder" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseFormerLineSpacing" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
+ <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="BackgroundParaOverDrawings" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
+ <config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="MsWordCompTrailingBlanks" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmptyDbFieldHidesPara" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoNumberingShowFollowBy" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GutterAtTop" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item>
+ <config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="CurrentDatabaseCommand" config:type="string"/>
+ <config:config-item config:name="CollapseEmptyCellPara" config:type="boolean">true</config:config-item>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+ <office:script script:language="ooo:Basic">
+ <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+ <style:font-face style:name="Droid Sans Devanagari" svg:font-family="&apos;Droid Sans Devanagari&apos;" style:font-family-generic="swiss"/>
+ <style:font-face style:name="Droid Sans Devanagari1" svg:font-family="&apos;Droid Sans Devanagari&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Droid Sans Fallback" svg:font-family="&apos;Droid Sans Fallback&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Source Han Sans CN" svg:font-family="&apos;Source Han Sans CN&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <style:default-style style:family="graphic">
+ <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/>
+ <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" loext:tab-stop-distance="0cm" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="cs" fo:country="CZ" style:letter-kerning="true" style:font-name-asian="Droid Sans Fallback" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <style:default-style style:family="paragraph">
+ <style:paragraph-properties fo:orphans="2" fo:widows="2" fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
+ <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="cs" fo:country="CZ" style:letter-kerning="true" style:font-name-asian="Droid Sans Fallback" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari1" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" loext:hyphenation-no-caps="false" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/>
+ </style:default-style>
+ <style:default-style style:family="table">
+ <style:table-properties table:border-model="collapsing"/>
+ </style:default-style>
+ <style:default-style style:family="table-row">
+ <style:table-row-properties fo:keep-together="auto"/>
+ </style:default-style>
+ <style:style style:name="Standard" style:family="paragraph" style:class="text"/>
+ <style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
+ <style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" fo:keep-with-next="always"/>
+ <style:text-properties style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="14pt" style:font-name-asian="Source Han Sans CN" style:font-family-asian="&apos;Source Han Sans CN&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
+ <style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.247cm" style:contextual-spacing="false" fo:line-height="115%"/>
+ </style:style>
+ <style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
+ <style:text-properties style:font-size-asian="12pt" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" style:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
+ <style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="12pt" style:font-style-complex="italic"/>
+ </style:style>
+ <style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
+ <style:paragraph-properties text:number-lines="false" text:line-number="0"/>
+ <style:text-properties style:font-size-asian="12pt" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="Index_20_Heading" style:display-name="Index Heading" style:family="paragraph" style:parent-style-name="Heading" style:class="index">
+ <style:paragraph-properties fo:margin-left="0cm" fo:text-indent="0cm" style:auto-text-indent="false" text:number-lines="false" text:line-number="0"/>
+ <style:text-properties fo:font-size="16pt" fo:font-weight="bold" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Bibliography_20_Heading" style:display-name="Bibliography Heading" style:family="paragraph" style:parent-style-name="Index_20_Heading" style:class="index">
+ <style:paragraph-properties fo:margin-left="0cm" fo:text-indent="0cm" style:auto-text-indent="false" text:number-lines="false" text:line-number="0"/>
+ <style:text-properties fo:font-size="16pt" fo:font-weight="bold" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Bibliography_20_1" style:display-name="Bibliography 1" style:family="paragraph" style:parent-style-name="Index" style:class="index">
+ <style:paragraph-properties fo:margin-left="0cm" fo:text-indent="0cm" style:auto-text-indent="false">
+ <style:tab-stops>
+ <style:tab-stop style:position="17cm" style:type="right" style:leader-style="dotted" style:leader-text="."/>
+ </style:tab-stops>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="Internet_20_link" style:display-name="Internet link" style:family="text">
+ <style:text-properties fo:color="#000080" loext:opacity="100%" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color"/>
+ </style:style>
+ <text:outline-style style:name="Outline">
+ <text:outline-level-style text:level="1" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="2" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="3" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="4" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="5" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="6" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="7" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="8" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="9" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ <text:outline-level-style text:level="10" style:num-format="">
+ <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+ <style:list-level-label-alignment text:label-followed-by="listtab"/>
+ </style:list-level-properties>
+ </text:outline-level-style>
+ </text:outline-style>
+ <text:notes-configuration text:note-class="footnote" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
+ <text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
+ <text:bibliography-configuration text:prefix="[" text:suffix="]" text:sort-algorithm="alphanumeric" fo:language="cs" fo:country="CZ"/>
+ <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
+ <loext:theme loext:name="Office">
+ <loext:color-table loext:name="LibreOffice">
+ <loext:color loext:name="dk1" loext:color="#000000"/>
+ <loext:color loext:name="lt1" loext:color="#ffffff"/>
+ <loext:color loext:name="dk2" loext:color="#000000"/>
+ <loext:color loext:name="lt2" loext:color="#ffffff"/>
+ <loext:color loext:name="accent1" loext:color="#18a303"/>
+ <loext:color loext:name="accent2" loext:color="#0369a3"/>
+ <loext:color loext:name="accent3" loext:color="#a33e03"/>
+ <loext:color loext:name="accent4" loext:color="#8e03a3"/>
+ <loext:color loext:name="accent5" loext:color="#c99c00"/>
+ <loext:color loext:name="accent6" loext:color="#c9211e"/>
+ <loext:color loext:name="hlink" loext:color="#0000ee"/>
+ <loext:color loext:name="folHlink" loext:color="#551a8b"/>
+ </loext:color-table>
+ </loext:theme>
+ </office:styles>
+ <office:automatic-styles>
+ <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Bibliography_20_1">
+ <style:paragraph-properties>
+ <style:tab-stops/>
+ </style:paragraph-properties>
+ </style:style>
+ <style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard">
+ <style:text-properties officeooo:paragraph-rsid="00073597"/>
+ </style:style>
+ <style:style style:name="T1" style:family="text">
+ <style:text-properties officeooo:rsid="00073597"/>
+ </style:style>
+ <style:style style:name="Sect1" style:family="section">
+ <style:section-properties style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:page-layout style:name="pm1">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm" loext:margin-gutter="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-layout>
+ </office:automatic-styles>
+ <office:master-styles>
+ <style:master-page style:name="Standard" style:page-layout-name="pm1"/>
+ </office:master-styles>
+ <office:body>
+ <office:text>
+ <text:sequence-decls>
+ <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+ <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+ </text:sequence-decls>
+ <text:p text:style-name="Standard"><text:a xlink:type="simple" xlink:href="http://reset.url/1" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link"><text:span text:style-name="T1">reset.url.1</text:span></text:a></text:p>
+ <text:p text:style-name="Standard"/>
+ <text:p text:style-name="Standard"><text:bibliography-mark text:identifier="Test" text:bibliography-type="www" text:url="https://test.url/1">[Test]</text:bibliography-mark></text:p>
+ <text:p text:style-name="Standard"/>
+ <text:p text:style-name="P2"><text:a xlink:type="simple" xlink:href="http://reset.url/2" text:style-name="Internet_20_link" text:visited-style-name="Visited_20_Internet_20_Link"><text:span text:style-name="T1">reset.url.2</text:span></text:a></text:p>
+ <text:p text:style-name="P2"/>
+ <text:bibliography text:style-name="Sect1" text:protected="true" text:name="Bibliography1">
+ <text:bibliography-source>
+ <text:index-title-template text:style-name="Bibliography_20_Heading">Bibliography</text:index-title-template>
+ <text:bibliography-entry-template text:bibliography-type="article" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="book" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="booklet" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="conference" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="custom1" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="custom2" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="custom3" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="custom4" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="custom5" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="email" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="inbook" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="incollection" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="inproceedings" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="journal" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="manual" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="mastersthesis" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="misc" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="url"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="phdthesis" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="proceedings" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="techreport" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="unpublished" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ <text:bibliography-entry-template text:bibliography-type="www" text:style-name="Bibliography_20_1">
+ <text:index-entry-bibliography text:bibliography-data-field="identifier"/>
+ <text:index-entry-span>: </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="author"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="title"/>
+ <text:index-entry-span>, </text:index-entry-span>
+ <text:index-entry-bibliography text:bibliography-data-field="year"/>
+ </text:bibliography-entry-template>
+ </text:bibliography-source>
+ <text:index-body>
+ <text:index-title text:style-name="Sect1" text:name="Bibliography1_Head">
+ <text:p text:style-name="Bibliography_20_Heading">Bibliography</text:p>
+ </text:index-title>
+ <text:p text:style-name="P1"><text:a xlink:type="simple" xlink:href="https://test.url/1" text:style-name="Internet_20_link" text:visited-style-name="Internet_20_link"><text:span text:style-name="Internet_20_link">https://test.url/1</text:span></text:a></text:p>
+ </text:index-body>
+ </text:bibliography>
+ <text:p text:style-name="P2"/>
+ </office:text>
+ </office:body>
+</office:document> \ No newline at end of file
diff --git a/sw/qa/uibase/shells/shells.cxx b/sw/qa/uibase/shells/shells.cxx
index 68118fb760b8..8c251cb09f87 100644
--- a/sw/qa/uibase/shells/shells.cxx
+++ b/sw/qa/uibase/shells/shells.cxx
@@ -192,14 +192,66 @@ CPPUNIT_TEST_FIXTURE(SwUibaseShellsTest, testBibliographyUrlContextMenu)
pWrtShell->Left(SwCursorSkipMode::Chars, /*bSelect=*/true, 1, /*bBasicCall=*/false);
SfxDispatcher* pDispatcher = pDocShell->GetViewShell()->GetViewFrame().GetDispatcher();
css::uno::Any aState;
- SfxItemState eState = pDispatcher->QueryState(SID_OPEN_HYPERLINK, aState);
+ SfxItemState eStateOpen = pDispatcher->QueryState(SID_OPEN_HYPERLINK, aState);
+ SfxItemState eStateCopy = pDispatcher->QueryState(SID_COPY_HYPERLINK_LOCATION, aState);
- // Then the "open hyperlink" menu item should be visible:
+ // Then the "open hyperlink" and "copy hyperlink location" menu items should be visible:
// Without the accompanying fix in place, this test would have failed with:
// - Expected: 32 (SfxItemState::DEFAULT)
// - Actual : 1 (SfxItemState::DISABLED)
// i.e. the menu item was not visible for biblio entry fields with an URL.
- CPPUNIT_ASSERT_EQUAL(SfxItemState::DEFAULT, eState);
+ CPPUNIT_ASSERT_EQUAL(SfxItemState::DEFAULT, eStateOpen);
+ CPPUNIT_ASSERT_EQUAL(SfxItemState::DEFAULT, eStateCopy);
+}
+
+CPPUNIT_TEST_FIXTURE(SwUibaseShellsTest, testProtectedFieldsCopyHyperlinkLocation)
+{
+ // Given a test document document that contains:
+ // - generic url
+ // - empty line
+ // - bibliography mark
+ // - empty line
+ // - generic url
+ // - empty line
+ // - bibliography table heading
+ // - bibliography entry containing only url
+ // - empty line
+ createSwDoc("protectedLinkCopy.fodt");
+
+ // Copy generic hyperlink
+ dispatchCommand(mxComponent, ".uno:CopyHyperlinkLocation", {});
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:Paste", {});
+ // Assert generic hyperlink was correctly copied and pasted
+ CPPUNIT_ASSERT_EQUAL(OUString("http://reset.url/1"), getParagraph(2)->getString());
+
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:GoLeft", {});
+ // Copy bibliography mark hyperlink
+ dispatchCommand(mxComponent, ".uno:CopyHyperlinkLocation", {});
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:Paste", {});
+ // Assert bibliography mark hyperlink was correctly copied and pasted
+ CPPUNIT_ASSERT_EQUAL(OUString("https://test.url/1"), getParagraph(4)->getString());
+
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:GoLeft", {});
+ // Copy generic hyperlink
+ dispatchCommand(mxComponent, ".uno:CopyHyperlinkLocation", {});
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:Paste", {});
+ // Assert generic hyperlink was correctly copied and pasted
+ CPPUNIT_ASSERT_EQUAL(OUString("http://reset.url/2"), getParagraph(6)->getString());
+
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:GoLeft", {});
+ // Copy bibliography table hyperlink
+ dispatchCommand(mxComponent, ".uno:CopyHyperlinkLocation", {});
+ dispatchCommand(mxComponent, ".uno:GoDown", {});
+ dispatchCommand(mxComponent, ".uno:Paste", {});
+ // Assert bibliography table entry hyperlink was correctly copied and pasted
+ CPPUNIT_ASSERT_EQUAL(OUString("https://test.url/1"), getParagraph(9)->getString());
}
CPPUNIT_TEST_FIXTURE(SwUibaseShellsTest, testBibliographyLocalCopyContextMenu)
diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi
index 1f5db939267b..45f6eb7c9bdb 100644
--- a/sw/sdi/_textsh.sdi
+++ b/sw/sdi/_textsh.sdi
@@ -425,7 +425,6 @@ interface BaseText
[
ExecMethod = Execute ;
StateMethod = GetState;
- DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
FN_TABLE_UNSET_READ_ONLY // status(final|play)
[
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index 08d5013a1a8b..e331b290121c 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1805,15 +1805,16 @@ void SwTextShell::Execute(SfxRequest &rReq)
if(SfxItemState::SET <= aSet.GetItemState( RES_TXTATR_INETFMT ))
{
const SwFormatINetFormat& rINetFormat = aSet.Get(RES_TXTATR_INETFMT);
- if( nSlot == SID_COPY_HYPERLINK_LOCATION )
+ if (nSlot == SID_OPEN_HYPERLINK)
+ {
+ rWrtSh.ClickToINetAttr(rINetFormat);
+ }
+ else if (nSlot == SID_COPY_HYPERLINK_LOCATION)
{
OUString hyperlinkLocation = rINetFormat.GetValue();
::uno::Reference< datatransfer::clipboard::XClipboard > xClipboard = GetView().GetEditWin().GetClipboard();
-
vcl::unohelper::TextDataObject::CopyStringTo(hyperlinkLocation, xClipboard, SfxViewShell::Current());
}
- else
- rWrtSh.ClickToINetAttr(rINetFormat);
}
else
{
@@ -1821,19 +1822,23 @@ void SwTextShell::Execute(SfxRequest &rReq)
if (pField && pField->GetTyp()->Which() == SwFieldIds::TableOfAuthorities)
{
const auto& rAuthorityField = *static_cast<const SwAuthorityField*>(pField);
- if (!rAuthorityField.UseTargetURL() && rAuthorityField.HasURL())
+ if ((!rAuthorityField.UseTargetURL() && rAuthorityField.HasURL())
+ || (rAuthorityField.UseTargetURL() && rAuthorityField.HasTargetURL()))
{
// Bibliography entry with URL also provides a hyperlink.
const OUString& rURL
- = rAuthorityField.GetAuthEntry()->GetAuthorField(AUTH_FIELD_URL);
- ::LoadURL(rWrtSh, rURL, LoadUrlFlags::NewView, /*rTargetFrameName=*/OUString());
- }
- else if (rAuthorityField.UseTargetURL() && rAuthorityField.HasTargetURL())
- {
- // Bibliography entry with URL also provides a hyperlink.
- const OUString& rURL
- = rAuthorityField.GetAuthEntry()->GetAuthorField(AUTH_FIELD_TARGET_URL);
- ::LoadURL(rWrtSh, rURL, LoadUrlFlags::NewView, /*rTargetFrameName=*/OUString());
+ = rAuthorityField.GetAuthEntry()->GetAuthorField(
+ rAuthorityField.UseTargetURL() ? AUTH_FIELD_TARGET_URL : AUTH_FIELD_URL);
+
+ if (nSlot == SID_OPEN_HYPERLINK)
+ {
+ ::LoadURL(rWrtSh, rURL, LoadUrlFlags::NewView, /*rTargetFrameName=*/OUString());
+ }
+ else if (nSlot == SID_COPY_HYPERLINK_LOCATION)
+ {
+ ::uno::Reference< datatransfer::clipboard::XClipboard > xClipboard = GetView().GetEditWin().GetClipboard();
+ vcl::unohelper::TextDataObject::CopyStringTo(rURL, xClipboard, SfxViewShell::Current());
+ }
}
}
}
@@ -2500,7 +2505,6 @@ void SwTextShell::GetState( SfxItemSet &rSet )
break;
case SID_EDIT_HYPERLINK:
- case SID_COPY_HYPERLINK_LOCATION:
{
SfxItemSetFixed<RES_TXTATR_INETFMT, RES_TXTATR_INETFMT> aSet(GetPool());
rSh.GetCurAttr(aSet);
@@ -2550,7 +2554,8 @@ void SwTextShell::GetState( SfxItemSet &rSet )
case FN_SELECTION_MODE_BLOCK :
rSet.Put(SfxBoolItem(nWhich, (nWhich == FN_SELECTION_MODE_DEFAULT) != rSh.IsBlockMode()));
break;
- case SID_OPEN_HYPERLINK:
+ case SID_COPY_HYPERLINK_LOCATION:
+ case SID_OPEN_HYPERLINK:
{
SfxItemSetFixed<RES_TXTATR_INETFMT, RES_TXTATR_INETFMT> aSet(GetPool());
rSh.GetCurAttr(aSet);