Move UI-only waypoint number out of the model.

This isn't needed by the backend, so just handle it in the front end.
This commit is contained in:
Dan Albert 2022-02-19 15:09:58 -08:00
parent 4c3509a455
commit 5cd9af32fa
3 changed files with 9 additions and 13 deletions

View File

@ -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

View File

@ -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)

View File

@ -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}<br />` +
`${this.number} ${this.waypoint.name}<br />` +
`${this.waypoint.altitudeFt} ft ${this.waypoint.altitudeReference}<br />` +
`${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 = [];