diff options
Diffstat (limited to 'plugins/python/scripting/core.py')
-rw-r--r-- | plugins/python/scripting/core.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/plugins/python/scripting/core.py b/plugins/python/scripting/core.py index 3e96c8e..c46ef07 100644 --- a/plugins/python/scripting/core.py +++ b/plugins/python/scripting/core.py @@ -1,5 +1,6 @@ -from gi.repository import Gtk +from gi.repository import GLib, Gtk +import os from pychrysalide import PluginModule from pychrysalide import core @@ -7,7 +8,6 @@ from pychrysalide.gui import core as gcore from pychrysalide.gui import MenuBar from pychrysalide.gtkext import EasyGtk -from .manager import get_recent_python_script_manager, remember_python_script from .panel import ScriptPanel @@ -21,6 +21,8 @@ class ScriptingEngine(PluginModule): _actions = ( PluginModule.PluginAction.PLUGINS_LOADED, PluginModule.PluginAction.PANEL_CREATION ) + _manager = None + def __init__(self): """Initialize the plugin for Chrysalide.""" @@ -67,9 +69,9 @@ class ScriptingEngine(PluginModule): if action == PluginModule.PluginAction.PLUGINS_LOADED: - filename = self.build_config_filename('recents.xbel', True) + xbel = self.build_config_filename('recents.xbel', True) - get_recent_python_script_manager(filename) + ScriptingEngine._manager = Gtk.RecentManager(filename=xbel) def _on_panel_creation(self, action, item): @@ -77,6 +79,8 @@ class ScriptingEngine(PluginModule): if type(item) == ScriptPanel: + item.attach_manager(ScriptingEngine._manager) + item.connect('run-requested', self._on_run_requested) item.connect('ask-for-new-script', lambda x: self._on_file_run_script_activate(None)) @@ -116,7 +120,16 @@ class ScriptingEngine(PluginModule): self.log_message(core.LogMessageType.INFO, 'Execute the script file \'%s\'' % filename) - remember_python_script(filename) + uri = GLib.filename_to_uri(filename) + + recent_data = Gtk.RecentData() + recent_data.app_name = 'Chrysalide Python plugin' + recent_data.app_exec = 'chrysalide' + recent_data.display_name = os.path.basename(filename) + recent_data.description = 'Python script run inside Chrysalide' + recent_data.mime_type = 'text/x-python' + + ScriptingEngine._manager.add_full(uri, recent_data) try: with open(filename, 'r') as fd: |