Files
odfstudio/scripting/source/pyprov
Neil Roberts 35ad1a73cb tdf#56289 pythonscript: Implement edit action by invoking default app
This implements the Editable invoke action on ScriptBrowseNode and
FileBrowseNode using a shared mixin class so that when the user selects
a file or a macro in the dialog for organising macros the edit button
will be clickable. When clicked the default app for .py files will be
opened.

On Windows it seems that installing a Python interpreter makes that the
default application for Python files. In order to avoid just running the
script instead of editing it, the code tries to determine what program
is the default by calling AssocQueryString via ctypes. If it looks like
a Python interpreter the python file will be opened with notepad
instead. Otherwise the document is opened with the “open” verb via
os.startfile.

On all other platforms the file is opened with SystemShellExecute. On my
Mac this ends up opening it in XCode. On my default Fedora install this
ends up opening the script in gedit which is probably quite a good
default. Hopefully there are no distros that default to executing Python
scripts when passed to xdg-open.

For some reason SystemShellExecute doesn’t seem to do anything on
Windows which is why os.startfile is used instead.

Change-Id: If37ee13aea0200cd6b20230bd92a77aa6a0d3273
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202852
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-04-08 09:16:21 +02:00
..
…