diff --git a/ui/main_window.py b/ui/main_window.py index c1701be..1a9009c 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -785,6 +785,23 @@ class MainWindow(QMainWindow): select_medical_action.triggered.connect(lambda: self.on_select_gear("medical_tool")) select_gear_menu.addAction(select_medical_action) + tools_menu.addSeparator() + + # Computer Vision submenu + vision_menu = tools_menu.addMenu("👁️ &Computer Vision") + + vision_settings_action = QAction("Vision &Settings", self) + vision_settings_action.triggered.connect(self.on_vision_settings) + vision_menu.addAction(vision_settings_action) + + vision_calibrate_action = QAction("&Calibrate Vision", self) + vision_calibrate_action.triggered.connect(self.on_vision_calibrate) + vision_menu.addAction(vision_calibrate_action) + + vision_test_action = QAction("&Test Vision", self) + vision_test_action.triggered.connect(self.on_vision_test) + vision_menu.addAction(vision_test_action) + # View menu view_menu = menubar.addMenu("&View") @@ -1804,6 +1821,38 @@ class MainWindow(QMainWindow): """Handle screenshot deletion from gallery.""" self.log_info("Gallery", f"Screenshot {screenshot_id} deleted") + def on_vision_settings(self): + """Open Computer Vision Settings dialog.""" + try: + from ui.vision_settings_dialog import VisionSettingsDialog + dialog = VisionSettingsDialog(self) + if dialog.exec() == QDialog.DialogCode.Accepted: + self.log_info("Vision", "Settings updated") + except Exception as e: + self.log_error("Vision", f"Failed to open settings: {e}") + QMessageBox.warning(self, "Error", f"Could not open Vision Settings: {e}") + + def on_vision_calibrate(self): + """Open Computer Vision Calibration wizard.""" + try: + from ui.vision_calibration_dialog import VisionCalibrationDialog + dialog = VisionCalibrationDialog(self) + if dialog.exec() == QDialog.DialogCode.Accepted: + self.log_info("Vision", "Calibration completed") + except Exception as e: + self.log_error("Vision", f"Failed to open calibration: {e}") + QMessageBox.warning(self, "Error", f"Could not open Vision Calibration: {e}") + + def on_vision_test(self): + """Open Computer Vision Test dialog.""" + try: + from ui.vision_test_dialog import VisionTestDialog + dialog = VisionTestDialog(self) + dialog.exec() + except Exception as e: + self.log_error("Vision", f"Failed to open test dialog: {e}") + QMessageBox.warning(self, "Error", f"Could not open Vision Test: {e}") + # ======================================================================== # Settings Management # ========================================================================