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