From 7e17533cc6394c5300dee57b4291ad8790feadfd Mon Sep 17 00:00:00 2001 From: Chris Seagraves <47610393+nosv1@users.noreply.github.com> Date: Sun, 20 Jun 2021 15:43:54 -0500 Subject: [PATCH] Air/ground intel prettification. (#1285) * Sort rows. * Add totals to group headers. * Indent content. * Add space between sections. --- .gitignore | 1 + qt_ui/windows/intel.py | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 5e953c36..b9205033 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ resources/tools/a.miz # User-specific stuff .idea/ .env +env/ /kneeboards /liberation_preferences.json diff --git a/qt_ui/windows/intel.py b/qt_ui/windows/intel.py index 619938cf..64b539d0 100644 --- a/qt_ui/windows/intel.py +++ b/qt_ui/windows/intel.py @@ -1,4 +1,5 @@ import itertools +from typing import Optional from PySide2.QtWidgets import ( QCheckBox, @@ -63,10 +64,11 @@ class IntelTableLayout(QGridLayout): 0, ) - def add_row(self, text: str, count: int) -> None: + def add_row(self, text: str, count: Optional[int] = None) -> None: row = next(self.row) self.addWidget(QLabel(text), row, 0) - self.addWidget(QLabel(str(count)), row, 1) + if count is not None: # optional count for blank rows + self.addWidget(QLabel(str(count)), row, 1) class AircraftIntelLayout(IntelTableLayout): @@ -80,14 +82,16 @@ class AircraftIntelLayout(IntelTableLayout): if not base.total_aircraft: continue - self.add_header(control_point.name) - for airframe, count in base.aircraft.items(): + self.add_header(f"{control_point.name} ({base.total_aircraft})") + for airframe in sorted(base.aircraft, key=lambda k: k.name): + count = base.aircraft[airframe] if not count: continue - self.add_row(airframe.name, count) + self.add_row(f" {airframe.name}", count) + self.add_row("") - self.add_spacer() self.add_row("Total", total) + self.add_spacer() class AircraftIntelTab(ScrollingFrame): @@ -107,14 +111,16 @@ class ArmyIntelLayout(IntelTableLayout): if not base.total_armor: continue - self.add_header(control_point.name) - for vehicle, count in base.armor.items(): + self.add_header(f"{control_point.name} ({base.total_armor})") + for vehicle in sorted(base.armor, key=lambda k: k.name): + count = base.armor[vehicle] if not count: continue - self.add_row(vehicle.name, count) + self.add_row(f" {vehicle.name}", count) + self.add_row("") - self.add_spacer() self.add_row("Total", total) + self.add_spacer() class ArmyIntelTab(ScrollingFrame):