refactor(viewer): explorer UX cleanups (menu, loading, tree, status bar)
Four small UX fixes to the asset explorer: 1. Remove the no-op "View" menu (Textures/Meshes/Audio toggles + Wireframe checkbox) — none were wired to anything. Dropped ViewMode + the current_mode/ wireframe fields from ViewerState (nothing read them); the central panel already dispatches on which preview resource is populated. 2. Loading indicator — clicking a drawer item now flips FileBrowserState.loading and the central panel shows a centered spinner + "Loading <name>…" until the background read/decode applies, instead of leaving the previous item on screen with no feedback. Cleared in poll_loader_channel on FileLoaded/PakLoaded/ Error/Cancelled. 3. Drawer shows only the .pak index, not its .pNN data segments — the segments are the pack's body (loaded when the .pak is opened), so listing them (with no preview) was noise. Dropped the virtual "<stem>.pak" folder too; the .pak now sits as a normal leaf in its real directory. 4. Bottom status bar no longer overflows — horizontal_wrapped, only the source's final path component (full path on hover), file count, and a right-aligned, shortened controls hint. Removed the mode label. Viewer + formats build; all tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -28,36 +28,16 @@ pub mod ui;
|
||||
/// Global viewer state, shared across all UI and rendering systems.
|
||||
#[derive(Resource)]
|
||||
pub struct ViewerState {
|
||||
/// Which type of asset is currently being browsed / previewed.
|
||||
pub current_mode: ViewMode,
|
||||
/// Whether to render meshes in wireframe mode (toggle with F2).
|
||||
pub wireframe: bool,
|
||||
/// Whether the plain-text viewer wraps long lines.
|
||||
pub text_wrap: bool,
|
||||
}
|
||||
|
||||
impl Default for ViewerState {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
current_mode: ViewMode::Textures,
|
||||
wireframe: false,
|
||||
text_wrap: true,
|
||||
}
|
||||
Self { text_wrap: true }
|
||||
}
|
||||
}
|
||||
|
||||
/// The active view / asset type being inspected.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
|
||||
pub enum ViewMode {
|
||||
/// XPR2 texture preview (Milestone 1).
|
||||
#[default]
|
||||
Textures,
|
||||
/// 3D mesh viewer (Milestone 2+).
|
||||
Mesh,
|
||||
/// Audio waveform / playback (Milestone 2+).
|
||||
Audio,
|
||||
}
|
||||
|
||||
// ── App builder ──────────────────────────────────────────────────────────────
|
||||
|
||||
/// Build and run the viewer application.
|
||||
|
||||
Reference in New Issue
Block a user