Skip to content

FEATURE - Filesystem plugin browser#198

Open
richardssam wants to merge 37 commits intoAcademySoftwareFoundation:mainfrom
richardssam:filesystem_plugin
Open

FEATURE - Filesystem plugin browser#198
richardssam wants to merge 37 commits intoAcademySoftwareFoundation:mainfrom
richardssam:filesystem_plugin

Conversation

@richardssam
Copy link
Copy Markdown
Contributor

Filesystem plugin browser

A high-performance, multi-threaded filesystem browser for xStudio, designed to handle large directories and image sequences efficiently.

Features

  • Fast Multi-threaded Scanning: Uses a thread pool and BFS algorithm to scan directories quickly without freezing the UI.
  • Image Sequence Detection: Automatically detects and groups file sequences (e.g., shot_001.1001.exr -> shot_001.####.exr). Supports exclusion of specific extensions (e.g., .mov, .mp4) via configuration.
  • Smart Filtering:
    • Text Filter: Supports "AND" logic (space-separated terms). E.g., comp exr finds files matchings both "comp" and "exr".
    • Time Filter: Filter by modification time (Last 1 day, 1 week, etc.).
    • Version Filter: Filter to show only the latest version or latest 2 versions of a shot.
  • Navigation:
    • Native Directory Picker integration.
    • Path completion/suggestions.
    • History tracking (via sticky attributes).
  • Playback Integration:
    • Double-Click: Loads media and immediately starts playback using the playlist's playhead logic.
    • Context Menu:
      • Replace: Replaces the currently viewed media with the selected item.
      • Compare with: Loads the selected item and sets up an A/B comparison with the current media.

Usage

  1. Open the Browser:
    • Go to View -> Panels -> Filesystem Browser.
    • Or use the hotkey 'B'.
  2. Navigation:
    • Enter a path in the text field or click the folder icon to browse.
  3. Loading Media:
    • Double-click a file/sequence to load it into the current or new playlist.
    • Right-click for advanced actions (Replace, Compare).
image

throb added a commit to throb/xstudio that referenced this pull request Mar 15, 2026
Extracted from PR AcademySoftwareFoundation#198 and adapted for Windows. Provides a VFX-oriented
filesystem browser panel with directory tree, file sequence detection
(via fileseq), version grouping, and thumbnail generation.

Key Windows fixes:
- Drive letter enumeration under virtual "/" root ("This PC")
- Case-insensitive path comparison throughout QML tree
- Forward-slash normalization on all path returns
- Fixed shadowed `time` import in _get_subdirs
- Direct attribute write from DirectoryTree (bypasses signal chain)
- Tree auto-syncs to current path on launch
- Up-directory button in path bar
- Depth spinner persists across sessions (title mismatch fix)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tedwaine and others added 27 commits April 2, 2026 11:09
Signed-off-by: Ted Waine <ted.waine@gmail.com>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Ted Waine <ted.waine@gmail.com>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
…oftwareFoundation#238)

Signed-off-by: xShirae <xshiraayuki@gmail.com>
Signed-off-by: Ted Waine <ted.waine@gmail.com>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
…has been obsolete for a while.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Better filtering, got progress bar working, and version and date filtering.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Also added a separate timing test where you can specify an output directory, not really for unit testing, but good for testing against real directories.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
…r so.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
The directory view allows a more obvious browsing of the tree. For the very top of the directory tree we dont auto-scan for media, once you get down to 4 levels it will start scanning.
We have also made a config.json file to store configurations of things like the auto_scan_threashold, along with adding a list of folders that need to be ignored.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
   * Fixed auto-complete
   * Tree view opens to node when path is entered in path dialog.
   * Added a refresh button
   * Tree view now persistent, with a nicer sidebar label.
   * Smart scan button now visible.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
…lly load it into the player

   * double click will load it into your target
   * Cursor keys will allow you to move through the results loading as you go (left right for icon view, up down for list view)
   * Enter will do the same as double click.
   * Preview playlist will be deleted on Enter.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
…n and list view:

* Adding Append menu option
* Adding copy path menu option
* Add compare menu option

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
…ou have a centralized area to do that.

Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants