Skip to content

refactor/fix/perf(ui): MVC split ItemThumb + ThumbGrid, fixes and performance - #1539

Merged
CyanVoxel merged 10 commits into
devfrom
refactor/item-thumb-mvc
Oct 12, 2026
Merged

CyanVoxel merged 10 commits into
devfrom
refactor/item-thumb-mvc

Conversation

@CyanVoxel

Copy link
Copy Markdown
Member

Note

This PR is targeting the dev branch for release with Alpha v9.7.

Summary

This PR includes MVC refactors for ItemThumb and ThumbGrid plus several fixes and performance improvements for the thumbnail grid system. Several bugs with the BrowsingState for ThumbGrid have been fixed, notably the re-implementation of saving paginated pages in the history and fixing several issues with the scrollbar position not behaving correctly in history states. This was also an opportunity to make it so resizing the thumbnail sizes no longer triggers a full refresh and works much more smoothly (still room for improvement though).

The individual commits on here show where each refactor and fix was added.

MVC Structure

  • ItemThumb + ThumbButton -> ItemThumb/ItemThumbView
  • ThumbGridLayout -> ThumbGrid/ThumbGridLayout (not a ThumbGridView because it's a generic layout)

EntryState + Badge Syncing

Tag badges on ItemThumbs are now centrally managed by EntryState, which is where all entries' tag writes route from the frontend to the backend now. This acts as part of a foundation mentioned in this comment in order to finally implement #337/#808 soundly in the near future.

Other Notes

  • Dropped pydub as a dependency, including the vendored file.
  • The old Qt resource file is now finally dead, with the ItemThumb badge icons now being moved to the ResourceManager.

Tasks Completed

  • Platforms Tested:
    • Windows x86
    • Windows ARM
    • macOS x86
    • macOS ARM
    • Linux x86
    • Linux ARM
  • Tested For:
    • Basic functionality
    • PyInstaller executable

@CyanVoxel CyanVoxel added this to the Alpha v9.7.0 milestone Oct 11, 2026
@CyanVoxel CyanVoxel added Type: Refactor Code that needs to be restructured or cleaned up Type: QoL A quality of life (QoL) enhancement or suggestion Type: UI/UX User interface and/or user experience Type: Performance An issue or change related to performance TagStudio: Thumbs/Previews File thumbnails or previews Type: Fix A fix for a bug, typo, or other issue labels Oct 11, 2026
@CyanVoxel CyanVoxel moved this to 🍃 Pending Merge in TagStudio Development Oct 11, 2026
@CyanVoxel
CyanVoxel merged commit eb5367c into dev Oct 12, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from 🍃 Pending Merge to ✅ Done in TagStudio Development Oct 12, 2026
@CyanVoxel
CyanVoxel deleted the refactor/item-thumb-mvc branch October 12, 2026 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

TagStudio: Thumbs/Previews File thumbnails or previews Type: Fix A fix for a bug, typo, or other issue Type: Performance An issue or change related to performance Type: QoL A quality of life (QoL) enhancement or suggestion Type: Refactor Code that needs to be restructured or cleaned up Type: UI/UX User interface and/or user experience

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant