From df65b5efe18a55e3bda1c2f61dd9c5e9643b418d Mon Sep 17 00:00:00 2001 From: Georgy Litvinov Date: Thu, 20 May 2021 18:07:13 +0200 Subject: [PATCH] Fixed conversion links to footnotes --- ePublishing/Archive.xba | 99 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 7 deletions(-) diff --git a/ePublishing/Archive.xba b/ePublishing/Archive.xba index 0ad7809..41c6b55 100644 --- a/ePublishing/Archive.xba +++ b/ePublishing/Archive.xba @@ -1,6 +1,6 @@ -Sub archMark19 +Sub archMark20 End Sub @@ -445,7 +445,7 @@ End Sub Sub adjustLastLine(anchor As Object) anchor.ParaAdjust = 2 'anchor.ParaLastLineAdjust = 2 - 'balancePara(anchor) + balancePara(anchor) End Sub Sub adjustFirstLine(anchor As Object) @@ -614,9 +614,7 @@ Sub convertLinkToFootnote(forwardLink,backwardLink) backward = bookmarks.getByName(backwardLink) oViewCursor.goToRange(forward.Anchor,false) footNoteSign = oViewCursor.getString() - backspace - backspace - SendRM + removeTextInFootnote() oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor) oTextCursor.gotoEndOfParagraph(false) oTextCursor.gotoStartOfParagraph(true) @@ -624,13 +622,100 @@ Sub convertLinkToFootnote(forwardLink,backwardLink) unoCut() SendRM oViewCursor.goToRange(backward.Anchor,false) - backspace + removeFootnoteSignInText createFootnote unoPaste() oViewCursor.getText.setLabel(footNoteSign) forward.dispose() backward.dispose() -End sub +End Sub + + + +Sub removeTextInFootnote + Dim oViewCursor As Object + Dim character As String + oViewCursor = ThisComponent.CurrentController.getViewCursor() + oViewCursor.goRight(1,true) + character = oViewCursor.String + Do While isLinkCharacter(character) + oViewCursor.String = "" + oViewCursor.goRight(1,true) + character = oViewCursor.String + Loop + If oViewCursor.String = " " Then + oViewCursor.String = "" + Else + oViewCursor.goLeft(1,false) + EndIf + oViewCursor.goLeft(1,true) + character = oViewCursor.String + Do While isLinkCharacter(character) + oViewCursor.String = "" + oViewCursor.goLeft(1,true) + character = oViewCursor.String + Loop + oViewCursor.goRight(1,false) +End Sub + +Sub removeFootnoteSignInText + Dim oViewCursor As Object + Dim character As String + oViewCursor = ThisComponent.CurrentController.getViewCursor() + oViewCursor.goLeft(1,true) + character = oViewCursor.String + Do While isLinkCharacter(character) + oViewCursor.String = "" + oViewCursor.goLeft(1,true) + character = oViewCursor.String + Loop + oViewCursor.goRight(1,false) +End Sub + +Function isLinkCharacter(character As String) As Boolean + Select Case character + Case "[" + isLinkCharacter = true + Exit Function + Case "]" + isLinkCharacter = true + Exit Function + Case "0" + isLinkCharacter = true + Exit Function + Case "1" + isLinkCharacter = true + Exit Function + Case "2" + isLinkCharacter = true + Exit Function + Case "3" + isLinkCharacter = true + Exit Function + Case "4" + isLinkCharacter = true + Exit Function + Case "5" + isLinkCharacter = true + Exit Function + Case "6" + isLinkCharacter = true + Exit Function + Case "7" + isLinkCharacter = true + Exit Function + Case "8" + isLinkCharacter = true + Exit Function + Case "9" + isLinkCharacter = true + Exit Function + Case Else + isLinkCharacter = false + End Select +End Function + + sub unoCut