diff --git a/qt_ui/widgets/map/QLiberationMap.py b/qt_ui/widgets/map/QLiberationMap.py index 504c0eef..3ce31fa0 100644 --- a/qt_ui/widgets/map/QLiberationMap.py +++ b/qt_ui/widgets/map/QLiberationMap.py @@ -28,6 +28,7 @@ class QLiberationMap(QGraphicsView): "lines": True, "events": True, "sam": True, + "flight_paths": False } def __init__(self, game: Game): @@ -120,17 +121,18 @@ class QLiberationMap(QGraphicsView): if self.get_display_rule("lines"): self.scene_create_lines_for_cp(cp) - if cp.id in self.game.planners.keys(): - planner = self.game.planners[cp.id] - for flight in planner.flights: - scene.addEllipse(pos[0], pos[1], 4, 4) - prev_pos = list(pos) - for point in flight.points: - new_pos = self._transform_point(Point(point.x, point.y)) - scene.addLine(prev_pos[0]+2, prev_pos[1]+2, new_pos[0]+2, new_pos[1]+2, flight_path_pen) - scene.addEllipse(new_pos[0], new_pos[1], 4, 4, pen, brush) - prev_pos = list(new_pos) - scene.addLine(prev_pos[0] + 2, prev_pos[1] + 2, pos[0] + 2, pos[1] + 2, flight_path_pen) + if self.get_display_rule("flight_paths"): + if cp.id in self.game.planners.keys(): + planner = self.game.planners[cp.id] + for flight in planner.flights: + scene.addEllipse(pos[0], pos[1], 4, 4) + prev_pos = list(pos) + for point in flight.points: + new_pos = self._transform_point(Point(point.x, point.y)) + scene.addLine(prev_pos[0]+2, prev_pos[1]+2, new_pos[0]+2, new_pos[1]+2, flight_path_pen) + scene.addEllipse(new_pos[0], new_pos[1], 4, 4, pen, brush) + prev_pos = list(new_pos) + scene.addLine(prev_pos[0] + 2, prev_pos[1] + 2, pos[0] + 2, pos[1] + 2, flight_path_pen) def scene_create_lines_for_cp(self, cp: ControlPoint): scene = self.scene() diff --git a/qt_ui/windows/QLiberationWindow.py b/qt_ui/windows/QLiberationWindow.py index f9542ddf..6d989f74 100644 --- a/qt_ui/windows/QLiberationWindow.py +++ b/qt_ui/windows/QLiberationWindow.py @@ -124,11 +124,17 @@ class QLiberationWindow(QMainWindow): tg_sam_visibility.setChecked(True) tg_sam_visibility.toggled.connect(lambda: QLiberationMap.set_display_rule("sam", tg_sam_visibility.isChecked())) + tg_flight_path_visibility = QAction('Flight Paths', displayMenu) + tg_flight_path_visibility.setCheckable(True) + tg_flight_path_visibility.setChecked(False) + tg_flight_path_visibility.toggled.connect(lambda: QLiberationMap.set_display_rule("flight_paths", tg_flight_path_visibility.isChecked())) + displayMenu.addAction(tg_go_visibility) displayMenu.addAction(tg_cp_visibility) displayMenu.addAction(tg_line_visibility) displayMenu.addAction(tg_event_visibility) displayMenu.addAction(tg_sam_visibility) + displayMenu.addAction(tg_flight_path_visibility) def newGame(self): wizard = NewGameWizard(self)