From 59945a43a3625da37cde75234d49775985fb9262 Mon Sep 17 00:00:00 2001
From: Maximilian Moser <maximilian.moser@tuwien.ac.at>
Date: Tue, 5 Mar 2024 12:48:46 +0100
Subject: [PATCH] Show number of files per format as button label prefix
---
formatscaper/resultman.py | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/formatscaper/resultman.py b/formatscaper/resultman.py
index d8700b0..378c420 100755
--- a/formatscaper/resultman.py
+++ b/formatscaper/resultman.py
@@ -2,6 +2,7 @@
import argparse
import enum
+import math
from typing import Optional
import urwid as uw
@@ -240,14 +241,23 @@ def handle_select_format(format: Format, button: uw.Button):
# defining the basic layout
def create_format_buttons(filter: FormatFilter):
format_buttons = []
- for format in sorted((f for f in formats if f.name), key=lambda f: f.name):
+ filtered_formats = [f for f in formats if f.name]
+
+ num_files_per_format = {
+ fmt.puid: sum([len(rec) for rec in format_record_files[fmt.puid].values()])
+ for fmt in filtered_formats
+ }
+ max_num_files = math.ceil(math.log10(max(num_files_per_format.values())))
+
+ for format in sorted(filtered_formats, key=lambda f: f.name):
if filter == FormatFilter.ENDANGERED and not format.endangered:
continue
elif filter == FormatFilter.SAFE and format.endangered:
continue
attribute = "endangered" if format.endangered else "safe"
- button = SimpleButton(format.name)
+ prefix = str(num_files_per_format[format.puid]).rjust(max_num_files)
+ button = SimpleButton(f"[{prefix}] {format.name}")
button.format = format
uw.connect_signal(button, "click", handle_select_format, user_args=[format])
format_buttons.append(uw.AttrMap(button, attribute, focus_map="reversed"))
--
GitLab