diff --git a/src/Plugin/PluginManager.py b/src/Plugin/PluginManager.py index 2a3c89f1..5769ac8f 100644 --- a/src/Plugin/PluginManager.py +++ b/src/Plugin/PluginManager.py @@ -15,6 +15,7 @@ class PluginManager: self.subclass_order = {} # Record the load order of the plugins, to keep it after reload self.pluggable = {} self.plugin_names = [] # Loaded plugin names + self.after_load = [] # Execute functions after loaded plugins sys.path.append(self.plugin_path) @@ -42,6 +43,9 @@ class PluginManager: if dir_name not in self.plugin_names: self.plugin_names.append(dir_name) + for func in self.after_load: + func() + # Reload all plugins def reloadPlugins(self): self.plugins_before = self.plugins @@ -141,6 +145,11 @@ def registerTo(class_name): return classDecorator +def afterLoad(func): + plugin_manager.after_load.append(func) + return func + + # - Example usage - if __name__ == "__main__":