From 5cd9af32faf5dcd94dd6b03dd44ba1e54aa86dd3 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Sat, 19 Feb 2022 15:09:58 -0800 Subject: [PATCH] Move UI-only waypoint number out of the model. This isn't needed by the backend, so just handle it in the front end. --- qt_ui/widgets/map/model/flightjs.py | 4 ++-- qt_ui/widgets/map/model/waypointjs.py | 7 ------- resources/ui/map/map.js | 11 +++++++---- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/qt_ui/widgets/map/model/flightjs.py b/qt_ui/widgets/map/model/flightjs.py index 272fb39d..9767ad4b 100644 --- a/qt_ui/widgets/map/model/flightjs.py +++ b/qt_ui/widgets/map/model/flightjs.py @@ -68,8 +68,8 @@ class FlightJs(QObject): ) departure.alt_type = "RADIO" waypoints = [] - for idx, point in enumerate([departure] + self.flight.points): - waypoint = WaypointJs(point, idx, self, self.theater, self.ato_model) + for point in [departure] + self.flight.points: + waypoint = WaypointJs(point, self, self.theater, self.ato_model) waypoint.positionChanged.connect(self.update_waypoints) waypoints.append(waypoint) return waypoints diff --git a/qt_ui/widgets/map/model/waypointjs.py b/qt_ui/widgets/map/model/waypointjs.py index 4ae06bfe..7fdb26ec 100644 --- a/qt_ui/widgets/map/model/waypointjs.py +++ b/qt_ui/widgets/map/model/waypointjs.py @@ -17,7 +17,6 @@ if TYPE_CHECKING: class WaypointJs(QObject): - numberChanged = Signal() positionChanged = Signal() altitudeFtChanged = Signal() altitudeReferenceChanged = Signal() @@ -32,14 +31,12 @@ class WaypointJs(QObject): def __init__( self, waypoint: FlightWaypoint, - number: int, flight_model: FlightJs, theater: ConflictTheater, ato_model: AtoModel, ) -> None: super().__init__() self.waypoint = waypoint - self._number = number self.flight_model = flight_model self.theater = theater self.ato_model = ato_model @@ -52,10 +49,6 @@ class WaypointJs(QObject): def flight_plan(self) -> FlightPlan: return self.flight.flight_plan - @Property(int, notify=numberChanged) - def number(self) -> int: - return self._number - @Property(list, notify=positionChanged) def position(self) -> LeafletLatLon: ll = self.theater.point_to_ll(self.waypoint.position) diff --git a/resources/ui/map/map.js b/resources/ui/map/map.js index ca9e6d82..ab981ad9 100644 --- a/resources/ui/map/map.js +++ b/resources/ui/map/map.js @@ -747,8 +747,9 @@ function drawFrontLines() { const SHOW_WAYPOINT_INFO_AT_ZOOM = 9; class Waypoint { - constructor(waypoint, flight) { + constructor(waypoint, number, flight) { this.waypoint = waypoint; + this.number = number; this.flight = flight; this.marker = this.makeMarker(); this.waypoint.positionChanged.connect(() => this.relocate()); @@ -804,7 +805,7 @@ class Waypoint { ? "Waiting to recompute TOT..." : this.waypoint.timing; return ( - `${this.waypoint.number} ${this.waypoint.name}
` + + `${this.number} ${this.waypoint.name}
` + `${this.waypoint.altitudeFt} ft ${this.waypoint.altitudeReference}
` + `${timing}` ); @@ -830,7 +831,7 @@ class Waypoint { .on("drag", (e) => { const marker = e.target; const destination = marker.getLatLng(); - this.flight.updatePath(this.waypoint.number, destination); + this.flight.updatePath(this.number, destination); }) .on("dragend", (e) => { const marker = e.target; @@ -857,7 +858,9 @@ class Flight { constructor(flight) { this.flight = flight; this.id = flight.id; - this.flightPlan = this.flight.flightPlan.map((p) => new Waypoint(p, this)); + this.flightPlan = this.flight.flightPlan.map( + (p, idx) => new Waypoint(p, idx, this) + ); this.aircraft = null; this.path = null; this.markers = [];