summaryrefslogtreecommitdiff
path: root/testautomation/global/tools/includes/required/t_option2.inc
diff options
context:
space:
mode:
Diffstat (limited to 'testautomation/global/tools/includes/required/t_option2.inc')
-rw-r--r--testautomation/global/tools/includes/required/t_option2.inc1210
1 files changed, 599 insertions, 611 deletions
diff --git a/testautomation/global/tools/includes/required/t_option2.inc b/testautomation/global/tools/includes/required/t_option2.inc
index 51bbf1f98fe1..dc8e4d5817b4 100644
--- a/testautomation/global/tools/includes/required/t_option2.inc
+++ b/testautomation/global/tools/includes/required/t_option2.inc
@@ -1,613 +1,601 @@
-'encoding UTF-8 Do not remove or change this line!
-'**************************************************************************
-'* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-'*
-'* Copyright 2008 by Sun Microsystems, Inc.
-'*
-'* OpenOffice.org - a multi-platform office productivity suite
-'*
-'* $RCSfile: t_option2.inc,v $
-'*
-'* $Revision: 1.1 $
-'*
-'* last change: $Author: jsi $ $Date: 2008-06-13 10:27:11 $
-'*
-'* This file is part of OpenOffice.org.
-'*
-'* OpenOffice.org is free software: you can redistribute it and/or modify
-'* it under the terms of the GNU Lesser General Public License version 3
-'* only, as published by the Free Software Foundation.
-'*
-'* OpenOffice.org is distributed in the hope that it will be useful,
-'* but WITHOUT ANY WARRANTY; without even the implied warranty of
-'* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-'* GNU Lesser General Public License version 3 for more details
-'* (a copy is included in the LICENSE file that accompanied this code).
-'*
-'* You should have received a copy of the GNU Lesser General Public License
-'* version 3 along with OpenOffice.org. If not, see
-'* <http://www.openoffice.org/license.html>
-'* for a copy of the LGPLv3 License.
-'*
-'/************************************************************************
-'*
-'* owner : thorsten.bosbach@sun.com
-'*
-'* short description : Tools library for options testcases
-'*
-'************************************************************************
-'*
-' #0 OptionTabPageZaehler ' Counting tab pages in Tools / Options
-' #0 ToPosInOptionlist ' Jumping to the correct position in the options tree
-' #0 DialogeFuerTypenKontrollieren 'Complete test for path-options
-' #1 hSetMacroSecurity ' switch between security levels in Tools/Options
-' #0 fGetSetMacroSecurityUNO ' switch between security levels in Tools/Options without using UI
-' #1 hGetMacroSecurityAPI ' Retrieve the current macro security level using API
-' #1 hSetMacroSecurityAPI ' Set the macro security level via API
-'*
-'\***********************************************************************
-
-function OptionTabPageZaehler ( SollAnzahl as Integer, optional Ausnahme as Boolean )
-'parameter Ausnahme is depracted
- Dim IstAnzahl
- Kontext "ExtrasOptionenDlg"
- IstAnzahl = Optionsliste.GetItemCount - iSectionNumber
- if Ausnahme = FALSE then
- if IstAnzahl <> SollAnzahl then WarnLog "Number of tabpages old : " + SollAnzahl + " new : " + IstAnzahl
- end if
- OptionTabPageZaehler = IstAnzahl
-end function
-
-'-------------------------------------------------------------------------
-
-sub ToPosInOptionlist ( Sprung as Integer )
- Dim i as Integer
- Kontext "OptionenDlg"
- Optionsliste.TypeKeys "<HOME>"
- for i = 1 to 12
- Optionsliste.TypeKeys "-<DOWN>"
- next i
- Optionsliste.Select Sprung
- Optionsliste.TypeKeys "+"
-end sub
-
-'-------------------------------------------------------------------------
-
-sub DialogeFuerTypenKontrollieren
-' Complete test for path-options, for all entries the file-dialog or the path-dialog will be opened
- Dim i as Integer
- Dim iCount as Integer
- Dim iErrorCount as integer
- Kontext "TabPfade"
- Typ.TypeKeys "<Down><Down><Home>"
- iCount = 0
- iErrorCount = 0
- for i=1 to Typ.GetItemCount
- if i<>1 then Typ.TypeKeys "<Down>"
- printlog " "+typ.getText
- if bAsianLan <> TRUE then
- try
- Bearbeiten.Click
- kontext
- if active.exists (3) then
- iErrorCount = iErrorCount + 1
- if (iErrorCount > 1) then
- Warnlog active.getText
- endif
- qaErrorlog "#i69014# gallery path doesn't exist: '" + active.getText + "'"
- printlog active.getText
- active.ok
- endif
- Kontext "OeffnenDlg"
- if OeffnenDlg.Exists(2) then
- if Dateityp.IsVisible = TRUE then Warnlog "The normal FileOpen-Dialog is visible with the Filetype-Listbox => BUG!"
- OeffnenDlg.Cancel
- else
- Kontext "PfadeAuswaehlen"
- PfadeAuswaehlen.Cancel
- end if
- Sleep (1)
- Kontext "TabPfade"
- catch
- Warnlog "Error on entry " & i & "!"
- Exceptlog
- endcatch
- else
- try
- if Bearbeiten.IsEnabled = TRUE then
- Bearbeiten.Click
- kontext
- if active.exists (3) then
- iErrorCount = iErrorCount + 1
- if (iErrorCount > 1) then
- Warnlog active.getText
- endif
- qaErrorlog "WorkAround for #109107# has to come up only once @'Add-Ins'! else BUG!"
- active.ok
- endif
- Kontext "OeffnenDlg"
- if OeffnenDlg.Exists(2) then
- if Dateityp.IsVisible = TRUE then Warnlog "The normal FileOpen-Dialog is visible with the Filetype-Listbox => BUG!"
- OeffnenDlg.Cancel
- else
- Kontext "PfadeAuswaehlen"
- PfadeAuswaehlen.Cancel
- end if
- Sleep (1)
- Kontext "TabPfade"
- else
- iCount = iCount + 1
- end if
- catch
- Warnlog "Error on entry " & i & "!"
- Exceptlog
- endcatch
- end if
- next i
- if iCount > 3 then Warnlog "There are more than 3 entries are disabled!"
-
-end sub
-
-'-------------------------------------------------------------------------
-
-function hSetMacroSecurity( iLevel as integer ) as integer
-
- '///<h3>Set macro security level via GUI</h3>
- '///<i>Set the macro security by accessing the Tools/Options->
- '///+ OpenOffice.org/Security::Macro... Tabpage</i><br><br>
-
- '///<u>Parameter(s):</u><br>
- '///<ol>
-
- '///+<li>Desired macro security level (Integer). Following symbolic names are defined:</li>
- '///<ul>
- '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
- '///</ul>
-
- '///</ol>
-
-
- '///<u>Returns:</u><br>
- '///<ol>
- '///+<li>Previous security level (Integer)</li>
- '///<ul>
- '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
- '///+<li>-1 on error</li>
- '///</ul>
- '///</ol>
-
-
-
- '///Switch between macro security levels in Tools/Options
- '///<ul>
- const CFN = "hSetMacroSecurity::"
- dim iOldSecurityLevel as integer
-
- dim caLevel( 3 ) as string
- caLevel( 0 ) = "low"
- caLevel( 1 ) = "medium"
- caLevel( 2 ) = "high"
- caLevel( 3 ) = "very high"
-
- if ( ( iLevel < GC_MACRO_SECURITY_LEVEL_LOW ) or ( iLevel > GC_MACRO_SECURITY_LEVEL_VERYHIGH ) ) then
- warnlog( CFN & "Invalid index (0...3) passed to function: " & ilevel )
- hSetMacroSecurity() = -1
- exit function
- end if
-
- '///+<li>Open Tools/Options -> OpenOffice.org/Security</li>
- ToolsOptions
- hToolsOptions( "Staroffice" , "Security" )
-
- '///+<li>Click on the macro security button</li>
- Kontext "TabSecurity"
- if ( MacroSecurity.exists( 2 ) ) then
- MacroSecurity.click()
-
- '///+<li>Ensure we are on the Security Level page</li>
- kontext "Active"
- if ( Active.exists( 2 ) ) then
-
- Kontext
- active.setpage TabSecurityLevel
-
- '///+<li>Get the current setting (=returnvalue)</li>
- Kontext "TabSecurityLevel"
- if ( TabSecurityLevel.exists( 2 ) ) then
- if ( veryhigh.isChecked() ) then
- iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_VERYHIGH
- elseif( high.isChecked() ) then
- iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_HIGH
- elseif( medium.isChecked() ) then
- iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_MEDIUM
- elseif( low.isChecked() ) then
- iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_LOW
- end if
- else
- printlog( CFN & "Security Tabpage not available. Aborting." )
- kontext "OptionenDlg"
- if ( OptionenDlg.exists( 2 ) ) then
- OptionenDlg.cancel()
- else
- warnlog( CFN & "Unrecoverable error, status unknown." )
- endif
- hSetMacroSecurity() = -1
- exit function
- endif
-
- '///+<li>Set the new security level</li>
- select case iLevel
- case GC_MACRO_SECURITY_LEVEL_LOW : low.check()
- case GC_MACRO_SECURITY_LEVEL_MEDIUM : medium.check()
- case GC_MACRO_SECURITY_LEVEL_HIGH : high.check()
- case GC_MACRO_SECURITY_LEVEL_VERYHIGH : veryhigh.check()
- end select
-
- printlog( CFN & "Setting macro security level to " & caLevel( iLevel ) )
-
- else
- printlog( CFN & "Macro Security Dialog did not open. Aborting." )
- kontext "OptionenDlg"
- if ( OptionenDlg.exists( 2 ) ) then
- OptionenDlg.cancel()
- else
- warnlog( CFN & "Unrecoverable error, status unknown." )
- endif
- hSetMacroSecurity() = -1
- exit function
- endif
-
- '///+<li>Close Tools/Options</li>
- TabSecurityLevel.ok()
- else
- warnlog( CFN & "The Macro Security Button is not available" )
- iOldSecurityLevel = -1
- end if
- Kontext "OptionenDLG"
- OptionenDLG.OK()
- '///</ul>
- hSetMacroSecurity() = iOldSecurityLevel
-end function
-
-'-------------------------------------------------------------------------
-
-function fGetSetMacroSecurityUNO (optional iLevel as integer) as integer
- ' Input : Security level where 0 = low and 3 = very high; empty: just return current value
- ' Return : Previous security level, -1 on error
- ' Changes: If iLevel is given, update global variable gMacroSecurityLevel to new level
- ' NOTE : If possible use this function outside the testcase
- '///Switch between macro security levels in Tools/Options without using the UI
- Dim sFileFunction as string
- Dim iOldSecurityLevel as integer
- Dim oUnoOfficeConnection as object
- Dim oUnoConfigurationAccess as object
- Dim aPropertyValue(1) As new com.sun.star.beans.PropertyValue ' Array of pairs: Property with Value
- Dim xViewRoot
- Dim bOptional as boolean
-
- sFileFunction = "global::tools::inc::t_option2.inc::hSetMacroSecurity::"
- bOptional = isMissing(iLevel)
- iOldSecurityLevel = -1
-
- ' Open OOo UNO-Port for communication
- oUnoOfficeConnection=hGetUnoService(TRUE)
- if (NOT isNull(oUnoOfficeConnection)) then
- try
- ' Open Configuration access
- oUnoConfigurationAccess=oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
- if (NOT isNull(oUnoConfigurationAccess)) then
- ' Specifies the location of the view root in the configuration:
- ' The value is the Path name of the configuration item to change.
- aPropertyValue(0).Name="nodepath"
- ' Controls how updates are handled in the cache: If false , the cache
- ' must operate in write-through mode, where updates are written to
- ' persistent storage at once - that is before ::commitChanges() returns.
- aPropertyValue(1).Name="lazywrite"
- aPropertyValue(1).Value=False
-
- '///Tools / Options / Security
- '///Check which 'Macro Security Level' is set and put it into returnvalue.
- aPropertyValue(0).Value="/org.openoffice.Office.Common/Security/Scripting"
- xViewRoot=oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
- iOldSecurityLevel = xViewRoot.getByName("MacroSecurityLevel")
- ' If input is given, use it by setting the Security Level
- if NOT bOptional then
- xViewRoot.setPropertyValue("MacroSecurityLevel", iLevel)
- xViewRoot.commitChanges()
- ' Since we use lazywrite=false, the call to '.commitChanges()' returns if all data is written.
- ' This call to ask for pending changes is just to convince me;
- if xViewRoot.hasPendingChanges() then
- qaErrorLog(sFileFunction+"Changes still pending...")
- ' At this point there is no needed to think about what to do, if it doesn't work.
- ' If it doesn't work, the change is performed in the UI via
- ' global::system::inc::master.inc::mMakeGeneralOptions
- end if
- ' Update global value
- gMacroSecurityLevel = iLevel
- end if
- ' Destroy, discard, dump, get rid of, put away, throw away, trash, the object:
- xViewRoot.dispose()
- else
- qaErrorLog(sFileFunction+"Couldn't create Configuration access")
- end if
- catch
- qaErrorLog(sFileFunction+"Failure during reading or setting Configuration Value")
- endcatch
- else
- qaErrorLog(sFileFunction+"Couldn't get UNO service")
- end if
- fGetSetMacroSecurityUNO = iOldSecurityLevel
-end function
-
-
-
-'*******************************************************************************
-
-function hGetMacroSecurityAPI() as integer
-
-
- '///<h3>Retrieve the macro security level via API</h3>
- '///<i>Use remote UNO to quickly retrieve the current macro security level.
- '///+ This function runs silent unless an error is encountered.</i><br><br>
-
- '///<u>Parameter(s):</u><br>
- '///<ol>
- '///+<li>No input parameters</li>
- '///</ol>
-
-
- '///<u>Returns:</u><br>
- '///<ol>
- '///+<li>Macro Security Level (Integer)</li>
- '///<ul>
- '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
- '///+<li>-1 = Error</li>
- '///</ul>
- '///</ol>
-
- const CFN = "hGetMacroSecurityAPI::"
-
- dim oUnoOfficeConnection as object
- dim oUnoConfigurationAccess as object
- dim aPropertyValue( 1 ) As new com.sun.star.beans.PropertyValue
- dim iLevel as integer
- dim xViewRoot
-
- try
-
- oUnoOfficeConnection=hGetUnoService(TRUE)
- oUnoConfigurationAccess=oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
-
- aPropertyValue( 0 ).Name = "nodepath"
- aPropertyValue( 0 ).Value = "/org.openoffice.Office.Common/Security/Scripting"
- aPropertyValue( 1 ).Name = "lazywrite"
- aPropertyValue( 1 ).Value = FALSE
-
- xViewRoot=oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationUpdateAccess", aPropertyValue() )
- iLevel = xViewRoot.getByName( "MacroSecurityLevel" )
- xViewRoot.dispose()
-
- catch
-
- warnlog( CFN & "Failed to retrieve macro security Level via API" )
- iLevel = -1
-
- endcatch
-
- hGetMacroSecurityAPI() = iLevel
-
-end function
-
-
-'*******************************************************************************
-
-function hSetMacroSecurityAPI( iSecLevel as integer ) as integer
-
-
- '///<h3>Set macro security level using API</h3>
- '///<i>Set the macro security using remote uno. This implementation does exactly
- '///+ the same as hSetMacroSecurity but is considerably faster</i><br><br>
-
- '///<u>Parameter(s):</u><br>
- '///<ol>
-
- '///+<li>Desired macro security level (Integer). Following symbolic names are defined:</li>
- '///<ul>
- '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
- '///</ul>
-
- '///</ol>
-
-
- '///<u>Returns:</u><br>
- '///<ol>
- '///+<li>Previous security level (Integer)</li>
- '///<ul>
- '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
- '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
- '///+<li>-1 on error</li>
- '///</ul>
- '///</ol>
-
- const CFN = "hSetMacroSecurityAPI::"
-
- dim oUnoOfficeConnection as object
- dim oUnoConfigurationAccess as object
- dim aPropertyValue( 1 ) As new com.sun.star.beans.PropertyValue
- dim iLevel as integer
- dim xViewRoot
-
- dim caLevel( 3 ) as string
- caLevel( 0 ) = "low"
- caLevel( 1 ) = "medium"
- caLevel( 2 ) = "high"
- caLevel( 3 ) = "very high"
-
- aPropertyValue( 0 ).Name = "nodepath"
- aPropertyValue( 0 ).Value = "/org.openoffice.Office.Common/Security/Scripting"
- aPropertyValue( 1 ).Name = "lazywrite"
- aPropertyValue( 1 ).Value = FALSE
-
- '///<u>Description:</u>
- '///<ul>
-
- iLevel = 0
-
- '///+<li>Verify input parameter, quit function with a warning on error</li>
- if ( iSecLevel < GC_MACRO_SECURITY_LEVEL_LOW or iSecLevel > GC_MACRO_SECURITY_LEVEL_VERYHIGH ) then
-
- warnlog( CFN & "Invalid security level passed to function: " & iSecLevel )
- hSetMacroSecurityAPI() = -1
- exit function
-
- endif
-
-
- '///+<li>Get current security level, set the new one</li>
- try
-
- oUnoOfficeConnection=hGetUnoService(TRUE)
- oUnoConfigurationAccess=oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
-
- xViewRoot=oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
- iLevel = xViewRoot.getByName( "MacroSecurityLevel" ) ' Get the current value
- xViewRoot.setPropertyValue( "MacroSecurityLevel" , iSecLevel ) ' Set the new value
- xViewRoot.commitChanges()
- xViewRoot.dispose()
-
- printlog( CFN & "Setting macro security level to " & caLevel( iSecLevel )
-
- catch
-
- warnlog( CFN & "Failed to get/set new macro security level via API:" & iSecLevel )
- iLevel = -1
-
- endcatch
- '///</ul>
-
- hSetMacroSecurityAPI() = iLevel
-
-end function
-
-'*******************************************************************************
-
-function hIsOOoImprovementTabVisible() as boolean
-
- ' This function tries to find out whether the OOo Improvement Program
- ' Tabpage in Tools/Options is visible or not.
-
- dim oUnoConnect as object
- dim oOOoImprovementController as object
- dim bExists as boolean
- const CFN = "hIsOOoImprovementTabVisible()::"
-
- oUnoConnect = hGetUnoService( TRUE )
- if ( isNull( oUnoConnect ) ) then
- warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
- hIsOOoImprovementTabVisible() = FALSE
- exit function
- else
- try
- oOOoImprovementController = oUnoConnect.createInstance( "com.sun.star.oooimprovement.CoreController" )
- bExists = oOOoImprovementController.showBuiltinOptionsPage( 1 )
- if ( bExists ) then
- 'printlog( CFN & "The OOo Improvement Program Tabpage is visible" )
- hIsOOoImprovementTabVisible() = TRUE
- else
- printlog( CFN & "The OOo Improvement Program Tabpage is not visible" )
- hIsOOoImprovementTabVisible() = FALSE
- endif
- catch
- warnlog( CFN & "Method com.sun.star.oooimprovement.CoreController.showBuiltinOptionsPage() not available." )
- printlog( CFN & "This indicates that the OOo Improvement Program feature is not included in this build." )
- hIsOOoImprovementTabVisible() = FALSE
- endcatch
- endif
-
-end function
-
-'*******************************************************************************
-
-function hEnableOOoImprovementProgramUNO() as boolean
-
- ' This function tries to enable the OOo Improvement Program (switch it on)
- dim oUnoOfficeConnection as object
- dim oUnoConfigurationAccess as object
- dim aPropertyValue(1) As new com.sun.star.beans.PropertyValue ' Array of pairs: Property with Value
- dim xViewRoot
-
- const CFN = "hEnableOOoImprovementProgramUNO()::"
-
- aPropertyValue(0).Name = "nodepath"
- aPropertyValue(0).Value = "/org.openoffice.Office.OOoImprovement.Settings/Participation"
- aPropertyValue(1).Name = "lazywrite"
- aPropertyValue(1).Value = False
-
- oUnoOfficeConnection = hGetUnoService( TRUE )
- if ( isNull( oUnoOfficeConnection )) then
- warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
- hEnableOOoImprovementProgramUNO() = FALSE
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+'* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'*
+'* Copyright 2008 by Sun Microsystems, Inc.
+'*
+'* OpenOffice.org - a multi-platform office productivity suite
+'*
+'* $RCSfile: t_option2.inc,v $
+'*
+'* $Revision: 1.1 $
+'*
+'* last change: $Author: jsi $ $Date: 2008-06-13 10:27:11 $
+'*
+'* This file is part of OpenOffice.org.
+'*
+'* OpenOffice.org is free software: you can redistribute it and/or modify
+'* it under the terms of the GNU Lesser General Public License version 3
+'* only, as published by the Free Software Foundation.
+'*
+'* OpenOffice.org is distributed in the hope that it will be useful,
+'* but WITHOUT ANY WARRANTY; without even the implied warranty of
+'* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+'* GNU Lesser General Public License version 3 for more details
+'* (a copy is included in the LICENSE file that accompanied this code).
+'*
+'* You should have received a copy of the GNU Lesser General Public License
+'* version 3 along with OpenOffice.org. If not, see
+'* <http://www.openoffice.org/license.html>
+'* for a copy of the LGPLv3 License.
+'*
+'/************************************************************************
+'*
+'* owner : thorsten.bosbach@sun.com
+'*
+'* short description : Tools library for options testcases
+'*
+'\***********************************************************************
+
+function OptionTabPageZaehler ( SollAnzahl as Integer, optional Ausnahme as Boolean )
+ 'parameter Ausnahme is depracted
+ Dim IstAnzahl
+ Kontext "ExtrasOptionenDlg"
+ IstAnzahl = Optionsliste.GetItemCount - iSectionNumber
+ if Ausnahme = FALSE then
+ if IstAnzahl <> SollAnzahl then WarnLog "Number of tabpages old : " + SollAnzahl + " new : " + IstAnzahl
+ end if
+ OptionTabPageZaehler = IstAnzahl
+end function
+
+'-------------------------------------------------------------------------
+
+sub ToPosInOptionlist ( Sprung as Integer )
+ Dim i as Integer
+ Kontext "OptionenDlg"
+ Optionsliste.TypeKeys "<HOME>"
+ for i = 1 to 12
+ Optionsliste.TypeKeys "-<DOWN>"
+ next i
+ Optionsliste.Select Sprung
+ Optionsliste.TypeKeys "+"
+end sub
+
+'-------------------------------------------------------------------------
+
+sub DialogeFuerTypenKontrollieren
+ ' Complete test for path-options, for all entries the file-dialog or the path-dialog will be opened
+ Dim i as Integer
+ Dim iCount as Integer
+ Dim iErrorCount as integer
+ Kontext "TabPfade"
+ Typ.TypeKeys "<Down><Down><Home>"
+ iCount = 0
+ iErrorCount = 0
+ for i=1 to Typ.GetItemCount
+ if i<>1 then Typ.TypeKeys "<Down>"
+ printlog " "+typ.getText
+ if bAsianLan <> TRUE then
+ try
+ Bearbeiten.Click
+ kontext
+ if active.exists (3) then
+ iErrorCount = iErrorCount + 1
+ if (iErrorCount > 1) then
+ Warnlog active.getText
+ endif
+ qaErrorlog "#i69014# gallery path doesn't exist: '" + active.getText + "'"
+ printlog active.getText
+ active.ok
+ endif
+ Kontext "OeffnenDlg"
+ if OeffnenDlg.Exists(2) then
+ if Dateityp.IsVisible = TRUE then Warnlog "The normal FileOpen-Dialog is visible with the Filetype-Listbox => BUG!"
+ OeffnenDlg.Cancel
+ else
+ Kontext "PfadeAuswaehlen"
+ PfadeAuswaehlen.Cancel
+ end if
+ Sleep (1)
+ Kontext "TabPfade"
+ catch
+ Warnlog "Error on entry " & i & "!"
+ Exceptlog
+ endcatch
+ else
+ try
+ if Bearbeiten.IsEnabled = TRUE then
+ Bearbeiten.Click
+ kontext
+ if active.exists (3) then
+ iErrorCount = iErrorCount + 1
+ if (iErrorCount > 1) then
+ Warnlog active.getText
+ endif
+ qaErrorlog "WorkAround for #109107# has to come up only once @'Add-Ins'! else BUG!"
+ active.ok
+ endif
+ Kontext "OeffnenDlg"
+ if OeffnenDlg.Exists(2) then
+ if Dateityp.IsVisible = TRUE then Warnlog "The normal FileOpen-Dialog is visible with the Filetype-Listbox => BUG!"
+ OeffnenDlg.Cancel
+ else
+ Kontext "PfadeAuswaehlen"
+ PfadeAuswaehlen.Cancel
+ end if
+ Sleep (1)
+ Kontext "TabPfade"
+ else
+ iCount = iCount + 1
+ end if
+ catch
+ Warnlog "Error on entry " & i & "!"
+ Exceptlog
+ endcatch
+ end if
+ next i
+ if iCount > 3 then Warnlog "There are more than 3 entries are disabled!"
+
+end sub
+
+'-------------------------------------------------------------------------
+
+function hSetMacroSecurity( iLevel as integer ) as integer
+
+ '///<h3>Set macro security level via GUI</h3>
+ '///<i>Set the macro security by accessing the Tools/Options->
+ '///+ OpenOffice.org/Security::Macro... Tabpage</i><br><br>
+
+ '///<u>Parameter(s):</u><br>
+ '///<ol>
+
+ '///+<li>Desired macro security level (Integer). Following symbolic names are defined:</li>
+ '///<ul>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
+ '///</ul>
+
+ '///</ol>
+
+
+ '///<u>Returns:</u><br>
+ '///<ol>
+ '///+<li>Previous security level (Integer)</li>
+ '///<ul>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
+ '///+<li>-1 on error</li>
+ '///</ul>
+ '///</ol>
+
+
+
+ '///Switch between macro security levels in Tools/Options
+ '///<ul>
+ const CFN = "hSetMacroSecurity::"
+ dim iOldSecurityLevel as integer
+
+ dim caLevel( 3 ) as string
+ caLevel( 0 ) = "low"
+ caLevel( 1 ) = "medium"
+ caLevel( 2 ) = "high"
+ caLevel( 3 ) = "very high"
+
+ if ( ( iLevel < GC_MACRO_SECURITY_LEVEL_LOW ) or ( iLevel > GC_MACRO_SECURITY_LEVEL_VERYHIGH ) ) then
+ warnlog( CFN & "Invalid index (0...3) passed to function: " & ilevel )
+ hSetMacroSecurity() = -1
+ exit function
+ end if
+
+ '///+<li>Open Tools/Options -> OpenOffice.org/Security</li>
+ ToolsOptions
+ hToolsOptions( "Staroffice" , "Security" )
+
+ '///+<li>Click on the macro security button</li>
+ Kontext "TabSecurity"
+ if ( MacroSecurity.exists( 2 ) ) then
+ MacroSecurity.click()
+
+ '///+<li>Ensure we are on the Security Level page</li>
+ kontext "Active"
+ if ( Active.exists( 2 ) ) then
+
+ Kontext
+ active.setpage TabSecurityLevel
+
+ '///+<li>Get the current setting (=returnvalue)</li>
+ Kontext "TabSecurityLevel"
+ if ( TabSecurityLevel.exists( 2 ) ) then
+ if ( veryhigh.isChecked() ) then
+ iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_VERYHIGH
+ elseif( high.isChecked() ) then
+ iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_HIGH
+ elseif( medium.isChecked() ) then
+ iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_MEDIUM
+ elseif( low.isChecked() ) then
+ iOldSecurityLevel = GC_MACRO_SECURITY_LEVEL_LOW
+ end if
+ else
+ printlog( CFN & "Security Tabpage not available. Aborting." )
+ kontext "OptionenDlg"
+ if ( OptionenDlg.exists( 2 ) ) then
+ OptionenDlg.cancel()
+ else
+ warnlog( CFN & "Unrecoverable error, status unknown." )
+ endif
+ hSetMacroSecurity() = -1
+ exit function
+ endif
+
+ '///+<li>Set the new security level</li>
+ select case iLevel
+ case GC_MACRO_SECURITY_LEVEL_LOW : low.check()
+ case GC_MACRO_SECURITY_LEVEL_MEDIUM : medium.check()
+ case GC_MACRO_SECURITY_LEVEL_HIGH : high.check()
+ case GC_MACRO_SECURITY_LEVEL_VERYHIGH : veryhigh.check()
+ end select
+
+ printlog( CFN & "Setting macro security level to " & caLevel( iLevel ) )
+
+ else
+ printlog( CFN & "Macro Security Dialog did not open. Aborting." )
+ kontext "OptionenDlg"
+ if ( OptionenDlg.exists( 2 ) ) then
+ OptionenDlg.cancel()
+ else
+ warnlog( CFN & "Unrecoverable error, status unknown." )
+ endif
+ hSetMacroSecurity() = -1
+ exit function
+ endif
+
+ '///+<li>Close Tools/Options</li>
+ TabSecurityLevel.ok()
else
- oUnoConfigurationAccess = oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
- xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
- xViewRoot.replaceByName( "ShowedInvitation", TRUE )
- xViewRoot.replaceByName( "InvitationAccepted", TRUE )
- xViewRoot.commitChanges()
- hEnableOOoImprovementProgramUNO() = TRUE
- if ( xViewRoot.hasPendingChanges() ) then
- hEnableOOoImprovementProgramUNO() = FALSE
- endif
- xViewRoot.dispose()
- endif
-
-end function
-
-'*******************************************************************************
-
-function hDisableOOoImprovementProgramUNO() as boolean
-
- ' This function tries to enable the OOo Improvement Program (switch it on)
- dim oUnoOfficeConnection as object
- dim oUnoConfigurationAccess as object
- dim aPropertyValue(1) As new com.sun.star.beans.PropertyValue ' Array of pairs: Property with Value
- dim xViewRoot
-
- const CFN = "hDisableOOoImprovementProgramUNO()::"
-
- aPropertyValue(0).Name = "nodepath"
- aPropertyValue(0).Value = "/org.openoffice.Office.OOoImprovement.Settings/Participation"
- aPropertyValue(1).Name = "lazywrite"
- aPropertyValue(1).Value = False
-
- oUnoOfficeConnection = hGetUnoService( TRUE )
- if ( isNull( oUnoOfficeConnection )) then
- warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
- hDisableOOoImprovementProgramUNO() = FALSE
+ warnlog( CFN & "The Macro Security Button is not available" )
+ iOldSecurityLevel = -1
+ end if
+ Kontext "OptionenDLG"
+ OptionenDLG.OK()
+ '///</ul>
+ hSetMacroSecurity() = iOldSecurityLevel
+end function
+
+'-------------------------------------------------------------------------
+
+function fGetSetMacroSecurityUNO (optional iLevel as integer) as integer
+ ' Input : Security level where 0 = low and 3 = very high; empty: just return current value
+ ' Return : Previous security level, -1 on error
+ ' Changes: If iLevel is given, update global variable gMacroSecurityLevel to new level
+ ' NOTE : If possible use this function outside the testcase
+ '///Switch between macro security levels in Tools/Options without using the UI
+ Dim sFileFunction as string
+ Dim iOldSecurityLevel as integer
+ Dim oUnoOfficeConnection as object
+ Dim oUnoConfigurationAccess as object
+ Dim aPropertyValue(1) As new com.sun.star.beans.PropertyValue ' Array of pairs: Property with Value
+ Dim xViewRoot
+ Dim bOptional as boolean
+
+ sFileFunction = "global::tools::inc::t_option2.inc::hSetMacroSecurity::"
+ bOptional = isMissing(iLevel)
+ iOldSecurityLevel = -1
+
+ ' Open OOo UNO-Port for communication
+ oUnoOfficeConnection=hGetUnoService(TRUE)
+ if (NOT isNull(oUnoOfficeConnection)) then
+ try
+ ' Open Configuration access
+ oUnoConfigurationAccess=oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
+ if (NOT isNull(oUnoConfigurationAccess)) then
+ ' Specifies the location of the view root in the configuration:
+ ' The value is the Path name of the configuration item to change.
+ aPropertyValue(0).Name="nodepath"
+ ' Controls how updates are handled in the cache: If false , the cache
+ ' must operate in write-through mode, where updates are written to
+ ' persistent storage at once - that is before ::commitChanges() returns.
+ aPropertyValue(1).Name="lazywrite"
+ aPropertyValue(1).Value=False
+
+ '///Tools / Options / Security
+ '///Check which 'Macro Security Level' is set and put it into returnvalue.
+ aPropertyValue(0).Value="/org.openoffice.Office.Common/Security/Scripting"
+ xViewRoot=oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
+ iOldSecurityLevel = xViewRoot.getByName("MacroSecurityLevel")
+ ' If input is given, use it by setting the Security Level
+ if NOT bOptional then
+ xViewRoot.setPropertyValue("MacroSecurityLevel", iLevel)
+ xViewRoot.commitChanges()
+ ' Since we use lazywrite=false, the call to '.commitChanges()' returns if all data is written.
+ ' This call to ask for pending changes is just to convince me;
+ if xViewRoot.hasPendingChanges() then
+ qaErrorLog(sFileFunction+"Changes still pending...")
+ ' At this point there is no needed to think about what to do, if it doesn't work.
+ ' If it doesn't work, the change is performed in the UI via
+ ' global::system::inc::master.inc::mMakeGeneralOptions
+ end if
+ ' Update global value
+ gMacroSecurityLevel = iLevel
+ end if
+ ' Destroy, discard, dump, get rid of, put away, throw away, trash, the object:
+ xViewRoot.dispose()
+ else
+ qaErrorLog(sFileFunction+"Couldn't create Configuration access")
+ end if
+ catch
+ qaErrorLog(sFileFunction+"Failure during reading or setting Configuration Value")
+ endcatch
else
- oUnoConfigurationAccess = oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
- xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
- xViewRoot.replaceByName( "ShowedInvitation", TRUE )
- xViewRoot.replaceByName( "InvitationAccepted", FALSE )
- xViewRoot.commitChanges()
- hDisableOOoImprovementProgramUNO() = TRUE
- if ( xViewRoot.hasPendingChanges() ) then
- hDisableOOoImprovementProgramUNO() = FALSE
- endif
- xViewRoot.dispose()
- endif
-
-end function
+ qaErrorLog(sFileFunction+"Couldn't get UNO service")
+ end if
+ fGetSetMacroSecurityUNO = iOldSecurityLevel
+end function
+
+'*******************************************************************************
+
+function hGetMacroSecurityAPI() as integer
+
+
+ '///<h3>Retrieve the macro security level via API</h3>
+ '///<i>Use remote UNO to quickly retrieve the current macro security level.
+ '///+ This function runs silent unless an error is encountered.</i><br><br>
+
+ '///<u>Parameter(s):</u><br>
+ '///<ol>
+ '///+<li>No input parameters</li>
+ '///</ol>
+
+
+ '///<u>Returns:</u><br>
+ '///<ol>
+ '///+<li>Macro Security Level (Integer)</li>
+ '///<ul>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
+ '///+<li>-1 = Error</li>
+ '///</ul>
+ '///</ol>
+
+ const CFN = "hGetMacroSecurityAPI::"
+
+ dim oUnoOfficeConnection as object
+ dim oUnoConfigurationAccess as object
+ dim aPropertyValue( 1 ) As new com.sun.star.beans.PropertyValue
+ dim iLevel as integer
+ dim xViewRoot
+
+ try
+
+ oUnoOfficeConnection=hGetUnoService(TRUE)
+ oUnoConfigurationAccess=oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
+
+ aPropertyValue( 0 ).Name = "nodepath"
+ aPropertyValue( 0 ).Value = "/org.openoffice.Office.Common/Security/Scripting"
+ aPropertyValue( 1 ).Name = "lazywrite"
+ aPropertyValue( 1 ).Value = FALSE
+
+ xViewRoot=oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationUpdateAccess", aPropertyValue() )
+ iLevel = xViewRoot.getByName( "MacroSecurityLevel" )
+ xViewRoot.dispose()
+
+ catch
+
+ warnlog( CFN & "Failed to retrieve macro security Level via API" )
+ iLevel = -1
+
+ endcatch
+
+ hGetMacroSecurityAPI() = iLevel
+
+end function
+
+
+'*******************************************************************************
+
+function hSetMacroSecurityAPI( iSecLevel as integer ) as integer
+
+
+ '///<h3>Set macro security level using API</h3>
+ '///<i>Set the macro security using remote uno. This implementation does exactly
+ '///+ the same as hSetMacroSecurity but is considerably faster</i><br><br>
+
+ '///<u>Parameter(s):</u><br>
+ '///<ol>
+
+ '///+<li>Desired macro security level (Integer). Following symbolic names are defined:</li>
+ '///<ul>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
+ '///</ul>
+
+ '///</ol>
+
+
+ '///<u>Returns:</u><br>
+ '///<ol>
+ '///+<li>Previous security level (Integer)</li>
+ '///<ul>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_LOW (0) for low security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_MEDIUM (1) for medium security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_HIGH (2) for high security</li>
+ '///+<li>GC_MACRO_SECURITY_LEVEL_VERYHIGH (3) for very high security</li>
+ '///+<li>-1 on error</li>
+ '///</ul>
+ '///</ol>
+
+ const CFN = "hSetMacroSecurityAPI::"
+
+ dim oUnoOfficeConnection as object
+ dim oUnoConfigurationAccess as object
+ dim aPropertyValue( 1 ) As new com.sun.star.beans.PropertyValue
+ dim iLevel as integer
+ dim xViewRoot
+
+ dim caLevel( 3 ) as string
+ caLevel( 0 ) = "low"
+ caLevel( 1 ) = "medium"
+ caLevel( 2 ) = "high"
+ caLevel( 3 ) = "very high"
+
+ aPropertyValue( 0 ).Name = "nodepath"
+ aPropertyValue( 0 ).Value = "/org.openoffice.Office.Common/Security/Scripting"
+ aPropertyValue( 1 ).Name = "lazywrite"
+ aPropertyValue( 1 ).Value = FALSE
+
+ '///<u>Description:</u>
+ '///<ul>
+
+ iLevel = 0
+
+ '///+<li>Verify input parameter, quit function with a warning on error</li>
+ if ( iSecLevel < GC_MACRO_SECURITY_LEVEL_LOW or iSecLevel > GC_MACRO_SECURITY_LEVEL_VERYHIGH ) then
+
+ warnlog( CFN & "Invalid security level passed to function: " & iSecLevel )
+ hSetMacroSecurityAPI() = -1
+ exit function
+
+ endif
+
+
+ '///+<li>Get current security level, set the new one</li>
+ try
+
+ oUnoOfficeConnection=hGetUnoService(TRUE)
+ oUnoConfigurationAccess=oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
+
+ xViewRoot=oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
+ iLevel = xViewRoot.getByName( "MacroSecurityLevel" ) ' Get the current value
+ xViewRoot.setPropertyValue( "MacroSecurityLevel" , iSecLevel ) ' Set the new value
+ xViewRoot.commitChanges()
+ xViewRoot.dispose()
+
+ printlog( CFN & "Setting macro security level to " & caLevel( iSecLevel )
+
+ catch
+
+ warnlog( CFN & "Failed to get/set new macro security level via API:" & iSecLevel )
+ iLevel = -1
+
+ endcatch
+ '///</ul>
+
+ hSetMacroSecurityAPI() = iLevel
+
+end function
+
+'*******************************************************************************
+
+function hIsOOoImprovementTabVisible() as boolean
+
+ ' This function tries to find out whether the OOo Improvement Program
+ ' Tabpage in Tools/Options is visible or not.
+
+ dim oUnoConnect as object
+ dim oOOoImprovementController as object
+ dim bExists as boolean
+ const CFN = "hIsOOoImprovementTabVisible()::"
+
+ oUnoConnect = hGetUnoService( TRUE )
+ if ( isNull( oUnoConnect ) ) then
+ warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
+ hIsOOoImprovementTabVisible() = FALSE
+ exit function
+ else
+ try
+ oOOoImprovementController = oUnoConnect.createInstance( "com.sun.star.oooimprovement.CoreController" )
+ bExists = oOOoImprovementController.showBuiltinOptionsPage( 1 )
+ if ( bExists ) then
+ 'printlog( CFN & "The OOo Improvement Program Tabpage is visible" )
+ hIsOOoImprovementTabVisible() = TRUE
+ else
+ printlog( CFN & "The OOo Improvement Program Tabpage is not visible" )
+ hIsOOoImprovementTabVisible() = FALSE
+ endif
+ catch
+ warnlog( CFN & "Method com.sun.star.oooimprovement.CoreController.showBuiltinOptionsPage() not available." )
+ printlog( CFN & "This indicates that the OOo Improvement Program feature is not included in this build." )
+ hIsOOoImprovementTabVisible() = FALSE
+ endcatch
+ endif
+
+end function
+
+'*******************************************************************************
+
+function hEnableOOoImprovementProgramUNO() as boolean
+
+ ' This function tries to enable the OOo Improvement Program (switch it on)
+ dim oUnoOfficeConnection as object
+ dim oUnoConfigurationAccess as object
+ dim aPropertyValue(1) As new com.sun.star.beans.PropertyValue ' Array of pairs: Property with Value
+ dim xViewRoot
+
+ const CFN = "hEnableOOoImprovementProgramUNO()::"
+
+ aPropertyValue(0).Name = "nodepath"
+ aPropertyValue(0).Value = "/org.openoffice.Office.OOoImprovement.Settings/Participation"
+ aPropertyValue(1).Name = "lazywrite"
+ aPropertyValue(1).Value = False
+
+ oUnoOfficeConnection = hGetUnoService( TRUE )
+ if ( isNull( oUnoOfficeConnection )) then
+ warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
+ hEnableOOoImprovementProgramUNO() = FALSE
+ else
+ oUnoConfigurationAccess = oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
+ xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
+ xViewRoot.replaceByName( "ShowedInvitation", TRUE )
+ xViewRoot.replaceByName( "InvitationAccepted", TRUE )
+ xViewRoot.commitChanges()
+ hEnableOOoImprovementProgramUNO() = TRUE
+ if ( xViewRoot.hasPendingChanges() ) then
+ hEnableOOoImprovementProgramUNO() = FALSE
+ endif
+ xViewRoot.dispose()
+ endif
+
+end function
+
+'*******************************************************************************
+
+function hDisableOOoImprovementProgramUNO() as boolean
+
+ ' This function tries to enable the OOo Improvement Program (switch it on)
+ dim oUnoOfficeConnection as object
+ dim oUnoConfigurationAccess as object
+ dim aPropertyValue(1) As new com.sun.star.beans.PropertyValue ' Array of pairs: Property with Value
+ dim xViewRoot
+
+ const CFN = "hDisableOOoImprovementProgramUNO()::"
+
+ aPropertyValue(0).Name = "nodepath"
+ aPropertyValue(0).Value = "/org.openoffice.Office.OOoImprovement.Settings/Participation"
+ aPropertyValue(1).Name = "lazywrite"
+ aPropertyValue(1).Value = False
+
+ oUnoOfficeConnection = hGetUnoService( TRUE )
+ if ( isNull( oUnoOfficeConnection )) then
+ warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
+ hDisableOOoImprovementProgramUNO() = FALSE
+ else
+ oUnoConfigurationAccess = oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
+ xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
+ xViewRoot.replaceByName( "ShowedInvitation", TRUE )
+ xViewRoot.replaceByName( "InvitationAccepted", FALSE )
+ xViewRoot.commitChanges()
+ hDisableOOoImprovementProgramUNO() = TRUE
+ if ( xViewRoot.hasPendingChanges() ) then
+ hDisableOOoImprovementProgramUNO() = FALSE
+ endif
+ xViewRoot.dispose()
+ endif
+
+end function