Fix unload lifecycle, widget cleanup, and plugin removal handling
- Rename GodotHandler to GDScriptHandler in LSP client - Fix unload() method naming in nanoesq_temp_buffer plugin - Return manifest_meta in manifest_manager for manual launch plugins - Properly destroy tabs_widget, viewport, and scrolled_win on unload - Refactor plugin removal to search all manifest lists and fix cleanup order - Fix widget reference in plugins_ui (use child instead of box)
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
from .python import PythonHandler
|
||||
from .gdscript import GDScriptHandler
|
||||
@@ -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."""
|
||||
...
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user