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:
Jean-Pierre Ledure
2024-10-07 15:04:20 +02:00
parent 1f16b88e9d
commit 0b6afed3b8
5 changed files with 37 additions and 37 deletions
+4 -4
View File
@@ -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) = &quot;com.sun.star.beans.PropertyValue&quot; Then
If IsUnoStruct(.Value) Then
@@ -601,8 +601,8 @@ Try:
Add(.Name, vItem) &apos; Key controls are done in Add
End If
End If
Next oPropertyValue
End With
End With
Next oPropertyValue
bImport = True
Finally:
+1 -1
View File
@@ -652,4 +652,4 @@ Catch:
End Function &apos; ScriptForge.SF_Services._NewTimer
REM ============================================== END OF SCRIPTFORGE.SF_SERVICES
</script:module>
</script:module>
+17 -19
View File
@@ -1078,21 +1078,19 @@ Check:
Try:
Set oStatusbar = _SF_.Statusbar
With oStatusbar
If IsNull(oStatusbar) Then &apos; Initial call
Set oComp = StarDesktop.CurrentComponent
If Not IsNull(oComp) Then
Set oControl = Nothing
If SF_Session.HasUnoProperty(oComp, &quot;CurrentController&quot;) Then Set oControl = oComp.CurrentController
If Not IsNull(oControl) Then
If SF_Session.HasUnoMethod(oControl, &quot;getStatusIndicator&quot;) Then oStatusbar = oControl.getStatusIndicator()
End If
End If
If Not IsNull(oStatusbar) Then
.start(&quot;&quot;, 100)
If IsNull(oStatusbar) Then &apos; Initial call
Set oComp = StarDesktop.CurrentComponent
If Not IsNull(oComp) Then
Set oControl = Nothing
If SF_Session.HasUnoProperty(oComp, &quot;CurrentController&quot;) Then Set oControl = oComp.CurrentController
If Not IsNull(oControl) Then
If SF_Session.HasUnoMethod(oControl, &quot;getStatusIndicator&quot;) Then oStatusbar = oControl.getStatusIndicator()
End If
End If
If Not IsNull(oStatusbar) Then
If Not IsNull(oStatusbar) Then oStatusBar.start(&quot;&quot;, 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) &gt; 0 Then .setText(Text)
If Percentage &gt;= 0 And Percentage &lt;= 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) &apos; False to not raise an error
If bFirstCall Then Set oDialog = CreateScriptService(&quot;SFDialogs.Dialog&quot;, &quot;GlobalScope&quot;, &quot;ScriptForge&quot;, &quot;dlgProgress&quot;, _Context)
bFirstCall = ( IsNull(oDialog) )
If Not bFirstCall Then bFirstCall = Not oDialog._IsStillAlive(False) &apos; False to not raise an error
If bFirstCall Then Set oDialog = CreateScriptService(&quot;SFDialogs.Dialog&quot;, &quot;GlobalScope&quot;, &quot;ScriptForge&quot;, &quot;dlgProgress&quot;, _Context)
With oDialog
If Not IsNull(oDialog) Then
If Len(Title) = 0 And Len(Text) = 0 And Percentage = -1 Then
Set oDialog = .Dispose()
+7 -5
View File
@@ -938,10 +938,10 @@ Check:
If _ReadOnly Then GoTo Catch_ReadOnly
Try:
With _Connection
bCommit = ( TransactionMode &gt; com.sun.star.sdbc.TransactionIsolation.NONE )
&apos; Replace the existing connection
If Not IsNull(_Connection) Then
bCommit = ( TransactionMode &gt; com.sun.star.sdbc.TransactionIsolation.NONE )
&apos; 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
&apos; Set the transaction mode
With _Connection
If bCommit Then
.SetTransactionIsolation(CLng(TransactionMode))
.setAutoCommit(Not bCommit)
+8 -8
View File
@@ -1612,10 +1612,10 @@ Try:
vStyles = oFamily.getElementNames()
&apos; 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
&apos; Pattern ?
bValid = ( Len(NamePattern) = 0 )
If Not bValid Then bValid = ScriptForge.SF_String.IsLike(.DisplayName, NamePattern, CaseSensitive := True)
@@ -1632,10 +1632,10 @@ Try:
&apos; Category ?
If bValid And Len(Category) &gt; 0 Then bValid = ( UCase(Category) = .Category )
If bValid Then vStyles(i) = .DisplayName Else vStyles(i) = &quot;&quot;
Else
vStyles(i) = &quot;&quot;
End If
End With
End With
Else
vStyles(i) = &quot;&quot;
End If
Next i
&apos; Reject when not valid
vStyles = ScriptForge.SF_Array.TrimArray(vStyles)