Skip to content

Conversation

@AlfEspadero
Copy link

@AlfEspadero AlfEspadero commented Nov 27, 2025

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

  • New context menu options in the Transfer List: "Group Selected Torrents", "Remove from Group".
  • Torrents belonging to a group are now displayed under a collapsible header row.

Verification

Tested on Linux.
Verified that grouping/ungrouping persists correctly.
Verified that sorting and filtering still work as expected when groups are active.

Screenshots

  • Expanded group
image - Collapsed group image

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.

AlfEspadero and others added 5 commits August 20, 2025 04:25
- 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI: Ability to move selected torrents into a collapsed meta-group within the download list

1 participant