mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
0878cbf308
* feat(themes): install counts, downloads, popularity & sort in the Theme Store Each registry theme now carries an install count and a last-changed date. Store rows show them in a dedicated meta panel (author, popularity bar, total downloads, last changed), plus a sort dropdown (most popular / newest / name), zebra-striped rows, a numbered pager, and a note that the stats refresh daily. Adds a shared formatRelativeTime helper (formatLastSeen now delegates to it). * test(themes): cover sort modes, pager jump and relative-time formatting * fix(build): gate nvidia_quirk_active to Linux Its only caller is the Linux branch of theme_animation_risk, so on Windows and macOS the function was dead code and tripped clippy's -D warnings. * docs: CHANGELOG + credits for theme store download stats & sort (#1036)
26 lines
1.1 KiB
Rust
26 lines
1.1 KiB
Rust
//! Startup-recorded display hint for the theme system.
|
|
//!
|
|
//! The Nvidia/WebKit GPU quirk is detected once at process start (in `main()`,
|
|
//! before the webview/GTK init). We record whether it was needed so the UI can
|
|
//! warn that animated themes may raise CPU load on this setup — without
|
|
//! re-probing the GPU later. Read via the `theme_animation_risk` command
|
|
//! (`lib_commands::app_api::platform`).
|
|
|
|
use std::sync::OnceLock;
|
|
|
|
static NVIDIA_QUIRK_ACTIVE: OnceLock<bool> = OnceLock::new();
|
|
|
|
/// Record the startup Nvidia-WebKit-quirk detection. Called once from `main()`.
|
|
pub fn set_nvidia_quirk_active(active: bool) {
|
|
let _ = NVIDIA_QUIRK_ACTIVE.set(active);
|
|
}
|
|
|
|
/// Whether the Nvidia WebKit quirk was needed at startup. Linux-only: read
|
|
/// solely by the Linux branch of `theme_animation_risk`. False when unrecorded
|
|
/// (GPU acceleration opted in via `PSYSONIC_WEBKIT_GPU_ACCEL`). Gated so it is
|
|
/// not dead code on Windows/macOS, where the quirk never applies.
|
|
#[cfg(target_os = "linux")]
|
|
pub(crate) fn nvidia_quirk_active() -> bool {
|
|
NVIDIA_QUIRK_ACTIVE.get().copied().unwrap_or(false)
|
|
}
|