From af3079f4053aaae37a5caf64e9ae7144339fb7ad Mon Sep 17 00:00:00 2001 From: Arne Weber Date: Sat, 1 Jun 2024 13:10:02 +0200 Subject: [PATCH 1/4] fixed tray title exceeding 128 causing crash --- gui.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/gui.py b/gui.py index ddc3be5..9ce1f76 100644 --- a/gui.py +++ b/gui.py @@ -1047,12 +1047,34 @@ class TrayIcon: if drop is None: return self.TITLE campaign = drop.campaign - return ( + title = ( f"{self.TITLE}\n" f"{campaign.game.name}\n" f"{drop.rewards_text()} " f"{drop.progress:.1%} ({campaign.claimed_drops}/{campaign.total_drops})" ) + if len(title) > 128: # ValueError: string too long (x, maximum length 128) + min_length = 30 + diff = len(title) - 128 + if (len(drop.rewards_text()) - diff) >= min_length + 1: # If we can trim the drop name to 20 chars + new_length = len(drop.rewards_text()) - diff - 1 # Length - Diff - Ellipse (…) + title = ( + f"{self.TITLE}\n" + f"{campaign.game.name}\n" + f"{drop.rewards_text()[:new_length]}… " + f"{drop.progress:.1%} ({campaign.claimed_drops}/{campaign.total_drops})" + ) + else: # Trimming both + new_length = len(campaign.game.name) - (diff - len(drop.rewards_text()) + min_length + 1) - 1 # Campaign name - (Remaining diff from trimmed drop name) - Ellipse + title = ( + f"{self.TITLE}\n" + f"{campaign.game.name[:new_length]}…\n" + f"{drop.rewards_text()[:min_length]}… " + f"{drop.progress:.1%} ({campaign.claimed_drops}/{campaign.total_drops})" + ) + print(f"len after: {len(title)}") + print(title) + return title def _start(self): loop = asyncio.get_running_loop() From 2dfc8ddaca5a2cc64444abdbfab3848fbfa75574 Mon Sep 17 00:00:00 2001 From: Arne Weber Date: Sat, 1 Jun 2024 17:18:05 +0200 Subject: [PATCH 2/4] removed debug print statements --- gui.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/gui.py b/gui.py index 9ce1f76..5e52fab 100644 --- a/gui.py +++ b/gui.py @@ -1072,8 +1072,6 @@ class TrayIcon: f"{drop.rewards_text()[:min_length]}… " f"{drop.progress:.1%} ({campaign.claimed_drops}/{campaign.total_drops})" ) - print(f"len after: {len(title)}") - print(title) return title def _start(self): From 251d0ce60cba4b18c2ea843598bdae747b6adb04 Mon Sep 17 00:00:00 2001 From: Arne Weber Date: Sat, 1 Jun 2024 17:26:35 +0200 Subject: [PATCH 3/4] shorter taskbar title: allows 128, but shows 127 --- gui.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui.py b/gui.py index 5e52fab..4bea8f4 100644 --- a/gui.py +++ b/gui.py @@ -1053,9 +1053,9 @@ class TrayIcon: f"{drop.rewards_text()} " f"{drop.progress:.1%} ({campaign.claimed_drops}/{campaign.total_drops})" ) - if len(title) > 128: # ValueError: string too long (x, maximum length 128) + if len(title) > 127: # ValueError: string too long (x, maximum length 128), but it only shows 127 min_length = 30 - diff = len(title) - 128 + diff = len(title) - 127 if (len(drop.rewards_text()) - diff) >= min_length + 1: # If we can trim the drop name to 20 chars new_length = len(drop.rewards_text()) - diff - 1 # Length - Diff - Ellipse (…) title = ( From 7212bc9a1e311ab4b27d9e005be8aff69fd4393b Mon Sep 17 00:00:00 2001 From: Arne Weber Date: Sat, 1 Jun 2024 18:04:57 +0200 Subject: [PATCH 4/4] fixed comment spelling --- gui.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui.py b/gui.py index 4bea8f4..c649535 100644 --- a/gui.py +++ b/gui.py @@ -1057,7 +1057,7 @@ class TrayIcon: min_length = 30 diff = len(title) - 127 if (len(drop.rewards_text()) - diff) >= min_length + 1: # If we can trim the drop name to 20 chars - new_length = len(drop.rewards_text()) - diff - 1 # Length - Diff - Ellipse (…) + new_length = len(drop.rewards_text()) - diff - 1 # Length - Diff - Ellipsis (…) title = ( f"{self.TITLE}\n" f"{campaign.game.name}\n" @@ -1065,7 +1065,7 @@ class TrayIcon: f"{drop.progress:.1%} ({campaign.claimed_drops}/{campaign.total_drops})" ) else: # Trimming both - new_length = len(campaign.game.name) - (diff - len(drop.rewards_text()) + min_length + 1) - 1 # Campaign name - (Remaining diff from trimmed drop name) - Ellipse + new_length = len(campaign.game.name) - (diff - len(drop.rewards_text()) + min_length + 1) - 1 # Campaign name - (Remaining diff from trimmed drop name) - Ellipsis title = ( f"{self.TITLE}\n" f"{campaign.game.name[:new_length]}…\n"