diff --git a/Addons.xcu b/Addons.xcu
index 7cf0ff5..ad492f7 100644
--- a/Addons.xcu
+++ b/Addons.xcu
@@ -83,6 +83,26 @@
_self
+
+
+ com.sun.star.text.TextDocument,com.sun.star.text.WebDocument
+
+
+ Балансировка хвоста
+ Équilibrer la dernière ligne
+ Balance the last line
+ Уравнотежите последњу линију
+ Uravnotežite posljednji redak
+ Uravnotežite posljednji redak
+
+
+ macro:///ePublishing.Archive.adjustLastLineCurPara
+
+
+ _self
+
+
+
@@ -169,26 +189,6 @@
_self
-
-
- com.sun.star.text.TextDocument,com.sun.star.text.WebDocument
-
-
- Балансировка хвоста
- Équilibrer la dernière ligne
- Balance the last line
- Уравнотежите последњу линију
- Uravnotežite posljednji redak
- Uravnotežite posljednji redak
-
-
- macro:///ePublishing.Archive.adjustLastLineCurPara
-
-
- _self
-
-
-
diff --git a/ePublishing/Archive.xba b/ePublishing/Archive.xba
index 51fad40..5666518 100644
--- a/ePublishing/Archive.xba
+++ b/ePublishing/Archive.xba
@@ -1,6 +1,6 @@
-Sub archMark25
+Sub archMark26
End Sub
@@ -274,14 +274,16 @@ end Sub
Sub configureHeadings
configureArchiveHeading1
- configureOtherArchiveHeadings
+ configureArchiveHeadings()
End Sub
-
Sub configureArchiveHeading1
Dim outline1() As Object
Dim oViewCursor As Object
Dim oSavePosition As Object
+ Dim initPosition As Object
+ Dim initPageNum As Integer
+ fixViewCursor()
oViewCursor = thisComponent.getCurrentController.getViewCursor
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
outline1 = getHeadingWithLevel(1)
@@ -289,33 +291,35 @@ Sub configureArchiveHeading1
Dim pageNumberCursor As Object
Dim i As Integer
Dim j As Integer
- Dim initialPageCount As Integer
- initialPageCount = ThisComponent.currentController.pageCount
For i = LBound(outline1) To UBound(outline1)
oViewCursor.goToRange(outline1(i), false)
oViewCursor.jumpToEndOfPage()
- pageNumberCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
- pageNumberCursor.goToStartOfWord(false)
- startViewPageNum = getPageNumber(pageNumberCursor)
+ initPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
+ initPageNum = oViewcursor.getPage()
- Do While startViewPageNum = getPageNumber(pageNumberCursor) And initialPageCount = ThisComponent.currentController.pageCount
- outline1(i).ParaTopMargin = outline1(i).ParaTopMargin + 100
+ Do While Not isContentPageChanged(initPosition, initPageNum) AND outline1(i).ParaBottomMargin < 10000
+ outline1(i).ParaBottomMargin = outline1(i).ParaBottomMargin + 100
+ Loop
+ Do While isContentPageChanged(initPosition, initPageNum)
+ If outline1(i).ParaBottomMargin < 0 Then
+ Exit Do
+ EndIf
+ outline1(i).ParaBottomMargin = outline1(i).ParaBottomMargin - 100
Loop
- If outline1(i).ParaTopMargin >= 100 Then
- outline1(i).ParaTopMargin = outline1(i).ParaTopMargin - 100
- EndIf
Next i
oViewCursor.goToRange(oSavePosition,false)
End Sub
-Sub configureOtherArchiveHeadings
+Sub configureArchiveHeadings()
Dim outline1() As Object
Dim oViewCursor As Object
- Dim oSavePosition As Object
+ Dim initPosition As Object
+ Dim initPageNum As Integer
+ Dim savePosition As Object
+ fixViewCursor()
oViewCursor = thisComponent.getCurrentController.getViewCursor
- oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
+ savePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
- Dim startViewPageNum As Integer
Dim pageNumberCursor As Object
Dim i As Integer
Dim j As Integer
@@ -327,23 +331,25 @@ Sub configureOtherArchiveHeadings
If outline1(i).BreakType <> 4 Then
oViewCursor.goToRange(outline1(i), false)
oViewCursor.jumpToEndOfPage()
- pageNumberCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
- pageNumberCursor.goToStartOfWord(false)
- startViewPageNum = getPageNumber(pageNumberCursor)
+ initPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
+ initPageNum = oViewcursor.getPage()
- Do While startViewPageNum = getPageNumber(pageNumberCursor) And initialPageCount = ThisComponent.currentController.pageCount
+ Do While Not isContentPageChanged(initPosition, initPageNum)
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin + 100
If (outline1(i).ParaTopMargin > outline1(i).ParaBottomMargin) Then
Exit Do
EndIf
Loop
- If outline1(i).ParaTopMargin >= 100 Then
+ Do While isContentPageChanged(initPosition, initPageNum)
+ If outline1(i).ParaBottomMargin < 0 Then
+ Exit Do
+ EndIf
outline1(i).ParaTopMargin = outline1(i).ParaTopMargin - 100
- EndIf
+ Loop
EndIf
Next i
Next j
- oViewCursor.goToRange(oSavePosition,false)
+ oViewCursor.goToRange(savePosition,false)
End Sub
@@ -449,10 +455,6 @@ Sub stretchPrevPage()
Next i
Exit Sub
EndIf
-
-
-
-
oViewCursor.goToRange(oSavePosition,false)
End Sub
@@ -463,6 +465,7 @@ Sub adjustLastLineCurPara()
Dim success As Boolean
Dim adjustType As Integer
Dim hyph As Boolean
+ fixViewCursor()
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oTextCursor = oViewCursor.Text.CreateTextCursorByRange(oViewCursor)
paraEnd = getParaEnd(oTextCursor)
diff --git a/ePublishing/journals.xba b/ePublishing/journals.xba
index 703a46e..9c7c1f0 100644
--- a/ePublishing/journals.xba
+++ b/ePublishing/journals.xba
@@ -1141,16 +1141,11 @@ Sub configureCursorPositionForContentShrink()
Dim oViewCursor As Object
Dim oTextCursor As Object
Dim curSelection As Object
- Dim selectionTextRange
+ Dim selectionTextRange As Object
Dim nextChar As String
Dim prefChar As String
oViewCursor = ThisComponent.CurrentController.getViewCursor()
- curSelection = ThisComponent.getCurrentSelection()
- If Not curSelection.supportsService("com.sun.star.text.TextRanges") Then
- selectionTextRange = curSelection.Anchor
- oViewCursor.JumpToFirstPage(false)
- oViewCursor.goToRange(selectionTextRange,false)
- EndIf
+ fixViewCursor()
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
'At start of Para
oTextCursor.collapseToEnd()
@@ -1160,14 +1155,28 @@ Sub configureCursorPositionForContentShrink()
oViewCursor.goToRange(oTextCursor,false)
End Sub
-Function isShrinkPageSucceded(initPosition As Object,initPageNum As String) As Boolean
+Sub fixViewCursor()
+ Dim oViewCursor As Object
+ Dim curSelection As Object
+ Dim selectionTextRange As Object
+ oViewCursor = ThisComponent.CurrentController.getViewCursor()
+ curSelection = ThisComponent.getCurrentSelection()
+ If Not curSelection.supportsService("com.sun.star.text.TextRanges") Then
+ selectionTextRange = curSelection.Anchor
+ oViewCursor.JumpToFirstPage(false)
+ oViewCursor.goToRange(selectionTextRange,false)
+ EndIf
+End Sub
+
+
+Function isContentPageChanged(initPosition As Object,initPageNum As String) As Boolean
Dim oViewCursor As Object
Dim oTextCursor As Object
isShrinkPageSucceded = false
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCursor.goToRange(initPosition,false)
If (oViewCursor.getPage <> initPageNum) Then
- isShrinkPageSucceded = true
+ isContentPageChanged = true
EndIf
End Function
@@ -1295,7 +1304,7 @@ Function shrinkPageContent() As Boolean
targetContent = selectContentToShrink(initPosition,startPosition)
For i = LBound(targetContent) To Ubound(targetContent)
shrinkContentSpacing(targetContent(i))
- If isShrinkPageSucceded(initPosition, initPageNum) Then
+ If isContentPageChanged(initPosition, initPageNum) Then
Exit Function
EndIf
Next i
@@ -1309,7 +1318,7 @@ Function shrinkPageContent() As Boolean
If shrinkContentWithKerning(targetContent(i)) Then
balanceContentTail(targetContent(i))
EndIf
- If isShrinkPageSucceded(initPosition, initPageNum) Then
+ If isContentPageChanged(initPosition, initPageNum) Then
Exit Function
EndIf
Next i
@@ -1317,7 +1326,7 @@ Function shrinkPageContent() As Boolean
For j = 1 To roundsLineHeight
For i = LBound(targetContent) To Ubound(targetContent)
decreaseIntervalHeight(targetContent(i))
- If isShrinkPageSucceded(initPosition, initPageNum) Then
+ If isContentPageChanged(initPosition, initPageNum) Then
Exit Function
EndIf
Next i