-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Add virtual torrent grouping feature #23551
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add virtual torrent grouping feature #23551
Conversation
- Added TorrentGroup and TorrentGroupManager classes to manage torrent groups. - Enhanced TransferListWidget to support grouping of torrents, including creation, renaming, and deletion of groups. - Integrated group management into the UI, allowing users to add torrents to groups and remove them. - Implemented TransferListGroupModel to provide a hierarchical view of torrents grouped by their respective categories. - Added context menu actions for group operations in the TransferListWidget. - Ensured persistence of group states and settings through loading and saving mechanisms. - Updated UI elements to reflect group states and provide visual differentiation between groups and individual torrents.
Implement a lightweight grouping concept for UI aggregation, allowing users to group torrents (e.g. by Season). This feature introduces: - TorrentGroupManager for managing group definitions and membership. - TransferListGroupModel as a proxy model to display groups in the transfer list. - UI integration in TransferListWidget to support group expansion and rendering. Groups are stored in the configuration and persist across sessions.
|
@qbittorrent/bug-handlers |
|
looks promising! when is the ETA? |
|
closed/re-opened to trigger ci |
If approved, qBittorrent 5.2+ |
I can help you test if needed |
|
windows is the bane of my existence |
|
I think that might fix the windows CI crash, i should've said it in the commit |
So why did some related things get into the core? |
I found this to be the simplest way of going about it as I didn't really know where to lay the foundation for the groups |
I actually agree, I only used those two icons because they were already in the project so I didn't have to make new ones. |
Even without going into details (which I have not yet been able to go into), the following looks quite obvious:
|
I have briefly reviewed the code of this PR. It seems that you haven't familiarized yourself with the basics of Qt Model/View architecture enough, since you've taken such a strange way. IMO, it would be natural to turn the |
|
@Chocobo1 |
Nothing really as I'm not the target audience of this PR. I only hope the result isn't something that is complex and confusing to the users. |


Description
This PR introduces a "Virtual Torrent Grouping" feature to the main transfer list. It allows users to visually group multiple torrents together under a single collapsible header in the GUI, without affecting their underlying save paths, categories, or tags.
Closes #19935
Motivation
Currently, users managing large numbers of related torrents (e.g., episodes of a TV season, albums in a discography) find their transfer list cluttered. While Categories and Tags provide filtering, they do not offer a way to condense these items in the main view. This feature provides a lightweight, visual-only organization method to keep the transfer list tidy.
Implementation Details
Core Logic: Added TorrentGroup and TorrentGroupManager in base to manage group associations and state.
GUI Model: Implemented TransferListGroupModel in gui. This acts as an intermediary model to handle the tree-like structure required for collapsible groups within the existing list framework.
Widget Update: Refactored TransferListWidget to support the new grouping mode and context menu actions for creating/managing groups.
UI Changes
Verification
Tested on Linux.
Verified that grouping/ungrouping persists correctly.
Verified that sorting and filtering still work as expected when groups are active.
Screenshots
Note to reviewers
I am a freshly graduated student and this is my first major contribution to the qBittorrent codebase. I have done my best to follow the coding guidelines and style, but I am happy to make any necessary adjustments based on your feedback.