FEATURE - Filesystem plugin browser#198
Merged
tedwaine merged 38 commits intoMay 20, 2026
Merged
Conversation
a89d4da to
6e7123a
Compare
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>
eba2367 to
69698ac
Compare
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>
e38c394 to
e5fd32a
Compare
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>
Signed-off-by: tedwaine <59868698+tedwaine@users.noreply.github.com>
0ae6686
into
AcademySoftwareFoundation:main
2 of 3 checks passed
tedwaine
added a commit
that referenced
this pull request
May 20, 2026
* Add numpy to pip installed packages Signed-off-by: Ted Waine <ted.waine@gmail.com> Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Tweak for set video range action Signed-off-by: Ted Waine <ted.waine@gmail.com> Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Handle missing Decklink hardware when drivers are installed (#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> * Initial checkin of filesystem_plugin prior to refactor. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * A ffmpeg constant changed, I believe the older one FF_PROFILE_UNKOWN has been obsolete for a while. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Cleanup GUI Better filtering, got progress bar working, and version and date filtering. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Adding fileseq for the python libraries for the FileSystem Browser. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Got the progress bar to work correctly. 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> * Fix for color scheme for right click menu. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Add readme. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Adding copyright/license info. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Adding (c). Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Dont be quite so agressive updating the UI, only do it every 5 secs or so. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Swapped file-browser with a history view. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Updated readme. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Fixing QML issue. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Demo of widget as a floating window. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Filtering fixes. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Switched to a tree-view with some "smart" collapsing of directories. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Fixed the file-loading issue, it was trying to load a relative path. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Double clicking on a directory changes the overall search window path. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Make the search case insensitive. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Adding different types of tree view. and recursion depths. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Minor tweak to prune empty folders if we are filtering. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Adding a directory view. 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> * Filtering all the time. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * GUI update: * 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> * Added a preview mode, so when you click on a clip, it will automatically 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> * Updated to have a common style, and synced style with xstudio. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * More style fixes, and also making menu options consistent between icon 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> * Adding a show-in-finder menu option. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * MInor bug fixes, cleaning threading. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Some code refactoring to simplify it, in particular the dispatch table. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Setup a interface class, so that if you want to change the back end you have a centralized area to do that. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Removed some debug output and removed an un-necesary header. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Fixed a padding issue. Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> * Added ability to set the directory root. 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> Signed-off-by: xShirae <xshiraayuki@gmail.com> Signed-off-by: tedwaine <59868698+tedwaine@users.noreply.github.com> Co-authored-by: Ted Waine <ted.waine@gmail.com> Co-authored-by: xShirae <83482842+xShirae@users.noreply.github.com> Co-authored-by: tedwaine <59868698+tedwaine@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Filesystem plugin browser
A high-performance, multi-threaded filesystem browser for xStudio, designed to handle large directories and image sequences efficiently.
Features
shot_001.1001.exr->shot_001.####.exr). Supports exclusion of specific extensions (e.g.,.mov,.mp4) via configuration.comp exrfinds files matchings both "comp" and "exr".Usage
View->Panels->Filesystem Browser.