diff --git a/src/fenigma/app.py b/src/fenigma/app.py index d1ba979..e38e33b 100644 --- a/src/fenigma/app.py +++ b/src/fenigma/app.py @@ -271,11 +271,10 @@ class MainWindow(Adw.ApplicationWindow): header.pack_start(Gtk.Separator(orientation=Gtk.Orientation.VERTICAL)) for label, popover_builder in ( - ("Nest", self._build_nest_popover), + ("Units", self._build_units_popover), ("Spotters", self._build_spotters_popover), ("Reference Points", self._build_rp_popover), ("Targets", self._build_targets_popover), - ("Allies", self._build_allies_popover), ("Scout Flights", self._build_scout_flights_popover), ): header.pack_start(self._make_menu_button(label, popover_builder)) @@ -714,27 +713,6 @@ class MainWindow(Adw.ApplicationWindow): else: self.cursor_label.set_label(coord.label()) - # -- Nest ----------------------------------------------------------------- - def _build_nest_popover(self, rebuild) -> Gtk.Widget: - box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=4) - box.set_margin_top(6) - box.set_margin_bottom(6) - - nest = self.board.nest - box.append(_row( - f"Nest ({_location_status(nest)})", - on_input=lambda: self._open_coord_dialog( - title="Set Nest coordinates", - on_submit=lambda loc, _id, _t: self._apply_and_refresh(nest, loc), - initial_location=nest.location, - ), - hidden=nest.hidden, - on_toggle_hidden=lambda: self._toggle_hidden(nest, rebuild), - show_geo=nest.show_geo_desc, - on_toggle_show_geo=lambda: self._toggle_show_geo(nest, rebuild), - )) - return box - # -- Spotters -------------------------------------------------------------- def _build_spotters_popover(self, rebuild) -> Gtk.Widget: box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0) @@ -885,16 +863,33 @@ class MainWindow(Adw.ApplicationWindow): rebuild() self.toast(f"{target.name} converted to {new_rp.name}.") - # -- Allies --------------------------------------------------------------- - def _build_allies_popover(self, rebuild) -> Gtk.Widget: - """A friendly contact ('FriendlyTank#1:'), tracked entirely - separately from Targets (see models.py's Ally/Board.allies): - never fired on, so no shell/charge/assignment/alive controls - here, just position/visibility, same as a Reference Point.""" + # -- Units (Nest + Allies) ------------------------------------------------- + def _build_units_popover(self, rebuild) -> Gtk.Widget: + """Your own side of the map: the Nest (always first, there's + only ever one) plus every friendly contact ('FriendlyTank#1:', + tracked entirely separately from Targets, see models.py's + Ally/Board.allies). Allies are never fired on, so no shell/ + charge/assignment/alive controls here, just position/ + visibility, same as a Reference Point.""" box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0) box.set_margin_top(6) box.set_margin_bottom(6) + nest = self.board.nest + box.append(_row( + f"Nest ({_location_status(nest)})", + on_input=lambda: self._open_coord_dialog( + title="Set Nest coordinates", + on_submit=lambda loc, _id, _t: self._apply_and_refresh(nest, loc), + initial_location=nest.location, + ), + hidden=nest.hidden, + on_toggle_hidden=lambda: self._toggle_hidden(nest, rebuild), + show_geo=nest.show_geo_desc, + on_toggle_show_geo=lambda: self._toggle_show_geo(nest, rebuild), + )) + box.append(Gtk.Separator()) + for a in list(self.board.allies): box.append(_row( f"{a.name} ({_location_status(a)})",