summaryrefslogtreecommitdiff
path: root/plugins/python/scripting/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/python/scripting/core.py')
-rw-r--r--plugins/python/scripting/core.py23
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: