diff --git a/plugins/code/commands/nanoesq_temp_buffer/plugin.py b/plugins/code/commands/nanoesq_temp_buffer/plugin.py index 028c460..3b01b2d 100644 --- a/plugins/code/commands/nanoesq_temp_buffer/plugin.py +++ b/plugins/code/commands/nanoesq_temp_buffer/plugin.py @@ -23,7 +23,7 @@ class Plugin(PluginCode): def load(self): self._manage_signals("register_command") - def load(self): + def unload(self): self._manage_signals("unregister_command") def _manage_signals(self, action: str): diff --git a/plugins/code/language_server_clients/godot_lsp_client/plugin.py b/plugins/code/language_server_clients/godot_lsp_client/plugin.py index e8d484e..4d384ca 100644 --- a/plugins/code/language_server_clients/godot_lsp_client/plugin.py +++ b/plugins/code/language_server_clients/godot_lsp_client/plugin.py @@ -11,7 +11,7 @@ from libs.event_factory import Event_Factory, Code_Event_Types from plugins.plugin_types import PluginCode -from .response_handler import GodotHandler +from .response_handler import GDScriptHandler @@ -30,7 +30,7 @@ class Plugin(PluginCode): event = Event_Factory.create_event("register_lsp_client", lang_id = "gdscript", lang_config = config, - handler = GodotHandler + handler = GDScriptHandler ) self.emit_to("lsp_manager", event) diff --git a/plugins/code/language_server_clients/godot_lsp_client/response_handler/__init__.py b/plugins/code/language_server_clients/godot_lsp_client/response_handler/__init__.py index d5617e6..c7df0a4 100644 --- a/plugins/code/language_server_clients/godot_lsp_client/response_handler/__init__.py +++ b/plugins/code/language_server_clients/godot_lsp_client/response_handler/__init__.py @@ -1 +1 @@ -from .python import PythonHandler \ No newline at end of file +from .gdscript import GDScriptHandler \ No newline at end of file diff --git a/plugins/code/language_server_clients/godot_lsp_client/response_handler/python.py b/plugins/code/language_server_clients/godot_lsp_client/response_handler/gdscript.py similarity index 84% rename from plugins/code/language_server_clients/godot_lsp_client/response_handler/python.py rename to plugins/code/language_server_clients/godot_lsp_client/response_handler/gdscript.py index 9c1273f..aff293c 100644 --- a/plugins/code/language_server_clients/godot_lsp_client/response_handler/python.py +++ b/plugins/code/language_server_clients/godot_lsp_client/response_handler/gdscript.py @@ -7,6 +7,6 @@ from lsp_manager.response_handlers.default import DefaultHandler -class GodotHandler(DefaultHandler): +class GDScriptHandler(DefaultHandler): """Uses default handling, can override if Godot needs special logic.""" ... diff --git a/plugins/code/ui/tabs_bar/plugin.py b/plugins/code/ui/tabs_bar/plugin.py index 12f6160..0095953 100644 --- a/plugins/code/ui/tabs_bar/plugin.py +++ b/plugins/code/ui/tabs_bar/plugin.py @@ -50,7 +50,14 @@ class Plugin(PluginCode): def unload(self): self.unregister_controller("tabs") self.tabs_controller.unload_tabs() - self.tabs_controller.tabs_widget.destroy() + + tabs_widget = self.tabs_controller.tabs_widget + viewport = tabs_widget.get_parent() + scrolled_win = viewport.get_parent() + + tabs_widget.destroy() + viewport.destroy() + scrolled_win.destroy() self.tabs_controller.tabs_widget = None self.tabs_controller = None diff --git a/src/plugins/manifest_manager.py b/src/plugins/manifest_manager.py index 0f7add3..ffe7e91 100644 --- a/src/plugins/manifest_manager.py +++ b/src/plugins/manifest_manager.py @@ -56,7 +56,7 @@ class ManifestManager: if not manifest.autoload: self.manual_launch_manifests.append(manifest_meta) - return + return manifest_meta if manifest.pre_launch: self.pre_launch_manifests.append(manifest_meta) diff --git a/src/plugins/plugin_reload_mixin.py b/src/plugins/plugin_reload_mixin.py index eea9a9e..9b665e2 100644 --- a/src/plugins/plugin_reload_mixin.py +++ b/src/plugins/plugin_reload_mixin.py @@ -48,13 +48,13 @@ class PluginReloadMixin: def remove_plugin(self, file: str) -> None: logger.info(f"Removing plugin: {file.get_uri()}") - for manifest_meta in self._plugin_collection[:]: - if not manifest_meta.folder in file.get_uri(): continue - manifest_meta.instance.unload() - manifest_meta.instance = None - self._plugin_collection.remove(manifest_meta) - self.plugins_ui.remove_row(manifest_meta) + manifests = self._manifest_manager.pre_launch_manifests \ + + self._manifest_manager.post_launch_manifests \ + + self._manifest_manager.manual_launch_manifests + + for manifest_meta in manifests: + if not manifest_meta.folder in file.get_uri(): continue if manifest_meta in self._manifest_manager.pre_launch_manifests: self._manifest_manager.pre_launch_manifests.remove(manifest_meta) @@ -63,4 +63,15 @@ class PluginReloadMixin: elif manifest_meta in self._manifest_manager.manual_launch_manifests: self._manifest_manager.manual_launch_manifests.remove(manifest_meta) + self.plugins_ui.remove_row(manifest_meta) + break + + del manifests + for manifest_meta in self._plugin_collection[:]: + if not manifest_meta.folder in file.get_uri(): continue + + manifest_meta.instance.unload() + manifest_meta.instance = None + self._plugin_collection.remove(manifest_meta) + break diff --git a/src/plugins/plugins_ui.py b/src/plugins/plugins_ui.py index 34efa56..60e729f 100644 --- a/src/plugins/plugins_ui.py +++ b/src/plugins/plugins_ui.py @@ -76,6 +76,7 @@ class PluginsUI(Gtk.Dialog): toggle_bttn.toggle_id = \ toggle_bttn.connect("toggled", callback, manifest_meta) + box.toggle_bttn = toggle_bttn box.add(plugin_lbl) box.add(author_lbl) @@ -96,5 +97,5 @@ class PluginsUI(Gtk.Dialog): toggle_bttn.disconnect(toggle_bttn.toggle_id) self.list_box.remove(row) - box.destroy() + child.destroy() break