From c71f6a864740601621dcbc6097679bf277a70bc4 Mon Sep 17 00:00:00 2001 From: LemonNexus Date: Mon, 9 Feb 2026 20:26:51 +0000 Subject: [PATCH] feat: add loadout selection dialog when starting session - Modified on_start_session to show LoadoutSelectionDialog first - Added _on_loadout_selected_for_session callback - User can now select a loadout or skip before session starts - Selected loadout info is logged and stored for session --- ui/main_window.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/ui/main_window.py b/ui/main_window.py index c3ad4a7..6f6d845 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -1165,8 +1165,29 @@ class MainWindow(QMainWindow): self.log_error("EventQueue", f"Error processing event: {e}") def on_start_session(self): - """Handle start session button.""" + """Handle start session button - shows loadout selection first.""" if self.current_project and self.session_state == SessionState.IDLE: + # Show loadout selection dialog + from ui.loadout_selection_dialog import LoadoutSelectionDialog + dialog = LoadoutSelectionDialog(self) + dialog.loadout_selected.connect(self._on_loadout_selected_for_session) + dialog.rejected.connect(lambda: self.log_info("Session", "Session start cancelled - no loadout selected")) + dialog.exec() + + def _on_loadout_selected_for_session(self, loadout_id: int, loadout_name: str): + """Handle loadout selection and start session.""" + if loadout_id > 0: + self.log_info("Session", f"Starting session with loadout: {loadout_name} (ID: {loadout_id})") + # Store the selected loadout ID for use in start_session + self._session_loadout_id = loadout_id + self._session_loadout_name = loadout_name + else: + self.log_info("Session", "Starting session without loadout") + self._session_loadout_id = None + self._session_loadout_name = None + + # Now start the session + if self.current_project: self.start_session(self.current_project.id) def on_stop_session(self):