catch settings exception
This commit is contained in:
parent
a2b6c7c684
commit
60fc88af75
3 changed files with 42 additions and 11 deletions
|
|
@ -3,6 +3,7 @@ from typing import List, TYPE_CHECKING
|
||||||
from PyQt6.QtWidgets import QMessageBox, QDialog
|
from PyQt6.QtWidgets import QMessageBox, QDialog
|
||||||
|
|
||||||
from warchron.constants import RefreshScope
|
from warchron.constants import RefreshScope
|
||||||
|
from warchron.model.exception import DomainError
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from warchron.controller.app_controller import AppController
|
from warchron.controller.app_controller import AppController
|
||||||
|
|
@ -115,22 +116,46 @@ class WarController:
|
||||||
war_id = self.app.navigation.selected_war_id
|
war_id = self.app.navigation.selected_war_id
|
||||||
if not war_id:
|
if not war_id:
|
||||||
return
|
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.is_dirty = True
|
||||||
|
self.app.navigation.refresh(RefreshScope.CURRENT_SELECTION_DETAILS)
|
||||||
|
|
||||||
def set_minor_value(self, value: int) -> None:
|
def set_minor_value(self, value: int) -> None:
|
||||||
war_id = self.app.navigation.selected_war_id
|
war_id = self.app.navigation.selected_war_id
|
||||||
if not war_id:
|
if not war_id:
|
||||||
return
|
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.is_dirty = True
|
||||||
|
self.app.navigation.refresh(RefreshScope.CURRENT_SELECTION_DETAILS)
|
||||||
|
|
||||||
def set_influence_token(self, checked: bool) -> None:
|
def set_influence_token(self, checked: bool) -> None:
|
||||||
war_id = self.app.navigation.selected_war_id
|
war_id = self.app.navigation.selected_war_id
|
||||||
if not war_id:
|
if not war_id:
|
||||||
return
|
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.is_dirty = True
|
||||||
|
self.app.navigation.refresh(RefreshScope.CURRENT_SELECTION_DETAILS)
|
||||||
|
|
||||||
# Objective methods
|
# Objective methods
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,15 +166,15 @@ class Model:
|
||||||
|
|
||||||
def set_major_value(self, war_id: str, value: int) -> None:
|
def set_major_value(self, war_id: str, value: int) -> None:
|
||||||
war = self.get_war(war_id)
|
war = self.get_war(war_id)
|
||||||
war.set_major(value)
|
war.set_major_value(value)
|
||||||
|
|
||||||
def set_minor_value(self, war_id: str, value: int) -> None:
|
def set_minor_value(self, war_id: str, value: int) -> None:
|
||||||
war = self.get_war(war_id)
|
war = self.get_war(war_id)
|
||||||
war.set_minor(value)
|
war.set_minor_value(value)
|
||||||
|
|
||||||
def set_influence_token(self, war_id: str, value: bool) -> None:
|
def set_influence_token(self, war_id: str, value: bool) -> None:
|
||||||
war = self.get_war(war_id)
|
war = self.get_war(war_id)
|
||||||
war.set_influence(value)
|
war.set_influence_token(value)
|
||||||
|
|
||||||
def get_all_wars(self) -> List[War]:
|
def get_all_wars(self) -> List[War]:
|
||||||
return list(self.wars.values())
|
return list(self.wars.values())
|
||||||
|
|
|
||||||
|
|
@ -36,17 +36,23 @@ class War:
|
||||||
def set_year(self, new_year: int) -> None:
|
def set_year(self, new_year: int) -> None:
|
||||||
self.year = new_year
|
self.year = new_year
|
||||||
|
|
||||||
def set_major(self, new_value: int) -> None:
|
def set_major_value(self, new_value: int) -> None:
|
||||||
|
if self.is_over:
|
||||||
|
raise ForbiddenOperation("Can't set major value of a closed war.")
|
||||||
if new_value < self.minor_value:
|
if new_value < self.minor_value:
|
||||||
raise ValueError("major_value cannot be < minor_value")
|
raise ValueError("Can' set major value < minor value")
|
||||||
self.major_value = new_value
|
self.major_value = new_value
|
||||||
|
|
||||||
def set_minor(self, new_value: int) -> None:
|
def set_minor_value(self, new_value: int) -> None:
|
||||||
|
if self.is_over:
|
||||||
|
raise ForbiddenOperation("Can't set minor value of a closed war.")
|
||||||
if new_value > self.major_value:
|
if new_value > self.major_value:
|
||||||
raise ValueError("minor_value cannot be > major_value")
|
raise ValueError("Can't set minor value > major value")
|
||||||
self.minor_value = new_value
|
self.minor_value = new_value
|
||||||
|
|
||||||
def set_influence(self, new_state: bool) -> None:
|
def set_influence_token(self, new_state: bool) -> None:
|
||||||
|
if self.is_over:
|
||||||
|
raise ForbiddenOperation("Can't set influence token of a closed war.")
|
||||||
self.influence_token = new_state
|
self.influence_token = new_state
|
||||||
|
|
||||||
def set_state(self, new_state: bool) -> None:
|
def set_state(self, new_state: bool) -> None:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue