ScriptForge Fix tdf#163219 With blocks
Reference: https://bugs.documentfoundation.org/show_bug.cgi?id=163219#c7 Everywhere the With block variable is defined or redefined inside the With block, the Basic code has been reviewed. Found in SFDatabases/SF_Database.xba/SetTransactionMode() SFDocuments/SF_Document.xba/Styles() ScriptForge/SF_Dictionary.xba/ImportFromPropertyValues() ScriptForge/SF_UI.xba/SetStatusBar() ScriptForge/SF_UI.xba/ShowProgressBar() Most changes consist in isolating the With block variable before the With block itself. No functional change. This solution is a workaround for the bug. IT DOES NOT SOLVE THE ROOT CAUSE. Change-Id: I48af29d3d9c8b1e36ef5a85c8cfe28f9639ae483 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174560 Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
This commit is contained in:
@@ -580,8 +580,8 @@ Check:
|
||||
|
||||
Try:
|
||||
If Not IsArray(PropertyValues) Then PropertyValues = Array(PropertyValues)
|
||||
With oPropertyValue
|
||||
For Each oPropertyValue In PropertyValues
|
||||
For Each oPropertyValue In PropertyValues
|
||||
With oPropertyValue
|
||||
If Overwrite Then bExists = Exists(.Name) Else bExists = False
|
||||
If SF_Session.UnoObjectType(oPropertyValue) = "com.sun.star.beans.PropertyValue" Then
|
||||
If IsUnoStruct(.Value) Then
|
||||
@@ -601,8 +601,8 @@ Try:
|
||||
Add(.Name, vItem) ' Key controls are done in Add
|
||||
End If
|
||||
End If
|
||||
Next oPropertyValue
|
||||
End With
|
||||
End With
|
||||
Next oPropertyValue
|
||||
bImport = True
|
||||
|
||||
Finally:
|
||||
|
||||
@@ -652,4 +652,4 @@ Catch:
|
||||
End Function ' ScriptForge.SF_Services._NewTimer
|
||||
|
||||
REM ============================================== END OF SCRIPTFORGE.SF_SERVICES
|
||||
</script:module>
|
||||
</script:module>
|
||||
@@ -1078,21 +1078,19 @@ Check:
|
||||
|
||||
Try:
|
||||
Set oStatusbar = _SF_.Statusbar
|
||||
With oStatusbar
|
||||
If IsNull(oStatusbar) Then ' Initial call
|
||||
Set oComp = StarDesktop.CurrentComponent
|
||||
If Not IsNull(oComp) Then
|
||||
Set oControl = Nothing
|
||||
If SF_Session.HasUnoProperty(oComp, "CurrentController") Then Set oControl = oComp.CurrentController
|
||||
If Not IsNull(oControl) Then
|
||||
If SF_Session.HasUnoMethod(oControl, "getStatusIndicator") Then oStatusbar = oControl.getStatusIndicator()
|
||||
End If
|
||||
End If
|
||||
If Not IsNull(oStatusbar) Then
|
||||
.start("", 100)
|
||||
If IsNull(oStatusbar) Then ' Initial call
|
||||
Set oComp = StarDesktop.CurrentComponent
|
||||
If Not IsNull(oComp) Then
|
||||
Set oControl = Nothing
|
||||
If SF_Session.HasUnoProperty(oComp, "CurrentController") Then Set oControl = oComp.CurrentController
|
||||
If Not IsNull(oControl) Then
|
||||
If SF_Session.HasUnoMethod(oControl, "getStatusIndicator") Then oStatusbar = oControl.getStatusIndicator()
|
||||
End If
|
||||
End If
|
||||
If Not IsNull(oStatusbar) Then
|
||||
If Not IsNull(oStatusbar) Then oStatusBar.start("", 100)
|
||||
End If
|
||||
If Not IsNull(oStatusbar) Then
|
||||
With oStatusbar
|
||||
If Len(Text) = 0 And Percentage = -1 Then
|
||||
.end()
|
||||
Set oStatusbar = Nothing
|
||||
@@ -1100,8 +1098,8 @@ Try:
|
||||
If Len(Text) > 0 Then .setText(Text)
|
||||
If Percentage >= 0 And Percentage <= 100 Then .setValue(Percentage)
|
||||
End If
|
||||
End If
|
||||
End With
|
||||
End With
|
||||
End If
|
||||
|
||||
Finally:
|
||||
Set _SF_.Statusbar = oStatusbar
|
||||
@@ -1160,11 +1158,11 @@ Try:
|
||||
Set oFixedText = .ProgressBarText
|
||||
Set oProgressBar = .ProgressBarBar
|
||||
End With
|
||||
With oDialog
|
||||
bFirstCall = ( IsNull(oDialog) )
|
||||
If Not bFirstCall Then bFirstCall = Not ._IsStillAlive(False) ' False to not raise an error
|
||||
If bFirstCall Then Set oDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", "ScriptForge", "dlgProgress", _Context)
|
||||
|
||||
bFirstCall = ( IsNull(oDialog) )
|
||||
If Not bFirstCall Then bFirstCall = Not oDialog._IsStillAlive(False) ' False to not raise an error
|
||||
If bFirstCall Then Set oDialog = CreateScriptService("SFDialogs.Dialog", "GlobalScope", "ScriptForge", "dlgProgress", _Context)
|
||||
With oDialog
|
||||
If Not IsNull(oDialog) Then
|
||||
If Len(Title) = 0 And Len(Text) = 0 And Percentage = -1 Then
|
||||
Set oDialog = .Dispose()
|
||||
|
||||
@@ -938,10 +938,10 @@ Check:
|
||||
If _ReadOnly Then GoTo Catch_ReadOnly
|
||||
|
||||
Try:
|
||||
With _Connection
|
||||
bCommit = ( TransactionMode > com.sun.star.sdbc.TransactionIsolation.NONE )
|
||||
' Replace the existing connection
|
||||
If Not IsNull(_Connection) Then
|
||||
bCommit = ( TransactionMode > com.sun.star.sdbc.TransactionIsolation.NONE )
|
||||
' Replace the existing connection
|
||||
If Not IsNull(_Connection) Then
|
||||
With _Connection
|
||||
If .AutoCommit And bCommit Then
|
||||
_CloseConnection()
|
||||
Set _Connection = _DataSource.getIsolatedConnection(_User, _Password)
|
||||
@@ -949,9 +949,11 @@ Try:
|
||||
_CloseConnection()
|
||||
Set _Connection = _DataSource.getConnection(_User, _Password)
|
||||
End If
|
||||
End If
|
||||
End With
|
||||
End If
|
||||
|
||||
' Set the transaction mode
|
||||
With _Connection
|
||||
If bCommit Then
|
||||
.SetTransactionIsolation(CLng(TransactionMode))
|
||||
.setAutoCommit(Not bCommit)
|
||||
|
||||
@@ -1612,10 +1612,10 @@ Try:
|
||||
vStyles = oFamily.getElementNames()
|
||||
' Scan the list and retain those passing the filter
|
||||
For i = 0 To UBound(vStyles)
|
||||
With oStyle
|
||||
sStyle = vStyles(i)
|
||||
Set oStyle = _GetStyle(oFamily, sStyle)
|
||||
If Not IsNull(oStyle) Then
|
||||
sStyle = vStyles(i)
|
||||
Set oStyle = _GetStyle(oFamily, sStyle)
|
||||
If Not IsNull(oStyle) Then
|
||||
With oStyle
|
||||
' Pattern ?
|
||||
bValid = ( Len(NamePattern) = 0 )
|
||||
If Not bValid Then bValid = ScriptForge.SF_String.IsLike(.DisplayName, NamePattern, CaseSensitive := True)
|
||||
@@ -1632,10 +1632,10 @@ Try:
|
||||
' Category ?
|
||||
If bValid And Len(Category) > 0 Then bValid = ( UCase(Category) = .Category )
|
||||
If bValid Then vStyles(i) = .DisplayName Else vStyles(i) = ""
|
||||
Else
|
||||
vStyles(i) = ""
|
||||
End If
|
||||
End With
|
||||
End With
|
||||
Else
|
||||
vStyles(i) = ""
|
||||
End If
|
||||
Next i
|
||||
' Reject when not valid
|
||||
vStyles = ScriptForge.SF_Array.TrimArray(vStyles)
|
||||
|
||||
Reference in New Issue
Block a user