* feat: send deleted files to system trash
This refactors the file deletion code to send files to the system trash instead of performing a hard deletion. It also fixes deleting video files and GIFs loaded in the Preview Panel.
* feat(ui): add file deletion confirmation boxes
* feat(ui): add delete file menu option + shortcut
* ui: update file deletion message boxes
* fix(ui): same default confirm button on win/mac
- Make "Yes" the default choice in the delete file modal for both Windows and macOS (Linux untested)
- Change status messages to be more broad, since they also are displayed when cancelling the operation
* ui: show perm deletion warning on all platforms
* fix: run_macro didn't work for files that aren't in a sub directory
* fix: add_generic_data_to_entry would add a new Content Tags Field if the Content Tags field was the first field
* fix: get_gdl_sidecar used wrong file extension for discovering gdl side car files
* run_macro: ensure that source folder parameter is case insensitive
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
---------
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Fix text and RAW image handling
- Fix RAW images not being loaded correctly in the preview panel
- Fix trying to read size data from null images
- Refactor `os.stat` to `<Path object>.stat()`
- Remove unnecessary upper/lower conversions
- Improve encoding compatibility beyond UTF-8 when reading text files
- Code cleanup
* Use chardet for character encoding detection
* Add support for waveform + album cover thumbnails
* Rename "cover" variables for MyPy
* Rename "audio_tags" variables for MyPy + typing
* Add # type: ignore to fromstring method
* Add GIF preview support
* Add rough check for invalid video codecs
* Add ".plist" to PLAINTEXT_TYPES
* Add readable video tester
* Add ".psd" to IMAGE_TYPES; Handle ID3NoHeaderError
* Improve and style waveform previews
* Add final return statement to _album_artwork()
* Add final return statement to _audio_waveform()
* Tweak waveform color and size
* Fix ItemThumb label text color in light mode
* Fix most theme UI legibility issues
* Match additional UI to color scheme
* ruff format
* feat(ui): add UI color palette dict
* feat(ui) center and color small font previews
* fix(ui): large font previews follow app theme
* fix(ui): blender previews follow app theme
* feat(ui): add resizable thumbnail options
* fix: mkv files with "[0][0][0][0]" codec load properly
* fix: missing audio files properly handled
* feat(ui): use system accent color for thumb selections
* fix(ui): hide gif preview in multi-selections
* feat(ui): add dynamic file thumb icons
* fix(ui): hide previous thumbnail before resizing
* (fix): catch ffmpeg errors in file tester
* Squashed commit of the following:
commit 9a3c19d398
Author: Travis Abendshien <lvnvtravis@gmail.com>
Date: Wed Jul 24 22:57:32 2024 -0700
fix: add missing comma + sort extensions
commit 53b2db9b5f
Author: Travis Abendshien <lvnvtravis@gmail.com>
Date: Wed Jul 24 14:46:16 2024 -0700
refactor: move type constants to new media classes
* feat(ui): add media types and icon resources
* feat(ui): add more default media types and icons
Add additional default icons for:
- Blender
- Presentation
- Program
- Spreadsheet
Add/expand additional media types:
- PDF
- Packages
* fix: remove leading dot in preview panel ext
* refactor: remove edge from `four_corner_gradient()`
* fix: handle missing files in `resource_manager`
* fix(ui): thumb edges fading on refresh
* feat(ui): add default icons for audio+vector thumbs
* feat(ui): apply edge to default icon thumbs
* chore: remove unused code
* refactor(ui): move loading icon to `ResourceManager`
* added support for Source 1 + 2 file thumbnails
All plaintext variants and VTF file conversions.
* Added render code for VTF files
Added support for VTF files by using the vtf2img library for PIL
* Add files via upload
* fixed Ruff errors
* fixed Ruff errors
* chore: organize imports, lists; ruff formatting
* Change references of Source to Source Engine
* Added error handler + changed source to source engine
* add struct to import and docstring for source_engine
* complying to the demigod ruff
* chore: format with ruff
---------
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Update item_thumb.py
* Update preview_panel.py
* Update video_player.py
* made it so preview_panel.py uses self.open_explorer_action instead of just normal open_explorer_action
* fix(tags): include cluster in tag_id search
* fix(ui): remove unused tag context menu item
Remove unused "Add to Search" context menu item for tag widgets.
* fix(ui): add tag search from tag_database
Add missing functionality for the "Search for Tag" context menu option + left click functionality inside `tag_database.py` aka the "Tag Manager" panel.
* fix: verify `tag_id:` input in search
* style: remove commented code
* fix: change `Library` import to type check only
* Fix text and RAW image handling
- Fix RAW images not being loaded correctly in the preview panel
- Fix trying to read size data from null images
- Refactor `os.stat` to `<Path object>.stat()`
- Remove unnecessary upper/lower conversions
- Improve encoding compatibility beyond UTF-8 when reading text files
- Code cleanup
* Use chardet for character encoding detection
* Add support for waveform + album cover thumbnails
* Rename "cover" variables for MyPy
* Rename "audio_tags" variables for MyPy + typing
* Add # type: ignore to fromstring method
* Add GIF preview support
* Add rough check for invalid video codecs
* Add ".plist" to PLAINTEXT_TYPES
* Add readable video tester
* Add ".psd" to IMAGE_TYPES; Handle ID3NoHeaderError
* Improve and style waveform previews
* Add final return statement to _album_artwork()
* Add final return statement to _audio_waveform()
* Tweak waveform color and size
* Fix ItemThumb label text color in light mode
* Fix most theme UI legibility issues
* Match additional UI to color scheme
* ruff format
* feat(ui): add UI color palette dict
* feat(ui) center and color small font previews
* fix(ui): large font previews follow app theme
* fix(ui): blender previews follow app theme
* feat(ui): add resizable thumbnail options
* fix: mkv files with "[0][0][0][0]" codec load properly
* fix: missing audio files properly handled
* feat(ui): use system accent color for thumb selections
* fix(ui): hide gif preview in multi-selections
* feat(ui): add dynamic file thumb icons
* fix(ui): hide previous thumbnail before resizing
* (fix): catch ffmpeg errors in file tester
* Squashed commit of the following:
commit 9a3c19d398
Author: Travis Abendshien <lvnvtravis@gmail.com>
Date: Wed Jul 24 22:57:32 2024 -0700
fix: add missing comma + sort extensions
commit 53b2db9b5f
Author: Travis Abendshien <lvnvtravis@gmail.com>
Date: Wed Jul 24 14:46:16 2024 -0700
refactor: move type constants to new media classes
* feat(ui): add media types and icon resources
* feat(ui): add more default media types and icons
Add additional default icons for:
- Blender
- Presentation
- Program
- Spreadsheet
Add/expand additional media types:
- PDF
- Packages
* fix: remove leading dot in preview panel ext
* refactor: remove edge from `four_corner_gradient()`
* fix: handle missing files in `resource_manager`
* fix(ui): thumb edges fading on refresh
* feat(ui): add default icons for audio+vector thumbs
* feat(ui): apply edge to default icon thumbs
* chore: remove unused code
* refactor(ui): move loading icon to `ResourceManager`
* fix(ui) color for default icons follow theme
* fix: remove `theme_color` redef
* refactor: make some consts and args clearer
* refactor: organize arguments, update docstrings
The ability to pass a border radius scaling argument is also included.
* chore: format docstrings with ruff
* refactor: replace magic numbers with named values
* refactor: remove unused code, comments, & imports
* refactor: rename args to not shadow builtins
* refactor: remove unused vars from `thumb_renderer`
* fix: handle ValueError in `render()`
Handle ValueErrors in `render()`. This case was encountered when attempting to render an `XPM` file during testing.
* docs: add FFmpeg requirement to README
Use path as an input that can be overriden automatically when direnv is
in use.
nix-direnv version present in .envrc has been updated, using watch_file on the flake is already handled.
* Enable hardware acceleration for Nix devenv
Section "nativeBuildInputs" needs the dependency "qt6.full" to provide hardware acceleration in QT.
Library "wayland" is needed to create a proper OpenGL context under Wayland as well.
Provide a check for open AMD driver and use it for VDPAU video hardware acceleration.
Move "wrapQtAppsHook" to it's correct place under "nativeBuildInputs".
* Add xorg.libXrandr for hardware accelerated video playback.
Using libva and openssl libraries eliminates the need for a dependency on the qt6.full library.
* Add the ability to create tags when adding a tag to a file.
* ui: unify tag widget appearance
Unify the tag widget appearance and remove unnecessary "*1" multiplication.
* refactor: change some var names & add docstrings
* feat: edit panel is opened before adding tag
* feat(ui): focus save button on add panel
Focus the save button on the Add Tag panel. This allows the user to promptly hit enter to add the tag as-is.
---------
Co-authored-by: bjorn-out <b.g.out@uva.nl>
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
Not perfect, and mostly a port of the previous edition. Hours have
already been sunk into this, and need to get this out for consumption,
and for ironing out.
For more information see: https://devenv.sh
NOTE: impure is used only because of the devenv-managed state, do not be
alarmed!
* Implement #327
Sort tags in the Library Tags panel and the Add Parent Tags panel with Archived and Favorite at the top, then sort by color, and then sort alphabetically.
* Sort tags alphabetically when a search is performed
* Format with Ruff
* Prioritize tags whose names match the query over tags that match the query in other ways
* Update thumb_renderer.py
Included support for rendering blender thumbnails
* Add files via upload
Add functions that get the thumbnail's data
* Update thumb_renderer.py
* Update blender_thumbnailer.py
* Update thumb_renderer.py
* Update thumb_renderer.py
Changed where imports are according to feedback
* Update thumb_renderer.py
Changed blender thumbnail function name to reduce ambiguity
* Update blender_thumbnailer.py
Updated function name
* Update blender_thumbnailer.py
* Update blender_thumbnailer.py
Ruff format
* Update thumb_renderer.py
Ruff format
* Update constants.py
Add .blend1, 2, 3 etc file support
* Update blender_thumbnailer.py
Refactor to follow requested changes
* Update thumb_renderer.py
More refactoring
* Update blender_thumbnailer.py
Ruff format
* Update thumb_renderer.py
Ruff format
Moves the previous updated blurb from the README to the new CONTRIBUTING
file. Also reworks some wording to link to the Flake nix wiki page for
nix users who haven't enable flakes yet.
When using the nix flake to generate a development shell, the python
virtual environment will now automatically be created and dependecies
from both requirements.txt and requirements-dev.txt will be installed.
This removes the need for using the setup script after entering the
dev shell. Exec bash must be the last thing called, as any other
commands past it will not get executed by the shell hook. Also removes
some duplicate dependencies that I found.
* Update to pyside6.7.1
* Fix Ruff
* Fix MyPy
* Update mypy job to also use PySide6 6.7.1
* Remove unused imports
* Add Description to class
* Ruff format
* Fix Warning in pagination.py
* Probably fix Pyside app test
* Rename CustomQPushButton to QPushButtonWrapper
also renamed custom_qbutton.py to qbutton_wrapper.py