purpletennisball
85a51f8e2b
feat(ui): organize settings into panels ( #1425 )
...
* feat(ui): organize settings into new panels
* fix: typo
* fix(ui): add localization for setting panels
* fix(ui): move language to localization panel
2026-07-04 17:39:13 -07:00
Travis Abendshien
34814e8723
fix: fix "search for tag" function in tag manager ( #1411 )
...
* fix: set driver for tag manager
* refactor(ui): require titles for TagSearch widgets
2026-07-04 13:35:51 -07:00
Travis Abendshien
95e2fe7b44
fix: remove invalid child_id relationships from tag_parents ( #1423 )
...
* fix: remove invalid child_id relationships from tag_parents
* fix: use single statements in DB 102 & 202 migrations
* fix: remove unnecessary session.scalars() from migrations
2026-07-04 13:35:40 -07:00
purpletennisball
83473379db
feat: on click edit tag while in tag manager ( #1416 )
2026-07-04 13:13:53 -07:00
Travis Abendshien
5af3cc4faf
docs: update library-changes
2026-07-03 10:15:35 -07:00
Andreas Heglingegård
4a543396ae
fix: use optimized SQL when selecting non-hidden entries ( #1240 )
2026-07-02 16:38:29 -07:00
Jann Stute
3ffa012857
fix: make tagstudio python package executable ( #1414 )
...
* fix: make tagstudio python package executable by adding stub __main__.py
* fix: add license note + set exec bit
* Update src/tagstudio/__main__.py
Co-authored-by: Xarvex <60973030+xarvex@users.noreply.github.com >
---------
Co-authored-by: Xarvex <60973030+xarvex@users.noreply.github.com >
2026-07-02 21:44:03 +02:00
Jann Stute
00b6f918f3
fix(nix): add pyright to devshell ( #1415 )
...
---------
Co-authored-by: Xarvex <dev.ellz6@xarvex.simplelogin.com >
2026-07-02 14:15:32 -05:00
Travis Abendshien
7c1c1dd6ae
fix: fix issues with tag alias updating ( #1412 )
2026-07-02 20:16:35 +02:00
Travis Abendshien
d7918fd82c
tests: filter irrelevant SQLAlchemy or_() warning
2026-07-01 23:20:45 -07:00
Travis Abendshien
c062f6b6bd
build: relax Send2Trash version
2026-07-01 23:20:03 -07:00
Travis Abendshien
26e04e829c
docs: update roadmap
2026-07-01 21:37:50 -07:00
Travis Abendshien
4d49e9c270
translations: translate language names
2026-07-01 21:37:16 -07:00
Travis Abendshien
daaae17113
tests: filter irrelevant SQLAlchemy DISTINCT ON warning spam
2026-06-30 14:17:05 -07:00
Xarvex
c38fbb034d
chore(nix): relax more dependencies
...
fixes : #1403
2026-06-30 12:51:39 -05:00
Travis Abendshien
0433908ae8
refactor: remove QPushButtonWrapper
2026-06-30 02:22:48 -07:00
Travis Abendshien
9e04922e7b
fix(docs): fix header levels in changelog
2026-06-29 14:36:10 -07:00
Travis Abendshien
c6f2e3c7d1
docs: update changelog
2026-06-29 14:33:56 -07:00
Travis Abendshien
4e93e953d9
chore: fix missing ext in REUSE.toml
v9.6.0
2026-06-29 13:30:43 -07:00
Travis Abendshien
008cef363d
chore: remove REUSE comments from PULL_REQUEST_TEMPLATE.md and FUNDING.yml
2026-06-29 13:29:12 -07:00
Travis Abendshien
727f441c55
fix(ci): bump pyinstaller version to 6.21
2026-06-29 13:25:07 -07:00
Travis Abendshien
e327dc7ee1
chore: bump version to v9.6.0
2026-06-29 11:56:39 -07:00
Weblate (bot)
8eded29f45
translations: update from Hosted Weblate ( #1401 )
...
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Russian)
Currently translated at 97.0% (362 of 373 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/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Portuguese)
Currently translated at 87.1% (325 of 373 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: ssantos <ssantos@web.de >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Hungarian)
Currently translated at 100.0% (373 of 373 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/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
---------
Co-authored-by: Dott-rus <antonamelin8@gmail.com >
Co-authored-by: ssantos <ssantos@web.de >
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
2026-06-29 11:55:44 -07:00
Travis Abendshien
a01b5c423b
chore: format with ruff
2026-06-29 11:55:01 -07:00
Ludvig Sandh
a865573c4b
fix: fix off-by-one issues in progress bars ( #1293 )
...
* fix: faulty progress bar
The progress bar UI element always showed 1 step ahead of what it supposed to, also causing the last step to display a visual glitch (empty window)
* fix: corrected drop import progress bar text
* fix: corrected relink progress bar
Update progress bar at the beginning of the relink iteration instead of the end, which previously showed incorrect progress text and an empty window during the first iteration.
* fix: corrected 'refresh ignore entries' progress bar
Update progress bar at the beginning of the refresh loop iteration instead of the end, which previously showed incorrect progress text and an empty window during the first iteration.
* fix: corrected 'refresh unlinked' progress bar
Update progress bar at the beginning of the refresh loop iteration instead of the end, which previously showed incorrect progress text and an empty window during the first iteration.
* fix: corrected 'mirror entries' progress bar
Same as last commit
* fix: Unknown key in 'mirror entries' progress bar text (translation formatting)
* fix: corrected 'merge duplicates' progress bar
Note: Seems like this bar is never used in the UI. But if it is in the future, this fixes it just like the other progress bars.
2026-06-29 11:53:14 -07:00
Sola-ris
6005129003
feat: allow all raster images to be used as archive thumbnails ( #1373 )
2026-06-29 11:31:01 -07:00
Travis Abendshien
f44662296f
fix(ui): fix thumb res setting not updating during runtime
2026-06-29 10:33:44 -07:00
Travis Abendshien
0fa15ce18e
fix(ui): fix settings not saving, expose cached thumb size setting
2026-06-29 10:20:00 -07:00
Travis Abendshien
41024260de
fix(ui): fix incorrect size hints in about modal
2026-06-29 02:36:16 -07:00
Travis Abendshien
fca21bf5fa
fix(ui): use is_version_outdated() method in about modal
2026-06-29 02:27:53 -07:00
Travis Abendshien
6b15beefbd
feat: dismiss update notification, change missing ffmpeg popup to banner ( #1400 )
...
* feat: dismiss update notification, change ffmpeg to banner
* chore: sort resources.pyi list
* fix: remove unused asset
* refactor: rename dismiss_update()
* fix: remove *other* unused asset
2026-06-29 02:18:45 -07:00
Weblate (bot)
4919c972da
translations: update using Weblate (Hungarian) ( #1395 )
...
Currently translated at 100.0% (373 of 373 strings)
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/
Translation: TagStudio/Strings
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
2026-06-28 23:07:24 -07:00
Travis Abendshien
e509e247d5
fix: fix tag aliases ( #1399 )
...
* fix: fix tag aliases
* chore: remove logger statements from tag panel test
* chore: very important fix
* chore: remove commented-out code
2026-06-28 23:06:40 -07:00
Travis Abendshien
4da6037cbd
docs: update misc docs
2026-06-28 22:48:36 -07:00
Travis Abendshien
0d87307f38
fix(docs): don't use symlinked image for README
2026-06-28 01:55:50 -07:00
Travis Abendshien
1b0bbba080
feat: add field template editor, editable field names ( #1396 )
...
* feat: add basic field template editor
* fix: fix various issues with adding templates, reduce reused code
* feat: add field name editing on entries
* ui: add multiline checkbox to field template editor
* refactor: move stylesheets to central file
* fix(ui): fix untranslated key
* docs: update field documentation
2026-06-28 01:45:32 -07:00
Travis Abendshien
0f319985c4
ui: add v9.6 assets, update misc resources ( #1398 )
...
* ui: add v9.6 assets, update misc resources
* ui: use symlink for favicon
* refactor: simplify icon switching methods in media_player.py
* ui: update about window
* fix(ui): apply dpi scaling to about window background
* fix(ui): fix image symlinks
* fix(ui): fix dark media player buttons in light theme
* ui: use TagStudio icon in update notification instead of warning
2026-06-28 01:22:09 -07:00
Xarvex
a3477722b3
fix(ci): temporarily remove coverage check
...
This check has never actually been referred to or otherwise tracked, and
now it has been failing for UI files which do not need tests, making it
unsuitable in its current state. Long term there should be some kind of
coverage enforcement.
2026-06-28 02:10:59 -05:00
Xarvex
7a0a1f6047
fix(pyproject): allow Python 3.13 to function ( #1047 )
...
* fix(pyproject): allow Python 3.13 to function
* chore(nix): use Python 3.13
* fix(nix): add forgotten `audioop-lts`
2026-06-27 23:23:03 -07:00
Travis Abendshien
d640859856
chore: move REUSE info for issue templates to REUSE.toml
2026-06-27 05:07:23 -07:00
Travis Abendshien
cf1006ee51
fix(docs): use updated logo path in readme
2026-06-26 13:15:49 -07:00
Travis Abendshien
7f15990084
fix(docs): rename text logo file
2026-06-26 12:05:27 -07:00
Travis Abendshien
d9c56d534e
docs: update roadmap
2026-06-26 11:55:21 -07:00
Travis Abendshien
85676c0836
fix(ci): bump ruff version in workflow
2026-06-24 04:02:11 -07:00
Travis Abendshien
71a01c7156
chore: bump py7zr to 1.1.3
2026-06-22 23:11:28 -07:00
Travis Abendshien
e499a3e68b
chore: apply misc ruff fixes
2026-06-22 23:10:29 -07:00
Travis Abendshien
4321bbfdb3
chore: bump ruff to 0.15.17 ( #1393 )
2026-06-22 22:00:03 -07:00
Trigam
185691bcd2
feat: field template manager ( #1374 )
...
* refactor: merge tag_database.py into tag_search.py
* refactor: mvc split of tag_search.py
* refactor: tweaks
* doc: REUSE license information
* doc: add REUSE license information
* refactor: split generic functionality into "search panel"
* feat: field template search panel
* feat: field template manager
* fix: rename `tag.view_limit` key for other languages
* tweak: remove exclusion from field template search panel
* tweak: rename `is_field_chooser` to `is_field_template_chooser`
* feat: switch from multiple inheritance to composition
---------
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com >
2026-06-22 21:59:26 -07:00
Weblate (bot)
ae787eaf5e
translations: update from Hosted Weblate ( #1366 )
...
* Translated using Weblate (Russian)
Currently translated at 98.9% (361 of 365 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: NikitaNik_of <nikita-s03@mail.ru >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/
Translation: TagStudio/Strings
* Translated using Weblate (Japanese)
Currently translated at 98.6% (360 of 365 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 (Hebrew)
Currently translated at 2.7% (10 of 365 strings)
Added translation using Weblate (Hebrew)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: JonathanGlixman <yonatan.glixman@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/he/
Translation: TagStudio/Strings
* Translated using Weblate (Italian)
Currently translated at 100.0% (365 of 365 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Octavian <223219150+EdelFlosWeiss@users.noreply.github.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/
Translation: TagStudio/Strings
* Translated using Weblate (Spanish)
Currently translated at 100.0% (365 of 365 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Julen Arratibel Etxabe <jarratibeletxabe@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/
Translation: TagStudio/Strings
* Translated using Weblate (French)
Currently translated at 100.0% (365 of 365 strings)
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 (Toki Pona)
Currently translated at 95.8% (350 of 365 strings)
Co-authored-by: Cyborus <cyborus@disroot.org >
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/
Translation: TagStudio/Strings
* Translated using Weblate (Viossa)
Currently translated at 88.2% (322 of 365 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/qpv/
Translation: TagStudio/Strings
---------
Co-authored-by: NikitaNik_of <nikita-s03@mail.ru >
Co-authored-by: wany-oh <wany-oh@users.noreply.hosted.weblate.org >
Co-authored-by: JonathanGlixman <yonatan.glixman@gmail.com >
Co-authored-by: Octavian <223219150+EdelFlosWeiss@users.noreply.github.com >
Co-authored-by: Julen Arratibel Etxabe <jarratibeletxabe@gmail.com >
Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com >
Co-authored-by: Cyborus <cyborus@disroot.org >
Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com >
2026-06-22 20:45:17 -07:00
Travis Abendshien
8b6f649c54
docs: update roadmap
2026-06-20 17:52:17 -07:00