catch settings exception

This commit is contained in:
Maxime Réaux 2026-02-13 16:12:43 +01:00
parent a2b6c7c684
commit f408707588
3 changed files with 45 additions and 14 deletions

View file

@ -3,6 +3,7 @@ from typing import List, TYPE_CHECKING
from PyQt6.QtWidgets import QMessageBox, QDialog
from warchron.constants import RefreshScope
from warchron.model.exception import DomainError
if TYPE_CHECKING:
from warchron.controller.app_controller import AppController
@ -115,22 +116,46 @@ class WarController:
war_id = self.app.navigation.selected_war_id
if not war_id:
return
self.app.model.set_major_value(war_id, value)
try:
self.app.model.set_major_value(war_id, value)
except DomainError as e:
QMessageBox.warning(
self.app.view,
"Setting forbidden",
str(e),
)
self.app.is_dirty = True
self.app.navigation.refresh(RefreshScope.CURRENT_SELECTION_DETAILS)
def set_minor_value(self, value: int) -> None:
war_id = self.app.navigation.selected_war_id
if not war_id:
return
self.app.model.set_minor_value(war_id, value)
try:
self.app.model.set_minor_value(war_id, value)
except DomainError as e:
QMessageBox.warning(
self.app.view,
"Setting forbidden",
str(e),
)
self.app.is_dirty = True
self.app.navigation.refresh(RefreshScope.CURRENT_SELECTION_DETAILS)
def set_influence_token(self, checked: bool) -> None:
war_id = self.app.navigation.selected_war_id
if not war_id:
return
self.app.model.set_influence_token(war_id, checked)
try:
self.app.model.set_influence_token(war_id, checked)
except DomainError as e:
QMessageBox.warning(
self.app.view,
"Setting forbidden",
str(e),
)
self.app.is_dirty = True
self.app.navigation.refresh(RefreshScope.CURRENT_SELECTION_DETAILS)
# Objective methods