diff --git a/changelog.md b/changelog.md index c6b9e2f5..74acffe9 100644 --- a/changelog.md +++ b/changelog.md @@ -14,6 +14,7 @@ Saves from 5.x are not compatible with 6.0. * **[Mission Generator]** Fixed incorrect radio specification for the AN/ARC-222. * **[Mission Generator]** Fixed mission scripting error when using a dedicated server. * **[Mission Generator]** Fixed an issue where empty convoys lead to an index error when a point capture made a pending transfer of units not completable anymore. +* **[UI]** Enable / Disable the settings, save and stats actions if no game is loaded to prevent an error as these functions can only be used on a valid game. # 5.0.0 diff --git a/qt_ui/windows/QLiberationWindow.py b/qt_ui/windows/QLiberationWindow.py index 59dc1313..c17b20e4 100644 --- a/qt_ui/windows/QLiberationWindow.py +++ b/qt_ui/windows/QLiberationWindow.py @@ -172,6 +172,19 @@ class QLiberationWindow(QMainWindow): self.openNotesAction.setIcon(CONST.ICONS["Notes"]) self.openNotesAction.triggered.connect(self.showNotesDialog) + self.enable_game_actions(False) + + def enable_game_actions(self, enabled: bool): + self.openSettingsAction.setVisible(enabled) + self.openStatsAction.setVisible(enabled) + self.openNotesAction.setVisible(enabled) + + # Also Disable SaveAction to prevent Keyboard Shortcut + self.saveGameAction.setEnabled(enabled) + self.saveGameAction.setVisible(enabled) + self.saveAsAction.setEnabled(enabled) + self.saveAsAction.setVisible(enabled) + def initToolbar(self): self.tool_bar = self.addToolBar("File") self.tool_bar.addAction(self.newGameAction) @@ -331,6 +344,8 @@ class QLiberationWindow(QMainWindow): QMessageBox.Ok, ) GameUpdateSignal.get_instance().updateGame(None) + finally: + self.enable_game_actions(self.game is not None) def showAboutDialog(self): text = (