Fix refresh on new/open file
This commit is contained in:
parent
765c691b59
commit
5c124f9229
4 changed files with 33 additions and 12 deletions
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue