summaryrefslogtreecommitdiff
path: root/ui/main_window.py
diff options
context:
space:
mode:
Diffstat (limited to 'ui/main_window.py')
-rw-r--r--ui/main_window.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/ui/main_window.py b/ui/main_window.py
index d0e0ac4..95cdb84 100644
--- a/ui/main_window.py
+++ b/ui/main_window.py
@@ -296,10 +296,22 @@ class MainWindow(QMainWindow):
def plugin_enable(self, plugin_id: str):
"""Called by SettingsWindow when user enables a plugin."""
- ctx = self._make_plugin_context()
- plugin = self._plugin_mgr.enable(plugin_id, ctx)
- if plugin:
- self._install_plugin(plugin)
+ missing = self._plugin_mgr.get_missing_dependencies(plugin_id)
+ if missing:
+ from PyQt6.QtWidgets import QMessageBox
+ QMessageBox.warning(
+ self, "Missing Plugin Dependencies",
+ f"Can't enable this plugin — missing Python packages:\n\n"
+ f" {', '.join(missing)}\n\n"
+ f"Install with:\n pip install {' '.join(missing)}"
+ )
+ else:
+ ctx = self._make_plugin_context()
+ plugin = self._plugin_mgr.enable(plugin_id, ctx)
+ if plugin:
+ self._install_plugin(plugin)
+ if self._win_settings:
+ self._win_settings.sync_plugin_button(plugin_id)
def plugin_disable(self, plugin_id: str):
"""Called by SettingsWindow when user disables a plugin."""