Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-10 Thread Tom Davies
Hi :)
There is a release plan/schedule here
http://wiki.documentfoundation.org/ReleasePlan

It is very aggressive and i tend to find a good one and stick with it for ages.
Regards from
Tom :)


--- On Thu, 10/11/11, Andrew Douglas Pitonyak  wrote:

From: Andrew Douglas Pitonyak 
Subject: Re: [libreoffice-users] Re: Howto find all macros in a document and 
delete or deactivate them?
To: users@global.libreoffice.org
Date: Thursday, 10 November, 2011, 2:02



On 11/09/2011 07:02 PM, drew wrote:
> On Wed, 2011-11-09 at 17:55 -0500, Andrew Douglas Pitonyak wrote:
>> On 11/09/2011 05:45 PM, Andrew Douglas Pitonyak wrote:
>>>
>>> On 11/09/2011 05:07 PM, drew wrote:
>>>> On Wed, 2011-11-09 at 20:12 +, Alex Thurgood wrote:
>>>>> Le 09/11/2011 10:22, hhm a écrit :
>>>>>
>>>>>
>>>>> Hi Hans,
>>>>>
>>>>>> I'm looking for a way to find every macro that is attached to a
>>>>>> document and
>>>>>> delete or respectively deactivate them. How do I do that?
>>>>>>
>>>>> With a script would probably be the easisest way, by unzipping the OD*
>>>>> files and parsing the unzipped contents to seach for the Basic
>>>>> directory, deleting it, then rezipping the file ?
>>>> Hi Alex,
>>>>
>>>> I was thinking it took a bit more then that and so I just tried it and
>>>> yes.
>>>>
>>>> You need to make three changes.
>>>>
>>>> After unzipping the file you remove two directories:
>>>> = Basic
>>>> = Dialogs
>>>>
>>>> Then you need to edit the file manifest.xml in the META-INF directory.
>>>> - remove all lines that reference basic or dialog.
>>>> [They look something like]
>>>> >>> manifest:full-path="Basic/Standard/script-lb.xml"/>
>>>>
>>>> Then you re-zip and voila it works.
>>>>
>>>> If you leave out the last step the file will not open.
>>>>
>>>> HTH somehow,
>>>>
>>>> //drew
>>>>
>>>>
>>> Drew's method will work just fine if what you mean to do is to remove
>>> all macros contained in a document (as opposed to removing all
>>> references to macros from inside the document; in a button or an
>>> associated event, for example).
>>>
>> See if you can make the document current and run this macro
>>
>> Sub RemoveAllContainedLibs
>>     Dim sNames
>>     Dim oLibs
>>     Dim i%
>>
>>     oLibs = ThisComponent.BasicLibraries
>>     sNames = oLibs.getElementNames()
>>     For i = UBound(sNames) To LBound(sNames) Step -1
>>       oLibs.removeLibrary(sNames(i))
>>     Next
>>     oLibs = ThisComponent.DialogLibraries
>>     sNames = oLibs.getElementNames()
>>     For i = UBound(sNames) To LBound(sNames) Step -1
>>       oLibs.removeLibrary(sNames(i))
>>     Next
>> End Sub
>>
>>
>> -- 
> Hi Andrew,
>
> Excellent - the only problem is, and it aint yours per so, is removing
> libraries from a document - at least with LibO 3.4.4 as that is what I
> tried it on - does not set the dirty flag for the documnet. So if you
> run the macro and close the document the change isn't saved...arrrgh.
Yeah, I noticed that too. I considered changing the macro to set the 
document dirty (I think that I can do that), but, decided it was not 
worth the trouble to look up how to do it

I upgraded to Fedora 16, installed LO 3.4.3, and then the next day they 
release 3.4.4 . So that is the same version that I tested with 
as well.

-- 
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php


-- 
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

-- 
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted



Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread Andrew Douglas Pitonyak



On 11/09/2011 07:02 PM, drew wrote:

On Wed, 2011-11-09 at 17:55 -0500, Andrew Douglas Pitonyak wrote:

On 11/09/2011 05:45 PM, Andrew Douglas Pitonyak wrote:


On 11/09/2011 05:07 PM, drew wrote:

On Wed, 2011-11-09 at 20:12 +, Alex Thurgood wrote:

Le 09/11/2011 10:22, hhm a écrit :


Hi Hans,


I'm looking for a way to find every macro that is attached to a
document and
delete or respectively deactivate them. How do I do that?


With a script would probably be the easisest way, by unzipping the OD*
files and parsing the unzipped contents to seach for the Basic
directory, deleting it, then rezipping the file ?

Hi Alex,

I was thinking it took a bit more then that and so I just tried it and
yes.

You need to make three changes.

After unzipping the file you remove two directories:
= Basic
= Dialogs

Then you need to edit the file manifest.xml in the META-INF directory.
- remove all lines that reference basic or dialog.
[They look something like]


Then you re-zip and voila it works.

If you leave out the last step the file will not open.

HTH somehow,

//drew



Drew's method will work just fine if what you mean to do is to remove
all macros contained in a document (as opposed to removing all
references to macros from inside the document; in a button or an
associated event, for example).


See if you can make the document current and run this macro

Sub RemoveAllContainedLibs
Dim sNames
Dim oLibs
Dim i%

oLibs = ThisComponent.BasicLibraries
sNames = oLibs.getElementNames()
For i = UBound(sNames) To LBound(sNames) Step -1
  oLibs.removeLibrary(sNames(i))
Next
oLibs = ThisComponent.DialogLibraries
sNames = oLibs.getElementNames()
For i = UBound(sNames) To LBound(sNames) Step -1
  oLibs.removeLibrary(sNames(i))
Next
End Sub


--

Hi Andrew,

Excellent - the only problem is, and it aint yours per so, is removing
libraries from a document - at least with LibO 3.4.4 as that is what I
tried it on - does not set the dirty flag for the documnet. So if you
run the macro and close the document the change isn't saved...arrrgh.
Yeah, I noticed that too. I considered changing the macro to set the 
document dirty (I think that I can do that), but, decided it was not 
worth the trouble to look up how to do it


I upgraded to Fedora 16, installed LO 3.4.3, and then the next day they 
release 3.4.4 . So that is the same version that I tested with 
as well.


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php


--
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread drew
On Thu, 2011-11-10 at 01:41 +0100, Andreas Säger wrote:
> Am 10.11.2011 01:02, drew wrote:
> > On Wed, 2011-11-09 at 17:55 -0500, Andrew Douglas Pitonyak wrote:
> >>
> >> sNames = oLibs.getElementNames()
> >> For i = UBound(sNames) To LBound(sNames) Step -1
> >>   oLibs.removeLibrary(sNames(i))
> >> Next
> >> End Sub
> >>
> 
>   sNames = oLibs.getElementNames()
>   For i = UBound(sNames) To LBound(sNames) Step -1
> if sNames(i)<>"Standard" then
>   oLibs.removeLibrary(sNames(i))
>   ThisComponent.setModified(True)
>   endif
>   Next
> 
>   End Sub
> 
> 
> 
> >>
> >> --

Howdy Andreas,

Cool - now back to something Andrew noted - what about places where the
embedded macros might called from. Not sure how to find everywhere, but
we can enhance that basic procedure to clear out any document event
handlers.

Sub RemoveAllContainedLibs
   Dim sNames
   Dim oLibs
   Dim i%
   Dim EmptyEventProps(1) as new com.sun.star.beans.PropertyValue
 
   oLibs = ThisComponent.BasicLibraries
   sNames = oLibs.getElementNames()
   For i = UBound(sNames) To LBound(sNames) Step -1
 oLibs.removeLibrary(sNames(i))
   Next
   oLibs = ThisComponent.DialogLibraries
   sNames = oLibs.getElementNames()
   For i = UBound(sNames) To LBound(sNames) Step -1
 oLibs.removeLibrary(sNames(i))
   Next
   '
   ' clear all document event handlers
   For i = UBound(ThisComponent.Events.elementNames) To 
LBound(ThisComponent.Events.elementNames) Step -1
 
ThisComponent.Events.ReplaceByName(ThisComponent.Events.ElementNames(i), 
EmptyEventProps())
   next
   '
   ' force dirty flag on document
   ThisComponent.setModified(True)

End Sub




-- 
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread drew
On Wed, 2011-11-09 at 17:55 -0500, Andrew Douglas Pitonyak wrote:
> 
> On 11/09/2011 05:45 PM, Andrew Douglas Pitonyak wrote:
> >
> >
> > On 11/09/2011 05:07 PM, drew wrote:
> >> On Wed, 2011-11-09 at 20:12 +, Alex Thurgood wrote:
> >>> Le 09/11/2011 10:22, hhm a écrit :
> >>>
> >>>
> >>> Hi Hans,
> >>>
>  I'm looking for a way to find every macro that is attached to a 
>  document and
>  delete or respectively deactivate them. How do I do that?
> 
> >>> With a script would probably be the easisest way, by unzipping the OD*
> >>> files and parsing the unzipped contents to seach for the Basic
> >>> directory, deleting it, then rezipping the file ?
> >> Hi Alex,
> >>
> >> I was thinking it took a bit more then that and so I just tried it and
> >> yes.
> >>
> >> You need to make three changes.
> >>
> >> After unzipping the file you remove two directories:
> >> = Basic
> >> = Dialogs
> >>
> >> Then you need to edit the file manifest.xml in the META-INF directory.
> >> - remove all lines that reference basic or dialog.
> >> [They look something like]
> >>  >> manifest:full-path="Basic/Standard/script-lb.xml"/>
> >>
> >> Then you re-zip and voila it works.
> >>
> >> If you leave out the last step the file will not open.
> >>
> >> HTH somehow,
> >>
> >> //drew
> >>
> >>
> > Drew's method will work just fine if what you mean to do is to remove 
> > all macros contained in a document (as opposed to removing all 
> > references to macros from inside the document; in a button or an 
> > associated event, for example).
> >
> See if you can make the document current and run this macro
> 
> Sub RemoveAllContainedLibs
>Dim sNames
>Dim oLibs
>Dim i%
> 
>oLibs = ThisComponent.BasicLibraries
>sNames = oLibs.getElementNames()
>For i = UBound(sNames) To LBound(sNames) Step -1
>  oLibs.removeLibrary(sNames(i))
>Next
>oLibs = ThisComponent.DialogLibraries
>sNames = oLibs.getElementNames()
>For i = UBound(sNames) To LBound(sNames) Step -1
>  oLibs.removeLibrary(sNames(i))
>Next
> End Sub
> 
> 
> -- 
Hi Andrew,

Excellent - the only problem is, and it aint yours per so, is removing
libraries from a document - at least with LibO 3.4.4 as that is what I
tried it on - does not set the dirty flag for the documnet. So if you
run the macro and close the document the change isn't saved...arrrgh.

Best wishes,

//drew




-- 
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread Andrew Douglas Pitonyak



On 11/09/2011 05:45 PM, Andrew Douglas Pitonyak wrote:



On 11/09/2011 05:07 PM, drew wrote:

On Wed, 2011-11-09 at 20:12 +, Alex Thurgood wrote:

Le 09/11/2011 10:22, hhm a écrit :


Hi Hans,

I'm looking for a way to find every macro that is attached to a 
document and

delete or respectively deactivate them. How do I do that?


With a script would probably be the easisest way, by unzipping the OD*
files and parsing the unzipped contents to seach for the Basic
directory, deleting it, then rezipping the file ?

Hi Alex,

I was thinking it took a bit more then that and so I just tried it and
yes.

You need to make three changes.

After unzipping the file you remove two directories:
= Basic
= Dialogs

Then you need to edit the file manifest.xml in the META-INF directory.
- remove all lines that reference basic or dialog.
[They look something like]
manifest:full-path="Basic/Standard/script-lb.xml"/>


Then you re-zip and voila it works.

If you leave out the last step the file will not open.

HTH somehow,

//drew


Drew's method will work just fine if what you mean to do is to remove 
all macros contained in a document (as opposed to removing all 
references to macros from inside the document; in a button or an 
associated event, for example).



See if you can make the document current and run this macro

Sub RemoveAllContainedLibs
  Dim sNames
  Dim oLibs
  Dim i%

  oLibs = ThisComponent.BasicLibraries
  sNames = oLibs.getElementNames()
  For i = UBound(sNames) To LBound(sNames) Step -1
oLibs.removeLibrary(sNames(i))
  Next
  oLibs = ThisComponent.DialogLibraries
  sNames = oLibs.getElementNames()
  For i = UBound(sNames) To LBound(sNames) Step -1
oLibs.removeLibrary(sNames(i))
  Next
End Sub


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php


--
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread Andrew Douglas Pitonyak



On 11/09/2011 05:07 PM, drew wrote:

On Wed, 2011-11-09 at 20:12 +, Alex Thurgood wrote:

Le 09/11/2011 10:22, hhm a écrit :


Hi Hans,


I'm looking for a way to find every macro that is attached to a document and
delete or respectively deactivate them. How do I do that?


With a script would probably be the easisest way, by unzipping the OD*
files and parsing the unzipped contents to seach for the Basic
directory, deleting it, then rezipping the file ?

Hi Alex,

I was thinking it took a bit more then that and so I just tried it and
yes.

You need to make three changes.

After unzipping the file you remove two directories:
= Basic
= Dialogs

Then you need to edit the file manifest.xml in the META-INF directory.
- remove all lines that reference basic or dialog.
[They look something like]


Then you re-zip and voila it works.

If you leave out the last step the file will not open.

HTH somehow,

//drew


Drew's method will work just fine if what you mean to do is to remove 
all macros contained in a document (as opposed to removing all 
references to macros from inside the document; in a button or an 
associated event, for example).


--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php


--
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread drew
On Wed, 2011-11-09 at 20:12 +, Alex Thurgood wrote:
> Le 09/11/2011 10:22, hhm a écrit :
> 
> 
> Hi Hans,
> 
> > I'm looking for a way to find every macro that is attached to a document and
> > delete or respectively deactivate them. How do I do that?
> >
> 
> With a script would probably be the easisest way, by unzipping the OD* 
> files and parsing the unzipped contents to seach for the Basic 
> directory, deleting it, then rezipping the file ?

Hi Alex,

I was thinking it took a bit more then that and so I just tried it and
yes.

You need to make three changes.

After unzipping the file you remove two directories:
= Basic
= Dialogs

Then you need to edit the file manifest.xml in the META-INF directory.
- remove all lines that reference basic or dialog.
[They look something like]


Then you re-zip and voila it works.

If you leave out the last step the file will not open.

HTH somehow,

//drew


-- 
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread drew
On Wed, 2011-11-09 at 21:34 +0100, Cor Nouws wrote:
> Alex Thurgood wrote (09-11-11 21:12)
> >
> > With a script would probably be the easisest way, by unzipping the OD*
> > files and parsing the unzipped contents to seach for the Basic
> > directory, deleting it, then rezipping the file ?
> 
> And via the user interface (Tools > Macro's > .. )
> Or is that answer too simple ?
> 
Hi Cor, Alex

Well, kind of - too simple that is.

The problem, as I recall it from before, is that you can not remove the
standard library from a document once you have added it, in fact the
macro dial

You can empty it, but since you can not remove it, even if there are no
actual functions or procedures left in the library you still are told
when you open the file that there are embedded macros (depending on your
macro security settings).

It's a bit of a pain actually.

//drew


-- 
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


Re: [libreoffice-users] Re: Howto find all macros in a document and delete or deactivate them?

2011-11-09 Thread Cor Nouws

Alex Thurgood wrote (09-11-11 21:12)


With a script would probably be the easisest way, by unzipping the OD*
files and parsing the unzipped contents to seach for the Basic
directory, deleting it, then rezipping the file ?


And via the user interface (Tools > Macro's > .. )
Or is that answer too simple ?

Cheers,

--
 - Cor
 - http://nl.libreoffice.org


--
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted