Commit Graph

829 Commits

Author SHA1 Message Date
Travis Abendshien
dcf564e8c3 fix: add loop cutoff to get_tag_categories() (#1075) 2025-08-31 14:00:39 -07:00
Travis Abendshien
9891caca35 fix: set generate_thumbs default to true 2025-08-30 15:34:52 -07:00
Xarvex
131c5df86b fix(nix/package): ignore mutating test files, add new problematic tests 2025-08-30 12:16:50 -05:00
Travis Abendshien
d8b058ac5a docs: update launch arguments 2025-08-29 17:40:32 -07:00
Travis Abendshien
a9bdd93c64 docs: update roadmap 2025-08-29 17:29:13 -07:00
Xarvex
2926b91980 chore(thumbs): prepare for pillow_heif removing AVIF support (#1065)
* fix(thumb_renderer): prepare for pillow_heif removing AVIF support

* fix(nix/package): add pillow-avif-plugin
2025-08-29 17:05:40 -07:00
Travis Abendshien
8e1ae81ec9 feat: replace extension exclusion system with .ts_ignore (#1046)
* feat: replace extension exclusion with ts_ignore
2025-08-29 14:25:54 -07:00
Weblate (bot)
44c7d223ff fix(translations): update Portuguese keys (#1069)
Currently translated at 80.5% (270 of 335 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.



Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/
Translation: TagStudio/Strings

Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
2025-08-29 14:03:03 -07:00
Travis Abendshien
3f9aa87ab6 feat(ui): add LibraryInfoWindow with statistics (#1056) 2025-08-29 13:54:42 -07:00
Weblate (bot)
2583a76f56 translations: update from Hosted Weblate (#1066)
* Translated using Weblate (Hungarian)

Currently translated at 100.0% (329 of 329 strings)

Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/
Translation: TagStudio/Strings

* Translated using Weblate (Spanish)

Currently translated at 99.6% (327 of 328 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Joan <joancanalscrehuet@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/
Translation: TagStudio/Strings

* Translated using Weblate (French)

Currently translated at 100.0% (329 of 329 strings)

Translated using Weblate (French)

Currently translated at 100.0% (328 of 328 strings)

Co-authored-by: Bamowen <mathieu.monsauret@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/
Translation: TagStudio/Strings

---------

Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com>
Co-authored-by: Joan <joancanalscrehuet@gmail.com>
Co-authored-by: Bamowen <mathieu.monsauret@gmail.com>
Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com>
2025-08-29 13:51:53 -07:00
TheBobBobs
d8919ab283 perf: optimize db queries for preview panel (#942)
* perf: optimize mapping of category->tags

* perf: one less db call for Library.tag_display_name

* fix: include joins in Library.get_tag_hierarchy

* fix: remove category if empty in preview panel

* fix: add missing imports and remove unneeded dict

* fix: add tags that are categories to their own category

* fix: flip parent_id/child_id in get_tag_hierarchy

* fix: prevent trying to save duplicate TagParents
2025-08-29 13:42:15 -07:00
TheBobBobs
08d0ba4eee perf: optimize sql for or queries (#948) 2025-08-28 16:57:10 -07:00
Jann Stute
e551359845 refactor: unwrap instead of assert not None (#1068)
* refactor: unwrap instead of assert not None

* fix: address review feedback
2025-08-28 13:27:49 -07:00
Travis Abendshien
12e074b71d refactor: store DB version inside versions table (#1058)
* refactor: store DB version inside `versions` table

* tests: update search_library db file

* chore: add copyright info to library constants.py

* fix: only backup db if loaded version is lower

* chore: mark Preferences as @deprecated
2025-08-28 12:58:51 -07:00
Travis Abendshien
4704b92804 ci(tests): fix broken tests and add type hints (#1062)
* ci: expand pyright ignore rules to vendored and tests

* tests: comment out unused Mocks for further evaluation

* tests: fix broken tests, add type hints

* chore: address type feedback

* chore: remove unused qtbot parameter
2025-08-27 04:33:38 -07:00
Travis Abendshien
3a0da4699a fix: swap parent and child logic for TAG_CHILDREN_QUERY (#1064) 2025-08-27 03:19:19 -07:00
TheBobBobs
3125a995a7 refactor: make cache_manager thread safe (#1039)
* refactor: make cache_manager thread safe

* fix: move CacheManager to ts_qt

* fix: handle unexpected files in thumbnail cache

* perf(cache): reduce folder checks by tracking recently used folders

---------

Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
2025-08-26 19:10:50 -07:00
Eric
5dfcc36d70 feat: add thumbnail generation toggle (#1057) 2025-08-26 18:51:36 -07:00
Xarvex
eb2887e871 fix(pyproject): remove extraPaths intended for external libraries
This also resolves issues in editors using the wrong paths for
completion and reporting missing type stubs.
2025-08-25 22:55:49 -05:00
HeikoWasTaken
02a56892e6 feat: add version argument (#1060)
Co-authored-by: heiko <heiko_was_taken@protonmail.com>
2025-08-25 22:32:51 -05:00
Travis Abendshien
3489e159a5 docs: update roadmap 2025-08-25 12:01:59 -07:00
purpletennisball
6c257f9671 fix: folders with names of unlinked entries are linked (#1027)
* fix: render folder entries as unlinked

* fix: hide file size for linked folders

* fix: linked folders can be revealed in explorer

* fix: linked folders can be opened

* fix: linked folders can be deleted

* fix: skip rendering thumbnails in `ThumbRenderer._render`

* fix: skip getting image metadata for folders

* fix: conflicts

* style: ruff
2025-08-25 11:39:21 -07:00
Weblate (bot)
acba9c3c33 translations: update from Hosted Weblate (#1026)
* Translated using Weblate (Russian)

Currently translated at 100.0% (325 of 325 strings)

Co-authored-by: Dott-rus <antonamelin8@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/
Translation: TagStudio/Strings

* Translated using Weblate (Romanian)

Currently translated at 10.7% (35 of 327 strings)

Added translation using Weblate (Romanian)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: VLTNO <gfree6311@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ro/
Translation: TagStudio/Strings

* Translated using Weblate (Japanese)

Currently translated at 100.0% (325 of 325 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: wany-oh <wany-oh@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ja/
Translation: TagStudio/Strings

* Translated using Weblate (Portuguese)

Currently translated at 83.0% (270 of 325 strings)

Translated using Weblate (Portuguese)

Currently translated at 83.0% (270 of 325 strings)

Translated using Weblate (Portuguese)

Currently translated at 83.0% (270 of 325 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/
Translation: TagStudio/Strings

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (328 of 328 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (325 of 325 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/
Translation: TagStudio/Strings

* Translated using Weblate (Polish)

Currently translated at 93.4% (302 of 323 strings)

Co-authored-by: Feather <featherprinceyt@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/
Translation: TagStudio/Strings

* Translated using Weblate (French)

Currently translated at 100.0% (328 of 328 strings)

Translated using Weblate (French)

Currently translated at 100.0% (325 of 325 strings)

Translated using Weblate (French)

Currently translated at 100.0% (325 of 325 strings)

Co-authored-by: Bamowen <mathieu.monsauret@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/
Translation: TagStudio/Strings

* Translated using Weblate (Swedish)

Currently translated at 29.5% (96 of 325 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: skrap konto <skrap.kontot.4@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/
Translation: TagStudio/Strings

* Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Translation: TagStudio/Strings
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/

---------

Co-authored-by: Dott-rus <antonamelin8@gmail.com>
Co-authored-by: VLTNO <gfree6311@gmail.com>
Co-authored-by: wany-oh <wany-oh@users.noreply.hosted.weblate.org>
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com>
Co-authored-by: Feather <featherprinceyt@gmail.com>
Co-authored-by: Bamowen <mathieu.monsauret@gmail.com>
Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com>
Co-authored-by: skrap konto <skrap.kontot.4@gmail.com>
2025-08-25 11:20:52 -07:00
Xarvex
899c534467 fix(nix): fixup and rework, always use nixpkgs PySide/Qt (#1048) 2025-08-24 18:08:14 -05:00
Travis Abendshien
74383e3c3c feat: swap IDs in tag_parents table; bump DB to v100
commit c1346e7df36b137cf88be284a96329fee9605a6a
Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
Date:   Sat Aug 23 18:04:58 2025 -0700

    docs: update DB v100 with tag_parents flip

commit 7e5d9381759b000533c809df9d9bc4f9d984e363
Author: HeikoWasTaken <heikowastaken@protonmail.com>
Date:   Sun Aug 24 00:31:21 2025 +0100

    fix: swap IDs in parent_tags DB table (#998)

    * fix: reorder child and parent IDs in TagParent constructor call

    * feat: add db10 migration

    * fix: SQL query returning parent IDs instead of children IDs

    * fix: stop assigning child tags as parents

    * fix: select and remove parent tags, instead of child tags

    * test/fix: correctly reorder child/parent args in broken test

    * fix: migrate json subtags as parent tags, instead of child tags (I see where it went wrong now lol)

    * fix: query parent tags instead of children

    * refactor: scooching this down below db9 migrations

    * test: add DB10 migration test

    ---------

    Co-authored-by: heiko <heiko_was_taken@protonmail.com>

commit 1ce02699ad9798800f9d98832b2a6377e3d79ed4
Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
Date:   Sat Aug 23 14:47:39 2025 -0700

    feat: add db minor versioning, bump to 100
2025-08-23 18:17:19 -07:00
TheBobBobs
660a87bb94 feat: add random sorting (#1029)
* feat: add random sorting

* fix: improve randomness of random sort
2025-08-23 13:42:36 -07:00
Travis Abendshien
89cf2b22e4 fix(ui): fix vector previews not rendering 2025-08-22 15:33:58 -07:00
Travis Abendshien
133092cd05 fix(ui): fix clear square behind ignored icon 2025-08-21 17:31:26 -07:00
Travis Abendshien
94ac83768a docs: add sidebar icon for ignore page 2025-08-21 16:13:20 -07:00
Travis Abendshien
61ca3cb32a feat(ui): add exr thumbnail support (#1035) 2025-08-21 15:51:30 -07:00
Travis Abendshien
0e7a2dfd3d feat: add .ts_ignore pattern ignoring system (#897)
* feat: add `.ts_ignore` pattern ignoring system

* fix: add wcmatch dependency

* search: add ".TemporaryItems" to GLOBAL_IGNORE

* add `desktop.ini` and `.localized` to global ignore

* add ".fhdx" and ".ts" filetypes

* chore: remove logging statement

* chore: format with ruff

* feat: use ripgrep for scanning if available

* docs: add ignore.md

* search: remove ts_ignore filtering on queries

* feat: detect if files are added but ignored

* fix: render edges on all unlinked thumbs

* perf: don't search for cached unlinked thumbs

* fix(ui): ensure newlines in file stats

* fix: use ignore_to_glob for wcmatch

* fix(tests): remove inconsistent test

The test hinged on the timing of refresh_dir()'s yield's rather than actual values

* ui: change ignored icon and color
2025-08-21 15:50:59 -07:00
Travis Abendshien
d00546d5fe docs(roadmap): add infinite scrolling to roadmap 2025-08-19 17:33:44 -07:00
Travis Abendshien
969b1674f0 fix(search): pass current BrowsingState to from_tag_id() (#1038)
* fix(search): pass current BrowsingState to from_tag_id()

* chore: fix docstring

* fix: use existing query to build tag_id query

Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com>

---------

Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com>
2025-08-19 12:58:09 -07:00
Travis Abendshien
00001bbf0b docs: update header style for mobile 2025-08-18 08:26:41 -07:00
Travis Abendshien
df064ad104 feat: add missing raw image, text, and audio types 2025-08-17 16:57:20 -07:00
Travis Abendshien
31d205a869 docs: update home page 2025-08-17 16:55:06 -07:00
Travis Abendshien
a55d9a6a67 docs: add preview support section to library page 2025-08-17 16:54:10 -07:00
Travis Abendshien
2c5c98c86c docs: update formatting of schema_changes page 2025-08-16 09:37:21 -07:00
Travis Abendshien
8cef5e5749 docs: change accent color to "purple" 2025-08-16 09:04:17 -07:00
Travis Abendshien
32a2b47c4c docs: remove minimal/unfinished pages 2025-08-15 20:45:04 -07:00
Travis Abendshien
7a44ef156d docs: add icons to sidebar and titles 2025-08-15 20:33:32 -07:00
Travis Abendshien
f2454c4a9a docs: rework roadmap (#1023)
* docs: rework core features

* docs: rework tag features

* docs: rework library features

* docs: rework search features

* docs: rework application features

* docs: rework macro features

* refactor(docs): remove card formatting for roadmap

* docs: roadmap tweaks
2025-08-12 11:53:26 -07:00
Jann Stute
537ecb2a55 fix: add tag to selected entries in bulk not individually (#1028) 2025-08-11 12:08:52 -07:00
Travis Abendshien
62f1b7ca55 ci: bump windows runner image to 2022 v9.5.3 2025-08-07 19:46:29 -07:00
Travis Abendshien
8aec8ca11a chore: bump version to v9.5.3 2025-08-07 18:45:02 -07:00
Travis Abendshien
c235d4f727 ui: tweak media player style and behavior (#1025)
* ui: tweak media player style and behavior

* ui: change player overlay to gradient

* ui: add slight outline to player bar

* feat: realtime playback seeking

* fix(ui): click to jump to unbuffered media

* chore: organize imports

* refactor: remove unused code
2025-08-07 14:23:20 -07:00
Travis Abendshien
78e29a9a69 fix(ui): show correct thumb labels (#1010)
* fix(ui): show correct thumb labels

* fix(ui): use timestamp cutoff for thumb filename and ext
2025-08-07 12:33:38 -07:00
Trigam
c71032ff51 feat(ui): clickable links in text fields (#924)
* feat: links in text fields are clickable

* style: fix linting errors

* style: remove unnecessary comment

* feat: better url pattern

* chore: disable Ruff error

* style: add trailing line

* style: maybe format it? that'd be smart

* ui: chance text_label from RichText to Markdown

---------

Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
2025-08-07 12:29:09 -07:00
Travis Abendshien
77cfa697fc fix: use srctools instead of vtf2img for vtf files (#1014) 2025-08-06 18:34:12 -07:00
Travis Abendshien
89fc8a7280 fix(docs): load non-local fonts 2025-08-06 13:40:20 -07:00