From c1b87cc0a132f69a460c90af56339c55a4a67873 Mon Sep 17 00:00:00 2001 From: simjeehza Date: Tue, 28 Jan 2025 11:11:17 -0800 Subject: [PATCH 1/6] feat: start storing date_created and date_modified --- tagstudio/src/core/library/alchemy/enums.py | 2 + tagstudio/src/core/library/alchemy/library.py | 9 ++++ tagstudio/src/core/utils/refresh_dir.py | 49 +++++++++++++++---- 3 files changed, 51 insertions(+), 9 deletions(-) diff --git a/tagstudio/src/core/library/alchemy/enums.py b/tagstudio/src/core/library/alchemy/enums.py index 952b81cde..3b336e7ae 100644 --- a/tagstudio/src/core/library/alchemy/enums.py +++ b/tagstudio/src/core/library/alchemy/enums.py @@ -63,6 +63,8 @@ class ItemType(enum.Enum): class SortingModeEnum(enum.Enum): DATE_ADDED = "file.date_added" + Date_CREATED = "file.date_created" + DATE_MODIFIED = "file.date_modified" @dataclass diff --git a/tagstudio/src/core/library/alchemy/library.py b/tagstudio/src/core/library/alchemy/library.py index f2d1c7b56..c0530e419 100644 --- a/tagstudio/src/core/library/alchemy/library.py +++ b/tagstudio/src/core/library/alchemy/library.py @@ -517,6 +517,15 @@ def get_entry_full_by_path(self, path: Path) -> Entry | None: make_transient(entry) return entry + def get_entry_by_path(self, path: Path) -> Entry | None: + """Get the entry with the corresponding path.""" + with Session(self.engine) as session: + entry = session.scalar(select(Entry).where(Entry.path == path)) + if entry: + session.expunge(entry) + make_transient(entry) + return entry + @property def entries_count(self) -> int: with Session(self.engine) as session: diff --git a/tagstudio/src/core/utils/refresh_dir.py b/tagstudio/src/core/utils/refresh_dir.py index 43f8cfef9..ee4287293 100644 --- a/tagstudio/src/core/utils/refresh_dir.py +++ b/tagstudio/src/core/utils/refresh_dir.py @@ -1,8 +1,9 @@ -import datetime as dt +import datetime as dt, timezone from collections.abc import Iterator from dataclasses import dataclass, field from pathlib import Path from time import time +import platform import structlog from src.core.constants import TS_FOLDER_NAME @@ -34,18 +35,39 @@ class RefreshDirTracker: def files_count(self) -> int: return len(self.files_not_in_library) + def get_file_times(self, file_path: Path): + """Get the creation and modification times of a file.""" + stat = file_path.stat() + system = platform.system() + if system == 'Windows': # Windows + date_created = dt.fromtimestamp(stat.st_ctime, timezone.utc) + elif system == 'Darwin': # macOS + date_created = dt.fromtimestamp(stat.st_birthtime, timezone.utc) + else: # Linux and other systems + try: + date_created = dt.fromtimestamp(stat.st_birthtime, timezone.utc) + except AttributeError: + # st_birthtime is not available on some Linux filesystems + date_created = dt.fromtimestamp(stat.st_ctime, timezone.utc) + date_modified = dt.fromtimestamp(stat.st_mtime, timezone.utc) + return date_created, date_modified + def save_new_files(self): """Save the list of files that are not in the library.""" if self.files_not_in_library: - entries = [ - Entry( - path=entry_path, - folder=self.library.folder, - fields=[], - date_added=dt.datetime.now(), + entries = [] + for entry_path in self.files_not_in_library: + date_created, date_modified = self.get_file_times(entry_path) + entries.append( + Entry( + path=entry_path, + folder=self.library.folder, + fields=[], + date_added=dt.now(timezone.utc), + date_created=date_created, + date_modified=date_modified, + ) ) - for entry_path in self.files_not_in_library - ] self.library.add_entries(entries) self.files_not_in_library = [] @@ -97,6 +119,15 @@ def refresh_dir(self, lib_path: Path) -> Iterator[int]: # TODO - load these in batch somehow if not self.library.has_path_entry(relative_path): self.files_not_in_library.append(relative_path) + else: + # Update date_modified for existing entries if it has changed + entry = self.library.get_entry_by_path(relative_path) + if entry: + date_modified = datetime.fromtimestamp(f.stat().st_mtime, timezone.utc) + if entry.date_modified != date_modified: + entry.date_modified = date_modified + self.library.update_entry(entry) + end_time_total = time() yield dir_file_count From 6f4f96dbbb4327785b9f6599f61a844872ff4bbb Mon Sep 17 00:00:00 2001 From: simjeehza Date: Tue, 11 Feb 2025 17:22:25 -0800 Subject: [PATCH 2/6] BROKE BUILD --- h origin date-sorting | 8518 +++++++++++++++++ tagstudio/src/core/library/alchemy/enums.py | 2 +- tagstudio/src/core/library/alchemy/library.py | 4 + tagstudio/src/core/utils/refresh_dir.py | 19 +- 4 files changed, 8533 insertions(+), 10 deletions(-) create mode 100644 h origin date-sorting diff --git a/h origin date-sorting b/h origin date-sorting new file mode 100644 index 000000000..113c19d83 --- /dev/null +++ b/h origin date-sorting @@ -0,0 +1,8518 @@ +commit c1b87cc0a132f69a460c90af56339c55a4a67873 (HEAD -> date-sorting) +Author: simjeehza +Date: Tue Jan 28 11:11:17 2025 -0800 + + feat: start storing date_created and date_modified + +commit ba7e13041ba52d063879689a0b22d92748aaa49f (upstream/main, origin/main, origin/HEAD, main) +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Jan 28 01:57:01 2025 -0800 + + feat: add date columns to the entries table (#740) + + * feat: add date_created, date_modified, and date_added columns to entries table + + * feat: start storing date_added dates + +commit 1ba97d50c2ee7934aaa82b8be7f11bea3f4aa62f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Jan 28 01:19:30 2025 -0800 + + refactor: change `exception` log levels to `error` inside library.py + +commit 20d788af29eb975d6d84bc7b33c74cb35b034240 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 23:49:39 2025 -0800 + + fix: refactor and fix bugs with missing_files.py (#739) + + * fix: relink unlinked entry to existing entry without sql error (#720) + + * edited and added db functions get_entry_full_by_path & merge_entries + + * implemented edge case for entry existing on relinking + + * added test for merge_entries + + * fix: don't remove item while iterating over list + + * fix: catch `FileNotFoundError` for unlinked raw files + + * refactor: rename methods and variables in missing_files.py + + * refactor: rename `missing_files_count` to `missing_file_entries_count` + + --------- + + Co-authored-by: mashed5894 + +commit 458925fbf74b77d928617925a17c7da9af40fd25 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 12:08:16 2025 -0800 + + translations: fix typo in drop import + +commit f96ea6b546b37d9086f64e5da7ad0edc7b68925d +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:48:57 2025 -0800 + + fix: always catch db mismatch (#738) + + * fix: always catch db mismatch + + * chore: remove/modify log statements + + * translations: translate library version mismatch + + * style: fix line over col limit + +commit 19cdd1bf9285758cfce4b953d3e397d759bcd13a +Author: Weblate (bot) +Date: Mon Jan 27 20:48:28 2025 +0100 + + translations: update Czech, Hungarian (#727) + + * Translated using Weblate (Czech) + + Currently translated at 1.7% (4 of 224 strings) + + Added translation using Weblate (Czech) + + Co-authored-by: Hosted Weblate + Co-authored-by: Jirka Čapek + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/cs/ + Translation: TagStudio/Strings + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (224 of 224 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Jirka Čapek + Co-authored-by: Szíjártó Levente Pál + +commit 2a97a5b3aa5b358a4183c70d4bb2b39c72dec5bd +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:43:04 2025 -0800 + + perf: add all new library entries at once (#737) + +commit 14599e90a34c1074af1383b1caa7d8df933b4967 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:41:01 2025 -0800 + + fix: keep initial id order in `get_entries_full()` (#736) + + * fix: keep initial id order in `get_entries_full()` + + * fix: correct variable names + +commit ee14e2c200facd5afb1f36ab998717ac43f421d6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:40:06 2025 -0800 + + fix: search for tag aliases in tag search (#726) + +commit c06f3bb336c29edf116b6fbeb9f5b073319edb99 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:39:42 2025 -0800 + + feat!: expanded tag color system (#709) + + * attempt at adding `TagColor` table + + * store both columns of `TagColor` inside `Tag` table + + * fix: fix tag color relationships + + * refactor: replace TagColor enums with TagColorGroup system + + * ui: derive tag accent colors from primary + + * refactor: move dynamic tag color logic, apply to "+" button + + * feat(ui): add neon tag colors + + * remove tag text color field + + * ui: use secondary color for border and text + + * ui: add TagColorPreview widget + + * feat(ui): add new tag color selector + + * ui: add color name tooltips + + * ui: tweak tag colors and selector + + * feat: add `namespaces` table + + * translations: add + update translation keys + + * tests: update fixtures + + * chore: code cleanup + + * ui: add spacing between color groups + + * fix: expand refactor to create and add button + + * chore: format with ruff + +commit 4c337cb1a3ef1737c78b7453a7ad107340e219aa +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:39:10 2025 -0800 + + feat(ui): add thumbnail caching (#694) + + * feat(ui): add thumbnail caching + + * feat: enforce total size limit for thumb cache + + * fix: add file modification date to thumb hash + + This change allows for modified files to have their cached thumbnail regenerated. + + * feat: add menu option to clear thumbnail cache + + * fix: check if `cached_path` is None further on + + * refactor: move configurable cache vars to class level + + * docs: complete roadmap items + + * feat: use cache size limit from config file + + TODO: Store this on a per-library basis and allow it to be configurable inside the program. + + * fix: move `last_cache_folder` to class level + + * chore: add/tweak type hints + + * refactor: use make `CacheManager` a singleton + +commit 3606edf6155cd29603432592e0cef0255c295074 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 26 01:51:15 2025 -0800 + + fix: have pydub use known ffmpeg+ffprobe locations (#724) + + * fix: have pydub use known ffmpeg+ffprobe locations + + * chore: format with ruff + +commit f2a2f9a36d76592b22ab6c1aec454843ccbbffd2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 26 01:50:36 2025 -0800 + + fix: replace calls to `translate_qobject` with `translate_formatted` inside `TagWidget` (#735) + + * fix: replace `translate_qobject` calls with `translate_formatted` + + * refactor: misc code cleanup + +commit 921a8875de22f7c136316edfb5d3038236414b57 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Sat Jan 25 01:03:39 2025 +0000 + + fix(ui): don't always create tag on enter ( #731) + +commit 2a41c152b3c4db3d7bf762a0ac0682be174f42a0 +Author: mashed5894 +Date: Fri Jan 24 23:56:35 2025 +0200 + + fix: restore environment before launching external programs (#707) + + * rename promptless_Popen + + * linux: restore env before calling popen + + * windows: set dll directory to default before calling popen + + * ruff formatting suggestions + + * edited silent_popen docstring + +commit 0ead238aac33af33a439bb1bdc1e5d45bea30d73 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Fri Jan 24 21:38:42 2025 +0000 + + fix: restore opening last library on startup (#729) + +commit 9116cdc9a537de8e63e72efac40364dee56d68c9 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Jan 23 20:15:54 2025 -0800 + + docs: fix typo in readme + +commit 17c62802c0be91eee4b9b8069a87b0e89d9eb941 +Author: mashed5894 +Date: Thu Jan 23 23:41:57 2025 +0200 + + fix: sort tag results (#721) + + * sort search results + + * ruff fix + +commit ac6774ed23e8ed69abcff933947b9f3ca83437df +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Jan 23 00:22:03 2025 -0800 + + fix(ui): don't set frame when playing videos + + Fixes some videos not being able to play. The frame setting step was copied from thumbnail rendering and shouldn't be used here regardless. + +commit eb1f634d386cd8a5ecee1e6ff6a0b7d8811550fa +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Jan 23 00:19:35 2025 -0800 + + fix: don't add `._` files to libraries + +commit a1ab335dcb309cee1801de48429debd8d0420ea9 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 16:38:45 2025 -0800 + + translations: fix `fr.json` syntax error + +commit 89a8abca75a64fc9995c47d22826cb9f266b5330 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Thu Jan 23 00:07:13 2025 +0000 + + feat(ui): add audio volume slider (#691) + + * Add Volume Slider + + * Slider reflects muted state + + * Default Volume Value + + * Update roadmap to reflect current state + + * Forgot a period in a comment + + * Add suggestions + + * Update tagstudio/src/qt/widgets/media_player.py + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + + * remove unwanted line + + --------- + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + +commit a02c43c115963c3baa91feeac71f3aee9fb586eb +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 16:02:58 2025 -0800 + + feat(ui): add configurable splash screens (#703) + + * refactor: move splash images to resource_manager + + * feat(ui): add new splash screen widget + + * style: restore old resource manager log style + + * fix: scale font size for Segoe UI + +commit 857f40f2e3a919b3a66b3b92ec23a28d9fae9665 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 16:00:01 2025 -0800 + + fix: preview panel + main window fixes and optimizations (#700) + + * fix: only update file preview when necessary + + * fix: don't update thumb from tag_box callbacks + + * fix: reset preview panel and filters when loading new library + + * fix: clear library state on close; close old library on open + + * fix: reset scrollbar position on library close + +commit 16fb0290a03fd4081cad3ef67c66b404a70a0074 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 15:58:49 2025 -0800 + + fix: don't add default title field, use proper phrasing for adding files (#701) + + * fix: use correct message when adding macros + + * fix: no longer add title field to new entries + + * fix: use `entries` dialog title instead of `macros` + +commit 441ffce4a3a4cb5fb96613cc394a69960153c97e +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Wed Jan 22 23:56:54 2025 +0000 + + feat(ui): port "create and add tag" to main branch (#711) + + * Port create & add tag + + * Fix Name Conflict + + * Add translation keys + + * unify uses of BuildTagPanel + + * replace tabs with spaces + + * Add tag on creation + + * Add Suggestions + + * Trigger on return + + --------- + + Co-authored-by: bjorn-out + +commit 778028923e8afdb83961621b088dcb5e20b923da +Author: mashed5894 +Date: Thu Jan 23 01:48:57 2025 +0200 + + feat(ui): add about section (#712) + + * added about section to the help menu and modal to display information + + * load image through resource manager + + * cleaned up about text + + * remove visit github repo menu, moved to about modal + + * added function to check ffmpeg version + + * fixed version formatting + + * copied in ffmpeg checker code from v9.4 with a warning message on startup if ffmpeg is not detected + + * mypy fixes + + * about.content spacing + + * about.content title formatting + + * added config path to about screen + + * ruff fixes + + --------- + + Co-authored-by: Sean Krueger + +commit ea9b57b85f01f23a626390ba3ee97b3516582f2d +Author: Weblate (bot) +Date: Thu Jan 23 00:24:04 2025 +0100 + + translations: update German, Hungarian, French, Swedish (#697) + + * Translated using Weblate (German) + + Currently translated at 99.5% (217 of 218 strings) + + Co-authored-by: Aaron M + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + Translation: TagStudio/Strings + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (218 of 218 strings) + + Translated using Weblate (Hungarian) + + Currently translated at 100.0% (216 of 216 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + * Translated using Weblate (French) + + Currently translated at 57.7% (126 of 218 strings) + + Co-authored-by: Bamowen + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + Translation: TagStudio/Strings + + * Translated using Weblate (Swedish) + + Currently translated at 34.4% (75 of 218 strings) + + Co-authored-by: mashed5894 + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Aaron M + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Bamowen + Co-authored-by: mashed5894 + +commit 2a836b0d25b01c354b34f529f06e63644409fb84 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sun Jan 19 22:07:40 2025 +0100 + + docs: discourage force-pushes on prs that are open for review (#714) + + * Update CONTRIBUTING.md + + * Update CONTRIBUTING.md + +commit 6ea2c99abb20196c300a988a8ca547841b3a1759 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Fri Jan 17 23:04:13 2025 +0000 + + fix: drag and drop no longer resets (#710) + +commit 44ff17c0b3f05570e356c112f005dbc14c7cc05d +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 15 14:23:45 2025 -0800 + + fix: dragging files references correct entry IDs + + Fixes #705 + +commit 0cdb1a8c06a4ae36bd3025213b4176edd558402c +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Tue Jan 14 12:19:44 2025 +0100 + + ui: keyboard navigation for editing tags (#407) + + * build_tag modal: make Tag Title selected when opening modal + + * build_tag modal: Tab now changes focus when aliases field is in focus + + * fix: unpredictable tab order in build tag modal + + * feat: implement proper tab order + + * ci: fix mypy errors + + * fix: merge issue 1 + + * fix: merge issue 2 + + * refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication + + * Revert "refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication" + + This reverts commit fac589b3e35d365fc47536b3fe34a76aef83f05e. + +commit 5caf8698678cd4a47a0f4440c443ea70110f0f71 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 13 18:41:08 2025 -0800 + + docs: update roadmap + +commit 604837fcaadb15674fce3528e6cdb8f7c01a916c +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 13 14:42:19 2025 -0800 + + fix: store `tag.id` to variable before using in lambda + + This fixes an issue where every tag added from the "+" button had ID 0 (the "Archived" tag). + + Co-Authored-By: Jann Stute <46534683+Computerdores@users.noreply.github.com> + +commit 5c8f2c507fb317bf96173ee9051d25cb2c0c0d82 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Mon Jan 13 22:48:02 2025 +0100 + + feat: optimise `AND` queries (#679) + + * feat: optimise tag constraint + + * feat: use less subqueries + + * refactoring: __entry_satisfies_ast was unnecessary + + * feat: reduce time consumption of counting total results massively + + * feat: log the time it takes to fetch the results + + * Revert "feat: reduce time consumption of counting total results massively" + + This reverts commit 30af514681949779c3f33db9f4ed6c54a57d9882. + + * feat: log the time it takes to count the results + + * feat: optimise __entry_has_all_tags + +commit 5bab00aa6d42c72a2f8e033bd3b0e45282d3c752 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Mon Jan 13 22:46:57 2025 +0100 + + refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication (#699) + + * refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication + + * refactor: rename callback method + + * extract creation of row items to separate method + +commit a272b1863761a4147b6107cf84bb1905f956fbdc +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sat Jan 11 22:26:01 2025 +0100 + + feat: improve performance of "Delete Missing Entries" (#696) + + * feat: Delete all unlinked entries at once (#617) + + This technically removes the usefulness progress indicator, but brief + testing on my end had it delete ~8000 entries in less time than it took + me to see if the progress indicator was properly indeterminate or not + + * fix(fmt): remove unused import + + * fix: wasn't able to delete more than 32766 entries + + * chose: ruff check --fix + + * fix: address review comment + + --------- + + Co-authored-by: Tobias Berger + +commit fce97852d3769bca5a0be9d50f27937e60850ec2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jan 11 09:44:09 2025 -0800 + + feat!: tag categories (#655) + + * refactor: remove TagBoxField and TagField (NOT WORKING) + + * refactor: remove tag field types + + * ci: fix mypy and ruff tests + + * refactor: split up preview_panel + + * fix: search now uses `TagEntry` (#656) + + * fix: move theme check inside class + + * refactor: reimplement file previews + + * refactor: modularize `file_attributes.py` + + * ui: show fields in preview panel + + known issues: + - fields to not visually update after being edited until the entries are reloaded from the thumbnail grid (yes, the thumbnail grid) + - add field button currently non-functional + - surprise segfaults + + * search: remove TagEntry join + + * fix: remove extra `self.filter` assignment + + * add success return flag to `add_tags_to_entry()` + + * refactor: use entry IDs instead of objects and indices + + - fixes preview panel not updating after entry edits + - fixes slow selection performance + - fixes double render call + + * feat: add tag categories to preview panel + + * ui: add "is category" checkbox in tag panel + + * fix: tags can be compared for name sorting + + * fix: don't add tags to previous selections + + * fix: badges now properly update + + * ui: hide sizeGrip + + * ui: add blue ui color + + * ui: display empty selection; better multi-selection + + * cleanup comments; rename tsp to tag_search_panel + + * fix(ui): properly unset container callbacks + + * fix: optimize queries + + * fix: catch int cast exception + + * fix: remove unnecessary update calls + + * fix: restore try/except block in preview_panel + + * fix: correct type hints for get_tag_categories + + * fix: tags no longer lazy load subtags and aliases + + * fix: recursively include parent tag categories + + * chore: update copyright info + + * chore: remove unused code + + * fix: load fields for selected entry + + * refactor: remove `is_connected` from AddFieldModal + + * fix: include category tags under their own categories + + * fix: badges now update when last tag is removed + + * fix: resolve differences with main + + * fix: return empty set in place of `None` + + * ui: add field highlighting, tweak theming + + * refactor!: eradicate use of the term "subtag" + + - Removes ambiguity between the use of the term "parent tag" and "subtag" + - Fixes inconstancies between the use of the term "subtag" to refer to either parent tags or child tags + - Fixes duplicate and ambiguous subtags mapped relationship for the Tag model + - Does NOT fix tests + + * fix: catch and show library load errors + + * tests: fix and/or remove tests + + * suppress db preference warnings + + * tests: add field container tests + + * tests: add tag category tests + + * refactor(ui): move recent libraries list to file menu + + * docs: update roadmap and docs for tag categories + + * fix: restore json migration functionality + + * logs: remove/update debug logs + + * chore: remove unused code + + * tests: remove tests related to `TagBoxWidget` + + * ui: optimize selection and badge updates + + * docs: update usage + + * fix: change typo of `tag.id` to `tag_id` + + Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> + + * fix: use term "child tags" instead of "subtags" in docstring + + Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> + + * fix: reference `child_id` instead of `parent_id` when deleting tags + + Co-Authored-By: Jann Stute <46534683+Computerdores@users.noreply.github.com> + + * add TODO comment for `update_thumbs()` optimization + + * fix: combine and check (most) built-in tag data from JSON + + Known issue: Tag colors from built-in JSON tags are not updated. This can be seen in the failing test. + + * refactor: rename `select_item()` to `toggle_item_selection()` + + * add TODO to optimize `add_tags_to_entry()` + + * fix: remove unnecessary joins in search + + * Revert "fix: remove unnecessary joins in search" + + This reverts commit 4c019ca19c365f6d0d66ec4a9d3db105624e83d6. + + * fix: remove unnecessary joins in search + + * reremove unused method `get_all_child_tag_ids()` + + * fix: migrate user-edited tag colors for built-in tags + + * style: update header for contributor-created files + + * fix: use absolute path in "open file" context menu + + * chore: change paramater type hint + + --------- + + Co-authored-by: python357-1 + Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> + +commit 5860a2ca9b5d0d893affb6d93165a6d14de7f4c3 +Author: Weblate (bot) +Date: Sat Jan 11 16:05:26 2025 +0100 + + translations: update German, Hungarian, Spanish, and Chinese (Traditional Han script) (#677) + + * Translated using Weblate (German) + + Currently translated at 73.3% (157 of 214 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Jann Stute + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + Translation: TagStudio/Strings + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (214 of 214 strings) + + Translated using Weblate (Hungarian) + + Currently translated at 59.8% (128 of 214 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + * Translated using Weblate (Spanish) + + Currently translated at 63.5% (136 of 214 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com> + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + Translation: TagStudio/Strings + + * Translated using Weblate (Chinese (Traditional Han script)) + + Currently translated at 94.8% (203 of 214 strings) + + Co-authored-by: Brian Su + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/zh_Hant/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Jann Stute + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com> + Co-authored-by: Brian Su + +commit d8d61cc8c8331018740a149d289377135ef50f31 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jan 11 07:03:05 2025 -0800 + + docs: fix broken weblate link in README + +commit fc81c43af1cd53e230ce6c9d2a9177406b6aae7a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jan 11 07:00:13 2025 -0800 + + docs: add a linux install notice (#695) + + * docs: add a linux install notice (#689) + + * docs: add a linux install notice to readme (#690) + + --------- + + Co-authored-by: Qronikarz <84787215+Qronikarz@users.noreply.github.com> + +commit 3cd56a881f2ad13f9dcdf4129a8cf90fc67eef89 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Fri Jan 10 16:46:23 2025 +0100 + + feat: sort by "date added" to library (#674) + + * ui: add sorting mode dropdown + + * feat: pass sorting mode to Library.search_library + + * feat: implement sorting by creation date + + * ui: add dropdown for sorting direction + + * ui: update shown entries after changing sorting mode / direction + + * docs: mark sorting by "Date Created" as completed + + * fix: remove sorting options that have not been implemented + + * fix: rename sorting mode to "Date Added" + + * fix: check off the right item on the roadmap + + * feat: translate sorting UI + + * fix: address review comments + +commit 936157c3c2ac148f4d209783991e824ce2f8fb0d +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Jan 7 01:17:31 2025 -0800 + + fix(ui): properly mask macOS icon + +commit c4f4bba5e024049ff5743588ee8ea319376af961 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 6 11:44:18 2025 -0800 + + build: update macos bundle identifier and version + + Update bundle to use `com.companyname.appname` reverse-domain structure + +commit 29c0dfdb2d88e8f473e27c7f1fe7ede6e5bd0feb +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 23:40:41 2025 -0800 + + feat(ui): use tag query as default new tag name + +commit bf03e28fdb488ae4ec4b508d2e5e99b6ed5b9454 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 22:49:58 2025 -0800 + + ui: update macOS icon + +commit 0b6b07d0b453b02cf6870587bd0692339c9f922a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 21:02:36 2025 -0800 + + fix(ui): don't create new QFonts in main_window.py + + This fix uses stylesheets instead of initializing new QFonts in the Ui_MainWindow class. This fixes the fonts appearing differently on different OSes, including a fix for text using these QFonts appearing small on macOS. The use of stylesheets also puts the styling in line with how the rest of the program operates. + +commit af760ee61a523c84bab0fb03a68d7465866d0e05 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 19:40:37 2025 -0800 + + ui: port splash screen from `Alpha-v9.4` + + Reimplements: + - 7f3b3d06af867fa4d5ca9f215499a25822c5900f + - 1e4883c577dcd62fc09fc2e86ecaa20d3d2b29db + - 1c53f05e4fbb8462240b08d0f0014efef81911e3 + +commit c5c86747fe96ac4e6f2f00a490d438b4fd776a6e +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Mon Jan 6 00:34:55 2025 +0000 + + fix: only close add tag menu with no search (#685) + +commit ef042ef070572221f39174292970df78d14ec23f +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Fri Jan 3 08:37:18 2025 +0000 + + fix: call filepaths instead of using `start` (#667) + +commit 7b672e03a172e8689258bbeb71623141fc83f451 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Wed Jan 1 11:36:11 2025 +0100 + + feat: implement parent tag search (#673) + + * feat: implement parent tag search + + * feat: add tests for parent tag search + + * fix: typo + + * feat: log the time it takes to build the SQL Expression + + * feat: instead of hardcoding child tag ids into main query, include subquery + + * Revert "feat: instead of hardcoding child tag ids into main query, include subquery" + + This reverts commit 2615e7dab464dd490fd1d66181758d00a0d885be. + +commit 5a0ba544546416228f309d9dc422951dc7c31889 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Wed Jan 1 04:35:35 2025 -0600 + + fix: strip whitespace around --open/-o flag (#670) + + * fix: fix -o flag not working if path has whitespace around it + + * fix: change strip to lstrip/rstrip + + * fix: manually expand "~" + +commit d948c0ce4c00169db6d1a571daae5197aba2c9ca +Author: Nginearing <142851004+Nginearing@users.noreply.github.com> +Date: Wed Jan 1 10:34:18 2025 +0000 + + docs: update readme (#676) + +commit d5cebf39d447b47ebe526903103ba73c228af9b1 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 30 20:50:57 2024 -0800 + + fix: add missing `pillow_jxl` import + + This import was accidentally removed in #569. This commit restores the import. + +commit 584f3aa358897666e2a58fd9eb3cd53d0c5d10ba +Author: Weblate (bot) +Date: Tue Dec 31 04:18:23 2024 +0100 + + translations: remove `library.refresh.scanning` key (#675) + + * Update translation files + + Updated by "Cleanup translation files" add-on in Weblate. + + Co-authored-by: Hosted Weblate + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ + Translation: TagStudio/Strings + +commit 1a317a182633b06b625ac7d9ead59364391cfaee +Author: Weblate (bot) +Date: Tue Dec 31 04:16:46 2024 +0100 + + translations: update Hungarian, Polish, French, Chinese (Traditional Han script), Toki Pona (#663) + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (130 of 130 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + * Translated using Weblate (Polish) + + Currently translated at 100.0% (130 of 130 strings) + + Translated using Weblate (Polish) + + Currently translated at 100.0% (130 of 130 strings) + + Co-authored-by: Eryk Michalak + Co-authored-by: Hosted Weblate + Co-authored-by: qronikarz + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/ + Translation: TagStudio/Strings + + * Translated using Weblate (French) + + Currently translated at 100.0% (130 of 130 strings) + + Co-authored-by: Bamowen + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + Translation: TagStudio/Strings + + * Translated using Weblate (Chinese (Traditional Han script)) + + Currently translated at 90.0% (117 of 130 strings) + + Added translation using Weblate (Chinese (Traditional Han script)) + + Co-authored-by: Brian Su + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/zh_Hant/ + Translation: TagStudio/Strings + + * Translated using Weblate (Toki Pona) + + Currently translated at 96.1% (125 of 130 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: gold + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Eryk Michalak + Co-authored-by: qronikarz + Co-authored-by: Bamowen + Co-authored-by: Brian Su + Co-authored-by: gold + +commit 69aed92f2421924f71498d23dac84c0fed79f7f4 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Tue Dec 31 04:15:39 2024 +0100 + + feat: translations (#662) + + * feat: implement Translator class + + * feat: add translate_with_setter and implement formatting of translations + + * feat: extend PanelModal to allow for translation + + * feat: extend ProgressWidget to allow for translation + + * feat: translation in ts_qt.py + + * debug: set default lang to DE and show "Not Translated" when replacing untranslated stuff + + * add translation todos + + * feat: translate modals + + * feat: translate more stuff + + * fix: UI test wasn't comparing to translated strings + + * feat: translations for most of the remaining stuff + + * fix: replace debug changes with simpler one + + * uncomment debug change + + * fix: missing parameter in call + + * fix: various review feedback + + * fix: don't translate json migration discrepancies list + + * fix: typo + + * fix: various PR feedback + + * fix: correctly read non-ascii characters + + * fix: add missing new line at eof + + * fix: comment out line of debug code + + * fix: address latest review comment + + * fix: KeyError that occurred when formatting translations + + * fix: regression of d594e84 + + * fix: add newline to en.json + + * fix: organize en.json, fix typo + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 40bfee050263cf105363f7dd7a8c70848449696c +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Tue Dec 24 03:39:23 2024 +0000 + + fix(ui): prevent duplicate parent tags in UI (#665) + +commit 020a73d095c74283d6c80426d3c3db8874409952 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 23 18:55:22 2024 -0800 + + fix(ui): use consistent tag outline colors + +commit 431efe4fe93213141c763e59ca9887215766fd42 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 23 18:39:56 2024 -0800 + + fix(ui): use correct pink tag color + +commit ca4dc0bebd398cfb339a5a4ee390337ff8b63038 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 23 16:50:10 2024 -0800 + + chore: add 089c8dd to `.git-blame-ignore-revs` + +commit 82c659c8a4b5acb1cbb727341cc6d187047fd23e +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Sun Dec 22 23:14:37 2024 -0700 + + feat(ui): new tag alias UI (#534) + + * updated parents and aliases to use the flowLaout in the build tag panel + + added shortcuts for adding and removing aliases and updated the alias ui + to always show remove button and not cover alias + + aliases use flowlayout + + wrote test for buildTagPanel removeSelectedAlias + + parent tags now use flowlayout in build tag panel + + moved buttons for adding aliases and parents to be at the end of the + flowLayout + + * added aliases and subtags to search results + + * aliases now use a table, removed unnecessary keyboard shortcuts + + * reverted subtags to regular list from flowlayout + + * chor remove redundant lambda + + * feat: added display names for tags + + * fix: aliases table enter/return and backspace work as expected, display names work as expected, adding aliases outputs them in order + + * format + + * fix: add parent button on build tag panel + + * fix: empty aliases where not being removed all the time + + * fix: alias name changes would be discarded when a new alias was created or an alias was removed + + * fix: removed display names, as they didn't display properly and should be added in a different PR + + * fix: mypy + + * fix: added missing session.expunge_all + + session.expunge_all() on line 621 was removed, added it back. + + * fix: parent_tags relationship in Tag class + + parent_tags primaryJoin and secondaryJoin where in the wrong order. They have been switched back to the proper order. + + * fix: pillow_jxl import was missing + + * fix: ruff + + * fix: type hint fixes + + * fix: fix the type hint fixes + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit dc2eed431b97e43cec44c16b5f8b4dc1f15203ec +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Dec 22 22:11:18 2024 -0800 + + add `.sqlite-journal` to `.gitignore` + +commit 9eed3b64d98dd442b7f0f3d1d4c8510f70dd0e27 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sun Dec 22 22:58:10 2024 +0100 + + feat: implement search equivalence of "jpg" and "jpeg" filetypes (#649) + + * feat: implement search equivalence of "jpg" and "jpeg" filetypes in an extensible manner + + * docs: update completion for search features on roadmap + + * fix: move FILETYPE_EQUIVALENTS to media_types.py + +commit 4c3ff42169e90e5d053d14eb724032ea9abd2b94 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Sun Dec 22 20:21:04 2024 +0000 + + fix: show correct unlinked files count (#653) + +commit b209abb1a423c78c59986dad8a3217cb92cc6c00 +Author: Weblate (bot) +Date: Sun Dec 22 02:29:49 2024 +0100 + + translations: propagate en.json key changes (#654) + + * Update translation files + + Updated by "Cleanup translation files" add-on in Weblate. + + Co-authored-by: Hosted Weblate + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ + Translation: TagStudio/Strings + +commit 45b45f5846c0de6654e5383d3472580f22f75b8e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 21 15:01:29 2024 -0800 + + translations: remove unused keys, add missing ones + +commit b3f393e59b413ff6fb87d2b88c198a24a7808ac7 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 21 14:53:56 2024 -0800 + + style(translations): sort en.json keys + +commit f4b30c15ce834f7baf24edbb9b8b4a88e8c9c99f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 21 14:50:47 2024 -0800 + + refactor(translations): fix + normalize translation keys + +commit 8a52bfea693874a6c2ecd62a2ed59a97456000c9 +Author: Weblate (bot) +Date: Sat Dec 21 19:31:30 2024 +0100 + + translations: fix German, add Polish (#650) + + * Translated using Weblate (German) + + Currently translated at 93.6% (133 of 142 strings) + + Translated using Weblate (German) + + Currently translated at 87.3% (124 of 142 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Jann Stute + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + Translation: TagStudio/Strings + + * Translated using Weblate (Polish) + + Currently translated at 95.7% (136 of 142 strings) + + Translated using Weblate (Polish) + + Currently translated at 23.2% (33 of 142 strings) + + Added translation using Weblate (Polish) + + Co-authored-by: Hosted Weblate + Co-authored-by: qronikarz + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Jann Stute + Co-authored-by: qronikarz + +commit 934c98a4d486e36257054022c44b3901eae12596 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Sat Dec 21 01:00:33 2024 +0000 + + fix: enter/return adds top result tag (#651) + + * fix return not adding searched tag + + * add first_tag_id type hint + +commit 36c1c180b3370e349f805e47bce28b3d8638fafb +Author: Travis Abendshien +Date: Fri Dec 20 16:24:04 2024 -0800 + + refactor: consolidate reserved tag values as ints + +commit d6280f7ead359d190c3ac25fedf7cab6885385d6 +Author: Travis Abendshien +Date: Fri Dec 20 16:07:19 2024 -0800 + + style: remove whitespace + +commit 933af1c40559547e2fd9079c6f5060195b8e5ff1 +Author: Travis Abendshien +Date: Fri Dec 20 16:00:44 2024 -0800 + + ui: update remove tag message box text + +commit 2903dd22c45c02498687073d075bb88886de6b62 +Author: Travis Abendshien +Date: Fri Dec 20 15:56:23 2024 -0800 + + fix: tags created from tag database now add aliases + +commit fdfd6490bdf2ac55bcf2040c38092ce86017e27c +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Fri Dec 20 16:22:23 2024 -0700 + + feat: delete and create tags from tag database panel (#569) + + * [feat] can now add a new tag from the tag library panel + + * [feat] can remove tags from the tag library panel + [fix] library panel updates tag list when a new tag is create + + * [test] added test for library->remove_tag + + * [fix] type error + + * removed redundant lambda + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + + * fix: tags with a reserved id could be edited or removed, now they cannot. + + * fix: when a tag is removed or edited the preivew panel will update to reflect the changes + + Co-authored-by: Sean Krueger + + * fix: mypy check + + * fix: aliases and subtags not being removed from DB when tag they reference was removed. + + * feat: added a confirmation message box when removing tags. + + * fix: mypy + + --------- + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + Co-authored-by: Sean Krueger + +commit 8387676d795a8f814f131c5cb27cacc95c0d5979 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Dec 20 14:34:05 2024 -0800 + + feat(ui): show filenames in thumbnail grid (Closes #85) (#633) + + * feat(ui): add filename label under thumbnails + + * refactor(ui): organize menu items + + * feat: make thumbnail filenames toggleable + + * refactor variables, tweak spacing + + * fix(ui): only change cursor on thumb_button + + * revert changes to ../search_library/../ts_library.sqlite + + * fix: don't ever call .setHidden(False) on visible widgets + + * refactor: rename filename toggles to setters + + * fix: remove duplicate open_on_start_action + +commit 24fa76ee30860877057d68f2b6bf7064859ab4b5 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Fri Dec 20 16:03:11 2024 -0600 + + tests(fix): stop updating sqlite db during tests (#648) + + * fix: stop sqlite db from being updated while running tests + + * refactor: small refactor in db checking code + +commit 9e0c4f39b8c120aec32f2539d9e5093e2ec0d7d5 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 14 11:42:17 2024 -0800 + + docs: remove closed pr warning from CONTRIBUTING.md + +commit c33d0203e458e3da5662825e5fe4cc75f8ca3fe2 +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Sat Dec 14 12:40:48 2024 -0700 + + fix: editing tags from preview panel updates database (#641) + + * fix: bug where preview_panel tag was out of date compared to tag in database after edits where made using the tagDatabasePanel + + * fix: changes made in the preview panel are saved to the database + +commit ebc487eac412db696419c143c76684ecf6b52acd +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Dec 12 21:43:13 2024 -0800 + + docs: add refactor warning to CONTRIBUTING.md + +commit dec9f1dd28f8f14e4459a1c57958a22c1cf3bd78 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Dec 11 18:28:09 2024 -0800 + + docs: add additional detail to ffmpeg help + +commit a519c9a737f4bda19dafe9c9f1cf17afe6c00618 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Wed Dec 11 19:04:53 2024 -0600 + + chore: update pytest workflow to 24.04 (#639) + + * fix: try fixing pytest workflow + + * chore: update pytest workflow to 24.04 + + * fix: fix libglx package name + + * fix: try a different package + + * fix: try apt-update first + + * Revert "fix: try apt-update first" + + This reverts commit 34c04f985b30a600328d55b70faa39113c3d0cc9. + + * Reapply "fix: try apt-update first" + + This reverts commit 775bc2634d27801a5a4e80b46dad7c70d5136f10. + +commit 385aaf42d8c0bd791a4b5eaee2bda1a6379fc794 +Author: Sean Krueger +Date: Wed Dec 11 16:00:27 2024 -0800 + + feat: reimplement drag drop files (Port #153) (#528) + + * feat: Drag and drop files in and out of TagStudio (#153) + + * Ability to drop local files in to TagStudio to add to library + + * Added renaming option to drop import + + * Improved readability and switched to pathLib + + * format + + * Apply suggestions from code review + + Co-authored-by: yed podtrzitko + + * Revert Change + + * Update tagstudio/src/qt/modals/drop_import.py + + Co-authored-by: yed podtrzitko + + * Added support for folders + + * formatting + + * Progress bars added + + * Added Ability to Drag out of window + + * f + + * format + + * Ability to drop local files in to TagStudio to add to library + + * Added renaming option to drop import + + * Improved readability and switched to pathLib + + * format + + * Apply suggestions from code review + + Co-authored-by: yed podtrzitko + + * Revert Change + + * Update tagstudio/src/qt/modals/drop_import.py + + Co-authored-by: yed podtrzitko + + * Added support for folders + + * formatting + + * Progress bars added + + * Added Ability to Drag out of window + + * f + + * format + + * format + + * formatting and refactor + + * format again + + * formatting for mypy + + * convert lambda to func for clarity + + * mypy fixes + + * fixed dragout only worked on selected + + * Refactor typo, Add license + + * Reformat QMessageBox + + * Disable drops when no library is open + + Co-authored-by: Sean Krueger + + * Rebased onto SQL migration + + * Updated logic to based on selected grid_idx instead of selected ids + + * Add newly dragged-in files to SQL database + + * Fix buttons being inconsistant across platforms + + * Fix ruff formatting + + * Rename "override" button to "overwrite" + + --------- + + Co-authored-by: yed podtrzitko + Co-authored-by: Travis Abendshien + Co-authored-by: Sean Krueger + + * refactor: Update dialog and simplify drop import logic + + * Handle Qt events for main window in ts_qt.py + + * Replace magic values with enums + + * Match import duplicate file dialog to delete missing entry dialog + + * Remove excessive progess widgets + + * Add docstrings and logging + + * refactor: add function for common ProgressWidget use + + Extracts the create_progress_bar function from drop_import to the + ProgressWidget class. Instead of creating a ProgressWidget, + FunctionIterator, and CustomRunnable every time a thread-safe progress + widget is needed, the from_iterable function in ProgressWidget now + handles all of that. + + --------- + + Co-authored-by: Creepler13 + Co-authored-by: yed podtrzitko + Co-authored-by: Travis Abendshien + +commit a1daf5ab6ac6420566fe3b31ab44e924740980c3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 9 11:51:36 2024 -0800 + + fix: use absolute ffprobe path on macos (Fix #511) (#629) + + * bump pyside version to 6.8.0.1 + + * fix: try for absolute ffprobe path on macos + +commit aaea0b1475206edf093f32191359a5f0aa0d6187 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 9 11:44:51 2024 -0800 + + fix: don't allow blank tag alias values in db (#628) + +commit a535ed12b01ce46f7efc6c5c75e641e0a105ca97 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sat Dec 7 00:43:08 2024 +0100 + + feat: implement query language (#606) + + * add files + + * fix: term was parsing ANDList instead of ORList + + * make mypy happy + + * ruff format + + * add missing todo + + * add more constraint types + + * add parent property to AST + + * add BaseVisitor class + + * make mypy happy + + * add __init__.py + + * Revert "make mypy happy" + + This reverts commit 926d0dd2e79d06203e84e2f83c06c7fe5b33de23. + + * refactoring and fixes + + * rudimentary search field integration + + * fix: check for None properly + + * fix: Entries without Tags are now searchable + + * make mypy happy + + * Revert "fix: Entries without Tags are now searchable" + + This reverts commit 19b40af7480b0c068b81b642b51536a9ec96d030. + + * fix: changed joins to outerjoins and added missing outerjoin + + * use query lang instead of tag_id FIlterState + + * add todos + + * fix: remove uncecessary line that broke search when searching for exact name + + * fix tag search + + * refactoring + + * fix: path now uses GLOB operator for proper GLOBs + + * refactoring: remove FilterState.id and implement Library.get_entry_full as replacement + + * fix: use default value notation instead of if None statement in __post_init__ + + * remove obsolete Search Mode UI and related code + + * ruff fixes + + * remove obsolete tests + + * fix: item_thumb didn't query entries correctly + + * fix: search_library now correctly returns the number of *unique* entries + + * make mypy happy + + * implement NOT + + * remove obsolete filename search + + * remove summary as it is not applicable anymore + + * finish refactoring of FilterState + + * implement special:untagged + + * fix: make mypy happy + + * Revert changes to search_tags in favor of changes from #604 + + * fix: also port test changes + + * fix: remove unneccessary import + + * fix: remove unused dataclass + + * fix: AND now works correctly with tags + + * simplify structure of parsed AST + + * add performance logging + + * perf: Improve performance of search by reducing number of required joins from 4 to 1 + + * perf: double NOT is now optimized out of the AST + + * fix: bug where pages would show less than the configured number of entries + + * Revert "add performance logging" + + This reverts commit c3c7d7546d285c6dad51872cbf80bc6070262570. + + * fix: tag_id search was broken + + * somewhat adapt the existing autocompletion to this PR + + * perf: Use Relational Division Queries to improve Query Execution Time + + * fix: raise Exception so as to not fail silently + + * fix: Parser bug broke parentheses + + * little bit of clean up + + * remove unnecessary comment + + * add library for testing search + + * feat: add basic tests + + * fix: and queries containing just one tag were broken + + * chore: remove debug code + + * feat: more tests + + * refactor: more consistent name for variable + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * fix: ruff check complaint over double import + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 056e6004665be3932b4d50cf8a6ff62d0fbb2f98 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Dec 5 01:30:18 2024 -0800 + + bump numpy to version 2.1.0 + +commit 3196678666b8541270872f566c2bb3da0dac4bcf +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Thu Dec 5 09:43:39 2024 +0100 + + fix: multiple macro errors (#612) + + * port fixes from json branch + + * fix: correctly pass grid_idx in autofill macro + + * fix(BUILD_URL macro): only add url if url was successfully built + + * fix(AUTOFILL macro): error when trying to add tag with name that already exists + + * fix: test was wrongly renaming sidecar file + +commit bea691381476f6b53d43852e180f92a1445c3588 +Author: Дмитрий <88423841+Roc25@users.noreply.github.com> +Date: Thu Dec 5 08:53:44 2024 +0300 + + fix: add check to see if library is loaded in filter_items (#547) + + * Added a check to see if the library is loaded in filter_items + + * Returned check to see if there is an engine + + --------- + + Co-authored-by: gred + +commit b72a2f233141db4db6aa6be8796b626ebd3f0756 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Dec 4 11:23:42 2024 -0800 + + add ".DS_Store" to GLOBAL_IGNORE_SET + +commit 4c33901a471e39e9f4b41faf8b6b3a55a7989e76 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Dec 4 11:16:47 2024 -0800 + + chore: format with ruff + +commit 7d7c8b234838b4b740cedd485a0d1f7560a74e77 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Dec 3 13:04:02 2024 -0800 + + docs: adjust formatting + +commit 47babdd5b516927fd16cb6d35474b2a9f12c2162 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Dec 3 12:59:27 2024 -0800 + + docs: update README.md and index.md + +commit 461d1030269d5ae53a02d56db2b012f2988da5b3 +Author: Weblate (bot) +Date: Tue Dec 3 19:48:23 2024 +0100 + + translations: add Filipino translation (#584) + + Currently translated at 75.3% (107 of 142 strings) + + Translated using Weblate (Filipino) + + Currently translated at 50.0% (71 of 142 strings) + + Added translation using Weblate (Filipino) + + + + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fil/ + Translation: TagStudio/Strings + + Co-authored-by: searinminecraft <114207889+searinminecraft@users.noreply.github.com> + +commit a630b09b4f5f47604f8fb5e19fdec4f5ada16391 +Author: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> +Date: Wed Dec 4 00:09:44 2024 +0530 + + fix: remove/rework windows path tests (#625) + + * fix: tagstudio/tests/test_driver.py::test_evaluate_path_last_lib_present always fails in windows. + + * refactor: removal tagstudio/tests/test_library.py::test_save_windows_path + + Fixes #616 + +commit 8ba23c5d54499309bf5693be6df9e3be353ff74d +Author: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> +Date: Tue Dec 3 01:41:39 2024 +0530 + + fix: clear all setting values when opening a library (#622) + +commit e4d8f995bb9261b9b48d9898572ae40bfea5fff1 +Author: Travis Abendshien +Date: Sun Dec 1 13:33:39 2024 -0800 + + docs: remove partial checkboxes + +commit 691c63e65966c438d5b84e3bfa760591d60032fd +Author: Travis Abendshien +Date: Sun Dec 1 13:24:18 2024 -0800 + + docs: update v9.5 roadmap + +commit 1fcd31b62f2ec2d617cdf1a77a3fc16a37335ec2 +Author: Travis Abendshien +Date: Sun Dec 1 11:56:10 2024 -0800 + + chore: bump ruff to 0.8.1, pillow-jxl-plugin to 1.3.0 + +commit 1974ff169c4ed98f0ae4eef1708de80ef693ada1 +Author: Travis Abendshien +Date: Sat Nov 30 15:11:17 2024 -0800 + + refactor: remove 3.12 nested f-string + +commit dffa3635b002b1bbef5d3c209bf5099aac6f82e3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sat Nov 30 22:03:57 2024 +0100 + + fix: remove qt disconnect warning (#613) + + * fix: cannot disconnect from None Warning + + * fix: cannot disconnect from None Warning mypy compliant + +commit ef68603322ea2c237e302adaf02aa82a87ddf153 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Nov 30 13:00:08 2024 -0800 + + feat(parity): migrate json libraries to sqlite (#604) + + * feat(ui): add PagedPanel widget + + * feat(ui): add MigrationModal widget + + * feat: add basic json to sql conversion + + * fix: chose `poolclass` based on file or memory db + + * feat: migrate tag colors from json to sql + + * feat: migrate entry fields from json to sql + + - fix: tag name column no longer has unique constraint + - fix: tags are referenced by id in db queries + - fix: tag_search_panel no longer queries db on initialization; does not regress to empty search window when shown + - fix: tag name search no longer uses library grid FilterState object + - fix: tag name search now respects tag limit + + * set default `is_new` case + + * fix: limit correct tag query + + * feat: migrate tag aliases and subtags from json to sql + + * add migration timer + + * fix(tests): fix broken tests + + * rename methods, add docstrings + + * revert tag id search, split tag name search + + * fix: use correct type in sidecar macro + + * tests: add json migration tests + + * fix: drop leading dot from json extensions + + * add special characters to json db test + + * tests: add file path and entry field parity checks + + * fix(ui): tag manager no longer starts empty + + * fix: read old windows paths as posix + + Addresses #298 + + * tests: add posix + windows paths to json library + + * tests: add subtag, alias, and shorthand parity tests + + * tests: ensure no none values in parity checks + + * tests: add tag color test, use tag id in tag tests + + * tests: fix and optimize tests + + * tests: add discrepancy tracker + + * refactor: reduce duplicate UI code + + * fix: load non-sequential entry ids + + * fix(ui): sort tags in the preview panel + + * tests(fix): prioritize `None` check over equality + + * fix(tests): fix multi "same tag field type" tests + + * ui: increase height of migration modal + + * feat: add progress bar to migration ui + + * fix(ui): sql values update earlier + + * refactor: use `get_color_from_str` in test + + * refactor: migrate tags before aliases and subtags + + * remove unused assertion + + * refactor: use `json_migration_req` flag + +commit b7e652ad8d8055cd49bf37138413568d058e8a7b +Author: Travis Abendshien +Date: Fri Nov 29 15:40:04 2024 -0800 + + docs: remove `db_migration` + +commit bc366fc34d1d8276cb31151986292ad618393716 +Author: csponge +Date: Fri Nov 29 17:47:27 2024 -0500 + + feat: audio playback (#576) + + * feat: Audio Playback + + Add the ability to play audio files. + + Add a slider to seek through an audio file. + + Add play/pause and mute/unmute buttons for audio files. + + Note: This is a continuation of a mistakenly closed PR: + Ref: https://github.com/TagStudioDev/TagStudio/pull/529 + + While redoing the changes, I made a couple of improvements. + When the end of the track is reached, the pause button will + swap to the play button and allow the track to be replayed. + + Here is the original feature request: + Ref: https://github.com/TagStudioDev/TagStudio/issues/450 + + * fix: prevent autoplay on new track when paused + + * refactor: Add MediaPlayer base class. + + Added a MediaPlayer base class per some suggestions + in the PR comments. Hopefully this reduces duplicate code + between the audio/video player in the future. + + * refactor: add controls to base MediaPlayer class + + Move media controls from the AudioPlayer widget + to the MediaPlayer base class. This removes the need + for a separate AudioPlayer class, and allows the + video player to reuse the media controls. + + * fix: position_label update with slider + + Update the position_label when the slider is moving. + + * fix: replace platform dependent time formatting + + Replace the use of `-` in the time format since this + is not availabile on all platforms. + + Update initial `position_label` value to '0:00'. + +commit 1fb1a80d53bc910ba9ea7311e98d1c847f2f399f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Nov 29 12:35:18 2024 -0800 + + fix: ui/ux parity fixes for thumbnails and files (#608) + + * fix(ui): display loading icon before rendered thumb + + * fix: skip out of range thumbs + + * fix: optimize library refreshing + + * fix(ui): tag colors show correct names + + * fix(ui): ensure inner field containers are deleted + + * fix(ui): don't show default preview label text + + * fix: catch all missing file thumbs; clean up logs + +commit d152cd75d8058341eca61f6940d6c7ccf4a5607c +Author: Kiril Bourakov <86131959+KirilBourakov@users.noreply.github.com> +Date: Fri Nov 29 13:34:28 2024 -0400 + + fix: "open in explorer" opens correct folder (#603) + + * replaced as_posix with str + + * replaced addition with f string + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 20f93719d79dfb4aadf7736164ece77e34aa2857 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Thu Nov 28 22:19:08 2024 +0100 + + fix(ci): surpress errant mypy warnings (#609) + + * fix: mypy error in ts_qt + + * fix: mypy error in file_opener due to conflicting types + + * fix: remove unnecessary type ignores + + * refix type ignore comments + + * partially revert "refix type ignore comments" due to being implemented in #608 + +commit 262893a1bbc16d0f254032adf22b77f9dcc95e67 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Nov 27 21:25:03 2024 -0800 + + add `.DS_Store` to `.gitignore` + +commit 7b2636e4a7c32295183b33ca81b70e9a6a59e9f8 +Author: Travis Abendshien +Date: Sun Nov 24 10:29:29 2024 -0800 + + add syncthing to `.gitignore` + +commit 0d166e63c09a4ad7b6e8a3939c3573e9c08ac893 +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Thu Nov 21 13:29:35 2024 -0700 + + feat(parity): backend for aliases and parent tags (#596) + + * backend for aliases and parents + + * resolve merge conflics + +commit f6a1ca67835a8101e846619e6ea1ae40d227c425 +Author: Travis Abendshien +Date: Tue Nov 19 17:54:44 2024 -0800 + + docs: update contribution guidelines + +commit 7ae2bc24d6ab82586806f2dde271668723c0fc9d +Author: Coolio +Date: Tue Nov 19 16:14:34 2024 -0600 + + feat(ui): pre-select default tag name in `BuildTagPanel` (#592) + + This changes the behavior of the tag name inside `BuildTagPanel` for newly created tags: + * The default "New Tag" name is now automatically highlighted + * Blank tag names (including spaces) are no longer allowed to be created + * NOTE: This does not change the tag name column rules in the db, nor does it necessarily need to + + *** + + * [Feature Request]: Make the create tag panel have empty tag name field + + * [Feature Request]: Make the create tag panel have empty tag name field + + * Revert "[Feature Request]: Make the create tag panel have empty tag name field" + + This reverts commit f9c7f5d8892fb70a1618f05554234851a27c7eaa. + + * [Feature Request]: Make the create tag panel have empty tag name field + + * Revert "[Feature Request]: Make the create tag panel have empty tag name field" + + This reverts commit e5df3e0f15a1b97c49390ee6190b906958eddbb1. + + * Update .gitignore + + * Updated as per disscussion in issue #591 (DRAFT + + * Updated as per disscussion in issue #591 (DRAFT + + * Added formatting + + * Updated code as per discussion is #592 + + * Updated code as per discussion is #592 (again) + + * Fixed spacing + + * Add placeholder text to name field. + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * Use universal red color for red border. + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * fix: add `src.core.palette` imports + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 2977e07223de4a58fe5c6964bb3ee3660357cfa0 +Author: Дмитрий <88423841+Roc25@users.noreply.github.com> +Date: Tue Nov 19 02:35:00 2024 +0300 + + ui: select thumb on press instead of click (#556) + + Co-authored-by: gred + +commit 774c886288b1531edd55310468459a29031a66bc +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Mon Nov 18 16:19:28 2024 -0700 + + fix(ui): update ui when removing fields (#560) + +commit bec513f558437278f6dc7c0c083876b0a7736d07 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Mon Nov 18 12:45:51 2024 -0600 + + feat: add autocomplete for search engine (#586) + + * feat: add autocomplete for mediatype, filetype, path, tag, and tag_id searches + + * fix: address issues brought up in review + + * fix: fix mypy issue + + * fix: fix mypy issues for real this time + +commit 9078feec0cef9e157b1c0a4808be2fe67f930fc8 +Author: Justine Akehurst <31110637+jakehurst@users.noreply.github.com> +Date: Sun Nov 17 22:03:51 2024 -0800 + + fix(docs): fix link to feature roadmap page (#594) + +commit f9ef76c2e132067b8030968d0f1291d333ed5908 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Nov 17 16:35:30 2024 -0800 + + add `.idea/` to `.gitignore` + +commit 139836d9c871aa98a606d30b8cbd4380b43ad249 +Author: yed +Date: Fri Nov 15 10:55:16 2024 +0700 + + fix: stop thumbnail jobs when closing library (#583) + +commit fd0df94830c3550b63625259b0c57f7bc4022280 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Thu Nov 14 16:02:34 2024 -0600 + + feat: make path search use globs (#582) + + * feat: make path search use globs + + * fix: specify types in path search + + * chore: format with ruff + +commit 97e0e80f6f48adef5be74d73f4810d3b0db6b335 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Thu Nov 14 15:52:00 2024 -0600 + + feat: add filetype and mediatype searches (#575) + + * feat: add filetype and mediatype searches + + * style: fix some style issues + + * fix: parametrize mediatype and filetype tests + + * style: fix remaining unordered import + + * style: fix pytest parametrize calls + + * feat: add human-readable names to mediacategories + + * feat: use human-readable names in mediacategory: search + + * feat: add human-readable name to open document + + * fix: fix returning multiple filetypes issue and add regression test + +commit fb7ad928af8bcea338dc57878d6ce024429b11e6 +Author: Travis Abendshien +Date: Mon Nov 11 11:13:44 2024 -0800 + + docs(roadmap): add translations to v9.5 + +commit d75729b578ee6f6c9b8f3826fd8d252477e7f6ef +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Fri Nov 8 13:07:51 2024 -0600 + + docs: update CONTRIBUTING.md ruff instructions (#581) + + * docs: add warning about ruff on linux + + * Update CONTRIBUTING.md + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit f21d49df7fd2cf569b0aed7c3cb8ce6196a44ba6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Nov 7 15:12:57 2024 -0800 + + feat: add JXL thumbnail and animated APNG + WEBP support (port #344 and partially port #357) (#549) + + * feat: add JXL image thumbnail support + + Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> + + * feat: add animated previews for webp and apng + + Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> + + --------- + + Co-authored-by: BPplays <58504799+bpplays@users.noreply.github.com> + +commit 96026b66bc7d32d559e8ced4b6f058e56db005c7 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Nov 7 15:00:51 2024 -0800 + + feat: add OpenDocument thumbnail support (port #366) (#545) + + * feat: add OpenDocument thumbnail support + + Co-Authored-By: Josh Beatty + + * tests: add test comparing odt to png snapshot + + * tests: add test comparing ods to png snapshot + + * test: combine OpenDocument tests + + * test: combine compatible preview tests + + * test: combine preview render tests + + * fix: update test snapshots + + --------- + + Co-authored-by: Josh Beatty + +commit c7171c54554b529c40521e1444fdcd2184c4e015 +Author: Travis Abendshien +Date: Thu Nov 7 13:31:13 2024 -0800 + + chore: update resources_rc.py + +commit 5ee118c1fbc16fe85eba7e86e02a08dfaaad0867 +Author: Weblate (bot) +Date: Thu Nov 7 21:01:43 2024 +0100 + + translations: update from Hosted Weblate (#579) + + * Added translation using Weblate (Russian) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Added translation using Weblate (Portuguese) + + * Added translation using Weblate (Portuguese (Brazil)) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Added translation using Weblate (Tamil) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 51.4% (73 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Added translation using Weblate (Spanish) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 88.0% (125 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 52.1% (74 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Norwegian Bokmål) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 55.6% (79 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Added translation using Weblate (French) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 68.3% (97 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 40.1% (57 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Danish) + + * Added translation using Weblate (German) + + * Translated using Weblate (Danish) + + Currently translated at 1.4% (2 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Added translation using Weblate (Cantonese (Traditional Han script)) + + * Translated using Weblate (Tamil) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (German) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Hungarian) + + * Translated using Weblate (German) + + Currently translated at 14.0% (20 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (German) + + Currently translated at 14.7% (21 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Swedish) + + * Translated using Weblate (German) + + Currently translated at 71.8% (102 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Added translation using Weblate (Toki Pona) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 83.0% (118 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Added translation using Weblate (Italian) + + * Translated using Weblate (French) + + Currently translated at 64.0% (91 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Added translation using Weblate (Turkish) + + * Translated using Weblate (Turkish) + + Currently translated at 88.7% (126 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Portuguese) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/ + + * Translated using Weblate (Portuguese) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 67.6% (96 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 67.6% (96 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Cantonese (Traditional Han script)) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/yue_Hant/ + + * Translated using Weblate (Cantonese (Traditional Han script)) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/yue_Hant/ + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Update translation files + + Updated by "Remove blank strings" add-on in Weblate. + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ + + --------- + + Co-authored-by: Artyom Ognev + Co-authored-by: Space_Fox + Co-authored-by: Lobo Metalúrgico + Co-authored-by: Vasi + Co-authored-by: Nginearing + Co-authored-by: gallegonovato + Co-authored-by: Allan Nordhøy + Co-authored-by: Bamowen + Co-authored-by: Ryussei + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Zoinx + Co-authored-by: gold + Co-authored-by: William de Castro + Co-authored-by: Jann Stute + Co-authored-by: Nyghl + Co-authored-by: Obscaeris + +commit fc4e124cd890eb9acda5f6a948f816afdb945ec8 +Merge: 15bf354 0358f51 +Author: Travis Abendshien +Date: Tue Nov 5 10:25:30 2024 -0800 + + Merge branch 'main' of github.com:TagStudioDev/TagStudio + +commit 15bf354c88d5251f97a3c7f3051f84afcde04f53 +Author: Travis Abendshien +Date: Tue Nov 5 10:25:27 2024 -0800 + + docs(roadmap): add drag and drop + +commit 10abd18def84395df0ddd1378fa82112cc669585 +Author: Travis Abendshien +Date: Tue Nov 5 10:24:44 2024 -0800 + + docs(roadmap): add thumbnail overrides + +commit 73daa39bf19b4588b1043e89a68b3cac51bee043 +Author: Travis Abendshien +Date: Tue Nov 5 10:20:28 2024 -0800 + + docs(roadmap): clarify filetype search + +commit 0358f51f9998570887167dbf10f791e3a772cc1f +Author: Дмитрий <88423841+Roc25@users.noreply.github.com> +Date: Mon Nov 4 23:28:44 2024 +0300 + + feat: add `IMAGE_RASTER_TYPES` (Fix #550) (#551) + + * fix resolution info + + * Fix for Raw and Vector Image types + + * Small refactor + + * Create IMAGE_RASTER_TYPES and remove is_image_ext_raster + + * Change if statment only for raster + + * Rename _IMAGE_SET to _IMAGE_RASTER_SET + + --------- + + Co-authored-by: gred + +commit e02eb39ae2d2dce6e4c7e4cbe602639341646554 +Author: Hissymaster <144076671+Hissymaster@users.noreply.github.com> +Date: Tue Oct 29 14:46:27 2024 +1100 + + docs: change reference to `planned_features.md` to `roadmap.md` (#564) + + Co-authored-by: Hissymaster + +commit 6e5a1a0e52fd40e0defdc95dbab501885bcb0550 +Author: Travis Abendshien +Date: Mon Oct 28 14:38:34 2024 -0700 + + docs: add issues numbers to roadmap + +commit 237638024507d31d98a054fa46c2e62ab73dff12 +Author: Travis Abendshien +Date: Mon Oct 28 13:02:05 2024 -0700 + + docs: remove `planned_features.md` + +commit 04149f6454de3639823be52e0e56438a5a9d63d5 +Author: Travis Abendshien +Date: Mon Oct 28 13:01:13 2024 -0700 + + docs: add feature roadmap + +commit d3c3e634b93353750c9fc810af9973e64e21de71 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Oct 17 15:15:51 2024 -0700 + + feat: add ePub thumbnail support (port #387) (#539) + + * feat: add ePub thumbnail support + + Co-Authored-By: Jorge Rui Da Silva Barrios <29062316+jorgerui@users.noreply.github.com> + + * tests: compare epub cover against png snapshot + + Co-Authored-By: yed + + * test: optimize epub test file + + --------- + + Co-authored-by: Jorge Rui Da Silva Barrios <29062316+jorgerui@users.noreply.github.com> + Co-authored-by: yed + +commit 3d7629bc731286d2721f19cc60bb8bb42e6facf5 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Oct 14 16:34:49 2024 -0700 + + feat: add pdf thumbnail support (port #378) (#543) + + * feat: add pdf thumbnail support + + Co-Authored-By: Heiholf <71659566+heiholf@users.noreply.github.com> + + * fix: remove redef + + * tests: add test comparing pdf to png snapshot + + Co-Authored-By: yed + + * fix: fix info in docstrings + + * fix: remove sample png generation + + * fix: change the pdf snapshot to use a black square + + * chore: fix whitespace + + --------- + + Co-authored-by: Heiholf <71659566+heiholf@users.noreply.github.com> + Co-authored-by: yed + +commit 9255a86ad1d0800e663fb984065dd7e3362b2916 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Oct 14 13:30:46 2024 -0700 + + feat: add svg thumbnail support (port #442) (#540) + + * feat: add svg thumbnail support + + Co-Authored-By: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> + + * flip `svg.isValid()` logic check + + * tests: add test comparing svg to png snapshot + + Co-Authored-By: yed + + --------- + + Co-authored-by: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> + Co-authored-by: yed + +commit 5b85462cfa7b8e29218ad57de4024c176f598646 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Oct 12 23:59:08 2024 -0700 + + ci: pin pytest ubuntu version to 22..04 (#544) + +commit abeb0c1ce3f8d89ef8736a7c0ef1df10f1c615d2 +Author: xarvex +Date: Fri Oct 11 17:10:17 2024 -0500 + + fix(ci): complete 7c253226d529f0a799c438aca0965723e4e29544 + +commit 7c253226d529f0a799c438aca0965723e4e29544 +Author: xarvex +Date: Fri Oct 11 17:01:49 2024 -0500 + + fix(ci): replace obselete package + +commit 68c166d8d34c3935324b485b92aed5803589b173 +Author: Travis Abendshien +Date: Thu Oct 10 12:40:09 2024 -0700 + + Bump version to v9.5.0 Experimental + +commit c348c763f85f310d88ed2af2575bbd2121aa96ba +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Tue Oct 8 04:04:22 2024 +0200 + + fix: enable mypy to run from project directory (#520) + +commit 7574ad38465dff5e00ac7accec8dbfd9b86d058f +Author: yed +Date: Tue Oct 8 08:56:02 2024 +0700 + + fix: don't check db version with new library (#536) + +commit 7dd0f3dabbf597c293286d67252f0684a7d9a649 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Oct 7 14:14:01 2024 -0700 + + feat: port thumbnail (#390) and related features to v9.5 (#522) + + * feat: port v9.4 thumbnail + related feats to v9.5 + + Ports the following thumbnail and related PRs from the `Alpha-v9.4` branch to `main` (v9.5+): + - (#273) Blender thumbnail support + - (#307) Add font thumbnail preview support + - (#331) refactor: move type constants to new media classes + - (#390) feat(ui): expanded thumbnail and preview features + - (#370) ui: "open in explorer" action follows os name + - (#373) feat(ui): preview support for source engine files + - (#274) Refactor video_player.py (Fix #270) + - (#430) feat(ui): show file creation/modified dates + restyle path label + - (#471) fix(ui): use default audio icon if ffmpeg is absent + - (#472) fix(ui): use birthtime for creation time on mac & win + + Co-Authored-By: Ethnogeny <111099761+050011-code@users.noreply.github.com> + Co-Authored-By: Theasacraft <91694323+Thesacraft@users.noreply.github.com> + Co-Authored-By: SupKittyMeow <77246128+supkittymeow@users.noreply.github.com> + Co-Authored-By: EJ Stinson <93455158+favroitegamers@users.noreply.github.com> + Co-Authored-By: Sean Krueger <71362472+seakrueger@users.noreply.github.com> + + * remove vscode exceptions from `.gitignore` + + * delete .vscode directory + + * style: format for `ruff check` + + * fix(tests): update `test_update_widgets_not_selected` test + + * remove Send2Trash dependency + + * refactor: use dataclass for MediaCateogry + + * refactor: use enums for UI colors + + * docs: add file docstring for silent_Popen + + * refactor: replace logger with structlog + + * use early return inside `ResourceManager.get()` + + * add `is_ext_in_category()` method to `MediaCategory` + + Add method to check if an extension is a member of a given MediaCategory. + + * style: fix docstring style, missing type hints, rename `afm` + + * fix: use structlog vars in logging + + * refactor: move platform-dependent strings to PlatformStrings + + * refactor: move `parents[2]` path to variable + + * fix: undo logger regressions + + --------- + + Co-authored-by: Ethnogeny <111099761+050011-code@users.noreply.github.com> + Co-authored-by: Theasacraft <91694323+Thesacraft@users.noreply.github.com> + Co-authored-by: SupKittyMeow <77246128+supkittymeow@users.noreply.github.com> + Co-authored-by: EJ Stinson <93455158+favroitegamers@users.noreply.github.com> + Co-authored-by: Sean Krueger <71362472+seakrueger@users.noreply.github.com> + +commit e0752828dbb728bcc81dd2c58a63a2d15ec80791 +Author: yed +Date: Tue Oct 8 04:09:57 2024 +0700 + + feat: store `Entry` suffix separately (#503) + + * feat: save entry suffix separately + + * change LibraryPrefs to allow identical values, add test + +commit 1c7aaf0a16c272d777899679b3c2822f4bab9798 +Author: Travis Abendshien +Date: Wed Oct 2 14:48:01 2024 -0700 + + Revert "translations: update from Hosted Weblate (#530)" + + This reverts commit fe207062d5344f3159434880ac85acb816f01068. + +commit fe207062d5344f3159434880ac85acb816f01068 +Author: Weblate (bot) +Date: Wed Oct 2 02:12:07 2024 +0200 + + translations: update from Hosted Weblate (#530) + + * Added translation using Weblate (Russian) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Added translation using Weblate (Portuguese) + + * Added translation using Weblate (Portuguese (Brazil)) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Added translation using Weblate (Tamil) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 51.4% (73 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Added translation using Weblate (Spanish) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 88.0% (125 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 52.1% (74 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Norwegian Bokmål) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 55.6% (79 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Added translation using Weblate (French) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 68.3% (97 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 40.1% (57 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Danish) + + * Added translation using Weblate (German) + + * Translated using Weblate (Danish) + + Currently translated at 1.4% (2 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Added translation using Weblate (Cantonese (Traditional Han script)) + + * Translated using Weblate (Tamil) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (German) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Hungarian) + + * Translated using Weblate (German) + + Currently translated at 14.0% (20 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (German) + + Currently translated at 14.7% (21 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Swedish) + + * Translated using Weblate (German) + + Currently translated at 71.8% (102 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Added translation using Weblate (Toki Pona) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 83.0% (118 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Added translation using Weblate (Italian) + + * Translated using Weblate (French) + + Currently translated at 64.0% (91 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Added translation using Weblate (Turkish) + + * Translated using Weblate (Turkish) + + Currently translated at 88.7% (126 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + --------- + + Co-authored-by: Artyom Ognev + Co-authored-by: Space_Fox + Co-authored-by: Lobo Metalúrgico + Co-authored-by: Vasi + Co-authored-by: Nginearing + Co-authored-by: gallegonovato + Co-authored-by: Allan Nordhøy + Co-authored-by: Bamowen + Co-authored-by: Ryussei + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Zoinx + Co-authored-by: gold + Co-authored-by: William de Castro + Co-authored-by: Jann Stute + Co-authored-by: Nyghl + Co-authored-by: Obscaeris + +commit 02ac69978d2665e4010c45356fed6d27eadba8d8 +Author: Travis Abendshien +Date: Tue Oct 1 17:07:01 2024 -0700 + + Revert "translations: update from Hosted Weblate (#526)" + + This reverts commit c37c4a95a700920272f00a859c03ef154ecf268e. + +commit c37c4a95a700920272f00a859c03ef154ecf268e +Author: Weblate (bot) +Date: Sat Sep 28 00:21:51 2024 +0200 + + translations: update from Hosted Weblate (#526) + + * Added translation using Weblate (Russian) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Added translation using Weblate (Portuguese) + + * Added translation using Weblate (Portuguese (Brazil)) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Added translation using Weblate (Tamil) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 51.4% (73 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Added translation using Weblate (Spanish) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 88.0% (125 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 52.1% (74 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Norwegian Bokmål) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 55.6% (79 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Added translation using Weblate (French) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 68.3% (97 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 40.1% (57 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Danish) + + * Added translation using Weblate (German) + + * Translated using Weblate (Danish) + + Currently translated at 1.4% (2 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Added translation using Weblate (Cantonese (Traditional Han script)) + + * Translated using Weblate (Tamil) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (German) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Hungarian) + + * Translated using Weblate (German) + + Currently translated at 14.0% (20 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (German) + + Currently translated at 14.7% (21 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Swedish) + + * Translated using Weblate (German) + + Currently translated at 71.8% (102 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Added translation using Weblate (Toki Pona) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 83.0% (118 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Added translation using Weblate (Italian) + + * Translated using Weblate (French) + + Currently translated at 64.0% (91 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Added translation using Weblate (Turkish) + + * Translated using Weblate (Turkish) + + Currently translated at 88.7% (126 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * fix: remove unused strings and sort lists + + * chore: update .git-blame-ignore-revs + + --------- + + Co-authored-by: Artyom Ognev + Co-authored-by: Space_Fox + Co-authored-by: Lobo Metalúrgico + Co-authored-by: Vasi + Co-authored-by: Nginearing + Co-authored-by: gallegonovato + Co-authored-by: Allan Nordhøy + Co-authored-by: Bamowen + Co-authored-by: Ryussei + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Zoinx + Co-authored-by: gold + Co-authored-by: William de Castro + Co-authored-by: Jann Stute + Co-authored-by: Nyghl + Co-authored-by: Travis Abendshien + +commit 49d071cf2b2955c3a5dfb96e7df0661d9cac0b44 +Author: Travis Abendshien +Date: Sun Sep 22 20:27:40 2024 -0700 + + docs: add weblate link to readme + +commit 4cd70d2c4fe7099b2fac509fbd1be1ebe5b6fedb +Author: Bamowen <12665915+Bamowen@users.noreply.github.com> +Date: Mon Sep 23 05:18:34 2024 +0200 + + add string tokens for en.json (#507) + + * 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 + +commit 073d51734b0812beccf148a85d181539c97c9915 +Author: FB100 <57065398+FB100@users.noreply.github.com> +Date: Sat Sep 14 00:26:05 2024 +0000 + + fix: correct typo in `test_driver.py` comment (#496) + +commit e51da278faaa6836ff930f9118fa0e49c5bbf7f6 +Author: Travis Abendshien +Date: Fri Sep 13 00:30:48 2024 -0700 + + squash `.git-blame-ignore.revs` + +commit b6e216760557c5507b12f210e1e48c531f49ffa3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Sep 13 00:28:00 2024 -0700 + + ci(ruff)!: update ruff linter config, refactor to comply (#499) + + * ci: update ruff linter config + + - Set line length to 100 + - Enforce Google-style docstrings + - Lint docstrings and imports + + * ci(ruff): exclude missing docstring warnings + + * ci(ruff): exclude docstring checks from tests dir + + * fix(ruff): change top level linter setting + + Fix Ruff warning: `warning: The top-level linter settings are deprecated in favour of their counterparts in the `lint` section. Please update the following options in `pyproject.toml`: + - 'per-file-ignores' -> 'lint.per-file-ignores'`. + + * chore: format with ruff + + * add `.git-blame-ignore-revs` + + * ci(ruff): add E402 and F541 checks + + * ci(ruff): add FBT003 check (#500) + + * ci(ruff): add T20 check + + * ci(ruff)!: add N check, refactor method names + + * ci(ruff): add E501 check, refactor strings + + Much commented-out code is removed in this commit. + + * update `.git-blame-ignore.revs` + + --------- + + Co-authored-by: yed + +commit c15963868ef8a818b5c2be869f6def7426d59d4b +Author: yed +Date: Fri Sep 13 07:34:27 2024 +0700 + + feat: make search results more ergonomic (#498) + +commit a8fdae8ebcbb834c71fb2fe8de160b6b0ea7290f +Author: Travis Abendshien +Date: Thu Sep 12 15:58:08 2024 -0700 + + docs: refer to conventional commits in CONTRIBUTING.md + + Co-Authored-By: Xarvex <60973030+xarvex@users.noreply.github.com> + +commit 2f2f763a29a99c4cf8d484e13e2d1e73c2b7a602 +Author: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> +Date: Thu Sep 12 23:02:56 2024 +0100 + + fix(search): remove wildcard requirement for tags (#481) + + * Fix tag search to not require wildcards + + * Add partial tag check to test_tag_search + + * chore: format with ruff + + --------- + + Co-authored-by: Tyrannicodin + Co-authored-by: Travis Abendshien + +commit 4942d1633cd24a6c04f0699de9546c3781ea22f5 +Author: yed +Date: Fri Sep 13 04:54:20 2024 +0700 + + refactor: cleanup the `refresh_dir` code, update tests (#494) + + * feat: take Ignore List into consideration when refreshing directory + + * undo the extension check in refresh_dir + +commit af642a7d29a3fe4dd855c618dec31766dd5832c9 +Author: yed +Date: Tue Sep 10 15:31:33 2024 +0700 + + fix: prevent error on closing library (#484) + +commit 2e8efa288d96a5f444e634e65602226d17268e19 +Author: Sean Krueger +Date: Mon Sep 9 11:34:55 2024 -0700 + + fix(flake): add missing x11 dependency (#478) + +commit fb949b82b7e3ed76a70446bd5cf7d2f18c940266 +Author: Travis Abendshien +Date: Sun Sep 8 22:36:03 2024 -0700 + + Revert "ci: add `README.md` to `publish_docs` workflow" + + This reverts commit 98f4246ff42ea0d4e0d28eccf2e4dfda0cbc5e84. + +commit 98f4246ff42ea0d4e0d28eccf2e4dfda0cbc5e84 +Author: Travis Abendshien +Date: Sun Sep 8 22:19:21 2024 -0700 + + ci: add `README.md` to `publish_docs` workflow + +commit d75d3444397e0883bb1213ac6d3dc84992c473b9 +Author: Travis Abendshien +Date: Sun Sep 8 22:13:03 2024 -0700 + + fix(docs): use valid note callout + +commit aeb7972206ddfda1df8d2cc2ac2ccf0a5528261e +Author: Travis Abendshien +Date: Sun Sep 8 22:08:45 2024 -0700 + + docs: add SQL warning to CONTRIBUTING.md + +commit 693a7bc160cfdbd88d5b1ae50d99aa7994cfc1ba +Author: Travis Abendshien +Date: Sun Sep 8 22:08:37 2024 -0700 + + docs: update top README warnings + +commit e5e7b8afc62c1a958c172b35819caa26995f2060 +Author: yed +Date: Mon Sep 9 12:06:01 2024 +0700 + + refactor!: use SQLite and SQLAlchemy for database backend (#332) + + * 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 + +commit 67f7e4dcf94e16447a750287e437b757bc933d9d +Author: Sean Krueger +Date: Sun Sep 8 11:11:29 2024 -0700 + + fix(docs): use correct formatting on FFmpeg help page (#475) + + * fix: Add spacing between list elements + + * fix: Add title and fixup headers + +commit 99d32357741162b3fc445b54625c5046d8565655 +Author: Sean Krueger +Date: Sun Sep 8 10:29:00 2024 -0700 + + docs: add ffmpeg installation guide (#473) + + * docs: Add ffmpeg installation guide + + * docs: Add discord invite link + + * grammar + + * spelling + +commit 60cad202da77f1e2bd88c8ad0467052930341585 +Author: Bamowen <12665915+Bamowen@users.noreply.github.com> +Date: Sun Sep 8 19:28:13 2024 +0200 + + docs: add discord server link in CONTRIBUTING.md (#474) + +commit 9b5c26a61edab144863ebc403767a410478cdb6f +Author: Knaughty <77908661+Kn4ughty@users.noreply.github.com> +Date: Sun Sep 8 13:34:11 2024 +1000 + + fix(docs): correct grammar mistake in CONTRIBUTING.md. (#452) + + Removed unnecessary with in "- Lint code *with* by [doing x]" + +commit f472d22e10ea6a700c0168a634aeb8c4ac64c9ec +Author: Travis Abendshien +Date: Sat Sep 7 07:39:28 2024 -0700 + + ci: add `publish_docs.yaml` to `publish_docs` paths + +commit 844dae0f58225ae211e608b5263f9e2d513ca252 +Author: CarterPillow +Date: Sat Sep 7 15:34:20 2024 +0100 + + fix(ci): update `site_url` in mkdocs.yml (#467) + + Configure MkDocs to use the custom domain: `docs.tagstud.io` + +commit d04d3b1f0aecec69356ca90aa2c610ad7ec0f2b5 +Author: Travis Abendshien +Date: Sat Sep 7 07:30:08 2024 -0700 + + ci: specify push paths for `publish_docs` + +commit 686e803f3e687ee7a9340aef7a7fccf0c834ed00 +Author: Travis Abendshien +Date: Sat Sep 7 00:35:19 2024 -0700 + + ci: add CNAME `docs.tagstud.io` + +commit a8f9bec65c51504f6215ed6defc9aa8fba333473 +Author: Travis Abendshien +Date: Sat Sep 7 00:20:06 2024 -0700 + + ci: route mkdocs `edit_uri` to `blob/main/docs` + +commit 0b56e7344f5c683404163c47e222da382f6c8f44 +Author: xarvex +Date: Sat Sep 7 01:30:19 2024 -0500 + + fix(ci): single character typo for mkdocs + +commit af4ef217a5ffd0b257326cb1130d771e93dd50b8 +Author: Paul Friederichsen +Date: Sat Sep 7 01:10:39 2024 -0500 + + ci: use MkDocs for documentation site (#460) + + * Use MkDocs for documentation + + Using Material for MkDocs + + * Enable edit buttons on pages + + * Updates to mkdocs.yml + +commit 84691310064ccb195e4dbb90c0f42cf955869e23 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Sep 3 16:32:47 2024 -0700 + + docs: add ffmpeg requirement + +commit 3e2fb1282c2262df85d54ff66164de1eaf1ea0e8 +Author: xarvex +Date: Tue Sep 3 00:11:59 2024 -0500 + + feat(flake): expose formatter + + Fixes: #433 + +commit 3e950a0cbecc9d00a65b50d8ecdc96bca4fa32ae +Author: xarvex +Date: Sun Sep 1 21:26:34 2024 -0500 + + fix(direnv)!: gitignore .envrc + + A common workflow is to have a local .envrc, allow contributors to do + so. Still provide the recommended Nix-based setup, for those who wish to + use it. + That file can then be copied to or symlinked to `.envrc`. + +commit 38626ac6902cbe1988a05bf7aa13f5c88c1b3eaf +Author: xarvex +Date: Sat Aug 31 13:16:27 2024 -0500 + + chore(direnv): update .envrc + - Cleanup direnv-root file + - Set filetype for vi-like editors + - Format and lint according to shellcheck and shfmt + +commit bc38e568fa3da18e7a05c2931472a98a0e9ac2bc +Author: xarvex +Date: Fri Aug 30 14:44:13 2024 -0500 + + feat(flake): remove impurity, update nix-direnv + + 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. + +commit 4b35df0924aad2e5f0394aff3010dbe5b84ceda5 +Author: Florian Zier <9168602+zierf@users.noreply.github.com> +Date: Fri Aug 30 06:49:00 2024 +0200 + + fix(flake): GPU hardware acceleration + + * 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. + +commit 750cbf0f9ce848d321237f36a6837b1d5961b35f +Author: xarvex +Date: Thu Aug 29 19:32:30 2024 -0500 + + fix(flake): add missing media dependencies + Fixes: #417 + + Did not opt for setting VDPAU_DRIVER, should be done on user side + See: https://wiki.archlinux.org/title/Hardware_video_acceleration#Configuring_VA-API + +commit cb4798b71595c113c0519af4991ad52b60adaa31 +Author: xarvex +Date: Sat Aug 24 22:57:00 2024 -0500 + + feat(flake): complete revamp with devenv/direnv + + 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! + +commit e1b1ef98881613d227b2a0b57d7ba61dfad007d8 +Merge: 3fcf602 15ee13c +Author: Xarvex +Date: Thu Aug 22 20:09:24 2024 -0500 + + Merge pull request #229 from seakrueger/flake-setup-venv + + ci(flake): create and activate venv via Nix Flake + +commit 3fcf6022b90f45b7e13c477537d100138d3d1bd1 +Author: UnusualEgg <76134596+UnusualEgg@users.noreply.github.com> +Date: Thu Aug 22 21:02:03 2024 -0400 + + refactor: combine `open` launch args (#364) + + Combine the `--open` and `-o` launch arguments into a single argument option. + +commit ec960f237258727c9acadd326908dffc8bdea5f8 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Aug 11 19:01:08 2024 -0700 + + (fix): use `.get()` to avoid `KeyError` (#347) + +commit ce87b11fbd642e688f0856e055fb77257eff15c1 +Author: Sam <51455162+samuellieberman@users.noreply.github.com> +Date: Mon Jul 22 07:59:43 2024 -0600 + + Fix #2 for Add Library Tags panel (#328) + + The "Add Tags" panel displays all tags when no search has been performed. Modifies the "Add Library Tags panel" to be the same. + +commit c79086f7152db570ed615ca291855019e033fb4d (tag: v9.3.2) +Author: Travis Abendshien +Date: Thu Jul 4 17:40:19 2024 -0700 + + Fix collation data not clearing on library close + +commit 9ce07bd369af87e52279419c970ac325aba2187f +Author: Travis Abendshien +Date: Wed Jul 3 17:41:21 2024 -0700 + + Bump version to 9.3.2 + +commit 33ee27a84fd8d1200c6d98af38b41b92382ead5f +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Thu Jul 4 02:02:59 2024 +0200 + + Fix small bug (#306) + +commit 1204d2b7b50c4401a6b444ca82bf6421aa6d4789 +Author: Travis Abendshien +Date: Fri Jun 21 11:28:12 2024 -0700 + + Fix search ignoring case of extension list + +commit 15ee13c7b4666d36968ee9bc459b6993cab61370 +Author: Sean Krueger +Date: Mon Jun 17 13:02:52 2024 -0500 + + Bump Qt6 version to 6.7.1 + +commit 49ad8117ef4fb661096296da8a22030c2777f6d6 +Author: Xarvex +Date: Sun Jun 16 02:59:59 2024 -0500 + + fix(flake): resolve mypy access to libraries + +commit 4f193613deaa8179ce131ccff6fb2f156f9464b6 +Author: Sean Krueger +Date: Mon Jun 10 19:16:24 2024 -0500 + + Update Contributing documentation for dev on Nix + + 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. + +commit 31038711f2e692daecc2b8bb9e604b88caded253 +Author: Sean Krueger +Date: Fri Jun 7 18:09:42 2024 -0500 + + Install ruff via nixpkgs + +commit cc827108efa3f8c61e0033e57dbae246eb031d5c +Author: Sean Krueger +Date: Thu Jun 6 20:50:22 2024 -0500 + + Add xcb as fallback when wayland fails to load + + Mostly as a fallback for xserver. + +commit 9fec4822c198c83c6b8266defe2b7076cf84ce79 +Author: Sean Krueger +Date: Mon Jun 3 11:51:41 2024 -0500 + + Setup and activate virtual environment via flake + + 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. + +commit 501ab1f9772690761982696f1800fa8fed969a79 +Author: Travis Abendshien +Date: Sun Jun 16 19:54:56 2024 -0700 + + Update issue templates to ask for title + +commit b3c01e180a0c54483a7fc1e7eba0063b3ff3f4d2 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Jun 17 01:53:38 2024 +0200 + + Update to pyside6 version 6.7.1 (#223) + + * 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 + +commit 4c6ebec529d2111c3901edfbd779c8e71f469a8b +Author: Jiri +Date: Mon Jun 17 05:24:48 2024 +0800 + + refactoring: centralize field IDs (#157) + + * use enum with named fields instead of ad-hoc numbers + + * move tag ids into constants file + +commit 5c25666e670752db4770e3c38c66bc7765401083 +Author: Travis Abendshien +Date: Sat Jun 15 13:19:28 2024 -0700 + + Fix TypeError in folders_to_tags.py + + - Additionally use proper comparison syntax + +commit fae65bd9e95650c3a9b7e54054423d67d1d18f6c +Author: Lennart S <55597910+LennartCode@users.noreply.github.com> +Date: Sat Jun 15 22:10:55 2024 +0200 + + docs: Fixed broken markdown doc link (#291) + +commit 8e065ca8aca209928b62c68dc99d95d6069afad5 +Author: Jiri +Date: Sat Jun 15 01:11:00 2024 +0800 + + create testing library files ad-hoc (#292) + +commit 82946cb0b8113f58092d496c5d908c7939d68f80 +Author: Travis Abendshien +Date: Thu Jun 13 15:39:13 2024 -0700 + + Update CONTRIBUTING.md with PyTest info + +commit aa2925cde0589833c2e7c136b2d248d779ac37ef +Author: Jiri +Date: Fri Jun 14 06:29:22 2024 +0800 + + add pytest to CI pipeline (#286) + +commit 5bc80a043fc09fe0e0bd4b7c6c2d302dd3095274 (tag: v9.3.1) +Author: Travis Abendshien +Date: Thu Jun 13 09:17:14 2024 -0700 + + Update tagstudio.spec + +commit 65d88b9987e2c295c33d58abf26da30c1acf1795 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jun 12 23:20:17 2024 -0700 + + Refactor `video_player.py` (Fix #270) (#274) + + * Refactor video_player.py + + - Move icons files to qt/images folder, some being renamed + - Reduce icon loading to single initial import + - Tweak icon dimensions and animation timings + - Remove unnecessary commented code + - Remove unused/duplicate imports + - Add license info to file + + * Add basic ResourceManager, use in video_player.py + + * Revert tagstudio.spec changes + + * Change tuple usage to dicts + + * Move ResourceManager initialization steps + + * Fix errant list notation + +commit 37ff35fcf6675e101b1a72305764e074d28b0543 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jun 12 02:00:16 2024 -0700 + + Set mouse event transparency on ItemThumbs (#279) + +commit 9b13e338bbf93ddbfc2932a9137829a5422b1794 +Author: Xarvex +Date: Tue Jun 11 21:32:18 2024 -0500 + + Use bug report and feature request forms for issues (#277) + + * Initial bug report + + * Images can be attached in description + + * Enclose label in quotes + + * Wikis are no longer being used + + * Use footnote to clarify what is up-to-date + + * Footnotes not supported in checklist + + * Initial feature request form + + * Fixup grammar/wording + +commit a47b0adb6e8a9e6732ea0ff282d90810c7ec68c8 +Author: Travis Abendshien +Date: Tue Jun 11 17:29:30 2024 -0700 + + Update icon.ico + +commit 9f39bf6fdc54580b72c3016ff73495233b19641d +Author: Travis Abendshien +Date: Tue Jun 11 01:27:21 2024 -0700 + + Update README: Correct version number in figure + +commit e375166bfebd8616108dcf1bbda752ab08935212 +Author: Andrew Arneson +Date: Mon Jun 10 19:10:57 2024 -0600 + + Raise error if video file has 0 frames or is in valid. (#275) + + video.get(cv2.CAP_PROP_FRAME_COUNT) returns 0 or -1 + +commit 7054ffd22715c8c887a07895738eac335f0e0215 +Author: Sean Krueger +Date: Mon Jun 10 16:52:13 2024 -0500 + + Separately pin QT nixpkg version (#244) + + * Add missing libraries for video player + + * Pin qt6 package version to 6.6.3 + + Currently, this succesfully launches the program. Pinning qt seperatly + allows the rest of unstable nixpkgs to be updated even after the qt + package version has been bumped. This fixes vim failing to launch in the + nix shell because of a bad gcc version. Bumping the package version to + qt6.7.1 also will require bumping PySide to 6.7.1, otherwise it will + fail to find qt. Qt 6.7.1 nixpkg commit is 47da0aee5616a063015f10ea593688646f2377e4 + + * fixup: Pin Qtcreator also + + QtCreator was still against nixpkgs not the specific qt variant. + +commit 6d283d1f2dd841a733e6108b83f5d79981bae329 +Author: Travis Abendshien +Date: Mon Jun 10 02:30:16 2024 -0700 + + Add CONTRIBUTING.md, update README + +commit a0baf015dbd8b50e621c8e5c56cccaf9e47ad9b0 +Author: Travis Abendshien +Date: Sat Jun 8 15:34:29 2024 -0700 + + Bump version to v9.3.1 Pre-Release + +commit 58be4cdb4b609b92e61c1cb8837fd5b2372a9613 (tag: v9.3.0, upstream/Alpha-v9.3) +Author: Travis Abendshien +Date: Sat Jun 8 15:21:37 2024 -0700 + + Bump version to v9.3.0 + +commit 08761d5f8a1003309aa782bc82e3048e572edc85 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jun 8 15:18:40 2024 -0700 + + Add Landing Page When No Library Is Opened (#258) + + * 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 + +commit 6a680ad3d18b0c7f2250870e98842b3e13c967b0 +Author: Travis Abendshien +Date: Sat Jun 8 12:40:37 2024 -0700 + + Increase shown tag limit from 29 to 100 (#227) + +commit b5ec3598e1c6b3009fd1f47ac20640dc2ee8b013 +Author: PencilVoid <83508866+PencilVoid@users.noreply.github.com> +Date: Sat Jun 8 18:51:39 2024 +0100 + + Add "Clear Selection" button (#259) + + * Add "Clear Selection" button + + * Change clear select keybind to Esc + +commit 926dfffebe75f4420a029e57fc4a1a3abdba2f96 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sat Jun 8 03:02:28 2024 +0200 + + Add option to use a allowed extensions instead of ignored extensions (#251) + + * 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 + + * polishing + + * polishing + + * Fix mypy + + * finishing touches + + Co-authored-by: Jiri + + * 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 + Co-authored-by: Travis Abendshien + +commit 461906c349c0609a37db6d4f3893645b9a74020f +Author: Xarvex +Date: Thu Jun 6 14:51:08 2024 -0500 + + Workflows: attempt fix for mismatched hashes in pip and bump MacOS version (#255) + + * Attempted fix at mismatched hashes + Due to the seemingly random nature of the bug, this cannot be tested + + * macos-11 runner has been deprecated, bump to 12 + +commit 2dc5197fbd5ec3f1e4f7da2af9562e9dc3aad4f5 +Author: Travis Abendshien +Date: Tue Jun 4 15:59:39 2024 -0700 + + Add upcoming feature documentation + +commit 11f0c7f9b8003554dbfe14b640a788ee3a05a54b +Author: PossiblePanda <85448494+PossiblePanda@users.noreply.github.com> +Date: Tue Jun 4 17:13:57 2024 -0400 + + Added various file formats to constants.py (#231) + + * Added various file formats to constants.py + + * Update tagstudio/src/core/constants.py + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * Update tagstudio/src/core/constants.py + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit fb445e6ab0fed7a3f0ad96db4a38b064ea02d814 +Author: Andrew Arneson +Date: Mon Jun 3 22:47:56 2024 -0600 + + Fix Default Ignored File Extension (#245) + + Add item delegate for Ignored File Extension to add leading `.` if left off extension + +commit 6e96a0ff6114824c8c4efa8d9ef500b2c69d97e9 +Author: Giochino Danilo Ramos Silva <41204130+YoyloNerd@users.noreply.github.com> +Date: Tue Jun 4 00:37:56 2024 +0200 + + Multi mode search system (#232) + + * 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 + +commit c75aff4db3edf2a2a1effd392c432b2cefdc9f7c +Author: Travis Abendshien +Date: Mon Jun 3 13:30:15 2024 -0700 + + Rename "Subtags" to "Parent Tags" + + Mentioned change in #211 + +commit 84a4b2f0cf883007782db5ff1e19522b126c362b +Merge: 10b90dc 2d89df6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jun 2 22:54:51 2024 -0700 + + Merge pull request #240 from Loran425/bugfix/cancel_library_dialog + + Bugfix Open Library Dialog + +commit 10b90dcc743e3c3e65e3fd41582dc791761aaf7b +Author: Andrew Arneson +Date: Sun Jun 2 23:53:42 2024 -0600 + + Bugfix for recent library re-creating a library at the last library location. (#238) + + * 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 + +commit 2d89df620e9b79fbf04ec8261235b36c536e48d2 +Author: Andrew Arneson +Date: Sun Jun 2 22:43:10 2024 -0600 + + Fix Open Library Dialog + Resolve issues where the open library dialog will try to open `.` if no path is returned from the dialog + +commit 0646508c248fe815cd0c984f660c05ccb34a3b97 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jun 2 20:18:40 2024 -0700 + + Fix Raw Image Handling and Improve Text File Encoding Compatibility (#233) + + * 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 `.stat()` + - Remove unnecessary upper/lower conversions + - Improve encoding compatibility beyond UTF-8 when reading text files + - Code cleanup + + * Use chardet for character encoding detection + +commit 0137ed5be8d8786cd76561f19f333fe753533eac +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jun 1 21:09:55 2024 -0700 + + Update README.md + +commit 779a251c09ea3e307c41e4958e1ad6e4d9077bd3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sat Jun 1 01:45:13 2024 +0200 + + Fix small bugs (#228) + +commit 868b553670ddfd4bfd5c3822c6721a4c9b84f140 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 29 15:47:37 2024 -0700 + + Duplicate Entry Handling (Fixes #179) (#204) + + * Reapply "Add duplicate entry handling (Fix #179)" + + This reverts commit 66ec0913b60a195fe3843941c4c00021bf97e023. + + * Reapply "Fix create library + type checks" + + This reverts commit 57e27bb51f26793da110bab8903555a53fb82c99. + + * Type and hint changes + + * Remove object cast + + * MyPy wrestling + + * Remove type: ignore, change __eq__ cast + + - Remove `type: ignore` comments from `Entry`'s `__eq__` method + - Change the cast in this method from `__value = cast(Self, object)` to `__value = cast(Self, __value)` + + Co-Authored-By: Jiri + + * Fix formatting + mypy + + --------- + + Co-authored-by: Jiri + +commit 9f630fe31526e3a71ac73caa003d086dab606e45 +Author: DrRetro <86109384+DrRetro2033@users.noreply.github.com> +Date: Wed May 29 16:58:09 2024 -0400 + + Video Player (#149) + + * 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. + +commit 6798ffd0a7ca970383abbe5e8a997d0b221011be +Author: Icosahunter <33938534+Icosahunter@users.noreply.github.com> +Date: Sun May 26 18:17:05 2024 -0500 + + Replace use of os.path with pathlib (#156) + + * 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 + + * 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 + Co-authored-by: Travis Abendshien + +commit 2e8678414b587a47bd06548d4663c1b01d74f18f +Author: Jiri +Date: Sun May 26 16:00:56 2024 +0800 + + feat: add select all hotkey (#217) + + * add select all hotkey + + * add item to selected + +commit e1cd46d0107f6bba3a442155cdd6d4a56bfd6454 +Author: Gawi <95928592+Gawidev@users.noreply.github.com> +Date: Sat May 25 16:49:12 2024 -0400 + + Wiki/Docs Updates (#194) + + * split file + link fix + + * Cleanup & Minimum Fill + + * polish & link + + * Update doc/Tag.md + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + +commit 9879697c957216ec0e91dc12b49c082588f21e95 +Author: Travis Abendshien +Date: Thu May 23 00:42:00 2024 -0700 + + Bump version to v9.2.2 + +commit 57e27bb51f26793da110bab8903555a53fb82c99 (tag: v9.2.1) +Author: Travis Abendshien +Date: Mon May 20 17:44:52 2024 -0700 + + Revert "Fix create library + type checks" + + This reverts commit 6357fea8db442269194ad02fb8ca675505bcadeb. + +commit 66ec0913b60a195fe3843941c4c00021bf97e023 +Author: Travis Abendshien +Date: Mon May 20 17:43:25 2024 -0700 + + Revert "Add duplicate entry handling (Fix #179)" + + This reverts commit 491ebb6714b2245e9de20c122e2f0fa9fd6211b0. + +commit 6357fea8db442269194ad02fb8ca675505bcadeb +Author: Travis Abendshien +Date: Mon May 20 17:36:22 2024 -0700 + + Fix create library + type checks + +commit 491ebb6714b2245e9de20c122e2f0fa9fd6211b0 +Author: Travis Abendshien +Date: Mon May 20 17:14:30 2024 -0700 + + Add duplicate entry handling (Fix #179) + + - 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. + +commit 385b4117dbe8ee9880702cd81eb10085b20ba35b +Author: Travis Abendshien +Date: Sat May 18 19:03:57 2024 -0700 + + Fix incorrect pillow-heif import + +commit be3992f655c48e70ab85b47e66a0263203a5d979 +Author: Travis Abendshien +Date: Sat May 18 18:58:01 2024 -0700 + + Add HEIC/HEIF image support + + - Add support for HEIC/HEIF image thumbnails and previews + - Replace dependency "pillow_avif_plugin" with "pi-heif" + - Remove unused dependencies in ts_cli.py + +commit 18becd62a308e727b583caa387611f7fe453e2e4 +Author: Travis Abendshien +Date: Sat May 18 18:49:35 2024 -0700 + + Add RAW image support (Resolve #193) + + - Add thumbnail and preview support for RAW images ["raw", "dng", "rw2", "nef", "arw", "crw", "cr3"] + - Optimize the preview panel's dimension calculations (still need to move this elsewhere) + - Refactored use of "Path" in thumb_renderer.py + +commit 699ecd367ceba38cbdd0244148e7927ada3a3f96 +Author: Travis Abendshien +Date: Sat May 18 17:57:28 2024 -0700 + + Adaptive resampling method for images (Fix #174) + + When loading an image for thumbnails and previews, the resampling method is now determined by the size of the original image. Now low resolution images use "nearest neighbor" sampling while higher resolution images continue to use "bilinear" sampling. + +commit 9d7609a8e5cde937d562ef8f552206bd0578a206 +Author: Travis Abendshien +Date: Sat May 18 17:32:54 2024 -0700 + + Load palletized images as RGBA (Fix #175) + +commit e94c4871d76056cfee308a0c7a94ca265db3905c +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun May 19 01:56:45 2024 +0200 + + Refactor Thumbrenderer (#168) + + * Merge Render methods + + * Cleanup comments + + * Removed old render methods and replaced with new one + + * Fix Formatting + + - Change all instances of "os.path.normpath" to pathlib's "Path" + - Remove unused import + - Modify log formatting + - Change "self.tr" to "self.thumb_renderer" to avoid masking internal method + - Restore DecompressionBombError handling from main + - Misc. formatting + + * Fix MyPy no-redef + + --------- + + Co-authored-by: Travis Abendshien + +commit 02bf15e0807d09b406ae05149285959e5dcf624d +Merge: cdf2581 5f60ec1 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 21:13:41 2024 -0700 + + Merge pull request #142 from Hidorikun/test-support-2 + + Add pytest support + +commit 5f60ec17022fda91ea70d8cd69edf20e81413cdf +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 21:12:02 2024 -0700 + + Add missing imports to ts_core.py + +commit cdf2581f84d3f1bad012e32e9812013c76ee373d +Merge: ac9dd58 af8b4e3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 21:02:02 2024 -0700 + + Merge pull request #192 from yedpodtrzitko/yed/better-mypy-pr + + use reviewdog for mypy job + +commit af8b4e3872af750aa98aced2a96454b1422c65c5 +Author: yedpodtrzitko +Date: Sat May 18 10:11:55 2024 +0800 + + use reviewdog for mypy job + +commit ac9dd5879e5840d3bdadacbab0484723f83f7555 +Merge: 1461f2e badcd72 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 14:14:59 2024 -0700 + + Merge pull request #189 from michaelmegrath/main + + fix: Clear Edit Button on container update (#115) + +commit badcd72bea47e805be245d5375386d603097bb87 +Author: Michael Megrath +Date: Thu May 16 22:09:41 2024 -0700 + + fix: Clear Edit Button on container update (#115) + +commit 8733c8d30130ae2b0f85e2d7a2a8b5c03651396b +Author: Vele George +Date: Thu May 16 10:37:34 2024 +0300 + + Update constants.py + +commit 4726f1fc63c99a2cc4d98ecad6d1942536e7d429 +Merge: c9ea25b 1461f2e +Author: Vele George +Date: Thu May 16 10:37:27 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit 1461f2ee70be4437dfc3b49f86f42bef80899574 +Merge: c09f50c 1bfc24b +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 15 22:39:42 2024 -0700 + + Merge pull request #186 from yedpodtrzitko/main + + fix: update recent libs when creating new one + +commit 1bfc24b70f162552994b47e803f4a7f5a0609814 +Author: yedpodtrzitko +Date: Thu May 16 13:28:29 2024 +0800 + + fix: update recent libs when creating new one + +commit c09f50c5686ab9d5dc9799c08221912a7b913ec9 +Author: Jiri +Date: Thu May 16 13:25:53 2024 +0800 + + ci: add mypy check (#161) + + * ci: add mypy check + + * fix remaining mypy issues + + * ignore whole methods + +commit 66aecf2030bea8dff84611d21b597c9b56e51c75 +Merge: 6e56f13 dc18826 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 15 16:38:57 2024 -0700 + + Merge pull request #180 from yedpodtrzitko/yed/fix-sidebar-size + + fix sidebar expanding + +commit dc188264f980c56a982bd0b8de462dc6e786d284 +Author: yedpodtrzitko +Date: Thu May 16 07:25:21 2024 +0800 + + fix sidebar expanding + +commit 6e56f13edac9b7132a8bb60e6069d9302f75255e +Author: Travis Abendshien +Date: Wed May 15 15:30:33 2024 -0700 + + Bump version to v9.2.1 + +commit c9ea25b940d0149df6f5cbadab75e7961bd14cd0 +Merge: 4b1119e e814d09 +Author: Vele George +Date: Wed May 15 10:23:36 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit e814d09c60e7be03b734cbfdc97378e82d3f1a3f +Author: Travis Abendshien +Date: Wed May 15 00:15:44 2024 -0700 + + Add macOS Gatekeeper note to README + +commit 69115ed9bbc69a0f20563722878586433dc41f44 (tag: v9.2.0) +Merge: e655fd0 296aed6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 14 22:46:35 2024 -0700 + + Merge pull request #173 from xarvex/release-binary-2 + + Correct upload binaries used in release workflow + +commit 296aed6575645582e8bbe91ce3888193795c51f5 +Author: Xarvex +Date: Wed May 15 00:45:19 2024 -0500 + + Correct upload binaries used in release workflow + +commit e655fd091dd965832abb34b72bcffa2bc9d17f14 +Author: Travis Abendshien +Date: Tue May 14 22:27:15 2024 -0700 + + Update CHANGELOG.md + +commit 8780063e22b6516ee4a7c0ba679104ff2eaad864 +Merge: c6d2a89 ecea6ef +Author: Travis Abendshien +Date: Tue May 14 22:11:51 2024 -0700 + + Merge branch 'main' of https://github.com/TagStudioDev/TagStudio + +commit c6d2a89263b3c4291978428c3cf193083656a1fd +Author: Travis Abendshien +Date: Tue May 14 22:11:40 2024 -0700 + + Update documentation + + - Update README + - Update CHNAGELOG + - Update `--config-file` argument help message + +commit ecea6effa4a50a968273341ac146bc27d08958e1 +Author: Xarvex +Date: Wed May 15 00:06:39 2024 -0500 + + Release workflow with binary executables (#172) + + * Refactor: remove __init__ meant for Python versions before 3.3 + This does mess with a large amount of imports, as the system was being + misused to re-export submodules. This change is necessary if PyInstaller + is to work at all. + + * Add MacOS icon + + * Create PyInstaller spec file + + * Create Release workflow + Creates executable with PyInstaller, leveraging tag_studio.spec + + * Support both nonportable and portable in tag_studio.spec + + * Rename spec-file to create consistently-named directories + + * Only ignore other spec files + + * Swap exclusion option + + * Use windowed application + + * Ensure environment variables are strings + + * Cleanup visual order on GitHub interface + + * Use app for MacOS + + * Only cycle through MacOS version + + * All executables generated for MacOS are portable + + * Use up-to-date packages + + Should resolve caching issues + + * Correct architecture naming for MacOS + +commit 8e11e285614072548f3d7662201f5cdd9be6969f +Merge: 5d85417 eba7c3e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 14 14:36:56 2024 -0700 + + Merge pull request #159 from Loran425/main + + Change QSettings behavior to work with executables + +commit 5d85417ce41820021f9bfa66969c8e078e00b802 +Merge: f35d9c1 5d21375 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 14 12:06:42 2024 -0700 + + Merge pull request #151 from yedpodtrzitko/yed/libs-sidebar + + add list of libraries into sidebar + +commit 4b1119ecba96d238fbf28c10ac6c4746dd013c77 +Merge: ad850cb f35d9c1 +Author: Vele George +Date: Tue May 14 11:38:24 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit 5d21375e65551e0b0e447c79fbdb5e68f80bf0fd +Author: yedpodtrzitko +Date: Tue May 14 15:51:41 2024 +0800 + + dont expand recent libs + +commit f60a93f35be2b5f697e54192086639c7dee504f3 +Author: yedpodtrzitko +Date: Tue May 14 14:58:42 2024 +0800 + + keep remove button small + +commit a71ed7c4265dacebbf819a4cd35130888448c4b6 +Author: yedpodtrzitko +Date: Tue May 14 12:24:47 2024 +0800 + + add button for removing recent lib + +commit 06f528f8b5491f0483d043e4c220392389017c99 +Author: yedpodtrzitko +Date: Tue May 14 10:30:58 2024 +0800 + + CR feedback + +commit 94a0b000075a7323fc6ca4cfa9b64ce4da607916 +Author: yedpodtrzitko +Date: Fri May 10 01:41:38 2024 +0800 + + add list of libraries into sidebar + +commit eba7c3e17874c65522e3877dab5e39a453ca97ae +Merge: 89b1921 f35d9c1 +Author: Andrew Arneson +Date: Mon May 13 20:45:47 2024 -0600 + + Merge remote-tracking branch 'upstream/main' + +commit 89b1921e56e739e519ded5ae183c0841f36861da +Author: Andrew Arneson +Date: Mon May 13 20:45:37 2024 -0600 + + Eliminate guess work on config file + Removes support for directory as a `--config-file` argument + +commit f35d9c13135094bdbec883f3a4ff8ed3884851ff +Merge: 6a2199d 93526fa +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon May 13 14:31:46 2024 -0700 + + Merge pull request #165 from yedpodtrzitko/yed/ci-run + + ci: try to run the app + +commit 6a2199dd2efb90f4fbd0cb1d9a772eb3f73edbf0 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon May 13 23:18:07 2024 +0200 + + Fix pillow decompression bomb error mentioned in #164 (#166) + + * Fixes DecompressionBombError + + * Fixes DecompressionBombError in PreviewPanel + + * Ruff reformat + + * Handle all DecompressionBombErrors + + * Handle all DecompressionBombErrors + + * RUFF + + * fix typo + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * fix typo + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * Ruff reformat + + --------- + + Co-authored-by: Thesacraft + +commit 0416fde7f5c1ca2aee47887aec92507dc178a44a +Author: Xarvex +Date: Mon May 13 14:50:04 2024 -0500 + + Refactor: remove __init__.py files meant for Python versions before 3.3 (#160) + + * Refactor: remove __init__ meant for Python versions before 3.3 + This does mess with a large amount of imports, as the system was being + misused to re-export submodules. This change is necessary if PyInstaller + is to work at all. + + * Thanks Ruff + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 02d6b22b2544fd651f9816c20dda590ae77571f5 +Author: Travis Abendshien +Date: Mon May 13 12:13:06 2024 -0700 + + Splash screen now stays on top of other windows + +commit 851d1fb3b242af64caf3a4caf5dc592e6e90414d +Author: Travis Abendshien +Date: Mon May 13 01:10:40 2024 -0700 + + Changes to allow for native menu bars + +commit 4616da4e5f5a486fc50f5f40f12d246159460e62 +Author: Travis Abendshien +Date: Sun May 12 23:52:44 2024 -0700 + + Added the splash screen to the QResources system + +commit d43b00bd0018aae28da373ae860f69227e35a72a +Author: Travis Abendshien +Date: Sun May 12 23:44:41 2024 -0700 + + Updated macOS Icon + + - Also cleaned up surrounding commented-out code + - This should hopefully fix the dock icon trying to swap during runtime + +commit e7318c747308ffe6f9030c58943fe2d6f4dbc4e6 +Author: Andrew Arneson +Date: Sun May 12 23:09:28 2024 -0600 + + Ruff Formatting + +commit 74e90df6804c3dc495e637fabdeb34fca5590482 +Author: Andrew Arneson +Date: Sun May 12 23:07:01 2024 -0600 + + Revert QSettings location to `IniFormat` `UserScope` defaults + Adds `-c/--config-file ` argument to tag_studio.py + +commit 6566682504e42da5bb0c7f023c701217f63e6ba3 +Merge: 88b0f70 b00dbf9 +Author: Andrew Arneson +Date: Sun May 12 22:44:50 2024 -0600 + + Merge remote-tracking branch 'refs/remotes/upstream/main' + +commit b00dbf95487616a5e5123d428e86b3fd6e6e789a +Author: Travis Abendshien +Date: Sun May 12 21:15:46 2024 -0700 + + Squashed commit of the following: + + commit 094b6d50d975ec8feaa24af6a8a7b121fe87bce3 + Author: Travis Abendshien + Date: Sun May 12 19:52:25 2024 -0700 + + Formatted using Ruff + + Co-Authored-By: yed podtrzitko + + commit 088ef5263e38c948dda9a875fcc56af97762a73e + Author: Travis Abendshien + Date: Sun May 12 19:51:03 2024 -0700 + + Reduced QResource Usage + Path Refactor + + - Removed unused or redundant QResources + - Removed unreliable uses of the Qt resource system in favor of direct paths + - Refactored paths with "parent.parent.parent" to use ".parents[index]" + + Co-Authored-By: yed podtrzitko + +commit f8d44c5fae8fe9bf40f1cb0719e39375d771b39f +Author: Travis Abendshien +Date: Sun May 12 21:05:29 2024 -0700 + + Updated Application Icons + + - Updated application icons + - Added .icns file for macOS + - (Potentially) stopped macOS dock icon from being updated with a different icon during runtime + +commit 88b0f70271b3ddb5908650c075768b36c04e26e8 +Merge: 191d8f9 f69f173 +Author: Andrew Arneson +Date: Sun May 12 21:29:13 2024 -0600 + + Merge remote-tracking branch 'refs/remotes/upstream/main' + +commit 93526fa73f7260157a1a07b56bdc9ae859ae2786 +Author: yedpodtrzitko +Date: Sun May 12 21:58:05 2024 +0800 + + run tagstudio in CI + +commit f69f173368ddefc57446dcbad14ef9e4b6a21fbc +Author: Travis Abendshien +Date: Sun May 12 15:23:03 2024 -0700 + + Disable Native Menubars + +commit 92752aef4a28ea6078a77bd6ce46e3b92dcc96fe +Author: Travis Abendshien +Date: Sun May 12 14:51:49 2024 -0700 + + Reverted macOS menubar change + + Reverted exception to allow the native macOS menubar in 94f929d12206503ac36f13cc120547a397849923 because it doesn't work anyway. + +commit ad850cba94b82b157042cd99b1f3c974f8fb452c +Merge: b6848bb 3aa71d6 +Author: Vele George +Date: Sat May 11 21:30:15 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit 191d8f995f212377884c1cd43891c381c45e0515 +Merge: eede5b3 3aa71d6 +Author: Andrew Arneson +Date: Fri May 10 18:00:43 2024 -0600 + + Merge remote-tracking branch 'refs/remotes/upstream/main' + +commit eede5b3600da9fcceb333a86d04246d88de3a9f0 +Author: Andrew Arneson +Date: Fri May 10 17:52:38 2024 -0600 + + Move the tagstudio.ini file to alongside the executable + +commit 3aa71d6f8abb67f309f6d66ef4e6c570332d82be +Author: Travis Abendshien +Date: Fri May 10 15:45:19 2024 -0700 + + Formatted with Ruff + +commit 94f929d12206503ac36f13cc120547a397849923 +Author: Travis Abendshien +Date: Fri May 10 15:43:26 2024 -0700 + + Allow the use of the native macOS menu bar + +commit 03a46ae57b33b1a467edf7e499d44cc6893f5e4a +Author: Travis Abendshien +Date: Fri May 10 15:29:28 2024 -0700 + + Style Changes + + - Removed legacy style experiments, including strange translucent widgets and indigo default tags + - Renamed "Folders To Tags" to "Create Tags From Folders" + - Edited formatting of "Create Tags From Folders" modal + - Renamed "Tag Database" to "Manage Tags"/"Library Tags" + - Tweaked names of other menubar actions + - Removed some commented-out code + +commit b8d72a65c8198d0840af3afd6ad33c1d67e378b0 +Author: yed podtrzitko +Date: Fri May 10 08:39:46 2024 +0800 + + misc: remove duplicate code for tags updating (#135) + +commit 8321f43d6e1cdb98a0f33bd854032d1a708a2bd6 +Author: William de Castro +Date: Thu May 9 05:22:51 2024 -0300 + + Add Build Script for mac os systems (#76) + + * chore: add TagStudio.spec to gitignore + + Prevent TagStudio.spec to be added to repo in the future + + * chore: add Build Script for macos + + Create script using pyinstaller to generate a macos app for tagstudio + + * chore: revert duplicated files + + * chore: rename build file naming + +commit f9ea20e29caecdcc480de81901f965af22092750 +Author: Sylvia K <40416079+SylviaSK@users.noreply.github.com> +Date: Wed May 8 14:07:58 2024 -0500 + + Refactor: Deduplication in pagination.py's "Set Elipses Sizes" section (#141) + +commit b6ccb88a95aedd4b0ae7d056279eb51550babe7e +Author: Travis Abendshien +Date: Wed May 8 11:39:03 2024 -0700 + + Fixed Some Images Breaking Thumbnailer + + Fixed images that were considered to be "truncated" from breaking the thumbnail renderer when trying to transpose via an EXIF flag. This was happening with certain panorama photos. + +commit de434872d6554feaa0d390973c9c26c06230f733 +Merge: 7acfecf e803f6a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 8 10:36:58 2024 -0700 + + Merge pull request #145 from yedpodtrzitko/yed/hold-the-jobs + + dont run job threads needlessly + +commit 7acfecf7b9cb403846978ae578199c80315c0e1d +Merge: 7ef2aa6 7f776f4 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 8 10:15:46 2024 -0700 + + Merge pull request #147 from arthniwa/add-help-menu-action + + Add action to help menu + +commit 7f776f4c8615606d8af71999be6ee00011be3f10 +Author: arthniwa <123327761+arthniwa@users.noreply.github.com> +Date: Wed May 8 10:57:48 2024 -0500 + + Fix format required by Ruff + +commit e803f6adcbdb69adaf3f81992d2b822c6878d354 +Author: yedpodtrzitko +Date: Wed May 8 22:47:47 2024 +0800 + + wait for threads to finish + +commit b6848bb81f6483b9c3707f49ce5b28c80befdbb2 +Author: Hidorikun +Date: Wed May 8 17:32:15 2024 +0300 + + Ruff format + +commit 7ef2aa6a8026b06f794a4b60c380f3c034f22160 +Merge: 57a15f6 44106e2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 7 23:15:32 2024 -0700 + + Merge pull request #78 from Thesacraft/main + + Build Script for windows + +commit 48ad4aaad23d74bdca055885e44e327015358c33 +Author: arthniwa <123327761+arthniwa@users.noreply.github.com> +Date: Wed May 8 00:42:16 2024 -0500 + + Add action to help menu + + Add "Go to GitHub Repository" to the help menu. + +commit 0e621011fc7b3744d4cce5117e71ec55d7af8f15 +Author: yedpodtrzitko +Date: Wed May 8 11:10:43 2024 +0800 + + dont run job threads needlessly + +commit fb7c73d96b09a5bf1240f547a3c4863284bd0f85 +Author: Hidorikun +Date: Mon May 6 12:06:30 2024 +0300 + + Add pytest support + +commit 57a15f651e4a80e7f73a8621e4175fed448bf175 +Merge: ec55e92 3aa4fa2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat May 4 23:36:40 2024 -0700 + + Merge pull request #140 from yedpodtrzitko/yed/fix-edit-enter + + fix input enterPressed event + +commit 3aa4fa214f88f6bcb7510ec1e0f911fe2b113204 +Author: yedpodtrzitko +Date: Sun May 5 14:22:37 2024 +0800 + + fix input enterPressed event + +commit ec55e925990193f0503fc8cd0519d4830a8e8981 +Merge: c27f99e 78ea0b3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat May 4 18:28:23 2024 -0700 + + Merge pull request #136 from SylviaSK/main + + Fix for #119, Prompt for new location user if library cannot be saved + +commit c27f99e3a49f6f22a186d697a4907c720e5e29ce +Merge: 089c8dd aedc5af +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat May 4 15:53:36 2024 -0700 + + Merge pull request #117 from abby-freakazoid/improve-startup-script + +commit 78ea0b3641802a549fed1528f6fb269d91fe2d20 +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Sat May 4 16:45:38 2024 -0500 + + close_library() fix + +commit 523f233f4ab38dcfc51f5756c05a7f4f6b731ae1 +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Sat May 4 15:16:31 2024 -0500 + + Ruff formatting + +commit ea05907227eabbde1c68e53c343188063063ebf9 +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Sat May 4 12:20:43 2024 -0500 + + Fix for #119, Prompt for new location user if library cannot be saved + +commit 089c8dd50cbf22e75721ecd2c0e0acfd3deca7f3 +Author: Travis Abendshien +Date: Fri May 3 19:40:36 2024 -0700 + + Reformatted using Ruff + +commit 77d75590148f6ec9b482bb86f6a7ed81c9848758 +Merge: 164aba1 61f9a49 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 19:15:37 2024 -0700 + + Merge pull request #111 from yedpodtrzitko/yed/sidebar-active-cursor + + feat: add hand cursor for active sidebar elements + +commit 164aba1bb01dc69145e32a35f5f815e680b185f9 +Merge: fd622ea b834166 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 19:08:34 2024 -0700 + + Merge pull request #113 from TechCrafterGaming/PR-003 + + minor bug fixes to Tag Search Box + +commit fd622ea378c60adc6e74541dc30386c10f3902f0 +Merge: b2d87b0 9951c00 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 18:22:42 2024 -0700 + + Merge pull request #114 from Loran425/refactor/tag_database + + Remove functionally duplicated code in update_tags + +commit b2d87b05d8b2c3571922047facf86c6cba3dbd70 +Merge: ac3d7c9 cd719c6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 18:13:07 2024 -0700 + + Merge pull request #123 from SylviaSK/main + + Fix opening to a file with spaces in path on windows / #120 + +commit ac3d7c95cbdb8014a8b6609d547bd77198f73dcf +Merge: 64514db 58c773a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 17:59:32 2024 -0700 + + Merge pull request #126 from JinguBangWest/main + + Refactor strip_web_protocol() + +commit 64514db45708db600ca1574fcbab113e80f88807 +Merge: ea8d954 afd6e11 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 17:52:10 2024 -0700 + + Merge pull request #107 from yedpodtrzitko/yed/ruff-formatting + + add code formatting & Github Action via ruff + +commit 58c773a0dee48a2541e762ec44cb954c9a2bd517 +Author: JinguBangWest +Date: Fri May 3 14:37:32 2024 -0400 + + change to string.removeprefix(prefix) + +commit bb1161baa9c7f22665dab59e76e1629ef2fd61a4 +Author: JinguBangWest +Date: Thu May 2 22:05:57 2024 -0400 + + Refactor strip_web_protocol + This allows for more prefixes to be added in the future if needed without repeating code multiple times. + +commit cd719c6d01cd83489af0cfeab9310ff3f596806b +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Thu May 2 11:54:10 2024 -0500 + + minor comment fix + +commit 9a405dd3364827858dbd05fdb3f7de6d79622c6d +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Thu May 2 11:47:32 2024 -0500 + + Fix for #120, Windows filepaths with spaces + +commit afd6e113d28dbc3c06a6c3880179e9b7e0adb778 +Author: yedpodtrzitko +Date: Thu May 2 01:01:36 2024 +0800 + + add ruff pre-commit hook and README info + +commit ea8d954548579d107b3efc7ab2fdedf61bc2afcd +Merge: a1fcd23 99a0bfe +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 1 23:00:06 2024 -0700 + + Merge pull request #122 from abby-freakazoid/bugfix/validate-library-path-before-open/#118 + + Fix library reopen doesn't check if path is valid #118 + +commit a1fcd23d13f1574015fc18d9df679ca11698b558 +Merge: f71b947 eb5124b +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 1 22:34:47 2024 -0700 + + Merge pull request #121 from gabrieljreed/bugfix/right-click-file-path/#116 + + Bugfix/right click file path/#116 + +commit 99a0bfe9197e19429884ac48109a868c76810c34 +Author: Abby <141393719+abby-freakazoid@users.noreply.github.com> +Date: Thu May 2 00:25:21 2024 -0500 + + Fix library reopen doesn't check if path is valid #118 + +commit eb5124bd0a7bc37a1031ee3ee52fbedb48fc7cbc +Author: gabrieljreed +Date: Wed May 1 22:01:08 2024 -0700 + + Update docstrings + +commit 0e1e9e924b45386a6b2442f3d868e956e5391206 +Merge: 85b4be8 f71b947 +Author: gabrieljreed +Date: Wed May 1 21:56:29 2024 -0700 + + Merge remote-tracking branch 'upstream/main' into bugfix/right-click-file-path/#116 + +commit 85b4be85250681045684222eeac072e8a05b511b +Author: gabrieljreed +Date: Wed May 1 21:45:43 2024 -0700 + + Add docstrings + +commit 08c0704926b119e41498368c5f74cfa69666f765 +Author: gabrieljreed +Date: Wed May 1 21:42:58 2024 -0700 + + Fix open_file for platforms other than Windows + +commit 81f550a5436f6fa20b7a8ef14ca789e4c56668da +Author: gabrieljreed +Date: Wed May 1 21:41:11 2024 -0700 + + Fix open_explorer on Mac, fix right click on FileOpenerLabel + +commit aedc5afefa93a91496f7fee658f3438bec0170a4 +Author: Abby <141393719+abby-freakazoid@users.noreply.github.com> +Date: Wed May 1 22:28:10 2024 -0500 + + Improved TagStudio.sh + + "set -e" to abort on error + "cd …" to prevent creating .venv if script is launched outside git dir + "[ … ]" to skip creating venv when it already exists + +commit 9951c00a45b74da60478463e20e81af8b26c4495 +Author: Andrew.Arneson +Date: Wed May 1 12:54:21 2024 -0600 + + Remove functionally duplicated code in update_tags + +commit b834166d61bb555dc4a9e292a4b20cae7908193b +Author: TechCrafterGaming +Date: Wed May 1 15:27:12 2024 +0200 + + minor bug fixes to Tag Search Box + +commit 61f9a49782fa1d9f1eaa920817466dbf1d31c63e +Author: yedpodtrzitko +Date: Wed May 1 18:46:55 2024 +0800 + + feat: add hand cursor for active sidebar elements + +commit f71b947673551a57e5dce7b937384c5e82722454 +Merge: 67c18e9 3d5ed3a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 1 03:00:46 2024 -0700 + + Merge pull request #110 from yedpodtrzitko/yed/fix-thumbs-orientation + + fix image thumbnails rotation + +commit 3d5ed3a9489d182a1b06f225e0566ac8f9d56f76 +Author: Travis Abendshien +Date: Wed May 1 02:58:43 2024 -0700 + + Added EXIF transpose to small thumbnails + +commit 8604a7f08f3a7f23c6b1c51bc5e5276ba8e8aa61 +Author: yedpodtrzitko +Date: Wed May 1 17:15:33 2024 +0800 + + fix image thumbnails rotation + +commit 67c18e9a251f7e0be2f23ae80b1d4dc022c7843f +Merge: 1a7316d 81e0e7b +Author: Xarvex +Date: Wed May 1 03:51:23 2024 -0500 + + Merge pull request #109 from yedpodtrzitko/yed/macos-file-open + + fix file opening on posix + +commit 81e0e7b072e4c132e3065602a0e02a59ce7ae2ab +Author: Xarvex +Date: Wed May 1 03:50:27 2024 -0500 + + Accidental double sys import during merge conflict + +commit ba5a995b5d4832d6ce89dc2a64b0ce5b2492885a +Merge: c58590a f40be00 +Author: Xarvex +Date: Wed May 1 03:43:53 2024 -0500 + + Merge branch 'yed/macos-file-open' of github.com:yedpodtrzitko/TagStudio into yed/macos-file-open + +commit c58590a22153f6ebab8fa21ba5eca3568f6ff77e +Author: Xarvex +Date: Wed May 1 03:26:36 2024 -0500 + + Make use of open_file from #84 + Refactor done in #80 essentially reverted changes + Re-fixes #81, also re-fixes windows opening behind TagStudio + +commit f40be005f89959f53ea5a379ff757ffc7ff2559a +Author: yedpodtrzitko +Date: Wed May 1 15:46:08 2024 +0800 + + fix file opening on posix + +commit f9fc28d5ec5b911ac008abb2d7ef94f9c8294262 +Author: yedpodtrzitko +Date: Wed May 1 15:46:08 2024 +0800 + + fix file opening on posix + +commit 10303284205971cf67341b88296f0a171a25a7f9 +Author: yedpodtrzitko +Date: Wed May 1 15:19:20 2024 +0800 + + add ruff formatting info and CI pipeline + +commit 1a7316d54cc7501427a51c3b46d459937c233050 +Merge: 92e7e05 d478116 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 30 21:55:46 2024 -0700 + + Merge pull request #103 from yedpodtrzitko/yed/show-tags-implicitly + + show all tags in Add Tags panel by default + +commit 92e7e05540f4d9501a9a4a0106cfa27c6775fcaf +Merge: a10478b a669fd6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 30 21:07:06 2024 -0700 + + Merge pull request #99 from TechCrafterGaming/FIX-001 + + added action to close a library + +commit d478116094165603fb8e8d5fc6ee2bf5f91b70c4 +Author: yedpodtrzitko +Date: Wed May 1 00:04:37 2024 +0800 + + show all tags in tag panel by default + +commit a10478bc8bcd0ec1c54458312d99c4bdbb548981 +Author: Travis Abendshien +Date: Tue Apr 30 02:41:07 2024 -0700 + + Misc Bug Fixes + + - Catches additional exception in the sorting process of new files added to the library + - Skips this sorting process if there are more than 100,000 files (this is a temporary sorting measure, anyway) + - Possibly improved performance during the functionless (and cursed) "Applying Configured Macros" step of loading new files + +commit a669fd67c361e8382659e56acabb3f9997561c55 +Author: TechCrafterGaming +Date: Tue Apr 30 08:07:10 2024 +0200 + + small adjustments and comments + +commit 7cdb26e8220ff8c3e169f3fe95c6529b7d8f608b +Author: TechCrafterGaming +Date: Tue Apr 30 08:04:13 2024 +0200 + + added if statement + +commit 16a9d32ef30eff84f05ca562ec12568a6ec4198c +Author: TechCrafterGaming +Date: Tue Apr 30 08:02:46 2024 +0200 + + added `last_library` value to be set properly + +commit 9b90bfad840dae309f3321e9b8ae81da5e28e00a +Merge: 6f900ff b1c0ec5 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 22:43:15 2024 -0700 + + Merge pull request #98 from Creepler13/Folders-to-tags-cleanup + + Folders to tags refractor + Bug fix + Enhancement + +commit 6f900ff3711be69b720f9ab75e6703e43d7e3a20 +Merge: 9ad81c4 d02f068 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 16:54:07 2024 -0700 + + Merge pull request #101 from TechCrafterGaming/FIX-002 + +commit d02f06899184dc0f2599f927a9720c0f3f78191e +Author: TechCrafterGaming +Date: Tue Apr 30 00:09:43 2024 +0200 + + small changes to `README` + +commit 878a5dfc8a8f3a8da6e7ddccdc004200038bc4bb +Author: TechCrafterGaming +Date: Tue Apr 30 00:09:09 2024 +0200 + + small changes to `ts_qt.py` (doc strings) + +commit 030c817323446c46325a04530dd40e8aa2c6dc20 +Author: TechCrafterGaming +Date: Mon Apr 29 23:57:35 2024 +0200 + + added action to close a library + +commit 9ad81c4582c2a0d885d1b4af9c588067f33a52ca +Merge: 0c9dd7f 7139eea +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 14:42:22 2024 -0700 + + Merge pull request #94 from Thesacraft/Shutdown-threads-safely + + Shuts the threads down before quitting the application Fixes #86 + +commit b1c0ec58170c97c88b1082ef974df7dc7d5bc226 +Author: Creepler13 +Date: Mon Apr 29 23:01:15 2024 +0200 + + Open/Close all buttons + +commit ea904da58bbacc7fd4c96dcafc68c51047345a29 +Author: Creepler13 +Date: Mon Apr 29 21:28:32 2024 +0200 + + Folders to tags Cleanup + bugfix + +commit 0c9dd7f43ba8bdbcb449d51b27b09b874ce584f5 +Merge: 93177dd 885b2b0 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 12:01:04 2024 -0700 + + Merge pull request #95 from Loran425/patch/library-loading + + Patch Bug that prevents loading ts_library.json fields ids as integers + +commit 885b2b0358805460dcabb5543437d20a2c6447ab +Author: Andrew.Arneson +Date: Mon Apr 29 12:55:30 2024 -0600 + + Patch Bug that prevents loading ts_library.json fields ids as integers + +commit 7139eea4c4ebf54e660b6edf0e9a4a690040289d +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Apr 29 19:37:36 2024 +0200 + + Ends threads before quitting application + + This fixes this warning: + QThread: Destroyed while thread is still running + +commit 41e419c1e7cbf6c86c1b0fe6963312a3417927b3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Apr 29 18:46:35 2024 +0200 + + Ends threads before quitting application + + This fixes this warning: + QThread: Destroyed while thread is still running + +commit 93177dd696aaeacb1041013dd9a4b0c1d77066e3 +Merge: c9c399f d8a11a7 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 01:05:36 2024 -0700 + + Merge pull request #89 from yedpodtrzitko/main + + fix: strip leading slash in library items + +commit d8a11a796d4bee70fdb758f831cad69ee39799e4 +Author: yedpodtrzitko +Date: Mon Apr 29 12:53:41 2024 +0800 + + fix: strip leading slash in library items + +commit c9c399faa9c492d91d2388662b3aea3b4d989fb8 +Merge: fb300d0 eb2a175 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Apr 28 21:22:20 2024 -0700 + + Merge pull request #80 from Loran425/qt-refactor + + Qt refactor + +commit 44106e2c59fa697d36435173560d48859a76f8e6 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Apr 29 00:13:48 2024 +0200 + + Updates Build_win.bat to not delete source and be able to build portable version + +commit 260583cfeb07a08a605baa5d8fa1c5dcd4559dd3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 21:52:16 2024 +0200 + + Update Build_win.bat for faster start of executable + + I changed it to output an executable and a _internals dir because this makes it, atleast from my experience, much faster (12s -> 1-2s). This is probably because the decompression that has to happen before startup if its in one file + +commit eb2a175b75bb2aa3bd12cbdf7073864f6114aad1 +Author: Andrew Arneson +Date: Sun Apr 28 13:37:28 2024 -0600 + + Changes from #84 split into src.qt.helpers.open_file from ts_qt.py + +commit 89b159cfa1a090bafef3704971847155f3f7a0ac +Merge: 22e0ef8 fb300d0 +Author: Andrew Arneson +Date: Sun Apr 28 13:36:25 2024 -0600 + + Merge remote-tracking branch 'upstream/main' into qt-refactor + + # Conflicts: + # tagstudio/src/qt/ts_qt.py + +commit fb300d0d079a1110c33400d9d235a6f1faba0b28 +Merge: 6097570 3446e06 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Apr 28 12:26:33 2024 -0700 + + Merge pull request #84 from xarvex/main + + Allow opening and selecting files in file managers for all platforms + +commit 3446e0601a2408259d6ad5fcb659dc510addc549 +Author: Xarvex +Date: Sun Apr 28 14:07:23 2024 -0500 + + Incorrect usage of list append + + Co-authored-by: William de Castro + +commit 22e0ef8f4b0fa0260598ae05bab8cccd98e94fc7 +Author: Andrew Arneson +Date: Sun Apr 28 12:57:21 2024 -0600 + + Cleanup Imports + +commit 13510023785583759f7ee5616a2416b286a6a98d +Author: Andrew Arneson +Date: Sun Apr 28 12:55:37 2024 -0600 + + Breakout ItemThumb and PreviewPanel from ts_qt.py + +commit 6e8baced7d2ce4e3967795070247dce6b3f927d3 +Author: Andrew Arneson +Date: Sun Apr 28 12:18:31 2024 -0600 + + Revert "Cannot split out ItemThumb or PreviewPanel due to close ties with driver" + + This reverts commit 6b9b813e26a19f09e80253fc794c843fb24292b5. + +commit 310fc0d958a3caf0b2978aab025ffd34d82e687b +Author: Andrew Arneson +Date: Sun Apr 28 12:17:16 2024 -0600 + + Re-enable typechecking and autocompletion for modals that rely on QtDriver in ts_qt.py + +commit 737be6199fec7cfd41304af2e877308d5143515d +Author: Xarvex +Date: Sun Apr 28 12:34:20 2024 -0500 + + DETACHED_PROCESS is no longer necessary + Causes program window to open below TagStudio + +commit ca9735ca86393afa767b71da48f80a579d061cff +Author: Andrew Arneson +Date: Sun Apr 28 11:09:06 2024 -0600 + + Split out remaining modals from ts_qt.py + +commit 4a9c4de56ae3aebc343a229931e39cc4ac33d7be +Author: Xarvex +Date: Sun Apr 28 11:31:18 2024 -0500 + + Further isolate program window from TagStudio + +commit f7c4e1ccc0ba19d902c98b9c135c80957a32a824 +Author: Andrew Arneson +Date: Sun Apr 28 10:28:05 2024 -0600 + + Revert "Cannot split out unlinked file functions due to close ties with driver" + + This reverts commit c848c57cb49a7c83615ee5d233fd8f7c0111a6cd. + +commit f6b131c4124e8e0dafc451dcda287d83b99e7c3b +Author: Andrew Arneson +Date: Sun Apr 28 10:28:05 2024 -0600 + + Revert "Cannot split out duped file functions due to close ties with driver" + + This reverts commit abd36e55b342abcf92f43c41734b5d57b640c92b. + +commit a695e222f4e45f7436487647a485c5d18e33db8c +Author: Andrew Arneson +Date: Sun Apr 28 10:28:04 2024 -0600 + + Revert "Cannot split out folder_to_tag file functions due to close ties with driver" + + This reverts commit 237bcd90b00ddd5e0131bbeb6cad9a3ee542c620. + +commit 0d6746abe02e82bb5653cdb7db92b1dfc6c3743f +Author: Andrew Arneson +Date: Sun Apr 28 10:28:04 2024 -0600 + + Revert "Cannot split out mirror entities file functions due to close ties with driver" + + This reverts commit a62dbc3f2d1b0a1fc4f2a60af3fd74e70af17595. + +commit 2d558efde7fcbd46c7b480329f3722ac12a629cc +Author: Xarvex +Date: Sun Apr 28 04:09:07 2024 -0500 + + Allow opening and selecting files in file managers for all platforms + Fixes: #81 + Refactored file opener helper to use already present open_file + Refactored open_file to allow option for file manager + +commit 82a53481f709cb4397163f5bc14dfbad574e5ff4 +Author: Andrew Arneson +Date: Sat Apr 27 21:40:53 2024 -0600 + + Missing Newlines + +commit d26b308ae297c310f5bb1844abc5939fc2ed79c5 +Author: Andrew Arneson +Date: Sat Apr 27 21:25:01 2024 -0600 + + split TextWidget from ts_qt.py + +commit 5431c1996a0202f933bc4c5e0c7dd0a14d7b764f +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit 731b6d1568c249396a4917fc10b1f1e91248ee7a +Merge: 68b075a 99cc8dc +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + * (merge) + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit 68b075a6c8ad3d55ca7fe7b0e0302f3e5ffe5354 +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + * (keep ts_qt.py) + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit 99cc8dc99162447ca277ad9f56a8b9b2e250002a +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + * (create ./widgets/text_edit.py) + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit cdba60c7d3d012cfd0dd4bc1280ee2b6f3e72759 +Author: Andrew Arneson +Date: Sat Apr 27 21:00:38 2024 -0600 + + Cleanup Imports + +commit 049582487861787a7427ba80d3626ca1db8eddfc +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 04:54:02 2024 +0200 + + Update requirements.txt to use last tested pyinstaller version + + Thanks to @williamtcastro for pointing it out + +commit 6b9b813e26a19f09e80253fc794c843fb24292b5 +Author: Andrew Arneson +Date: Sat Apr 27 20:52:51 2024 -0600 + + Cannot split out ItemThumb or PreviewPanel due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit ad85266f98d4de563862c0fbdd574332af296385 +Author: Andrew Arneson +Date: Sat Apr 27 20:46:16 2024 -0600 + + Error File Creation + +commit a62dbc3f2d1b0a1fc4f2a60af3fd74e70af17595 +Author: Andrew Arneson +Date: Sat Apr 27 20:45:04 2024 -0600 + + Cannot split out mirror entities file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit 237bcd90b00ddd5e0131bbeb6cad9a3ee542c620 +Author: Andrew Arneson +Date: Sat Apr 27 20:44:46 2024 -0600 + + Cannot split out folder_to_tag file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit abd36e55b342abcf92f43c41734b5d57b640c92b +Author: Andrew Arneson +Date: Sat Apr 27 20:43:35 2024 -0600 + + Cannot split out duped file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit 7b0064d14bbb9c1d5aa4ca64538df2a5ea5fe263 +Author: Andrew Arneson +Date: Sat Apr 27 20:42:24 2024 -0600 + + split FileExtensionModal from ts_qt.py + +commit c848c57cb49a7c83615ee5d233fd8f7c0111a6cd +Author: Andrew Arneson +Date: Sat Apr 27 20:36:21 2024 -0600 + + Cannot split out unlinked file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit ebf2c0bb99dfc0e45a531cb358f9f5afc691f771 +Author: Andrew Arneson +Date: Sat Apr 27 20:26:26 2024 -0600 + + split AddFieldModal from ts_qt.py + +commit 53fefb7497cdb5d506442cb2b633af3026e8d919 +Author: Andrew Arneson +Date: Sat Apr 27 20:22:02 2024 -0600 + + split TagBoxWidget from ts_qt.py + +commit a9afb8e2cfed276af7166c40af0e507938ada893 +Author: Andrew Arneson +Date: Sat Apr 27 20:15:14 2024 -0600 + + split TagBoxWidget from ts_qt.py + +commit f0019c70863b5c3355cf51a74b498bef23a53c9e +Author: Andrew Arneson +Date: Sat Apr 27 20:12:40 2024 -0600 + + split BuildTagPanel from ts_qt.py + +commit c8439c976f5082a6f81e37b3cff3a43b2c2cd5c6 +Author: Andrew Arneson +Date: Sat Apr 27 20:10:01 2024 -0600 + + split TagSearchPanel from ts_qt.py + +commit 4a3b0c103fae97a5ccd94644836e1bdf04ba5107 +Author: Andrew Arneson +Date: Sat Apr 27 19:58:35 2024 -0600 + + split TagWidget from ts_qt.py + +commit 6168434f3d4063f462106b9aa8463e0410545302 +Author: Andrew Arneson +Date: Sat Apr 27 19:52:02 2024 -0600 + + split ProgressWidget from ts_qt.py + +commit 9b7b38418336ea824fda38ff058893373fc9b007 +Author: Andrew Arneson +Date: Sat Apr 27 19:43:53 2024 -0600 + + split EditTextLine from ts_qt.py + +commit 5f6752e067c8c91194b373e7e9079fa093156668 +Author: Andrew Arneson +Date: Sat Apr 27 19:40:55 2024 -0600 + + split EditTextBox from ts_qt.py + +commit e71ef7f671a043758923e8f19f7e0017fc06c90b +Author: Andrew Arneson +Date: Sat Apr 27 19:35:52 2024 -0600 + + split PanelWidget and PanelModal from ts_qt.py + +commit a1fe57a3524dde5fe6d169d5df2cc0fff9973483 +Author: Andrew Arneson +Date: Sat Apr 27 19:22:42 2024 -0600 + + split ThumbRenderer from ts_qt.py + +commit 0364d3a95cf494b4b5cf3eff00458bb28145af9e +Author: Andrew Arneson +Date: Sat Apr 27 19:15:44 2024 -0600 + + split ThumbButton from ts_qt.py + +commit 63f8268fd485d39edc6565c9c57bf6ed97e1f864 +Author: Andrew Arneson +Date: Sat Apr 27 19:04:29 2024 -0600 + + split collage renderer from ts_qt.py + +commit e29b2838c66167e51f3b55ee7c5bc6e5a3b8aa46 +Author: Andrew Arneson +Date: Sat Apr 27 18:56:33 2024 -0600 + + split FieldContainer and FieldWidget from ts_qt.py + +commit 7caba3b825beb9b85c65fa4d16239dc64665b713 +Author: Andrew Arneson +Date: Sat Apr 27 18:45:59 2024 -0600 + + add missing empty line at end of file + +commit 74c4c6c85dda5de46af8cf719ee9247536655bf3 +Author: Andrew Arneson +Date: Sat Apr 27 18:40:07 2024 -0600 + + split FileOpenerHelper/Label from ts_qt.py + +commit abc9f3f4e4e26f2fd37963307ea40d1d3786175c +Author: Andrew Arneson +Date: Sat Apr 27 18:33:29 2024 -0600 + + split open_file func from ts_qt.py + +commit f26fd5a63ccad82a92e1b967cf0e977268058929 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:37 2024 -0600 + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit bb6a73e410856a009e385f0cb19fc9dbc49981f1 +Merge: 54b7067 91c9187 fb05d38 4665fb2 b25c1ef f160071 73ba643 effdd28 875bc34 77bbbe9 5f31fe4 2f61ac7 822aa4d d67f8b6 60d1d29 65a2fe6 30998a1 9c44d74 4de7865 8fed335 02542bd 36841da 58b0e94 4b7b915 6091916 273843f da1c3f8 aec0786 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:36 2024 -0600 + + * (merge) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 54b70676f3a6b934ed2b2cded5ad08bf532613d9 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:36 2024 -0600 + + * (keep ./ts_qt.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 91c918796da83389d618cc4a75083dbc018c1608 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/folders_to_tags.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit fb05d386c1bf66df9746d593c3fb69ec69b9e537 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/thumb_renderer.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 4665fb22ff8ae28624e31d2a86c037777433bfc3 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/collage_icon.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit b25c1efc9d5153415c4e7248002c309d5d8dc9de +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/thumb_button.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit f160071b279a7a1996626a9adc05785d19945211 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/item_thumb.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 73ba643132c06711f6d6ac431575b9dfb0a1312d +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/preview_panel.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit effdd28b80af506828adedcdfc6127f5c6f8e3e9 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./helpers/file_opener.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 875bc34519e8f7addb9c8ae3c26086cf50ea237c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/file_extension.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 77bbbe95b3a2fbf5eb28e9b4aca473723d40d9f8 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/add_field.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 5f31fe46235865c5852c7c6da9cfac17d197c3ad +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/relink_unlinked.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 2f61ac706fa8619c65ac815fb72228925449448e +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/delete_unlinked.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 822aa4df39856c1a9fc6f79fdcdeb8e6006aa63b +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/fix_unlinked.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit d67f8b6f0e87eed8661673c164493cc5e1029b99 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/mirror_entities.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 60d1d290a2ee7300acf50575a944f1f777539798 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/fix_dupes.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 65a2fe676d29911f8bbe2326db6cb67e91264d00 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/progress.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 30998a144aa1fb310783fb1bc660886ebef5d06c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/tag_database.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 9c44d74cb6320965d36efff8fbf158dd3e88ce9e +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/build_tag.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 4de7865aba0222f9f3bc5aa33e219b3af990cf82 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/tag_search.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 8fed3350f4d36be0e7854dbdc721db41ec9c1f42 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/edit_text.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 02542bda7e8331a063d026ef094f12926b5bcb00 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/__init__.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 36841da965410713652548a6780c37fb7a03b513 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/panel.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 58b0e94d65d1599f832384f6bd9fb4d0efdf6ac2 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/tag.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 4b7b915c6882f88e7894c89dd492191eab450b47 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/text_box_edit.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 6091916b86ae7d484782e284a014f33e6166809b +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/text_line_edit.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 273843f9c1386c34b3c827ac7a5523cc7018795c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/tag_box.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit da1c3f8fa83650b91558eb1e51320dbbd500f41b +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/fields.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit aec0786e618e8c5c5512d4c464b7ecfe2deacc5c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./helpers/open_file.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 9959eb1049ee63674ff6422a7bb0c21d61721237 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 02:00:17 2024 +0200 + + Update .gitignore to revert doubled entrys + +commit 4f00a8ac88b97ce0e4a9e79e04041b7b3ce7b89e +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 01:56:13 2024 +0200 + + Update .gitignore to ignore build specific files and folders + +commit 329c23e23c53e03bd3316f40c555130269f89de2 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 01:54:17 2024 +0200 + + Update requirements.txt to include pyinstaller + + Pyinstaller is used to build the windows executable + +commit f53a9249f04a9367778a78a8d9385e44d305161d +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 01:51:09 2024 +0200 + + Build script for windows + + Adds a build script for windows + +commit 60975705915cd5e05478cd4827530039dd652b5c +Merge: c955fb1 8541fc5 +Author: Travis Abendshien +Date: Sat Apr 27 16:26:11 2024 -0700 + + Merge branch 'text-thumbnails' + +commit 8541fc59d136a292628cee15f28f177a9df76989 +Author: Travis Abendshien +Date: Sat Apr 27 16:25:49 2024 -0700 + + Increased plaintext types; Exception handling + +commit c955fb1589a901888566e417a4702899e6e5c69d +Author: Travis Abendshien +Date: Sat Apr 27 15:59:56 2024 -0700 + + Code Style Changes + +commit 276cfaf6355fa913b7abfacc93096e434ab4f6e8 +Merge: 2110592 6bba7da +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 15:53:58 2024 -0700 + + Merge pull request #40 from chao-master/feature/typed-dict-and-typing + + 🏷️ Add strict typing dicts for ts_library.json + +commit 6bba7dafbc3ae9bf3755ef84d9442ea18e41afb4 +Merge: f0148c7 2110592 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 15:34:08 2024 -0700 + + Merge branch 'main' into feature/typed-dict-and-typing + +commit 21105929711a5db66ea9aca0b8c2209871690355 +Merge: 15de97c f0f8e0e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 15:27:58 2024 -0700 + + Merge pull request #72 from yedpodtrzitko/yed/readability + + improve code readability + +commit 15de97cfe71952c81cba9f2d8b5a601295462d3c +Merge: 114c1a4 1f9a13f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 14:58:17 2024 -0700 + + Merge pull request #58 from Creepler13/Folders-to-Tags + + Add folders to tags tool + +commit 114c1a4481940d8b606bd302fca67bcf66b9f537 +Merge: 31f4022 ade1fb1 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 13:33:59 2024 -0700 + + Merge pull request #69 from cirillom/image-preview + + Ability to open file or file location using context menu + +commit 1f9a13fc4d15726466254ea730c555bce61921fa +Author: Creepler13 +Date: Sat Apr 27 21:14:37 2024 +0200 + + Removed unused imports + +commit e2aba7ddf76ef73d062f3c06bb2601796147bc9e +Author: Creepler13 +Date: Sat Apr 27 21:13:57 2024 +0200 + + Added Proper Visualls to show what would be added + +commit f0f8e0ea7ea96dd07cc6b9e542c662fd76adaa5a +Author: yedpodtrzitko +Date: Sun Apr 28 01:43:37 2024 +0800 + + simplify bool conditions + +commit d5d9cd3e7ab2104c46dd09907f94b2de124be1a6 +Author: yedpodtrzitko +Date: Sun Apr 28 01:17:41 2024 +0800 + + improve code readability + +commit ade1fb1c112594d3682247dd31a3bd701b230d5e +Merge: 955d4a0 31f4022 +Author: Matheus Cirillo +Date: Sat Apr 27 09:54:16 2024 -0300 + + Merge remote-tracking branch 'tags/main' into image-preview + +commit 955d4a0c9f2b2419061b363aced4a2df646a3362 +Author: Matheus Cirillo +Date: Sat Apr 27 09:44:04 2024 -0300 + + fixed bug where it wouldn't open outside debug mode + +commit 31f402289565b55d3a84d11f0eb6055e9bf42374 +Author: Travis Abendshien +Date: Sat Apr 27 02:00:18 2024 -0700 + + Added File Extension Blacklist + + - All file types (minus JSON, XMP, and AAE) are now shown by default in the library (existing libraries will need to refresh) + - Added the Edit -> "Ignore File Extensions" option, providing the user with a way to blacklist certain file extensions from their library + - The targeted version number has been updated to 9.2.0 (this is not the final 9.2.0 release, commits will still be added before that release is packaged up) + +commit 5b4d35b5c07283a05a1f3f6c604cfbb9a601fbd7 +Author: Travis Abendshien +Date: Fri Apr 26 22:13:10 2024 -0700 + + Added default thumbnail for files + +commit 6831a8939277d211386c43189c26d69d0c7f39d5 +Author: Matheus Cirillo +Date: Fri Apr 26 23:19:24 2024 -0300 + + file opening preview panel context menu + +commit 5bd2aaaf9ec9b570db2a3021bf5024487c07d025 +Author: Matheus Cirillo +Date: Fri Apr 26 22:04:40 2024 -0300 + + context menu for thumbs + +commit c789d09b07575c8cba1fe93b14a46728b3d735a5 +Author: Travis Abendshien +Date: Fri Apr 26 17:33:02 2024 -0700 + + Plaintext Thumbs (Proof of Concept) + + **BASIC** support for rendering thumbnails for certain plaintext types (txt, md, html, etc.) using PIL. + Notable issues include: + - Long draw times (entire files are read) + - No text wrapping + - Hardcoded style + - Blurry text in preview pane images + - No cached thumbnails (I call dibs on the thumbnail caching system) + +commit a9cbab40abbe7f468132f9fae61b481cd25b2e60 +Author: Matheus Cirillo +Date: Fri Apr 26 20:40:43 2024 -0300 + + works as expected (open file in explorer) in windows + +commit bcf4453c8d3bbe60404b63bff14e62b3c04a2016 +Author: Matheus Cirillo +Date: Fri Apr 26 20:17:54 2024 -0300 + + clickable label to the right place + +commit 18dcedd6a0b7f142252301bc1c0afa2f704d2f8b +Author: Matheus Cirillo +Date: Fri Apr 26 20:13:58 2024 -0300 + + code cleanup + +commit 79e0263e972c955a467fd6e527820542208f1756 +Author: Matheus Cirillo +Date: Fri Apr 26 20:09:43 2024 -0300 + + file_label opens file path + +commit 960b2038ef6640dcb259bd7b97a13289c174593a +Merge: 9020aad 88292f4 +Author: Creepler13 +Date: Fri Apr 26 23:52:20 2024 +0200 + + Merge branch 'Folders-to-Tags' of https://github.com/Creepler13/TagStudio into Folders-to-Tags + +commit 88292f42af01118cf180e7af8b8aa1566bb3ff5f +Merge: 3cd6fa1 749d7c8 +Author: Creepler13 +Date: Fri Apr 26 23:37:47 2024 +0200 + + Merge branch 'Folders-to-Tags' of https://github.com/Creepler13/TagStudio into Folders-to-Tags + +commit 3cd6fa136f3856e6e9f38c8690f37016177b1abc +Author: Creepler13 +Date: Fri Apr 26 14:58:21 2024 +0200 + + Finished folders to Tags tool + +commit 0541c9fb016feef55473ecbd182ab3ded6e9fd7c +Author: Creepler13 +Date: Fri Apr 26 00:06:34 2024 +0200 + + first prototype + +commit 039c574cf4efdf37ee4771911d1933957f5770bf +Merge: 992a840 042ed92 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:36:57 2024 -0700 + + Merge pull request #60 from Thesacraft/main + + Fixes issue with badges not getting updated if meta tags gets removed + +commit 042ed9209f116eb5214f3206a2dd133ca9cb2389 +Merge: 1e17b6c 992a840 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 22:33:14 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 992a840dfe16249af1cb19e7d499373a7a6e655a +Merge: a0b0178 dde7eec +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:32:55 2024 -0700 + + Merge pull request #63 from DrRetro2033/Shortcuts + + Keyboard Shortcuts + +commit 1e17b6c467c10d404ee4f999197f60704e82356f +Merge: 243d786 a0b0178 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 22:29:04 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit a0b017815e106375a40a088afe800fbc81f56625 +Merge: 80d6e09 85ae167 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:23:32 2024 -0700 + + Merge pull request #61 from DrRetro2033/main + + A simple Tag Database. + +commit 80d6e0983487036e7ffef5dc402a1a27193574ff +Merge: 00651e6 66fec73 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:10:39 2024 -0700 + + Merge pull request #64 from xarvex/file-open-2 + + Windows: fix files w/ spaces opening cmd rather than associated program + +commit 66fec731368895f41c640e22d56e58fef559e747 +Author: Xarvex +Date: Fri Apr 26 15:05:07 2024 -0500 + + Correct usage of start command + +commit 1f7a5d3cbb00ceb33aa7edcf87dee72c2c19ac1f +Author: Xarvex +Date: Fri Apr 26 14:46:13 2024 -0500 + + Windows: fix files w/ spaces opening cmd rather than associated program + +commit dde7eec946a9e7b1df407375694d7e9a496aa990 +Author: DrRetro +Date: Fri Apr 26 12:01:02 2024 -0400 + + Keyboard Shortcuts Added to basic Functions + +commit 85ae16781796ad8d38907fb10ddebb05bebaf912 +Author: DrRetro +Date: Fri Apr 26 11:01:09 2024 -0400 + + Fixed Issue with Tags in Database not refreshing after Tag was Edited. + +commit 5feb3a6d203a1d5e5b572fe88df3e937541e0e6b +Author: DrRetro +Date: Fri Apr 26 10:51:49 2024 -0400 + + Fixed Issue with Previous Commit + +commit f23ff1669eece3d92f04157e9906ccb96bddc728 +Author: DrRetro +Date: Fri Apr 26 10:50:19 2024 -0400 + + Fixed Issue when Searching Tags, Editing Option was not Connected to Searched TagWidets + +commit 6b1035b0f61b97d71e97d7a85aaf4503b13b1587 +Author: DrRetro +Date: Fri Apr 26 10:07:59 2024 -0400 + + A simple TagDatabasePanel has been created based off TagSearchPanel. + + To access, go to Edit > Tag Database + +commit 243d7862980d00c69883f2a32e5e99df6a1d0b3b +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 15:41:37 2024 +0200 + + Update ts_qt.py to update badges if meta tag field is removed + +commit 898ce5fdc73e4b186228fc69beb7a2ca6b80438e +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 15:34:06 2024 +0200 + + Update ts_qt.py to update badges if meta tag field is removed + +commit 749d7c8fc094de80cdade7046ad305a8a4e86158 +Author: Creepler13 +Date: Fri Apr 26 14:58:21 2024 +0200 + + Finished folders to Tags tool + +commit 1774a00d3441ec7794a058913039b957f9013339 +Author: Creepler13 +Date: Fri Apr 26 00:06:34 2024 +0200 + + first prototype + +commit 9020aaddf4667a85d0061c87e20bcbe6929496d6 +Author: Creepler13 +Date: Fri Apr 26 14:58:21 2024 +0200 + + Finished folders to Tags tool + +commit 00651e6242f97c1945b06674f622b73699c836a6 +Author: Travis Abendshien +Date: Fri Apr 26 01:45:03 2024 -0700 + + Fixed Incorrect Fields Being Updated in Multi-Selection + + Fixes #55 + + Co-Authored-By: Andrew Arneson + Co-Authored-By: Xarvex <60973030+xarvex@users.noreply.github.com> + +commit b7638046a34e48cfb0d46e6bc57e18f724b61291 +Author: Travis Abendshien +Date: Thu Apr 25 22:22:28 2024 -0700 + + Addded TagStudio.ini to gitignore; Updated Qt resource comment + +commit c446911b59d55e06f314c3ee21e16706164a57b9 +Merge: ff488da 201a63e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Apr 25 22:18:00 2024 -0700 + + Merge pull request #34 from DrRetro2033/main + + Mutli-Select Tagging + +commit 201a63e27363b16516aeb74394c7a939ba7a176c +Author: DrRetro +Date: Thu Apr 25 20:51:12 2024 -0400 + + Refresh_badges added to QtDriver, and favorite and archived badges checks selection. + +commit d8faa27dbf5e888a076d8787097d67dada069493 +Author: Creepler13 +Date: Fri Apr 26 00:06:34 2024 +0200 + + first prototype + +commit ff488da6c8cdf4b5f566f8a1122cfab69d577425 +Merge: 00dea27 2514809 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Apr 25 14:22:12 2024 -0700 + + Merge pull request #51 from Loran425/main + + QOL Open last opened library + +commit 2514809e173087bb169eaecf87323b4b17fb879c +Author: Andrew Arneson +Date: Thu Apr 25 14:20:46 2024 -0600 + + remove doubled up line + +commit 82bb63191a6033b6e4f855b68fce465659a8a3e8 +Author: Andrew Arneson +Date: Thu Apr 25 14:12:40 2024 -0600 + + Tweak setting location to ensure compatibility between IDEs + Explicitly call sync to save `.ini` file + +commit 9a076a775f51a7581f616154437fad28f552560e +Merge: 5c746a9 00dea27 +Author: Andrew Arneson +Date: Thu Apr 25 12:23:55 2024 -0600 + + Merge remote-tracking branch 'upstream/main' + +commit 5c746a9950e2c65f107359ff9eb9316a08fd0f3a +Author: Andrew Arneson +Date: Thu Apr 25 12:23:13 2024 -0600 + + add Qsettings and restore last library on open + Settings are currently stored as an INI file within the project directory rather than messing with registry or system configurations. + +commit 00dea27279fcfcc742dfce183e4fa17ff33164df +Merge: 13c2ca1 a0dc34a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Apr 25 10:39:42 2024 -0700 + + Merge pull request #46 from eltociear/patch-1 + + docs: update documentation.md + +commit a0dc34a5ad508cfe8efb7adb01ca500c810f71c3 +Author: Ikko Eltociear Ashimine +Date: Fri Apr 26 00:46:32 2024 +0900 + + docs: update documentation.md + + minor fix + +commit 2a46251831dc97df31a8b209138bea7270f715fb +Author: DrRetro +Date: Thu Apr 25 09:57:37 2024 -0400 + + Fixed slow down from refreshing all thumbnails for every added and removed tag. + +commit 92834800e2f9d64c2d0878a09fce127a6358aa7a +Merge: 794401a 13c2ca1 +Author: DrRetro +Date: Thu Apr 25 09:46:22 2024 -0400 + + Merge remote-tracking branch 'upstream/main' + +commit 794401ae5898446b9b02af9c025ca7b155e0838e +Author: DrRetro +Date: Thu Apr 25 09:40:12 2024 -0400 + + Archive Button and Favorite Button Now work + +commit b2fbc4b4a2e31fa9eecdedc555bc4cbd11419fde +Author: DrRetro +Date: Thu Apr 25 09:34:14 2024 -0400 + + Large Changes to how code gets Field ID. + +commit 13c2ca1ea55cebb0b16977bf8e2b362710fe424f +Author: Travis Abendshien +Date: Thu Apr 25 01:41:32 2024 -0700 + + Allows shortcut files to show in library + + Shortcut files (.lnk, .url, .desktop) can now be added to the library (no thumbnail previews currently). + +commit e823bb5c93d2bc946032e66e55a541fa50ebe5a4 +Merge: b9b2361 7652289 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 22:37:27 2024 -0700 + + Merge pull request #41 from Loran425/feature/modify-imports + + Feature/modify imports + +commit 7652289fe5767232c6e626d84e2c1325ff9e6113 +Merge: de09da1 b9b2361 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 22:36:56 2024 -0700 + + Merge branch 'main' into feature/modify-imports + +commit b9b23611f73a14c983432dde2b89d72e50f2e18e +Merge: 6e7567a 956ffd4 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 22:18:56 2024 -0700 + + Merge pull request #43 from xarvex/file-open-1 + + Allow files to be opened in their respective programs in the background for Windows, MacOS, and Linux + +commit de09da1592202a2d1821b010bcd668fe6f726a5a +Author: Andrew Arneson +Date: Wed Apr 24 23:18:16 2024 -0600 + + remove tagstudio prefix for source libraries + +commit 956ffd4663ce98dc4f124fa6287514efbb01b3c8 +Author: Xarvex +Date: Thu Apr 25 00:07:14 2024 -0500 + + Properly detach process on Windows + +commit 8b4b2507fa841af1816493a9380230d9b6b46da5 +Author: Xarvex +Date: Wed Apr 24 23:50:26 2024 -0500 + + Account for start being a shell builtin on Windows + +commit f125e5a50d63af63d4f8f8f9321354d8f850af6b +Author: Xarvex +Date: Wed Apr 24 23:37:36 2024 -0500 + + Implement file opening for Linux and MacOS, allow Windows in background + Note: this is only tested on Linux + +commit 0b1c097f978dc60f16d9646b62021a5e8e76be16 +Author: Andrew Arneson +Date: Wed Apr 24 22:00:40 2024 -0600 + + update tagstudio.py refrences to tag_studio.py + +commit 2b5697ea50ecf665c7b0d5862672cbb36efdbc40 +Author: Andrew Arneson +Date: Wed Apr 24 21:51:43 2024 -0600 + + Remove wildcard Imports + +commit 4e5b7b1c7df1810c8bdfda0bba4ea4f460e5ec85 +Author: Andrew Arneson +Date: Wed Apr 24 21:51:22 2024 -0600 + + Fix reference to datetime + +commit 0b4ccac5ff2006cf2722547754542324504e8cba +Author: Andrew Arneson +Date: Wed Apr 24 21:14:13 2024 -0600 + + Import Humanfriendly format_size when importing format_timespan + +commit 952ed8f27db51d48d906d471282b20c579c32b48 +Author: Andrew Arneson +Date: Wed Apr 24 19:53:01 2024 -0600 + + Remove Unused Imports + +commit c0c18dabc135409dc94508bf62179c245aa8266a +Author: Andrew Arneson +Date: Wed Apr 24 19:52:10 2024 -0600 + + Optimize & Sort Imports + +commit 7b48e5e17e005d177e4e417474bdeea13fd226d1 +Author: Andrew Arneson +Date: Wed Apr 24 19:48:25 2024 -0600 + + Prevent Import collisions + Rename tagstudio.py to tag_studio.py + +commit 6e7567a192848ff2cb9f89c03c3bca85fce8acbf +Author: Travis Abendshien +Date: Wed Apr 24 17:12:40 2024 -0700 + + Update launch.json + + Updated launch.json to be cross-platform between Windows and UNIX systems + +commit ad6fefbe2b02488e949b86a722cd0bce9d275363 +Merge: 4a55af6 4184848 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 17:01:16 2024 -0700 + + Merge pull request #35 from dakota-marshall/nixos-support + + Add NixOS Dev Environment Support + +commit 4a55af66ee7e72c24e598d2ef707d0004b188fb4 +Author: Travis Abendshien +Date: Wed Apr 24 16:22:36 2024 -0700 + + Remove duplicate tag IDs when loading library + + Tags with duplicate IDs inside a library save file are removed when opening the library. Cleans up the mess from #38. + +commit f0148c7f35016a2b6e3f0eff8cbc002a1239d4b7 +Author: Ripp_ <3843106+chao-master@users.noreply.github.com> +Date: Wed Apr 24 23:44:40 2024 +0100 + + 🏷️ Add strict typing dicts for ts_library.json + +commit ac00890c90a319df47d4cec8b1d3b91dcbf9e42f +Merge: e69e499 432f485 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 15:26:46 2024 -0700 + + Merge pull request #39 from Thesacraft/main + + Update library.py to not duplicate default tags on save + +commit 9e61d45ea502d8d9deb7cf59245361a3f3232536 +Author: DrRetro +Date: Wed Apr 24 18:11:41 2024 -0400 + + Rewrote Multi-Select to use field templates. + +commit 432f4851f3e02baa487951f0d889bc24fa35180a +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Thu Apr 25 00:02:32 2024 +0200 + + Update library.py to not duplicate default tags on save + +commit 4184848f9ce623a6a6ab32c8f5fec62af6c75706 +Author: Dakota Marshall +Date: Wed Apr 24 16:51:06 2024 -0400 + + Update Nix flake pinned hash for python3.12 and QT 6.6.3 support + +commit bc0f8b991ea5ba6ef2ad278d815ae9b47ac4173f +Author: Dakota Marshall +Date: Wed Apr 24 15:39:36 2024 -0400 + + Update install documentation for NixOS + +commit c4e8d40abe84f90b5e4b16a769e75cb954ef9ded +Author: Dakota Marshall +Date: Wed Apr 24 15:39:21 2024 -0400 + + Update bash script to use env for nix support + +commit c7492b78d3f442abecc42260b851cf1f3d5d7ce6 +Author: Dakota Marshall +Date: Wed Apr 24 15:39:12 2024 -0400 + + Add flake files for working Nix environment + +commit e69e4998e53a250630229787b58f27029d2b563c +Merge: 0b9b4da 844f756 +Author: Travis Abendshien +Date: Wed Apr 24 13:14:21 2024 -0700 + + Merge branch 'main' of https://github.com/CyanVoxel/TagStudio + +commit 0b9b4dac73ed2f85301a2cbd20c67fce88d665d4 +Author: Travis Abendshien +Date: Wed Apr 24 13:14:11 2024 -0700 + + Updated Prerequisites to Python 3.12 + +commit 844f756dba570e627d00c4d2be750cfd825132e4 +Merge: 071100b 129d336 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 13:13:21 2024 -0700 + + Merge pull request #32 from Thesacraft/main + + python 3.12 support + +commit 6e341e097b279543f1d4c52366b92a53016af090 +Merge: def244b 071100b +Author: DrRetro <86109384+DrRetro2033@users.noreply.github.com> +Date: Wed Apr 24 15:25:15 2024 -0400 + + Merge pull request #1 from CyanVoxel/main + + Update + +commit def244b7325dff89784dbad6c27d271b6c401998 +Author: DrRetro +Date: Wed Apr 24 15:18:22 2024 -0400 + + Fixed bug that occured with adding other fields to one entry. + +commit 129d3363571a3f63df480ebfafe6167e5c484b22 +Merge: e8ab805 071100b +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 21:13:38 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 071100bf9030dd73f9c748c633523ae6ccde3dbf +Merge: 0529f1f e161290 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 12:04:11 2024 -0700 + + Merge pull request #33 from LennartCode/patch-1 + + docs(README.md): Removed typo. + +commit e161290571971748ee11a87eff00d638af80973a +Author: Lennart S <55597910+LennartCode@users.noreply.github.com> +Date: Wed Apr 24 20:59:41 2024 +0200 + + docs(README.md): Removed typo. + +commit e8ab8059cdc0d1194341f5fc185ed38c49dbf26f +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 19:18:24 2024 +0200 + + Update requirements.txt to support python 3.12 + +commit 7ec29228b5eb193c33c3da6a22345df488a6b9c7 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 19:15:17 2024 +0200 + + Update requirements.txt to also support python3.12 + +commit 3974c1b031e4b500abb855741075c4ccfaef216e +Author: DrRetro +Date: Wed Apr 24 12:09:07 2024 -0400 + + Multi-Select Removing Tags + +commit fba2f8f46ba9e45591b4dc3c5ffce59033d8acaf +Author: DrRetro +Date: Wed Apr 24 11:31:53 2024 -0400 + + Multi-Select Tag Adding + +commit 0529f1fe7ed9ac30f473919a55bd47f8d99d44ea +Author: Travis Abendshien +Date: Tue Apr 23 23:22:29 2024 -0700 + + Fixed library creation bug inside of empty .TagStudio folder + + Fixed a library creation bug where the program would malfunction when trying to create a new library from a folder called ".TagStudio". + +commit 59be7c0cf9baa914c7699dbf12f4622f30829a06 +Merge: 45e7658 dfe2b57 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 22:21:41 2024 -0700 + + Merge pull request #30 from Loran425/main + + Allow network path libraries + +commit dfe2b5795282181dd568ccbb3c24726d05c59d34 +Author: Andrew Arneson +Date: Tue Apr 23 22:59:18 2024 -0600 + + Allow network path libraries + Swap normalized path strip from using strip to using rstrip to avoid stripping leading slashes + +commit 45e765862d7ec2bf2928134a91f0251a4d0b2068 +Author: Travis Abendshien +Date: Tue Apr 23 20:10:16 2024 -0700 + + Fixed forward slash being stripped from Unix paths + +commit cf1ce6bb243e3df215fff689cc4b95dd278c0e56 +Merge: 2e57e03 e3e1c55 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 17:33:09 2024 -0700 + + Merge pull request #27 from Thesacraft/main + + Prevent exceptions when no Library is Loaded + +commit e3e1c55fabdd5e99505b25b699ecb65209952c1d +Merge: fffd9db 2e57e03 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 02:28:34 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 2e57e0397ca550724207ddc2a314b9c8124d302b +Author: Travis Abendshien +Date: Tue Apr 23 17:10:23 2024 -0700 + + Extended filetype support + + Added rudimentary support for audio types, text types, spreadsheets, presentations, archives, and programs. These files will now be scanned and picked up when refreshing the library. + +commit 5e33d07e395097031b0849e0499c93a25946fcab +Author: Travis Abendshien +Date: Tue Apr 23 16:26:10 2024 -0700 + + Removed unused dependencies + +commit fffd9dba6c472441fec48d086c189505687a7239 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 01:17:30 2024 +0200 + + Update ts_qt.py to prevent exceptions in file menu + + Before this Refresh Directorys/Save Library/Save Library Backup would throw an exception if no library was loaded this prevents that + +commit 98a01aea8044e370e0d25d1ac2fb28d17e846e59 +Merge: 1489d56 d974aa7 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 00:55:17 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 1489d56be77acd0506b9e5112a0eff0e53670002 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 00:53:41 2024 +0200 + + Update ts_qt.py to not throw Errors when no library is open + + Before this the Refresh/Save Library/Save Library Backup would throw an Error when no Library is open + +commit d974aa777ced011a3fb57bf56a07cccdb1c7dafc +Author: Travis Abendshien +Date: Tue Apr 23 15:49:05 2024 -0700 + + Removed (most) janky theme overriding (#5) + + - Removed most of the temporary theming that was clashing with Qt, especially in system light mode + - Possibly fixed the "transparent menu" issue + +commit f67b26fbd69141ba88750261996abd91f7f0dd42 +Author: Travis Abendshien +Date: Tue Apr 23 13:31:53 2024 -0700 + + Added SIGTERM handling (#13) + + - Also removed miscellaneous whitespace + - Removed leftover print statement on startup + +commit a074bed5402d326261637682ee4cc9f43463f04b +Merge: 9afd3d2 a55e649 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 11:29:28 2024 -0700 + + Merge pull request #22 from Thesacraft/main + + Update ts_qt.py to fix bootup bug + +commit a55e649d839592074a50350edfac652e3cd32d68 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Tue Apr 23 20:20:13 2024 +0200 + + Update ts_qt.py to fix bootup bug + + Fixes the visual bug + +commit 9afd3d2aa8afb3845d59a178b13aa4defd05a21d (upstream/Alpha-v9.1) +Merge: f05f8de 5722521 +Author: Travis Abendshien +Date: Tue Apr 23 10:21:27 2024 -0700 + + Merge branch 'main' of https://github.com/CyanVoxel/TagStudio + +commit f05f8de4f632132f1008151427cf760102654a28 +Author: Travis Abendshien +Date: Tue Apr 23 10:21:15 2024 -0700 + + Update README.md + + - Added instructions for how to launch the shell script on Linux + - Clarified macOS instructions regarding the venv + +commit 5722521319b2a1499b75abd2c9db66e997c50f36 +Merge: 6c5f0c2 70500ed +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 10:00:56 2024 -0700 + + Merge pull request #10 from OleMortensen8/main + + added Start script to boot into linux provided you have python installed + +commit 70500ed9fd0a3c6f85823600b66046bec87c31e8 +Author: Ole Vølund Skov Mortensen <22987563+OleMortensen8@users.noreply.github.com> +Date: Tue Apr 23 07:32:13 2024 +0200 + + added Start script to boot into linux provided you have python installed + +commit 6c5f0c215142f65b7c640380c71d5140f78f4aeb +Merge: 95927a1 e46d87e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 22 19:23:59 2024 -0700 + + Merge pull request #6 from 0xnim/main + + Add Inverted Images for Light/Dark Mode + +commit e46d87ededcff51aa5a0279e56c43ff400ac9246 +Author: Niklas Wojtkowiak +Date: Mon Apr 22 22:19:49 2024 -0400 + + Revert changes for creation of inverted masks + +commit b4bef642844465ef7d3c40b7d574c871bfbbcb91 +Author: Niklas Wojtkowiak +Date: Mon Apr 22 21:27:12 2024 -0400 + + Add Inverted Images for Light/Dark Mode + +commit 95927a1cea262f5eca33ede994b75e6e4feedd3b +Author: Travis Abendshien +Date: Mon Apr 22 16:32:23 2024 -0700 + + Update README.md + + Added clarification for different Python aliases in the instructions. + +commit bd48850bc6e3c189bc645d2bbfc32ecf35d7dc94 +Author: Travis Abendshien +Date: Mon Apr 22 15:33:59 2024 -0700 + + Updated Python version requirements + +commit 5f6782d70555cb5d9e0db9b254d4227fad06f692 +Author: Travis Abendshien +Date: Mon Apr 22 13:40:23 2024 -0700 + + Disabled test macro running upon adding new entries + +commit b01b047d427bf4b3809577a7d03596544b7747f5 +Author: Travis Abendshien +Date: Mon Apr 22 12:38:07 2024 -0700 + + Update README.md + +commit d63a978fb03e496be38db600b501cb482d302f1c +Author: Travis Abendshien +Date: Mon Apr 22 11:52:22 2024 -0700 + + Alpha v9.1.0 + + Initial public release + +commit bb5dff7daa2846f47e8c015134e4e18c4d5d17ec +Author: Travis Abendshien +Date: Wed Apr 17 05:14:01 2024 -0700 + + Initial commit diff --git a/tagstudio/src/core/library/alchemy/enums.py b/tagstudio/src/core/library/alchemy/enums.py index 3b336e7ae..754869f16 100644 --- a/tagstudio/src/core/library/alchemy/enums.py +++ b/tagstudio/src/core/library/alchemy/enums.py @@ -63,7 +63,7 @@ class ItemType(enum.Enum): class SortingModeEnum(enum.Enum): DATE_ADDED = "file.date_added" - Date_CREATED = "file.date_created" + DATE_CREATED = "file.date_created" DATE_MODIFIED = "file.date_modified" diff --git a/tagstudio/src/core/library/alchemy/library.py b/tagstudio/src/core/library/alchemy/library.py index c0530e419..7b8a4c547 100644 --- a/tagstudio/src/core/library/alchemy/library.py +++ b/tagstudio/src/core/library/alchemy/library.py @@ -673,6 +673,10 @@ def search_library( match search.sorting_mode: case SortingModeEnum.DATE_ADDED: sort_on = Entry.id + case SortingModeEnum.DATE_CREATED: + sort_on = Entry.date_created + case SortingModeEnum.DATE_MODIFIED: + sort_on = Entry.date_modified statement = statement.order_by(asc(sort_on) if search.ascending else desc(sort_on)) statement = statement.limit(search.limit).offset(search.offset) diff --git a/tagstudio/src/core/utils/refresh_dir.py b/tagstudio/src/core/utils/refresh_dir.py index ee4287293..67aa00505 100644 --- a/tagstudio/src/core/utils/refresh_dir.py +++ b/tagstudio/src/core/utils/refresh_dir.py @@ -1,4 +1,4 @@ -import datetime as dt, timezone +from datetime import datetime as dt from collections.abc import Iterator from dataclasses import dataclass, field from pathlib import Path @@ -40,16 +40,16 @@ def get_file_times(self, file_path: Path): stat = file_path.stat() system = platform.system() if system == 'Windows': # Windows - date_created = dt.fromtimestamp(stat.st_ctime, timezone.utc) + date_created = dt.fromtimestamp(stat.st_ctime, dt.timezone.utc) elif system == 'Darwin': # macOS - date_created = dt.fromtimestamp(stat.st_birthtime, timezone.utc) + date_created = dt.fromtimestamp(stat.st_birthtime, dt.timezone.utc) else: # Linux and other systems try: - date_created = dt.fromtimestamp(stat.st_birthtime, timezone.utc) + date_created = dt.fromtimestamp(stat.st_birthtime, dt.timezone.utc) except AttributeError: # st_birthtime is not available on some Linux filesystems - date_created = dt.fromtimestamp(stat.st_ctime, timezone.utc) - date_modified = dt.fromtimestamp(stat.st_mtime, timezone.utc) + date_created = dt.fromtimestamp(stat.st_ctime, dt.timezone.utc) + date_modified = dt.fromtimestamp(stat.st_mtime, dt.timezone.utc) return date_created, date_modified def save_new_files(self): @@ -58,12 +58,14 @@ def save_new_files(self): entries = [] for entry_path in self.files_not_in_library: date_created, date_modified = self.get_file_times(entry_path) + if date_created is None or date_modified is None: + continue # Skip files that could not be processed entries.append( Entry( path=entry_path, folder=self.library.folder, fields=[], - date_added=dt.now(timezone.utc), + date_added=dt.now(), date_created=date_created, date_modified=date_modified, ) @@ -123,11 +125,10 @@ def refresh_dir(self, lib_path: Path) -> Iterator[int]: # Update date_modified for existing entries if it has changed entry = self.library.get_entry_by_path(relative_path) if entry: - date_modified = datetime.fromtimestamp(f.stat().st_mtime, timezone.utc) + date_modified = dt.fromtimestamp(f.stat().st_mtime, dt.timezone.utc) if entry.date_modified != date_modified: entry.date_modified = date_modified self.library.update_entry(entry) - end_time_total = time() yield dir_file_count From 8f17c362203a368c5860599b75c2e89e6c8c1fc5 Mon Sep 17 00:00:00 2001 From: simjeehza Date: Wed, 12 Feb 2025 19:46:38 -0800 Subject: [PATCH 3/6] Compare --- tagstudio/src/core/library/alchemy/library.py | 6 +++++- tagstudio/src/core/library/alchemy/models.py | 2 +- tagstudio/src/core/utils/refresh_dir.py | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tagstudio/src/core/library/alchemy/library.py b/tagstudio/src/core/library/alchemy/library.py index 7b8a4c547..b2e055021 100644 --- a/tagstudio/src/core/library/alchemy/library.py +++ b/tagstudio/src/core/library/alchemy/library.py @@ -222,6 +222,8 @@ def migrate_json_to_sqlite(self, json_lib: JsonLibrary): for child_id in tag.subtag_ids: self.add_parent_tag(parent_id=tag.id, child_id=child_id) + + print("\n\n\n\nHERE\n\n\n\n\n") # Entries self.add_entries( [ @@ -231,6 +233,8 @@ def migrate_json_to_sqlite(self, json_lib: JsonLibrary): fields=[], id=entry.id + 1, # JSON IDs start at 0 instead of 1 date_added=datetime.now(), + date_modified=datetime.now(), + date_created=datetime.now(), ) for entry in json_lib.entries ] @@ -287,7 +291,7 @@ def open_sqlite_library(self, library_dir: Path, is_new: bool) -> LibraryStatus: drivername="sqlite", database=str(self.storage_path), ) - # NOTE: File-based databases should use NullPool to create new DB connection in order to + # NOTE: File-based databases should use NullPool ito create new DB connection in order to # keep connections on separate threads, which prevents the DB files from being locked # even after a connection has been closed. # SingletonThreadPool (the default for :memory:) should still be used for in-memory DBs. diff --git a/tagstudio/src/core/library/alchemy/models.py b/tagstudio/src/core/library/alchemy/models.py index 6f77b1a42..17751a054 100644 --- a/tagstudio/src/core/library/alchemy/models.py +++ b/tagstudio/src/core/library/alchemy/models.py @@ -272,7 +272,7 @@ class ValueType(Base): is_default: Mapped[bool] position: Mapped[int] - # add relations to other tables + # add relations to otheu tables text_fields: Mapped[list[TextField]] = relationship("TextField", back_populates="type") datetime_fields: Mapped[list[DatetimeField]] = relationship( "DatetimeField", back_populates="type" diff --git a/tagstudio/src/core/utils/refresh_dir.py b/tagstudio/src/core/utils/refresh_dir.py index 67aa00505..7d6d982e6 100644 --- a/tagstudio/src/core/utils/refresh_dir.py +++ b/tagstudio/src/core/utils/refresh_dir.py @@ -66,8 +66,8 @@ def save_new_files(self): folder=self.library.folder, fields=[], date_added=dt.now(), - date_created=date_created, - date_modified=date_modified, + date_created=dt.now(), + date_modified=dt.now(), ) ) self.library.add_entries(entries) From fab21eca6a81811ec42a4ef07adf6c36b84cd41d Mon Sep 17 00:00:00 2001 From: Hamza Simjee Date: Thu, 20 Mar 2025 11:40:04 -0700 Subject: [PATCH 4/6] FIXED --- h origin date-sorting | 8518 +++++++++++++++++ src/tagstudio/core/library/alchemy/enums.py | 2 + src/tagstudio/core/library/alchemy/library.py | 34 +- src/tagstudio/core/library/alchemy/models.py | 2 +- src/tagstudio/core/utils/refresh_dir.py | 27 +- 5 files changed, 8577 insertions(+), 6 deletions(-) create mode 100644 h origin date-sorting diff --git a/h origin date-sorting b/h origin date-sorting new file mode 100644 index 000000000..113c19d83 --- /dev/null +++ b/h origin date-sorting @@ -0,0 +1,8518 @@ +commit c1b87cc0a132f69a460c90af56339c55a4a67873 (HEAD -> date-sorting) +Author: simjeehza +Date: Tue Jan 28 11:11:17 2025 -0800 + + feat: start storing date_created and date_modified + +commit ba7e13041ba52d063879689a0b22d92748aaa49f (upstream/main, origin/main, origin/HEAD, main) +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Jan 28 01:57:01 2025 -0800 + + feat: add date columns to the entries table (#740) + + * feat: add date_created, date_modified, and date_added columns to entries table + + * feat: start storing date_added dates + +commit 1ba97d50c2ee7934aaa82b8be7f11bea3f4aa62f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Jan 28 01:19:30 2025 -0800 + + refactor: change `exception` log levels to `error` inside library.py + +commit 20d788af29eb975d6d84bc7b33c74cb35b034240 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 23:49:39 2025 -0800 + + fix: refactor and fix bugs with missing_files.py (#739) + + * fix: relink unlinked entry to existing entry without sql error (#720) + + * edited and added db functions get_entry_full_by_path & merge_entries + + * implemented edge case for entry existing on relinking + + * added test for merge_entries + + * fix: don't remove item while iterating over list + + * fix: catch `FileNotFoundError` for unlinked raw files + + * refactor: rename methods and variables in missing_files.py + + * refactor: rename `missing_files_count` to `missing_file_entries_count` + + --------- + + Co-authored-by: mashed5894 + +commit 458925fbf74b77d928617925a17c7da9af40fd25 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 12:08:16 2025 -0800 + + translations: fix typo in drop import + +commit f96ea6b546b37d9086f64e5da7ad0edc7b68925d +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:48:57 2025 -0800 + + fix: always catch db mismatch (#738) + + * fix: always catch db mismatch + + * chore: remove/modify log statements + + * translations: translate library version mismatch + + * style: fix line over col limit + +commit 19cdd1bf9285758cfce4b953d3e397d759bcd13a +Author: Weblate (bot) +Date: Mon Jan 27 20:48:28 2025 +0100 + + translations: update Czech, Hungarian (#727) + + * Translated using Weblate (Czech) + + Currently translated at 1.7% (4 of 224 strings) + + Added translation using Weblate (Czech) + + Co-authored-by: Hosted Weblate + Co-authored-by: Jirka Čapek + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/cs/ + Translation: TagStudio/Strings + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (224 of 224 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Jirka Čapek + Co-authored-by: Szíjártó Levente Pál + +commit 2a97a5b3aa5b358a4183c70d4bb2b39c72dec5bd +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:43:04 2025 -0800 + + perf: add all new library entries at once (#737) + +commit 14599e90a34c1074af1383b1caa7d8df933b4967 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:41:01 2025 -0800 + + fix: keep initial id order in `get_entries_full()` (#736) + + * fix: keep initial id order in `get_entries_full()` + + * fix: correct variable names + +commit ee14e2c200facd5afb1f36ab998717ac43f421d6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:40:06 2025 -0800 + + fix: search for tag aliases in tag search (#726) + +commit c06f3bb336c29edf116b6fbeb9f5b073319edb99 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:39:42 2025 -0800 + + feat!: expanded tag color system (#709) + + * attempt at adding `TagColor` table + + * store both columns of `TagColor` inside `Tag` table + + * fix: fix tag color relationships + + * refactor: replace TagColor enums with TagColorGroup system + + * ui: derive tag accent colors from primary + + * refactor: move dynamic tag color logic, apply to "+" button + + * feat(ui): add neon tag colors + + * remove tag text color field + + * ui: use secondary color for border and text + + * ui: add TagColorPreview widget + + * feat(ui): add new tag color selector + + * ui: add color name tooltips + + * ui: tweak tag colors and selector + + * feat: add `namespaces` table + + * translations: add + update translation keys + + * tests: update fixtures + + * chore: code cleanup + + * ui: add spacing between color groups + + * fix: expand refactor to create and add button + + * chore: format with ruff + +commit 4c337cb1a3ef1737c78b7453a7ad107340e219aa +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 27 11:39:10 2025 -0800 + + feat(ui): add thumbnail caching (#694) + + * feat(ui): add thumbnail caching + + * feat: enforce total size limit for thumb cache + + * fix: add file modification date to thumb hash + + This change allows for modified files to have their cached thumbnail regenerated. + + * feat: add menu option to clear thumbnail cache + + * fix: check if `cached_path` is None further on + + * refactor: move configurable cache vars to class level + + * docs: complete roadmap items + + * feat: use cache size limit from config file + + TODO: Store this on a per-library basis and allow it to be configurable inside the program. + + * fix: move `last_cache_folder` to class level + + * chore: add/tweak type hints + + * refactor: use make `CacheManager` a singleton + +commit 3606edf6155cd29603432592e0cef0255c295074 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 26 01:51:15 2025 -0800 + + fix: have pydub use known ffmpeg+ffprobe locations (#724) + + * fix: have pydub use known ffmpeg+ffprobe locations + + * chore: format with ruff + +commit f2a2f9a36d76592b22ab6c1aec454843ccbbffd2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 26 01:50:36 2025 -0800 + + fix: replace calls to `translate_qobject` with `translate_formatted` inside `TagWidget` (#735) + + * fix: replace `translate_qobject` calls with `translate_formatted` + + * refactor: misc code cleanup + +commit 921a8875de22f7c136316edfb5d3038236414b57 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Sat Jan 25 01:03:39 2025 +0000 + + fix(ui): don't always create tag on enter ( #731) + +commit 2a41c152b3c4db3d7bf762a0ac0682be174f42a0 +Author: mashed5894 +Date: Fri Jan 24 23:56:35 2025 +0200 + + fix: restore environment before launching external programs (#707) + + * rename promptless_Popen + + * linux: restore env before calling popen + + * windows: set dll directory to default before calling popen + + * ruff formatting suggestions + + * edited silent_popen docstring + +commit 0ead238aac33af33a439bb1bdc1e5d45bea30d73 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Fri Jan 24 21:38:42 2025 +0000 + + fix: restore opening last library on startup (#729) + +commit 9116cdc9a537de8e63e72efac40364dee56d68c9 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Jan 23 20:15:54 2025 -0800 + + docs: fix typo in readme + +commit 17c62802c0be91eee4b9b8069a87b0e89d9eb941 +Author: mashed5894 +Date: Thu Jan 23 23:41:57 2025 +0200 + + fix: sort tag results (#721) + + * sort search results + + * ruff fix + +commit ac6774ed23e8ed69abcff933947b9f3ca83437df +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Jan 23 00:22:03 2025 -0800 + + fix(ui): don't set frame when playing videos + + Fixes some videos not being able to play. The frame setting step was copied from thumbnail rendering and shouldn't be used here regardless. + +commit eb1f634d386cd8a5ecee1e6ff6a0b7d8811550fa +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Jan 23 00:19:35 2025 -0800 + + fix: don't add `._` files to libraries + +commit a1ab335dcb309cee1801de48429debd8d0420ea9 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 16:38:45 2025 -0800 + + translations: fix `fr.json` syntax error + +commit 89a8abca75a64fc9995c47d22826cb9f266b5330 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Thu Jan 23 00:07:13 2025 +0000 + + feat(ui): add audio volume slider (#691) + + * Add Volume Slider + + * Slider reflects muted state + + * Default Volume Value + + * Update roadmap to reflect current state + + * Forgot a period in a comment + + * Add suggestions + + * Update tagstudio/src/qt/widgets/media_player.py + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + + * remove unwanted line + + --------- + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + +commit a02c43c115963c3baa91feeac71f3aee9fb586eb +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 16:02:58 2025 -0800 + + feat(ui): add configurable splash screens (#703) + + * refactor: move splash images to resource_manager + + * feat(ui): add new splash screen widget + + * style: restore old resource manager log style + + * fix: scale font size for Segoe UI + +commit 857f40f2e3a919b3a66b3b92ec23a28d9fae9665 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 16:00:01 2025 -0800 + + fix: preview panel + main window fixes and optimizations (#700) + + * fix: only update file preview when necessary + + * fix: don't update thumb from tag_box callbacks + + * fix: reset preview panel and filters when loading new library + + * fix: clear library state on close; close old library on open + + * fix: reset scrollbar position on library close + +commit 16fb0290a03fd4081cad3ef67c66b404a70a0074 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 22 15:58:49 2025 -0800 + + fix: don't add default title field, use proper phrasing for adding files (#701) + + * fix: use correct message when adding macros + + * fix: no longer add title field to new entries + + * fix: use `entries` dialog title instead of `macros` + +commit 441ffce4a3a4cb5fb96613cc394a69960153c97e +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Wed Jan 22 23:56:54 2025 +0000 + + feat(ui): port "create and add tag" to main branch (#711) + + * Port create & add tag + + * Fix Name Conflict + + * Add translation keys + + * unify uses of BuildTagPanel + + * replace tabs with spaces + + * Add tag on creation + + * Add Suggestions + + * Trigger on return + + --------- + + Co-authored-by: bjorn-out + +commit 778028923e8afdb83961621b088dcb5e20b923da +Author: mashed5894 +Date: Thu Jan 23 01:48:57 2025 +0200 + + feat(ui): add about section (#712) + + * added about section to the help menu and modal to display information + + * load image through resource manager + + * cleaned up about text + + * remove visit github repo menu, moved to about modal + + * added function to check ffmpeg version + + * fixed version formatting + + * copied in ffmpeg checker code from v9.4 with a warning message on startup if ffmpeg is not detected + + * mypy fixes + + * about.content spacing + + * about.content title formatting + + * added config path to about screen + + * ruff fixes + + --------- + + Co-authored-by: Sean Krueger + +commit ea9b57b85f01f23a626390ba3ee97b3516582f2d +Author: Weblate (bot) +Date: Thu Jan 23 00:24:04 2025 +0100 + + translations: update German, Hungarian, French, Swedish (#697) + + * Translated using Weblate (German) + + Currently translated at 99.5% (217 of 218 strings) + + Co-authored-by: Aaron M + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + Translation: TagStudio/Strings + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (218 of 218 strings) + + Translated using Weblate (Hungarian) + + Currently translated at 100.0% (216 of 216 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + * Translated using Weblate (French) + + Currently translated at 57.7% (126 of 218 strings) + + Co-authored-by: Bamowen + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + Translation: TagStudio/Strings + + * Translated using Weblate (Swedish) + + Currently translated at 34.4% (75 of 218 strings) + + Co-authored-by: mashed5894 + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Aaron M + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Bamowen + Co-authored-by: mashed5894 + +commit 2a836b0d25b01c354b34f529f06e63644409fb84 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sun Jan 19 22:07:40 2025 +0100 + + docs: discourage force-pushes on prs that are open for review (#714) + + * Update CONTRIBUTING.md + + * Update CONTRIBUTING.md + +commit 6ea2c99abb20196c300a988a8ca547841b3a1759 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Fri Jan 17 23:04:13 2025 +0000 + + fix: drag and drop no longer resets (#710) + +commit 44ff17c0b3f05570e356c112f005dbc14c7cc05d +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jan 15 14:23:45 2025 -0800 + + fix: dragging files references correct entry IDs + + Fixes #705 + +commit 0cdb1a8c06a4ae36bd3025213b4176edd558402c +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Tue Jan 14 12:19:44 2025 +0100 + + ui: keyboard navigation for editing tags (#407) + + * build_tag modal: make Tag Title selected when opening modal + + * build_tag modal: Tab now changes focus when aliases field is in focus + + * fix: unpredictable tab order in build tag modal + + * feat: implement proper tab order + + * ci: fix mypy errors + + * fix: merge issue 1 + + * fix: merge issue 2 + + * refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication + + * Revert "refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication" + + This reverts commit fac589b3e35d365fc47536b3fe34a76aef83f05e. + +commit 5caf8698678cd4a47a0f4440c443ea70110f0f71 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 13 18:41:08 2025 -0800 + + docs: update roadmap + +commit 604837fcaadb15674fce3528e6cdb8f7c01a916c +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 13 14:42:19 2025 -0800 + + fix: store `tag.id` to variable before using in lambda + + This fixes an issue where every tag added from the "+" button had ID 0 (the "Archived" tag). + + Co-Authored-By: Jann Stute <46534683+Computerdores@users.noreply.github.com> + +commit 5c8f2c507fb317bf96173ee9051d25cb2c0c0d82 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Mon Jan 13 22:48:02 2025 +0100 + + feat: optimise `AND` queries (#679) + + * feat: optimise tag constraint + + * feat: use less subqueries + + * refactoring: __entry_satisfies_ast was unnecessary + + * feat: reduce time consumption of counting total results massively + + * feat: log the time it takes to fetch the results + + * Revert "feat: reduce time consumption of counting total results massively" + + This reverts commit 30af514681949779c3f33db9f4ed6c54a57d9882. + + * feat: log the time it takes to count the results + + * feat: optimise __entry_has_all_tags + +commit 5bab00aa6d42c72a2f8e033bd3b0e45282d3c752 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Mon Jan 13 22:46:57 2025 +0100 + + refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication (#699) + + * refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication + + * refactor: rename callback method + + * extract creation of row items to separate method + +commit a272b1863761a4147b6107cf84bb1905f956fbdc +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sat Jan 11 22:26:01 2025 +0100 + + feat: improve performance of "Delete Missing Entries" (#696) + + * feat: Delete all unlinked entries at once (#617) + + This technically removes the usefulness progress indicator, but brief + testing on my end had it delete ~8000 entries in less time than it took + me to see if the progress indicator was properly indeterminate or not + + * fix(fmt): remove unused import + + * fix: wasn't able to delete more than 32766 entries + + * chose: ruff check --fix + + * fix: address review comment + + --------- + + Co-authored-by: Tobias Berger + +commit fce97852d3769bca5a0be9d50f27937e60850ec2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jan 11 09:44:09 2025 -0800 + + feat!: tag categories (#655) + + * refactor: remove TagBoxField and TagField (NOT WORKING) + + * refactor: remove tag field types + + * ci: fix mypy and ruff tests + + * refactor: split up preview_panel + + * fix: search now uses `TagEntry` (#656) + + * fix: move theme check inside class + + * refactor: reimplement file previews + + * refactor: modularize `file_attributes.py` + + * ui: show fields in preview panel + + known issues: + - fields to not visually update after being edited until the entries are reloaded from the thumbnail grid (yes, the thumbnail grid) + - add field button currently non-functional + - surprise segfaults + + * search: remove TagEntry join + + * fix: remove extra `self.filter` assignment + + * add success return flag to `add_tags_to_entry()` + + * refactor: use entry IDs instead of objects and indices + + - fixes preview panel not updating after entry edits + - fixes slow selection performance + - fixes double render call + + * feat: add tag categories to preview panel + + * ui: add "is category" checkbox in tag panel + + * fix: tags can be compared for name sorting + + * fix: don't add tags to previous selections + + * fix: badges now properly update + + * ui: hide sizeGrip + + * ui: add blue ui color + + * ui: display empty selection; better multi-selection + + * cleanup comments; rename tsp to tag_search_panel + + * fix(ui): properly unset container callbacks + + * fix: optimize queries + + * fix: catch int cast exception + + * fix: remove unnecessary update calls + + * fix: restore try/except block in preview_panel + + * fix: correct type hints for get_tag_categories + + * fix: tags no longer lazy load subtags and aliases + + * fix: recursively include parent tag categories + + * chore: update copyright info + + * chore: remove unused code + + * fix: load fields for selected entry + + * refactor: remove `is_connected` from AddFieldModal + + * fix: include category tags under their own categories + + * fix: badges now update when last tag is removed + + * fix: resolve differences with main + + * fix: return empty set in place of `None` + + * ui: add field highlighting, tweak theming + + * refactor!: eradicate use of the term "subtag" + + - Removes ambiguity between the use of the term "parent tag" and "subtag" + - Fixes inconstancies between the use of the term "subtag" to refer to either parent tags or child tags + - Fixes duplicate and ambiguous subtags mapped relationship for the Tag model + - Does NOT fix tests + + * fix: catch and show library load errors + + * tests: fix and/or remove tests + + * suppress db preference warnings + + * tests: add field container tests + + * tests: add tag category tests + + * refactor(ui): move recent libraries list to file menu + + * docs: update roadmap and docs for tag categories + + * fix: restore json migration functionality + + * logs: remove/update debug logs + + * chore: remove unused code + + * tests: remove tests related to `TagBoxWidget` + + * ui: optimize selection and badge updates + + * docs: update usage + + * fix: change typo of `tag.id` to `tag_id` + + Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> + + * fix: use term "child tags" instead of "subtags" in docstring + + Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> + + * fix: reference `child_id` instead of `parent_id` when deleting tags + + Co-Authored-By: Jann Stute <46534683+Computerdores@users.noreply.github.com> + + * add TODO comment for `update_thumbs()` optimization + + * fix: combine and check (most) built-in tag data from JSON + + Known issue: Tag colors from built-in JSON tags are not updated. This can be seen in the failing test. + + * refactor: rename `select_item()` to `toggle_item_selection()` + + * add TODO to optimize `add_tags_to_entry()` + + * fix: remove unnecessary joins in search + + * Revert "fix: remove unnecessary joins in search" + + This reverts commit 4c019ca19c365f6d0d66ec4a9d3db105624e83d6. + + * fix: remove unnecessary joins in search + + * reremove unused method `get_all_child_tag_ids()` + + * fix: migrate user-edited tag colors for built-in tags + + * style: update header for contributor-created files + + * fix: use absolute path in "open file" context menu + + * chore: change paramater type hint + + --------- + + Co-authored-by: python357-1 + Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> + +commit 5860a2ca9b5d0d893affb6d93165a6d14de7f4c3 +Author: Weblate (bot) +Date: Sat Jan 11 16:05:26 2025 +0100 + + translations: update German, Hungarian, Spanish, and Chinese (Traditional Han script) (#677) + + * Translated using Weblate (German) + + Currently translated at 73.3% (157 of 214 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Jann Stute + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + Translation: TagStudio/Strings + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (214 of 214 strings) + + Translated using Weblate (Hungarian) + + Currently translated at 59.8% (128 of 214 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + * Translated using Weblate (Spanish) + + Currently translated at 63.5% (136 of 214 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com> + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + Translation: TagStudio/Strings + + * Translated using Weblate (Chinese (Traditional Han script)) + + Currently translated at 94.8% (203 of 214 strings) + + Co-authored-by: Brian Su + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/zh_Hant/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Jann Stute + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com> + Co-authored-by: Brian Su + +commit d8d61cc8c8331018740a149d289377135ef50f31 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jan 11 07:03:05 2025 -0800 + + docs: fix broken weblate link in README + +commit fc81c43af1cd53e230ce6c9d2a9177406b6aae7a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jan 11 07:00:13 2025 -0800 + + docs: add a linux install notice (#695) + + * docs: add a linux install notice (#689) + + * docs: add a linux install notice to readme (#690) + + --------- + + Co-authored-by: Qronikarz <84787215+Qronikarz@users.noreply.github.com> + +commit 3cd56a881f2ad13f9dcdf4129a8cf90fc67eef89 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Fri Jan 10 16:46:23 2025 +0100 + + feat: sort by "date added" to library (#674) + + * ui: add sorting mode dropdown + + * feat: pass sorting mode to Library.search_library + + * feat: implement sorting by creation date + + * ui: add dropdown for sorting direction + + * ui: update shown entries after changing sorting mode / direction + + * docs: mark sorting by "Date Created" as completed + + * fix: remove sorting options that have not been implemented + + * fix: rename sorting mode to "Date Added" + + * fix: check off the right item on the roadmap + + * feat: translate sorting UI + + * fix: address review comments + +commit 936157c3c2ac148f4d209783991e824ce2f8fb0d +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Jan 7 01:17:31 2025 -0800 + + fix(ui): properly mask macOS icon + +commit c4f4bba5e024049ff5743588ee8ea319376af961 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Jan 6 11:44:18 2025 -0800 + + build: update macos bundle identifier and version + + Update bundle to use `com.companyname.appname` reverse-domain structure + +commit 29c0dfdb2d88e8f473e27c7f1fe7ede6e5bd0feb +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 23:40:41 2025 -0800 + + feat(ui): use tag query as default new tag name + +commit bf03e28fdb488ae4ec4b508d2e5e99b6ed5b9454 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 22:49:58 2025 -0800 + + ui: update macOS icon + +commit 0b6b07d0b453b02cf6870587bd0692339c9f922a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 21:02:36 2025 -0800 + + fix(ui): don't create new QFonts in main_window.py + + This fix uses stylesheets instead of initializing new QFonts in the Ui_MainWindow class. This fixes the fonts appearing differently on different OSes, including a fix for text using these QFonts appearing small on macOS. The use of stylesheets also puts the styling in line with how the rest of the program operates. + +commit af760ee61a523c84bab0fb03a68d7465866d0e05 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jan 5 19:40:37 2025 -0800 + + ui: port splash screen from `Alpha-v9.4` + + Reimplements: + - 7f3b3d06af867fa4d5ca9f215499a25822c5900f + - 1e4883c577dcd62fc09fc2e86ecaa20d3d2b29db + - 1c53f05e4fbb8462240b08d0f0014efef81911e3 + +commit c5c86747fe96ac4e6f2f00a490d438b4fd776a6e +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Mon Jan 6 00:34:55 2025 +0000 + + fix: only close add tag menu with no search (#685) + +commit ef042ef070572221f39174292970df78d14ec23f +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Fri Jan 3 08:37:18 2025 +0000 + + fix: call filepaths instead of using `start` (#667) + +commit 7b672e03a172e8689258bbeb71623141fc83f451 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Wed Jan 1 11:36:11 2025 +0100 + + feat: implement parent tag search (#673) + + * feat: implement parent tag search + + * feat: add tests for parent tag search + + * fix: typo + + * feat: log the time it takes to build the SQL Expression + + * feat: instead of hardcoding child tag ids into main query, include subquery + + * Revert "feat: instead of hardcoding child tag ids into main query, include subquery" + + This reverts commit 2615e7dab464dd490fd1d66181758d00a0d885be. + +commit 5a0ba544546416228f309d9dc422951dc7c31889 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Wed Jan 1 04:35:35 2025 -0600 + + fix: strip whitespace around --open/-o flag (#670) + + * fix: fix -o flag not working if path has whitespace around it + + * fix: change strip to lstrip/rstrip + + * fix: manually expand "~" + +commit d948c0ce4c00169db6d1a571daae5197aba2c9ca +Author: Nginearing <142851004+Nginearing@users.noreply.github.com> +Date: Wed Jan 1 10:34:18 2025 +0000 + + docs: update readme (#676) + +commit d5cebf39d447b47ebe526903103ba73c228af9b1 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 30 20:50:57 2024 -0800 + + fix: add missing `pillow_jxl` import + + This import was accidentally removed in #569. This commit restores the import. + +commit 584f3aa358897666e2a58fd9eb3cd53d0c5d10ba +Author: Weblate (bot) +Date: Tue Dec 31 04:18:23 2024 +0100 + + translations: remove `library.refresh.scanning` key (#675) + + * Update translation files + + Updated by "Cleanup translation files" add-on in Weblate. + + Co-authored-by: Hosted Weblate + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ + Translation: TagStudio/Strings + +commit 1a317a182633b06b625ac7d9ead59364391cfaee +Author: Weblate (bot) +Date: Tue Dec 31 04:16:46 2024 +0100 + + translations: update Hungarian, Polish, French, Chinese (Traditional Han script), Toki Pona (#663) + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (130 of 130 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Szíjártó Levente Pál + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + Translation: TagStudio/Strings + + * Translated using Weblate (Polish) + + Currently translated at 100.0% (130 of 130 strings) + + Translated using Weblate (Polish) + + Currently translated at 100.0% (130 of 130 strings) + + Co-authored-by: Eryk Michalak + Co-authored-by: Hosted Weblate + Co-authored-by: qronikarz + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/ + Translation: TagStudio/Strings + + * Translated using Weblate (French) + + Currently translated at 100.0% (130 of 130 strings) + + Co-authored-by: Bamowen + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + Translation: TagStudio/Strings + + * Translated using Weblate (Chinese (Traditional Han script)) + + Currently translated at 90.0% (117 of 130 strings) + + Added translation using Weblate (Chinese (Traditional Han script)) + + Co-authored-by: Brian Su + Co-authored-by: Hosted Weblate + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/zh_Hant/ + Translation: TagStudio/Strings + + * Translated using Weblate (Toki Pona) + + Currently translated at 96.1% (125 of 130 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: gold + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Eryk Michalak + Co-authored-by: qronikarz + Co-authored-by: Bamowen + Co-authored-by: Brian Su + Co-authored-by: gold + +commit 69aed92f2421924f71498d23dac84c0fed79f7f4 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Tue Dec 31 04:15:39 2024 +0100 + + feat: translations (#662) + + * feat: implement Translator class + + * feat: add translate_with_setter and implement formatting of translations + + * feat: extend PanelModal to allow for translation + + * feat: extend ProgressWidget to allow for translation + + * feat: translation in ts_qt.py + + * debug: set default lang to DE and show "Not Translated" when replacing untranslated stuff + + * add translation todos + + * feat: translate modals + + * feat: translate more stuff + + * fix: UI test wasn't comparing to translated strings + + * feat: translations for most of the remaining stuff + + * fix: replace debug changes with simpler one + + * uncomment debug change + + * fix: missing parameter in call + + * fix: various review feedback + + * fix: don't translate json migration discrepancies list + + * fix: typo + + * fix: various PR feedback + + * fix: correctly read non-ascii characters + + * fix: add missing new line at eof + + * fix: comment out line of debug code + + * fix: address latest review comment + + * fix: KeyError that occurred when formatting translations + + * fix: regression of d594e84 + + * fix: add newline to en.json + + * fix: organize en.json, fix typo + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 40bfee050263cf105363f7dd7a8c70848449696c +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Tue Dec 24 03:39:23 2024 +0000 + + fix(ui): prevent duplicate parent tags in UI (#665) + +commit 020a73d095c74283d6c80426d3c3db8874409952 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 23 18:55:22 2024 -0800 + + fix(ui): use consistent tag outline colors + +commit 431efe4fe93213141c763e59ca9887215766fd42 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 23 18:39:56 2024 -0800 + + fix(ui): use correct pink tag color + +commit ca4dc0bebd398cfb339a5a4ee390337ff8b63038 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 23 16:50:10 2024 -0800 + + chore: add 089c8dd to `.git-blame-ignore-revs` + +commit 82c659c8a4b5acb1cbb727341cc6d187047fd23e +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Sun Dec 22 23:14:37 2024 -0700 + + feat(ui): new tag alias UI (#534) + + * updated parents and aliases to use the flowLaout in the build tag panel + + added shortcuts for adding and removing aliases and updated the alias ui + to always show remove button and not cover alias + + aliases use flowlayout + + wrote test for buildTagPanel removeSelectedAlias + + parent tags now use flowlayout in build tag panel + + moved buttons for adding aliases and parents to be at the end of the + flowLayout + + * added aliases and subtags to search results + + * aliases now use a table, removed unnecessary keyboard shortcuts + + * reverted subtags to regular list from flowlayout + + * chor remove redundant lambda + + * feat: added display names for tags + + * fix: aliases table enter/return and backspace work as expected, display names work as expected, adding aliases outputs them in order + + * format + + * fix: add parent button on build tag panel + + * fix: empty aliases where not being removed all the time + + * fix: alias name changes would be discarded when a new alias was created or an alias was removed + + * fix: removed display names, as they didn't display properly and should be added in a different PR + + * fix: mypy + + * fix: added missing session.expunge_all + + session.expunge_all() on line 621 was removed, added it back. + + * fix: parent_tags relationship in Tag class + + parent_tags primaryJoin and secondaryJoin where in the wrong order. They have been switched back to the proper order. + + * fix: pillow_jxl import was missing + + * fix: ruff + + * fix: type hint fixes + + * fix: fix the type hint fixes + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit dc2eed431b97e43cec44c16b5f8b4dc1f15203ec +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Dec 22 22:11:18 2024 -0800 + + add `.sqlite-journal` to `.gitignore` + +commit 9eed3b64d98dd442b7f0f3d1d4c8510f70dd0e27 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sun Dec 22 22:58:10 2024 +0100 + + feat: implement search equivalence of "jpg" and "jpeg" filetypes (#649) + + * feat: implement search equivalence of "jpg" and "jpeg" filetypes in an extensible manner + + * docs: update completion for search features on roadmap + + * fix: move FILETYPE_EQUIVALENTS to media_types.py + +commit 4c3ff42169e90e5d053d14eb724032ea9abd2b94 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Sun Dec 22 20:21:04 2024 +0000 + + fix: show correct unlinked files count (#653) + +commit b209abb1a423c78c59986dad8a3217cb92cc6c00 +Author: Weblate (bot) +Date: Sun Dec 22 02:29:49 2024 +0100 + + translations: propagate en.json key changes (#654) + + * Update translation files + + Updated by "Cleanup translation files" add-on in Weblate. + + Co-authored-by: Hosted Weblate + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ + Translation: TagStudio/Strings + +commit 45b45f5846c0de6654e5383d3472580f22f75b8e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 21 15:01:29 2024 -0800 + + translations: remove unused keys, add missing ones + +commit b3f393e59b413ff6fb87d2b88c198a24a7808ac7 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 21 14:53:56 2024 -0800 + + style(translations): sort en.json keys + +commit f4b30c15ce834f7baf24edbb9b8b4a88e8c9c99f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 21 14:50:47 2024 -0800 + + refactor(translations): fix + normalize translation keys + +commit 8a52bfea693874a6c2ecd62a2ed59a97456000c9 +Author: Weblate (bot) +Date: Sat Dec 21 19:31:30 2024 +0100 + + translations: fix German, add Polish (#650) + + * Translated using Weblate (German) + + Currently translated at 93.6% (133 of 142 strings) + + Translated using Weblate (German) + + Currently translated at 87.3% (124 of 142 strings) + + Co-authored-by: Hosted Weblate + Co-authored-by: Jann Stute + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + Translation: TagStudio/Strings + + * Translated using Weblate (Polish) + + Currently translated at 95.7% (136 of 142 strings) + + Translated using Weblate (Polish) + + Currently translated at 23.2% (33 of 142 strings) + + Added translation using Weblate (Polish) + + Co-authored-by: Hosted Weblate + Co-authored-by: qronikarz + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/ + Translation: TagStudio/Strings + + --------- + + Co-authored-by: Jann Stute + Co-authored-by: qronikarz + +commit 934c98a4d486e36257054022c44b3901eae12596 +Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> +Date: Sat Dec 21 01:00:33 2024 +0000 + + fix: enter/return adds top result tag (#651) + + * fix return not adding searched tag + + * add first_tag_id type hint + +commit 36c1c180b3370e349f805e47bce28b3d8638fafb +Author: Travis Abendshien +Date: Fri Dec 20 16:24:04 2024 -0800 + + refactor: consolidate reserved tag values as ints + +commit d6280f7ead359d190c3ac25fedf7cab6885385d6 +Author: Travis Abendshien +Date: Fri Dec 20 16:07:19 2024 -0800 + + style: remove whitespace + +commit 933af1c40559547e2fd9079c6f5060195b8e5ff1 +Author: Travis Abendshien +Date: Fri Dec 20 16:00:44 2024 -0800 + + ui: update remove tag message box text + +commit 2903dd22c45c02498687073d075bb88886de6b62 +Author: Travis Abendshien +Date: Fri Dec 20 15:56:23 2024 -0800 + + fix: tags created from tag database now add aliases + +commit fdfd6490bdf2ac55bcf2040c38092ce86017e27c +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Fri Dec 20 16:22:23 2024 -0700 + + feat: delete and create tags from tag database panel (#569) + + * [feat] can now add a new tag from the tag library panel + + * [feat] can remove tags from the tag library panel + [fix] library panel updates tag list when a new tag is create + + * [test] added test for library->remove_tag + + * [fix] type error + + * removed redundant lambda + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + + * fix: tags with a reserved id could be edited or removed, now they cannot. + + * fix: when a tag is removed or edited the preivew panel will update to reflect the changes + + Co-authored-by: Sean Krueger + + * fix: mypy check + + * fix: aliases and subtags not being removed from DB when tag they reference was removed. + + * feat: added a confirmation message box when removing tags. + + * fix: mypy + + --------- + + Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> + Co-authored-by: Sean Krueger + +commit 8387676d795a8f814f131c5cb27cacc95c0d5979 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Dec 20 14:34:05 2024 -0800 + + feat(ui): show filenames in thumbnail grid (Closes #85) (#633) + + * feat(ui): add filename label under thumbnails + + * refactor(ui): organize menu items + + * feat: make thumbnail filenames toggleable + + * refactor variables, tweak spacing + + * fix(ui): only change cursor on thumb_button + + * revert changes to ../search_library/../ts_library.sqlite + + * fix: don't ever call .setHidden(False) on visible widgets + + * refactor: rename filename toggles to setters + + * fix: remove duplicate open_on_start_action + +commit 24fa76ee30860877057d68f2b6bf7064859ab4b5 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Fri Dec 20 16:03:11 2024 -0600 + + tests(fix): stop updating sqlite db during tests (#648) + + * fix: stop sqlite db from being updated while running tests + + * refactor: small refactor in db checking code + +commit 9e0c4f39b8c120aec32f2539d9e5093e2ec0d7d5 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Dec 14 11:42:17 2024 -0800 + + docs: remove closed pr warning from CONTRIBUTING.md + +commit c33d0203e458e3da5662825e5fe4cc75f8ca3fe2 +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Sat Dec 14 12:40:48 2024 -0700 + + fix: editing tags from preview panel updates database (#641) + + * fix: bug where preview_panel tag was out of date compared to tag in database after edits where made using the tagDatabasePanel + + * fix: changes made in the preview panel are saved to the database + +commit ebc487eac412db696419c143c76684ecf6b52acd +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Dec 12 21:43:13 2024 -0800 + + docs: add refactor warning to CONTRIBUTING.md + +commit dec9f1dd28f8f14e4459a1c57958a22c1cf3bd78 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Dec 11 18:28:09 2024 -0800 + + docs: add additional detail to ffmpeg help + +commit a519c9a737f4bda19dafe9c9f1cf17afe6c00618 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Wed Dec 11 19:04:53 2024 -0600 + + chore: update pytest workflow to 24.04 (#639) + + * fix: try fixing pytest workflow + + * chore: update pytest workflow to 24.04 + + * fix: fix libglx package name + + * fix: try a different package + + * fix: try apt-update first + + * Revert "fix: try apt-update first" + + This reverts commit 34c04f985b30a600328d55b70faa39113c3d0cc9. + + * Reapply "fix: try apt-update first" + + This reverts commit 775bc2634d27801a5a4e80b46dad7c70d5136f10. + +commit 385aaf42d8c0bd791a4b5eaee2bda1a6379fc794 +Author: Sean Krueger +Date: Wed Dec 11 16:00:27 2024 -0800 + + feat: reimplement drag drop files (Port #153) (#528) + + * feat: Drag and drop files in and out of TagStudio (#153) + + * Ability to drop local files in to TagStudio to add to library + + * Added renaming option to drop import + + * Improved readability and switched to pathLib + + * format + + * Apply suggestions from code review + + Co-authored-by: yed podtrzitko + + * Revert Change + + * Update tagstudio/src/qt/modals/drop_import.py + + Co-authored-by: yed podtrzitko + + * Added support for folders + + * formatting + + * Progress bars added + + * Added Ability to Drag out of window + + * f + + * format + + * Ability to drop local files in to TagStudio to add to library + + * Added renaming option to drop import + + * Improved readability and switched to pathLib + + * format + + * Apply suggestions from code review + + Co-authored-by: yed podtrzitko + + * Revert Change + + * Update tagstudio/src/qt/modals/drop_import.py + + Co-authored-by: yed podtrzitko + + * Added support for folders + + * formatting + + * Progress bars added + + * Added Ability to Drag out of window + + * f + + * format + + * format + + * formatting and refactor + + * format again + + * formatting for mypy + + * convert lambda to func for clarity + + * mypy fixes + + * fixed dragout only worked on selected + + * Refactor typo, Add license + + * Reformat QMessageBox + + * Disable drops when no library is open + + Co-authored-by: Sean Krueger + + * Rebased onto SQL migration + + * Updated logic to based on selected grid_idx instead of selected ids + + * Add newly dragged-in files to SQL database + + * Fix buttons being inconsistant across platforms + + * Fix ruff formatting + + * Rename "override" button to "overwrite" + + --------- + + Co-authored-by: yed podtrzitko + Co-authored-by: Travis Abendshien + Co-authored-by: Sean Krueger + + * refactor: Update dialog and simplify drop import logic + + * Handle Qt events for main window in ts_qt.py + + * Replace magic values with enums + + * Match import duplicate file dialog to delete missing entry dialog + + * Remove excessive progess widgets + + * Add docstrings and logging + + * refactor: add function for common ProgressWidget use + + Extracts the create_progress_bar function from drop_import to the + ProgressWidget class. Instead of creating a ProgressWidget, + FunctionIterator, and CustomRunnable every time a thread-safe progress + widget is needed, the from_iterable function in ProgressWidget now + handles all of that. + + --------- + + Co-authored-by: Creepler13 + Co-authored-by: yed podtrzitko + Co-authored-by: Travis Abendshien + +commit a1daf5ab6ac6420566fe3b31ab44e924740980c3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 9 11:51:36 2024 -0800 + + fix: use absolute ffprobe path on macos (Fix #511) (#629) + + * bump pyside version to 6.8.0.1 + + * fix: try for absolute ffprobe path on macos + +commit aaea0b1475206edf093f32191359a5f0aa0d6187 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Dec 9 11:44:51 2024 -0800 + + fix: don't allow blank tag alias values in db (#628) + +commit a535ed12b01ce46f7efc6c5c75e641e0a105ca97 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Sat Dec 7 00:43:08 2024 +0100 + + feat: implement query language (#606) + + * add files + + * fix: term was parsing ANDList instead of ORList + + * make mypy happy + + * ruff format + + * add missing todo + + * add more constraint types + + * add parent property to AST + + * add BaseVisitor class + + * make mypy happy + + * add __init__.py + + * Revert "make mypy happy" + + This reverts commit 926d0dd2e79d06203e84e2f83c06c7fe5b33de23. + + * refactoring and fixes + + * rudimentary search field integration + + * fix: check for None properly + + * fix: Entries without Tags are now searchable + + * make mypy happy + + * Revert "fix: Entries without Tags are now searchable" + + This reverts commit 19b40af7480b0c068b81b642b51536a9ec96d030. + + * fix: changed joins to outerjoins and added missing outerjoin + + * use query lang instead of tag_id FIlterState + + * add todos + + * fix: remove uncecessary line that broke search when searching for exact name + + * fix tag search + + * refactoring + + * fix: path now uses GLOB operator for proper GLOBs + + * refactoring: remove FilterState.id and implement Library.get_entry_full as replacement + + * fix: use default value notation instead of if None statement in __post_init__ + + * remove obsolete Search Mode UI and related code + + * ruff fixes + + * remove obsolete tests + + * fix: item_thumb didn't query entries correctly + + * fix: search_library now correctly returns the number of *unique* entries + + * make mypy happy + + * implement NOT + + * remove obsolete filename search + + * remove summary as it is not applicable anymore + + * finish refactoring of FilterState + + * implement special:untagged + + * fix: make mypy happy + + * Revert changes to search_tags in favor of changes from #604 + + * fix: also port test changes + + * fix: remove unneccessary import + + * fix: remove unused dataclass + + * fix: AND now works correctly with tags + + * simplify structure of parsed AST + + * add performance logging + + * perf: Improve performance of search by reducing number of required joins from 4 to 1 + + * perf: double NOT is now optimized out of the AST + + * fix: bug where pages would show less than the configured number of entries + + * Revert "add performance logging" + + This reverts commit c3c7d7546d285c6dad51872cbf80bc6070262570. + + * fix: tag_id search was broken + + * somewhat adapt the existing autocompletion to this PR + + * perf: Use Relational Division Queries to improve Query Execution Time + + * fix: raise Exception so as to not fail silently + + * fix: Parser bug broke parentheses + + * little bit of clean up + + * remove unnecessary comment + + * add library for testing search + + * feat: add basic tests + + * fix: and queries containing just one tag were broken + + * chore: remove debug code + + * feat: more tests + + * refactor: more consistent name for variable + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * fix: ruff check complaint over double import + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 056e6004665be3932b4d50cf8a6ff62d0fbb2f98 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Dec 5 01:30:18 2024 -0800 + + bump numpy to version 2.1.0 + +commit 3196678666b8541270872f566c2bb3da0dac4bcf +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Thu Dec 5 09:43:39 2024 +0100 + + fix: multiple macro errors (#612) + + * port fixes from json branch + + * fix: correctly pass grid_idx in autofill macro + + * fix(BUILD_URL macro): only add url if url was successfully built + + * fix(AUTOFILL macro): error when trying to add tag with name that already exists + + * fix: test was wrongly renaming sidecar file + +commit bea691381476f6b53d43852e180f92a1445c3588 +Author: Дмитрий <88423841+Roc25@users.noreply.github.com> +Date: Thu Dec 5 08:53:44 2024 +0300 + + fix: add check to see if library is loaded in filter_items (#547) + + * Added a check to see if the library is loaded in filter_items + + * Returned check to see if there is an engine + + --------- + + Co-authored-by: gred + +commit b72a2f233141db4db6aa6be8796b626ebd3f0756 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Dec 4 11:23:42 2024 -0800 + + add ".DS_Store" to GLOBAL_IGNORE_SET + +commit 4c33901a471e39e9f4b41faf8b6b3a55a7989e76 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Dec 4 11:16:47 2024 -0800 + + chore: format with ruff + +commit 7d7c8b234838b4b740cedd485a0d1f7560a74e77 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Dec 3 13:04:02 2024 -0800 + + docs: adjust formatting + +commit 47babdd5b516927fd16cb6d35474b2a9f12c2162 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Dec 3 12:59:27 2024 -0800 + + docs: update README.md and index.md + +commit 461d1030269d5ae53a02d56db2b012f2988da5b3 +Author: Weblate (bot) +Date: Tue Dec 3 19:48:23 2024 +0100 + + translations: add Filipino translation (#584) + + Currently translated at 75.3% (107 of 142 strings) + + Translated using Weblate (Filipino) + + Currently translated at 50.0% (71 of 142 strings) + + Added translation using Weblate (Filipino) + + + + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fil/ + Translation: TagStudio/Strings + + Co-authored-by: searinminecraft <114207889+searinminecraft@users.noreply.github.com> + +commit a630b09b4f5f47604f8fb5e19fdec4f5ada16391 +Author: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> +Date: Wed Dec 4 00:09:44 2024 +0530 + + fix: remove/rework windows path tests (#625) + + * fix: tagstudio/tests/test_driver.py::test_evaluate_path_last_lib_present always fails in windows. + + * refactor: removal tagstudio/tests/test_library.py::test_save_windows_path + + Fixes #616 + +commit 8ba23c5d54499309bf5693be6df9e3be353ff74d +Author: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> +Date: Tue Dec 3 01:41:39 2024 +0530 + + fix: clear all setting values when opening a library (#622) + +commit e4d8f995bb9261b9b48d9898572ae40bfea5fff1 +Author: Travis Abendshien +Date: Sun Dec 1 13:33:39 2024 -0800 + + docs: remove partial checkboxes + +commit 691c63e65966c438d5b84e3bfa760591d60032fd +Author: Travis Abendshien +Date: Sun Dec 1 13:24:18 2024 -0800 + + docs: update v9.5 roadmap + +commit 1fcd31b62f2ec2d617cdf1a77a3fc16a37335ec2 +Author: Travis Abendshien +Date: Sun Dec 1 11:56:10 2024 -0800 + + chore: bump ruff to 0.8.1, pillow-jxl-plugin to 1.3.0 + +commit 1974ff169c4ed98f0ae4eef1708de80ef693ada1 +Author: Travis Abendshien +Date: Sat Nov 30 15:11:17 2024 -0800 + + refactor: remove 3.12 nested f-string + +commit dffa3635b002b1bbef5d3c209bf5099aac6f82e3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sat Nov 30 22:03:57 2024 +0100 + + fix: remove qt disconnect warning (#613) + + * fix: cannot disconnect from None Warning + + * fix: cannot disconnect from None Warning mypy compliant + +commit ef68603322ea2c237e302adaf02aa82a87ddf153 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Nov 30 13:00:08 2024 -0800 + + feat(parity): migrate json libraries to sqlite (#604) + + * feat(ui): add PagedPanel widget + + * feat(ui): add MigrationModal widget + + * feat: add basic json to sql conversion + + * fix: chose `poolclass` based on file or memory db + + * feat: migrate tag colors from json to sql + + * feat: migrate entry fields from json to sql + + - fix: tag name column no longer has unique constraint + - fix: tags are referenced by id in db queries + - fix: tag_search_panel no longer queries db on initialization; does not regress to empty search window when shown + - fix: tag name search no longer uses library grid FilterState object + - fix: tag name search now respects tag limit + + * set default `is_new` case + + * fix: limit correct tag query + + * feat: migrate tag aliases and subtags from json to sql + + * add migration timer + + * fix(tests): fix broken tests + + * rename methods, add docstrings + + * revert tag id search, split tag name search + + * fix: use correct type in sidecar macro + + * tests: add json migration tests + + * fix: drop leading dot from json extensions + + * add special characters to json db test + + * tests: add file path and entry field parity checks + + * fix(ui): tag manager no longer starts empty + + * fix: read old windows paths as posix + + Addresses #298 + + * tests: add posix + windows paths to json library + + * tests: add subtag, alias, and shorthand parity tests + + * tests: ensure no none values in parity checks + + * tests: add tag color test, use tag id in tag tests + + * tests: fix and optimize tests + + * tests: add discrepancy tracker + + * refactor: reduce duplicate UI code + + * fix: load non-sequential entry ids + + * fix(ui): sort tags in the preview panel + + * tests(fix): prioritize `None` check over equality + + * fix(tests): fix multi "same tag field type" tests + + * ui: increase height of migration modal + + * feat: add progress bar to migration ui + + * fix(ui): sql values update earlier + + * refactor: use `get_color_from_str` in test + + * refactor: migrate tags before aliases and subtags + + * remove unused assertion + + * refactor: use `json_migration_req` flag + +commit b7e652ad8d8055cd49bf37138413568d058e8a7b +Author: Travis Abendshien +Date: Fri Nov 29 15:40:04 2024 -0800 + + docs: remove `db_migration` + +commit bc366fc34d1d8276cb31151986292ad618393716 +Author: csponge +Date: Fri Nov 29 17:47:27 2024 -0500 + + feat: audio playback (#576) + + * feat: Audio Playback + + Add the ability to play audio files. + + Add a slider to seek through an audio file. + + Add play/pause and mute/unmute buttons for audio files. + + Note: This is a continuation of a mistakenly closed PR: + Ref: https://github.com/TagStudioDev/TagStudio/pull/529 + + While redoing the changes, I made a couple of improvements. + When the end of the track is reached, the pause button will + swap to the play button and allow the track to be replayed. + + Here is the original feature request: + Ref: https://github.com/TagStudioDev/TagStudio/issues/450 + + * fix: prevent autoplay on new track when paused + + * refactor: Add MediaPlayer base class. + + Added a MediaPlayer base class per some suggestions + in the PR comments. Hopefully this reduces duplicate code + between the audio/video player in the future. + + * refactor: add controls to base MediaPlayer class + + Move media controls from the AudioPlayer widget + to the MediaPlayer base class. This removes the need + for a separate AudioPlayer class, and allows the + video player to reuse the media controls. + + * fix: position_label update with slider + + Update the position_label when the slider is moving. + + * fix: replace platform dependent time formatting + + Replace the use of `-` in the time format since this + is not availabile on all platforms. + + Update initial `position_label` value to '0:00'. + +commit 1fb1a80d53bc910ba9ea7311e98d1c847f2f399f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Nov 29 12:35:18 2024 -0800 + + fix: ui/ux parity fixes for thumbnails and files (#608) + + * fix(ui): display loading icon before rendered thumb + + * fix: skip out of range thumbs + + * fix: optimize library refreshing + + * fix(ui): tag colors show correct names + + * fix(ui): ensure inner field containers are deleted + + * fix(ui): don't show default preview label text + + * fix: catch all missing file thumbs; clean up logs + +commit d152cd75d8058341eca61f6940d6c7ccf4a5607c +Author: Kiril Bourakov <86131959+KirilBourakov@users.noreply.github.com> +Date: Fri Nov 29 13:34:28 2024 -0400 + + fix: "open in explorer" opens correct folder (#603) + + * replaced as_posix with str + + * replaced addition with f string + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 20f93719d79dfb4aadf7736164ece77e34aa2857 +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Thu Nov 28 22:19:08 2024 +0100 + + fix(ci): surpress errant mypy warnings (#609) + + * fix: mypy error in ts_qt + + * fix: mypy error in file_opener due to conflicting types + + * fix: remove unnecessary type ignores + + * refix type ignore comments + + * partially revert "refix type ignore comments" due to being implemented in #608 + +commit 262893a1bbc16d0f254032adf22b77f9dcc95e67 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Nov 27 21:25:03 2024 -0800 + + add `.DS_Store` to `.gitignore` + +commit 7b2636e4a7c32295183b33ca81b70e9a6a59e9f8 +Author: Travis Abendshien +Date: Sun Nov 24 10:29:29 2024 -0800 + + add syncthing to `.gitignore` + +commit 0d166e63c09a4ad7b6e8a3939c3573e9c08ac893 +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Thu Nov 21 13:29:35 2024 -0700 + + feat(parity): backend for aliases and parent tags (#596) + + * backend for aliases and parents + + * resolve merge conflics + +commit f6a1ca67835a8101e846619e6ea1ae40d227c425 +Author: Travis Abendshien +Date: Tue Nov 19 17:54:44 2024 -0800 + + docs: update contribution guidelines + +commit 7ae2bc24d6ab82586806f2dde271668723c0fc9d +Author: Coolio +Date: Tue Nov 19 16:14:34 2024 -0600 + + feat(ui): pre-select default tag name in `BuildTagPanel` (#592) + + This changes the behavior of the tag name inside `BuildTagPanel` for newly created tags: + * The default "New Tag" name is now automatically highlighted + * Blank tag names (including spaces) are no longer allowed to be created + * NOTE: This does not change the tag name column rules in the db, nor does it necessarily need to + + *** + + * [Feature Request]: Make the create tag panel have empty tag name field + + * [Feature Request]: Make the create tag panel have empty tag name field + + * Revert "[Feature Request]: Make the create tag panel have empty tag name field" + + This reverts commit f9c7f5d8892fb70a1618f05554234851a27c7eaa. + + * [Feature Request]: Make the create tag panel have empty tag name field + + * Revert "[Feature Request]: Make the create tag panel have empty tag name field" + + This reverts commit e5df3e0f15a1b97c49390ee6190b906958eddbb1. + + * Update .gitignore + + * Updated as per disscussion in issue #591 (DRAFT + + * Updated as per disscussion in issue #591 (DRAFT + + * Added formatting + + * Updated code as per discussion is #592 + + * Updated code as per discussion is #592 (again) + + * Fixed spacing + + * Add placeholder text to name field. + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * Use universal red color for red border. + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * fix: add `src.core.palette` imports + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 2977e07223de4a58fe5c6964bb3ee3660357cfa0 +Author: Дмитрий <88423841+Roc25@users.noreply.github.com> +Date: Tue Nov 19 02:35:00 2024 +0300 + + ui: select thumb on press instead of click (#556) + + Co-authored-by: gred + +commit 774c886288b1531edd55310468459a29031a66bc +Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> +Date: Mon Nov 18 16:19:28 2024 -0700 + + fix(ui): update ui when removing fields (#560) + +commit bec513f558437278f6dc7c0c083876b0a7736d07 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Mon Nov 18 12:45:51 2024 -0600 + + feat: add autocomplete for search engine (#586) + + * feat: add autocomplete for mediatype, filetype, path, tag, and tag_id searches + + * fix: address issues brought up in review + + * fix: fix mypy issue + + * fix: fix mypy issues for real this time + +commit 9078feec0cef9e157b1c0a4808be2fe67f930fc8 +Author: Justine Akehurst <31110637+jakehurst@users.noreply.github.com> +Date: Sun Nov 17 22:03:51 2024 -0800 + + fix(docs): fix link to feature roadmap page (#594) + +commit f9ef76c2e132067b8030968d0f1291d333ed5908 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Nov 17 16:35:30 2024 -0800 + + add `.idea/` to `.gitignore` + +commit 139836d9c871aa98a606d30b8cbd4380b43ad249 +Author: yed +Date: Fri Nov 15 10:55:16 2024 +0700 + + fix: stop thumbnail jobs when closing library (#583) + +commit fd0df94830c3550b63625259b0c57f7bc4022280 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Thu Nov 14 16:02:34 2024 -0600 + + feat: make path search use globs (#582) + + * feat: make path search use globs + + * fix: specify types in path search + + * chore: format with ruff + +commit 97e0e80f6f48adef5be74d73f4810d3b0db6b335 +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Thu Nov 14 15:52:00 2024 -0600 + + feat: add filetype and mediatype searches (#575) + + * feat: add filetype and mediatype searches + + * style: fix some style issues + + * fix: parametrize mediatype and filetype tests + + * style: fix remaining unordered import + + * style: fix pytest parametrize calls + + * feat: add human-readable names to mediacategories + + * feat: use human-readable names in mediacategory: search + + * feat: add human-readable name to open document + + * fix: fix returning multiple filetypes issue and add regression test + +commit fb7ad928af8bcea338dc57878d6ce024429b11e6 +Author: Travis Abendshien +Date: Mon Nov 11 11:13:44 2024 -0800 + + docs(roadmap): add translations to v9.5 + +commit d75729b578ee6f6c9b8f3826fd8d252477e7f6ef +Author: python357-1 <30739625+python357-1@users.noreply.github.com> +Date: Fri Nov 8 13:07:51 2024 -0600 + + docs: update CONTRIBUTING.md ruff instructions (#581) + + * docs: add warning about ruff on linux + + * Update CONTRIBUTING.md + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit f21d49df7fd2cf569b0aed7c3cb8ce6196a44ba6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Nov 7 15:12:57 2024 -0800 + + feat: add JXL thumbnail and animated APNG + WEBP support (port #344 and partially port #357) (#549) + + * feat: add JXL image thumbnail support + + Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> + + * feat: add animated previews for webp and apng + + Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> + + --------- + + Co-authored-by: BPplays <58504799+bpplays@users.noreply.github.com> + +commit 96026b66bc7d32d559e8ced4b6f058e56db005c7 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Nov 7 15:00:51 2024 -0800 + + feat: add OpenDocument thumbnail support (port #366) (#545) + + * feat: add OpenDocument thumbnail support + + Co-Authored-By: Josh Beatty + + * tests: add test comparing odt to png snapshot + + * tests: add test comparing ods to png snapshot + + * test: combine OpenDocument tests + + * test: combine compatible preview tests + + * test: combine preview render tests + + * fix: update test snapshots + + --------- + + Co-authored-by: Josh Beatty + +commit c7171c54554b529c40521e1444fdcd2184c4e015 +Author: Travis Abendshien +Date: Thu Nov 7 13:31:13 2024 -0800 + + chore: update resources_rc.py + +commit 5ee118c1fbc16fe85eba7e86e02a08dfaaad0867 +Author: Weblate (bot) +Date: Thu Nov 7 21:01:43 2024 +0100 + + translations: update from Hosted Weblate (#579) + + * Added translation using Weblate (Russian) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Added translation using Weblate (Portuguese) + + * Added translation using Weblate (Portuguese (Brazil)) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Added translation using Weblate (Tamil) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 51.4% (73 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Added translation using Weblate (Spanish) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 88.0% (125 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 52.1% (74 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Norwegian Bokmål) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 55.6% (79 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Added translation using Weblate (French) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 68.3% (97 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 40.1% (57 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Danish) + + * Added translation using Weblate (German) + + * Translated using Weblate (Danish) + + Currently translated at 1.4% (2 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Added translation using Weblate (Cantonese (Traditional Han script)) + + * Translated using Weblate (Tamil) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (German) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Hungarian) + + * Translated using Weblate (German) + + Currently translated at 14.0% (20 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (German) + + Currently translated at 14.7% (21 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Swedish) + + * Translated using Weblate (German) + + Currently translated at 71.8% (102 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Added translation using Weblate (Toki Pona) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 83.0% (118 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Added translation using Weblate (Italian) + + * Translated using Weblate (French) + + Currently translated at 64.0% (91 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Added translation using Weblate (Turkish) + + * Translated using Weblate (Turkish) + + Currently translated at 88.7% (126 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Portuguese) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/ + + * Translated using Weblate (Portuguese) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 67.6% (96 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 67.6% (96 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Cantonese (Traditional Han script)) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/yue_Hant/ + + * Translated using Weblate (Cantonese (Traditional Han script)) + + Currently translated at 0.0% (0 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/yue_Hant/ + + * Translated using Weblate (Hungarian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Update translation files + + Updated by "Remove blank strings" add-on in Weblate. + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ + + --------- + + Co-authored-by: Artyom Ognev + Co-authored-by: Space_Fox + Co-authored-by: Lobo Metalúrgico + Co-authored-by: Vasi + Co-authored-by: Nginearing + Co-authored-by: gallegonovato + Co-authored-by: Allan Nordhøy + Co-authored-by: Bamowen + Co-authored-by: Ryussei + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Zoinx + Co-authored-by: gold + Co-authored-by: William de Castro + Co-authored-by: Jann Stute + Co-authored-by: Nyghl + Co-authored-by: Obscaeris + +commit fc4e124cd890eb9acda5f6a948f816afdb945ec8 +Merge: 15bf354 0358f51 +Author: Travis Abendshien +Date: Tue Nov 5 10:25:30 2024 -0800 + + Merge branch 'main' of github.com:TagStudioDev/TagStudio + +commit 15bf354c88d5251f97a3c7f3051f84afcde04f53 +Author: Travis Abendshien +Date: Tue Nov 5 10:25:27 2024 -0800 + + docs(roadmap): add drag and drop + +commit 10abd18def84395df0ddd1378fa82112cc669585 +Author: Travis Abendshien +Date: Tue Nov 5 10:24:44 2024 -0800 + + docs(roadmap): add thumbnail overrides + +commit 73daa39bf19b4588b1043e89a68b3cac51bee043 +Author: Travis Abendshien +Date: Tue Nov 5 10:20:28 2024 -0800 + + docs(roadmap): clarify filetype search + +commit 0358f51f9998570887167dbf10f791e3a772cc1f +Author: Дмитрий <88423841+Roc25@users.noreply.github.com> +Date: Mon Nov 4 23:28:44 2024 +0300 + + feat: add `IMAGE_RASTER_TYPES` (Fix #550) (#551) + + * fix resolution info + + * Fix for Raw and Vector Image types + + * Small refactor + + * Create IMAGE_RASTER_TYPES and remove is_image_ext_raster + + * Change if statment only for raster + + * Rename _IMAGE_SET to _IMAGE_RASTER_SET + + --------- + + Co-authored-by: gred + +commit e02eb39ae2d2dce6e4c7e4cbe602639341646554 +Author: Hissymaster <144076671+Hissymaster@users.noreply.github.com> +Date: Tue Oct 29 14:46:27 2024 +1100 + + docs: change reference to `planned_features.md` to `roadmap.md` (#564) + + Co-authored-by: Hissymaster + +commit 6e5a1a0e52fd40e0defdc95dbab501885bcb0550 +Author: Travis Abendshien +Date: Mon Oct 28 14:38:34 2024 -0700 + + docs: add issues numbers to roadmap + +commit 237638024507d31d98a054fa46c2e62ab73dff12 +Author: Travis Abendshien +Date: Mon Oct 28 13:02:05 2024 -0700 + + docs: remove `planned_features.md` + +commit 04149f6454de3639823be52e0e56438a5a9d63d5 +Author: Travis Abendshien +Date: Mon Oct 28 13:01:13 2024 -0700 + + docs: add feature roadmap + +commit d3c3e634b93353750c9fc810af9973e64e21de71 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Oct 17 15:15:51 2024 -0700 + + feat: add ePub thumbnail support (port #387) (#539) + + * feat: add ePub thumbnail support + + Co-Authored-By: Jorge Rui Da Silva Barrios <29062316+jorgerui@users.noreply.github.com> + + * tests: compare epub cover against png snapshot + + Co-Authored-By: yed + + * test: optimize epub test file + + --------- + + Co-authored-by: Jorge Rui Da Silva Barrios <29062316+jorgerui@users.noreply.github.com> + Co-authored-by: yed + +commit 3d7629bc731286d2721f19cc60bb8bb42e6facf5 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Oct 14 16:34:49 2024 -0700 + + feat: add pdf thumbnail support (port #378) (#543) + + * feat: add pdf thumbnail support + + Co-Authored-By: Heiholf <71659566+heiholf@users.noreply.github.com> + + * fix: remove redef + + * tests: add test comparing pdf to png snapshot + + Co-Authored-By: yed + + * fix: fix info in docstrings + + * fix: remove sample png generation + + * fix: change the pdf snapshot to use a black square + + * chore: fix whitespace + + --------- + + Co-authored-by: Heiholf <71659566+heiholf@users.noreply.github.com> + Co-authored-by: yed + +commit 9255a86ad1d0800e663fb984065dd7e3362b2916 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Oct 14 13:30:46 2024 -0700 + + feat: add svg thumbnail support (port #442) (#540) + + * feat: add svg thumbnail support + + Co-Authored-By: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> + + * flip `svg.isValid()` logic check + + * tests: add test comparing svg to png snapshot + + Co-Authored-By: yed + + --------- + + Co-authored-by: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> + Co-authored-by: yed + +commit 5b85462cfa7b8e29218ad57de4024c176f598646 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Oct 12 23:59:08 2024 -0700 + + ci: pin pytest ubuntu version to 22..04 (#544) + +commit abeb0c1ce3f8d89ef8736a7c0ef1df10f1c615d2 +Author: xarvex +Date: Fri Oct 11 17:10:17 2024 -0500 + + fix(ci): complete 7c253226d529f0a799c438aca0965723e4e29544 + +commit 7c253226d529f0a799c438aca0965723e4e29544 +Author: xarvex +Date: Fri Oct 11 17:01:49 2024 -0500 + + fix(ci): replace obselete package + +commit 68c166d8d34c3935324b485b92aed5803589b173 +Author: Travis Abendshien +Date: Thu Oct 10 12:40:09 2024 -0700 + + Bump version to v9.5.0 Experimental + +commit c348c763f85f310d88ed2af2575bbd2121aa96ba +Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> +Date: Tue Oct 8 04:04:22 2024 +0200 + + fix: enable mypy to run from project directory (#520) + +commit 7574ad38465dff5e00ac7accec8dbfd9b86d058f +Author: yed +Date: Tue Oct 8 08:56:02 2024 +0700 + + fix: don't check db version with new library (#536) + +commit 7dd0f3dabbf597c293286d67252f0684a7d9a649 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Oct 7 14:14:01 2024 -0700 + + feat: port thumbnail (#390) and related features to v9.5 (#522) + + * feat: port v9.4 thumbnail + related feats to v9.5 + + Ports the following thumbnail and related PRs from the `Alpha-v9.4` branch to `main` (v9.5+): + - (#273) Blender thumbnail support + - (#307) Add font thumbnail preview support + - (#331) refactor: move type constants to new media classes + - (#390) feat(ui): expanded thumbnail and preview features + - (#370) ui: "open in explorer" action follows os name + - (#373) feat(ui): preview support for source engine files + - (#274) Refactor video_player.py (Fix #270) + - (#430) feat(ui): show file creation/modified dates + restyle path label + - (#471) fix(ui): use default audio icon if ffmpeg is absent + - (#472) fix(ui): use birthtime for creation time on mac & win + + Co-Authored-By: Ethnogeny <111099761+050011-code@users.noreply.github.com> + Co-Authored-By: Theasacraft <91694323+Thesacraft@users.noreply.github.com> + Co-Authored-By: SupKittyMeow <77246128+supkittymeow@users.noreply.github.com> + Co-Authored-By: EJ Stinson <93455158+favroitegamers@users.noreply.github.com> + Co-Authored-By: Sean Krueger <71362472+seakrueger@users.noreply.github.com> + + * remove vscode exceptions from `.gitignore` + + * delete .vscode directory + + * style: format for `ruff check` + + * fix(tests): update `test_update_widgets_not_selected` test + + * remove Send2Trash dependency + + * refactor: use dataclass for MediaCateogry + + * refactor: use enums for UI colors + + * docs: add file docstring for silent_Popen + + * refactor: replace logger with structlog + + * use early return inside `ResourceManager.get()` + + * add `is_ext_in_category()` method to `MediaCategory` + + Add method to check if an extension is a member of a given MediaCategory. + + * style: fix docstring style, missing type hints, rename `afm` + + * fix: use structlog vars in logging + + * refactor: move platform-dependent strings to PlatformStrings + + * refactor: move `parents[2]` path to variable + + * fix: undo logger regressions + + --------- + + Co-authored-by: Ethnogeny <111099761+050011-code@users.noreply.github.com> + Co-authored-by: Theasacraft <91694323+Thesacraft@users.noreply.github.com> + Co-authored-by: SupKittyMeow <77246128+supkittymeow@users.noreply.github.com> + Co-authored-by: EJ Stinson <93455158+favroitegamers@users.noreply.github.com> + Co-authored-by: Sean Krueger <71362472+seakrueger@users.noreply.github.com> + +commit e0752828dbb728bcc81dd2c58a63a2d15ec80791 +Author: yed +Date: Tue Oct 8 04:09:57 2024 +0700 + + feat: store `Entry` suffix separately (#503) + + * feat: save entry suffix separately + + * change LibraryPrefs to allow identical values, add test + +commit 1c7aaf0a16c272d777899679b3c2822f4bab9798 +Author: Travis Abendshien +Date: Wed Oct 2 14:48:01 2024 -0700 + + Revert "translations: update from Hosted Weblate (#530)" + + This reverts commit fe207062d5344f3159434880ac85acb816f01068. + +commit fe207062d5344f3159434880ac85acb816f01068 +Author: Weblate (bot) +Date: Wed Oct 2 02:12:07 2024 +0200 + + translations: update from Hosted Weblate (#530) + + * Added translation using Weblate (Russian) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Added translation using Weblate (Portuguese) + + * Added translation using Weblate (Portuguese (Brazil)) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Added translation using Weblate (Tamil) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 51.4% (73 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Added translation using Weblate (Spanish) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 88.0% (125 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 52.1% (74 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Norwegian Bokmål) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 55.6% (79 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Added translation using Weblate (French) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 68.3% (97 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 40.1% (57 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Danish) + + * Added translation using Weblate (German) + + * Translated using Weblate (Danish) + + Currently translated at 1.4% (2 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Added translation using Weblate (Cantonese (Traditional Han script)) + + * Translated using Weblate (Tamil) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (German) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Hungarian) + + * Translated using Weblate (German) + + Currently translated at 14.0% (20 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (German) + + Currently translated at 14.7% (21 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Swedish) + + * Translated using Weblate (German) + + Currently translated at 71.8% (102 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Added translation using Weblate (Toki Pona) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 83.0% (118 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Added translation using Weblate (Italian) + + * Translated using Weblate (French) + + Currently translated at 64.0% (91 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Added translation using Weblate (Turkish) + + * Translated using Weblate (Turkish) + + Currently translated at 88.7% (126 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + --------- + + Co-authored-by: Artyom Ognev + Co-authored-by: Space_Fox + Co-authored-by: Lobo Metalúrgico + Co-authored-by: Vasi + Co-authored-by: Nginearing + Co-authored-by: gallegonovato + Co-authored-by: Allan Nordhøy + Co-authored-by: Bamowen + Co-authored-by: Ryussei + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Zoinx + Co-authored-by: gold + Co-authored-by: William de Castro + Co-authored-by: Jann Stute + Co-authored-by: Nyghl + Co-authored-by: Obscaeris + +commit 02ac69978d2665e4010c45356fed6d27eadba8d8 +Author: Travis Abendshien +Date: Tue Oct 1 17:07:01 2024 -0700 + + Revert "translations: update from Hosted Weblate (#526)" + + This reverts commit c37c4a95a700920272f00a859c03ef154ecf268e. + +commit c37c4a95a700920272f00a859c03ef154ecf268e +Author: Weblate (bot) +Date: Sat Sep 28 00:21:51 2024 +0200 + + translations: update from Hosted Weblate (#526) + + * Added translation using Weblate (Russian) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Added translation using Weblate (Portuguese) + + * Added translation using Weblate (Portuguese (Brazil)) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 46.4% (66 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Added translation using Weblate (Tamil) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 51.4% (73 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Added translation using Weblate (Spanish) + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Portuguese (Brazil)) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ + + * Translated using Weblate (Tamil) + + Currently translated at 88.0% (125 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 19.7% (28 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 29.5% (42 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 49.2% (70 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 52.1% (74 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Norwegian Bokmål) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 55.6% (79 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Added translation using Weblate (French) + + * Translated using Weblate (Russian) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 56.3% (80 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Norwegian Bokmål) + + Currently translated at 68.3% (97 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ + + * Translated using Weblate (French) + + Currently translated at 40.1% (57 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 65.4% (93 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 74.6% (106 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 83.8% (119 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 93.6% (133 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Translated using Weblate (Spanish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ + + * Added translation using Weblate (Danish) + + * Added translation using Weblate (German) + + * Translated using Weblate (Danish) + + Currently translated at 1.4% (2 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Added translation using Weblate (Cantonese (Traditional Han script)) + + * Translated using Weblate (Tamil) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (German) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Hungarian) + + * Translated using Weblate (German) + + Currently translated at 14.0% (20 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (German) + + Currently translated at 14.7% (21 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Added translation using Weblate (Swedish) + + * Translated using Weblate (German) + + Currently translated at 71.8% (102 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Swedish) + + Currently translated at 78.8% (112 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ + + * Added translation using Weblate (Toki Pona) + + * Translated using Weblate (Tamil) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ + + * Translated using Weblate (Danish) + + Currently translated at 2.8% (4 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 83.0% (118 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Added translation using Weblate (Italian) + + * Translated using Weblate (French) + + Currently translated at 64.0% (91 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (German) + + Currently translated at 76.0% (108 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ + + * Translated using Weblate (Hungarian) + + Currently translated at 99.2% (141 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ + + * Translated using Weblate (Toki Pona) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ + + * Translated using Weblate (Italian) + + Currently translated at 11.2% (16 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ + + * Added translation using Weblate (Turkish) + + * Translated using Weblate (Turkish) + + Currently translated at 88.7% (126 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (Turkish) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * Translated using Weblate (French) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ + + * Translated using Weblate (English) + + Currently translated at 100.0% (142 of 142 strings) + + Translation: TagStudio/Strings + Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ + + * fix: remove unused strings and sort lists + + * chore: update .git-blame-ignore-revs + + --------- + + Co-authored-by: Artyom Ognev + Co-authored-by: Space_Fox + Co-authored-by: Lobo Metalúrgico + Co-authored-by: Vasi + Co-authored-by: Nginearing + Co-authored-by: gallegonovato + Co-authored-by: Allan Nordhøy + Co-authored-by: Bamowen + Co-authored-by: Ryussei + Co-authored-by: Szíjártó Levente Pál + Co-authored-by: Zoinx + Co-authored-by: gold + Co-authored-by: William de Castro + Co-authored-by: Jann Stute + Co-authored-by: Nyghl + Co-authored-by: Travis Abendshien + +commit 49d071cf2b2955c3a5dfb96e7df0661d9cac0b44 +Author: Travis Abendshien +Date: Sun Sep 22 20:27:40 2024 -0700 + + docs: add weblate link to readme + +commit 4cd70d2c4fe7099b2fac509fbd1be1ebe5b6fedb +Author: Bamowen <12665915+Bamowen@users.noreply.github.com> +Date: Mon Sep 23 05:18:34 2024 +0200 + + add string tokens for en.json (#507) + + * 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 + +commit 073d51734b0812beccf148a85d181539c97c9915 +Author: FB100 <57065398+FB100@users.noreply.github.com> +Date: Sat Sep 14 00:26:05 2024 +0000 + + fix: correct typo in `test_driver.py` comment (#496) + +commit e51da278faaa6836ff930f9118fa0e49c5bbf7f6 +Author: Travis Abendshien +Date: Fri Sep 13 00:30:48 2024 -0700 + + squash `.git-blame-ignore.revs` + +commit b6e216760557c5507b12f210e1e48c531f49ffa3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Sep 13 00:28:00 2024 -0700 + + ci(ruff)!: update ruff linter config, refactor to comply (#499) + + * ci: update ruff linter config + + - Set line length to 100 + - Enforce Google-style docstrings + - Lint docstrings and imports + + * ci(ruff): exclude missing docstring warnings + + * ci(ruff): exclude docstring checks from tests dir + + * fix(ruff): change top level linter setting + + Fix Ruff warning: `warning: The top-level linter settings are deprecated in favour of their counterparts in the `lint` section. Please update the following options in `pyproject.toml`: + - 'per-file-ignores' -> 'lint.per-file-ignores'`. + + * chore: format with ruff + + * add `.git-blame-ignore-revs` + + * ci(ruff): add E402 and F541 checks + + * ci(ruff): add FBT003 check (#500) + + * ci(ruff): add T20 check + + * ci(ruff)!: add N check, refactor method names + + * ci(ruff): add E501 check, refactor strings + + Much commented-out code is removed in this commit. + + * update `.git-blame-ignore.revs` + + --------- + + Co-authored-by: yed + +commit c15963868ef8a818b5c2be869f6def7426d59d4b +Author: yed +Date: Fri Sep 13 07:34:27 2024 +0700 + + feat: make search results more ergonomic (#498) + +commit a8fdae8ebcbb834c71fb2fe8de160b6b0ea7290f +Author: Travis Abendshien +Date: Thu Sep 12 15:58:08 2024 -0700 + + docs: refer to conventional commits in CONTRIBUTING.md + + Co-Authored-By: Xarvex <60973030+xarvex@users.noreply.github.com> + +commit 2f2f763a29a99c4cf8d484e13e2d1e73c2b7a602 +Author: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> +Date: Thu Sep 12 23:02:56 2024 +0100 + + fix(search): remove wildcard requirement for tags (#481) + + * Fix tag search to not require wildcards + + * Add partial tag check to test_tag_search + + * chore: format with ruff + + --------- + + Co-authored-by: Tyrannicodin + Co-authored-by: Travis Abendshien + +commit 4942d1633cd24a6c04f0699de9546c3781ea22f5 +Author: yed +Date: Fri Sep 13 04:54:20 2024 +0700 + + refactor: cleanup the `refresh_dir` code, update tests (#494) + + * feat: take Ignore List into consideration when refreshing directory + + * undo the extension check in refresh_dir + +commit af642a7d29a3fe4dd855c618dec31766dd5832c9 +Author: yed +Date: Tue Sep 10 15:31:33 2024 +0700 + + fix: prevent error on closing library (#484) + +commit 2e8efa288d96a5f444e634e65602226d17268e19 +Author: Sean Krueger +Date: Mon Sep 9 11:34:55 2024 -0700 + + fix(flake): add missing x11 dependency (#478) + +commit fb949b82b7e3ed76a70446bd5cf7d2f18c940266 +Author: Travis Abendshien +Date: Sun Sep 8 22:36:03 2024 -0700 + + Revert "ci: add `README.md` to `publish_docs` workflow" + + This reverts commit 98f4246ff42ea0d4e0d28eccf2e4dfda0cbc5e84. + +commit 98f4246ff42ea0d4e0d28eccf2e4dfda0cbc5e84 +Author: Travis Abendshien +Date: Sun Sep 8 22:19:21 2024 -0700 + + ci: add `README.md` to `publish_docs` workflow + +commit d75d3444397e0883bb1213ac6d3dc84992c473b9 +Author: Travis Abendshien +Date: Sun Sep 8 22:13:03 2024 -0700 + + fix(docs): use valid note callout + +commit aeb7972206ddfda1df8d2cc2ac2ccf0a5528261e +Author: Travis Abendshien +Date: Sun Sep 8 22:08:45 2024 -0700 + + docs: add SQL warning to CONTRIBUTING.md + +commit 693a7bc160cfdbd88d5b1ae50d99aa7994cfc1ba +Author: Travis Abendshien +Date: Sun Sep 8 22:08:37 2024 -0700 + + docs: update top README warnings + +commit e5e7b8afc62c1a958c172b35819caa26995f2060 +Author: yed +Date: Mon Sep 9 12:06:01 2024 +0700 + + refactor!: use SQLite and SQLAlchemy for database backend (#332) + + * 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 + +commit 67f7e4dcf94e16447a750287e437b757bc933d9d +Author: Sean Krueger +Date: Sun Sep 8 11:11:29 2024 -0700 + + fix(docs): use correct formatting on FFmpeg help page (#475) + + * fix: Add spacing between list elements + + * fix: Add title and fixup headers + +commit 99d32357741162b3fc445b54625c5046d8565655 +Author: Sean Krueger +Date: Sun Sep 8 10:29:00 2024 -0700 + + docs: add ffmpeg installation guide (#473) + + * docs: Add ffmpeg installation guide + + * docs: Add discord invite link + + * grammar + + * spelling + +commit 60cad202da77f1e2bd88c8ad0467052930341585 +Author: Bamowen <12665915+Bamowen@users.noreply.github.com> +Date: Sun Sep 8 19:28:13 2024 +0200 + + docs: add discord server link in CONTRIBUTING.md (#474) + +commit 9b5c26a61edab144863ebc403767a410478cdb6f +Author: Knaughty <77908661+Kn4ughty@users.noreply.github.com> +Date: Sun Sep 8 13:34:11 2024 +1000 + + fix(docs): correct grammar mistake in CONTRIBUTING.md. (#452) + + Removed unnecessary with in "- Lint code *with* by [doing x]" + +commit f472d22e10ea6a700c0168a634aeb8c4ac64c9ec +Author: Travis Abendshien +Date: Sat Sep 7 07:39:28 2024 -0700 + + ci: add `publish_docs.yaml` to `publish_docs` paths + +commit 844dae0f58225ae211e608b5263f9e2d513ca252 +Author: CarterPillow +Date: Sat Sep 7 15:34:20 2024 +0100 + + fix(ci): update `site_url` in mkdocs.yml (#467) + + Configure MkDocs to use the custom domain: `docs.tagstud.io` + +commit d04d3b1f0aecec69356ca90aa2c610ad7ec0f2b5 +Author: Travis Abendshien +Date: Sat Sep 7 07:30:08 2024 -0700 + + ci: specify push paths for `publish_docs` + +commit 686e803f3e687ee7a9340aef7a7fccf0c834ed00 +Author: Travis Abendshien +Date: Sat Sep 7 00:35:19 2024 -0700 + + ci: add CNAME `docs.tagstud.io` + +commit a8f9bec65c51504f6215ed6defc9aa8fba333473 +Author: Travis Abendshien +Date: Sat Sep 7 00:20:06 2024 -0700 + + ci: route mkdocs `edit_uri` to `blob/main/docs` + +commit 0b56e7344f5c683404163c47e222da382f6c8f44 +Author: xarvex +Date: Sat Sep 7 01:30:19 2024 -0500 + + fix(ci): single character typo for mkdocs + +commit af4ef217a5ffd0b257326cb1130d771e93dd50b8 +Author: Paul Friederichsen +Date: Sat Sep 7 01:10:39 2024 -0500 + + ci: use MkDocs for documentation site (#460) + + * Use MkDocs for documentation + + Using Material for MkDocs + + * Enable edit buttons on pages + + * Updates to mkdocs.yml + +commit 84691310064ccb195e4dbb90c0f42cf955869e23 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Sep 3 16:32:47 2024 -0700 + + docs: add ffmpeg requirement + +commit 3e2fb1282c2262df85d54ff66164de1eaf1ea0e8 +Author: xarvex +Date: Tue Sep 3 00:11:59 2024 -0500 + + feat(flake): expose formatter + + Fixes: #433 + +commit 3e950a0cbecc9d00a65b50d8ecdc96bca4fa32ae +Author: xarvex +Date: Sun Sep 1 21:26:34 2024 -0500 + + fix(direnv)!: gitignore .envrc + + A common workflow is to have a local .envrc, allow contributors to do + so. Still provide the recommended Nix-based setup, for those who wish to + use it. + That file can then be copied to or symlinked to `.envrc`. + +commit 38626ac6902cbe1988a05bf7aa13f5c88c1b3eaf +Author: xarvex +Date: Sat Aug 31 13:16:27 2024 -0500 + + chore(direnv): update .envrc + - Cleanup direnv-root file + - Set filetype for vi-like editors + - Format and lint according to shellcheck and shfmt + +commit bc38e568fa3da18e7a05c2931472a98a0e9ac2bc +Author: xarvex +Date: Fri Aug 30 14:44:13 2024 -0500 + + feat(flake): remove impurity, update nix-direnv + + 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. + +commit 4b35df0924aad2e5f0394aff3010dbe5b84ceda5 +Author: Florian Zier <9168602+zierf@users.noreply.github.com> +Date: Fri Aug 30 06:49:00 2024 +0200 + + fix(flake): GPU hardware acceleration + + * 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. + +commit 750cbf0f9ce848d321237f36a6837b1d5961b35f +Author: xarvex +Date: Thu Aug 29 19:32:30 2024 -0500 + + fix(flake): add missing media dependencies + Fixes: #417 + + Did not opt for setting VDPAU_DRIVER, should be done on user side + See: https://wiki.archlinux.org/title/Hardware_video_acceleration#Configuring_VA-API + +commit cb4798b71595c113c0519af4991ad52b60adaa31 +Author: xarvex +Date: Sat Aug 24 22:57:00 2024 -0500 + + feat(flake): complete revamp with devenv/direnv + + 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! + +commit e1b1ef98881613d227b2a0b57d7ba61dfad007d8 +Merge: 3fcf602 15ee13c +Author: Xarvex +Date: Thu Aug 22 20:09:24 2024 -0500 + + Merge pull request #229 from seakrueger/flake-setup-venv + + ci(flake): create and activate venv via Nix Flake + +commit 3fcf6022b90f45b7e13c477537d100138d3d1bd1 +Author: UnusualEgg <76134596+UnusualEgg@users.noreply.github.com> +Date: Thu Aug 22 21:02:03 2024 -0400 + + refactor: combine `open` launch args (#364) + + Combine the `--open` and `-o` launch arguments into a single argument option. + +commit ec960f237258727c9acadd326908dffc8bdea5f8 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Aug 11 19:01:08 2024 -0700 + + (fix): use `.get()` to avoid `KeyError` (#347) + +commit ce87b11fbd642e688f0856e055fb77257eff15c1 +Author: Sam <51455162+samuellieberman@users.noreply.github.com> +Date: Mon Jul 22 07:59:43 2024 -0600 + + Fix #2 for Add Library Tags panel (#328) + + The "Add Tags" panel displays all tags when no search has been performed. Modifies the "Add Library Tags panel" to be the same. + +commit c79086f7152db570ed615ca291855019e033fb4d (tag: v9.3.2) +Author: Travis Abendshien +Date: Thu Jul 4 17:40:19 2024 -0700 + + Fix collation data not clearing on library close + +commit 9ce07bd369af87e52279419c970ac325aba2187f +Author: Travis Abendshien +Date: Wed Jul 3 17:41:21 2024 -0700 + + Bump version to 9.3.2 + +commit 33ee27a84fd8d1200c6d98af38b41b92382ead5f +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Thu Jul 4 02:02:59 2024 +0200 + + Fix small bug (#306) + +commit 1204d2b7b50c4401a6b444ca82bf6421aa6d4789 +Author: Travis Abendshien +Date: Fri Jun 21 11:28:12 2024 -0700 + + Fix search ignoring case of extension list + +commit 15ee13c7b4666d36968ee9bc459b6993cab61370 +Author: Sean Krueger +Date: Mon Jun 17 13:02:52 2024 -0500 + + Bump Qt6 version to 6.7.1 + +commit 49ad8117ef4fb661096296da8a22030c2777f6d6 +Author: Xarvex +Date: Sun Jun 16 02:59:59 2024 -0500 + + fix(flake): resolve mypy access to libraries + +commit 4f193613deaa8179ce131ccff6fb2f156f9464b6 +Author: Sean Krueger +Date: Mon Jun 10 19:16:24 2024 -0500 + + Update Contributing documentation for dev on Nix + + 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. + +commit 31038711f2e692daecc2b8bb9e604b88caded253 +Author: Sean Krueger +Date: Fri Jun 7 18:09:42 2024 -0500 + + Install ruff via nixpkgs + +commit cc827108efa3f8c61e0033e57dbae246eb031d5c +Author: Sean Krueger +Date: Thu Jun 6 20:50:22 2024 -0500 + + Add xcb as fallback when wayland fails to load + + Mostly as a fallback for xserver. + +commit 9fec4822c198c83c6b8266defe2b7076cf84ce79 +Author: Sean Krueger +Date: Mon Jun 3 11:51:41 2024 -0500 + + Setup and activate virtual environment via flake + + 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. + +commit 501ab1f9772690761982696f1800fa8fed969a79 +Author: Travis Abendshien +Date: Sun Jun 16 19:54:56 2024 -0700 + + Update issue templates to ask for title + +commit b3c01e180a0c54483a7fc1e7eba0063b3ff3f4d2 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Jun 17 01:53:38 2024 +0200 + + Update to pyside6 version 6.7.1 (#223) + + * 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 + +commit 4c6ebec529d2111c3901edfbd779c8e71f469a8b +Author: Jiri +Date: Mon Jun 17 05:24:48 2024 +0800 + + refactoring: centralize field IDs (#157) + + * use enum with named fields instead of ad-hoc numbers + + * move tag ids into constants file + +commit 5c25666e670752db4770e3c38c66bc7765401083 +Author: Travis Abendshien +Date: Sat Jun 15 13:19:28 2024 -0700 + + Fix TypeError in folders_to_tags.py + + - Additionally use proper comparison syntax + +commit fae65bd9e95650c3a9b7e54054423d67d1d18f6c +Author: Lennart S <55597910+LennartCode@users.noreply.github.com> +Date: Sat Jun 15 22:10:55 2024 +0200 + + docs: Fixed broken markdown doc link (#291) + +commit 8e065ca8aca209928b62c68dc99d95d6069afad5 +Author: Jiri +Date: Sat Jun 15 01:11:00 2024 +0800 + + create testing library files ad-hoc (#292) + +commit 82946cb0b8113f58092d496c5d908c7939d68f80 +Author: Travis Abendshien +Date: Thu Jun 13 15:39:13 2024 -0700 + + Update CONTRIBUTING.md with PyTest info + +commit aa2925cde0589833c2e7c136b2d248d779ac37ef +Author: Jiri +Date: Fri Jun 14 06:29:22 2024 +0800 + + add pytest to CI pipeline (#286) + +commit 5bc80a043fc09fe0e0bd4b7c6c2d302dd3095274 (tag: v9.3.1) +Author: Travis Abendshien +Date: Thu Jun 13 09:17:14 2024 -0700 + + Update tagstudio.spec + +commit 65d88b9987e2c295c33d58abf26da30c1acf1795 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jun 12 23:20:17 2024 -0700 + + Refactor `video_player.py` (Fix #270) (#274) + + * Refactor video_player.py + + - Move icons files to qt/images folder, some being renamed + - Reduce icon loading to single initial import + - Tweak icon dimensions and animation timings + - Remove unnecessary commented code + - Remove unused/duplicate imports + - Add license info to file + + * Add basic ResourceManager, use in video_player.py + + * Revert tagstudio.spec changes + + * Change tuple usage to dicts + + * Move ResourceManager initialization steps + + * Fix errant list notation + +commit 37ff35fcf6675e101b1a72305764e074d28b0543 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Jun 12 02:00:16 2024 -0700 + + Set mouse event transparency on ItemThumbs (#279) + +commit 9b13e338bbf93ddbfc2932a9137829a5422b1794 +Author: Xarvex +Date: Tue Jun 11 21:32:18 2024 -0500 + + Use bug report and feature request forms for issues (#277) + + * Initial bug report + + * Images can be attached in description + + * Enclose label in quotes + + * Wikis are no longer being used + + * Use footnote to clarify what is up-to-date + + * Footnotes not supported in checklist + + * Initial feature request form + + * Fixup grammar/wording + +commit a47b0adb6e8a9e6732ea0ff282d90810c7ec68c8 +Author: Travis Abendshien +Date: Tue Jun 11 17:29:30 2024 -0700 + + Update icon.ico + +commit 9f39bf6fdc54580b72c3016ff73495233b19641d +Author: Travis Abendshien +Date: Tue Jun 11 01:27:21 2024 -0700 + + Update README: Correct version number in figure + +commit e375166bfebd8616108dcf1bbda752ab08935212 +Author: Andrew Arneson +Date: Mon Jun 10 19:10:57 2024 -0600 + + Raise error if video file has 0 frames or is in valid. (#275) + + video.get(cv2.CAP_PROP_FRAME_COUNT) returns 0 or -1 + +commit 7054ffd22715c8c887a07895738eac335f0e0215 +Author: Sean Krueger +Date: Mon Jun 10 16:52:13 2024 -0500 + + Separately pin QT nixpkg version (#244) + + * Add missing libraries for video player + + * Pin qt6 package version to 6.6.3 + + Currently, this succesfully launches the program. Pinning qt seperatly + allows the rest of unstable nixpkgs to be updated even after the qt + package version has been bumped. This fixes vim failing to launch in the + nix shell because of a bad gcc version. Bumping the package version to + qt6.7.1 also will require bumping PySide to 6.7.1, otherwise it will + fail to find qt. Qt 6.7.1 nixpkg commit is 47da0aee5616a063015f10ea593688646f2377e4 + + * fixup: Pin Qtcreator also + + QtCreator was still against nixpkgs not the specific qt variant. + +commit 6d283d1f2dd841a733e6108b83f5d79981bae329 +Author: Travis Abendshien +Date: Mon Jun 10 02:30:16 2024 -0700 + + Add CONTRIBUTING.md, update README + +commit a0baf015dbd8b50e621c8e5c56cccaf9e47ad9b0 +Author: Travis Abendshien +Date: Sat Jun 8 15:34:29 2024 -0700 + + Bump version to v9.3.1 Pre-Release + +commit 58be4cdb4b609b92e61c1cb8837fd5b2372a9613 (tag: v9.3.0, upstream/Alpha-v9.3) +Author: Travis Abendshien +Date: Sat Jun 8 15:21:37 2024 -0700 + + Bump version to v9.3.0 + +commit 08761d5f8a1003309aa782bc82e3048e572edc85 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jun 8 15:18:40 2024 -0700 + + Add Landing Page When No Library Is Opened (#258) + + * 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 + +commit 6a680ad3d18b0c7f2250870e98842b3e13c967b0 +Author: Travis Abendshien +Date: Sat Jun 8 12:40:37 2024 -0700 + + Increase shown tag limit from 29 to 100 (#227) + +commit b5ec3598e1c6b3009fd1f47ac20640dc2ee8b013 +Author: PencilVoid <83508866+PencilVoid@users.noreply.github.com> +Date: Sat Jun 8 18:51:39 2024 +0100 + + Add "Clear Selection" button (#259) + + * Add "Clear Selection" button + + * Change clear select keybind to Esc + +commit 926dfffebe75f4420a029e57fc4a1a3abdba2f96 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sat Jun 8 03:02:28 2024 +0200 + + Add option to use a allowed extensions instead of ignored extensions (#251) + + * 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 + + * polishing + + * polishing + + * Fix mypy + + * finishing touches + + Co-authored-by: Jiri + + * 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 + Co-authored-by: Travis Abendshien + +commit 461906c349c0609a37db6d4f3893645b9a74020f +Author: Xarvex +Date: Thu Jun 6 14:51:08 2024 -0500 + + Workflows: attempt fix for mismatched hashes in pip and bump MacOS version (#255) + + * Attempted fix at mismatched hashes + Due to the seemingly random nature of the bug, this cannot be tested + + * macos-11 runner has been deprecated, bump to 12 + +commit 2dc5197fbd5ec3f1e4f7da2af9562e9dc3aad4f5 +Author: Travis Abendshien +Date: Tue Jun 4 15:59:39 2024 -0700 + + Add upcoming feature documentation + +commit 11f0c7f9b8003554dbfe14b640a788ee3a05a54b +Author: PossiblePanda <85448494+PossiblePanda@users.noreply.github.com> +Date: Tue Jun 4 17:13:57 2024 -0400 + + Added various file formats to constants.py (#231) + + * Added various file formats to constants.py + + * Update tagstudio/src/core/constants.py + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * Update tagstudio/src/core/constants.py + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit fb445e6ab0fed7a3f0ad96db4a38b064ea02d814 +Author: Andrew Arneson +Date: Mon Jun 3 22:47:56 2024 -0600 + + Fix Default Ignored File Extension (#245) + + Add item delegate for Ignored File Extension to add leading `.` if left off extension + +commit 6e96a0ff6114824c8c4efa8d9ef500b2c69d97e9 +Author: Giochino Danilo Ramos Silva <41204130+YoyloNerd@users.noreply.github.com> +Date: Tue Jun 4 00:37:56 2024 +0200 + + Multi mode search system (#232) + + * 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 + +commit c75aff4db3edf2a2a1effd392c432b2cefdc9f7c +Author: Travis Abendshien +Date: Mon Jun 3 13:30:15 2024 -0700 + + Rename "Subtags" to "Parent Tags" + + Mentioned change in #211 + +commit 84a4b2f0cf883007782db5ff1e19522b126c362b +Merge: 10b90dc 2d89df6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jun 2 22:54:51 2024 -0700 + + Merge pull request #240 from Loran425/bugfix/cancel_library_dialog + + Bugfix Open Library Dialog + +commit 10b90dcc743e3c3e65e3fd41582dc791761aaf7b +Author: Andrew Arneson +Date: Sun Jun 2 23:53:42 2024 -0600 + + Bugfix for recent library re-creating a library at the last library location. (#238) + + * 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 + +commit 2d89df620e9b79fbf04ec8261235b36c536e48d2 +Author: Andrew Arneson +Date: Sun Jun 2 22:43:10 2024 -0600 + + Fix Open Library Dialog + Resolve issues where the open library dialog will try to open `.` if no path is returned from the dialog + +commit 0646508c248fe815cd0c984f660c05ccb34a3b97 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Jun 2 20:18:40 2024 -0700 + + Fix Raw Image Handling and Improve Text File Encoding Compatibility (#233) + + * 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 `.stat()` + - Remove unnecessary upper/lower conversions + - Improve encoding compatibility beyond UTF-8 when reading text files + - Code cleanup + + * Use chardet for character encoding detection + +commit 0137ed5be8d8786cd76561f19f333fe753533eac +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Jun 1 21:09:55 2024 -0700 + + Update README.md + +commit 779a251c09ea3e307c41e4958e1ad6e4d9077bd3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sat Jun 1 01:45:13 2024 +0200 + + Fix small bugs (#228) + +commit 868b553670ddfd4bfd5c3822c6721a4c9b84f140 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 29 15:47:37 2024 -0700 + + Duplicate Entry Handling (Fixes #179) (#204) + + * Reapply "Add duplicate entry handling (Fix #179)" + + This reverts commit 66ec0913b60a195fe3843941c4c00021bf97e023. + + * Reapply "Fix create library + type checks" + + This reverts commit 57e27bb51f26793da110bab8903555a53fb82c99. + + * Type and hint changes + + * Remove object cast + + * MyPy wrestling + + * Remove type: ignore, change __eq__ cast + + - Remove `type: ignore` comments from `Entry`'s `__eq__` method + - Change the cast in this method from `__value = cast(Self, object)` to `__value = cast(Self, __value)` + + Co-Authored-By: Jiri + + * Fix formatting + mypy + + --------- + + Co-authored-by: Jiri + +commit 9f630fe31526e3a71ac73caa003d086dab606e45 +Author: DrRetro <86109384+DrRetro2033@users.noreply.github.com> +Date: Wed May 29 16:58:09 2024 -0400 + + Video Player (#149) + + * 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. + +commit 6798ffd0a7ca970383abbe5e8a997d0b221011be +Author: Icosahunter <33938534+Icosahunter@users.noreply.github.com> +Date: Sun May 26 18:17:05 2024 -0500 + + Replace use of os.path with pathlib (#156) + + * 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 + + * 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 + Co-authored-by: Travis Abendshien + +commit 2e8678414b587a47bd06548d4663c1b01d74f18f +Author: Jiri +Date: Sun May 26 16:00:56 2024 +0800 + + feat: add select all hotkey (#217) + + * add select all hotkey + + * add item to selected + +commit e1cd46d0107f6bba3a442155cdd6d4a56bfd6454 +Author: Gawi <95928592+Gawidev@users.noreply.github.com> +Date: Sat May 25 16:49:12 2024 -0400 + + Wiki/Docs Updates (#194) + + * split file + link fix + + * Cleanup & Minimum Fill + + * polish & link + + * Update doc/Tag.md + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + +commit 9879697c957216ec0e91dc12b49c082588f21e95 +Author: Travis Abendshien +Date: Thu May 23 00:42:00 2024 -0700 + + Bump version to v9.2.2 + +commit 57e27bb51f26793da110bab8903555a53fb82c99 (tag: v9.2.1) +Author: Travis Abendshien +Date: Mon May 20 17:44:52 2024 -0700 + + Revert "Fix create library + type checks" + + This reverts commit 6357fea8db442269194ad02fb8ca675505bcadeb. + +commit 66ec0913b60a195fe3843941c4c00021bf97e023 +Author: Travis Abendshien +Date: Mon May 20 17:43:25 2024 -0700 + + Revert "Add duplicate entry handling (Fix #179)" + + This reverts commit 491ebb6714b2245e9de20c122e2f0fa9fd6211b0. + +commit 6357fea8db442269194ad02fb8ca675505bcadeb +Author: Travis Abendshien +Date: Mon May 20 17:36:22 2024 -0700 + + Fix create library + type checks + +commit 491ebb6714b2245e9de20c122e2f0fa9fd6211b0 +Author: Travis Abendshien +Date: Mon May 20 17:14:30 2024 -0700 + + Add duplicate entry handling (Fix #179) + + - 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. + +commit 385b4117dbe8ee9880702cd81eb10085b20ba35b +Author: Travis Abendshien +Date: Sat May 18 19:03:57 2024 -0700 + + Fix incorrect pillow-heif import + +commit be3992f655c48e70ab85b47e66a0263203a5d979 +Author: Travis Abendshien +Date: Sat May 18 18:58:01 2024 -0700 + + Add HEIC/HEIF image support + + - Add support for HEIC/HEIF image thumbnails and previews + - Replace dependency "pillow_avif_plugin" with "pi-heif" + - Remove unused dependencies in ts_cli.py + +commit 18becd62a308e727b583caa387611f7fe453e2e4 +Author: Travis Abendshien +Date: Sat May 18 18:49:35 2024 -0700 + + Add RAW image support (Resolve #193) + + - Add thumbnail and preview support for RAW images ["raw", "dng", "rw2", "nef", "arw", "crw", "cr3"] + - Optimize the preview panel's dimension calculations (still need to move this elsewhere) + - Refactored use of "Path" in thumb_renderer.py + +commit 699ecd367ceba38cbdd0244148e7927ada3a3f96 +Author: Travis Abendshien +Date: Sat May 18 17:57:28 2024 -0700 + + Adaptive resampling method for images (Fix #174) + + When loading an image for thumbnails and previews, the resampling method is now determined by the size of the original image. Now low resolution images use "nearest neighbor" sampling while higher resolution images continue to use "bilinear" sampling. + +commit 9d7609a8e5cde937d562ef8f552206bd0578a206 +Author: Travis Abendshien +Date: Sat May 18 17:32:54 2024 -0700 + + Load palletized images as RGBA (Fix #175) + +commit e94c4871d76056cfee308a0c7a94ca265db3905c +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun May 19 01:56:45 2024 +0200 + + Refactor Thumbrenderer (#168) + + * Merge Render methods + + * Cleanup comments + + * Removed old render methods and replaced with new one + + * Fix Formatting + + - Change all instances of "os.path.normpath" to pathlib's "Path" + - Remove unused import + - Modify log formatting + - Change "self.tr" to "self.thumb_renderer" to avoid masking internal method + - Restore DecompressionBombError handling from main + - Misc. formatting + + * Fix MyPy no-redef + + --------- + + Co-authored-by: Travis Abendshien + +commit 02bf15e0807d09b406ae05149285959e5dcf624d +Merge: cdf2581 5f60ec1 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 21:13:41 2024 -0700 + + Merge pull request #142 from Hidorikun/test-support-2 + + Add pytest support + +commit 5f60ec17022fda91ea70d8cd69edf20e81413cdf +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 21:12:02 2024 -0700 + + Add missing imports to ts_core.py + +commit cdf2581f84d3f1bad012e32e9812013c76ee373d +Merge: ac9dd58 af8b4e3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 21:02:02 2024 -0700 + + Merge pull request #192 from yedpodtrzitko/yed/better-mypy-pr + + use reviewdog for mypy job + +commit af8b4e3872af750aa98aced2a96454b1422c65c5 +Author: yedpodtrzitko +Date: Sat May 18 10:11:55 2024 +0800 + + use reviewdog for mypy job + +commit ac9dd5879e5840d3bdadacbab0484723f83f7555 +Merge: 1461f2e badcd72 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 17 14:14:59 2024 -0700 + + Merge pull request #189 from michaelmegrath/main + + fix: Clear Edit Button on container update (#115) + +commit badcd72bea47e805be245d5375386d603097bb87 +Author: Michael Megrath +Date: Thu May 16 22:09:41 2024 -0700 + + fix: Clear Edit Button on container update (#115) + +commit 8733c8d30130ae2b0f85e2d7a2a8b5c03651396b +Author: Vele George +Date: Thu May 16 10:37:34 2024 +0300 + + Update constants.py + +commit 4726f1fc63c99a2cc4d98ecad6d1942536e7d429 +Merge: c9ea25b 1461f2e +Author: Vele George +Date: Thu May 16 10:37:27 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit 1461f2ee70be4437dfc3b49f86f42bef80899574 +Merge: c09f50c 1bfc24b +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 15 22:39:42 2024 -0700 + + Merge pull request #186 from yedpodtrzitko/main + + fix: update recent libs when creating new one + +commit 1bfc24b70f162552994b47e803f4a7f5a0609814 +Author: yedpodtrzitko +Date: Thu May 16 13:28:29 2024 +0800 + + fix: update recent libs when creating new one + +commit c09f50c5686ab9d5dc9799c08221912a7b913ec9 +Author: Jiri +Date: Thu May 16 13:25:53 2024 +0800 + + ci: add mypy check (#161) + + * ci: add mypy check + + * fix remaining mypy issues + + * ignore whole methods + +commit 66aecf2030bea8dff84611d21b597c9b56e51c75 +Merge: 6e56f13 dc18826 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 15 16:38:57 2024 -0700 + + Merge pull request #180 from yedpodtrzitko/yed/fix-sidebar-size + + fix sidebar expanding + +commit dc188264f980c56a982bd0b8de462dc6e786d284 +Author: yedpodtrzitko +Date: Thu May 16 07:25:21 2024 +0800 + + fix sidebar expanding + +commit 6e56f13edac9b7132a8bb60e6069d9302f75255e +Author: Travis Abendshien +Date: Wed May 15 15:30:33 2024 -0700 + + Bump version to v9.2.1 + +commit c9ea25b940d0149df6f5cbadab75e7961bd14cd0 +Merge: 4b1119e e814d09 +Author: Vele George +Date: Wed May 15 10:23:36 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit e814d09c60e7be03b734cbfdc97378e82d3f1a3f +Author: Travis Abendshien +Date: Wed May 15 00:15:44 2024 -0700 + + Add macOS Gatekeeper note to README + +commit 69115ed9bbc69a0f20563722878586433dc41f44 (tag: v9.2.0) +Merge: e655fd0 296aed6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 14 22:46:35 2024 -0700 + + Merge pull request #173 from xarvex/release-binary-2 + + Correct upload binaries used in release workflow + +commit 296aed6575645582e8bbe91ce3888193795c51f5 +Author: Xarvex +Date: Wed May 15 00:45:19 2024 -0500 + + Correct upload binaries used in release workflow + +commit e655fd091dd965832abb34b72bcffa2bc9d17f14 +Author: Travis Abendshien +Date: Tue May 14 22:27:15 2024 -0700 + + Update CHANGELOG.md + +commit 8780063e22b6516ee4a7c0ba679104ff2eaad864 +Merge: c6d2a89 ecea6ef +Author: Travis Abendshien +Date: Tue May 14 22:11:51 2024 -0700 + + Merge branch 'main' of https://github.com/TagStudioDev/TagStudio + +commit c6d2a89263b3c4291978428c3cf193083656a1fd +Author: Travis Abendshien +Date: Tue May 14 22:11:40 2024 -0700 + + Update documentation + + - Update README + - Update CHNAGELOG + - Update `--config-file` argument help message + +commit ecea6effa4a50a968273341ac146bc27d08958e1 +Author: Xarvex +Date: Wed May 15 00:06:39 2024 -0500 + + Release workflow with binary executables (#172) + + * Refactor: remove __init__ meant for Python versions before 3.3 + This does mess with a large amount of imports, as the system was being + misused to re-export submodules. This change is necessary if PyInstaller + is to work at all. + + * Add MacOS icon + + * Create PyInstaller spec file + + * Create Release workflow + Creates executable with PyInstaller, leveraging tag_studio.spec + + * Support both nonportable and portable in tag_studio.spec + + * Rename spec-file to create consistently-named directories + + * Only ignore other spec files + + * Swap exclusion option + + * Use windowed application + + * Ensure environment variables are strings + + * Cleanup visual order on GitHub interface + + * Use app for MacOS + + * Only cycle through MacOS version + + * All executables generated for MacOS are portable + + * Use up-to-date packages + + Should resolve caching issues + + * Correct architecture naming for MacOS + +commit 8e11e285614072548f3d7662201f5cdd9be6969f +Merge: 5d85417 eba7c3e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 14 14:36:56 2024 -0700 + + Merge pull request #159 from Loran425/main + + Change QSettings behavior to work with executables + +commit 5d85417ce41820021f9bfa66969c8e078e00b802 +Merge: f35d9c1 5d21375 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 14 12:06:42 2024 -0700 + + Merge pull request #151 from yedpodtrzitko/yed/libs-sidebar + + add list of libraries into sidebar + +commit 4b1119ecba96d238fbf28c10ac6c4746dd013c77 +Merge: ad850cb f35d9c1 +Author: Vele George +Date: Tue May 14 11:38:24 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit 5d21375e65551e0b0e447c79fbdb5e68f80bf0fd +Author: yedpodtrzitko +Date: Tue May 14 15:51:41 2024 +0800 + + dont expand recent libs + +commit f60a93f35be2b5f697e54192086639c7dee504f3 +Author: yedpodtrzitko +Date: Tue May 14 14:58:42 2024 +0800 + + keep remove button small + +commit a71ed7c4265dacebbf819a4cd35130888448c4b6 +Author: yedpodtrzitko +Date: Tue May 14 12:24:47 2024 +0800 + + add button for removing recent lib + +commit 06f528f8b5491f0483d043e4c220392389017c99 +Author: yedpodtrzitko +Date: Tue May 14 10:30:58 2024 +0800 + + CR feedback + +commit 94a0b000075a7323fc6ca4cfa9b64ce4da607916 +Author: yedpodtrzitko +Date: Fri May 10 01:41:38 2024 +0800 + + add list of libraries into sidebar + +commit eba7c3e17874c65522e3877dab5e39a453ca97ae +Merge: 89b1921 f35d9c1 +Author: Andrew Arneson +Date: Mon May 13 20:45:47 2024 -0600 + + Merge remote-tracking branch 'upstream/main' + +commit 89b1921e56e739e519ded5ae183c0841f36861da +Author: Andrew Arneson +Date: Mon May 13 20:45:37 2024 -0600 + + Eliminate guess work on config file + Removes support for directory as a `--config-file` argument + +commit f35d9c13135094bdbec883f3a4ff8ed3884851ff +Merge: 6a2199d 93526fa +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon May 13 14:31:46 2024 -0700 + + Merge pull request #165 from yedpodtrzitko/yed/ci-run + + ci: try to run the app + +commit 6a2199dd2efb90f4fbd0cb1d9a772eb3f73edbf0 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon May 13 23:18:07 2024 +0200 + + Fix pillow decompression bomb error mentioned in #164 (#166) + + * Fixes DecompressionBombError + + * Fixes DecompressionBombError in PreviewPanel + + * Ruff reformat + + * Handle all DecompressionBombErrors + + * Handle all DecompressionBombErrors + + * RUFF + + * fix typo + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * fix typo + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + * Ruff reformat + + --------- + + Co-authored-by: Thesacraft + +commit 0416fde7f5c1ca2aee47887aec92507dc178a44a +Author: Xarvex +Date: Mon May 13 14:50:04 2024 -0500 + + Refactor: remove __init__.py files meant for Python versions before 3.3 (#160) + + * Refactor: remove __init__ meant for Python versions before 3.3 + This does mess with a large amount of imports, as the system was being + misused to re-export submodules. This change is necessary if PyInstaller + is to work at all. + + * Thanks Ruff + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + + --------- + + Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> + +commit 02d6b22b2544fd651f9816c20dda590ae77571f5 +Author: Travis Abendshien +Date: Mon May 13 12:13:06 2024 -0700 + + Splash screen now stays on top of other windows + +commit 851d1fb3b242af64caf3a4caf5dc592e6e90414d +Author: Travis Abendshien +Date: Mon May 13 01:10:40 2024 -0700 + + Changes to allow for native menu bars + +commit 4616da4e5f5a486fc50f5f40f12d246159460e62 +Author: Travis Abendshien +Date: Sun May 12 23:52:44 2024 -0700 + + Added the splash screen to the QResources system + +commit d43b00bd0018aae28da373ae860f69227e35a72a +Author: Travis Abendshien +Date: Sun May 12 23:44:41 2024 -0700 + + Updated macOS Icon + + - Also cleaned up surrounding commented-out code + - This should hopefully fix the dock icon trying to swap during runtime + +commit e7318c747308ffe6f9030c58943fe2d6f4dbc4e6 +Author: Andrew Arneson +Date: Sun May 12 23:09:28 2024 -0600 + + Ruff Formatting + +commit 74e90df6804c3dc495e637fabdeb34fca5590482 +Author: Andrew Arneson +Date: Sun May 12 23:07:01 2024 -0600 + + Revert QSettings location to `IniFormat` `UserScope` defaults + Adds `-c/--config-file ` argument to tag_studio.py + +commit 6566682504e42da5bb0c7f023c701217f63e6ba3 +Merge: 88b0f70 b00dbf9 +Author: Andrew Arneson +Date: Sun May 12 22:44:50 2024 -0600 + + Merge remote-tracking branch 'refs/remotes/upstream/main' + +commit b00dbf95487616a5e5123d428e86b3fd6e6e789a +Author: Travis Abendshien +Date: Sun May 12 21:15:46 2024 -0700 + + Squashed commit of the following: + + commit 094b6d50d975ec8feaa24af6a8a7b121fe87bce3 + Author: Travis Abendshien + Date: Sun May 12 19:52:25 2024 -0700 + + Formatted using Ruff + + Co-Authored-By: yed podtrzitko + + commit 088ef5263e38c948dda9a875fcc56af97762a73e + Author: Travis Abendshien + Date: Sun May 12 19:51:03 2024 -0700 + + Reduced QResource Usage + Path Refactor + + - Removed unused or redundant QResources + - Removed unreliable uses of the Qt resource system in favor of direct paths + - Refactored paths with "parent.parent.parent" to use ".parents[index]" + + Co-Authored-By: yed podtrzitko + +commit f8d44c5fae8fe9bf40f1cb0719e39375d771b39f +Author: Travis Abendshien +Date: Sun May 12 21:05:29 2024 -0700 + + Updated Application Icons + + - Updated application icons + - Added .icns file for macOS + - (Potentially) stopped macOS dock icon from being updated with a different icon during runtime + +commit 88b0f70271b3ddb5908650c075768b36c04e26e8 +Merge: 191d8f9 f69f173 +Author: Andrew Arneson +Date: Sun May 12 21:29:13 2024 -0600 + + Merge remote-tracking branch 'refs/remotes/upstream/main' + +commit 93526fa73f7260157a1a07b56bdc9ae859ae2786 +Author: yedpodtrzitko +Date: Sun May 12 21:58:05 2024 +0800 + + run tagstudio in CI + +commit f69f173368ddefc57446dcbad14ef9e4b6a21fbc +Author: Travis Abendshien +Date: Sun May 12 15:23:03 2024 -0700 + + Disable Native Menubars + +commit 92752aef4a28ea6078a77bd6ce46e3b92dcc96fe +Author: Travis Abendshien +Date: Sun May 12 14:51:49 2024 -0700 + + Reverted macOS menubar change + + Reverted exception to allow the native macOS menubar in 94f929d12206503ac36f13cc120547a397849923 because it doesn't work anyway. + +commit ad850cba94b82b157042cd99b1f3c974f8fb452c +Merge: b6848bb 3aa71d6 +Author: Vele George +Date: Sat May 11 21:30:15 2024 +0300 + + Merge branch 'main' into test-support-2 + +commit 191d8f995f212377884c1cd43891c381c45e0515 +Merge: eede5b3 3aa71d6 +Author: Andrew Arneson +Date: Fri May 10 18:00:43 2024 -0600 + + Merge remote-tracking branch 'refs/remotes/upstream/main' + +commit eede5b3600da9fcceb333a86d04246d88de3a9f0 +Author: Andrew Arneson +Date: Fri May 10 17:52:38 2024 -0600 + + Move the tagstudio.ini file to alongside the executable + +commit 3aa71d6f8abb67f309f6d66ef4e6c570332d82be +Author: Travis Abendshien +Date: Fri May 10 15:45:19 2024 -0700 + + Formatted with Ruff + +commit 94f929d12206503ac36f13cc120547a397849923 +Author: Travis Abendshien +Date: Fri May 10 15:43:26 2024 -0700 + + Allow the use of the native macOS menu bar + +commit 03a46ae57b33b1a467edf7e499d44cc6893f5e4a +Author: Travis Abendshien +Date: Fri May 10 15:29:28 2024 -0700 + + Style Changes + + - Removed legacy style experiments, including strange translucent widgets and indigo default tags + - Renamed "Folders To Tags" to "Create Tags From Folders" + - Edited formatting of "Create Tags From Folders" modal + - Renamed "Tag Database" to "Manage Tags"/"Library Tags" + - Tweaked names of other menubar actions + - Removed some commented-out code + +commit b8d72a65c8198d0840af3afd6ad33c1d67e378b0 +Author: yed podtrzitko +Date: Fri May 10 08:39:46 2024 +0800 + + misc: remove duplicate code for tags updating (#135) + +commit 8321f43d6e1cdb98a0f33bd854032d1a708a2bd6 +Author: William de Castro +Date: Thu May 9 05:22:51 2024 -0300 + + Add Build Script for mac os systems (#76) + + * chore: add TagStudio.spec to gitignore + + Prevent TagStudio.spec to be added to repo in the future + + * chore: add Build Script for macos + + Create script using pyinstaller to generate a macos app for tagstudio + + * chore: revert duplicated files + + * chore: rename build file naming + +commit f9ea20e29caecdcc480de81901f965af22092750 +Author: Sylvia K <40416079+SylviaSK@users.noreply.github.com> +Date: Wed May 8 14:07:58 2024 -0500 + + Refactor: Deduplication in pagination.py's "Set Elipses Sizes" section (#141) + +commit b6ccb88a95aedd4b0ae7d056279eb51550babe7e +Author: Travis Abendshien +Date: Wed May 8 11:39:03 2024 -0700 + + Fixed Some Images Breaking Thumbnailer + + Fixed images that were considered to be "truncated" from breaking the thumbnail renderer when trying to transpose via an EXIF flag. This was happening with certain panorama photos. + +commit de434872d6554feaa0d390973c9c26c06230f733 +Merge: 7acfecf e803f6a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 8 10:36:58 2024 -0700 + + Merge pull request #145 from yedpodtrzitko/yed/hold-the-jobs + + dont run job threads needlessly + +commit 7acfecf7b9cb403846978ae578199c80315c0e1d +Merge: 7ef2aa6 7f776f4 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 8 10:15:46 2024 -0700 + + Merge pull request #147 from arthniwa/add-help-menu-action + + Add action to help menu + +commit 7f776f4c8615606d8af71999be6ee00011be3f10 +Author: arthniwa <123327761+arthniwa@users.noreply.github.com> +Date: Wed May 8 10:57:48 2024 -0500 + + Fix format required by Ruff + +commit e803f6adcbdb69adaf3f81992d2b822c6878d354 +Author: yedpodtrzitko +Date: Wed May 8 22:47:47 2024 +0800 + + wait for threads to finish + +commit b6848bb81f6483b9c3707f49ce5b28c80befdbb2 +Author: Hidorikun +Date: Wed May 8 17:32:15 2024 +0300 + + Ruff format + +commit 7ef2aa6a8026b06f794a4b60c380f3c034f22160 +Merge: 57a15f6 44106e2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue May 7 23:15:32 2024 -0700 + + Merge pull request #78 from Thesacraft/main + + Build Script for windows + +commit 48ad4aaad23d74bdca055885e44e327015358c33 +Author: arthniwa <123327761+arthniwa@users.noreply.github.com> +Date: Wed May 8 00:42:16 2024 -0500 + + Add action to help menu + + Add "Go to GitHub Repository" to the help menu. + +commit 0e621011fc7b3744d4cce5117e71ec55d7af8f15 +Author: yedpodtrzitko +Date: Wed May 8 11:10:43 2024 +0800 + + dont run job threads needlessly + +commit fb7c73d96b09a5bf1240f547a3c4863284bd0f85 +Author: Hidorikun +Date: Mon May 6 12:06:30 2024 +0300 + + Add pytest support + +commit 57a15f651e4a80e7f73a8621e4175fed448bf175 +Merge: ec55e92 3aa4fa2 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat May 4 23:36:40 2024 -0700 + + Merge pull request #140 from yedpodtrzitko/yed/fix-edit-enter + + fix input enterPressed event + +commit 3aa4fa214f88f6bcb7510ec1e0f911fe2b113204 +Author: yedpodtrzitko +Date: Sun May 5 14:22:37 2024 +0800 + + fix input enterPressed event + +commit ec55e925990193f0503fc8cd0519d4830a8e8981 +Merge: c27f99e 78ea0b3 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat May 4 18:28:23 2024 -0700 + + Merge pull request #136 from SylviaSK/main + + Fix for #119, Prompt for new location user if library cannot be saved + +commit c27f99e3a49f6f22a186d697a4907c720e5e29ce +Merge: 089c8dd aedc5af +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat May 4 15:53:36 2024 -0700 + + Merge pull request #117 from abby-freakazoid/improve-startup-script + +commit 78ea0b3641802a549fed1528f6fb269d91fe2d20 +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Sat May 4 16:45:38 2024 -0500 + + close_library() fix + +commit 523f233f4ab38dcfc51f5756c05a7f4f6b731ae1 +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Sat May 4 15:16:31 2024 -0500 + + Ruff formatting + +commit ea05907227eabbde1c68e53c343188063063ebf9 +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Sat May 4 12:20:43 2024 -0500 + + Fix for #119, Prompt for new location user if library cannot be saved + +commit 089c8dd50cbf22e75721ecd2c0e0acfd3deca7f3 +Author: Travis Abendshien +Date: Fri May 3 19:40:36 2024 -0700 + + Reformatted using Ruff + +commit 77d75590148f6ec9b482bb86f6a7ed81c9848758 +Merge: 164aba1 61f9a49 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 19:15:37 2024 -0700 + + Merge pull request #111 from yedpodtrzitko/yed/sidebar-active-cursor + + feat: add hand cursor for active sidebar elements + +commit 164aba1bb01dc69145e32a35f5f815e680b185f9 +Merge: fd622ea b834166 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 19:08:34 2024 -0700 + + Merge pull request #113 from TechCrafterGaming/PR-003 + + minor bug fixes to Tag Search Box + +commit fd622ea378c60adc6e74541dc30386c10f3902f0 +Merge: b2d87b0 9951c00 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 18:22:42 2024 -0700 + + Merge pull request #114 from Loran425/refactor/tag_database + + Remove functionally duplicated code in update_tags + +commit b2d87b05d8b2c3571922047facf86c6cba3dbd70 +Merge: ac3d7c9 cd719c6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 18:13:07 2024 -0700 + + Merge pull request #123 from SylviaSK/main + + Fix opening to a file with spaces in path on windows / #120 + +commit ac3d7c95cbdb8014a8b6609d547bd77198f73dcf +Merge: 64514db 58c773a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 17:59:32 2024 -0700 + + Merge pull request #126 from JinguBangWest/main + + Refactor strip_web_protocol() + +commit 64514db45708db600ca1574fcbab113e80f88807 +Merge: ea8d954 afd6e11 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri May 3 17:52:10 2024 -0700 + + Merge pull request #107 from yedpodtrzitko/yed/ruff-formatting + + add code formatting & Github Action via ruff + +commit 58c773a0dee48a2541e762ec44cb954c9a2bd517 +Author: JinguBangWest +Date: Fri May 3 14:37:32 2024 -0400 + + change to string.removeprefix(prefix) + +commit bb1161baa9c7f22665dab59e76e1629ef2fd61a4 +Author: JinguBangWest +Date: Thu May 2 22:05:57 2024 -0400 + + Refactor strip_web_protocol + This allows for more prefixes to be added in the future if needed without repeating code multiple times. + +commit cd719c6d01cd83489af0cfeab9310ff3f596806b +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Thu May 2 11:54:10 2024 -0500 + + minor comment fix + +commit 9a405dd3364827858dbd05fdb3f7de6d79622c6d +Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> +Date: Thu May 2 11:47:32 2024 -0500 + + Fix for #120, Windows filepaths with spaces + +commit afd6e113d28dbc3c06a6c3880179e9b7e0adb778 +Author: yedpodtrzitko +Date: Thu May 2 01:01:36 2024 +0800 + + add ruff pre-commit hook and README info + +commit ea8d954548579d107b3efc7ab2fdedf61bc2afcd +Merge: a1fcd23 99a0bfe +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 1 23:00:06 2024 -0700 + + Merge pull request #122 from abby-freakazoid/bugfix/validate-library-path-before-open/#118 + + Fix library reopen doesn't check if path is valid #118 + +commit a1fcd23d13f1574015fc18d9df679ca11698b558 +Merge: f71b947 eb5124b +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 1 22:34:47 2024 -0700 + + Merge pull request #121 from gabrieljreed/bugfix/right-click-file-path/#116 + + Bugfix/right click file path/#116 + +commit 99a0bfe9197e19429884ac48109a868c76810c34 +Author: Abby <141393719+abby-freakazoid@users.noreply.github.com> +Date: Thu May 2 00:25:21 2024 -0500 + + Fix library reopen doesn't check if path is valid #118 + +commit eb5124bd0a7bc37a1031ee3ee52fbedb48fc7cbc +Author: gabrieljreed +Date: Wed May 1 22:01:08 2024 -0700 + + Update docstrings + +commit 0e1e9e924b45386a6b2442f3d868e956e5391206 +Merge: 85b4be8 f71b947 +Author: gabrieljreed +Date: Wed May 1 21:56:29 2024 -0700 + + Merge remote-tracking branch 'upstream/main' into bugfix/right-click-file-path/#116 + +commit 85b4be85250681045684222eeac072e8a05b511b +Author: gabrieljreed +Date: Wed May 1 21:45:43 2024 -0700 + + Add docstrings + +commit 08c0704926b119e41498368c5f74cfa69666f765 +Author: gabrieljreed +Date: Wed May 1 21:42:58 2024 -0700 + + Fix open_file for platforms other than Windows + +commit 81f550a5436f6fa20b7a8ef14ca789e4c56668da +Author: gabrieljreed +Date: Wed May 1 21:41:11 2024 -0700 + + Fix open_explorer on Mac, fix right click on FileOpenerLabel + +commit aedc5afefa93a91496f7fee658f3438bec0170a4 +Author: Abby <141393719+abby-freakazoid@users.noreply.github.com> +Date: Wed May 1 22:28:10 2024 -0500 + + Improved TagStudio.sh + + "set -e" to abort on error + "cd …" to prevent creating .venv if script is launched outside git dir + "[ … ]" to skip creating venv when it already exists + +commit 9951c00a45b74da60478463e20e81af8b26c4495 +Author: Andrew.Arneson +Date: Wed May 1 12:54:21 2024 -0600 + + Remove functionally duplicated code in update_tags + +commit b834166d61bb555dc4a9e292a4b20cae7908193b +Author: TechCrafterGaming +Date: Wed May 1 15:27:12 2024 +0200 + + minor bug fixes to Tag Search Box + +commit 61f9a49782fa1d9f1eaa920817466dbf1d31c63e +Author: yedpodtrzitko +Date: Wed May 1 18:46:55 2024 +0800 + + feat: add hand cursor for active sidebar elements + +commit f71b947673551a57e5dce7b937384c5e82722454 +Merge: 67c18e9 3d5ed3a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed May 1 03:00:46 2024 -0700 + + Merge pull request #110 from yedpodtrzitko/yed/fix-thumbs-orientation + + fix image thumbnails rotation + +commit 3d5ed3a9489d182a1b06f225e0566ac8f9d56f76 +Author: Travis Abendshien +Date: Wed May 1 02:58:43 2024 -0700 + + Added EXIF transpose to small thumbnails + +commit 8604a7f08f3a7f23c6b1c51bc5e5276ba8e8aa61 +Author: yedpodtrzitko +Date: Wed May 1 17:15:33 2024 +0800 + + fix image thumbnails rotation + +commit 67c18e9a251f7e0be2f23ae80b1d4dc022c7843f +Merge: 1a7316d 81e0e7b +Author: Xarvex +Date: Wed May 1 03:51:23 2024 -0500 + + Merge pull request #109 from yedpodtrzitko/yed/macos-file-open + + fix file opening on posix + +commit 81e0e7b072e4c132e3065602a0e02a59ce7ae2ab +Author: Xarvex +Date: Wed May 1 03:50:27 2024 -0500 + + Accidental double sys import during merge conflict + +commit ba5a995b5d4832d6ce89dc2a64b0ce5b2492885a +Merge: c58590a f40be00 +Author: Xarvex +Date: Wed May 1 03:43:53 2024 -0500 + + Merge branch 'yed/macos-file-open' of github.com:yedpodtrzitko/TagStudio into yed/macos-file-open + +commit c58590a22153f6ebab8fa21ba5eca3568f6ff77e +Author: Xarvex +Date: Wed May 1 03:26:36 2024 -0500 + + Make use of open_file from #84 + Refactor done in #80 essentially reverted changes + Re-fixes #81, also re-fixes windows opening behind TagStudio + +commit f40be005f89959f53ea5a379ff757ffc7ff2559a +Author: yedpodtrzitko +Date: Wed May 1 15:46:08 2024 +0800 + + fix file opening on posix + +commit f9fc28d5ec5b911ac008abb2d7ef94f9c8294262 +Author: yedpodtrzitko +Date: Wed May 1 15:46:08 2024 +0800 + + fix file opening on posix + +commit 10303284205971cf67341b88296f0a171a25a7f9 +Author: yedpodtrzitko +Date: Wed May 1 15:19:20 2024 +0800 + + add ruff formatting info and CI pipeline + +commit 1a7316d54cc7501427a51c3b46d459937c233050 +Merge: 92e7e05 d478116 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 30 21:55:46 2024 -0700 + + Merge pull request #103 from yedpodtrzitko/yed/show-tags-implicitly + + show all tags in Add Tags panel by default + +commit 92e7e05540f4d9501a9a4a0106cfa27c6775fcaf +Merge: a10478b a669fd6 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 30 21:07:06 2024 -0700 + + Merge pull request #99 from TechCrafterGaming/FIX-001 + + added action to close a library + +commit d478116094165603fb8e8d5fc6ee2bf5f91b70c4 +Author: yedpodtrzitko +Date: Wed May 1 00:04:37 2024 +0800 + + show all tags in tag panel by default + +commit a10478bc8bcd0ec1c54458312d99c4bdbb548981 +Author: Travis Abendshien +Date: Tue Apr 30 02:41:07 2024 -0700 + + Misc Bug Fixes + + - Catches additional exception in the sorting process of new files added to the library + - Skips this sorting process if there are more than 100,000 files (this is a temporary sorting measure, anyway) + - Possibly improved performance during the functionless (and cursed) "Applying Configured Macros" step of loading new files + +commit a669fd67c361e8382659e56acabb3f9997561c55 +Author: TechCrafterGaming +Date: Tue Apr 30 08:07:10 2024 +0200 + + small adjustments and comments + +commit 7cdb26e8220ff8c3e169f3fe95c6529b7d8f608b +Author: TechCrafterGaming +Date: Tue Apr 30 08:04:13 2024 +0200 + + added if statement + +commit 16a9d32ef30eff84f05ca562ec12568a6ec4198c +Author: TechCrafterGaming +Date: Tue Apr 30 08:02:46 2024 +0200 + + added `last_library` value to be set properly + +commit 9b90bfad840dae309f3321e9b8ae81da5e28e00a +Merge: 6f900ff b1c0ec5 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 22:43:15 2024 -0700 + + Merge pull request #98 from Creepler13/Folders-to-tags-cleanup + + Folders to tags refractor + Bug fix + Enhancement + +commit 6f900ff3711be69b720f9ab75e6703e43d7e3a20 +Merge: 9ad81c4 d02f068 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 16:54:07 2024 -0700 + + Merge pull request #101 from TechCrafterGaming/FIX-002 + +commit d02f06899184dc0f2599f927a9720c0f3f78191e +Author: TechCrafterGaming +Date: Tue Apr 30 00:09:43 2024 +0200 + + small changes to `README` + +commit 878a5dfc8a8f3a8da6e7ddccdc004200038bc4bb +Author: TechCrafterGaming +Date: Tue Apr 30 00:09:09 2024 +0200 + + small changes to `ts_qt.py` (doc strings) + +commit 030c817323446c46325a04530dd40e8aa2c6dc20 +Author: TechCrafterGaming +Date: Mon Apr 29 23:57:35 2024 +0200 + + added action to close a library + +commit 9ad81c4582c2a0d885d1b4af9c588067f33a52ca +Merge: 0c9dd7f 7139eea +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 14:42:22 2024 -0700 + + Merge pull request #94 from Thesacraft/Shutdown-threads-safely + + Shuts the threads down before quitting the application Fixes #86 + +commit b1c0ec58170c97c88b1082ef974df7dc7d5bc226 +Author: Creepler13 +Date: Mon Apr 29 23:01:15 2024 +0200 + + Open/Close all buttons + +commit ea904da58bbacc7fd4c96dcafc68c51047345a29 +Author: Creepler13 +Date: Mon Apr 29 21:28:32 2024 +0200 + + Folders to tags Cleanup + bugfix + +commit 0c9dd7f43ba8bdbcb449d51b27b09b874ce584f5 +Merge: 93177dd 885b2b0 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 12:01:04 2024 -0700 + + Merge pull request #95 from Loran425/patch/library-loading + + Patch Bug that prevents loading ts_library.json fields ids as integers + +commit 885b2b0358805460dcabb5543437d20a2c6447ab +Author: Andrew.Arneson +Date: Mon Apr 29 12:55:30 2024 -0600 + + Patch Bug that prevents loading ts_library.json fields ids as integers + +commit 7139eea4c4ebf54e660b6edf0e9a4a690040289d +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Apr 29 19:37:36 2024 +0200 + + Ends threads before quitting application + + This fixes this warning: + QThread: Destroyed while thread is still running + +commit 41e419c1e7cbf6c86c1b0fe6963312a3417927b3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Apr 29 18:46:35 2024 +0200 + + Ends threads before quitting application + + This fixes this warning: + QThread: Destroyed while thread is still running + +commit 93177dd696aaeacb1041013dd9a4b0c1d77066e3 +Merge: c9c399f d8a11a7 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 29 01:05:36 2024 -0700 + + Merge pull request #89 from yedpodtrzitko/main + + fix: strip leading slash in library items + +commit d8a11a796d4bee70fdb758f831cad69ee39799e4 +Author: yedpodtrzitko +Date: Mon Apr 29 12:53:41 2024 +0800 + + fix: strip leading slash in library items + +commit c9c399faa9c492d91d2388662b3aea3b4d989fb8 +Merge: fb300d0 eb2a175 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Apr 28 21:22:20 2024 -0700 + + Merge pull request #80 from Loran425/qt-refactor + + Qt refactor + +commit 44106e2c59fa697d36435173560d48859a76f8e6 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Mon Apr 29 00:13:48 2024 +0200 + + Updates Build_win.bat to not delete source and be able to build portable version + +commit 260583cfeb07a08a605baa5d8fa1c5dcd4559dd3 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 21:52:16 2024 +0200 + + Update Build_win.bat for faster start of executable + + I changed it to output an executable and a _internals dir because this makes it, atleast from my experience, much faster (12s -> 1-2s). This is probably because the decompression that has to happen before startup if its in one file + +commit eb2a175b75bb2aa3bd12cbdf7073864f6114aad1 +Author: Andrew Arneson +Date: Sun Apr 28 13:37:28 2024 -0600 + + Changes from #84 split into src.qt.helpers.open_file from ts_qt.py + +commit 89b159cfa1a090bafef3704971847155f3f7a0ac +Merge: 22e0ef8 fb300d0 +Author: Andrew Arneson +Date: Sun Apr 28 13:36:25 2024 -0600 + + Merge remote-tracking branch 'upstream/main' into qt-refactor + + # Conflicts: + # tagstudio/src/qt/ts_qt.py + +commit fb300d0d079a1110c33400d9d235a6f1faba0b28 +Merge: 6097570 3446e06 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sun Apr 28 12:26:33 2024 -0700 + + Merge pull request #84 from xarvex/main + + Allow opening and selecting files in file managers for all platforms + +commit 3446e0601a2408259d6ad5fcb659dc510addc549 +Author: Xarvex +Date: Sun Apr 28 14:07:23 2024 -0500 + + Incorrect usage of list append + + Co-authored-by: William de Castro + +commit 22e0ef8f4b0fa0260598ae05bab8cccd98e94fc7 +Author: Andrew Arneson +Date: Sun Apr 28 12:57:21 2024 -0600 + + Cleanup Imports + +commit 13510023785583759f7ee5616a2416b286a6a98d +Author: Andrew Arneson +Date: Sun Apr 28 12:55:37 2024 -0600 + + Breakout ItemThumb and PreviewPanel from ts_qt.py + +commit 6e8baced7d2ce4e3967795070247dce6b3f927d3 +Author: Andrew Arneson +Date: Sun Apr 28 12:18:31 2024 -0600 + + Revert "Cannot split out ItemThumb or PreviewPanel due to close ties with driver" + + This reverts commit 6b9b813e26a19f09e80253fc794c843fb24292b5. + +commit 310fc0d958a3caf0b2978aab025ffd34d82e687b +Author: Andrew Arneson +Date: Sun Apr 28 12:17:16 2024 -0600 + + Re-enable typechecking and autocompletion for modals that rely on QtDriver in ts_qt.py + +commit 737be6199fec7cfd41304af2e877308d5143515d +Author: Xarvex +Date: Sun Apr 28 12:34:20 2024 -0500 + + DETACHED_PROCESS is no longer necessary + Causes program window to open below TagStudio + +commit ca9735ca86393afa767b71da48f80a579d061cff +Author: Andrew Arneson +Date: Sun Apr 28 11:09:06 2024 -0600 + + Split out remaining modals from ts_qt.py + +commit 4a9c4de56ae3aebc343a229931e39cc4ac33d7be +Author: Xarvex +Date: Sun Apr 28 11:31:18 2024 -0500 + + Further isolate program window from TagStudio + +commit f7c4e1ccc0ba19d902c98b9c135c80957a32a824 +Author: Andrew Arneson +Date: Sun Apr 28 10:28:05 2024 -0600 + + Revert "Cannot split out unlinked file functions due to close ties with driver" + + This reverts commit c848c57cb49a7c83615ee5d233fd8f7c0111a6cd. + +commit f6b131c4124e8e0dafc451dcda287d83b99e7c3b +Author: Andrew Arneson +Date: Sun Apr 28 10:28:05 2024 -0600 + + Revert "Cannot split out duped file functions due to close ties with driver" + + This reverts commit abd36e55b342abcf92f43c41734b5d57b640c92b. + +commit a695e222f4e45f7436487647a485c5d18e33db8c +Author: Andrew Arneson +Date: Sun Apr 28 10:28:04 2024 -0600 + + Revert "Cannot split out folder_to_tag file functions due to close ties with driver" + + This reverts commit 237bcd90b00ddd5e0131bbeb6cad9a3ee542c620. + +commit 0d6746abe02e82bb5653cdb7db92b1dfc6c3743f +Author: Andrew Arneson +Date: Sun Apr 28 10:28:04 2024 -0600 + + Revert "Cannot split out mirror entities file functions due to close ties with driver" + + This reverts commit a62dbc3f2d1b0a1fc4f2a60af3fd74e70af17595. + +commit 2d558efde7fcbd46c7b480329f3722ac12a629cc +Author: Xarvex +Date: Sun Apr 28 04:09:07 2024 -0500 + + Allow opening and selecting files in file managers for all platforms + Fixes: #81 + Refactored file opener helper to use already present open_file + Refactored open_file to allow option for file manager + +commit 82a53481f709cb4397163f5bc14dfbad574e5ff4 +Author: Andrew Arneson +Date: Sat Apr 27 21:40:53 2024 -0600 + + Missing Newlines + +commit d26b308ae297c310f5bb1844abc5939fc2ed79c5 +Author: Andrew Arneson +Date: Sat Apr 27 21:25:01 2024 -0600 + + split TextWidget from ts_qt.py + +commit 5431c1996a0202f933bc4c5e0c7dd0a14d7b764f +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit 731b6d1568c249396a4917fc10b1f1e91248ee7a +Merge: 68b075a 99cc8dc +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + * (merge) + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit 68b075a6c8ad3d55ca7fe7b0e0302f3e5ffe5354 +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + * (keep ts_qt.py) + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit 99cc8dc99162447ca277ad9f56a8b9b2e250002a +Author: Andrew Arneson +Date: Sat Apr 27 21:21:02 2024 -0600 + + * (create ./widgets/text_edit.py) + + Copied (with git history): + + ts_qt.py + + — into: — + + ./widgets/text_edit.py + +commit cdba60c7d3d012cfd0dd4bc1280ee2b6f3e72759 +Author: Andrew Arneson +Date: Sat Apr 27 21:00:38 2024 -0600 + + Cleanup Imports + +commit 049582487861787a7427ba80d3626ca1db8eddfc +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 04:54:02 2024 +0200 + + Update requirements.txt to use last tested pyinstaller version + + Thanks to @williamtcastro for pointing it out + +commit 6b9b813e26a19f09e80253fc794c843fb24292b5 +Author: Andrew Arneson +Date: Sat Apr 27 20:52:51 2024 -0600 + + Cannot split out ItemThumb or PreviewPanel due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit ad85266f98d4de563862c0fbdd574332af296385 +Author: Andrew Arneson +Date: Sat Apr 27 20:46:16 2024 -0600 + + Error File Creation + +commit a62dbc3f2d1b0a1fc4f2a60af3fd74e70af17595 +Author: Andrew Arneson +Date: Sat Apr 27 20:45:04 2024 -0600 + + Cannot split out mirror entities file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit 237bcd90b00ddd5e0131bbeb6cad9a3ee542c620 +Author: Andrew Arneson +Date: Sat Apr 27 20:44:46 2024 -0600 + + Cannot split out folder_to_tag file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit abd36e55b342abcf92f43c41734b5d57b640c92b +Author: Andrew Arneson +Date: Sat Apr 27 20:43:35 2024 -0600 + + Cannot split out duped file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit 7b0064d14bbb9c1d5aa4ca64538df2a5ea5fe263 +Author: Andrew Arneson +Date: Sat Apr 27 20:42:24 2024 -0600 + + split FileExtensionModal from ts_qt.py + +commit c848c57cb49a7c83615ee5d233fd8f7c0111a6cd +Author: Andrew Arneson +Date: Sat Apr 27 20:36:21 2024 -0600 + + Cannot split out unlinked file functions due to close ties with driver + Might be able to resolve with more time and a separate PR + +commit ebf2c0bb99dfc0e45a531cb358f9f5afc691f771 +Author: Andrew Arneson +Date: Sat Apr 27 20:26:26 2024 -0600 + + split AddFieldModal from ts_qt.py + +commit 53fefb7497cdb5d506442cb2b633af3026e8d919 +Author: Andrew Arneson +Date: Sat Apr 27 20:22:02 2024 -0600 + + split TagBoxWidget from ts_qt.py + +commit a9afb8e2cfed276af7166c40af0e507938ada893 +Author: Andrew Arneson +Date: Sat Apr 27 20:15:14 2024 -0600 + + split TagBoxWidget from ts_qt.py + +commit f0019c70863b5c3355cf51a74b498bef23a53c9e +Author: Andrew Arneson +Date: Sat Apr 27 20:12:40 2024 -0600 + + split BuildTagPanel from ts_qt.py + +commit c8439c976f5082a6f81e37b3cff3a43b2c2cd5c6 +Author: Andrew Arneson +Date: Sat Apr 27 20:10:01 2024 -0600 + + split TagSearchPanel from ts_qt.py + +commit 4a3b0c103fae97a5ccd94644836e1bdf04ba5107 +Author: Andrew Arneson +Date: Sat Apr 27 19:58:35 2024 -0600 + + split TagWidget from ts_qt.py + +commit 6168434f3d4063f462106b9aa8463e0410545302 +Author: Andrew Arneson +Date: Sat Apr 27 19:52:02 2024 -0600 + + split ProgressWidget from ts_qt.py + +commit 9b7b38418336ea824fda38ff058893373fc9b007 +Author: Andrew Arneson +Date: Sat Apr 27 19:43:53 2024 -0600 + + split EditTextLine from ts_qt.py + +commit 5f6752e067c8c91194b373e7e9079fa093156668 +Author: Andrew Arneson +Date: Sat Apr 27 19:40:55 2024 -0600 + + split EditTextBox from ts_qt.py + +commit e71ef7f671a043758923e8f19f7e0017fc06c90b +Author: Andrew Arneson +Date: Sat Apr 27 19:35:52 2024 -0600 + + split PanelWidget and PanelModal from ts_qt.py + +commit a1fe57a3524dde5fe6d169d5df2cc0fff9973483 +Author: Andrew Arneson +Date: Sat Apr 27 19:22:42 2024 -0600 + + split ThumbRenderer from ts_qt.py + +commit 0364d3a95cf494b4b5cf3eff00458bb28145af9e +Author: Andrew Arneson +Date: Sat Apr 27 19:15:44 2024 -0600 + + split ThumbButton from ts_qt.py + +commit 63f8268fd485d39edc6565c9c57bf6ed97e1f864 +Author: Andrew Arneson +Date: Sat Apr 27 19:04:29 2024 -0600 + + split collage renderer from ts_qt.py + +commit e29b2838c66167e51f3b55ee7c5bc6e5a3b8aa46 +Author: Andrew Arneson +Date: Sat Apr 27 18:56:33 2024 -0600 + + split FieldContainer and FieldWidget from ts_qt.py + +commit 7caba3b825beb9b85c65fa4d16239dc64665b713 +Author: Andrew Arneson +Date: Sat Apr 27 18:45:59 2024 -0600 + + add missing empty line at end of file + +commit 74c4c6c85dda5de46af8cf719ee9247536655bf3 +Author: Andrew Arneson +Date: Sat Apr 27 18:40:07 2024 -0600 + + split FileOpenerHelper/Label from ts_qt.py + +commit abc9f3f4e4e26f2fd37963307ea40d1d3786175c +Author: Andrew Arneson +Date: Sat Apr 27 18:33:29 2024 -0600 + + split open_file func from ts_qt.py + +commit f26fd5a63ccad82a92e1b967cf0e977268058929 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:37 2024 -0600 + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit bb6a73e410856a009e385f0cb19fc9dbc49981f1 +Merge: 54b7067 91c9187 fb05d38 4665fb2 b25c1ef f160071 73ba643 effdd28 875bc34 77bbbe9 5f31fe4 2f61ac7 822aa4d d67f8b6 60d1d29 65a2fe6 30998a1 9c44d74 4de7865 8fed335 02542bd 36841da 58b0e94 4b7b915 6091916 273843f da1c3f8 aec0786 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:36 2024 -0600 + + * (merge) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 54b70676f3a6b934ed2b2cded5ad08bf532613d9 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:36 2024 -0600 + + * (keep ./ts_qt.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 91c918796da83389d618cc4a75083dbc018c1608 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/folders_to_tags.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit fb05d386c1bf66df9746d593c3fb69ec69b9e537 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/thumb_renderer.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 4665fb22ff8ae28624e31d2a86c037777433bfc3 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/collage_icon.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit b25c1efc9d5153415c4e7248002c309d5d8dc9de +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/thumb_button.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit f160071b279a7a1996626a9adc05785d19945211 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/item_thumb.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 73ba643132c06711f6d6ac431575b9dfb0a1312d +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./widgets/preview_panel.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit effdd28b80af506828adedcdfc6127f5c6f8e3e9 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./helpers/file_opener.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 875bc34519e8f7addb9c8ae3c26086cf50ea237c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/file_extension.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 77bbbe95b3a2fbf5eb28e9b4aca473723d40d9f8 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/add_field.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 5f31fe46235865c5852c7c6da9cfac17d197c3ad +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/relink_unlinked.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 2f61ac706fa8619c65ac815fb72228925449448e +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/delete_unlinked.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 822aa4df39856c1a9fc6f79fdcdeb8e6006aa63b +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/fix_unlinked.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit d67f8b6f0e87eed8661673c164493cc5e1029b99 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/mirror_entities.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 60d1d290a2ee7300acf50575a944f1f777539798 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:35 2024 -0600 + + * (create ./modals/fix_dupes.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 65a2fe676d29911f8bbe2326db6cb67e91264d00 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/progress.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 30998a144aa1fb310783fb1bc660886ebef5d06c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/tag_database.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 9c44d74cb6320965d36efff8fbf158dd3e88ce9e +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/build_tag.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 4de7865aba0222f9f3bc5aa33e219b3af990cf82 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/tag_search.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 8fed3350f4d36be0e7854dbdc721db41ec9c1f42 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/edit_text.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 02542bda7e8331a063d026ef094f12926b5bcb00 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./modals/__init__.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 36841da965410713652548a6780c37fb7a03b513 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/panel.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 58b0e94d65d1599f832384f6bd9fb4d0efdf6ac2 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/tag.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 4b7b915c6882f88e7894c89dd492191eab450b47 +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/text_box_edit.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 6091916b86ae7d484782e284a014f33e6166809b +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/text_line_edit.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 273843f9c1386c34b3c827ac7a5523cc7018795c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/tag_box.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit da1c3f8fa83650b91558eb1e51320dbbd500f41b +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./widgets/fields.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit aec0786e618e8c5c5512d4c464b7ecfe2deacc5c +Author: Andrew Arneson +Date: Sat Apr 27 18:20:34 2024 -0600 + + * (create ./helpers/open_file.py) + + Copied (with git history): + + ./ts_qt.py + + — into: — + + ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py + +commit 9959eb1049ee63674ff6422a7bb0c21d61721237 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 02:00:17 2024 +0200 + + Update .gitignore to revert doubled entrys + +commit 4f00a8ac88b97ce0e4a9e79e04041b7b3ce7b89e +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 01:56:13 2024 +0200 + + Update .gitignore to ignore build specific files and folders + +commit 329c23e23c53e03bd3316f40c555130269f89de2 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 01:54:17 2024 +0200 + + Update requirements.txt to include pyinstaller + + Pyinstaller is used to build the windows executable + +commit f53a9249f04a9367778a78a8d9385e44d305161d +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Sun Apr 28 01:51:09 2024 +0200 + + Build script for windows + + Adds a build script for windows + +commit 60975705915cd5e05478cd4827530039dd652b5c +Merge: c955fb1 8541fc5 +Author: Travis Abendshien +Date: Sat Apr 27 16:26:11 2024 -0700 + + Merge branch 'text-thumbnails' + +commit 8541fc59d136a292628cee15f28f177a9df76989 +Author: Travis Abendshien +Date: Sat Apr 27 16:25:49 2024 -0700 + + Increased plaintext types; Exception handling + +commit c955fb1589a901888566e417a4702899e6e5c69d +Author: Travis Abendshien +Date: Sat Apr 27 15:59:56 2024 -0700 + + Code Style Changes + +commit 276cfaf6355fa913b7abfacc93096e434ab4f6e8 +Merge: 2110592 6bba7da +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 15:53:58 2024 -0700 + + Merge pull request #40 from chao-master/feature/typed-dict-and-typing + + 🏷️ Add strict typing dicts for ts_library.json + +commit 6bba7dafbc3ae9bf3755ef84d9442ea18e41afb4 +Merge: f0148c7 2110592 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 15:34:08 2024 -0700 + + Merge branch 'main' into feature/typed-dict-and-typing + +commit 21105929711a5db66ea9aca0b8c2209871690355 +Merge: 15de97c f0f8e0e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 15:27:58 2024 -0700 + + Merge pull request #72 from yedpodtrzitko/yed/readability + + improve code readability + +commit 15de97cfe71952c81cba9f2d8b5a601295462d3c +Merge: 114c1a4 1f9a13f +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 14:58:17 2024 -0700 + + Merge pull request #58 from Creepler13/Folders-to-Tags + + Add folders to tags tool + +commit 114c1a4481940d8b606bd302fca67bcf66b9f537 +Merge: 31f4022 ade1fb1 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Sat Apr 27 13:33:59 2024 -0700 + + Merge pull request #69 from cirillom/image-preview + + Ability to open file or file location using context menu + +commit 1f9a13fc4d15726466254ea730c555bce61921fa +Author: Creepler13 +Date: Sat Apr 27 21:14:37 2024 +0200 + + Removed unused imports + +commit e2aba7ddf76ef73d062f3c06bb2601796147bc9e +Author: Creepler13 +Date: Sat Apr 27 21:13:57 2024 +0200 + + Added Proper Visualls to show what would be added + +commit f0f8e0ea7ea96dd07cc6b9e542c662fd76adaa5a +Author: yedpodtrzitko +Date: Sun Apr 28 01:43:37 2024 +0800 + + simplify bool conditions + +commit d5d9cd3e7ab2104c46dd09907f94b2de124be1a6 +Author: yedpodtrzitko +Date: Sun Apr 28 01:17:41 2024 +0800 + + improve code readability + +commit ade1fb1c112594d3682247dd31a3bd701b230d5e +Merge: 955d4a0 31f4022 +Author: Matheus Cirillo +Date: Sat Apr 27 09:54:16 2024 -0300 + + Merge remote-tracking branch 'tags/main' into image-preview + +commit 955d4a0c9f2b2419061b363aced4a2df646a3362 +Author: Matheus Cirillo +Date: Sat Apr 27 09:44:04 2024 -0300 + + fixed bug where it wouldn't open outside debug mode + +commit 31f402289565b55d3a84d11f0eb6055e9bf42374 +Author: Travis Abendshien +Date: Sat Apr 27 02:00:18 2024 -0700 + + Added File Extension Blacklist + + - All file types (minus JSON, XMP, and AAE) are now shown by default in the library (existing libraries will need to refresh) + - Added the Edit -> "Ignore File Extensions" option, providing the user with a way to blacklist certain file extensions from their library + - The targeted version number has been updated to 9.2.0 (this is not the final 9.2.0 release, commits will still be added before that release is packaged up) + +commit 5b4d35b5c07283a05a1f3f6c604cfbb9a601fbd7 +Author: Travis Abendshien +Date: Fri Apr 26 22:13:10 2024 -0700 + + Added default thumbnail for files + +commit 6831a8939277d211386c43189c26d69d0c7f39d5 +Author: Matheus Cirillo +Date: Fri Apr 26 23:19:24 2024 -0300 + + file opening preview panel context menu + +commit 5bd2aaaf9ec9b570db2a3021bf5024487c07d025 +Author: Matheus Cirillo +Date: Fri Apr 26 22:04:40 2024 -0300 + + context menu for thumbs + +commit c789d09b07575c8cba1fe93b14a46728b3d735a5 +Author: Travis Abendshien +Date: Fri Apr 26 17:33:02 2024 -0700 + + Plaintext Thumbs (Proof of Concept) + + **BASIC** support for rendering thumbnails for certain plaintext types (txt, md, html, etc.) using PIL. + Notable issues include: + - Long draw times (entire files are read) + - No text wrapping + - Hardcoded style + - Blurry text in preview pane images + - No cached thumbnails (I call dibs on the thumbnail caching system) + +commit a9cbab40abbe7f468132f9fae61b481cd25b2e60 +Author: Matheus Cirillo +Date: Fri Apr 26 20:40:43 2024 -0300 + + works as expected (open file in explorer) in windows + +commit bcf4453c8d3bbe60404b63bff14e62b3c04a2016 +Author: Matheus Cirillo +Date: Fri Apr 26 20:17:54 2024 -0300 + + clickable label to the right place + +commit 18dcedd6a0b7f142252301bc1c0afa2f704d2f8b +Author: Matheus Cirillo +Date: Fri Apr 26 20:13:58 2024 -0300 + + code cleanup + +commit 79e0263e972c955a467fd6e527820542208f1756 +Author: Matheus Cirillo +Date: Fri Apr 26 20:09:43 2024 -0300 + + file_label opens file path + +commit 960b2038ef6640dcb259bd7b97a13289c174593a +Merge: 9020aad 88292f4 +Author: Creepler13 +Date: Fri Apr 26 23:52:20 2024 +0200 + + Merge branch 'Folders-to-Tags' of https://github.com/Creepler13/TagStudio into Folders-to-Tags + +commit 88292f42af01118cf180e7af8b8aa1566bb3ff5f +Merge: 3cd6fa1 749d7c8 +Author: Creepler13 +Date: Fri Apr 26 23:37:47 2024 +0200 + + Merge branch 'Folders-to-Tags' of https://github.com/Creepler13/TagStudio into Folders-to-Tags + +commit 3cd6fa136f3856e6e9f38c8690f37016177b1abc +Author: Creepler13 +Date: Fri Apr 26 14:58:21 2024 +0200 + + Finished folders to Tags tool + +commit 0541c9fb016feef55473ecbd182ab3ded6e9fd7c +Author: Creepler13 +Date: Fri Apr 26 00:06:34 2024 +0200 + + first prototype + +commit 039c574cf4efdf37ee4771911d1933957f5770bf +Merge: 992a840 042ed92 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:36:57 2024 -0700 + + Merge pull request #60 from Thesacraft/main + + Fixes issue with badges not getting updated if meta tags gets removed + +commit 042ed9209f116eb5214f3206a2dd133ca9cb2389 +Merge: 1e17b6c 992a840 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 22:33:14 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 992a840dfe16249af1cb19e7d499373a7a6e655a +Merge: a0b0178 dde7eec +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:32:55 2024 -0700 + + Merge pull request #63 from DrRetro2033/Shortcuts + + Keyboard Shortcuts + +commit 1e17b6c467c10d404ee4f999197f60704e82356f +Merge: 243d786 a0b0178 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 22:29:04 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit a0b017815e106375a40a088afe800fbc81f56625 +Merge: 80d6e09 85ae167 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:23:32 2024 -0700 + + Merge pull request #61 from DrRetro2033/main + + A simple Tag Database. + +commit 80d6e0983487036e7ffef5dc402a1a27193574ff +Merge: 00651e6 66fec73 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Fri Apr 26 13:10:39 2024 -0700 + + Merge pull request #64 from xarvex/file-open-2 + + Windows: fix files w/ spaces opening cmd rather than associated program + +commit 66fec731368895f41c640e22d56e58fef559e747 +Author: Xarvex +Date: Fri Apr 26 15:05:07 2024 -0500 + + Correct usage of start command + +commit 1f7a5d3cbb00ceb33aa7edcf87dee72c2c19ac1f +Author: Xarvex +Date: Fri Apr 26 14:46:13 2024 -0500 + + Windows: fix files w/ spaces opening cmd rather than associated program + +commit dde7eec946a9e7b1df407375694d7e9a496aa990 +Author: DrRetro +Date: Fri Apr 26 12:01:02 2024 -0400 + + Keyboard Shortcuts Added to basic Functions + +commit 85ae16781796ad8d38907fb10ddebb05bebaf912 +Author: DrRetro +Date: Fri Apr 26 11:01:09 2024 -0400 + + Fixed Issue with Tags in Database not refreshing after Tag was Edited. + +commit 5feb3a6d203a1d5e5b572fe88df3e937541e0e6b +Author: DrRetro +Date: Fri Apr 26 10:51:49 2024 -0400 + + Fixed Issue with Previous Commit + +commit f23ff1669eece3d92f04157e9906ccb96bddc728 +Author: DrRetro +Date: Fri Apr 26 10:50:19 2024 -0400 + + Fixed Issue when Searching Tags, Editing Option was not Connected to Searched TagWidets + +commit 6b1035b0f61b97d71e97d7a85aaf4503b13b1587 +Author: DrRetro +Date: Fri Apr 26 10:07:59 2024 -0400 + + A simple TagDatabasePanel has been created based off TagSearchPanel. + + To access, go to Edit > Tag Database + +commit 243d7862980d00c69883f2a32e5e99df6a1d0b3b +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 15:41:37 2024 +0200 + + Update ts_qt.py to update badges if meta tag field is removed + +commit 898ce5fdc73e4b186228fc69beb7a2ca6b80438e +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Fri Apr 26 15:34:06 2024 +0200 + + Update ts_qt.py to update badges if meta tag field is removed + +commit 749d7c8fc094de80cdade7046ad305a8a4e86158 +Author: Creepler13 +Date: Fri Apr 26 14:58:21 2024 +0200 + + Finished folders to Tags tool + +commit 1774a00d3441ec7794a058913039b957f9013339 +Author: Creepler13 +Date: Fri Apr 26 00:06:34 2024 +0200 + + first prototype + +commit 9020aaddf4667a85d0061c87e20bcbe6929496d6 +Author: Creepler13 +Date: Fri Apr 26 14:58:21 2024 +0200 + + Finished folders to Tags tool + +commit 00651e6242f97c1945b06674f622b73699c836a6 +Author: Travis Abendshien +Date: Fri Apr 26 01:45:03 2024 -0700 + + Fixed Incorrect Fields Being Updated in Multi-Selection + + Fixes #55 + + Co-Authored-By: Andrew Arneson + Co-Authored-By: Xarvex <60973030+xarvex@users.noreply.github.com> + +commit b7638046a34e48cfb0d46e6bc57e18f724b61291 +Author: Travis Abendshien +Date: Thu Apr 25 22:22:28 2024 -0700 + + Addded TagStudio.ini to gitignore; Updated Qt resource comment + +commit c446911b59d55e06f314c3ee21e16706164a57b9 +Merge: ff488da 201a63e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Apr 25 22:18:00 2024 -0700 + + Merge pull request #34 from DrRetro2033/main + + Mutli-Select Tagging + +commit 201a63e27363b16516aeb74394c7a939ba7a176c +Author: DrRetro +Date: Thu Apr 25 20:51:12 2024 -0400 + + Refresh_badges added to QtDriver, and favorite and archived badges checks selection. + +commit d8faa27dbf5e888a076d8787097d67dada069493 +Author: Creepler13 +Date: Fri Apr 26 00:06:34 2024 +0200 + + first prototype + +commit ff488da6c8cdf4b5f566f8a1122cfab69d577425 +Merge: 00dea27 2514809 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Apr 25 14:22:12 2024 -0700 + + Merge pull request #51 from Loran425/main + + QOL Open last opened library + +commit 2514809e173087bb169eaecf87323b4b17fb879c +Author: Andrew Arneson +Date: Thu Apr 25 14:20:46 2024 -0600 + + remove doubled up line + +commit 82bb63191a6033b6e4f855b68fce465659a8a3e8 +Author: Andrew Arneson +Date: Thu Apr 25 14:12:40 2024 -0600 + + Tweak setting location to ensure compatibility between IDEs + Explicitly call sync to save `.ini` file + +commit 9a076a775f51a7581f616154437fad28f552560e +Merge: 5c746a9 00dea27 +Author: Andrew Arneson +Date: Thu Apr 25 12:23:55 2024 -0600 + + Merge remote-tracking branch 'upstream/main' + +commit 5c746a9950e2c65f107359ff9eb9316a08fd0f3a +Author: Andrew Arneson +Date: Thu Apr 25 12:23:13 2024 -0600 + + add Qsettings and restore last library on open + Settings are currently stored as an INI file within the project directory rather than messing with registry or system configurations. + +commit 00dea27279fcfcc742dfce183e4fa17ff33164df +Merge: 13c2ca1 a0dc34a +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Thu Apr 25 10:39:42 2024 -0700 + + Merge pull request #46 from eltociear/patch-1 + + docs: update documentation.md + +commit a0dc34a5ad508cfe8efb7adb01ca500c810f71c3 +Author: Ikko Eltociear Ashimine +Date: Fri Apr 26 00:46:32 2024 +0900 + + docs: update documentation.md + + minor fix + +commit 2a46251831dc97df31a8b209138bea7270f715fb +Author: DrRetro +Date: Thu Apr 25 09:57:37 2024 -0400 + + Fixed slow down from refreshing all thumbnails for every added and removed tag. + +commit 92834800e2f9d64c2d0878a09fce127a6358aa7a +Merge: 794401a 13c2ca1 +Author: DrRetro +Date: Thu Apr 25 09:46:22 2024 -0400 + + Merge remote-tracking branch 'upstream/main' + +commit 794401ae5898446b9b02af9c025ca7b155e0838e +Author: DrRetro +Date: Thu Apr 25 09:40:12 2024 -0400 + + Archive Button and Favorite Button Now work + +commit b2fbc4b4a2e31fa9eecdedc555bc4cbd11419fde +Author: DrRetro +Date: Thu Apr 25 09:34:14 2024 -0400 + + Large Changes to how code gets Field ID. + +commit 13c2ca1ea55cebb0b16977bf8e2b362710fe424f +Author: Travis Abendshien +Date: Thu Apr 25 01:41:32 2024 -0700 + + Allows shortcut files to show in library + + Shortcut files (.lnk, .url, .desktop) can now be added to the library (no thumbnail previews currently). + +commit e823bb5c93d2bc946032e66e55a541fa50ebe5a4 +Merge: b9b2361 7652289 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 22:37:27 2024 -0700 + + Merge pull request #41 from Loran425/feature/modify-imports + + Feature/modify imports + +commit 7652289fe5767232c6e626d84e2c1325ff9e6113 +Merge: de09da1 b9b2361 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 22:36:56 2024 -0700 + + Merge branch 'main' into feature/modify-imports + +commit b9b23611f73a14c983432dde2b89d72e50f2e18e +Merge: 6e7567a 956ffd4 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 22:18:56 2024 -0700 + + Merge pull request #43 from xarvex/file-open-1 + + Allow files to be opened in their respective programs in the background for Windows, MacOS, and Linux + +commit de09da1592202a2d1821b010bcd668fe6f726a5a +Author: Andrew Arneson +Date: Wed Apr 24 23:18:16 2024 -0600 + + remove tagstudio prefix for source libraries + +commit 956ffd4663ce98dc4f124fa6287514efbb01b3c8 +Author: Xarvex +Date: Thu Apr 25 00:07:14 2024 -0500 + + Properly detach process on Windows + +commit 8b4b2507fa841af1816493a9380230d9b6b46da5 +Author: Xarvex +Date: Wed Apr 24 23:50:26 2024 -0500 + + Account for start being a shell builtin on Windows + +commit f125e5a50d63af63d4f8f8f9321354d8f850af6b +Author: Xarvex +Date: Wed Apr 24 23:37:36 2024 -0500 + + Implement file opening for Linux and MacOS, allow Windows in background + Note: this is only tested on Linux + +commit 0b1c097f978dc60f16d9646b62021a5e8e76be16 +Author: Andrew Arneson +Date: Wed Apr 24 22:00:40 2024 -0600 + + update tagstudio.py refrences to tag_studio.py + +commit 2b5697ea50ecf665c7b0d5862672cbb36efdbc40 +Author: Andrew Arneson +Date: Wed Apr 24 21:51:43 2024 -0600 + + Remove wildcard Imports + +commit 4e5b7b1c7df1810c8bdfda0bba4ea4f460e5ec85 +Author: Andrew Arneson +Date: Wed Apr 24 21:51:22 2024 -0600 + + Fix reference to datetime + +commit 0b4ccac5ff2006cf2722547754542324504e8cba +Author: Andrew Arneson +Date: Wed Apr 24 21:14:13 2024 -0600 + + Import Humanfriendly format_size when importing format_timespan + +commit 952ed8f27db51d48d906d471282b20c579c32b48 +Author: Andrew Arneson +Date: Wed Apr 24 19:53:01 2024 -0600 + + Remove Unused Imports + +commit c0c18dabc135409dc94508bf62179c245aa8266a +Author: Andrew Arneson +Date: Wed Apr 24 19:52:10 2024 -0600 + + Optimize & Sort Imports + +commit 7b48e5e17e005d177e4e417474bdeea13fd226d1 +Author: Andrew Arneson +Date: Wed Apr 24 19:48:25 2024 -0600 + + Prevent Import collisions + Rename tagstudio.py to tag_studio.py + +commit 6e7567a192848ff2cb9f89c03c3bca85fce8acbf +Author: Travis Abendshien +Date: Wed Apr 24 17:12:40 2024 -0700 + + Update launch.json + + Updated launch.json to be cross-platform between Windows and UNIX systems + +commit ad6fefbe2b02488e949b86a722cd0bce9d275363 +Merge: 4a55af6 4184848 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 17:01:16 2024 -0700 + + Merge pull request #35 from dakota-marshall/nixos-support + + Add NixOS Dev Environment Support + +commit 4a55af66ee7e72c24e598d2ef707d0004b188fb4 +Author: Travis Abendshien +Date: Wed Apr 24 16:22:36 2024 -0700 + + Remove duplicate tag IDs when loading library + + Tags with duplicate IDs inside a library save file are removed when opening the library. Cleans up the mess from #38. + +commit f0148c7f35016a2b6e3f0eff8cbc002a1239d4b7 +Author: Ripp_ <3843106+chao-master@users.noreply.github.com> +Date: Wed Apr 24 23:44:40 2024 +0100 + + 🏷️ Add strict typing dicts for ts_library.json + +commit ac00890c90a319df47d4cec8b1d3b91dcbf9e42f +Merge: e69e499 432f485 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 15:26:46 2024 -0700 + + Merge pull request #39 from Thesacraft/main + + Update library.py to not duplicate default tags on save + +commit 9e61d45ea502d8d9deb7cf59245361a3f3232536 +Author: DrRetro +Date: Wed Apr 24 18:11:41 2024 -0400 + + Rewrote Multi-Select to use field templates. + +commit 432f4851f3e02baa487951f0d889bc24fa35180a +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Thu Apr 25 00:02:32 2024 +0200 + + Update library.py to not duplicate default tags on save + +commit 4184848f9ce623a6a6ab32c8f5fec62af6c75706 +Author: Dakota Marshall +Date: Wed Apr 24 16:51:06 2024 -0400 + + Update Nix flake pinned hash for python3.12 and QT 6.6.3 support + +commit bc0f8b991ea5ba6ef2ad278d815ae9b47ac4173f +Author: Dakota Marshall +Date: Wed Apr 24 15:39:36 2024 -0400 + + Update install documentation for NixOS + +commit c4e8d40abe84f90b5e4b16a769e75cb954ef9ded +Author: Dakota Marshall +Date: Wed Apr 24 15:39:21 2024 -0400 + + Update bash script to use env for nix support + +commit c7492b78d3f442abecc42260b851cf1f3d5d7ce6 +Author: Dakota Marshall +Date: Wed Apr 24 15:39:12 2024 -0400 + + Add flake files for working Nix environment + +commit e69e4998e53a250630229787b58f27029d2b563c +Merge: 0b9b4da 844f756 +Author: Travis Abendshien +Date: Wed Apr 24 13:14:21 2024 -0700 + + Merge branch 'main' of https://github.com/CyanVoxel/TagStudio + +commit 0b9b4dac73ed2f85301a2cbd20c67fce88d665d4 +Author: Travis Abendshien +Date: Wed Apr 24 13:14:11 2024 -0700 + + Updated Prerequisites to Python 3.12 + +commit 844f756dba570e627d00c4d2be750cfd825132e4 +Merge: 071100b 129d336 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 13:13:21 2024 -0700 + + Merge pull request #32 from Thesacraft/main + + python 3.12 support + +commit 6e341e097b279543f1d4c52366b92a53016af090 +Merge: def244b 071100b +Author: DrRetro <86109384+DrRetro2033@users.noreply.github.com> +Date: Wed Apr 24 15:25:15 2024 -0400 + + Merge pull request #1 from CyanVoxel/main + + Update + +commit def244b7325dff89784dbad6c27d271b6c401998 +Author: DrRetro +Date: Wed Apr 24 15:18:22 2024 -0400 + + Fixed bug that occured with adding other fields to one entry. + +commit 129d3363571a3f63df480ebfafe6167e5c484b22 +Merge: e8ab805 071100b +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 21:13:38 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 071100bf9030dd73f9c748c633523ae6ccde3dbf +Merge: 0529f1f e161290 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Wed Apr 24 12:04:11 2024 -0700 + + Merge pull request #33 from LennartCode/patch-1 + + docs(README.md): Removed typo. + +commit e161290571971748ee11a87eff00d638af80973a +Author: Lennart S <55597910+LennartCode@users.noreply.github.com> +Date: Wed Apr 24 20:59:41 2024 +0200 + + docs(README.md): Removed typo. + +commit e8ab8059cdc0d1194341f5fc185ed38c49dbf26f +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 19:18:24 2024 +0200 + + Update requirements.txt to support python 3.12 + +commit 7ec29228b5eb193c33c3da6a22345df488a6b9c7 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 19:15:17 2024 +0200 + + Update requirements.txt to also support python3.12 + +commit 3974c1b031e4b500abb855741075c4ccfaef216e +Author: DrRetro +Date: Wed Apr 24 12:09:07 2024 -0400 + + Multi-Select Removing Tags + +commit fba2f8f46ba9e45591b4dc3c5ffce59033d8acaf +Author: DrRetro +Date: Wed Apr 24 11:31:53 2024 -0400 + + Multi-Select Tag Adding + +commit 0529f1fe7ed9ac30f473919a55bd47f8d99d44ea +Author: Travis Abendshien +Date: Tue Apr 23 23:22:29 2024 -0700 + + Fixed library creation bug inside of empty .TagStudio folder + + Fixed a library creation bug where the program would malfunction when trying to create a new library from a folder called ".TagStudio". + +commit 59be7c0cf9baa914c7699dbf12f4622f30829a06 +Merge: 45e7658 dfe2b57 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 22:21:41 2024 -0700 + + Merge pull request #30 from Loran425/main + + Allow network path libraries + +commit dfe2b5795282181dd568ccbb3c24726d05c59d34 +Author: Andrew Arneson +Date: Tue Apr 23 22:59:18 2024 -0600 + + Allow network path libraries + Swap normalized path strip from using strip to using rstrip to avoid stripping leading slashes + +commit 45e765862d7ec2bf2928134a91f0251a4d0b2068 +Author: Travis Abendshien +Date: Tue Apr 23 20:10:16 2024 -0700 + + Fixed forward slash being stripped from Unix paths + +commit cf1ce6bb243e3df215fff689cc4b95dd278c0e56 +Merge: 2e57e03 e3e1c55 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 17:33:09 2024 -0700 + + Merge pull request #27 from Thesacraft/main + + Prevent exceptions when no Library is Loaded + +commit e3e1c55fabdd5e99505b25b699ecb65209952c1d +Merge: fffd9db 2e57e03 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 02:28:34 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 2e57e0397ca550724207ddc2a314b9c8124d302b +Author: Travis Abendshien +Date: Tue Apr 23 17:10:23 2024 -0700 + + Extended filetype support + + Added rudimentary support for audio types, text types, spreadsheets, presentations, archives, and programs. These files will now be scanned and picked up when refreshing the library. + +commit 5e33d07e395097031b0849e0499c93a25946fcab +Author: Travis Abendshien +Date: Tue Apr 23 16:26:10 2024 -0700 + + Removed unused dependencies + +commit fffd9dba6c472441fec48d086c189505687a7239 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 01:17:30 2024 +0200 + + Update ts_qt.py to prevent exceptions in file menu + + Before this Refresh Directorys/Save Library/Save Library Backup would throw an exception if no library was loaded this prevents that + +commit 98a01aea8044e370e0d25d1ac2fb28d17e846e59 +Merge: 1489d56 d974aa7 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 00:55:17 2024 +0200 + + Merge branch 'CyanVoxel:main' into main + +commit 1489d56be77acd0506b9e5112a0eff0e53670002 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Wed Apr 24 00:53:41 2024 +0200 + + Update ts_qt.py to not throw Errors when no library is open + + Before this the Refresh/Save Library/Save Library Backup would throw an Error when no Library is open + +commit d974aa777ced011a3fb57bf56a07cccdb1c7dafc +Author: Travis Abendshien +Date: Tue Apr 23 15:49:05 2024 -0700 + + Removed (most) janky theme overriding (#5) + + - Removed most of the temporary theming that was clashing with Qt, especially in system light mode + - Possibly fixed the "transparent menu" issue + +commit f67b26fbd69141ba88750261996abd91f7f0dd42 +Author: Travis Abendshien +Date: Tue Apr 23 13:31:53 2024 -0700 + + Added SIGTERM handling (#13) + + - Also removed miscellaneous whitespace + - Removed leftover print statement on startup + +commit a074bed5402d326261637682ee4cc9f43463f04b +Merge: 9afd3d2 a55e649 +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 11:29:28 2024 -0700 + + Merge pull request #22 from Thesacraft/main + + Update ts_qt.py to fix bootup bug + +commit a55e649d839592074a50350edfac652e3cd32d68 +Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> +Date: Tue Apr 23 20:20:13 2024 +0200 + + Update ts_qt.py to fix bootup bug + + Fixes the visual bug + +commit 9afd3d2aa8afb3845d59a178b13aa4defd05a21d (upstream/Alpha-v9.1) +Merge: f05f8de 5722521 +Author: Travis Abendshien +Date: Tue Apr 23 10:21:27 2024 -0700 + + Merge branch 'main' of https://github.com/CyanVoxel/TagStudio + +commit f05f8de4f632132f1008151427cf760102654a28 +Author: Travis Abendshien +Date: Tue Apr 23 10:21:15 2024 -0700 + + Update README.md + + - Added instructions for how to launch the shell script on Linux + - Clarified macOS instructions regarding the venv + +commit 5722521319b2a1499b75abd2c9db66e997c50f36 +Merge: 6c5f0c2 70500ed +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Tue Apr 23 10:00:56 2024 -0700 + + Merge pull request #10 from OleMortensen8/main + + added Start script to boot into linux provided you have python installed + +commit 70500ed9fd0a3c6f85823600b66046bec87c31e8 +Author: Ole Vølund Skov Mortensen <22987563+OleMortensen8@users.noreply.github.com> +Date: Tue Apr 23 07:32:13 2024 +0200 + + added Start script to boot into linux provided you have python installed + +commit 6c5f0c215142f65b7c640380c71d5140f78f4aeb +Merge: 95927a1 e46d87e +Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> +Date: Mon Apr 22 19:23:59 2024 -0700 + + Merge pull request #6 from 0xnim/main + + Add Inverted Images for Light/Dark Mode + +commit e46d87ededcff51aa5a0279e56c43ff400ac9246 +Author: Niklas Wojtkowiak +Date: Mon Apr 22 22:19:49 2024 -0400 + + Revert changes for creation of inverted masks + +commit b4bef642844465ef7d3c40b7d574c871bfbbcb91 +Author: Niklas Wojtkowiak +Date: Mon Apr 22 21:27:12 2024 -0400 + + Add Inverted Images for Light/Dark Mode + +commit 95927a1cea262f5eca33ede994b75e6e4feedd3b +Author: Travis Abendshien +Date: Mon Apr 22 16:32:23 2024 -0700 + + Update README.md + + Added clarification for different Python aliases in the instructions. + +commit bd48850bc6e3c189bc645d2bbfc32ecf35d7dc94 +Author: Travis Abendshien +Date: Mon Apr 22 15:33:59 2024 -0700 + + Updated Python version requirements + +commit 5f6782d70555cb5d9e0db9b254d4227fad06f692 +Author: Travis Abendshien +Date: Mon Apr 22 13:40:23 2024 -0700 + + Disabled test macro running upon adding new entries + +commit b01b047d427bf4b3809577a7d03596544b7747f5 +Author: Travis Abendshien +Date: Mon Apr 22 12:38:07 2024 -0700 + + Update README.md + +commit d63a978fb03e496be38db600b501cb482d302f1c +Author: Travis Abendshien +Date: Mon Apr 22 11:52:22 2024 -0700 + + Alpha v9.1.0 + + Initial public release + +commit bb5dff7daa2846f47e8c015134e4e18c4d5d17ec +Author: Travis Abendshien +Date: Wed Apr 17 05:14:01 2024 -0700 + + Initial commit diff --git a/src/tagstudio/core/library/alchemy/enums.py b/src/tagstudio/core/library/alchemy/enums.py index e2da73823..4802eede1 100644 --- a/src/tagstudio/core/library/alchemy/enums.py +++ b/src/tagstudio/core/library/alchemy/enums.py @@ -69,6 +69,8 @@ class SortingModeEnum(enum.Enum): DATE_ADDED = "file.date_added" FILE_NAME = "generic.filename" PATH = "file.path" + DATE_CREATED = "file.date_created" + DATE_MODIFIED = "file.date_modified" @dataclass diff --git a/src/tagstudio/core/library/alchemy/library.py b/src/tagstudio/core/library/alchemy/library.py index bb9326854..c40922e1c 100644 --- a/src/tagstudio/core/library/alchemy/library.py +++ b/src/tagstudio/core/library/alchemy/library.py @@ -15,6 +15,7 @@ from typing import TYPE_CHECKING from uuid import uuid4 from warnings import catch_warnings +import platform import structlog from humanfriendly import format_timespan @@ -223,6 +224,20 @@ def close(self): self.folder = None self.included_files = set() + def get_file_time(self, file_path: Path): + """Get the creation and modification times of a file.""" + stat = file_path.stat() + system = platform.system() + + # st_birthtime on Windows and Mac, st_ctime on Linux. + if system in ["Windows", "Darwin"]: # Windows & macOS + date_created = datetime.fromtimestamp(stat.st_birthtime) + else: # Linux + date_created = datetime.fromtimestamp(stat.st_ctime) # Linux lacks st_birthtime + + date_modified = datetime.fromtimestamp(stat.st_mtime) + return date_created, date_modified + def migrate_json_to_sqlite(self, json_lib: JsonLibrary): """Migrate JSON library data to the SQLite database.""" logger.info("Starting Library Conversion...") @@ -284,8 +299,12 @@ def migrate_json_to_sqlite(self, json_lib: JsonLibrary): fields=[], id=entry.id + 1, # JSON IDs start at 0 instead of 1 date_added=datetime.now(), + # date_modified=date_modified, + # date_created=date_created, ) for entry in json_lib.entries + # if (date_created := get_file_time(entry.path / entry.filename)[0]) is not None + # and (date_modified := get_file_time(entry.path / entry.filename)[1]) is not None # noqa: F821 ] ) for entry in json_lib.entries: @@ -356,7 +375,7 @@ def open_sqlite_library(self, library_dir: Path, is_new: bool) -> LibraryStatus: drivername="sqlite", database=str(self.storage_path), ) - # NOTE: File-based databases should use NullPool to create new DB connection in order to + # NOTE: File-based databases should use NullPool ito create new DB connection in order to # keep connections on separate threads, which prevents the DB files from being locked # even after a connection has been closed. # SingletonThreadPool (the default for :memory:) should still be used for in-memory DBs. @@ -746,6 +765,15 @@ def get_entry_full_by_path(self, path: Path) -> Entry | None: make_transient(entry) return entry + def get_entry_by_path(self, path: Path) -> Entry | None: + """Get the entry with the corresponding path.""" + with Session(self.engine) as session: + entry = session.scalar(select(Entry).where(Entry.path == path)) + if entry: + session.expunge(entry) + make_transient(entry) + return entry + @property def entries_count(self) -> int: with Session(self.engine) as session: @@ -896,6 +924,10 @@ def search_library( match search.sorting_mode: case SortingModeEnum.DATE_ADDED: sort_on = Entry.id + case SortingModeEnum.DATE_CREATED: + sort_on = Entry.date_created + case SortingModeEnum.DATE_MODIFIED: + sort_on = Entry.date_modified case SortingModeEnum.FILE_NAME: sort_on = func.lower(Entry.filename) case SortingModeEnum.PATH: diff --git a/src/tagstudio/core/library/alchemy/models.py b/src/tagstudio/core/library/alchemy/models.py index f85a02a44..c7514e97a 100644 --- a/src/tagstudio/core/library/alchemy/models.py +++ b/src/tagstudio/core/library/alchemy/models.py @@ -280,7 +280,7 @@ class ValueType(Base): is_default: Mapped[bool] position: Mapped[int] - # add relations to other tables + # add relations to otheu tables text_fields: Mapped[list[TextField]] = relationship("TextField", back_populates="type") datetime_fields: Mapped[list[DatetimeField]] = relationship( "DatetimeField", back_populates="type" diff --git a/src/tagstudio/core/utils/refresh_dir.py b/src/tagstudio/core/utils/refresh_dir.py index ddbff94e1..e4867b2a6 100644 --- a/src/tagstudio/core/utils/refresh_dir.py +++ b/src/tagstudio/core/utils/refresh_dir.py @@ -1,11 +1,11 @@ +import datetime as dt from collections.abc import Iterator from dataclasses import dataclass, field -from datetime import datetime as dt from pathlib import Path from time import time +import platform import structlog - from tagstudio.core.constants import TS_FOLDER_NAME from tagstudio.core.library.alchemy.library import Library from tagstudio.core.library.alchemy.models import Entry @@ -36,6 +36,21 @@ class RefreshDirTracker: def files_count(self) -> int: return len(self.files_not_in_library) + # moving get_file_times to library to avoid circular import + def get_file_times(self, file_path: Path): + """Get the creation and modification times of a file.""" + stat = file_path.stat() + system = platform.system() + + # st_birthtime on Windows and Mac, st_ctime on Linux. + if system in ['Windows', 'Darwin']: # Windows & macOS + date_created = dt.datetime.fromtimestamp(stat.st_birthtime) + else: # Linux + date_created = dt.datetime.fromtimestamp(stat.st_ctime) # Linux lacks st_birthtime + + date_modified = dt.datetime.fromtimestamp(stat.st_mtime) + return date_created, date_modified + def save_new_files(self): """Save the list of files that are not in the library.""" if self.files_not_in_library: @@ -44,9 +59,13 @@ def save_new_files(self): path=entry_path, folder=self.library.folder, fields=[], - date_added=dt.now(), + date_added=dt.datetime.now(), + date_created=date_created, + date_modified=date_modified, ) for entry_path in self.files_not_in_library + if (date_created := self.get_file_times(entry_path)[0]) is not None + and (date_modified := self.get_file_times(entry_path)[1]) is not None ] self.library.add_entries(entries) @@ -98,7 +117,7 @@ def refresh_dir(self, lib_path: Path) -> Iterator[int]: relative_path = f.relative_to(lib_path) # TODO - load these in batch somehow if not self.library.has_path_entry(relative_path): - self.files_not_in_library.append(relative_path) + self.files_not_in_library.append(f) end_time_total = time() yield dir_file_count From dab7143555fd762038343b466629f6d241bfdd5e Mon Sep 17 00:00:00 2001 From: Hamza Simjee Date: Thu, 20 Mar 2025 12:50:41 -0700 Subject: [PATCH 5/6] feat: add date_created and date_modified fields to table feat: implement sorting by creation and modification date fix: resolve git merge conflicts and push issues fix: correct typos in comments and code --- src/tagstudio/core/library/alchemy/enums.py | 4 -- src/tagstudio/core/library/alchemy/library.py | 10 ++-- src/tagstudio/core/utils/refresh_dir.py | 58 ++----------------- 3 files changed, 10 insertions(+), 62 deletions(-) diff --git a/src/tagstudio/core/library/alchemy/enums.py b/src/tagstudio/core/library/alchemy/enums.py index ba0fd4dfd..430e084fb 100644 --- a/src/tagstudio/core/library/alchemy/enums.py +++ b/src/tagstudio/core/library/alchemy/enums.py @@ -67,15 +67,11 @@ class ItemType(enum.Enum): class SortingModeEnum(enum.Enum): DATE_ADDED = "file.date_added" -<<<<<<< HEAD:src/tagstudio/core/library/alchemy/enums.py FILE_NAME = "generic.filename" PATH = "file.path" -======= ->>>>>>> 8f17c362203a368c5860599b75c2e89e6c8c1fc5:tagstudio/src/core/library/alchemy/enums.py DATE_CREATED = "file.date_created" DATE_MODIFIED = "file.date_modified" - @dataclass class FilterState: """Represent a state of the Library grid view.""" diff --git a/src/tagstudio/core/library/alchemy/library.py b/src/tagstudio/core/library/alchemy/library.py index be0290bf6..1b746d218 100644 --- a/src/tagstudio/core/library/alchemy/library.py +++ b/src/tagstudio/core/library/alchemy/library.py @@ -299,12 +299,12 @@ def migrate_json_to_sqlite(self, json_lib: JsonLibrary): fields=[], id=entry.id + 1, # JSON IDs start at 0 instead of 1 date_added=datetime.now(), - # date_modified=date_modified, - # date_created=date_created, + date_modified=date_modified, + date_created=date_created, ) for entry in json_lib.entries - # if (date_created := get_file_time(entry.path / entry.filename)[0]) is not None - # and (date_modified := get_file_time(entry.path / entry.filename)[1]) is not None + if (date_created := self.get_file_time(entry.path / entry.filename)[0]) is not None + and (date_modified := self.get_file_time(entry.path / entry.filename)[1]) is not None ] ) for entry in json_lib.entries: @@ -375,7 +375,7 @@ def open_sqlite_library(self, library_dir: Path, is_new: bool) -> LibraryStatus: drivername="sqlite", database=str(self.storage_path), ) - # NOTE: File-based databases should use NullPool ito create new DB connection in order to + # NOTE: File-based databases should use NullPool to create new DB connection in order to # keep connections on separate threads, which prevents the DB files from being locked # even after a connection has been closed. # SingletonThreadPool (the default for :memory:) should still be used for in-memory DBs. diff --git a/src/tagstudio/core/utils/refresh_dir.py b/src/tagstudio/core/utils/refresh_dir.py index 6d82a06ee..706f37e81 100644 --- a/src/tagstudio/core/utils/refresh_dir.py +++ b/src/tagstudio/core/utils/refresh_dir.py @@ -1,4 +1,4 @@ -from datetime import datetime as dt +import datetime as dt from collections.abc import Iterator from dataclasses import dataclass, field from pathlib import Path @@ -26,7 +26,6 @@ ] ) - @dataclass class RefreshDirTracker: library: Library @@ -36,42 +35,24 @@ class RefreshDirTracker: def files_count(self) -> int: return len(self.files_not_in_library) -<<<<<<< HEAD:src/tagstudio/core/utils/refresh_dir.py - # moving get_file_times to library to avoid circular import -======= ->>>>>>> 8f17c362203a368c5860599b75c2e89e6c8c1fc5:tagstudio/src/core/utils/refresh_dir.py + # Created get_file_time() (basically same thing) in library def get_file_times(self, file_path: Path): """Get the creation and modification times of a file.""" stat = file_path.stat() system = platform.system() -<<<<<<< HEAD:src/tagstudio/core/utils/refresh_dir.py # st_birthtime on Windows and Mac, st_ctime on Linux. - if system in ['Windows', 'Darwin']: # Windows & macOS + if system in ["Windows", "Darwin"]: # Windows & macOS date_created = dt.datetime.fromtimestamp(stat.st_birthtime) else: # Linux date_created = dt.datetime.fromtimestamp(stat.st_ctime) # Linux lacks st_birthtime date_modified = dt.datetime.fromtimestamp(stat.st_mtime) -======= - if system == 'Windows': # Windows - date_created = dt.fromtimestamp(stat.st_ctime, dt.timezone.utc) - elif system == 'Darwin': # macOS - date_created = dt.fromtimestamp(stat.st_birthtime, dt.timezone.utc) - else: # Linux and other systems - try: - date_created = dt.fromtimestamp(stat.st_birthtime, dt.timezone.utc) - except AttributeError: - # st_birthtime is not available on some Linux filesystems - date_created = dt.fromtimestamp(stat.st_ctime, dt.timezone.utc) - date_modified = dt.fromtimestamp(stat.st_mtime, dt.timezone.utc) ->>>>>>> 8f17c362203a368c5860599b75c2e89e6c8c1fc5:tagstudio/src/core/utils/refresh_dir.py return date_created, date_modified def save_new_files(self): """Save the list of files that are not in the library.""" if self.files_not_in_library: -<<<<<<< HEAD:src/tagstudio/core/utils/refresh_dir.py entries = [ Entry( path=entry_path, @@ -82,26 +63,9 @@ def save_new_files(self): date_modified=date_modified, ) for entry_path in self.files_not_in_library - if (date_created := self.get_file_times(entry_path)[0]) is not None - and (date_modified := self.get_file_times(entry_path)[1]) is not None + if (date_created := self.get_file_times(entry_path)[0]) is not None + and (date_modified := self.get_file_times(entry_path)[1]) is not None ] -======= - entries = [] - for entry_path in self.files_not_in_library: - date_created, date_modified = self.get_file_times(entry_path) - if date_created is None or date_modified is None: - continue # Skip files that could not be processed - entries.append( - Entry( - path=entry_path, - folder=self.library.folder, - fields=[], - date_added=dt.now(), - date_created=dt.now(), - date_modified=dt.now(), - ) - ) ->>>>>>> 8f17c362203a368c5860599b75c2e89e6c8c1fc5:tagstudio/src/core/utils/refresh_dir.py self.library.add_entries(entries) self.files_not_in_library = [] @@ -152,19 +116,7 @@ def refresh_dir(self, lib_path: Path) -> Iterator[int]: relative_path = f.relative_to(lib_path) # TODO - load these in batch somehow if not self.library.has_path_entry(relative_path): -<<<<<<< HEAD:src/tagstudio/core/utils/refresh_dir.py self.files_not_in_library.append(f) -======= - self.files_not_in_library.append(relative_path) - else: - # Update date_modified for existing entries if it has changed - entry = self.library.get_entry_by_path(relative_path) - if entry: - date_modified = dt.fromtimestamp(f.stat().st_mtime, dt.timezone.utc) - if entry.date_modified != date_modified: - entry.date_modified = date_modified - self.library.update_entry(entry) ->>>>>>> 8f17c362203a368c5860599b75c2e89e6c8c1fc5:tagstudio/src/core/utils/refresh_dir.py end_time_total = time() yield dir_file_count From 0d7a40c2dcd34a936ea16a95c888e3520056534f Mon Sep 17 00:00:00 2001 From: Hamza Simjee Date: Thu, 20 Mar 2025 12:50:41 -0700 Subject: [PATCH 6/6] fix: removed git log, changed system check implementation --- h origin date-sorting | 8518 ----------------- src/tagstudio/core/library/alchemy/library.py | 3 +- src/tagstudio/core/utils/refresh_dir.py | 3 +- 3 files changed, 2 insertions(+), 8522 deletions(-) delete mode 100644 h origin date-sorting diff --git a/h origin date-sorting b/h origin date-sorting deleted file mode 100644 index 113c19d83..000000000 --- a/h origin date-sorting +++ /dev/null @@ -1,8518 +0,0 @@ -commit c1b87cc0a132f69a460c90af56339c55a4a67873 (HEAD -> date-sorting) -Author: simjeehza -Date: Tue Jan 28 11:11:17 2025 -0800 - - feat: start storing date_created and date_modified - -commit ba7e13041ba52d063879689a0b22d92748aaa49f (upstream/main, origin/main, origin/HEAD, main) -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Jan 28 01:57:01 2025 -0800 - - feat: add date columns to the entries table (#740) - - * feat: add date_created, date_modified, and date_added columns to entries table - - * feat: start storing date_added dates - -commit 1ba97d50c2ee7934aaa82b8be7f11bea3f4aa62f -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Jan 28 01:19:30 2025 -0800 - - refactor: change `exception` log levels to `error` inside library.py - -commit 20d788af29eb975d6d84bc7b33c74cb35b034240 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 23:49:39 2025 -0800 - - fix: refactor and fix bugs with missing_files.py (#739) - - * fix: relink unlinked entry to existing entry without sql error (#720) - - * edited and added db functions get_entry_full_by_path & merge_entries - - * implemented edge case for entry existing on relinking - - * added test for merge_entries - - * fix: don't remove item while iterating over list - - * fix: catch `FileNotFoundError` for unlinked raw files - - * refactor: rename methods and variables in missing_files.py - - * refactor: rename `missing_files_count` to `missing_file_entries_count` - - --------- - - Co-authored-by: mashed5894 - -commit 458925fbf74b77d928617925a17c7da9af40fd25 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 12:08:16 2025 -0800 - - translations: fix typo in drop import - -commit f96ea6b546b37d9086f64e5da7ad0edc7b68925d -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 11:48:57 2025 -0800 - - fix: always catch db mismatch (#738) - - * fix: always catch db mismatch - - * chore: remove/modify log statements - - * translations: translate library version mismatch - - * style: fix line over col limit - -commit 19cdd1bf9285758cfce4b953d3e397d759bcd13a -Author: Weblate (bot) -Date: Mon Jan 27 20:48:28 2025 +0100 - - translations: update Czech, Hungarian (#727) - - * Translated using Weblate (Czech) - - Currently translated at 1.7% (4 of 224 strings) - - Added translation using Weblate (Czech) - - Co-authored-by: Hosted Weblate - Co-authored-by: Jirka Čapek - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/cs/ - Translation: TagStudio/Strings - - * Translated using Weblate (Hungarian) - - Currently translated at 100.0% (224 of 224 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: Szíjártó Levente Pál - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - Translation: TagStudio/Strings - - --------- - - Co-authored-by: Jirka Čapek - Co-authored-by: Szíjártó Levente Pál - -commit 2a97a5b3aa5b358a4183c70d4bb2b39c72dec5bd -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 11:43:04 2025 -0800 - - perf: add all new library entries at once (#737) - -commit 14599e90a34c1074af1383b1caa7d8df933b4967 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 11:41:01 2025 -0800 - - fix: keep initial id order in `get_entries_full()` (#736) - - * fix: keep initial id order in `get_entries_full()` - - * fix: correct variable names - -commit ee14e2c200facd5afb1f36ab998717ac43f421d6 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 11:40:06 2025 -0800 - - fix: search for tag aliases in tag search (#726) - -commit c06f3bb336c29edf116b6fbeb9f5b073319edb99 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 11:39:42 2025 -0800 - - feat!: expanded tag color system (#709) - - * attempt at adding `TagColor` table - - * store both columns of `TagColor` inside `Tag` table - - * fix: fix tag color relationships - - * refactor: replace TagColor enums with TagColorGroup system - - * ui: derive tag accent colors from primary - - * refactor: move dynamic tag color logic, apply to "+" button - - * feat(ui): add neon tag colors - - * remove tag text color field - - * ui: use secondary color for border and text - - * ui: add TagColorPreview widget - - * feat(ui): add new tag color selector - - * ui: add color name tooltips - - * ui: tweak tag colors and selector - - * feat: add `namespaces` table - - * translations: add + update translation keys - - * tests: update fixtures - - * chore: code cleanup - - * ui: add spacing between color groups - - * fix: expand refactor to create and add button - - * chore: format with ruff - -commit 4c337cb1a3ef1737c78b7453a7ad107340e219aa -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 27 11:39:10 2025 -0800 - - feat(ui): add thumbnail caching (#694) - - * feat(ui): add thumbnail caching - - * feat: enforce total size limit for thumb cache - - * fix: add file modification date to thumb hash - - This change allows for modified files to have their cached thumbnail regenerated. - - * feat: add menu option to clear thumbnail cache - - * fix: check if `cached_path` is None further on - - * refactor: move configurable cache vars to class level - - * docs: complete roadmap items - - * feat: use cache size limit from config file - - TODO: Store this on a per-library basis and allow it to be configurable inside the program. - - * fix: move `last_cache_folder` to class level - - * chore: add/tweak type hints - - * refactor: use make `CacheManager` a singleton - -commit 3606edf6155cd29603432592e0cef0255c295074 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jan 26 01:51:15 2025 -0800 - - fix: have pydub use known ffmpeg+ffprobe locations (#724) - - * fix: have pydub use known ffmpeg+ffprobe locations - - * chore: format with ruff - -commit f2a2f9a36d76592b22ab6c1aec454843ccbbffd2 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jan 26 01:50:36 2025 -0800 - - fix: replace calls to `translate_qobject` with `translate_formatted` inside `TagWidget` (#735) - - * fix: replace `translate_qobject` calls with `translate_formatted` - - * refactor: misc code cleanup - -commit 921a8875de22f7c136316edfb5d3038236414b57 -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Sat Jan 25 01:03:39 2025 +0000 - - fix(ui): don't always create tag on enter ( #731) - -commit 2a41c152b3c4db3d7bf762a0ac0682be174f42a0 -Author: mashed5894 -Date: Fri Jan 24 23:56:35 2025 +0200 - - fix: restore environment before launching external programs (#707) - - * rename promptless_Popen - - * linux: restore env before calling popen - - * windows: set dll directory to default before calling popen - - * ruff formatting suggestions - - * edited silent_popen docstring - -commit 0ead238aac33af33a439bb1bdc1e5d45bea30d73 -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Fri Jan 24 21:38:42 2025 +0000 - - fix: restore opening last library on startup (#729) - -commit 9116cdc9a537de8e63e72efac40364dee56d68c9 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Jan 23 20:15:54 2025 -0800 - - docs: fix typo in readme - -commit 17c62802c0be91eee4b9b8069a87b0e89d9eb941 -Author: mashed5894 -Date: Thu Jan 23 23:41:57 2025 +0200 - - fix: sort tag results (#721) - - * sort search results - - * ruff fix - -commit ac6774ed23e8ed69abcff933947b9f3ca83437df -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Jan 23 00:22:03 2025 -0800 - - fix(ui): don't set frame when playing videos - - Fixes some videos not being able to play. The frame setting step was copied from thumbnail rendering and shouldn't be used here regardless. - -commit eb1f634d386cd8a5ecee1e6ff6a0b7d8811550fa -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Jan 23 00:19:35 2025 -0800 - - fix: don't add `._` files to libraries - -commit a1ab335dcb309cee1801de48429debd8d0420ea9 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Jan 22 16:38:45 2025 -0800 - - translations: fix `fr.json` syntax error - -commit 89a8abca75a64fc9995c47d22826cb9f266b5330 -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Thu Jan 23 00:07:13 2025 +0000 - - feat(ui): add audio volume slider (#691) - - * Add Volume Slider - - * Slider reflects muted state - - * Default Volume Value - - * Update roadmap to reflect current state - - * Forgot a period in a comment - - * Add suggestions - - * Update tagstudio/src/qt/widgets/media_player.py - - Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> - - * remove unwanted line - - --------- - - Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> - -commit a02c43c115963c3baa91feeac71f3aee9fb586eb -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Jan 22 16:02:58 2025 -0800 - - feat(ui): add configurable splash screens (#703) - - * refactor: move splash images to resource_manager - - * feat(ui): add new splash screen widget - - * style: restore old resource manager log style - - * fix: scale font size for Segoe UI - -commit 857f40f2e3a919b3a66b3b92ec23a28d9fae9665 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Jan 22 16:00:01 2025 -0800 - - fix: preview panel + main window fixes and optimizations (#700) - - * fix: only update file preview when necessary - - * fix: don't update thumb from tag_box callbacks - - * fix: reset preview panel and filters when loading new library - - * fix: clear library state on close; close old library on open - - * fix: reset scrollbar position on library close - -commit 16fb0290a03fd4081cad3ef67c66b404a70a0074 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Jan 22 15:58:49 2025 -0800 - - fix: don't add default title field, use proper phrasing for adding files (#701) - - * fix: use correct message when adding macros - - * fix: no longer add title field to new entries - - * fix: use `entries` dialog title instead of `macros` - -commit 441ffce4a3a4cb5fb96613cc394a69960153c97e -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Wed Jan 22 23:56:54 2025 +0000 - - feat(ui): port "create and add tag" to main branch (#711) - - * Port create & add tag - - * Fix Name Conflict - - * Add translation keys - - * unify uses of BuildTagPanel - - * replace tabs with spaces - - * Add tag on creation - - * Add Suggestions - - * Trigger on return - - --------- - - Co-authored-by: bjorn-out - -commit 778028923e8afdb83961621b088dcb5e20b923da -Author: mashed5894 -Date: Thu Jan 23 01:48:57 2025 +0200 - - feat(ui): add about section (#712) - - * added about section to the help menu and modal to display information - - * load image through resource manager - - * cleaned up about text - - * remove visit github repo menu, moved to about modal - - * added function to check ffmpeg version - - * fixed version formatting - - * copied in ffmpeg checker code from v9.4 with a warning message on startup if ffmpeg is not detected - - * mypy fixes - - * about.content spacing - - * about.content title formatting - - * added config path to about screen - - * ruff fixes - - --------- - - Co-authored-by: Sean Krueger - -commit ea9b57b85f01f23a626390ba3ee97b3516582f2d -Author: Weblate (bot) -Date: Thu Jan 23 00:24:04 2025 +0100 - - translations: update German, Hungarian, French, Swedish (#697) - - * Translated using Weblate (German) - - Currently translated at 99.5% (217 of 218 strings) - - Co-authored-by: Aaron M - Co-authored-by: Hosted Weblate - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - Translation: TagStudio/Strings - - * Translated using Weblate (Hungarian) - - Currently translated at 100.0% (218 of 218 strings) - - Translated using Weblate (Hungarian) - - Currently translated at 100.0% (216 of 216 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: Szíjártó Levente Pál - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - Translation: TagStudio/Strings - - * Translated using Weblate (French) - - Currently translated at 57.7% (126 of 218 strings) - - Co-authored-by: Bamowen - Co-authored-by: Hosted Weblate - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - Translation: TagStudio/Strings - - * Translated using Weblate (Swedish) - - Currently translated at 34.4% (75 of 218 strings) - - Co-authored-by: mashed5894 - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ - Translation: TagStudio/Strings - - --------- - - Co-authored-by: Aaron M - Co-authored-by: Szíjártó Levente Pál - Co-authored-by: Bamowen - Co-authored-by: mashed5894 - -commit 2a836b0d25b01c354b34f529f06e63644409fb84 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Sun Jan 19 22:07:40 2025 +0100 - - docs: discourage force-pushes on prs that are open for review (#714) - - * Update CONTRIBUTING.md - - * Update CONTRIBUTING.md - -commit 6ea2c99abb20196c300a988a8ca547841b3a1759 -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Fri Jan 17 23:04:13 2025 +0000 - - fix: drag and drop no longer resets (#710) - -commit 44ff17c0b3f05570e356c112f005dbc14c7cc05d -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Jan 15 14:23:45 2025 -0800 - - fix: dragging files references correct entry IDs - - Fixes #705 - -commit 0cdb1a8c06a4ae36bd3025213b4176edd558402c -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Tue Jan 14 12:19:44 2025 +0100 - - ui: keyboard navigation for editing tags (#407) - - * build_tag modal: make Tag Title selected when opening modal - - * build_tag modal: Tab now changes focus when aliases field is in focus - - * fix: unpredictable tab order in build tag modal - - * feat: implement proper tab order - - * ci: fix mypy errors - - * fix: merge issue 1 - - * fix: merge issue 2 - - * refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication - - * Revert "refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication" - - This reverts commit fac589b3e35d365fc47536b3fe34a76aef83f05e. - -commit 5caf8698678cd4a47a0f4440c443ea70110f0f71 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 13 18:41:08 2025 -0800 - - docs: update roadmap - -commit 604837fcaadb15674fce3528e6cdb8f7c01a916c -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 13 14:42:19 2025 -0800 - - fix: store `tag.id` to variable before using in lambda - - This fixes an issue where every tag added from the "+" button had ID 0 (the "Archived" tag). - - Co-Authored-By: Jann Stute <46534683+Computerdores@users.noreply.github.com> - -commit 5c8f2c507fb317bf96173ee9051d25cb2c0c0d82 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Mon Jan 13 22:48:02 2025 +0100 - - feat: optimise `AND` queries (#679) - - * feat: optimise tag constraint - - * feat: use less subqueries - - * refactoring: __entry_satisfies_ast was unnecessary - - * feat: reduce time consumption of counting total results massively - - * feat: log the time it takes to fetch the results - - * Revert "feat: reduce time consumption of counting total results massively" - - This reverts commit 30af514681949779c3f33db9f4ed6c54a57d9882. - - * feat: log the time it takes to count the results - - * feat: optimise __entry_has_all_tags - -commit 5bab00aa6d42c72a2f8e033bd3b0e45282d3c752 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Mon Jan 13 22:46:57 2025 +0100 - - refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication (#699) - - * refactor: TagDatabasePanel now inherits from TagSearchPanel for code deduplication - - * refactor: rename callback method - - * extract creation of row items to separate method - -commit a272b1863761a4147b6107cf84bb1905f956fbdc -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Sat Jan 11 22:26:01 2025 +0100 - - feat: improve performance of "Delete Missing Entries" (#696) - - * feat: Delete all unlinked entries at once (#617) - - This technically removes the usefulness progress indicator, but brief - testing on my end had it delete ~8000 entries in less time than it took - me to see if the progress indicator was properly indeterminate or not - - * fix(fmt): remove unused import - - * fix: wasn't able to delete more than 32766 entries - - * chose: ruff check --fix - - * fix: address review comment - - --------- - - Co-authored-by: Tobias Berger - -commit fce97852d3769bca5a0be9d50f27937e60850ec2 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Jan 11 09:44:09 2025 -0800 - - feat!: tag categories (#655) - - * refactor: remove TagBoxField and TagField (NOT WORKING) - - * refactor: remove tag field types - - * ci: fix mypy and ruff tests - - * refactor: split up preview_panel - - * fix: search now uses `TagEntry` (#656) - - * fix: move theme check inside class - - * refactor: reimplement file previews - - * refactor: modularize `file_attributes.py` - - * ui: show fields in preview panel - - known issues: - - fields to not visually update after being edited until the entries are reloaded from the thumbnail grid (yes, the thumbnail grid) - - add field button currently non-functional - - surprise segfaults - - * search: remove TagEntry join - - * fix: remove extra `self.filter` assignment - - * add success return flag to `add_tags_to_entry()` - - * refactor: use entry IDs instead of objects and indices - - - fixes preview panel not updating after entry edits - - fixes slow selection performance - - fixes double render call - - * feat: add tag categories to preview panel - - * ui: add "is category" checkbox in tag panel - - * fix: tags can be compared for name sorting - - * fix: don't add tags to previous selections - - * fix: badges now properly update - - * ui: hide sizeGrip - - * ui: add blue ui color - - * ui: display empty selection; better multi-selection - - * cleanup comments; rename tsp to tag_search_panel - - * fix(ui): properly unset container callbacks - - * fix: optimize queries - - * fix: catch int cast exception - - * fix: remove unnecessary update calls - - * fix: restore try/except block in preview_panel - - * fix: correct type hints for get_tag_categories - - * fix: tags no longer lazy load subtags and aliases - - * fix: recursively include parent tag categories - - * chore: update copyright info - - * chore: remove unused code - - * fix: load fields for selected entry - - * refactor: remove `is_connected` from AddFieldModal - - * fix: include category tags under their own categories - - * fix: badges now update when last tag is removed - - * fix: resolve differences with main - - * fix: return empty set in place of `None` - - * ui: add field highlighting, tweak theming - - * refactor!: eradicate use of the term "subtag" - - - Removes ambiguity between the use of the term "parent tag" and "subtag" - - Fixes inconstancies between the use of the term "subtag" to refer to either parent tags or child tags - - Fixes duplicate and ambiguous subtags mapped relationship for the Tag model - - Does NOT fix tests - - * fix: catch and show library load errors - - * tests: fix and/or remove tests - - * suppress db preference warnings - - * tests: add field container tests - - * tests: add tag category tests - - * refactor(ui): move recent libraries list to file menu - - * docs: update roadmap and docs for tag categories - - * fix: restore json migration functionality - - * logs: remove/update debug logs - - * chore: remove unused code - - * tests: remove tests related to `TagBoxWidget` - - * ui: optimize selection and badge updates - - * docs: update usage - - * fix: change typo of `tag.id` to `tag_id` - - Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> - - * fix: use term "child tags" instead of "subtags" in docstring - - Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> - - * fix: reference `child_id` instead of `parent_id` when deleting tags - - Co-Authored-By: Jann Stute <46534683+Computerdores@users.noreply.github.com> - - * add TODO comment for `update_thumbs()` optimization - - * fix: combine and check (most) built-in tag data from JSON - - Known issue: Tag colors from built-in JSON tags are not updated. This can be seen in the failing test. - - * refactor: rename `select_item()` to `toggle_item_selection()` - - * add TODO to optimize `add_tags_to_entry()` - - * fix: remove unnecessary joins in search - - * Revert "fix: remove unnecessary joins in search" - - This reverts commit 4c019ca19c365f6d0d66ec4a9d3db105624e83d6. - - * fix: remove unnecessary joins in search - - * reremove unused method `get_all_child_tag_ids()` - - * fix: migrate user-edited tag colors for built-in tags - - * style: update header for contributor-created files - - * fix: use absolute path in "open file" context menu - - * chore: change paramater type hint - - --------- - - Co-authored-by: python357-1 - Co-authored-by: Jann Stute <46534683+Computerdores@users.noreply.github.com> - -commit 5860a2ca9b5d0d893affb6d93165a6d14de7f4c3 -Author: Weblate (bot) -Date: Sat Jan 11 16:05:26 2025 +0100 - - translations: update German, Hungarian, Spanish, and Chinese (Traditional Han script) (#677) - - * Translated using Weblate (German) - - Currently translated at 73.3% (157 of 214 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: Jann Stute - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - Translation: TagStudio/Strings - - * Translated using Weblate (Hungarian) - - Currently translated at 100.0% (214 of 214 strings) - - Translated using Weblate (Hungarian) - - Currently translated at 59.8% (128 of 214 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: Szíjártó Levente Pál - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - Translation: TagStudio/Strings - - * Translated using Weblate (Spanish) - - Currently translated at 63.5% (136 of 214 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com> - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - Translation: TagStudio/Strings - - * Translated using Weblate (Chinese (Traditional Han script)) - - Currently translated at 94.8% (203 of 214 strings) - - Co-authored-by: Brian Su - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/zh_Hant/ - Translation: TagStudio/Strings - - --------- - - Co-authored-by: Jann Stute - Co-authored-by: Szíjártó Levente Pál - Co-authored-by: Nginearing <142851004+Nginearing@users.noreply.github.com> - Co-authored-by: Brian Su - -commit d8d61cc8c8331018740a149d289377135ef50f31 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Jan 11 07:03:05 2025 -0800 - - docs: fix broken weblate link in README - -commit fc81c43af1cd53e230ce6c9d2a9177406b6aae7a -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Jan 11 07:00:13 2025 -0800 - - docs: add a linux install notice (#695) - - * docs: add a linux install notice (#689) - - * docs: add a linux install notice to readme (#690) - - --------- - - Co-authored-by: Qronikarz <84787215+Qronikarz@users.noreply.github.com> - -commit 3cd56a881f2ad13f9dcdf4129a8cf90fc67eef89 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Fri Jan 10 16:46:23 2025 +0100 - - feat: sort by "date added" to library (#674) - - * ui: add sorting mode dropdown - - * feat: pass sorting mode to Library.search_library - - * feat: implement sorting by creation date - - * ui: add dropdown for sorting direction - - * ui: update shown entries after changing sorting mode / direction - - * docs: mark sorting by "Date Created" as completed - - * fix: remove sorting options that have not been implemented - - * fix: rename sorting mode to "Date Added" - - * fix: check off the right item on the roadmap - - * feat: translate sorting UI - - * fix: address review comments - -commit 936157c3c2ac148f4d209783991e824ce2f8fb0d -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Jan 7 01:17:31 2025 -0800 - - fix(ui): properly mask macOS icon - -commit c4f4bba5e024049ff5743588ee8ea319376af961 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Jan 6 11:44:18 2025 -0800 - - build: update macos bundle identifier and version - - Update bundle to use `com.companyname.appname` reverse-domain structure - -commit 29c0dfdb2d88e8f473e27c7f1fe7ede6e5bd0feb -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jan 5 23:40:41 2025 -0800 - - feat(ui): use tag query as default new tag name - -commit bf03e28fdb488ae4ec4b508d2e5e99b6ed5b9454 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jan 5 22:49:58 2025 -0800 - - ui: update macOS icon - -commit 0b6b07d0b453b02cf6870587bd0692339c9f922a -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jan 5 21:02:36 2025 -0800 - - fix(ui): don't create new QFonts in main_window.py - - This fix uses stylesheets instead of initializing new QFonts in the Ui_MainWindow class. This fixes the fonts appearing differently on different OSes, including a fix for text using these QFonts appearing small on macOS. The use of stylesheets also puts the styling in line with how the rest of the program operates. - -commit af760ee61a523c84bab0fb03a68d7465866d0e05 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jan 5 19:40:37 2025 -0800 - - ui: port splash screen from `Alpha-v9.4` - - Reimplements: - - 7f3b3d06af867fa4d5ca9f215499a25822c5900f - - 1e4883c577dcd62fc09fc2e86ecaa20d3d2b29db - - 1c53f05e4fbb8462240b08d0f0014efef81911e3 - -commit c5c86747fe96ac4e6f2f00a490d438b4fd776a6e -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Mon Jan 6 00:34:55 2025 +0000 - - fix: only close add tag menu with no search (#685) - -commit ef042ef070572221f39174292970df78d14ec23f -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Fri Jan 3 08:37:18 2025 +0000 - - fix: call filepaths instead of using `start` (#667) - -commit 7b672e03a172e8689258bbeb71623141fc83f451 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Wed Jan 1 11:36:11 2025 +0100 - - feat: implement parent tag search (#673) - - * feat: implement parent tag search - - * feat: add tests for parent tag search - - * fix: typo - - * feat: log the time it takes to build the SQL Expression - - * feat: instead of hardcoding child tag ids into main query, include subquery - - * Revert "feat: instead of hardcoding child tag ids into main query, include subquery" - - This reverts commit 2615e7dab464dd490fd1d66181758d00a0d885be. - -commit 5a0ba544546416228f309d9dc422951dc7c31889 -Author: python357-1 <30739625+python357-1@users.noreply.github.com> -Date: Wed Jan 1 04:35:35 2025 -0600 - - fix: strip whitespace around --open/-o flag (#670) - - * fix: fix -o flag not working if path has whitespace around it - - * fix: change strip to lstrip/rstrip - - * fix: manually expand "~" - -commit d948c0ce4c00169db6d1a571daae5197aba2c9ca -Author: Nginearing <142851004+Nginearing@users.noreply.github.com> -Date: Wed Jan 1 10:34:18 2025 +0000 - - docs: update readme (#676) - -commit d5cebf39d447b47ebe526903103ba73c228af9b1 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Dec 30 20:50:57 2024 -0800 - - fix: add missing `pillow_jxl` import - - This import was accidentally removed in #569. This commit restores the import. - -commit 584f3aa358897666e2a58fd9eb3cd53d0c5d10ba -Author: Weblate (bot) -Date: Tue Dec 31 04:18:23 2024 +0100 - - translations: remove `library.refresh.scanning` key (#675) - - * Update translation files - - Updated by "Cleanup translation files" add-on in Weblate. - - Co-authored-by: Hosted Weblate - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ - Translation: TagStudio/Strings - -commit 1a317a182633b06b625ac7d9ead59364391cfaee -Author: Weblate (bot) -Date: Tue Dec 31 04:16:46 2024 +0100 - - translations: update Hungarian, Polish, French, Chinese (Traditional Han script), Toki Pona (#663) - - * Translated using Weblate (Hungarian) - - Currently translated at 100.0% (130 of 130 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: Szíjártó Levente Pál - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - Translation: TagStudio/Strings - - * Translated using Weblate (Polish) - - Currently translated at 100.0% (130 of 130 strings) - - Translated using Weblate (Polish) - - Currently translated at 100.0% (130 of 130 strings) - - Co-authored-by: Eryk Michalak - Co-authored-by: Hosted Weblate - Co-authored-by: qronikarz - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/ - Translation: TagStudio/Strings - - * Translated using Weblate (French) - - Currently translated at 100.0% (130 of 130 strings) - - Co-authored-by: Bamowen - Co-authored-by: Hosted Weblate - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - Translation: TagStudio/Strings - - * Translated using Weblate (Chinese (Traditional Han script)) - - Currently translated at 90.0% (117 of 130 strings) - - Added translation using Weblate (Chinese (Traditional Han script)) - - Co-authored-by: Brian Su - Co-authored-by: Hosted Weblate - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/zh_Hant/ - Translation: TagStudio/Strings - - * Translated using Weblate (Toki Pona) - - Currently translated at 96.1% (125 of 130 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: gold - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - Translation: TagStudio/Strings - - --------- - - Co-authored-by: Szíjártó Levente Pál - Co-authored-by: Eryk Michalak - Co-authored-by: qronikarz - Co-authored-by: Bamowen - Co-authored-by: Brian Su - Co-authored-by: gold - -commit 69aed92f2421924f71498d23dac84c0fed79f7f4 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Tue Dec 31 04:15:39 2024 +0100 - - feat: translations (#662) - - * feat: implement Translator class - - * feat: add translate_with_setter and implement formatting of translations - - * feat: extend PanelModal to allow for translation - - * feat: extend ProgressWidget to allow for translation - - * feat: translation in ts_qt.py - - * debug: set default lang to DE and show "Not Translated" when replacing untranslated stuff - - * add translation todos - - * feat: translate modals - - * feat: translate more stuff - - * fix: UI test wasn't comparing to translated strings - - * feat: translations for most of the remaining stuff - - * fix: replace debug changes with simpler one - - * uncomment debug change - - * fix: missing parameter in call - - * fix: various review feedback - - * fix: don't translate json migration discrepancies list - - * fix: typo - - * fix: various PR feedback - - * fix: correctly read non-ascii characters - - * fix: add missing new line at eof - - * fix: comment out line of debug code - - * fix: address latest review comment - - * fix: KeyError that occurred when formatting translations - - * fix: regression of d594e84 - - * fix: add newline to en.json - - * fix: organize en.json, fix typo - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit 40bfee050263cf105363f7dd7a8c70848449696c -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Tue Dec 24 03:39:23 2024 +0000 - - fix(ui): prevent duplicate parent tags in UI (#665) - -commit 020a73d095c74283d6c80426d3c3db8874409952 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Dec 23 18:55:22 2024 -0800 - - fix(ui): use consistent tag outline colors - -commit 431efe4fe93213141c763e59ca9887215766fd42 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Dec 23 18:39:56 2024 -0800 - - fix(ui): use correct pink tag color - -commit ca4dc0bebd398cfb339a5a4ee390337ff8b63038 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Dec 23 16:50:10 2024 -0800 - - chore: add 089c8dd to `.git-blame-ignore-revs` - -commit 82c659c8a4b5acb1cbb727341cc6d187047fd23e -Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> -Date: Sun Dec 22 23:14:37 2024 -0700 - - feat(ui): new tag alias UI (#534) - - * updated parents and aliases to use the flowLaout in the build tag panel - - added shortcuts for adding and removing aliases and updated the alias ui - to always show remove button and not cover alias - - aliases use flowlayout - - wrote test for buildTagPanel removeSelectedAlias - - parent tags now use flowlayout in build tag panel - - moved buttons for adding aliases and parents to be at the end of the - flowLayout - - * added aliases and subtags to search results - - * aliases now use a table, removed unnecessary keyboard shortcuts - - * reverted subtags to regular list from flowlayout - - * chor remove redundant lambda - - * feat: added display names for tags - - * fix: aliases table enter/return and backspace work as expected, display names work as expected, adding aliases outputs them in order - - * format - - * fix: add parent button on build tag panel - - * fix: empty aliases where not being removed all the time - - * fix: alias name changes would be discarded when a new alias was created or an alias was removed - - * fix: removed display names, as they didn't display properly and should be added in a different PR - - * fix: mypy - - * fix: added missing session.expunge_all - - session.expunge_all() on line 621 was removed, added it back. - - * fix: parent_tags relationship in Tag class - - parent_tags primaryJoin and secondaryJoin where in the wrong order. They have been switched back to the proper order. - - * fix: pillow_jxl import was missing - - * fix: ruff - - * fix: type hint fixes - - * fix: fix the type hint fixes - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit dc2eed431b97e43cec44c16b5f8b4dc1f15203ec -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Dec 22 22:11:18 2024 -0800 - - add `.sqlite-journal` to `.gitignore` - -commit 9eed3b64d98dd442b7f0f3d1d4c8510f70dd0e27 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Sun Dec 22 22:58:10 2024 +0100 - - feat: implement search equivalence of "jpg" and "jpeg" filetypes (#649) - - * feat: implement search equivalence of "jpg" and "jpeg" filetypes in an extensible manner - - * docs: update completion for search features on roadmap - - * fix: move FILETYPE_EQUIVALENTS to media_types.py - -commit 4c3ff42169e90e5d053d14eb724032ea9abd2b94 -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Sun Dec 22 20:21:04 2024 +0000 - - fix: show correct unlinked files count (#653) - -commit b209abb1a423c78c59986dad8a3217cb92cc6c00 -Author: Weblate (bot) -Date: Sun Dec 22 02:29:49 2024 +0100 - - translations: propagate en.json key changes (#654) - - * Update translation files - - Updated by "Cleanup translation files" add-on in Weblate. - - Co-authored-by: Hosted Weblate - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ - Translation: TagStudio/Strings - -commit 45b45f5846c0de6654e5383d3472580f22f75b8e -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Dec 21 15:01:29 2024 -0800 - - translations: remove unused keys, add missing ones - -commit b3f393e59b413ff6fb87d2b88c198a24a7808ac7 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Dec 21 14:53:56 2024 -0800 - - style(translations): sort en.json keys - -commit f4b30c15ce834f7baf24edbb9b8b4a88e8c9c99f -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Dec 21 14:50:47 2024 -0800 - - refactor(translations): fix + normalize translation keys - -commit 8a52bfea693874a6c2ecd62a2ed59a97456000c9 -Author: Weblate (bot) -Date: Sat Dec 21 19:31:30 2024 +0100 - - translations: fix German, add Polish (#650) - - * Translated using Weblate (German) - - Currently translated at 93.6% (133 of 142 strings) - - Translated using Weblate (German) - - Currently translated at 87.3% (124 of 142 strings) - - Co-authored-by: Hosted Weblate - Co-authored-by: Jann Stute - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - Translation: TagStudio/Strings - - * Translated using Weblate (Polish) - - Currently translated at 95.7% (136 of 142 strings) - - Translated using Weblate (Polish) - - Currently translated at 23.2% (33 of 142 strings) - - Added translation using Weblate (Polish) - - Co-authored-by: Hosted Weblate - Co-authored-by: qronikarz - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pl/ - Translation: TagStudio/Strings - - --------- - - Co-authored-by: Jann Stute - Co-authored-by: qronikarz - -commit 934c98a4d486e36257054022c44b3901eae12596 -Author: SkeleyM <86805089+SkeleyM@users.noreply.github.com> -Date: Sat Dec 21 01:00:33 2024 +0000 - - fix: enter/return adds top result tag (#651) - - * fix return not adding searched tag - - * add first_tag_id type hint - -commit 36c1c180b3370e349f805e47bce28b3d8638fafb -Author: Travis Abendshien -Date: Fri Dec 20 16:24:04 2024 -0800 - - refactor: consolidate reserved tag values as ints - -commit d6280f7ead359d190c3ac25fedf7cab6885385d6 -Author: Travis Abendshien -Date: Fri Dec 20 16:07:19 2024 -0800 - - style: remove whitespace - -commit 933af1c40559547e2fd9079c6f5060195b8e5ff1 -Author: Travis Abendshien -Date: Fri Dec 20 16:00:44 2024 -0800 - - ui: update remove tag message box text - -commit 2903dd22c45c02498687073d075bb88886de6b62 -Author: Travis Abendshien -Date: Fri Dec 20 15:56:23 2024 -0800 - - fix: tags created from tag database now add aliases - -commit fdfd6490bdf2ac55bcf2040c38092ce86017e27c -Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> -Date: Fri Dec 20 16:22:23 2024 -0700 - - feat: delete and create tags from tag database panel (#569) - - * [feat] can now add a new tag from the tag library panel - - * [feat] can remove tags from the tag library panel - [fix] library panel updates tag list when a new tag is create - - * [test] added test for library->remove_tag - - * [fix] type error - - * removed redundant lambda - - Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> - - * fix: tags with a reserved id could be edited or removed, now they cannot. - - * fix: when a tag is removed or edited the preivew panel will update to reflect the changes - - Co-authored-by: Sean Krueger - - * fix: mypy check - - * fix: aliases and subtags not being removed from DB when tag they reference was removed. - - * feat: added a confirmation message box when removing tags. - - * fix: mypy - - --------- - - Co-authored-by: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> - Co-authored-by: Sean Krueger - -commit 8387676d795a8f814f131c5cb27cacc95c0d5979 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri Dec 20 14:34:05 2024 -0800 - - feat(ui): show filenames in thumbnail grid (Closes #85) (#633) - - * feat(ui): add filename label under thumbnails - - * refactor(ui): organize menu items - - * feat: make thumbnail filenames toggleable - - * refactor variables, tweak spacing - - * fix(ui): only change cursor on thumb_button - - * revert changes to ../search_library/../ts_library.sqlite - - * fix: don't ever call .setHidden(False) on visible widgets - - * refactor: rename filename toggles to setters - - * fix: remove duplicate open_on_start_action - -commit 24fa76ee30860877057d68f2b6bf7064859ab4b5 -Author: python357-1 <30739625+python357-1@users.noreply.github.com> -Date: Fri Dec 20 16:03:11 2024 -0600 - - tests(fix): stop updating sqlite db during tests (#648) - - * fix: stop sqlite db from being updated while running tests - - * refactor: small refactor in db checking code - -commit 9e0c4f39b8c120aec32f2539d9e5093e2ec0d7d5 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Dec 14 11:42:17 2024 -0800 - - docs: remove closed pr warning from CONTRIBUTING.md - -commit c33d0203e458e3da5662825e5fe4cc75f8ca3fe2 -Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> -Date: Sat Dec 14 12:40:48 2024 -0700 - - fix: editing tags from preview panel updates database (#641) - - * fix: bug where preview_panel tag was out of date compared to tag in database after edits where made using the tagDatabasePanel - - * fix: changes made in the preview panel are saved to the database - -commit ebc487eac412db696419c143c76684ecf6b52acd -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Dec 12 21:43:13 2024 -0800 - - docs: add refactor warning to CONTRIBUTING.md - -commit dec9f1dd28f8f14e4459a1c57958a22c1cf3bd78 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Dec 11 18:28:09 2024 -0800 - - docs: add additional detail to ffmpeg help - -commit a519c9a737f4bda19dafe9c9f1cf17afe6c00618 -Author: python357-1 <30739625+python357-1@users.noreply.github.com> -Date: Wed Dec 11 19:04:53 2024 -0600 - - chore: update pytest workflow to 24.04 (#639) - - * fix: try fixing pytest workflow - - * chore: update pytest workflow to 24.04 - - * fix: fix libglx package name - - * fix: try a different package - - * fix: try apt-update first - - * Revert "fix: try apt-update first" - - This reverts commit 34c04f985b30a600328d55b70faa39113c3d0cc9. - - * Reapply "fix: try apt-update first" - - This reverts commit 775bc2634d27801a5a4e80b46dad7c70d5136f10. - -commit 385aaf42d8c0bd791a4b5eaee2bda1a6379fc794 -Author: Sean Krueger -Date: Wed Dec 11 16:00:27 2024 -0800 - - feat: reimplement drag drop files (Port #153) (#528) - - * feat: Drag and drop files in and out of TagStudio (#153) - - * Ability to drop local files in to TagStudio to add to library - - * Added renaming option to drop import - - * Improved readability and switched to pathLib - - * format - - * Apply suggestions from code review - - Co-authored-by: yed podtrzitko - - * Revert Change - - * Update tagstudio/src/qt/modals/drop_import.py - - Co-authored-by: yed podtrzitko - - * Added support for folders - - * formatting - - * Progress bars added - - * Added Ability to Drag out of window - - * f - - * format - - * Ability to drop local files in to TagStudio to add to library - - * Added renaming option to drop import - - * Improved readability and switched to pathLib - - * format - - * Apply suggestions from code review - - Co-authored-by: yed podtrzitko - - * Revert Change - - * Update tagstudio/src/qt/modals/drop_import.py - - Co-authored-by: yed podtrzitko - - * Added support for folders - - * formatting - - * Progress bars added - - * Added Ability to Drag out of window - - * f - - * format - - * format - - * formatting and refactor - - * format again - - * formatting for mypy - - * convert lambda to func for clarity - - * mypy fixes - - * fixed dragout only worked on selected - - * Refactor typo, Add license - - * Reformat QMessageBox - - * Disable drops when no library is open - - Co-authored-by: Sean Krueger - - * Rebased onto SQL migration - - * Updated logic to based on selected grid_idx instead of selected ids - - * Add newly dragged-in files to SQL database - - * Fix buttons being inconsistant across platforms - - * Fix ruff formatting - - * Rename "override" button to "overwrite" - - --------- - - Co-authored-by: yed podtrzitko - Co-authored-by: Travis Abendshien - Co-authored-by: Sean Krueger - - * refactor: Update dialog and simplify drop import logic - - * Handle Qt events for main window in ts_qt.py - - * Replace magic values with enums - - * Match import duplicate file dialog to delete missing entry dialog - - * Remove excessive progess widgets - - * Add docstrings and logging - - * refactor: add function for common ProgressWidget use - - Extracts the create_progress_bar function from drop_import to the - ProgressWidget class. Instead of creating a ProgressWidget, - FunctionIterator, and CustomRunnable every time a thread-safe progress - widget is needed, the from_iterable function in ProgressWidget now - handles all of that. - - --------- - - Co-authored-by: Creepler13 - Co-authored-by: yed podtrzitko - Co-authored-by: Travis Abendshien - -commit a1daf5ab6ac6420566fe3b31ab44e924740980c3 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Dec 9 11:51:36 2024 -0800 - - fix: use absolute ffprobe path on macos (Fix #511) (#629) - - * bump pyside version to 6.8.0.1 - - * fix: try for absolute ffprobe path on macos - -commit aaea0b1475206edf093f32191359a5f0aa0d6187 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Dec 9 11:44:51 2024 -0800 - - fix: don't allow blank tag alias values in db (#628) - -commit a535ed12b01ce46f7efc6c5c75e641e0a105ca97 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Sat Dec 7 00:43:08 2024 +0100 - - feat: implement query language (#606) - - * add files - - * fix: term was parsing ANDList instead of ORList - - * make mypy happy - - * ruff format - - * add missing todo - - * add more constraint types - - * add parent property to AST - - * add BaseVisitor class - - * make mypy happy - - * add __init__.py - - * Revert "make mypy happy" - - This reverts commit 926d0dd2e79d06203e84e2f83c06c7fe5b33de23. - - * refactoring and fixes - - * rudimentary search field integration - - * fix: check for None properly - - * fix: Entries without Tags are now searchable - - * make mypy happy - - * Revert "fix: Entries without Tags are now searchable" - - This reverts commit 19b40af7480b0c068b81b642b51536a9ec96d030. - - * fix: changed joins to outerjoins and added missing outerjoin - - * use query lang instead of tag_id FIlterState - - * add todos - - * fix: remove uncecessary line that broke search when searching for exact name - - * fix tag search - - * refactoring - - * fix: path now uses GLOB operator for proper GLOBs - - * refactoring: remove FilterState.id and implement Library.get_entry_full as replacement - - * fix: use default value notation instead of if None statement in __post_init__ - - * remove obsolete Search Mode UI and related code - - * ruff fixes - - * remove obsolete tests - - * fix: item_thumb didn't query entries correctly - - * fix: search_library now correctly returns the number of *unique* entries - - * make mypy happy - - * implement NOT - - * remove obsolete filename search - - * remove summary as it is not applicable anymore - - * finish refactoring of FilterState - - * implement special:untagged - - * fix: make mypy happy - - * Revert changes to search_tags in favor of changes from #604 - - * fix: also port test changes - - * fix: remove unneccessary import - - * fix: remove unused dataclass - - * fix: AND now works correctly with tags - - * simplify structure of parsed AST - - * add performance logging - - * perf: Improve performance of search by reducing number of required joins from 4 to 1 - - * perf: double NOT is now optimized out of the AST - - * fix: bug where pages would show less than the configured number of entries - - * Revert "add performance logging" - - This reverts commit c3c7d7546d285c6dad51872cbf80bc6070262570. - - * fix: tag_id search was broken - - * somewhat adapt the existing autocompletion to this PR - - * perf: Use Relational Division Queries to improve Query Execution Time - - * fix: raise Exception so as to not fail silently - - * fix: Parser bug broke parentheses - - * little bit of clean up - - * remove unnecessary comment - - * add library for testing search - - * feat: add basic tests - - * fix: and queries containing just one tag were broken - - * chore: remove debug code - - * feat: more tests - - * refactor: more consistent name for variable - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - * fix: ruff check complaint over double import - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit 056e6004665be3932b4d50cf8a6ff62d0fbb2f98 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Dec 5 01:30:18 2024 -0800 - - bump numpy to version 2.1.0 - -commit 3196678666b8541270872f566c2bb3da0dac4bcf -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Thu Dec 5 09:43:39 2024 +0100 - - fix: multiple macro errors (#612) - - * port fixes from json branch - - * fix: correctly pass grid_idx in autofill macro - - * fix(BUILD_URL macro): only add url if url was successfully built - - * fix(AUTOFILL macro): error when trying to add tag with name that already exists - - * fix: test was wrongly renaming sidecar file - -commit bea691381476f6b53d43852e180f92a1445c3588 -Author: Дмитрий <88423841+Roc25@users.noreply.github.com> -Date: Thu Dec 5 08:53:44 2024 +0300 - - fix: add check to see if library is loaded in filter_items (#547) - - * Added a check to see if the library is loaded in filter_items - - * Returned check to see if there is an engine - - --------- - - Co-authored-by: gred - -commit b72a2f233141db4db6aa6be8796b626ebd3f0756 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Dec 4 11:23:42 2024 -0800 - - add ".DS_Store" to GLOBAL_IGNORE_SET - -commit 4c33901a471e39e9f4b41faf8b6b3a55a7989e76 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Dec 4 11:16:47 2024 -0800 - - chore: format with ruff - -commit 7d7c8b234838b4b740cedd485a0d1f7560a74e77 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Dec 3 13:04:02 2024 -0800 - - docs: adjust formatting - -commit 47babdd5b516927fd16cb6d35474b2a9f12c2162 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Dec 3 12:59:27 2024 -0800 - - docs: update README.md and index.md - -commit 461d1030269d5ae53a02d56db2b012f2988da5b3 -Author: Weblate (bot) -Date: Tue Dec 3 19:48:23 2024 +0100 - - translations: add Filipino translation (#584) - - Currently translated at 75.3% (107 of 142 strings) - - Translated using Weblate (Filipino) - - Currently translated at 50.0% (71 of 142 strings) - - Added translation using Weblate (Filipino) - - - - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fil/ - Translation: TagStudio/Strings - - Co-authored-by: searinminecraft <114207889+searinminecraft@users.noreply.github.com> - -commit a630b09b4f5f47604f8fb5e19fdec4f5ada16391 -Author: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> -Date: Wed Dec 4 00:09:44 2024 +0530 - - fix: remove/rework windows path tests (#625) - - * fix: tagstudio/tests/test_driver.py::test_evaluate_path_last_lib_present always fails in windows. - - * refactor: removal tagstudio/tests/test_library.py::test_save_windows_path - - Fixes #616 - -commit 8ba23c5d54499309bf5693be6df9e3be353ff74d -Author: VasigaranAndAngel <72515046+VasigaranAndAngel@users.noreply.github.com> -Date: Tue Dec 3 01:41:39 2024 +0530 - - fix: clear all setting values when opening a library (#622) - -commit e4d8f995bb9261b9b48d9898572ae40bfea5fff1 -Author: Travis Abendshien -Date: Sun Dec 1 13:33:39 2024 -0800 - - docs: remove partial checkboxes - -commit 691c63e65966c438d5b84e3bfa760591d60032fd -Author: Travis Abendshien -Date: Sun Dec 1 13:24:18 2024 -0800 - - docs: update v9.5 roadmap - -commit 1fcd31b62f2ec2d617cdf1a77a3fc16a37335ec2 -Author: Travis Abendshien -Date: Sun Dec 1 11:56:10 2024 -0800 - - chore: bump ruff to 0.8.1, pillow-jxl-plugin to 1.3.0 - -commit 1974ff169c4ed98f0ae4eef1708de80ef693ada1 -Author: Travis Abendshien -Date: Sat Nov 30 15:11:17 2024 -0800 - - refactor: remove 3.12 nested f-string - -commit dffa3635b002b1bbef5d3c209bf5099aac6f82e3 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sat Nov 30 22:03:57 2024 +0100 - - fix: remove qt disconnect warning (#613) - - * fix: cannot disconnect from None Warning - - * fix: cannot disconnect from None Warning mypy compliant - -commit ef68603322ea2c237e302adaf02aa82a87ddf153 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Nov 30 13:00:08 2024 -0800 - - feat(parity): migrate json libraries to sqlite (#604) - - * feat(ui): add PagedPanel widget - - * feat(ui): add MigrationModal widget - - * feat: add basic json to sql conversion - - * fix: chose `poolclass` based on file or memory db - - * feat: migrate tag colors from json to sql - - * feat: migrate entry fields from json to sql - - - fix: tag name column no longer has unique constraint - - fix: tags are referenced by id in db queries - - fix: tag_search_panel no longer queries db on initialization; does not regress to empty search window when shown - - fix: tag name search no longer uses library grid FilterState object - - fix: tag name search now respects tag limit - - * set default `is_new` case - - * fix: limit correct tag query - - * feat: migrate tag aliases and subtags from json to sql - - * add migration timer - - * fix(tests): fix broken tests - - * rename methods, add docstrings - - * revert tag id search, split tag name search - - * fix: use correct type in sidecar macro - - * tests: add json migration tests - - * fix: drop leading dot from json extensions - - * add special characters to json db test - - * tests: add file path and entry field parity checks - - * fix(ui): tag manager no longer starts empty - - * fix: read old windows paths as posix - - Addresses #298 - - * tests: add posix + windows paths to json library - - * tests: add subtag, alias, and shorthand parity tests - - * tests: ensure no none values in parity checks - - * tests: add tag color test, use tag id in tag tests - - * tests: fix and optimize tests - - * tests: add discrepancy tracker - - * refactor: reduce duplicate UI code - - * fix: load non-sequential entry ids - - * fix(ui): sort tags in the preview panel - - * tests(fix): prioritize `None` check over equality - - * fix(tests): fix multi "same tag field type" tests - - * ui: increase height of migration modal - - * feat: add progress bar to migration ui - - * fix(ui): sql values update earlier - - * refactor: use `get_color_from_str` in test - - * refactor: migrate tags before aliases and subtags - - * remove unused assertion - - * refactor: use `json_migration_req` flag - -commit b7e652ad8d8055cd49bf37138413568d058e8a7b -Author: Travis Abendshien -Date: Fri Nov 29 15:40:04 2024 -0800 - - docs: remove `db_migration` - -commit bc366fc34d1d8276cb31151986292ad618393716 -Author: csponge -Date: Fri Nov 29 17:47:27 2024 -0500 - - feat: audio playback (#576) - - * feat: Audio Playback - - Add the ability to play audio files. - - Add a slider to seek through an audio file. - - Add play/pause and mute/unmute buttons for audio files. - - Note: This is a continuation of a mistakenly closed PR: - Ref: https://github.com/TagStudioDev/TagStudio/pull/529 - - While redoing the changes, I made a couple of improvements. - When the end of the track is reached, the pause button will - swap to the play button and allow the track to be replayed. - - Here is the original feature request: - Ref: https://github.com/TagStudioDev/TagStudio/issues/450 - - * fix: prevent autoplay on new track when paused - - * refactor: Add MediaPlayer base class. - - Added a MediaPlayer base class per some suggestions - in the PR comments. Hopefully this reduces duplicate code - between the audio/video player in the future. - - * refactor: add controls to base MediaPlayer class - - Move media controls from the AudioPlayer widget - to the MediaPlayer base class. This removes the need - for a separate AudioPlayer class, and allows the - video player to reuse the media controls. - - * fix: position_label update with slider - - Update the position_label when the slider is moving. - - * fix: replace platform dependent time formatting - - Replace the use of `-` in the time format since this - is not availabile on all platforms. - - Update initial `position_label` value to '0:00'. - -commit 1fb1a80d53bc910ba9ea7311e98d1c847f2f399f -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri Nov 29 12:35:18 2024 -0800 - - fix: ui/ux parity fixes for thumbnails and files (#608) - - * fix(ui): display loading icon before rendered thumb - - * fix: skip out of range thumbs - - * fix: optimize library refreshing - - * fix(ui): tag colors show correct names - - * fix(ui): ensure inner field containers are deleted - - * fix(ui): don't show default preview label text - - * fix: catch all missing file thumbs; clean up logs - -commit d152cd75d8058341eca61f6940d6c7ccf4a5607c -Author: Kiril Bourakov <86131959+KirilBourakov@users.noreply.github.com> -Date: Fri Nov 29 13:34:28 2024 -0400 - - fix: "open in explorer" opens correct folder (#603) - - * replaced as_posix with str - - * replaced addition with f string - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit 20f93719d79dfb4aadf7736164ece77e34aa2857 -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Thu Nov 28 22:19:08 2024 +0100 - - fix(ci): surpress errant mypy warnings (#609) - - * fix: mypy error in ts_qt - - * fix: mypy error in file_opener due to conflicting types - - * fix: remove unnecessary type ignores - - * refix type ignore comments - - * partially revert "refix type ignore comments" due to being implemented in #608 - -commit 262893a1bbc16d0f254032adf22b77f9dcc95e67 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Nov 27 21:25:03 2024 -0800 - - add `.DS_Store` to `.gitignore` - -commit 7b2636e4a7c32295183b33ca81b70e9a6a59e9f8 -Author: Travis Abendshien -Date: Sun Nov 24 10:29:29 2024 -0800 - - add syncthing to `.gitignore` - -commit 0d166e63c09a4ad7b6e8a3939c3573e9c08ac893 -Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> -Date: Thu Nov 21 13:29:35 2024 -0700 - - feat(parity): backend for aliases and parent tags (#596) - - * backend for aliases and parents - - * resolve merge conflics - -commit f6a1ca67835a8101e846619e6ea1ae40d227c425 -Author: Travis Abendshien -Date: Tue Nov 19 17:54:44 2024 -0800 - - docs: update contribution guidelines - -commit 7ae2bc24d6ab82586806f2dde271668723c0fc9d -Author: Coolio -Date: Tue Nov 19 16:14:34 2024 -0600 - - feat(ui): pre-select default tag name in `BuildTagPanel` (#592) - - This changes the behavior of the tag name inside `BuildTagPanel` for newly created tags: - * The default "New Tag" name is now automatically highlighted - * Blank tag names (including spaces) are no longer allowed to be created - * NOTE: This does not change the tag name column rules in the db, nor does it necessarily need to - - *** - - * [Feature Request]: Make the create tag panel have empty tag name field - - * [Feature Request]: Make the create tag panel have empty tag name field - - * Revert "[Feature Request]: Make the create tag panel have empty tag name field" - - This reverts commit f9c7f5d8892fb70a1618f05554234851a27c7eaa. - - * [Feature Request]: Make the create tag panel have empty tag name field - - * Revert "[Feature Request]: Make the create tag panel have empty tag name field" - - This reverts commit e5df3e0f15a1b97c49390ee6190b906958eddbb1. - - * Update .gitignore - - * Updated as per disscussion in issue #591 (DRAFT - - * Updated as per disscussion in issue #591 (DRAFT - - * Added formatting - - * Updated code as per discussion is #592 - - * Updated code as per discussion is #592 (again) - - * Fixed spacing - - * Add placeholder text to name field. - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - * Use universal red color for red border. - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - * fix: add `src.core.palette` imports - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit 2977e07223de4a58fe5c6964bb3ee3660357cfa0 -Author: Дмитрий <88423841+Roc25@users.noreply.github.com> -Date: Tue Nov 19 02:35:00 2024 +0300 - - ui: select thumb on press instead of click (#556) - - Co-authored-by: gred - -commit 774c886288b1531edd55310468459a29031a66bc -Author: DandyDev01 <37933054+DandyDev01@users.noreply.github.com> -Date: Mon Nov 18 16:19:28 2024 -0700 - - fix(ui): update ui when removing fields (#560) - -commit bec513f558437278f6dc7c0c083876b0a7736d07 -Author: python357-1 <30739625+python357-1@users.noreply.github.com> -Date: Mon Nov 18 12:45:51 2024 -0600 - - feat: add autocomplete for search engine (#586) - - * feat: add autocomplete for mediatype, filetype, path, tag, and tag_id searches - - * fix: address issues brought up in review - - * fix: fix mypy issue - - * fix: fix mypy issues for real this time - -commit 9078feec0cef9e157b1c0a4808be2fe67f930fc8 -Author: Justine Akehurst <31110637+jakehurst@users.noreply.github.com> -Date: Sun Nov 17 22:03:51 2024 -0800 - - fix(docs): fix link to feature roadmap page (#594) - -commit f9ef76c2e132067b8030968d0f1291d333ed5908 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Nov 17 16:35:30 2024 -0800 - - add `.idea/` to `.gitignore` - -commit 139836d9c871aa98a606d30b8cbd4380b43ad249 -Author: yed -Date: Fri Nov 15 10:55:16 2024 +0700 - - fix: stop thumbnail jobs when closing library (#583) - -commit fd0df94830c3550b63625259b0c57f7bc4022280 -Author: python357-1 <30739625+python357-1@users.noreply.github.com> -Date: Thu Nov 14 16:02:34 2024 -0600 - - feat: make path search use globs (#582) - - * feat: make path search use globs - - * fix: specify types in path search - - * chore: format with ruff - -commit 97e0e80f6f48adef5be74d73f4810d3b0db6b335 -Author: python357-1 <30739625+python357-1@users.noreply.github.com> -Date: Thu Nov 14 15:52:00 2024 -0600 - - feat: add filetype and mediatype searches (#575) - - * feat: add filetype and mediatype searches - - * style: fix some style issues - - * fix: parametrize mediatype and filetype tests - - * style: fix remaining unordered import - - * style: fix pytest parametrize calls - - * feat: add human-readable names to mediacategories - - * feat: use human-readable names in mediacategory: search - - * feat: add human-readable name to open document - - * fix: fix returning multiple filetypes issue and add regression test - -commit fb7ad928af8bcea338dc57878d6ce024429b11e6 -Author: Travis Abendshien -Date: Mon Nov 11 11:13:44 2024 -0800 - - docs(roadmap): add translations to v9.5 - -commit d75729b578ee6f6c9b8f3826fd8d252477e7f6ef -Author: python357-1 <30739625+python357-1@users.noreply.github.com> -Date: Fri Nov 8 13:07:51 2024 -0600 - - docs: update CONTRIBUTING.md ruff instructions (#581) - - * docs: add warning about ruff on linux - - * Update CONTRIBUTING.md - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit f21d49df7fd2cf569b0aed7c3cb8ce6196a44ba6 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Nov 7 15:12:57 2024 -0800 - - feat: add JXL thumbnail and animated APNG + WEBP support (port #344 and partially port #357) (#549) - - * feat: add JXL image thumbnail support - - Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> - - * feat: add animated previews for webp and apng - - Co-Authored-By: BPplays <58504799+bpplays@users.noreply.github.com> - - --------- - - Co-authored-by: BPplays <58504799+bpplays@users.noreply.github.com> - -commit 96026b66bc7d32d559e8ced4b6f058e56db005c7 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Nov 7 15:00:51 2024 -0800 - - feat: add OpenDocument thumbnail support (port #366) (#545) - - * feat: add OpenDocument thumbnail support - - Co-Authored-By: Josh Beatty - - * tests: add test comparing odt to png snapshot - - * tests: add test comparing ods to png snapshot - - * test: combine OpenDocument tests - - * test: combine compatible preview tests - - * test: combine preview render tests - - * fix: update test snapshots - - --------- - - Co-authored-by: Josh Beatty - -commit c7171c54554b529c40521e1444fdcd2184c4e015 -Author: Travis Abendshien -Date: Thu Nov 7 13:31:13 2024 -0800 - - chore: update resources_rc.py - -commit 5ee118c1fbc16fe85eba7e86e02a08dfaaad0867 -Author: Weblate (bot) -Date: Thu Nov 7 21:01:43 2024 +0100 - - translations: update from Hosted Weblate (#579) - - * Added translation using Weblate (Russian) - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Added translation using Weblate (Portuguese) - - * Added translation using Weblate (Portuguese (Brazil)) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 46.4% (66 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 46.4% (66 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Added translation using Weblate (Tamil) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Tamil) - - Currently translated at 51.4% (73 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Added translation using Weblate (Spanish) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Tamil) - - Currently translated at 88.0% (125 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Spanish) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 19.7% (28 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 19.7% (28 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Translated using Weblate (Spanish) - - Currently translated at 29.5% (42 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 29.5% (42 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 49.2% (70 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 49.2% (70 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 52.1% (74 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Added translation using Weblate (Norwegian Bokmål) - - * Translated using Weblate (Tamil) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 55.6% (79 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Added translation using Weblate (French) - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Translated using Weblate (Spanish) - - Currently translated at 56.3% (80 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 56.3% (80 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 68.3% (97 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Translated using Weblate (French) - - Currently translated at 40.1% (57 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (Spanish) - - Currently translated at 65.4% (93 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 65.4% (93 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 93.6% (133 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 93.6% (133 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Added translation using Weblate (Danish) - - * Added translation using Weblate (German) - - * Translated using Weblate (Danish) - - Currently translated at 1.4% (2 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Added translation using Weblate (Cantonese (Traditional Han script)) - - * Translated using Weblate (Tamil) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (German) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Added translation using Weblate (Hungarian) - - * Translated using Weblate (German) - - Currently translated at 14.0% (20 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Hungarian) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - - * Translated using Weblate (German) - - Currently translated at 14.7% (21 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Added translation using Weblate (Swedish) - - * Translated using Weblate (German) - - Currently translated at 71.8% (102 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Swedish) - - Currently translated at 78.8% (112 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ - - * Added translation using Weblate (Toki Pona) - - * Translated using Weblate (Tamil) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Danish) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Translated using Weblate (Toki Pona) - - Currently translated at 83.0% (118 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - - * Added translation using Weblate (Italian) - - * Translated using Weblate (French) - - Currently translated at 64.0% (91 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (German) - - Currently translated at 76.0% (108 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Hungarian) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - - * Translated using Weblate (Toki Pona) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - - * Translated using Weblate (Italian) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ - - * Added translation using Weblate (Turkish) - - * Translated using Weblate (Turkish) - - Currently translated at 88.7% (126 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ - - * Translated using Weblate (Turkish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (French) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (French) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Translated using Weblate (Portuguese) - - Currently translated at 0.0% (0 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/ - - * Translated using Weblate (Portuguese) - - Currently translated at 0.0% (0 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Tamil) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 67.6% (96 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 67.6% (96 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Translated using Weblate (French) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (Danish) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Translated using Weblate (Danish) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Translated using Weblate (German) - - Currently translated at 76.0% (108 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (German) - - Currently translated at 76.0% (108 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (German) - - Currently translated at 76.0% (108 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Cantonese (Traditional Han script)) - - Currently translated at 0.0% (0 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/yue_Hant/ - - * Translated using Weblate (Cantonese (Traditional Han script)) - - Currently translated at 0.0% (0 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/yue_Hant/ - - * Translated using Weblate (Hungarian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - - * Translated using Weblate (Swedish) - - Currently translated at 78.8% (112 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ - - * Translated using Weblate (Swedish) - - Currently translated at 78.8% (112 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ - - * Translated using Weblate (Swedish) - - Currently translated at 78.8% (112 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ - - * Translated using Weblate (Toki Pona) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - - * Translated using Weblate (Italian) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ - - * Translated using Weblate (Italian) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ - - * Translated using Weblate (Italian) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ - - * Translated using Weblate (Turkish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ - - * Update translation files - - Updated by "Remove blank strings" add-on in Weblate. - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ - - --------- - - Co-authored-by: Artyom Ognev - Co-authored-by: Space_Fox - Co-authored-by: Lobo Metalúrgico - Co-authored-by: Vasi - Co-authored-by: Nginearing - Co-authored-by: gallegonovato - Co-authored-by: Allan Nordhøy - Co-authored-by: Bamowen - Co-authored-by: Ryussei - Co-authored-by: Szíjártó Levente Pál - Co-authored-by: Zoinx - Co-authored-by: gold - Co-authored-by: William de Castro - Co-authored-by: Jann Stute - Co-authored-by: Nyghl - Co-authored-by: Obscaeris - -commit fc4e124cd890eb9acda5f6a948f816afdb945ec8 -Merge: 15bf354 0358f51 -Author: Travis Abendshien -Date: Tue Nov 5 10:25:30 2024 -0800 - - Merge branch 'main' of github.com:TagStudioDev/TagStudio - -commit 15bf354c88d5251f97a3c7f3051f84afcde04f53 -Author: Travis Abendshien -Date: Tue Nov 5 10:25:27 2024 -0800 - - docs(roadmap): add drag and drop - -commit 10abd18def84395df0ddd1378fa82112cc669585 -Author: Travis Abendshien -Date: Tue Nov 5 10:24:44 2024 -0800 - - docs(roadmap): add thumbnail overrides - -commit 73daa39bf19b4588b1043e89a68b3cac51bee043 -Author: Travis Abendshien -Date: Tue Nov 5 10:20:28 2024 -0800 - - docs(roadmap): clarify filetype search - -commit 0358f51f9998570887167dbf10f791e3a772cc1f -Author: Дмитрий <88423841+Roc25@users.noreply.github.com> -Date: Mon Nov 4 23:28:44 2024 +0300 - - feat: add `IMAGE_RASTER_TYPES` (Fix #550) (#551) - - * fix resolution info - - * Fix for Raw and Vector Image types - - * Small refactor - - * Create IMAGE_RASTER_TYPES and remove is_image_ext_raster - - * Change if statment only for raster - - * Rename _IMAGE_SET to _IMAGE_RASTER_SET - - --------- - - Co-authored-by: gred - -commit e02eb39ae2d2dce6e4c7e4cbe602639341646554 -Author: Hissymaster <144076671+Hissymaster@users.noreply.github.com> -Date: Tue Oct 29 14:46:27 2024 +1100 - - docs: change reference to `planned_features.md` to `roadmap.md` (#564) - - Co-authored-by: Hissymaster - -commit 6e5a1a0e52fd40e0defdc95dbab501885bcb0550 -Author: Travis Abendshien -Date: Mon Oct 28 14:38:34 2024 -0700 - - docs: add issues numbers to roadmap - -commit 237638024507d31d98a054fa46c2e62ab73dff12 -Author: Travis Abendshien -Date: Mon Oct 28 13:02:05 2024 -0700 - - docs: remove `planned_features.md` - -commit 04149f6454de3639823be52e0e56438a5a9d63d5 -Author: Travis Abendshien -Date: Mon Oct 28 13:01:13 2024 -0700 - - docs: add feature roadmap - -commit d3c3e634b93353750c9fc810af9973e64e21de71 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Oct 17 15:15:51 2024 -0700 - - feat: add ePub thumbnail support (port #387) (#539) - - * feat: add ePub thumbnail support - - Co-Authored-By: Jorge Rui Da Silva Barrios <29062316+jorgerui@users.noreply.github.com> - - * tests: compare epub cover against png snapshot - - Co-Authored-By: yed - - * test: optimize epub test file - - --------- - - Co-authored-by: Jorge Rui Da Silva Barrios <29062316+jorgerui@users.noreply.github.com> - Co-authored-by: yed - -commit 3d7629bc731286d2721f19cc60bb8bb42e6facf5 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Oct 14 16:34:49 2024 -0700 - - feat: add pdf thumbnail support (port #378) (#543) - - * feat: add pdf thumbnail support - - Co-Authored-By: Heiholf <71659566+heiholf@users.noreply.github.com> - - * fix: remove redef - - * tests: add test comparing pdf to png snapshot - - Co-Authored-By: yed - - * fix: fix info in docstrings - - * fix: remove sample png generation - - * fix: change the pdf snapshot to use a black square - - * chore: fix whitespace - - --------- - - Co-authored-by: Heiholf <71659566+heiholf@users.noreply.github.com> - Co-authored-by: yed - -commit 9255a86ad1d0800e663fb984065dd7e3362b2916 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Oct 14 13:30:46 2024 -0700 - - feat: add svg thumbnail support (port #442) (#540) - - * feat: add svg thumbnail support - - Co-Authored-By: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> - - * flip `svg.isValid()` logic check - - * tests: add test comparing svg to png snapshot - - Co-Authored-By: yed - - --------- - - Co-authored-by: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> - Co-authored-by: yed - -commit 5b85462cfa7b8e29218ad57de4024c176f598646 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Oct 12 23:59:08 2024 -0700 - - ci: pin pytest ubuntu version to 22..04 (#544) - -commit abeb0c1ce3f8d89ef8736a7c0ef1df10f1c615d2 -Author: xarvex -Date: Fri Oct 11 17:10:17 2024 -0500 - - fix(ci): complete 7c253226d529f0a799c438aca0965723e4e29544 - -commit 7c253226d529f0a799c438aca0965723e4e29544 -Author: xarvex -Date: Fri Oct 11 17:01:49 2024 -0500 - - fix(ci): replace obselete package - -commit 68c166d8d34c3935324b485b92aed5803589b173 -Author: Travis Abendshien -Date: Thu Oct 10 12:40:09 2024 -0700 - - Bump version to v9.5.0 Experimental - -commit c348c763f85f310d88ed2af2575bbd2121aa96ba -Author: Jann Stute <46534683+Computerdores@users.noreply.github.com> -Date: Tue Oct 8 04:04:22 2024 +0200 - - fix: enable mypy to run from project directory (#520) - -commit 7574ad38465dff5e00ac7accec8dbfd9b86d058f -Author: yed -Date: Tue Oct 8 08:56:02 2024 +0700 - - fix: don't check db version with new library (#536) - -commit 7dd0f3dabbf597c293286d67252f0684a7d9a649 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Oct 7 14:14:01 2024 -0700 - - feat: port thumbnail (#390) and related features to v9.5 (#522) - - * feat: port v9.4 thumbnail + related feats to v9.5 - - Ports the following thumbnail and related PRs from the `Alpha-v9.4` branch to `main` (v9.5+): - - (#273) Blender thumbnail support - - (#307) Add font thumbnail preview support - - (#331) refactor: move type constants to new media classes - - (#390) feat(ui): expanded thumbnail and preview features - - (#370) ui: "open in explorer" action follows os name - - (#373) feat(ui): preview support for source engine files - - (#274) Refactor video_player.py (Fix #270) - - (#430) feat(ui): show file creation/modified dates + restyle path label - - (#471) fix(ui): use default audio icon if ffmpeg is absent - - (#472) fix(ui): use birthtime for creation time on mac & win - - Co-Authored-By: Ethnogeny <111099761+050011-code@users.noreply.github.com> - Co-Authored-By: Theasacraft <91694323+Thesacraft@users.noreply.github.com> - Co-Authored-By: SupKittyMeow <77246128+supkittymeow@users.noreply.github.com> - Co-Authored-By: EJ Stinson <93455158+favroitegamers@users.noreply.github.com> - Co-Authored-By: Sean Krueger <71362472+seakrueger@users.noreply.github.com> - - * remove vscode exceptions from `.gitignore` - - * delete .vscode directory - - * style: format for `ruff check` - - * fix(tests): update `test_update_widgets_not_selected` test - - * remove Send2Trash dependency - - * refactor: use dataclass for MediaCateogry - - * refactor: use enums for UI colors - - * docs: add file docstring for silent_Popen - - * refactor: replace logger with structlog - - * use early return inside `ResourceManager.get()` - - * add `is_ext_in_category()` method to `MediaCategory` - - Add method to check if an extension is a member of a given MediaCategory. - - * style: fix docstring style, missing type hints, rename `afm` - - * fix: use structlog vars in logging - - * refactor: move platform-dependent strings to PlatformStrings - - * refactor: move `parents[2]` path to variable - - * fix: undo logger regressions - - --------- - - Co-authored-by: Ethnogeny <111099761+050011-code@users.noreply.github.com> - Co-authored-by: Theasacraft <91694323+Thesacraft@users.noreply.github.com> - Co-authored-by: SupKittyMeow <77246128+supkittymeow@users.noreply.github.com> - Co-authored-by: EJ Stinson <93455158+favroitegamers@users.noreply.github.com> - Co-authored-by: Sean Krueger <71362472+seakrueger@users.noreply.github.com> - -commit e0752828dbb728bcc81dd2c58a63a2d15ec80791 -Author: yed -Date: Tue Oct 8 04:09:57 2024 +0700 - - feat: store `Entry` suffix separately (#503) - - * feat: save entry suffix separately - - * change LibraryPrefs to allow identical values, add test - -commit 1c7aaf0a16c272d777899679b3c2822f4bab9798 -Author: Travis Abendshien -Date: Wed Oct 2 14:48:01 2024 -0700 - - Revert "translations: update from Hosted Weblate (#530)" - - This reverts commit fe207062d5344f3159434880ac85acb816f01068. - -commit fe207062d5344f3159434880ac85acb816f01068 -Author: Weblate (bot) -Date: Wed Oct 2 02:12:07 2024 +0200 - - translations: update from Hosted Weblate (#530) - - * Added translation using Weblate (Russian) - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Added translation using Weblate (Portuguese) - - * Added translation using Weblate (Portuguese (Brazil)) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 46.4% (66 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 46.4% (66 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Added translation using Weblate (Tamil) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Tamil) - - Currently translated at 51.4% (73 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Added translation using Weblate (Spanish) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Tamil) - - Currently translated at 88.0% (125 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Spanish) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 19.7% (28 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 19.7% (28 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Translated using Weblate (Spanish) - - Currently translated at 29.5% (42 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 29.5% (42 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 49.2% (70 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 49.2% (70 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 52.1% (74 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Added translation using Weblate (Norwegian Bokmål) - - * Translated using Weblate (Tamil) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 55.6% (79 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Added translation using Weblate (French) - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Translated using Weblate (Spanish) - - Currently translated at 56.3% (80 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 56.3% (80 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 68.3% (97 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Translated using Weblate (French) - - Currently translated at 40.1% (57 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (Spanish) - - Currently translated at 65.4% (93 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 65.4% (93 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 93.6% (133 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 93.6% (133 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Added translation using Weblate (Danish) - - * Added translation using Weblate (German) - - * Translated using Weblate (Danish) - - Currently translated at 1.4% (2 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Added translation using Weblate (Cantonese (Traditional Han script)) - - * Translated using Weblate (Tamil) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (German) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Added translation using Weblate (Hungarian) - - * Translated using Weblate (German) - - Currently translated at 14.0% (20 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Hungarian) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - - * Translated using Weblate (German) - - Currently translated at 14.7% (21 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Added translation using Weblate (Swedish) - - * Translated using Weblate (German) - - Currently translated at 71.8% (102 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Swedish) - - Currently translated at 78.8% (112 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ - - * Added translation using Weblate (Toki Pona) - - * Translated using Weblate (Tamil) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Danish) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Translated using Weblate (Toki Pona) - - Currently translated at 83.0% (118 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - - * Added translation using Weblate (Italian) - - * Translated using Weblate (French) - - Currently translated at 64.0% (91 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (German) - - Currently translated at 76.0% (108 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Hungarian) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - - * Translated using Weblate (Toki Pona) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - - * Translated using Weblate (Italian) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ - - * Added translation using Weblate (Turkish) - - * Translated using Weblate (Turkish) - - Currently translated at 88.7% (126 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ - - * Translated using Weblate (Turkish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (French) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (French) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - --------- - - Co-authored-by: Artyom Ognev - Co-authored-by: Space_Fox - Co-authored-by: Lobo Metalúrgico - Co-authored-by: Vasi - Co-authored-by: Nginearing - Co-authored-by: gallegonovato - Co-authored-by: Allan Nordhøy - Co-authored-by: Bamowen - Co-authored-by: Ryussei - Co-authored-by: Szíjártó Levente Pál - Co-authored-by: Zoinx - Co-authored-by: gold - Co-authored-by: William de Castro - Co-authored-by: Jann Stute - Co-authored-by: Nyghl - Co-authored-by: Obscaeris - -commit 02ac69978d2665e4010c45356fed6d27eadba8d8 -Author: Travis Abendshien -Date: Tue Oct 1 17:07:01 2024 -0700 - - Revert "translations: update from Hosted Weblate (#526)" - - This reverts commit c37c4a95a700920272f00a859c03ef154ecf268e. - -commit c37c4a95a700920272f00a859c03ef154ecf268e -Author: Weblate (bot) -Date: Sat Sep 28 00:21:51 2024 +0200 - - translations: update from Hosted Weblate (#526) - - * Added translation using Weblate (Russian) - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Added translation using Weblate (Portuguese) - - * Added translation using Weblate (Portuguese (Brazil)) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 46.4% (66 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 46.4% (66 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Added translation using Weblate (Tamil) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Tamil) - - Currently translated at 51.4% (73 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Added translation using Weblate (Spanish) - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt_BR/ - - * Translated using Weblate (Tamil) - - Currently translated at 88.0% (125 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Spanish) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 19.7% (28 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 19.7% (28 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Translated using Weblate (Spanish) - - Currently translated at 29.5% (42 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 29.5% (42 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 49.2% (70 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 49.2% (70 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 52.1% (74 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Added translation using Weblate (Norwegian Bokmål) - - * Translated using Weblate (Tamil) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 55.6% (79 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Added translation using Weblate (French) - - * Translated using Weblate (Russian) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/ - - * Translated using Weblate (Spanish) - - Currently translated at 56.3% (80 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 56.3% (80 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Norwegian Bokmål) - - Currently translated at 68.3% (97 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/nb_NO/ - - * Translated using Weblate (French) - - Currently translated at 40.1% (57 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (Spanish) - - Currently translated at 65.4% (93 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 65.4% (93 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 74.6% (106 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 83.8% (119 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 93.6% (133 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 93.6% (133 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Translated using Weblate (Spanish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/ - - * Added translation using Weblate (Danish) - - * Added translation using Weblate (German) - - * Translated using Weblate (Danish) - - Currently translated at 1.4% (2 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Added translation using Weblate (Cantonese (Traditional Han script)) - - * Translated using Weblate (Tamil) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (German) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Added translation using Weblate (Hungarian) - - * Translated using Weblate (German) - - Currently translated at 14.0% (20 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Hungarian) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - - * Translated using Weblate (German) - - Currently translated at 14.7% (21 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Added translation using Weblate (Swedish) - - * Translated using Weblate (German) - - Currently translated at 71.8% (102 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Swedish) - - Currently translated at 78.8% (112 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/sv/ - - * Added translation using Weblate (Toki Pona) - - * Translated using Weblate (Tamil) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ta/ - - * Translated using Weblate (Danish) - - Currently translated at 2.8% (4 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/da/ - - * Translated using Weblate (Toki Pona) - - Currently translated at 83.0% (118 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - - * Added translation using Weblate (Italian) - - * Translated using Weblate (French) - - Currently translated at 64.0% (91 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (German) - - Currently translated at 76.0% (108 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/ - - * Translated using Weblate (Hungarian) - - Currently translated at 99.2% (141 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/ - - * Translated using Weblate (Toki Pona) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tok/ - - * Translated using Weblate (Italian) - - Currently translated at 11.2% (16 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/it/ - - * Added translation using Weblate (Turkish) - - * Translated using Weblate (Turkish) - - Currently translated at 88.7% (126 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ - - * Translated using Weblate (Turkish) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/tr/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * Translated using Weblate (French) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/ - - * Translated using Weblate (English) - - Currently translated at 100.0% (142 of 142 strings) - - Translation: TagStudio/Strings - Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/en/ - - * fix: remove unused strings and sort lists - - * chore: update .git-blame-ignore-revs - - --------- - - Co-authored-by: Artyom Ognev - Co-authored-by: Space_Fox - Co-authored-by: Lobo Metalúrgico - Co-authored-by: Vasi - Co-authored-by: Nginearing - Co-authored-by: gallegonovato - Co-authored-by: Allan Nordhøy - Co-authored-by: Bamowen - Co-authored-by: Ryussei - Co-authored-by: Szíjártó Levente Pál - Co-authored-by: Zoinx - Co-authored-by: gold - Co-authored-by: William de Castro - Co-authored-by: Jann Stute - Co-authored-by: Nyghl - Co-authored-by: Travis Abendshien - -commit 49d071cf2b2955c3a5dfb96e7df0661d9cac0b44 -Author: Travis Abendshien -Date: Sun Sep 22 20:27:40 2024 -0700 - - docs: add weblate link to readme - -commit 4cd70d2c4fe7099b2fac509fbd1be1ebe5b6fedb -Author: Bamowen <12665915+Bamowen@users.noreply.github.com> -Date: Mon Sep 23 05:18:34 2024 +0200 - - add string tokens for en.json (#507) - - * 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 - -commit 073d51734b0812beccf148a85d181539c97c9915 -Author: FB100 <57065398+FB100@users.noreply.github.com> -Date: Sat Sep 14 00:26:05 2024 +0000 - - fix: correct typo in `test_driver.py` comment (#496) - -commit e51da278faaa6836ff930f9118fa0e49c5bbf7f6 -Author: Travis Abendshien -Date: Fri Sep 13 00:30:48 2024 -0700 - - squash `.git-blame-ignore.revs` - -commit b6e216760557c5507b12f210e1e48c531f49ffa3 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri Sep 13 00:28:00 2024 -0700 - - ci(ruff)!: update ruff linter config, refactor to comply (#499) - - * ci: update ruff linter config - - - Set line length to 100 - - Enforce Google-style docstrings - - Lint docstrings and imports - - * ci(ruff): exclude missing docstring warnings - - * ci(ruff): exclude docstring checks from tests dir - - * fix(ruff): change top level linter setting - - Fix Ruff warning: `warning: The top-level linter settings are deprecated in favour of their counterparts in the `lint` section. Please update the following options in `pyproject.toml`: - - 'per-file-ignores' -> 'lint.per-file-ignores'`. - - * chore: format with ruff - - * add `.git-blame-ignore-revs` - - * ci(ruff): add E402 and F541 checks - - * ci(ruff): add FBT003 check (#500) - - * ci(ruff): add T20 check - - * ci(ruff)!: add N check, refactor method names - - * ci(ruff): add E501 check, refactor strings - - Much commented-out code is removed in this commit. - - * update `.git-blame-ignore.revs` - - --------- - - Co-authored-by: yed - -commit c15963868ef8a818b5c2be869f6def7426d59d4b -Author: yed -Date: Fri Sep 13 07:34:27 2024 +0700 - - feat: make search results more ergonomic (#498) - -commit a8fdae8ebcbb834c71fb2fe8de160b6b0ea7290f -Author: Travis Abendshien -Date: Thu Sep 12 15:58:08 2024 -0700 - - docs: refer to conventional commits in CONTRIBUTING.md - - Co-Authored-By: Xarvex <60973030+xarvex@users.noreply.github.com> - -commit 2f2f763a29a99c4cf8d484e13e2d1e73c2b7a602 -Author: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> -Date: Thu Sep 12 23:02:56 2024 +0100 - - fix(search): remove wildcard requirement for tags (#481) - - * Fix tag search to not require wildcards - - * Add partial tag check to test_tag_search - - * chore: format with ruff - - --------- - - Co-authored-by: Tyrannicodin - Co-authored-by: Travis Abendshien - -commit 4942d1633cd24a6c04f0699de9546c3781ea22f5 -Author: yed -Date: Fri Sep 13 04:54:20 2024 +0700 - - refactor: cleanup the `refresh_dir` code, update tests (#494) - - * feat: take Ignore List into consideration when refreshing directory - - * undo the extension check in refresh_dir - -commit af642a7d29a3fe4dd855c618dec31766dd5832c9 -Author: yed -Date: Tue Sep 10 15:31:33 2024 +0700 - - fix: prevent error on closing library (#484) - -commit 2e8efa288d96a5f444e634e65602226d17268e19 -Author: Sean Krueger -Date: Mon Sep 9 11:34:55 2024 -0700 - - fix(flake): add missing x11 dependency (#478) - -commit fb949b82b7e3ed76a70446bd5cf7d2f18c940266 -Author: Travis Abendshien -Date: Sun Sep 8 22:36:03 2024 -0700 - - Revert "ci: add `README.md` to `publish_docs` workflow" - - This reverts commit 98f4246ff42ea0d4e0d28eccf2e4dfda0cbc5e84. - -commit 98f4246ff42ea0d4e0d28eccf2e4dfda0cbc5e84 -Author: Travis Abendshien -Date: Sun Sep 8 22:19:21 2024 -0700 - - ci: add `README.md` to `publish_docs` workflow - -commit d75d3444397e0883bb1213ac6d3dc84992c473b9 -Author: Travis Abendshien -Date: Sun Sep 8 22:13:03 2024 -0700 - - fix(docs): use valid note callout - -commit aeb7972206ddfda1df8d2cc2ac2ccf0a5528261e -Author: Travis Abendshien -Date: Sun Sep 8 22:08:45 2024 -0700 - - docs: add SQL warning to CONTRIBUTING.md - -commit 693a7bc160cfdbd88d5b1ae50d99aa7994cfc1ba -Author: Travis Abendshien -Date: Sun Sep 8 22:08:37 2024 -0700 - - docs: update top README warnings - -commit e5e7b8afc62c1a958c172b35819caa26995f2060 -Author: yed -Date: Mon Sep 9 12:06:01 2024 +0700 - - refactor!: use SQLite and SQLAlchemy for database backend (#332) - - * 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 - -commit 67f7e4dcf94e16447a750287e437b757bc933d9d -Author: Sean Krueger -Date: Sun Sep 8 11:11:29 2024 -0700 - - fix(docs): use correct formatting on FFmpeg help page (#475) - - * fix: Add spacing between list elements - - * fix: Add title and fixup headers - -commit 99d32357741162b3fc445b54625c5046d8565655 -Author: Sean Krueger -Date: Sun Sep 8 10:29:00 2024 -0700 - - docs: add ffmpeg installation guide (#473) - - * docs: Add ffmpeg installation guide - - * docs: Add discord invite link - - * grammar - - * spelling - -commit 60cad202da77f1e2bd88c8ad0467052930341585 -Author: Bamowen <12665915+Bamowen@users.noreply.github.com> -Date: Sun Sep 8 19:28:13 2024 +0200 - - docs: add discord server link in CONTRIBUTING.md (#474) - -commit 9b5c26a61edab144863ebc403767a410478cdb6f -Author: Knaughty <77908661+Kn4ughty@users.noreply.github.com> -Date: Sun Sep 8 13:34:11 2024 +1000 - - fix(docs): correct grammar mistake in CONTRIBUTING.md. (#452) - - Removed unnecessary with in "- Lint code *with* by [doing x]" - -commit f472d22e10ea6a700c0168a634aeb8c4ac64c9ec -Author: Travis Abendshien -Date: Sat Sep 7 07:39:28 2024 -0700 - - ci: add `publish_docs.yaml` to `publish_docs` paths - -commit 844dae0f58225ae211e608b5263f9e2d513ca252 -Author: CarterPillow -Date: Sat Sep 7 15:34:20 2024 +0100 - - fix(ci): update `site_url` in mkdocs.yml (#467) - - Configure MkDocs to use the custom domain: `docs.tagstud.io` - -commit d04d3b1f0aecec69356ca90aa2c610ad7ec0f2b5 -Author: Travis Abendshien -Date: Sat Sep 7 07:30:08 2024 -0700 - - ci: specify push paths for `publish_docs` - -commit 686e803f3e687ee7a9340aef7a7fccf0c834ed00 -Author: Travis Abendshien -Date: Sat Sep 7 00:35:19 2024 -0700 - - ci: add CNAME `docs.tagstud.io` - -commit a8f9bec65c51504f6215ed6defc9aa8fba333473 -Author: Travis Abendshien -Date: Sat Sep 7 00:20:06 2024 -0700 - - ci: route mkdocs `edit_uri` to `blob/main/docs` - -commit 0b56e7344f5c683404163c47e222da382f6c8f44 -Author: xarvex -Date: Sat Sep 7 01:30:19 2024 -0500 - - fix(ci): single character typo for mkdocs - -commit af4ef217a5ffd0b257326cb1130d771e93dd50b8 -Author: Paul Friederichsen -Date: Sat Sep 7 01:10:39 2024 -0500 - - ci: use MkDocs for documentation site (#460) - - * Use MkDocs for documentation - - Using Material for MkDocs - - * Enable edit buttons on pages - - * Updates to mkdocs.yml - -commit 84691310064ccb195e4dbb90c0f42cf955869e23 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Sep 3 16:32:47 2024 -0700 - - docs: add ffmpeg requirement - -commit 3e2fb1282c2262df85d54ff66164de1eaf1ea0e8 -Author: xarvex -Date: Tue Sep 3 00:11:59 2024 -0500 - - feat(flake): expose formatter - - Fixes: #433 - -commit 3e950a0cbecc9d00a65b50d8ecdc96bca4fa32ae -Author: xarvex -Date: Sun Sep 1 21:26:34 2024 -0500 - - fix(direnv)!: gitignore .envrc - - A common workflow is to have a local .envrc, allow contributors to do - so. Still provide the recommended Nix-based setup, for those who wish to - use it. - That file can then be copied to or symlinked to `.envrc`. - -commit 38626ac6902cbe1988a05bf7aa13f5c88c1b3eaf -Author: xarvex -Date: Sat Aug 31 13:16:27 2024 -0500 - - chore(direnv): update .envrc - - Cleanup direnv-root file - - Set filetype for vi-like editors - - Format and lint according to shellcheck and shfmt - -commit bc38e568fa3da18e7a05c2931472a98a0e9ac2bc -Author: xarvex -Date: Fri Aug 30 14:44:13 2024 -0500 - - feat(flake): remove impurity, update nix-direnv - - 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. - -commit 4b35df0924aad2e5f0394aff3010dbe5b84ceda5 -Author: Florian Zier <9168602+zierf@users.noreply.github.com> -Date: Fri Aug 30 06:49:00 2024 +0200 - - fix(flake): GPU hardware acceleration - - * 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. - -commit 750cbf0f9ce848d321237f36a6837b1d5961b35f -Author: xarvex -Date: Thu Aug 29 19:32:30 2024 -0500 - - fix(flake): add missing media dependencies - Fixes: #417 - - Did not opt for setting VDPAU_DRIVER, should be done on user side - See: https://wiki.archlinux.org/title/Hardware_video_acceleration#Configuring_VA-API - -commit cb4798b71595c113c0519af4991ad52b60adaa31 -Author: xarvex -Date: Sat Aug 24 22:57:00 2024 -0500 - - feat(flake): complete revamp with devenv/direnv - - 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! - -commit e1b1ef98881613d227b2a0b57d7ba61dfad007d8 -Merge: 3fcf602 15ee13c -Author: Xarvex -Date: Thu Aug 22 20:09:24 2024 -0500 - - Merge pull request #229 from seakrueger/flake-setup-venv - - ci(flake): create and activate venv via Nix Flake - -commit 3fcf6022b90f45b7e13c477537d100138d3d1bd1 -Author: UnusualEgg <76134596+UnusualEgg@users.noreply.github.com> -Date: Thu Aug 22 21:02:03 2024 -0400 - - refactor: combine `open` launch args (#364) - - Combine the `--open` and `-o` launch arguments into a single argument option. - -commit ec960f237258727c9acadd326908dffc8bdea5f8 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Aug 11 19:01:08 2024 -0700 - - (fix): use `.get()` to avoid `KeyError` (#347) - -commit ce87b11fbd642e688f0856e055fb77257eff15c1 -Author: Sam <51455162+samuellieberman@users.noreply.github.com> -Date: Mon Jul 22 07:59:43 2024 -0600 - - Fix #2 for Add Library Tags panel (#328) - - The "Add Tags" panel displays all tags when no search has been performed. Modifies the "Add Library Tags panel" to be the same. - -commit c79086f7152db570ed615ca291855019e033fb4d (tag: v9.3.2) -Author: Travis Abendshien -Date: Thu Jul 4 17:40:19 2024 -0700 - - Fix collation data not clearing on library close - -commit 9ce07bd369af87e52279419c970ac325aba2187f -Author: Travis Abendshien -Date: Wed Jul 3 17:41:21 2024 -0700 - - Bump version to 9.3.2 - -commit 33ee27a84fd8d1200c6d98af38b41b92382ead5f -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Thu Jul 4 02:02:59 2024 +0200 - - Fix small bug (#306) - -commit 1204d2b7b50c4401a6b444ca82bf6421aa6d4789 -Author: Travis Abendshien -Date: Fri Jun 21 11:28:12 2024 -0700 - - Fix search ignoring case of extension list - -commit 15ee13c7b4666d36968ee9bc459b6993cab61370 -Author: Sean Krueger -Date: Mon Jun 17 13:02:52 2024 -0500 - - Bump Qt6 version to 6.7.1 - -commit 49ad8117ef4fb661096296da8a22030c2777f6d6 -Author: Xarvex -Date: Sun Jun 16 02:59:59 2024 -0500 - - fix(flake): resolve mypy access to libraries - -commit 4f193613deaa8179ce131ccff6fb2f156f9464b6 -Author: Sean Krueger -Date: Mon Jun 10 19:16:24 2024 -0500 - - Update Contributing documentation for dev on Nix - - 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. - -commit 31038711f2e692daecc2b8bb9e604b88caded253 -Author: Sean Krueger -Date: Fri Jun 7 18:09:42 2024 -0500 - - Install ruff via nixpkgs - -commit cc827108efa3f8c61e0033e57dbae246eb031d5c -Author: Sean Krueger -Date: Thu Jun 6 20:50:22 2024 -0500 - - Add xcb as fallback when wayland fails to load - - Mostly as a fallback for xserver. - -commit 9fec4822c198c83c6b8266defe2b7076cf84ce79 -Author: Sean Krueger -Date: Mon Jun 3 11:51:41 2024 -0500 - - Setup and activate virtual environment via flake - - 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. - -commit 501ab1f9772690761982696f1800fa8fed969a79 -Author: Travis Abendshien -Date: Sun Jun 16 19:54:56 2024 -0700 - - Update issue templates to ask for title - -commit b3c01e180a0c54483a7fc1e7eba0063b3ff3f4d2 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Mon Jun 17 01:53:38 2024 +0200 - - Update to pyside6 version 6.7.1 (#223) - - * 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 - -commit 4c6ebec529d2111c3901edfbd779c8e71f469a8b -Author: Jiri -Date: Mon Jun 17 05:24:48 2024 +0800 - - refactoring: centralize field IDs (#157) - - * use enum with named fields instead of ad-hoc numbers - - * move tag ids into constants file - -commit 5c25666e670752db4770e3c38c66bc7765401083 -Author: Travis Abendshien -Date: Sat Jun 15 13:19:28 2024 -0700 - - Fix TypeError in folders_to_tags.py - - - Additionally use proper comparison syntax - -commit fae65bd9e95650c3a9b7e54054423d67d1d18f6c -Author: Lennart S <55597910+LennartCode@users.noreply.github.com> -Date: Sat Jun 15 22:10:55 2024 +0200 - - docs: Fixed broken markdown doc link (#291) - -commit 8e065ca8aca209928b62c68dc99d95d6069afad5 -Author: Jiri -Date: Sat Jun 15 01:11:00 2024 +0800 - - create testing library files ad-hoc (#292) - -commit 82946cb0b8113f58092d496c5d908c7939d68f80 -Author: Travis Abendshien -Date: Thu Jun 13 15:39:13 2024 -0700 - - Update CONTRIBUTING.md with PyTest info - -commit aa2925cde0589833c2e7c136b2d248d779ac37ef -Author: Jiri -Date: Fri Jun 14 06:29:22 2024 +0800 - - add pytest to CI pipeline (#286) - -commit 5bc80a043fc09fe0e0bd4b7c6c2d302dd3095274 (tag: v9.3.1) -Author: Travis Abendshien -Date: Thu Jun 13 09:17:14 2024 -0700 - - Update tagstudio.spec - -commit 65d88b9987e2c295c33d58abf26da30c1acf1795 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Jun 12 23:20:17 2024 -0700 - - Refactor `video_player.py` (Fix #270) (#274) - - * Refactor video_player.py - - - Move icons files to qt/images folder, some being renamed - - Reduce icon loading to single initial import - - Tweak icon dimensions and animation timings - - Remove unnecessary commented code - - Remove unused/duplicate imports - - Add license info to file - - * Add basic ResourceManager, use in video_player.py - - * Revert tagstudio.spec changes - - * Change tuple usage to dicts - - * Move ResourceManager initialization steps - - * Fix errant list notation - -commit 37ff35fcf6675e101b1a72305764e074d28b0543 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Jun 12 02:00:16 2024 -0700 - - Set mouse event transparency on ItemThumbs (#279) - -commit 9b13e338bbf93ddbfc2932a9137829a5422b1794 -Author: Xarvex -Date: Tue Jun 11 21:32:18 2024 -0500 - - Use bug report and feature request forms for issues (#277) - - * Initial bug report - - * Images can be attached in description - - * Enclose label in quotes - - * Wikis are no longer being used - - * Use footnote to clarify what is up-to-date - - * Footnotes not supported in checklist - - * Initial feature request form - - * Fixup grammar/wording - -commit a47b0adb6e8a9e6732ea0ff282d90810c7ec68c8 -Author: Travis Abendshien -Date: Tue Jun 11 17:29:30 2024 -0700 - - Update icon.ico - -commit 9f39bf6fdc54580b72c3016ff73495233b19641d -Author: Travis Abendshien -Date: Tue Jun 11 01:27:21 2024 -0700 - - Update README: Correct version number in figure - -commit e375166bfebd8616108dcf1bbda752ab08935212 -Author: Andrew Arneson -Date: Mon Jun 10 19:10:57 2024 -0600 - - Raise error if video file has 0 frames or is in valid. (#275) - - video.get(cv2.CAP_PROP_FRAME_COUNT) returns 0 or -1 - -commit 7054ffd22715c8c887a07895738eac335f0e0215 -Author: Sean Krueger -Date: Mon Jun 10 16:52:13 2024 -0500 - - Separately pin QT nixpkg version (#244) - - * Add missing libraries for video player - - * Pin qt6 package version to 6.6.3 - - Currently, this succesfully launches the program. Pinning qt seperatly - allows the rest of unstable nixpkgs to be updated even after the qt - package version has been bumped. This fixes vim failing to launch in the - nix shell because of a bad gcc version. Bumping the package version to - qt6.7.1 also will require bumping PySide to 6.7.1, otherwise it will - fail to find qt. Qt 6.7.1 nixpkg commit is 47da0aee5616a063015f10ea593688646f2377e4 - - * fixup: Pin Qtcreator also - - QtCreator was still against nixpkgs not the specific qt variant. - -commit 6d283d1f2dd841a733e6108b83f5d79981bae329 -Author: Travis Abendshien -Date: Mon Jun 10 02:30:16 2024 -0700 - - Add CONTRIBUTING.md, update README - -commit a0baf015dbd8b50e621c8e5c56cccaf9e47ad9b0 -Author: Travis Abendshien -Date: Sat Jun 8 15:34:29 2024 -0700 - - Bump version to v9.3.1 Pre-Release - -commit 58be4cdb4b609b92e61c1cb8837fd5b2372a9613 (tag: v9.3.0, upstream/Alpha-v9.3) -Author: Travis Abendshien -Date: Sat Jun 8 15:21:37 2024 -0700 - - Bump version to v9.3.0 - -commit 08761d5f8a1003309aa782bc82e3048e572edc85 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Jun 8 15:18:40 2024 -0700 - - Add Landing Page When No Library Is Opened (#258) - - * 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 - -commit 6a680ad3d18b0c7f2250870e98842b3e13c967b0 -Author: Travis Abendshien -Date: Sat Jun 8 12:40:37 2024 -0700 - - Increase shown tag limit from 29 to 100 (#227) - -commit b5ec3598e1c6b3009fd1f47ac20640dc2ee8b013 -Author: PencilVoid <83508866+PencilVoid@users.noreply.github.com> -Date: Sat Jun 8 18:51:39 2024 +0100 - - Add "Clear Selection" button (#259) - - * Add "Clear Selection" button - - * Change clear select keybind to Esc - -commit 926dfffebe75f4420a029e57fc4a1a3abdba2f96 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sat Jun 8 03:02:28 2024 +0200 - - Add option to use a allowed extensions instead of ignored extensions (#251) - - * 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 - - * polishing - - * polishing - - * Fix mypy - - * finishing touches - - Co-authored-by: Jiri - - * 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 - Co-authored-by: Travis Abendshien - -commit 461906c349c0609a37db6d4f3893645b9a74020f -Author: Xarvex -Date: Thu Jun 6 14:51:08 2024 -0500 - - Workflows: attempt fix for mismatched hashes in pip and bump MacOS version (#255) - - * Attempted fix at mismatched hashes - Due to the seemingly random nature of the bug, this cannot be tested - - * macos-11 runner has been deprecated, bump to 12 - -commit 2dc5197fbd5ec3f1e4f7da2af9562e9dc3aad4f5 -Author: Travis Abendshien -Date: Tue Jun 4 15:59:39 2024 -0700 - - Add upcoming feature documentation - -commit 11f0c7f9b8003554dbfe14b640a788ee3a05a54b -Author: PossiblePanda <85448494+PossiblePanda@users.noreply.github.com> -Date: Tue Jun 4 17:13:57 2024 -0400 - - Added various file formats to constants.py (#231) - - * Added various file formats to constants.py - - * Update tagstudio/src/core/constants.py - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - * Update tagstudio/src/core/constants.py - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit fb445e6ab0fed7a3f0ad96db4a38b064ea02d814 -Author: Andrew Arneson -Date: Mon Jun 3 22:47:56 2024 -0600 - - Fix Default Ignored File Extension (#245) - - Add item delegate for Ignored File Extension to add leading `.` if left off extension - -commit 6e96a0ff6114824c8c4efa8d9ef500b2c69d97e9 -Author: Giochino Danilo Ramos Silva <41204130+YoyloNerd@users.noreply.github.com> -Date: Tue Jun 4 00:37:56 2024 +0200 - - Multi mode search system (#232) - - * 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 - -commit c75aff4db3edf2a2a1effd392c432b2cefdc9f7c -Author: Travis Abendshien -Date: Mon Jun 3 13:30:15 2024 -0700 - - Rename "Subtags" to "Parent Tags" - - Mentioned change in #211 - -commit 84a4b2f0cf883007782db5ff1e19522b126c362b -Merge: 10b90dc 2d89df6 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jun 2 22:54:51 2024 -0700 - - Merge pull request #240 from Loran425/bugfix/cancel_library_dialog - - Bugfix Open Library Dialog - -commit 10b90dcc743e3c3e65e3fd41582dc791761aaf7b -Author: Andrew Arneson -Date: Sun Jun 2 23:53:42 2024 -0600 - - Bugfix for recent library re-creating a library at the last library location. (#238) - - * 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 - -commit 2d89df620e9b79fbf04ec8261235b36c536e48d2 -Author: Andrew Arneson -Date: Sun Jun 2 22:43:10 2024 -0600 - - Fix Open Library Dialog - Resolve issues where the open library dialog will try to open `.` if no path is returned from the dialog - -commit 0646508c248fe815cd0c984f660c05ccb34a3b97 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Jun 2 20:18:40 2024 -0700 - - Fix Raw Image Handling and Improve Text File Encoding Compatibility (#233) - - * 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 `.stat()` - - Remove unnecessary upper/lower conversions - - Improve encoding compatibility beyond UTF-8 when reading text files - - Code cleanup - - * Use chardet for character encoding detection - -commit 0137ed5be8d8786cd76561f19f333fe753533eac -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Jun 1 21:09:55 2024 -0700 - - Update README.md - -commit 779a251c09ea3e307c41e4958e1ad6e4d9077bd3 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sat Jun 1 01:45:13 2024 +0200 - - Fix small bugs (#228) - -commit 868b553670ddfd4bfd5c3822c6721a4c9b84f140 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 29 15:47:37 2024 -0700 - - Duplicate Entry Handling (Fixes #179) (#204) - - * Reapply "Add duplicate entry handling (Fix #179)" - - This reverts commit 66ec0913b60a195fe3843941c4c00021bf97e023. - - * Reapply "Fix create library + type checks" - - This reverts commit 57e27bb51f26793da110bab8903555a53fb82c99. - - * Type and hint changes - - * Remove object cast - - * MyPy wrestling - - * Remove type: ignore, change __eq__ cast - - - Remove `type: ignore` comments from `Entry`'s `__eq__` method - - Change the cast in this method from `__value = cast(Self, object)` to `__value = cast(Self, __value)` - - Co-Authored-By: Jiri - - * Fix formatting + mypy - - --------- - - Co-authored-by: Jiri - -commit 9f630fe31526e3a71ac73caa003d086dab606e45 -Author: DrRetro <86109384+DrRetro2033@users.noreply.github.com> -Date: Wed May 29 16:58:09 2024 -0400 - - Video Player (#149) - - * 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. - -commit 6798ffd0a7ca970383abbe5e8a997d0b221011be -Author: Icosahunter <33938534+Icosahunter@users.noreply.github.com> -Date: Sun May 26 18:17:05 2024 -0500 - - Replace use of os.path with pathlib (#156) - - * 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 - - * 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 - Co-authored-by: Travis Abendshien - -commit 2e8678414b587a47bd06548d4663c1b01d74f18f -Author: Jiri -Date: Sun May 26 16:00:56 2024 +0800 - - feat: add select all hotkey (#217) - - * add select all hotkey - - * add item to selected - -commit e1cd46d0107f6bba3a442155cdd6d4a56bfd6454 -Author: Gawi <95928592+Gawidev@users.noreply.github.com> -Date: Sat May 25 16:49:12 2024 -0400 - - Wiki/Docs Updates (#194) - - * split file + link fix - - * Cleanup & Minimum Fill - - * polish & link - - * Update doc/Tag.md - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - --------- - -commit 9879697c957216ec0e91dc12b49c082588f21e95 -Author: Travis Abendshien -Date: Thu May 23 00:42:00 2024 -0700 - - Bump version to v9.2.2 - -commit 57e27bb51f26793da110bab8903555a53fb82c99 (tag: v9.2.1) -Author: Travis Abendshien -Date: Mon May 20 17:44:52 2024 -0700 - - Revert "Fix create library + type checks" - - This reverts commit 6357fea8db442269194ad02fb8ca675505bcadeb. - -commit 66ec0913b60a195fe3843941c4c00021bf97e023 -Author: Travis Abendshien -Date: Mon May 20 17:43:25 2024 -0700 - - Revert "Add duplicate entry handling (Fix #179)" - - This reverts commit 491ebb6714b2245e9de20c122e2f0fa9fd6211b0. - -commit 6357fea8db442269194ad02fb8ca675505bcadeb -Author: Travis Abendshien -Date: Mon May 20 17:36:22 2024 -0700 - - Fix create library + type checks - -commit 491ebb6714b2245e9de20c122e2f0fa9fd6211b0 -Author: Travis Abendshien -Date: Mon May 20 17:14:30 2024 -0700 - - Add duplicate entry handling (Fix #179) - - - 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. - -commit 385b4117dbe8ee9880702cd81eb10085b20ba35b -Author: Travis Abendshien -Date: Sat May 18 19:03:57 2024 -0700 - - Fix incorrect pillow-heif import - -commit be3992f655c48e70ab85b47e66a0263203a5d979 -Author: Travis Abendshien -Date: Sat May 18 18:58:01 2024 -0700 - - Add HEIC/HEIF image support - - - Add support for HEIC/HEIF image thumbnails and previews - - Replace dependency "pillow_avif_plugin" with "pi-heif" - - Remove unused dependencies in ts_cli.py - -commit 18becd62a308e727b583caa387611f7fe453e2e4 -Author: Travis Abendshien -Date: Sat May 18 18:49:35 2024 -0700 - - Add RAW image support (Resolve #193) - - - Add thumbnail and preview support for RAW images ["raw", "dng", "rw2", "nef", "arw", "crw", "cr3"] - - Optimize the preview panel's dimension calculations (still need to move this elsewhere) - - Refactored use of "Path" in thumb_renderer.py - -commit 699ecd367ceba38cbdd0244148e7927ada3a3f96 -Author: Travis Abendshien -Date: Sat May 18 17:57:28 2024 -0700 - - Adaptive resampling method for images (Fix #174) - - When loading an image for thumbnails and previews, the resampling method is now determined by the size of the original image. Now low resolution images use "nearest neighbor" sampling while higher resolution images continue to use "bilinear" sampling. - -commit 9d7609a8e5cde937d562ef8f552206bd0578a206 -Author: Travis Abendshien -Date: Sat May 18 17:32:54 2024 -0700 - - Load palletized images as RGBA (Fix #175) - -commit e94c4871d76056cfee308a0c7a94ca265db3905c -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sun May 19 01:56:45 2024 +0200 - - Refactor Thumbrenderer (#168) - - * Merge Render methods - - * Cleanup comments - - * Removed old render methods and replaced with new one - - * Fix Formatting - - - Change all instances of "os.path.normpath" to pathlib's "Path" - - Remove unused import - - Modify log formatting - - Change "self.tr" to "self.thumb_renderer" to avoid masking internal method - - Restore DecompressionBombError handling from main - - Misc. formatting - - * Fix MyPy no-redef - - --------- - - Co-authored-by: Travis Abendshien - -commit 02bf15e0807d09b406ae05149285959e5dcf624d -Merge: cdf2581 5f60ec1 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 17 21:13:41 2024 -0700 - - Merge pull request #142 from Hidorikun/test-support-2 - - Add pytest support - -commit 5f60ec17022fda91ea70d8cd69edf20e81413cdf -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 17 21:12:02 2024 -0700 - - Add missing imports to ts_core.py - -commit cdf2581f84d3f1bad012e32e9812013c76ee373d -Merge: ac9dd58 af8b4e3 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 17 21:02:02 2024 -0700 - - Merge pull request #192 from yedpodtrzitko/yed/better-mypy-pr - - use reviewdog for mypy job - -commit af8b4e3872af750aa98aced2a96454b1422c65c5 -Author: yedpodtrzitko -Date: Sat May 18 10:11:55 2024 +0800 - - use reviewdog for mypy job - -commit ac9dd5879e5840d3bdadacbab0484723f83f7555 -Merge: 1461f2e badcd72 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 17 14:14:59 2024 -0700 - - Merge pull request #189 from michaelmegrath/main - - fix: Clear Edit Button on container update (#115) - -commit badcd72bea47e805be245d5375386d603097bb87 -Author: Michael Megrath -Date: Thu May 16 22:09:41 2024 -0700 - - fix: Clear Edit Button on container update (#115) - -commit 8733c8d30130ae2b0f85e2d7a2a8b5c03651396b -Author: Vele George -Date: Thu May 16 10:37:34 2024 +0300 - - Update constants.py - -commit 4726f1fc63c99a2cc4d98ecad6d1942536e7d429 -Merge: c9ea25b 1461f2e -Author: Vele George -Date: Thu May 16 10:37:27 2024 +0300 - - Merge branch 'main' into test-support-2 - -commit 1461f2ee70be4437dfc3b49f86f42bef80899574 -Merge: c09f50c 1bfc24b -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 15 22:39:42 2024 -0700 - - Merge pull request #186 from yedpodtrzitko/main - - fix: update recent libs when creating new one - -commit 1bfc24b70f162552994b47e803f4a7f5a0609814 -Author: yedpodtrzitko -Date: Thu May 16 13:28:29 2024 +0800 - - fix: update recent libs when creating new one - -commit c09f50c5686ab9d5dc9799c08221912a7b913ec9 -Author: Jiri -Date: Thu May 16 13:25:53 2024 +0800 - - ci: add mypy check (#161) - - * ci: add mypy check - - * fix remaining mypy issues - - * ignore whole methods - -commit 66aecf2030bea8dff84611d21b597c9b56e51c75 -Merge: 6e56f13 dc18826 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 15 16:38:57 2024 -0700 - - Merge pull request #180 from yedpodtrzitko/yed/fix-sidebar-size - - fix sidebar expanding - -commit dc188264f980c56a982bd0b8de462dc6e786d284 -Author: yedpodtrzitko -Date: Thu May 16 07:25:21 2024 +0800 - - fix sidebar expanding - -commit 6e56f13edac9b7132a8bb60e6069d9302f75255e -Author: Travis Abendshien -Date: Wed May 15 15:30:33 2024 -0700 - - Bump version to v9.2.1 - -commit c9ea25b940d0149df6f5cbadab75e7961bd14cd0 -Merge: 4b1119e e814d09 -Author: Vele George -Date: Wed May 15 10:23:36 2024 +0300 - - Merge branch 'main' into test-support-2 - -commit e814d09c60e7be03b734cbfdc97378e82d3f1a3f -Author: Travis Abendshien -Date: Wed May 15 00:15:44 2024 -0700 - - Add macOS Gatekeeper note to README - -commit 69115ed9bbc69a0f20563722878586433dc41f44 (tag: v9.2.0) -Merge: e655fd0 296aed6 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue May 14 22:46:35 2024 -0700 - - Merge pull request #173 from xarvex/release-binary-2 - - Correct upload binaries used in release workflow - -commit 296aed6575645582e8bbe91ce3888193795c51f5 -Author: Xarvex -Date: Wed May 15 00:45:19 2024 -0500 - - Correct upload binaries used in release workflow - -commit e655fd091dd965832abb34b72bcffa2bc9d17f14 -Author: Travis Abendshien -Date: Tue May 14 22:27:15 2024 -0700 - - Update CHANGELOG.md - -commit 8780063e22b6516ee4a7c0ba679104ff2eaad864 -Merge: c6d2a89 ecea6ef -Author: Travis Abendshien -Date: Tue May 14 22:11:51 2024 -0700 - - Merge branch 'main' of https://github.com/TagStudioDev/TagStudio - -commit c6d2a89263b3c4291978428c3cf193083656a1fd -Author: Travis Abendshien -Date: Tue May 14 22:11:40 2024 -0700 - - Update documentation - - - Update README - - Update CHNAGELOG - - Update `--config-file` argument help message - -commit ecea6effa4a50a968273341ac146bc27d08958e1 -Author: Xarvex -Date: Wed May 15 00:06:39 2024 -0500 - - Release workflow with binary executables (#172) - - * Refactor: remove __init__ meant for Python versions before 3.3 - This does mess with a large amount of imports, as the system was being - misused to re-export submodules. This change is necessary if PyInstaller - is to work at all. - - * Add MacOS icon - - * Create PyInstaller spec file - - * Create Release workflow - Creates executable with PyInstaller, leveraging tag_studio.spec - - * Support both nonportable and portable in tag_studio.spec - - * Rename spec-file to create consistently-named directories - - * Only ignore other spec files - - * Swap exclusion option - - * Use windowed application - - * Ensure environment variables are strings - - * Cleanup visual order on GitHub interface - - * Use app for MacOS - - * Only cycle through MacOS version - - * All executables generated for MacOS are portable - - * Use up-to-date packages - - Should resolve caching issues - - * Correct architecture naming for MacOS - -commit 8e11e285614072548f3d7662201f5cdd9be6969f -Merge: 5d85417 eba7c3e -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue May 14 14:36:56 2024 -0700 - - Merge pull request #159 from Loran425/main - - Change QSettings behavior to work with executables - -commit 5d85417ce41820021f9bfa66969c8e078e00b802 -Merge: f35d9c1 5d21375 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue May 14 12:06:42 2024 -0700 - - Merge pull request #151 from yedpodtrzitko/yed/libs-sidebar - - add list of libraries into sidebar - -commit 4b1119ecba96d238fbf28c10ac6c4746dd013c77 -Merge: ad850cb f35d9c1 -Author: Vele George -Date: Tue May 14 11:38:24 2024 +0300 - - Merge branch 'main' into test-support-2 - -commit 5d21375e65551e0b0e447c79fbdb5e68f80bf0fd -Author: yedpodtrzitko -Date: Tue May 14 15:51:41 2024 +0800 - - dont expand recent libs - -commit f60a93f35be2b5f697e54192086639c7dee504f3 -Author: yedpodtrzitko -Date: Tue May 14 14:58:42 2024 +0800 - - keep remove button small - -commit a71ed7c4265dacebbf819a4cd35130888448c4b6 -Author: yedpodtrzitko -Date: Tue May 14 12:24:47 2024 +0800 - - add button for removing recent lib - -commit 06f528f8b5491f0483d043e4c220392389017c99 -Author: yedpodtrzitko -Date: Tue May 14 10:30:58 2024 +0800 - - CR feedback - -commit 94a0b000075a7323fc6ca4cfa9b64ce4da607916 -Author: yedpodtrzitko -Date: Fri May 10 01:41:38 2024 +0800 - - add list of libraries into sidebar - -commit eba7c3e17874c65522e3877dab5e39a453ca97ae -Merge: 89b1921 f35d9c1 -Author: Andrew Arneson -Date: Mon May 13 20:45:47 2024 -0600 - - Merge remote-tracking branch 'upstream/main' - -commit 89b1921e56e739e519ded5ae183c0841f36861da -Author: Andrew Arneson -Date: Mon May 13 20:45:37 2024 -0600 - - Eliminate guess work on config file - Removes support for directory as a `--config-file` argument - -commit f35d9c13135094bdbec883f3a4ff8ed3884851ff -Merge: 6a2199d 93526fa -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon May 13 14:31:46 2024 -0700 - - Merge pull request #165 from yedpodtrzitko/yed/ci-run - - ci: try to run the app - -commit 6a2199dd2efb90f4fbd0cb1d9a772eb3f73edbf0 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Mon May 13 23:18:07 2024 +0200 - - Fix pillow decompression bomb error mentioned in #164 (#166) - - * Fixes DecompressionBombError - - * Fixes DecompressionBombError in PreviewPanel - - * Ruff reformat - - * Handle all DecompressionBombErrors - - * Handle all DecompressionBombErrors - - * RUFF - - * fix typo - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - * fix typo - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - * Ruff reformat - - --------- - - Co-authored-by: Thesacraft - -commit 0416fde7f5c1ca2aee47887aec92507dc178a44a -Author: Xarvex -Date: Mon May 13 14:50:04 2024 -0500 - - Refactor: remove __init__.py files meant for Python versions before 3.3 (#160) - - * Refactor: remove __init__ meant for Python versions before 3.3 - This does mess with a large amount of imports, as the system was being - misused to re-export submodules. This change is necessary if PyInstaller - is to work at all. - - * Thanks Ruff - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - - --------- - - Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> - -commit 02d6b22b2544fd651f9816c20dda590ae77571f5 -Author: Travis Abendshien -Date: Mon May 13 12:13:06 2024 -0700 - - Splash screen now stays on top of other windows - -commit 851d1fb3b242af64caf3a4caf5dc592e6e90414d -Author: Travis Abendshien -Date: Mon May 13 01:10:40 2024 -0700 - - Changes to allow for native menu bars - -commit 4616da4e5f5a486fc50f5f40f12d246159460e62 -Author: Travis Abendshien -Date: Sun May 12 23:52:44 2024 -0700 - - Added the splash screen to the QResources system - -commit d43b00bd0018aae28da373ae860f69227e35a72a -Author: Travis Abendshien -Date: Sun May 12 23:44:41 2024 -0700 - - Updated macOS Icon - - - Also cleaned up surrounding commented-out code - - This should hopefully fix the dock icon trying to swap during runtime - -commit e7318c747308ffe6f9030c58943fe2d6f4dbc4e6 -Author: Andrew Arneson -Date: Sun May 12 23:09:28 2024 -0600 - - Ruff Formatting - -commit 74e90df6804c3dc495e637fabdeb34fca5590482 -Author: Andrew Arneson -Date: Sun May 12 23:07:01 2024 -0600 - - Revert QSettings location to `IniFormat` `UserScope` defaults - Adds `-c/--config-file ` argument to tag_studio.py - -commit 6566682504e42da5bb0c7f023c701217f63e6ba3 -Merge: 88b0f70 b00dbf9 -Author: Andrew Arneson -Date: Sun May 12 22:44:50 2024 -0600 - - Merge remote-tracking branch 'refs/remotes/upstream/main' - -commit b00dbf95487616a5e5123d428e86b3fd6e6e789a -Author: Travis Abendshien -Date: Sun May 12 21:15:46 2024 -0700 - - Squashed commit of the following: - - commit 094b6d50d975ec8feaa24af6a8a7b121fe87bce3 - Author: Travis Abendshien - Date: Sun May 12 19:52:25 2024 -0700 - - Formatted using Ruff - - Co-Authored-By: yed podtrzitko - - commit 088ef5263e38c948dda9a875fcc56af97762a73e - Author: Travis Abendshien - Date: Sun May 12 19:51:03 2024 -0700 - - Reduced QResource Usage + Path Refactor - - - Removed unused or redundant QResources - - Removed unreliable uses of the Qt resource system in favor of direct paths - - Refactored paths with "parent.parent.parent" to use ".parents[index]" - - Co-Authored-By: yed podtrzitko - -commit f8d44c5fae8fe9bf40f1cb0719e39375d771b39f -Author: Travis Abendshien -Date: Sun May 12 21:05:29 2024 -0700 - - Updated Application Icons - - - Updated application icons - - Added .icns file for macOS - - (Potentially) stopped macOS dock icon from being updated with a different icon during runtime - -commit 88b0f70271b3ddb5908650c075768b36c04e26e8 -Merge: 191d8f9 f69f173 -Author: Andrew Arneson -Date: Sun May 12 21:29:13 2024 -0600 - - Merge remote-tracking branch 'refs/remotes/upstream/main' - -commit 93526fa73f7260157a1a07b56bdc9ae859ae2786 -Author: yedpodtrzitko -Date: Sun May 12 21:58:05 2024 +0800 - - run tagstudio in CI - -commit f69f173368ddefc57446dcbad14ef9e4b6a21fbc -Author: Travis Abendshien -Date: Sun May 12 15:23:03 2024 -0700 - - Disable Native Menubars - -commit 92752aef4a28ea6078a77bd6ce46e3b92dcc96fe -Author: Travis Abendshien -Date: Sun May 12 14:51:49 2024 -0700 - - Reverted macOS menubar change - - Reverted exception to allow the native macOS menubar in 94f929d12206503ac36f13cc120547a397849923 because it doesn't work anyway. - -commit ad850cba94b82b157042cd99b1f3c974f8fb452c -Merge: b6848bb 3aa71d6 -Author: Vele George -Date: Sat May 11 21:30:15 2024 +0300 - - Merge branch 'main' into test-support-2 - -commit 191d8f995f212377884c1cd43891c381c45e0515 -Merge: eede5b3 3aa71d6 -Author: Andrew Arneson -Date: Fri May 10 18:00:43 2024 -0600 - - Merge remote-tracking branch 'refs/remotes/upstream/main' - -commit eede5b3600da9fcceb333a86d04246d88de3a9f0 -Author: Andrew Arneson -Date: Fri May 10 17:52:38 2024 -0600 - - Move the tagstudio.ini file to alongside the executable - -commit 3aa71d6f8abb67f309f6d66ef4e6c570332d82be -Author: Travis Abendshien -Date: Fri May 10 15:45:19 2024 -0700 - - Formatted with Ruff - -commit 94f929d12206503ac36f13cc120547a397849923 -Author: Travis Abendshien -Date: Fri May 10 15:43:26 2024 -0700 - - Allow the use of the native macOS menu bar - -commit 03a46ae57b33b1a467edf7e499d44cc6893f5e4a -Author: Travis Abendshien -Date: Fri May 10 15:29:28 2024 -0700 - - Style Changes - - - Removed legacy style experiments, including strange translucent widgets and indigo default tags - - Renamed "Folders To Tags" to "Create Tags From Folders" - - Edited formatting of "Create Tags From Folders" modal - - Renamed "Tag Database" to "Manage Tags"/"Library Tags" - - Tweaked names of other menubar actions - - Removed some commented-out code - -commit b8d72a65c8198d0840af3afd6ad33c1d67e378b0 -Author: yed podtrzitko -Date: Fri May 10 08:39:46 2024 +0800 - - misc: remove duplicate code for tags updating (#135) - -commit 8321f43d6e1cdb98a0f33bd854032d1a708a2bd6 -Author: William de Castro -Date: Thu May 9 05:22:51 2024 -0300 - - Add Build Script for mac os systems (#76) - - * chore: add TagStudio.spec to gitignore - - Prevent TagStudio.spec to be added to repo in the future - - * chore: add Build Script for macos - - Create script using pyinstaller to generate a macos app for tagstudio - - * chore: revert duplicated files - - * chore: rename build file naming - -commit f9ea20e29caecdcc480de81901f965af22092750 -Author: Sylvia K <40416079+SylviaSK@users.noreply.github.com> -Date: Wed May 8 14:07:58 2024 -0500 - - Refactor: Deduplication in pagination.py's "Set Elipses Sizes" section (#141) - -commit b6ccb88a95aedd4b0ae7d056279eb51550babe7e -Author: Travis Abendshien -Date: Wed May 8 11:39:03 2024 -0700 - - Fixed Some Images Breaking Thumbnailer - - Fixed images that were considered to be "truncated" from breaking the thumbnail renderer when trying to transpose via an EXIF flag. This was happening with certain panorama photos. - -commit de434872d6554feaa0d390973c9c26c06230f733 -Merge: 7acfecf e803f6a -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 8 10:36:58 2024 -0700 - - Merge pull request #145 from yedpodtrzitko/yed/hold-the-jobs - - dont run job threads needlessly - -commit 7acfecf7b9cb403846978ae578199c80315c0e1d -Merge: 7ef2aa6 7f776f4 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 8 10:15:46 2024 -0700 - - Merge pull request #147 from arthniwa/add-help-menu-action - - Add action to help menu - -commit 7f776f4c8615606d8af71999be6ee00011be3f10 -Author: arthniwa <123327761+arthniwa@users.noreply.github.com> -Date: Wed May 8 10:57:48 2024 -0500 - - Fix format required by Ruff - -commit e803f6adcbdb69adaf3f81992d2b822c6878d354 -Author: yedpodtrzitko -Date: Wed May 8 22:47:47 2024 +0800 - - wait for threads to finish - -commit b6848bb81f6483b9c3707f49ce5b28c80befdbb2 -Author: Hidorikun -Date: Wed May 8 17:32:15 2024 +0300 - - Ruff format - -commit 7ef2aa6a8026b06f794a4b60c380f3c034f22160 -Merge: 57a15f6 44106e2 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue May 7 23:15:32 2024 -0700 - - Merge pull request #78 from Thesacraft/main - - Build Script for windows - -commit 48ad4aaad23d74bdca055885e44e327015358c33 -Author: arthniwa <123327761+arthniwa@users.noreply.github.com> -Date: Wed May 8 00:42:16 2024 -0500 - - Add action to help menu - - Add "Go to GitHub Repository" to the help menu. - -commit 0e621011fc7b3744d4cce5117e71ec55d7af8f15 -Author: yedpodtrzitko -Date: Wed May 8 11:10:43 2024 +0800 - - dont run job threads needlessly - -commit fb7c73d96b09a5bf1240f547a3c4863284bd0f85 -Author: Hidorikun -Date: Mon May 6 12:06:30 2024 +0300 - - Add pytest support - -commit 57a15f651e4a80e7f73a8621e4175fed448bf175 -Merge: ec55e92 3aa4fa2 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat May 4 23:36:40 2024 -0700 - - Merge pull request #140 from yedpodtrzitko/yed/fix-edit-enter - - fix input enterPressed event - -commit 3aa4fa214f88f6bcb7510ec1e0f911fe2b113204 -Author: yedpodtrzitko -Date: Sun May 5 14:22:37 2024 +0800 - - fix input enterPressed event - -commit ec55e925990193f0503fc8cd0519d4830a8e8981 -Merge: c27f99e 78ea0b3 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat May 4 18:28:23 2024 -0700 - - Merge pull request #136 from SylviaSK/main - - Fix for #119, Prompt for new location user if library cannot be saved - -commit c27f99e3a49f6f22a186d697a4907c720e5e29ce -Merge: 089c8dd aedc5af -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat May 4 15:53:36 2024 -0700 - - Merge pull request #117 from abby-freakazoid/improve-startup-script - -commit 78ea0b3641802a549fed1528f6fb269d91fe2d20 -Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> -Date: Sat May 4 16:45:38 2024 -0500 - - close_library() fix - -commit 523f233f4ab38dcfc51f5756c05a7f4f6b731ae1 -Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> -Date: Sat May 4 15:16:31 2024 -0500 - - Ruff formatting - -commit ea05907227eabbde1c68e53c343188063063ebf9 -Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> -Date: Sat May 4 12:20:43 2024 -0500 - - Fix for #119, Prompt for new location user if library cannot be saved - -commit 089c8dd50cbf22e75721ecd2c0e0acfd3deca7f3 -Author: Travis Abendshien -Date: Fri May 3 19:40:36 2024 -0700 - - Reformatted using Ruff - -commit 77d75590148f6ec9b482bb86f6a7ed81c9848758 -Merge: 164aba1 61f9a49 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 3 19:15:37 2024 -0700 - - Merge pull request #111 from yedpodtrzitko/yed/sidebar-active-cursor - - feat: add hand cursor for active sidebar elements - -commit 164aba1bb01dc69145e32a35f5f815e680b185f9 -Merge: fd622ea b834166 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 3 19:08:34 2024 -0700 - - Merge pull request #113 from TechCrafterGaming/PR-003 - - minor bug fixes to Tag Search Box - -commit fd622ea378c60adc6e74541dc30386c10f3902f0 -Merge: b2d87b0 9951c00 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 3 18:22:42 2024 -0700 - - Merge pull request #114 from Loran425/refactor/tag_database - - Remove functionally duplicated code in update_tags - -commit b2d87b05d8b2c3571922047facf86c6cba3dbd70 -Merge: ac3d7c9 cd719c6 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 3 18:13:07 2024 -0700 - - Merge pull request #123 from SylviaSK/main - - Fix opening to a file with spaces in path on windows / #120 - -commit ac3d7c95cbdb8014a8b6609d547bd77198f73dcf -Merge: 64514db 58c773a -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 3 17:59:32 2024 -0700 - - Merge pull request #126 from JinguBangWest/main - - Refactor strip_web_protocol() - -commit 64514db45708db600ca1574fcbab113e80f88807 -Merge: ea8d954 afd6e11 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri May 3 17:52:10 2024 -0700 - - Merge pull request #107 from yedpodtrzitko/yed/ruff-formatting - - add code formatting & Github Action via ruff - -commit 58c773a0dee48a2541e762ec44cb954c9a2bd517 -Author: JinguBangWest -Date: Fri May 3 14:37:32 2024 -0400 - - change to string.removeprefix(prefix) - -commit bb1161baa9c7f22665dab59e76e1629ef2fd61a4 -Author: JinguBangWest -Date: Thu May 2 22:05:57 2024 -0400 - - Refactor strip_web_protocol - This allows for more prefixes to be added in the future if needed without repeating code multiple times. - -commit cd719c6d01cd83489af0cfeab9310ff3f596806b -Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> -Date: Thu May 2 11:54:10 2024 -0500 - - minor comment fix - -commit 9a405dd3364827858dbd05fdb3f7de6d79622c6d -Author: Sylvia Krech <40416079+Sylvia-Krech@users.noreply.github.com> -Date: Thu May 2 11:47:32 2024 -0500 - - Fix for #120, Windows filepaths with spaces - -commit afd6e113d28dbc3c06a6c3880179e9b7e0adb778 -Author: yedpodtrzitko -Date: Thu May 2 01:01:36 2024 +0800 - - add ruff pre-commit hook and README info - -commit ea8d954548579d107b3efc7ab2fdedf61bc2afcd -Merge: a1fcd23 99a0bfe -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 1 23:00:06 2024 -0700 - - Merge pull request #122 from abby-freakazoid/bugfix/validate-library-path-before-open/#118 - - Fix library reopen doesn't check if path is valid #118 - -commit a1fcd23d13f1574015fc18d9df679ca11698b558 -Merge: f71b947 eb5124b -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 1 22:34:47 2024 -0700 - - Merge pull request #121 from gabrieljreed/bugfix/right-click-file-path/#116 - - Bugfix/right click file path/#116 - -commit 99a0bfe9197e19429884ac48109a868c76810c34 -Author: Abby <141393719+abby-freakazoid@users.noreply.github.com> -Date: Thu May 2 00:25:21 2024 -0500 - - Fix library reopen doesn't check if path is valid #118 - -commit eb5124bd0a7bc37a1031ee3ee52fbedb48fc7cbc -Author: gabrieljreed -Date: Wed May 1 22:01:08 2024 -0700 - - Update docstrings - -commit 0e1e9e924b45386a6b2442f3d868e956e5391206 -Merge: 85b4be8 f71b947 -Author: gabrieljreed -Date: Wed May 1 21:56:29 2024 -0700 - - Merge remote-tracking branch 'upstream/main' into bugfix/right-click-file-path/#116 - -commit 85b4be85250681045684222eeac072e8a05b511b -Author: gabrieljreed -Date: Wed May 1 21:45:43 2024 -0700 - - Add docstrings - -commit 08c0704926b119e41498368c5f74cfa69666f765 -Author: gabrieljreed -Date: Wed May 1 21:42:58 2024 -0700 - - Fix open_file for platforms other than Windows - -commit 81f550a5436f6fa20b7a8ef14ca789e4c56668da -Author: gabrieljreed -Date: Wed May 1 21:41:11 2024 -0700 - - Fix open_explorer on Mac, fix right click on FileOpenerLabel - -commit aedc5afefa93a91496f7fee658f3438bec0170a4 -Author: Abby <141393719+abby-freakazoid@users.noreply.github.com> -Date: Wed May 1 22:28:10 2024 -0500 - - Improved TagStudio.sh - - "set -e" to abort on error - "cd …" to prevent creating .venv if script is launched outside git dir - "[ … ]" to skip creating venv when it already exists - -commit 9951c00a45b74da60478463e20e81af8b26c4495 -Author: Andrew.Arneson -Date: Wed May 1 12:54:21 2024 -0600 - - Remove functionally duplicated code in update_tags - -commit b834166d61bb555dc4a9e292a4b20cae7908193b -Author: TechCrafterGaming -Date: Wed May 1 15:27:12 2024 +0200 - - minor bug fixes to Tag Search Box - -commit 61f9a49782fa1d9f1eaa920817466dbf1d31c63e -Author: yedpodtrzitko -Date: Wed May 1 18:46:55 2024 +0800 - - feat: add hand cursor for active sidebar elements - -commit f71b947673551a57e5dce7b937384c5e82722454 -Merge: 67c18e9 3d5ed3a -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed May 1 03:00:46 2024 -0700 - - Merge pull request #110 from yedpodtrzitko/yed/fix-thumbs-orientation - - fix image thumbnails rotation - -commit 3d5ed3a9489d182a1b06f225e0566ac8f9d56f76 -Author: Travis Abendshien -Date: Wed May 1 02:58:43 2024 -0700 - - Added EXIF transpose to small thumbnails - -commit 8604a7f08f3a7f23c6b1c51bc5e5276ba8e8aa61 -Author: yedpodtrzitko -Date: Wed May 1 17:15:33 2024 +0800 - - fix image thumbnails rotation - -commit 67c18e9a251f7e0be2f23ae80b1d4dc022c7843f -Merge: 1a7316d 81e0e7b -Author: Xarvex -Date: Wed May 1 03:51:23 2024 -0500 - - Merge pull request #109 from yedpodtrzitko/yed/macos-file-open - - fix file opening on posix - -commit 81e0e7b072e4c132e3065602a0e02a59ce7ae2ab -Author: Xarvex -Date: Wed May 1 03:50:27 2024 -0500 - - Accidental double sys import during merge conflict - -commit ba5a995b5d4832d6ce89dc2a64b0ce5b2492885a -Merge: c58590a f40be00 -Author: Xarvex -Date: Wed May 1 03:43:53 2024 -0500 - - Merge branch 'yed/macos-file-open' of github.com:yedpodtrzitko/TagStudio into yed/macos-file-open - -commit c58590a22153f6ebab8fa21ba5eca3568f6ff77e -Author: Xarvex -Date: Wed May 1 03:26:36 2024 -0500 - - Make use of open_file from #84 - Refactor done in #80 essentially reverted changes - Re-fixes #81, also re-fixes windows opening behind TagStudio - -commit f40be005f89959f53ea5a379ff757ffc7ff2559a -Author: yedpodtrzitko -Date: Wed May 1 15:46:08 2024 +0800 - - fix file opening on posix - -commit f9fc28d5ec5b911ac008abb2d7ef94f9c8294262 -Author: yedpodtrzitko -Date: Wed May 1 15:46:08 2024 +0800 - - fix file opening on posix - -commit 10303284205971cf67341b88296f0a171a25a7f9 -Author: yedpodtrzitko -Date: Wed May 1 15:19:20 2024 +0800 - - add ruff formatting info and CI pipeline - -commit 1a7316d54cc7501427a51c3b46d459937c233050 -Merge: 92e7e05 d478116 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Apr 30 21:55:46 2024 -0700 - - Merge pull request #103 from yedpodtrzitko/yed/show-tags-implicitly - - show all tags in Add Tags panel by default - -commit 92e7e05540f4d9501a9a4a0106cfa27c6775fcaf -Merge: a10478b a669fd6 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Apr 30 21:07:06 2024 -0700 - - Merge pull request #99 from TechCrafterGaming/FIX-001 - - added action to close a library - -commit d478116094165603fb8e8d5fc6ee2bf5f91b70c4 -Author: yedpodtrzitko -Date: Wed May 1 00:04:37 2024 +0800 - - show all tags in tag panel by default - -commit a10478bc8bcd0ec1c54458312d99c4bdbb548981 -Author: Travis Abendshien -Date: Tue Apr 30 02:41:07 2024 -0700 - - Misc Bug Fixes - - - Catches additional exception in the sorting process of new files added to the library - - Skips this sorting process if there are more than 100,000 files (this is a temporary sorting measure, anyway) - - Possibly improved performance during the functionless (and cursed) "Applying Configured Macros" step of loading new files - -commit a669fd67c361e8382659e56acabb3f9997561c55 -Author: TechCrafterGaming -Date: Tue Apr 30 08:07:10 2024 +0200 - - small adjustments and comments - -commit 7cdb26e8220ff8c3e169f3fe95c6529b7d8f608b -Author: TechCrafterGaming -Date: Tue Apr 30 08:04:13 2024 +0200 - - added if statement - -commit 16a9d32ef30eff84f05ca562ec12568a6ec4198c -Author: TechCrafterGaming -Date: Tue Apr 30 08:02:46 2024 +0200 - - added `last_library` value to be set properly - -commit 9b90bfad840dae309f3321e9b8ae81da5e28e00a -Merge: 6f900ff b1c0ec5 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Apr 29 22:43:15 2024 -0700 - - Merge pull request #98 from Creepler13/Folders-to-tags-cleanup - - Folders to tags refractor + Bug fix + Enhancement - -commit 6f900ff3711be69b720f9ab75e6703e43d7e3a20 -Merge: 9ad81c4 d02f068 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Apr 29 16:54:07 2024 -0700 - - Merge pull request #101 from TechCrafterGaming/FIX-002 - -commit d02f06899184dc0f2599f927a9720c0f3f78191e -Author: TechCrafterGaming -Date: Tue Apr 30 00:09:43 2024 +0200 - - small changes to `README` - -commit 878a5dfc8a8f3a8da6e7ddccdc004200038bc4bb -Author: TechCrafterGaming -Date: Tue Apr 30 00:09:09 2024 +0200 - - small changes to `ts_qt.py` (doc strings) - -commit 030c817323446c46325a04530dd40e8aa2c6dc20 -Author: TechCrafterGaming -Date: Mon Apr 29 23:57:35 2024 +0200 - - added action to close a library - -commit 9ad81c4582c2a0d885d1b4af9c588067f33a52ca -Merge: 0c9dd7f 7139eea -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Apr 29 14:42:22 2024 -0700 - - Merge pull request #94 from Thesacraft/Shutdown-threads-safely - - Shuts the threads down before quitting the application Fixes #86 - -commit b1c0ec58170c97c88b1082ef974df7dc7d5bc226 -Author: Creepler13 -Date: Mon Apr 29 23:01:15 2024 +0200 - - Open/Close all buttons - -commit ea904da58bbacc7fd4c96dcafc68c51047345a29 -Author: Creepler13 -Date: Mon Apr 29 21:28:32 2024 +0200 - - Folders to tags Cleanup + bugfix - -commit 0c9dd7f43ba8bdbcb449d51b27b09b874ce584f5 -Merge: 93177dd 885b2b0 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Apr 29 12:01:04 2024 -0700 - - Merge pull request #95 from Loran425/patch/library-loading - - Patch Bug that prevents loading ts_library.json fields ids as integers - -commit 885b2b0358805460dcabb5543437d20a2c6447ab -Author: Andrew.Arneson -Date: Mon Apr 29 12:55:30 2024 -0600 - - Patch Bug that prevents loading ts_library.json fields ids as integers - -commit 7139eea4c4ebf54e660b6edf0e9a4a690040289d -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Mon Apr 29 19:37:36 2024 +0200 - - Ends threads before quitting application - - This fixes this warning: - QThread: Destroyed while thread is still running - -commit 41e419c1e7cbf6c86c1b0fe6963312a3417927b3 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Mon Apr 29 18:46:35 2024 +0200 - - Ends threads before quitting application - - This fixes this warning: - QThread: Destroyed while thread is still running - -commit 93177dd696aaeacb1041013dd9a4b0c1d77066e3 -Merge: c9c399f d8a11a7 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Apr 29 01:05:36 2024 -0700 - - Merge pull request #89 from yedpodtrzitko/main - - fix: strip leading slash in library items - -commit d8a11a796d4bee70fdb758f831cad69ee39799e4 -Author: yedpodtrzitko -Date: Mon Apr 29 12:53:41 2024 +0800 - - fix: strip leading slash in library items - -commit c9c399faa9c492d91d2388662b3aea3b4d989fb8 -Merge: fb300d0 eb2a175 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Apr 28 21:22:20 2024 -0700 - - Merge pull request #80 from Loran425/qt-refactor - - Qt refactor - -commit 44106e2c59fa697d36435173560d48859a76f8e6 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Mon Apr 29 00:13:48 2024 +0200 - - Updates Build_win.bat to not delete source and be able to build portable version - -commit 260583cfeb07a08a605baa5d8fa1c5dcd4559dd3 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sun Apr 28 21:52:16 2024 +0200 - - Update Build_win.bat for faster start of executable - - I changed it to output an executable and a _internals dir because this makes it, atleast from my experience, much faster (12s -> 1-2s). This is probably because the decompression that has to happen before startup if its in one file - -commit eb2a175b75bb2aa3bd12cbdf7073864f6114aad1 -Author: Andrew Arneson -Date: Sun Apr 28 13:37:28 2024 -0600 - - Changes from #84 split into src.qt.helpers.open_file from ts_qt.py - -commit 89b159cfa1a090bafef3704971847155f3f7a0ac -Merge: 22e0ef8 fb300d0 -Author: Andrew Arneson -Date: Sun Apr 28 13:36:25 2024 -0600 - - Merge remote-tracking branch 'upstream/main' into qt-refactor - - # Conflicts: - # tagstudio/src/qt/ts_qt.py - -commit fb300d0d079a1110c33400d9d235a6f1faba0b28 -Merge: 6097570 3446e06 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sun Apr 28 12:26:33 2024 -0700 - - Merge pull request #84 from xarvex/main - - Allow opening and selecting files in file managers for all platforms - -commit 3446e0601a2408259d6ad5fcb659dc510addc549 -Author: Xarvex -Date: Sun Apr 28 14:07:23 2024 -0500 - - Incorrect usage of list append - - Co-authored-by: William de Castro - -commit 22e0ef8f4b0fa0260598ae05bab8cccd98e94fc7 -Author: Andrew Arneson -Date: Sun Apr 28 12:57:21 2024 -0600 - - Cleanup Imports - -commit 13510023785583759f7ee5616a2416b286a6a98d -Author: Andrew Arneson -Date: Sun Apr 28 12:55:37 2024 -0600 - - Breakout ItemThumb and PreviewPanel from ts_qt.py - -commit 6e8baced7d2ce4e3967795070247dce6b3f927d3 -Author: Andrew Arneson -Date: Sun Apr 28 12:18:31 2024 -0600 - - Revert "Cannot split out ItemThumb or PreviewPanel due to close ties with driver" - - This reverts commit 6b9b813e26a19f09e80253fc794c843fb24292b5. - -commit 310fc0d958a3caf0b2978aab025ffd34d82e687b -Author: Andrew Arneson -Date: Sun Apr 28 12:17:16 2024 -0600 - - Re-enable typechecking and autocompletion for modals that rely on QtDriver in ts_qt.py - -commit 737be6199fec7cfd41304af2e877308d5143515d -Author: Xarvex -Date: Sun Apr 28 12:34:20 2024 -0500 - - DETACHED_PROCESS is no longer necessary - Causes program window to open below TagStudio - -commit ca9735ca86393afa767b71da48f80a579d061cff -Author: Andrew Arneson -Date: Sun Apr 28 11:09:06 2024 -0600 - - Split out remaining modals from ts_qt.py - -commit 4a9c4de56ae3aebc343a229931e39cc4ac33d7be -Author: Xarvex -Date: Sun Apr 28 11:31:18 2024 -0500 - - Further isolate program window from TagStudio - -commit f7c4e1ccc0ba19d902c98b9c135c80957a32a824 -Author: Andrew Arneson -Date: Sun Apr 28 10:28:05 2024 -0600 - - Revert "Cannot split out unlinked file functions due to close ties with driver" - - This reverts commit c848c57cb49a7c83615ee5d233fd8f7c0111a6cd. - -commit f6b131c4124e8e0dafc451dcda287d83b99e7c3b -Author: Andrew Arneson -Date: Sun Apr 28 10:28:05 2024 -0600 - - Revert "Cannot split out duped file functions due to close ties with driver" - - This reverts commit abd36e55b342abcf92f43c41734b5d57b640c92b. - -commit a695e222f4e45f7436487647a485c5d18e33db8c -Author: Andrew Arneson -Date: Sun Apr 28 10:28:04 2024 -0600 - - Revert "Cannot split out folder_to_tag file functions due to close ties with driver" - - This reverts commit 237bcd90b00ddd5e0131bbeb6cad9a3ee542c620. - -commit 0d6746abe02e82bb5653cdb7db92b1dfc6c3743f -Author: Andrew Arneson -Date: Sun Apr 28 10:28:04 2024 -0600 - - Revert "Cannot split out mirror entities file functions due to close ties with driver" - - This reverts commit a62dbc3f2d1b0a1fc4f2a60af3fd74e70af17595. - -commit 2d558efde7fcbd46c7b480329f3722ac12a629cc -Author: Xarvex -Date: Sun Apr 28 04:09:07 2024 -0500 - - Allow opening and selecting files in file managers for all platforms - Fixes: #81 - Refactored file opener helper to use already present open_file - Refactored open_file to allow option for file manager - -commit 82a53481f709cb4397163f5bc14dfbad574e5ff4 -Author: Andrew Arneson -Date: Sat Apr 27 21:40:53 2024 -0600 - - Missing Newlines - -commit d26b308ae297c310f5bb1844abc5939fc2ed79c5 -Author: Andrew Arneson -Date: Sat Apr 27 21:25:01 2024 -0600 - - split TextWidget from ts_qt.py - -commit 5431c1996a0202f933bc4c5e0c7dd0a14d7b764f -Author: Andrew Arneson -Date: Sat Apr 27 21:21:02 2024 -0600 - - Copied (with git history): - - ts_qt.py - - — into: — - - ./widgets/text_edit.py - -commit 731b6d1568c249396a4917fc10b1f1e91248ee7a -Merge: 68b075a 99cc8dc -Author: Andrew Arneson -Date: Sat Apr 27 21:21:02 2024 -0600 - - * (merge) - - Copied (with git history): - - ts_qt.py - - — into: — - - ./widgets/text_edit.py - -commit 68b075a6c8ad3d55ca7fe7b0e0302f3e5ffe5354 -Author: Andrew Arneson -Date: Sat Apr 27 21:21:02 2024 -0600 - - * (keep ts_qt.py) - - Copied (with git history): - - ts_qt.py - - — into: — - - ./widgets/text_edit.py - -commit 99cc8dc99162447ca277ad9f56a8b9b2e250002a -Author: Andrew Arneson -Date: Sat Apr 27 21:21:02 2024 -0600 - - * (create ./widgets/text_edit.py) - - Copied (with git history): - - ts_qt.py - - — into: — - - ./widgets/text_edit.py - -commit cdba60c7d3d012cfd0dd4bc1280ee2b6f3e72759 -Author: Andrew Arneson -Date: Sat Apr 27 21:00:38 2024 -0600 - - Cleanup Imports - -commit 049582487861787a7427ba80d3626ca1db8eddfc -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sun Apr 28 04:54:02 2024 +0200 - - Update requirements.txt to use last tested pyinstaller version - - Thanks to @williamtcastro for pointing it out - -commit 6b9b813e26a19f09e80253fc794c843fb24292b5 -Author: Andrew Arneson -Date: Sat Apr 27 20:52:51 2024 -0600 - - Cannot split out ItemThumb or PreviewPanel due to close ties with driver - Might be able to resolve with more time and a separate PR - -commit ad85266f98d4de563862c0fbdd574332af296385 -Author: Andrew Arneson -Date: Sat Apr 27 20:46:16 2024 -0600 - - Error File Creation - -commit a62dbc3f2d1b0a1fc4f2a60af3fd74e70af17595 -Author: Andrew Arneson -Date: Sat Apr 27 20:45:04 2024 -0600 - - Cannot split out mirror entities file functions due to close ties with driver - Might be able to resolve with more time and a separate PR - -commit 237bcd90b00ddd5e0131bbeb6cad9a3ee542c620 -Author: Andrew Arneson -Date: Sat Apr 27 20:44:46 2024 -0600 - - Cannot split out folder_to_tag file functions due to close ties with driver - Might be able to resolve with more time and a separate PR - -commit abd36e55b342abcf92f43c41734b5d57b640c92b -Author: Andrew Arneson -Date: Sat Apr 27 20:43:35 2024 -0600 - - Cannot split out duped file functions due to close ties with driver - Might be able to resolve with more time and a separate PR - -commit 7b0064d14bbb9c1d5aa4ca64538df2a5ea5fe263 -Author: Andrew Arneson -Date: Sat Apr 27 20:42:24 2024 -0600 - - split FileExtensionModal from ts_qt.py - -commit c848c57cb49a7c83615ee5d233fd8f7c0111a6cd -Author: Andrew Arneson -Date: Sat Apr 27 20:36:21 2024 -0600 - - Cannot split out unlinked file functions due to close ties with driver - Might be able to resolve with more time and a separate PR - -commit ebf2c0bb99dfc0e45a531cb358f9f5afc691f771 -Author: Andrew Arneson -Date: Sat Apr 27 20:26:26 2024 -0600 - - split AddFieldModal from ts_qt.py - -commit 53fefb7497cdb5d506442cb2b633af3026e8d919 -Author: Andrew Arneson -Date: Sat Apr 27 20:22:02 2024 -0600 - - split TagBoxWidget from ts_qt.py - -commit a9afb8e2cfed276af7166c40af0e507938ada893 -Author: Andrew Arneson -Date: Sat Apr 27 20:15:14 2024 -0600 - - split TagBoxWidget from ts_qt.py - -commit f0019c70863b5c3355cf51a74b498bef23a53c9e -Author: Andrew Arneson -Date: Sat Apr 27 20:12:40 2024 -0600 - - split BuildTagPanel from ts_qt.py - -commit c8439c976f5082a6f81e37b3cff3a43b2c2cd5c6 -Author: Andrew Arneson -Date: Sat Apr 27 20:10:01 2024 -0600 - - split TagSearchPanel from ts_qt.py - -commit 4a3b0c103fae97a5ccd94644836e1bdf04ba5107 -Author: Andrew Arneson -Date: Sat Apr 27 19:58:35 2024 -0600 - - split TagWidget from ts_qt.py - -commit 6168434f3d4063f462106b9aa8463e0410545302 -Author: Andrew Arneson -Date: Sat Apr 27 19:52:02 2024 -0600 - - split ProgressWidget from ts_qt.py - -commit 9b7b38418336ea824fda38ff058893373fc9b007 -Author: Andrew Arneson -Date: Sat Apr 27 19:43:53 2024 -0600 - - split EditTextLine from ts_qt.py - -commit 5f6752e067c8c91194b373e7e9079fa093156668 -Author: Andrew Arneson -Date: Sat Apr 27 19:40:55 2024 -0600 - - split EditTextBox from ts_qt.py - -commit e71ef7f671a043758923e8f19f7e0017fc06c90b -Author: Andrew Arneson -Date: Sat Apr 27 19:35:52 2024 -0600 - - split PanelWidget and PanelModal from ts_qt.py - -commit a1fe57a3524dde5fe6d169d5df2cc0fff9973483 -Author: Andrew Arneson -Date: Sat Apr 27 19:22:42 2024 -0600 - - split ThumbRenderer from ts_qt.py - -commit 0364d3a95cf494b4b5cf3eff00458bb28145af9e -Author: Andrew Arneson -Date: Sat Apr 27 19:15:44 2024 -0600 - - split ThumbButton from ts_qt.py - -commit 63f8268fd485d39edc6565c9c57bf6ed97e1f864 -Author: Andrew Arneson -Date: Sat Apr 27 19:04:29 2024 -0600 - - split collage renderer from ts_qt.py - -commit e29b2838c66167e51f3b55ee7c5bc6e5a3b8aa46 -Author: Andrew Arneson -Date: Sat Apr 27 18:56:33 2024 -0600 - - split FieldContainer and FieldWidget from ts_qt.py - -commit 7caba3b825beb9b85c65fa4d16239dc64665b713 -Author: Andrew Arneson -Date: Sat Apr 27 18:45:59 2024 -0600 - - add missing empty line at end of file - -commit 74c4c6c85dda5de46af8cf719ee9247536655bf3 -Author: Andrew Arneson -Date: Sat Apr 27 18:40:07 2024 -0600 - - split FileOpenerHelper/Label from ts_qt.py - -commit abc9f3f4e4e26f2fd37963307ea40d1d3786175c -Author: Andrew Arneson -Date: Sat Apr 27 18:33:29 2024 -0600 - - split open_file func from ts_qt.py - -commit f26fd5a63ccad82a92e1b967cf0e977268058929 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:37 2024 -0600 - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit bb6a73e410856a009e385f0cb19fc9dbc49981f1 -Merge: 54b7067 91c9187 fb05d38 4665fb2 b25c1ef f160071 73ba643 effdd28 875bc34 77bbbe9 5f31fe4 2f61ac7 822aa4d d67f8b6 60d1d29 65a2fe6 30998a1 9c44d74 4de7865 8fed335 02542bd 36841da 58b0e94 4b7b915 6091916 273843f da1c3f8 aec0786 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:36 2024 -0600 - - * (merge) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 54b70676f3a6b934ed2b2cded5ad08bf532613d9 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:36 2024 -0600 - - * (keep ./ts_qt.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 91c918796da83389d618cc4a75083dbc018c1608 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/folders_to_tags.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit fb05d386c1bf66df9746d593c3fb69ec69b9e537 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./widgets/thumb_renderer.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 4665fb22ff8ae28624e31d2a86c037777433bfc3 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./widgets/collage_icon.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit b25c1efc9d5153415c4e7248002c309d5d8dc9de -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./widgets/thumb_button.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit f160071b279a7a1996626a9adc05785d19945211 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./widgets/item_thumb.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 73ba643132c06711f6d6ac431575b9dfb0a1312d -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./widgets/preview_panel.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit effdd28b80af506828adedcdfc6127f5c6f8e3e9 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./helpers/file_opener.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 875bc34519e8f7addb9c8ae3c26086cf50ea237c -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/file_extension.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 77bbbe95b3a2fbf5eb28e9b4aca473723d40d9f8 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/add_field.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 5f31fe46235865c5852c7c6da9cfac17d197c3ad -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/relink_unlinked.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 2f61ac706fa8619c65ac815fb72228925449448e -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/delete_unlinked.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 822aa4df39856c1a9fc6f79fdcdeb8e6006aa63b -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/fix_unlinked.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit d67f8b6f0e87eed8661673c164493cc5e1029b99 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/mirror_entities.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 60d1d290a2ee7300acf50575a944f1f777539798 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:35 2024 -0600 - - * (create ./modals/fix_dupes.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 65a2fe676d29911f8bbe2326db6cb67e91264d00 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./widgets/progress.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 30998a144aa1fb310783fb1bc660886ebef5d06c -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./modals/tag_database.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 9c44d74cb6320965d36efff8fbf158dd3e88ce9e -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./modals/build_tag.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 4de7865aba0222f9f3bc5aa33e219b3af990cf82 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./modals/tag_search.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 8fed3350f4d36be0e7854dbdc721db41ec9c1f42 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./modals/edit_text.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 02542bda7e8331a063d026ef094f12926b5bcb00 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./modals/__init__.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 36841da965410713652548a6780c37fb7a03b513 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./widgets/panel.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 58b0e94d65d1599f832384f6bd9fb4d0efdf6ac2 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./widgets/tag.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 4b7b915c6882f88e7894c89dd492191eab450b47 -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./widgets/text_box_edit.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 6091916b86ae7d484782e284a014f33e6166809b -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./widgets/text_line_edit.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 273843f9c1386c34b3c827ac7a5523cc7018795c -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./widgets/tag_box.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit da1c3f8fa83650b91558eb1e51320dbbd500f41b -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./widgets/fields.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit aec0786e618e8c5c5512d4c464b7ecfe2deacc5c -Author: Andrew Arneson -Date: Sat Apr 27 18:20:34 2024 -0600 - - * (create ./helpers/open_file.py) - - Copied (with git history): - - ./ts_qt.py - - — into: — - - ./helpers/open_file.py ./widgets/fields.py ./widgets/tag_box.py ./widgets/text_line_edit.py ./widgets/text_box_edit.py ./widgets/tag.py ./widgets/panel.py ./modals/__init__.py ./modals/edit_text.py ./modals/tag_search.py ./modals/build_tag.py ./modals/tag_database.py ./widgets/progress.py ./modals/fix_dupes.py ./modals/mirror_entities.py ./modals/fix_unlinked.py ./modals/delete_unlinked.py ./modals/relink_unlinked.py ./modals/add_field.py ./modals/file_extension.py ./helpers/file_opener.py ./widgets/preview_panel.py ./widgets/item_thumb.py ./widgets/thumb_button.py ./widgets/collage_icon.py ./widgets/thumb_renderer.py ./modals/folders_to_tags.py - -commit 9959eb1049ee63674ff6422a7bb0c21d61721237 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sun Apr 28 02:00:17 2024 +0200 - - Update .gitignore to revert doubled entrys - -commit 4f00a8ac88b97ce0e4a9e79e04041b7b3ce7b89e -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sun Apr 28 01:56:13 2024 +0200 - - Update .gitignore to ignore build specific files and folders - -commit 329c23e23c53e03bd3316f40c555130269f89de2 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sun Apr 28 01:54:17 2024 +0200 - - Update requirements.txt to include pyinstaller - - Pyinstaller is used to build the windows executable - -commit f53a9249f04a9367778a78a8d9385e44d305161d -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Sun Apr 28 01:51:09 2024 +0200 - - Build script for windows - - Adds a build script for windows - -commit 60975705915cd5e05478cd4827530039dd652b5c -Merge: c955fb1 8541fc5 -Author: Travis Abendshien -Date: Sat Apr 27 16:26:11 2024 -0700 - - Merge branch 'text-thumbnails' - -commit 8541fc59d136a292628cee15f28f177a9df76989 -Author: Travis Abendshien -Date: Sat Apr 27 16:25:49 2024 -0700 - - Increased plaintext types; Exception handling - -commit c955fb1589a901888566e417a4702899e6e5c69d -Author: Travis Abendshien -Date: Sat Apr 27 15:59:56 2024 -0700 - - Code Style Changes - -commit 276cfaf6355fa913b7abfacc93096e434ab4f6e8 -Merge: 2110592 6bba7da -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Apr 27 15:53:58 2024 -0700 - - Merge pull request #40 from chao-master/feature/typed-dict-and-typing - - 🏷️ Add strict typing dicts for ts_library.json - -commit 6bba7dafbc3ae9bf3755ef84d9442ea18e41afb4 -Merge: f0148c7 2110592 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Apr 27 15:34:08 2024 -0700 - - Merge branch 'main' into feature/typed-dict-and-typing - -commit 21105929711a5db66ea9aca0b8c2209871690355 -Merge: 15de97c f0f8e0e -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Apr 27 15:27:58 2024 -0700 - - Merge pull request #72 from yedpodtrzitko/yed/readability - - improve code readability - -commit 15de97cfe71952c81cba9f2d8b5a601295462d3c -Merge: 114c1a4 1f9a13f -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Apr 27 14:58:17 2024 -0700 - - Merge pull request #58 from Creepler13/Folders-to-Tags - - Add folders to tags tool - -commit 114c1a4481940d8b606bd302fca67bcf66b9f537 -Merge: 31f4022 ade1fb1 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Sat Apr 27 13:33:59 2024 -0700 - - Merge pull request #69 from cirillom/image-preview - - Ability to open file or file location using context menu - -commit 1f9a13fc4d15726466254ea730c555bce61921fa -Author: Creepler13 -Date: Sat Apr 27 21:14:37 2024 +0200 - - Removed unused imports - -commit e2aba7ddf76ef73d062f3c06bb2601796147bc9e -Author: Creepler13 -Date: Sat Apr 27 21:13:57 2024 +0200 - - Added Proper Visualls to show what would be added - -commit f0f8e0ea7ea96dd07cc6b9e542c662fd76adaa5a -Author: yedpodtrzitko -Date: Sun Apr 28 01:43:37 2024 +0800 - - simplify bool conditions - -commit d5d9cd3e7ab2104c46dd09907f94b2de124be1a6 -Author: yedpodtrzitko -Date: Sun Apr 28 01:17:41 2024 +0800 - - improve code readability - -commit ade1fb1c112594d3682247dd31a3bd701b230d5e -Merge: 955d4a0 31f4022 -Author: Matheus Cirillo -Date: Sat Apr 27 09:54:16 2024 -0300 - - Merge remote-tracking branch 'tags/main' into image-preview - -commit 955d4a0c9f2b2419061b363aced4a2df646a3362 -Author: Matheus Cirillo -Date: Sat Apr 27 09:44:04 2024 -0300 - - fixed bug where it wouldn't open outside debug mode - -commit 31f402289565b55d3a84d11f0eb6055e9bf42374 -Author: Travis Abendshien -Date: Sat Apr 27 02:00:18 2024 -0700 - - Added File Extension Blacklist - - - All file types (minus JSON, XMP, and AAE) are now shown by default in the library (existing libraries will need to refresh) - - Added the Edit -> "Ignore File Extensions" option, providing the user with a way to blacklist certain file extensions from their library - - The targeted version number has been updated to 9.2.0 (this is not the final 9.2.0 release, commits will still be added before that release is packaged up) - -commit 5b4d35b5c07283a05a1f3f6c604cfbb9a601fbd7 -Author: Travis Abendshien -Date: Fri Apr 26 22:13:10 2024 -0700 - - Added default thumbnail for files - -commit 6831a8939277d211386c43189c26d69d0c7f39d5 -Author: Matheus Cirillo -Date: Fri Apr 26 23:19:24 2024 -0300 - - file opening preview panel context menu - -commit 5bd2aaaf9ec9b570db2a3021bf5024487c07d025 -Author: Matheus Cirillo -Date: Fri Apr 26 22:04:40 2024 -0300 - - context menu for thumbs - -commit c789d09b07575c8cba1fe93b14a46728b3d735a5 -Author: Travis Abendshien -Date: Fri Apr 26 17:33:02 2024 -0700 - - Plaintext Thumbs (Proof of Concept) - - **BASIC** support for rendering thumbnails for certain plaintext types (txt, md, html, etc.) using PIL. - Notable issues include: - - Long draw times (entire files are read) - - No text wrapping - - Hardcoded style - - Blurry text in preview pane images - - No cached thumbnails (I call dibs on the thumbnail caching system) - -commit a9cbab40abbe7f468132f9fae61b481cd25b2e60 -Author: Matheus Cirillo -Date: Fri Apr 26 20:40:43 2024 -0300 - - works as expected (open file in explorer) in windows - -commit bcf4453c8d3bbe60404b63bff14e62b3c04a2016 -Author: Matheus Cirillo -Date: Fri Apr 26 20:17:54 2024 -0300 - - clickable label to the right place - -commit 18dcedd6a0b7f142252301bc1c0afa2f704d2f8b -Author: Matheus Cirillo -Date: Fri Apr 26 20:13:58 2024 -0300 - - code cleanup - -commit 79e0263e972c955a467fd6e527820542208f1756 -Author: Matheus Cirillo -Date: Fri Apr 26 20:09:43 2024 -0300 - - file_label opens file path - -commit 960b2038ef6640dcb259bd7b97a13289c174593a -Merge: 9020aad 88292f4 -Author: Creepler13 -Date: Fri Apr 26 23:52:20 2024 +0200 - - Merge branch 'Folders-to-Tags' of https://github.com/Creepler13/TagStudio into Folders-to-Tags - -commit 88292f42af01118cf180e7af8b8aa1566bb3ff5f -Merge: 3cd6fa1 749d7c8 -Author: Creepler13 -Date: Fri Apr 26 23:37:47 2024 +0200 - - Merge branch 'Folders-to-Tags' of https://github.com/Creepler13/TagStudio into Folders-to-Tags - -commit 3cd6fa136f3856e6e9f38c8690f37016177b1abc -Author: Creepler13 -Date: Fri Apr 26 14:58:21 2024 +0200 - - Finished folders to Tags tool - -commit 0541c9fb016feef55473ecbd182ab3ded6e9fd7c -Author: Creepler13 -Date: Fri Apr 26 00:06:34 2024 +0200 - - first prototype - -commit 039c574cf4efdf37ee4771911d1933957f5770bf -Merge: 992a840 042ed92 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri Apr 26 13:36:57 2024 -0700 - - Merge pull request #60 from Thesacraft/main - - Fixes issue with badges not getting updated if meta tags gets removed - -commit 042ed9209f116eb5214f3206a2dd133ca9cb2389 -Merge: 1e17b6c 992a840 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Fri Apr 26 22:33:14 2024 +0200 - - Merge branch 'CyanVoxel:main' into main - -commit 992a840dfe16249af1cb19e7d499373a7a6e655a -Merge: a0b0178 dde7eec -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri Apr 26 13:32:55 2024 -0700 - - Merge pull request #63 from DrRetro2033/Shortcuts - - Keyboard Shortcuts - -commit 1e17b6c467c10d404ee4f999197f60704e82356f -Merge: 243d786 a0b0178 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Fri Apr 26 22:29:04 2024 +0200 - - Merge branch 'CyanVoxel:main' into main - -commit a0b017815e106375a40a088afe800fbc81f56625 -Merge: 80d6e09 85ae167 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri Apr 26 13:23:32 2024 -0700 - - Merge pull request #61 from DrRetro2033/main - - A simple Tag Database. - -commit 80d6e0983487036e7ffef5dc402a1a27193574ff -Merge: 00651e6 66fec73 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Fri Apr 26 13:10:39 2024 -0700 - - Merge pull request #64 from xarvex/file-open-2 - - Windows: fix files w/ spaces opening cmd rather than associated program - -commit 66fec731368895f41c640e22d56e58fef559e747 -Author: Xarvex -Date: Fri Apr 26 15:05:07 2024 -0500 - - Correct usage of start command - -commit 1f7a5d3cbb00ceb33aa7edcf87dee72c2c19ac1f -Author: Xarvex -Date: Fri Apr 26 14:46:13 2024 -0500 - - Windows: fix files w/ spaces opening cmd rather than associated program - -commit dde7eec946a9e7b1df407375694d7e9a496aa990 -Author: DrRetro -Date: Fri Apr 26 12:01:02 2024 -0400 - - Keyboard Shortcuts Added to basic Functions - -commit 85ae16781796ad8d38907fb10ddebb05bebaf912 -Author: DrRetro -Date: Fri Apr 26 11:01:09 2024 -0400 - - Fixed Issue with Tags in Database not refreshing after Tag was Edited. - -commit 5feb3a6d203a1d5e5b572fe88df3e937541e0e6b -Author: DrRetro -Date: Fri Apr 26 10:51:49 2024 -0400 - - Fixed Issue with Previous Commit - -commit f23ff1669eece3d92f04157e9906ccb96bddc728 -Author: DrRetro -Date: Fri Apr 26 10:50:19 2024 -0400 - - Fixed Issue when Searching Tags, Editing Option was not Connected to Searched TagWidets - -commit 6b1035b0f61b97d71e97d7a85aaf4503b13b1587 -Author: DrRetro -Date: Fri Apr 26 10:07:59 2024 -0400 - - A simple TagDatabasePanel has been created based off TagSearchPanel. - - To access, go to Edit > Tag Database - -commit 243d7862980d00c69883f2a32e5e99df6a1d0b3b -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Fri Apr 26 15:41:37 2024 +0200 - - Update ts_qt.py to update badges if meta tag field is removed - -commit 898ce5fdc73e4b186228fc69beb7a2ca6b80438e -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Fri Apr 26 15:34:06 2024 +0200 - - Update ts_qt.py to update badges if meta tag field is removed - -commit 749d7c8fc094de80cdade7046ad305a8a4e86158 -Author: Creepler13 -Date: Fri Apr 26 14:58:21 2024 +0200 - - Finished folders to Tags tool - -commit 1774a00d3441ec7794a058913039b957f9013339 -Author: Creepler13 -Date: Fri Apr 26 00:06:34 2024 +0200 - - first prototype - -commit 9020aaddf4667a85d0061c87e20bcbe6929496d6 -Author: Creepler13 -Date: Fri Apr 26 14:58:21 2024 +0200 - - Finished folders to Tags tool - -commit 00651e6242f97c1945b06674f622b73699c836a6 -Author: Travis Abendshien -Date: Fri Apr 26 01:45:03 2024 -0700 - - Fixed Incorrect Fields Being Updated in Multi-Selection - - Fixes #55 - - Co-Authored-By: Andrew Arneson - Co-Authored-By: Xarvex <60973030+xarvex@users.noreply.github.com> - -commit b7638046a34e48cfb0d46e6bc57e18f724b61291 -Author: Travis Abendshien -Date: Thu Apr 25 22:22:28 2024 -0700 - - Addded TagStudio.ini to gitignore; Updated Qt resource comment - -commit c446911b59d55e06f314c3ee21e16706164a57b9 -Merge: ff488da 201a63e -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Apr 25 22:18:00 2024 -0700 - - Merge pull request #34 from DrRetro2033/main - - Mutli-Select Tagging - -commit 201a63e27363b16516aeb74394c7a939ba7a176c -Author: DrRetro -Date: Thu Apr 25 20:51:12 2024 -0400 - - Refresh_badges added to QtDriver, and favorite and archived badges checks selection. - -commit d8faa27dbf5e888a076d8787097d67dada069493 -Author: Creepler13 -Date: Fri Apr 26 00:06:34 2024 +0200 - - first prototype - -commit ff488da6c8cdf4b5f566f8a1122cfab69d577425 -Merge: 00dea27 2514809 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Apr 25 14:22:12 2024 -0700 - - Merge pull request #51 from Loran425/main - - QOL Open last opened library - -commit 2514809e173087bb169eaecf87323b4b17fb879c -Author: Andrew Arneson -Date: Thu Apr 25 14:20:46 2024 -0600 - - remove doubled up line - -commit 82bb63191a6033b6e4f855b68fce465659a8a3e8 -Author: Andrew Arneson -Date: Thu Apr 25 14:12:40 2024 -0600 - - Tweak setting location to ensure compatibility between IDEs - Explicitly call sync to save `.ini` file - -commit 9a076a775f51a7581f616154437fad28f552560e -Merge: 5c746a9 00dea27 -Author: Andrew Arneson -Date: Thu Apr 25 12:23:55 2024 -0600 - - Merge remote-tracking branch 'upstream/main' - -commit 5c746a9950e2c65f107359ff9eb9316a08fd0f3a -Author: Andrew Arneson -Date: Thu Apr 25 12:23:13 2024 -0600 - - add Qsettings and restore last library on open - Settings are currently stored as an INI file within the project directory rather than messing with registry or system configurations. - -commit 00dea27279fcfcc742dfce183e4fa17ff33164df -Merge: 13c2ca1 a0dc34a -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Thu Apr 25 10:39:42 2024 -0700 - - Merge pull request #46 from eltociear/patch-1 - - docs: update documentation.md - -commit a0dc34a5ad508cfe8efb7adb01ca500c810f71c3 -Author: Ikko Eltociear Ashimine -Date: Fri Apr 26 00:46:32 2024 +0900 - - docs: update documentation.md - - minor fix - -commit 2a46251831dc97df31a8b209138bea7270f715fb -Author: DrRetro -Date: Thu Apr 25 09:57:37 2024 -0400 - - Fixed slow down from refreshing all thumbnails for every added and removed tag. - -commit 92834800e2f9d64c2d0878a09fce127a6358aa7a -Merge: 794401a 13c2ca1 -Author: DrRetro -Date: Thu Apr 25 09:46:22 2024 -0400 - - Merge remote-tracking branch 'upstream/main' - -commit 794401ae5898446b9b02af9c025ca7b155e0838e -Author: DrRetro -Date: Thu Apr 25 09:40:12 2024 -0400 - - Archive Button and Favorite Button Now work - -commit b2fbc4b4a2e31fa9eecdedc555bc4cbd11419fde -Author: DrRetro -Date: Thu Apr 25 09:34:14 2024 -0400 - - Large Changes to how code gets Field ID. - -commit 13c2ca1ea55cebb0b16977bf8e2b362710fe424f -Author: Travis Abendshien -Date: Thu Apr 25 01:41:32 2024 -0700 - - Allows shortcut files to show in library - - Shortcut files (.lnk, .url, .desktop) can now be added to the library (no thumbnail previews currently). - -commit e823bb5c93d2bc946032e66e55a541fa50ebe5a4 -Merge: b9b2361 7652289 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Apr 24 22:37:27 2024 -0700 - - Merge pull request #41 from Loran425/feature/modify-imports - - Feature/modify imports - -commit 7652289fe5767232c6e626d84e2c1325ff9e6113 -Merge: de09da1 b9b2361 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Apr 24 22:36:56 2024 -0700 - - Merge branch 'main' into feature/modify-imports - -commit b9b23611f73a14c983432dde2b89d72e50f2e18e -Merge: 6e7567a 956ffd4 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Apr 24 22:18:56 2024 -0700 - - Merge pull request #43 from xarvex/file-open-1 - - Allow files to be opened in their respective programs in the background for Windows, MacOS, and Linux - -commit de09da1592202a2d1821b010bcd668fe6f726a5a -Author: Andrew Arneson -Date: Wed Apr 24 23:18:16 2024 -0600 - - remove tagstudio prefix for source libraries - -commit 956ffd4663ce98dc4f124fa6287514efbb01b3c8 -Author: Xarvex -Date: Thu Apr 25 00:07:14 2024 -0500 - - Properly detach process on Windows - -commit 8b4b2507fa841af1816493a9380230d9b6b46da5 -Author: Xarvex -Date: Wed Apr 24 23:50:26 2024 -0500 - - Account for start being a shell builtin on Windows - -commit f125e5a50d63af63d4f8f8f9321354d8f850af6b -Author: Xarvex -Date: Wed Apr 24 23:37:36 2024 -0500 - - Implement file opening for Linux and MacOS, allow Windows in background - Note: this is only tested on Linux - -commit 0b1c097f978dc60f16d9646b62021a5e8e76be16 -Author: Andrew Arneson -Date: Wed Apr 24 22:00:40 2024 -0600 - - update tagstudio.py refrences to tag_studio.py - -commit 2b5697ea50ecf665c7b0d5862672cbb36efdbc40 -Author: Andrew Arneson -Date: Wed Apr 24 21:51:43 2024 -0600 - - Remove wildcard Imports - -commit 4e5b7b1c7df1810c8bdfda0bba4ea4f460e5ec85 -Author: Andrew Arneson -Date: Wed Apr 24 21:51:22 2024 -0600 - - Fix reference to datetime - -commit 0b4ccac5ff2006cf2722547754542324504e8cba -Author: Andrew Arneson -Date: Wed Apr 24 21:14:13 2024 -0600 - - Import Humanfriendly format_size when importing format_timespan - -commit 952ed8f27db51d48d906d471282b20c579c32b48 -Author: Andrew Arneson -Date: Wed Apr 24 19:53:01 2024 -0600 - - Remove Unused Imports - -commit c0c18dabc135409dc94508bf62179c245aa8266a -Author: Andrew Arneson -Date: Wed Apr 24 19:52:10 2024 -0600 - - Optimize & Sort Imports - -commit 7b48e5e17e005d177e4e417474bdeea13fd226d1 -Author: Andrew Arneson -Date: Wed Apr 24 19:48:25 2024 -0600 - - Prevent Import collisions - Rename tagstudio.py to tag_studio.py - -commit 6e7567a192848ff2cb9f89c03c3bca85fce8acbf -Author: Travis Abendshien -Date: Wed Apr 24 17:12:40 2024 -0700 - - Update launch.json - - Updated launch.json to be cross-platform between Windows and UNIX systems - -commit ad6fefbe2b02488e949b86a722cd0bce9d275363 -Merge: 4a55af6 4184848 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Apr 24 17:01:16 2024 -0700 - - Merge pull request #35 from dakota-marshall/nixos-support - - Add NixOS Dev Environment Support - -commit 4a55af66ee7e72c24e598d2ef707d0004b188fb4 -Author: Travis Abendshien -Date: Wed Apr 24 16:22:36 2024 -0700 - - Remove duplicate tag IDs when loading library - - Tags with duplicate IDs inside a library save file are removed when opening the library. Cleans up the mess from #38. - -commit f0148c7f35016a2b6e3f0eff8cbc002a1239d4b7 -Author: Ripp_ <3843106+chao-master@users.noreply.github.com> -Date: Wed Apr 24 23:44:40 2024 +0100 - - 🏷️ Add strict typing dicts for ts_library.json - -commit ac00890c90a319df47d4cec8b1d3b91dcbf9e42f -Merge: e69e499 432f485 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Apr 24 15:26:46 2024 -0700 - - Merge pull request #39 from Thesacraft/main - - Update library.py to not duplicate default tags on save - -commit 9e61d45ea502d8d9deb7cf59245361a3f3232536 -Author: DrRetro -Date: Wed Apr 24 18:11:41 2024 -0400 - - Rewrote Multi-Select to use field templates. - -commit 432f4851f3e02baa487951f0d889bc24fa35180a -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Thu Apr 25 00:02:32 2024 +0200 - - Update library.py to not duplicate default tags on save - -commit 4184848f9ce623a6a6ab32c8f5fec62af6c75706 -Author: Dakota Marshall -Date: Wed Apr 24 16:51:06 2024 -0400 - - Update Nix flake pinned hash for python3.12 and QT 6.6.3 support - -commit bc0f8b991ea5ba6ef2ad278d815ae9b47ac4173f -Author: Dakota Marshall -Date: Wed Apr 24 15:39:36 2024 -0400 - - Update install documentation for NixOS - -commit c4e8d40abe84f90b5e4b16a769e75cb954ef9ded -Author: Dakota Marshall -Date: Wed Apr 24 15:39:21 2024 -0400 - - Update bash script to use env for nix support - -commit c7492b78d3f442abecc42260b851cf1f3d5d7ce6 -Author: Dakota Marshall -Date: Wed Apr 24 15:39:12 2024 -0400 - - Add flake files for working Nix environment - -commit e69e4998e53a250630229787b58f27029d2b563c -Merge: 0b9b4da 844f756 -Author: Travis Abendshien -Date: Wed Apr 24 13:14:21 2024 -0700 - - Merge branch 'main' of https://github.com/CyanVoxel/TagStudio - -commit 0b9b4dac73ed2f85301a2cbd20c67fce88d665d4 -Author: Travis Abendshien -Date: Wed Apr 24 13:14:11 2024 -0700 - - Updated Prerequisites to Python 3.12 - -commit 844f756dba570e627d00c4d2be750cfd825132e4 -Merge: 071100b 129d336 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Apr 24 13:13:21 2024 -0700 - - Merge pull request #32 from Thesacraft/main - - python 3.12 support - -commit 6e341e097b279543f1d4c52366b92a53016af090 -Merge: def244b 071100b -Author: DrRetro <86109384+DrRetro2033@users.noreply.github.com> -Date: Wed Apr 24 15:25:15 2024 -0400 - - Merge pull request #1 from CyanVoxel/main - - Update - -commit def244b7325dff89784dbad6c27d271b6c401998 -Author: DrRetro -Date: Wed Apr 24 15:18:22 2024 -0400 - - Fixed bug that occured with adding other fields to one entry. - -commit 129d3363571a3f63df480ebfafe6167e5c484b22 -Merge: e8ab805 071100b -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Wed Apr 24 21:13:38 2024 +0200 - - Merge branch 'CyanVoxel:main' into main - -commit 071100bf9030dd73f9c748c633523ae6ccde3dbf -Merge: 0529f1f e161290 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Wed Apr 24 12:04:11 2024 -0700 - - Merge pull request #33 from LennartCode/patch-1 - - docs(README.md): Removed typo. - -commit e161290571971748ee11a87eff00d638af80973a -Author: Lennart S <55597910+LennartCode@users.noreply.github.com> -Date: Wed Apr 24 20:59:41 2024 +0200 - - docs(README.md): Removed typo. - -commit e8ab8059cdc0d1194341f5fc185ed38c49dbf26f -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Wed Apr 24 19:18:24 2024 +0200 - - Update requirements.txt to support python 3.12 - -commit 7ec29228b5eb193c33c3da6a22345df488a6b9c7 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Wed Apr 24 19:15:17 2024 +0200 - - Update requirements.txt to also support python3.12 - -commit 3974c1b031e4b500abb855741075c4ccfaef216e -Author: DrRetro -Date: Wed Apr 24 12:09:07 2024 -0400 - - Multi-Select Removing Tags - -commit fba2f8f46ba9e45591b4dc3c5ffce59033d8acaf -Author: DrRetro -Date: Wed Apr 24 11:31:53 2024 -0400 - - Multi-Select Tag Adding - -commit 0529f1fe7ed9ac30f473919a55bd47f8d99d44ea -Author: Travis Abendshien -Date: Tue Apr 23 23:22:29 2024 -0700 - - Fixed library creation bug inside of empty .TagStudio folder - - Fixed a library creation bug where the program would malfunction when trying to create a new library from a folder called ".TagStudio". - -commit 59be7c0cf9baa914c7699dbf12f4622f30829a06 -Merge: 45e7658 dfe2b57 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Apr 23 22:21:41 2024 -0700 - - Merge pull request #30 from Loran425/main - - Allow network path libraries - -commit dfe2b5795282181dd568ccbb3c24726d05c59d34 -Author: Andrew Arneson -Date: Tue Apr 23 22:59:18 2024 -0600 - - Allow network path libraries - Swap normalized path strip from using strip to using rstrip to avoid stripping leading slashes - -commit 45e765862d7ec2bf2928134a91f0251a4d0b2068 -Author: Travis Abendshien -Date: Tue Apr 23 20:10:16 2024 -0700 - - Fixed forward slash being stripped from Unix paths - -commit cf1ce6bb243e3df215fff689cc4b95dd278c0e56 -Merge: 2e57e03 e3e1c55 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Apr 23 17:33:09 2024 -0700 - - Merge pull request #27 from Thesacraft/main - - Prevent exceptions when no Library is Loaded - -commit e3e1c55fabdd5e99505b25b699ecb65209952c1d -Merge: fffd9db 2e57e03 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Wed Apr 24 02:28:34 2024 +0200 - - Merge branch 'CyanVoxel:main' into main - -commit 2e57e0397ca550724207ddc2a314b9c8124d302b -Author: Travis Abendshien -Date: Tue Apr 23 17:10:23 2024 -0700 - - Extended filetype support - - Added rudimentary support for audio types, text types, spreadsheets, presentations, archives, and programs. These files will now be scanned and picked up when refreshing the library. - -commit 5e33d07e395097031b0849e0499c93a25946fcab -Author: Travis Abendshien -Date: Tue Apr 23 16:26:10 2024 -0700 - - Removed unused dependencies - -commit fffd9dba6c472441fec48d086c189505687a7239 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Wed Apr 24 01:17:30 2024 +0200 - - Update ts_qt.py to prevent exceptions in file menu - - Before this Refresh Directorys/Save Library/Save Library Backup would throw an exception if no library was loaded this prevents that - -commit 98a01aea8044e370e0d25d1ac2fb28d17e846e59 -Merge: 1489d56 d974aa7 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Wed Apr 24 00:55:17 2024 +0200 - - Merge branch 'CyanVoxel:main' into main - -commit 1489d56be77acd0506b9e5112a0eff0e53670002 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Wed Apr 24 00:53:41 2024 +0200 - - Update ts_qt.py to not throw Errors when no library is open - - Before this the Refresh/Save Library/Save Library Backup would throw an Error when no Library is open - -commit d974aa777ced011a3fb57bf56a07cccdb1c7dafc -Author: Travis Abendshien -Date: Tue Apr 23 15:49:05 2024 -0700 - - Removed (most) janky theme overriding (#5) - - - Removed most of the temporary theming that was clashing with Qt, especially in system light mode - - Possibly fixed the "transparent menu" issue - -commit f67b26fbd69141ba88750261996abd91f7f0dd42 -Author: Travis Abendshien -Date: Tue Apr 23 13:31:53 2024 -0700 - - Added SIGTERM handling (#13) - - - Also removed miscellaneous whitespace - - Removed leftover print statement on startup - -commit a074bed5402d326261637682ee4cc9f43463f04b -Merge: 9afd3d2 a55e649 -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Apr 23 11:29:28 2024 -0700 - - Merge pull request #22 from Thesacraft/main - - Update ts_qt.py to fix bootup bug - -commit a55e649d839592074a50350edfac652e3cd32d68 -Author: Theasacraft <91694323+Thesacraft@users.noreply.github.com> -Date: Tue Apr 23 20:20:13 2024 +0200 - - Update ts_qt.py to fix bootup bug - - Fixes the visual bug - -commit 9afd3d2aa8afb3845d59a178b13aa4defd05a21d (upstream/Alpha-v9.1) -Merge: f05f8de 5722521 -Author: Travis Abendshien -Date: Tue Apr 23 10:21:27 2024 -0700 - - Merge branch 'main' of https://github.com/CyanVoxel/TagStudio - -commit f05f8de4f632132f1008151427cf760102654a28 -Author: Travis Abendshien -Date: Tue Apr 23 10:21:15 2024 -0700 - - Update README.md - - - Added instructions for how to launch the shell script on Linux - - Clarified macOS instructions regarding the venv - -commit 5722521319b2a1499b75abd2c9db66e997c50f36 -Merge: 6c5f0c2 70500ed -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Tue Apr 23 10:00:56 2024 -0700 - - Merge pull request #10 from OleMortensen8/main - - added Start script to boot into linux provided you have python installed - -commit 70500ed9fd0a3c6f85823600b66046bec87c31e8 -Author: Ole Vølund Skov Mortensen <22987563+OleMortensen8@users.noreply.github.com> -Date: Tue Apr 23 07:32:13 2024 +0200 - - added Start script to boot into linux provided you have python installed - -commit 6c5f0c215142f65b7c640380c71d5140f78f4aeb -Merge: 95927a1 e46d87e -Author: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> -Date: Mon Apr 22 19:23:59 2024 -0700 - - Merge pull request #6 from 0xnim/main - - Add Inverted Images for Light/Dark Mode - -commit e46d87ededcff51aa5a0279e56c43ff400ac9246 -Author: Niklas Wojtkowiak -Date: Mon Apr 22 22:19:49 2024 -0400 - - Revert changes for creation of inverted masks - -commit b4bef642844465ef7d3c40b7d574c871bfbbcb91 -Author: Niklas Wojtkowiak -Date: Mon Apr 22 21:27:12 2024 -0400 - - Add Inverted Images for Light/Dark Mode - -commit 95927a1cea262f5eca33ede994b75e6e4feedd3b -Author: Travis Abendshien -Date: Mon Apr 22 16:32:23 2024 -0700 - - Update README.md - - Added clarification for different Python aliases in the instructions. - -commit bd48850bc6e3c189bc645d2bbfc32ecf35d7dc94 -Author: Travis Abendshien -Date: Mon Apr 22 15:33:59 2024 -0700 - - Updated Python version requirements - -commit 5f6782d70555cb5d9e0db9b254d4227fad06f692 -Author: Travis Abendshien -Date: Mon Apr 22 13:40:23 2024 -0700 - - Disabled test macro running upon adding new entries - -commit b01b047d427bf4b3809577a7d03596544b7747f5 -Author: Travis Abendshien -Date: Mon Apr 22 12:38:07 2024 -0700 - - Update README.md - -commit d63a978fb03e496be38db600b501cb482d302f1c -Author: Travis Abendshien -Date: Mon Apr 22 11:52:22 2024 -0700 - - Alpha v9.1.0 - - Initial public release - -commit bb5dff7daa2846f47e8c015134e4e18c4d5d17ec -Author: Travis Abendshien -Date: Wed Apr 17 05:14:01 2024 -0700 - - Initial commit diff --git a/src/tagstudio/core/library/alchemy/library.py b/src/tagstudio/core/library/alchemy/library.py index 1b746d218..955362bc2 100644 --- a/src/tagstudio/core/library/alchemy/library.py +++ b/src/tagstudio/core/library/alchemy/library.py @@ -227,10 +227,9 @@ def close(self): def get_file_time(self, file_path: Path): """Get the creation and modification times of a file.""" stat = file_path.stat() - system = platform.system() # st_birthtime on Windows and Mac, st_ctime on Linux. - if system in ["Windows", "Darwin"]: # Windows & macOS + if platform.system() in ["Windows", "Darwin"]: # Windows & macOS date_created = datetime.fromtimestamp(stat.st_birthtime) else: # Linux date_created = datetime.fromtimestamp(stat.st_ctime) # Linux lacks st_birthtime diff --git a/src/tagstudio/core/utils/refresh_dir.py b/src/tagstudio/core/utils/refresh_dir.py index 706f37e81..e14f2d5d4 100644 --- a/src/tagstudio/core/utils/refresh_dir.py +++ b/src/tagstudio/core/utils/refresh_dir.py @@ -39,10 +39,9 @@ def files_count(self) -> int: def get_file_times(self, file_path: Path): """Get the creation and modification times of a file.""" stat = file_path.stat() - system = platform.system() # st_birthtime on Windows and Mac, st_ctime on Linux. - if system in ["Windows", "Darwin"]: # Windows & macOS + if platform.system() in ["Windows", "Darwin"]: # Windows & macOS date_created = dt.datetime.fromtimestamp(stat.st_birthtime) else: # Linux date_created = dt.datetime.fromtimestamp(stat.st_ctime) # Linux lacks st_birthtime