diff --git a/Redaction/Validation.xba b/Redaction/Validation.xba index 11efad9..ab028eb 100644 --- a/Redaction/Validation.xba +++ b/Redaction/Validation.xba @@ -1,6 +1,6 @@ -Sub markval26 +Sub markval27 End Sub @@ -953,11 +953,13 @@ End Function Function findBadCharacters() As Boolean Dim founds As Object + Dim foundObjects() As Object founds = findInDoc("[\uE000-\uF8FF]+") findBadCharacters = false If founds.count <> 0 Then MsgBox getTranslation("validationBadSymbolsNotification") - startNavigatorDialog(getTranslation("badSymbols"),founds) + foundObjects = convertXIndexAccessToArray(founds) + startNavigatorDialog(getTranslation("badSymbols"),foundObjects) findBadCharacters = true EndIf @@ -966,6 +968,7 @@ End Function Function findColoredBackgroundInDoc() As Boolean Dim founds As Object Dim sDesc As Object + Dim foundObjects() As Object Dim SrchAttributes(0) as new com.sun.star.beans.PropertyValue SrchAttributes(0).Name = "CharBackTransparent" SrchAttributes(0).Value = False @@ -979,14 +982,15 @@ Function findColoredBackgroundInDoc() As Boolean findColoredBackgroundInDoc = false If founds.count <> 0 Then MsgBox getTranslation("foundColoredTextMessage") - startNavigatorDialog(getTranslation("coloredTextDescription"),founds) + foundObjects = convertXIndexAccessToArray(founds) + startNavigatorDialog(getTranslation("coloredTextDescription"),foundObjects) findColoredBackgroundInDoc = true EndIf End Function -Sub startNavigatorDialog(objectsDescription As String,founds As Object) +Sub startNavigatorDialog(objectsDescription As String,foundObjects() As Object) Dim dialog As Object Dim leftImageURL As String Dim rightImageURL As String @@ -994,15 +998,13 @@ Sub startNavigatorDialog(objectsDescription As String,founds As Object) Dim maxNum As Long Dim found As Object Dim oViewCursor As Object - 'Globalscope.BasicLibraries.LoadLibrary( "MRILib" ) - 'Mri founds oViewCursor = ThisComponent.CurrentController.getViewCursor() waitingForDialog = true - maxNum = founds.count - 1 + maxNum = UBound(foundObjects) dialog = notModalDialog("Navigator") dialog.getControl("found").SetText(getTranslation("navigatorFound") & CStr(maxNum+1)) curNum = 0 - found = founds.getByIndex(curNum) + found = foundObjects(curNum) dialog.getControl("current").SetText(CStr(curNum+1)) dialog.getControl("description").SetText(objectsDescription) @@ -1022,14 +1024,14 @@ Sub startNavigatorDialog(objectsDescription As String,founds As Object) EndIf If dialog.getControl("prev").model.state = 1 then curNum = getPrevFound(curNum, maxNum) - found = founds.getByIndex(curNum) + found = foundObjects(curNum) oViewCursor.goToRange(found,false) dialog.getControl("current").SetText(CStr(curNum+1)) dialog.getControl("prev").model.state = 0 EndIf If dialog.getControl("next").model.state = 1 then curNum = getNextFound(curNum, maxNum) - found = founds.getByIndex(curNum) + found = foundObjects(curNum) oViewCursor.goToRange(found,false) dialog.getControl("current").SetText(CStr(curNum+1)) dialog.getControl("next").model.state = 0 @@ -1040,6 +1042,18 @@ Sub startNavigatorDialog(objectsDescription As String,founds As Object) dialog.dispose End Sub +Function convertXIndexAccessToArray(founds As Object) As Variant + Dim i As Integer + Dim maxNum As Integer + Dim arrayOfObjects() As Object + maxNum = founds.count - 1 + For i = 0 To maxNum + addToArray(arrayOfObjects,founds.getByIndex(i)) + Next i + convertXIndexAccessToArray = arrayOfObjects +End Function + + Function getNextFound(curNum As Long, max As Long) As Long If curNum < max Then getNextFound = curNum + 1