Fix refresh on new/open file

This commit is contained in:
Maxime Réaux 2026-02-25 14:37:59 +01:00
parent 765c691b59
commit 5c124f9229
4 changed files with 33 additions and 12 deletions

View file

@ -96,7 +96,6 @@ class AppController:
self.navigation.refresh_players_view()
self.navigation.refresh_wars_view()
self.update_window_title()
# TODO refresh details view if wars tab selected
def open_file(self) -> None:
if self.is_dirty:
@ -117,7 +116,6 @@ class AppController:
self.navigation.refresh_players_view()
self.navigation.refresh_wars_view()
self.update_window_title()
# TODO refresh details view if wars tab selected
def save(self) -> None:
if not self.current_file:
@ -287,7 +285,7 @@ class AppController:
e.action()
else:
return
self.is_dirty = True
self.is_dirty = True
self.navigation.refresh(RefreshScope.CURRENT_SELECTION_DETAILS)
def delete_item(self, item_type: str, item_id: str) -> None:

View file

@ -31,7 +31,8 @@ class NavigationController:
self.app.view.display_players(players_for_display)
def refresh_wars_view(self) -> None:
wars: List[WarDTO] = [
wars = self.app.model.get_all_wars()
wars_dto: List[WarDTO] = [
WarDTO(
id=w.id,
name=w.name,
@ -57,7 +58,21 @@ class NavigationController:
)
for w in self.app.model.get_all_wars()
]
self.app.view.display_wars_tree(wars)
self.app.view.display_wars_tree(wars_dto)
if not wars:
self.clear_selection()
return
first_war = wars[0]
self.selected_war_id = first_war.id
self.selected_campaign_id = None
self.selected_round_id = None
self.app.view.select_tree_item(
item_type=ItemType.WAR,
item_id=first_war.id,
)
self.app.view.show_details(ItemType.WAR)
self.app.wars._fill_war_details(first_war.id)
self.update_actions_state()
def refresh(self, scope: RefreshScope) -> None:
match scope:
@ -87,6 +102,13 @@ class NavigationController:
# Commands methods
def clear_selection(self) -> None:
self.selected_war_id = None
self.selected_campaign_id = None
self.selected_round_id = None
self.app.view.clear_tree_selection()
self.app.view.show_details(None)
def on_tree_selection_changed(self, selection: TreeSelection | None) -> None:
self.selected_war_id = None
self.selected_campaign_id = None