diff --git a/webui/index.html b/webui/index.html
index e82b0577..d9137468 100644
--- a/webui/index.html
+++ b/webui/index.html
@@ -5064,7 +5064,7 @@
-
+
🎵 Quality Profile
diff --git a/webui/static/pages-extra.js b/webui/static/pages-extra.js
index 4e2633a9..5ab860e1 100644
--- a/webui/static/pages-extra.js
+++ b/webui/static/pages-extra.js
@@ -3112,7 +3112,16 @@ function _adlRender() {
`
: '';
- html += `
+ // In the Unverified review sub-view, make the whole row clickable to
+ // open the audit/info modal (same as the 🔍 button) — mirrors the
+ // Quarantine rows, which are row-clickable for their details. The
+ // action buttons stopPropagation so they don't double-trigger.
+ const _unvHid = _adlFilter === 'unverified' ? verifHistoryId(dl) : null;
+ const reviewRowClick = _unvHid
+ ? ` onclick="verifAudit('${_unvHid}')" style="cursor:pointer" title="Click to show download details (audit trail, embedded tags, lyrics)"`
+ : '';
+
+ html += `
${colorBar}
${artHtml}
diff --git a/webui/static/settings.js b/webui/static/settings.js
index 381207e7..5c024a72 100644
--- a/webui/static/settings.js
+++ b/webui/static/settings.js
@@ -1821,16 +1821,16 @@ function updateDownloadSourceUI() {
prowlarrRedirect.style.display = showProwlarr ? 'block' : 'none';
}
- // Quality profile is Soulseek-only (it only affects Soulseek downloads) and
- // downloads-tab-only. Gate the WHOLE collapsible tile (#quality-profile-tile
- // = header + body) as a unit, so it either fully shows (Soulseek active) or
- // fully hides — never an empty expandable shell (the earlier bug came from
- // gating only the inner #quality-profile-section).
+ // Quality profile is now a GLOBAL system — the same ranked-target list
+ // drives every source (Soulseek, Tidal, Qobuz, HiFi, Deezer, …), so it is
+ // no longer Soulseek-gated. Show the whole collapsible tile whenever the
+ // downloads tab is active (gated as a unit so there's never an empty
+ // expandable shell).
const qualityProfileTile = document.getElementById('quality-profile-tile');
if (qualityProfileTile) {
const activeTab = document.querySelector('.stg-tab.active');
const onDownloadsTab = activeTab && activeTab.dataset.tab === 'downloads';
- qualityProfileTile.style.display = (activeSources.has('soulseek') && onDownloadsTab) ? '' : 'none';
+ qualityProfileTile.style.display = onDownloadsTab ? '' : 'none';
}
if (activeSources.has('tidal')) {