Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | Cannot call Python macro from the command line using URI syntax | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | General | Reporter: | shrib <shri.borde> | ||||||
Component: | scripting | Assignee: | AOO issues mailing list <issues> | ||||||
Status: | RESOLVED FIXED | QA Contact: | |||||||
Severity: | Trivial | ||||||||
Priority: | P3 | CC: | elish, eric.bachard, hanya.runo, issues, rutsky.vladimir | ||||||
Version: | OOO320m18 | Keywords: | needhelp | ||||||
Target Milestone: | 4.2.0 | ||||||||
Hardware: | All | ||||||||
OS: | All | ||||||||
Issue Type: | FEATURE | Latest Confirmation in: | --- | ||||||
Developer Difficulty: | --- | ||||||||
Attachments: |
|
Description
shrib
2010-07-27 21:51:10 UTC
Not supporting something is no DEFECT -> FEATURE and this is no P2 by far (please read the rules) -> P3 ab->cd: This is more Office startup than scripting. Should this be supported at all? Please have a look. . vnd.sun.star.script protocol is handled by ScriptProtocolHandler in scripting/source/protocolhandler/scripthandler.cxx. The script is executed through dispatchWithNotification method but XController from the document frame is not valied in getScriptInvocation method at this time. As the side problem of this issue, when I start soffice with vnd.sun.star.script:...?location=document, the instance would not exit. It seems this happens because of the dispatch watcher for calling dispatchWithNotification method of the protocol handler for the script. When the protocol handler failed to access to the document's script, it returned without calling dispatchFinished method of the dispatch result listener. When I called the method with css::frame::DispatchResultState::FAILURE status, the instance of the office finished normally. css::frame::XDispatch interface is queried to execute the script from the instance of the desktop, so its XFrame do not know the controller of the document. Like SfxMacroLoader::GetObjectShell_Impl for "macro:" protocol, SfxFrame could be used to access to the document, it seems. Created attachment 82414 [details]
Patch to add fallback if the frame is not bound to the contrller
Find current frame from SfxFrame tree or use current document shell if
the document frame is not bound to the controller yet.
And also, call dispatchFinished if document invocation is not found or
the execution of the macro is interrupted because of the security settings.
Created attachment 82415 [details] Document contains macro to verify The attached document contains BeanShell macro to verify, the body of the document is empty. Execute the following command: > soffice DocWithBeanShellMacro.odt "vnd.sun.star.script:Library1.Macro1.bsh?language=BeanShell&location=document" With "Medium" level of macro security: - "Enable Macros": "Hello World (in BeanShell)" is written by the macro. - "Disable Macros": Empty document is shown. "hanya" committed SVN revision 1595439 into trunk: #i113481# query script invocation from the current frame when the controller ... Fixed on trunk. |