2 Commits

Author SHA1 Message Date
mikkeli 677d09524e Make the hidden attribute win over display rules
.drop-overlay sets display: flex, which beats the UA's [hidden] rule, so
the "Drop to analyse" overlay covered the page permanently and hid the
status line. A global [hidden] { display: none !important } fixes it and
any other element that pairs `hidden` with a display class.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015UXA39Sh9coAx4FhRkd8R2
2026-09-14 02:33:28 +09:00
mikkeli 5c918109d5 Keep master_core off Qt so the web image starts
master_core imported safe_title from font_manager, which imports PyQt5 at
module load. The web extra installs no Qt, so `ujm-web` crashed on startup
with "No module named 'PyQt5'" inside the container. safe_title is only a
UTF-8 round-trip, so master_core now carries its own Qt-free copy; the
desktop path keeps using font_manager's.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015UXA39Sh9coAx4FhRkd8R2
2026-09-14 02:33:28 +09:00
2 changed files with 12 additions and 1 deletions
+7 -1
View File
@@ -7,7 +7,13 @@ import numpy as np
from mutagen.mp3 import MP3 from mutagen.mp3 import MP3
from mutagen.easyid3 import EasyID3 from mutagen.easyid3 import EasyID3
from font_manager import safe_title
def safe_title(title):
# Deliberately not font_manager.safe_title: that module imports PyQt5 at load
# time, and master_core is on the Qt-free web path (the `web` extra has no Qt).
if not title:
return title
return title.encode('utf-8', errors='replace').decode('utf-8')
def _try_mp3_tags(file_path): def _try_mp3_tags(file_path):
+5
View File
@@ -20,6 +20,11 @@
* { box-sizing: border-box; } * { box-sizing: border-box; }
/* The UA's [hidden] { display: none } loses to any class that sets display
(e.g. .drop-overlay's flex), which left the overlay permanently covering the
page. Make the attribute win everywhere. */
[hidden] { display: none !important; }
html, body { html, body {
margin: 0; margin: 0;
height: 100%; height: 100%;