* refactor: store browsing history for navigation purposes
* refactor: remove page_size from FilterState
* refactor: move on from the term "filter" in favor of "BrowsingState"
* fix: refactors didn't propagate to the tests
* fix: ruff complaints
* fix: remaing refactoring errors
* fix: navigation works again
* fix: also store and restore query
* fix: tests were overwriting the settings.toml
* fix(GlobalSettings): add default value for _loaded_from
* fix: a case in read_settings didn't set loaded_from correctly
* fix(GlobalSettings): proper serialisation
* refactor: simplify datetime widget creation
* refactor: fix warnings
* feat: text modal to enter date
* chore: change ignore comment to only apply to pyright not mypy
* feat(ui): expand file and thumbnail support
* feat: add iwork and powerpoint thumb support
Note: a lot of the zip-based code is becoming duplicated - this should be consolidated in the future.
* fix: remove decompression bomb check and catch others
* feat: add .aiff file equivalencies
* ui: update database icon
* feat: add .effect and .shader to shader set
* fix: correct malformed or missing media types
* feat: add misc code/plaintext types to media types
* fix: catch BadZipFile error for iWork thumbs
* chore: add type hints to thumb_renderer dicts
* refactor: change most internal render methods to static
* feat: merge media controls.
Initial commit to merge audio/video files. There are
still a few bugs around widget sizing that need fixing.
* fix: center widgets in preview area
Add widgets to a sublayout to allow for centering
in a QStackedLayout.
Remove references to the legacy video player in
the thumb preview.
* fix: resolve commit suggestions.
Subclass QSlider to handle click events
and allow for easier seeking.
Implement context menu along with autoplay
setting for the media widget.
Pause video when media player is clicked
instead of opening file.
* fix: start media muted
Start video/audio muted on initial load of
the media player.
Remove code causing mypy issue.
Add new method for getting slider click state.
* refactor: use layouts instead of manual positioning.
Add various layouts for positioning widgets instead
of manually moving widgets.
Change the volume slider orientation at smaller
media sizes.
* fix: color position label white
Fix position label color to white so it stays visible
regardless of theme.
* fix: allow dragging slider after click
* Apply suggestions from code review
fix: apply suggestions from code review.
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* fix: remove references to legacy video player.
Combine the stats logic for video/audio into one method.
Fix several issues after incorrectly implementing suggestions.
* fix: add loop setting and other actions.
* refactor: simplify widget state management.
Make a single method to control widget state.
Works with the main QStackLayout and cleans up
widget state if it is needed (i.e., stopping the media
player when switching to a different preview).
* fix: add pages to QStackLayout to fix widget position.
Fixes a regression in commit 4c6934. We need the pages
to properly center the widgets in the QStackLayout.
* fix: ensure media_player doesn't exceed maximum size if thumbnail.
Fix and issue where the media_player would expand past the
thumbnail on resize.
* refactor: move settings to new system
* build: add "src" to pathex.
Instead of having to pre-install tagstudio, this will have PyInstaller directly build it from source.
* build: be more selective about the data files.
Since PyInstaller builds from source now there is no need to manually add it.
---------
Co-authored-by: Léonard <Leeooonaard@gmail.com>
* feat: create QMovie with file path instead of copying image around
* fix: make ignore pyright specific so mypy doesn't complain
* fix: restore ability to delete file while viewing it
* feat: add tab widget
* refactor: move languages dict to translations.py
* refactor: move build of Settings Modal to SettingsPanel class
* feat: hide title label
* feat: global settings class
* fix: initialise settings
* fix: properly store grid files changes
* fix: placeholder text for library settings
* feat: add ui elements for remaining global settings
* feat: add page size setting
* fix: version mismatch between pydantic and typing_extensions
* fix: update test_driver.py
* fix(test_file_path_options): replace patch with change of settings
* feat: setting for dark mode
* fix: only show restart_label when necessary
* fix: change modal from "done" type to "Save/Cancel" type
* feat: add test for GlobalSettings
* docs: mark roadmap item as completed
* fix(test_filepath_setting): Mock the app field of QtDriver
* Update src/tagstudio/main.py
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* fix: address review suggestions
* fix: page size setting
* feat: change dark mode option to theme dropdown
* fix: test was expecting wrong behaviour
* fix: test was testing for correct behaviour, fix behaviour instead
* fix: test fr fr
* fix: tests fr fr fr
* fix: tests fr fr fr fr
* fix: update test
* fix: tests fr fr fr fr fr
* fix: select all was selecting hidden entries
* fix: create more thumbitems as necessary