Improving footnote/endnote configuration in progress
This commit is contained in:
parent
8087152c4a
commit
90207f01d0
4 changed files with 184 additions and 23 deletions
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Footnotes" script:language="StarBasic" script:moduleType="normal">sub footMark1
|
||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Footnotes" script:language="StarBasic" script:moduleType="normal">sub footMark2
|
||||
End Sub
|
||||
|
||||
Sub openFootNotesDialog
|
||||
|
@ -14,7 +14,17 @@ Sub openFootNotesDialog
|
|||
dialog.getControl("configText3").setText(getTranslation("configText3"))
|
||||
dialog.getControl("configText4").setText(getTranslation("configText4"))
|
||||
dialog.getControl("configText5").setText(getTranslation("configText5"))
|
||||
dialog.getControl("notesTypeLabel").setText(getTranslation("FootnotesConfigDialogNotesTypeLabel"))
|
||||
dialog.getControl("PerPageRangeLabel").setText(getTranslation("FootnotesConfigDialogNotesPerPageRangeLabel"))
|
||||
|
||||
dialog.getControl("groupByPages").Model.Label = getTranslation("FootnotesConfigDialogNotesPerPage")
|
||||
dialog.getControl("groupByHeadings").Model.Label = getTranslation("FootnotesConfigDialogNotesByHeadingsLabel")
|
||||
dialog.Title = getTranslation("footnotesConfigDialogTitle")
|
||||
Dim nCount As Integer
|
||||
nCount = dialog.getControl("lb_notes_types").getItemCount()
|
||||
dialog.getControl("lb_notes_types").addItem( getTranslation("FootnotesConfigDialogFootnotesName"), nCount )
|
||||
dialog.getControl("lb_notes_types").addItem( getTranslation("FootnotesConfigDialogEndnotesName"), nCount + 1 )
|
||||
dialog.getControl("lb_notes_types").selectItemPos( 0, True )
|
||||
dialog.setVisible(true)
|
||||
Select Case dialog.Execute()
|
||||
Case 1
|
||||
|
@ -27,22 +37,36 @@ End Sub
|
|||
Sub setFootnotesNumberingFrom(dialog)
|
||||
Dim statusIndicator as Object
|
||||
Dim targetLevel As Integer
|
||||
Dim stringLevelInput As String
|
||||
Dim stringPageRangeInput As String
|
||||
Dim noteType As Integer
|
||||
statusIndicator = ThisComponent.getCurrentController.statusIndicator
|
||||
dialog.setVisible(false)
|
||||
doNotTrack
|
||||
targetLevel = dialog.getControl("level").Value
|
||||
stringLevelInput = dialog.getControl("level").getText
|
||||
stringPageRangeInput = dialog.getControl("pageRange").getText
|
||||
noteType = dialog.getControl("lb_notes_types").getSelectedItemPos()
|
||||
If (stringLevelInput <> "") Then
|
||||
targetLevel = CInt(stringLevelInput)
|
||||
If targetLevel > -1 AND targetLevel < 11 Then
|
||||
statusIndicator.Start(getTranslation("statusNumberingInProcess"),100)
|
||||
setFootnotesNumberingLevel(targetLevel,noteType)
|
||||
Else
|
||||
MsgBox getTranslation("numberingInputOutOfRange")
|
||||
EndIf
|
||||
EndIf
|
||||
|
||||
If targetLevel > -1 AND targetLevel < 11 Then
|
||||
If (stringPageRangeInput <> "") Then
|
||||
|
||||
statusIndicator.Start(getTranslation("statusNumberingInProcess"),100)
|
||||
setFootnotesNumberingLevel(targetLevel)
|
||||
Else
|
||||
MsgBox getTranslation("numberingInputOutOfRange")
|
||||
setNotesPaginatedNumbering(noteType, pageArray)
|
||||
|
||||
EndIf
|
||||
|
||||
statusIndicator.end()
|
||||
End Sub
|
||||
|
||||
Sub setFootnotesNumberingLevel(level)
|
||||
Sub setFootnotesNumberingLevel(level As Integer,noteType As Integer)
|
||||
Dim enum1Element As Object
|
||||
Dim enum1 As Object
|
||||
Dim enum2 As Object
|
||||
|
@ -50,7 +74,7 @@ Sub setFootnotesNumberingLevel(level)
|
|||
Dim curNum As Integer
|
||||
Dim footnoteText As Object
|
||||
Dim label As String
|
||||
Dim labelNum As Integer
|
||||
Dim labelNum As Long
|
||||
Dim i As Integer
|
||||
Dim cell As Object
|
||||
Dim cellEnum As Object
|
||||
|
@ -72,7 +96,8 @@ Sub setFootnotesNumberingLevel(level)
|
|||
enum2 = enum1Element.createEnumeration
|
||||
While enum2.hasMoreElements
|
||||
thisPortion = enum2.nextElement
|
||||
If thisPortion.TextPortionType = "Footnote" Then
|
||||
If isTargetNote(thisPortion, noteType) Then
|
||||
|
||||
footnoteText = thisPortion.Footnote
|
||||
label = footnoteText.getLabel
|
||||
If label = "" Then
|
||||
|
@ -81,7 +106,7 @@ Sub setFootnotesNumberingLevel(level)
|
|||
curNum = curNum + 1
|
||||
EndIf
|
||||
Else
|
||||
labelNum = CInt(label)
|
||||
labelNum = CLng(label)
|
||||
If labelNum > 0 Then
|
||||
If level < 1 Then
|
||||
footnoteText.setLabel("")
|
||||
|
@ -107,7 +132,7 @@ Sub setFootnotesNumberingLevel(level)
|
|||
cellEnum2 = cellEnumElement.createEnumeration
|
||||
While cellEnum2.hasMoreElements
|
||||
thisPortion = cellEnum2.nextElement
|
||||
If thisPortion.TextPortionType = "Footnote" Then
|
||||
If isTargetNote(thisPortion, noteType) Then
|
||||
footnoteText = thisPortion.Footnote
|
||||
label = footnoteText.getLabel
|
||||
If label = "" Then
|
||||
|
@ -116,7 +141,7 @@ Sub setFootnotesNumberingLevel(level)
|
|||
curNum = curNum + 1
|
||||
EndIf
|
||||
Else
|
||||
labelNum = CInt(label)
|
||||
labelNum = CLng(label)
|
||||
If labelNum > 0 Then
|
||||
If level < 1 Then
|
||||
footnoteText.setLabel("")
|
||||
|
@ -137,6 +162,24 @@ Sub setFootnotesNumberingLevel(level)
|
|||
MsgBox getTranslation("statusNumberingFinished")
|
||||
End Sub
|
||||
|
||||
Function isTargetNote(portion As Object, noteType As Integer) As Boolean
|
||||
If ( portion.TextPortionType = "Footnote" And isEndNote(portion) = CBool(noteType) ) Then
|
||||
isTargetNote = true
|
||||
Else
|
||||
isTargetNote = false
|
||||
EndIf
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Function isEndNote(portion As Object) As Boolean
|
||||
If (IsEmpty(portion.Start.EndNote)) Then
|
||||
isEndNote = false
|
||||
Else
|
||||
isEndNote = true
|
||||
EndIf
|
||||
End Function
|
||||
|
||||
Private Sub doNotTrack
|
||||
Dim dispatcher As Object
|
||||
Dim document As Object
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue