Hola Ignacio

[EMAIL PROTECTED] escribió:
¿Como modifico el numero de archivos que salen en la lista de archivos
recientes? He probado con la Macro de Ariel para el openoffice 2.2
(disponible en
www.arielconstenlahaile.com.ar/ooo/docs/ARIEL_OOoBASIC_PickList.odt)
 pero tengo la versión 2.3 de Novell, en el trabajo (lo que no puedo
evitar), y no funciona (da igual que reinicie el openoffice o el ordenador)
¿Existe alguna otra manera?  y por curiosidad, ¿Funciona la Macro de Ariel
en la 2.3 de Sun?
Saludos
Ignacio Pavón Mayo
[EMAIL PROTECTED]

los ingenieros de software son a veces como esos maridos que los fines de semana se dedican a arreglar algo roto en la casa: mientras arreglan una cosa, rompen otra(s).

En algún build de 2.0 a 2.3 el código de OOo ha sido modificado de forma tal que configurar el tamaño de la lista de archivos recientes se ha vuelto bastante "buggy".

Si modificas el tamaño de la lista (desde una macro en un documento o en "Mis macros", cada vez que abres un documento, y cada vez que lo cierras, OOo regresa el valor de la cantidad de archivos a su valor por defecto: 10.

De esta forma NO tiene sentido cambiar el tamaño desde una macro en un documento (o desde "Mis macros" teniendo algún documento abierto): cuando lo cierres, volverá a quedar en 10.


"Work-around": modificar la configuración desde macros en "Mis macros", en el IDE de OOo Basic, SIN ningún doc. abierto en el escritorio.

* cierra TODOS los documentos quedando abierto sólo el IDE de OOo Basic
* en Win, finalizar el inicio rápido
* en una biblioteca escribe las macros de abajo
* reinicia OOo SIN inmediatamente, SIN abrir ni cerrar ningún documento

Esto "debe" funcionar: lo he probado en Windows y Linux (con el build oficial de OOo y la versión de SuSe)


Saludos
Ariel.


'**************************************************************************************

Sub [Modificar la cantidad de documentos recientes]
        Dim nNuevaCantidad As Long
        'escriba la nueva cantidad, por ejemplo 30
        'NO mayor de 100
        nNuevaCantidad = 30
        Set_PickList_Size(nNuevaCantidad)
End Sub


Sub Set_PickList_Size(aSize as Long)
        Dim oConfig as Object
        If aSize < 10 OR aSize > 100 Then
MsgBox "Less that 10 is not recommended, more that 100 is forbidden!", 16, "ERROR"
                Exit Sub
        End If
oConfig = getConfigurationAccess("/org.openoffice.Office.Common/History", true) MsgBox "Cantidad ACTUAL de documentos: " & oConfig.PickListSize, 64, "Cantidad ACTUAL de documentos"
        oConfig.PickListSize = aSize
        oConfig.commitChanges()
MsgBox "NUEVA cantidad de documentos: " & oConfig.PickListSize, 64, "NUEVA cantidad de documentos"
        
End Sub


Function getConfigurationAccess( _
                                                                        
sNodePath$,_
                                                                        bUpdate 
as Boolean,_
                                                                        
Optional aLocale$ _
                                                                )
REM Param. aLocale es STRING, NO com.sun.star.lang.Locale
'       p.e.    "es", "es-AR"
'                       "*" para TODAS
        On Error GoTo getConfigurationAccessErrorHandler

        Dim sConfigurationProvider$, oConfigurationProvider as Object
        Dim sConfigurationAccess$, sConfigurationUpdateAccess$, sConfiguration$
        Dim oConfigurationAccess as Object
        
        sConfigurationProvider = 
"com.sun.star.configuration.ConfigurationProvider"
        oConfigurationProvider = createUNOService(sConfigurationProvider)
        
        Dim oParametros(0) As New com.sun.star.beans.PropertyValue
        oParametros(0).Name = "nodepath"
        oParametros(0).Value = sNodePath
        
        sConfigurationAccess   = 
"com.sun.star.configuration.ConfigurationAccess"
sConfigurationUpdateAccess = "com.sun.star.configuration.ConfigurationUpdateAccess"
        
        if bUpdate then
                ReDim Preserve oParametros(1)
                oParametros(1).Name = "EnableAsync"
                oParametros(1).Value = FALSE
                sConfiguration = sConfigurationUpdateAccess
        else
                sConfiguration = sConfigurationAccess
        end if
        
        if NOT IsMissing(aLocale) then
                Dim n%
                n = UBound(oParametros)+1
                ReDim Preserve oParametros(n)
                oParametros(n).Name = "Locale"
                oParametros(n).Value = aLocale
        end if
                
        oConfigurationAccess = 
oConfigurationProvider.createInstanceWithArguments(_
                                                                                
sConfiguration, oParametros())
        
        getConfigurationAccessCleanUp:                                          
                        
                getConfigurationAccess() = oConfigurationAccess
                Exit Function
                getConfigurationAccessErrorHandler:
                        Resume getConfigurationAccessCleanUp
End Function


'**************************************************************************************







--
Ariel Constenla-Haile
La Plata, Argentina

[EMAIL PROTECTED]
[EMAIL PROTECTED]

http://www.arielconstenlahaile.com.ar/ooo/



"Aus der Kriegsschule des Lebens
                - Was mich nicht umbringt,
        macht mich härter."
                Nietzsche Götzendämmerung, Sprüche und Pfeile, 8.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Responder a