* Add en.json with strings found in code
* remove unused, internal, and logging strings
This removes any string tokens for unused/unfinished features, internally facing code, and log outputs.
---------
Co-authored-by: Travis Abendshien <lvnvtravis@gmail.com>
* Fix tag search to not require wildcards
* Add partial tag check to test_tag_search
* chore: format with ruff
---------
Co-authored-by: Tyrannicodin <tyrannicodin@gmail.com>
Co-authored-by: Travis Abendshien <lvnvtravis@gmail.com>
* use sqlite + sqlalchemy as a database backend
* change entries getter
* page filterstate.page_size persistent
* add test for entry.id filter
* fix closing library
* fix tag search, adding field
* add field position
* add fields reordering
* use folder
* take field position into consideration
* fix adding tag
* fix test
* try to catch the correct exception, moron
* dont expunge subtags
* DRY models
* rename LibraryField, add is_default property
* remove field.position unique constraint
* 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
* Add landing page when no library is open
- Add landing page when no library is open
- Add linear_gradient method
- Reformat main_window.py with spaces instead of tabs because apparently it wasn't formatted already?
* Add color_overlay methods, ClickableLabel widget
- Add color_overlay helper methods
- Add clickable_label widget
- Add docstrings to landing.py methods
- Add logo easter egg
- Refactor landing.py content
* Fix redefinition
* Fix macOS shortcut text
* Add option to use a whitelist instead of a blacklist
* maybe fix mypy?
* Fix Mypy and rename ignored_extensions
* This should fix mypy
* Update checkbox text
* Update window title
* shorten if statment and update text
* update variable names
* Fix Mypy
* hopefully fix mypy
* Fix mypy
* deprecate ignored_extensions
Co-authored-by: Jiri <yedpodtrzitko@users.noreply.github.com>
* polishing
* polishing
* Fix mypy
* finishing touches
Co-authored-by: Jiri <yedpodtrzitko@users.noreply.github.com>
* Fix boolean loading
* UI/UX + ext list loading tweaks
- Change extension list mode setting from Checkbox to ComboBox to help better convey its purpose
- Change and simplify wording
- Add type hints to extension variables and change loading to use `get()` with default values
- Sanitize older extension lists that don't use extensions with a leading "."
- Misc. code organization and docstrings
---------
Co-authored-by: Jiri <yedpodtrzitko@users.noreply.github.com>
Co-authored-by: Travis Abendshien <lvnvtravis@gmail.com>
* multi search mode system
A way to change the search from requiring all tags to and of the tags
* better wording
* Update start_win.bat
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Fix home_ui.py using PySide6 instead of PyQt5
* Refresh search on mode change
* Search mode selections naming fix
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* converted SearchMode from constants to enums
* Prevent Automatic opening of a Library if the ".TagStudio" folder has been deleted.
If the library no longer has a `.TagStudio` folder clear the Last_Library value
* Add disabling recent libraries that are missing or have missing `.TagStudio` folders
* Fix bug where this would crash if an empty library was passed
* Grabbed the wrong color
* 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
* Basic Video Player
* Fixes and Comments
* Fixed Bug Where Video's Audio did not stop when switching to a Image.
* Redo on VideoPlayer. Now with rounded corners.
* Fixed size not being correct when first starting video player.
* Ruff Check Fix
* Fixed Sizing Issue, and added Autoplay option in right click menu.
* Autoplay Toggle and Fixed Issue with video not stoping after closing library.
* Ruff Format
* Suggested Changes Done
* Commented out useless code that cause first warning.
* Fixed Album Art Error
* Might have found solution to Autoplay Inconsistency
* Ruff Format
* Finally Fixed Autoplay Inconsistency
* Fixed Merge Conficts
* Requested Changes and Ruff Format
* Test for new check
* Fix for PySide App Test
* More typing fixes and a few other changes.
* Ruff Format
* MyPy Fix
* MyPy Fix
* Ruff Format
* MyPy Fix
* MyPy and Ruff Fix
* Code Clean-Up and Requests completed.
* Conflict Fixes
* MyPy Fix
* Confict Fix
It appears one of the commits from main fixed the autoplay issue.
* Replace usage of os.path with usage of pathlib.Path in ts_cli.py
* Replace use of os.path with pathlib in Library.py
* Replace use of os.path with pathlib in ts_core.py
* resolve entry path/filename on creation/update
* Fix errors and bugs related to move from os.path to pathlib.
* Remove most uses of '.resolve()' as it didn't do what I thought it did
* Fix filtering in refresh directories to not need to cast to string.
* Some work on ts_qt, thumbnails don't load...
* Fixed the thumbnail issue, things seem to be working.
* Fix some bugs
* Replace some isfile with is_file ts_cli.py
* Update tagstudio/src/core/library.py
Co-authored-by: yed podtrzitko <yedpodtrzitko@users.noreply.github.com>
* Update library.py
* Update library.py
* Update library.py
* Update ts_cli.py
* Update library.py
* Update ts_qt
* Fix path display in delete unlinked entries modal
* Ruff formatting
* Builds and opens/creates library now
* Fix errors
* Fix ruff and mypy issues (hopefully)
* Fixed some things, broke some things
* Fixed the thumbnails not working
* Fix some new os.path instances in qt files
* Fix MyPy issues
* Fix ruff and mypy issues
* Fix some issues
* Update tagstudio/src/qt/widgets/preview_panel.py
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Update tagstudio/src/qt/widgets/preview_panel.py
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Update tagstudio/src/qt/widgets/preview_panel.py
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Update tagstudio/src/qt/widgets/preview_panel.py
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Update tagstudio/src/qt/widgets/thumb_renderer.py
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Update tagstudio/src/qt/widgets/thumb_renderer.py
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
* Fix refresh_dupe_files issue
* Ruff format
* Tweak filepaths
- Suffix comparisons are now case-insensitive
- Restore original thumbnail extension label behavior
- Fix preview panel trying to read file size from missing files
---------
Co-authored-by: yed podtrzitko <yedpodtrzitko@users.noreply.github.com>
Co-authored-by: Travis Abendshien <lvnvtravis@gmail.com>
- Running "Fix Unlinked Entries" will no longer result in duplicate entries if the directory was refreshed after the original entries became unlinked.
- A "Duplicate Entries" section is added to the "Fix Unlinked Entries" modal to help repair existing affected libraries.
- Add support for HEIC/HEIF image thumbnails and previews
- Replace dependency "pillow_avif_plugin" with "pi-heif"
- Remove unused dependencies in ts_cli.py