diff --git a/game/theater/controlpoint.py b/game/theater/controlpoint.py index f95aa479..43f82e87 100644 --- a/game/theater/controlpoint.py +++ b/game/theater/controlpoint.py @@ -230,7 +230,7 @@ class ControlPoint(MissionTarget, ABC): self.stances: Dict[int, CombatStance] = {} self.pending_unit_deliveries: Optional[UnitsDeliveryEvent] = None - self.target_position = None + self.target_position: Point = None def __repr__(self): return f"<{__class__}: {self.name}>" diff --git a/qt_ui/displayoptions.py b/qt_ui/displayoptions.py index 6cbbffc5..28a9ae4d 100644 --- a/qt_ui/displayoptions.py +++ b/qt_ui/displayoptions.py @@ -50,7 +50,6 @@ class DisplayOptions: ground_objects = DisplayRule("Ground Objects", True) control_points = DisplayRule("Control Points", True) lines = DisplayRule("Lines", True) - events = DisplayRule("Events", True) sam_ranges = DisplayRule("Ally SAM Threat Range", False) enemy_sam_ranges = DisplayRule("Enemy SAM Threat Range", True) detection_range = DisplayRule("SAM Detection Range", False) diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 3d35f96f..d82a4c0f 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -78,6 +78,24 @@ def load_icons(): ICONS["New"] = QPixmap("./resources/ui/misc/"+get_theme_icons()+"/new.png") ICONS["Open"] = QPixmap("./resources/ui/misc/"+get_theme_icons()+"/open.png") ICONS["Save"] = QPixmap("./resources/ui/misc/"+get_theme_icons()+"/save.png") + ICONS["Discord"] = QPixmap("./resources/ui/misc/"+get_theme_icons()+"/discord.png") + ICONS["Github"] = QPixmap("./resources/ui/misc/"+get_theme_icons()+"/github.png") + + + ICONS["Control Points"] = QPixmap("./resources/ui/misc/" + get_theme_icons() + "/circle.png") + ICONS["Ground Objects"] = QPixmap("./resources/ui/misc/" + get_theme_icons() + "/industry.png") + ICONS["Lines"] = QPixmap("./resources/ui/misc/" + get_theme_icons() + "/arrows-h.png") + ICONS["Waypoint Information"] = QPixmap("./resources/ui/misc/" + get_theme_icons() + "/info.png") + ICONS["Map Polygon Debug Mode"] = QPixmap("./resources/ui/misc/" + get_theme_icons() + "/map.png") + ICONS["Ally SAM Threat Range"] = QPixmap("./resources/ui/misc/blue-sam.png") + ICONS["Enemy SAM Threat Range"] = QPixmap("./resources/ui/misc/red-sam.png") + ICONS["SAM Detection Range"] = QPixmap("./resources/ui/misc/detection-sam.png") + ICONS["Display Culling Zones"] = QPixmap("./resources/ui/misc/" + get_theme_icons() + "/eraser.png") + ICONS["Hide Flight Paths"] = QPixmap("./resources/ui/misc/hide-flight-path.png") + ICONS["Show Selected Flight Path"] = QPixmap("./resources/ui/misc/flight-path.png") + ICONS["Show All Flight Paths"] = QPixmap("./resources/ui/misc/all-flight-paths.png") + + ICONS["Hangar"] = QPixmap("./resources/ui/misc/hangar.png") ICONS["Terrain_Caucasus"] = QPixmap("./resources/ui/terrain_caucasus.gif") diff --git a/qt_ui/windows/QLiberationWindow.py b/qt_ui/windows/QLiberationWindow.py index a2c442f3..66c74c56 100644 --- a/qt_ui/windows/QLiberationWindow.py +++ b/qt_ui/windows/QLiberationWindow.py @@ -52,8 +52,8 @@ class QLiberationWindow(QMainWindow): self.initUi() self.initActions() - self.initMenuBar() self.initToolbar() + self.initMenuBar() self.connectSignals() screen = QDesktopWidget().screenGeometry() @@ -120,12 +120,27 @@ class QLiberationWindow(QMainWindow): self.showLiberationPrefDialogAction.setIcon(QIcon.fromTheme("help-about")) self.showLiberationPrefDialogAction.triggered.connect(self.showLiberationDialog) + self.openDiscordAction = QAction("&Discord Server", self) + self.openDiscordAction.setIcon(CONST.ICONS["Discord"]) + self.openDiscordAction.triggered.connect(lambda: webbrowser.open_new_tab("https://" + "discord.gg" + "/" + "bKrt" + "rkJ")) + + self.openGithubAction = QAction("&Github Repo", self) + self.openGithubAction.setIcon(CONST.ICONS["Github"]) + self.openGithubAction.triggered.connect(lambda: webbrowser.open_new_tab("https://github.com/khopa/dcs_liberation")) + def initToolbar(self): self.tool_bar = self.addToolBar("File") self.tool_bar.addAction(self.newGameAction) self.tool_bar.addAction(self.openAction) self.tool_bar.addAction(self.saveGameAction) + self.links_bar = self.addToolBar("Links") + self.links_bar.addAction(self.openDiscordAction) + self.links_bar.addAction(self.openGithubAction) + + self.display_bar = self.addToolBar("Display") + + def initMenuBar(self): self.menu = self.menuBar() @@ -145,20 +160,26 @@ class QLiberationWindow(QMainWindow): last_was_group = True for item in DisplayOptions.menu_items(): if isinstance(item, DisplayRule): - displayMenu.addAction(self.make_display_rule_action(item)) + action = self.make_display_rule_action(item) + displayMenu.addAction(action) + if action.icon(): + self.display_bar.addAction(action) last_was_group = False elif isinstance(item, DisplayGroup): if not last_was_group: displayMenu.addSeparator() + self.display_bar.addSeparator() group = QActionGroup(displayMenu) for display_rule in item: - displayMenu.addAction( - self.make_display_rule_action(display_rule, group)) + action = self.make_display_rule_action(display_rule, group) + displayMenu.addAction(action) + if action.icon(): + self.display_bar.addAction(action) last_was_group = True help_menu = self.menu.addMenu("&Help") - help_menu.addAction("&Discord Server", lambda: webbrowser.open_new_tab("https://" + "discord.gg" + "/" + "bKrt" + "rkJ")) - help_menu.addAction("&Github Repository", lambda: webbrowser.open_new_tab("https://github.com/khopa/dcs_liberation")) + help_menu.addAction(self.openDiscordAction) + help_menu.addAction(self.openGithubAction) help_menu.addAction("&Releases", lambda: webbrowser.open_new_tab("https://github.com/Khopa/dcs_liberation/releases")) help_menu.addAction("&Online Manual", lambda: webbrowser.open_new_tab(URLS["Manual"])) help_menu.addAction("&ED Forum Thread", lambda: webbrowser.open_new_tab(URLS["ForumThread"])) @@ -177,6 +198,10 @@ class QLiberationWindow(QMainWindow): return closure action = QAction(f"&{display_rule.menu_text}", group) + + if display_rule.menu_text in CONST.ICONS.keys(): + action.setIcon(CONST.ICONS[display_rule.menu_text]) + action.setCheckable(True) action.setChecked(display_rule.value) action.toggled.connect(make_check_closure()) diff --git a/resources/stylesheets/style-dcs.css b/resources/stylesheets/style-dcs.css index 2737b213..5cf07d77 100644 --- a/resources/stylesheets/style-dcs.css +++ b/resources/stylesheets/style-dcs.css @@ -48,6 +48,21 @@ QMenuBar::item:pressed { background: #1D2731; } +QToolButton:checked { + border-color: #435466; + background: #14202B; +} + +QToolButton:hover { + background: #536476; +} + +QToolBar::separator { + background:white; + width:1px; + height:1px; +} + QMenu::item:selected { background: #435466; } diff --git a/resources/ui/misc/all-flight-paths.png b/resources/ui/misc/all-flight-paths.png new file mode 100644 index 00000000..1e0bae20 Binary files /dev/null and b/resources/ui/misc/all-flight-paths.png differ diff --git a/resources/ui/misc/blue-sam.png b/resources/ui/misc/blue-sam.png new file mode 100644 index 00000000..4be43662 Binary files /dev/null and b/resources/ui/misc/blue-sam.png differ diff --git a/resources/ui/misc/dark/discord.png b/resources/ui/misc/dark/discord.png new file mode 100644 index 00000000..97739171 Binary files /dev/null and b/resources/ui/misc/dark/discord.png differ diff --git a/resources/ui/misc/dark/github.png b/resources/ui/misc/dark/github.png new file mode 100644 index 00000000..84b8dd84 Binary files /dev/null and b/resources/ui/misc/dark/github.png differ diff --git a/resources/ui/misc/detection-sam.png b/resources/ui/misc/detection-sam.png new file mode 100644 index 00000000..033ce349 Binary files /dev/null and b/resources/ui/misc/detection-sam.png differ diff --git a/resources/ui/misc/discord.png b/resources/ui/misc/discord.png new file mode 100644 index 00000000..59371f02 Binary files /dev/null and b/resources/ui/misc/discord.png differ diff --git a/resources/ui/misc/flight-path.png b/resources/ui/misc/flight-path.png new file mode 100644 index 00000000..5e43c639 Binary files /dev/null and b/resources/ui/misc/flight-path.png differ diff --git a/resources/ui/misc/github.png b/resources/ui/misc/github.png new file mode 100644 index 00000000..2668dabd Binary files /dev/null and b/resources/ui/misc/github.png differ diff --git a/resources/ui/misc/hide-flight-path.png b/resources/ui/misc/hide-flight-path.png new file mode 100644 index 00000000..94eb9731 Binary files /dev/null and b/resources/ui/misc/hide-flight-path.png differ diff --git a/resources/ui/misc/light/arrows-h.png b/resources/ui/misc/light/arrows-h.png new file mode 100644 index 00000000..40ccd57e Binary files /dev/null and b/resources/ui/misc/light/arrows-h.png differ diff --git a/resources/ui/misc/light/bullseye.png b/resources/ui/misc/light/bullseye.png new file mode 100644 index 00000000..7fc4519d Binary files /dev/null and b/resources/ui/misc/light/bullseye.png differ diff --git a/resources/ui/misc/light/circle-o-notch.png b/resources/ui/misc/light/circle-o-notch.png new file mode 100644 index 00000000..81290dd0 Binary files /dev/null and b/resources/ui/misc/light/circle-o-notch.png differ diff --git a/resources/ui/misc/light/circle-o.png b/resources/ui/misc/light/circle-o.png new file mode 100644 index 00000000..6bbc1a9e Binary files /dev/null and b/resources/ui/misc/light/circle-o.png differ diff --git a/resources/ui/misc/light/circle-thin.png b/resources/ui/misc/light/circle-thin.png new file mode 100644 index 00000000..e04e126a Binary files /dev/null and b/resources/ui/misc/light/circle-thin.png differ diff --git a/resources/ui/misc/light/circle.png b/resources/ui/misc/light/circle.png new file mode 100644 index 00000000..5ed342b2 Binary files /dev/null and b/resources/ui/misc/light/circle.png differ diff --git a/resources/ui/misc/light/discord.png b/resources/ui/misc/light/discord.png new file mode 100644 index 00000000..59371f02 Binary files /dev/null and b/resources/ui/misc/light/discord.png differ diff --git a/resources/ui/misc/light/dot-circle-o.png b/resources/ui/misc/light/dot-circle-o.png new file mode 100644 index 00000000..7dfd0f51 Binary files /dev/null and b/resources/ui/misc/light/dot-circle-o.png differ diff --git a/resources/ui/misc/light/eraser.png b/resources/ui/misc/light/eraser.png new file mode 100644 index 00000000..730e55ff Binary files /dev/null and b/resources/ui/misc/light/eraser.png differ diff --git a/resources/ui/misc/light/fighter-jet.png b/resources/ui/misc/light/fighter-jet.png new file mode 100644 index 00000000..0bee2732 Binary files /dev/null and b/resources/ui/misc/light/fighter-jet.png differ diff --git a/resources/ui/misc/light/flag.png b/resources/ui/misc/light/flag.png new file mode 100644 index 00000000..6f0a38fd Binary files /dev/null and b/resources/ui/misc/light/flag.png differ diff --git a/resources/ui/misc/light/github.png b/resources/ui/misc/light/github.png new file mode 100644 index 00000000..2668dabd Binary files /dev/null and b/resources/ui/misc/light/github.png differ diff --git a/resources/ui/misc/light/industry.png b/resources/ui/misc/light/industry.png new file mode 100644 index 00000000..cc37442b Binary files /dev/null and b/resources/ui/misc/light/industry.png differ diff --git a/resources/ui/misc/light/info.png b/resources/ui/misc/light/info.png new file mode 100644 index 00000000..67e9088f Binary files /dev/null and b/resources/ui/misc/light/info.png differ diff --git a/resources/ui/misc/light/map-marker.png b/resources/ui/misc/light/map-marker.png new file mode 100644 index 00000000..0f71dfa0 Binary files /dev/null and b/resources/ui/misc/light/map-marker.png differ diff --git a/resources/ui/misc/light/map-o.png b/resources/ui/misc/light/map-o.png new file mode 100644 index 00000000..9474954e Binary files /dev/null and b/resources/ui/misc/light/map-o.png differ diff --git a/resources/ui/misc/light/map.png b/resources/ui/misc/light/map.png new file mode 100644 index 00000000..b140a323 Binary files /dev/null and b/resources/ui/misc/light/map.png differ diff --git a/resources/ui/misc/light/object-group.png b/resources/ui/misc/light/object-group.png new file mode 100644 index 00000000..65ff1573 Binary files /dev/null and b/resources/ui/misc/light/object-group.png differ diff --git a/resources/ui/misc/light/object-ungroup.png b/resources/ui/misc/light/object-ungroup.png new file mode 100644 index 00000000..ddc9fe8d Binary files /dev/null and b/resources/ui/misc/light/object-ungroup.png differ diff --git a/resources/ui/misc/light/plane.png b/resources/ui/misc/light/plane.png new file mode 100644 index 00000000..2c492f64 Binary files /dev/null and b/resources/ui/misc/light/plane.png differ diff --git a/resources/ui/misc/medium/discord.png b/resources/ui/misc/medium/discord.png new file mode 100644 index 00000000..d2a43e0a Binary files /dev/null and b/resources/ui/misc/medium/discord.png differ diff --git a/resources/ui/misc/medium/github.png b/resources/ui/misc/medium/github.png new file mode 100644 index 00000000..9e82b032 Binary files /dev/null and b/resources/ui/misc/medium/github.png differ diff --git a/resources/ui/misc/red-sam.png b/resources/ui/misc/red-sam.png new file mode 100644 index 00000000..bdfd28db Binary files /dev/null and b/resources/ui/misc/red-sam.png differ